Expert Help with Your SaaS System
Are you thinking about starting a new website and using BigCommerce, Shopify, or WooCommerce? The software-as-a-service offerings on the market today can help you get a great-looking, low-cost ecommerce website up and running quickly, but you may need more help than you first expect.
In order to get the most out of your site, ecommerce consultants like us at End Point can guide you through setup, customize your site to fit your brand, manage all of your technical requirements, and help drive traffic to your site. This post is an overview of services we offer to clients looking for a SaaS solution.
Select the Right Vendor
Working with an expert consultant can help you make the right choices from the start. Sometimes knowing the level of customization that your project requires can be a real challenge. End Point has experience with everything from out-of-the-box SaaS platforms to large-scale, custom software developments—we take time to understand your requirements and guide you to the perfect solution for your business.
Custom Design
Most SaaS offerings include ready-to-use, beautiful design templates, but you’ll often find that they require some tweaking. We can customize your …
ecommerce saas wordpress design project-management
RailsConf 2018 Summary: The Train is Still Moving
An actual Duplo creation I built at my house this morning, while my kids are at daycare.
Hi! Here’s my wrap-up summary of RailsConf 2018, my 8th time attending. And I say that only to provide some context for my perspective.
All.The.Analogies.
Code is a theatrical performance and devs are the actors. Code is a craft and senior devs are the artisans who create and innovate on a framework. Code is a house that you live in—you need to leave it better than how you found it, value improvement over consistency, and communicate more as you get to live in this house. Code infrastructure is a Jenga tower waiting to topple. The Rails router is a mail carrier sorting system. A new codebase is a map that you start to navigate once you begin working on it. There have been so many analogies here at RailsConf, I can’t keep track of them anymore.
Here’s my analogy: Rails is a train. It’s a train made out of Lego blocks disguised as Duplos with mostly white bearded guys wearing graphic tees. This train is still getting businesses from point A to B. Some of those businesses care about that train that’s getting them where they need to be, some don’t. But certainly, most businesses that come to …
rails ruby conference
RailsConf 2018: Communication 101
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
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
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
[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
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.1The 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
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

