Fix EditButton

Fixes opening multiple editors bug

Can you create two merge requests? One with the cleanup and one with the really fix? We should add a stylesheet for the code and reformat the complete code once, otherwise the merge requests are always quite big

In this case (30 lines header and 120 lines source file): no
Please confirm that I should rework this pull request.


Python version requirement

the pyroject.toml file says that this project requires python 3.11.
Is there a specific feature of 3.11 that is needed here?
Python 3.11 is still a pre-release.

I don't believe this project use any features from newer Python releases. I also did check using vermin and plemmy should work on >=3.7, so we should be fine to lower the required version.
Minimum required versions: 3.7
Incompatible versions:     2

Also, as far I can tell - Python 3.11 is current stable release and 3.12 is a pre-release?

Oh yep, I think you are right 3.11 is stable.

@gwbischof - you're correct, there's really no reason to require 3.11 if Plemmy doesn't use Python's newer features.
@ihyoudou - thanks for testing which Python versions are compatible, and for introducing me to a cool tool!
Setting the minimum requirement to 3.7 makes sense, I'll merge the associated PR.


Unable to write neo annotations with NixIO

Hello,
I am unable to write neo block annotations to file using NixIO. I also tried matlab io but this didn't work either. Below are a minimal example and a screenshot of the resulting hdf5 file. Thanks!
Sean
from neo.core import Block, Segment, Event
from neo.io import NixIO
import os

filename = "annot_only.nix"
anots = {"Hi": 10, "nix_name": "1"}
blk = Block(annotations=anots)
nio = NixIO(filename=filename)
nio.write(blk)
nio.close()

Annotations aren't set with the keyword argument annotations but instead, any extra keyword argument that isn't specified in the constructor.  So in this case, the code should be:
from neo.core import Block
from neo.io import NixIO

filename = "annot_only.nix"
anots = {"Hi": 10, "nix_name": "1"}
blk = Block(**anots)
nio = NixIO(filename=filename)
nio.write(blk)
nio.close()

which produces
❯ h5ls -d -r annot_only.nix/metadata/1/
/properties              Group
/properties/Hi           Dataset {1/Inf}
Data:
(0) 10
/properties/neo_name     Dataset {1/Inf}
Data:
(0) ""
/properties/nix_name     Dataset {1/Inf}
Data:
(0) "1"

The result in your original code was the creation of an annotation called annotations which was a dictionary and the NIXIO just used the keys as values for that annotation.

Thank you very much! My apologies, I misunderstood how annotations were meant to be passed. I appreciate the clarification! All the best,
Sean


problem with gtf file

Hi @zhxiaokang
It seems I am having a problem with the BAM step in my workflow.
I get the following output
`[Wed Jan  6 23:51:27 2021]
rule featureCount:
input: data/output/pva027/genome/bamFileSort/20-0357.sort.bam, data/example/ref/annotation/027-annot.gff
output: output-pva/pva027/genome/countFile/20-0357_count.tsv, output-pva/pva027/genome/countFile/20-0357_count.tsv.summary
jobid: 2
wildcards: sample=20-0357
Job counts:
count	jobs
1	featureCount
1
    ==========     _____ _    _ ____  _____  ______          _____
    =====         / ____| |  | |  _ \|  __ \|  ____|   /\   |  __ \
      =====      | (___ | |  | | |_) | |__) | |__     /  \  | |  | |
        ====      \___ \| |  | |  _ <|  _  /|  __|   / /\ \ | |  | |
          ====    ____) | |__| | |_) | | \ \| |____ / ____ \| |__| |
    ==========   |_____/ \____/|____/|_|  \_\______/_/    \_\_____/
  v1.6.4

//========================== featureCounts setting ===========================\
||                                                                            ||
||             Input files : 1 BAM file                                       ||
||                           P 20-0357.sort.bam                               ||
||                                                                            ||
||             Output file : 20-0357_count.tsv                                ||
||                 Summary : 20-0357_count.tsv.summary                        ||
||              Annotation : 027-annot.gff (GTF)                              ||
||      Dir for temp files : output-pva/pva027/genome/countFile               ||
||                                                                            ||
||                 Threads : 8                                                ||
||                   Level : meta-feature level                               ||
||              Paired-end : yes                                              ||
||      Multimapping reads : not counted                                      ||
|| Multi-overlapping reads : not counted                                      ||
||   Min overlapping bases : 1                                                ||
||                                                                            ||
||          Chimeric reads : counted                                          ||
||        Both ends mapped : not required                                     ||
||                                                                            ||
\============================================================================//
//================================= Running ==================================\
||                                                                            ||
|| Load annotation file 027-annot.gff ...                                     ||
ERROR: no features were loaded in format GTF. The annotation format can be specified by the '-F' option, and the required feature type can be specified by the '-t' option..
The porgram has to terminate.
[Wed Jan  6 23:51:28 2021]
Error in rule featureCount:
jobid: 0
output: output-pva/pva027/genome/countFile/20-0357_count.tsv, output-pva/pva027/genome/countFile/20-0357_count.tsv.summary
RuleException:
CalledProcessError in line 109 of /home/sam/Downloads/RASflow/workflow/align_count_genome.rules:
Command ' set -euo pipefail;  featureCounts -p -T 8 -t exon -g ID -a data/example/ref/annotation/027-annot.gff -o output-pva/pva027/genome/countFile/20-0357_count.tsv data/output/pva027/genome/bamFileSort/20-0357.sort.bam && tail -n +3 output-pva/pva027/genome/countFile/20-0357_count.tsv | cut -f1,7 > temp.20-0357 && mv temp.20-0357 output-pva/pva027/genome/countFile/20-0357_count.tsv ' returned non-zero exit status 255.
File "/home/sam/Downloads/RASflow/workflow/align_count_genome.rules", line 109, in __rule_featureCount
File "/home/sam/anaconda3/envs/rasflow/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Exiting because a job execution failed. Look above for error message
`
Do you have any idea how I could fix it?
Cheers,
Pablo

This is an error from featureCounts which seems not able to understand the GFF file you provided. Please check your GFF file and also the parameter "ATTRIBUTE" in config_main.yaml to make sure that they agree with each other.

This is an error from featureCounts which seems not able to understand the GFF file you provided. Please check your GFF file and also the parameter "ATTRIBUTE" in config_main.yaml to make sure that they agree with each other.

Hi @zhxiaokang,
I am providing a gff file directly from a Prokka output. Also, the ATTRIBUTE is set as "ID" instead of "gene_id". Nevertheless, I still get an error.
Maybe I should edit the gff file or convert it to some other file type?
Cheers,
Pablo

Hi @zhxiaokang,
I am providing a gff file directly from a Prokka output. Also, the ATTRIBUTE is set as "ID" instead of "gene_id". Nevertheless, I still get an error.
Maybe I should edit the gff file or convert it to some other file type?
Cheers,
Pablo

Not sure whether this is the issue, but the error says: no features were loaded in format GTF, but you're actually using a GFF. Maybe try to use a GTF file instead of GFF?
And do you mind sharing the GFF file you're using? At least show some lines that include the "ATTRIBUTE".

Not sure whether this is the issue, but the error says: no features were loaded in format GTF, but you're actually using a GFF. Maybe try to use a GTF file instead of GFF?
And do you mind sharing the GFF file you're using? At least show some lines that include the "ATTRIBUTE".

But Prokka doesn't provide gtf file. Also, gtf files are the old version of gff (gtf version 3, I think?)
I will share the file and the yaml line

But Prokka doesn't provide gtf file. Also, gtf files are the old version of gff (gtf version 3, I think?)
I will share the file and the yaml line

This is how the GFF files looks like (these are screenshots since I cannot upload a gff file here)

And this is the line of the config yaml file
# genome and annotation files
GENOME: data/example/ref/genome/027-annot.fna
ANNOTATION: data/example/ref/annotation/027-annot.gff
ATTRIBUTE: ID  # the attribute used in annotation file. It's usually "gene_id", but double check that since it may also be "gene", "ID"...

This is how the GFF files looks like (these are screenshots since I cannot upload a gff file here)

And this is the line of the config yaml file
# genome and annotation files
GENOME: data/example/ref/genome/027-annot.fna
ANNOTATION: data/example/ref/annotation/027-annot.gff
ATTRIBUTE: ID  # the attribute used in annotation file. It's usually "gene_id", but double check that since it may also be "gene", "ID"...

Hi, I'm sorry for the bad news but it seems that both featureCounts and htseq-count are designed for GTF format: https://help.galaxyproject.org/t/problems-with-attributes-in-featurecounts-gff3-input-instead-of-gtf/3046/2
As I tried out the example data on a GFF3 file with both tools, and they reported similar errors as what you got that they couldn't find the correct attribute. You may try to convert the GFF3 file into GTF file first. Here are some tools for the conversion: https://github.com/NBISweden/GAAS/blob/master/annotation/knowledge/gff_to_gtf.md
Hope this helps.

Hi, I'm sorry for the bad news but it seems that both featureCounts and htseq-count are designed for GTF format: https://help.galaxyproject.org/t/problems-with-attributes-in-featurecounts-gff3-input-instead-of-gtf/3046/2
As I tried out the example data on a GFF3 file with both tools, and they reported similar errors as what you got that they couldn't find the correct attribute. You may try to convert the GFF3 file into GTF file first. Here are some tools for the conversion: https://github.com/NBISweden/GAAS/blob/master/annotation/knowledge/gff_to_gtf.md
Hope this helps.

The GTF file looks good to me, at least the part in the screenshot. Could you share the whole file? I suspect that there are some issues somewhere in the file (not in the screenshot part).

The GTF file looks good to me, at least the part in the screenshot. Could you share the whole file? I suspect that there are some issues somewhere in the file (not in the screenshot part).

do you have an e-mail for sending the file? I cannot upload here on github.

do you have an e-mail for sending the file? I cannot upload here on github.

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>

Hi, after testing with your GTF file, I found that featureCounts will throw this error when there are two fields with quotes in the "inference" part. In the ERROR message you posted above, there are "ab initio prediction:Prodigal:002006" and "similar to AA sequence:ISfinder:ISHaha5", and there are more such cases in your GTF file.
I'm trying to post this issue in their Google group but am still waiting to be admitted into the group.
For the time being, you may fix the issue by only cutting the gene_id part from the GTF file with such command:
cut -d';' -f1 027-annot.gtf > 027-annot_only_gene_id.gtf
And use 027-annot_only_gene_id.gtf instead. I have tested this strategy (only picking the gene_id part) on the example data in RASflow, it produced almost the same counts as using the original GTF file.

Hi, after testing with your GTF file, I found that featureCounts will throw this error when there are two fields with quotes in the "inference" part. In the ERROR message you posted above, there are "ab initio prediction:Prodigal:002006" and "similar to AA sequence:ISfinder:ISHaha5", and there are more such cases in your GTF file.
I'm trying to post this issue in their Google group but am still waiting to be admitted into the group.
For the time being, you may fix the issue by only cutting the gene_id part from the GTF file with such command:
cut -d';' -f1 027-annot.gtf > 027-annot_only_gene_id.gtf
And use 027-annot_only_gene_id.gtf instead. I have tested this strategy (only picking the gene_id part) on the example data in RASflow, it produced almost the same counts as using the original GTF file.

hi @zhxiaokang
Thank you for providing the command for fixing the GTF file. It worked perfectly!
However, there seems to be another error yet on the DEA visualization step
`Error in glmFit.default(y = y$counts, design = design, dispersion = dispersion,  :
dispersion must be numeric
Calls: DEA ... glmFit -> glmFit.DGEList -> glmFit -> glmFit.default
In addition: Warning message:
In estimateDisp.default(y = y$counts, design = design, group = group,  :
No residual df: setting dispersion to NA
Execution halted
[Wed Jan 20 09:27:00 2021]
Error in rule DEA:
jobid: 1
output: output-pva/pva027/genome/dea/countGroup/Untreated_gene_norm.tsv, output-pva/pva027/genome/dea/countGroup/Calcium_gene_norm.tsv, output-pva/pva027/genome/dea/DEA/dea_Untreated_Calcium.tsv, output-pva/pva027/genome/dea/DEA/deg_Untreated_Calcium.tsv
RuleException:
CalledProcessError in line 38 of /home/sam/Downloads/ilse/RASflow/workflow/dea_genome.rules:
Command ' set -euo pipefail;  Rscript scripts/dea_genome.R ' returned non-zero exit status 1.
File "/home/sam/Downloads/ilse/RASflow/workflow/dea_genome.rules", line 38, in __rule_DEA
File "/home/sam/anaconda3/envs/rasflow/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Removing output files of failed job DEA since they might be corrupted:
output-pva/pva027/genome/dea/countGroup/Untreated_gene_norm.tsv, output-pva/pva027/genome/dea/countGroup/Calcium_gene_norm.tsv
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: /home/sam/Downloads/ilse/RASflow/.snakemake/log/2021-01-20T092655.885343.snakemake.log
DEA is done!
Start visualization of DEA results!
Building DAG of jobs...
Using shell: /bin/bash
Provided cores: 1
Rules claiming more threads will be scaled down.
Job counts:
count	jobs
1	end
1	plot
2
[Wed Jan 20 09:27:00 2021]
rule plot:
input: output-pva/pva027/genome/dea/countGroup, output-pva/pva027/genome/dea/DEA
output: output-pva/pva027/genome/dea/visualization/volcano_plot_Untreated_Calcium.pdf, output-pva/pva027/genome/dea/visualization/heatmap_Untreated_Calcium.pdf
jobid: 1
Loading required package: plotscale
hash-3.0.1 provided by Decision Patterns
Loading required package: GenomicFeatures
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: ‘BiocGenerics’
The following objects are masked from ‘package:parallel’:
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from ‘package:stats’:
IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:
anyDuplicated, append, as.data.frame, basename, cbind, colMeans,
colnames, colSums, dirname, do.call, duplicated, eval, evalq,
Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply,
lengths, Map, mapply, match, mget, order, paste, pmax, pmax.int,
pmin, pmin.int, Position, rank, rbind, Reduce, rowMeans, rownames,
rowSums, sapply, setdiff, sort, table, tapply, union, unique,
unsplit, which, which.max, which.min

Loading required package: S4Vectors
Loading required package: stats4
Attaching package: ‘S4Vectors’
The following objects are masked from ‘package:hash’:
values, values<-

The following object is masked from ‘package:base’:
expand.grid

Loading required package: IRanges
Loading required package: GenomeInfoDb
Loading required package: GenomicRanges
Loading required package: AnnotationDbi
Loading required package: Biobase
Welcome to Bioconductor
Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.

Attaching package: ‘AnnotationDbi’
The following objects are masked from ‘package:hash’:
keys, keys<-

Loading required package: ggplot2
Loading required package: ggrepel
Error in file(file, "rt") : cannot open the connection
Calls: plot.volcano.heatmap -> read.table -> file
In addition: Warning message:
In file(file, "rt") :
cannot open file 'output-pva/pva027/genome/dea/DEA/dea_Untreated_Calcium.tsv': No such file or directory
Execution halted
[Wed Jan 20 09:27:06 2021]
Error in rule plot:
jobid: 1
output: output-pva/pva027/genome/dea/visualization/volcano_plot_Untreated_Calcium.pdf, output-pva/pva027/genome/dea/visualization/heatmap_Untreated_Calcium.pdf
RuleException:
CalledProcessError in line 53 of /home/sam/Downloads/ilse/RASflow/workflow/visualize.rules:
Command ' set -euo pipefail;  Rscript scripts/visualize.R output-pva/pva027/genome/dea/countGroup output-pva/pva027/genome/dea/DEA output-pva/pva027/genome/dea/visualization ' returned non-zero exit status 1.
File "/home/sam/Downloads/ilse/RASflow/workflow/visualize.rules", line 53, in __rule_plot
File "/home/sam/anaconda3/envs/rasflow/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: /home/sam/Downloads/ilse/RASflow/.snakemake/log/2021-01-20T092700.946097.snakemake.log
Visualization is done!
RASflow is done!
`
could you direct me on what do to fix it?
Cheers,
Pablo

hi @zhxiaokang
Thank you for providing the command for fixing the GTF file. It worked perfectly!
However, there seems to be another error yet on the DEA visualization step
`Error in glmFit.default(y = y$counts, design = design, dispersion = dispersion,  :
dispersion must be numeric
Calls: DEA ... glmFit -> glmFit.DGEList -> glmFit -> glmFit.default
In addition: Warning message:
In estimateDisp.default(y = y$counts, design = design, group = group,  :
No residual df: setting dispersion to NA
Execution halted
[Wed Jan 20 09:27:00 2021]
Error in rule DEA:
jobid: 1
output: output-pva/pva027/genome/dea/countGroup/Untreated_gene_norm.tsv, output-pva/pva027/genome/dea/countGroup/Calcium_gene_norm.tsv, output-pva/pva027/genome/dea/DEA/dea_Untreated_Calcium.tsv, output-pva/pva027/genome/dea/DEA/deg_Untreated_Calcium.tsv
RuleException:
CalledProcessError in line 38 of /home/sam/Downloads/ilse/RASflow/workflow/dea_genome.rules:
Command ' set -euo pipefail;  Rscript scripts/dea_genome.R ' returned non-zero exit status 1.
File "/home/sam/Downloads/ilse/RASflow/workflow/dea_genome.rules", line 38, in __rule_DEA
File "/home/sam/anaconda3/envs/rasflow/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Removing output files of failed job DEA since they might be corrupted:
output-pva/pva027/genome/dea/countGroup/Untreated_gene_norm.tsv, output-pva/pva027/genome/dea/countGroup/Calcium_gene_norm.tsv
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: /home/sam/Downloads/ilse/RASflow/.snakemake/log/2021-01-20T092655.885343.snakemake.log
DEA is done!
Start visualization of DEA results!
Building DAG of jobs...
Using shell: /bin/bash
Provided cores: 1
Rules claiming more threads will be scaled down.
Job counts:
count	jobs
1	end
1	plot
2
[Wed Jan 20 09:27:00 2021]
rule plot:
input: output-pva/pva027/genome/dea/countGroup, output-pva/pva027/genome/dea/DEA
output: output-pva/pva027/genome/dea/visualization/volcano_plot_Untreated_Calcium.pdf, output-pva/pva027/genome/dea/visualization/heatmap_Untreated_Calcium.pdf
jobid: 1
Loading required package: plotscale
hash-3.0.1 provided by Decision Patterns
Loading required package: GenomicFeatures
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: ‘BiocGenerics’
The following objects are masked from ‘package:parallel’:
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from ‘package:stats’:
IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:
anyDuplicated, append, as.data.frame, basename, cbind, colMeans,
colnames, colSums, dirname, do.call, duplicated, eval, evalq,
Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply,
lengths, Map, mapply, match, mget, order, paste, pmax, pmax.int,
pmin, pmin.int, Position, rank, rbind, Reduce, rowMeans, rownames,
rowSums, sapply, setdiff, sort, table, tapply, union, unique,
unsplit, which, which.max, which.min

Loading required package: S4Vectors
Loading required package: stats4
Attaching package: ‘S4Vectors’
The following objects are masked from ‘package:hash’:
values, values<-

The following object is masked from ‘package:base’:
expand.grid

Loading required package: IRanges
Loading required package: GenomeInfoDb
Loading required package: GenomicRanges
Loading required package: AnnotationDbi
Loading required package: Biobase
Welcome to Bioconductor
Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.

Attaching package: ‘AnnotationDbi’
The following objects are masked from ‘package:hash’:
keys, keys<-

Loading required package: ggplot2
Loading required package: ggrepel
Error in file(file, "rt") : cannot open the connection
Calls: plot.volcano.heatmap -> read.table -> file
In addition: Warning message:
In file(file, "rt") :
cannot open file 'output-pva/pva027/genome/dea/DEA/dea_Untreated_Calcium.tsv': No such file or directory
Execution halted
[Wed Jan 20 09:27:06 2021]
Error in rule plot:
jobid: 1
output: output-pva/pva027/genome/dea/visualization/volcano_plot_Untreated_Calcium.pdf, output-pva/pva027/genome/dea/visualization/heatmap_Untreated_Calcium.pdf
RuleException:
CalledProcessError in line 53 of /home/sam/Downloads/ilse/RASflow/workflow/visualize.rules:
Command ' set -euo pipefail;  Rscript scripts/visualize.R output-pva/pva027/genome/dea/countGroup output-pva/pva027/genome/dea/DEA output-pva/pva027/genome/dea/visualization ' returned non-zero exit status 1.
File "/home/sam/Downloads/ilse/RASflow/workflow/visualize.rules", line 53, in __rule_plot
File "/home/sam/anaconda3/envs/rasflow/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: /home/sam/Downloads/ilse/RASflow/.snakemake/log/2021-01-20T092700.946097.snakemake.log
Visualization is done!
RASflow is done!
`
could you direct me on what do to fix it?
Cheers,
Pablo

Hi Pablo, glad to hear that it works. Regarding the new issue, it actually happens in DEA, or rather, edgeR, since when I searched the error message, it led me to this post: https://github.com/nanoporetech/pipeline-transcriptome-de/issues/6 As mentioned here, the problem is that there are not enough replicates. So in your case, how many replicates do you have in each group?

Hi Pablo, glad to hear that it works. Regarding the new issue, it actually happens in DEA, or rather, edgeR, since when I searched the error message, it led me to this post: https://github.com/nanoporetech/pipeline-transcriptome-de/issues/6 As mentioned here, the problem is that there are not enough replicates. So in your case, how many replicates do you have in each group?

Hi @zhxiaokang
There are two conditions and I have just one replicate for each condition, so only two sets of reads. Does this mean I cannot go any further with the visualization?
Cheers,
Pablo

Hi @zhxiaokang
There are two conditions and I have just one replicate for each condition, so only two sets of reads. Does this mean I cannot go any further with the visualization?
Cheers,
Pablo

With only one replicate, you actually can't do differential expression analysis (DEA) since that's not enough to make statistics sense.

With only one replicate, you actually can't do differential expression analysis (DEA) since that's not enough to make statistics sense.

I was fearing that was the case. Thanks a lot for your help!!!

I was fearing that was the case. Thanks a lot for your help!!!


Key strokes do not display when typing in auto suggest data fields

The bug has returned.
Have been training users and super users this week.  When they type in auto suggest data fields, not all letters that are typed are displayed.

the problem is still there as I can see

does not seem to be happening


Generate request id if not present

In https://github.com/remind101/request_id/pull/7 functionality was added to generate a request id if it doesn't exist already (based on a configuration value). However, in https://github.com/remind101/request_id/pull/13 it appears that this functionality was unintentionally removed. Or at least, if is was intentional, it wasn't mentioned in the PR comments, and the configuration values are still in master.
I would like to use this functionality. If I filed a PR to restore it, would you merge, or is there another reason it was removed?

Ah, yeah that was probably unintentional. We do the generation in our routing tier, but it's still pretty nice to have in development. If you wanna give it a go we'll accept a PR :)


Remove commons lang3

The new behaviour here should be essentially the same as before, including for null values.  The trim() will remove whitespace at the beginning and end of the string so there will need to be >=1 non-whitespace character for trim().length() to be non zero, and therefore for isBlank() to return false..
What problem does the pull request solve?
Removes a dependency
Checklist

[x] I’ve used the pull request template
[ ] I’ve written unit tests for these changes
[ ] I’ve update the documentation (in DOCUMENTATION.md)
[ ] I’ve bumped the version number

[ ] in src/main/resources/application.properties
[ ] in pom.xml

Thanks @willp-bl - this looks good to me 👍  Would you mind doing a patch bump on the Java client version and including a line in the changelog? Then I think we can merge this 🙌


Init a specific page with url

With ryannhg's elm-spa you can go to a specific page with a url e.g. http://localhost:8000/time.
It would be nice to also have this functionality in this package.

Unless I am mistaken, you can by running your application with "elm-live --pushstate":
   -u, --pushstate [pushstate]      Forces the index.html or whatever filename you have passed to the --start-page flag to always be served. Must be used when building with Browser.application. (default: false)

Oh, I didn't know about that. Thanks.


Allows setting WinGet proxy setting as SFS Client Proxy

Allows setting WinGet proxy setting as the SFS Client Proxy.
Fixes the issue below
WinGet download doesn't work through a proxy #5030
This PR requires SfsClient subtree updated to 1.1.0
SfsClient update 1.1.0 for proxy support #5052
Which brings especially
Adding support for a custom proxy input #218
This PR replaces closed PR below
Allows setting WinGet proxy setting as SFS Client Proxy #5032

[x] I have signed the Contributor License Agreement.
[x] This pull request is related to an issue.

Microsoft Reviewers: Open in CodeFlow

/azp run


selinux configs and  volume for microshift-containerized

Signed-off-by: Parul Singh<EMAIL_ADDRESS>Which issue(s) this PR addresses:
For podman deployment:

systemd unit file for starting and managing microshift-containerized.

 Both scripts are run in ExecStartPre

@rootfs @oglok  how are these two secrets created? openshift-ingress/router-certs-default and openshift-dns/dns-default-metrics-tls
microshift-containerized is behaving differently (with same selinux configurations) when mounting host-dir  vs host-vol
When a host-vol  microshift-data is used, pods openshift-dns/dns-default-b5kwm andopenshift-ingress/router-default-6c96f6bc66-4hnf9are failing because secrets openshift-ingress/router-certs-default and openshift-dns/dns-default-metrics-tls  are not present in the respective namespaces.
(however, they are present in the name space when host-dir )
so
sudo podman run --sdnotify=container --label io.containers.autoupdate=registry  --network=host --privileged -d \
            --rm --name microshift \
            -v /var/run/crio/crio.sock:/var/run/crio/crio.sock:rw,rshared \
            -v /var/lib/microshift:/var/lib/microshift:rw,rshared \
            -v /var/lib/kubelet:/var/lib/kubelet:rw,rshared \
            -v /var/log:/var/log \
            -e KUBECONFIG=/var/lib/microshift/resources/kubeadmin/kubeconfig \
            quay.io/microshift/microshift:latest

But this doesn't
sudo podman run --sdnotify=container --label io.containers.autoupdate=registry  --network=host --privileged -d \
            --rm --name microshift \
            -v /var/run/crio/crio.sock:/var/run/crio/crio.sock:rw,rshared \
            -v /var/lib/containers:/var/lib/containers:rw,rshared \
            -v microshift-data:/var/lib/microshift:rw,rshared \
            -v /var/lib/kubelet:/var/lib/kubelet:rw,rshared \
            -v /var/log:/var/log \
            -e KUBECONFIG=/var/lib/microshift/resources/kubeadmin/kubeconfig \
            quay.io/microshift/microshift:latest

The only difference is host-dir vs host-vol

A little more information. There are some subtle differences in the mounts when doing podman inspect microshift
standard directory mount
"/var/lib/microshift:/var/lib/microshift:rw,rshared,rbind",

podman volume
"microshift-data:/var/lib/microshift:rw,rshared,nosuid,nodev,rbind",

I have narrowed down to the  serving secrets dns-default-metrics-tls
and  router-certs-default are not created by  services dns-default and router-internal-default respectively in podman named volume deployment. Same behavior with selinux on/off. The filesystem, permissions and labels are identical for both host-dir and host-vol.

diff --color -Naur /tmp/config_dir.json /tmp/config_vol.json
--- /tmp/config_dir.json        2021-11-24 13:01:39.314831482 -0500
+++ /tmp/config_vol.json        2021-11-24 13:10:36.436976929 -0500
@@ -207,21 +207,11 @@
     "oomScoreAdj": 0
   },
   "root": {
-    "path": "/var/lib/containers/storage/overlay/a9f020ec061f95a33276a901f419e9e97f0d70db8ac1be5984726f5c55393cb8/merged"
+    "path": "/var/lib/containers/storage/overlay/9e08a7c709dca5c09d54c57682dd9890e7510409e75ece238b94647b11dbdc59/merged"
   },
   "hostname": "fedora.local.com",
   "mounts": [
     {
-      "destination": "/proc",
-      "type": "proc",
-      "source": "proc",
-      "options": [
-        "nosuid",
-        "noexec",
-        "nodev"
-      ]
-    },
-    {
       "destination": "/sys",
       "type": "sysfs",
       "source": "sysfs",
@@ -234,6 +224,16 @@
       ]
     },
     {
+      "destination": "/proc",
+      "type": "proc",
+      "source": "proc",
+      "options": [
+        "nosuid",
+        "noexec",
+        "nodev"
+      ]
+    },
+    {
       "destination": "/dev",
       "type": "tmpfs",
       "source": "tmpfs",
@@ -245,28 +245,18 @@
       ]
     },
     {
-      "destination": "/run/.containerenv",
+      "destination": "/etc/resolv.conf",
       "type": "bind",
-      "source": "/run/containers/storage/overlay-containers/25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043/userdata/.containerenv",
+      "source": "/run/containers/storage/overlay-containers/09428ba251ee0e1677a9ba689265f2b6350992a219b3188b0e27ca7a8c550d08/userdata/resolv.conf",
       "options": [
         "bind",
         "rprivate"
       ]
     },
     {
-      "destination": "/var/log",
-      "type": "bind",
-      "source": "/var/log",
-      "options": [
-        "rw",
-        "rprivate",
-        "rbind"
-      ]
-    },
-    {
       "destination": "/dev/shm",
       "type": "bind",
-      "source": "/var/lib/containers/storage/overlay-containers/25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043/userdata/shm",
+      "source": "/dev/shm",
       "options": [
         "bind",
         "rprivate"
@@ -296,9 +286,19 @@
       ]
     },
     {
+      "destination": "/var/log",
+      "type": "bind",
+      "source": "/var/log",
+      "options": [
+        "rw",
+        "rprivate",
+        "rbind"
+      ]
+    },
+    {
       "destination": "/etc/hostname",
       "type": "bind",
-      "source": "/run/containers/storage/overlay-containers/25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043/userdata/hostname",
+      "source": "/run/containers/storage/overlay-containers/09428ba251ee0e1677a9ba689265f2b6350992a219b3188b0e27ca7a8c550d08/userdata/hostname",
       "options": [
         "bind",
         "rprivate"
@@ -307,25 +307,25 @@
     {
       "destination": "/etc/hosts",
       "type": "bind",
-      "source": "/run/containers/storage/overlay-containers/25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043/userdata/hosts",
+      "source": "/run/containers/storage/overlay-containers/09428ba251ee0e1677a9ba689265f2b6350992a219b3188b0e27ca7a8c550d08/userdata/hosts",
       "options": [
         "bind",
         "rprivate"
       ]
     },
     {
-      "destination": "/run/secrets",
+      "destination": "/run/.containerenv",
       "type": "bind",
-      "source": "/run/containers/storage/overlay-containers/25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043/userdata/run/secrets",
+      "source": "/run/containers/storage/overlay-containers/09428ba251ee0e1677a9ba689265f2b6350992a219b3188b0e27ca7a8c550d08/userdata/.containerenv",
       "options": [
         "bind",
         "rprivate"
       ]
     },
     {
-      "destination": "/etc/resolv.conf",
+      "destination": "/run/secrets",
       "type": "bind",
-      "source": "/run/containers/storage/overlay-containers/25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043/userdata/resolv.conf",
+      "source": "/run/containers/storage/overlay-containers/09428ba251ee0e1677a9ba689265f2b6350992a219b3188b0e27ca7a8c550d08/userdata/run/secrets",
       "options": [
         "bind",
         "rprivate"
@@ -345,19 +345,21 @@
       ]
     },
     {
-      "destination": "/var/lib/kubelet",
+      "destination": "/var/lib/microshift",
       "type": "bind",
-      "source": "/var/lib/kubelet",
+      "source": "/var/lib/containers/storage/volumes/microshift-data/_data",
       "options": [
         "rw",
         "rshared",
+        "nosuid",
+        "nodev",
         "rbind"
       ]
     },
     {
-      "destination": "/var/lib/microshift",
+      "destination": "/var/lib/kubelet",
       "type": "bind",
-      "source": "/var/lib/microshift",
+      "source": "/var/lib/kubelet",
       "options": [
         "rw",
         "rshared",
@@ -379,7 +381,7 @@
   ],
   "annotations": {
     "io.container.manager": "libpod",
-    "io.kubernetes.cri-o.Created": "2021-11-24T12:58:30.125590012-05:00",
+    "io.kubernetes.cri-o.Created": "2021-11-24T13:08:06.096394928-05:00",
     "io.kubernetes.cri-o.TTY": "false",
     "io.podman.annotations.autoremove": "TRUE",
     "io.podman.annotations.init": "FALSE",
@@ -399,15 +401,12 @@
         "limit": 2048
       }
     },
-    "cgroupsPath": "machine.slice:libpod:25ec623774d9071640cf64a913b59819f01f91ac0e13b1ce60ab1629e731a043",
+    "cgroupsPath": "machine.slice:libpod:09428ba251ee0e1677a9ba689265f2b6350992a219b3188b0e27ca7a8c550d08",
     "namespaces": [
       {
         "type": "pid"
       },
       {
-        "type": "ipc"
-      },
-      {
         "type": "uts"
       },
       {
[root@fedora ~]#

@mangelajo Ready for review

/ok-to-test

@fzdarsky consolidated everything in microshift-containerized.service
needs ok to test

/retest

/test images

/retest

@husky-parul I'm not sure if this directory creation should be included with the start up script but without making the directory for /var/lib/kubelet things fail
Jan 10 18:47:39 fedora setsebool[15691]: The container_manage_cgroup policy boolean was changed to true by root
Jan 10 18:47:39 fedora bash[15690]: + /usr/bin/podman volume exists microshift-data
Jan 10 18:47:40 fedora podman[15745]: Error: statfs /var/lib/kubelet: no such file or directory
Jan 10 18:47:40 fedora systemd[1]: microshift.service: Main process exited, code=exited, status=125/n/a
Jan 10 18:47:40 fedora podman[15793]: Error: error reading CIDFile: open /run/microshift.service.ctr-id: no such file or directory
Jan 10 18:47:40 fedora systemd[1]: microshift.service: Control process exited, code=exited, status=125/n/a
Jan 10 18:47:40 fedora systemd[1]: microshift.service: Failed with result 'exit-code'.
Jan 10 18:47:40 fedora systemd[1]: Failed to start MicroShift Containerized # not autogenerated.
Jan 10 18:47:40 fedora systemd[1]: microshift.service: Scheduled restart job, restart counter is at 5.
Jan 10 18:47:40 fedora systemd[1]: Stopped MicroShift Containerized # not autogenerated.
Jan 10 18:47:40 fedora systemd[1]: microshift.service: Start request repeated too quickly.
Jan 10 18:47:40 fedora systemd[1]: microshift.service: Failed with result 'exit-code'.
Jan 10 18:47:40 fedora systemd[1]: Failed to start MicroShift Containerized # not autogenerated.
^C
[root@fedora ~]# mkdir /var/lib/kubelet
[root@fedora ~]# systemctl start microshift
[root@fedora ~]# journalctl -flu microshift

/retest

/restest

@cooktheryan From what I gathered from the community meeting, the systemd file is not supposed to do anything except for starting and managing the lifecycle so I am moving the mkdir -p /var/libe/kubelet to docs.

/retest

/retest

/retest

/retest

/retest

@cooktheryan From what I gathered from the community meeting, the systemd file is not supposed to do anything except for starting and managing the lifecycle so I am moving the mkdir -p /var/libe/kubelet to docs.

@husky-parul I think having this in the ExecStartPre instead of the doc is fine as it's part of the pre-reqs for starting.
Anyway, let's get this merged and possibly add in a follow-up?
/lgtm

/lgtm

/ok-to-test

/retest

/retest

/retest

/retest

/retest

/retest

/LGTM

Woot woot!!!!!


Blue screen after inject

Why am I getting a blue screen after injecting Osiris? Earlier version worked normally. 🤔

GG hacked ;)


Sys4

Any explanations on this ?

It was a mistake when I wanted to merge the last commit from Gael to my fork. So I've closed immediately this pull request when I discover my mistake. Github isn't very handy for this, sorry for that...

Hi @sys4-fr No problem for that :)


Sign in / out Icon

Will you provide sing out icon in 2.0 or early?

@freeman14 sorry, we aren’t going to roll out any updates within the next few months.


Add cc.textureCache.addImageAsync API to ensure API consistency

For the web engine, cc.textureCache.addImage is always asynchronous, so we have merged addImage and addImageAsync API. But it turns out the difference of addImage and addImageAsync cannot be ignored.
So it's better to do the following:

[Web Engine] Add addImageAsync API which is equivalent to addImage
[Native Engine] Change the current addImage binding to addImageAsync, then expose the original synchronous addImage API

The addImageAsync has been added to cc.textureCache on Web engine.

@pandamicro
cc.textureCache.addImageAsync cause crashed on Android v4.4.4 with unpublished cocos2d-js v3.5 at
http://www.cocos2d-x.org/filedown/cocos2d-js-v3.5.zip
working fine on Mac, iOS crashed for first time then not crash after that.
Tested with code below :
 var imageUrlArray = ["http://www.cocos2d-x.org/s/upload/v35.jpg", "http://www.cocos2d-x.org/s/upload/testin.jpg", "http://www.cocos2d-x.org/s/upload/geometry_dash.jpg"];

	for (var i = 0; i < imageUrlArray.length; i++)
	{
		cc.textureCache.addImageAsync(imageUrlArray[i], this.imageLoaded, this);
	}

Thank you, I reproduced an issue, was the crash you met triggered by the following line :
    JSAutoCompartment ac(_cx, _obj.ref() ? _obj.ref() : global);

There is no error show on the console log in Cocos Code IDE 1.2.0 when debug with Android device, working fine on Mac.
Is there any setup to show the error log?

I think the problem is due to thread & curl & Spidermonkey, I will try to find a more reliable solution

ok, thanks.

I can confirm that there is some bug in the line:
JSAutoCompartment ac(_cx, _obj.ref() ? _obj.ref() : global);
In function __JSDownloaderDelegator::onSuccess
It crashes often on android and rarely on iOS
Do you have any fix for this?

@Deviller
Thanks for your report on the problem.
I opened an issue about this problem at here
https://github.com/cocos2d/cocos2d-js/issues/1658
@pandamicro have you found any solution?
Thanks.

I think this  problem is caused by thread safe. I didn't look into the code. is onSuccess run in a new thread? If it does and invokes js api , it's not safe. Maybe we should use Scheduler::performFunctionInCocosThread or something similar.
And another way is we use a thread safe buildt SpiderMonkey, and wrap the js api calls in a:
JS_BeginRequest(cx);
...
JS_EndRequest(cx);

Yes, it's caused by another thread invokes JS API. I will try Scheduler::performFunctionInCocosThread solution


How do I use sails-ioredis with a cluster (as opposed to sentinels)

How can I use a cluster as defined here: http://redis.io/topics/cluster-tutorial
Is this possible - presumably it must be but is there any documentation for a recommended way to configure the adaptor?

Normally you'd just use cluster config from https://github.com/luin/ioredis#cluster but looks like I've not handled that, i'll make a PR to fix this.

@kpturner done, can you give v0.2.0 a go - just provide an array of hosts in the config and it'll switch to cluster mode. See the config example in read me.

Gr8 - thanks

@kpturner did you get a chance to give this a go?

Not yet I'm afraid - rather sidetracked ATM

Ok, will leave this open till then. 👍

You can close if you wish and we can look at it later

Ok, create another PR if you run into any issues, thanks!


ballot: switch to c++17 and refactor ballot

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 77.82%. Comparing base (93172f0) to head (784903e).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main       #3      +/-   ##
==========================================
- Coverage   78.10%   77.82%   -0.29%
==========================================
  Files          63       63
  Lines        9743     9732      -11
  Branches     1347     1347
==========================================
- Hits         7610     7574      -36
- Misses       2131     2157      +26
+ Partials        2        1       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


error: [Chain.js]: Peer with URL grpc://localhost:7051 already exists

I get this response when I execute the  script "node instantiate_chaincode.js",
how to fix it ?
Has anyone come across this situation?

Yup I'm seeing the same thing. But the marble app is working correctly
error: [Chain.js]: Peer with URL grpc://localhost:7051 already exists

Ok, Thank you. I'll try again


make grep more powerful

I not infrequently find that I want to use both --grep and --invert --grep in the same test command: inclusively filter to a set of tests and exclude a subset of those too.
Just to put this out there for discussion, what if we:

created --invert-grep or --grep-not, which would be equivalent to the current --invert --grep
optionally remove --invert for clarity in a semver major (we could see how much confusion it causes first)
until it's removed consider it an error to use --invert with the new --invert-grep/--grep-not
allow both --grep and --invert-grep/--grep-not in the same command, filtering to tests that satisfy both
optionally allow multiple --grep or --invert-grep/--grep-not, filtering to tests that satisfy all (this allows more flexible filtering than --grep "one thing.*another thing" as it does not care about the order; ORing is not significantly more powerful than | in a --grep in contrast and makes almost no sense for --invert-grep/--grep-not*, so we don't really need it but if there's any use for it a --or-greps option to change from ANDing to ORing would do -- I guess some of this explanation also applies even if multiple of the same type aren't allowed, just one of each type)

* You'd only exclude tests that contain the --invert-grep/--grep-not and do not also contain the --grep, which is awfully broad... conceivably this could mean "use --grep to make exceptions to the tests filtered out by --invert-grep/--grep-not", but this seems less likely to be a common use case. Something similar goes for ORing multiple --invert-grep/--grep-not.

Issue has been inactive for years, closing.


DataStream..pull tests fail in Travis

Describe the bug
Travis build fails on DataStream.pull.
The order of resolved elements is not correct - the streams are mixed, not resolved in parallel.
Expected behavior
The streams should resolve one by one.
Additional context
Local tests are passing...

I can't get to reproduce this. Closing...


[Task]: Workflow accessing persistent queries and js objects

Steps:

Create a workflow with query 1 and an approval request.
Publish the workflow.
Trigger workflow..
Workflow is paused because of an approval request.
Delete the query 1 and publish the workflow.
Resolve request and resume the workflow.
Workflow won't be able to find out the query 1.
Workflow fails.

For now, we need to go the product route.
@infinitetrooper  @parth-appsmith can we have some designs and interactions for the same.
Basically, what should the interactions look like, when the user is publishing a workflow.


feat: set primary user agent

Set primary user agent composed with {SDK_NAME SDK_VERSION} {PRODUCER_APP_NAME PRODUCER_APP_VERSION}, i.e.
diode-sdk-python/0.0.1 my-producer/0.0.1 grpc-python/1.62.1 grpc-c/39.0.0 (osx; chttp2)

:tada: This PR is included in version 0.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Skip initial silence

Motivation and Context

Closes #1188
Instead of opening a VOD, waiting for it to load, clicking skip, and waiting for it to load again there should be a user setting which allows the player to immediately skip past the first period of silence.
Description

A new user setting to allow automatic skipping was added, this can be modified in the users settings page.
When this setting is enabled, the watch page sets the progress of the stream VOD to the maximum of the watch progress in the database and the end of the first period of silence.
This only happens if the stream is not a self-stream (lecture_hall_id != 0). This is because the progress is converted into a timestamp using the JS videoplayer duration, not the duration calculated by subtracting the stream end from stream beginning. I think it's safe to assume these two duration values will be the same when it is not a self-stream, as the recording just runs on in those cases.
Steps for Testing

Prerequisites:

An instance of the new starter database (in the docs)

Navigate to the "Einführung Brauereiwesen" course
Select one of the VODs
Notice it will start at the beginning and blend in the skip ahead button
Navigate to the user settings
Enable "Automatically Skip First Silence"
Return to the "Einführung Brauereiwesen" Course
Select one of the VODs
Notice it will no longer start at the beginning, but where the skip ahead button would have taken you

Screenshots

Before merging it to dev, I would like to make sure: we do rebuild the database container using "/docs/static/tum-live-starter.sql" for each deployment, right?

I'm afraid I don't quite follow.
My understanding of the file is that it is used to create a local docker container, as outlined in the docs and that it has no impact on the database used in deployment. As far as I know this is just for testing during development.
The container would only be rebuilt if one were to manually rebuild it then.
But we can always get someone who is more familiar with the system in here if need be.

I thought it would make sense to commit these changes as well for future testing in this area, but we can also exclude this file if it's cluttering the db.

Yes, I think changes to sql files should be pushed anyway, but they need to be handled more carefully when deployed. I'd like to hear from someone more familiar with the project on this issue.

@alexanderstephan or @joschahenningsen what are your thoughts on the matter?


Simple webpage

Before we can advertise things we need a simple webpage that lists the details for a workshop and at minimum links to a google form for registration.
Can someone recommend a nice and simple template for a webpage? (The standard ones that come with GitHub pages are a bit weird I think.)

I just yesterday looked into the nice template that @aath0 started using for her GH page. Have a look here: https://github.com/aath0/aath0.github.io
I think this could also work nicely for a workshop page. Otherwise we could think about using one of the WOW workshop themes?

What could probably also work is something similar to the software carpentry stuff as the workshop might be similar? https://github.com/swcarpentry/workshop-template Not really skilled enough to have a proper opinion though.

The https://github.com/aath0/aath0.github.io theme looks nice.
Good point about the workshop content itself. I hadn't thought as far as that yet. Was more thinking of a "landing page" for registration and info.
I like the carpentry workshop template, the last time I suggested it though lots of people voted for GitBook instead. Setting up the carpentry template is quick but you end up customising, GitBook takes a moment as well :-/ Maybe someone who has opinions/feelings on this can take the lead :)
The minimal effort part of me is thinking: can we get away with example repos that demonstrate how to do X, markdown files in this repo, and slides on google docs (or similar)?

My thoughts:

Simple landing page with workshop basic info: venues, dates, code of conduct, links to registration, contact details, etc.
As for the materials themselves, we could follow any of the approaches:

Gitbook: could have everything in simple markdown and get them rendered in gitbook
Jupyter notebook: have all the contents as Jupyter notebook and could set up a basic web version from these
Sphinx: content could be in the form of a Jupyter notebook or .md files

I have used all three approaches for previous courses and I could definitely help with this if you needed me to. So basically it reduces to which format do you want to write the materials in and then translating them into a user-friendly nice looking output

I really don't know what format is best. I'd pick one based on what someone likes and then see how it goes. Hadn't thought of sphinx but now that you bring it up I realise that most (if not all) the existing binder docs and material are sphinx based. So maybe that is what tips it? We could also use that as landing page (reducing the number of techs by factor two in one fell swoop!)
Do you want to give that a go?

Using that as landing page and workshop materials source will definitely reduce the work.
I will have a crack at putting together a draft site (probably on Wednesday or Thursday).
And will ship it in the form of a PR first so that you can review it first and can sort out additional privileges later on if needed.

I look forward to bookmarking https://build-a-binder.readthedocs.io :)

@betatim You might want to check out Hugo too. Some great themes many with excellent support, fast builds and deploys especially when using Netlify,

Late to the party and don't want to derail plans for a sphinx-based website, but for a landing page, you might want to check out https://github.com/gdg-x/zeppelin which @neuroamanda et al. used for their event landing page recently: https://japanscicom.github.io/ It needs… a little love to customise.
I would suggest using Jekyll over Hugo and others as it plugs straight in to GitHub allowing anyone to make a small change via PR without rebuilding the website themselves. But I have no strong feelings about this!
I support the idea of having a separate landing page and a separate page for hosting workshop content.

Cool sites @RaoOfPhysics.
Both Jekyll and Hugo as well as others are good options. I'm not sure that I understand the statement about using GitHub for small changes via PR with Jekyll vs Hugo. On other projects that I maintain, it's straightforward to edit content using the Github UI with Hugo. Combined with Netlify, we also are able to set up a preview of the PR when submitted (I believe with Netlify you can do that with Jekyll too).
Great to see these workshops moving forward. My general view on static site generators is use what folks feel comfortable with, get it up and running, and then focus most of your effort on the content :smile: :sunny:

I have no idea how I completely forgot about Jekyll.
I suppose we could have a Jekyll page for the workshop logistics and the sphinx one for the workshop content.
Either way, both can be set up so that the site is built and tested when pushed/merged into GitHub.
I am happy either way and neither should take me much time to set up

I could've been clearer, @willingc. :) I hadn't considered the use of GH Pages with Netlify, so I was pointing out that GH would automatically build a new Jekyll page when a change is pushed, without needing to build the website locally or using a CI tool. But I'm no expert, so my take might not be the best. :)

I just wanted to 👍 @RaoOfPhysics's suggestion for having some non-sphinx page for the workshop logistics/advertisement page. Sphinx is great for docs but not the most inviting thing for getting people to register I fear. 😄

Ok so I have a draft for the site here :  http://bitsandchips.me/build-a-binder-website/
Some things to note:

I have no idea what to write down in the 'about the workshop' section so I just left it with a mock text
About the locations section: I would like to add an individual page per site including the exact location (with a map) directions to get there, and a local point of contact
Also, it would be good to add the code of conduct to the site as well (see #7 )

If there are any other sections/information that you might want to add let me know.
I imagine you'd like to add some sort of wording indicating that you got support from Mozilla for this, so I can add this and the logo in the about section.
Regarding the actual workshop content, we can definitely have it as a Sphinx thing 🦄

"You will learn how others are using Binder and related tools. At the end of the workshop you will be able to take some of your content (in a R or Jupyter notebook) and prepare it so that it can be used by others by clicking one link."

Drafting the signup form in #14

@betatim  Yes, room at EPFL will be BC 410. You can use this link: https://plan.epfl.ch/?room=BC410

@betatim at Birmingham, we'll be in the Murray Learning Centre (R28 on this map https://www.birmingham.ac.uk/Documents/university/edgbaston-campus-map.pdf) in room UG05

@trallard do you want to create PR for what you already have? Then others can help fill out location, etc.
I think we should start advertising and collecting sign ups for the Birmingham event soon.

I imagine you'd like to add some sort of wording indicating that you got support from Mozilla for this, so I can add this and the logo in the about section.

https://github.com/betatim/build-a-binder#support is the sentence that the funders indicated they want to see. There were no details about use/not use of logos etc As a version 1 I would include just that sentence.

I could create a PR with the website as it is now but I have not created the site pages yet. I am teaching all day (9-5:30) today until Friday so I am afraid I would only be able to work on the website on Saturday afternoonish though

I am working on the website... @betatim any idea on the location/date for the event in Germany? Will this be in CODE as discussed in #4 ?

It isn't locked in yet so I would leave it open. IMO this isn't something we need to wait for before starting to use the website.

Excellent! Do you have a link to the registration form for B'ham. So that I can add it as I presume the registration will be open now/soon?
Also when is the registration opening for Switzerland?


Tests fail with 'relative import path' error

I'm putting together a PR for the Fresh repo on examples I created for my recent blog post on fresh-testing-library. Here is the PR: https://github.com/denoland/fresh/pull/1990 and here is the branch I created the PR from: https://github.com/cdoremus/fresh/tree/fresh-testing-lib .
When I run the tests I created using the Deno task I created for them (deno task test:www), I come up with the following error that points to the fresh-testing-library code:
craig@craig-G750JX:~/git/deno/denoland/fresh/fresh_fork$ deno task test:www
Task test:www deno test -A tests/www/
error: Relative import path "preact-render-to-string" not prefixed with / or ./ or ../ and not in import map from<EMAIL_ADDRESS>
I am using the latest  FTL version (0.11.0) and my branch was just merged with the latest code from the Fresh main branch .
Please advise.

Hi @cdoremus, thanks for reporting the problem! This issue should be fixed in 0.11.1.

Hi @cdoremus, thanks for reporting the problem! This issue should be fixed in 0.11.1.

Thank you , Yuki! My tests now work and my PR now passes the Fresh repo's CI pipeline.


fix: LEAP-495: Add react-app, editor, and DM to wheel build

Currently we get a whitescreen from LSO builds after login because needed dependencies from web/dist are not included in the wheel emitted by poetry build. This PR fixes that issue.

/selenium test


[FLINK-18783] Load AkkaRpcSystem through separate classloader

Based on #16339, just to get rid of a test instability that I ran into quite often.
With this PR in a nutshell:

akka was bumped to 2.6 (FLINK-23091)
akka+scala+flink-rpc-akka are loaded through a separate classloader (FLINK-18783)
scala suffix was removed from flink-runtime, cascading into various other modules

The commit structure is not what I intend to eventually be merged; I separate the changes for ease of review, the majority however would not succeed on CI on their own.
For example, bumping Akka is not possible without the plugin work (because it needs scala 2.12), while the plugin work is not possible without bumping Akka (because it leaks the plugin classloader).
I will now describe the changes in each commit:
Replace AskTimeException usages in tests:
This is a simple removal of some direct references to Akka.
Use reflection to access akka in MetricUtils:
Similar to above; ideally we'd come up with a TestingRpcSystem, but the dependencies are too extencies (RpcSystem needs a Builder, Builder needs an RpcService, RpcService needs even more stuff)
Add RpcSystem#cleanup
In order to work with the MiniCluster we need to be able to unload the AkkaRpcSystem when the MiniCluster is shutdown. This hook will eventuallly allow us to do that.
RpcSystem#load accepts Configuration
The configuration will primarily be necessary to retrieve the temp directory; more on that later.
Remove netty relocation
Now that we load netty through a separate class loader the relocation is technically not necessary. We may still want to keep it, because it is quite likely that some security scanner might now pick it up, and it is unlikely that we can migrate away from Netty for 1.14.
Remove scala suffixes
flink-runtime no longer depends on ${scala.binary.version}. While it still transitively depends on scala via flink-rpc-akka, that module uses a fixed scala version so the suffix is not necessary.
This also results in other modules lossing their scala suffix, like the reporter for example.
Exclude flink-rpc-akka from scala-suffix check
The suffix checker is pretty simple in that it mandates a scala suffix if scala shows up in the dependency tree. Since the scala version for flink-rpc-akka is fixed and independent of ${scala.binary.version} I added crude exclusions for this module such that neither flink-rpc-akka nor modules depending on it require a suffix.
Bump akka to 2.6, bundle scala, and consolidate maven stuff in flink-rpc
This commits does a few things. It sets up flink-rpc-akka to assemble a fat jar, taking over bundling concerns from flink-dist.
Everything related to akka dependencies (depMngt entries, properties) are now consolidated in flink-rpc-akka.
The enforcer rule that ensures the same scala version is used for all projects is disabled for flink-rpc-akka, because it uses a separate scala version.
Finally, Akka is bumped to 2.6.15, which did not require any code changes, but we had to modify many netty configurations settings to have a classic infix. In 2.6 Artery has become the default network layer, and we explicitly need to buy in to netty. Migrating to Artery is something we should look into in the near future.
The primary reason for the bump is that in 2.5 Akka contained a custom common thread pool, that also contained a thread local, which meant that if any thread from outside Akka touches this executor a reference to this pool would be leaked to the outside. In 2.6 this pool was removed.
Load AkkaRpcSystem in separate classloader
The nasty bit.
Primarily consists of 3 changes:

flink-runtime has an optional runtime dependency on flink-rpc-akka

optional ensures that downstream modules don't see it
runtime scopes ensures that production code cannot reference flink-rpc-akka directly

flink-rpc-akka jar is bundled by flink-runtime as is and extracted on the demand when the RpcSystem is being loaded
The AkkaRpcSystem is not loaded like usual plugins; it does not use the PluginManager nor the plugins/ directory of the distribution. The reason for this is simple: It just does not work outside of production.
In order for this feature to work we need to ensure dependency isolation in these cases:

production
tests without a MiniCluster in the IDE/maven (e.g., most of the stuff in flink-runtime)
tests with the MiniCLuster in the IDE/maven (most stuff outside of flink-runtime, currently the MiniCluster does not plugins)

For the latter 2 we ideally want a solution where akka etc. are not on the compile/test classpath.
Without a dependency being declared this means we require the flink-rpc-akka jar to be somewhere on disk in order to point a ClassLoader to it.
To solve this I concocted the following approach:
a) flink-runtime bundles the flink-rpc-akka jar as is, that is the jar is contained within the flink-runtime jar
b) RpcSystem#load() extracts this jar from the flink-runtime jar, puts it into some temporary directory (IO_TMPDIR option), and points a PluginLoader at it
This works in maven, the IDE and in production. Overall I think it is actually quite neat, but it has some downsides:
a) A big gotcha that people need to be aware of is that if you change something in flink-rpc-akka, then you first need to rebuild flink-rpc-akka and flink-runtime for it to take effect.
This is super unfortunate, but I just don't see a way to work around that.
b) Having to extract the jar from the flink-runtime jar is a bit unfortunate; it would be neat if we could just point the ClassLoader to the file contained in flink-runtime. Which technically should work, but the standard URLClassLoader just doesn't support it. It is possible though, as shown by the One-JAR project.

At various points the ContextClassLoader is set to either the Akka or Flink ClassLoader

Akka itself sets the ContextClassLoader of all of it's threads to the one it itself was loaded with. As described in FLINK-23147 this can result in thread pools outside of the AkkaRpcSystem being poisoned such that some threads use a different classloader than others, resulting in classloading issues.
To remedy this I covered most places where we transition from Akka to Flink with a TemporaryClassLoaderContext.
There are still other ocurrences, but from what I can tell they are not problematic at this time, and I already spend days on tracking and debugging.
Known issues:

flink-runtime still has a test dependency on flink-rpc-akka; this is primarily to get access to the TestRpcService, which unfortunately relies on Akka. This isn't a problem for the time being, but we should address it at some point.
running flink-runtime tests that rely on RpcSystem#load can fail in IntelliJ (but work in maven); has got something to do with flink classes being loaded parent-first by the PluginClassLoader and flink-rpc-akka being on the test classpath. It can be fixed by changing the PluginClassLoader to always load child-first, but not sure about the repercussions. I'd also be fine with adding a separate CL with that loading order. @AHeise

Alternatively, we introduce a new folder submodule in flink-dist, similar to plugins.

yes, I also thought about having a separate location in dist for production use-cases, and rely on the tmp dir only for tests. But then the question is when do we extract the jar (at build time vs at runtime; build time means shipping 50mb more, runtime means having to write to dist which may or may not be allowed depending on the setup).

yes, I also thought about having a separate location in dist for production use-cases, and rely on the tmp dir only for tests. But then the question is when do we extract the jar (at build time vs at runtime; build time means shipping 50mb more (unless we slice it out of flink-runtime when building flink-dist), runtime means having to write to dist which may or may not be allowed depending on the setup).

Could we add it as provided into the test scope (so Maven has to build it for test execution) and then extract the path from it? That's how I'd approach this issue in gradle (custom scope though).

Could we add it as provided into the test scope (so Maven has to build it for test execution) and then extract the path from it? That's how I'd approach this issue in gradle (custom scope though).

How would downstream modules such as flink-tests get access to flink-rpc-akka without putting scala 2.12 on the test CP?

Conceptually, the RpcService should be self-contained in the sense that it has all the classes it needs to know.

The ContextClassLoader business is surprisingly little about being able to load a class. Virtually all of them are about preventing a thread stepping from akka to Flink land from leaking the akka classloader into Flink thread pools.

Concerning the unpacking of the flink-rpc-akka.jar, I am a bit unsure. It seems a bit hacky tbh.

I agree it is not ideal, but it's imo the best option we got.

For running the tests, putting it on the classpath will bring in the Scala dependency, I guess.

At that point you have already lost because you get 0 guarantees in regards to ordering.

For the Flink distribution it should not be a problem to directly place it in the plugins directory. [and for tests we do that, and for users running examples in the IDE we do that]

Which will result in 3 separate ways how this stuff is loaded, with test-specific stuff likely seeping into production code.

One idea could be to make the flink-rpc-akka.jar self-contained and when one tries to load the AkkaRpcService, then one will create a new class loader that only contains this jar on the class path. Not sure whether this is easily doable, though.

We can certainly extract the jar from the CP, but once it's on the CP we already lost.


Requesting "Always" Authorization from the library

Hello!
I can't request Always Authorization in iOS 14. If I call manually request modal window with Auth Request not showing, but while I'm using default CoreLocation library, dialog with Auth Request showing.
SwiftLocation.requestAuthorization(.always) { newStatus in
            print("New status \(newStatus.description)")
}

Thank you!

Hi, have you correctly configured your Info.plist?
You sshould set the appropriate keys in your Info.plist (NSLocationAlwaysAndWhenInUseUsageDescription or NSLocationWhenInUseUsageDescription and NSLocationTemporaryUsageDescriptionDictionary if you are using reduced location in iOS 14+).
If you still experiencing the problem attach here a simple project to reproduce it because looking at the playground project it works properly.
Thanks.

In playground project on Simulator iOS 14.5 Request Authorization not working, please check that. I'm set in settings "While Using In the App" trying Request Always Auth from Playground App, I'm view "Current Status is whenInUse" and Always Auth not requested.


How to have a continuous conversation without page refresh

Hello.
I like this template with the features.
However i'm still green when it comes to js/jquery and the bot stuff.
I would like to have a continuous chat option where the user interacts with the app without any page refresh.
I put extra lines of code to make it work but i'm sure there must be a better way that this:

<input type="text" name="name" data-conv-question="Alright! First, tell me your full name, please.|Okay! Please, tell me your name first."> 	                                <input type="text" data-conv-question="Howdy, {name}:0! It's a pleasure to meet you. (note that this question doesn't expect any answer)" data-no-answer="true"> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question."> 	                                <input type="text" name="name" data-conv-question="Great {name}:0!. Please ask any question|Okay! Please, ask any question.">


Goon: TEG blowers uninteractable

Description
Clicking on TEG blowers with empty hand shows hand interaction icon but popup does not appear, heard folks saying other popups aren't working either but this is where I saw it and can reproduce it.
Steps to Reproduce
Left click on TEG blower with empty hand, or right click + find it in the list.
Expected Behaviour
The TEG blowers have a menu popup that should appear when they are clicked.
(amy told me to report bugs I run into on the goon test server here so hopefully this is okay ^___^)

I think these might be clicktips, which are sketch even on byond (satanic tooltips)

Unfortunately we do rely on them for a lot of things. Maybe OD can implement native tooltip handling somehow?


python311Packages.xkcdpass: 1.19.4 -> 1.19.5

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.xkcdpass is: Generate secure multiword passwords/passphrases, inspired by XKCD
meta.homepage for python311Packages.xkcdpass is: https://github.com/redacted/XKCD-password-generator
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.19.5 with grep in /nix/store/n5rj9i4d9pd4k01hq9bpp3ylscqfljyy-python3.11-xkcdpass-1.19.5
found 1.19.5 in filename of file in /nix/store/n5rj9i4d9pd4k01hq9bpp3ylscqfljyy-python3.11-xkcdpass-1.19.5

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.xkcdpass
python311Packages.xkcdpass
xkcdpass

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/n5rj9i4d9pd4k01hq9bpp3ylscqfljyy-python3.11-xkcdpass-1.19.5 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python311Packages.xkcdpass https://github.com/r-ryantm/nixpkgs/archive/15e591d39eee6aaa0752705129a07463275376fd.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/15e591d39eee6aaa0752705129a07463275376fd#python311Packages.xkcdpass

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/n5rj9i4d9pd4k01hq9bpp3ylscqfljyy-python3.11-xkcdpass-1.19.5
ls -la /nix/store/n5rj9i4d9pd4k01hq9bpp3ylscqfljyy-python3.11-xkcdpass-1.19.5/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.xkcdpass
xkcdpass (python311Packages.xkcdpass)

Maintainer pings
cc @peterhoeg for testing.

❯ ./result/bin/xkcdpass
repeal siesta espionage resent diminish shoptalk


Quantifier restrictions

Something my students are persistently confused about is when a quantifier has to be restricted and when it doesn't have to be.  E.g., in a mixed domain you want to symbolize "Someone is blah". Do you have to restrict the \exists to people or not? When do you have to restrict? Can you symbolize "someone" without restricting to people? There should perhaps be some sort of discussion on this in the book.
E.g., I received the following by email:

A question about Sec 24.4. For the following example:  Someone is a dog owner.
This symbolization is given: ∃y∃x(D(x) ∧O(y,x)) But since the domain includes both animals and human beings, shouldn't '∃y' be restricted? I.e., Something like ∃y∃x(D(x) ∧ Person(y) ∧ O(y,x)).

This is well taken, but the symbolization key doesn't even include a predicate for "person". Figure out what to do here.

I don't think this example exhibits the problem you describe. Someone is  restricted to humans, but rather excludes inanimates (there's a lot of interesting pragmatic stuff surrounding when we use something for animates, but this is beside the point here).
Of course most people would assume in this case that dog owners must be human, but the sentence would not standardly be taken to literally say that. Perhaps dogs own other dogs in some alternate possibility.
More generally there is unlikely to be an easy solution to this problem, since part of the process of logical education is training students to exclude a large amount of what is ordinarily communicated based on background knowledge from their understanding of what a sentence says in order to symbolize it.
--NMW
--
Nicole Wyatt PhD,
Associate Professor and Head
Department of Philosophy
University of Calgary
Book an appointment: calendly.com/nicole-wyatthttps://calendly.com/nicole-wyatt
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Richard Zach @.>
Sent: Saturday, July 16, 2022 4:45:54 PM
To: rzach/forallx-yyc @.>
Cc: Subscribed @.***>
Subject: [rzach/forallx-yyc] Quantifier restrictions (Issue #57)
[△EXTERNAL]
Something my students are persistently confused about is when a quantifier has to be restricted and when it doesn't have to be. E.g., in a mixed domain you want to symbolize "Someone is blah". Do you have to restrict the \exists to people or not? When do you have to restrict? Can you symbolize "someone" without restricting to people? There should perhaps be some sort of discussion on this in the book.
E.g., I received the following by email:
A question about Sec 24.4. For the following example: Someone is a dog owner.
This symbolization is given: ∃y∃x(D(x) ∧O(y,x)) But since the domain includes both animals and human beings, shouldn't '∃y' be restricted? I.e., Something like ∃y∃x(D(x) ∧ Person(y) ∧ O(y,x)).
This is well taken, but the symbolization key doesn't even include a predicate for "person". Figure out what to do here.
—
Reply to this email directly, view it on GitHubhttps://github.com/rzach/forallx-yyc/issues/57, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA4AROMEKJRXRFE75KXICHLVUM3SFANCNFSM53YYKPPA.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Did you mean "Someone is NOT restricted to humans". If ∃y∃x(D(x) ∧O(y,x)) is an acceptable symbolization of "Someone owns a dog" then ∀y∃x(D(x) ∧O(y,x)) would have to be a correct symbolization of "Everyone owns a dog". That seems wrong to me, as it's false whenever some dogs aren't dog owners.
As a pedagogical question (and not one about semantics vs pragmatics) it seems to me that whether or not quantifiers should have a restriction in symbolization should be uniform (ie either both "everyone" and "someone" must be restricted to people, or neither should) and should track truth value (and it seems to me that "everyone owns a dog" is true whenever all the people in the domain are dog owners).

Yes, I meant NOT restricted to humans — I kept trying to edit this for clarity and obviously the result was suboptimal!
I do think ∀y∃x(D(x) ∧O(y,x)) is a correct symbolization of "Everyone owns a dog" in the interpretation you described. Of course in almost all cases in which we say that English sentence pragmatic would be contextually restricting the range of the quantifier in some way. This would go well beyond pragmatically excluding dogs from the range of course, since it is vanishingly unlikely that we would even mean it to range over every human.
As to the pedagogical point, I agree that we should be consistent. I think that consistently directing them to treat the difference between everyone/someone and everything/something as irrelevant to formalization is the way to go. My view is that any other approach will create ambiguities.
If we tell students, for example, that everyone/someone are equivalent to every human/some human, then we will get the wrong formalization for a sentence like:
Everyone on DS9 has been to Quark's.
But if we tell them that everyone/someone are equivalent to every person/some person, then a student who thinks that at least some non-human animals are persons (a not unheard-of position) will be inclined to symbolize differently than a student who disagrees.
In the end I don't think that symbolization of natural language can be captured in hard and fast rules -- it's very much a matter of context and the aims of the formalization. But consistency in a text book is of course to be desired. -- NMW
Please know that my working hours may not be your working hours: do not feel obliged to respond outside of your normal schedule.
--
Dr. Nicole Wyatt (she/her)
Associate Professor and Head
Department of Philosophy
University of Calgary
President, Society for Exact Philosophy
@.***
Book an appointment at: https://calendly.com/nicole-wyatt
Living and working within the traditional territories of the Blackfoot and the people of the Treaty 7 region in Southern Alberta, which includes the Siksika, the Piikuni, the Kainai, the Tsuut’ina and the Stoney Nakoda First Nations. The City of Calgary is also home to Metis Nation of Alberta, Region III.

From: Richard Zach @.>
Sent: Sunday, July 17, 2022 11:10:13 AM
To: rzach/forallx-yyc @.>
Cc: Nicole Wyatt @.>; Comment @.>
Subject: Re: [rzach/forallx-yyc] Quantifier restrictions (Issue #57)
[△EXTERNAL]
Did you mean "Someone is NOT restricted to humans". If ∃y∃x(D(x) ∧O(y,x)) is an acceptable symbolization of "Someone owns a dog" then ∀y∃x(D(x) ∧O(y,x)) would have to be a correct symbolization of "Everyone owns a dog". That seems wrong to me, as it's false whenever some dogs aren't dog owners.
As a pedagogical question (and not one about semantics vs pragmatics) it seems to me that whether or not quantifiers should have a restriction in symbolization should be uniform (ie either both "everyone" and "someone" must be restricted to people, or neither should) and should track truth value (and it seems to me that "everyone owns a dog" is true whenever all the people in the domain are dog owners).
—
Reply to this email directly, view it on GitHubhttps://github.com/rzach/forallx-yyc/issues/57#issuecomment-1186574240, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA4AROKSJBNFR6PBHJ63CA3VUQ47LANCNFSM53YYKPPA.
 Ie unless the domain is just people, we always add a "person" predicate that restricts everyone/someone/noone, just like we would add time and place predicates that restrict "sometime" and "everywhere"?
I mean if ∀y∃x(D(x) ∧O(y,x)) is a correct symbolization of "Everyone owns a dog" then it looks like you cannot say anything true using that English sentence in an interpretation where there are toys (or other things that cannot own dogs). That seems odd.

Restriction to persons is better -- i.e. closer to how we use some/everyone -- than restriction to humans. But it creates some other issues, namely that the truth-value of `Everyone is a dog owner' translated as ∀y∃x(P(x) → (D(x) ∧O(y,x))) now hinges of whether dogs are persons or not (if they are, and as in the actual world dogs don't own dogs, its false, if they aren't, it's true).
Maybe this doesn't matter in this context? - NMW
--
Dr. Nicole Wyatt (she/her)
Associate Professor and Head
Department of Philosophy
University of Calgary
President, Society for Exact Philosophy
@.***
Book an appointment at: https://calendly.com/nicole-wyatt
Living and working within the traditional territories of the Blackfoot and the people of the Treaty 7 region in Southern Alberta, which includes the Siksika, the Piikuni, the Kainai, the Tsuut’ina and the Stoney Nakoda First Nations. The City of Calgary is also home to Metis Nation of Alberta, Region III.

From: Richard Zach @.>
Sent: July 18, 2022 12:38 PM
To: rzach/forallx-yyc @.>
Cc: Nicole Wyatt @.>; Comment @.>
Subject: Re: [rzach/forallx-yyc] Quantifier restrictions (Issue #57)
[△EXTERNAL]
Can't we get around the DS9 issue by restricting to persons instead of humans? Ie unless the domain is just people, we always add a "person" predicate that restricts everyone/someone/noone, just like we would add time and place predicates that restrict "sometime" and "everywhere"?
I mean if ∀y∃x(D(x) ∧O(y,x)) is a correct symbolization of "Everyone owns a dog" then it looks like you cannot say anything true using that English sentence in an interpretation where there are toys (or other things that cannot own dogs). That seems odd.
—
Reply to this email directly, view it on GitHubhttps://github.com/rzach/forallx-yyc/issues/57#issuecomment-1188090526, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA4AROPXCCE4FIS4UUFPUWTVUWQBDANCNFSM53YYKPPA.
You are receiving this because you commented.Message ID: @.***>

I would say that that issue isn't the job of a logician (or semanticist) to deal with. "Everyone owns a dog" should be symbolized the same way as "For every person there is a dog they own". If you wanted to say something true but some dogs are persons and they don't own dogs, then you should have said something else, e.g., "every human owns a dog" (and that would be symbolized differently). I think that's a better position to be in as far as the textbook is concerned.  The alternative position is pretty bad: we would have to say that you can't symbolize "Everyone owns a dog" and make it come out true in the situation described where dogs exist and don't own any dogs.

Fixed (I hope) in commit 3a3f5ab

Works for me! - N
--
Dr. Nicole Wyatt (she/her)
Associate Professor and Head
Department of Philosophy
University of Calgary
President, Society for Exact Philosophy
@.***
Book an appointment at: https://calendly.com/nicole-wyatt
Living and working within the traditional territories of the Blackfoot and the people of the Treaty 7 region in Southern Alberta, which includes the Siksika, the Piikuni, the Kainai, the Tsuut’ina and the Stoney Nakoda First Nations. The City of Calgary is also home to Metis Nation of Alberta, Region III.

From: Richard Zach @.>
Sent: July 18, 2022 12:59 PM
To: rzach/forallx-yyc @.>
Cc: Nicole Wyatt @.>; Comment @.>
Subject: Re: [rzach/forallx-yyc] Quantifier restrictions (Issue #57)
[△EXTERNAL]
I would say that that issue isn't the job of a logician (or semanticist) to deal with. "Everyone owns a dog" should be symbolized the same way as "For every person there is a dog they own". If you wanted to say something true but some dogs are persons and they don't own dogs, then you should have said something else, e.g., "every human owns a dog" (and that would be symbolized differently). I think that's a better position to be in as far as the textbook is concerned. The alternative position is pretty bad: we would have to say that you can't symbolize "Everyone owns a dog" and make it come out true in the situation described where dogs exist and don't own any dogs.
—
Reply to this email directly, view it on GitHubhttps://github.com/rzach/forallx-yyc/issues/57#issuecomment-1188139063, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA4AROOEIKFBUFIJANAXXF3VUWSQNANCNFSM53YYKPPA.
You are receiving this because you commented.Message ID: @.***>


test orchestration for multiple users/notifications

Current coverage is 92.89% (diff: 100%)

Merging #14 into master will increase coverage by 0.16%

@@             master        #14   diff @@
==========================================
  Files            28         28
  Lines           605        605
  Methods          62         62
  Messages          0          0
  Branches         62         62
==========================================
+ Hits            561        562     +1
+ Misses           44         43     -1
  Partials          0          0

Powered by Codecov. Last update bac4681...6b5b12a


A public risk assessment tool should be created

Based on the STOPBANG tool. From the stopbang.ca website

For general population
OSA - Low Risk : Yes to 0 - 2 questions
OSA - Intermediate Risk : Yes to 3 - 4 questions
OSA - High Risk : Yes to 5 - 8 questions
or Yes to 2 or more of 4 STOP questions + male gender
or Yes to 2 or more of 4 STOP questions + BMI > 35kg/m2
or Yes to 2 or more of 4 STOP questions + neck circumference 17 inches / 43cm in male or 16 inches / >41cm in female

Potential feedback from stopbang.ca/results.php

The Risk of suffering from Moderate or Severe Obstructive Sleep Apnea
If the STOPBang score is 3 vs. 0-2, the risk of obstructive sleep apnea is 2.5 fold.
If the STOPBang score is 4 vs. 0-2, the risk of obstructive sleep apnea is 3 fold.
If the STOPBang score is 5 vs. 0-2, the risk of obstructive sleep apnea is 5 fold.
If the STOPBang score is 6 vs. 0-2, the risk of obstructive sleep apnea is 6 fold.
If the STOPBang score is 7 or 8 vs. vs. 0-2, the risk of obstructive sleep apnea is 7 fold.


Added RedM

Added RedM support

Now we need to update cl_logger.lua to work with RedM, or simply disable it for now...

Now we need to update cl_logger.lua to work with RedM, or simply disable it for now...

disable it for redm for now and when we have a fix for it enable again.

disable it for redm for now and when we have a fix for it enable again.


Update links to docs that reference new docs added in the dev-1.17-ko.6 branch.

This is a Bug Report
Problem:
Edit links to docs that reference new docs added in the dev-1.17-ko.6 branch.
Proposed Solution:
Update of existing documents linking new documents.

[ ] content/ko/docs/concepts/configuration/overview.md
[ ] content/ko/docs/concepts/overview/working-with-objects/labels.md
[ ] content/ko/docs/concepts/workloads/controllers/cron-jobs.md
[ ] content/ko/docs/concepts/workloads/controllers/daemonset.md
[ ] content/ko/docs/concepts/workloads/controllers/ttlafterfinished.md
[ ] content/ko/docs/concepts/_index.md
[ ] content/ko/docs/reference/glossary/cronjob.md
[ ] content/ko/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md
........

/language ko

/assign

/close


Not working with new google API and valid key ...

Bug

I'll take a look

Hey,
I am meaning even on the website.
The maps doesn t seem to load or is it me ?
Best,
Thomas
2018-08-05 5:03 GMT+00:00 Oleg Shalygin<EMAIL_ADDRESS>
I'll take a look
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tomchentw/react-google-maps/issues/882#issuecomment-410496133,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMRCHeN81icQdBsTaM-jezBz1UbNV19Bks5uNnydgaJpZM4VssKa
.

Not sure yet but I'm about to test it right now, the latest version of the google maps api may have broken a few things internally but I doubt it, they're very good about semver.
I'll let you know within the hour

FYI for reference:
https://developers.google.com/maps/documentation/javascript/versions

Everything is working fine with v3.33 of GoogleMaps:
https://developers.google.com/maps/documentation/javascript/releases
Take a look at the README and the getting started.  If you see any issues please comment back in this Issue and I will reopen it.
Thanks!

Hey,
I have this error on both my website, yours and the documentation
2018-08-05 20:55 GMT+01:00 Oleg Shalygin<EMAIL_ADDRESS>
Closed #882 https://github.com/tomchentw/react-google-maps/issues/882.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tomchentw/react-google-maps/issues/882#event-1771726041,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMRCHUwlCXr6S_8veDzUVvpBy1OiQa1lks5uN03GgaJpZM4VssKa
.


Deny pulling unhealthy images - ACR

If Azure defender scan ACR images and found them unhealthy/vulnerable, is there any way to prevent those images from pulling?
How can it be done?

@vispatster -
Thank you for your question.
Can you please share with us the URL of the document that you are having issues with?
Please note that we scope issues on this repo to feedback related to the docs. If you have a product question, please post it on Microsoft QnA or Stack Overflow. Thank you for your understanding.

@vispatster -
Thank you for your question.
Can you please share with us the URL of the document that you are having issues with?
Please note that we scope issues on this repo to feedback related to the docs. If you have a product question, please post it on Microsoft QnA or Stack Overflow. Thank you for your understanding.

Please close this issue.
It wasn't related to any doc

@vispatster - Thanks for your response. Please raise your question in Microsoft QnA where our Engineers and Community are active in answering questions.
At this moment, Since there is no doc update required, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


24382  - Placeholder for moving over EFT components into pay web

Issue #: 24382 https://github.com/bcgov/entity/issues/24782 https://github.com/bcgov/entity/issues/24783 https://github.com/bcgov/entity/issues/24781
Description of changes:
sha from auth-web: 5d1d731c1eb01a71c27b231e1330270b98c81cf1
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

/gcbrun

Temporary Url for review: https://bcregistry-fas-dev--pr-236-2q0rb737.web.app

/gcbrun

Temporary Url for review: https://pay-web-dev--pr-236-24rqqv0z.web.app