• 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
  • Liquid Galaxy engineer job opening

    Jon Jensen

    By Jon Jensen
    June 21, 2014

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

    We are looking for a full-time, salaried engineer to help us further develop our software, infrastructure, and hardware integration for the Liquid Galaxy created by Google. Liquid Galaxy is an impressive panoramic system for Google Earth and other applications.

    What is in it for you?

    • Work from your home office, or from our offices in New York City or Tennessee (Tri-Cities area)
    • Flexible full-time work hours
    • Benefits including health insurance and 401(k) retirement savings plan
    • Annual bonus opportunity
    • Ability to move without being tied to your job location

    What you will be doing:

    • Develop new software involving panoramic video, Google Earth, content management, Interactive Spaces, and ROS (Robot Operating System)
    • Improve the system with automation, monitoring, and customizing configurations to customers’ needs
    • Provide remote and occasional on-site troubleshooting and support for Liquid Galaxy at customer locations
    • Build tours and supporting tools for emerging markets

    What you will need:

    • Strong programming experience with Java, Python, C/C++, Ruby, Perl, and/or shell
    • Experience with automation tools such as Chef, Ansible, Salt, and Puppet
    • Linux system administration skills
    • Sharp …

    jobs-closed visionport

    SELinux, PHP and FTP issues

    Emanuele “Lele” Calò

    By Emanuele “Lele” Calò
    June 20, 2014

    Sometimes it feels like working with SELinux is much like playing Wack-A-Mole. You manage to squash a bug/issue and another one appears elsewhere.

    A similar situation happened to one of our customers when he tried connecting via FTP from his PHP code (through Apache).

    After much debugging and a lot more Google-ing it turned out it was just a matter of enabling the right SELinux boolean setting.

    In order to verify that it really was SELinux fault, we usually keep an eye on the “/var/log/audit/audit.log” log file and then temporarily set SELinux to “Permissive” with:

    setenforce 0

    In our case things started working as expected so we knew that it was SELinux fault, though we had no “AVC (denial)” error in the audit.log file, neither in Enforce nor in Permissive.

    When this kind of situations happens it’s usually a matter of finding which SELinux booleans needs to be toggled.

    To discover which SELinux booleans is blocking the wanted behavior we need to temporarily disable the “dontaudit” setting by using:

    semodule -DB

    and then continue looking at the audit.log file. In our case we found that the interested setting was “httpd_can_network_connect”.

    First we verified that it really was …


    apache redhat php selinux

    DAD Trouble

    Josh Williams

    By Josh Williams
    June 15, 2014

    I never thought I’d say it, but these days technology is simply moving too fast for DAD. It’s just the way it is. Of course it’s not DAD’s fault, it’s just the world doesn’t want to wait.

    Before I get to that, I want to mention some trouble we’d recently started seeing with nginx failing to start on boot. It’s just been on our most recently obtained servers, both Debian-based (including Ubuntu) and RHEL-based installations. Some were Linode VM’s, others were bare metal hardware systems. After boot and once we got in to try and see what was happening, nginx would happily start manually. The only clue was one line that had been left in the error log:

    2014/06/14 23:33:20 [emerg] 2221#0: bind() to [2607:f0d0:2001:103::8]:80 failed (99: Cannot assign requested address)

    And it wasn’t just nginx; Apache httpd in one instance gave us similar trouble:

    Starting httpd: (99)Cannot assign requested address: make_sock: could not bind to address [2600:3c00::f03c:91ff:fe73:687f]:80
    no listening sockets available, shutting down

    As an interim fix, since at the moment these systems only had one IPv6 each, we told nginx or httpd to listen on all addresses. But not liking to leave a mystery unsolved, …


    apache ipv6 nginx sysadmin

    Integrating Facebook SDK and HybridAuth PHP library

    Spencer Christensen

    By Spencer Christensen
    June 13, 2014

    There are a few different libraries out there for integrating your site with Facebook and other social networking sites. I recently added “Login with Facebook” for a client to their PHP site utilizing the Facebook JavaScript SDK. The documentation on Facebook’s site is pretty good (although it could use a few more examples). Beyond just the login feature, this client also wanted to be able to offer a checkbox for “Post a message to Facebook about your order”. And the way they wanted it done required a PHP library to make calls to the Facebook Graph API directly.

    I chose to use the HybridAuth PHP library which is a wrapper for integrating many different social networking sites using a plugin system (Facebook, Twitter, Google, other OpenID services, etc). Likewise, the docs for HybridAuth were sufficient to get the examples up and running for me. The problem was that none of the examples or documentation fit my scenario, where I already have the login set up and working with the JavaScript SDK but want to utilize the PHP library for posting to a user’s feed.

    When attempting to connect to Facebook with HybridAuth it kept attempting to log the user in again. The main problem was that …


    php social-networks

    Android Developer Tools via Google Chrome

    Zed Jensen

    By Zed Jensen
    June 11, 2014

    Recently I was working on a website on my Android phone, and I found myself needing Chrome’s Developer Tools. However, Developer Tools are not included in the Android version of Chrome for many reasons, including lack of screen real estate.

    So, I looked around, and I found a solution: using a USB cable and ADB (Android Debug Bridge), you can do debugging on an Android device with Chrome’s Developer Tools from your desktop.

    To show you exactly what I mean, here’s a short video demonstrating this:

    So, how does one work this magic? There are several ways, but I’ll talk about the one that I used. For this method, you need to have Google Chrome version 31 or higher installed on both your Android device and your development machine.

    First, you have to enable Android debugging on your device. From android.com:

    • On most devices running Android 3.2 or older, you can find the option under Settings > Applications > Development.
    • On Android 4.0 and newer, it’s in Settings > Developer options.
      • Note: On Android 4.2 and newer, Developer options is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen …

    android browsers tools

    Why Can’t I Edit this Database Table? Don’t Forget the Client!

    Mark Johnson

    By Mark Johnson
    June 11, 2014

    A client of mine recently informed me of an issue he’d been having for years, where he was unable to edit a specific table in his database. He uses Access to connect to a MySQL database via ODBC, and his database has a few dozen tables, all of which are editable except this one. He reports that, when trying to edit just this one table, putting the cursor into any of the fields and attempting to change any of the data is blocked. As he put it, “It’s like the keyboard won’t respond.”

    We confirmed through conversation that the issue was not a MySQL permissions problem—​not that I would have expected MySQL permissions to result in such client behavior. We also confirmed that, when using a different application to connect to MySQL with Perl’s DBI, the table was editable just as the rest of the database. At this point, I didn’t have any good suspects (as neither Access nor ODBC are my strong suit) and agreed to bring up the issue with the rest of the End Point engineering team.

    After sending out a description of the problem, it wasn’t long before Josh Williams responded. He had seen this sort of behavior with Access before, where the client will lock out the table if the table does not …


    database mysql

    OpenWest Conference Recap

    Josh Tolley

    By Josh Tolley
    June 10, 2014

    A few weeks ago, the Utah Open Source Foundation put on its seventh annual conference, known as OpenWest. Spencer Christensen already wrote about his experience at the conference. Family concerns kept me from attending much of it, so as time has permitted I’ve been reviewing some of the conference videos as they’ve come out. The schedule demonstrates a promising evolution as the conference expands and improves. The early years’ schedules always struck me as a bit heavy on front-end development and a limited set of currently popular technologies, and necessarily so given the smaller base of attendees and supporters. But recent years and increasing maturity have brought a very well-rounded conference. For this conference, tickets sold out.

    This year’s keynotes included Utah’s enthusiastic Lieutenant Governor speaking on technology in the state, and though this is a regional conference with attendees from all over the western United States, the issues in question cross state lines as governments turn increasingly to technology, and infrastructure ties together even the very remote and rural areas that comprise much of the West. Cox’s video, available here, describes the growth of …


    community conference

    Elixir — a step in a never ending journey

    Kamil Ciemniewski

    By Kamil Ciemniewski
    June 9, 2014

    Every now and then a new programming language is born. In fact, since the not-so-distant introduction of early programming languages, we’ve got about 693 of them! (at least that’s what Wikipedia says).

    Why can’t we settle for just one or at least just a handful? Creating a new programming language certainly isn’t the easiest task on earth. It’s one thing to have fun with syntax lexers, but completely different to provide all the tooling and libraries. In fact programming languages authors are being held hostage to their own creations. There’s always a multitude of things to do, which makes leading such a project basically a full-time job.

    Why are those languages sprouting all the time then? The answer is simple: out of necessity.

    Pitfalls of computer programming

    Most of today’s mainstream programmers choose object-oriented programming as their paradigm of choice. It solves the problems of procedural programming… we could say: in a classy way. You can find its advocates everywhere. In fact you don’t even need to search—​they will yell at you from just about every corner of the Internet.

    Truth be told it’s one of the things that makes producing new software possible. Some of today’s …


    elixir erlang functional-programming haskell ruby
    Previous page • Page 97 of 222 • Next page