Our Blog

Ongoing observations by End Point people

End Point at Google for Kenya

By Will Plaut
November 2, 2018

End Point at Google for Kenya

Last month End Point had the great pleasure of exhibiting a Liquid Galaxy in Kenya’s capital city of Nairobi at the first Google for Kenya event.

Kenya is home to the first Google office in Africa (opened 11 years ago) and Google is planning on growing its involvement in the country. The event was part of Google’s Next Billion Users initiative, and centered around some big announcements for Kenya. Google announced major financial commitments to a broad range of goals aimed at spurring innovation and they also announced the release of Street View for Kenya!

Liquid Galaxy

In July we did a similar Next Billion Users Google event in Lagos, Nigeria. The Nigerian event was open to the public and had around 7,000 guests so it was a nice change of pace to have only a couple hundred guests at the Google for Kenya event.

The Liquid Galaxy was center stage and guests took turns finding Street Views of their houses/​apartments and then looking through the spectacular Street View scenes from across the country. The Street View of the Tusks of Mombasa seemed to put a smile on everyone's face. My personal favorite was a panosphere taken from a drone of the great wildebeest migration in Maasai Mara.

LG being shown to Kenya's Minister of Tourism

Guests asked questions about what Street View actually gets used for and it made me think about how ubiquitous it has become in the United States. Just last week I used Street View to verify an address and find parking near my voting location. These things sound small but are immensely valuable when you need them. I’m sure Kenyans will find all sorts of new ways to get value from this Google service.

Will at Google for Kenya

We were thrilled to have the opportunity to share Liquid Galaxy, and support Google for Kenya in leveraging the platform to explore local regions and homes. Google had previously installed the Liquid Galaxy in five different continents (North America, South America, Europe, Asia, and Australia), and these two recent events are the first in which Google has used Liquid Galaxy in Africa.

liquid-galaxy event

How I Learn New Technologies

By Árpád Lajos
October 30, 2018

woman typing at desk
Photo by Marco Verch · CC BY 2.0, modified

If a developer has plenty of time, then the best way to learn a technology is to read a book about it, solve the tasks the book presents, and then to do some very basic work just to get some real-world experience. When this is done, one might want to watch some tutorial videos, consult with people who are either also learning, or, even better, are experienced in the given technology.

When someone gets comfortable with a dev stack, the person might be inclined to prefer to work only in his or her comfort zone. In consulting, this is feasible in the majority of cases. But what if someone gets a new project in a different software stack? Is it a big problem? In my opinion, it’s not a problem, if we are able to determine the minimal knowledge we need to get started. So how can a developer quickly grasp the essence of the problem space? Where are answers to the most frequent questions reachable?

In 2008 I graduated from the university and was looking for a job. In the middle of the world economic crisis new programmers had limited chances at getting a job. So I began accepting very small projects from varied clients, all using vastly different technologies. To be successful at this, I realized I had to revise my method of learning technologies.

I particularly remember the case when in 2009 I had a small JavaScript project and I had no knowledge whatsoever and a deadline of 24 hours, as the client needed the job done ASAP. Reading a book was not an option. Even a tutorial was too long, so after four hours of trying hard to solve the problem I watched Douglas Crockford’s video. After so much suffering, his joke “Good morning, everybody, welcome to the Blair Witch project” was more than fitting about how I felt in that situation. After four hours of suffering I finally found an ally. With the help of this video I was able to grasp the core of the knowledge I needed, that is, the information I need to be able to quickly find other...

tips programming community

Image Recognition Tools

By Muhammad Najmi bin Ahmad Zabidi
October 10, 2018

detecting 1 face

I’m always impressed with the advancement of machine learning, and, more recently, deep learning. However, since I am not an expert in the field I decided to let the researchers and scholars elaborate more on them.

In this post I will share the existing tools and the associated libraries to make them work, at least for me.

The reason I explored these tools is simple: I plan to deploy a poor man’s security camera in my home with some “sense” of intelligence. Since I am working at home, I want to know who is actually knocking my door. So I thought, what if I could use a web cam to monitor my door and let me know who’s actually standing at the door?

Face Detection

I searched around for existing face detection software and found this Python script using Haarcascade. So I was able to detect faces, but upon sharing the “findings” with a friend he said this only detects faces. How would the computer be able to recognize who’s who? Then I stumbled upon the phrase “face recognition”.

You might have noticed that if you use the image file that you import directly from your smartphone, the output will be displayed in a large file to the screen. You can use ImageMagick to resize the file to say, 640x480 pixels.

$ file makan.jpg
makan.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=15, height=3120, bps=0, width=4160], baseline, precision 8, 4160x3120, frames 3

$ convert makan.jpg -resize 640x480 makan-small.jpg

$ file makan-small.jpg
makan-small.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=15, height=3120, bps=0, width=4160], baseline, precision 8, 640x480, frames 3

detecting 2 faces

Machine Vision

The computer doesn’t see the image directly as the humans seem to, so we need to convert the images into numerical values. For example, in the facial regcognition tools, the training file...

machine-learning python

Immersive and GIS Developer Job Opening

By Benjamin Goldstein
October 2, 2018

Liquid Galaxy Installation

We are looking for a full-time, salaried engineer to help us further develop our software, infrastructure, and hardware integration for our shared immersive system, End Point Liquid Galaxy.

What you will be doing:

  • Develop new software involving 3D GIS, panoramic video, Google Earth, a custom CMS, 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 at customer locations
  • Build tours and supporting tools for emerging markets
  • Integrate and test new hardware to work with the system

What you will need:

  • Sharp troubleshooting ability
  • Experience with “devops” automation tools such as Chef
  • Strong programming experience in one or more of these languages:
    • Python
    • JavaScript
    • C/C++
    • Ruby
  • Linux system administration skills
  • A customer-​centered focus
  • Strong verbal and written communication skills
  • Experience directing your own work, and working remotely as part of a team
  • Enthusiasm for learning new technologies

Bonus points for experience with:

  • Contributing to open source projects
  • Working with GIS, e.g., ESRI, Mapbox, Open Street Map, KML, CesiumJS, Google Maps API
  • Maker, Blender, 3D modeling
  • Packaging software (e.g., dpkg/​apt, catkin), building custom OS images, PXE booting
  • Working with Linux device drivers and networking
  • Doing image and video capture and processing, 360° video, or virtual reality
  • Using PostgreSQL or other databases
  • Experience with Unity or Unreal Engine
  • Writing server-​side web applications with Django
  • Experience with machine learning (e.g., RASA)
  • Working with SAGE2
  • Working with web client technology such as HTML, CSS, DOM, browser extensions

About us:

End Point is a technology consulting company founded in 1995 and based in New York City, with around 50 employees working from our offices in New York City, the tri-cities area in eastern Tennessee, and from home offices around the globe. We serve over...

company liquid-galaxy jobs gis

Building Rasters in PostGIS

By Josh Tolley
September 12, 2018

Raster banner

In a past blog post I described a method I’d used to digest raw statistics from the Mexican government statistics body, INEGI, quantifying the relative educational level of residents in Mexico City. In the post, I divided these data into squares geographically, and created a KML visualization consisting of polygons, where each polygon’s color and height reflected the educational level of residents in the corresponding area. Where the original data proved slow to render and difficult to interpret, the result after processing was visually appealing, intuitively meaningful, and considerably more performant. Plus I got to revisit a favorite TV show, examine SQL’s Common Table Expressions, and demonstrate their use in building complex queries.

But the post left a few loose ends untied. For instance, the blog post built the visualization using just one large query. Although its CTE-based design rendered it fairly readable, the query remained far too complex, and far too slow, at least for general use. Doing everything in one query makes for a sometimes enjoyable mental exercise, but it also means the query has to start from zero, every time it runs, so iterative development bogs down quickly as the query must recalculate at every new iteration all the expensive stuff it already got worked out in previous runs. Further, the query in that post calculated its grid coordinates all on its own; there’s an easier method I promised to introduce, which I’d like to demonstrate here.


GIS databases contain information of (at least) two different types: vector data, and raster data. Vector data describes points, connected with lines and curves, and various objects derived from them, such as polygons and linestrings. Rasters, on the other hand, represent a two dimensional array of pixels, where each pixel corresponds to a certain geographic area. Each pixel in the raster will have two sets of associated coordinates: first, latitude and longitude values describing the geographic...

postgres gis sql database

Job opening: .NET/​C# and JavaScript developer

By Jon Jensen
August 30, 2018

programmer at keyboard on desk
Photo by #WOCinTech Chat · CC BY 2.0, modified

We are looking for another talented full-time software developer to join us, working with .NET and C# on Windows, JavaScript, and at least one of PHP, Java, or Ruby.

If you like to solve business problems and can take responsibility for getting a job done well without intensive oversight, please read on!

End Point is a 23-year-old web consulting company based in New York City, with about 50 employees, the majority working remotely from home offices. We collaborate using SSH and Remote Desktop, GitLab, GitHub, chat, Hangouts and other conferencing software, and good old email and phones.

We serve over 200 clients ranging from small family businesses to large corporations.

We are experts in web development, databases, and DevOps, and we use mostly open source frameworks, in a variety of languages, on Linux and Windows.

What you will need:

  • Professional experience building reliable back-end web applications using .NET and C#, as well as PHP, Java (or Kotlin or Scala), or Ruby
  • Good front-end web skills with responsive design using HTML, CSS, and JavaScript (including jQuery, Vue, Angular, React, etc.)
  • Experience with databases such as PostgreSQL, MySQL, SQL Server, Redis, Elasticsearch, etc.
  • A focus on needs of our clients and their users
  • Strong verbal and written communication skills
  • A bit of experience with cloud services at Microsoft Azure, Amazon Web Services (AWS), or Google Cloud

What you will be doing:

  • Work from your home office, or from our offices in New York City and the Tennessee Tri-Cities area
  • Consult with clients to determine their business application needs
  • Build, test, release, and maintain web applications
  • Work with open source libraries and contribute back as opportunity arises
  • Use your desktop platform of choice, as long as you can get the work done on it: Windows, macOS, Linux
  • Learn and put to use new technologies
  • Direct much of your own work

What does working here bring employees?

  • Flexible...

company jobs

Self-driving toy car using the Asynchronous Advantage Actor-Critic algorithm

By Kamil Ciemniewski
August 29, 2018

The field of Reinforcement Learning has seen a lot of great improvement in the past years. Researchers at universities and companies like Deep Mind have been developing new and better ways to train intelligent, artificial agents to solve more and more difficult tasks. The algorithms being developed are requiring less time to train. They also are making the training much more stable.

This article is about an algorithm that’s one of the most cited lately: A3C — Asynchronous Advantage Actor-Critic.

As the subject is both wide and deep, I’m assuming the reader has the relevant background mastered already. Although reading it might be interesting even without understanding most of the notions in use, having a good grasp of them will help you get the most out of it.

Because we’re looking at the Deep Reinforcement Learning, the obvious requirement is to be acquainted with the neural networks. I’m also using different notions known in the field of Reinforcement Learning overall like $Q(a, s)$ and $V(s)$ functions or the n-step return. The mathematical expressions, in particular, are given assuming that the reader already knows what the symbols stand for. Some notions known from other families of RL algorithms are being touched on as well (e.g. experience replay) — to contrast them with the A3C way of solving the same kind of problems. The article along with the source code uses the OpenAI gym, Python, and PyTorch among other Python-related libraries.


The A3C algorithm is a part of the greater class of RL algorithms called Policy Gradients.

In this approach, we’re creating a model that approximates the action-choosing policy itself.

Let’s contrast it with value iteration, the goal of which is to learn the value function and have policy emerge as the function that chooses an action transitioning to the state of the greatest value.

With the...

python machine-learning artificial-intelligence

Liquid Galaxy at Google for Nigeria

By Brian Zenone
August 6, 2018

Google for Nigeria

Over the years, Liquid Galaxy has taken us to many a far-flung locale, but few of us at End Point were expecting a Liquid Galaxy installation in Africa. Yet that is exactly what happened: In conjunction with Google’s “Next Billion Users” initiative, End Point was invited to install a Liquid Galaxy at “Google for Nigeria” in Lagos, Africa’s largest city, a teeming metropolis of 21 million souls.

With the challenge of getting our equipment to Nigeria and hearsay about intermittent Internet and electricity, we had more than our usual concern about making sure our Liquid Galaxy would function reliably for the event. And given the US Department of State’s warnings about health and safety, the trip would be more involved than most. However, End Point engineer Will Plaut fairly leapt at the chance. More than 20 hours of flying, a bevy of vaccines and a host of visa procedures were no match for Will’s intrepid spirit and sense of adventure — he even took it upon himself to hunt down the difficult-to-find Yellow Fever vaccine in Greenville, South Carolina.

But before simply sending Will off to fend for himself amidst the hubbub of Lagos, the list of logistics problems seemed unending. The first order of business was to find a local contact to advise us both on the vagaries of shipping and customs as well as to help our engineer set the system up, keep him out of harm’s way, and give him a real taste of Nigeria. A tall order. Luckily, End Point had a personal contact who put us in touch with Olufunmilola “Afeez” Atiku, fixer extraordinaire. Afeez was not only able to explain to us the protocol for shipping (the LG could not be simply shipped to the airport in Lagos, then picked up, but had to be entrusted to a local shipper), he also arranged for Will to be picked up at the airport, whisked through customs, and accompanied & assisted 24×7 for the next 6 days by the joyous and trusted Taofik. The driving chores were delegated to an aptly named fellow known only as “Happiness...

liquid-galaxy event
Page 1 of 176 • Next page

Popular Tags


Search our blog