Job opening: Systems Programmer
This position has been filled. See our active job listings here.
End Point is an Internet technology company with headquarters in New York City and an office in Johnson City, Tennessee. The majority of our 50 employees work remotely. We provide consulting, development, and support services to many clients ranging from small family businesses to large corporations. We also develop and support an immersive visualization product called Liquid Galaxy.
Job Description
We are looking for a C++ developer to join our team full-time to develop new custom software solutions and improve existing ones for our clients. The person in this position will work collaboratively with our talented team of developers to design, implement, test, debug, and maintain systems software.
Responsibilities
- Create reusable, effective, secure, and scalable C++ code.
- Translate technical requirements into code.
- Identify bottlenecks and bugs in the system and develop solutions.
- Troubleshoot and ensure that software applications are running correctly.
Skills and Qualifications
- English language proficiency
- Preferably based in the United States
- Strong technical and communication skills
- 4+ years of professional experience developing software using C++
- Proficiency with …
jobs-closed remote-work
Vue GraphQL integration using Apollo Client
Photo by Mathew Benoit on Unsplash
Introduction
In this post I’ll go over everything you need to know to get your Vue app using GraphQL to send and receive data. This post only covers the frontend — stay tuned for my next post on making a GraphQL server using Django and graphene-python!
For the uninitiated: GraphQL is a query language that aims to replace the traditional REST API. The idea is that, instead of having separate endpoints for each resource in your API, you use one endpoint that accepts GraphQL queries and mutations for all of your resources. Overall, this makes data access on the frontend more like querying a database. Not only does it give you more control over your data, but it also can be much faster than using a REST API, providing a better user experience.
Getting started
To get your Vue app set up using GraphQL we’ll need to do two things. First, we’ll install vue-apollo (a Vue plugin for the Apollo GraphQL client) as well as apollo-boost, which bootstraps the configuration of Apollo. With these you’ll be able to:
- Manually run GraphQL queries and mutations from any Vue component via the
this.$apollo
helper - Automatically map GraphQL queries to …
javascript graphql vue
Liquid Galaxy Hackathon 2021
A few months ago we had our first company gathering since the pandemic started. About 20 End Pointers came to our New York City office to work on various Liquid Galaxy projects, and for several of us, to meet each other in person for the first time.
Except for our NYC-based team, this was everyone’s first look at the “new” office; we moved offices in January of 2020, so COVID-19 shut down about 14 months of office use.
Our CMS team worked on some exciting updates to our Liquid Galaxy CMS, including implementing new and improved techonologies for the database and user interface.
The CMS team: Zed, Dan, and Jeff
Our Research and Development team worked on upgrades to the Liquid Galaxy itself, focusing on creating smoother transitions for multimedia presentations. This included a custom window manager created by Matt, dubbed “Matt WM” by the team.
Will, Matt, Jacob, and Neil, hard at work
Our support team worked on spinning up documentation and data entry to bring our inventory up to date and prepare for the next wave of installations.
Darius hacking away
It was great to see everyone at the NYC office, working elbow to elbow. We saw plenty of the …
visionport company conference remote-work travel
Liquid Galaxy Screen Share Integration
End Point’s Immersive and Geospatial Division is proud to announce the rollout of our new Screen Share Integration as an extension to the Liquid Galaxy platform’s capabilities. The additional hardware and software configuration can be added to existing installations or included in a solution provided by our sales team.
Screen Share Integration uses ClickShare, a well-regarded enterprise-grade wireless screen sharing tool already used in the offices of many of our commercial real estate clients. With Screen Share Integration you can push a button to share laptop, desktop, phone, and tablet content directly onto the displays of the Liquid Galaxy or onto an integrated side screen. We expect this to be useful for clients who are interested in sharing videos, spreadsheets, and other ad-hoc interactive media directly from their devices to supplement the main content on screen.
Why we created this
In an effort to expand the flexibility of the Liquid Galaxy platform, we thought about what tools our current clients are already using. We acknowledge that there are limitations to the interactivity of certain content types on the platform, and ClickShare is a useful tool for wireless sharing …
visionport
Integrating the Estes Freight Shipping SOAP API as a Spree Shipping Calculator
One of our clients with a Spree-based e-commerce site was interested in providing automated shipping quotes to their customers using their freight carrier Estes. After doing some research I found that Estes provided a variety of SOAP APIs and determined a method for extending Spree with custom shipping rate calculators. This presented an interesting challenge to me on several levels: most of my previous API integration experience was with REST, not SOAP APIs, and I had not previously worked on custom shipping calculators for Spree. Fortunately, the Estes SOAP API documentation and some code examples of other Spree shipping calculators were all I needed to create a successful integration of the freight shipping API for this client.
Estes API Documentation
The Estes Rate Quote Web Service API is the one that I relied on for being able to generate shipping quotes based on a combination of source address, destination address, and package weight. I found the developer documentation to be thorough and helpful, and was able to create working client code to send a request and receive a response relatively quickly. Many optional fields can be provided when making requests but I found that …
!-->api ruby rails shipping spree
Deploying a .NET 5 app on IIS
Photo by Christian Cable, CC BY 2.0
.NET 5 has been around for a few years now, after being released at .NET Conf 2020, containing the best of both worlds: .NET Core, including multi-platform support and several performance improvements, and .NET Framework, including Windows desktop development support with WPF and Windows Forms (UWP is also supported, but not officially yet).
A .NET Core-based project can be published into any platform (as long as we’re not depending on libraries targeted to .NET Framework), allowing us to save costs by hosting on Linux servers and increasing performance by having cheaper scalability options. But most developers are still using Windows with Internet Information Services (IIS) as the publishing target, likely due to the almost 20 years of history of .NET Framework, compared to the relatively short history of .NET Core, launched in 2016.
Our .NET project
We won’t review the steps needed to set up a new .NET 5 project, since this time we are only focusing on publishing what we already have developed. But to understand how our application will integrate with IIS and the framework, it’s important to note a fundamental change any .NET 5 project has in …
dotnet csharp iis
Monitoring Settings Changes in ASP.NET Core
Photo by Linus Nylund on Unsplash
Did you know you can directly respond to config file changes in ASP.NET Core? By using the IOptionsMonitor<T>
interface, it’s possible to run a lambda function every time a config file is updated.
For those who aren’t too familiar with it, ASP.NET Core configuration is handled using the Options Pattern. That is, you create a model class that has a field for each property in your config file, and then set up the application to map the configuration to that class, which can be injected into controllers and services. In your controllers, you can request the configuration class T
as a dependency by using an options wrapper class like IOptions<T>
.
While this works just fine in some cases, it doesn’t allow you to actually run code when the configuration is changed. However, if you request your configuration using IOptionsMonitor<T>
, you get the ability to define a lambda function to run every time appsettings.json
is changed.
One use case for this functionality would be if you wanted to maintain a list in the config file, and log every time that list was changed. In this article I’ll explain how to set up an ASP.NET Core 5.0 API to run …
monitoring dotnet aspdotnet
Introducing VisionPort Remote
Welcome to End Point Liquid Galaxy’s new VisionPort Remote! This application not only allows the user to show their content on screen, but also gives control over Google Earth navigation through a number of touch actions. In addition to serving as a remote touchscreen of the system, Remote doubles as a portal that creators can use to test their content from their own devices. A new feature of Remote permits a shareable “guest view” allowing the presentation host to show their content without the possibility of a guest intervening.
Note: This interface layout is not final.
Why we created this
The COVID-19 pandemic increased the need for remote work, content, and presentations. Prior to the pandemic, the only way to use the Liquid Galaxy system was if you were in front of the display. The VisionPort Remote provides more flexibility and an ability to experience the system’s benefits from all over the world.
Who this benefits
The VisionPort remote helps content creators visualize the content that they are making without needing to be in front of the system, enables hands-free control of the Liquid Galaxy from any device, and allows for remote sharing of content to viewers who do not …
visionport