• 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

    Converting to Hugo

    Seth Jensen

    By Seth Jensen
    August 23, 2021

    A view of Manhattan from the Empire State Building

    We recently converted the End Point website from Middleman to Hugo. I’ll go into more detail shortly, but the general result has been much better build times with less configuration and better support for local development.

    Background

    In 2017 we converted this website from a Ruby on Rails app to a static site. With tons of high-quality static site generator options, we could implement the shiny features used by our Rails site in 2009 with less overhead and quicker load times.

    We also wanted to move away from Blogger to self-hosting our blog, using GitHub issues for comments. We ended up switching to Middleman, a static site generator written in Ruby, and had a mostly positive experience. Ruby was a good fit switching from Rails, and (if I remember correctly) Middleman had pretty competitive performance.

    With over 1000 blog posts at the time, as well as lots of other pages, our site was quite slow to build—3.5 minutes when building with the full blog.

    Middleman had a nice development server, but due to some server-side rewrites, we couldn’t use it. Instead, we got around the build times by writing a simple Ruby script to generate an HTML preview, letting our blog authors see …


    company design html static-site-generator

    Full-text search on a budget: Xapian

    Marco Pessotto

    By Marco Pessotto
    August 19, 2021

    Mounted telescope monocular pointing through a wire fence

    Over the years I’ve seen and implemented different full-text search applications using various technologies: plain SQL, PostgreSQL, Elasticsearch, Solr, and most recently Xapian.

    While Solr and Elasticsearch are very well known, Xapian, despite the fact that it’s available and packaged in all the major GNU/Linux distributions, doesn’t seem to be so popular, at least not among project managers.

    But Xapian is fast, advanced, can be configured to do faceted searches (so the user can filter the search results), and my favorite, is fast to build and has virtually no maintenance overhead.

    Its main feature is that it’s not a stand-alone application, like Solr or Elasticsearch, but instead it’s a library written in C++ which has bindings for all the major languages (as advertised on its homepage). It has also great documentation.

    Now, being in the e-commerce business, my typical use-case is that the client’s shop needs something faster and better than a search using a SQL query against the products table. And beware, even implementing a non-trivial SQL-based search can burn more hours than setting up Xapian.

    With Xapian you can prototype very quickly, without losing hours wading through …


    database search perl

    Liquid Galaxy at Kansas State University

    Ben Witten

    By Ben Witten
    August 18, 2021

    KSU’s new Liquid Galaxy

    End Point recently installed a Liquid Galaxy system in Kansas State University’s Sunderland Foundation Innovation Lab! The seven-screen Liquid Galaxy will provide students with engaging, immersive, and user-friendly educational experiences. It will be a great asset to the Innovation Lab, enhancing a collaboration space used for meetings, webinars, presentations, and seminars. The Liquid Galaxy enables data visualization, map viewing via Google Earth, GIS, and more.

    During the installation, End Pointer Josh Harless had the opportunity to work very closely with K-State’s team to ensure the system met their expectations and vision, such as by adjusting the screen angles multiple times to perfect viewing positions.

    K-State experienced a terrible fire at Hale Library in 2018. Liquid Galaxy fit into their plans as they rebuilt in the aftermath. In an interview with Dr. Sheila Yeh about her role in reinventing K-State’s library, Dr. Yeh commented that “Information technology has been the catalyst for much of the transformation we find in today’s academic libraries.” She added that digital and information technologies such as the Liquid Galaxy are “enablers” that offer “new opportunities …


    education visionport clients

    Building REST APIs with .NET 5, ASP.NET Core, and PostgreSQL

    Kevin Campusano

    By Kevin Campusano
    July 9, 2021

    A market at night Photo by Sam Beasley

    This is old news by now, but I’m still amazed by the fact that nowadays .NET is open source and can run on Linux. I truly believe that this new direction can help the technology realize its true potential, since it’s no longer shackled to Windows-based environments. I’ve personally been outside the .NET game for a good while, but with the milestone release that is .NET 5, I think now is a great time to dive back in.

    So I thought of taking some time to do just that, really dive in, see what’s new, and get a sense of the general developer experience that the current incarnation of .NET offers. So in this blog post, I’m going to chronicle my experience developing a simple but complete REST API application. Along the way, I’ll touch on the most common problems that one runs into when developing such applications and how they are solved in the .NET world. So think of this piece as a sort of tutorial or overview of the most common framework features when it comes to developing REST APIs.

    There’s a table of contents at the bottom.

    First, let’s get familiar with what we’re building.

    What we’re building

    The demo application

    You can find the finished product on my …


    dotnet aspdotnet csharp rest api postgres docker containers

    Appium: Automated Mobile Testing

    Couragyn Chretien

    By Couragyn Chretien
    June 30, 2021

    Clouds and a river

    First impressions are everything. You can have the best, most robust application in the world, but if it looks like it’s from 2004 most users won’t give it a second look. Automated testing can help ensure that the app the user sees is consistent and fully functional no matter the iteration.

    Selenium, Cypress, and other automated testing suites have become more and more popular for webapps. This trend has not carried over to mobile native app testing. This may be a bit surprising, as a fully functional frontend can be the difference between a professional-feeling app and a hacky one.

    There are many frameworks that can be used to test mobile applications (Appium, UI Automator, Robotium, XCUITest, SeeTest, and TestComplete to name a few), but today we’ll be focusing on Appium.

    Appium is an open source framework that’s easy to use out of the box. It can be used to test many versions of many different mobile OSes. It’s a one-stop shop to ensure your users are on the same page, no matter the platform.

    Installation and setup for Linux

    General

    We will be testing the To-Do List app from the Google Play Store. What we’re testing and for which platform isn’t important, since we’re here to …


    automation testing android mobile

    Catching CSS Regressions and Visual Bugs in Continuous Integration

    Afif Sohaili

    By Afif Sohaili
    June 24, 2021

    Blue patterns Photo by Alexandra Nicolae

    Many web projects nowadays are equipped to simulate real users and automatically test a real use case, but these end-to-end tests still have a weakness. Browser automation tools run tests by performing the interactions and assertions in the context of the DOM of the pages. That is very different from how humans use web applications, which is by looking at the user interface. Due to this, the tests’ definition of a “functional web app” differs from that of a real human.

    For example, let’s take a simple music player with two buttons:

    1. One in green with a play icon, and
    2. One in red with a stop icon.

    The HTML would look something like this:

    <!-- music player -->
    <button class="button is-red"><i class="icon icon-stop"/></button>
    <button class="button is-green"><i class="icon icon-play"/></button>
    

    In our end-to-end tests, one would typically instruct the test to check:

    1. If the expected classnames exist.
    2. If clicking the stop button stops the music.
    3. If clicking the play button plays the music.

    If all of the above conditions were met, then the app is considered “functional”. However, the …


    automation user-interface testing css

    Job opening: Liquid Galaxy support engineer

    Benjamin Goldstein

    By Benjamin Goldstein
    June 10, 2021

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

    Liquid Galaxy cabinet

    We are looking for a full-time, experienced or entry-level 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 Liquid Galaxy systems.

    The candidate will be based out of our Johnson City, Tennessee or New York City offices depending on where the candidate is located. With sufficient hardware and deployment experience, the engineer may eventually be asked to travel to, perform, and supervise system installations.

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

    This is a great entry-level opportunity to learn about 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 other ongoing consulting projects the I+G team takes on.

    Overview

    • Job Level: Experienced or entry-level, full-time.
    • Location: On-site expected with occasional remote work, on-call weekdays and weekends.
    • Environment/​Culture: Casual, remote management, lots of video meetings.
    • Benefits: paid vacation and holidays, 401(k), health insurance. …

    jobs-closed visionport

    Lazy Isn’t Bad: Write Lazy Scripts

    Ardyn Majere

    By Ardyn Majere
    June 9, 2021

    Photo by cottonbro

    A quote attributed to Bill Gates says, “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.” Larry Wall’s list of the virtues of a programmer begins with “laziness,” which of course is a particular kind of laziness: the desire to automate things that a human has previously done manually and painstakingly.

    It’s a philosophy that is generally good to adopt. Are you doing repetitive tasks that you hate every day? Weekly? At the end of every month? That’s probably a clue that you could take some pain out of your workday. If there’s some task that comes up repeatedly that requires you to fiddle with data which can be automated, even if it’s relatively easy to do manually, why not do it?

    There are many ways in which people try to improve productivity. One of the more famous, Kanban, involves removing work in progress and optimizing flow. While implementing full Kanban is probably more than you want to do, we can do it the lazy way.

    The lazy way means you put time and effort into your infrastructure, creating code or scripts that will do the job for you. Many people don’t think they have the time to put some hours into making …


    automation tips
    Previous page • Page 26 of 220 • Next page