Recently in Java Category

Where's the LCDS Love?

Why do you think that many enterprise Flex developers don't use LiveCycle Data Services?

Someone recently asked me why I thought the take-up of LiveCycle Data Services among developers isn't more, um enthusiastic. Unlike almost any other development tool I've used, I don't recall hearing anyone complaining about the level of functionality offered by LCDS. That's certainly to the credit of the product managers and development team at Adobe, but exactly why isn't such a powerful tool more popular in the developer community?

It's certainly a difficult question and I wouldn't dare profess to have a definitive answer. I've therefore decided to share my thoughts while humbly asking for yours. You never know, maybe someone at Adobe will read this and take note.

Keep in mind that all I have to go on are conversations with developers and from reading blogs, so definitely consider these musings "non-scientific" and loaded with lots of hyperbole (the spice that makes blogging fun).

Flex, Flash and Spock... What's Not To Love at MAX 2010?

| No Comments
Whether you're a waiter who dreams of being an actor, a trekker on a lifelong pilgrimage to meet your Vulcan mentor or are an avid Flash or Flex developer, there's only one place to be next week: Adobe MAX 2010 in sunny Los Angeles, California.

I will be attending  Adobe MAX for the first time, this year. Needless to say, I'm very excited and grateful to my employer, 4Point, for sending me on their dime (I surely could never afford it). I've registered for the most interesting sessions I can though my sense is that I'll be missing more than I'll be taking in. Hopefully they'll be recording all of the sessions so that I can catch up on what I missed later. One thing I won't miss will be the MAX Awards, since  Leonard Nemoy (heard of him?) is presenting. The geeks will be swooning in ecstasy, no doubt.

To maximize the amount of information I can jam into my sleep-deprived brain, I intend to squeeze in as many 360Flex and FITC "Un-Conference" sessions as possible. Hopefully the rooms will be close enough together to skip quickly from one session to another so I can miss as little as possible.

Since I'll most likely be on my own most of the time, feel free to drop me a line so we can meet up. I'm getting there near noon on Sunday and will have most of the afternoon free. I'm flying back out on Thursday morning.

Hope to see you there! (Cross-posted at

See You In The Re-Runs: Adobe Dev. Week Sessions Now Online

| No Comments
Once Burned, Twice Shy. If you missed Adobe Developer Week (I did), not all is lost.

If you wanted to get a second chance at attending one of the many free sessions given by Flash Platform experts during Adobe Developer week, you're in luck. Adobe has posted all 19 sessions online, for free. Since they all run at roughly one hour each, you'd better get cracking, my friend.

The available sessions are:

    • Welcome and introduction to the Adobe Flash Platform
    • Building multi-screen applications with the Adobe Flash Platform and Adobe Creative Suite 5
    • New features in Adobe Flex 4 framework
    • New features in Adobe Flash Builder 4
    • Adobe Flash Catalyst CS5 for developers
    • Building mobile applications: Create a game
    • What's new in Adobe Flash Builder for Java developers
    • New features in Adobe Flash Player 10.1
    • Creating sexy applications with the Adobe Flash Platform: Designer-developer workflow
    • A basic CRUD application with Zend AMF and Adobe Flex 4
    • Adobe Flash Builder 4 and Adobe ColdFusion 9
    • Advanced features in Adobe Flex
    • ActionScript 3 for Java developers
    • Adobe Flash Platform and
    • What's new in Adobe Flash Builder for PHP developers
    • Using advanced features with Adobe Flex and PHP
    • Adobe ColdFusion 9 and Adobe Flash Catalyst CS5
    • Adobe Flex and BlazeDS integration with SpringSource
    • Building desktop applications with Adobe AIR 2

What the heck are you waiting for? Click here and go straight to the videos. Sheesh!

Attend A Seminar In Your PJs: Free Adobe Dev. Week "Webinars"

| No Comments
Adobe shows some love to the folks who actually make their technologies relevant: developers.

Admit it: without good "3rd party" developers to make it dance and sing, no platform or technology would ever succeed. That's why Adobe is holding its annual "Developer Week" from May 10-14, 2010, to encourage existing developers to delve deeper into their offerings and to entice novices into the fold. The key part of this event are 20 free web training seminars Adobe is running to cover a gamut of Adobe-related development technologies, from Flash and Flex to Coldfusion.

Yes, they are "Web Seminars" and all you need is a browser, the Flash plug-in and an internet connection to participate. Of course Adobe calls them "Webinars". How very "2.0" of them. <cough>

Bonus: anyone who registers and attends a session is eligible to win a copy of Flash Builder 4 Professional or Creative Suite 5 Web Premium, with one copy of FB4 Pro being awarded per session and 3 copies of CS5 Web Premium being drawn among all attendees.

You can register online right here. Enjoy!

Got Training?

If you missed 360|Flex but would like to get some Flex/Flash developer training for free, you definitely should check this out. All sorts of topics will be covered, from introductory level to  überflashalicious. Besides, admit it: you've never been trained by industry-leading experts while eating munchies in your pajamas before, have you? Now's your chance, so get on it already.

Seminars I think people (by "people" I of course mean "myself") will find particularly interesting are:

Don't Wait, Educate

If you are a student or are currently unemployed/employed outside of the software development field, this is by far your best chance to start building some salable skills for free. Go fetch  a free, legal license to Flash Builder from Adobe and get yourself trained up. I'll see you in the trenches. Kudos to Adobe for making their development tools and experienced trainers available to the next generation of Flash/Flex developers.

Paging Dr. Livecycle

Finally, looking at the seminars on tap, my only real disappointment is that I don't see any Livecycle-related training on tap. As my colleague and friend Kevin would say: "What up?" If Adobe doesn't promote their own flagship enterprise technology to developers, then who the heck will? They should get one of their gurus ( Christophe or Greg, for instance) and spread the word.

As always, I invite your comments. Ciao!

Cross-Compiling Java/C#/Ruby to iPhone

| No Comments
(This is a posting I started a while back (on my brother's b-day in May) but didn't publish at the time... don't remember why.)

Cross-Compiling C/C++ to Actionscript using Alchemy

As you may well know, Adobe Labs has developed an exciting tool called Alchemy that leverages the LLVM open source project to cross-compile C/C++ code to a common run-time byte code. This byte-code is then cross-compiled to Actionscript code which is then compiled to Actionscript byte code (ABC). The earliest and most striking example of what can be accomplished with Alchemy was the port of Doom to Flash that Dave released on Newgrounds within a week of Alchemy's launch. He has now released the Doom Triple Pack which includes the bad boys Doom, Heretic and Hexen.

The good people of Automata Studios helped Adobe develop one of the first projects for demonstrating how Alchemy works. Here is their write-up on the subject.

Cross-Compiling to Objective-C (and more!) Using XML-VM

Another development that has come down the pipe is some research done by Arno Puder and his colleagues at San Fancisco State University. Their work involves using open-source tools to transform code from one language (e.g. Java, C#) to an intermediate XML format which can then be transformed to another language (in this example, Objective-C). The project is called XMLVM.

Prof. Puder presented how all of this works at the Google offices and the video of this presentation is available on YouTube. It is a very cool idea and demonstrates once again (as all software does, really) the potential aggregate power of using many small, simple constructs. Byte code statements are converted to an XML format which can then be transformed to Objective-C. While the final code might not be as optimal as the original, it will do the same thing. My guess is that the toughest part would probably be handling language elements that don't exist in both the source and target languages (i.e. garbage collection, loose typing/auto-boxing, annotations). Perhaps you'd have to do away with overly "native" parts of a language language when writing the "from" code. The good professor covers part of this challenge in his presentation. 

While the target language discussed is Objective-C, as you can see from the diagram above, the XMLVM project allows you to cross-compile to and from a number of different languages.

Stuff You Missed at 360|Flex While You Were *at* 360|Flex

| No Comments
  • Added Jun Heider's materials on run-time resource profiling (Day 3, Session 2)
  • Added Ryan Phelan's slides on Pixel Bender (Day 3, Session 4)
  • Added Lafferty and Frishberg's slides and an example on custom ItemRenderers (Day3, Session 4)
  • Added Sanchez' slides on Degrapha (Day 1, Session 2)
  • (Über Edit) John from 360 Conferences has uploaded all of the presenter slides from 360|Flex Indy that he could get his hands on here. There are 33 of them, at last count. Thanks a million, John.
  • Added Laura Arguello's slides from her (excellent) Mate session (Day 2, Session 5)]
As you've probably guessed by now, if you missed 360|Flex by your own choice, you're kind of a... well, a loser. Many of the best presenters, mentors, open-source community leaders and trend-setting Flex developers were there, pouring their knowledge out in exchange for a hotel room and a 360|Flex "speaker" t-shirt. (If the room was in a train car, then just maybe it's a fair trade.)

One of the worst things about 360 (yes, I'm about to complain here, apologies to Tom and John) is that since there are generally 5 session going on at once, you're going to miss something. (I'll give you a second now to get over it.) Some things you'll never, ever get back (look through your high school yearbook for some quick examples). Fortunately, I have compiled a quick list of presenter materials that didn't make it onto the USB key. I will update this in the next few days as more stuff things trickles in.

I've listed these by day and session. (Note that I'm not counting the keynotes in numbering the sessions.)

Day 1

Session 1

Assert Yourself (FlexUnit 4) -- Michael Labriola (ably assisted by Jeff Tapper)

Session 2

Degrapha Declarative Graphics Framework - Juan Sanchez

Session 3

Structured Log testing - Renaun Erickson
Missed Points

Another Mapping API...Not! - Mansour Raad

Session 4

Any Which Array But Loose - Michael Labriola

Day 2

Session 1

Creating our first i18n (internationalization) Flex application - Oğuz Demirkapı

Flex Server Lib - Andy Powell

FLEXperience - Putting the UX in Flex -- Joe Johnston

Session 3

How Not to Code Flex Applications - Jeff Tapper

Session 4

Developers are from Mars, Designers are from Venus -- Chad Udell

Session 5

Building an AIR Video Recording Spy Camera with Motion Detection -- Rich Tretola

Breaking Down your Application with Mate -- Laura Arguello

Day 3

Session 2

Flex Profiling by Example - Jun Heider
Slides and source

Session 3

Merapi: What's Next -- Adam Flater
Source announced at 360|Flex

Session 4

Bending and Flexing with PixelBender - Ryan Phelan

Custom Item Renderers - Lafferty and Frishberg
Slides Example

That's all for now. Check back later in case more stuff pops up (it surely will).

Yoink: Oracle gobbles up the Sun

Methinks that sometime soon, the good folks over at IBM will be kicking themselves. Hard.

When I heard that IBM was trying to acquire Sun, it seemed like a no-brainer. Even if a little part of their motivation was to spite Microsoft, IBM has long been a driving force behind Java's successes. In recent years, they've spearheaded the very successful Eclipse project, acquired Rational, continued to invest in Websphere... So, to have Sun and IBM under the same banner just seemed to be the perfect union between very different but nonetheless compatible companies.

Well, it wasn't meant to be. After IBM dropped negotiations, Sun Microsystems was left at the altar, wondering what had happened.

Caught you on the rebound

The bouquets from the cancelled IBM/Sun wedding hadn't even faded when Oracle entered the scene and, for a paltry 10 cents more a share ($9.50 vs $9.40, or 1.06% difference), swept up a darling of the industry that had been reeling since the "dot com" bubble burst in the early 2000's.

This unexpected acquisition is a great example of how a company can leverage its strengths (e.g. solid product, reputation, cash reserves) to build up a foundation for further success. In this case, given the level of trust that people (customers and potential customers) already have in their DBMS, I can easily imagine Oracle developing and packaging Oracle-branded turnkey hardware+software DBMS solutions à la Google Search Appliance.

Whether you're talking about a rack-mounted cluster of servers or a single box, they will be able to deliver and support integrated solutions featuring Sun hardware, Solaris and the latest version of Oracle. Just brand it all as an Oracle product, set up a clear (subscription-based?) fee structure and start printing money. If they do it right, Oracle may well have hit a home run with this acquisition.

Et tu, Java?

As for the Java angle, well, Oracle is already closely integrated with Java (see: Java stored procedures in Oracle), so on the technical side they'll be working in known territory. What remains to be seen is whether they will be able to increase Java's market share and what they will do with fledgling initiatives such as JavaFX.

I'm also particularly curious to see how IBM will react on the Java front. I can' t imagine them moving to a scorched earth policy and trying to sabotage the progress that Java has made in recent years, but even if they just lose some of their zealousness, it could damage the Java market overall. I personally believe that without IBM's support over the years, Java would never have had the level of success it has enjoyed. Oh well, we'll find out soon enough.

Congratulations, Oracle. Now go forth, be fruitful and multiply.

As always, thank you for reading and I invite your comments on this topic.

Flashback '07: "RIA Shoot-Out" on SYS-CON.TV

| No Comments
I was searching for something else and came across this interesting round-table discussion on the state of RIA development, circa September 2007. The host, SYS-CON, selected a good range of experts who made many interesting points vis-à-vis RIA development.

To put the discussion in context: this was shortly after the announcement of JavaFX at JavaOne, shortly before Flex went open source and before the production release of the Silverlight SDK. AJAX was still considered a pretty exotic bird and therefore dominates a good part of the early discussion.

Topics of discussion include (in no particular order):

  • Open source in the RIA marketplace (dual licensing?)
  • A good amount of discussion on AJAX
  • The Silverlight Alpha SDK releases of the time (1.0 and 1.1)
  • The (then recent) release of JavaFX... to mixed reviews
  • Do Silverlight and JavaFX have a shot at dethroning Flash/Flex? (Jury still out... presumed lost.)
  • That old whipping boy: search engine optimization with RIAs ("But can Google index your RIA?")
  • Security in RIAs
In one interesting segment, the always (refreshingly) opinionated Yakov Fain makes some good points about choosing an enterprise RIA technology. Specifically, he makes the case for Java (server) + Flex (client) citing the fact that you often inherit whatever OS infrastructure your client already has in place, so you would do well to use cross-platform technologies. All the same, he adds that it would be a disservice to your clients to fall in love with a particular technology. He therefore leaves the door open to the possibility of JavaFX overtaking Flex on the client. All the same, he discounts .NET on the server side, since it doesn't play nice outside of the Windows platform.

It's amazing how fast things change in the development world. It's equally amazing how we are still discussing/disagreeing on many of the same issues nearly two years later. Anyways, I personally enjoyed listening to the discussion... perhaps you will, too.

Check it out here.

Flex and REST... Is it time to scrub out SOAP?


Flex apps are beasts that thrive on a healthy serving of server-side XML. How exactly you go about feeding any given app depends on your client's environment and practices, as well as your skill set and comfort level with the different preferred technologies.

My personal background lies mainly in Java development and the server-side technologies I have used most often are SOAP and servlets (i.e. plain old servlets, Struts and Spring). While I can acknowledge the value of SOAP, pay me a buck for every time I've heard someone complain about the overhead of creating/using SOAP-based services and I'd be rich enough not to be writing this. On the other hand, using servlets to satisfy the voracious appetite of a healthy Flex app has its own draw-backs.

I've suspected for some time that there is a more elegant, more lightweight way to write Flex-friendly XML-producing server-side Java code. I was therefore excited when asked to explore the world of Java RESTful web services during the lead-in to a new project here at 4Point. What follows is a summary of the many promising things I have learned in the past few days -- things that have led me to ask: "Is it finally time to scrub out SOAP?"

REST in a nutshell

REST stands for "Representational State Transfer", but frankly, the name doesn't really say much about what it really is. REST is a means of exposing a resource to outside interaction through a combination of a URI and an HTTP method (i.e. one of POST, GET, PUT and DELETE). These methods are mapped (roughly) to the classic CRUD operations, allowing you to create, read, update and delete data.



GET -- Equivalent -->



In order to invoke an operation on a REST resource, you simply invoke the appropriate URL using the appropriate HTTP method ...and voilà!

The Best Font For Coding (?)

I've been in this business for a few years now and I've been programming (in some form or other) since around 1986 (hello, BASIC!). Whereas in the past (see: University) I've been able to sit in front of a screen for 18 hours a day with only my contact lenses as protection, I've recently run into some issues that have made me re-examine how I treat my globes. Specifically: during successive business trips to a client site in Chicago, I came down with very unpleasant cases of conjunctivitis (also, see this write-up on HealthyOntario).

For starters, I've decided to look at how I've set up my development tools. I need to find the best, clearest, most ocularly soothing font for editing code in Flex Builder and elsewhere.

Eyeballing the best possible font

I've come across this fine site by Trevor Lowing which provides a collection (with clever examples) of different code-friendly "mono-spaced" fonts. It puts forward the following "good programming font criteria":

  1. Crisp, clear characters
  2. Extended character set
  3. Good use of white space
  4. 'l', '1' and 'i' are easily distinguished
  5. '0', 'o' and 'O' are easily distinguished
  6. Forward quotes are easily distinguished from back quotes (ideally with a "mirrored" appearance)
  7. Clear punctuation characters, especially braces, parentheses and brackets
The list seems pretty complete to me, though I might add "thick enough for viewing on LCD screen", since some fonts seems downright Olsenish for my tastes...

Setting text editor fonts in FlexBuilder/Eclipse

If you're a Flex Builder/Eclipse user, here is how you change the font used for editing files:

Go to Window > Preferences
From there, go to General > Appearance > Colors and Fonts
Select Basic and double-click on "Text Font". The font settings dialog will pop up.

FlexBuilder Editor Font Settings
Make sure to have an editor open, so that when you click on "Ok" and then "Apply", you will see the font changing in the background. This will allow you to try a number of fonts until you get the settings just right.

Your take?

I plan on trying out new fonts in the coming weeks so I'd be interested in finding out what font you use for coding/scripting. What font size? What display configuration (size, single or dual display) and screen resolution?

Thanks for reading!


About this Archive

This page is an archive of recent entries in the Java category.

Flex is the previous category.

LiveCycle ES is the next category.

Find recent content on the main index or look in the archives to find all content.