Our Blog

Ongoing observations by End Point people

Advanced WordPress customizations

Juan pablo ventoso

By Juan Pablo Ventoso
November 27, 2020

WordPress

Photo by Chris Harrison on Flickr, CC BY 2.0, cropped

WordPress is the most popular CMS, allowing you to create a professional-looking website at a relatively low cost. It also has a really strong community behind it, creating great content and supporting developers across the world.

But being popular also means being the main target of hacker attacks, and that’s why it’s crucial to keep the CMS, the theme, and all the plugins updated. When the requirements go beyond what WordPress offers on the surface, we need to find an efficient way to add our custom logic into the CMS without interfering with version upgrades, keeping the focus on security.

Custom CSS and JavaScript

A pretty common scenario in WordPress consists of installing a theme that fits most of our requirements and writing an extra layer of functionality over it to get that custom look and user experience we are looking for. Updating the theme files means that we cannot easily upgrade or change the theme without backing up our changes, and then restoring them after the upgrade, so that’s definitely not a good approach.

To make our way around this issue, some themes offer a section to add custom JavaScript or CSS rules. But sometimes we need change themes in the middle of our developing process, so I usually rely on plugins to make my frontend changes. One simple, straightforward plugin I usually install to add custom styles and frontend scripts is Simple Custom CSS and JS.

Simple Custom CSS and JS

It has several customization options I usually need for SEO purposes, including the possibility to create several independent code segments and load each one in a different section (header/​footer) to improve loading speed. We can also include our custom content as embedded source/​styles or as external references. It also includes an editor with syntax highlighting, and allows adding custom content to the WordPress admin section.

Custom PHP code

Another thing I usually need when customizing a WordPress website is the ability...


wordpress php cms

Demonstrating the HotSwap JVM

By Joshua Tolley
November 25, 2020

zebras

Photo by Neil and Zulma Scott

For a recent Java development project I spent a while setting up an environment to take advantage of the HotSwap JVM, a Java virtual machine that automatically reloads classes when they change. This feature can potentially eliminate the need to redeploy each time code changes, reducing development cycle time considerably. While setting up the environment, I found I wanted a simple example of hot swapping available for my own experimentation, and I thought I’d share that example here.

First, let’s create a simple Java program. It needs to be slightly more complex than the ubiquitous “Hello, World!” application, because we need it to keep running for a while; if it just prints some message and exits immediately, we won’t have time to compile new code and see the hot swap feature in action. Here’s an example that uses a simple infinite loop, wherein it sleeps for one second, prints a message, and then repeats.

import java.lang.Thread;

public class HotSwapTest {
  public static void main(String[] args) {
    while (true) {
      try {
        System.out.println("Hi");
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        // Ignore this
      }
    }
  }
}
~

If I build this into build/​classes/​java/​main and run it, as expected it prints out “Hi” every second:

josh@igtre:~/hotswaptest$ java -cp build/classes/java/main/ HotSwapTest
Hi
Hi
Hi
...

The usual JVM doesn’t include the HotSwap feature. For my purposes I downloaded DCEVM, an alternative JVM which includes HotSwap. It’s also possible to patch some existing JVMs to add HotSwap, if you’d prefer. When I run the same code with DCEVM, it runs the code just like it did with the normal JVM, with additional debugging output:

Starting HotswapAgent '/home/josh/hotswaptest/dcevm/lib/hotswap/hotswap-agent.jar'
HOTSWAP AGENT: 15:01:23.423 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.4.1} - unlimited runtime class redefinition.
HOTSWAP AGENT...

development java tools programming

Availity: An API for Health Insurance

Patrick lewis

By Patrick Lewis
November 16, 2020

Stethoscope Photo by Sergio Santos, used under CC BY 2.0, cropped from original.

I have been working on a tele-therapy application for a client in the health care industry over the past few months and had the opportunity to do some interesting work in the area of health insurance coverages and claims.

I was tasked with creating an integration of the Availity API for insurance coverages which provides the ability to make requests for details about a patient’s health insurance coverage and returns responses containing information like the patient’s primary care doctor, their copay amounts, and their deductibles.

The ability to query this health insurance information from an API in an automated fashion helps streamline the process of billing clients by validating their health insurance details and also determining what a patient’s financial responsibility will be for their online therapy sessions. Availity provides information for over 11,000 insurance companies; a full list of supported payers is available on their site via a web interface and a downloadable CSV file.

Availity provides both REST and SOAP APIs in addition to a batch processing system that functions over SFTP. For the purposes of this article I will be focusing on the REST API which was the primary focus of my work for this project.

The developer documentation for the REST API was mostly self-serve; after signing up for an account on the Availity site I was able to rely on their publicly available documentation for all of the API details that I needed to start making requests.

Unfortunately, the development process for integrating the SOAP API was not nearly as smooth; the SOAP APIs link on Availity’s main developer portal page currently comes up blank, and I had to register a separate account in order to create a support request to obtain documentation on the SOAP API. Even with that documentation in hand, I found it difficult to determine things like the correct WSDL to use, and the process for generating...


ruby rails

Job opening: Java & JavaScript developer

Jon jensen

By Jon Jensen
November 13, 2020

Person on boulder overlooking valley with lake

We are seeking a full-time Java software engineer to work with us on our clients’ applications.

End Point is an Internet technology consulting company based in New York City, with 50 employees serving many clients ranging from small family businesses to large corporations. The company turned 25 years old this year!

Even before the pandemic most of us worked remotely from home offices. We collaborate using SSH, Git, project tracking tools, Zulip chat, video conferencing, and of course email and phones.

What you will be doing:

  • Develop new web applications and support existing ones for our clients
  • Work together with End Point co-workers and our clients’ in-house staff
  • Use your desktop OS of choice: Linux, macOS, Windows
  • Use open source tools and contribute back as opportunity arises

What you bring:

Professional experience developing and supporting web applications in these technical areas:

  • 3+ years of development with Java and front-end JavaScript
  • Frameworks and libraries such as Wildfly, Hibernate, Spring, Struts, Play, and Vue.js, React, Angular
  • Databases such as PostgreSQL, MySQL, Redis, Solr, Elasticsearch, etc.
  • Security consciousness
  • Git version control
  • Automated testing
  • HTTP, REST APIs
  • Bonus for familiarity with other ecosystems such as Ruby on Rails, PHP, Python/​Django, .NET/​C#, Node.js, Go, Rust, Scala, Kotlin, Swift …

These work traits are just as important:

  • Strong verbal and written communication skills
  • An eye for detail
  • Tenacity in solving problems and focusing on customer needs
  • A feeling of ownership of your projects
  • Work both independently and as part of a team
  • Ability to pass a criminal background check when clients require
  • A good remote work environment

What work here offers:

  • Collaborate with knowledgeable, friendly, helpful, and diligent co-workers around the world
  • Flexible, sane work hours
  • Paid holidays and vacation
  • Annual bonus opportunity
  • Freedom from being tied to an office location
  • For U.S. employees: health insurance subsidy...

company jobs java javascript remote-work

Job opening: PostgreSQL database administrator & developer

Jon jensen

By Jon Jensen
November 13, 2020

rows of barrels Photo by manhhai, cropped & filtered, CC BY 2.0

(This position has been filled.)

We are seeking a full-time PostgreSQL database administrator and developer to support and consult with our clients. For this role we prefer those living in the Western Hemisphere.

End Point is an Internet technology consulting company based in New York City, with 50 employees serving many clients ranging from small family businesses to large corporations. The company turned 25 years old this year!

Even before the pandemic most of us worked remotely from home offices. We collaborate using SSH, Git, project tracking tools, Zulip chat, video conferencing, and of course email and phones.

What you bring:

5+ years of hands-on professional experience and technical expertise with:

  • Database design and systems architecture
  • Advanced SQL and query optimization
  • Programming for web applications, stored procedures, and scripting, in Ruby, Java, Python, PHP, Perl, JavaScript, C#, Go, PL/pgSQL, bash, etc.
  • Performance tuning, scalability, connection pooling
  • Cloud database hosting services, especially at AWS, Google Cloud, and Azure
  • Security and encryption
  • Replication, PITR, backup, monitoring, and relevant tools
  • HA, failover, and disaster recovery
  • Database upgrades and migrations
  • Programming language interfaces to the database
  • Linux system administration and observation
  • DevOps and “configuration as code”
  • Troubleshooting problems and handling emergencies
  • Other databases such as MySQL, MongoDB, Oracle, SQL Server, Redis, Solr, Elasticsearch, etc.
  • Git version control
  • Bonus for familiarity with running PostgreSQL on Windows, and with the Bucardo replication system

These work traits are just as important:

  • Strong verbal and written communication skills
  • An eye for detail
  • Tenacity in solving problems and focusing on customer needs
  • A feeling of ownership of your projects
  • Work both independently and as part of a team
  • Ability to pass a criminal background check or get a security clearance when clients...

company jobs postgres database remote-work

Rapid Test-Driven Development in Julia

Kamil ciemniewski

By Kamil Ciemniewski
November 9, 2020

Automation

The Julia programming language has been rising in the ranks among the science-oriented programming languages lately. It has proven to be revolutionary in many ways. I’ve been watching its development for years now. It’s one of the most innovative of all the modern programming languages.

Julia’s design seems to be driven by two goals: to appeal to the scientific community and to achieve the best performance possible. This is an attempt to solve the “two languages problem” where data analysis and model building is performed using a slower interpreted language (like R or Python) while performance-critical parts are written in a faster language like C or C++.

The type-system is what allows Julia to meet its goals. The mix of strong and dynamic typing enables Python-like productivity with C++ or Rust-like performance. Julia is not an interpreted language. It compiles its code to native binary just like C, C++, Go, or Rust. The compilation and execution, though, are what sets it 1000 feet apart from all those other languages.

Here’s a simplified, brief outline of the steps in Julia’s code execution model:

  1. Julia process starts up.
  2. Code is parsed.
  3. For each code chunk:
    • If it hasn’t yet been compiled, decide whether to interpret or JIT compile it and then execute:
      • If compile then infer the types and use LLVM to produce native code.
      • Execute the newly-created native code.
    • If it has been compiled, execute it.
  4. Repeat until the program ends or the user closes the REPL.

It’s quite apparent that the compilation and type inference happen at a very different time compared to other compiled languages. Using Rust, you compile your code just once. Execution isn’t taxed by consecutive recompilation.

The result is quite a big negative surprise to Julia’s newcomers. Each time you run your app, there’s a significant slowdown before you see anything. It’s called the “time to first plot” issue. This is because, for example, a data scientist may want to generate some plots during...


julia automation development testing

.NET 5 will be released at .NET Conf 2020

Juan pablo ventoso

By Juan Pablo Ventoso
November 4, 2020

.NET 5 Platform

.NET — A unified platform by Microsoft

Last year, at .NET Conf 2019, Microsoft announced that the new .NET 5 will have a base class library that will allow creation of any type of application for any platform — Windows, Linux, Android, iOS, and IoT. And that’s finally about to happen: .NET 5 will be launched at .NET Conf 2020, starting November 10th!

According to Microsoft, .NET 5 will take the best of .NET Core, .NET Framework, Xamarin, and Mono and merge them into one framework, offering the same experience for all developers, regardless of the type of application or platform targeted. It will also include two different compiler models: just-in-time (JIT, prepared for client-server and desktop apps) and static compilation with ahead-of-time (AOT, optimized to decrease startup times, ideal for mobile and IoT devices).

Some of the key features will be:

Windows Desktop development (WPF/​Windows Forms/​UWP)

This was already a part of the current .NET Core 3 release, and it will stay while getting some updates like a Chromium-based WebView control, improvements to the visual designer, and customizable task dialogs. It will also include all the latest features of C# 8.

Full-stack web development (C#/​Blazor)

This feature is also present on the current .NET Core 3 version, and will be updated for this release. With Blazor, we can write full-stack web applications only using C#, removing the need to use a separate language for the frontend. While it’s still a discussed feature, the advantage of using it will depend on the type of web application we’re working on. But it’s there and it will be fully supported on .NET 5.

C# 8

This version tries to reduce the well-known (by all of us!) null reference exceptions as a source of program failures by introducing a nullability modifier for nullable reference types. Other main improvements include asynchronous streams, default interface methods and pattern matching enhancements. A full reference of all the new features...


dotnet windows microsoft

Craft: A CMS for developers

Kevin campusano

By Kevin Campusano
October 31, 2020

Craft CMS banner

As a software engineer, I thrive and thoroughly enjoy working on fully custom software products, applications conceived to model and help in the execution of some business process and that are built from the ground up by a team of developers.

Such projects are often complex and expensive, though, and for some clients, they can be overkill. Some clients come up with requirements that are better served by off-the-shelf software solutions. One group of such solutions are content management systems (CMS). As a rule of thumb, if a client wants a website whose main purpose is to showcase some content, their brand or image, and custom business logic requirements are limited, then chances are that a CMS will fit the bill nicely.

Lately we’ve been using the Craft CMS for a client that meets the aforementioned criteria, and I gotta say, I’ve been pleasantly surprised by the developer experience it offers.

Unlike most of the technology and products we discuss in our blog, Craft CMS is not Open Source or Free Software. The source code is readily available in GitHub for anybody to use, study, and modify, but commercial use of it is restricted and certain features are exclusive to a so-called “Pro” edition. Learn more by reading their license and their pricing structure.

The features that we will discuss in this article are all part of the no-charge “Solo” edition of Craft CMS 3 that can be used for noncommercial websites.

In this article I’m going to talk through a few of the key aspects of Craft that make me think that it’s really a CMS made for developers. Let’s get started:

Craft is easy to get up and running

Craft is just a PHP application. And it is as typical as modern PHP applications go, capable of being initially set up with Composer and of running on top of a MySQL database (it also supports Postgres!) and the Apache web server. It can all be done via console too, if that’s how you roll.

If you already have a box with Apache, PHP, MySQL and Composer, it all...


cms php docker
Previous page • Page 2 of 192 • Next page

Popular Tags


Archive


Search our blog