Online Java Web Services Class Starts Again October 1st

Posted in: Cloud Computing, Enterprise Java

I will once again be teaching my Java Web Services class for the University of California starting October 1st.

The class is 100% online and can be completed from anywhere in the world that has an internet connection.

Check this link for more information:

http://unex.uci.edu/courses/sectiondetail.aspx?year=2012&term=FALL&sid=00319

Free Webinar – Amazon Web Services for Java Developers

Posted in: Cloud Computing, Enterprise Java, Software Development Best Practices, System Administration

I will be giving a free 1-hour Webinar this coming Thursday (June 7th) to introduce a brand new course that I will be teaching at the University of California in the Summer quarter. The new course is entitled Amazon Web Services for Java Developers and is a 10 week, 100% online course that will cover all of the critical topics that a Java Architect and/or Developer needs to know to make the most of Amazon Web Services in their applications.

To register for the Webinar please visit the University of California website.

Further details on the class and information on how to enroll can be found here.

JavaOne 2011 – Monday Keynote

Posted in: Enterprise Java

JavaOne 2011 got off to a bit of a shaky start this morning with there being a lack of seating in the Grand Ballroom of the Hilton, leading to the escalators eventually being blocked by physically meek, yet surly, security guards and having people being redirected to smaller rooms somewhere else in the rabbit warren that is the Hilton’s conference and event space. However that didn’t happen until after a couple hundred poor souls were left standing at the back of the room to endure a 2 hour-long dry and technical keynote.

Then Mark Reinhold went missing. Not sure what happened there but awkwardly is name was announced and someone else took the stage with no real explanation about why. He then went on to introduce Doug Fisher, VP Intel, who was supposed to be the 2nd half of the keynote. The Intel guys and their Oracle counterparts presented myriad of numbers and graphs to prove that Java runs well on the Intel architecture. Not really sure anyone needed a lot of convincing of that, but their results were impressive nonetheless.

Continue reading »

Google Attempts Some Damage Control For App Engine Price Changes

Posted in: Cloud Computing, Enterprise Java

We understand that the new rates surprised some of you. We’ve been listening closely to your feedback, and we wanted to share an update on the changes we’re making to help ensure you have an accurate picture of how the new pricing will affect your app. Although prices will increase, we’re confident that you’ll find App Engine still provides great value.

via Google App Engine Blog: A few adjustments to App Engine’s upcoming pricing changes.

Java PaaS Vendor Survey – September 2011 (YouTube)

Posted in: Cloud Computing, Enterprise Java

Heroku vs OpenShift – The Battle of the JavaEE FUD

Posted in: Cloud Computing, Enterprise Java

On the same day that Heroku announced its new support for Java based applications, it also curiously posted a laundry list of FUD about the JavaEE platform. Don’t get me wrong, I share some of Heroku’s complaints, but calling out the shortcomings of the JavaEE platform by linking to documentation related to obsolete versions did not help give Heroku’s arguments credence. Last I checked, the Jetty server, which Heroku’s Java platform is based on, quite clearly states that it is a Java Servlet container, and the Java Servlet specification is part of the JavaEE family of specs. So the specs that Heroku derided are in fact the same specs that their product is running on a subset of. Interesting tactic.

Of course, the RedHat team with their OpenShift platform (that does in fact support a full JavaEE stack) managed to take the Heroku post personally and responded in a less than dignified fashion. Why RedHat felt they needed to respond at all is the first question that comes to mind. The Heroku post does not call them out by name. The level of animosity in the Redhat response makes me wonder if there is bad blood between these teams.

Personally I have real concerns about Heroku’s model of non-conformance to the JavaEE specifications. There is a wealth of knowledge and code out there based on those specs (irregardless of how flawed they may be), so expecting people to do some heavy lifting to port their existing standard Java code to run on your platform is a big ask. The tools out there (from IDEs to builders like Maven and Ant to CI environments like Hudson) are entrenched in every team and on every developer’s box. Where do you hire Java Heroku developers from exactly anyway? Now, you could argue that Heroku’s model is not that different from standard JavaEE, but the fact that it is different at all is the problem. As one commenter on Heroku’s post said “Any reason you didn’t simply allow for uploading of a .war?“. Precisely.

OpenShift has its own set of issues as well though. I cannot recall the last time I worked on a project that actually required a full JavaEE stack. I don’t think I have a JBoss or WebLogic environment on any computer I own currently (and I definitely don’t have WebSphere, that’s for sure). What I do have is about 3 different versions of Tomcat with multiple applications deployed on each. I also have a couple of packaged pieces of software installed that actually run Jetty internally. Perhaps it’s just the kinds of projects I work on, but I suspect I am most likely in the majority. Probably even more so if you looked at all the Java apps that are deployed on full JavaEE stacks out there, that could actually be deployed into a servlet container with no code changes. Arguing that a full JavaEE stack is an essential and technically superior solution when you are a vendor of such a stack (ie. JBoss) doesn’t really give your argument much objective weight.

So, JavaEE is not what it was even 5 years ago, it has gotten a lot better and has evolved via a variety of means, one of the biggest being watching what the community does to work around the JavaEE shortcomings (see Hibernate etc).

That said, a full JavaEE stack is not the answer to every problem, maybe not even a majority of problems.

As with most things in life, the middle ground is probably where the truth will be found. A non-standard Java platform is probably not the right answer, but then again a full JavaEE stack is probably not either. IMHO, as far as I can see right now, the sweet spot in the Java PaaS space are the vendors that allow developers to work as they have been previously – allow them to use the tools they know, the development workflow they know and the architecture they know. Based on that, I think Amazon’s Elastic Beanstalk and CloudBees RUN@Cloud are probably on the right track.

JavaOne 2010 – Technical General Session

Posted in: Enterprise Java

The Technical General Session on Tuesday was held at the Hilton and not at the Moscone Convention Center. After traversing the awkward combination of stairs and escalators to get to the Ballroom in the Hilton I was pleased to see the hotel staff had reconfigured the room since the lunch hour from round tables to the standard endless rows of neatly lined up chairs. The session was true to Java’s heritage and once again told as a story in 3 parts – JavaSE, JavaEE and JavaME. However, far and away the most interesting information came from the JavaSE portion of the presentation.
Continue reading »

JavaOne 2010 – Monday Keynote

Posted in: Enterprise Java

After the debacle on Sunday afternoon where all of the JavaOne conference attendees were turned back by the conference thugs at the doors to the Oracle Welcome Keynote, my expectations for Monday’s opening JavaOne Keynote were not high. The magnitude of the irony of calling the Sunday event the “Welcome” Keynote, but not allowing JavaOne attendees to watch it live makes my head spin. I have it on good authority though (I was actually allowed in because of my Press credentials), that once the JavaOne attendees had trudged back up the hill to the Hilton to “enjoy” the video feed, alcohol was found to be available and so it turned out to be one of the better Keynotes in spite of Oracle’s lack of hospitality.
Continue reading »

Engage

Posted in:

I am a full-time consultant who is available to engage with clients remotely or onsite anywhere in the world (I currently hold dual-citizenship between Australia and the United States).

To discuss your specific needs, please call me on +1.650.336.5877, or email me at craig@craigsdickson.com, or use this Contact form, or download a copy of my resume from this page.

The following is an overview of the services I provide to clients:

Software Development Process Improvement

  • Coaching for Agile process evaluation, adoption or improvement, including Scrum, Lean, Kanban and Extreme Programming (XP)
  • Definition, refinement and documentation of team processes and practices
  • Definition of Quality Assurance and Quality Control standards
  • Integration of defect tracking systems with other tools and processes
  • Engagement with customers and requirements elicitation

Software Development Team Management

  • Job Description authoring
  • Salary range and benefits package definition
  • New candidate acquisition and screening
  • Team workspace design and office space evaluation
  • Skills assessment of existing resources
  • Collaboration strategies for teams

Vendor Management

  • New vendor discovery and screening
  • Vendor proposal reviews
  • Offshore vendor management, including onsite visits and reviews
  • One throat to choke multiple vendor management

Software Configuration Management (SCM)

  • Introduction of an SCM system to teams not already using one (Subversion, Git, CVS etc)
  • Subversion and CVS training
  • Subversion and CVS server installation and configuration
  • SCM process definition and documentation, including branching and merging processes
  • SCM system migration, particularly CVS to Subversion

Build Management

  • Implementation of Apache Maven and Apache Ant based build systems
  • Automation of builds, particularly in relation to a Continuous Integration system like CruiseControl or Hudson
  • Management and versioning of produced code artifacts, particularly in relation to an Artifact Repository like Nexus or Artifactory
  • Release numbering strategies and Alpha and Beta customer release programs

Software Architecture & Design

  • Enterprise-level system architecture definition, existing architecture reviews
  • New database design and existing database design review
  • Formal UML based architecture definition

Enterprise Java Development

  • Specialist in full-stack JavaEE development
  • Public API design and documentation for ISVs
  • Web service development and integration
  • Code reviews and performance tuning
  • Service Oriented Architecture (SOA) design and implementation

Web Development

  • HTML, JavaScript and CSS development
  • Integration of AJAX style JavaScript libraries including GWT, JQuery and ExtJS
  • Integration of Adobe Flash and Flex components

Automated Testing Strategies

  • Introduction of tools like JUnit and Sellenium to teams that currently do not do any automated testing
  • Integration of tests into automated build scripts and generation of metrics
  • Static analysis of codebase quality

Mobile Development

  • iPhone application design and development, specializing in integration to JavaEE based back ends
  • Web based mobile development

Social Media Strategy

  • Specializing in small to medium business that do not have dedicated in house Social Media resources
  • Evaluation of current Social Media presence
  • Recommendations for Social Media platforms based on particular business needs and goals
  • Evaluation of Location based services in relation to business needs and goals

Once again, to discuss your needs and to find out how I can help you, please contact me by phone on +1.650.336.5877, by email at craig@craigsdickson.com, or simply use this Contact form. If you would like more detailed information regarding my experience and qualifications, you can download a current copy of my professional resume from this page.

Success Guide For Sun Certified Enterprise Architect Exam

Posted in: Enterprise Java

After upgrading my SCEA certification recently (see this post), I have summarized some key pieces of information and the resources I used to pass the exam below. I hope this helps others pass as well.

The Basics
The place to start is the main SCEA exam page on the Sun site (http://www.sun.com/training/certification/java/scea.xml). You will find a description of the exam objectives as well as plenty of plugs for Sun’s own training courses to help you pass the exam (I have never taken any training directly from Sun, so I cannot speak to their value).

Certification Structure
Remember, the certification is made up of 3 parts.

The first part is an exam and is the hardest part, this is the part you are really doing all of the study for. The exam is a computer administered multiple-choice style exam (the same as the SCJP exam if you have done that one).

The second part is a take home assignment. This part will take the longest and involves presenting a solution (via UML and other documentation) to a business problem. There is no coding involved.

The third part is another computer based exam, but is made up of long answer questions this time. You should plan to do the 3rd part ASAP after you have submitted and passed the 2nd part. The questions in this part will ask about certain design considerations and other decision points from the assignment and why you chose the solution option that you did.

Obviously it will depend on your level of proficiency as an architect and specifically with the JavaEE technologies, but I think you should plan on 3-6 months in prep for the first part, 1-3 months to complete the assignment and then you should be able to do the 3rd part within a month of submitting your assignment depending on how long it takes Sun to review your assignment and you to get scheduled in to take the exam.

Websites
Below is a list of some websites that contain relevant information.

Books
I have read all of the following books at one point or another. They are all mentioned as recommended reading at various places in the official Sun documentation for the exam.

Some Notes on Upgrading
If you have previously passed the SCEA for an earlier version of the JavaE/J2EE specification, then you can complete a modified version of the SCEA certification to upgrade to the latest version (currently JavaEE 5). The upgrade certification process only requires you to sit and pass the first part of the normal certification – the multiple choice exam. You do not need to re-do the assignment or the long-answer exam.

When I sat the upgrade exam, I noticed that a significant proportion of the questions were related to web services. I suspect that this is because the first time I sat the exam, web services were not officially part of the JavaEE stack and so perhaps the upgrade exam is tailored to cover only the newer parts of the specifications – but I cannot guarantee that this is the case.

Do you have other resources that you would recommend? Let me know in the comments.