Liquid Galaxy at Kansas State University
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
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
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
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:
- One in green with a play icon, and
- 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:
- If the expected classnames exist.
- If clicking the stop button stops the music.
- 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
This position has been filled. See our active job listings here.
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
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
Fetching Outputs From Java Process Monitoring Tool with Icinga/Nagios
Photo by Mihai Lupascu on Unsplash
Recently, I encountered an issue when executing NRPE, a Nagios agent which runs on servers that are being monitored from Icinga’s head server. Usually NRPE-related calls should run without issues on the target server, since it is declared in the sudoers file (commonly /etc/sudoers
). In this post, I will cover an issue I encountered getting the output from jps (Java Virtual Machine Process Status Tool), which needed to be executed with root privileges.
Method
I wanted to use Icinga to get a Java process’s state (in this case, the process is named “Lucene”) from Icinga’s head server, remotely. jps
works for this, functioning similarly to the ps
command on Unix-like systems.
Usually, NRPE should be able to execute the remote process (on the target server) from Icinga’s head. In this case we are going to create a workaround through the following steps:
- Dump the Java process ID into a text file.
- Dump the running threads into another text file.
- Put item 1 and item 2 above into a single bash script.
- Create a cronjob to automatically run the bash script.
- Create an NRPE plugin to evaluate the output of item 1 and item 2.
Test
To illustrate this, I ran …
linux monitoring nagios jetty
Engineering Is Not Just About the Cool Stacks
As a developer, I love finding new shiny pieces of tech that can help me develop web applications better. To me, it is one of the best parts of the job: Pick up a new programming language, a new database, a new standard, etc., and build cool things with it. But recently, I had the chance to reflect on my experience working on a boring stack at one of my previous workplaces, and it was actually a lot better than I expected.
My journey
I used to work at a company where the teams are free to decide the tech stacks that best fit their requirements, so a wide range of modern tools were used there to solve the problems at hand. Within just 2 years of joining the company, I switched teams four times and touched everything from Java, Scala, Akka, Terraform, AWS ECS, Serverless, API Gateway, AWS Lambda, AWS DynamoDB, React, Gatsby, Vue, Nuxt, TypeScript, Flowtype, and many other tools that really helped advance my technical skills.
But in late 2018, my manager invited me to assist a “less popular” team in the company. The team handled a myriad of complex products that are quite old. The team’s tech stack was not the shiniest compared to the other teams in the company; the …
culture training programming