Tuning Java code presents many challenges and addresses several goals.
One of these goals is to make the application "run faster".
Recently, our end-users were getting multiple-second response times from our web application's home page.
This was unacceptable.
We were asked to see what we can do to make the web application "run faster".
We began by looking at the usual suspects... database access...
One of the biggest challenges facing us during the creation of our first Java application
was learning to develop with the Java programming language.
We were concerned about how well our team of developers would learn and adapt to Java.
Since Java was an object-oriented programming language, we had object-oriented concepts to learn as well.
Our first Java training class was titled, "Developing...
Assembling a team of Java developers can be a challenging task.
Getting the right people together requires a combination of luck, skill, and plenty of patience.
When someone new joins your team, they could also be new to your company.
Over the years, we have conducted many job interviews of Java developer candidates wishing to join our team and company.
Our Java job interview format is simple and...
Our team of Java developers consists of people with various backgrounds and skill levels.
Everyone has a role and is assigned tasks based on that role.
Team members are expected to know basic programming concepts, core Java and core J2EE.
In addition; database access, web-browser, client/server concepts are required as well.
It didn't take long for our team to realize there was a lot more to know...
I am back with more stories about our adventures in the world of Java.
From the distant past to recent events. I hope to entertain, enlighten, and encourage.
So hold on to your hats.
For software developers in IT, there are times when you find yourself present at the birth of a major application.
Normally these are dream assignments. But consider the following additional factors.
The Foundations of Mobile First Design
by Matthew Carver, author of The Responsive Web
In this article from The Responsive Web, author Matthew Carver opens up a discussion of how to build a site for a mobile or small-screen device using a graphic design program, such as Photoshop.
Building a site in its smallest iteration first affords the designer a lot of opportunities. By starting in a...
The simple build tool (SBT) is a tool for building Java and Scala projects. SBT aims to build well and allow users to customize endlessly, but above all, SBT strives to provide consistency of basic concepts so that, once learned, you don’t have to unlearn them as you dive deeper into the build system. This article, based on chapter 1 of SBT in Action, shows you how to set up SBT and define an SBT build.
The Java Platform, Enterprise Edition (Java EE) standard solves the problem of leaky concerns with metadata as annotations in your code or as external XML descriptors. This approach allows the runtime container to implement predefined cross-cutting concerns—security, concurrency, persistence, transactions, and remoteness—in a generic way by intercepting calls to your application components. In this article, based on chapter 3 of Java Persistence with Hibernate, Second Edition, the authors discuss domain model metadata.
The topic of spatial reference systems (SRS) is one of the more abstruse in GIS to understand. This is mainly due to the loose way in which people use the term spatial reference system and secondly to its unglamorous nature compared to other areas of GIS. If GIS is Disneyland, think of SRS as the bookkeeping necessary to keep the Disneyland operation afloat. In this article, based on chapter 3 of PostGiS in Action, Second Edition, the authors explain the components of a spatial reference system.
Acteur - a framework for building scalable, asynchronous web applications using Netty + Guice with an interesting programming model
Kanban is an approach to software development based on the principles of lean. It has quickly been picked up by many businesses around the world. You can pick it up too! This article, based on chapter 2 of Kanban in Action, defines kanban, introduces kanban principles, and gets you started using kanban.
Gradle provides a build-by-convention approach for certain problem domains like Java projects by introducing pre-defined project layouts with sensible defaults. In this article, based on chapter 3 of Gradle in Action, author Benjamin Muschko explains how to apply the Java, War and Jetty plugins to build and run your web application with Gradle.
Clojure multimethods support not only multiple dispatch but much more. Indeed, once you look past multiple dispatch, a commonly asked question is whether a language can dispatch on things other than the types of values. With Clojure’s multimethods, methods can be made to dispatch based on any arbitrary rule. In this article, based on chapter 4 of Clojure in Action, Second Edition, the author explains how Clojure multimethods work
We live in a world of highly connected multicore servers, where web applications are expected to scale from dozens of users to millions. New demands are being placed on developers by the real-time nature of the modern web. Developers are looking for fresh solutions to solve scalability issues—whether it’s to take advantage of multiple CPU cores and high I/O demands or to adapt programs to run on clusters of servers. This article, based on chapter 1 of Node.js in Practice, shows how Node fills a gap in the market by attacking the scalability problem head on.
Akka comes with a Camel integration module that allows Akka actors to interact with communication partners over a great variety of protocols and APIs. In this article, based on appendix E of Camel in Action, contributing author Martin Krasser presents selected Akka-Camel integration features by example.
Overloading happens when you provide a new implementation customized to your particular class, which allows you to overload the common operators such as > (greater than) and < (less than). In this article, based on chapter 8 of Dart in Action, author Chris Buckett explains how this function helps you create truly self-documenting code by customizing the meaning built into the standard operators.
Six Ways You're Using Responsive Design Wrong
by Matthew Carver, author of The Responsive Web
Staying on the cutting edge of of web design can be tough, and oftentimes you only learn from making mistakes. Making mistakes is sometimes the best way to know that you are breaking new ground. In this article, Matthew Carver, the author of The Responsive Web, gives a few tips that his experience in...
by Michael Fogus and Chris Housen, authors of The Joy of Clojure
In many cases, Clojure's compiler will be able to highly optimize idiomatic Clojure source code. But there are times when the form of your functions, especially in interoperability scenarios, will prove to be ambiguous or even outright counter to compiler optimizations. In this article, based on chapter 12...