Engineering and technology
Enable Windows NTP Client
NtpClient
Source: Enable Windows NTP Client
AnyConnect Secure Mobility Client v4.9.0195
Install Cisco AnyConnect on Ubuntu / Debian / Fedora
Modbus – Wikipedia
Modbus is a data communications protocol originally published by Modicon (now Schneider Electric) in 1979 for use with its programmable logic controllers (PLCs). Modbus has become a de facto standard communication protocol and is now a commonly available means of connecting industrial electronic devices.[1] Modbus is popular in industrial environments because it is openly published and royalty-free. It was developed for industrial applications, is relatively easy to deploy and maintain compared to other standards, and places few restrictions – other than the datagram (packet) size – on the format of the data to be transmitted. Modbus uses the RS485 or Ethernet as its wiring type. Modbus supports communication to and from multiple devices connected to the same cable or Ethernet network. For example, a device that measures temperature and a different device to measure humidity, both of which communicates the measurements to a computer.
Modbus is often used to connect a plant/system supervisory computer with a remote terminal unit (RTU) in Supervisory Control and Data Acquisition (SCADA) systems in the electric power industry. Many of the data types are named from industrial control of factory devices, such as Ladder logic because of its use in driving relays: A single physical output is called a coil, and a single physical input is called a discrete input or a contact.
The development and update of Modbus protocols have been managed by the Modbus Organization since April 2004, when Schneider Electric transferred rights to that organization. The Modbus Organization is an association of users and suppliers of Modbus-compliant devices that advocates for the continued use of the technology.
Source: Modbus – Wikipedia
command line – Arrow keys, Home, End, tab-complete keys not working in shell
sudo chsh -s /bin/bash <username>
Source: command line – Arrow keys, Home, End, tab-complete keys not working in shell – Ask Ubuntu
http – CURL Command Line URL Parameters – Stack Overflow
The application/x-www-form-urlencoded Content-type header is not needed. Unless the request handler expects the parameters coming from request body. Try it out:
curl -X DELETE "http://localhost:5000/locations?id=3"
or
curl -X GET "http://localhost:5000/locations?id=3"
Source: http – CURL Command Line URL Parameters – Stack Overflow
Carlos Chávez
Hide curl output
curl –silent –output /dev/null http://example.com
Deploying to App Stores – Expo Documentation
ios.supportsTablet: false configured, your app will still render at phone resolution on iPads and must be usable.- Add a splash screen, the very first thing your users see after they select your app.
- Use AppLoading to ensure your interface is ready before the user sees it.
- Preload and cache your assets so your app loads quickly, even with a poor internet connection.
- Configure the status bar so it doesn’t clash with your interface.
- Use native gestures whenever possible.
- Use interface elements that make sense on the device. For example, see the iOS Human Interface Guidelines.
- Add a great icon. Icon requirements between iOS and Android differ and are fairly strict, so be sure and familiarize yourself with that guide.
- Customize your primaryColor.
- Make sure your app has a valid iOS Bundle Identifier and Android Package. Take care in choosing these, as you will not be able to change them later.
app.json file to specify the version of your app, but there are a few different fields each with specific functionality.versionwill apply both to iOS and Android. For iOS, this corresponds toCFBundleShortVersionString, and for Android this corresponds toversionName. This is your user-facing version string for both platforms.android.versionCodefunctions as your internal Android version number. This will be used to distinguish different binaries of your app.ios.buildNumberfunctions as your internal iOS version number, and corresponds toCFBundleVersion. This will be used to distinguish different binaries of your app.
- Use
Constants.nativeAppVersionto access theversionvalue listed above. - Use
Constants.nativeBuildVersionto access eitherandroid.versionCodeorios.buildNumbervalues (depending on the current platform)
- Starting October 3, 2018, all new iOS apps and app updates will be required to have a privacy policy in order to pass the App Store Review Guidelines.
- Additionally, a number of developers have reported warnings from Google if their app does not have a privacy policy, since by default all Expo apps contain code for requesting the Android Advertising ID. Though this code may not be executed depending on which Expo APIs you use, we still recommend that all apps on the Google Play Store include a privacy policy as well.
- All apps in the iTunes Store must abide by the App Store Review Guidelines.
- Apple will ask you whether your app uses the IDFA, the answer is “yes.” This is because Expo contains the Facebook and Branch SDKs, which contain code for collecting the IDFA, and you’ll need to check a couple boxes on the Apple submission form. See Branch’s Guide for which specific boxes to fill in.
Note: No data is sent to Branch, Facebook, Segment, or Amplitude from your app unless you explicitly do so using the APIs. For more information on how Expo handles your data, and your end users’ data, take a look at our Privacy Explained page.
- Permissions are configured via the
android.permissionskey in yourapp.jsonfile - By default, your app will include all permissions supported by Expo. This is so that your standalone app will match its behavior in the Expo client and simply “work out of the box” no matter what permissions you ask for, with hardly any configuration needed on your part.
- There are some drawbacks to this. For example, let’s say your To-do list app requests
CAMERApermission upon installation. Your users may be wary of installing since nothing in the app seems to use the camera, so why would it need that permission? - To remedy this, simply add the
android.permissionskey in yourapp.jsonfile, and specify which permissions your app will use. A list of all Android permissions and configuration options can be found here. - To use only the minimum necessary permissions that Expo requires to run, set
"permissions" : []. To use those in addition toCAMERApermission, for example, you’d set"permissions" : ["CAMERA"].
- It’s helpful to glance over Common App Rejections.
- Binaries can get rejected for having poorly formatted icons, so double check the App Icon guide.
- Apple can reject your app if elements don’t render properly on an iPad, even if your app doesn’t target the iPad form factor. Be sure and test your app on an iPad (or iPad simulator).
- Occasionally people get a message from Apple which mentions an IPv6 network. Typically this is just Apple’s way of informing you what kind of network they tested on, and the actual “IPv6” detail is a red herring. All of Expo’s iOS code uses
NSURLSession, which is IPv6-compatible. More info.
app.json, for example:"infoPlist": {
"NSCameraUsageDescription": "This app uses the camera to scan barcodes on event tickets."
},
infoPlist configuration. Because these strings are configured at the native level, they will only be published when you build a new binary with expo build.ios.infoPlist.CFBundleAllowMixedLocalizations: true, then provide a list of file paths to locales. "expo" : {
...
"ios" : {
"infoPlist": {
"CFBundleAllowMixedLocalizations": true
}
},
"locales": {
"ru": "./languages/russian.json"
}
}
locales should be the 2-letter language code of your desired language, and the value should point to a JSON file that looks something like this:// russian.json
{
"CFBundleDisplayName": "Привет",
"NSContactsUsageDescription": "Эти слова по русски"
}
Привет whenever it’s installed on a device with the language set to Russian.Building Standalone Apps – Expo Documentation
node.js – how to achieve an apache Alias with a proxy pass on the same domain – Stack Overflow
<VirtualHost *:80>
ServerName domain.org
ServerAlias www.domain.org
ProxyPass /blog !
Alias /blog /var/apache-vhosts/www.domain.org-blog
<Directory /var/apache-vhosts/www.domain.org-blog/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPass / http://localhost:8884/
ProxyPassReverse / http://localhost:8884/
ProxyPreserveHost on
LogLevel debug
</VirtualHost>
Source: node.js – how to achieve an apache Alias with a proxy pass on the same domain – Stack Overflow