• 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
  • Job opening: Fulfillment Manager

    Jon Jensen

    By Jon Jensen
    December 13, 2016

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

    This role is based in our Bluff City, Tennessee office, and is responsible for everything about fulfillment of our Liquid Galaxy and other custom-made hardware products, from birth to installation. See visionport.com to learn more about Liquid Galaxy.

    What is in it for you?

    • Interesting and exciting startup-like atmosphere at an established company
    • Opportunity for advancement
    • Benefits including health insurance and self-funded 401(k) retirement savings plan
    • Annual bonus opportunity

    What you will be doing:

    • Manage receiving, warehouse, and inventory efficiently
    • Oversee computer system building
    • Product testing and quality assurance
    • Packing
    • Shipment pick-up
    • Communicate with and create documents for customs for international shipping
    • Be the expert on international shipping rules and regulations
    • Delivery tracking and resolution of issues
    • Verify receipt of intact, functional equipment
    • Resolve RMA and shipping claims
    • Help test and implement any new warehouse software and processes
    • Design and implement new processes
    • Use effectively our project software (Trello) to receive and disseminate project information
    • Manage fulfillment employees and office facility
    • Work through emergency situations …

    jobs-closed

    Bash: loop over a list of (possibly non-existing) files using wildcards with nullglob (or failglob) option

    Marco Matarazzo

    By Marco Matarazzo
    December 12, 2016

    Let’s say you’re working in Bash, and you want to loop over a list of files, using wildcards.

    The basic code is:

    #!/bin/bash
    for f in /path/to/files/*; do
      echo "Found file: $f"
    done

    Easy as that. However, there could be a problem with this code: if the wildcard does not expand to actual files (i.e. there’s no file under /path/to/files/ directory), $f will expand to the path string itself, and the for loop will still be executed one time with $f containing “/path/to/files/*”.

    How to prevent this from happening? Nullglob is what you’re looking for.

    Nullglob, quoting shopts man page, “allows filename patterns which match no files to expand to a null string, rather than themselves”.

    Using shopt -s you can enable BASH optional behaviors, like Nullglob. Here’s the final code:

    #!/bin/bash
    shopt -s nullglob
    for f in /path/to/files/*; do
      echo "Found file: $f"
    done

    Another interesting option you may want to check for, supported by Bash since version 3, is failglob.

    With failglob enabled, quoting again, “patterns which fail to match filenames during filename expansion result in an expansion error”. Depending on what you need, that could even be a better behavior. …


    shell linux

    Malaysia Open Source Community Meetup Quarter 4 2015 (MOSCMY Q4 2015)

    After a year, finally I decided to publish this post to all of you!

    On November 26th 2015 I had a chance to give a talk in a local open source conference here in Malaysia. The organizer requested me to specifically deliver a talk on “remote work”. This meetup was organized by Malaysian Development Corporation (MDEC) with the sponsorship of Microsoft Malaysia. Microsoft recently started to become more “open source friendly” given that they are in the effort of pushing their cloud based product, Azure. The full schedule of the event can be referred here.

    The conference was divided into two sessions; where the morning session was held in Petronas Club, Tower One of Kuala Lumpur City Centre (KLCC) and the other session was held in Microsoft Malaysia’s office in Tower Two KLCC. Generally the morning session was for non parallel track (including my track) and the afternoon sessions were two parallel sessions slot.

    Morning Session

    The morning session started with a talk by Dinesh Nair, as the Director of Developer Experience and Evangelism, Microsoft Malaysia. The second session in the morning was delivered by Mr Izzat M. Salihuddin, from Multimedia Development Corporation (MDeC), …


    community open-source

    Postgres statistics and the pain of analyze

    Greg Sabino Mullane

    By Greg Sabino Mullane
    December 7, 2016

    Anytime you run a query in Postgres, it needs to compile your SQL into a lower-level plan explaining how exactly to retrieve the data. The more it knows about the tables involved, the smarter the planner can be. To get that information, it gathers statistics about the tables and stores them, predictably enough, in the system table known as pg_statistic. The SQL command ANALYZE is responsible for populating that table. It can be done per-cluster, per-database, per-table, or even per-column. One major pain about analyze is that every table must be analyzed after a major upgrade. Whether you upgrade via pg_dump, pg_upgrade, Bucardo, or some other means, the pg_statistic table is not copied over and the database starts as a clean slate. Running ANALYZE is thus the first important post-upgrade step.

    Unfortunately, analyze can be painfully slow. Slow enough that the default analyze methods sometimes take longer that the entire rest of the upgrade! Although this article will focus on the pg_upgrade program in its examples, the lessons may be applied to any upgrade method. The short version of the lessons is: run vacuumdb in parallel, control the stages …


    postgres

    Implementation of Ruby on Rails 5 Action Cable with Chat Application

    Selvakumar Arumugam

    By Selvakumar Arumugam
    December 3, 2016

    Ruby on Rails is a wonderful framework for web development. It was lacking for one important feature since the world has been moving to towards realtime data. Everyone wants to see the realtime data on the applications. Mostly, real-time web applications are now accomplished using WebSocket.

    WebSocket provides full-duplex communication between server and client using TCP connection once the handshake completed through HTTP protocol. WebSocket transfers streams of messages on top TCP without being solicited by the client which boosts the data transfer performance on high level compare to HTTP request/response.

    WebSocket were adopted on RoR applications with help of third party libraries. But Rails 5 came up with a module called ActionCable which is seamlessly sits with existing framework and integrates the WebSocket to the application. ActionCable provides server and client side framework to implement WebSocket with the application.

    ActionCable Overview:

    Server Side:

    Connection: The Connection only handles authentication and authorisation part of logic. The connection object is instantiated when request from the user comes through browser tab or window or devices. Multiple …


    rails javascript

    Perl Dancer Conference 2016 Day 1

    Sam Batschelet

    By Sam Batschelet
    November 30, 2016

    Perl Dancer Conference Day 1

    The Perl Dancer Conference is a great event, now in its third year. The event took place in the same location as last year in Vienna, Austria at the Hotel Schani Wien. For those of you who have never visited Vienna, it is a perfect place to bring the family. From visiting the beautiful parks to taking a scenic ride on the Danube River, the beautiful and historic city is known for its rich art and musical culture, and has much to offer.

    I was very excited to not only attend but also give a talk this year. My talk titled “Dancing in the Clouds” also coincided with the release of 2 new Perl modules Etcd3 and Dancer2::Plugin::Etcd. This article will be the first of a 3 part series, with the final article a focus on my talk and usage examples with the new modules.

    Sawyer X (Sawyer X) — A bus tour through Dancer core

    The Captain of Dancer core, SawyerX, took us on a bus tour through the core functionality of Dancer2. Using practical examples of code blocks from core, he explained how different areas of the code base worked. I personally enjoyed his explanation of how hooks are implemented and created. Learning from the 1st iteration of Dancer, the second …


    conference perl devops

    Throw It Away: Suppressing Writes on PostgreSQL Replicas

    Josh Williams

    By Josh Williams
    November 30, 2016

    We needed a way to suppress specific write commands on a Postgres streaming replica. The replica was set up for a DR configuration, with the applications able to be brought up into full service at a moment’s notice. But since it’s a hot standby, we’d like to still allow the applications to be used in a working but read-only state.

    One of the applications on this database is MediaWiki, which worked great in this configuration. But a couple of the other apps have the classic behavior of updating its user object’s “last login” field in one form or another when someone authenticates, which would cause the login process to fail entirely.

    Of course we want updates to fail, up until that point when (knock on wood) the master server is declared down for the count and the official fail-over happens. Except for the one command that executes on login.

    We don’t really care about the “last login” type field – the data is available through logs and other means. The affected apps could probably all be monkey patched to work around that part of the process. But we had a couple different apps doing this, and that adds a maintenance burden for each. And if we could figure out how to make it …


    postgres replication

    Vim Golf: Learning New Skills for Code Editors

    Josh Lavin

    By Josh Lavin
    November 28, 2016

    Vim is a text-based editor that has been around for 25 years. It comes pre-installed on Linux distributions, so it is a great tool for developing on servers. One of the advantages of Vim is that oft-used keystrokes can be performed without moving your hands from the keyboard (there is no mouse in Vim).

    Many of the engineers here at End Point use Vim for our daily development work, and recently, a few of us got together online to try to learn some new tricks and tips from each other. Being efficient with Vim not only improves productivity, it’s a lot of fun.

    Similar to playing a round of golf, we tested each other with various editing tasks, to see who could perform the task in the fewest number of keystrokes. This is known as “Vim Golf.” There is even an entire website devoted to this.

    In this post, we share some of the interesting tricks that were shown, and also some links to further learning about Vim.

    Tips & Tricks

    • Indenting text: there are multiple ways to do this, but a few are:
      • Visually-select the lines of text to indent (Ctrl v or Shift v), then > to indent, or < to outdent. Press . to perform this action again and …

    vim
    Previous page • Page 62 of 222 • Next page