I am always fascinated that no matter how shiny the OS, sooner or later you'll end up typing things into a text console to get the darn machine to do what you want it to. To make matters worse you also have to resort to languages that you don't use every day but are from cryptic days of development where keyboards obviously had more interesting characters like ~ | -- and others easily available and scripts had to have numerous | in any line of code.
You can then execute JavaScript by starting JSC which gives you something like the Firebug JS console in the OS console (without the console is not defined messages *in* the console).
With a few more lines using the print(), quit() and load() commands available on the shell you can then use any JavaScript to mess with your files and folders.
We recently posted on Atmosphere, a new framework designed to provide an abstraction layer over Comet back-ends for Java web applications. At a personal level, this comes at an interesting time as over in the Mozilla Labs we're evaluating different Comet approaches for our upcoming collaboration release. As we looked at various options, we come across some recent postings from Ted Goddard of IceFaces fame explaining their work on making Comet as simple as possible for Java developers, including a podcast and an overview of the IceFaces approach.
Say what you will about JSF, their abstraction layer makes server and client implementation of Comet incredibly simple:
In other words, we can re-use our existing Ajax pipeline, and the application developer only needs to worry about one thing: requesting that a page be rendered. As you can imagine, this is only a few lines of code. With ICEfaces it looks like this:
Not only does the application developer not have to worry about low-level protocol details or messaging, they don't even have to worry about what has changed on the page -- this is all taken care of by the declared binding between the page and the model.
To summarize: we have dynamic pages that can be rendered on the server at any time, and the updates are pushed to the browser where the changes are applied to the DOM. From the application developer's point of view, that's all there is to it.
Are you using a stack that makes Comet this easy? Have you been able to successfully implement Comet? Do you get sufficient performance from polling?
Atmosphere 0.1-ALPHA1 is now officially released and support Tomcat, Jetty, Grizzly and GlassFish. Finally a Comet/Ajax Push framework you can build on top of it and deploy everywhere!
One of the cool features of this release is that it auto-detects which server back-end you've deployed it into.
With the release of IT Mill Toolkit 5.3.0, the server-side RIA framework is now ready for production. I announced the initial release of 5.0 back in December of 2007. Since that time, IT Mill 5 has gone through several revisions and the release of GWT 1.5 (which means you can use Java 5 now on both the client and the server). As a reminder, server-side RIA frameworks let you write your app completely in the server and uses a client-side Ajax engine to render the interface. The nice wrinkle with IT Mill is that both the server side and the client side are written in Java, so if you want to add a component, you don't have to break out the JavaScript (see the extensive and high quality reference manual for details on how to develop your own custom components in GWT). If you're a Java shop, that's got to be a good thing.
TheServerSide.com's Java Symposium kicks off in less than 2 weeks! Our sister site has put together an impressive lineup of speakers and over 45 tech sessions and case studies that you should know about, like Identifying Browser Problems in Ajax Apps, Meet-up for Selenium, soapUI, HtmlUnit and Other Test Tools and much more.
And if you haven't heard, Ajaxian members save an extra $100 off the registration fee with the code AJAXIAN!
The full agenda is available online, but here's a sneak peek of the 5 most popular sessions being presented at TSSJS:
Sometimes you find leftovers of old technology in browsers that blow your mind. One of these "ghost in the machine" problems exists in Firefox: if you use window.sun or function sun() in JavaScript you effectively start the Java VM.
There are a few "magic" properties on Mozilla's DOMWindow interface for supporting LiveConnect that will initialize the Java plugin and all the baggage that comes with it (which, with modern Java plugins, means launching java.exe as a subprocess). Looking up these properties on the window object is all it takes.
This Friday is the LAST CHANCE for Ajaxian readers to save $200 off TheServerSide Java Symposium, an event hosted by our sister site TheServerSide.com.
Every little bit helps in this economy - register today with the code AJAXIAN to pay only $1495 for the conference, coming to Las Vegas March 18-20.
You don't want to miss:
Intro and Advanced sessions on Google Web Toolkit with David Geary, Author of Google Web Toolkit Solutions
Jerome Denanot has created CP2JavaWS, an open source "bridge between Cappuccino rich desktop applications and Java services deployed on a web server. It consists of a proxy (client side) and a servlet (server side), and manages parameters namespace, encoding, ordering and JSONP."
Jerome told us more:
Full objects graphs are supported for services method's arguments and return (see provided example in the distribution), including nested collections (List and Map) and heterogeneous collection elements.
Its use is as easy as with GWT (and does not require any generation step thanks to the Objective-J runtime - interpreter step at runtime).
A mapping file (see provided example) has to be put on the server-side for custom objects (maps custom Objective-J objects classname to corresponding Java custom objects classname).
We're inviting all of the Java developers out there to an event organized by our sister site, TheServerSide.com, the Web's largest enterprise Java community. As a member of Ajaxian, you save an extra $100 off the registration fee with the code AJAXIAN. (Register before January 16 to save a total of $400 and get a free book!)
TheServerSide Java Symposium explores current and emerging trends in enterprise Java and how they apply to your daily work. Choose from over 45 technical sessions on new technologies, best practices and practical tips from some of the brightest minds in the industry, including Rod Johnson, Neal Ford, Scott Davis and 35 Java experts.
The latest features of Spring, JSF, Wicket, Tapestry, Google Web Toolkit and more frameworks.
New Java language features, such as EJB 3.1, Glassfish and JavaFX
Popular open source tools, including Eclipse, Maven, Lucene, soapUI, HtmlUnit for testing SOA, Ajax and RIAs.
Expert recommendations on the use of Groovy, Scala and JRuby
Building and maintaining a large-scale SOA
How to create and consume RESTful Web Services.
How and when to use an ESB.
Best practices and tools for optimizing performance and scalability.
And much more!
View TheServerSide Java Symposium agenda to see all of the sessions being presented. Register now with the code AJAXIAN to save an extra $100 and to get a free book while supplies last.
Joe Walker and team have announced the first RC for DWR 3.0. We asked Joe to tell us what is new:
DWR now supports:
varargs
method overloading
typed parameters
binary file upload/download
it has a set of new types it can marshall
DWR will let you use JavaScript to implement Java interfaces (e.g. to register a Listener interface to publish changes to waiting browsers using Reverse Ajax), we now have 3 modes to control resource usage and there is a more scalable Reverse Ajax layer.
There are new integrations with Dojo, TIBCO GI and Aptana Jaxer, and a new DOM manipulation library.
We have special asynchronous servlet support for Tomcat and Glassfish, and our Spring and Guice integrations have been beefed up.
We now support JSONP and JSON-RPC, and there's a whole bunch of etc thrown in for good measure too.
Jeffrey Sharkey has created OilCan a thin wrapper on top of the WebKit shipping on Android that allows you to install userscripts that allow you to access to Android "Intents".
Intents are very nice abstractions that allow you to access large components and reuse them in different ways. Romain Guy has a nice post on them.
OilCan lets you customize any website by inserting JavaScript to change the website and help it reach into the Android world using intents.
OilCan inserts some powerful buttons into normal websites, and that power comes from Android intents. We didn't write a barcode scanner or the radar app into OilCan, but using intents we can launch those apps with parameters. We can request the Barcode Scanner app to scan something and return the code to us, or launch the Radar app with a specific lat/lon.
Userscripts can do other cool stuff, like hide the navigation columns in Wikipedia to make it easier to view on small screens. This is a proof-of-concept for now, and will probably turn into a binary plugin for the default Browser in the future.
A nice piece from an example shows the intent call out:
It really is plugin week isn't it. We had Flash and Silverlight, so it was time for Java to pop its head up from the shadows, and that is what happened with the production release of Java 6 Update 10. It has to be one of the worst version names, but a solid plugin release it is! We originally sat down with Ken Russell to talk about this version on October 18th, 2007.
When I was in his neck of the woods last, I got the chance to talk with Sun’s Danny Coward, the Chief Architect of Sun’s Client Software (that is, Java SE, Java ME, JavaFX and JavaCard), about Java 6 Update 10. That seems like kind of a narrow topic to speak to, but as Danny and I discuss, it’s a big release for Sun’s RIA and client-side (re-)push.
Along those lines, we spend a lot of time detailing the re-written plugin that’s used for Java applets and JavaFX, the improved installer and update experience, and other client side features like one of the new GUI look-n-feels, Nimbus.
I have seen the GWT team working very hard indeed on GWT 1.5, and they must be very happy to see the final release shipped and complete:
GWT 1.5 delivers what we think are an impressive number of improvements, about four hundred issues if you're counting. We're also happy that one of those is issue 168, our most-requested feature, Support for Java 5.
The high level new feature sets are:
Java 5 language support and enhanced JRE emulation
Performance optimizations and easier JavaScript interop
Prettier widgets, better DOM, accessibility, and bi-di
Dave starts out by detailing why you would want to do this, and how it changes the architecture of your application.
He then gets to a tutorial that has you creating the project correctly, and configuring an actual service. Once you are done with the code, you need to setup hosted mode to point to a nice external tom cat via: