• 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
  • Our Blog

    Ongoing observations by End Point Dev people

    RailsConf 2018: Communication 101

    Steph Skardal

    By Steph Skardal
    April 19, 2018

    RailsConf banner

    The punchline is that I’m writing about Communication: 101 here at RailsConf 2018, but there is no joke. In “Harry the Hedgehog Learns you a Communication”, Laura Mosher presented examples of common pitfalls we encounter in our daily lives as software engineers and 5 tips to mitigate those pitfalls. All of these tips are both helpful in the world of consulting when interacting with a variety of clients and coworkers, but also very personally valuable from the perspective of a parent—​I want to exemplify strong communication skills to my children as they absorb everything around them, the little sponges that they are. Here are the tips that Laura went over:

    Think, Then Speak

    This is the foundation of good communication, and seems pretty obvious, but in the age of chat, direct messages, and instant email responses, it’s easy to fall into the trap of responding immediately with emotion and/or without thinking about what you are going to say. First, consider what you want to say, who your audience is, and how to best explain to that audience.

    In consulting, I find this applicable in a couple of scenarios:

    • When hearing unsettling or harsh words from a client over dissatisfaction on a …

    rails ruby conference

    RailsConf 2018: Day One

    Steph Skardal

    By Steph Skardal
    April 17, 2018

    RailsConf banner

    It’s day one of RailsConf 2018, and I’m in Pittsburgh with baby Ingrid (daycare FTW!). This is my 8th time at RailsConf and third time with a kid (SELECT DISTINCT kid FROM skardals). In my first few years of attendance, starting in 2009, I absorbed much more on the technical side, but the talks that have struck a chord in recent years of attendance have been more on the side of the human element of software and software engineering.

    Concept Compression

    DHH started the day with the opening keynote, and I perceived the main focus of his talk to be the idea of “Concept Compression”. Ruby on Rails has spent many years compressing concepts (e.g. ORM) to lower the barrier to entry. In theory, this should allow more diverse people to enter the software field, but the problem is that while we’ve been compressing concepts along our way, we’ve also added significantly to the list of things that developers ought to know before they start coding.

    DHH has always been focused on developer happiness in Rails, so to me, this topic was another extension of developer happiness in talking about the progression of Rails over the years. If Rails isn’t careful, we’re bound to repeat mistakes of the …


    rails ruby conference

    Using FFI in Ruby

    Kamil Ciemniewski

    By Kamil Ciemniewski
    April 16, 2018

    Photo of pipes
    Photo from AMOB

    Ruby for many years has been proving to be an amazing language. It’s one of the most popular for creating web applications but also DevOps / systems administration tools.

    It seems that languages are naturally finding their own niches. For Ruby it’s what I listed above, while Python seems to work well for computer vision and machine learning.

    For performance reasons, some code should never be coded in either one. Topic boundaries are being crossed typically though. You might be working on the web app that does some high performance math in the background. To marry the two worlds, people were successful with creating compiled “extensions”. These extensions are typically coded in C. Both languages along with their interpreters are able to use those using native-to-language constructs.

    One good example of this is the great numpy package. It brings high-performance linear algebra constructs that would be impossible to code in pure Python with the same performance.

    In the Ruby land, a similar example is the nokogiri gem. It allows very fast XML / HTML processing thanks to the core of its functionality being coded in C.

    You might also be working on a Ruby app having a …


    ruby c

    Ruby on Rails: Russian Translation and Pluralization

    Steph Skardal

    By Steph Skardal
    April 12, 2018

    Coding [Photo by Matthew Henry of Burst](https://burst.shopify.com/photos/woman-codes)

    Russian is Hard

    Translation to Russian is tricky, and what’s even more tricky is coding logic to handle localization and pluralization of Russian (especially when you can’t read it). Here, I’ll explain some of the complexities and approaches I used for localization of a Ruby on Rails application.

    Pluralization

    In general, Rails claims to have good localization and pluralization support, but I found that the support for handling more complex translations required customization. The first thing to note is that pluralization in Russian is not quite as simple as it is in English.

    English

    In English, we are familiar with pluralization of regular nouns to be appending an ‘s’ to the end of the noun (except for those nouns ending in ‘y’ and ‘o’). Pluralization is irregular in some cases, e.g. “octopus” becomes “octopi”, and Rails can handle some of these special cases for English but may not necessarily understand rules for other languages. See:

    pry(main)> pluralize 1, 'user'
    => "1 user"
    pry(main)> pluralize 2, 'user'
    => "2 users"
    pry(main)> pluralize 1, …

    rails ruby localization

    Shell Command Outputs Truncated in Python

    Selvakumar Arumugam

    By Selvakumar Arumugam
    April 5, 2018

    Two guys working at computers
    Photo by Sarah Pflug of Burst

    Recently I was working on a Python script to do some parsing and processing on the output of shell commands in Ubuntu. The output that showed up was truncated.

    The below sections will walk through the debugging process to identify the root cause and implement a solution with detailed explanation, using Python 2.

    Problem

    The following code block shows the output of a shell command which lists the installed packages, name and version, in Ubuntu.

    # dpkg -l | grep ^ii | awk '{print $2 "    " $3}'
    accountsservice    0.6.35-0ubuntu7.3
    acl    2.2.52-1
    adduser    3.113+nmu3ubuntu3
    ant    1.9.3-2build1
    ant-optional    1.9.3-2build1
    apache2    2.4.7-1ubuntu4.18
    apache2-bin    2.4.7-1ubuntu4.18
    apache2-data    2.4.7-1ubuntu4.18
    apache2-utils    2.4.7-1ubuntu4.18
    apparmor    2.10.95-0ubuntu2.6~14.04.1
    

    The same shell command executes in the Python console but the output shows truncated values for a few packages’ versions, for example, accountsservice, adduser, apache2, etc.

    >>> import subprocess
    >>> installed_packages = subprocess.check_output(['dpkg -l | grep ^ii | awk \'{print $2 "    " $3}\''], shell= …

    python shell environment

    Start basic application with Vue.js 2 and Drupal 8

    Piotr Hankiewicz

    By Piotr Hankiewicz
    April 5, 2018

    Vue.js 2 and Drupal 8

    Introduction

    The purpose of creating this post is to show how fast can you build web applications with Vue.js on the front-end and Drupal on the back-end side.

    Let’s call our project “Awesome Nerds”.

    What do we need?

    • Debian/Ubuntu system
    • Internet
    • 30 minutes
    • Vagrant & VirtualBox
    • Git
    • Vim
    • Yarn

    Step by step

    Here’s what we’re going to do:

    • Install Vagrant, VirtualBox, and Git
    • Setup a new Drupal 8 project that will be our back-end project
    • Setup a new Vue.js project that will be our front-end application
    • Let’s code

    Install Vagrant, VirtualBox, and Git

    Open your console and run:

    $ sudo apt-get install software-properties-common - getting some common libraries

    $ sudo apt-add-repository ppa:ansible/ansible

    $ sudo apt-get update

    $ sudo apt-get install ansible - installing Ansible

    $ wget ‘https://releases.hashicorp.com/vagrant/2.0.2/vagrant_2.0.2_x86_64.deb’ && dpkg -i vagrant_2.0.2_x86_64.deb - installing Vagrant

    $ sudo apt-get install dkms

    $ deb https://download.virtualbox.org/virtualbox/debian <mydist> contrib

    $ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

    $ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | …


    vue drupal javascript php open-source

    Designing for SEO from the Start

    Jon Allen

    By Jon Allen
    March 28, 2018

    Search engine optimization (SEO) is critical to the success of your website, and therefore critical to the success of your business. A high Google ranking means more page views—​and more conversions. Google rewards websites that are user-friendly and easy-to-navigate, with fresh content and frequent updates. At End Point, we design with SEO in mind from the beginning of the project to help you get the most value from your online presence.

    These are the five main areas that we focus on to improve your ranking:

    1. Content Strategy—​You want to provide your users with quality content. We can provide a content strategy to help ensure that your site stays on target, with clear copy, focused messaging, and consistent branding. We’ll help you put together a site that gets visitors where they want to be—​and you’ll reap the rewards with an increase in traffic to your site.

    2. Sitemap, Keywords, and Semantic Markup—​We dive into the nuts and bolts of your site to make sure that it can be crawled and indexed easily by Google. We produce a prioritized XML sitemap, relevant, long-tail keywords and metadata, descriptive page headings, titles, and URLs. Your site’s code will utilize HTML5 …


    design seo

    In-House to Consulting, Rinse and Repeat

    Steph Skardal

    By Steph Skardal
    March 28, 2018

    In House vs. Consulting
    Photo by Matthew Henry of Burst

    Hi! I’m Steph. I’ve been working 10+ years now as a software engineer, and I’ve spent ~4 years of that as an in-house developer at 2 different companies and 7+ years as a consultant here at End Point and as an independent contractor. Whenever I’ve started a new position, I get asked “What’s it like on the other side?” or something along the lines of “Is the grass greener?” I thought my answer to this was good blog fodder, so here we are.

    If you google “in-house vs. consultant”, much of the results are written from the perspective of a company looking to hire either in-house engineers or looking to outsource to consulting companies. Here’s my approach to answer the question as it relates to employee happiness, skill development, and job satisfaction.

    Working as an in-house engineer

    • Working as an in-house engineer can mean that you may focus on one technology (or one web stack) and even one main codebase, although this isn’t necessarily true. When I worked for Backcountry.com a while back, the main application was an ecommerce application running on Interchange, and that’s where I spent most of my dev time. But as my experience grew, I began working …

    tips software
    Previous page • Page 46 of 218 • Next page