Rails Active Storage
Overview
Active Storage is a new feature of Ruby on Rails 5.2 that provides functionality to upload files to the cloud, currently Amazon Web Services, Google Cloud, Microsoft Azure.
This gem attaches pointers to uploaded files to the Active Record object. It uploads the file asynchronously which reduces app server overhead, and it also doesn’t require adding a background job explicitly. Active Storage by default uses Active Job to upload the files.
Features of Active Storage
Mirror Service: This allows synchronization of the file between multiple cloud storage services. For example we have this config/storage.yml:
development:
service: Mirror
primary: amazon
mirrors:
- azure
- googleThe Mirror service first uploads files to Amazon S3. After that it pushes to Azure and Google Cloud. When we remove the file then first it removes it from Amazon S3 and after that it removes it from Azure and Google Cloud. This service is very helpful when we are migrating from one cloud to another.
Direct Uploads: Active Storage comes with a JavaScript library activestorage.js. By using this library we can upload files from the front-end browser to cloud storage directly. Some events …
ruby rails
Vue in Ecommerce: Routing and Persistence

I recently wrote about Vue in Ecommerce and pointed to a handful of references to get started. Today, I’ll talk about using vue-router in a small ecommerce application, combined with vuex-persist for state storage.
I forked this Vue Shop on GitHub from Matheus Azzi. It was a great starting point for to see how basic component organization and state management might look in a Vue ecommerce application, but it is a single page ecommerce app with no separate page for a product detail, checkout, or static pages, so here I go into some details on routing and persistence in a Vue ecommerce application.
Vue Router
In looking through the documentation, I don’t see a great elevator pitch on what it is that Vue Router does. If you are new to routing, it’s a tool to map the URL request to the Vue component. Since I’m coming from the Rails perspective, I’m quite familiar with the Ruby on Rails routing from URL pattern matching, constraints, resources to Ruby on Rails controllers and actions. Vue routing via vue-router has some similar elements.
When you create a basic Vue application via vue-cli, you are given the option to include vue-router:
vue init webpack myapp
? Project name myapp
? …ecommerce vue javascript open-source
Vue and Ecommerce: An Introduction

I speak the domain specific language of ecommerce, Ruby on Rails, JavaScript, and jQuery. Lately, I’ve been getting up to speed on Vue.js. I’ve been working on writing a small ecommerce site using Vue.js, because for me, creating an application addressing familiar paradigm in a new technology is a great way to learn.
Vue.js, initially released about 3 years ago, is a lightweight JS framework that can be adopted incrementally. In the case of my small example site, Vue.js serves the frontend shop content and connects to a decoupled backend that can be run on any platform of choice. On my path to get up to speed on Vue, I found great resources that I wanted to write about before I get into the details of my ecommerce app. Here they are:
- First, I started with the Vue.js documentation. The documentation is great as a starting point to understand some of the terminology. I often don’t love the documentation that comes with technologies, but I found the Essentials section in the Vue documentation to be a great launching point.
- After I worked through some of the Vue.js documentation, I did a simple search for “vue jsfiddle” and experimented with a few of those fiddles. Having come from a …
ecommerce vue javascript open-source
Sunsetting Piggybak, A Ruby on Rails Ecommerce Gem

Hi there! I’m Steph, the original creator and not-very-good maintainer of Piggybak, a modular ecommerce platform written in Ruby on Rails. With the help of End Point, I created Piggybak after building a custom Ruby on Rails ecommerce application for one of our clients here at End Point.
My goal with Piggybak was to create a lightweight, modular ecommerce platform in the form of a Ruby on Rails gem that could be combined with other Ruby on Rails gems for quick setup. Over the years, End Point has had much success working in Interchange, an ecommerce framework written in Perl. The web stack has evolved greatly over the years, as has the capacity for modularity and the ability to decouple front-end and back-end architecture.
Fast forward about 4 years after Piggybak was released, and we’ve decided to retire it. Not only did I leave the maintenance up to End Point after I left to work as an in-house software engineer for the last couple of years, but I was also in a position to evaluate using Piggybak as the base for a custom solution.
While I think there are some great Ruby on Rails gems to help support your ecommerce application (see below), one of the main things I realized was …
ecommerce ruby rails open-source
Liquid Galaxy at the Pyeongchang 2018 Winter Olympics
The Winter Olympics are in full swing in Pyeongchang, Korea! We’re proud to note that we have a full Liquid Galaxy running onsite there as well.
Our Seoul-based partner, AZero, has been working closely with KEPCO, the Korean power company, to bring Liquid Galaxies to several of their visitor centers scattered throughout South Korea. KEPCO utilizes the Liquid Galaxy to showcase their infrastructure elements of hydroelectric dams, large power stations, and substations to show how they bring electricity to the 40M+ people living in South Korea.
As a lead corporate sponsor of the games, KEPCO wanted to bring that same story to the Olympic venues. AZero developed new content that highlights the Olympic venues and Pyeongchang area and deployed the Liquid Galaxy at the Gangneung branch office (near Pyeongchang, and also a host of several Olympic venues).
Now that the games are in full swing, KEPCO is bringing VIPs, government officials, and a global list of business contacts to their center, and is using the Liquid Galaxy as the central platform to present their accomplishments.
If you’re in Pyeongchang, why not take some time to see this incredible immersive platform?
End Point is …
visionport event clients
Regionation with PostGIS

Recently a co-worker handed me a KML file and said, in essence, “This file takes too long for the Liquid Galaxy to load and render. What can you do to make it faster?” It’s a common problem for large data sets, no matter the display platform. For the Liquid Galaxy the common first response is “Regionate!”
Though your dictionary may claim otherwise, for purposes of this post the word means to group a set of geographic data into regions of localized objects. This is sometimes also called “spatial clustering” or “geographic clustering”. After grouping objects into geographically similar clusters, we can then use the KML Region object to tell Google Earth to render the full detail of a region only when the current view shows enough of that region to justify spending the processing time. Although the “Pro” version of Google Earth offers an automated regionation feature, it has some limitations. I’d like to compare it to some alternatives available in PostgreSQL and PostGIS.
Data sets
For this experiment I’ve chosen a few different freely available datasets, with the aim to use different geographic data types, distributed in different ways. First, I found a database of 49,000 on-shore …
postgres gis visionport kml
New Tools — Old-Fashioned Project Management

Photo by Kennisland, CC BY-SA 2.0, cropped
In the last year at End Point, I’ve managed projects in Trello, JIRA, Redmine, Basecamp, RT (Request Tracker) and a few others. The market of project management tools is wide and varied…and they are all great. Well, maybe that’s a topic for another post.
However, I’ve been thinking lately—as I kick off yet another project—that no matter what tool you use for managing your project there are some fundamentals you should never forget. For those of you deep in the mud of project management tools I have some reminders for you:
Communicate with your client
No matter what tool you use to manage development, don’t let fancy apps or tools take the place of actual one-on-one time with your client. Hearing from them in their own voice about their needs and how the project affects their business and goals is invaluable. No project can succeed without the stakeholder’s vision.
Don’t stop talking to your client once the proposal is written or the project scope is done…create a way to talk to them often. Talking to your client can take many forms, but an old-fashioned phone call is always a good way.
Show measurable progress
I have noticed that the …
management
YouTube Algorithms, Engagement, and You

Photo by Garry Knight, CC BY 2.0, modified
As we move into 2018, it is important to understand how algorithms have automated much of what we see when browsing websites such as YouTube, Google, Facebook, Twitter, etc.
While YouTube is certainly facing its fair share of controversies and criticism1, it is unlikely that YouTube will be toppled as the predominant video entertainment source for the current generation of young adults and children within the next five years. With that in mind, it is important that we can understand just how YouTube decides both what videos it thinks you should be seeing and how it places ads on those videos.
So many videos!
YouTube is currently experiencing a glut of uploads and content—with over 400 hours of video uploaded each minute2—and it can be difficult to have a video pick up traction within this never-ending barrage of uploads. While most of the videos you may see on YouTube have view counts ranging from hundreds of thousands to millions, the average view count for videos in the tech sector is just around 6,500—and even this is much higher than the median view counts.
Many videos uploaded to the service do not utilize techniques to maximize …
video marketing


