Writing A JSP Custom Tag Library for Adobe Communique

Posted in: Enterprise Java, Software Development Best Practices

I just wrote another article for CQ Blueprints.

Within CQ, Components (including Page Templates) can utilize JSPs for rendering not only HTML, but also other output formats such as JSON.

Unfortunately, many JSPs are written poorly and mix presentation logic with business logic (in the form of scriptlets) making them difficult to test, debug and maintain. One of the best ways to write better JSPs is to never use scriptlets and instead use a combination of EL expressions and Custom Tag Libraries (including the JSTL). This Blueprint details how Custom Tag Libraries should be developed and deployed to a CQ environment.

For more, see:
http://www.cqblueprints.com/xwiki/bin/view/Blue+Prints/Writing+A+JSP+Custom+Tag+Library

Deploying 3rd Party Libraries to Adobe Communique

Posted in: Enterprise Java, Software Development Best Practices

I just published a new Blueprint over on cqblueprints.com that details how to easily deploy 3rd party libraries into your CQ environment, even when those libraries do not contain the necessary OSGi entries in the Manifest file.

CQ is built on top of Apache Sling, and Apache Sling is built on top of an OSGi container (Apache Felix specifically).

OSGi containers behave slightly differently (in terms of how classes are loaded and made available on the classpath) than most Java developers are used to.

To be able to make classes available within the OSGi container, Jar files need to be packaged in a specific way, including adding extra meta-data to the standard MANIFEST.MF file. The problem this can create is that libraries created by other developers that have not been built with OSGi in mind are missing this extra information and so their Jar files cannot be deployed in CQ.

This Blueprint details how to easily and reliably expose non-OSGi enabled libraries in CQ.

See Deploying 3rd Party Libraries

Updated AMIs for Elastic Beanstalk Announced

Posted in: Cloud Computing, System Administration

AWS has posted updated AMIs for use with Elastic Beanstalk, including an update to support Tomcat 7.0.19

https://forums.aws.amazon.com/thread.jspa?threadID=73213

Amazon Announces 2 New Features for Elastic Beanstalk

Posted in: Cloud Computing, Enterprise Java

Using the AWS Management Console, you can now save an environment’s configuration, launch a new environment with a saved configuration, and apply a saved configuration to an existing environment. This allows you to seamlessly launch multiple environments with your preferred settings.

AND

By using the URL swapping functionality, end users of your web application should not experience downtime when you deploy a new application version. You can stage your new application version on a test environment and swap the URLs with the production environment.

Read more at:
http://aws.typepad.com/aws/2011/06/configuration-persistence-and-support-for-url-swapping-with-aws-elastic-beanstalk.html

Online Java Web Services Training Class

Posted in: Software Development Best Practices

I will be teaching my Java Web Services class starting the week of July 4th, this time around through the University of California Irvine Extension program.

Topics covered include:

  • Java API for XML Processing (JAXP) – SAX, StAX, DOM, XSLT
  • Service Oriented Architectures (SOA)
  • Java API for XML Web Services (JAX-WS)
  • SOAP
  • Web Services Description Language (WSDL)
  • RESTful Architectures
  • Java API for RESTful Services (JAX-RS)
  • JAXR / UDDI
  • Web Service Standards (WS-*)
  • JSON Web Services
  • Developing AJAX/JavaScript web service clients
  • Web Service Design Patterns
  • Web Service Best Practices

This class is 100% online based, with pre-recorded lecture materials available each week. In addition to lecture materials there will be weekly activities varying between forum discussions, quizzes, background reading, and of course coding.

Enrollment is open to everyone and is available right now.

http://unex.uci.edu/courses/sectiondetail.aspx?year=2011&term=SUMMER&sid=00152

The University of California Irvine Extension program provides an Orientation Week before each class to allow students to become familiar with the virtual classroom environment before formal instruction begins. For this class, the Orientation Week starts on June 27th (i.e. this coming Monday), however you are able to enroll up until the beginning of the formal instruction in the week of July 4th.

If you are interested but have questions about the course content, please comment below and I will answer as quickly as I can. For any questions about the University of California Irvine Extension program, please call Student Services on +1 949 824-5414.

Smart Phones, Dumb Commercials

Posted in: Customer Service

The current round of Blackberry and Android tablet commercials almost universally and prominently call attention to the fact they are able to render Flash based content. Using terms like “Flash Enabled” or “Flash Compatible”. Obviously this is a less than subtle swipe at iOS based devices (iPhone, IPads etc) which do not deal with Flash content.

If the best product differentiator these companies can muster is the fact that their device/OS can run bloated Flash based advertising banners across the top of web pages that I am viewing on a slow mobile connection, then I think Apple will hardly be rushing in to “support” Flash.

Even Adobe, the creator of Flash, has begun to quietly waive the proverbial white flag in defeat when it comes to the Apple Vs Flash battle. Just in the last few days, on their Labs website, Adobe announced the first availability of Project Wallaby (great name IMHO), which is a tool to convert Flash applications to the HTML 5 standard that many browsers already have support for, and surprise, surprise so do iOS based devices.

Bottom line: if the main reason you pick one smart phone over another is that one runs Flash and one doesn’t, then it is possible you are not qualified to own a smart phone just yet.

Barnes & Noble Enters Apple Vs Flash Debate

Posted in: Customer Service

Saw this at the local Barnes & Noble tonight.

Notice the interesting juxtaposition of the “Apple & Everyday Computing” signage, with the books about Flash and Flex development immediately under them.

If you were the kind of person who loves a good conspiracy, you might think that Barnes & Noble is attempting to suggest that Flash is part of the everyday computing experience and Apple needs to support it, possibly because the Nook (B&N’s e-book reader) will support Flash going forward.

If you are not one of those kinds of people, you might just think it is a benign coincidence. :)

IMG_0621

EU Approves $7.4 Billion Deal Between Oracle And Sun

Posted in: Enterprise Java

It’s official: the European Commission has granted regulatory approval for Oracle to acquire Sun Microsystems for approximately $7.4 billion, without further conditions. In a statement released moments ago, Oracle says it expects unconditional approval from China and Russia as well and intends to close the transaction shortly.

Robin Wauters @ TechCrunch
EU Approves $7.4 Billion Deal Between Oracle And Sun

Top 10 Bare Minimum Web Client Performance Tweaks

Posted in: Software Development Best Practices

In my previous article (Performance Tuning Resources For Web Clients) I discussed why you should care about the performance of your web client and then listed out some of the better places to go on the web to find information on how to go about tweaking your web clients to get that better performance. In this article I am going to dig a little deeper and call out specifically what I think are the Must-do-No-excuse-not-to-do-them-You-are-really-being-unprofessional-if-you-are-not-doing-them tweaks that you should be performing on every single one of your web development projects.
Continue reading »

Performance Tuning Resources For Web Clients

Posted in: Software Development Best Practices

Recently I have been doing some research on tweaking websites to make them faster (either in reality, or at least in appearance to the client). Specifically the research has been focused on the actual client tier interaction – requesting the page, downloading the assets and rendering the page in the browser. In this post I will document some of the better resources I have found, focusing on client-side tweaks, so these resources should be relevant no matter if you are a Java, PHP, .Net or any other flavor of developer.
Continue reading »