Dave Carabetta Blog Banner


July 10, 2008

CynergyTV: Flex, Silverlight And Why I've Disappeared


So why have I been so quiet for pretty much the last year outside of some token posts? Well, our re-launched CynergyTV experience holds the reason, and I'm glad I can finally talk about it.

So Dave, you mean you've spent the last year re-building CynergyTV? Nope, not quite. That was done by an extremely talented team here at Cynergy that worked extremely hard to not only refresh the user experience but deliver the content in professional audio/video quality supported by lots of hardware and software upgrades in our data center. Incidentally, when I say team, I mean it in the truest sense of the word -- our president, Carson Hager, recognizing that we could and should present our accomplishments better and allowing guys to stop being billable in order to get this done; our Marketing group spending hours in the recording studio choreographing the audio/video; our User Experience group iterating through lots of potential look and feel options until it was nailed; our Rich Interface team implementing the user experience in Adobe Flex; and finally, our Enterprise Services and Network Support teams building out the services tier to support the streaming video content (not a trivial task as I've come to learn), notifying the appropriate people when the Let's Talk form is submitted, and then setting up the appropriate infrastructure to host it all in our data center. If that sounds like a lot of work, that's because it was -- and it was well worth the investment.

So back to my opening question as to why I've been so quiet. Well, if you head over to CynergyTV (after reading this post, of course), you'll see that one of the showcases is for an application we built called Quickcomm Enterprise, a telecom expense management (TEM) tool for one of our clients, Quickcomm. It is this application that has basically been most of the last year of my life. As the Technical Lead on the project (which is a combination senior application architect and project manager here at Cynergy), I have spent over 1,600 hours working with my team here at Cynergy and the team at Quickcomm to deliver the most disruptive TEM solution on the market and I'm extraordinarily proud and privileged to have worked with both teams.

Since the completion of that project a short while back, I have since made the transition for being a Technical Lead to Business Development -- yes, the dreaded "sales" guy. I was ready for a new challenge beyond coding and the growth opportunities here at Cynergy made this transition both seamless and a no-brainer. So now I get to put on my sales hat: If you're interested in speaking with us about an idea you have or have an existing application you want re-invented to provide a better user experience, drop us a line and we're happy to speak with you further. And of course, if you have any feedback at all about the re-launched CynergyTV, feel free to leave a comment and I'll make sure it reaches the right people immediately.

Lastly, if you're a developer who wants to work with a phenomenally talented team that continually delivers cutting edge applications, we'd love to speak with you about career opportunities at Cynergy. It's a great time to be building RIAs and we'd love for you to be a part of it!



July 1, 2008

Adobe Announces Searchable SWF Collaboration With Google And Yahoo!


One reason (OK, there are many, I admit) why this blog has gone bare lately is because I try not to post announcements that every other similar blog in the world has already announced. It's a waste of my time and being one of 2,000 posts on the same exact subject doesn't tend to interest me (anymore). However, today's announcement by Adobe that they are working with Google and Yahoo! to enhance the search capabilities of SWF files (Adobe Flash and Adobe Flex applications in case you don't know what a SWF file is) is a long overdue breakthrough for the rich Internet application (RIA) trend, and is yet another validation of technologies such as Adobe Flex and Microsoft Silverlight for delivering public-facing, web-based applications.

Let's get one thing right out there though: Not all RIAs should be searchable by search engines. Many (most?) RIAs are not and should not be simple ports of HTML-based web sites over to these newer technologies. That would be a waste of time and money. RIAs really excel for true web-based application development -- think applications like Picnik, an online photo editor. There isn't any real value in Google being able to index the photo editing application itself -- that's sort of like indexing Microsoft Word.

However, an Adobe Flex-based RIA that captures the latest new stories and visualizes them -- i.e., displaying the titles in little bubbles and having more popular stories have larger bubbles -- is right in the wheelhouse of the utility of this announcement. The ability for Google and Yahoo! to be able to crawl the SWF itself for the content rather than having to expose the raw RSS feed, XML file, or whatever the source is incredibly valuable. A social network RIA that allows search engines to index public profiles -- think LinkedIn -- is yet another example of where the convergence of the sticky user experience Flex provides and the search engine power of Google and Yahoo! is extremely powerful.

Lastly, and this is a lesser point yet one I still wish to make, I've been to trade shows where AJAX-focused companies tout their products. Interestingly, I invariably hear them say as part of their pitch that one of the big distinctions between AJAX applications and Adobe Flex or Microsoft Silverlight applications is that AJAX apps can be searched by the major search engines. Well, the competitive advantage is leveled today. I certainly am one who is curious to see how Adobe's announcement plays out in reality (name the last technical solution you saw that worked flawlessly on the first try), but hopefully the AJAX vs. Flex/Silverlight debate can start to move back to what really matters: the user experience.



April 21, 2008

See You At The Web 2.0 Show In San Francisco?


As we announced in early January, Cynergy is a platinum sponsor of the Web 2.0 conference in San Francisco this week.

Of note, our Vice President, Dave Wolf, will be giving a presentation in Room 2016 entitled Sticky Eyeballs: How UX Wins Market Share. Dave has spoken at numerous conferences, including last year's keynote at AJAXWorld, and he's extremely engaging and passionate about this topic, so I highly recommend you check it out if you're attending the show.

Also, Cynergy continues to push the envelope to deliver stunning, engaging rich internet applications (RIAs) using Adobe AIR, Adobe Flex, Microsoft Silverlight, and Microsoft Windows Presentation Foundation (WPF), and we'd love to show you what we've been working on. We'll have a large booth (#721) in the expo hall where we will be showing off our latest applications and we'd love for you to stop by and say hello.

If you can't make the conference, don't forget that we still have demonstrations of some of our applications online via CynergyTV and we also have our Cynergy Labs R&D site up, which includes a demonstration of our wildly popular Project Maestro.

Hope to see you in San Franscisco!



June 8, 2007

Straight From The Boss's Mouth: Come Work At Cynergy


So this is one of those posts that is blatant shilling for my company. While I try and stay away from doing that (hence I maintain my own blog), Carson's post yesterday can't be emphasized enough: the RIA industry's boom is our gain and has us on the prowl for good talent to join our team.

OK, with the advertisement out of the way, let me expand a little bit on who we're looking for and why we're a great place to work.

What We're Looking For

First and foremost, if you're new to Adobe Flex or Microsoft Silverlight, that's totally OK. From talking with other developers at conferences and meetings, there seems to be a misconception that you need to be a seasoned Flex developer in order to be considered for a position at Cynergy (and, well, Silverlight is literally only months old). However, nothing could be further from the truth. While we have some of the most experienced Flex developers around, this is what we're looking for:

  • Passion: I put this before any technical skill because it's the most important thing that we're looking for. We want people who are as excited as we are about the RIA market and who want to continually push the envelope by developing world-class experiences for our customers using Adobe Flex, Adobe Apollo, and/or Microsoft Silverlight. When I was first looking into joining Cynergy, I was a bit skeptical as to the definition of this "passion" that people always say they're looking for, as it's seemingly arbitrary. But I can tell you from first-hand experience that the energy my co-workers have on a daily basis is both jaw-dropping and contagious, and my personal fire to get into building RIAs fit in perfectly.
  • Object Oriented skills: Not everything about working here is "abstract." The reality is that you simply can't build scalable, maintainable RIAs without a solid OO foundation. You don't have to be able to recite and define every single design pattern, but you need to be able to define and understand terms such classes, objects, inheritance, composition, etc. If you have a firm grasp there, then learning the language is just syntactic sugar and you'll take right off.
  • Current experience: OK, so hopefully it goes without saying that if you have current experience with any versions of these technologies that it's serious bonus points. That being said, we've found that people with solid AJAX experience do well because the asynchronous nature of the Flash Player is a web development mind shift that can trip people up. However, don't worry about what specific technologies you have or haven't worked with in the past; the reality is that the RIA market is still young and you're just not going to get resumes with four, five, or six years of real RIA experience.
  • Possibility of relocating near one of our offices: Let me stress right off the bat that this is not a core requirement to joining our team. Heck, I'm currently writing this from my apartment in New York City. If you have existing solid experience or are willing to travel to one of our offices for a while at the beginning to get up to speed (we pay for all expenses, of course), working remotely is certainly an option. That being said, we do find that being in one of our offices accelerates your growth at a much more rapid pace and try to get people as close as possible to one of them. Currently, we have offices in Washington, DC; San Diego, California; Grand Rapids; Michigan; Rochester, New York; and Copenhagen, Denmark. We are absolutely going to be expanding that list in the very near future, though I'm not at liberty to disclose that information just yet (sorry!).

If you're not put off by any of those items and are looking for a new challenge, then please, please, please, send us your resume. The great part about Cynergy is that everybody is accessible, including our president, Carson Hager. To that end, please e-mail him if you have any questions that you don't think are appropriate for me (i.e., I don't deal with anything related to compensation) and he will get back to you as close to immediately as possible. Of course, if there's anything I haven't addressed here that you want to know more about, please leave a comment or contact me offline, as I'm happy to answer any and all questions myself.

Why Cynergy?

So now that you have idea as to who we're looking for, why do you want to be working here? Well, frankly, I am constantly amazed at the type of applications we're building. A year ago, I never would have thought these sorts of applications could be developed using web technologies. Now, a lot of that credit has to go to Adobe for providing us with such a powerful, easy-to-use framework, however I've seen co-workers like Andrew Trice and Keun Lee do things with Flex that I never thought could be done with the current framework features. And have you seen our CynergyTV showcase? That's just a small tip of the iceberg relative to the other applications we have built (we value our customers' privacy and we're sometimes restricted from publicly demo-ing the solutions we build for them).

While those are amazing applications, what does that have to do with wanting to work here? Well, the same developers who built those applications are still here at Cynergy and delivering better applications all the time. The sense of genuinely being a part of a team is prevalent throughout the company and I've never run into a situation where somebody wasn't willing to help, regardless of their own workload. That teamwork starts from the top, and Carson, Dave Wolf, and Keith O'Donnell (our Management Team), treat us as their equals and we are very much involved in many aspects of the direction of the company (but hey, we're still developers, so we leave many other things to them!). They recognize that without us, Cynergy will not survive, and we're very well taken care of and are provided any and all resources necessary to succeed as a result. If you're curious about our retention rate, since I've started here last fall, literally nobody has left the company. That's just the type of fun, yet professional, culture that has been built and we are fiercely protective of that.

This is an amazing time to be working at the leading RIA services firm, and you can help be a part of that success. Send us your resume because we'd love to chat!



April 19, 2007

Why Silverlight Is A Phenomenally Important Announcement For Adobe Flex


There's been a big discussion over the last few days across mailing lists and blogs about the impact of Microsoft's Silverlight announcement. The loyalists from both the Microsoft and the Adobe developer camps have come out of their respective wood works to debate Silverlight's merit vis-a-vis Flex.

What's interesting to me about this debate is that, once again, with the introduction of a new, potentially disruptive technology, it always winds up being an "either/or" discussion rather than an "and" discussion. That is, the debate can usually be distilled down to why one would use technology X rather than technology Y when the discussion should really be how one can use both technology X and technology Y. As a real-world example, simply replace "technology X" with "Adobe Flex" and replace "technology Y" with "AJAX" in the previous example and do a simple internet search. I mean, I thought that we, as developers, were in the business of delivering the best product to our employer/customer/client rather than a product that uses a specific technology simply because that's their personal preference? Did I miss something?

Dave Wolf, Vice President of Consulting at my employer, Cynergy Systems, wrote an excellent blog entry this morning entitled Wake up and see the Silverlight, which discusses just how phenomenally important Microsoft's Silverlight announcement is to the Rich Internet Application (RIA) industry. As he notes:

...[T]his week's news that Microsoft has officially named Sparkle - WPF/E as Silverlight and that it is clearly and finally on its way to market truly is the tipping point that establishes that RIA's are real, RIA's are the future and RIA's will shape the way we are going to be developing software for some time to come. Microsoft just justified and legitimized RIA. That is HUGE.

Dave hits the nail on the head in his entry, and I won't try and re-hash it here, as I wouldn't be able to do it justice.

However, my point is that this isn't about how Silverlight is going to squash Flex, or vice versa. This is about how the RIA industry just became the focal point for future development, and that's an incredibly important validation of Adobe Flex and, by extension, Apollo. By recognizing that the equivalent of the Adobe Flash Player is the future of delivering engaging web applications, Microsoft validated the Player as that delivery platform. Hence, they built their own.

Did Microsoft declare that Adobe is officially in their cross-hairs? Absolutely. Is the first release of Silverlight going to knock the snot out of Adobe Flex? Absolutely not. But let's be honest here -- for anybody that used either Flex 1.0 or Flex 1.5, those initial releases left a lot to be desired themselves, so let's not be so quick to bash Silverlight as a failure waiting to happen. It'll likely have its warts, much the same as Flex 1.x did. But, in true Microsoft form, once they get that second or third release out and their development community on board, the RIA space is going to have at least two major players from which developers will be able to deliver rich, engaging applications. I don't know about you, but I couldn't be more excited!

Have a look at Dave's entry to get a more thorough analysis of the impact of the Silverlight announcement. Don't worry Adobe fans, Flex isn't going anywhere. In fact, I think it got just a whole lot stronger!



January 31, 2007

Want To See Adobe Flex At Its Best?


This blog is becoming awfully barren as of late, and, despite my best efforts to stay active, it has been close to impossible to post entries due to the fact that there are only 24 hours in a day. However, I'm incredibly proud to finally show off what keeps me and my co-workers at Cynergy so busy.

Today we launched Cynergy TV, an interactive Flex-based channel where we will be publishing all sorts of showcases, flex tips, tricks, etc., that we hope will benefit the Adobe Flex community. As an employee at Cynergy, I'm incredibly excited to see where we take this, and I definitely plan on contributing as we move forward with the initiative.

So what's this about "Adobe Flex at its best?" Well, "episode 1" showcases some of our most engaging applications. I've noticed several flexcoders and blog posts from people who don't think Adobe Flex is verstaile-enough to be taken seriously or is limiting in its design. I simply disagree, and I hope that these showcases will provide some inspiration for you to create some truly interactive solutions. Our showcases really exhibit Adobe Flex at its best. From ColdFusion to Java to .NET, we've created high-impact solutions that integrate with all sorts of back-end systems.

Are you a developer who has worked with Flex or AJAX on some level and is interested in joining the industry leader in Rich Internet Applications? Shoot us an e-mail with your resume. We really want to hear from you. As it says all over our corporate web site, "Let's Talk." ;)



September 26, 2006

Adobe Flex 2 Case Study And The Power Flex 2 Charting


I was reading through last week's eWeek magazine and came across an excellent case study highlighting the power of the Adobe® Flex 2™ platform. Admittedly, I usually only skim through case studies because they're mostly positioned as "product X is the greatest" and is usually filled with enough buzzwords to fill an entire "buzzword bingo" card (and this one has a bunch).

However, I did take notice of one particular aspect of this case study's implementation that I think gets glossed over in the Flex 2 vs. AJAX decision-making process: visualizing your data. (And let's be honest for a second: while I know you'll hear many who say that you can use both Flash and AJAX together, including the Adobe brass, that doesn't seem to be happening in most applications that I've seen (with perhaps a smattering of notable exceptions); most are in one camp or the other.)

While developers will likely note that the cross-platform features of the Flex 2 platform are its biggest strength, I respectfully disagree. That's an incredible convenience, but it's not why I'm going to use it in my work. See, I'm of the school of thought that I need to present my users with the best experience possible based on the presented requirements. Humans are, by nature, visual beings. If presented with a table of data or a chart that presents that same data, a user is going to more quickly and efficiently draw his or her conclusion from the chart virtually every time. It's how our brains work. I think of the old cliche that "a picture is worth a thousand words." That may sound trite, but cliches become cliches because they're true. To that end, the most differentiating feature of the Flex 2 platform, to me, is the charting suite. The Flex 2 charting components allow users to visualize their data in ways that previously required third-party vendors and lots of supplemental code to interact with it. Andrew Tahvildary, vice president of development and Primavera Services (the subject of this case study) notes that, with Flex 2's charting components, "...we were able to use a combination of charts and data grids to provide multidimensional views over a large set of analytical data." I just don't know of many AJAX libraries that come out-of-the-box with this capability, and at Flex 2's price point.

Have you seen the Adobe Flex 2 Component Explorer yet (Adobe Flash Player 9 required)? There are 16 default chart types, and all of them are extensible so that you can customize a chart to your needs. Want to see what a real-world implementation of the charting components might look like? Have a look at the Dashboard example (Adobe Flash Player 9 required) and watch how selecting data slices in one part of the application affects the charts in the other areas of the application without pages refreshes or xmlHTTP requests. The power to visualize data sets, whether simple or complex, is a mostly overlooked feature when building applications, and the Adobe Flex 2 charting suite provides you with the ability to make your users much more productive at minimal development cost.

Have a look!



September 14, 2006

Adobe Co-Publishing Agreement With O'Reilly Excludes ColdFusion


Via Marco Casario's blog, I noted that Adobe has signed an agreement with O'Reilly Media "to co-publish and co-brand books and online learning resources for developers creating applications with technologies such as Adobe Flex, ActionScript, and Adobe Flash and Flash Video." -- but not ColdFusion. Sigh.

As a long-time ColdFusion developer, this announcement is one more point of frustration with the fact that ColdFusion seems to miss out on the larger audience exposure that its siblings seem to be enjoying. While this announcement seems to be in the context of promoting "Web 2.0" technologies (a Tim O'Reilly-coined term that I absolutely loathe, by the way), this seems like the type of agreement where letting ColdFusion ride the coattails of the Adobe Flex 2 marketing strategy could be a win-win for both sides.

Why? Well, you can't do a whole lot with Adobe Flex 2 if you don't have a server-side technology to do things like database querying, authorization/authentication, etc. It's a presentation layer technology (the "View" in the Model-View-Controller pattern for those wishing to be buzzword-compliant), and Adobe has been preaching for months now that the single easiest way to integrate Adobe Flex 2 with your back-end (the "Model") is via ColdFusion (in this case, the "Controller"). So why not add ColdFusion MX into this agreement and subsequently provide resources for showing just how smoothely integrated the two technologies are. You'd have the expertise of the Adobe ColdFusion team providing high-quality examples while the O'Reilly team provides the author/publishing/conference resources to expose this seamless integration to the masses. In return, O'Reilly gets an extremely passionate ColdFusion development community to support their efforts.

You almost literally can't find a competent developer who hasn't heard of or used an O'Reilly-published book -- they're everywhere and are usually excellent resources. While I know that they decided a while back not to publish a ColdFusion MX 7 book due to sluggish sales of the 6.1 version, there could have been alternative resources published with this agreement that might have focused even a small part of the spotlight on the power and ease of developing with ColdFusion (i.e., O'Reilly-backed articles, samples, etc.).

Adobe currently seems to have their marketing engine squarely focused on Adobe Flex 2 and ActionScript 3, as well they should. I just hope that the same zeal with which they're pursuing the growing rich internet application development community is equalled or surpassed with next year's ColdFusion 8, aka Scorpio, release.



September 5, 2006

For Tech Job Seekers and Employers, Joel Spolsky's New Site Is A Great Idea


I've mentioned before that I'm a big fan of Joel Spolsky. He just "gets" how to run a technology company and treat his Fog Creek employees. Well, he has just set up a new Jobs site that essentially aims to take the annoying marketing and recruiting out of job hunting, while providing high-quality tech listings. Are you tired of vague job listings that ask if you want to work for a "well established, leading online company," but get no more information than that until you talk with a recruiter? Well, apparently, so is Joel (and me too, for that matter).

He's not aiming for it to supplant the gi-normous job boards like Monster or HotJobs. Rather, his goal is to keep it as a niche site where you can get the real job details for a given position without any hassle. Unique features include:

  • For candidates, the site is entirely free, including not having to register for anything.
  • Listings expire after 3 weeks. As he notes, most candidates don't apply for jobs that have been posted for longer than that.
  • All job posts must disclose the company at which the position is located. No "Company Confidential" listings are allowed. Since there are no recruiters involved, you can do all the research you want for a position without being hassled.
  • For a small $350 fee, an employer can post listings on the site. In comparison to the 15%-20% of base salary that recruiting fees that many recruiters charge employers for placing a candidate, this is chump change.
  • He offers his standard 90-day money back guarantee. If you don't find anybody to fill the position, hire the wrong candidate, if they quit just after starting, etc., you get your $350 back unquestioned. (Charities and non-profits can get in touch with their customer support reps about reduced fees.)
  • The job posting form contains checkboxes for answering each of the 12 questions of the Joel Test, which is his measure of the quality of a software team. This is a non-marketing way to really gauge the type of team you might be joining.

Since this is an experiment on his part, you'll note that there is no search functionality or saved profiles or anything beyond the basic listings. (This might expand if the site proves to be successful.) However, from Google to Six Apart to BEA to MySQL, there are a number of big-name company jobs currently listed, along with a lot of other smaller companies who I have seen are doing some great work.

I'm not sure how the site will hold up, if only because recruiters will always find a way to post seemingly legitimate job listings, and there doesn't seem to be a screening process for who is posting the job. That being said, I love the idea of side-stepping recruiters with no tech background who are seemingly the gatekeepers to a lot of great jobs.

Here's Joel's official announcement.



August 17, 2006

Adobe Flex 2 Receives High Praise From eWeek


I just saw over at eWeek that Labs Director Jim Rapoza has given an extremely positive review of Adobe Flex 2. It's also currently the "Top Story" on their homepage, which should give it some nice exposure for the time being. There's also a small slideshow that has some screenshots of their walkthrough. The one negative that they mentioned was that Flex Builder currently only runs on Windows. However, as Sho Kuwamoto recently showed, there is a Mac build of Flex Builder 2 running internally at Adobe right now, so that criticism will hopefully be squashed in the near future.



August 7, 2006

Browser Detection Gone Too Far


I was looking through the latest stories on MXNA a few minutes ago and saw an entry that looked interesting enough to click into. So, using my trusty FeedDemon blog reader, I clicked the headline and was taken to the entry...for about a second. All of a sudden, I was automatically re-directed to a page that said this:

Stupid Use IE Message

Are you kidding?! I mean, I'm a big Firefox fan and use it for almost everything, but please don't interfere with my personal preferences by re-directing me to a landing page telling me to upgrade. That's both obnoxious and not your business. In this case, FeedDemon happens to use the IE engine within its IDE to access the internet. Yes, I know you can select an option to open links in my external default browser (which is Firefox, by the way), but I want to stay within the IDE. And yes, I see that there's a link to "continue anyway," but you know what? You lost me as a reader already. I'm not interested in continuing.

I don't mind subtle prodding to get users to upgrade, i.e., Firefox banners in a side column, etc. But don't jump in the middle of my experience and force your personal preference/wish on me. I came to your site to read your content, not be told which tool to use to do so.



July 31, 2006

A New Week, A New ColdFusion 8 Wishlist


OK, so at Damon's request, I'm going to submit my ColdFusion 8, aka Scorpio, wishlist for feedback. Contrary to Jared's sentiments, I think this is the best time for the ColdFusion community to air its multitude of bug/enhancement/feature requests. Sure, some (lots, even) of the suggestions might be off-base and out of ColdFusion'sy intended scope, but I believe it's more important that we have people passionate enough to think and contribute their thoughts rather than be chastised for their efforts. And you know what? You never know what seemingly crazy idea could evolve into something useful. Also, as ColdFusion matures, it not only competes with other technologies, but it competes with its own previous version (much like Windows XP adoption has been slower than anticipated due to existing satisfaction with Windows 2000). Therefore, it's increasingly important to hit more "home runs" with each new major release.

I've broken my list down into three major areas: Enterprise (Platform-level), Developer-level, and Language-level. Further, not every wish below are ones that I'd personally like to see, but I believe they're all worth discussing at some level. Lastly, they are in no particular order. I know it's a really long list, but a major release shouldn't just be about fixes; it needs to innovate and that's what I think certain items below allow the user to do. Hence the long, detailed list with lot of explanatory text for each point.

Enterprise (Platform-level)

  • Serializable CFCs: Come on, it's time to leap that last technical hurdle (I think it was either WebSphere or WebLogic that was the obstacle to getting this in CF 7) and make my cluster life easier. I'm sick of my workaround for a basic enterprise feature.
  • Allow logging to be done to one location rather than forcing to cfusion/logs: This one's important to me as a developer who works in a clustered environment. Being forced to write to the cfusion/logs directory is annoying because I then have to guess which server just served a request by looking at the timestamps. As you add more instances to the cluster, the more of a hassle this becomes.
  • Better integration with Word and Excel file formats: Regardless of how you feel about Microsoft, their format is the de facto standard in virtually all enterprise organizations. Writing Word and Excel documents (including charts, etc.) would be immensely helpful. We use a product called e.Spreadsheet by Actuate for our XLS reporting needs, and it's a pure Java solution that supports all but 2 extremely obscure Excels features. It has matrices, charting, pivot tables, in addition to formulas. So this is definitely technically possible to accomplish and could be a very compelling feature for an enterprise.
  • Better management of whitespace: I've never understood why ColdFusion stinks with whitespace suppression. On the one hand I recognize the argument that it can be tricky to determine what is and is not intended whitespace, but other languages don't have this problem, so clearly this must be solvable. We use (sort of) Empirix's e-Test Suite for our functional and load testing needs. However, cleaning up whitespace technically causes regression test failures. Now, I'm not saying this should be solved because one product has problems with it, but I just don't see any need to keep whitespace around in the generate HTML source.
  • Upgrade Web Services Engine to Axis2: Of all the wishlists I've seen, I have to say I'm a bit surprised I didn't see more in the way of web services enhancements. Axis2 supports REST, which I personally prefer to SOAP, as it's unbelievably easier to work with. Also, it has better support for true web services security, which is a solution I desperately need. Appending a user name and password to the WSDL URL doesn't cut it. Introduce formal features for both of those and I'm a much happier person.
  • LiveCycle Integration: I'm still getting a feel for what exactly LiveCycle does and doesn't do, but I would wager that most organizations have some sort of document flow process that could stand to be better managed. LiveCycle, from what I can tell, does this. I'd love to be able to integrate an enterprise-level document flow system into my company's practices, and the ease with which CF could potentially offer that is intriguing. I'm still thinking through this one a bit though.
  • Better search capabilities for clustered environments: OK, I know that Tom Jordahl and others worked their tails off on upgrading the Verity engine for the CF 7 release, and the new features look incredible. But I can't use them because I'm in a clustered environment and there are no provisions for properly managing the collections across the servers (I think it's licensing or something). I like searching. I need searching. I can't use what's currently there, and I'd prefer to stay away from a database-centric solution or pay $100,000+ for a modest solution.
  • Essentially, Fusion Reactor or SeeFusion: This one I know is being worked on because Adobe's been pretty open about it, but it really needs to be a home run. Lack of metrics and insight into CF instances are the bane of many developers' lives. I hope that Adobe follows Integral's lead by providing incredibly helpful visual indications and graphs so that I can get a feel for what's going on by literally glancing at my monitor.
  • Plug-in based architecture to turn off Verity, Flash Forms, etc. OK, let's face it -- lots of deployments don't use certain "add-ons" to ColdFusion, such as Verity, Flash Forms, and Reporting. Whether it be the inadequacy of the existing feature set or the reliance on a previously-existing infrastructure, the aforementioned features are loaded on each and every re-boot of the server instance, taking up valuable resources. I'd like the ability to turn on and off (via the CF Administrator or Admin API) pieces of the CF runtime. The floodgates were opened when Event Gateways were allowed to be turned on and off, so it should be technically possible to achieve. I'd like to see this extended to the other plug-gable features so that I can reduce the memory footprint. I think hosting providers in particular would use this feature.
  • Full admin API hooks to everything CF Administrator offers: The CF Admin API that shipped with CF 7 was great, but I'd like to see a one-for-one match in the offered features. This would be immensely convenient for vendors who want to package up an application but provide their own interface to the configuration settings.
  • Role-based CF Administrator: I think this one is long overdue. Your security is only as strong as its weakest link. If one were to get the password to a CF Administrator, there's way too much that can be done by default. A basic roles-based login enhancement so that certain areas (i.e., datasources) can be locked down while other less-hurtful settings (i.e., debugging settings) can be accessed by anybody would be incredibly useful.
  • Enhance the report engine: It's too easy to point out the various bugs that people have reported with regard to the Reporting engine in CF 7. It was a first attempt, and it was to be expected that there would be problems. However, the "intro period" is over. I'd like to see a robust reporting engine implemented that will allow me to include complex charts and graphs and page breaks.
  • 64-bit and JDK 1.5 support: Damon already posted in one of my previous entries that Scorpio has JDK 1.5 support, but it's not out yet so I'm listing it! ;) As for 64-bit support, I'd like to see a pure 64-bit kit available so that I can take advantage of the larger per-instance memory spaces that 64-bit platforms allow.
  • .NET Runtime: This one is sure to draw the ire of many, and still others will make the point that "New Atlanta does this with BlueDragon already, so why waste our time." Here's the thing though. It has been reported recently that .NET has surpassed Java as the development platform of choice. I personally don't think that's accurate at all, but there's no denying that .NET has made significant inroads. Why not offer the ability to deploy on both of the major enterprise platforms? It can only increase ColdFusion's exposure while opening up new sales channels for the product.

Developer-level

  • CFDoc: This is my second biggest enhancement request for CFCs (serializing them being my biggest). Documentation is so critical to any project. But this documentation doesn't always have to be a Word document with use cases and "business-speak." Just as important is the API documentation, and let's face it, the hint attribute just doesn't cut it. I'd like to see a proper Javadoc/ASDoc implementation for ColdFusion so that I'm not confined to just a phrase or two. If you provide a more robust solution for documentation, I'd wager you'll see more robust developer documentation.
  • IDE overhaul: This one's a biggie and is likely a whole separate development cycle, but I had to throw this one in here. Mark Drew has done a phenomenal job of taking over the CFEclipse effort. But the reality is that his efforts and the efforts of many others who have contributed to the project all come in their spare time. That is neither fair to them nor to the CF development community who are essentially at their mercy when it comes to bug fixes (and yes, there are bugs). It's been over a year since the last official, stable release. ColdFusion needs a professional IDE. I have been working with Flex 2 lately, and it's downright appalling to see the level of professional polish on the Flex Builder IDE versus the CFEclipse IDE. That's not to be taken as a shot at Mark et al. Rather, it's just a recognition that I am immensely more productive in the Flex Builder IDE than I am in the CFEclipse IDE. Flex is about 2 years old and ColdFusion is 11 years old, and Flex development productivity blows away ColdFusion development productivity. That's a shame and I hope that Adobe finds the resources to dedicate a team of developers who can polish up CFEclipse by providing me more than RDS support, for which I have zero need. Things like CFC introspection and recognition that I didn't properly var scope a variable are much more useful.

Language-level

  • Concept of null: First and foremost, I'm not necessarily talking about being able to type null itself. I recognize that the underlying engine would need a serious overhaul to be able to support it. However, I need to be able to declare a cfargument as a type of numeric, yet still have the option of not passing a value in without having to default to 0. In a lot of the work that I do, zero has a very real meaning and it can't be used as a conditional check to see if a numeric value is valid. Further, I shouldn't have to switch the datatype and use a string instead because that's not the correct self-documentation of what that argument is.
  • Re-do Flash Forms: One thing that I noticed at CFUNITED was how even the Adobe employees were making fun of Flex 1.5 because of how hard it was to do things relative to Flex 2. Flash Forms, in their current incarnation, just don't cut it. It's a "cute" feature without any real-world possibility of implementing. I vote that it be entirely overhauled and that the Flex 2 engine is embedded. Then you can wheel and deal with some incredible user interfaces while providing the ease of use that we have come to know with ColdFusion. For backwards compatibility, if it can't just be upgraded without touching anything, I would suggest that there be a toggle switch between 1.5 and 2 to maintain backwards compatibility (i.e., a version attribute) so that existing implementations won't break.
  • Spry integration: Spry isn't quite ready for production just yet (nor is it presented that way), but it's a compelling alternative to Flash-based interfaces. The current ability to create an accordion interface is just a small part of its potential as not only an interactive data bus but a viable UI alternative to both "conventional" HTML and Flash.
  • Interfaces: Yep, I'm saying it. I'd like to see interfaces. Does ColdFusion need them? Nope. Did ColdFusion need CFCs? Nope. I both built and saw some pretty complex applications pre-MX, and I could have continued to develop in that paradigm if I wanted to. But CFCs became compelling because they allowed to me to do my work in a more efficient, cleaner way. In my opinion, interfaces offer me this potential as well, as they allow a system architect to "stub" a domain model and leave it to the developers to implement the details. Now, don't misunderstand, I'm not meaning to suggest that introducing interfaces will be as significant as introducing CFCs. And I'm sorry, I just don't buy the argument that somehow introducing interfaces makes ColdFusion harder to develop with. First off, it's optional and second, it's truly gives you the power to "develop to an interface, not an implementation." Perhaps a new file type of .cfi could be introduced to allow an application architect to specify the method signatures, while also introducing an attribute to cfcomponent called implements, which allows users to specify multiple .cfi classes.
  • Deprecate cfscript: Don't remove it, just formally acknowledge that the engineers are not going to be doing anything more with it. I was a big cfscript fan for a long time, but I was sick of having to have a hybrid codebase of script-based logic wrapped by tag-based features such as cflock or some such because they can't (natively) be called within a cfscript block.
  • Add stream-based file read/write functions to support large files: The "read the whole file into memory before being able to do anything with it" is antiquated. I don't know what the old underlying C options were (the language that pre-CFMX was written in), but Java offers some robust options for reading and writing large files by streaming. This is a must-have, and I think the increased traffic recently on the mailing lists is indicative of this.
  • IMAP support: Let me see... there's POP, FTP, HTTP, SMS, and XMPP support, but no IMAP support? Come on, let's get this done.
  • Add a function to distinguish between createObject() and createCFC(): FUD or not, shared hosts are a pain with this. My host (HostMySite) is not, but there are many who lock down createObject and cfobject from being used (thereby preventing CFC usage) because it provides access to the underlying Java API, which could theoretically allow malicious activities and/or suck up system resources. I'm not sure how much I buy that (it's possible to do it in other ways too that aren't locked down), but the ability to distinguish between calling Java objects vs. non-Java objects at the tag-level would be valuable and helpful.
  • For the CF tags that generate markup, support the ability to validate generated markup using a specified doctype: A long-time pet peeve of mine. If I'm going to spend the time to make my markup compliant to a certain validation level, don't hamstring me by outputting non-compliant code. Add an attribute to each affected tag called markup that takes values like "xhmtl" or "html4" (i.e., cfchart markup="xhtml").
  • Ability to throw objects rather than strings: I've come across this particular obstacle recently and I often find myself wishing that I could throw an object using cfthrow rather than just a string. This would allow communication between the calling and target code to be a bit smoother rather than having to write workarounds for getting the appropriate information back.
  • Add a trace() function that allows you to dump an object during execution: This one's straight out of the ModelGlue framework, but there's a super handy function in there called trace() that allows you to dump out any object during page execution and have it displayed in the debugging info at the bottom of the page. This allows you to see the evolution of a variable throughout the whole page rather than having to do a cfdump/cfabort in broken steps.
  • Take the most popular cflib UDFs and make them native: This is just a convenience. I would think that Ray and Rob have stats on the "most downloaded UDFs" or "most popular UDFs." Just make our lives easier and make the top 20 or so native.
  • Syndication: I know that there are those who are calling for a RSS tag, and quite frankly, I don't think the end-user cares if the feed is RSS or Atom as long as they get the right content. However, an interesting blog entry I read recently got me thinking that maybe Atom is the better selection. That being said, some sort of RSS/Atom feature needs to be added to account for the major browsers offering the consumption of these feeds natively.
  • Full i18n features to please Paul Hastings, and the non-English speaking world: This is so crucial in today's world that I'll just point to Paul's recent posting to outline what needs to be fixed.
  • CFImage: Eleven years in and ColdFusion doesn't have anything built-in to it to really work with images on any sort of useful level. I know that some will point out that Java can do this natively, but the point of ColdFusion is to "Make Hard Stuff Easy," and I don't think developers should be forced to use the Java API just to get some basic functionality.

I'm sure there are some features that I've left out, but, quite frankly, they don't come to mind, so how important can they really be!

Go ahead, fire back!



July 20, 2006

My Flex Ad Campaign Suggestions


So Ryan Stewart rightly flamed Adobe for a poor execution of an ad campaign they were running on some of the Federated Media sites. In one of the comments, Jeff Whatcott, Senior Director of Product Marketing for the Enterprise and Developer Business Unit at Adobe (I'm not sure his title can get any longer), not only acknowledged the execution gaffe, but further comments that the campaign has been pulled altogether. He then went on to challenge the readers as to what we think a better online advertising campaign should be:

So here's the invitation: please jump on this thread with your specific suggestions for what the Flex online advertising should say and what is should look like. What should the tone be (sophisticated, edgy, friendly, in your face, or what have you)? What should the catchy tag line be? What should the short product description be? What benefits, if any, should we mention right in the ad and what should be on the jump page? Should we bang directly on the competition (think Oracle ads) or should we focus on our own strengths? What creative concepts should we consider (code puzzles that convey a message, movies of Flex coding/results, what else)?

Here's the thing though... I'm a developer by trade, so actually designing something more than a stick figure (which is a challenge in and of itself) is pretty comical. Seriously, Photoshop/Fireworks and I just aren't friends. So I'm going to leave the "looks" part of his request to the pros. But that doesn't mean I can't put in my two cents on a couple of his questions. Specifically:

What should the catchy tag line be? What should the short product description be?

I spent a bit of time tonight just throwing down ideas. Here's what I've come up with so far...

Catchy Tag Line Ideas

  • Adobe Flex 2: Why Wait For What's Here Already?
  • Adobe Flex 2: Flash Reborn
  • Adobe Flex 2: Rich Internet Applications Redefined
  • Adobe Flex 2: The Web Like You've Never Seen It
  • Adobe Flex 2: Free Has Never Been This Easy
  • Adobe Flex 2: Set Your Data Free
  • Adobe Flex 2: Unleash Your Data
  • Adobe Flex 2 and You: Perfect Together

OK, the last one's awful, but I had to give a shout out to my New Jersey roots by paying homage to its successful 1980s ad campaign: New Jersey and You, Perfect Together. Feel free to ignore that one. Anyway, I think the other ones walk the advertising balance between piquing one's interest, conveying (albeit at a very high level) what the technology does, and taking a light jab at Microsoft (yes, I had Sparkle in mind in the first bullet.) I also had one that said "Adobe Flex 2: The Power Of Your Desktop On The Web," but that's really more Apollo-esque, so I left it out.

Short Product Description

This one's pretty tough too because you have several audiences that will potentially see the text, and you need to cater to all of them at some level. From hard-core C++/Java/.NET developers to designers to managers, the text needs to have something that will at least make them click into a more descriptive landing page. This is what I came up with:

Adobe Flex 2 delivers on the promise of Rich Internet Applications by fusing the power of the web with the familiar feel of your desktop. And because it runs in the Adobe Flash Player, the most pervasive plugin in the history of the Internet, it runs exactly the same on Microsoft Windows, Mac OS X, and Linux. Leverage your existing Service Oriented Architecture by putting the interactivity of traditional desktop applications at your customers' fingertips. Oh, and it can be done in about 10 lines of code!

My thought process was to come up with something that describes what the product does, while promoting its competitive advantage in that it's cross-platform, runs in a familiar plugin, and doesn't require a complete rewrite of existing code. I'm still not that totally content with it, but I thought I'd throw it out there for feedback to see what others are thinking.

I stayed away from a couple of other people's suggestions and some of Jeff's questions intentionally.

  1. I didn't put any code as a complement to the overview statement. One developer pool that I know Adobe is trying to pull from is the hard core C++/Java/.NET camp. As a long-time ColdFusion developer, there's still a stigma that tag-based languages, such as ColdFusion and MXML, are inferior because their abstraction takes away the developer's power and degrades overall performance. I would submit that the landing page should have the links to the code samples along with plenty of videos that point out how quickly you really can develop some pretty advanced behaviors. Also, the code examples shouldn't rely on third-party tools, such as Flickr. It's cool that you can do that, but I don't think you're going to see people rusing out to get their own Flickr API key just to run a sample. I actually think the samples are a big strength for Adobe, and they've done a good job of getting examples for all levels of expertise online.
  2. I don't think Adobe should go the "Oracle route" and single out competitors. First off, it gives the competitors free press. Let them pay for their own airtime. Second, I think it's class-less and evokes a feeling of fear that their own product is inferior and they're just covering those shortcomings up.

What do you think? How would you improve on the current Flex 2 online marketing campaign? How'd I do? Remember, I'm a developer, so my thoughts are really just raw brain dumps...nothing polished.



July 10, 2006

Great OS X Resource For "Switchers"


So I had no idea that there was a name for people like me who are making the switch from Windows to Mac OS X. Apparently, we're called "Switchers." That's cool...Lord knows I've been called worse! Anyway, that's not why I'm writing this entry.

I was surfing through Digg last night and noticed an article entitled A Guide to OS X Software for Switchers. Now, even though I had to send my MacBook Pro back for a new one (grrrrrrr) and am still waiting for it, this "guide" is exactly the sort of resource I am looking for. The one area where I've had some issues getting used to the switch is how to get the "little things" done that were second nature to me in the Windows world. There are lots of resources for using "big ticket" items like web browsers and Eclipse, but I'm talking more about things like unzipping SIT files (seemingly the preferred zipping method for the Mac community), FTP-ing files to my web site, capturing screen shots, etc. Well, this "Guide" has all those answers and more. If you are a recent Switcher or even if you are a long time Mac user, there are tips, tricks, and references for everybody that are extremely useful.

Now if I only had that replacement machine to apply these tips... ;)



July 5, 2006

Joe Rinehart on TheServerSide.com


I was just perusing through my aggregated blogs and saw that Joe Rinehart has posted an entry on TheServerSide.com entitled IoC, AOP, and Rails-like productivity...in ColdFusion?. In the entry, he notes that "hot" areas of J2EE development such as Spring and Aspect-Oriented Programming (AOP) are available in ColdFusion and, coupled with established frameworks like Model-Glue, can make the lives of J2EE developers much easier. Further, he notes that since ColdFusion is just a J2EE application itself, existing infrastructure can be leveraged, effectively minimizing or outright eliminating the need to switch to alternative technologies such as Ruby on Rails.

I am specifically pointing out this entry because it's great to see ColdFusion being promoted on major J2EE-developer sites (as it should be). This sort of "grassroots" marketing is far more effective than glossy magazine ads that most people will likely skip over when reading their trade magazine. Plus, with Joe's YouTube videos, current and prospective developers can see a real-world application of these concepts rather than just hearing and/or reading that concepts like Inversion of Control (IoC) and AOP are merely possible.



June 22, 2006

Adobe Developer Week Breeze Presentation Links


Via Ted Patrick's blog, I saw that Adobe has released the URLs to all the recorded Breeze presentations from Adobe Developer Week. I attended several of them and will try to post up a quick review of each when I get some time to breathe (along with the 85 other topics I've been wanting to post about but haven't had time to). However, I will say right now that most of the presentations were excellent and I'm absolutely in love with Breeze as a conferencing platform.

Enjoy.



June 15, 2006

Leak? June 28th Release For Adobe Flex 2


Scott Langeberg just posted on the flexcoders list that he learned in a Breeze webinar that Adobe Flex 2 is slated to be released on June 28th! Here is the contents of the post, which includes the long-awaited pricing breakdown:

According to Sydney Sloan (Marketing - Adobe) in a Breeze webinar @ 11AM (c):

Official release date:

June 28, 2006

Pricing as follows:

Flex 2 SDK - FREE Flex Builder 2 - $499, $749 w/charting FDS - $6,000 (100 concurrent users), $20,000 (enterprise)

Interestingly: FDS Express - FREE (one app per cpu).

Charting components - $299

I want to stress that the above information came from one non-Adobe employee, and may not be entirely accurate, if at all.

That disclaimer aside, AWESOME!!! That positions the release to be on Day 1 of the CFUNITED conference, which also means that Mystic (aka, ColdFusion 7.0.2) will be released that day as well (it was noted in a Developer Week presentation that the CF bits would be released simultaneously). The release date does seem to make sense, as Adobe will be giving the keynote address at the conference that day, which makes it the perfect platform to make a major announcement such as this (among other channels, of course). Further, it follows the "first half of 2006" official line on release dates to this point, yet maximizes the time they have to get it out the door.

I have to say, the pricing is extremely aggressive, and I think is a further testament to how much Adobe has riding on this release. If you haven't been checking out the online presentations this week surrounding Flex during Adobe Developer Week, then you're missing out on a ton of great information.

P.E. -- (Post Entry) I hope Sydney Sloan doesn't get in too much trouble!!




Parallels Desktop for Mac Goes Gold


*** Updated: Thanks to Walt Mossberg for pointing out that his columns are available for free. The referenced article link below has been updated accordingly. ***

My colleague Sam gave me a heads up this morning that famed technology columnist Walt Mossberg of the Wall Street Journal wrote a glowing review (paid subscription required, unfortunately) of Parallels Desktop for Mac. It's on page B1 of today's WSJ paper edition, if you happen to have one. As I went over to the Parallels site, I noted that the final version of the product was released today, and that they introducing the price point at $49.99 until July 15th (the full price will be $79.99 after that).

Like I said, Mr. Mossberg has extremely positive thoughts on the product, with only a few small drawbacks that he notes will be fixed by Parallels in a subsequent release (i.e., USB 2.0 works as USB 1.1, no DirectX support). He writes that, as a test, he wrote his article partially in the Windows version of Word and then cut-and-paste it seamlessly into the Mac version of Word to show the interoperability. Further, all the standard applications that you might use on Windows (MS Office, Internet Explorer, Adobe Reader, Firefox, etc.) all worked without issue and were very snappy.

For those who might be thinking that Apple has a free way to do the same thing (called Boot Camp), there are a couple of notable drawbacks to it:

  • You must entirely shut down and re-boot into the desired operating system
  • You must pre-define a partition for Windows, whereas Parallels is really just a huge Mac data file on your hard drive that uses only as much space as Windows needs

Overall, this is a killer product and, honestly, the only reason why I entertained (and ultimately bought) the idea of getting a MacBook Pro. The barrier to crossing-over is almost entirely gone, and I believe that Parallels is a company to keep your eye on.

In closing, if you'd like to read about some more "real world" experience rather than simply taking Mr. Mossberg's column as gospel, Sean Corfield (a long-time Mac user who needs Windows for certain job requirements) wrote a great write-up on his experience with it thus far.



June 7, 2006

MacBook Pro, Table Two!!


OK, after much deliberation (and intentionally waiting in the hopes that Intel would release the Merom chips early enough to warrant holding off for the Core 2 Duo), I got my (financial) act together and bought my first Mac! It's on its way from Shanghai, China, as I write this.

Holy cow was it scary. Seriously. You have to understand, I don't own a home, car, or other "big ticket" item where dropping a couple thousand dollars is a drop in the bucket. (Incidentally, for those who don't know, I live in New York City, hence the lack of owning those things...I'm not homeless!) Sure, I bought a Dell about 5 years ago out of college, but I was a bit more reckless with money then, so I tended to rationalize things in terms of "this costs 3 nights of drinking." Plus, it was the Internet boom, when everybody in our line of work thought they were going to be millionaires in no time. But there are a few reasons why I was "scared."

First, as much as Apple has become en vogue again, I have to be practical and keep in mind that I will rely heavily on this machine for work. This isn't a vanity purchase by any stretch. So it's important for me to be productive as soon as I receive the machine. Enter the new Apple store on 5th Avenue here in Manhattan (which is the most beautiful piece of architecture I've ever seen for a retail store) and Parallels Desktop for Mac.

Why the Apple store? Well, on Monday after work, I decided to walk up to the store and check out the difference between the 15.4" and 17" MacBook Pro. I spent one solid hour using each machine to get a feel for each. Never once was I told by any of the employees that I was hogging the machine (there were about 10 of each on display, so it's not I had the only one, but still...). Further, when I finally got all my questions in order, I peppered two employees who not only never sighed or gave any indication that I was a pain, but they got incredibly excited that I was looking to switch and spent another half an hour walking me through the OS and pointing out keys things a developer would need to know. I was blown away. I was very up front that I wasn't going to be purchasing from them at that moment and they couldn't have cared less. There were hundreds of other customers they could have easily gone on to them, but they didn't. Great stuff.

As for Parallels, well, they're my life boat. With their Desktop for Mac product, I can still fall back to Windows when I need to. Since Flex Builder 2 doesn't exist for the Mac (yet), I know I'll need to be in there for some things, and it's great to know that one machine can handle both of my needs.

OK, so what did I get? I went with the 15.4" MacBook Pro with 1 GB of RAM and the 100 GB hard drive at 7200 RPM. I also ordered an additional 1 GB of RAM from NewEgg, who is selling it for literally almost half of what Apple wanted for the same amount ($160 USD vs. $300 USD). I chose the 15.4" over the 17" because the 17", while sleek and beautiful was a bit too much machine for me. I was telling somebody yesterday that using the 17" MacBook Pro reminded of a line from the movie Starsky and Hutch towards the end when Ben Stiller is telling Owen Wilson that his mom never "thought he could handle the V8. It was too much car for him." Well, that's how I felt about the 17" model. It was monstrous and noticeably heavier (about 1.5 pounds). If you're looking for a desktop replacement, it's a no-brainer, but not if you truly need a portable machine.

Before closing the entry out, I do want to give a huge shout-out to Adam Wayne Lehman. I met Adam last year at the CFUNITED conference and we've kept in sporadic touch over the last year. Out of nowhere, Adam offered to sponsor my purchase so that I could receive 10% off the price. Apple has this cool program where if you work for the federal government, you can sponsor up to 6 friends and/or family to buy products from the Federal Employee store. This unsolicited gesture saved me almost $500 USD off the total price! This is yet another reason why I can't recommend the CFUNITED conference enough if you're a ColdFusion developer. Thanks again Adam!



May 23, 2006

Free Online UML Course From The Ground Up


Using the Unified Modeling Language (aka UML) is an area where I know lots of developers are interested in but don't really know how to get started. It's a very dense area and it's extremely easy to get in lost in the various types of diagrams available in the language. I've searched around for tutorials myself, but the hits I usually get are the "first in a series" that never seem to have a second or third entry!

Well today I was using my UML modeler of choice, Poseidon for UML by Gentleware, and decided to go to their site to see if they had an update for their current edition (they did). On reaching the homepage, I was extremely excited to see that they have partnered with Synergy Learning to provide an incredibly comprehensive online course entitled Introduction to Object-Oriented Modeling and UML.

I went ahead and clicked into the course to see if it was the usual high-level stuff and was blown away by how detailed the course is. Again, there's no registration and no cost for the course. Not only do they cover virtually every area of UML and approaching UML, but they offer the course as PDFs, PodCasts, videos, and downloadable source code. Here are the high-level areas covered:

  • Overview (how to approach Object-Oriented Modeling, intro to the Poseidon for UML IDE)
  • Structural Elements (modeling object, classes, instances, etc.)
  • Behavior (modeling class interactions)
  • Inheritance (modeling base and sub classes)
  • Advanced OO Concepts (modeling relationships, packages, etc.)
  • Best Practices (naming conventions, commenting, etc.)

If you're a complete novice to UML, this looks to be your one-stop shop. Even for intermediate and advanced UML users, there looks to be something to learn. Gentleware even offers a free Community Edition of Poseidon for non-commercial use if you're just curious about learning. I've used UML to do class diagrams, use cases and light class interactions, but there's so much I don't know about the language. I will say that if properly built in to your development practices, UML can really be a life saver. It helps me better visualize my domain and the relationships between my classes.

In case you're wondering, I wasn't able to find anything with regard to whether or not this is a short-term offering. Have a look!



May 19, 2006

ColdFusion Needs A Roadmap


I've thought about this off and on for some time, but a recent post by Steven Erat got me thinking again: ColdFusion really needs a roadmap.

I've been actively using ColdFusion since early 1997 (side note: I almost had a coronary as I just thought about that). In all that time, though, there has never (publicly) been any sort of development roadmap for the product. All we've been able to do is cross our fingers and hope that Allaire/Macromedia/Adobe finds it in their heart to add or support a particular feature. Sure, Ben has made the CFUG rounds before each ColdFusion release to generate some buzz and gather feedback, but that's not really what I'm looking for.

As a developer who also has a significant hand in my company's IT procurement processes, there are certain things I need to know about any product before I'll move ahead with them. Our larger purchases are not "spur of the moment." (In this context, "larger purchases" means anything over a couple thousand dollars.) However, the lack of a roadmap really makes it hard for me to properly plan our infrastructure and development timelines. Don't misunderstand, I'm not looking for Adobe to announce every new/enhanced/fixed feature of the product in advance of its release. As a developer, I certainly know that planned features are always constrained by time and resources and are subject to falling out (see replicating session-based CFCs in CFMX 7 as an example ;). However, here are a few concrete areas where the lack of a roadmap in a hindrance:

  • 64-bit support
  • Java 1.5 support
  • Support for the latest Sun 1.4 JDK (1.4.2_11 is currently the latest JDK release, but 1.4.2_09 is the latest officially supported by Adobe)
  • Tentative Scorpio (aka ColdFusion 8) product cycle

Why do I need answers on the above? For starters, we're imminently purchasing a couple of new servers for our web site. In working with my sys admin, he's asking basic questions that I simply need to know the answers to in order to formulate an accurate spec. He's asking why we wouldn't go with 64-bit servers. The only answer I can give right now is that it's because Adobe doesn't seem to have plans to get ColdFusion working on 64-bit platforms (yes, I know it'll run in 32-bit compatibility mode, but that's not the same), so why spend the extra money? Do I necessarily believe Adobe hase no internal plans for this support? Not at all. However, in the absence of any other publicly available information, that's the only conclusion I can draw at this point. It could come tomorrow, it could come next year for all I know.

Regarding the Scorpio product cycle, it would be nice to have some sort of feel for the timeline. Is an alpha/beta imminent? Since Mystic is apparently going to be ColdFusion MX 7.02, does that push out the Scorpio cycle? With the new servers we're buying, I am also planning to upgrade our site to CFMX 7. However, if Scorpio is on its way in the short-term, maybe I'll hold off and take advantage of its new features. There's nothing on my company's web site that's screaming for a specific CFMX 7 feature. However, with Scorpio's rumored new resource monitoring features, that's something I could use and maybe I'll hold off on a purchase of FusionReactor or SeeFusion.

There's been frequent mention in the blogosphere lately about how Adobe and Microsoft are seemingly on their way for a competitive showdown. I don't know if I necessarily believe that. However, if it's true, one area that I believe Microsoft has a significant leg up is with their roadmaps. Sure, you can insert the latest Vista delay joke here, but the reality is that I know where their products are going. From Vista to Visual Studio to SQL Server, I know when I can roughly expect service packs, upgrades, etc. I can't say that about any product at Adobe other than Flex 2. I hope that Adobe learns from the (in my opinion) success of the Flex 2 public beta. Since I knew that some time in June is the expected release, I have been able to schedule development cycles with it accordingly. I just wish I could do the same with ColdFusion...



May 11, 2006

A Great Offer From HostMySite Regarding Ruby on Rails Hosting


I received an e-mail promotion from the great people at HostMySite that benefits both existing and prospective customers. They have just opened a free beta trial for Ruby on Rails hosting. With it, you get:

  • 2 GB hard disk space
  • 40 GB monthly transfer limit (which is gi-normous)
  • 50 MB on a MySQL 5 database
  • FREE setup fee
  • FREE monthly charge (during the beta)

For prospective customers, this is great because you literally have a risk-free experience with HostMySite as a hosting provider. If you don't like them, take your code and move your business elsewhere.

For existing customers, it's still very convenient. This account is separate from any existing account you might already have with them. That seemed a little annoying (one domain is more than enough for me for now!), but I contacted a sales rep for more details and here's the really cool part: You can simply request that the beta account be set up as a sub-domain for your existing account. For example, this web site is obviously under www.cbetta.com. However, if I wanted to participate in the beta trial, instead of having a domain like 12345.hostmyapplications.com, I could request that they set up rails.cbetta.com for me and they'll do it at no cost to me. Very cool!

Admittedly, I haven't gotten into Rails at all just yet. It's on my short-term "to do" list (Flex 2 is still my priority), and I know that's what the kids are using. Plus, it's always good to broaden your language base. But I was never really sure where to start with it and if it was something I really wanted to deal with hosting-wise. Well since I would now have the infrastructure professionally set up and ready to go, that's a nice barrier that has been broken down for me.

So what happens at the end of the beta period? Well, I checked into that as well and it turns out that HostMySite will give 2 weeks notice prior to the end of the beta. At that point, you can either decide to move forward with whatever pricing plan they will offer (yet to be determined), or you can just zip up your code and it's all yours to take someplace else. Most importanly, I was assured that there will be no automatic charges to my account. I will explicitly have to give my consent to add the Rails hosting plan to my current setup when the beta trial is completed.

Check their site out for more information.



April 21, 2006

Review: The Adobe Messenger Bag


So a few days ago I gushed about the availability of the Adobe Messenger Bag from the MEDIUM Design Group. I promised a review of the bag, and here it is...

Ordering Process and Delivery

OK, so this part isn't about the physical aspects of the bag, but customer service is as important to me as the product itself, so I feel like it's worth noting. The order process was the standard "shopping cart" format we've come to know and love. However, I went back to the site a few hours later to check the Order Status (like I said, I was antsy), but figuring out where to log back in was a chore in and of itself. In short, I'm not a fan of their store layout.

Anyway, I don't want to get off-topic by critiquing their site. However, I do want to compliment MEDIUM on one thing. I selected two-day delivery as my shipping option, and they overnighted it to me instead at no extra charge. A seemingly small enhancement to my order, but great customer service.

The Bag Itself

OK, so I had no way of physically seeing the bag before placing the order. I had to rely on the Flash demo of the product for my information because I am apparently the first one on the internet to have bought the bag! Upon arrival, I ripped the box open and saw this beautiful black leather bag wrapped in plastic. After taking it out of the plastic and removing the 768 mini sacs of desiccant (I swear, I thought somebody was messing with me), I noticed it was a bit wider than I thought it was going to be. That's not a bad thing, but just something I noticed. Then I opened the bag up.

Opening the bag... that's an interesting "feature." The flap with the Adobe logo is standard, and there is a slot for a name/address tag on the inside of it. Curiously, there was no tag provided. There is a swath of fabric that you roll up and down to open and close the inner compartment. When rolled up, you secure it by pulling down on straps on either side of the bag. The straps don't buckle and unbuckle, they just tighten and loosen. This rollup fabric is part of the "water-proof your contents" feature, and it's not bad. In the rain, the inside will definitely stay dry. However, I'm curious as to why there would be a need for it when you have the "rain hood" built in to the bag to cover the bag in the bad weather anyway. This thing is made of good-quality leather, so I'm definitely going to be using the hood if it's ugly outside.

After unrolling the fabric, I noticed that the bag didn't open as wide as I had hoped it would. At first I just thought that maybe the new leather was a little tight, but I came to realize it just doesn't open that wide. There are a ton of pockets and pouches in there, but since the bag doesn't open that wide, it's hard to get to any but the ones at the top. (I also found about another ten sacs of desiccant while perusing the pockets. This is crazy.)

Now, the big test... How does the bag handle a standard size laptop with a couple of books that I am reading. The laptop pocket in slightly "elevated" from the outer lining of the bag, so there's an extra cushion to protect your machine. But herein lies my biggest complaint about the bag. Remember how I said the bag didn't open that wide? Well, the natural side-effect of this is that you can't put a whole lot in the bag because that means the outer flap then won't close. I had my laptop, my new Pragmatic Ajax book and another amazing book I just finished entitled The Art of the Start by Guy Kawasaki. Neither book is very thick at all (a couple hundred pages each), but the combination of the three made it very tight to close the bag. There's no way the thick Ben Forta books would ever make it into the bag while still being able to properly close the flap. That being said, I thought about how much I really carry with me on a daily basis. I occasionally carry my laptop, but always carry a book with me. With that sort of load, this bag is perfectly adequate. However, if you're a "road warrior," I think the "tightness" of the compartment might be a showstopper.

The strap that comes with the bag is a bit of a mixed review as well. On the one hand, the strap itself is made out of the fabric that airplane seat belts are made from. It's smooth and it's sturdy. The padded part of the strap is great. It's a very good size and with all the aforementioned contents, it didn't bother my shoulder at all while walking to and from work over the last couple of days. That's the good part. The downside to the strap is that they don't give you a whole lot of slack. I like carrying my bag across my shoulder diagonally. In that position, I have the strap length max-ed out and I still find that I would like for it to be a little longer. It's not that big of a deal, but I do notice it. If you're a taller person (I'm 5 feet, 10 inches...178 cm for the non-Americans), I don't know how the bag would feel if carrying it cross-shoulder; it might be a bit snug. Also, the clips on the shoulder pad for streamlining your headphone cord isn't really useful if you're not carrying the bag on one shoulder.

The built-in rain hood is pretty cool actually, and even unexpectedly give you an outer pocket to put a book in without having to actually open the bag. It full covers the front and bottom of the back, but the back is exposed. That's not really such a big deal though because that's the part that would be hugging your body, which is (hopefully) covered by an umbrella.

Overall

Overall, I don't regret buying the bag at all. Heck, even the iPod has design flaws, even though nobody likes to mention them! The last big question is whether or not the bag was "worth" the $250 USD I spent on it. In a word, "no." (And again, other than the "cool" factor, are iPods worth their current prices? Not sure about that.) If the price point was around the $185 USD range, I think this would be a great buy. It is made of top-shelf leather and has all the fixings of a solid bag, but the space constraints on it don't really warrant the higher price tag, and can even be a showstopper in certain cases.

But I also realize this is a "boutique" bag as well. You can't walk in to a store and purchase it. Living in New York City, it's all about keeping your own identity. I now have a bag that I am happy with and is also unique to me. I won't get on the jam-packed subway in the morning and see others with it and that's kind of a cool feeling. To that end, if you're looking for a higher-end bag for work that exudes professionalism, it should definitely be on your list of candidates.



April 18, 2006

Yet A Couple More ColdFusion Misconceptions Being Propagated


Vince Bonfanti, the CEO of New Atlanta (who makes a competing ColdFusion engine to Adobe's), posted on his blog and the CF-Talk mailing list yesterday a "significant" milestone: BEA was now shipping a version of their WebLogic server with BlueDragon pre-installed. This is awesome for Vince and his team and, contrary to some snipes on the mailing list, I think it's great for them and for CFML as a programming language.

However, here's what bugs me. Both BEA's formal press release and a subsequent article by eWeek entitled BEA Supports ColdFusion Apps are so poorly written that they blatantly propagate two flatly wrong perceptions: that ColdFusion is a "legacy" language and that ColdFusion has not run on it before. Let's review each...

The BEA Announcement

The second sentence of the press release says that

"BlueDragon is designed to help enable customers to modernize and extend legacy ColdFusion Markup Language (CFML) applications to run on BEA WebLogic Server, which can thereby allow companies to reuse existing technology to help meet evolving business needs."

Further the whole third paragraph, which is essentially a quote from BEA's executive vice president of products says

"Several of our customers are still using CFML to run their businesses. Today's BlueDragon announcement is further proof of BEA's commitment to helping customers improve application performance and leverage their existing IT assets in service-oriented environments," said Wai Wong, executive vice president of products, BEA Systems. "It's also another example of how the company is continuing to invest in WebLogic Server and find new ways to help customers get to a modern app server without a lot of pain."

Since when has ColdFusion been "legacy"? And since when does running a ColdFusion application mean that you must be living in the dark ages? And where's any mention of the fact that Macromedia/Adobe's version has been running on WebLogic since the initial release of ColdFusion MX in 2003? (I think New Atlanta's flavor has also run on WebLogic for a while, but I'm not quite sure.) With all due respect to Mr. Wong and whoever else was involved in crafting this announcement, this was a horribly written, mis-leading press release. Further, if I'm working in Adobe's PR department, I'm firing off an e-mail to BEA with a fact sheet noting that ColdFusion has been running on WebLogic for about 3 years now!

The eWeek Article

This wasn't as bad as the press release, but was still mis-leading. Let's start with the very first sentence:

BEA Systems is offering ColdFusion users the ability to run their ColdFusion applications on the BEA WebLogic Server without requiring a rewrite.

Really? This hasn't been previously possible? ColdFusion is Java, so as long as it had been running on a J2EE spec-compliant server, there has never been a need for a re-write! Coming from ColdFusion 5 (which ran in its own proprietary C++ engine)? Well, I'd hope that one would take the time to refactor code to take advantage of ColdFusion MX's new features. Further not "requiring a rewrite" says nothing of the fact that you'll definitely need to spend some time getting your JVM settings hashed out so that your application runs on the new platform. Time and time again people post that "they just migrated from ColdFusion 5 and now their server is spiking." Different architecture, different resource requirements. That's the way it is with any language.

Again in this article they use Mr. Wong's quote noting that "customers are still using CFML to run their businesses," as if to suggest those customers must be some sort of dinosaur and refuse to modernize, and that WebLogic somehow mitigates that. The one thing I will say the author got right was his mentioning of Adobe's support for the product since 2003.

Look, as I said, I'm happy for Vince and the New Atlanta team. Overall, I think it's great for CFML as a language that it continues to achieve greater exposure. What eludes me is why there continues to be a raft of misconceptions that continue to plague CFML and its adoption: It's too slow; It's not a real programming language; It's too expensive; It's not really Java. Macromedia-now-Adobe has noted in its past few earnings releases that ColdFusion sales have been growing exponentially. New Atlanta, while privately held, has noted the same on their side. However, this doesn't seem to make it to the "front page." All the casual reader can take from either the press release and/or the eWeek article is that ColdFusion is some legacy language that, by moving to WebLogic, can easily be ported over to a more modern language. Where the continued disconnect is between what the facts are and what is published I don't know. Maybe somebody else can shed some light on this for me.



April 17, 2006

I Think I'm Getting One: The Adobe Messenger Bag


*** Updated: I just pulled the trigger and bought one. I'll let you know how it is in a few days (I got antsy and did 2-day delivery)! ***

I've been using the same bag for work for about 6 years now. In fact, it's the freebie bag that was given out at the Allaire DevCon 2000 conference in Washington, DC! While durable and sufficient, it has sort of outgrown my "early career" needs and I have been passively looking for a new all-purpose work bag.

While reading Stephen Collins' blog entry entitled "The quest for the ultimate PowerBook bag", he made mention of a bag designed by MEDIUM Design Group in collaboration with Adobe called the Adobe messenger bag. All I can say is: Wow. I'm floored. Seriously. How has this not been more publicly advertised, particularly in the blogoshere? It looks as if it's been around since the fall of last year, so it's certainly not new.

At a high level, here's what you get:

  • Fits almost any 10"-17" notebook, both Mac and PC
  • Full-grain leather (including a built-in pull-out rain shield for bad weather)
  • Routing clips to keep cables out of the way
  • External cable routing, allowing you to access internal electronic stuff (i.e., your iPod) while the bag is closed
  • Tons of stretch internal pockets and pouches for organizing everything from pens to cell phones to PDAs

The only real "gotcha" is the price tag. At $250 USD, it's certainly not cheap, and it's only available through the MEDIUM site, so you can't "bargain hunt." However, if I get a couple of years of use out of it, then it's more than paid for itself (I tend to break larger expenses like this down into cost per day of use so that I can sleep better at night).

One last thing I took note of is that the entire design process used Adobe products (Illustrator, Photoshop). They have put up a slick flash-based overview of the bag and the design process.

Hey Adobe-ans, have any of you seen this or own one? If so, why are you holding out on us!



More Entries


© Dave Carabetta, 2005-2010. This blog licensed under the Creative Commons License. Some rights reserved. This is a personal weblog. The opinions expressed here represent my own and not those of my employer. Blog software provided by Raymond Camden.