AdoptOS

Assistance with Open Source adoption

Open Source News
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.
  • warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/mykidsin/public_adoptos_html/includes/unicode.inc on line 349.

CiviCRM 5.9.0 release

CiviCRM - Thu, 01/03/2019 - 06:08
CiviCRM version 5.9.0 is now ready to download.  RELEASE NOTES: Big thanks to Andrew Hunt from AGH Strategies for putting up together release notes for this version.  The release notes for 5.9.0 can be accessed here.   SPECIAL THANKS:
Categories: CRM

What Constitutes an "Open" Platform

Concursive - Fri, 12/28/2018 - 12:25

There is no rigid, hard and fast definition for what constitutes an open platform.  Rather, arriving at an answer for whether a solution is open versus proprietary/closed is somewhat akin to the adage penned by SCOTUS Justice Potter Stewart when remarking as to what constitutes pornography — "[You] know it when [you] see it”.  The same is true here. "Openness" is not a binary determination; it's found along a continuum.  The way we think about it is the more open the approach, the more it incorporates amounts of the following six elements: &nbsp

Categories: CRM

Evaluating Trade-Offs and ROI of an Open Approach

Concursive - Fri, 12/28/2018 - 10:20

When making important capital or strategic decisions any manager worth their salt immediately tries to get a handle on the fundamental tradeoffs presented by the various options.  Discipline of this nature should be applied to technology investment decisions.  But adding to their challenge is their normally complex and even iterative nature, leading to a process that generally looks as much like art as it does science.  For example, grappling with questions like “What happens to our positioning vis a vis competitors if we build X, versus Y, versus nothing?” can lead to paralysis.  With the exception of large enterprises that have analysts aplenty, answers are generally incomplete at best or inactionable at worst. We coach organizations that while they must struggle with those types of questions, in parallel a

Categories: CRM

Where "Open Solutions" Fit Well

Concursive - Fri, 12/28/2018 - 08:20

The size of the organization in which a solution is being considered is usually a key determinant of fit.  Large enterprises, highly invested in a single or few platforms like SAP or Oracle, generally apply open strategies to narrower areas within their development roadmaps.  Which is how Linux penetrated the enterprise; it was first used in projects deemed less than mission critical and once found to be robust, safe and cost-effective spread more broadly. For the vast range of smaller and mid-sized organizations, and specifically with respect to Concursive technologies, open strategies are most applicable where some combination of the following conditions apply: Uncertainty

Categories: CRM

3 Ways Data Will Continue to Transform Your Business

SnapLogic - Thu, 12/27/2018 - 12:00

Previously published on vmblog.com. The AI hype reached new heights in 2018, but most businesses fall flat in actualizing AI because they don’t have a handle on their data. As enterprises shift to the cloud, they still haven’t adapted their tools and methods to fully take advantage of this new era. Against this backdrop, here[...] Read the full article here. The post 3 Ways Data Will Continue to Transform Your Business appeared first on SnapLogic.

Categories: ETL

Joomla! A Year in Review - 2018

Joomla! - Thu, 12/27/2018 - 05:00

As we countdown to 2019, we’ll be raising a glass (or two) to all our incredible volunteers who have made the leaps and bounds of 2018 possible.

Categories: CMS

Talend Performance Tuning Strategy

Talend - Wed, 12/26/2018 - 12:16

As a Customer Success Architect with Talend, I spend a significant amount of my time helping customers with optimizing their data integration tasks – both on the Talend Data Integration Platform and the Big Data Platform. While most of the time the developers have a robust toolkit of solutions to address different performance tuning scenarios, a common pattern I notice is that there is no well-defined strategy for addressing root causes for performance issues. Sometimes not having a strategy fixes some of the immediate issues but in the longer term, the same performance issues resurface because the core issues in the original design were not addressed. And that’s why I recommend customers to have a structured approach to performance tuning of their data integration tasks. One of the key benefits of having a strategy is that it is repeatable – irrespective of what your data integration tasks do, how simple or complicated they are, and the volume of data that is being moved as part of the integration.

Where is the bottleneck?

The first step in a performance tuning strategy is to identify the source of the bottleneck. There could be bottlenecks in various steps of your design. The goal is not to address all the bottlenecks at the same time but to tackle them one at a time. The strategy is to identify the biggest bottleneck first, find the root causes creating the bottleneck, find a solution and implement it. Once the solution has been implemented, we look for the next biggest bottleneck and address it. We keep iterating through all the bottlenecks until we have reached an optimal solution.

Here’s an example to help you understand. You have a Talend Data Integration Standard job that reads from an Oracle OLTP database, transforms it in tMap and loads it into a Netezza data warehouse.

If this task is not meeting your performance requirements, my recommendation would be to break down this task into three different parts:

  1. Read from Oracle
  2. Transform in Talend, and
  3. Write to Netezza

One or more of the tasks listed above maybe causing a slowdown of your process. Our goal is to address one at a time. A simple way of finding out what is causing the bottleneck is to create three test Talend jobs to replicate the functionality of the one Talend job. This would look something like this:

  1. Job 1 – Read from Oracle: this job would read from Oracle using tOracleInput and write to a file in the local file system of the Talend Job Server using tFileOutputDelimited. Run this job and capture the throughput (rows/second). If the throughput numbers do not look reasonable, the query from Oracle source is one of your bottlenecks.

2. Job 2 – Transformation: Read the file created in Job 1 using tFileInputDelimited, apply your tMap transformations and write out to another file using tFileOutputDelimited into the same local file system. How do the throughput numbers look? Are they much faster or much slower or the same compared to Job 1? 3. Job 3 – Write to Netezza: Read the file created in Job2 and load it into the Netezza database and look at the throughput numbers. How do they compare to Job 1 and Job 2? There are couple of things you need to pay attention to when running these jobs:

  • First, these test jobs should be writing to and reading from a local file system – this is to make sure we eliminate any possible network latency.
  • The second thing – throughput (the rate at which data is read/transformed/written) – is a more accurate measure of performance than elapsed time. Our goal is to reduce elapsed time and we address that by increasing the throughput at each stage of the data integration pipeline.
Let’s assume that this was the outcome of running our tests: Job Description Throughput Job 1 Read from Oracle 20000 rows/sec Job 2 tMap transformation 30000 rows/sec Job 3 Write to Netezza 250 rows/sec   Based on the scenario above, we can easily point to Netezza being the bottleneck in our scenario since it has the lowest throughput*. If the outcome was something like below, we can conclude that we have bottlenecks both in the read from Oracle and write to Netezza and we need to address both*. Job Description Throughput Job 1 Read from Oracle 500 rows/sec Job 2 tMap transformation 30000 rows/sec Job 3 Write to Netezza 250 rows/sec   * In my simple use case above, I assume that the row lengths do not change across the entire pipeline i.e. if we read 10 columns from Oracle, the same 10 columns are passed through the Transform and Write jobs. However, in real life scenarios, we do add or drop columns as part of the pipeline and we need to pick alternate measures of throughput like MBs/sec. Let’s eliminate those bottlenecks In the previous section, I talked about identifying “where” the bottleneck is. In this section, we will provide you a summary of “how” we can eliminate the different types of bottlenecks. Source Bottlenecks
  • If your source is a relational database, you can work with your database administrators to make sure that the query is optimized and executing based on the best query plan. They can also provide optimizer hints to improve the throughput of the query. They should also be able to add new indexes for queries that have an GROUP BY or ORDER BY clause.
  • For Oracle and some other databases, Talend allows you to configure the Cursor Size in the t<DB>Input component. The Cursor Size defines the fetch size of the result set. Once the result set is retrieved from the database, it is stored in memory for faster processing. The ideal size for this is defined by your dataset and requirements. You can also work with the database administrators to increase the network packet size which allows for larger packets of data to be transported over the network at one time.
  • For very large reads, create parallel read partitions as multiple subjobs using multiple t<DB>Input components with non-overlapping where clauses. Pick columns that are indexed for the where clauses – this will enable an equal distribution of data across the multiple reads. Each of these subjobs can run in parallel by enabling “Multi thread execution” in the job properties
  • For files sources stored on the network shared storage, please make sure that there is no network latency between the server on which Talend Job server is running and the file system in which the files are hosted. The file system should ideally be dedicated to storing and managing files for your data integration tasks. In one of my assignments, the file system where the source files were stored were shared with mail server backups – so when the nightly email backups would run, our reads from the filesystem would significantly slow down. Work with your storage architect to eliminate all such bottlenecks.
Target Bottlenecks
  • Most modern relational databases support bulk loading. With bulk loaders, Talend bypasses the database log and thus improves performance. For some of the databases, we also provide the option to use named pipes with external loaders. This eliminates the need to write the intermediate files to disk.
  • Sometimes dropping indexes and key constraints before load helps with the performance. You can recreate the indexes and constraints after the load has successfully completed
  • For updates, having database indexes on the same columns as the ones that are defined as Keys in the t<DB>Output component will improve performance
  • For file targets on a network shared storage, follow the guidelines from above for source files stored on network shared storage
Transformation Bottlenecks
  • Reduce the volume of data being processed by Talend by eliminating the unnecessary rows and columns early in the pipeline. You can do this by using tFilterRows and tFilterColumns components
  • For some memory intensive components like tMap and tSortRow, Talend provides the option to store intermediate results on disk. A fast disk that’s local to the Job Server is recommended. This reduces the requirement for adding more memory as data volumes grow.
  • Sometimes transformation bottlenecks happen because of a large monolithic job that tries to do many things at once. Break down such large jobs into smaller jobs that are more efficient for data processing.
There are some additional optimization techniques to address bottlenecks at a job level (like Parallelization, ELT, Memory optimization etc.) that are not discussed as part of this blog but you can find information on them and other techniques on Talend Job Design Patterns and Best Practices – Part 1Part 2, Part 3 and Part 4. Conclusion The key element to successfully tune your jobs for optimal performance is to identify and eliminate bottlenecks. The first step in the performance tuning is to identify the source of bottlenecks. And yes, it does involve creating additional test jobs. But don’t be discouraged that you have to put in additional effort and time to build these out. They are well worth the effort based on my experience doing this for 20+ years. A strategic and repeatable approach to performance and tuning is a lot more efficient than a tactical trial and error method. You can also incorporate the lessons learnt into your process and improve it over time. I hope this article gets you started in your performance tuning journey and wish you the best. The post Talend Performance Tuning Strategy appeared first on Talend Real-Time Open Source Data Integration Software.
Categories: ETL

Data preparation and machine learning made simple

SnapLogic - Fri, 12/21/2018 - 14:15

The ability to manage vast amounts of data is critical to the success of any organization, although most remain behind the curve and struggle to get to data-driven results. Even with information-rich data at hand, according to a May 2017 article published in Harvard Business Review, “more than 70% of employees have access to data[...] Read the full article here. The post Data preparation and machine learning made simple appeared first on SnapLogic.

Categories: ETL

Acquire better data insights with the SnapLogic Data Catalog

SnapLogic - Thu, 12/20/2018 - 13:57

You’ve no doubt heard that data is the new currency or the new oil (and in many ways, crude oil). Hundreds of our customers have the same mindset and embrace and strive to become data-driven in their decision-making process. What’s a given is that today’s organizations generate large volumes of data that are then consumed[...] Read the full article here. The post Acquire better data insights with the SnapLogic Data Catalog appeared first on SnapLogic.

Categories: ETL

7 Factors for a Successful Deployment

Talend - Wed, 12/19/2018 - 19:21

Deploying a successful technology solution, especially in data management, takes more than just installing software and writing a job (or multiple jobs… thousands in some cases), and running those jobs. If you’re taking on a new data management initiative, deploying using containers and serverless technology, migrating from traditional data sources to Hadoop, or from on-premises to the cloud, you may be sailing in unfamiliar waters. The rate of change in technology, the explosion of data, and the requirements of business all demand that IT organizations continually innovate. Whenever you’re doing something transformational and cutting-edge, you’re taking a bit of a risk and you’re going to have to work with a limited skill set or expertise in the area to which you’re trying to migrate, learn quickly as you go, and iterate quickly to incorporate those learnings. The Risk/Reward Profile Companies have historically been rewarded for innovation. Being first to market with a new technology or innovation can provide great financial outcomes, but the side of the road is also littered with initiatives that were either too early with an innovation or didn’t adequately plan to mitigate risk. At Talend, we’ve built a framework for adoption that includes key elements that both manage risk and set you up for success. It’s a framework through which we internally look at our customer deployments and one which we’re starting to share with customers directly so that we can have a transparent conversation about what’s going well, where we see potential challenges in the future, and how we can work together proactively to address those issues. We’ve created a framework called the ‘’Seven Factors to Successful Adoption.” These include:

  1. Stakeholder Engagement: Are your stakeholders effectively engaged? Do you have business users involved and invested in the successful outcome of the project and do they have something to gain or lose with the outcome of your deployment? Ideally that stakeholder is tied to an objective that drives business outcome. At our most successful customers, CIOs and CDOs have a stake in the outcome of the business problem we’re trying to solve, share their vision and strategy, and ensure that their project roadmap and key initiatives map to our technology roadmap – which we regularly share. Can you get access to your executive sponsors easily and are they willing to invest the time and effort to ensure that a project is set up for success because there’s a meaningful business outcome for them?
  2. Project and Business Value Alignment: Is this IT initiative tied to an outcome that has real business value and are the goals of this IT initiative tied to tangible business outcomes? For example, our customer Euronext didn’t simply embark upon a science experiment with real time streaming, Talend Data Catalog and our APIs because they thought the technology was interesting. They had real financial objectives associated with getting access to trusted information in a matter of seconds rather than weeks. Given the quicker access to data they could trust, they were able to make that data available to external customers to derive value from it for the first time. They now receive 20% of their revenue from data that they’re able to provide to external customers.
  3. Team Readiness: Is the project team set up for success? In many cases, it’s about more than just having smart developers on the team. In the case of containerization, serverless deployments or migrations to the cloud, the team on the project (like a large portion of the global IT population) may be performing their first cloud deployment. The more you can supplement your internal team with knowledge and skills from others who have real world experience (and yes, some battle scars) from deploying cloud technologies, the more value you can drive with greater speed and less risk. A successful project team will require more than just smart people, it will require assistance from others who have navigated the waters of cloud adoption. We regularly partner with our customers and SI partners to ensure that we’re providing guidance in new technologies, deploying and designing the Talend solution properly, and supporting a team collaboratively.
  4. Architecture: Do you have the right architecture? While this may again sound straightforward, cloud can be a significant paradigm shifts, and an architecture that performed well in the legacy world may not provide expected performance in a new architectural paradigm. For example, managing database connection pools from an on premises “always connected” application can differ significantly from how you manage connections from within a container that spins up and down as needed to take advantage of the cloud cost model. Also, if you’re moving data from on-premises to the cloud, or from cloud-to-cloud, there are best practices to follow that can make a big difference with respect to security or performance.
  5. Job Design: Has your job design been validated and have you built consistency around it so that it will perform well now and at scale? Do you have consistent error handling? Are you using context variables effectively? Our Customer Success Architecture and Professional Services teams have published best practices and spent time consulting with customers in order to ensure that their jobs are able to scale. In addition, it’s important that your team publish internal job design standards as you scale so that additional developers are creating jobs that follow those best practices.
  6. Growth Strategy: Does your team have a growth strategy beyond the initial project? Projects tend to be more successful when they are either part of a greater initiative or if there is a logical next step. For example, if simple ingestion is your “end game”, you may soon find you’re your users won’t trust the data without a good understanding of where it came from. They may require a catalog or information about the lineage of that data. You may also want to ensure that you’re deduplicating records and performing other data quality steps that provide needed governance. Additionally, the uptake of technology tends to have a tailwind if the project is seen as part of a greater initiative as opposed to a one-off. And if you aren’t thinking about cloud, containerization, and serverless technologies, we should probably talk.
  7. Ongoing Alignment and Checkpoints: We love to hear success stories from our customers. At Talend Connect this year, a number of our customers shared the business value they received working with Talend. We also like to hear from you how we can be doing a better job to help you meet your objectives. Are we aligning regularly? Do we know your major initiatives and milestones? Do we have regular calls or meetings between our team members and do we have a communication framework that allows us to check in with each other on those milestones?  A close relationship between partners provides an opportunity to surface observations that, if managed proactively, can ensure alignment between product roadmap/features and implementation strategy/requirements. At the speed the IT world is changing, and at the rate the cloud is exploding, we should be meeting and discussing the trends that we’re seeing in data management on a regular basis.
I hope you find this framework useful. We’re excited about the successes it has enabled so far as well as the risks and challenges that it has surfaced as we’ve shared it with customers. We always come away from these conversations with a better understanding of what we should more of and what we should do differently. To learn more about our best practices, or to connect with us for a conversation, please go to our Customer Success page or contact your CSM directly for more information on how we can help ensure your journey to the cloud is a success. I look forward to sharing more information on our framework in future blog posts.     The post 7 Factors for a Successful Deployment appeared first on Talend Real-Time Open Source Data Integration Software.
Categories: ETL

Leapfrog your EDI into the cloud with intelligent B2B integration

SnapLogic - Tue, 12/18/2018 - 16:19

With global public cloud spending predicted to hit $200 billion in 2019, chances are your company is moving more and more of its business computing infrastructure to the cloud. That’s a relatively straightforward task with modern enterprise applications, but what about the legacy apps that your organization still relies on—is it possible for them to be[...] Read the full article here. The post Leapfrog your EDI into the cloud with intelligent B2B integration appeared first on SnapLogic.

Categories: ETL

An Introduction to the Service Mesh

Talend - Tue, 12/18/2018 - 11:19

In the last few years, microservices or microservice architecture has become a popular reference in IT due to its benefits and the flexibility this architectural style brings.

Before we get into working with microservices and Talend, we should review the basics of microservices or a microservice architecture. In a previous blog from Ravi Chebolu, he provided a great insight on Microservices: “Microservices is often quoted as an architectural style for software development as a variant derived from the foundations of Service Oriented Architecture(SOA)” To make it simple, we often compare microservices versus a monolith.

  • A monolith is an application that holds a group of operations together, like a frontend interface and the backend services which receives the data.
  • A microservices architecture will take the same operations but instead of creating one big application, it will decompose it into a collection of loosely coupled services.
For more information on Microservices and Talend, I will recommend looking at these articles: A microservices architecture can bring a ton of benefits including better maintenance and upgrade, better fault isolation, easier continuous integration, better integration with containers, scalability and so much more. But if not well-managed and by default, it can also bring some complexity in the day to day life and management like request tracing and monitoring. So what is a Service Mesh? A service mesh is a network of microservices that makes service-to-service scenarios secure, performant and reliable. Istio is a service mesh backed up by Google and they added direct Istio access to its Kubernetes Engine. Istio’s Core features include:
  • Traffic Management
  • Security
  • Observability
  • Platform support
  • Integration and customization
In terms of implementation, a service mesh can help by adding more features to assist in the deployment of microservices like:
  • A/B testing
  • Blue / Green deployment
  • Canary releases
  • Rate limit
  • Access control
  • End-to-end authentication.
Usually, service mesh is an infrastructure layer relying on proxies to be implement and the corresponding architecture. Source: https://istio.io/docs/concepts/what-is-istio/#architecture To understand more about service mesh with Talend, I invite you to register for the webinar we just put together that dives into the technical details. In it, I’ll show you how to use service mesh with Talend and Istio. Until next time!           Join the Webinar! Talend Microservices: Service Mesh with Istio    The post An Introduction to the Service Mesh appeared first on Talend Real-Time Open Source Data Integration Software.
Categories: ETL

Software für Engagierte e.V. launches annual CiviCamps in Germany

CiviCRM - Tue, 12/18/2018 - 02:34

CiviCamps are casual, locally-organized one day events bringing together CiviCRM users, experts and those who want to discover what CiviCRM is and what it can do. This year, Software für Engagierte e.V., an association of CiviCRM users, came up with the plan to organize annual CiviCamps in Germany. 43 users, experts and interested organizations attended the first camp that took place November 15th in Halle (Saale).

Categories: CRM

End of PHP 5.5 support reminder

CiviCRM - Tue, 12/18/2018 - 00:51

This is just a quick reminder that as announced in August the CiviCRM release on 2 Jan 2019 will be the last release supporting PHP 5.5. 

Categories: CRM

How to Architect, Engineer and Manage Performance (Part 1)

Talend - Mon, 12/17/2018 - 22:28

This is the first of a series of blogs on how to architect, engineer and manage performance.  In it, I’d like to attempt to demystify performance by defining it clearly as well as describing methods and techniques to achieve performance requirements. I’ll also cover how to make sure the requirements are potentially achievable.

Why is Performance Important?

To start, let’s look at a few real-world scenarios to illustrate why performance is critical in today’s business:

  • It is the January sales and you are in the queue at your favorite clothing stores. There are ten people in front of you, all with 10-20 items to scan and scanning is slow. Are you going to wait or give up? Are you happy?  What would a 30% increase in scan rates bring to the business? Would it mean fewer tills and staff at quiet times?  Money to save, more money to make and better customer satisfaction.
  • Let’s say you work at a large bank and you are struggling to meet the payment deadline for inter-bank transfers on peak days. If you fail to meet these, you get fined 1% of the value of all transfers waiting. You need to make the process faster, increase capacity, improve parallelism. It could lose you money, worse damage your reputation with other banks and customers.
  • You’ve needed a mortgage. XYZ Bank offers the best interest rate and they can give you a decision within a month. ABC Bank cost 0.1% more, but guarantee a decision in 72 hours. The vendors of the house you want to buy need a decision within the week.
  • Traders in New York and London can make millions by simply being 1ms faster than others. This is one of the rare performance goals, where there is no limit to how fast, except the cost versus the return.

Why is performance important? Because it means happy customers, cost savings, avoiding lost sales opportunities, differentiating your services, protecting your reputation and much more.

The Outline for Better Performance Processes

Let’s start with performance testing. While this is part of the performance process on it is own, it is usually a case of “too little, too late” and the costs of late change are often severe.

So, let me outline a better process for achieving performance and then I’ll talk a little about each part now, and in more detail in the next few blogs:

  1. Someone should be ultimately responsible for performance – the buck stops with someone, not some team.
  2. This performance owner leads the process – they help others achieve the goals.
  3. Performance goals need to be measurable and realistic, and potentially achievable – they are the subject of discussions and agreement between parties.
  4. Goals will be broken down amongst the team delivering the project – performance is a team game.
  5. Performance will be achieved in stages using tools and techniques – there will no miracles, magic or silver bullets.
  6. Performance must be monitored, measured and managed – how do we deal with the problems which will occur.
Responsibility for Performance

Earlier, I stated that one person should be solely responsible for performance. Let me expand upon that. When you have more than one person in charge, you can no longer be sure how the responsibility is owned. Even with two people, there will be things which you haven’t considered and do not fit neatly in one or other roles.  If possible, do not combine roles like Application and Performance Architect (Leader) as this may lead to poor compromises. In my opinion, it is far better for each person to fight for one thing and have the PM or Chief Architect to judge the arguments rather than one person trying to weigh the benefits on their own.  Clearly, in small projects, this is not possible, and care is necessary to ensure anyone carrying multiple roles can balance the two or bring out the multiple roles without bias.  It is very easy to favour the role we know best or enjoy most.

I probably won’t return to the topic until, towards the end of the series, it will be easier to understand after looking at the other parts in more detail.

The Performance Architect – Performance Expert, Mentor, Leader and Manager

In an ideal scenario, a Performance Architect’s role is to guide others through the performance improvement process, not to do it all themselves. No one is an enough of an expert in all aspects of performance to do this.  Performance Architects should:

  • Manage and orchestrate the process on behalf of the project.
  • Lead by taking responsibility for the division of a requirement(s) and alignment of the performance requirements across the project.
  • Provide expertise in performance, giving more specialised roles ways to solve the challenges of performance – estimation, measurement, tuning, etc.

This needs a bit more explanation in a future blog in this series, but I will cover some of the other parts first.

Setting Measurable Goals – Clear Goals that Reflect Reality

Setting measurable performance goals requires more work than you first think. Consider this example, “95% of transactions must complete in < 5 secs”. On the face of it this seems ok, but consider:

  • Are all transactions equal – logon, account update, new account opening?
  • What do the five seconds mean – elapsed time, processing time, what about the thinking time of the user?
  • What if the transaction fails?
  • Data variations – all customers named “Peabody” versus “Mohammed” or “Smith”.

That one requirement will need to be expanded and broken down into much more detail.  The whole process of getting the performance requirements “right” is a major task and the requirements will continue to be refined during the project as requirements change.

It is worth stating that trying to tune something to go as fast as possible is not the aim of performance. It isn’t a measurable goal, you don’t know when you’ve achieved the goal, and it would be very expensive.

This area can be involved, it takes time, effort and practice, and this is the basis for the rest of the work, so a topic for more discussion in the next blog.

Breaking the Goals Down – Dividing the Cake

If we have five seconds to perform the login transaction, we need to divide that time between the components and systems that will deliver the transaction.  The Performance Architect will do this with the teams involved, but I’ve found that they’ll get it wrong at the start. They don’t have all the facts, it doesn’t matter if it is right at the finish. You are, probably struggling to see where to start, don’t worry about that for a bit, the next section will help.

I’ll look at this in a future blog, but it is probably best discussed after looking at estimation techniques.

Achieving Performance – The Tools and Techniques

When most people drop a ball, they know it falls downwards due to gravity. But not many of us are physicists and four-year-old children haven’t studied any physics, but they don’t seem to struggle to use the experience (knowledge). 

How long will an ice cube take to melt? An immediate reaction goes something like this, “I don’t know it depends on the temperature of the water/air around the ice cube”. So make some assumptions, provide an estimate, then start asking questions and doing research to confirm the assumptions or produce a new estimate.

How long will the process X take?  How long did it take last time? What is different this time? What is similar? What does the internet suggest? Could we do an experiment? Could we build a model? Has it been done before?

Start with an estimate (guess, educated guess, the rule of thumb – use the best method available or methods) and then as the project progresses we can use other techniques to model, measure and refine.

You might be saying, “But I still don’t know”! That’s correct, and you probably never will at the outset.

Statistically, it is almost certain you won’t die by being struck by lightning (Google estimates 24,000 or 6,000 people per year on Earth pass away this way – no one knows the real figure – think about that, we don’t know the real answer).  Most (or all, I hope) assume we won’t be sick tomorrow, but some people will. Nothing is certain, you don’t the answer to nearly everything in the future with accuracy, but it doesn’t stop you making reasonable assumptions and dealing with the surprises, both good and bad.

This is a huge topic and I need to spend some time on this in the series to build your confidence in your skills by showing you just some of the options you have now, you can learn and develop.

“Data Science” and “Statistics” are whole areas of academic study interested in prediction, so this is more than a topic. There are probably more ways to produce estimates than there are to solve the IT problem you are estimating.

Keeping on track – Monitoring, measuring and managing

Donald Rumsfeld made the point there are things we know, we know we don’t know and things that surprise us (unknown unknowns). Actually, it is worse, people often think they know and are wrong, or assume they don’t know and then realise their estimate was better than the one the project used. Risk management is how we deal with the whole performance process. Risk management, just like the Project Manager uses will help us manage the process. As we progress through the project we will build up our knowledge and confidence in the estimates and reduce the risk and use the information to focus our effort where the greatest risk is. A Project Manager measures the likelihood of the risk occurring and the impact.  For performance, we measure the chance of us achieving the performance goal and how confident we are of the current estimate. This will be easier to understand as we look at other parts in more depth, we’ll revisit this in a future blog. In future blogs in the series I will cover:

  • Setting goals – Refining the performance requirements.
  • Tools and techniques – Where to start – Estimation, Research,
  • Monitoring, measuring and managing – risk and confidence.
  • Breaking the goals down across the team.
  • Tools and techniques – Next Steps – Volumetrics, Model and Statistics
  • Tools and techniques – Later Stages – Some testing (and monitoring) options.
  • Responsibility and Leadership
The Author Chris first became interested in computers aged 9. His formal IT education was from ages 13 to 21, informally it has never stopped. He joined the British Computer Society (BCS) at 17 and is a Chartered Engineer, Chartered IT Professional and Fellow of the BCS. He is proud and honoured to have held several senior positions in the BCS including Trustee, Chair of Council and Chair of Membership Committee, and remains committed to IT professionalism and the development of IT professionals. He has worked for two world leading companies before joining his third, Talend as a Customer Success Architect.  He has over 30 years of professional working experience, with data and information systems.  He is passionate about customer success, understanding the requirements and the engineering of IT solutions.  Our Team The Talend Customer Success Architecture (CSA) team is a growing worldwide team of 20+ highly experienced technical information professionals. It is part of Talend’s Customer Success organisation dedicated to the mission of making all Talend’s customers successful and encompasses Customer Success Management, Professional Services, Education and Enablement, Support and the CSA teams.  Talend Built for cloud data integration, Talend Cloud allows you to liberate your data from everything holding it back. Data integration is a critical step in digital transformation. Talend makes it easy. The post How to Architect, Engineer and Manage Performance (Part 1) appeared first on Talend Real-Time Open Source Data Integration Software.
Categories: ETL

CiviCRM used to help promote animal rescue

CiviCRM - Mon, 12/17/2018 - 15:16

An interview with Mary Ann Bopp, Development Director of Pets Alive

Categories: CRM

Let’s move your pages

Liferay - Sun, 12/16/2018 - 17:00


Since Liferay 7.1, pages management has been completely redesigned. Now the navigation tree presented to end-users are controlled by the new Navigation Menus rather than the position of pages in the pages administration screen (now using the Miller columns visualization system).

Unfortunately, by the time these lines are written (i.e. with Liferay 7.1 GA2), the position of a page cannot be updated: you can’t change the parent nor the order across siblings. This is not a business critical issue because the pages positions are not used to display menus to end-users... But it’s really very uncomfortable for website administrators because it’s not possible to organize pages for a decent administration experience. 

So, I have developed a small free app providing the capability to change page position, simply by drag and drop. Once the app installed, you can change a page position by dropping the page between other pages or on a page title (in this case the dropped page become the first child of the targeted page).

 

As a cherry on the cake, you can also change the parent of a page by dragging it on a breadcrumb item.

This open-source app is available on the Liferay Marketplace: https://web.liferay.com/fr/marketplace/-/mp/application/116738420.   I hope this will help you until this feature is integrated natively into the Liferay product. Sébastien Le Marchand Freelance Technical Consultant in Paris Sébastien Le Marchand 2018-12-16T22:00:00Z

Categories: CMS, ECM

How SnapLogic enables self-service and cloud-driven B2B integration

SnapLogic - Fri, 12/14/2018 - 12:49

B2B integration runs as far back as the 1960s. In the decades since, B2B requirements expanded and became more complicated as the industry shifted. The need for additional integration capabilities underscores how integration as a service (iPaaS) and B2B Gateway Software (BGS) together contribute to successful B2B integrations. Without cloud-based, modern B2B integration, organizations require[...] Read the full article here. The post How SnapLogic enables self-service and cloud-driven B2B integration appeared first on SnapLogic.

Categories: ETL

Liferay Forms and Data Providers

Liferay - Fri, 12/14/2018 - 05:24

While trying to give your users the best experience ever you always try to keep things simple. In the past I have filled in many forms and many times with the same data and many times at the same site. Why?

As a simple example I took a free 'zipcode to address' service in the Netherlands and used this to show how easy this can be done. And this is what it looks like.

Todo this I needed to call the service in a different way since the service required  "X-Api-Key" in the header and that's not supported in the data-provider. So, with a simple JAX-RS service I wrote a wrapper to simplify the call so it could be used with the data-provider. Once I had this working it took me just a few minutes to create the form and add the rules to initiate the lookup. The nice thing is I can also use this wrapper in my Liferay Commerce environment to easily add a delivery address.

This is such a powerful piece I started to think further. The service returns information like streetname, province, city, geo-location, when it was build and type of address. With all this information you can start building a profile for users. Every X times they visit your website you can ask them to provide a small piece of the puzzle. And by collecting all this information you can further improve the UX if used in the right way. E.g. you organize an event. Ask people to register and based on geo-location you know what would be the best possible location to organize this event closest to your visitors.

With Liferay Forms it's really easy to start collecting all this information and since it's all stored in Elasticsearch you can use Kibana to create dashboards, drill down and find patterns. Don't forget to think about GDPR compliance and how you protect this data. In case you need to increase security you should consider Liferay Enterprise Search to lock down the communication between Liferay and Elasticsearch.

Jan Verweij 2018-12-14T10:24:00Z
Categories: CMS, ECM

The eight essential traits of self-service machine learning

SnapLogic - Thu, 12/13/2018 - 13:03

Self-service processes and software do away with needless complexity in professional environments. They take what is slow and complicated and make it fast and simple. In self-service contexts, more people solve problems themselves rather than rely on others. Productivity rises and greater business value is created. Currently, the machine learning (ML) lifecycle – the building,[...] Read the full article here. The post The eight essential traits of self-service machine learning appeared first on SnapLogic.

Categories: ETL
Syndicate content