Today, I’m releasing an Alpha version of the BMLTiOSLib (further documentation will appear as I get closer to release).
As most of you have probably already found out, Google now enforces HTTPS and API keys in their Maps.
This results in:
1) the dreaded “Oops! Something went wrong!” display:
2) and/or the “Unable to Determine Your Location” display:
This happens if you try to use a location-tracking feature, like the “Find Meetings Near Me” button in the Satellite.
If you have used the NAWS Export Functionality of the BMLT to send synchronization dumps to NAWS, you have received a spreadsheet in reply, with a series of meetings that have revised or newly-assigned Committee Codes (what we call “World ID” in the BMLT).
These are fairly long sequences of numbers, prefixed by one or two letters, like so:
- Regions are listed as “RGXXX“, with “XXX” being 3 digits (with leading zeroes). For example: “RG001”, “RG123”.
- Areas are listed as “ARXXXXX“, with “XXXXX” being 5 digits (also with leading zeroes). For example: “AR00001”, “AR00123”, “AR12345”.
- Groups are listed as “GXXXXXXX“, with “XXXXXXX” being 7, leading-zero-padded digits. For example: “G0000001”, “G0001234”, “G1234567”.
These need to be assigned back to your BMLT database in order to ensure continued synchronization with NAWS.
IT IS EXTREMELY IMPORTANT TO DO THIS! DON’T IGNORE THE SPREADSHEET RETURNED TO YOU BY NAWS!
It is very much worth it to keep NAWS in sync with your database, so this operation is important.
Thankfully, NAWS has agreed to do a certain thing that makes this process fairly easy to automate.
This post will spell out a somewhat “high geek factor” way of doing it. I will be working on a tool to abstract the complexity, but that will be a little while in coming.
OK. I have completed adding all the basic functionality to the BMLTiOSLib project.
I still need to add stimulus support for these to the test harness app.
Once I have validated the library with the test harness, I’ll write some small sample usage apps in both Swift and Objective-C.
There’s probably still a month or more to go before the library is ready for me to call it “done,” but it’s in great shape.
I’m in the process of releasing an updated version of the awesome BMLTAdmin app. The update won’t add any new functionality. It’s merely a tweak for the latest Apple iOS version (iOS 10). The original version still works fine, so there’s no urgency to update.
So what I’ll be developing will be an iOS framework for people that want to develop iOS apps for the BMLT. It will abstract all server communications using an Observer Pattern (Apple calls it “delegates“).
The whole idea is to make it insanely easy to write iOS apps that will interface with the BMLT.
I’ve done this kind of thing before, and it will work out great. It may take a few months, though, because I do this kind of thing extremely carefully. This will be an “infrastructure-level” framework, and needs to be of the absolutely highest quality possible. I’ll also need to write some fairly comprehensive documentation.
It will be written in Swift, and will require a fairly current version of the operating system (never an issue with Apple, but a huge problem with Android, and one of the reasons that I don’t program Android). It will abstract the JSON variant of the Semantic Interface.
At the time of this writing, there’s still a long way to go.
At the Worldwide Developer Conference this year, Apple announced that it will force all iOS apps to use HTTPS to connect to the Web.
This could have a fairly big impact on the NA community, and the BMLT Community, especially.
A few months ago, I reworked the BMLT to behave properly in SSL/HTTPS (secure Web sites), and with nonstandard ports (a technical term -if you don’t know what it means, don’t worry).
That means that you can run the BMLT on secure sites (ones with “httpS://” prefixes), no problem.
Hosting those sites is a bit more of a challenge, though. Here’s a good blog entry that makes it fairly straightforward and simple.
If you are running an NA site, you may want to consider switching it to HTTPS. I’ll get around to doing that with this site in my copious free time. I already run a test site with SSL.
The biggest issue with running SSL/HTTPS on your site, is that it can be slower. The reasons are a bit technical, but basically, SSL likes browsers to do just one or two things at a time, whereas HTTP allows a whole bunch of simultaneous actions. I’m hoping that changes rapidly as SSL becomes the standard.
The most likely immediate impact on the BMLT could be that the iOS app might stop working. I’m not sure if that will be the case or not. Apple seems to be a bit vague on how they will enforce their edict. They may not allow me to make any updates without SSL, but may allow the current (extremely stable) version to run non-SSL.
More will be revealed…
The BMLT is an epic project with major impact on NA. Don’t let the fact that it is an “outside the Service structure” project fool you into thinking that it shouldn’t be taken very, very seriously. Remember that all these folks take the BMLT quite seriously. They use it to manage what is arguably the most important Service that a Service body can do: namely help people find NA (and even non-NA) meetings. There’s dozens of places that we could use help.
The BMLT has been designed as a platform, not an app. That means that the BMLT is just the beginning. It provides a solid foundation on which we can build all kinds of things.
MOST (not some –MOST) of the help we could use only requires a minimal level of technical knowledge. Additionally, work on the BMLT can help you to learn extremely valuable skills that could benefit you in real life, not just NA Service.
The standard map search and text searches are a bit of overkill for most folks; especially where smaller Service bodies are concerned.
With that in mind, I created the Fast Table Display Shortcode.
It allows you to display a simple, dynamic table of meetings for almost any search query.
Implementing it is slightly more complex than the standard search, but it should work well.
I have to announce that the Joomla plugin will no longer be updated past version 3.0.29.
Joomla is just too chaotic and difficult an environment to support, and it is unsafe to run old versions of their server (which are the only ones we could support, anyway).