• 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

    University of Denver and VisionPort: The Classroom of the 21st Century

    Samuel Stern

    By Samuel Stern
    October 18, 2022

    The DU VisionPort: Seven vertically-oriented TVs arranged side-by-side in a curved wooden cabinet, with a raised wooden stage in front.

    VisionPort’s recent installation at the University of Denver is transforming education and has even found itself featured in Forbes.

    Installed in the Marion J. Crean Collaboratory room, VisionPort is doing what it does best: engaging audiences and bringing ideas to life.

    The Collaboratory room gets its name from its mission, to be a collaborative laboratory, specifically for DU’s real estate and construction management students.

    VisionPort was designed with geographic information systems (GIS) in mind, and the content management system we built from the ground up allows experts and novices alike to explore real estate and construction opportunities. From flying around undeveloped land, to exploring cityscapes in three dimensions, the VisionPort is the best platform for presenting GIS data.

    “What [the VisionPort] is going to give us is the opportunity to sit in class, and literally, be able to fly to any property, anywhere in the world, and walk that property, see that property.” —Dr. Barbara Jackson

    Seven displays spanning 18 feet, installed in a custom case on top of a beautiful wood stage, the Collaboratory’s design is one of the most unique and intriguing yet.

    A close-up of the DU visionport. Two speakers are visible in the front of the cabinet. The seven displays show University of Denver’s campus with 3D models in Google Earth.

    The world is …


    visionport clients

    Upgrading PostgreSQL 14 to 15 on Fedora, RHEL, CentOS, Rocky, Alma Linux with PGDG RPM packages

    Jon Jensen

    By Jon Jensen
    October 14, 2022

    White-haired Labrador dog sitting in mountain field with boulders, and mountain rock wall behind

    PostgreSQL 15 changes

    Yesterday PostgreSQL 15 was released! It includes a number of headline features since version 14 that make it worth upgrading your databases running earlier versions of PostgreSQL:

    • Improved sort performance
    • In-memory statistics collection (removing the statistics collector process)
    • SQL-standard MERGE syntax that can include INSERT, UPDATE, and DELETE actions in a single statement
    • Logical replication publisher options to include all tables in a schema (including those added in the future), row filtering and column lists, and simplified conflict management
    • JSON format log output (to files only, not syslog)
    • Optional LZ4 and Zstandard compression for WAL (write-ahead log) files, especially useful for those not using btrfs or zfs filesystem built-in compression
    • New regular expression functions regexp_count, regexp_instr, regexp_like, and regexp_substr
    • And many other performance improvements and feature enhancements

    Thanks to the PostgreSQL developers for the continuing amazing work!

    Prerequisites for upgrading

    This article shows how to upgrade to PostgreSQL 15 if you:

    • are running one of the Red Hat family of Linux operating systems, including Fedora, Red Hat …

    postgres sysadmin linux

    Type guards in TypeScript

    Nicholas Piano

    By Nicholas Piano
    October 12, 2022

    Looking up at trees and a building. The leaves are starting to turn yellow. The building’s glass windows reflect the trees and the clear blue sky.

    TypeScript has a very rich type system. Sometimes too rich. For example, interfaces and types perform the same function with slightly different syntax.

    This post is a short intro to a powerful feature in TypeScript: type guards. This feature also exists in many strongly typed languages. While TypeScript is not strongly typed, it replicates this excellent feature.

    The feature

    Normally, a function can be annotated with boolean to indicate its return type. However, when the intention is to narrow the type of object being tested from a supertype to one of its subtypes, the annotation parameterName is Type can be used instead. This allows the compiler to infer the type of the argument at other points in the code after the test has been passed.

    The following code demonstrates a use of this feature:

    type Animal = {
      canWoof: boolean;
    };
    
    type Dog = {
      canWoof: true;
      woof: () => void;
    };
    
    const isDog = (animal: Animal): animal is Dog => {
      if (animal.canWoof) {
        return true;
      }
    
      return false;
    };
    

    In this example, Animal is a supertype of Dog. The function isDog() takes an Animal object and uses a simple test to determine whether the object satisfies the type Dog. If the …


    typescript

    Integrating Contentful with NuxtJS

    Juan Pablo Ventoso

    By Juan Pablo Ventoso
    October 7, 2022

    An orange sunset reflecting off of the sea at Rio de la Plata. A city skyline is silhouetted by the sunset.

    Some time ago, I had the opportunity to collaborate on a cool NuxtJS project. I’m still somewhat new to Vue.js and its related frameworks, meaning I’m discovering exciting new tools and third-party services that can be integrated with them every time a new requirement appears. And there is a particular concept that I heard of, but never worked with until this project: using a Headless CMS to deliver content.

    Essentially, a headless CMS permits creating a custom content model, making it accessible through one (or several) APIs that we can query, allowing us to choose whatever presentation layer we prefer to handle the display. This approach decouples the content management part (the “body”) of a project from the design, templates, and frontend logic (the “head”), becoming particularly useful when we have several application types that will interact with the same data, such as a website, a mobile app, or an IoT device.

    With that in mind, let’s have a quick look at Contentful: It’s a headless CMS that is offered under the concept of content-as-a-service (CaaS), meaning the content is delivered on demand from a cloud platform to the …


    vue cms saas

    Kubernetes From The Ground Up With AWS EC2

    Jeffry Johar

    By Jeffry Johar
    October 6, 2022

    A docked fishing ship faces the camera. A man stands on a dinghy next to it.
    Photo by Darry Lin

    One way to learn Kubernetes infrastructure is to build it from scratch. This way of learning was introduced by the founding father of Kubernetes himself: Mr. Kelsey Hightower. The lesson is known as “Kubernetes The Hard Way”.

    For this blog entry I would like to take a less demanding approach than Kubernetes The Hard Way, while still being educational. I would like to highlight only the major steps in creating a Kubernetes cluster and what is covered in CKA (Certified Kubernetes Administrator) exams. Thus we are going to use the kubeadm tools to build the Kubernetes cluster.

    The steps of creating a Kubernetes cluster are hidden to you if you are using a Kubernetes as a service such as AWS EKS, GCP GKE or the enterprise suites of Kubernetes such as Red Hat Openshift or VMware Tanzu. All of these products let you use Kubernetes without the need to worry about creating it.

    Prerequisites

    For this tutorial we will need the following from AWS:

    • An active AWS account
    • EC2 instances with Amazon Linux 2 as the OS
    • AWS Keys for SSH to access control node and managed nodes
    • Security group which allows SSH and HTTP
    • A decent editor such as Vim or Notepad++ to create the …

    kubernetes docker containers aws devops

    Git 2.38 packages for RHEL, CentOS, Rocky Linux, AlmaLinux, Oracle Linux 7 and 8

    Jon Jensen

    By Jon Jensen
    October 5, 2022

    Photo of a wilderness footpath over stone with scattered evergreen trees alongside a clear lake, with a blue sky

    Git 2.38 was released 2 days ago, and it has some interesting new features. Let’s look at a couple of them, which you may find make upgrading worthwhile.

    Scalar

    Git now includes a new command-line tool called scalar which is adapted to working with very large Git repositories. It reminds me of Google’s “repo” tool used to manage a group of multiple large Git repositories for the Android project, but unlike that, Scalar focuses on a single repository.

    By default it makes a partial clone so that you need far less network transfer and local disk space to work with a large repository. One of our clients has a repository whose .git directory for a complete clone takes 7.1 GB, but when using scalar clone the partial clone of that repository uses only 46 MB. That’s only 0.6% the size! Your experience will vary based on how much of the repository data is in history vs. currently checked-out files.

    I use SSH agent confirmation with ssh-add -c (on Linux; see references below for tips on doing it on Windows and macOS). Because of that, I am aware of every SSH connection that uses my SSH secret key, and noticed that Scalar had Git make 3 network connections to …


    git sysadmin linux

    Vulnerability Scanning

    Jeremy Freeman

    By Jeremy Freeman
    September 15, 2022

    A mountain ridge. One side of the ridge is still covered in shadows, while the sunrise illuminates the other side.

    Define Your Terms

    A security vulnerability is a flaw or bug that could be exploited by a threat agent/​threat actor. According to CrowdStrike, “A threat actor, also known as a malicious actor, is any person or organization that intentionally causes harm in the digital sphere.”

    Once a bug or flaw is deemed a vulnerability, it is registered by the MITRE Corporation as a Common Vulnerability or Exposure (CVE) and stored in their CVE database. A CVE is given an identifying number by a CVE Numbering Authority (CNA), for example, Red Hat, Microsoft, and other designated authorities.

    Threat levels are quantified by assigning a Common Vulnerability Scoring System (CVSS) score from 0 to 10. CVSS is a free and open standard for evaluating the level of threat to a business or organization maintained by the Forum of Incident Response and Security Teams (FIRST).

    The National Institute of Standards and Technology (NIST) is a federal agency housing the National Vulnerability Database (NVD). NIST provides a CVSS calculator. The NIST NVD database synchronizes with the MITRE CVE database. Only the NVD includes CVSS scores.

    The Attackers

    Real live people spend a lot of time and money …


    security

    CI/CD with Azure DevOps

    Dylan Wooters

    By Dylan Wooters
    August 28, 2022

    Moonrise in Sibley Volcanic Park. The sun casts a shadow over everything but the tops of the trees and a brown, grassy hill. The moon has risen just above the hill, against the backdrop of a light blue cloudless evening sky.
    Photo by Dylan Wooters, 2022.

    A development process that includes manual builds, tests, and deployments can work for a small-scale project, but as your codebase and team grow, it can quickly become time-consuming and unwieldy. This can be particularly true if you’re a .NET developer. We all know the struggle of merging in the latest feature and clicking build in Visual Studio, only to have it fail, citing cryptic errors. “Maybe a clean will fix it?”

    If this sounds like your current situation, it’s likely time to consider building a Continuous Integration and Continuous Deployment pipeline, commonly known as “CI/CD”. A good CI/CD pipeline will help you automate the painful areas of building, testing, and deploying your code, as well as help to enforce best practices like pull requests and build verification.

    There are many great options to choose from when selecting a CI/CD tool. There are self-hosted options like Jenkins and TeamCity. There are also providers like GitHub and Azure DevOps, which offer CI/CD alongside cloud-hosted source control. All of these options have pros and cons, but if you’re looking for a large feature set, flexibility, and in particular good support for …


    dotnet devops cloud
    Previous page • Page 12 of 218 • Next page