• 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

  • CasePointer

  • VisionPort

  • Contact
  • Our Blog

    Ongoing observations by End Point Dev people

    Passing Data Between Components in Vue.js: An Overview

    Tuğrul Gökbel

    By Tuğrul Gökbel
    April 3, 2024

    A still life painting. One the left side of the image, a parrot stays perched on a table; to the right the table is covered in artichokes, cherries, and light blue, red, and white flowers. The scene is lit from the top left with a gentle diagonal of light, contrasted with deep shadow.
    Artwork: Still Life with Artichokes and a Parrot, 17th century, Italian. CC0.

    Vue.js, with its simplicity and flexibility, is one of the most popular JavaScript frameworks on the web. One of the key aspects of building dynamic and interactive web applications with Vue is efficiently passing data between components. In this blog post, we will explore methods and good practices for data communication between Vue components.

    Props

    Usage

    Directional data flow: Props are primarily used for establishing a unidirectional flow of data from parent components to child components — they allow parents to pass data down to their children.

    Pros:

    Simplicity: Props provide a simple and straightforward mechanism for passing data.

    Cons:

    One-Way Binding: It’s a one-way data binding mechanism, meaning that data flows from parent to child only, not from child to parent.

    // ParentComponent.vue
    <template>
      <ChildComponent :data-prop="parentData" />
    </template>
    
    <script>
    export default {
      data() {
        return {
          parentData: "Hello from parent!",
        };
      },
    };
    </script>
    
    // ChildComponent.vue
    <template>
      <div>{{ dataProp }}</div> …

    vue javascript programming

    Making a Loading Spinner with tkinter

    Matt Vollrath

    By Matt Vollrath
    March 5, 2024

    An overhead shot of a carpeted spiral staircase, with spiraling railings on either side. The staircase is cut off at the bottom by a wall, so that only half of the circle of stairs is visible. The stairs are enclosed by a semicircular wall, and lit by sunlight streaming through a window on the left. On the right is a window whose view is filled with green leaves.

    When you need a loading spinner, you really need a loading spinner. Interested in putting something on the screen without installing a pile of dependencies, I reached deep into the toolbox of the Python standard library, dug around a bit, and pulled out the tkinter module.

    The tkinter module is an interface to the venerable Tcl/Tk GUI toolkit, a cross-platform suite for creating user interfaces in the style of whatever operating system you run it on. It’s the only built-in GUI toolkit in Python, but there are many worthy alternatives available (see the end of the post for a list).

    Here I’ll demonstrate how to make a loading spinnner with tkinter on Ubuntu 22.04. It should work on any platform that runs Python, with some variations when setting up the system for it.

    Prerequisites

    My vision for the loading spinner is some spinning dots and a logo, since this is such a convenient branding opportunity. To accomplish this we’ll be extending tkinter with Pillow’s ImageTk capability, which can load a PNG with transparency.

    To produce that PNG with transparency, first we may need to rasterize an SVG file, because wise designers work in vectors. This is made …


    linux graphics python ubuntu user-interface visionport

    Key Takeaways from Practical Object-Oriented Design by Sandi Metz

    Kevin Campusano

    By Kevin Campusano
    February 27, 2024

    View upward at a bright sky, with lines drawn down at an angle toward the left center by a tree trimmed into a rectangular prism and one trimmed into a vague cone. The lens is imperfect, leaving the corner of the square tree in focus while the rest of the green foliage and blue and bright white sky is somewhat distorted by the lens.

    Practical Object-Oriented Design: An Agile Primer Using Ruby by Sandi Metz is one of those books that everybody who writes or aspires to write object-oriented code should read. Indeed, reading through this book will be valuable for seasoned practitioners and inexperienced novices alike. Whether it be to discover new concepts, remember why they are important, or articulate the reasons behind that warm fuzzy feeling you get in your stomach when you read well designed code, POODR can help.

    I personally really like this book, and here at End Point it does have quite a following as well; it was the subject of a study group that we ran back in 2016. I like to dust it off every now and then to give it a re-read. To help with that, I’ve come up with a list of key takeaways from the book, with some of my own interpretations sprinkled in. For me, it serves as a sort of summary to help commit the book’s contents to memory. I thought I’d share it with you today.

    While this book uses the Ruby language for its examples and discussions, the concepts it describes are equally applicable to any classical object-oriented language. Dynamically typed language users do get a little …


    design ruby csharp books programming

    Setting User-Specific Resource Limits with systemd

    Seth Jensen

    By Seth Jensen
    February 3, 2024

    In the center of a dim street lined with houses and cars, the sun illuminates and sillhouettes green foliage. It projects a triangle of light on the ground, first the street and then the grass, centered in the frame. On either side of the light, centered verticaly, a white car catches the light.

    We recently encountered an issue on one of our servers where some processes were hogging CPU time and slowing down the entire machine to unusable speeds. It turned out that a couple of our developers were using the VS Code extension “Remote - SSH,” which gets SSH credentials to a server from you, logs in by SSH, figures out what kind of server it’s running on, and runs some server-side components that it talks to.

    This is fine in principle, but with larger projects it frequently spins out of control and eats up all available CPU and RAM on the server. The developer using VS Code on their desktop likely won’t even notice, leaving a system administrator to kill the VS Code processes after it causes issues for other users.

    Our answer to this problem was setting resource limits. In many cases, you could use ulimit to control a user’s resource limits. But ulimit only controls resources for the shell it’s running in, and since VS Code was connecting through SSH and spawning a bunch of processes, we didn’t have a reasonable way to do this.

    Instead of using ulimit, you can use control groups (cgroups) to set overall user limits, not just limits …


    linux sysadmin systemd vscode

    Building a real-time application with SignalR, .NET, and three.js

    Bimal Gharti Magar

    By Bimal Gharti Magar
    January 13, 2024

    A white watchface, without any other parts, sits on a surface with a dotted texture
    Image by Pixabay on Pexels

    When data in a web application is changing in real time, users want to see those updates reflected in real time without refreshing the application. Adding real-time functionality to a .NET application is easy with the SignalR library.

    Depending on the capabilities of the client and server, SignalR can use WebSockets, server-sent events, or long polling to establish a persistent connection between the client and the server. From the server side, SignalR pushes code to connected clients. SignalR is good for applications that require high-frequency updates from the server, such as real-time gaming.

    C# code can be used to write SignalR hubs, which easily integrate with other ASP.NET features like dependency injection, authentication, authorization, and scalability.

    What we’ll build

    We will learn how to use SignalR for real-time communication to send the camera position of a cube, built using three.js, to all users on the page.

    Two browser windows are open side by side, to the same web app. On both, under a “Receiver” title is a window showing a 3D cube, after which a “Controller” title is followed by a “Request Control” button. In the left browser window, the mouse clicks the blue “Request Control” button, which turns green and displays a message underneath saying “Control granted: 120 seconds remaining”, with the number counting down every second. Another identical 3D cube window opens beneath. The clicks and drags in this bottom window, which rotates the cube. After a short delay, the other two cubes in the “Receiver” section follow and move to the position where the controller moved the cube.

    You can see the demo here.

    Here is the description of our testing app:

    • A user can request control of a cube for 2 minutes
    • Control can be released manually, or it will be automatically released after 2 minutes
    • A user can control …

    dotnet javascript

    End Point meetup in Ljubljana, Slovenia

    Jon Jensen

    By Jon Jensen
    December 29, 2023

    5 men smiling for the camera outside against classic pillar and walls

    Remote-first work

    End Point has always been a primarily remote work company. We have offices in Manhattan, New York City and Johnson City, Tennessee, yet the people who work in them mostly interact online with remote colleagues.

    Most of the time that is wonderful because we have no commute if we work at home, or as short of a commute as we want for those who work in a nearby office or co-working space. We are also able to move without changing jobs. And our meetings with clients are usually remote in any case.

    International interaction

    Perhaps best of all, working remote-first has allowed us to work together with colleagues around the world: currently in 13 countries and as many time zones. That is pretty good international representation for a company of 70 people.

    A downside of mostly remote work is that we generally have to make an effort to ever meet each other in person. And while remote meetings are convenient, they lack some impact that in-person meetings have. There is especially a big difference between meeting remotely with someone you have never met, and someone you’ve met in person at least once!

    So we try to meet up with our co-workers when we are at all …


    company conference remote-work travel

    Client Profile: J.G. Title Company

    Juan Pablo Ventoso

    By Juan Pablo Ventoso
    December 27, 2023

    The J.G. Title Company logo sits in the center of an image on a blue background with futuristic designs reminiscent of circuit boards. Text on either side of the logo reads “Nationwide titling”, with text under reading “info@jgtitleco.com” and “https://jgtitleco.com”

    J.G. Title is a prominent service company specializing in automotive dealership titling and registration processes across the country. They simplify operations for their dealers, businesses, and individuals by giving tax/fee quotes, document validation, and checklists for all jurisdictions.

    Jordan Kivett, the owner of J.G. Title, envisioned an innovative web application to simplify dealership operations. He contacted us to request a quote for developing this solution and making his vision a reality. This project became a great opportunity for our .NET team to build a robust system with state-of-the-art technologies functioning seamlessly together.

    The solution

    J.G. Title submitted a detailed document containing a description of the requirements for the J.G. Title Suite app along with workflow diagrams explaining their current business processes. After analyzing all the documents and having some initial meetings, we decided to divide the project into different stages, and estimate each phase of work separately. We ended up with three phases:

    • Phase I: Create a product that allows users to enter deals into the system and retrieve the quote estimation, including taxes, fees, and …

    dotnet development clients case-study saas

    Developers: Time and Teamwork

    Greg Hanson

    By Greg Hanson
    December 4, 2023

    A steep golden hillside interspersed with green shrubs, behind power lines. Above the hill is a half moon on a deep blue sky.

    Time and teamwork. How do these two concepts fit together? The focus of this post is how blending them can improve not only your programming skills, but also your timeline of projects.

    For a recent project I am the project manager of, we had an urgent request from a client for a developer who could be available in the next 2 weeks to work on a project that had about a 6 week timeline.

    The project

    Initially, it seemed like a pretty easy request to fill. We had a developer who had worked previously for this client, in the very same environment, albeit on a different project. So the roadmap was there: Get the developer into the systems, get the requirements, and do the work.

    This client, like many, had some specific barriers to entry, like needing a company email address, access through a VPN, Duo 2FA, familiarity with Monday.com tracking, Office 365, Microsoft Teams for meetings, and so forth. But, as mentioned, the dev we would be using had worked previously in this environment, and so we already had most of the above in place.

    So we got started with the first few initiation meetings, getting the basics of the project laid out, tasks assigned, and timeline established.

    Then Mr. …


    tips development
    Page 1 of 215 • Next page