| tags | ||
|---|---|---|
|
I wrote this answer on stackexchange, here: https://stackoverflow.com/posts/12597919/
It was wrongly deleted for containing "proprietary information" years later. I think that's bullshit so I am posting it here. Come at me.
Amazon is a SOA system with 100s of services (or so says Amazon Chief Technology Officer Werner Vogels). How do they handle build and release?
| import android.os.Build; | |
| import java.lang.reflect.Method; | |
| public class Device { | |
| /** | |
| * @return The device's serial number, visible to the user in {@code Settings > About phone/tablet/device > Status | |
| * > Serial number}, or {@code null} if the serial number couldn't be found | |
| */ | |
| public static String getSerialNumber() { |
Login as root
$ sudo su
Install updates
$ apt-get update && apt-get upgrade
Install Tomcat from the Ubuntu repository
Prior to Android 7, the system had a single preferred locale, and fallback behavior was quite rudimentary. Starting with Android 7, the user can now specify a priority list of locales, and fallback behavior is improved.
However, in many cases it is still surprisingly difficult to make full use of locale fallback, and there are some hidden gotchas when trying to fully support both Android 7 and earlier versions.
| android.permission.ACCESS_ALL_DOWNLOADS | |
| android.permission.ACCESS_BLUETOOTH_SHARE | |
| android.permission.ACCESS_CACHE_FILESYSTEM | |
| android.permission.ACCESS_CHECKIN_PROPERTIES | |
| android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY | |
| android.permission.ACCESS_DOWNLOAD_MANAGER | |
| android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED | |
| android.permission.ACCESS_DRM_CERTIFICATES | |
| android.permission.ACCESS_EPHEMERAL_APPS | |
| android.permission.ACCESS_FM_RADIO |
| image: java:8-jdk | |
| stages: | |
| - build | |
| - test | |
| - deploy | |
| before_script: | |
| # - echo `pwd` # debug | |
| # - echo "$CI_BUILD_NAME, $CI_BUILD_REF_NAME $CI_BUILD_STAGE" # debug |
| /** | |
| * List of modules that don't require Jacoco | |
| */ | |
| def ignoredByJacoco = [ | |
| 'presentation' | |
| ] | |
| /** | |
| * module class dirs | |
| * */ |
Short version: I strongly do not recommend using any of these providers. You are, of course, free to use whatever you like. My TL;DR advice: Roll your own and use Algo or Streisand. For messaging & voice, use Signal. For increased anonymity, use Tor for desktop (though recognize that doing so may actually put you at greater risk), and Onion Browser for mobile.
This mini-rant came on the heels of an interesting twitter discussion: https://twitter.com/kennwhite/status/591074055018582016