How to “passthrough” a file from PC to Android and back using exec-in and exec-out directives?

I can do this:

adb exec-in "gzip > sdcard/test.gz" < C:\test.txt adb exec-out cat sdcard/test.gz > C:\test.gz 

The question is how to do something like this:

adb exec-in "gzip > C:\test.gz" < C:\test.txt 

I mean, how can I use a file on my PC as an input for some android (linux) program and use another file on my PC as an output WITHOUT saving any data on android’s internal memory (flash, microSD etc)?

How to let VSCode snippets suggest angularjs directives only as atributes?

My snippets are suggesting angularjs directives everywhere, not only in html tags as attributes.

I have this snippet now.

{     "ng-app": {         "prefix": "data-ng-app",         "body": "data-ng-app=\"app\"$  0"     },     "ng-bind": {         "prefix": "data-ng-bind",         "body": "data-ng-bind=\"$  1\"$  0"     },     "ng-bind-html": {         "prefix": "data-ng-bind-html",         "body": "data-ng-bind-html=\"$  1\"$  0"     },     "ng-bind-template": {         "prefix": "data-ng-bind-template",         "body": "data-ng-bind-template=\"$  1\"$  0"     },     "ng-controller": {         "prefix": "data-ng-controller",         "body": "data-ng-controller=\"$  1\"$  0"     },     "ng-model": {         "prefix": "data-ng-model",         "body": "data-ng-model=\"$  1\"$  0"     },     "ng-view": {         "prefix": "data-ng-view",         "body": "data-ng-view=\"\"$  0"     } } 

Expected: suggest only if cursor is at this position

“|” = cursor

Current: Suggest everywhere

Processing file inclusion directives using mutual recursion

I am preprocessing a set of files where one file is included in another file with an include tag like shown below:

file A

include file B include file C  contents of file A include file D  contents of file A 

Here I need to replace the include tags with contents of each of the respective files, just like what a compiler does. I have two functions for that:

def parseContent(self, rdbFilePath, content):     finalContent = self.removeComments(content)     includeFileSearch = re.compile(r'(?P<tag>(\s)*include+(\s*)\"(\s*)(?P<file>[a-zA-Z0-9\.\_/]*)\")')     for includes in includeFileSearch.finditer(finalContent):         finalContent = re.sub(includes.group('tag'),self.parseIncludes(rdbFilePath, includes.group('file')), finalContent)     return finalContent  def parseIncludes(self, rdbFilePath, file):     path = rdbFilePath + "/" + file     f = open(path)     pathDir = os.path.dirname(path)     includedFileContent = self.parseContent(pathDir, f.read())     return includedFileContent 

As you can see, functions parseContent and parseIncludes call each other recursively to replace all the include tags in every file. The logic works fine. But it takes a bit long time to execute. Is there any better way to do the same with lesser execution time?

nginx-1.15.9 Variable support in “ssl_certificate” and “ssl_certificate_key” directives

So nginx-1.15.9 was released very recently with the following change:

Feature: variables support in the “ssl_certificate” and “ssl_certificate_key” directives.

I setup an instance with multiple domains pointing to the following server block. I am using dehydrated to generate the certs automatically and in their own respective folders.

However, despite trying several variations and googling for various solutions, I am not having any success in having the variables in the “ssl_certificate” and “ssl_certificate_key” directives being recognised.

  • Have verified that the certs are generated correctly (with fullchain.pem and privkey.pem)
  • The error I’m getting from navigating to the https URL directly: Secure Connection Failed
  • https works perfectly if I update the “$ server_name” to the actual domain folder containing the certs

Appreciate if someone could take a look at my server block to identify what I’m doing wrong or point me in the correct direction. Thank you.

server {     listen 80 default_server;     listen [::]:80 default_server;     listen 443 ssl default_server;     listen [::]:443 ssl default_server;      root /var/www/html;     index index.php index.html index.htm;      server_name _;      # ssl on;     ssl_certificate /etc/dehydrated/certs/$  server_name/fullchain.pem;     ssl_certificate_key /etc/dehydrated/certs/$  server_name/privkey.pem;      location / {         try_files $  uri $  uri/ =404;     }      location ~ \.php$   {             try_files $  uri =404;             fastcgi_split_path_info ^(.+\.php)(/.+)$  ;             fastcgi_pass unix:/run/php/php7.2-fpm.sock;             fastcgi_index index.php;             include fastcgi_params;     }      location ~ /\.ht {         deny all;     } } 

Improving code for having multiple lines of ng-if directives

I am new to angularjs and wondering if this code could be improved:

<div>     <a ng-if="brand == 'google'" href="/"><img class="logo" ng-src="{company_logo}}" alt=" Logo"></a>     <img  ng-if="brand != 'google'" class="logo" ng-src="{{company_logo}}" alt=" Logo"> </div> 

Have many brands so if the brand is google then I have to link to home page when clicked on image else not. How can this be written better.

Thanks 🙂

How can I add 497 redirect and listening directives to existing NGiNX config

I have a NGiNX reverse proxy that has a configuration set for a local server. I want it to listen on port 32400, enforce SSL on that port and pass on the traffic to the local server as needed.

My attempts have resulted in 502 Bad Gateway Errors. So how can I add 497 redirect and this listening properly?

This is my config so far:

#Must be set in the global scope see: https://forum.nginx.org/read.php?2,152294,152294 #Why this is important especially with Plex as it makes a lot of requests http://vincent.bernat.im/en/blog/2011-ssl-session-reuse-rfc5077.html / https://www.peterbe.com/plog/ssl_session_cache-ab ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;  #Upstream to Plex upstream plex_backend {     server 192.168.7.102:32400;     keepalive 32; }  server {     listen 80;     #Enabling http2 can cause some issues with some devices, see #29 - Disable it if you experience issues     listen 443 ssl http2; #http2 can provide a substantial improvement for streaming: https://blog.cloudflare.com/introducing-http2/     server_name plex.server.com;      send_timeout 100m; #Some players don't reopen a socket and playback stops totally instead of resuming after an extended pause (e.g. Chrome)      #Faster resolving, improves stapling time. Timeout and nameservers may need to be adjusted for your location Google's have been used here.     resolver 8.8.4.4 8.8.8.8 valid=300s;     resolver_timeout 10s;      #Use letsencrypt.org to get a free and trusted ssl certificate     ssl_certificate /etc/letsencrypt/live/plex.server.com/fullchain.pem;     ssl_certificate_key /etc/letsencrypt/live/plex.server.com/privkey.pem;      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     ssl_prefer_server_ciphers on;     #Intentionally not hardened for security for player support and encryption video streams has a lot of overhead with something like AES-256-GCM-SHA384.     ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';      #Why this is important: https://blog.cloudflare.com/ocsp-stapling-how-cloudflare-just-made-ssl-30/     ssl_stapling on;     ssl_stapling_verify on;     #For letsencrypt.org you can get your chain like this: https://esham.io/2016/01/ocsp-stapling     ssl_trusted_certificate /etc/letsencrypt/live/plex.server.com/chain.pem;      #Reuse ssl sessions, avoids unnecessary handshakes     #Turning this on will increase performance, but at the cost of security. Read below before making a choice.     #https://github.com/mozilla/server-side-tls/issues/135     #https://wiki.mozilla.org/Security/Server_Side_TLS#TLS_tickets_.28RFC_5077.29     #ssl_session_tickets on;     ssl_session_tickets off;      #Use: openssl dhparam -out dhparam.pem 2048 - 4096 is better but for overhead reasons 2048 is enough for Plex.     ssl_dhparam /etc/ssl/certs/plex.pem;     ssl_ecdh_curve secp384r1;      #Will ensure https is always used by supported browsers which prevents any server-side http > https redirects, as the browser will internally correct any request to https.     #Recommended to submit to your domain to https://hstspreload.org as well.     #!WARNING! Only enable this if you intend to only serve Plex over https, until this rule expires in your browser it WONT BE POSSIBLE to access Plex via http, remove 'includeSubDomains;' if you only want it to effect your Plex (sub-)domain.     #This is disabled by default as it could cause issues with some playback devices it's advisable to test it with a small max-age and only enable if you don't encounter issues. (Haven't encountered any yet)     #add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;      #Plex has A LOT of javascript, xml and html. This helps a lot, but if it causes playback issues with devices turn it off. (Haven't encountered any yet)     gzip on;     gzip_vary on;     gzip_min_length 1000;     gzip_proxied any;     gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml;     gzip_disable "MSIE [1-6]\.";      #Nginx default client_max_body_size is 1MB, which breaks Camera Upload feature from the phones.     #Increasing the limit fixes the issue. Anyhow, if 4K videos are expected to be uploaded, the size might need to be increased even more     client_max_body_size 100M;      #Forward real ip and host to Plex     proxy_set_header Host $  host;     proxy_set_header X-Real-IP $  remote_addr;     #When using ngx_http_realip_module change $  proxy_add_x_forwarded_for to '$  http_x_forwarded_for,$  realip_remote_addr'     proxy_set_header X-Forwarded-For $  proxy_add_x_forwarded_for;     proxy_set_header X-Forwarded-Proto $  scheme;      #Websockets     proxy_http_version 1.1;     proxy_set_header Upgrade $  http_upgrade;     proxy_set_header Connection "upgrade";          #Disables compression between Plex and Nginx, required if using sub_filter below.     #May also improve loading time by a very marginal amount, as nginx will compress anyway.         #proxy_set_header Accept-Encoding "";      #Buffering off send to the client as soon as the data is received from Plex.     proxy_redirect off;     proxy_buffering off;      location / {         #Example of using sub_filter to alter what Plex displays, this disables Plex News.         #sub_filter ',news,' ',';         #sub_filter_once on;         #sub_filter_types text/xml;         proxy_pass http://plex_backend;     }      #PlexPy forward example, works the same for other services.     #location /plexpy {     #   proxy_pass http://127.0.0.1:8181;     #} }