In Case You Missed It – Issue 26

In Case You Missed It Featured Image
photo credit: Night Moves(license)

There’s a lot of great WordPress content published in the community but not all of it is featured on the Tavern. This post is an assortment of items related to WordPress that caught my eye but didn’t make it into a full post.

Birgit Olzem Could Use the Community’s Help

Birgit Olzem has encountered some financial hard times due to multiple illnesses and paying for acupuncture treatments and osteopathic therapy which are not covered by her insurance. Olzem fell ill earlier this year which prevented her from generating income as a self-employed person.

Olzem has translated WordPress, compiled release packages for de_DE, organized Meetups, WordCamps, answered support questions and has been part of different make/WordPress teams, some of them as a team-rep. She’s also contributed to WordCamps as a Speaker, Volunteer and Contributor day team-lead.

To learn more about her story and to donate, please read her request to the community.

Liam Dempsey’s Take on Gutenberg

Liam Dempsey describes what he likes and doesn’t like about the new WordPress editor.

Defending the Right to Publish Open Source Software in the UK

The EFF and Open Rights Group have submitted comments to the UK government defending the right to publish open source software.

Moreover, source code is a form of written creative expression, and open source code is a form of public discourse. Regulating its publication under anti-money-laundering provisions fails to honor the free expression rights of software creators in the United Kingdom, and their collaborators and users in the rest of the world.

Why Is It Important to Give Back to Open Source?

JC Mae Palmes on Twitter asked, why is it important to give back to the WordPress community? Here are a few responses. To see all of the responses, check out this Twitter thread

WordCamp US Speaker Selection Process

If you’re wondering how speakers are being selected for WordCamp US this year, check out this post by the Programming Team. The team is using a new process that includes, limiting the number of submissions per speaker to two instead of unlimited, reviewing submissions based on the organizer’s sphere of experience, and using blind reviews. Speakers who are chosen are scheduled to be notified by the end of this month.

An Easy Way to Make an Impact in The WordPress Community

David Bisset shared the following idea on Twitter and while a few companies have started doing this, I think it will catch on with individuals more than businesses.

That’s it for issue twenty-six. If you recently discovered a cool resource or post related to WordPress, please share it with us in the comments.

Top 10 Video APIs

Video is as much a part of the Internet as text is these days, and there are plenty of tools for programmers to use to tap into it.

Sorting ArrayList with a comparator, how to

Hi guys, I was trying to sort an arrayList using a comparator but I didn't have much luck, or at least it seems like there is something slightly wrong with it.
I have these objects in the arrayList

employeeCollection.add(new Employee("Dan", 112));
employeeCollection.add(new Employee("Tim", 2));
employeeCollection.add(new Employee("Rick", 11));
employeeCollection.add(new Employee("Jack", 19));
employeeCollection.add(new Employee("Sid", 1));

and before sorting I have this

Name: Dan: 
ID number: 112:
Name: Tim: 
ID number: 2:
Name: Rick: 
ID number: 11:
Name: Jack: 
ID number: 19:
Name: Sid: 
ID number: 1:

and after sorting I have this:

Name: Dan: 
ID number: 112:
Name: Jack: 
ID number: 19:
Name: Rick: 
ID number: 11:
Name: Sid: 
ID number: 1:
Name: Tim: 
ID number: 2:

so it didn't go that well. Here is the code I've used, and the questions are:
-why isn't this sorted properly?
-what would I need to do to sort it in ascending order

/*
 * This tests Array list of employees*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class TestCollections {
    private static List<Employee> employeeCollection = new ArrayList<Employee>();

    public static void main(String[] args) {
        createEmployees();

    }

    private static void createEmployees() {
//      for(int i = 0; i < 10; i++) {
//          Employee employee = new Employee("Jo_" + i, i);
//          employeeCollection.add(employee);
//      }
        employeeCollection.add(new Employee("Dan", 112));
        employeeCollection.add(new Employee("Tim", 2));
        employeeCollection.add(new Employee("Rick", 11));
        employeeCollection.add(new Employee("Jack", 19));
        employeeCollection.add(new Employee("Sid", 1));

        printEmployees();

        //Collections.sort(employeeCollection);
        // Sorting
        Collections.sort(employeeCollection, new Comparator<Employee>() {
            @Override
            public int compare(Employee employee, Employee employee1)
            {

                return  employee.getName().compareTo(employee1.getName());
            }
        });

        printEmployees();
    }

    private static void printEmployees() {
        employeeCollection.forEach(listItem -> System.out.println(listItem));

    }

}

and the Employee class

public class Employee {

    private String name;
    private int idNumber;

    public Employee(String name, int idNumber) {    
        this.name = name;
        this.idNumber = idNumber;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getIdNumber() {
        return idNumber;
    }
    public void setIdNumber(int idNumber) {
        this.idNumber = idNumber;
    }

    @Override
    public String toString() {
        return String.format("%s: %s: \n%s: %d:", "Name", getName(), "ID number", getIdNumber());
    }

    // Overriding the compareTo method
   public int compareTo(Employee employee) {
      return (this.name).compareTo(employee.name);
   }

   // Overriding the compare method to sort the age 
   public int compare(Employee employee, Employee employee1) {
      return employee.idNumber - employee1.idNumber;
   }
}

Relationships at Work Are Everything

Even at work, it's all about who you connect with.

Malcolm Gladwell famously shed light on the role of 'connectors' in his best selling book The Tipping Point. He regarded connectors as, obviously, people who know a lot of people, but more importantly, people who can connect different worlds and spot things in one world that can be applied in another.

Or as Gladwell himself said, "connectors are people who link us up with the world. People with a special gift for bringing the world together."

Building a Chatbot With Couchbase, Amazon Lex, and Node.js

It is no question that the future is going to be automated. We have automated self-driving vehicles, voice assistants, call center and text-based bots, and so much more. However, what does it take to bring automation to your business?

The short answer is that it doesn't take much more than building standard applications if you're using the right tools.

Using AI to Predict Breast Cancer Five Years Out

One of the most common applications of AI in healthcare has been in analyzing medical images to provide earlier diagnoses of various conditions. The latest project of this kind has recently emerged from MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL), who have developed a deep learning model that can predict the likelihood of breast cancer up to five years into the future.

The system was trained using mammograms from over 60,000 patients for whom the outcome was known. The idea was to train the system so that it could spot the subtle patterns in breast tissue that ultimately lead to tumors emerging.

On Types and Transactions

Transactions in any database are intimidating. It requires a level of understanding beyond just what is stored, but also when it is stored. Unlike the happy world that results when countless layers of abstraction can shield you from complexity, transactions require you to go deeper. Redis is not unusual in this regard. In fact, its entirely different way of thinking about transactions causes a lot of people to say it doesn't have transactions at all. Redis has them, just with an approach that's totally different from the rollbacks you've probably grown up with.

To view transactions at 10,000 ft, you have to understand a few things about Redis. One is that it is single-threaded (well, with a list of exceptions that is perhaps continuing to grow). This means that if it's doing something, that's all it's doing. Of course with Redis, "doing something" is best measured in milli- or nano-seconds. Second, keep in mind that Redis has tunable durability, with some options providing very good durability and some that are totally ephemeral. This obviously has an effect on transactions. Third, it lacks rollbacks but can fail a transaction if a key changes before it starts. This inverted way of controlling transactions lets you pull data back to the client, and evaluate it logically to ensure that the data did not change before the transaction started.

Should a Graph Database Be in Your Next Data Warehouse Stack? [Slideshare]

In our webinar "Should a Graph Database Be in Your Next Data Warehouse Stack?" AnzoGraph's graph database guru Barry Zane and data governance author Steve Sarsfield explore the trend of companies considering multiple analytical engines. First, they talk about how graph databases fit into the data warehouse modernization trend. Then, they explore how certain workloads can be better served with an analytical graph database and wrap up with some insightful Q&A.

Here are the slides from their webinar.

When Scaling Agile Is Not the Answer

Scaling may seem like the obvious choice, but when it comes to Agile, not so fast.

At the Influential Agile Leader workshop earlier this year, I led a session about scaling, and how it might not be the answer. My experience is that when people use frameworks for larger efforts, they experience these unexpected side effects:

  • The framework actions often require more manager-type people to control the actions of others.
  • The framework creates less throughput, not more.
Agile Scaling Frameworks: An Executive Summary

One of the participants asked, "But what if we have to scale?"

Five Dimensions of Scaling Agile in Large Enterprises

Most of the big and small companies are on the Agile transformation journey to bring products and services to customers in the shortest possible time, while trying not lose out to their competitors. While a few years back the challenge was to make enterprises buy the idea of Scrum and Agile through implementation examples, now the major challenge is to apply scrum to larger teams.

In this webinar, we first introduce you to the practical manner in which agile at scale can be achieved, and then about how to achieve true agility and meaningful results in a shorter time. We will also walk you through the five dimensions namely, Teams, Requirements, Timebox, DevOps and Quality that every enterprise, irrespective of its size should consider while scaling agile.

RPA Automation Anywhere: A Beginner’s Guide

RPA Automation Anywhere

Automation has been in existence since the 1920s, but it has only gained popularity in the early 1990s. As the word automation suggests, this software provides assistance to various kinds of daily tasks such as Data Entry, Invoice Processing, etc. To perform such tasks, we need robotic process automation. Robotic Process Automation (RPA) is a new age technology that helps you perform tedious tasks with ease. Automation Anywhere is one of the leaders in the RPA market, and in this article, you will learn all the concepts of the popular RPA tool, Automation Anywhere, and learn how it can be used for automation.

Introduction to Robotic Process Automation

Consider an instance where an employee’s sole job is just entering details on a server daily basis at a specific time of a day. Now, do you think the employee should do this manually or try to just automate this task?

Static Data and Database Builds

Whichever way you wish to ensure that a database, when built, has all the data that will enable it to function properly, there are reasonably simple ways of doing it. Phil Factor explains the alternatives.

Often, we can't build a fully functional SQL Server database just from the DDL code. Most databases also require what is often referred to as 'static' or 'reference' data, which will include such things as error messages, names of geographical locations, currency names, or tax information. This data must be in place before the database can be used in any effective way. The static data needs to be in source control because, like the code, if it changes, you need to know why and when.

Great Leadership Is All About (Their Own) Time Management

How are you spending your time as a leader? (And how's that working out for you?)

I keep hearing leaders say they're struggling to manage their organizations through change. They've had trouble getting their organization to adopt Agile. They're finding it challenging to find the right talent. They're struggling to establish the right level of transparency.

These are symptoms of the people in the organization not managing their time effectively.

JavaLand 2019 Retrospective

In this article, I talk about my impressions from the JavaLand 2019 conference. This was my second time at the international conference, which, this year, took place in the theme park "Phantasialand" in Bruehl, near Cologne, Germany, from March 18th-20th.

Additionally, you can download the presentations here, as well as lecture recordings here.

Under the Hood of .NET-Based Lambda Function Parameters

This article assumes you have the relevant knowledge to set up and deploy a .NET-based lambda function. You can follow the instruction in this blog if you need some background. Now, let’s review some underlying features of this service so that you can produce more of it in the deployment phase and while it’s up in the air.

Before We Begin

Before diving into the deep water, to produce a benefit from this blog post, you should be familiar with Lambda function concepts and have AWS Explorer installed in your Visual Studio instance. Furthermore, you’d better obtain .NET Core version 2.1.3 or above.

Waking Up the World of Big Data

The term "Big Data" has lost its relevance. The fact remains, though: every dataset is becoming a big data set, whether its owners and users know (and understand) that or not. Big data isn't just something that happens to other people or giant companies like Google and Amazon. It's happening, right now, to companies like yours.

Recently, at Eureka!, our annual client conference, I presented on the evolution of Big Data technologies including the different approaches that support the complex and vast amount of data organizations are now dealing with. In this post, I'll break down some of my presentation and dig into the current state of Big Data, the trends driving its evolution, and one major shift that'll deliver up massive value for companies in the next wave of Big Data's growth.

How to Transform an Air Traffic API to GeoJSON to Render on a Map

There are many services and APIs that provide valuable data to use in an application. Unfortunately, that data isn't always the complete dataset we need or it may have structural differences that reduce its utility. This project demonstrates how to retrieve data from an API for global flight tracking and then transform it into GeoJSON to store in HERE's XYZ Geospatial Storage API and then render it as a 3D map with Three.js.

Data Streaming in OSGi R7 applications With OSGi R7 Push Stream and Server Sent Events

Providing users of your application with feedback regarding long running operations used to require utilizing pull based solutions such as polling. In modern web applications, however, utilizing push based data streaming solutions to provide such feedback is the norm. But what options do we have if we’re building modern cloud native OSGi applications and we wish to implement such monitoring solutions?

In this article, I will show you how implementations of some of the latest OSGi specifications — i.e. OSGI R7 Push Stream, OSGi R7 HTTP Whiteboard, and OSGi R7 JAX-RS Whiteboard  can be applied, along with Server Sent Events, to implement such push based data streaming solutions. So, instead of having a background JavaScript worker slamming the server with requests for status every few seconds, we’ll have the server push data updates and have them displayed onto our GUI.