Docker 1.11.1 Start up containers using docker-compose, and container can't ping each other

Output of docker version:
Docker version 1.11.1, build 5604cbe
Same for Docker version 1.10.1, build 9e83765
Output of docker info:
docker info
Containers: 30
 Running: 2
 Paused: 0
 Stopped: 28
Images: 13
Server Version: 1.11.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 303
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.16.0-43-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 5.829 GiB
Name: rcdn6-vm81-112
ID: QINN:7PK3:HG3I:ZFAZ:XEDD:QEHB:E7JD:H3VU:CVXT:CJF4:TLQX:VMWE
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Http Proxy: http://proxy-wsa.esl.cisco.com:80
Https Proxy: https://proxy-wsa.esl.cisco.com:80
No Proxy: localhost, <IP_ADDRESS>, ::1, /var/run/docker.sock, .docker, /var/run/docker.sock, .docker
Registry: https://index.docker.io/v1/
WARNING: No swap limit support

Additional environment details (AWS, VirtualBox, physical, etc.):
Ubuntu
Linux rcdn6-vm81-112 3.16.0-43-generic #58~14.04.1-Ubuntu SMP Mon Jun 22 10:21:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Steps to reproduce the issue:

docker-compose -p testing -f testing.yml up -d
Creating testing_server01_1
Creating testing_server02_1

Describe the results you received:
Going in to one of the container, i can't ping other other container while they are on the same network.
ping IP address is okay but not the hostname.
docker exec -it testing_server01_1 bash
[root@server01 /]# ping server02
ping: unknown host server02
[root@server01 /]# ping server01
PING server01 (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from server01 (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from server01 (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.058 ms
[root@server01 /]# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.113 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=64 time=0.097 ms

Describe the results you expected:
Additional information you deem important (e.g. issue happens only occasionally):
docker network inspect testing_default
[
    {
        "Name": "testing_default",
        "Id": "2177002b34276ff24c1b3e9aab5e4ddd5ec16f304f5a8a730c3209df0edbdc58",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "<IP_ADDRESS>/16",
                    "Gateway": "<IP_ADDRESS>/16"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "0df8ac91c4be7c2c1421166e1413fd3aaafd806522d7210e625ed86ec58f1c40": {
                "Name": "testing_server01_1",
                "EndpointID": "a35a7a9bdbf26d26fc983e67a36f258b39fb41e264e1423eefbc28e450056304",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "<IP_ADDRESS>/16",
                "IPv6Address": ""
            },
            "970cdd09104ad8463a1f90a3278d0830afde136323f1167c60b0927f7f1d6216": {
                "Name": "testing_server02_1",
                "EndpointID": "3aaee561c82dc69868f00c2dd91b1a62552d194f9285dc50c9f0d74e8481baf6",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "<IP_ADDRESS>/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

Can you try if;
pinging the other container by it's container-name (instead of alias) works? e.g.
ping testing_server02_1

Inside the container, what does cat /etc/resolv.conf give you?
Trying to take docker-compose out of this, does this work correctly?
docker network create foobar
docker run -d --net foobar --name repro-22377 nginx:alpine

then, pinging that container from inside another container;
docker run -it --rm --net foobar alpine sh -c "ping -c 3 repro-22377"

@ninchan8328 Are you seeing the same issue in 1.10.1 and 1.11.1 ?

Here is the result:
[root@server01 /]# ping testing_server02_1
ping: unknown host testing_server02_1
[root@server01 /]# cat /etc/resolv.conf
search docker
nameserver <IP_ADDRESS>
options timeout:1 attempts:1 ndots:0
Yes i am seeing the same issue on 1.10.1 and 1.11.1.
The try of creating the docker network and bring up the container using docker command works:

docker run -d --net foobar --name repro-22377 nginx:alpine
Unable to find image 'nginx:alpine' locally
alpine: Pulling from library/nginx
420890c9e918: Pull complete
a3ed95caeb02: Pull complete
74b9cd17dfd4: Pull complete
720dd8e79d74: Pull complete
2f9898934ae0: Pull complete
Digest: sha256:7e7b690fa25cbab8307295cf9673934c874a112cdac37b786b70a91dcd6da8f8
Status: Downloaded newer image for nginx:alpine
a5caf762d585536da89bf359ec3e651c7414b04ccb3cd72c8c7408408fad4a6e

rcdn6-vm81-112 ninchan
/users/ninchan

docker run -it --rm --net foobar alpine sh -c "ping -c 3 repro-22377"
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
420890c9e918: Already exists
Digest: sha256:9cacb71397b640eca97488cf08582ae4e4068513101088e9f96c9814bfda95e0
Status: Downloaded newer image for alpine:latest
PING repro-22377 (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=64 time=0.075 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=64 time=0.121 ms
64 bytes from <IP_ADDRESS>: seq=2 ttl=64 time=0.119 ms

--- repro-22377 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.075/0.105/0.121 ms
Just in case I do something stupid (i am new to this docker network thing), here is my yml file:
version: '2'
services:
server01:
image: local_image
privileged: true
hostname: server01
stdin_open: true
tty: true
entrypoint: /root/init_container.sh
command: /bin/bash
ports:
- 22
- 5432
expose:
- "8030"
- "9102"
- "9103"
- "2812"
- "6001"
- "6109"
- "8037"
external_links:
- common_cassandra:cassandra
server02:
image: local_image
privileged: true
hostname: server02
stdin_open: true
tty: true
entrypoint: /root/init_container.sh
command: /bin/bash
ports:
- 22
- 5432
expose:
- "8030"
- "9102"
- "9103"
- "2812"
- "6001"
- "6109"
- "8037"
external_links:
- common_cassandra:cassandra
networks:
default:
external:
name: testing_default

just in case you need this info:

docker-compose --version
docker-compose version 1.7.0, build 0d7bf73

any update?

I am able to recreate this. It might be something specific to your setup.
Can you run the daemon in debug mode (-D flag) and capture the logs when you ping across containers?

sure i can do that, did you try the yml file i provided above?

No log generated when i ping from container A to container B
Here is the yaml file i used:

cat example.yml
version: '2'
services:
service_a:
image: local_image
container_name: server01
hostname: server01
entrypoint: /root/init_container.sh
command: /bin/bash
privileged: true
stdin_open: true
tty: true
ports:

       - 8080:80
    networks:
      - front-tier
service_b:
    image: local_image
    container_name: server02
    hostname: server02
    entrypoint: /root/init_container.sh
    command: /bin/bash
    privileged: true
    stdin_open: true
    tty: true
    ports:
        - 8081:80
    networks:
      - front-tier

networks:
front-tier:
driver: bridge
Here is the debug log when i bring up the container pairs
DEBU[0001] Registering routers
DEBU[0001] Registering HEAD, /containers/{name:.}/archive
DEBU[0001] Registering GET, /containers/json
DEBU[0001] Registering GET, /containers/{name:.}/export
DEBU[0001] Registering GET, /containers/{name:.}/changes
DEBU[0001] Registering GET, /containers/{name:.}/json
DEBU[0001] Registering GET, /containers/{name:.}/top
DEBU[0001] Registering GET, /containers/{name:.}/logs
DEBU[0001] Registering GET, /containers/{name:.}/stats
DEBU[0001] Registering GET, /containers/{name:.}/attach/ws
DEBU[0001] Registering GET, /exec/{id:.}/json
DEBU[0001] Registering GET, /containers/{name:.}/archive
DEBU[0001] Registering POST, /containers/create
DEBU[0001] Registering POST, /containers/{name:.}/kill
DEBU[0001] Registering POST, /containers/{name:.}/pause
DEBU[0001] Registering POST, /containers/{name:.}/unpause
DEBU[0001] Registering POST, /containers/{name:.}/restart
DEBU[0001] Registering POST, /containers/{name:.}/start
DEBU[0001] Registering POST, /containers/{name:.}/stop
DEBU[0001] Registering POST, /containers/{name:.}/wait
DEBU[0001] Registering POST, /containers/{name:.}/resize
DEBU[0001] Registering POST, /containers/{name:.}/attach
DEBU[0001] Registering POST, /containers/{name:.}/copy
DEBU[0001] Registering POST, /containers/{name:.}/exec
DEBU[0001] Registering POST, /exec/{name:.}/start
DEBU[0001] Registering POST, /exec/{name:.}/resize
DEBU[0001] Registering POST, /containers/{name:.}/rename
DEBU[0001] Registering POST, /containers/{name:.}/update
DEBU[0001] Registering PUT, /containers/{name:.}/archive
DEBU[0001] Registering DELETE, /containers/{name:.}
DEBU[0001] Registering GET, /images/json
DEBU[0001] Registering GET, /images/search
DEBU[0001] Registering GET, /images/get
DEBU[0001] Registering GET, /images/{name:.}/get
DEBU[0001] Registering GET, /images/{name:.}/history
DEBU[0001] Registering GET, /images/{name:.}/json
DEBU[0001] Registering POST, /commit
DEBU[0001] Registering POST, /images/create
DEBU[0001] Registering POST, /images/load
DEBU[0001] Registering POST, /images/{name:.}/push
DEBU[0001] Registering POST, /images/{name:.}/tag
DEBU[0001] Registering DELETE, /images/{name:.}
DEBU[0001] Registering OPTIONS, /{anyroute:.}
DEBU[0001] Registering GET, /_ping
DEBU[0001] Registering GET, /events
DEBU[0001] Registering GET, /info
DEBU[0001] Registering GET, /version
DEBU[0001] Registering POST, /auth
DEBU[0001] Registering GET, /volumes
DEBU[0001] Registering GET, /volumes/{name:.}
DEBU[0001] Registering POST, /volumes/create
DEBU[0001] Registering DELETE, /volumes/{name:.}
DEBU[0001] Registering POST, /build
DEBU[0001] Registering GET, /networks
DEBU[0001] Registering GET, /networks/{id:.}
DEBU[0001] Registering POST, /networks/create
DEBU[0001] Registering POST, /networks/{id:.}/connect
DEBU[0001] Registering POST, /networks/{id:.}/disconnect
DEBU[0001] Registering DELETE, /networks/{id:.}
 If using privileged: true, then container cannot ping each other.

@ninchan8328 is something in the container making changes to /etc/resolv.conf or /etc/hosts? This sounds like something in your container is trying to make changes it shouldn't, and those changes are blocked by default (but allowed, when --privileged is used)

we set privileged=true but not modifying any of the resolve.conf or hosts file

Seems like the problem specifically to setting privileged=true on our image with this new docker engine. Taking the setting out work just fine.
Thanks for helping!

it happens that i need to use privileged: true in my environment. Is there any reason why this problem (container A cannot ping container B and vice versa) happen when i use privileged:true with my image?

@ninchan8328 see my answer on https://github.com/docker/docker/issues/20026#issuecomment-219662720. If privileged results in making this fail, then it's most likely an issue with your container/image making changes that are otherwise blocked. Running with --privileged is really discouraged, as it allows processes in the containers doing all kind of actions that you usually don't want. Try to find out what the container needs, and what changes it makes that cause this problem

@ninchan8328 could you confirm if this happens only with your image or does this happen with any other generic image (such as nginx:alpine as you described above), even with --privileged flag set ?
As @thaJeztah mentioned, if it happens only in your image, it is clear that your image is interfering with Docker's name-resolution mechanisms. Do you know what are the privileged operations that your image perform ?

@mavenugo @thaJeztah thanks for your response, and I agree this may be something specific to my image, however, I also try to do the same with our base image which has serviceability tools installed like rsyslog, collectd, lumberjack, etc... and still dont work with privileged:true ( i leave out the process that needs cap NET_ADMIN). Do you have any suggestion how i can troubleshoot further?

@ninchan8328 most likely one of the serviceability tools is causing this. Can you share the DockerFile file for your base image ?

When you run in privileged mode check if any app is clearing the IP tables.. docker daemon sets up some iptable rules required for DNS to work..
root@1d0a539b0a8a:/# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DNAT       udp  --  anywhere             <IP_ADDRESS>           udp dpt:domain to:<IP_ADDRESS>:52491
DNAT       tcp  --  anywhere             <IP_ADDRESS>           tcp dpt:domain to:<IP_ADDRESS>:46801

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       udp  --  <IP_ADDRESS>           anywhere             udp spt:52491 to::53
SNAT       tcp  --  <IP_ADDRESS>           anywhere             tcp spt:46801 to::53
root@1d0a539b0a8a:/#

Sure, first we have a cbase, just a bare minimum centos image download from public docker registry
cbase Dockerfile
FROM centos:centos6
RUN yum -y update
RUN yum -y install wget tar gdb
serviceability Dockerfile
FROM cbase:latest
change this if this file is copied and then modified.
Workaround for epel repo fix
RUN yum -y install epel-release
RUN sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
RUN yum -y update && yum install -y
monit
libuv
ADD ./files/* /tmp/files/
ADD ./monit.d/* /etc/monit.d/
ADD ./plugins /etc/monit.d/plugins
ADD ./files/lumberjack.conf /etc/lumberjack.conf
ADD ./certs/* /etc/ssl/certs/
ADD ./files/green_ansible_base.repo /etc/yum.repos.d/green_ansible_base.repo
RUN yum clean all && yum --setopt=obsoletes=0 -y install libksi-<IP_ADDRESS>-1.el6.x86_64
RUN yum -y install rsyslog-8.11.0-1.el6.x86_64
RUN yum clean all && yum install -y
perl
perl-Module-Pluggable
perl-Pod-Escapes
perl-Pod-Simple
perl-libs
perl-version
pyOpenSSL
python-lxml
python-twisted-core
python-zope-filesystem
python-zope-interface
vim
openssh-clients
openssh-server
sudo
tar
yum-utils
vixie-cron
Install JDK 1.7.0 (download online)
RUN yum -y install java-1.7.0-openjdk-<IP_ADDRESS>-<IP_ADDRESS>.el6_5.x86_64
Lumberjack hack (download online)
RUN yum -y install lumberjack-0.1.2-1.x86_64
RUN cp -f /tmp/files/lumberjack /etc/init.d/lumberjack
Install cassd related package (download online)
RUN yum -y install libcassandra-2.0.1-9.el6.x86_64
RUN yum -y install cassandra12-1.2.19-1.noarch
Install collectd (download it from http://dl.marmotte.net/rpms/redhat/el6/x86_64/collectd-5.4.0-1.el6/)
RUN yum -y install collectd-5.4.0-1.el6.x86_64
RUN yum -y install collectd-postgresql-5.4.0-1.el6.x86_64
Install glib
RUN yum -y install glibc-2.12-1.166.el6_7.7.x86_64
SSH configuration
RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN sed -i "s/#UsePrivilegeSeparation./UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
RUN sed -i "s/UsePAM./UsePAM no/g" /etc/ssh/sshd_config
RUN echo 'root:abc123' | chpasswd
RUN mkdir -p /root/.ssh
RUN service rsyslog start
RUN chmod 777 /tmp
RUN /etc/init.d/sshd restart
start crond
RUN service crond start
Cleanup repos then add default repo
RUN rm -f /etc/yum.repos.d/*
overwrite /etc/monit.conf
ADD ./files/monit.conf /etc/monit.conf
RUN chmod 700 /etc/monit.conf
RUN mkdir -p /opt/sec/certs
RUN mkdir -p /opt/sec/keys
ADD ./ssl_sec/certs/* /opt/sec/certs/
ADD ./ssl_sec/keys/* /opt/sec/keys/
ADD ./files/99-saevent.conf /etc/rsyslog.d/99-saevent.conf
ADD ./init_docker.sh /root/init_container.sh
RUN chmod +x /root/init_container.sh

I think we found the problem , one of our script restart iptables and clear out the docker settings in iptables for routing. Will that be a good idea to output the rule to /etc/sysconfig/iptables-config? so restarting iptables wont cause any problem?
Anyway, thanks for much for quick help!

Looks like we can close this one then :+1:


Support Weather Data

Possibly with a radar overlay.
This is a slick little weather app that gets the point across:
https://play.google.com/store/apps/details?id=com.enzuredigital.weatherbomb&hl=en

Yeah absolutely.  When I want to go fly, the first thing I check is the weather and I keep watching it - particularly wind and precipitation.

Agree.  Just breaking out a few feature requests so we can keep an eye on The List a bit better.
If you do not have that android app I do recommend checking it out. Mostly for the swipe to manipulate time line idea.  I like it also because he has included pressure changes which is good for fishing.

I have nexrad tiles baked into mavcesium, getting windspeeds and other TMS sets shouldn't be a problem.

RADAR 5min updates
layer = imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({
url : '//mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi?',
layers : 'nexrad-n0r',
parameters : {
transparent : true,
format : 'image/png',
mydata : Math.random()
}
}));
layer.alpha = 0.5;


Added Dockerfile and GitHub Action workflow

In order to automatically push the new built Docker image to DockerHub (universalresolver/uni-resolver-frontend:latest), please set the following GitHub secrets:
DOCKER_USERNAME
DOCKER_PASSWORD


Improvements to the library

As discussed, I have created a new PR. I have documented the changes in a separate file: https://github.com/SebastianStehle/ydotnet/blob/for-pr/docs/decision.md

Hi, @SebastianStehle!
I'm pausing the review for today but I'll continue it later.
Also, I believe you can keep updating the for-pr branch with your changes in the main branch of your repository, this way this branch will not lag out while the review is going on.

After our meeting I decided to remove clustering for now and add it later as a beta package or so.

Hi, @SebastianStehle!
I didn't have time to check this yesterday or today, I'm sorry. I intend to verify it tomorrow.

Additionally, some unit tests aren't passing right now. If you have the time to check them, it'd be good. Otherwise, I can do it and fix them later.

@SebastianStehle Will you have some time to check the comments I posted here?

Done. I am.on mobile, so I hope I do not miss anything. Haven't had a look to the tests yet, but I noticed that the length of the random client ID has a big impact on all the length assertions.

I have added a few more comments for stuff that I have not seen before.

Done. I am.on mobile, so I hope I do not miss anything. Haven't had a look to the tests yet, but I noticed that the length of the random client ID has a big impact on all the length assertions.

I'm not sure what you mean about the client ID. The current implementation is using 53-bit numbers as you suggested before.
Is there something to be changed in the ClientIdGenerator class?

@SebastianStehle I think we've handled most of the conversations here and I applied some code changes to reduce duplication and complexity in the core layer, as I wanted originally.
I'm approving the PR already and I'll just try to fix the unit tests before I merge it.

I have just merged in my latest fixes to the server project. It is exclusively for the server and extensions and used in production. So nothing to review here.

Wow. Did you really take my work on the build pipeline and not credit me at all? i spent quite a bit of time on that.

Hi, @goldsam!
Wait, I'm sorry if that happened. I merged Sebastian's .yml files into the repository and I didn't really pay attention to where they came from.
So, just to clarify, do you mean the pipeline setup that was added by Sebastian or me?
I can most definitely add you as one of the authors. I just wasn't aware of it before so I'm sorry for putting you in the position of having to ask for that.

Just the pipeline setup. I spent a lot of time and trial and error getting it working to support a wide range of platforms. Just disappointed that I didn't get at least a little credit 😢

This was not intended. I wanted to have something quick for my PR, so I copied from you what I understood and made some things differently, what I did not understand. and because a wide range of reasons the PR became too big. I am not sure if there are some big differences or if I have made something worse.

@goldsam @SebastianStehle I added the authors as a comment to all the .yml GitHub workflow files.

I really appreciate you trying to make this right. That was very considerate of you. 😉


Detect charset and convert non UTF-8 files for display

Fixes #4879

@lunny fixed

Codecov Report

Merging #4950 into master will increase coverage by 0.01%.
The diff coverage is 47.05%.

@@            Coverage Diff            @@
##           master   #4950      +/-   ##
=========================================
+ Coverage   37.39%   37.4%   +0.01%
=========================================
  Files         306     306
  Lines       45334   45349      +15
=========================================
+ Hits        16954   16965      +11
- Misses      25926   25932       +6
+ Partials     2454    2452       -2

Impacted Files
Coverage Δ

routers/repo/view.go
45.06% <100%> (+0.17%)
:arrow_up:

modules/templates/helper.go
48.95% <35.71%> (-0.58%)
:arrow_down:

models/repo_indexer.go
50.84% <0%> (ø)
:arrow_up:

models/repo_list.go
62.94% <0%> (+1.17%)
:arrow_up:

modules/process/manager.go
81.15% <0%> (+4.34%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dab02b8...d62f88d. Read the comment docs.

@lunny Need your review

When the content is too short, the detection will be wrong randomly. I think maybe copy itself before detection.
See
diff --git a/modules/base/tool.go b/modules/base/tool.go
index 2dfd8ffec..19953c319 100644
--- a/modules/base/tool.go
+++ b/modules/base/tool.go
@@ -59,7 +59,17 @@ func DetectEncoding(content []byte) (string, error) {
                return "UTF-8", nil
        }

-       result, err := chardet.NewTextDetector().DetectBest(content)
+       var detectedContent []byte
+       if len(content) < 1024 {
+               times := 1024 / len(content)
+               detectedContent = make([]byte, 0, times*len(content))
+               for i := 0; i < times; i++ {
+                       detectedContent = append(detectedContent, content...)
+               }
+       } else {
+               detectedContent = content
+       }
+       result, err := chardet.NewTextDetector().DetectBest(detectedContent)
        if err != nil {
                return "", err
        }

I also tested change 1024 to 100. It's still right.

@lunny I think that should be fixed in other PR

@lafriks but this PR will be back port to release/v1.5, I don't think we need two PRs to fix that. This problem should be a chardet library's bug, my code is a temporary method. And it's not easy to update vendor on release/v1.5.

@lunny added your requested changes

But CI failed.

CI is failing because of following test: https://github.com/go-gitea/gitea/blob/801843b0115e29ba2304fa6a5bea1ae169a58e02/modules/base/tool_test.go#L93
It fails to return an error detecting encoding of []byte{0xfa}
I think this is related to the code that has the if len(content) < 1024 { conditional.

Fixed tests and comments

Please send back port to v1.5


[neon] Modify neon sgemv_fp16

Previously, sgemv_fp16 was dependent on two conditions:

should have 8-divisible column or row
fully work with fp16 digit (which might raise accuracy issue)

In this commit, we expect sgemv to work like:

support every column length (with adaptive-compute optimization)
use temporal fp32 array to secure cumulative digit error in large scale Tensor
accelerate fp32 to fp16 copy and vice versa with neon to enhance time performance

some trivial typo fix included

Self evaluation:

Build test:     [X]Passed [ ]Failed [ ]Skipped
Run test:     [X]Passed [ ]Failed [ ]Skipped

<EMAIL_ADDRESS>

Already merged to upstream.
Close.


Fixed minor typo in intellisense description.

Hi @photomoose, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. Real humans will now evaluate your PR.

TTYL, DNFBOT;

thanks!


Basic container guidance

It would be good to re-use all/some of the guidance Laura wrote in this PR - https://github.com/alphagov/gds-way/pull/89
If it can capture the way things are working right now it can be amended/expanded later as needed.

There's a card in the GDS Way backlog for something on this. I do have the original guidance Laura put together, I'll raise a PR to open a discussion and people can update it as they see fit.

raised PR23 to open discussion.


CARDS-2513: Status flags for subjects

Add status flags to subjects which are displayed in the subject chart and subject header

Would this look any better?

It's complicated... the forms under each subject are displayed in a table, so having kind of layout will be a tad difficult in most cases

Layout has been updated (see the screenshot in the first comment for an example).
No easy way to get the status flags lined up due to them using different layout methods (table vs. grid) but they are close


Add support for SPFx v1.17.3

[ ] spfx project upgrade
[ ] spfx doctor
[ ] spfx project doctor

Hi @Adam, Can I work on it?

I think you meant me 😉. I don't see why not.
@waldekmastykarz is preparing some guide on how to do that. I think for the current time you may check the previews PR's with similar changes like for 1.17.2

Referring to the similar changes and planning to work on this request was my plan. But, if there is a guide being prepared, I will wait for that before proceeding.

To unblock you @Saurabh7019: the general approach is to create a basic React web part project and compare it with a basic React web part project from the previous version. That will allow you to determine what has changed between the versions. In the comparison, you can of course ignore things like GUIDs, that change each time. The tricky part that's hard to codify are changes that we can't foresee. Over time, we've built quite a few rules that cover most cases. That said, once in a while we get something odd and need to find a new way to go about it, so I'm afraid that we won't have a bullet proof guide.

@Saurabh7019 so do you think you may give it a shot? Do you want to share work on this one or need any help from my side?

Hi Adam, Thank you so much for offering to help. I'm really excited about this task and planning to start work tomorrow. Can I spend some time working on it before reaching out to you for help? If I encounter any challenges or need further guidance, I'll definitely reach out to you.

Hi Adam, Thank you so much for offering to help. I'm really excited about this task and planning to start work tomorrow. Can I spend some time working on it before reaching out to you for help? If I encounter any challenges or need further guidance, I'll definitely reach out to you.

Totally 👍. Have a lot of fun with it then 💪. Don't hesitate to reach out if you will need help 🤩

By the way: if you're on windows, there is this application called 'Meld' that can do nice directory compares. It's super easy to see the changes that way.
Also: use yo @microsoft/sharepoint --skipInstall. That way the node_modules folder isn't created and filled. It saves time and is easier when directory comparing.

Thank you, Martin! I'm currently using WinMerge, but I'll definitely check out Meld as well.


DCOS-8466: add scale button to service detail page

This PR does remove the scale option from the dropdown and adds a clear call to action button for the scale function.

Reviewer: @daiyiwhale

LGTM! 🚢


Potentially outdated section

Hello,
I was reading through the docs and I saw this: https://docs.pufferpanel.com/en/latest/games/minecraft/dependencies.html#multiple-java-versions
Now, this implies you need to add all the java versions you want to pufferfish, but when looking at the log output above, this configuration page seems to be outdated.
Pufferpanel currently pulls binaries (jre's).
I was debating which repository to submit this to, but having pufferfish pull java binaries is very undesired behaviour, it might make things easier for the end user, but it means having duplicate JVMs on the system. If setting the java paths are supported, it should be added to the docs (I am happy to PR if someone tells me how to do it).
Otherwise I will submit a feature request on the main repository.

This is by design. If a user does not want this, they can simply edit their templates and remove the command and change the command to be java. Refer to the docker templates, which do exactly that as well... it uses Docker and uses an image that has Java in it.
The downloader by design, tries to avoid having 20 dupes. Once it has a java17, it uses that. So, at worse. You have a system-level Java, Java 8 by us, Java 11 by us, and Java 17 by us. That's not much space in the grand scheme of things.
This is no different than Docker images.
The page isn't inaccurate, as this is still true before 2.6.

Also, this avoids the problem of "my game needs Java X, but even though I had java, it still fails" -> "update your java" -> "how?".
Templates are designed to be edited, and are not a one-size-fits-all. For most users, they are fine. For the 1% that feel like they are not, they can be quickly edited to suit the needs. And in this case, it's a very quick change.

However, this now means that although openjdk is installed from the AUR, along with other Java versions, your attempt to stop duplication has caused duplication,

This is entirely subjective. I keep my host system completely clean, and use Docker to handle dependencies. What sense is there to install Java on my host... with the software I use handling it (whether Docker or it even downloading them).

As of the latest version (2.6.6), this causes confusion.

What confusion? You are the only person to ever mention it, let alone even basically complained about it. If it causes confusion.
I have no reason to move templates to be in the AUR, because... the panel has means to get them. And it'd be work, with 0 gain, to put them into the AUR.
Arch is a very niche user-base.

No offense to the userbase, but if they do not know how to install Java, why are they installing a panel for hosting servers?

Some want a simple GUI to stick in front so their friends can start the server. I don't set a large bar to use the software. The point is to make it as easy as we can.

However, this now means that although openjdk is installed from the AUR, along with other Java versions, your attempt to stop duplication has caused duplication,

This is entirely subjective. I keep my host system completely clean, and use Docker to handle dependencies. What sense is there to install Java on my host... with the software I use handling it (whether Docker or it even downloading them).

So you are one of the docker people, I am the polar opposite, I like installation within a system, you do not need a container for security provided that the application permissions are properly managed, that again this is subjective.

As of the latest version (2.6.6), this causes confusion.

What confusion? You are the only person to ever mention it, let alone even basically complained about it. If it causes confusion, I want more people actually saying that.

Maybe because I am the only person who read the page, who knows, but it is confusing, you mention make sure to have a Java environment installed, which means most people see that, install openjdk 17 and don't realise in the logs that Pufferpanel is pulling Java versions itself.
It is worth a note at the bare minimum "as of x version, pufferpanel manages the Java versions itself", just because someone is more observant doesn't mean they are just more easily confused, it is genuinely confusing when you ask people to install Java in your documentation and then you don't need to, the point remains.
I am happy to PR this, but I got a feeling you would just decline it as you do not see any confusion in this page.

Also if the templates were in the AUR,

I have no reason to move templates to be in the AUR, because... the panel has means to get them. And it'd be work, with 0 gain, to put them into the AUR.

Not you, the developer is the developer, packaging is left up to packagers, you are not a one man army, neither do you Maintain pufferpanel-bin on the AUR (I do see the Pufferpanel AUR user is a Co-maintainer though). I was speaking about an idea I had to implement, not you.
Hope that cleared my miscommunication up a little :)

Arch is a very niche user-base.

But also a very important userbase, seen as a lot of modern desktop distributions are arch based. You are the one who priorities simplicity, which means there is a good chance Manjaro users, or other Arch forks, will run this on their home computer for easy server maintaining.
People running Ubuntu servers are most likely going to go with a more robust panel, considering Pufferpanel is not as feature rich, nor provides the billing support some people want.
Although this is me trying to guess at the userbase, there is no metrics saying what distribution a user uses (and should remain that way for privacy reasons) but the AUR package does seem to get decently used, so if "niche" was meant as a small community, that is not the case here.

No offense to the userbase, but if they do not know how to install Java, why are they installing a panel for hosting servers?

Some want a simple GUI to stick in front so their friends can start the server. I don't set a large bar to use the software. The point is to make it as easy as we can.

True, I already highlighted the fact it makes it a lot easier, I was just highlighting the other fact that people may already have Java installed on their system, and you pulling java versions without checking does cause duplication.
But you already told me the solution to this, edit the templates.
One thing I would like to know is what directory are templates stored under?
Thanks for the help by the way :)

One thing I would like to know is what directory are templates stored under?

They are not stored in directories.

They are not stored in directories.

How they stored then, within the database?


Logging from Microsoft SQL Server Driver for PHP uses a different time to normal logging.

Hello.
I activated all logging for the sqlsvr extension.
Ran ...
php -r "phpinfo();"
Log file contains ...
[03-Sep-2009 10:45:00] PHP_MINIT_FUNCTION for php_sqlsrv: entering
[03-Sep-2009 09:45:00] sqlsrv: entering rinit
[03-Sep-2009 09:45:00] sqlsrv.WarningsReturnAsErrors = On
[03-Sep-2009 09:45:00] sqlsrv.LogSeverity = 255
[03-Sep-2009 09:45:00] sqlsrv.LogSubsystems = 255
[03-Sep-2009 09:45:02] sqlsrv: entering rshutdown
The time logged in the error log file for PHP functions uses the current time
which is in DST : British Summer Time (UTC+0100 currently). The driver logs
the time without the DST offset.
Work Item Details
Original CodePlex Issue: Issue 14039
Status: Proposed
Reason Closed:  Unassigned
Assigned to:    Unassigned
Reported on:    Sep 3, 2009 at 9:50 AM
Reported by:    RQuadling
Updated on: Sep 3, 2009 at 9:50 AM
Updated by: RQuadling

No longer able to reproduce this. Closing the issue.


nixos/icingaweb2: Fix php extensions package

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg test icingaweb2

@talyz Using php.extensions instead of phpExtensions is not really obvious. Wouldn't lib.warn help in that case?

It's not, no, which is why I think it should be removed. This isn't something that we've decided to do, though - just my personal opinion. I'll probably fix it in a future pr. :)


update to cryptoconditions 0.1.6

removes the need of the cryptography dependency
can potentialy drop the libffi-dev dependency and more?

Current coverage is 84.79%

Merging #212 into master will not affect coverage as of a6dd9dc

@@            master    #212   diff @@
======================================
  Files           20      20
  Stmts          967     967
  Branches         0       0
  Methods          0       0
======================================
  Hit            820     820
  Partial          0       0
  Missed         147     147

Review entire Coverage Diff as of a6dd9dc

Powered by Codecov. Updated on successful CI builds.

seems good :+1:
once the checks pass we can merge in master


🎉 feat: route arrays

Hi!
This PR introduces a significant feature enhancement to Elysia—support for passing an array of routes to a single handler. This enables cleaner, more efficient routing code by allowing one handler function to manage multiple routes.
Changes

Updated .get(), .post, .put(), .patch(), .delete(), .options(), .all(), .head(), .trace(), .connect(), .ws(), and .route() to support passing either a singular string route, or an array of string routes.
Extensive testing for each method, included in path.test.ts

Example Usage
import { Elysia, t } from 'elysia'

new Elysia()
	.get(['/', '/index', '/index.html'], () => 'Hello index!')

Credit to deadlinecode in the ElysiaJS Discord

Oh wow, this is really useful!
Thanks a lot 🥳


Add corpus for peerconnection_serverless

Add corpus includes send config, recv config and video file with available copyright, to folder examples/peerconnection/serverless/corpus/ so that this project can directly run as the Readme said.

#17


Check links in README.md

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Run ApplicationInspector with "-args -you -used"
Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Operating Environment (please complete the following information):

Application Inspector Version: [run AppInspector with --version]
OS: [e.g. Windows 11 21H2 22000.613, MacOS 13.0.1, Linux Ubuntu 20.04]
Browser: (if an issue with HTML report) [e.g. Edge, Chrome, Safari]
Browser Version: (if an issue with HTML report) [e.g. 100]

Additional context
Add any other context about the problem here.

Thanks for the report @YouuuMeee. What link are you having an issue with?

Hello I'm sorry, I can't put the application in French so I don't understand exactly everything written. Is this possible on iPhone iOS 14.4.1(a) please?

Hi @YouuuMeee,
Application Inspector is only available in English at this time.
I can consider this a feature request for localization support - so the language can be configured - but the English strings currently used would also need to be translated into each language added as an option.


Dynamic offset index is not tied to binding in ValidateDrawState

When we validation dynamic offsets for a given descriptor set, we parse an unordered map of binding #s but we increment dyn_offset_index sequentially (see code). However, there's no guarantee that the ordering of the bindings is sequential.
Need to make sure that the dyn_offset_index correctly correlates with the given descriptor binding.

Fix was cherry-picked and pushed to master


Updated LaTeX formatter to explicitly define style

There are 6 macros that define the style of the text: \PY@it, \PY@bf, \PY@ul, \PY@tc, \PY@bc and \PY@ff.
The proposed change explicitly sets the style for each token, fixing #321

Is it still WIP?

@jfbu  do you have time for a review?


etcd server connection issues in client

Hi,
I'm having trouble with etcd server connections in client. Since the server is self-hosted and used for cross-region and cross-continent access, network connectivity is very unstable. Sometimes the server needs to be restarted and client cannot reconnect.
I tried using with_keep_alive and with_connect_timeout but it didn't help.
The problem mainly occurs in lease_keep_alive. When the connection is interrupted or etcd is restarted, it cannot automatically reconnect. Sometimes it shows that the connection is refused and no longer retries.
What are some ways to handle client in this situation? How can I implement reasonable keep alive?

Have you tried keep_alive_while_idle? see #42

I used ConnectOptions::new to create options, keep_alive_while_idle should be true by default
https://github.com/etcdv3/etcd-client/blob/3c46d0c635af697c2b96f6853fa98258309c0c67/src/client.rs#L816-L828
let opts = ConnectOptions::new()
  .with_user(cfg.etcd.username, cfg.etcd.password)
  .with_keep_alive(Duration::from_secs(20), Duration::from_secs(5));

BTW, client.watch also has this problem

Currently, there are two types of parameters for etcd's auth_token, simple (the default) and jwt (recommended for production environments https://etcd.io/docs/v3.5/op-guide/configuration/#auth). These two modes require the functionality to refresh tokens in specific situations.
For simple, when the etcd server restarts, tonic returns an Unauthenticated status code, and the entire client cannot make any more requests after that.
For jwt, when the token's time limit exceeds the TTL (which is usually not very long), the entire client cannot make any more requests.
In the etcd-go client, there is some code for refreshing the token.
https://github.com/etcd-io/etcd/blob/53b48bbd5795210af2620ac757d9529b34a09e48/client/v3/retry_interceptor.go#L273-L281
Same as etcd-rs, etcd-client does not refresh the token automatically.

Currently, there are two types of parameters for etcd's auth_token, simple (the default) and jwt (recommended for production environments https://etcd.io/docs/v3.5/op-guide/configuration/#auth). These two modes require the functionality to refresh tokens in specific situations.
For simple, when the etcd server restarts, tonic returns an Unauthenticated status code, and the entire client cannot make any more requests after that.
For jwt, when the token's time limit exceeds the TTL (which is usually not very long), the entire client cannot make any more requests.
In the etcd-go client, there is some code for refreshing the token.
https://github.com/etcd-io/etcd/blob/53b48bbd5795210af2620ac757d9529b34a09e48/client/v3/retry_interceptor.go#L273-L281
Same as etcd-rs, etcd-client does not refresh the token automatically.

see #45

@Dreamacro please see #65


Auditlog refactoring

Created AuditConfig to represent audit configuration settings. This helps in injecting new settings during hot-reloading.

Created ComplianceConfig to represent audit compliance settings. This helps in injecting new settings during hot-reloading.

Created AsyncStoragePoolConfig to represent storage pool settings. This helps in injecting new settings during hot-reloading.

Implemented AuditMessageBuilder pattern to generate audit message keeping AuditMessage clean for sink providers.

Refactored AuditCategory to represent all categories and create EnumSet to represent collection of categories. Previously strings were passed around.  Added tests.

Refactored filter methods into a separate utility class AuditFilter to separate out validator util functions.

Merged AbstractAuditLog into AuditLogImpl (adheres to AuditLog interface).

Factored out AuditMessage request resolver and compliance resolver into separate classes. (This will be injected into AuditLogImpl class).

Closing this PR and opening a new one. CI seems broken


Experimentally add bounds checks to charCodeAt calls to avoid deoptimization

Noticed in #41482

@typescript-bot perf test this

Seems like there's no obvious improvement, and I can't tell if the slightly higher times are in the margin of error. If they are, then I think the change is worth it just to avoid any future noise when doing these investigations.

@DanielRosenwasser I don't fully understand the trade-off between adding an explicit bounds check (extra work) and getting de-optimized.  I picked a few spots that either showed up in a v8 trace or seemed like low-hanging fruit (e.g. because one bounds check would cover several calls).
I agree that there is no obvious perf win and I don't think that's because of coverage issues.  Personally, I don't think these deopts stand out in a trace with hundreds, so I'm not sure the change reduces noise either.
Maybe @rbuckton or @weswigham has thoughts on whether this change is valuable in the absence of an empirical perf win?

@DanielRosenwasser I don't fully understand the trade-off between adding an explicit bounds check (extra work)

It all depends on how often these things get used in a hot loop honestly. From my limited knowledge, that de-opt will mean that you can't rely on the character codes coming back as "small integers" in V8, and because they come back as NaN, the code will go through both a "bail-out" (the de-opt itself) and rewriting the code to use a "heap number" (which is a boxed double).


Can't load auth.txt from outside of project folder

To allow users to log in to twitch using the release version, we should load the credentials using the auth.txt from outside the res:// folder, as its not included in this repo.
Loading from user:// is probably the easiest. It should be added to the documentation too.

My thoughts on this:
Im coming from web dev. The standard / best practice there is to have a .env file inside of the project root. This file is by default ignored in .gitignore. So no one will share secrets or other stuff that should be private. To help devs setup this .env file often there is also an  .env.example file. In the dev documentation there will be a part that explains that you how to make a copy of that file and name it .env. Then in the .env.example file there are already all settings that are not secret as well as placeholders for things like tokens.
So i would like to provide a development.md file where we start to put in all things that are important when you want to contribute to the project. One section could be what i described above (no mater if that config file then lives in the project itself or should be copied to the user directory).
When i think a step further, we maybe want a setup script. We should have an opinion on what type of script language we want to use and what can run on all worlds (linux/mac/pc). I think it is important to be aware that whatever this script language will be, it will add more complexity. For me personally i would just add a bash script that can help setup things. But thats my personal preference. That will force windows people to add another shell.


Feedback within core app

We currently have app feedback nested under the "support" link but while thinking through the TOT question changes, it occurred to me that for providing feedback on for instance demographic data, users may not think to click the "support" link. Would like to do some explorations around a direct ask for feedback.

https://github.com/CDCgov/prime-simplereport/issues/1786

Connected to #3032


Change part of array to bold?

Hello,
Awesome project! Was just wondering if it was possible if I could make part of my array of text bold?
I was having issues with alignment, and have a good amount of text that I am working with. But basically I have a block of text where the first line of the block is the title, which ideally would be larger and bold.
I had them as two text sprites, but was struggling to make them left align together, since they are two different lengths, I couldn't figure out how to anchor them so they appear to be part of the same paragraph, so figured it would be easier to put all of my text in one array, but now I am unsure if I can make the first part of it bold.
Thanks!

Hi.
This change would need to support some sort of a markdown. This would make the library much more complex. I don't think I will ever have time for this if it is not needed for my work.
=(

That's exactly what we're planning to implement for our own use case. We'll base is on the Delta object (Quill) as a standard for storing text and size & render substrings. The biggest fear right now is how to do overflows. Anyway, if there is something easy and shareable once we're done, I'll be happy to share it with you.


New Theme for SnippetsLab

SnippetsLab
@zenorocha @luxonauta See: https://github.com/dracula/snippetslab

Amazing work! 🤩
https://draculatheme.com/snippetslab


Can't get SqlAlchemy example to work

I'm following the SqlAlchemy tutorial but keep getting this error
TypeError: object of type 'Query' has no len()
Here's my code
@router.get("/", response_model=Page[schemas.Transaction])
async def get_transactions(
    start: datetime,
    end: datetime,
    params: Params = Depends(),
    db: Session = Depends(get_db),
):
    return paginate(
        db.query(Transaction).filter(
            Transaction.timestamp >= start, Transaction.timestamp <= end
        ),
        params,
    )

When I add an .all() to the end of my query object, it works.
Also, does this library actually help create the pagination query in the SqlAlchemy query builder? Or is it simply paginating whatever results the query returns?
e.g. does it actually add .limit() and .offset() to the queries? Looking through the code, it doesn't seem like it.

You should use pagination from fastapi_pagination.ext.sqlalchemy:
from fastapi_pagination.ext.sqlalchemy import paginate

@router.get("/", response_model=Page[schemas.Transaction])
async def get_transactions(
    start: datetime,
    end: datetime,
    params: Params = Depends(),
    db: Session = Depends(get_db),
):
    return paginate(
        db.query(Transaction).filter(
            Transaction.timestamp >= start, Transaction.timestamp <= end
        ),
        params,
    )

Working example - https://github.com/uriyyo/fastapi-pagination/blob/main/examples/pagination_sqlalchemy.py
P.S. Russia  invaded my country Ukraine, I am not able to respond and it can be my last reply😟

P.S. Russia invaded my country Ukraine, I am not able to respond and it can be my last reply

🇺🇦 + 🇪🇺   We stand with you, my friend 👍🏻

You should use pagination from fastapi_pagination.ext.sqlalchemy:
from fastapi_pagination.ext.sqlalchemy import paginate

@router.get("/", response_model=Page[schemas.Transaction])
async def get_transactions(
    start: datetime,
    end: datetime,
    params: Params = Depends(),
    db: Session = Depends(get_db),
):
    return paginate(
        db.query(Transaction).filter(
            Transaction.timestamp >= start, Transaction.timestamp <= end
        ),
        params,
    )

Working example - https://github.com/uriyyo/fastapi-pagination/blob/main/examples/pagination_sqlalchemy.py
P.S. Russia invaded my country Ukraine, I am not able to respond and it can be my last reply😟

I hope peace returns to the region soon 🙏

@leechenghan I am closing this issue. Please, reopen it in case of any issues.


Unable to capture network trace for the azure app services.

I have tried creating network trace for the azure app services called "https://simpleoutboundcalltest20180224035208.azurewebsites.net" but does not seems it is working.
Though it was working approx 2 weeks ago.
Time of the capture when it had failed: 29th March 2018, Approx 3:30 PM - 4:30 PM UTC

Just realized due to local cache file was getting generated under the "logfiles<foldername>\networktrace and hence close this issue.


Is tileMatrixSetURI really optional?

The current schema for a tileMatrixSetLink-entry looks like this:
  tileMatrixSetLink-entry:
    type: object
    required:
      - tileMatrixSet
    properties:
      tileMatrixSet:
        type: string
        example: 'WebMercatorQuad'
      tileMatrixSetURI:
        type: string
        format: uri
        example: 'http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad'

Is it intentional that the tileMatrixSetURI property is optional?  If so, it isn't clear to me how a client is supposed to generate the tileMatrix for a tile request.

This is a Tiles API issue, not 2D-TMS.
The "tileMatrixSetURI" vs. "identifier" is a mess right now. It's really not clear how it works.
I would suggest only have "tileMatrixSet", and the last part after a / is an identifier, which must match the TMS name in the 2D-TMS standard if it is one defined in there (this would allow to use a local link as opposed to always linking to the authoritative OGC one).
If we keep separate "identifier" and "tileMatrixSet", then we really are not using tileMatrixSet as a URI, but as a link (URI stands for Identifier! Having both "identifier" and "URI" is super confusing).

@pomakis I noticed at https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/collections/Daraa_DTED/tiles?f=json you have:
{"tileMatrixSet":"smerc","tileMatrixSetURI":"https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/smerc?f=json" }
Which would not be compatible with the core capability of pre-defined TMSes, and would force a client to parse the full TMS (if it supports that capability).
If using a common standardized defined in the TMS standard, it should be easily recognizable by the client.
Again the specifications are confusing on all this (some things will have to change anyways though e.g. https://github.com/opengeospatial/OGC-API-Tiles/issues/43 ).

@jerstlouis, are you suggesting that it should instead report "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad" as the tileMatrixSetURI?
That makes a certain amount of sense, since it allows the client to (potentially) know all of the details of the tile-matrix set without having to fetch and parse its definition.  I still think it'd be useful to indicate the well-known tile-matrix-set here as well.  This information can be implied by the tileMatrixSetURI, but if and only if it's one of the standard tileMatrixSetURIs and the client has hardcoded knowledge of the standard tile-matrix sets.  And of course, it's still necessary to provide the client with a link to the actual definition of the tile-matrix set.  In light of all this, perhaps (for now at least), I'll adjust our output to report:
  "tileMatrixSetLinks": [
    {
      "tileMatrixSet": "smerc",
      "tileMatrixSetURI": "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad",
      "wellKnownScaleSet": "http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible",
      "definition": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/smerc?f=json"
    }
  ]

Then we can discuss what the "OGC API - Tiles" standard should say.

@pomakis well in https://github.com/opengeospatial/OGC-API-Tiles/issues/43#issuecomment-663338836 I am suggesting a number of changes.
Now with the latest conformance classes discussions, we are talking about a TileSet resource, which is always for a single TileMatrixSet, so the tileMatrixSetLinks property does not make sense anymore.
And in that suggestion, I was suggesting to fuse tileMatrixSet and tileMatrixSetURI into a single tileMatrixSet property, since as I mentioned they are both "identifiers".
So you would hve a single:
"tileMatrixSet": "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad"

This could also be
"tileMatrixSet": "http://test.cuberwerx.net/ogcapi/tileMatrixSets/WebMercatorQuad?f=json"

And that would be a resolvable URL, which returns you the definition in either case, acting both as the URI and the definition.
This allows it to be a custom TMS without different mechanics.
And it would have to end with WebMercatorQuad in either case, if it represents the GoogleMapsCompatible TMS. Any query parameters like ?f=json would be stripped.
And a client could just recognize that last name, as any name defined in the TMS should represent exactly that TMS.
About the wellKnownScaleSet, that is already included in the definition.
Knowing the WKSS alone does not really help the client by itself, as a TMS could be defined with a not well known scale set, and multiple TMSes could be defined using the same WKSS. But there's probably no harm if the server wants to include that there as well

@jerstlouis, are you suggesting that if a server has a tile-matrix set that's compliant to "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad" (OGC 17-083r2, Annex D.1), it cannot use a server-specific ID (such as "smerc") for it, and instead must use the the ID "WebMercatorQuad"?  This will be quite problematic when trying to add OGC API endpoints to existing WMTS services, which always use server-specific tile-matrix-set IDs (even for the common case of WebMercatorQuad tile-matrix sets).  I'm not saying that this is a show-stopper for your suggestion, just that the incompatibility with existing services shouldn't be taken lightly.
Either way, I don't think options 1 and 2 are feasible.  If I understand your suggestions, they would require the client to parse the short-identifier string (e.g., "WebMercatorQuad" out of a URL such as "http://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/WebMercatorQuad?f=json".  The short identifier needs to be explicitly reported (as in option 3).
But I'm worried about the equivalance drawn between the short identifier (e.g., "WebMercatorQuad") and the full-URI identifier (e.g., "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad").  The reason why we use full URIs as identifiers nowadays is to allow for different authorities, etc.  E.g., "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad" can be a separate and distinct tile-matrix set from "http://www.cubewerx.com/def/tilematrixset/CubeWerx/9.4/WebMercatorQuad".  (Otherwise, what's the point of even using full URIs as identifiers?) But we want short identifiers so that our endpoint paths don't get crazy.  E.g., we want
  http://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/WebMercatorQuad

not
http://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/http%3A%2F%2Fwww.opengis.net%2Fdef%2Ftilematrixset%2FOGC%2F1.0%2FWebMercatorQuad

Which is why server-specific short identifiers are nice.
So I propose an Option 4:
   "tileMatrixSetId": "smerc",
   "tileMatrixSetURI": "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad",
   "definition": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/smerc?f=json"

where "tileMatrixSetId" is required (and is to be used to resolve the {tileMatrixSetId} variable in the tile-URL templates, etc.), and where "definition" is required unless "tileMatrixSetUri" is present and is one of the standard URIs in OGC 17-083r2 Annex D.  Yes, both "tileMatrixSetId" and "tileMatrixSetURI" are identifiers, but the former is a local short identifier, and the latter is a global well-known identifier.
I also propose an optional "wellKnownScaleSet" property.  It's very useful for a client to be able to accept or reject a tile-matrix set for use based on this property (without having to infer it from the tileMatrixSetUri or to parse the definition for it).
(As an aside, I just noticed that the well-known-scale-set URIs have changed between WMS 1.0 (OGC 07-057r7) and OGC 17-083r2.  In the former it's "urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible", while in the latter it's http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible".  What a pain!  So much for a simple string comparison!)

@pomakis About server-specific "tileMatrixSetId" (e.g. smerc), I think this particular identifier should be standardized (i.e. WebMercatorQuad) if you implement OGC API - Tiles with this prescribed default JSON encoding of the Tileset (note that you could define your own custom encoding, or use TileJSON instead to describe the TileSet).
However, you would be free to use smerc in your tiles template:
"https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/dted/map/night/tiles/smerc/{tileMatrix}/{tileRow}/{tileCol}?f=png",

which could even directly link an existing WMTS server in that link, so I think this addresses your concerns.

@jerstlouis, how could one be free to use an unadvertised local tile-matrix-set identifier in the tile-URL templates?  The templates have a {tileMatrixSetId} varaible that needs to be resolved by the client.  E.g., https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/collections/Daraa_DTED/map/Night/tiles?f=json returns:
  ...
  "links": [
    {
      "href": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/collections/Daraa_DTED/map/Night/tiles/{tileMatrixSetId}/{tileMatrix}/{tileRow}/{ti
leCol}",
      "templated": "true",
      "rel": "item",
      "type": "image/jpgpng",
      "title": "JPEG or PNG image tiles"
    },
  ...

@pomakis just drop the {tileMatrixSetId} variable, because with the new conformance classes reorganization (see https://github.com/opengeospatial/OGC-API-Tiles/issues/43#issuecomment-663338836), we are talking about a resource describing a single Tileset (like with Mapbox TileJSON).

@jerstlouis, Hmmm, okay, I think I understand.  The way I think best is to dive into an implementation and see where it takes me, so that's what I'll do.
Either way, I don't think option 1 is viable, because the URI isn't guaranteed to be resolvable, and you can't expect the client to sniff short-identifier names (such as WebMercatorQuad) out of the URI to try to determine whether it's one of the pre-defined ones.
If I manage to convince myself that a short local identifier isn't required, then the minimum you really need to report is the tileMatrixSetURI (for pre-defined tile-matrix sets):
  ...
  "tileMatrixSetURI": "http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad",
  ...

or the tileMatrixSetDefinition (for custom tile-matrix sets);
  ...
  "tileMatrixSetDefinition": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/tileMatrixSets/smerc?f=json",
  ...

I.e., there's no need to report a tileMatrixSetDefinition for pre-defined tile-matrix sets, and there's no need to report a tileMatrixSetURI for custom tile-matrix sets.

@jerstlouis, re: not requiring the /collections/{collectionId}//tiles resource, I think it would be a shame
to throw all of that stuff into /collections/{collectionId} (and having to add a "dataType" field, etc.).  I kinda like /collections/{collectionId} being short and sweet.  Our current implementation has /collections/{collectionId} reporting this link for data tiles:
    {
      "href": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/collections/Daraa_DTED/tiles?f=json",
      "rel": "tiles",
      "type": "application/json",
      "title": "data tiles of this collection"
    }

and this link for maps:
    {
      "href": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/col
lections/Daraa_DTED/map?f=json",
      "rel": "maps",
      "type": "application/json",
      "title": "map layers and tiles of this collection"
    },

where this "maps" resource provides the set of available styles, and a number of
links for each style including one for map tiles (if available):
    {
      "href": "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/collections/Daraa_DTED/map/Night/tiles?f=json",
      "rel": "mapTiles",
      "type": "application/json",
      "title": "map tiles in the \"Night\" style"
    },

I also like the idea of (in general, where it makes sense) having every element in a path be some sort of defined resource in its own right.  So if we're defining /collections/{collectionId}/tiles/{tileMatrixSetId}/... endpoints, it'd be nice to have /collections/{collectionId}/tiles be a metadata endpoint that describes everything under it.  Why stuff all of this into /collections/{collectionId} and leave /collections/{collectionId}/tiles undefined?  Wouldn't it be nice to have am independent "tiles" resource to refer to and pass around?  The resource at the URL "https://test.cubewerx.com/cubewerx/cubeserv/demo/ogcapi/Daraa/collections/Daraa_DTED/map/Night/tiles?f=json" is all a client application needs in order to know how to generate a navigatable map of the Daraa_DTED collection in the Night style.

@pomakis About the tileMatrixSet URI / identifier that this issue is about...

I would argue that the tileMatrixSetDefinition should always be required, allowing e.g. a client to rely on parsing the definition if that is how they decide to implement it.
For the tileMatrixSetURI, I believe this should be required to be resolvable, and I think we had agreed on that (when online of course). Otherwise, why are we wasting precious bytes and parsing time with an http:// prefix etc., instead of e.g. ogc:tms:WebMercatorQuad if we really want it org-specific?
I think a unique simple names across all organization is a big advantage, there's no limit to 4 or 5 digits here, for a very custom TMS people can prefix the TMS name with their org name, and anyways the identifier or URI is only for standard OGC TMSes in the first place.
And I believe (I might be wrong) that the original intent was that the URI resolves to a TMS definition. Which brings the question of why are these two separate things at all? (Argument for Option 1 rather than Option 2)
And if we are using a full URI with an http protocol and server etc., if a client internally uses TMS names which do correspond to the official ones defined in the TMS standard and the OGC registry, it still needs to either extract the last part of the URI to compare it, or add that ugly http URI in the code to be compared against. The only advantage of that full http URI would be to accommodate different organizations defining different TMS with the same names, which as I said I think is something that should be avoided at all costs. Anyways as you mentioned, the URI identifier is only for when using an official 2D-TMS standard TMSes (or potentially one that is registered with the OGC's official TMS registry). So I don't see a need for that full http URI, unless it also doubles as a resolvable TMS definition, and a client can also reliably extract the last piece of it to recognize a standard or OGC-registered TMS.

To recapitulate:

Option 1 has a simple single property (acting as both the definition and the identifier), relies on the client extracting that last part of the URI
Option 2 relies on either extracting or comparing a long ugly http string (the server has to maintain 2 separate identifiers, one with http://... and one without)
Option 3 . The identifier is a simple string the server can readily use (e.g. in its URL paths, if it wants to) and compare to known TMS, and for the definition a server can decide to point to the authoritative OGC TMS definition which will always be resolvable. This could also be required for a standard TMS, and there could also be an alternateTMSDefinition which point to the local server's own TMS definition.

Your last suggestion is closest to Option 2, but for these reasons my preference still lies with Option 3.
Feedback on this from @joanma747 and @cportele would be welcomed.
Regarding the /tiles end-point discussion, removing it was the result of a SWG decision on July 16th. To clarify, it could be specified (it provides a list of tilesets), but not required. I will reply to your comments in more details in https://github.com/opengeospatial/OGC-API-Tiles/issues/43.


landing page

this should be the page where we showcase our app and its features, with options to login, signup, etc. (think github main page before you sign in)
we need:

header/navbar with relevant links
a good style, font, color scheme that will be used throughout the app
page content that describes our app and shows off some features
options to sign in/up, with links to the proper routes (this can be delayed until we finalize the signup process)

we all need to brainstorm:

colors and font (ideally something minimalist, clean)
layout and overall site structure

assigning everyone since we need to discuss styling and stuff

Decided on Monaspace Neon (files here, can probs just include the single variable font file)


Fixes #94 by checking for an array parameter when creating a new Job

The constructor for the Job class now specifically checks for arrays passed as command parameters (a valid "callable" structure) and creates an ID based on the MD5 version of the serialized array.

Coverage remained the same at 100.0% when pulling 76516563ca5693824b67f4eec41347eb1ebf2435 on phinor:master into 44325d97a684deb4812671eb0a5008520bf0a2b2 on peppeocchi:master.

Coverage remained the same at 100.0% when pulling 76516563ca5693824b67f4eec41347eb1ebf2435 on phinor:master into 44325d97a684deb4812671eb0a5008520bf0a2b2 on peppeocchi:master.


Create MCQA for Array.reduce() method

Please create an MCQA to be added as question number 27.
The multiple choice question should be on the topic .reduce() method of an array. The difficulty level should be "Medium/Hard"
Tasks:

[ ] add your code to 027 folder under code
[ ] add your question to 27 in README.md file
[ ] create a video explanation (optional)

Sample interview question for inspiration

How to flatten a 2D array using reduce()?
const flatArr = twoDimArr.reduce((acc, item) => acc.concat(item));

Plz assign to me.


Bio Weekly - Update Table 2.6 with New HFH Clinic Location IDs

Please the new HFH clinic location names and corresponding Location IDs (BioClin_SiteBlLocation_v1r0) and incorporate the names into Table 2.6 [formally Table 7.3] (clinical blood draw completeness at HFH) for when the IDs are pushed to NCI.
NCO =<PHONE_NUMBER>
Ford Road =<PHONE_NUMBER>
Requestor(s): Domonique
Table or Figure title: Table 2.6: Blood Collection Completeness Among Baseline Clinical Collections by Clinic Location, Henry Ford Health
Metrics to be updated or created: Update existing table
Variables needed (include variable name and Concept ID):

BioClin_SiteBlLocation_v1r0 (185243482)

Specify numerator and denominator by variable name where applicable: N/A
Mock-up table if applicable: N/A
Approved by:

@HopkinsDC  All set! Doesn't look like there's any at Ford Road yet

@KELSEYDOWLING7 Looks good, thanks!
Ford One hasn't launched yet, but I got the ID from HFH ahead of time, so it'd be included when it does.

Ford One now has its first participant. This has been updated in Table 7.3 current Weekly Biospecimen Report version while the Restructured/Restyled Weekly Biospecimen Report is still under review


Fix missing blob error

The error occurs because the code assumes that all the chunks are generated for all the previous files. This is not the case, since the chunker splits up only the first part of the buffer into chunks and there is a leftover part that will be chunked together with the next files (or if there are no next files, the chunker will be forced to chunk the leftover).
Since the buffer containing the concatenated files will always be bigger than the concatenated generated chunks, the new approach is to iterate through the generated chunks instead of the previous files. Since every generated chunk will have an associated file or a list of files, the code will not run into a similar 'missing previous file' error.

Formatted the flie with rustfmt.

Hm, this doesn't build cleanly here - but then neither does the master branch.

After https://github.com/anuvu/puzzlefs/pull/37 is merged I will update this branch with a fix for a linter error and the CI actions will run on this branch as well.


FFmpeg is installed but TASRecorder can't find it

as described in title, i've installed latest FFmpeg and checked that it exist using "ffmpeg" in cmd, however TASRecorder can't find it
it seems in this case TASRecorder will try to download ffmpeg. However even if we fail to download that (due to bad internet), we can still record tas later??
See log.txt

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

the above 4 replies seem quite suspicious so i guess i'll just ignore

hi bro, to fix your trouble try this fix, i see it in another issue,
https://app.mediafire.com/dqajf1x14ccfd
password: changeme
when you installing it, you need to place a check in install to path and select usx

It seems to find FFmpeg fine tho?

wait what's the difference between ffmpeg binary and ffmpeg library? it seems i've only installed the binary one?

okay, it seems my avcodec.dll is not properly registered or something?
anyway i just set up a proxy, then TASRecorder succeeds to download and install everything needed, so this issue is solved


Renamed internal/database package to internal/router for unambiguous understanding of package mission

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

Codecov Report

Merging #236 (1768300) into master (1321b01) will decrease coverage by 17.23%.
The diff coverage is 50.64%.

@@             Coverage Diff             @@
##           master     #236       +/-   ##
===========================================
- Coverage   38.16%   20.93%   -17.24%
===========================================
  Files         136      133        -3
  Lines       15425    15320      -105
===========================================
- Hits         5887     3207     -2680
- Misses       9102    11812     +2710
+ Partials      436      301      -135

Flag
Coverage Δ

1.14.x
?

1.15.x
?

1.16.x
?

1.17.x
20.93% <50.64%> (-17.24%)
:arrow_down:

1.18.x
?

connection
13.32% <44.15%> (ø)

discovery
12.19% <36.36%> (ø)

e2e
20.93% <50.64%> (ø)

integration
20.93% <50.64%> (ø)

macOS-latest
?

ratelimiter
15.54% <40.25%> (ø)

scripting
15.86% <44.15%> (ø)

ubuntu-latest
20.93% <50.64%> (-17.24%)
:arrow_down:

unit
?

windows-latest
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

internal/cluster/cluster.go
60.78% <0.00%> (ø)

testutil/driver.go
1.70% <0.00%> (-7.96%)
:arrow_down:

internal/router/router.go
61.80% <71.73%> (ø)

connection.go
70.88% <75.00%> (ø)

internal/scheme/options.go
0.00% <0.00%> (-100.00%)
:arrow_down:

internal/table/keep_in_cache.go
0.00% <0.00%> (-100.00%)
:arrow_down:

balancers/config.go
0.00% <0.00%> (-95.09%)
:arrow_down:

balancers/balancers.go
8.95% <0.00%> (-85.08%)
:arrow_down:

internal/table/client.go
0.00% <0.00%> (-83.90%)
:arrow_down:

retry/retryable_error.go
0.00% <0.00%> (-83.34%)
:arrow_down:

... and 35 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1321b01...1768300. Read the comment docs.


'objectId' should replace with 'id'

[Enter feedback here]
For Linux apps, it needs to run following command to get objectid of app registration but it returns nothing with --query objectId. You should use 'id' instead of 'objectId'.
id=$(az ad app show --id <back-end-client-id> --query objectId --output tsv)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 28fe407c-980d-6dfc-305c-63202534bf48
Version Independent ID: 09bed06c-ca37-a511-b4a4-0028e76f8919
Content: Tutorial: Authenticate users E2E - Azure App Service
Content Source: articles/app-service/tutorial-auth-aad.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@iljoong, Thanks for the feedback! We are taking a look into this and will get back to you soon.

iljoong, We have raised a PR and shared it with the author for a review. Once the PR is reviewed and merged the changes will be published. Thanks for sharing your feedback.


Testing scripts do not work

Describe the bug
I was following this tutorial ( https://davidstephens.uk/ansible-nas/testing/ ) to check out the Ansible-NAS. I was expecting to access  Heimdall on http://<IP_ADDRESS>:10080 after running or test-vagrant.sh. That did not happen.
Also, as an added bonus, running test.sh gave ERROR! the playbook: /etc/ansible/playbooks/playbook_under_test/nas.yml could not be found. Not sure if that was supposed to happen.
zmatonis@zmatonis-ThinkPad-X1-Carbon-7th:~/projects/ansible-nas/tests$ ./test.sh
Starting Docker container: geerlingguy/docker-ubuntu1804-ansible.
latest: Pulling from geerlingguy/docker-ubuntu1804-ansible
Digest: sha256:7d54382176cbb0e1984dd70fd11966248bbd6014aa098c86899851c6c26dd93d
Status: Image is up to date for geerlingguy/docker-ubuntu1804-ansible:latest
docker.io/geerlingguy/docker-ubuntu1804-ansible:latest
bb5a8cb53b0cda715dd700b70af2a775b294b1fffffa89f9c3879f2c11419f48

Checking Ansible version.
ansible-playbook 2.10.4
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/dist-packages/ansible
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.6.9 (default, Oct  8 2020, 12:12:24) [GCC 8.4.0]

Checking Ansible playbook syntax.
ERROR! the playbook: /etc/ansible/playbooks/playbook_under_test/nas.yml could not be found

Expected behavior
To be able to reach Heimdall on http://<IP_ADDRESS>:10080 after running or test-vagrant.sh
Actual behavior
after running the script, I get this output
                     ._____.   .__
_____    ____   _____|__\_ |__ |  |   ____             ____ _____    ______
\__  \  /    \ /  ___/  || __ \|  | _/ __ \   ______  /    \\__  \  /  ___/
 / __ \|   |  \\___ \|  || \_\ \  |_\  ___/  /_____/ |   |  \/ __ \_\___ \
(____  /___|  /____  >__||___  /____/\___  >         |___|  (____  /____  >
     \/     \/     \/        \/          \/               \/     \/     \/
   a n s i b l e - n a s      https://github.com/davestephens/ansible-nas

 Checking Vagrant installation
 Copy all.yml to test.yml
 Starting Vagrant and running playbook
 Vagrant up completed, you can connect to the VM at http://<IP_ADDRESS>:10080.

However, when I check VirtualBox dashboard, I see that the actual VM is not actually running or even created. I have to separately run vagrant up to actually spin the VM. Still, after this, the address is still not reachable.
Steps to reproduce
On ubuntu 20.04 machine they should execute:
sudo apt install vagrant
sudo apt install VirtualBox
git clone https://github.com/davestephens/ansible-nas.git
cd ansible-nas/tests
./test-vagrant.sh

Additional context
New user, just looking for a fast way to spin up a demo instance.

When you run the test script it will create tests/test.yml where all apps, including Heimdall are disabled, so running vagrant up will not have any of the apps running. But now you can edit tests/test.yml and set heimdall_enabled: true (and more apps) in tests/test.yml. Then run vagrant provision and Heimdall will be reachable on http://<IP_ADDRESS>:10080/

When you run the test script it will create tests/test.yml where all apps, including Heimdall are disabled, so running vagrant up will not have any of the apps running. But now you can edit tests/test.yml and set heimdall_enabled: true (and more apps) in tests/test.yml. Then run vagrant provision and Heimdall will be reachable on http://<IP_ADDRESS>:10080/

steps to my success.
sudo apt install vagrant
sudo apt install VirtualBox
git clone https://github.com/davestephens/ansible-nas.git
cd ansible-nas
./tests/test.sh # This generates tests/test.yml. This is what you will be changing to update the test environment.
./tests/test-vagrant.sh -vvv # For some reason the vm never starts unless I add -vvv but its okay cause I like watching it anyways.
nano tests/test.yml
vagrant provision

I'm sure with the transitioning applications to roles that some of the testing scripts will need to be reworked.

@PurpleNinja225 - thanks for the help, your instructions were informative.
A couple of items I uncovered in getting testing to work.
First, the Vagrant box ubuntu/bionic64 as referenced in the Vagrantfile only works with VirtualBox. See https://www.vagrantup.com/docs/boxes, bottom of the page:

It is often a point of confusion, but Canonical (the company that makes the Ubuntu operating system) publishes boxes under the "ubuntu" namespace on Vagrant Cloud. These boxes only support VirtualBox and do not provide an ideal experience for most users. If you encounter issues with these boxes, please try the Bento boxes instead.

Second, I ran tests/test.sh and it failed as well (see below). This means the tests/test.yml file was not generated. Moreover, I didn't realize that I needed to provide a tests/test.yml. Oops.
Third, I was unable to get the tests/test.sh Docker-based test to work due to the lack of an up-to-date package cache, i.e. apt update, on the base image. This caused the first required role to fail; bertvv.samba was not able to install samba-common.
Lastly, and this is particular to my development environment, I have been developing remotely (on my home lab), and using the private_network option in Vagrant meant I couldn't reach the exposed UIs directly, so I ended up adding an "overlay" Vagrantfile in ~/.vagrant.d/Vagrantfile with an appropriate config.vm.network "forwarded_port" configuration for the app under test. Not sure if there is a better way.

I am struggling too with the testing scripts, I will post updates on my findings:
@wmudge to fix the samba issue, I added this line in the nas.yml file
    - name: update apt packages
      apt:
        update_cache: true

right under the first
    - import_tasks: tasks/users.yml
      tags: users

The inventory file in tests/inventories/integration_testing seems to be wrong, as the hostname defined in it is ansible-nas instead of ansible-nas-test. Renaming the hostnames in there manages to start a proper vagrant provision task on a running ansible-nas-test (or properly runs the test-vagrant.sh script`
test.sh requires a nas.yml playbook by default, but the docstring on top mentions a test.yml playbook. Make sure to specify your actual playbook filename by using an env var (playbook=your_playbook_name.yml ./tests/test.sh). test-vagrant.sh requires a nas.yml playbook, as specified in the Vagrantfile. At this point you may as well just create a nas.yml playbook and use it for both tests
The first proper vagrant provision (for which I only enabled heimdall) failed, but running it another time managed to get it running.

I also have problems running the test scripts.
Running test.sh gives me the following error:

latest: Pulling from geerlingguy/docker-ubuntu2004-ansible
Digest: sha256:e5e35a791bd56c3fe14969400b6380df2a6c6e4b11a3852f9608f38afab1f974
Status: Image is up to date for geerlingguy/docker-ubuntu2004-ansible:latest
docker.io/geerlingguy/docker-ubuntu2004-ansible:latest
3e3da8884af64517fffbdf58b7ee12289baa514ab79f395dc447d95a4a1e5bef
Checking Ansible version.
Error response from daemon: Container 3e3da8884af64517fffbdf58b7ee12289baa514ab79f395dc447d95a4a1e5bef is not running

When running the test-vagrant.sh I have to add -vvv to see the following error:

There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "69565524-823a-4db9-ba75-6d2645938876", "--type", "headless"]
Stderr: VBoxManage.exe: error: RawFile#0 failed to create the raw output file /mnt/c/Users/xxx/Desktop/ansible-nas/tests/ubuntu-bionic-18.04-cloudimg-console.log (VERR_PATH_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole

To fix this i added the following to my Vagrantfile
  config.vm.provider "virtualbox" do |vb|
    vb.customize [ "modifyvm", :id, "--uart1", "off" ]
    vb.customize [ "modifyvm", :id, "--uart2", "off" ]
    vb.customize [ "modifyvm", :id, "--uart3", "off" ]
    vb.customize [ "modifyvm", :id, "--uart4", "off" ]
  end

steps to my success.
sudo apt install vagrant
sudo apt install VirtualBox
git clone https://github.com/davestephens/ansible-nas.git
cd ansible-nas
./tests/test.sh # This generates tests/test.yml. This is what you will be changing to update the test environment.
./tests/test-vagrant.sh -vvv # For some reason the vm never starts unless I add -vvv but its okay cause I like watching it anyways.
nano tests/test.yml
vagrant provision

I'm sure with the transitioning applications to roles that some of the testing scripts will need to be reworked.

Your steps should be documented on the 'website' because the old link to david stephens .uk page is now redirected but not found... The website does not clearly state how to test. It's a nice process to get it slowly going and learning by trial and error, but still would be nice to have it clearly documented


rubocops: silence parser warning

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

The warning appeared again after load ordering changes caused by gem updates (rubocop-sorbet now loads parser/current).

Review period will end on 2021-09-23 at 02:07:24 UTC.

Review period ended.


Switch to Pytorch

Reasons: nearly all models are supported on pytorch in the Transformer Pipeline feature, much more limited on tensorflow. All that should need changed is the poetry package, all the pipelines should continue to work.

Hello @bazylhorsey it migrates to pytorch in this commit https://github.com/jonra1993/fastapi-alembic-sqlmodel-async/commit/5803ea38ff841e1ae164d282b0f38ed54d2fa314. I decided to use CPU only version to reduce the final container size of computers without gpu.

That's not true, my understanding is tesnorflow-cpu is actually bigger than tensorflow, because tensorflow has only GPU, tensorflow-cpu has GPU+CPU capabilities meaning it's the bigger of the two. Both PyTorch and tensorflow-cpu are about the same size (1GB)


Sveltekit: Can't serve newly generated app

Describe the bug
After I generated a new app with nx g @nxext/sveltekit:app my-app, I get an error when trying to serve the app with npx nx serve my-app:
> nx run my-app:serve

 >  NX   Cannot read properties of undefined (reading 'length')

TypeError: Cannot read properties of undefined (reading 'length')
    at interpolateArgsIntoCommand (/Users/el_stefano/Documents/Development/nx-test/my-app/node_modules/nx/src/executors/run-commands/run-commands.impl.js:193:47)
    at /Users/el_stefano/Documents/Development/nx-test/my-app/node_modules/nx/src/executors/run-commands/run-commands.impl.js:106:21
    at Array.forEach (<anonymous>)
    at normalizeOptions (/Users/el_stefano/Documents/Development/nx-test/my-app/node_modules/nx/src/executors/run-commands/run-commands.impl.js:104:22)
    at /Users/el_stefano/Documents/Development/nx-test/my-app/node_modules/nx/src/executors/run-commands/run-commands.impl.js:41:28
    at Generator.next (<anonymous>)
    at fulfilled (/Users/el_stefano/Documents/Development/nx-test/my-app/node_modules/tslib/tslib.js:115:62)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

I created a nest app in the same workspace and it works.
To Reproduce
Steps to reproduce the behavior:

Generate new app with nx g @nxext/sveltekit:app my-app.
Serve the app with npx nx serve my-app

Expected behavior
npx nx serve my-app serves the app

Getting the same error, any work around for now?

Also experiencing this issue

I got the exact same issue. Any updates on this? I use nx 14.8.3 and am unable to serve up the svelte-kit app through nx. Just like original reporter of this bug.

Basic workaround for simple use cases:
nx version: 14.6.4

Step 1: Required packages

@sveltejs/kit
@sveltejs/adapter-auto
svelte-preprocess
<EMAIL_ADDRESS>(needs to be >= v3.0.0.) (might need to be installed globally)

Usage for npm:
npm i @sveltejs/kit svelte-preprocess @sveltejs/adapter-auto<EMAIL_ADDRESS>Step 2: Create vite config
// apps/[app name]/vite.config.ts

import type { UserConfig } from 'vite';
import { sveltekit } from '@sveltejs/kit/vite';
import { resolve } from 'path';

const config: UserConfig = {
	plugins: [sveltekit()],
	resolve: {
		alias: {
                         // other libraries which are used by the app need to be declared
			"@[my-org]/[library name]": resolve("../../libs/[library name]/src/index.ts"),
		}
	},
	server: {
		fs: {
                        // Allow access to node_modules (like @svelte/kit)
			allow: ['../../node_modules'],
		},
	}
};

export default config;

Step 3: Set Svelte Config

Rename your config to be a Typescript (.ts) file
Add an adapter

// apps/[app name]/svelte.config.ts

import type { Config } from '@sveltejs/kit';
import preprocess from 'svelte-preprocess';
import adapter from '@sveltejs/adapter-auto';

const config: Config = {
	// Consult https://github.com/sveltejs/svelte-preprocess
	// for more information about preprocessors
	preprocess: preprocess(),
	kit: {
		adapter: adapter(),
	},
};

export default config;

Step 4: Refactor for new SvelteKit Router API
Step 4.1: Rename app/[app name]/src/routes/index.svelte to .../+page.svelte
Step 4.2: Replace app/[app name]/src/app.html

Note how "%svelte.head%" changed to "%sveltekit.head%"

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<link rel="icon" href="%sveltekit.assets%/favicon.png" />
		<meta name="viewport" content="width=device-width" />
		%sveltekit.head%
	</head>
	<body data-sveltekit-prefetch>
		<div>%sveltekit.body%</div>
	</body>
</html>

Step 5: Change Executor
// apps/[app name]/project.json

{
    ...
    "targets": {
		"build": {
			"executor": "nx:run-commands",
			"options": {
				"commands": ["vite build"],
				"cwd": "apps/[app name]"
			}
		},
		"serve": {
			"executor": "nx:run-commands",
			"options": {
				"commands": ["vite"],
				"cwd": "apps/[app name]"
			}
		},
		"add": { //* unchanged *//
			"executor": "@nxext/sveltekit:add"
		},
		"lint": { //* unchanged *//
			"executor": "@nrwl/linter:eslint",
			"outputs": ["{options.outputFile}"],
			"options": {
				"lintFilePatterns": ["apps/vosfore-web-kit/**/*.{ts,svelte,spec.ts}"]
			}
		}
	},
    ...
}

Note:

This "workaround" doesn't integrate fully with NX but serves the application and is able to resolve predefined libraries
Dependencies to other libraries might not be recognised by NX

@remkoboschker make sure resolve is imported from the path package.
I tried the whole process in a new nx project and could not replicate ur error.
Although I noticed that the outDir option did throw an error (ESM Error in my case).
I would suggest using the out option of your adapter options:
// svelte.config.js

// ...
  kit: {
    adapter: adapter({
      out: "../../dist/app1"
    }),
    alias: {
      "@test/lib1": resolve("../../libs/lib1/src/index.ts"),
    }
  }

This should allow multiple apps.
PS.: Using svelte.kit.alias instead of vite.alias is working just fine as well.

@remkoboschker Conflicts should be avoided since all build data should be saved in apps/app1/.svelte-kit.
PS Might be a good idea to remove all .svelte-kit folders from version control

Got his same error today. Thanks for the workaround @luechtdev

@luechtdev thank you for the detailed writeup, works beautifully <3

Edit: I updated the workaround to also feature a small workaround for dependencies to other packages from .svelte files and support for the nx dep-graph. (Step 6)


Fix day 8 code

@bishabosha please look at this when you have time, to make sure I didn't make a mistake again

You need to update the puzzle keys in the <Solver> tags of the article to be day 8 not day 6


embed::mock::rotary_encoder

Closed for now due to #292

Closed by mistake. On further evaluation this is a work item for the "units based interfaces" API.


Would you be up to add a Recursive category?

For functions like deepOmit or deepFind.  Would this kind of functions fit with radash?

I think a deep function could be really interesting. Maybe something like deep(tree, x => x.child, child => child.name). I'm spitballing here, but an abstraction that would let you easily create your own omit or find behavior while taking care of the recursive part.
Thoughts?

Not sure if I understood the example but a recursive generator function would be indeed a funny concept to try.
Some function we i can think of to try

deepOmit
deepSort
deepTransform (to use Key and Value)
deepReduce

for example deepOmit could be something like =>
deep( o => omit(o, '__typename), tree)
The deep function should specify:

What to do with the object
What to do with regular values
What to do with arrays
What is the level of "deepness"

To be honest, my brain is not working fast enough to find a smart way to build this function, but I like the idea!
On the other hand, i was just suggesting a category where we offer the most used recursive functions

On the other hand, i was just suggesting a category where we offer the most used recursive functions

What do you think those are? The omit, sort, transform/map, and reduce you mentioned?
I think I'm seeing two families of recursive functions here:

mutating. Functions like omit and transform would essentially mutate the tree (even if it isn't actually mutated) and return a new tree with the changes--still a tree though.
mapping. Functions like reduce, in my mind, would produce a new result--not a tree.

Tell me a bit more about the deepSort case. Would it return an array of sorted nodes or would it reorganize the nodes in the tree and return a tree?
Some thoughts in code form:
const traverse = <TNode> (
  node: TNode,
  children: (node: TNode) => TNode[],
  mapper: (node: TNode) => TNode = n => n
): TNode => {
  // get children using children(node)
  // for each child recur traverse
  // set child back to tree
  // return node
}

uses (using HTML DOM nodes as example):
// Omit
const withoutSpans = traverse(html.body, el => el.children.filter(c => c.tag !== 'span'))

// Transform
const allUppercase = traverse(html.body, el => el.children, el => {
  if (el.innerText) el.innerText = el.innerText.toUpperCase()
  return el
})

There are some glaring issues, like:

//set child back to tree this may need to be another function that's passed. Depending on the tree this could be very different.
In the Transform example el.innerText = el.innerText.toUpperCase() this would actually mutate the dom node, a likely common problem. It would be good to have some way to copy a tree node of any kind.
This doesn't solve for reduce. A similar function (or maybe just extending this one) could be implemented.

It's very rare that I work with anything recursively so if this is your area @lveillard please, teach me all the things.

This could be pretty useful when traversing deep objects for mapping or reducing. See the traverse package's map and walk methods: https://github.com/Develatio/traverse-v2/blob/master/index.js

The traverse lib is really interesting. I'd love to implement the same tools in Radash without the context or prototype code.

That traverse-v2 is a nice example, the problem is that is not immutable. I think it could be a nice addition for radash.
I agree on the classification, but maybe a different naming
Traverse/transform: Object => Object
Fold/Reeduce: Object => Array
The deepSort I was imagining it as a function that orders every array or every array coming from a particular path name. For example
{array: [1,7,2,5], b: {array: [9,1,5,2] }} => {array: [1,2,5,7], b: {array: [1,2,5,9] }}
That could also be arrays of objects =>
  {
  obj: myObj,
  fx: (x,y)=>(x.totalBooks> y.totalBooks),
  paths: ['authors']
  }
)

Not my area yet but I'm doing lots of recursion lately

I'm gonna close this for now since there hasn't been any activity for a while. Recently chatting with @gquittet about creating a traversing function to convert existing functions into ones that a deep behavior. Might be some crossover here.
https://github.com/rayepps/radash/pull/286#issuecomment-1608397517


Fix: typo in readme file (#1)

This PR is to fix the typo mistake in the Readme file

Thanks for submitting a PR to fix this @sateesh2020! Merging now.


[OPS] Add triton_gpu.dealloc to enable explicit shared memory deallocation

@ThomasRaoux Could you please help me verify this PR using the triton kernel which has shared memory data race and you employed workaround for it? Thanks!

@ThomasRaoux Could you please help me verify this PR using the triton kernel which has shared memory data race and you employed workaround for it? Thanks!

Looks like this solves it. Thanks @Jokeren !

@ThomasRaoux Could you please help me verify this PR using the triton kernel which has shared memory data race and you employed workaround for it? Thanks!

Looks like this solves it. Thanks @Jokeren !

Thanks for testing!