Author Archives admin

Who Writes Your Reports?

Posted by admin on January 26, 2015  /   Posted in Business, Online Platform

Newspaper city route Graph

What Reports?

Reporting has been and still is the most important part of running a business. Without taking the pulse regularly (or better yet, constantly), how would you know if your business is healthy or sick, thriving or dying.

Here’s the catch, truly useful reports take careful planning and considerable time to compile. A truly useful report cuts down the amount of parameters to wade through, and it highlights the most important and relevant information for the business owners and managers to make not only good decisions, but to make those swiftly — because in decision-making, next to the quality of the decision itself, the timing is the most important aspect, and a lot of people don’t realize this.

And since it has to keep up with the changes both internal and external to the company, it also has to be modified continuously.

Another important aspect of today’s reporting is: Visualization. Far from being just pretty charts, modern reports takes advantage of the fact that our brain has a tremendous capacity to process information when served in a coordinated visual pattern.

So here comes the question, who takes care of the reporting in your company? The answer, as we shall see next, is not as simple as you may think.

No One?

Most surprisingly, most companies are not doing nearly enough tracking and checking the pulse of their business processes. Reporting is just an afterthought in which the goal is “just enough info to get by” instead of being recognized as one of the key aspects of the whole business operations.

Despite the increasing popularity of Executive Dashboards, Infographics, Data Warehousing and Business Intelligence tools in general, there are still far too many businesses whose reporting activities are reserved for end of the week rush jobs or those tense accounting department fire-drills where you can feel the heat rising at the beginning of each month.

In Short: Unacceptable. Someone has to be responsible to compile and generate your truly useful reports.

Isn’t That The Company Accountant’s Job?

While accountants should generate useful reports, they are limited to only one aspect of the business, the financials. Truly useful reports encompass the whole business operations, not just the financials.

Even in the realms of financial report, your accountant most likely would not have enough visibility into the business to tell you important information that could help you grow the business.

For example, a report from your accountant would state how much profit the business is generating this quarter, but most likely it will not say which part of the profit came from a high-maintenance customer who takes up twice as much resources to serve. Nor it would tell you that you have a leak in your business process because you are paying a vendor extra for something that isn’t contributing to your business process.

From customer demographics and statistics, to inventory flow and trends, to manufacturing logs and exceptions, to vendor analysis, and more, these are important “pulses” that a truly useful reporting should cover. The more regular and painless it is for you as the business owner / manager to get a hold of these information, the better you would be able to run the business and grow it.

In the ideal setup, financial reports would be one of the inputs into the reporting system. A whole lot of information can be cross-analyzed between departments in your business. By taking time to do this, these reports can yield insights that you never even considered before!

In Short: No. Your business accountant should be one of the sources for the data that went into your truly useful reports.

Is It The Business Owner?

Since the business owner is the one who ultimately make the decision for the company, it makes sense that he or she is the one who consume and utilize these reports the most.

The distinction here is between consuming vs creating the reports.

Business owners should use the reports to monitor, and make decisions, but if they are also the ones responsible for creating them, when will they have the time to read them? And sadly, since they are busy putting out fires (show me a business owner who is not doing this all the time) while trying to keep the sales pipeline filled up, more often than not, reporting takes the back seat and the business loses a lot of potential revenues from the lack of monitoring and decision-making.

In Short: No, the business owner should be the last person responsible for generating the reports. All of their time should be spent consuming and utilizing those reports to make business decisions.

Is It The Employees?

If the business owner delegates the report generation to an employee, then the employee should have enough visibility into the business *and* the knowledge and experience to build the kind of report that is truly useful, which usually requires a lot more than just familiarity with spreadsheets.

So not only does the business have to put a process in place to disseminate the visibility to the responsible employee(s), but also, there has to be an implicit (or explicit) trust that the employee would not abuse the authority by combining what they know about the company with the new information that is accessible due to the new level of visibility.

In Short: Maybe. Unless the company has the budget and the infrastructure to support a team of experienced reporting and data-analysis as staff, reporting is not a good side-job for existing employees due to the experience required and the sensitivity of the information.

Okay, I Give Up!

So really, who should do the reporting? The answer may surprise you: An outsider.

There are service providers whose goal is to do in-depth, automated, reporting for others. Due to the abundance of data both within your company and relevant ones outside (what often referred to as Big Data, sometimes correctly, other times not), these kind of services will become as mainstream in the near future.

One of the benefits of outsourcing reports is that you get a fresh perspective and an impartial view of your company’s data. Why is this important? Typically, a reporting service provider has a lot of experience seeing patterns of data that can be useful when mining for information. Let me explain below.

Business owners usually think that their data set is unique to their business, but this is often not the case. Whether we are talking about soil humidity data gathered via telemetry, or the number of customers who predictably buy a certain product each month, to an experienced data analyst or scientist, those are just numbers that exhibit a certain pattern of distribution.

In fact, these patterns are what makes things interesting. They can be visualized to give business owners a different view to their business. The kind of view that could be very useful to make those important decisions.

Another important benefit in outsourcing reports is the fact that the service provider has not stake in the company. They are motivated to provide the best service possible without having to know the meaning of the data that is analyzed.

In fact, any decipherable sensitive data should be scrubbed before it goes out of the company, and when the reports are generated, those went through an automated mapping process (setup within the company boundaries) that puts back the right context into the generated information.

In Short: The key to setting up a reliable automated reporting system is to find a good reporting service provider who knows how to handle your company data professionally. We don’t yet have household names for this kind of service, but there are companies who are working on that. Including nextCoder.

At nextCoder, we help our clients get a constant and useful, distilled, aggregated information that they can use to make business decisions better, quicker and with a higher degree of confidence.  Often times using the data they already have.

As the result, our clients experience a steady improvement in their visibility into their business processes and this turn into the ability to measure the relevant KPI (Key Performance Indicator). As the old adage says: What gets measured, can be improved, is certainly true in this case.

-WG

Subscription or One Time Payment?

Posted by admin on January 08, 2015  /   Posted in Business, Online Platform

The Question

When it comes to funding an online business systems that implements your business processes and ideas, which one is the better way to go? Pay every month (or year) or cough up a larger sum in the beginning and never pay again?

The first option is the Subscription model, where the cost of the development is spread over a period of agreed time (most often ongoing).

The second one is the One-time Payment model, in which the company decides on a budget and the system developers are given a certain period of time to design, code, and test the system. Notice something missing in that list? Correct, maintenance and modifications. A business system has to be maintained and also modified to suit the changes in the business. After all, the system is created to support the business, not the other way around.

What is the consensus?

Whenever I asked this question to a business owner, in seven out of ten the answer leans towards a One-time Payment (usually upfront and a much larger sum). Except those who has tasted the experience of a properly-planned and properly-executed Subscription model development.

In a sense, this is not surprising, it is human nature to prefer a one-time purchase rather than subscription, unless the benefits of paying subscriptions is clear (or if they do not have a choice in the matter).

The reality is, building a system to help implement a business process has a lot more parameters and is prone to changes, both from inside or outside factors. Therefore, and the statistics agrees, it is rare that a custom business system can be developed in one iteration. The successful ones are built in several iterations with some that takes care of the inevitable changes.

The Comparison

Subscription Model

  • The company pays a subscription periodically
  • The developers are motivated to continuously enhance the system because doing so will make their job easier. As the result, the system is getting more stable and robust over time
  • The system can be built to follow the changes in the business processes. This is very important when the company is trying to train and organize their employees in phases
  • There is time to build measurement functions into the system, enabling the company to know exactly how effective the system is. This is a key feature for those answering to a board of investors
  • Everybody wins in the end

One-time Payment

  • The company pays one time
  • The developers are motivated to do their best, but more often than not, the requirements collected upfront is not complete, therefore the system cannot be as stable and robust as it needs to be, before the time or the money (or both) run out
  • The system is highly susceptible to changes in the business processes
  • Everybody loses in the end

Can We Not Pay Later for Modifications?

Certainly, you can hire the same system builders or someone else to do the modifications to the system later on, but this does not solve the problem of whose responsibility is it to monitor the performance of the system and make sure that it is still aligned with the business process it is supporting?

If the business owner is willing to take on this responsibility, then the risks are:

  1. The business owner may not have the time to do it because he is busy running the business (as he should be)
  2. The business owner may not have the necessary skills and experience to determine when the system needs to be modified

The better candidate for fulfilling this role is actually the system builders. They are in the position to setup automated monitoring system (which in itself, an evolving sub-system) that can notify the business owner when certain events are detected within the system.

The cool thing for the business owners are: They are not wasting time monitoring the system, but they are notified so they can make the decision where it matters, at the business process level. The best way to get this benefit is to adopt the Subscription model.

Can One-time Payment Ever Be a Good Choice?

The answer is yes, if the following conditions are true:

  1. The system’s requirements can be defined clearly upfront
  2. And, more importantly, those requirements do not change a lot as time goes

A good example would be a well-known system like a shopping cart, or an accounting system. Unfortunately these systems alone are rarely sufficient to help a company serve their customers and grow at the same time. Most companies seeking to build their own system has way too many customized rules and a lot of unmeasured assumptions.

In Summary

In business today, you can’t survive without taking advantage of what technology has enabled us. From remotely scanning documents, to SEO marketing, to a full-blown employee resource tracking and management system, to a data-analysis system capable of evaluating the quality of customers, we have so many technologies that a custom business system can take advantage of, that also changes rapidly.

The only way to keep up with it is to have a team of developers who are always on the ready to make the necessary changes to the system. A subscription-based arrangement is designed to fund this kind of project because as they say: Time is on our side.

Change The Way You See Your Business

Posted by admin on October 02, 2014  /   Posted in BI and Custom Development, Business, Data Best Practices

What do we tend to do when we are too focused into something? That’s right, we tend to lose sight of what the big picture looks like, and lacking that crucial perspective can be costly when you are in charge to run and grow a business.

As the saying goes “Don’t miss the forest for the trees,” as business owners and managers, we are to be vigilant in maintaining a clear vision and a good sense of where our business currently are.  Only when we managed to do so, then we would be in the position to determine where to go next and how to get there.  Furthermore, it helps us to focus on the right detail, the ones that has a big impact on the business.

The good news is, there are a plethora of tools and techniques out there that can help us in this regard.

In this article, let me try to illustrate this concept using a simple example:

mini_theater

Take a look at the chart above. What did you notice? Bubbles, different shapes, and colors.  For those of us who are data-geeks, this is one variation of a bubble chart.

Now the story behind this chart: Once upon a time, there was an imaginary theater company, who performed in their own facility, three times a week, on Monday and Thursday afternoons, and on Saturday mornings (represented on the vertical axis of the chart).  Each performance slot is indicated on the horizontal axis.

So if we do a mapping between the time-slot and the day, we would find a single performance — a bubble and a number — representing the available seating for that particular performance.  In other words the seating capacity of the theater minus the ones that are already sold for the performance.

Now that you know what the chart is about, take a moment and look at the chart again and let’s see what jumps out at you.

All done? Now put yourself in the position of the business owner of this theater company and let’s compare notes:

  • The size of the bubble intuitively indicates the seats left (which means tickets unsold)
  • The color of the bubble indicates the type of seatings available (main seatings have more capacity than the balcony or the box)
  • The larger the bubble, the worst it is from business perspective, again, intuitively, you want to shrink the bubble to 0 available seats, which means a full-house performance
  • What about those large negative numbers on some of the bubbles? Those indicate overbooking.  Something that must be dealt with before the actual performance, otherwise two or more annoyed audiences will be the result — which in today’s world will likely translate into negative tweets and facebook posts (bad for our reputation)
  • The chart represents one week, it would be easy to produce one for next week, the next two weeks, etc.  In fact, the chart can be an effective planning tool for promoting the performances based on which time slot still have a lot of seatings available
  • Once we have multiple of these charts, we start to see the forest, which weeks of the months is the best time to promote a particular performance.  Is this the time to introduce a Season’s Pass ticket? How far are we from having to get a new building?

Do you see what we’ve accomplished? With a single chart, as a business owner, we can see:

  1. What is going on
  2. Where to focus our attentions to
  3. What bad things that would happen
  4. Which options are available for us
  5. How to create a strategy to do something about it
  6. What does the big picture look like

That is the power of Data Analytics and Visualization.

What About Real-world Scenarios?

Here is the kicker, although I  created a fictitious story for the chart, in actuality, it is based on a real-world visualization that we produce for one of our clients.  It is a real business tool which takes the concept of charting to a whole new level.  That is, we made it a user interface where the business owner can actually reserve a seat, or upgrade it right there on the chart, without having to go through extra screens.

Our client loves this view of their business because it gives them visibility way beyond hundreds of numbers in a spreadsheet that they are used to deal with.  And it make efficient use of both their time and strategic thinking, so they can arrive to better decisions, faster.

Ever wonder why military generals over the ages plan their next moves by analyzing a map?

Let us know what you think about this, and let’s work towards changing the way we see our businesses.

-WG

Validating Your Online Form When User Clicks Submit with ZK Framework

Posted by admin on August 19, 2014  /   Posted in Business, Online Platform, Web Development, ZK

So you’re using ZK Framework to build your online forms, and your forms have fields which needs validations. You have a “Submit” button which your user will click when they’re done filling out the form. You’re using the MVVM paradigm with the data binding. You tried adding constraints to the fields, but you want the validations to happen only when your users click the “Submit” button. We have discovered this little trick that might help you.

Most likely, you are using the @bind(…) method to bind your form fields to the View Model attribute, e.g:

<textbox value="@bind(vm.someAttribute)" constraint="no empty" .../>

We noticed that when we used @bind() in conjunction with a constraint on the field, the validation was triggered immediately, for example, when the cursor left the corresponding input field. Depending on your requirement, this might be acceptable, but in one of the project that we have with our client, we went the extra mile for our client and opted for a cleaner solution, which is to trigger the validation only when the user clicks the “Submit” button.

The answer is to break the @bind() into @load() and @save(), and make sure the @save() is called before the command which handles the “Submit” button, i.e:

<textbox 
     value="@load(vm.someAttribute) @save(vm.someAttribute, before='save')" 
     constraint="no empty" .../>

<button label="Submit" onClick="@command('save')"/>

Note that the @save() expression has before=’save’, which matches the name of the ‘save’ @command() handler. This way, the validation is invoked just before the ‘save’ command, and the invalid input pop message is only shown at that time.

That’s it for now. We hope this tip helps someone out there with the same situation.

A little bit about us, NextCoder is a team of data analysts, software architects, and developers.  Using our up-to-date skills and experience, we help businesses make profitable decisions while increasing their capacity to grow. We combine Business Intelligence methodology with our vast software development experience to provide effective and unique solutions for our clients. Some of our products includes:

Tutoring Metrics

Team Tag 24

How To Build and Maintain Multiple Online Platforms

Posted by admin on May 14, 2014  /   Posted in BI and Custom Development, Business, Online Platform

The other day, out of curiosity, one of our clients asked me: “How are you guys able to build and maintain the quality on so many platforms simultaneously?”

That question prompted me to pause and think about this:

What are some of the things that make it possible to build and maintain multiple online platforms simultaneously without overwhelming the capacity?

As I started to write out the answer, I decided to go ahead and share two “ingredients” or “secret-sauces” that works for us and enable us to serve multiple clients simultaneously without compromising on either quality or support.

So What’s The First Secret Sauce?

Just like in the movie “Kung-Fu Panda,” — don’t read the rest of this sentence if you haven’t seen the movie yet — the “secret” turns out to be a blank scroll.

No really, the reason we at nextCoder are able to crank out a lot of platforms is not because of a secret-sauce recipe, rather, our carefully (and painstakingly) selected and molded “ingredients” (think building blocks) that we continually evaluate, test for fit, improve and build upon.

Because we are intentional about it, these building blocks are ready to be attached together to become the online platform that serves a particular industry domain. But in their disassembled state, they are just like “a blank scroll.”

See, back when dinosaurs roamed the earth — that’s the era of DLL-thunking, MS C++ vs Borland C++ vs Intel C++ to you, young programmers — the choices to make when developing an application is which compiler, which sorting algorithm, which expensive optimized libraries, even which memory manager.  The concepts such as Open Source code repository, data sharding, virtualization, JIT compilation, UI-templates, Aspect programming, had yet to become mainstream.

Today, we have the luxury to pick and choose from literally hundreds of already-made “blocks of code” to build our platforms with.  Some are Open Source, some have to be purchased, some are as complex as a whole application or platform framework, some packaged as neat little libraries, and the others, a network of code snippets and functions.  Internet browsers (big or small, desktop or mobile) is everywhere, and themselves, serve as a platform that does the heavy-lifting.

Therefore as platform builders, we can focus more on helping businesses map their needs through the use of data modeling, system configuration, deployment models (see Docker.io if you want to see an impressive technology) and of course: Business Intelligence and Data Analytics.

Ok, That’s The First One, Out with The Second

The second ingredient has to do with how we fit our client’s business model into the building blocks we just talked about.  Having done a lot of deployments across different business domains, we found that there are a lot of businesses out there whose data and information can fit the following model:

Building Blocks 800px

Basically, beyond infrastructure facilities such as security, user, configuration, email, role-specific dashboards, scheduling, notification system, full-text indexing which comes with every online platform worth its salt, we usually can organize data in the business in one or more grouping hierarchies, which typically ends with the main business object. What is this main business object? you may ask.

The main business object is typically tied to how the business serve their customers.  So for example, in the legal industry, the main business object would probably be legal cases, for a bookstore, the books, for a landscape-maintenance company, it’s probably the customer’s property, for a gymnasium, its member’s goals (lose weight, gain weight, get fit, etc.).  The Main Business Object is what most people associate with what the system manages.

Then predictably, almost all of the businesses that we came across associate the main business object with the same concepts such as trackable / auditable notes, links and tags, custom fields (who does not need a handful of these…?) and the ability to sort, search, and filter under various contexts.

Speaking of contexts, all of us know that chronological context is used all over the place, “when” something happens, and what else happens “after that” will always be the primary way in which we process information.  Thanks to the Geographic Information System (GIS) technological advances nowadays, Geospatial data is fast to become the next super-context which will find its place in many aspects of our lives.

Then after all this are put together using the building blocks, we begin the implementation of the proprietary process owned / copyrighted / trademarked by the client’s business or personally. We have been very blessed to work with innovative business owners whose brilliant process is just waiting for a good home to be built.

This process fits the definition of an Online Platform where construction and enhancements never really ends.  All of our platforms exhibit this characteristics.

In Summary

The combination of carefully selected building blocks and the right level of abstraction (at the business object level) gives us the ability to serve many clients simultaneously through our platforms.

This is not something that we take lightly, in fact every processes that we created and use takes this as one of the main goals, by which everything else is taken into consideration.  Why is this so important? Because this is the only way we can extend two biggest benefits to our clients:

  1. Continuous technical improvements, an improvement created for one platform can and will be replicated to the others
  2. Consistent quality and ease of maintenance, which translates into lower cost

Given that most of our platforms are priced in accordance to the number of usages, the growth of our clients’ business means growth for us as well. This is, to us, the prime motivation to go the distance towards excellence.

As I mentioned in my previous blog entry, we are living in the “golden-hours” of the Information technology, where the efforts of many finds its uses to benefit a much larger portion of the population than ever before.

We are the beneficiary of many-many hours spent by dedicated and incredibly smart people. At nextCoder, we intend to pass along these benefits to help as many business as possible out there. In other words, it’s time for the “secret-sauce” to be enjoyed by many, many more.

- Will Gunadi

Online Platforms: Building Shoulders To Stand On

Posted by admin on April 02, 2014  /   Posted in Business, Web Development

Background

I often heard that today, we are living in the “golden hours” of the Information Era where the advances is nothing short of incredible.  Example? For the first time in the known history, we became one global society.

The question now is — as those who surf would often ask — where is the next big wave?

We at nextCoder believe that the Online Platform (Software as a Service or SaaS is another name for it) sector has reached the condition where one of those big waves might happen.  And a lot of software development companies (including us) are gearing up and getting ready to ride this wave. And a lot of Business Intelligence and Data Analysis companies (including us) are getting ready for this also.

What Qualifies As An Online Platform?

The first thing to be clear about is that an Online Platform is not simply a website or a web application.  There are millions of websites out there going up and down, and there are millions of web applications developed either for private usage or public.  Obviously not all of these can be regarded as platforms.  So let’s take a look at what is it exactly that separates a website or a web application from a real Online Platform:

  • Free or available at a lower cost for the users
  • Non-exclusive systems, the more users, the better it is
  • It is continually being developed and improved
  • Users produce content or other platforms within the platform

Who are these Online Platforms Users?

The users are the bread and butter for an Online Platform. Without its users the platform is … well, useless.  And just like how it is for businesses, the type of the users or customers can be divided into two broad categories: B2B and B2C.

Each of these categories have its own characteristics and determines how the Online Platform would have to be designed, constructed, and maintained.

B2B Online Platform users are using the system within the context of their respective companies.  Therefore such platforms are usually full of complex features, heavy on customizations, more robust and secure, and zero or limited interactions between users from other companies. Attlasian JIRA would be a good example for this.

B2C Online Platforms like Twitter on the other hand puts a lot of demands in terms of capacity (thousands to millions of users using the system), but not so much on complex transactions, workflow, and security.  At least not in the beginning, but since one of the characteristics of a platform is that it grows continually, eventually, even a B2C platform can have complex workflow. Also, this does not mean that B2C platforms are insecure or not robust.

And then there are Online Platforms that deals with both Businesses and Customers at the same time. eBay would be a prime example of this kind of platform.

Online Platform Categories

Educational / Entertainment – These platforms collects, share, and serve content that is educational or entertaining (or both) in nature. These are typically B2C.

Social / Networking - I think everyone know what these looks like.

Transactional / Operational – What used to be the domain of custom and exclusively built applications now has started to be available as an Online Platform. This is possible thanks to the Internet which drives the acceptance of connectivity even among businesses, which are far more conservative than individuals in this regard. These are mainly B2B.

Why Does This Matter To Everyone?

Eventually, almost all of us will become a user of one or more Online Platforms. Why? Because the next generation of Online Platforms will be even more useful, connected, and convenient than what is available today. This should be regarded as an excellent opportunity especially for Business Owners, company Executives and Entrepreneurs.

For individual customers, the sheer convenience and quality of services will continue to climb up. The amount of information that we would know about each other will also increase. That can be either scary or good, depending on your perspective.

For Business Owners and company Executives, what does this mean? Online Platforms can be used to operate existing businesses at a much lower cost.  How so? Because the Online Platform builder can spread the cost among platform users.

What about competitions? Why would a company use an Online Platform along with its competitors? It depends on the nature of the business. A good Online Platform has to be built independent of the factors in which the users compete on.

For example, a platform that automate operations, collect metrics, and perform data analysis, would boost the service quality of its users while keeping the playing field level.  On the other hand, platforms that share users’ data without their consent, or provide unfair advantages to some of the users, is a big no-no and should be avoided at all cost.

For Entrepreneurs, Online Platforms can be used to generate new streams of revenue. Build platforms for existing businesses to use.  There are so many niche opportunities that depends more on who do we know more than what we know.

What’s The Stats?

Those of us who loves statistics, here is an interesting Google trends plot on the level of interest of the term Online Platform over the years:

It should be noted that the trend is slightly increasing. That means the awareness of the Online Platform concept (represented by the term) is rising among us.

So the next time I hear someone says “golden hours” of the Information Era, I now have an idea what some of it may look like.  Let’s ride the wave together.

– Will Gunadi

How to Build an Executable War or Jar Files

Posted by admin on March 26, 2014  /   Posted in J2EE, Web Development

Background

In the effort to bend-over-backwards for our clients, we sometimes have to take a step back and think outside of the box.

99% of our Custom System are deployed as a web applications whether it is hosted on our server or the client’s. But for this particular client, they require a way to deploy the application on an isolated machine.  So we had to improvise a way to package a webserver *and* the application into something that can be donwloaded, and run without any complicated setup.

Sharing our Findings

So here is a simple way I found to make my maven webapp project into a self-executing jar file. Glad to share it for all to take advantage of. This has the obvious advantage of not having to setup a Tomcat server on each client that will use the application. And since an executable .jar files are OS independent, you can use this whether you are a Windows or UNIX shop.

Requirements:
1) Client needs to have Java installed
2) Your project must have a packaging pom or war.
3) Your web app should already be working and can compile without error.
4) This is only supported with the Tomcat7 plug-in

Now go into your pom.xml file and add the plug-in with your other plug-ins.

Here’s the code for the Maven plug-in:

<project>
 ...
 <packaging>war or pom</packaging>
 ...
 <build>
 ...
 <plugins>
 ...
 <plugin>
 <groupId>org.apache.tomcat.maven</groupId>
 <artifactId>tomcat7-maven-plugin</artifactId>
 <version>2.1</version>
 <executions>
 <execution>
 <id>tomcat-run</id>
 <goals>
 <goal>exec-war-only</goal>
 </goals>
 <phase>package</phase>
 <configuration>
 <path>/</path>
 <!-- optional only if you want to use a preconfigured server.xml file -->
 <serverXml>src/main/tomcatconf/server.xml</serverXml>
 <!-- optional values which can be configurable -->
 <attachArtifactClassifier>default value is exec-war but you can customize</attachArtifactClassifier>
 <attachArtifactClassifierType>default value is jar</attachArtifactClassifierType>
 </configuration>
 </execution>
 </executions>
 </plugin>
 ...
 </plugins>
 ...
 </build>
 ...
 </project>

This plug-in code is from the Apache site. I usually remove the server.xml option and I will set the ArtifactClassifier and ArtifactClassifierType to ‘exec-war’ and ‘jar’ respectively. But it should work will all the optional tags removed.

After you have your pom.xml file saved, drill your command line to folder that has the pom.xml file and run the following command:

mvn clean package -Prunnable-war

Things to note with this command.

  1. There is no space between the ‘-P’ argument and the name of the profile
  2. The ‘runnable-war’ is just a generic profile name. You will use the name of your profile that is in the pom.xml file. If you have more than one build then select the most appropriate. I usually have a ‘dev’, ‘test’ and ‘prod’ profiles. I typically use the ‘dev’

Once the command has been completed 3 new files will be created.

  • ${yourapp-version-war-exec}.jar: A runnable JAR that contains the tomcat embedded runtime
  • war.exec.manifest: a manifest file containing the main class to run
  • war-exec.preperties: a properties file containing some Tomcat config options and info.

NOTE: If your project has multiple modules then these 3 new files will be created in each folder.
For example, I typically have 5 folders for my web apps.

my-project
 |
 ---- my-project-common
 |
 ---- my-project-engine
 |
 ---- my-project-test
 |
 ---- my-project-web

I create the jar with the parent pom.xml, but the 3 new files that I will use are going where my web app is. (‘my-project-web’)

So for the final step, go into the target folder of your web app (‘my-project-web’ in my case) and run the following command to start the Tomcat server:

java -jar ${yourapp-version-war-exec}.jar

Open up a browser and go to http://localhost:8080 and your app should be there.
First run is usually slow to start because of all the extraction that happens.

Now you can simply copy these three files to another computer that has Java and start you web app with the same command.

Esteban Martinez
Senior Developer

School Districts are Putting Up Dashboards

Posted by admin on March 13, 2014  /   Posted in BI and Custom Development

Think Dashboards are only for Executives and Businesses?

Well, think again.

Today, even school districts are doing it.  First, let me be clear, it should come to no surprise that organizations within the education sector, especially the ones focusing on educating our children, should take advantage of any information technologies available today.

What really surprised me is how they use the Dashboard. Have a look here:

The Plano Independent School District (PISD) put up a dashboard which compares them with the neighboring cities’ ISD. The above image is just one of the elements on the Dashboard, by the way.  The rest of it looks just as impressive, as they seem to use every bells-and-whistles available in the charting world (not necessarily the best approach, but at least it is out there serving some purpose).

But while the Dashboard is put-together well, what impressed me the most is that the ISD gets it. They know that in order to get ahead of their peers, they not only have to perform, but also take the time to showcase their achievements.

This realization puts them — quite sadly — ahead of how most business owners think today.

Where does the data come from?

Or more importantly, how hard or how easy it is to put up the Dashboard, given the limitation of resources and information.  And this is what makes the situation even more ironic. We are living in the golden era of publicly accessible information. What is not available from within the organization, could easily be obtained either through some governing bodies or data collected independently.

And if a business owner still think that it is impossible for them to get the data about their competitors or customers or vendors/suppliers or everything else, that’s an outdated view and should be discarded.

What is it really for?

To make it easier for interested parties to make decisions. In this particular case, the interested parties are parents of students or young people who are looking for a place to move into or to start their lives.  By utilizing the Dashboard to serve relevant information in various dimension, the Plano ISD has make it that much easier for people to consider their options.

The same case can be made strongly for almost every businesses out there. When people are considering your products and businesses, the more ways you can showcase your distinguishing features, the more you can grab the mind of interested parties (read: potential customers).

Go Publish!

With today’s technologies, and the accessibility of potentially relevant external data, for example the General Society Survey, or  The Gapminder site, and many more, it is a crime not to have your own Business Dashboards. As the ISD’s have shown, an effort to present relevant up-to-date and relevant information is not limited to a one-shot deal, it is a continuous, planned, and deliberate program that should be included in your day-to-day business operations.

Business Dashboards – The Next Generation

Posted by admin on February 13, 2014  /   Posted in BI and Custom Development, Business, Data Best Practices

Dashboards Today

Unfortunately, most vendors that provide dashboard software have done little to encourage the effective use of this medium. They focus their marketing efforts on flash and dazzle that subvert the goals of clear communication.

They fight to win our interest by maximizing sizzle, highlighting flashy display mechanisms that appeal to our desire to be entertained. Once implemented, however, these cute displays lose their spark in a matter of days and become just plain annoying.

An effective dashboard is the product not of cute gauges, meters, and traffic lights, but rather of informed design: more science than art, more simplicity than dazzle. It is, above all else, about communication.

- Stephen Few, Information Dashboard Design, O’Reilly, 2006

Amazingly this comment is still pretty much true even today. But it doesn’t have to be. The next generation of effective dashboards are closer to a mixing panel of a music studio than plain, static dashboards we see today. And we at nextCoder are going to make sure that you business leaders are well-informed about it.

Recap: What is a Business Dashboard?

Nowadays you see fancy dashboards in cars that rival a desktop computer, almost. But what does the most basic dashboard in your car actually do? It tells you, the driver — in real time, at least these four information:

  1. How fast are you going (the odometer)
  2. How far can you go (tank full of gas or almost empty)
  3. Alerting you to pending breakage (weak battery, engine oil empty, engine needs checking)
  4. Alerting you of what is going on (turning signal, headlamp indicator)

Running a business, just like driving a car, requires your full attention in real time, but unfortunately, a business does not come with a built-in dashboard the way cars do.  Either you have to build one yourself, or have someone build it for you.

And just like a car dashboard that is connected at all times to the sensors that feeds it with data, a Business Dashboard is connected to the data sources located either within your business or coming from outside sources.

The information that you receive from a Business Dashboard is actually pretty similar:

  1. How fast is the business growing? (is it growing in the right direction?)
  2. How long can the business last given the current situation?
  3. Are we paying too much to our vendors/suppliers?
  4. Are we serving our customers the best we could?
  5. And many, many more

But … believe it or not, as useful as knowing all of these are, that list merely covers the basic usage of a Business Dashboard. If we stop at this level, we are missing the full potential of what the next generation of dashboards can do for us.

What is brewing?

Thanks to the ever-increasing popularity of game-changing web technologies such as jQuery, HTML5/CSS and the growing list of charting and/or visualization libraries, we enjoy the power of data visualization unlike any other computing era before.

The new way to develop dashboards allows us to produce dashboards that will rival web-applications in terms of information flow. Gone are the days of static, read-only dashboards. Say “Hello” to the new generation that takes interaction to a whole new level:

  • Built in mapping: With the numerous and Geocoding API available for us to use, it is unthinkable that a dashboard should be without one. Most businesses could benefit from geographically-mapped data. Imagine being able to visually see where your products are being purchased,  or your technicians on their service routes, or your suppliers to optimize material or component shipments.  And many more uses.
  • User Inputs: Ever seen a dashboard that is not read-only? If yes, you are in a good company. More and more executives, managers, customer support personnel ask that they are able to punch in data in real-time. Why do they have to switch to another application to do that? We at nextCoder agrees.
  • User-specific Business Rules: Lets face it, a business owner or CEO has his or her own “rules” that allow them to determine whether the business is doing okay or is it floundering.  These “rules” are not for everyone to see and for a very good reason: Panic prevention (just kidding… a little bit). But the fact remains, if a dashboard cannot even contain user-specific rules, then we are shortchanging the users. Plain and simple.
  • External Data: A lot of smaller businesses assume that just because their data volume is not gigantic, they do not have any use for aggregated data analysis. This was true in the past, not anymore. Today, there are volumes of data about any businesses, but it does not originate within the business itself, rather, the vast social-media network. You could be surprised at what your customers broadcast about your product or service to their friends and family, good and bad. And for the sake of your business, monitoring it is a good course of action.

These are just the tip of the iceberg when it comes to what a Business Dashboard is capable of serving with the current technology. Our goal is to deliver these features to our clients with each dashboard we build for them. In the next blog entries, we’ll have a peek on how to do just that.

Pentaho 5 CE Hands-on Review

Posted by admin on January 16, 2014  /   Posted in BI and Custom Development, Data Best Practices

One of the most exciting software release towards the end of 2013 is the Pentaho 5.0 CE (Community Edition) which was rolled out on November 18th 2013. While the EE (Enterprise Edition) was released a couple months prior, the CE version has always been my favorite both to work on and especially to be part of the community who is always full of new (and wonderful) ideas, and actually have the brain power to realize those.  Truly one of the most interesting Open Source communities.

As a BI Consultant, I had several requests to review this new release, so without further ado, let’s take a look.

As usual, I get the zip files for each Pentaho BI Suite components from here. This is what my folder looks like this when I was done downloading:

  • pad-ce-5.0.1-stable.zip – Pentaho Aggregation Designer (missing as of the time of this review, no idea where it went)
  • psw-ce-3.6.1.zip – Pentaho Schema Workbench
  • biserver-ce-5.0.1-stable.zip – Pentaho BI Server
  • pdi-ce-5.0.1-stable.zip – Pentaho Data Integration (Kettle and Spoon)
  • pme-ce-5.0.1-stable.zip – Pentaho Metadata Editor
  • prd-ce-5.0.1-stable.zip – Pentaho Report Designer

Unzipping any of these zip files will “install” the component. Simple as that.
I haven’t had the time to look at PAD or PME, so we’ll review this in the future. For now let’s start with PRD.

The new Pentaho Report Designer has a very convenient and useful item on the Wizard which you see when you started the report-designer.sh (or .bat on Windows) script. It’s called “What’s New”.

It’s basically a report that we can Preview and it listed all the new features in this 5.0 release; very handy to read about the improvements. What piqued my interest especially is they seem to improve the creation of interactive HTML reports, which now can serve links to other reports within Pentaho.  Maybe a new way to serve content that is somewhere between reports, dashboard, and wizard pages.

The popular Kettle (or Spoon or PDI) increase the number of steps including one that I have been waiting for: OpenERP Input and Output. Speaking of OpenERP, I need to contribute the custom OpenERP step that we developed last year into the community.

I’m also eager to try out the MongoDB steps as I started to use it for our projects.  I’ll have more to say about these two wonderful tools in upcoming articles.  These two are big enough to have their own reviews.

Pentaho BI Server

But the biggest changes are truly visible in the Pentaho BI Server itself. After unzipping the biserver-ce-5.0.1-stable.zip, dive into biserver-ce director and issue ./start-pentaho.sh if you are on UNIX or start-pentaho.bat if you are on Windows.

By starting the BI Server from this location, the starting scripts already set the memory allocation and other environment parameters to more reasonable values than the ones that comes default with Apache Tomcat.

After starting the server and wait for a while — or if you are familiar with Tomcat logging features, on UNIX do:

tail -f biserver-ce/tomcat/log/catalina.out

Which will allow you to see if the server starts correctly or failed with errors. On Windows, use the Tomcat Start/Shutdown application to see the logs. When you see the log files stops scrolling, bring up a browser (on the same computer) and try to hit the Tomcat server by entering http://localhost:8080/pentaho if you use the default settings. And you should see:

puclogin_custom_photo

Yes, that’s what our version of the Pentaho User Console (PUC) looks like after a couple of customization steps:

  • Change the login image:
    – user@server:~/pentaho5/biserver-ce/pentaho-solutions/system/common-ui/resources/themes/crystal/images$ mv ~/your-own-similarly-sized-image.jpg ./login-crystal-bg.jpeg
  • Change Pentaho to nextCoder
    – user@server:~/pentaho5/biserver-ce/pentaho-solutions/system/common-ui/resources/themes/images$ mv ~/your_logo.png puc-login-logo.png
  • Change the wordings of the Login page:
    – user@server:~/pentaho5/biserver-ce$ vi tomcat/webapps/pentaho/jsp/PUCLogin.jsp

Gone are the usual ‘joe’ user, replaced by ‘admin’ with the same default password ‘password’. Use these to get in and you’d be greeted by the Home screen:

home_screen

Again, with some modifications, you can tailor the Home screen to suit your purposes. In this case the customization step is:

  • Change the content of Home
    – beruin@yamato:~/pentaho5$ vi ./biserver-ce/tomcat/webapps/pentaho/mantle/home/content/welcome/index.html

If you notice, gone is the compartmentalized panes of the old PUC, replaced by a much better-flowing (plenty of white space) minimalistic-style layout.

Another paradigm switch is the central navigation (it says ‘Home’ in the above screenshot). When you click on it, a dropdown will be displayed showing the available mode.  The Home -mode is what you see above, next is the Browse File -mode that looks like this:

browse_file

This is another departure from the file-based pentaho-solution repository to this JCR-based one. What is JCR? Java Content Repository is a database-based content (files) repository specification that is implemented by among others Apache Jackrabbit project, which is the one being used here by Pentaho.

What does this all mean to users? In a way, it has its advantages being a database-based repository in terms of better control of metadata and versioning of the files without sacrificing ease of use, but which also means that we have to use a plugin if we want to synchronize this repository with a file system so we can Version Control our files on our own.  It remains to be seen if this switch will yield its fruit down the line.

One question for the Pentaho team: Why can’t I select multiple files and do some actions with them?

Speaking of plugins, which is source of productivity in the platform, the next mode we’ll talk about is the Marketplace -mode:

marketplace

In version 4.8 and before, we have to install plugins such as Saiku, CDE, CDA, CDF, etc. manually either by using the ctool-install.sh script or by unzipping files at the right folders and hope it’ll work.

The new Marketplace -mode provides a more organized way to manage plugins and their versions.  Although you still have to restart the server manually after installing or upgrading these plugins, it is still miles ahead and more importantly, just a month or two after release, we started to see plugins written by developers outside of Pentaho, which is wonderful and in-line with the spirit of the community.

Next up, is the Opened -mode, which is basically a mode where it retains all of the files we are working on (both editing or opening).  This mode is somewhat similar to the new Microsoft Office paradigm (starting with Office 2010).

The Scheduled -mode is an improved user interface to schedule ETL runs:

schedules

A new feature introduced is the ability to define block-out time, within which scheduled ETL will not be run.  This is useful for scheduled downtime or maintenance for the host servers.

The last mode is the Administration -mode:

admin_screen

This is the answer to “Where is PAC?” The old Pentaho Administration Console is gone, it is now reborn as this mode. I can’t tell you how many times (with the previous version) I received raised eyebrows or dumbfounded-look when I had to explain that you have to run another server just to create a new user or assign roles. This is definitely a very welcome improvement!

Now, how about some real work. The plugins now take center stage as Pentaho CE matures as a real platform. Old favorites like CDE:

cde_dashboard_edit

Improved with the much more professional-looking “Crystal” theme as the default. You could still switch to the old “Onyx” theme if you like.

Another good tool is Saiku Analytics, returned also thankfully:

saiku_graphsThe charting ability of Saiku Analytics has been improved tremendously. I  almost couldn’t believe my eyes when I see the various charts glide along visualizing the data effortlessly.

A promising newcomer in the Analytics tool called Pivot4J is also available to install through the Marketplace -mode:

pivot4j_editing

The Pivot4J has one thing that has been missing in all of the Pentaho Analytic tools, the ability to render Aggregates at the last row or column.  You have no idea how many times this little feature is asked by my clients.  Yes, business people loves their totals, those helped them to make better decisions.  So good job for this Pivot4J team!

Is there any negatives? Yes, the charting in Pivot4J is not intuitive to me. Take a look at the above screenshot, you see four columns. When you click the interface that will generate the bar chart representation of the table, what would you expect? I expect one bar chart, with four bars each representing the columns.  What did Pivot4J gave me? Four bar charts. Why?? And I don’t see any ways to merge them or change those in any way.

Summary

In summary, I couldn’t be happier with this new 5.0 release of the Pentaho CE. There is enough new features here that warrants companies to consider upgrading their Data Warehouses.  What is the most exciting trend for me is the third-party plugins that starts to become available through the Marketplace.  This can signal a real growth in quantity and quality of what is already one of the most useful BI suites in the market.

So to Mr. Pedro Alves and his team, big kudos, thank you, and good job. 2014 is looking like another stellar years for Open Source BI, starting with Pentaho 5.0 CE.


We serve businesses of any type and size
Contact Us Today