Geocoding Addresses & Calculating Time/Distance with Google Maps APIs

This is mostly for my own personal reference…

To convert between addresses and latitude/longitude, it’s pretty easy to use the Google Maps Geocoding API. A pretty simple concatenation of either an address or a lat/long will get you the result you want in either JSON or XML.

Say you have a bunch of addresses and you want to quickly calculate distance and travel time between all of them. Well, that is super duper simple with the Google Maps Distance Matrix API. It’s pretty easy to configure to obtain driving calculation where tolls, freeways, or ferries are avoided, and you can configure it for whatever unit or language you need as well. It also allows queries for transit, walking, and bicycling. Just plug in a bunch of addresses, and get back all the data you’d need for a mileage and time table in JSON or XML.

Both of these APIs are likely to require API keys when deployed.

Accessing Visual FoxPro Data When You Get the ODBC “Not a table (#123)” Error

A while back, someone handed over some scheduling data in a somewhat clunky old application in desperate need of modernization. I looked under the hood and figured out that this thing uses a FoxPro database! Microsoft discontinued development of Visual FoxPro way back in 2007, and I hadn’t seen a working FoxPro database since the late 1990s…so I knew it might be tricky to get the data out.

TL;DR: I fired up Microsoft Access to see if I could link to the external data. This was harder than I expected because Windows 10 and Access 2016 no longer ship with a Visual FoxPro ODBC driver. Once I found one, I could easily link to all of the tables—except for the ones that included variable-width memo fields. I could use an OLE DB provider to get to tables with memo fields, but only via Excel or programmatically. Access apparently can’t create a linked table via OLE DB.

Continue reading “Accessing Visual FoxPro Data When You Get the ODBC “Not a table (#123)” Error”

Why I Hosted WordPress on AWS & LEMP

The Purpose of This Project

For every project there is a purpose. In my case, a colleague designed and hosted a site for me that runs the popular WordPress CMS. Due to a change in focus in his business and changing needs of mine, it became prudent to take over hosting and management of my website. While I recognize that there are limitations and caveats with WordPress, as I’m sure can be said of any CMS platform, it works for me and it’s already set up. While I have many grand ideas for my site, right now I don’t have the time or the team to implement them, and frankly they aren’t my highest business priority. So I’ve decided to stick with what already works rather than build something new and move everything into it.

In this article I’ll discuss:

Continue reading “Why I Hosted WordPress on AWS & LEMP”