April 2008 Archives

Hari K. Gottipati

AddThis Social Bookmark Button

As Flash’s strength is in UI development and Java’s strength is in services, security and distribution, lots of Java developers are adopting the Flash as their UI choice. When it comes Java ME development, its an application sitting on the mobile phones as opposed to traditional web application where the browser and server are involved. Until now, Java ME developers have only Java ME GUI APIs for UI development, but now they can enhance the UI with Flash technology. In an interesting turn of events, Sony Ericsson launching project Capuchin, which bridges the Java ME with Flash Lite by empowering these two distinct developer communities to bring their respective expertise to create more powerful mobile applications.

What’s all this?

Project Capuchin is a Java ME API that acts as a bridge between the Java ME and Adobe Flash Lite. It encapsulates Flash Lite content in Java ME applications. This API makes it possible to use Flash Lite as the front end and Java ME as the back end of applications. You can use your favorite Flash tools for UI design while still having access to all the phone services available to Java ME. Project Capuchin makes it possible to create Java ME applications where some or all UI components(you can mix Java ME UI and Flash lite UI, for example: Java 3D Game with Flash menus) are defined in Flash Lite and where all services can be accessed through Java ME. Though content is created by Adobe Flash technology, it makes it appear as Java ME applications.

Architecture:

capuchin.bmp
Source: Sony Ericsson

Project Capuchin makes it possible for Java to run a Flash Lite content file (*.swf) via the Capuchin APIs. It acts as a communication bridge(two way) between Flash Lite and Java ME, meaning that Flash Lite can send requests to and receive events from Java. It carries all system events (e.g. key events) from Java to Flash Lite and the Flash Lite player has a choice of listening to these events. In case Flash Lite wants to access some information then it is done through Cauchin API. Communication between Flash Lite and JSRs are handled through an intermediate class that works as a translator. This class listens to Flash Lite requests, transfers these to Java ME, and sends response back to Flash Lite.

Project Capuchin can be used in different ways:

Pure Flash Lite Content (Full Flash UI and services, no Java ME access):
The simplest form of using this technology is to take pure Flash Lite content (e.g. already existing games and apps developed in Flash) and encapsulate it in MIDlet suites (*.jar) using Sony Ericsson’s soon-to-be-available packaging tools. The benefit of this approach is that this Flash Lite content will be treated in the same manner as Java content, thus will use the same distribution infrastructure and system capabilities as Java ME content.

Java MIDlet using Project Capuchin as UI presentation layer (full Flash UI, Java Services):
More advanced use of Project Capuchin is to let Flash Lite handle the entire presentation layer and use Java as a service provider which feeds the presentation layer with necessary data.

Java MIDlet using Project Capuchin for some UI components (Java UI and Flash UI, Java Services):
In some cases such as 3D games, it is not feasible to use Flash Lite as a full presentation layer yet this should be handled using suitable Java technology (e.g. Mascot API, JSR 184 or JSR 239). In these cases, Project Capuchin could be used for presentation of some UI components, for example menus in 3D games.

Flash Lite has a solid UI, but there are no known mobile applications built on it. On the other hand, Java ME is popular in mobile application development without solid UI. So it makes sense to mash up these two technologies to deliver best mobile applications. Also as Flash lite is limited and poor in creating 3D games, so users can make hybrid UI(Flash Lite+Java ME UI) with project Capuchin. Sure it is going to open the doors for the best Java ME applications powered by Flash UI, but its success depends on how many devices it is going support it. There are no details on whether this is going to be restricted on Sony Ericsson devices? Its success depends on Sony Ericsson’s willingness to license this technology to other device manufactures. If so, we may see this running on iPhone soon. Steve Jobs is not happy with Flash Lite, but I am sure Java ME with Flash Lite will impress him!!!

Tim O

AddThis Social Bookmark Button

In Choosing an OSS License and the Ext-JS saga, Graeme Rocher (of Groovy on Grails fame) reacts to the recent ExtJS switch from LGPL to GPL. Here’s a quote:

What they have effectively done is built up a community, taking full advantage of the open source model by accepting user contributions and patches and then turned around and kicked their own community up the backside. It is projects like Ext-JS that give open source a bad name. How can a company have faith in open source if the people behind it can’t even decide how to license the thing?

In related news, the Java Service Wrapper did something similar. Jason Van Zyl commented on the JSW license switch on the Maven developer’s list:

Project[s] that start using a commercially liberal license and then switch[ licenses] long into the life of a project is wrong. If you want to do the GPL/commercial thing then say so from the start. [There is] nothing wrong with this model, but for libraries and tools using a commercially liberal license is the best way to get community adoption and then to flip the license I find a little unsavory.

Anyone interested in forking it and maintaining the version that was not GPL?

In related news, ActiveMQ is opting to move away from Java Service Wrapper.

Update (5:45 PM Central): A little madness thinks ExtJS has discovered step 2 of the elusive Slashdot business model:

The model works because step 1 allows you to build a community around the more liberal LGPL license. In particular, as the LGPL is commercial-friendly, the community will include many people building commercial applications. Once the community is suckered in and committed, the license is changed, leaving them high and dry. Well, not quite: they can continue to use new versions of the library by buying a commercial license. Hence the profit!

Update (6:17 PM Central): More from Stephans Blog

Tim O

AddThis Social Bookmark Button

By way of Geertjan’s Blog, apparently Netbeans supports Wicket development.

Also, from Geertjan is an interview with Jonathon Locke, Eelco Hillenius, and Igor Vaynberg. Read this if you are interested in learning about how Wicket does Ajax.

In other news, Martjin Dashorst’s Wicket in Action (Manning) is available. Should be printed in June.

James Elliott

AddThis Social Bookmark Button

It’s been a long time since “Hibernate: A Developer’s Notebook” came out. In terms of Hibernate’s evolution, it’s been an era or two. Things were changing so fast back then that the code examples ran into trouble very quickly. I wanted to put together an update, but other issues in life and work kept intervening, and the best I was able to do for a while was an online PDF that made the introductory chapters work better with Hibernate 3.

Well, I’m happy to be able to say that the wait is over! Thanks to help from Tim O’Brien and Ryan Fowler, “Harnessing Hibernate” is now a reality, meaning you can actually get your hands on it.

We’ve updated all the content from the Notebook that was still relevant, and added a bunch more. Tim contributed great information about working with Apache Maven and the Spring framework, and Ryan added interesting ways to integrate with Stripes. The Hibernate Tools for Eclipse have their own chapter now too. It’s grown some heft, while remaining a great way to come up to speed quickly.

And despite the increased page count, I don’t dread being quickly overtaken by a flurry of incompatible changes this time. Hibernate is at a much more mature stage in its own development, which will help a lot. But we’ve also leveraged the Ant Tasks for Maven to do most of the work of downloading and organizing the many libraries needed to work with Hibernate in our examples. This means not only that there is less busy-work for readers who want to play with Hibernate and the example programs, but also that the examples will continue to work even if Hibernate changes, because they’ll always be able to find the version of Hibernate they expect.

So we hope that people coming to Hibernate today can benefit from an even smoother learning experience.

Tim O

AddThis Social Bookmark Button

O’Reilly is sending a few bloggers to JavaOne, I’m going to be attending with my reporter’s hat on. We’re interested in knowing what your questions are for this year’s conference. We want to give you, the reader, a chance to let us know what you are paying attention and what questions you have for Sun executives this year.


powered by ODEO

Tim O

AddThis Social Bookmark Button

David Herron left a comment on the last blog post, here it is:

“ultra-fast Java Plugin”? Have you taken a look at 6u10? That’s where your ultra-fast Java Plugin is, it’s already been announced, and you can download it today to try out. “Openjfx looks like a ghost town” .. Well, inside Sun JavaFX is not a ghost town and I have no idea why there isn’t more public dev-list activity. “Clearly, development of the compiler happens somewhere else” is a big 10-4. If you scrolled down to the bottom of https://openjfx.dev.java.net/ you’d see a link to https://openjfx-compiler.dev.java.net/ which is the project for the compiler. “Consumer JRE” .. that has morphed its name into 6u10.

David, compiler list is clearly very active. Lot’s of Sun activity. Let’s see why the public project has such low activity. I have taken a look at the 6u10 (I had to fire up my old Vista machine to see it), it’s clearly an improvement, but read more for the obstacles to adoption. I can’t yet go to my managers and justify writing a customer-facing application in a Java Applet, maybe explaining the reasons why this is the case might provide some useful feedback.

Why JavaFx Public Lists are a Ghost Town?

There isn’t more public dev-list activity because there are not many people using JavaFx. There are not many people using JavaFx because there are not many consumers who have upgraded to Java 6. 6u10 is in Beta, so we can’t expect consumers to install it yet. Couple that with the fact Sun doesn’t touch the JRE or JDK for Macintosh and Apple’s Java 6 is still a “Developer Preview”…. who knows if they are going to put much effort into making sure that Applets load quickly. On top of that, for some strange reason all the Applets I try to run in IE 7 end up with this strange button that reads “Press SPACEBAR or ENTER to activate and use this control.” Maybe this newer version of Java might start to hit consumers in the next few months, how quickly do you think we can expect market penetration for the Java Plugin to equal that of the Flash 9 Player? How closely have you been working with Apple to make sure that the modular JRE is a part of the Apple development effort?

People are not milling about the JavaFx lists asking questions because there seem to be some major obstacles to adoption. If I’m creating some web site that needs to stream videos and display interactive Rich UI and I don’t want to turn away everyone using a Mac, I’m certainly not going to be very excited about the 6u10 update. It follows that I’m probably not going to consider JavaFx because of that. You guys are in a tough place because it is going to take time for 6u10 to hit the market, in the meantime, the competition continues to gain market share.

How to Really Make Applets Viable

I’d start considering Java Applets if I heard both of these hypothetical announcements from Sun…

  • (hypothetical) “Here at Sun, we’re watching the trends in the computer industry and we’re noticing that Apple has started to achieve real market penetration. Apple’s growth is phenomenal, and we’re announcing today that we’re going to be committing real development dollars to supporting the JDK and the JRE on Apple platforms.” (hypothetical)
  • (hypothetical) “It is clear to us that video is driving new applications and features on the internet. We’re happy to announce that we’ve signed licensing deals which will allow us to support a wider set of media formats including flv. We’re putting a lot of development into the Java Media Framework.” (hypothetical)

If we heard something like that at this year’s JavaOne, I’d start paying more attention.

The more I think about it, the more I’m convinced that applets being viable for the web isn’t about technology AT ALL. It is about business. A business that needs to implement an RIA thinks about the user audience, thinks about platform support. Mac users are not an insignificant population any more and Apple’s market share is growing at four times the rate of the competition. There’s this other company out there that is writing a Rich UI container for both stand-alone and browser based applications. The framework has good media support and they don’t have a hang up about supporting Mac OSX. They are named Adobe. If Sun doesn’t support Apple, and Apple drags its feet, you can’t expect any reasonable business person to elect to use a technology that it going to turn away a rapidly growing segment of the market. If Sun really wants to focus more on the consumer JRE, then they need to support the two major consumer platforms: Windows and Mac.

Let’s set the bar for Consumer JRE

It is unfair to keep on harping on Sun for startup times, the Consumer JRE is faster, and it’ll probably attain a high market penetration sometime in the next year? Let’s talk about the remaining expectations. Mac support and better media support. Sure, I can use Java to playback videos, but not the ones that count - Flash Video and H.264. Instead of trying to move the industry away from H.264 and FLV, Sun should just pay the patent license. If Sun were leading the market, then I think Sun could start trying to drive the market toward free and open standards, but Sun doesn’t, and I although I detest proprietary formats as much as everybody else here, I don’t think that the Open Media Commons initiative is going to help us Java programmers write client-side applications in Java anytime soon.

If the Consumer JRE was really ready, I wouldn’t be watching Eckstein discuss the improved applet startup time in JDK6u10 via a SWF from blip.tv which is streaming me a Flash Video on a Macbook Pro. I’d be watching Bob discuss the new Consumer JRE by way of an updated version of the JMF delivered in a Java Applet. If you really had confidence in Java, you’d have used the Cortado Applet and streamed it some Ogg Theora. You’d be updating the JMF. Are you updating the JMF?

Tim O

AddThis Social Bookmark Button

In the absence of info, I’ll make some predictions. Make your own predictions in the comments.

I’m going to guess that the keynote is going to talk about Project Caroline. If it is ready, Sun is going to want to position this as the big announcement for this year’s JavaOne. I’ve already blogged about how I see the momentum with Amazon EC2 (utility) and Salesforce.com (apps) in this space. Google has arrived a bit late to the party, they already have an offering in SaaS via Google Apps, and everyone seems to assume that whatever solution they come up with in the PaaS area is going to ultimately succeed for the obvious reasons… they have the culture, people, and scale to make something like this work. Few dare to doubt Google.

…which brings us to a company which is familiar with making big announcements greeted by a symphony of silent doubt (Sun and JavaFx). The Register broke this story back in February. If those PDF slides (in the Register story, I don’t deeplink), are accurate we’re looking at utility computing a step above EC2. Instead of expecting people to interact with a series of web services, it appears that there is some sort of Java API. Caroline is going to be met with a chorus of doubt, but there are some interesting things from those slides. I think Sun has the ability to come out of the gate with some features that EC2 is just adding to the offering, and I also think that Sun has this “full-stack” of technology products that span the entire spectrum…. if anyone can pull it off, I think Sun can. But, they are late to the party and they have a lot of catching up to do.

Something Big About JavaFx?

I’m predicting that Danny Coward formally introduces some ultra-fast Java Plugin and that we’ll see a big upgrade to the JavaFx product.

We should expect to see some real meat behind JavaFx at this year’s JavaOne. If we don’t see something big about JavaFx, then it is going to make it tough for Sun to remain credible. And by “big”, I don’t mean tighter NetBeans integration. JavaFx was the big announcement last year, they established an open source project “openjfx” on java.net, but take a look at the developer and user mailing list traffic over the last year.

Month Dev List Messages User List Messages
Mar 2008 2 192
Feb 2008 1 132
Jan 2008 0 81
Dec 2008 0 82
Nov 2007 3 152
Oct 2007 0 140
Sep 2007 5 414
Aug 2007 7 100
Jul 2007 3 233
Jun 2007 13 226
May 2007 119 481

There’s some activity in the user list. It looks like there is something of a healthy community in the openjfx site, but openjfx appears to be nothing more than a Wiki and a series of sample applications. The “codebase” hasn’t changed substantially in about 5 months, and most of the dev list activity is commits to the web site. Openjfx looks like a ghost town.

Clearly, development of the compiler happens somewhere else, and because I see so many JavaFx sessions this year one has to imagine that there is a whole chunk of new code wrt JavaFx that is going to be announced at JavaOne. Sun is also going to have to do something about the speed with which Java starts in the browser to answer all the nagging questions from last year. I’m guessing that Chris Oliver is chained to a desk working on some impressive demonstration right now? He wasn’t a very frequent blogger, but it isn’t a good sign that he hasn’t blogged since December 2007. (Maybe it is a good sign, maybe it means he’s focused on JavaFx?)

Consumer JRE

Danny Coward announced an early release of the Consumer JRE last October. I’d be surprised if this hasn’t really matured by this year’s JavaOne. Danny Coward’s blog is like Chris Oliver’s blog in that there are huge gaps. I think he blogged once in Nov 2007 and then once again last month. If we see anything about JavaFx at this years JavaOne it is going to have to be closely followed by a demonstration of a Java Plugin in a browser that loads so fast you don’t even notice that you are looking at an applet.

Tim O

AddThis Social Bookmark Button

For all the hot air that is thrown around by the self-appointed luminaries of dynamic languages and enterprisey platforms comparing everyone’s favorite language and engaging in an endless back and forth. Nothing beats a press release like this. Listen people, Java is going to run a 143 foot tall, 1250 ton radar array that puts out 32 MW and is used to track objects in space. That’s cool. Here’s a quote from the Sun press release:

The Eglin Space Surveillance Radar (FPS-85), which schedules and tracks catalogued space objects, is currently undergoing a complex modernization process to replace legacy mission-critical components built from one-of-a-kind equipment and custom software. The Sun Java Real-Time System, a high-level development platform for creating applications that require unprecedented execution predictability, will enable ITT to run the new solution using Java technology on Solaris 10 OS and standard hardware.

Right, right….. ok, I hate to parrot the Sun Press Release, but it gave me an excuse to quote the Global Security page on the AN/FPS-85 Space Track Radar. This thing sounds like it is from the Deathstar. Here’s a quote form that page, I added the emphasized text to provide some clarity.

The AN/FPS-85 can detect, track and identify up to 200 satellites simultaneously. The maximum beam deflection is 60 degrees on either side of the antenna center line which provides 120 degrees azimuth of azimuth coverage. The antenna is inclined +45 degrees for scan coverage of +3 to +105 degrees elevation.

Generating a combined output of 32 megawatts, the AN/FPS-85 is the only phased array radar capable of tracking satellites in deep space orbit. A study was conducted in 1976 by the Air Force Rome Air Development Center to determine the feasibility of extending the AN/FPS-85 radar performance to synchronous ranges. Several modifications involving mixed integration, coherent integration, and transmit power increases were examined considering the target effects of six typical objects and considering the Faraday rotation propagation effects. It was concluded that the AN/FPS-85 radar can achieve synchronous capability at a relatively modest cost and with varying levels of radar time penalty depending upon the modification and target of interest. The radar can track an object the size of a basketball at a distance of more than 22,000 nautical miles [in Java].

Tim O

AddThis Social Bookmark Button

GCalDaemon

So, I’m doing a thought experiment about ways to get around a fully locked down production network. Basically, I’m trying to find a way to send SMTP mail from a network that is very locked down. (Appropriately) the network administrators have locked down the network such that I can’t create a socket to anything. This makes perfect sense, you really do want to have control over what you are sending out. What doesn’t make sense is that port 80 is wide open. I can’t SSH out of the network, but I can connect to port 80. So, I need to send email, a colleague points me at this GCALDaemon project. Now, I’m not doing this, but the requirement was interesting enough that I wanted to see what could’ve been done if I really wanted to send email. Evidently I could just use GMail over port 80. I could just drop a bunch of files in a directory and GCALDaemon will take care of the rest sending them via HTTP over GMail. I check it out, looks pretty cool. But, whoa… look at the feature list (and my emphasis):

  Open source and completely free of charge
  OS-independent standalone application (Java 1.5)
  Bidirectional sync between iCalendar and Google Calendar
  View and edit your Google Calendar offline
  Supports 'Google Apps for Your Domain'
  Supports multiple file listeners with multiple Google Accounts
  Makes Gmail contacts accessible via LDAP
  Customizable Gmail notification
  Converts RSS/ATOM feed to iCalendar format
  Reusable mail transfer agent
  Remote control your computer via Gmail
  Multi-user abilities (up to 30-40 HTTP and LDAP clients)
  Run in service mode on Windows NT/2000/XP
  Run in embedded mode in a Servlet Container
  Low memory usage (10-20 MBytes)
  Automatic and fast (3-5 sec/sync)
  Customizable logging system (Log4J / CommonsLogging)
  Ability to do TCP/IP hostname/address filtering

I think this solution has a little bit of Rube Goldberg in it, but Google is reliable, I’m willing to live with something like this. Look at the feature list though, something jumps out at you….. “Remote control your computer via Gmail” Now that’s cool, but also very scary. (some digging) It stores scripts in GMail using IMap. Your computer syncs with that folder and then executes scripts from the folder. The whole process is triggered by you sending an email with a secret subject to gmail. There’s a diagram on this page… from the site:

This management service keeps checking a Gmail inbox regularly, if it finds an email from a trusted sender and with a secret subject, it reads and executes a specified script file. Then GCALDaemon sends back a response, which contains the script’s output. Most mobile carriers and recent phones have built-in support for sending email through SMS gateways, therefore a simple cellural phone should be enough to manage a computer.

Evidently, the alien overlords have arrived and they are controlling your computer via GMail IMAP. It is written in Java source is in the download. From the download, the lib directory looks refreshingly sparse. It doesn’t appear to be using everything and the kitchen sink in terms of JAR files (like all of my projects). In other words, the lib directory doesn’t contain 150 MB of JARs everything from Spring to Hibernate. Instead it looks like it is using Commons Codec, C-Collections, C-HttpClient, C-IO, C-Lang, C-Logging, Rome API, ical4j, activation, mail, servlet API, LDAP.

Source code, from the source you can see that we have Andras Berkes to thank for this code. Project appears to be covered under an Apache License Version 2.0 (Good, good!) The source looks very straightfoward/well-documented, and if you take a look at org.gcaldaemon.core.mailterm.ScriptRunner, you can see MailTerminal is easy to understand. Next question, why isn’t this thing in Maven?

Systems like this are going to be essential as we move to a model that involves more applications integrating with hosted platforms like Google Apps. Think about the ability to control machines from GMail, now couple that with my previous entry. You see where we’re going with this?

Ridicule

BTW, a colleague is now making fun of me on Skype.

HIM: btw, they could have written this gcaldaemon stuff in 1 minute if they used salesforce (and they wouuldn’t even need access to the net or a computer).

Laugh now, the cloud has you squarely in its crosshairs. Assimilate or perish.

Tim O

AddThis Social Bookmark Button

The transition is happening faster than I had expected.

The transition from hiring a team of Java developers and Linux sysadmins to sit down for a few months and develop an application to a world where you can just provision a platform on a compute cloud just became more of a reality. And, from this desk, it seems to be happening faster than one could have predicted.

Here’s the announcement, Salesforce for Google Apps. This isn’t related to the Django-based Google app engine idea introduced two weeks ago, rather this is the Google apps that you can use today GMail, Google Docs, Gtalk, Google Calendar. Today’s integration isn’t the real news to me, the real news is that both companies are working on generic hosted application development platforms. Continue reading after the video for the real impact on developers.

googleApps.add( salesforce )


Wait, I’m a developer, who cares…

Both Salesforce and Google are working on general development platforms for hosted applications, add a year or two to the system and you’ve got more fodder for the idea that application development is right on the cusp of a rapid evolution. When you can fire up Eclipse and deploy a custom application to Salesforce to have it show up for your users in the context of Google Apps (Gmail, GTalk, Google Calendar, Google Docs), your own in-house applications may start to look a little pale. Five minutes later when the damn thing shows up on your boss’ iPhone and the CEO’s blackberry, you are going to sound crazy when you tell them that it is going to take your development team a few more months to integrate your legacy applications with mobile devices. They are both going to look at you and say, “well can’t you just get the data into Google Apps?” Hopefully, when this happens to you in about a month or two, you won’t be surprised and you’ll have an answer ready.

I guess what I’m trying to say is this…. you are going to find it very difficult to compete with continued integration between salesforce, google, ec2, and the twenty or thirty other companies that are going to join the industry. If you are working for a company that is paying you to develop some custom reporting and customer management application in a framework like Struts, Rails, Wicket, .NET, etc., you are going to have to confront this growing pressure to integrate with offerings like this or compete with them directly. I’m convinced that in two year’s time, the entire discussion of development is going to be fundamentally affected by Platform-as-a-Service. We’re not going to be talking as much about the 30+ web frameworks in the Java stack as much as we are going to be talking about which cloud provider we are using.

If you’ve been following efforts like Shindig over at a Apache, you might just think that Opensocial Widgets are for silly little social network applications like “What German Philospher are You?” or (the now in legal trouble) “Scrabulous”. These applications are just the testbed for a new paradigm of development. When projects like Shindig, Caja, and OAuth mature, we’re going to see real business applications developed in such a way that they can be executed with similar “gadget engines”. The future seems to be one of hosted, multi-tenant applications that run within one of several application execution platforms being mashed-up and combined in ways unpredictable to the original application developer.

EC2 Adds Persistent Storage

EC2 is adding persistent disks. If you’ve considered using EC2 in the past, you’ve known that the fleeting nature of a disk on EC2 is probably the biggest sticking point. It is tough to get your mind around the idea of using a machine with a disk that doesn’t survive a reboot. The solution up until this point has been to use S3 to store persistent data or use Amazon’s new SimpleDB service to store data.

Here’s the quote from the Amazon Web Services blog that matters. Note my emphasis:

These volumes can be thought of as raw, unformatted disk drives which can be formatted and then used as desired (or even used as raw storage if you’d like). Volumes can range in size from 1 GB on up to 1 TB; you can create and attach several of them to each EC2 instance. They are designed for low latency, high throughput access from Amazon EC2. Needless to say, you can use these volumes to host a relational database.

Right, there it is. Very soon, you’ll be running your application on EC2. For me, the game changer is the ability to just run a database on a machine within EC2. I understand that I could’ve changed my application to work with SimpleDB or run a series of clustered MySQL instances on multiple EC2 machines with a frequent snapshot to S3….. No. I, like most of you I’d guess, just want to be able to run a database.

EC2 just became obvious with this announcement.

If you want to tie the EC2 announcement back to the Salesforce and Google Apps announcement, you should note that the blog post before the EC2 announcement discusses a company named Appirio using S3 as a storage mechanism from a Salesforce application.

Tim O

AddThis Social Bookmark Button

Despite some fashionable buzz to the contrary, Maven has gained momentum in the market. It has done so by consistently meeting criticism with objective self-evaluation and improvement. I’ve recently been trying to erase one of the main objections (lack of consistent and comprehensive documentation) by working on a Maven book which is still in an early alpha release stage. With the release of Maven 2.0.9 and the new focus on quality, I’m starting to see Maven expand its boundaries beyond the expected Java project. I’ve always known that people were striving to expand Maven beyond Java, but, until now, I haven’t really seen the promise realized. I’m starting with Flex because there is a recent abundance of quality Flex Mojos hosted outside the Apache Maven and Codehaus Mojo projects. Flex and Java seem to have a “special relationship”, and I think it is fitting that Flex is one of the first areas where Maven is starting to expand.

Adobe Flex 3 SDK: Open Source

For general content related to Rich Internet Applications (RIA), you’ll probably want to check out O’Reilly’s InsideRIA.com. I’m approaching Flex more from the perspective of a Java developer…

Here we are, a year after the anouncement of JavaFx, and, from where I sit, the energy is still with Adobe’s Flex and it has gained more momentum with Adobe’s release of Flex 3. Right now, you can download the open source Flex 3 SDK and start compiling and distributing Flex and AIR content without having to pay the piper. The compiler, the debugger, and the framework itself are released under Mozilla Public License v 1.1. To use Flex with Maven, you are going to want to download Flex from the Adobe site

If you want to use the Flex Eclipse plugin, you’ll need to fork over some cash. Flex Builder comes in two flavors Standard and Professional. Standard retails for $249 (USD) and Professional retails for $699 (USD). Yikes! Not cheap. The good news is that, unless you are creating a very complex application, you don’t really need Flex Builder. I happen to have a copy of Professional around for my own use, but I rarely use it because most of the work I’m doing in Flex these days is less visual and more about delivering data to the Flash client and programmatic creation of UI elements. If you are interested in buying Flex Builder, the main difference between Standard and Professional is that Professional has better testing support and charting/datavisualization components. But, I can’t stress this point enough, heavy duty programmers don’t really need the fancy UI.

The other thing to know is that there is a healthy community of Open Source that has grown around Flex like osflash.com and a number of projects providing open source components. (I wouldn’t be surprised if there is already another alternative Eclipse plugin which provides syntax highlighting and integration with the compiler. I just haven’t found it yet.)

Building Flex with Maven

Look around, you’ll see that a number of Java developers have blogged about integrating Flex with Java, here’s a survey:

Personally, I used Eyben’s archive as a starting point, and I’ve extended it using the israfil-mojo plugin to involve several projects of packaging SWF that all depend on a shared SWC. These SWFs are then copied into the WAR file during the packaging phase. This approach is useful, but if you are interested in using Adobe’s Flex Builder you should know that you may run into some problems. From my own experience, it appears that projects that don’t conform to Adobe’s file layout tend to have problems in the UI. (But, then again, I told you I’m not really using the Flex Builder IDE, I just don’t need it.)

Arbogast’s blog post (which I stumbled on via the Maven developer’s list) introduced me to the most recent stab at a decent Flex Mojo flex-compiler-mojo.

Tim O

AddThis Social Bookmark Button

Today, Michael Podrazik writes about a new “generational shift” to Software-as-a-Service (SaaS). Michael’s a Java architect who is considering using EC2 and S3 instead of colo machines for his next project. In his post he captures an idea that’s quickly becoming obvious in light of the recent announcements in the Software-as-a-Service (SaaS) or Platform-as-a-Service (PaaS) space. Here it is (emphasis mine)…

We’re entering into a new generational shift in computing. I’m not speaking of generations of people but rather an uplift of paradigmatic abstraction as has occurred so many times before. This is not a shift from static to dynamic languages, although that trend will surely continue. It’s not that Java developers are all going to start using Rails or everyone is going to switch from template to component-based ways of developing webapps. The new debate is not going to be between X and Y framework but between X and Y platform, and if platform used to mean Mac-Windows-Linux, the shift I’m talking about is: ’s/Mac-Windows-Linux/Google-Amazon-Salesforce/’

There has been an undeniable series of developments in the hosted-platform, managed-environment, I-don’t-even-know-what-you-call-it, SaaS? that have until now resisted full-blown, critical mass, hype-factor. I think that that all changed on Tuesday with Google’s App Engine announcement.

Like Apple, no matter what Google does it gets attention, and App Engine is undoubtedly going to get lots of it. People will love or hate the choice of Python, love or hate the persistence API, or lament the lack of filesystem access, or OS access, or inability to link to C libraries. All of that is irrelevant though, because the real story is that they will have done for this new hosted-app space what IBM did for the PC-space years ago, which is push it over the top into general acceptance. It validates the concept. read more…

I’ve been thinking about this for a while in light of Amazon and the newer, more developer-focused products coming out of Salesforce.com. We’re approaching an inflection point where the arguments over whether a project should be done in Rails vs. Java vs. PHP will be trumped by foundational questions about whether an organization should invest in infrastructure and development at all. If you are like me, and you make your living developing applications and managing infrastructure. What can you do to prepare? I don’t have the answer directly, I think we’re going to see a dramatic shift in the job description of the “computer programmer” over the next few years. There is a brewing discontinuity in most organizations that engage in software development, and I think that this discontinuity is the first sign of this generational shift. In terms of technological revolution, I think the business user is leading the technologist.

On the one hand I speak to developers and architects who downplay the feasibility of SaaS solutions. Are they really secure? Don’t you yield any sort of competitive advantage on a platform like Salesforce? Are you not locked in to a platform like Google? It seems that there are a host of convenient and self-interested observations from the people who have the most to “lose”. I’ll sit in meetings where a room full of people are discussing how many machines to buy for a new system, when it is clear that the answer is “buy no machines at all, use EC2″. On the other hand, I speak with managers and executives who will happily testify to the millions of dollars they’ve saved by using products like Salesforce. At the Salesforce conference yesterday the logo was the word software with a red slash through it, and often a room full of business users would applaud when someone boasted of reducing headcount in the IT department. If you are a software developer, you can’t help but feel a little out of place. No?

Taking a step back, I see two groups, an emerging industry, and a gigantic, uncontrollable economic wave. The two groups are technical administrators and developers used to maintaining hardware and deploying applications, and business users who are eager to cut costs where they can. The big wave is the weakening economy (at least in the US) that is either at the bottom of a small recession or at the beginning of a depression unlike any seen since the 30s (depending on who you read). Add to this an emerging industry of Platform-as-a-Service. Just like the recession in 2001 and 2002 pushed many organizations to offshore development, the weak economy of 2008-2009 might just be the force that pushes many organizations to forgo heavy investment in hardware and custom software development.

What are you doing to prepare for this “generational shift”, this wave?

Tim O

AddThis Social Bookmark Button

Today Sonatype has introduced Nexus: a Maven Repository Manager.

Brian Fox’s blog entry Introducing Nexus contains a number of useful links.

“Enough talk, click on over to the Nexus site where you can find more information and the download link. We’d love to hear from you on our user list and on irc.codehaus.org #nexus. Also be sure to visit our Maven book, which contains a Nexus chapter.”

Advertisement