Saturday, August 28, 2010

Bloggers Meetup @ Oracle OpenWorld 2010 by Alex Gorbachev

Alex Gorbachev (CTO) at Pythian announced the anual Bloggers Meetup yesterday.
We all know that Oracle community has grown this year so we expect to see folks from all the different technologies including MySQL, Java, Sun hardware folks in addition to the core Oracle database and apps crowd.
(Source: Alex, Pythian)

It will be Wed, 22-Sep-2010, 5:30pm at Lower Dining Room, Jillian’s Billiards @ Metreon, 101 Fourth Street, San Francisco, CA 94103.

More details (maps, streetview) can be found on the event page at pythian.com.

Count me in, Alex! Great opportunity. Was big fun last year. And I will take some pictures this time ;)

Friday, August 27, 2010

Packt launch fifth annual Open Source Awards

The 2010 Open Source Awards was launched by Packt, inviting people to submit nominations for their favorite Open Source project. Now in its fifth year, the Award has been adapted from the established Open Source CMS Award with the wider aim of encouraging, supporting, recognizing and rewarding all Open Source projects.

WordPress won the 2009 Open Source Content Management System (CMS) Award in what was a very close contest with MODx and SilverStripe. While MODx was the first runner up, SilverStripe, a Most Promising CMS Award winner in 2008, made its way to the second runner up position in its first year in the Open Source CMS Award final.

The 2010 Award will feature a prize fund of $24,000 with several new categories introduced. While the Open Source CMS Award category will continue to recognize the best content management system, Packt is introducing categories for the Most Promising Open Source Project, Open Source E-Commerce Applications, Open Source JavaScript Libraries and Open Source Graphics Software.

CMSes that won the Overall CMS Award in previous years will continue to compete against one another in the Hall of Fame CMS category.

These new categories will ensure that the Open Source Awards is the ultimate platform to recognise excellence within the community while supporting projects both new and old. “We believe that the adaption of the Award and the new categories will provide a new level of accessibility, with the Award recognizing a wider range of Open Source projects; both previous winners while at the same time, encouraging new projects” said Julian Copes, organizer of this year’s Awards.

Packt has opened up nominations for people to submit their favorite Open Source projects for each category at www.packtpub.com/open-source-awards-home . The top five in each category will go through to the final, which begins in the last week of September. For more information on the categories, please visit Packt’s website www.PacktPub.com/blog/packt’s-2010-open-source-awards-announcement

Friday, August 13, 2010

Oracle vs. Google - the details: Patents, Complaint and Thoughts.

Today different sources tell us about a recent press release from Oracle that Oracle filed a complaint for patent and copyright infringement against Google, Inc. In which spokesperson Karen Tillman states, that
In developing Android, Google knowingly, directly and repeatedly infringed Oracle's Java-related intellectual property. This lawsuit seeks appropriate remedies for their infringement.
(Source: marketwire.com)

If you are interested, you can read the complaint below. It was published in Scribd
and includes more details about the company’s allegations. From the complaint:
Google’s Android competes with Oracle America’s Java as an operating system software platform for cellular telephones and other mobile devices.
[...]
Google has been aware of Sun’s patent portfolio, including the patents at issue, since the middle of this decade, since Google hired certain former Sun Java engineers.
(Source: scribd.com)

The complaint is related to the following patents. Most of them refer to technologies used by the Andoid Dalvik VM.

Protection Domains To Provide Security In A Computer System
Patent No. 6,125,447

Controlling Access To A Resource
Patent No. 6,192,476

Method And Apparatus For Preprocessing And Packaging Class Files
Patent No. 5,966,702

System And Method For Dynamic Preloading Of Classes Through Memory Space Cloning Of A Master Runtime System Process
Patent No. 7,426,720

Method And Apparatus For Resolving Data References In Generate Code
Patent No. RE38, 104

Interpreting functions utilizing a hybrid of virtual and native machine instructions
Patent No. 6,910,205

Method and system for performing static initialization
Patent No. 6,061,520

An official Google response is missing. As reported, one reason for this could be, that the company hasn’t been served with the complaint yet. But they will respond.

My personal 2c on this:
I was expecting something like this. Probably even a bit erlier. Oracle is not know to be one of the good guys if someone is trying to make money from "their" IP. There has been many examples in the past. And this is another one. I strongly believe that the commercial side of Java will change.
Companys dealing with Java/Sun/Oracle patents should check, what they are doing:)
If you are asking, if this is bad. It could be. This is another example for everyone talking about software patents.
Anyway: Beeing in the middle of the transition from Sun/Java to Oracle/Java this is anything but a pupular move.

Oracle Google Complaint

Tuesday, August 10, 2010

GlassFish 3.1 Logo Suggestions for @JavaOneConf

You know Sparky GlassFish? :) Yes. Of course you do. Beside having his own Facebook profile, there is the official GlassFish page on Facebook.
As seen today, the GlassFish team is searching for some new v3 or v3.1 logos. I don't know if this is going to be a contest. And I don't know, if I am the right one to contribute; but here is what came to my mind thinking about it. Hope, you like it.And @Oracle: Sorry for using the Logos without explicit permission. I think of this as a design study. If the GlassFish team picks one of them, I am shure they will have the permission. If this is not correct to anybody, let me know and I replace them :)
Comments and further ideas highly appreciated.

The idea here was to replace the tail fin with the 3. Works for me :)

I don't know if I like this one. But this is about catching lines. The 3 should support the dorsal fin and make it bigger.

Same idea as above without actually replacing the tail fin.

Another variant of adding the number to the tail fin.

This is a bit more straight forward one. The dots in the lower left are a braille representation of the numbers. I felt like I have to catch the open space there with something. 


And the last one. Also not one of my personal favorites. But it could work.

Wednesday, August 4, 2010

iPad for Business? About the how...

After reading the first part in the iPad for Business? series you now know why you should care for it. In this second post you will read about how to write appropriate software and what to keep in mind doing this.

in business ...
Reading any further I would like to make a friendly reminder. If I am writing about using things "... in business", this always adresses the same issues. Writing software for business is technicaly not different from writing your own personal app. But you have to keep many more points on your list of priorities to monitor than with homegrown usecases. Software for business has to be rock-solid, simple to maintain, stable, fast, reliable, sustainable and should be alterable in simple ways. There are literaly hundreds of different approaches to achive this. Some from a methodicly point of view (project management, development), other trying to get there using extended quidelines. All approaches are valid. And I am not going to spend more lines on this. Simply one little point: Non of the following technologies has been around in companies for longer. If you go on reading you agree that we are talking about bleeding edge stuff. Trying to use this in business forces you to keep an eye on technolgy and have a sixth sense.

Apps, apps and apps
Let's start with the magical buzzword. "Apps". This is the heart of every iXXX device at Apple. All mobile devices share the same basics because they all use the famous iOS. This is Apple's mobile operating system developed originally for the iPhone, and later deployed on the iPod Touch and iPad as well. It is derived from Mac OS X, with which it shares the Darwin foundation, and is therefore a Unix-like operating system by nature. In iOS, there are four abstraction layers: the Core OS layer, the Core Services layer, the Media layer, and the Cocoa Touch layer (UI). Mac OS X applications cannot be copied to and run on an iOS device. The applications must be written and compiled specifically for iOS and the ARM architecture. Authorized third-party native applications are available for devices running iOS 2.0 and later through Apple's App Store.

Native apps
Apple provides a complete ecosystem for developers willing to implement apps. You can develop your applications with the Xcode 3 developer tools package which is included with every Mac. Beside this, you also use the Interface Builder which is a prototyping tool for Cocoa. For more details have a look at the Apple Development Tools page.
If you are willing to write native apps you have to either
a) upload them to the App Store and promote them to all iXXX users or
b) buy yourself a company developers license, register all your iPads and directly upload your native app without pushing them to the appstore.
Both ways are not what I call "suitable" for enterprises. One case exposes applications to a broad range of people. In the other case you have to do too many manual steps to be successfull.

Webapps apps
If you are not able (cause the # of iPads is too large) or willing to play with all those native stuff you have another option. You can simply stick to webbased applications. They do not need any direct deployment to the device and simply run within your safari browser. "Wow. That's everything but cool?". Wrong! Safari is based on WebKit and this is nearly ready for HTML5. Your webapps should of course be HTML5 ready.

HTML5 = Next Generation Features for Modern Web Development
HTML5 is currently under development as the next major revision of the HTML standard. Like its immediate predecessors, HTML 4.01 and XHTML 1.1, HTML5 is a standard for structuring and presenting content on the World Wide Web. It's development is ongoing since the last XHTML 1.1 release which is a W3C recommendation since 31 May 2001.
If you want a real fancy introduction to the new features and you are using one of the "modern" browsers (compare chapter below), have a look at this slidedeck.
HTML5 is nothing more than some HTML (+ additional tags) like we know it, plus some CSS (+ additional features) like we know it and some fancy new JavaScript APIs. The new JS APIs make this so interesting. There are new features supporting real application development on the web. To name a few: new Selectors, Web Storage, Client SQL DB, Cache API, Workers API, Sockets, Notifications, Drag and drop support and Geolocation support. Bottom line is: HTML5 promises to be a technological tipping point for bringing desktop application capabilities to the browser. As promising as it is for traditional browsers, it has even more potential for mobile browsers. And the best thing is: All you have to implement is just HTML, JavaScript, and CSS—the core technologies of any Web developer. There are a couple of great ressources out there to get a first introduction into the new capabilities. Some I found very usefull (in no particular order):

WebKit vs. Gecko vs. IE
Up to now there are only few browsers supporting different subsets of the latest HTML5 W3C Working Draft 24 June 2010. The HTML5 test website generates a score which is only an indication of how well the browsers supports the upcoming HTML5 standard and related specifications. It does not try to test all of the new features offered by HTML5, nor does it try to test the functionality of each feature it does detect.


If you compare the most recent windows versions of relevant browsers you notice, that all WebKit based rendering engines are far ahead. If you are willing to testdrive your iPad webapp you should use foremost the targeted device but it's completely valid to use the desktop browser which is knowing to best support HTML5 at the moment.

Preparing Your Web Content for iPad
Safari on iPad is capable of delivering a "desktop" web experience. iPad has a large screen and fast network connectivity, and Safari on iPad uses the same WebKit layout engine as Safari on Mac OS X and Windows. You can ensure that your website looks and works great on iPad, and even create new touch-enabled web experiences for your customers, by considering a few specific differences between iPad and other platforms. Apple did quite a good job in introducing all the special things to developers with a couple of documents. You should browse http://developer.apple.com/safari/library/ for the latest information and some great showcases. Also take a detailed look at the iPad Human Interface Guidelines. The basic device characteristics to keep in mind are:
  • Screen Size is Compact
  • Memory is Limited
  • People See One Screen at a Time
  • People Interact with One Application at a Time
  • Onscreen User Help is Minimal

Writing applications with JavaScript? Are you kidding me?
I know: Enterprise developers tend to think about Java Script as of the last scripting language they would ever chose for writing professional applications. Up to some extend this is caused by the many badly written stuff out there with all it's problems like cross browser issues and proprietary function ussage. But you can do it the right way. Look at Google for example:
Currently, the Gmail program is comprised of 443,000 lines of JavaScript, with 978,000 lines if comments are included. All of it was written by hand [...]
(Source: Adam de Boor in Google to use HTML5 in Gmail
Wow. If this is true ... they are doing a great job at all! And it is a very good indicator, that you could do it also. There are some programming guides out there that could assist you. Anyway, if we are likeminded, than you are not thinking about doing this. And this is perfect to me. Still reaching for great UIs on the iPad? Think about frameworks.

Frameworks and Libraries
Writing all this stuff by hand, like Google does is probably not the right decision if you are aiming for productivity and you are not Google :-) Thank god, there are a couple of HTML5 frameworks out there already you can use. Basically you have to decide if you want to use a serverside or a clientside version. The frameworks presented here have a positive history with me and this is the reason I am presenting them to you.

Sencha Touch
Sencha Touch is an app framework built to leverage HTML5, CSS3, and Javascript. It makes use of HTML5 to deliver components like audio and video, as well as a localStorage proxy for saving data offline. It extensivly uses CSS3 to provide a robust styling layer. The entire library is under 80kb (gzipped and minified), and it's easy to make that number even smaller by disabling unused components or styles.
The creators of Touch also gave birth to the better know ExtJS framework. Working with Touch is easy and there are a lot of examples. It is published under several licenses. A GNU GPL license v3 version is also available.

jQTouch
jQTouch is not a complete framework itself. It's a plugin to the well known jQuery JavaScript Library. The plugin itself is MIT licensed and available for download from google code. It supports native animations, automatic navigation, and themes.

YUI 3
YUI 3 is Yahoo!'s next-generation JavaScript and CSS library. It powers the new Yahoo! homepage and incorporates what they've learned in five years of dedicated library development. The actual 3.2.0 PR1 adds gestures and touch events. This is going to be extended in the future. So watch out for the final 3.2.x. The library is published under a BSD License.

Now heading over to the (java) serverside. There are a couple of choices available also. Basicaly all of them depends upon any kind of UI component stuff (e.g. JSF). If you hope for fancy HTML5 based and mobile optimized UIs without any javascript they are probably the right choice for you.

Mobile Application Development with Oracle ADF Mobile
ADF Mobile extends Oracle Application Development Framework to mobile users. Using Oracle JDeveloper, application developers can rapidly develop mobile applications that support mobile users accessing critical business data through either on-device mobile client or mobile. There are two parts to ADF Mobile: ADF Mobile Client and ADF Mobile Browser. ADF Mobile Client supports a complete on-device client framework that works and performs consistently regardless of connectivity. ADF Mobile Browser supports UI renderers that are optimized for Mobile Browser display. Both frameworks enables developers to develop one application that can be deployed to multiple mobile device platforms. The mobile client is (not jet) released for apples devices. Therfore you still have to stick to the "old fashioned" way. (compare otn article: Developing for the Apple iPhone with Oracle JDeveloper and ADF).

TouchFaces
TouchFaces is a mobile UI kit for PrimeFaces to create mobile web applications for handheld devices with webkit based browsers. You can run it with Mojarra-2.0.2 and make use of 90+ components

Apache MyFaces Trinidat
Apache MyFaces Trinidad is a JSF framework including a large, enterprise quality component library. Trinidad supports wide range of mobile browsers. Some mobile devices are explicitly tested and supported. Others are grouped as basic browsers and Trinidad renders pages so that the page works with or without browser features, such as supports for AJAX, DOM, JavasScript or even CSS. There is a seperate website dedicated to Mobile Application Development with Trinidat.

Bottom line
Writing applications for the iXXX family in general is easy if you decide to stick to whatever feature WebKit offers. Beside the fact that the actual HTML5 draft still is not a final specification and things are going to change, it is the only option for large enterprise apps with a big number of users. There are other things to keep in mind. If you are interested: Some coworkers of mine are working on the first iPad in Enterprise book ever. Too bad, that it will be written completely in German. This will be published end of November. Keep up to date with the books webpage at springer.

Tuesday, August 3, 2010

Java Enterprise Edition Schedule for @javaoneconf, @oracledevelop and @oracleopenworld

Planning on my OOW/J1/OD trip is making progress. Blogger registration still not aproved and I am waiting for my flight confirmations, but I already found some time to browse through the Content Catalog and pick up some interesting sessions. At the moment I still have a comparable number of sessions in my interests as I have in my agenda.
I did not check, if it is doable. You need to take into account that you have to move from one location to another. Switching from the Hilton to the Marriott in less than a minute probably will not work :) Therefore I have to adjust some slots on the following schedule. But it is, what I believe a very great Java Enterprise Edition Schedule.

Monday, September 20
S314556 JDK 7 and Java SE 7
10:00-11:00 Hilton San Francisco, Grand Ballroom A & B

S317474 Oracle Fusion Middleware Application Server Roadmap
11:00-12:00 Marriott Marquis, Salon 9

S314348 Step by Step: GC Tuning in the HotSpot Java Virtual Machine
1:00-14:00 Parc 55, Mission

S313432 Querying with the New Java Persistence Criteria API
2:30-15:30 Hilton San Francisco, Golden Gate 4/5

S317468 Oracle JRockit: Advances in Java Virtual Machine Technology
4:00-17:00 Hotel Nikko, Peninsula

S317063 Managing Oracle WebLogic Server: New Features and Best Practices
5:00-18:00 Moscone West L3, Rm 3024

S317482 Java SE Platform Q&A BOF
7:30-20:15 Moscone South, Rm 310

S314737 GlassFish Roadmap and Strategy
8:30-21:15 Moscone South, Rm 307

S313864 Effective Java Debugging Techniques
9:30-22:15 Moscone South, Rm 301

Tuesday, September 21
S313248 Creating Lightweight Applications with Nothing but Vanilla Java EE 6
9:30-10:30 Hilton San Francisco, Yosemite B

S313522 Developing OSGi-Enabled Java EE Applications
12:00-14:00 Hilton San Francisco, Plaza A

S313831 Breaking Up Is Hard to Do: Modularizing the JDK and Lessons Learned
1:00-14:00 Parc 55, Embarcadero

S313525 High-Performance Java Servers at Google
2:30-15:30 Parc 55, Cyril Magnin III

S313433 Object-Relational Mapping with the New Features of the Java Persistence API 2.0
6:00-18:45 Hilton San Francisco, Continental Parlor 1/2/3

S313942 Java Community Process: What You Like and What You Don’t Like
7:00-19:45 Parc 55, Cyril Magnin III

S313266 What’s Next for Java API for RESTful Web Services (JAX-RS)
8:00-20:45 Hilton San Francisco, Yosemite B

S314787 Hot Class Swapping: Avoiding Redeployment During Java EE Development
9:00-21:45 Hilton San Francisco, Golden Gate 2

Wednesday, September 22
S313937 Using Contexts and Dependency Injection (CDI) in the Java EE 6 Ecosystem
10:00-11:00 Hilton San Francisco, Golden Gate 3

S314347 Too Big to Fail: Top Tips for Massive, Mission-Critical Enterprise Applications
11:30-12:30 Parc 55, Embarcadero

S314040 Top 10 Causes for Java Issues in Production and What to Do When Things Go Wrong
1:00-14:00 Hilton San Francisco, Golden Gate 2

S314718 Meet the Java Deployment Team
2:15-15:00 Parc 55, Cyril Magnin I

S314504 Defective Java Code: Mistakes That Matter
4:45-17:45 Hilton San Francisco, Grand Ballroom B

Thursday, September 23
S313277 Beginning with the Java EE 6 Platform
11:00-12:00 Hilton San Francisco, Plaza A

S313949 Java Unleashed: Java Virtual Machine Tuning from the Pros
12:30-13:30 Parc 55, Cyril Magnin III

S312993 Java Bloopers: Bad Code That Never Should Have Been Available
2:00-15:00 Parc 55, Embarcadero

S313804 The JSF 2.0 and HTML5 Version of Parleys.com Available
3:30-16:30 Hilton San Francisco, Yosemite B

Monday, August 2, 2010

Oracle Enterprise Pack for Eclipse (OEPE) 11gR1 (11.1.1.6) - New Features

The new Oracle Enterprise Pack for Eclipse Release (11.1.1.6.0) is out. I already blogged about the new WLST integration. Today I will report about the other new features as far as I know them. The OTN website still does not show the latest release notes for the 1.6 release.

Oracle WebLogic Server Support
OEPE 1.6 adds the next 11g R1P3 Patch Set to its supported versions of Oracle Weblogic Server.

Support for Web Services
You use the WebLogic Web Services Annotation view to add new and edit existing annotations of a Java Web service within projects configured with WebLogic Web Services or WebLogic Web Service Clients facet. This view allows you to add annotations and their attributes without knowing the detailed information about which annotations and attributes are supported.

Support for Coherence
Oracle Coherence provides replicated and distributed data management and caching services on top of a peer-to-peer clustering protocol. OEPE provides a project facet that allows you to configure your dynamic Web projects to use Coherence.

Updated WTP 3.2 for Helios 3.6
The GlassFish Plugins project is moving to the Oracle Enterprise Pack for Eclipse (OEPE) (compare this bug entry) and the latest release is available at this url http://download.oracle.com/otn_software/oepe/helios/wtp. But it is also bundeled with the new OEPE release. You can get OEPE 1.6 for Both Eclipse 3.5.2 (Galileo) and 3.6 (Helios) releases.

The OEPE GlassFish integration is based on the GlassFish plugins for the Eclipse Web Tools Platform (WTP) version 3.2.0. WTP 3.2 adds support for creating, running, and debugging applications using Java EE 6, including Servlet 3.0, JPA 2.0, JSF 2.0, EJB 3.1, and JAX-RS 1.1 technologies, plus deployment to updated server runtimes, and support for XPath 2.0.

In detail the enhancements are:

Complete list of WTP 3.2 enhancements
  • Dali JPA Tools
    • Initial JPA 2.0 Support - 2.0 Facet and Generic 2.0 Platform
    • Derived ID support
    • JPA 1.0 and 2.0 Configurations
    • Document version upgrade
    • JPA 2.0 Support and EclipseLink 2.0 Platform
    • JPA 2.0 Cache support
    • JPA 2.0 Canonical Metamodel generation
    • EclipseLink 1.2 Platform
    • EclipseLink 2.1 support
    • EclipseLink Logging Categories
    • Validation Preferences
    • Detail View options for: OrderColumn, ElementCollection, Derived Identity support
    • JAXB XML Schema Generation
    • JAXB Class Generation
    • JoinTable support for "Many to One" and "One to One" mappings
    • Cascade Detach
    • Collection-valued associations map key attribute overrides; MapKeyClass, and MapKeyColumn Model Support
  • Java EE and EJB Tools
    • Revamped Deployment Assembly
  • JavaServer Faces Tools
    • JSF 2.0 - Project Configuration
    • JSF 2.0 - XHTML File Creation
    • JSF 2.0 - XHTML Source Editing
    • JSF 2.0 - Composite Component support
    • Web Page Editor (WPE) Design Pane enhancements
  • Server Tools
    • Support for Apache Tomcat 7
  • Source Editing and JSDT
    • Code Folding enabled by default
    • Character Pairing
    • Some XML changes
    • Some HTML changes
    • Some XSL changes
    • JSDT - Perspective changes (Script Explorer)
    • Improved namespace support
    • JSDI API
    • Rhino Debug Support
    • Quick Access to Breakpoint Properties
    • Breakpoint Condition Content Assist
    • Rhino Console
    • Some JSP changes
    • Some CSS changes
  • Web Services and WSDL Tools
    • JAX-RS Facet and Enhancements
    • JAX-WS CNF Content Extensions
    • JAXB Single Member and Marker Annotation Support
    • Apache CXF Web Service creation using ANT tasks
    • JAX-WS Handler Support
    • Support for multiple CXF installations
    • JAX-WS Handler Chain Configuration
    • Abstract / concrete WSDL definitions