Five Steps to Improve E-Commerce Performance for Increased Sales Tue, 21 May 2013 10:15:00 EDT The saying “if it doesn’t exist on the Internet, it doesn’t exist”[1] is ringing truer every day. Nowadays, it is hard to imagine most businesses without an e-commerce platform, let alone without a web presence at all. Since e-commerce is becoming the new standard, e-commerce performance needs to be at its best.
In this blog series, I have come up with several ways to ensure your company’s e-commerce performance success, including: avoiding unnecessary network load,reducing number of (internal) HTTP errors, improving backend performance,understanding your clients, ensuring scalability of e-commerce site and finally understanding sales results through conversion rate.
Our client TescaraHats (name changed for commercial reasons), a European market leader in manufacturing customized hats, decided to expand its market reach with an e-commerce site where its potential customers could choose, customize and order hats online. Since the company’s core competence is in delivering highly customized products, TescaraHats could not simply use an off-the-shelf e-commerce application. It needs a customization wizard so that customers can create a uniquely customized product.
Book Review: The Modern WebMon, 20 May 2013 16:44:06 EDT Although I started with ColdFusion for application development, I did plenty brochureware sites with HTML. I believe the version was HTML 2.0 for IE 2.0. I lived in the browser world for years doing ColdFusion, ASP, and HTML sites. When winforms and Smart Client with web services emerged I changed my religion. Since then I have been avoiding the browser whenever possible since.
For the past couple of years I have used HTML/JavaScript/CSS a lot as a byproduct of building ASP.NET and ASP.NET MVC applications for public consumption. Internal enterprise applications I will still push for using WPF and web services over ASP.NET or ASP.NET MVC, but I lose that battle a lot, especially when the developers have never learned WPF (XAML) and have no interest in learning anything new.
When it comes to Mobile Apps my first choice will always be native applications using Objective-C, XAML with C# or C++, and Java using the ASP.NET Web API for the services. The problem is I am going to end up fighting the same battle with the web developers that don't like learning anything new. They are going to turn to HTML/JavaScript/CSS to build their mobile applications as a mobile web site or hybrid application.
Part 3 | Component Models in Java Sat, 18 May 2013 15:00:00 EDT Service Component Architecture (shortly referred as SCA) is a technology for creating services from components. SCA is a set of OASIS standards and part of it is developed with the collaboration of vendors from open source community, referred as “OSOA” Open SOA. SCA helps to build systems as a collection of interconnected components. The components created in SCA communicate through the services. The advantage of SCA is its neutral component model. It allows services to be built by any language component like Java, C++, BPEL, JavaScript, Ruby, Python etc. SCA addresses two important needs of component world:
Complexity
Reusability
Java CertificationsTue, 14 May 2013 13:03:13 EDT Welcome to Java Certification Path. If you are reading this article, it means that you are thinking or have decided to take Java Certification. Let me start off by congratulating you on this decision to boost your career strength.
To become a successful Java professional it is good to acquire Java certification to show their evidence. Java certifications adds more confidence to your job responsibilities as well as improves your career potential, of-course you can get higher salary than others.
Oracle’s Java certifications are designed to be focused on particular roles in the software development cycle and, therefore, are more useful than all-in-one certifications.
Oracle currently offers the following Java certifications, which are classified by level and specialization. Most of the certifications require you to pass a multiple choice exam, but some require you to complete an assignment plus an essay exam.
Fix Memory Leaks in Java Production ApplicationsFri, 10 May 2013 13:45:00 EDT Adding more memory to your JVMs (Java Virtual Machines) might be a temporary solution to fixing memory leaks in Java applications, but it for sure won’t fix the root cause of the issue. Instead of crashing once per day it may just crash every other day. “Preventive” restarts are also just another desperate measure to minimize downtime, but, let’s be frank: this is not how production issues should be solved.
One of our customers – a large online retail store – ran into such an issue. They run one of their online gift card self-service interfaces on two JVMs. During peak holiday seasons when users are activating their gift cards or checking the balance, crashes due to OOM (Out Of Memory) were more frequent, which caused bad user experience. The first “measure” they took was to double the JVM Heap Size. This didn’t solve the problem as JVMs were still crashing, so they followed the memory diagnostics approach for production as explained in Java Memory Leaks to identify and fix the root cause of the problem.
Before we walk through the individual steps, let’s look at the memory graph that shows the problems they had in December during the peak of the holiday season. The problem persisted even after increasing the memory. They could fix the problem after identifying the real root cause and applying specific configuration changes to a third-party software component.
Browser Zoom Effect Using WebRendererWed, 08 May 2013 14:24:06 EDT We are often asked how our clients use WebRenderer in their projects. There are thousands of different use cases our ingenious clients have come up with that have both delighted and surprised us. WebRenderer is more than just an embeddable Java Swing browser. WebRenderer also gives you, the developer, complete access and control of the browser.
We thought we would put together an example that demonstrates some of the in-browser functionality. In this example we use WebRenderer Swing Edition to create a special “Zoom” effect when a click action is selected.
Book Review: Core Java (9th Edition), Volume I and Volume IIWed, 08 May 2013 10:30:00 EDT This review covers both Core Java Volume I--Fundamentals (9th Edition) and Core Java, Volume II--Advanced Features (9th Edition). Both books are part of the Prentice Hall Core Series.
I actually got Volume II first and liked it so much I ordered Volume I. I felt like I was missing the first half of the story. Especially when I downloaded the code and both volumes were included.
These two books take you on quite a journey. The first volume starts off with a great overview and history of Java. It then goes into how to download, install, and configure both the JDK and Eclipse. The authors uses Eclipse throughout both volumes.
The rest of Volume I is dedicate to covering the fundamental concepts of the Java language and the basics of user-interface programming. I have listed the chapters in Volume I below.
Product Review: qTest by QASymphonyFri, 03 May 2013 15:00:00 EDT QASymphony is the company behind qTest, a new test management tool that’s aiming to empower test teams. As software development has increasingly moved towards Agile methodology, with its focus on fast delivery, thorough documentation has fallen by the wayside and test cycles have shortened. Test teams have less time to identify and document defects, but expectations for bug-free software remain high. The flexibility to adopt feedback and accelerated build cycles offer real benefits for software development, but they require careful thinking from QA departments.
These are the challenges that qTest is trying to address by equipping testers with a fast, intuitive tool capable of handling complex projects. It’s designed to be easy-to-use, it’s fully customizable, it can plug into existing bug tracking software, and it creates a chain of transparency that lays bare the entire life cycle of each defect. It should be a tool that’s appealing to teams trying to save time by implementing agile testing. Like so many new releases nowadays, it is a SaaS solution, based in the cloud and it’s offered at $20 per month per user. The 30-day free trial gives you five licenses, so you can test it out for yourself. How does it measure up?
Book Review: The Java Tutorial (5th Edition)Tue, 30 Apr 2013 08:55:14 EDT If you are interested in getting started with Java, or just object oriented programming, this is a great book to start with.
The book starts off with a high level overview of the Java platform and goes straight into an example of creating a hello world application. While creating the hello world application the authors take you on a tour of the NetBeans IDE.
It then covers the basics of 0bject-oriented programming and the Java programming language. The authors cover objects, classes, inheritance, interfaces, packages, variables, operators, expressions, statements, blocks, and control flow statements.
After the introduction chapter the chapters begin to go into detail about each of the topics that were introduced, and many more. I have listed the chapters below.
Introducing a New Look for TracesFri, 26 Apr 2013 16:00:00 EDT Our fundamental unit of performance data is the trace, an incredibly rich view into the performance of an individual request moving through your web application. Given all this data and the diversity of the contents of any individual trace, it’s important to have an interface for understanding what exactly was going on when a request was served. How did it get handled? What parts were slow, and what parts were anomalous?
Over the past year, the TraceView team has been listening to your thoughts on this topic as well as hatching some of our own. Today we get to share the fruit of our labors: Trace Details, redesigned!
Component Models in Java | Part 2Fri, 26 Apr 2013 12:00:00 EDT OSGi is the latest component model to join the bandwagon of component models, which provides a platform for component oriented development and assembly. OSGi framework is a standards based platform whose specifications are provided by the OSGi Alliance (www.osgi.org, formerly OSGi was referred as Open Services Gateway Initiative). OSGi Alliance is an industry backed nonprofit organization which was founded in March 1999. The OSGi specification has gone through many releases and the current major version in use is 4 and version 5 has been introduced recently.
The OSGi defines a dynamic module system for Java. This comes as a rescue for Java’s modularity problems by giving better control to the code structure, manage the lifecycle of the code and a completely loosely coupled approach which is much needed for component oriented development.
Dodge Hibernate Coding Mistakes with Code AnalysisFri, 26 Apr 2013 10:00:00 EDT Hibernate is one of the most used ORM Java frameworks out there. It is really simple to use, just add few annotations and you’re ready to go. However, it is also really easy to experience strange behaviors and bugs if you don’t respect Hibernate’s best practices. That’s why at Tocea we developed rules to detect coding mistakes and to make sure that your experience with Hibernate will be painless.
Our Hibernate repository currently contains 30 rules. Some of them are related to the detection of possible bugs, other treat of maintainability or performance. In this article, we're going to present 4 rules that deal with a famous Hibernate's usage problem : the implementation of equals() and hashCode() methods.
Caching: Up and Down the StackThu, 25 Apr 2013 12:02:00 EDT Last week, I presented Caching Up and Down the Stack at the Boston Web Performance meetup. It was great to get the chance to present to the 60+ people who came out for the talk. Unsurprisingly, many of the people there knew a lot about caching in all of the different levels I touched on, and some great conversation developed.
I covered six of the major areas of caching available to web devs today. On the HTML / JS / CSS side, you can use client asset caches, full-page HTTP caches (like Varnish) and partial template caches. On the back end, you can use generated code caches, manually cache objects in memory or nearby services or even enable your database’s query cache (though, as the audience reminded me, if you’re using MySQL, just don’t. See below for why). Caching at each layer has advantages and disadvantages, and throughout, you’ll only be effective if you know what you’re caching, why you’re caching it and if you measure the improvement of doing so.
JBoss App Server Project Renamed WildFlyWed, 24 Apr 2013 08:45:00 EDT The JBoss Application Server project has been succeeded by widgetry called WildFly described as both a brand refresh and a renewal of Red Hat’s determination to drive the next generation of application server technologies.
The name was chosen by members of the open source community on JBoss.org during a special election late last year.
Red Hat says it’s supposed to address some of the key forces shaping middleware today, including the shift toward more flexible and modern approaches to application development, open hybrid cloud enablement and Java Enterprise Edition 7 (Java EE 7).
It’s also supposed to be a significant opportunity for wider community adoption and involvement.
Evolving an APM Strategy for the 21st CenturyMon, 22 Apr 2013 09:00:00 EDT I started in the web performance industry – well before Application Performance Management (APM) existed – during a time when external, single page measurement ruled the land. In an ecosystem where no other solutions existed, it was the top of the data chain to support the rapidly evolving world of web applications. This was an effective approach to APM, as most online applications were self-contained and, compared to the modern era, relatively simple in their design.
Soon, a new solution rose to the top of the ecosystem – the synthetic, multi-step business process, played back either in a browser or a browser simulator. By evolving beyond the single-page measurement, this more complex data collection methodology was able to provide a view into the most critical business processes, delivering repeatable baseline and benchmark data that could be used by operations and business teams to track the health of the applications and identify when and where issues occurred.