Why does CacheManager receives code 202 for MapQuest? - osmdroid

I notice that it seems impossible to use the CacheManager with the tiles source MapQuest, it receives http code 202 and doesn't download the tiles.
Do you know why?

Just ran across on this on the osm mailing list
MapQuest is moving to a 100% cloud solution - the new infrastructure dictates that all tile access will require a key. Details on how to get keys, SDKs and general migration information is below:
On Monday, July 11, 2016, our direct tile access to MapQuest legacy maps will be discontinued. After Monday, July 11, 2016, we’ll require those using our direct tiles access to sign up for a plan on the Developer Network and transition to one of our four mapping solutions:
MapQuest plugin for Leaflet
iOS mobile SDK
Android mobile SDK
Static map API
Get new keys and SDKs here: https://developer.mapquest.com/
I'd bet this is the reason

Related

Firebase migration for China [duplicate]

I am now developing a social application. But recently I noticed that Firebase is blocked in China. So I want to make sure whether firebase can be used in China?
* EDIT 24 January 2020 *
Some of the information here might be out of date.
Firebase has a China service at https://firebase.google.cn/ which is not blocked in the PRC. (Thanks to #c-an for bringing this up.)
That said, *.google.com and *.googleapis.com are still blocked in China. I'll change/update this as I get more information.
Original Answer
For now Firebase is blocked and can't be used in China, along with other Google services, because the PRC has blocked all URIs with *.google.com and *.googleapis.com.
This also means, for example, that the Play app store can't be accessed from China. If you don't know what's going on between Google and the PRC, here's a primer.
Also, according to Chinese law, user data of Chinese citizens must be stored inside of the PRC. You might be able to get away with only addressing this once you have a significant number of users, but the trend has been for the CCP to crack down more and more on foreign information, even busting VPNs and declaring them illegal despite complaints of academics who say that they need, you know, real information.
As we're now in the run-up to the 19th Party Congress this autumn, we can expect the situation to get worse before it gets better. Maybe 2018 will leave room for relaxation?
For now, very sadly, forget anything Google in China, and be prepared to store user data of PRC citizens on servers located inside the Great Firewall. Also be prepared for seemingly random degradations of your service within China, or to be blocked altogether, along with these other blocked services.
Update 2017-11-23: The 19th Party Congress has come and gone and, if anything, Google services look less likely than ever to become available in China. The great firewall is likely to continue to be strengthened as the Chinese Communist Party extends its role into corporations, and foreign firms are generally disadvantaged.
Update 2018-08-05: Google plans to open a censored version of its search in China, according to leaked documents. It seems reasonable to assume that if a censored Google Search becomes available in the PRC, then Firebase and other Google Cloud products may as well. The censored search plan, code-named Dragonfly, has reportedly been in the works since December 2017, possibly a result of meetings that month between Google CEO Sundar Pichai and an unnamed top Chinese official when they met at the World Internet Conference in Wuzhen, China, where PRC General Secretary and President Xi Jinping gave a speech.
Update 2018-12-23: It appears that Google's Project Dragonfly is now on hold if not outright abandoned. This implies that the outlook for Firebase in China has worsened.
You can build your own Rest API server outside of China, and make the server talks to Firebase rest api endpoints of Realtime db or Authentication, https://firebase.google.com/docs/reference/rest/database. So you web app talks to your rest api server (accessible from China), and your rest api server talks to Firebase.
The answer is NO :
Using a huge part of Firebase services, I contacted the support, this is the answer :
I'm glad you are considering Firebase for your project. However, in
accordance with current U.S. policies, it is not possible to use
Firebase from within certain countries. For more information about
these restrictions, please refer to the U.S. Department of the
Treasury website. The current list is of blocked countries is listed
here. If you have end-users located within China, it's quite difficult
to access Firebase there since the use of Firebase requires Google
Play Services, which most of the devices in China don't have. We
understand that access to our products has been problematic from
within mainland China. We believe it may have been caused by
networking conditions in China, rather than Google's own services.
Since access to services is determined by the respective country's
government and they don't report to Google, the Transparency Report is
the most authoritative it can be.
I just tested and I am able to access my realtime database hosted on the Singapore region in China mainland. No need to modify anything. Whatever works overseas, works in China. Tested in Beijing.
Facing the same problem, if you are in china, install Astrill VPN and change from openweb to StealthVPN, connect to a server like USA for china one and login to firebase. It will work successfully.

Google Cloud Vision - Which region does Google upload the images to?

I am building an OCR based solution to extract information from certain financial documents.
As per the regulation in my country (India), this data cannot leave India.
Is it possible to find the region where Google Cloud Vision servers are located?
Alternately, is it possible to restrict the serving region from the GCP console?
This is what I have tried:
I went through GCP Data Usage FAQ: https://cloud.google.com/vision/docs/data-usage
GCP Terms of Service:
https://cloud.google.com/terms/
(Look at point 1.4 Data Location on this page)
Talking to the GCP Sales rep. He did not know the answer.
I know that I can talk to Google support but that requires $100 to activate, which is a lot for for me.
Any help would be appreciated. I went through the documentation for Rekognition as well but it seems to send some data outside for training so not considering it at the moment.
PS - Edited to make things I have tried clearer.
For anyone looking at this topic recently, Google Vision has introduced multi-region support in December 2019, as can be see in their release notes.
Currently Google Vision supports 2 different processing regions: eu and us, and they say that using a specific endpoint guarantees that processing will only take place in the chosen territory.
The documentation for regionalization mentions that you can simply replace the default API endpoint vision.googleapis.com with either of the regional ones:
eu-vision.googleapis.com
us-vision.googleapis.com
The vision client libraries offer options for selecting the endpoint as well, and the documentation gives code samples.
For example, here is how you would do it in Python:
from google.cloud import vision
client_options = {'api_endpoint': 'eu-vision.googleapis.com'}
client = vision.ImageAnnotatorClient(client_options=client_options)
As pointed out by #Tedinoz in a comment above, the answer can be found here: https://groups.google.com/forum/#!topic/cloud-vision-discuss/at43gnChLNY
To summarise:
1. Google stores images uploaded to Cloud Vision only in memory
2. Data is not restricted to a particular region (as of Dec 6, 2018)
3. They might add data residency features in Q1, 2019.

wso2iot-3.1.0: Real time location track on analytics dashboard

Can someone explaine me step by step how configure location tracking with WSO2 iot 3.1.0 analytics for 1000 android and mobiles devices?
We have a lot of tecniciens working on fields and we need to track them when they are out of their itinaries or not. We have several groups of techniciens across the country.
My hope is to have several custom reports base on location with devices and tecniciens intinaries on an Analytics dashboard. When the guy is out of the zone, I receive alerte message.
I have a plateform with wso2iot-3.1.0-update1, running on 1 server OS: Centos 6.7 .
The geofencing is activated in devicemgt (In zone, out of zone, )
I'm still using the default open sreet map
Devices are already in device management and users accounts but when we clic on location of a device, the itinary is not well adjusted to the map.
is it possible to do this with open street map or I must used google map and how?
Notice that is for real time tracking.
Documenttaion used:
https://docs.wso2.com/display/IoTS310/Monitoring+Devices+Using+Location+Based+Services
https://docs.wso2.com/display/IoTS310/Understanding+the+WSO2+IoT+Server+Analytics+Framework
Thanks in advance

building an amazon store with drupal 7

I've been playing around with an idea for an amazon store with Drupal 7. I do a lot of product reviews, and I typically link to amazon pages already (without referrer IDs, since I wanted toa void any questions of integrity all together), but having a seperate storefront link, well I'm playing with the idea.
I'm using Drupal 7, and I installed the Amazon API and Amazon Store module. It uses an Amazon AWS account and amazon associates ID. Basically creates a light storefront that does all the lifting through amazon itself. It only even uses Amazon items, which is fine since what isn't on Amazon, and only gives you a referral payout.
Well, what I'd love to do is have a stronger control over the items in the store. The Amazon Store module just gives you the option to control the basic items that are visible upon loading.
What I'd like to do: Create a store where categories match the contents of my site, and disable the search options. Is this possible with these modules? Does anyone have advice on creating something like this?
please see the below module and I hope it will be handy
https://drupal.org/project/amazon_store

How would I sync a SQL database using a Smart Phone to store and forward changes? (No direct connection between source and target)

I have a scenario where my occasionally connected clients (WPF app, SQL Express DB) need to sync with a central SQL Server. The client machines are used in the field, and often times do not have any sort of connectivity. The plan is to use a smart-phone as an intermediary store and forward device. The client would push local changes to the phone. Then disconnect the phone, power down the laptop, and drive down the road. While driving, the phone will come into connectivity and upload the changes to the central office.
I need to know if I can do this with Sync Framework.
The documentation seems to indicate that the sync orchestration wants access to both the source and the destination. In this case, I don't have connectivity to the destination (central server). I suspect that I need to find a way to cache the destination's knowledge locally, but I'm not sure if that's appropriate.
It's may be worth noting that the client machines will have direct connections on a periodic basis, but not a daily basis.
So the scenario is:
Client machine is directly connected on Monday and does a full sync.
On Tuesday, user goes out in the field and uses app, generating updates / inserts / deletes to the SQL Express database.
User "syncs" client machine to their smartphone. (Save file(s) to the SD card)
User turns off client and drives down the road.
Smart phone comes into connectivity and uploads files to central office.
Central office "syncs" data from uploaded file(s) to the central SQL Server database.
Repeat 2-6 for Wednesday, Thursday, Friday.
On the following Monday, user is again directly connected for a full sync.
How do I do this with Sync Framework?
Does it help if I can have the smartphone downloading something daily from the central office (like central office's knowledge)? Is there harm done if the client is orchestrating a sync session against stale cached knowledge from the central office?
Thanks in advance!
You cant do this out of the box with Sync Framework or the Sync Framework Toolkit. Database synchronization and file synchronization are totally different. Sync Framework works with the concept of providers to represent the repositories being synched. For example, to work with files, you have the FileSyncProvider, to work with SQL Server/Express/Azure, you have the SqlSyncProvider and so on... but you cant use the FileSyncProvider to sync with the SqlSyncProvider... the former works with files, the latter with rows in a database.
instead of having your smartphone sync with a local machine, have both local machine and smartphone synching directly with the central server.
for the client machine, you can use the Sync Framework SDK and preferably configure it in an n-tier setup using WCF.
for the smartphone, you will have to use the Sync Framework Toolkit since you cannot install the Sync Framework SDK itself on the phone.
here's a link to a sample using an n-tier setup: Database Sync:SQL Server and SQL Express N-Tier with WCF
here's the link to the Sync Framework Toolkit: Microsoft Sync Framework Toolkit