• Home

  • Custom Ecommerce
  • Application Development
  • Database Consulting
  • Cloud Hosting
  • Systems Integration
  • Legacy Business Systems
  • Security & Compliance
  • GIS

  • Expertise

  • About Us
  • Our Team
  • Clients
  • Blog
  • Careers

  • VisionPort

  • Contact
  • Our Blog

    Ongoing observations by End Point Dev people

    Quartz Scheduler as a Service

    Kürşat Kutlu Aydemir

    By Kürşat Kutlu Aydemir
    April 18, 2022

    Close-up view of mechanical watch with roman numerals and day of month and month pointers

    Photo by Mat Brown from Pexels

    Quartz Job Scheduler

    “Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application — from the smallest stand-alone application to the largest e-commerce system.” (Quartz Scheduler overview)

    Besides its advanced features, most basic and frequently used feature is job scheduling and job execution. Some frameworks like Spring Scheduler have their integration practice using Quartz Scheduler which allows using its default scheduling method.

    In this post I am going to tell you a different approach to show how we can use Quartz Scheduler to schedule our jobs. We actually still will be using the existing scheduling mechanism of Quartz but we’re going to show how we can manage the scheduled and unscheduled jobs online. This way you can manage all the available jobs or create new ones on the fly.

    Quartz Scheduler as a Service

    Previously I led development of an enterprise “Business Service Management” software to replace IBM’s TBSM product at a major telco company in Turkey. This was a challenging project and found a solid place in the customer environment after …


    java development automation

    Job opening: VisionPort support engineer (western U.S.)

    Alejandro Ramon

    By Alejandro Ramon
    April 14, 2022

    This position has been filled. See our active job listings here.

    VisionPort cabinet with 7 HDTV screens in portrait orientation

    We are looking for an engineer to join the End Point Immersive and Geospatial Support (I+G) Team—​a small, multidisciplinary team that supports our company’s clients with their VisionPort systems incorporating Liquid Galaxy technology. VisionPort hardware consists of large-panel HD TVs within a curved panoramic environment, supported by a server stack with power, video, audio, and network connections and equipment.

    The candidate will be based out of a home office in the western United States (Washington, Oregon, California, Idaho, Utah, Nevada, Arizona, Montana, Wyoming, New Mexico, and Texas). The engineer will be asked to travel to, perform, and supervise system installations, in addition to day-to-day remote support work from a home office.

    Occasional evenings and weekend on-call shifts are shared amongst the team.

    This is a great entry-level opportunity for people already familiar with light audiovisual, server room, and/or installation handiwork to get experience with all aspects of production computer systems and their deployment. More experienced individuals will have the opportunity to work directly in feature development on production systems and possibly assist with …


    jobs-closed visionport

    On Shapefiles and PostGIS

    Josh Tolley

    By Josh Tolley
    April 2, 2022

    Partial map of the voyage of the Endurance, from the book “South”, Ernest H. Shackleton Partial map of the voyage of the Endurance, from “South”, by Ernest Shackleton

    The shapefile format is commonly used in geospatial vector data interchange, but as it’s managed by a commercial entity, Esri, and as GIS is a fairly specialized field, and perhaps because the format specification is only “mostly open”, these files can sometimes be confusing to the newcomer. Perhaps these notes can help clarify things.

    Though the name “shapefile” would suggest a single file in filesystem parlance, a shapefile requires at least three different files, including filename extensions .shp, .shx, and .dbf, stored in the same directory, and the term “shapefile” often refers to that directory, or to an archive such as a zipfile or tarball containing that directory.

    QGIS

    QGIS is an open-source package to create, view, and process GIS data. One good first step with any shapefile, or indeed any GIS data, is often to take a look at it. Simply tell QGIS to open the shapefile directory. It may help to add other layers, such as one of the world map layers QGIS provides by default, to see the shapefile data in context.

    GDAL

    Though QGIS can convert …


    tips open-source tools gis maps postgres

    Extending Your Jetty Distribution’s Capabilities

    Kürşat Kutlu Aydemir

    By Kürşat Kutlu Aydemir
    March 31, 2022

    Jetty Logo

    What is Jetty?

    “Jetty is a lightweight highly scalable Java-based web server and servlet engine.” (Jetty Project)

    Jetty can run standalone or embedded in a Java application and the details about running a Jetty webserver can be found in the Jetty Project Git repository and documentation as well. The Jetty project has been hosted at the Eclipse Foundation since 2009 (Jetty, Eclipse).

    Know Your Jetty

    In many legacy environments using the Jetty web server there may be an older version of Jetty. If you know the version of the Jetty distribution in your environment then you can find its source code in the Jetty project GitHub repo. Some of the distributions are in project releases but most of the distributions can be found in the tags as well.

    For instance jetty-9.4.15.v20190215 distribution can be found in the Jetty project tags at this URL: https://github.com/eclipse/jetty.project/releases/tag/jetty-9.4.15.v20190215

    When you clone the jetty.project Git repo, you can then easily switch to any specific release tag:

    $ git clone git@github.com:eclipse/jetty.project.git
    $ git checkout jetty-9.4.15.v20190215
    

    Then you can build or add your custom code in that version.

    Extending …


    java jetty development

    Working around SPF problems delivering to Gmail

    Jon Jensen

    By Jon Jensen
    March 30, 2022

    Hand-drawn signs reading “Someplace”, “Any pla…”, “No place”, with arrows pointing variously, attached to a leaning signpost in front of a high mountain desert scene with snow-topped peaks and sagebrush Photo by Garrett Skinner

    Email deliverability

    Legitimate email delivery keeps getting harder. Spammers and phishers never stop flooding everyone’s inboxes with unwanted and harmful email, so automated defenses against junk mail are necessary. But they are not perfect, and good email sometimes gets flagged as spam.

    When sending important “transactional” email such as for account confirmations, password resets, and ecommerce receipts, it is often worth using a paid email delivery service to increase deliverability. Those typically cost a flat amount per month for up to a certain quota of outgoing email, with overage charges for messages beyond that.

    Many of our clients use one of those services and generally they have all worked well and differ mostly in pricing and feature set. Popular choices include SendGrid, Mandrill, Postmark, Mailgun, and Amazon SES.

    We continue to have many cases where we want to be able to send potentially large amounts of automated email to ourselves, our clients, or our systems. This is usually for testing, notifications, or internal delivery to special mailboxes separate from our main mailboxes.

    These other uses for sending email keep us …


    email sysadmin hosting

    Code Reviews

    Kevin Campusano

    By Kevin Campusano
    March 21, 2022

    Winter scene with pine trees behind snow on tall grasses around a winding stream crossed by a primitive bridge of 8 logs, below blue sky with white clouds

    Last week, a few End Point team members and I came together to prepare a presentation on code reviews for the whole company. We went through the basics of “what”, “why”, and “how”.

    We also, and perhaps most interestingly, made several recommendations that we’ve discovered after years of doing code reviews in a variety of teams and project sizes. A series of “lessons learned” so to speak.

    I thought it’d be useful to capture that discussion in written form. Let’s start with the basics.

    What is a code review?

    Wikipedia’s article on code reviews says that a code review is…

    A software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code, and they do so after implementation or as an interruption of implementation.

    That is a precise but frankly wordy way to say “having somebody look at the code you’ve written”. This definition, however, touches on a few aspects that give us good insight into what code reviews are and what their purpose is.

    First up, it tells us that code reviews are a software quality assurance …


    development culture

    Using pgTAP to automate database testing

    Josh Tolley

    By Josh Tolley
    March 16, 2022

    Old piano outdoors, focused on keyboard with most keytops missing and some snow on it Photo from PxHere

    Recently I started learning to tune pianos. There are many techniques and variations, but the traditional method, and the one apparently most accepted by ardent piano tuning purists, involves tuning one note to a reference, tuning several other notes in relation to the first, and testing the results by listening closely to different combinations of notes.

    The tuner adjusts each new note in relation to several previously tuned notes. Physics being what it is, no piano can play all its tones perfectly, and one of the tricks of it all is adjusting each note to minimize audible imperfections. The tuner achieves this with an exacting series of musical intervals tested against each other.

    Databases need tests too

    One of our customers needed to add security policies to their PostgreSQL database, to limit data visibility for certain new users. This can quickly become complicated and ticklish, ensuring that the rules work properly for the affected users while leaving other users unmolested.

    This struck me as an excellent opportunity to create some unit tests, not that there’s any short supply of good opportunities to add unit tests! This is not just because it helps …


    sql postgres database testing security

    Automating reading the screen and interacting with GUI programs on X Window System

    Metal tower with cables in front of overcast sky and muted sun

    A while back, Google Earth made some changes to the layer select menu in the sidebar, which broke a program that toggles the 3D imagery on VisionPort systems. These run the X Window System (also known as X11, or just X) on Ubuntu Linux.

    In looking for a workaround, I found that shell scripts can fully interact with GUI apps using the xdotool, xwd, and convert commands. This script would send a series of keystrokes to open the sidebar, navigate the layers menu, and toggle the box for the 3D buildings layer.

    Changing the series of keystrokes to match the new number of layers should have fixed the issue, but there was more to this script. The next part of the script would take a screenshot, crop the checkbox, and compare it to saved files of other cropped boxes. Fixing this part of the script required correcting the positions of the captures and replacing the reference files with ones that pictured the updated Google Earth checkbox states.

    Here I will explain how the script works and how we changed it so that it no longer needs these reference files and ultimately runs faster.

    Overview of how the script works

    xwd takes a screenshot of a window on the screen. convert transforms the …


    development testing automation graphics
    Previous page • Page 16 of 218 • Next page