Trim primer sequences

Currently we are using cutadapt to trim adapter sequences before mapping with minimap2.  We are not removing primer sequences from the amplicon data (where primers may appear in the reads due to read-through), but we should be.  Primer trimming is possible with cutadapt:
https://cutadapt.readthedocs.io/en/stable/recipes.html#trimming-amplicon-primers-from-both-ends-of-paired-end-reads
but I'm not sure whether this will support large numbers of primers as used in the ARTIC protocol.

For an arbitrarily chosen set of FASTQ files, we have the following results on trimming adapters:
art@Langley:~/git/gromstole/data$ cutadapt -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o test1.fastq.gz -p test2.fastq.gz -j 4 -m 10 G1-1007_S4_L001_R1_001.fastq.gz G1-1007_S4_L001_R2_001.fastq.gz
This is cutadapt 1.18 with Python 3.6.9
Command line parameters: -a AGATCGGAAGAGC -A AGATCGGAAGAGC -o test1.fastq.gz -p test2.fastq.gz -j 4 -m 10 REDACTED_L001_R1_001.fastq.gz REDACTED_L001_R2_001.fastq.gz
Processing reads on 4 cores in paired-end mode ...
Finished in 1.20 s (17 us/read; 3.58 M reads/minute).

=== Summary ===

Total read pairs processed:             71,365
  Read 1 with adapter:                   1,495 (2.1%)
  Read 2 with adapter:                   1,678 (2.4%)
Pairs that were too short:                   0 (0.0%)
Pairs written (passing filters):        71,365 (100.0%)

Total basepairs processed:    35,825,230 bp
  Read 1:    17,912,615 bp
  Read 2:    17,912,615 bp
Total written (filtered):     35,814,462 bp (100.0%)
  Read 1:    17,907,758 bp
  Read 2:    17,906,704 bp

=== First read: Adapter 1 ===

Sequence: AGATCGGAAGAGC; Type: regular 3'; Length: 13; Trimmed: 1495 times.

No. of allowed errors:
0-9 bp: 0; 10-13 bp: 1

Bases preceding removed adapters:
  A: 29.2%
  C: 16.8%
  G: 38.4%
  T: 15.7%
  none/other: 0.0%

Overview of removed sequences
length	count	expect	max.err	error counts
3	1264	1115.1	0	1264
4	197	278.8	0	197
5	27	69.7	0	27
6	3	17.4	0	3
7	1	4.4	0	1
10	1	0.1	1	1
21	1	0.0	1	0 1
86	1	0.0	1	0 1

=== Second read: Adapter 2 ===

Sequence: AGATCGGAAGAGC; Type: regular 3'; Length: 13; Trimmed: 1678 times.

No. of allowed errors:
0-9 bp: 0; 10-13 bp: 1

Bases preceding removed adapters:
  A: 25.4%
  C: 16.6%
  G: 17.0%
  T: 40.9%
  none/other: 0.0%

Overview of removed sequences
length	count	expect	max.err	error counts
3	1087	1115.1	0	1087
4	390	278.8	0	390
5	188	69.7	0	188
6	6	17.4	0	6
7	2	4.4	0	2
9	1	0.3	0	1
10	1	0.1	1	0 1
11	1	0.0	1	0 1
17	1	0.0	1	0 1
53	1	0.0	1	0 1

Following workflow developed by @cfe-lab at https://github.com/cfe-lab/MiCall/blob/master/micall/core/trim_fastqs.py:
art@Langley:~/git/gromstole/data$ cutadapt -j 4 -g file:primers_sarscov2_left.fasta -A file:primers_sarscov2_left_end.fasta -o test1_left.fastq.gz -p test2_left.fastq.gz --trimmed-only --pair-filter=both test1.fastq.gz test2.fastq.gz
This is cutadapt 1.18 with Python 3.6.9
Command line parameters: -j 4 -g file:primers_sarscov2_left.fasta -A file:primers_sarscov2_left_end.fasta -o test1_left.fastq.gz -p test2_left.fastq.gz --trimmed-only --pair-filter=both test1.fastq.gz test2.fastq.gz
Processing reads on 4 cores in paired-end mode ...
Finished in 9.44 s (132 us/read; 0.45 M reads/minute).

=== Summary ===

Total read pairs processed:             71,365
  Read 1 with adapter:                  58,195 (81.5%)
  Read 2 with adapter:                  57,701 (80.9%)
Pairs written (passing filters):        68,762 (96.4%)

Total basepairs processed:    35,814,462 bp
  Read 1:    17,907,758 bp
  Read 2:    17,906,704 bp
Total written (filtered):     34,016,062 bp (95.0%)
  Read 1:    16,975,652 bp
  Read 2:    17,040,410 bp

=== First read: Adapter nCoV-2019_1_LEFT ===
[OMITTED]

art@Langley:~/git/gromstole/data$ cutadapt -j 4 -G file:primers_sarscov2_right.fasta -a file:primers_sarscov2_right_end.fasta -o test1_right.fastq.gz -p test2_right.fastq.gz --trimmed-only --pair-filter=both test1_left.fastq.gz test2_left.fastq.gz
This is cutadapt 1.18 with Python 3.6.9
Command line parameters: -j 4 -G file:primers_sarscov2_right.fasta -a file:primers_sarscov2_right_end.fasta -o test1_right.fastq.gz -p test2_right.fastq.gz --trimmed-only --pair-filter=both test1_left.fastq.gz test2_left.fastq.gz
Processing reads on 4 cores in paired-end mode ...
Finished in 9.45 s (137 us/read; 0.44 M reads/minute).

=== Summary ===

Total read pairs processed:             68,762
  Read 1 with adapter:                  54,153 (78.8%)
  Read 2 with adapter:                  60,348 (87.8%)
Pairs written (passing filters):        66,939 (97.3%)

Total basepairs processed:    34,016,062 bp
  Read 1:    16,975,652 bp
  Read 2:    17,040,410 bp
Total written (filtered):     32,626,077 bp (95.9%)
  Read 1:    16,319,040 bp
  Read 2:    16,307,037 bp

=== First read: Adapter nCoV-2019_1_RIGHT ===

[OMITTED]

Need to check if this is working correctly, i.e., are we cutting actual template sequence or primers?

art@Langley:~/git/gromstole$ python3 scripts/trim_fastqs.py data/G1-1007_S4_L001_R1_001.fastq.gz data/G1-1007_S4_L001_R2_001.fastq.gz test.R1.fastq.gz test.R2.fastq.gz --datadir data
art@Langley:~/git/gromstole$ python3 scripts/minimap2.py -o . -p iss39 -t 8 --nocut --ref data/NC_045512.fa test.R1.fastq.gz test.R2.fastq.gz
50000.0 reads, 41649.0 (83%) mapped

Drops in coverage in most cases, due to removal of reads:

Comparing mutation frequencies between original and trimmed outputs:

We need to validate on simulated data, or compare to other pipelines.

Compare MiCall trimming to iVar on the same sample, let's see if the latter is trimming as aggressively.

Hm, iVar trims from aligned BAM files - we could apply the same method directly to the minimap2 output stream.  Look at the iVar source code, but it could be as simple as appending positions that correspond to primers to the missing fields.

Deactivating the --trimmed-only and --pair-filter=both options in the MiCall script did not change the output size at all.

[ ] load ARTIC v3 primer coordinates from file
[ ] for each read, determine midpoint coordinate of mapped location
[ ] estimate amplicon based on read midpoint, using Python module https://pypi.org/project/intervaltree/ ?
[ ] based on amplicon index, censor the positions in the read corresponding to the primers using the missing field

Priority of this is downgraded due to issue #45

Deprecated with the replacement of minimap2 with viralrecon


Error generate k8s when using symlinks

Bug Report
I've got an error while generating k8s code when the code is symlink in the target directory
i'm using version 0.7.0
What did you do?
Without symlink it works :
docker run -ti --rm --privileged -v /Users/go/src/path/to/project:/go/src/path/to/project -w /go/src/path/to/project \
        build-operator:sdk-0-7-0 bash
Starting Docker daemon in DinD mode in background...
Docker daemon up and running:
  Server Version: 18.06.1-ce
  Storage Driver: vfs
root@a9c73ff036dc:/go/src/path/to/project# operator-sdk generate k8s
INFO[0019] Running deepcopy code-generation for Custom Resource group versions: [db:[v1alpha1], ]
INFO[0030] Code-generation complete.

With symlinks it broke :
docker run -ti --rm --privileged -v /Users/go/src/path/to/project:/source -w /source \
  --env https_proxy= --env http_proxy= \
        build-operator:sdk-0-7-0 bash
Starting Docker daemon in DinD mode in background...
Docker daemon up and running:
  Server Version: 18.06.1-ce
  Storage Driver: vfs
root@0fd5e58b1e1f:/source# mkdir -p $GOPATH/src/path/to/project
root@0fd5e58b1e1f:/source# ln -s $(pwd) $GOPATH/src/path/to/project
root@0fd5e58b1e1f:/source# cd $GOPATH/src/path/to/project
root@0fd5e58b1e1f:/go/src/path/to/project# operator-sdk generate k8s
Error: exit status 1
Usage:
  operator-sdk generate k8s [flags]

Flags:
      --header-file string   Path to file containing headers for generated files.
  -h, --help                 help for k8s

in my pipeline I can't force the working_directory so I go through the symlink, but it won't work anymore.
thanks for help

@allamand Has this worked in earlier versions of operator-sdk?
We've seen issues with symlinks come up relatively often, and the answer is typically to flip the symlink and make sure that the symlink points into $GOPATH, rather than creating a symlink in $GOPATH pointed somewhere outside $GOPATH.
Is doing something like that possible in your pipeline?

Hi @joelanford, yes it was working in the previous version. For now, I've worked out it by copying files in the GOPATH instead of making symlinks. It take longer to make copy in the pipeline, but it works :)

@allamand I think the issue is a result of changes we've been making to the way we build code generation binaries. As of this morning, we merged #1470 which vendors the codegen libraries into the SDK binary, so we no longer need to build binaries in user projects.
With this change, you may be able to revert back to using symlinks. I wouldn't be surprised if go modules, which we now support since v0.8.0, also improves symlink usage.
Since it sounds like you have a workaround and we may have fixed this in #1470, I'll go ahead and close this.If you try out #1470 and go modules and the symlink doesn't work, definitely re-open and we can try to help out.


Doc the solution for using Astro with Yarn 3 (Berry) issue

As per this Bug in Astro: https://github.com/withastro/astro/issues/3450
(The last comment appears to have the solution.)
This probably goes in the Install page, a note or comment, and we should get feedback from core whether this is considered temporary, or a hack, or a more official "how to do it" to get the phrasing/presentation correct.

@sarah11918 Yes, let me get some more information on this and I will send a pull request 👍🏻

Since #749, #753 have this covered, I think this issue can be closed.

Indeed — thanks @retronav!


[explore] fix empty chart when changing viz type

avoid re-render while loading
avoiding calling setControlValue action when not necessary to avoid unnecessary redux interactions

This is a high visibility bug. Merging as hotfix


Crash building Raleway-Black

fontmake crashes when building Raleway-Black from UFO; see log. Probably, the root cause is https://github.com/behdad/fonttools/issues/520.

Indeed, that UFO has an invalid openTypeOS2WinDescent according to the UFO spec:
https://github.com/FlossFoundry/Raleway/blob/master/src/Raleway-Black.ufo/fontinfo.plist#L139
http://unifiedfontobject.org/versions/ufo3/fontinfo.html#opentypeos/2
But the thread linked to seems to conclude that a UFO->OTF compiler should not crash on this, so we can change things to handle it.

I think this was fixed by https://github.com/googlei18n/ufo2ft/commit/87b270fa4ed23fc60e8eb1cc1c0660cf5faf357d


potrf is now called cholesky

Appears like this is not the fix for #22. Why not use torch.det(M) to compute the Jacobian instead in fixed_transforms.py?

in pytorch==1.0.0 , torch.potrf() default upper=True, and in pytorch>=1.2.0 torch.cholesky() default upper=False, so you should don't use default between the different pytorch version

Appears like this is not the fix for #22. Why not use torch.det(M) to compute the Jacobian instead in fixed_transforms.py?

even if log(det(M)) is a resonable number, if you compute it that way for matrices > e.g. 500x500, you usually get det(M) = INF, and then log(INF) is still INF. That is why we did it in the roundabout way in the first case, where the problem doesn't occur (because sum(log(s)) is well defined and log(prod(s)) is INF).
I can't merge the PR for now, but we will work something out this week.

There is torch.logdet

Fixed by https://github.com/VLL-HD/FrEIA/pull/53


fix: some symbols can't be mapped correctly

#1935 will cause some symbols to not be mapped correctly. I have added the symbols that I need to map. I'm not very familiar with others' habits, but I believe there should be some other symbols that need to be added to this patter.
Fix #2080.

@OnlyWick Could you resolve conflicts?

@hrsh7th Done!


Type NDArrayMixin

Activate typing on these mixins by removing the Any.

[ ] Closes #xxxx
[ ] Tests added
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

pre-commit.ci autofix

The errors looks like this:
self = <xarray.backends.scipy_.ScipyArrayWrapper object at 0x00000234CBC43610>
variable_name = 'dim2'
datastore = <xarray.backends.scipy_.ScipyDataStore object at 0x00000234CBC43D90>

    def __init__(self, variable_name, datastore):
        self.datastore = datastore
        self.variable_name = variable_name
        array = self.get_variable().data
>       self.shape = array.shape
E       AttributeError: can't set attribute

/home/runner/work/xarray/xarray/xarray/backends/scipy_.py:52: AttributeError

Setting shape like this doesn't seem like the proper way of doing it. Maybe these should just inherit NDArrayMixin as well?

I think BackendArray (and it's parents) did not define shape as an attribute. So one option is to revert this change.

The other is to unify how the backends assign shape and dtype? They seem be to defined very differently depending on the backend.
https://github.com/pydata/xarray/blob/d47cf0c850cb70429373782b3c1e0329d14fd05a/xarray/backends/pydap_.py#L28-L30
https://github.com/pydata/xarray/blob/d47cf0c850cb70429373782b3c1e0329d14fd05a/xarray/backends/netCDF4_.py#L59
https://github.com/pydata/xarray/blob/d47cf0c850cb70429373782b3c1e0329d14fd05a/xarray/backends/rasterio_.py#L37

I think BackendArray (and it's parents) did not define shape as an attribute. So one option is to revert this change.

Yeah this approach isn't working that great. I think I'll close this pr unless there's some other ideas.

Define

class BackendArray(...):

     @property
     def shape(self) -> tuple(int, ...):
         return self._shape

and then set
class SpecificBackend(BackendArray):

    def __init__(self, variable_name, datastore):
        self._shape = array.shape

but that might affect downstream libraries.


Disallow using File as input of artifact transforms

Closes #15546

@bot-gradle test QFL

@bot-gradle test QFL

OK, I've already triggered QuickFeedbackLinux build for you.

OK, I've already triggered QuickFeedbackLinux build for you.

@bot-gradle test QFL

@bot-gradle test QFL

OK, I've already triggered QuickFeedbackLinux build for you.

OK, I've already triggered QuickFeedbackLinux build for you.

@bot-gradle test QFL

@bot-gradle test QFL

OK, I've already triggered QuickFeedbackLinux build for you.

OK, I've already triggered QuickFeedbackLinux build for you.

Blocked by https://github.com/JetBrains/kotlin/pull/4071

As discussed in the standup, deferring this change to 8.0.


Drop sinsp_usergroup_manager::load_from_container

What type of PR is this?
/kind bug
/kind cleanup
Any specific area of the project related to this PR?
/area libsinsp
/area tests
Does this PR require a change in the driver versions?
What this PR does / why we need it:
sinsp_usergroup_manager::load_from_container isn't quite reliable, actually interfering with the mechanism accessing through proc. Drop it.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

LGTM label has been added.  Git tree hash: e379ba15214ccaf24fe13dd75aa2d27751a87ca7

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: deepskyblue86, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: deepskyblue86, FedeDP, gnosek
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,gnosek]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.10.0


publish static pex binaries

@kwlzn suggested we publish static pex binaries on the landing page.  This is a good idea but we will need to automate it and also publish SHAs etc.

this is more or less handled by the new release process documented in #184 and there's also #172 to automate it. closing this one.


More type annotations

Since py.typed is included we can now start adding type annotations. This won't be easy so we should probably start with the low-hanging fruit and work our way to (possibly code-breaking) large changes.
I believe we should do this change gradually and in many small MRs so that the changes are actually looked at.
I tried to change the code itself as little as possible. In some places the precise types are rather verbose (a tuple of 4 tuples and the likes...)

Codecov Report

Merging #263 (b355cdd) into develop (2efcdf2) will increase coverage by 0.04%.
The diff coverage is 96.70%.

@@             Coverage Diff             @@
##           develop     #263      +/-   ##
===========================================
+ Coverage    88.48%   88.52%   +0.04%
===========================================
  Files           48       48
  Lines         4151     4157       +6
===========================================
+ Hits          3673     3680       +7
+ Misses         478      477       -1

Impacted Files
Coverage Δ

sentinelhub/geometry.py
89.73% <95.83%> (+0.54%)
:arrow_up:

sentinelhub/commands.py
71.42% <100.00%> (+1.21%)
:arrow_up:

sentinelhub/os_utils.py
72.72% <100.00%> (+0.85%)
:arrow_up:

sentinelhub/testing_utils.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Newlines are not being displayed in strings

Description:
Newlines are not getting rendered.
Steps to reproduce:

Eval "something\nsomething"

Expected behavior: Newlines are shown in value preview, or anywhere.
What I got instead: They are not
This is quite important for report generation in Squiggle

This is because strings are currently rendered as a markdown (without GFM).
Relevant discussion on Discord: https://discord.com/channels/1130609991993274510/1133551706370752582/1135759229853110302

Btw, I think that while rendering strings as a markdown might be useful, doing it always is probably something that we should roll back, and use markdown() function to convert strings types to markdown string objects.


SECURESIGN-185 | Add tests to all pipelines

PR to re-add go unit tests to scaffolding

/retest

I tried to do it with the brew image but that didnt work out well
@JasonPowr what do you mean? Did you get some failure?

yes it failed to pull the image, couldn't get a different err msg other than failed to pull, I'm assuming it is related to credentials and i am unable to attach the service account with the brew-registry-pull-secret as that has to be done in the taskRun


Fix atomic memory operations on global memory

The specification was outdated with some of the implementations. I've
opted to signal all atomics with write set to 0 now as this seemed
to be the most straightforward way of implementing it.
Additionally, I've adapted the specification and added assertions to
capture this.
CC @fischeti

@fischeti you confirmed that this solved your issue and you can perform atomics now, right? So that should be good to merge I guess?

Yes, I have tested atomic operations and this fix has resolved my previous issues.


Update Composer dependencies (2020-04-29-00-08)

Visual regression test passed!
View the visual regression test report


[test_scenario][bug] unexpected crash in `test_scenario::take_from_ad…

…dress`
See added repro() function, can run sui move test to see the issue

This is somewhat intentional. Is this why it was closed?
We could switch this to work... it's just trickier


public function new

Describe your bug here.

i do not know how to fix it
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
yes i changed some things to do a note but that is all

There's an unexpected bracket up there maybe?


[DRAFT] Fixed memory leak with NetworkAndroid instance

Fixed problem with NetworkAndoird instance not being destroyed when the owner of it doesn't hold it anymore.
Thus, it will lead to the Java memory being released after network is not reachable anymore for client.
NOTE that this fix is not yet properly tested and should be verified before merge,
because it changes the way the NetworkAndroid::run_thread_ is being stopped.
Relates to: OLPEDGE-371
Signed-off-by: Bohdan Kurylovych<EMAIL_ADDRESS>

Closing ticket due to refactoring of Java native methods with peer pattern (see OLPEDGE-735)


Updated systemd commands

Description
Modified systemd commands to be compliant with systemd systems, not just debian-based systems, as they don't have the wrapper service.
Type of PR
If your PR fits more than one category, there is a high chance you should submit more than one PR. Please consider this carefully before opening the PR.
Either delete those that do not apply, or add an x between the square brackets like so: - [x]

[ ] Bugfix
[ ] Feature implementation
[ ] Refactor of code (without functional changes)
[x] Documentation improvements
[ ] Test improvements

CLA
Yes

Looks good, thanks Angel!

Looks good, thanks Angel!


[FEATURE] Favicon, description, meta preview image, site tiltle for each page.

Problem
Currently show nextjs app
Description
Updated favicon, description, and site title
Acceptance Criteria

[x] favicon
[x] metadescription image
[x] site title
[x] site description

Resources
Name
Potlock
Description
Potlock, is bringing new funding mechanisms to the table for public goods, built on NEAR Protocol
Image

Favicon

site title
site description
Could you please provide an example, @codingshot?

@lachlanglen
site title
site description
Could you please provide an example?

I think this looks good, will wait for @codingshot to approve

actually we can close this


Extension of OBI ontology with the term metabolite fingerprinting

Hi all + @proccaserra , @DSchober ,
I would like to request an extension of the OBI ontology.
Currently, it only includes the term “metabolite profiling” and lacks the term “metabolite fingerprinting”. The latter is used frequently as an approach in the research domain of “Eco-Metabolomics” [1].
Metabolite fingerprinting can be defined as follows:
The characterisation of metabolites following an untargeted approach without necessarily identifying metabolites.
Whereas metabolite profiling can be defined as follows:
The characterisation of metabolites following a semi-targeted approach that focus on specific groups of metabolites or specific pathways.
You can refer to my publication as reference [1]. The Book of Hall et al. contains a more detailed definition (page 39, available upon request) [2].
As suggested by @bpeters42 , ```I understand the need to capture targeted vs. non-targeted, but that should then be explained in the assay definition. Right now we have:
OBI_0000366 - metabolite profiling (synonym: metabolite assay), defined as: "Metabolite profiling is a process which aims at detecting and identifying chemical entities resulting from biochemical and cellular metabolism"
This seems to also cover the fingerprinting you describe. So my suggestion would be to have one parent term (metabolite assay), and then have two children 'targeted metabolite assay' 'untargeted metabolite assay' or something like that. You are the expert in the domain, but for us it will be important to retain a parent term. I would also be interested what Philippe's opinion is on this who originally created the term. ```
Best wishes, *Kristian
[1] Peters et al. (2018) Int. J. Mol. Sci. 19(5), 1385; https://doi.org/10.3390/ijms19051385
[2] Hall, R.D. (Ed.) (2011) Biology of Plant Metabolomics; Annual Plant Reviews; Wiley-Blackwell: Oxford, UK; ISBN 978-1-4051-9954-4.

@bpeters42 Could you please look at this issue tracker?

Based on the thread, I am trying to summarize the requests for new terms / term changes. Please provide concrete edits to the below if I am not getting it right.
metabolite profiling
- targeted metabolite profiling
- untargeted metabolite profiling (synonym: metabolite fingerprinting)
OBI_0000366 - metabolite profiling (synonym: metabolite assay), defined as: "Metabolite profiling is an assay that aims to detect and identify material entities resulting from biochemical and cellular metabolism"
new term1)
targeted metabolite profiling: A metabolite profiling assay that is set up to detect one or more specific metabolites
untargeted metabolite profiling assay: A metabolite profiling assay that is set up to detect a generic class of material entities, with the intention of detecting metabolites within them.
NEW TERM : metabolite profiling (synonym: metabolite assay), defined as: "Metabolite profiling is a process which aims at detecting and identifying chemical entities resulting from biochemical and cellular metabolism"
The characterisation of metabolites following a semi-targeted approach that focus on specific groups of metabolites or specific pathways.

This sounds alright to me.
Maybe one minor addition.
I think that untargeted metabolite profiling assay could be changed to: A metabolite profiling assay that is set up to detect generic classes of material entities, with the intention of detecting metabolites or compound classes within them.
Following that,
The characterisation of metabolites following a semi-targeted approach that focus on specific compound classes, groups of metabolites or specific pathways.
Let me know if I can be of further help. Best wishes

Neither 'generic classes' nor 'compound classes' are defined in OBI, and
the word 'class' is highly overloaded already. I am not sure what the
intended purpose of the edits is. Can you suggest edits with common
language English that achieve the same ?
On Mon, Mar 18, 2019, 2:46 AM korseby<EMAIL_ADDRESS>wrote:

This sounds alright to me.
Maybe one minor addition.
I think that untargeted metabolite profiling assay could be changed to: A
metabolite profiling assay that is set up to detect generic classes of
material entities, with the intention of detecting metabolites or
compound classes within them.
Following that,
The characterisation of metabolites following a semi-targeted approach
that focus on specific compound classes, groups of metabolites or
specific pathways.
Let me know if I can be of further help. Best wishes
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/obi-ontology/obi/issues/953#issuecomment-473839307,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANN9IjiipmYaXSUbWImc3WDZl4EmE82Fks5vX2B9gaJpZM4WHCdP
.

The term "compound class" is commonly used in chemistry and biochemistry. The ChEBI ontology would be a good start (https://www.ncbi.nlm.nih.gov/pubmed/17932057).

I am sorry, i cannot find a definition of 'compound class' in chebi. Can
you please point me to it?
On Tue, Mar 26, 2019, 7:12 AM korseby<EMAIL_ADDRESS>wrote:

The term "compound class" is commonly used in chemistry and biochemistry.
The ChEBI ontology would be a good start (
https://www.ncbi.nlm.nih.gov/pubmed/17932057).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/obi-ontology/obi/issues/953#issuecomment-476662963,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANN9IkGBDw-Lq8bTp4zWDKpKwKPMcfRtks5vairmgaJpZM4WHCdP
.


[Breadth Coverage] Databricks

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/fengzhou-msft/azure-cli-extensions.git@databricks#subdirectory=src/$EXT&egg=$EXT"

Plan in S167.

In _help.py, verbs have different forms. When a sentence starts with a verb, sometimes it's in Root Form, sometimes it's in Third Person Singular Form. Please unify them.

few comments:

Is List by subscription not supported?
Is VNET injected workspace creation not supported?

few comments:

Is List by subscription not supported?
Is VNET injected workspace creation not supported?

HI @amoghnatu thansk for the feedback. To share some context about the Breadth coverage, Azure CLI is working on expand service coverage by starting for top one use scenario for each RP. We don' target cover full scenarios at one batch, but breadth firstly on top one, then depth based on customer feedback. Let us know any other question

few comments:

Is List by subscription not supported?
Is VNET injected workspace creation not supported?

List by subscription is supported with this command:
az databricks workspace list [--subscription subscription_id]
If you have set a default resource group with az configure --defaults group=your-group,
you need to temparorily disable passing the default resource group:
az databricks workspace list --resource-group= [--subscription subscription_id]
Otherwise, it will list by your default resource group.
The command is not working now because service returns 502. I've contacted service team to look into it.

I think these parameters allow you to create a VNET injected workspace.

https://github.com/Azure/azure-cli-extensions/blob/7fd8f71f2b56c9d1f45a3a73eaf70eca46ba7d7d/src/databricks/azext_databricks/_params.py#L27-L29

@fengzhou-msft can we connect on Teams to discuss on the 502 you're seeing for List by subscription?


Update compiler-interface to 1.5.3

Updates org.scala-sbt:compiler-interface from 1.4.4 to 1.5.3.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "compiler-interface" } ]

labels: library-update, semver-minor

Superseded by #57.


Internal links via markdown

I have a next problem. I have a bunch of items with descriptions. Descriptions have markdown support now (with this addon). I tried to make internal links from one item to another. It works but it reloads the whole site. When I have created the same link with {{link-to}} helper in html it looks the same but works in another way. It just re-render the part of app.
Is there a way to achieve {{link-to}} behaviour with ember-cli-showdown?

I have installed addon ember-href-to and created the next extension:
export function initialize(/* application */) {
  showdown.extension("internal-links", function() {
  return [{
    type: 'html',
    regex: '<a href=',
    replace: '<a class="ember-href-to" href='
  }];
});
}

export default {
  name: 'register-showdown-extensions',
  initialize
};

This totally resolves my problem.

I prefer not to use the addon mentioned by @Crabar because it breaks a lot of things in my app, such as unrelated links.
I have exactly the same wish though. Did you find a more modern (ember 3) alternative to this, @Crabar?
Could this issue be re-opened?

I write component
my link in markdown must be "@model-name:model-id".
example
@user:alice
this replaced by {{link-to}}
then compile by handlebars
in ember-cli-build.js
 app.import('vendor/ember/ember-template-compiler.js')
md-text.coffee
import Ember from 'ember'
import Component from '@ember/component'
import { computed, observer } from '@ember/object'
import { htmlSafe } from '@ember/string'
import { scheduleOnce } from '@ember/runloop'
import { warn } from '@ember/debug'
import showdown from 'showdown'
import config from 'ember-get-config'

export default Component.extend(
  tagName: ''

  text: ''

  didInsertElement: ->
    scheduleOnce 'afterRender', @, 'updateTemplate'

  parsedMarkdownUnsafe: computed 'text', 'html', 'typographer', 'linkify', 'linkTarget', ->
    text = @get 'text'
    converter = new showdown.Converter config.showdown
    converter.makeHtml text

  updateTemplate: ->
    @set('subLayout', null)
    dynamic = @get 'dynamic'
    self = @
    scheduleOnce 'afterRender', @, ->
      try
        layout = null
        re = /[@]([a-z-]+):(\S+)/g
        replaced = self.get 'parsedMarkdownUnsafe'
        .replace(re, "{{#link-to '$1.item' '$2'}}$2{{/link-to}}")
        replaced = htmlSafe replaced if !dynamic
        layout = Ember.Handlebars.compile replaced, false
        self.set 'subLayout', layout
      catch e
        console.log e
  observerSource: observer 'text', ->
    @updateTemplate()
).reopenClass
  positionalParams: ['text']

md-text.emblem
if subLayout
  = md-text-renderer layout=subLayout

md-text-renderer.coffee
import Component from '@ember/component'

export default Component.extend
  tagName: ''

using
md-text '# 123'


Too Many Redirect with checked remember me User Login only

What steps will reproduce the problem?
I try to login with remember me checkbox checked and server show error page ERR_TOO_MANY_REDIRECTS
What is the expected result?
ERR_TOO_MANY_REDIRECTS
What do you get instead?
Login Successful
Additional info
Server Error Log

[Wed Aug 23 12:52:07.086676 2017] [core:crit] [pid 17385] (13)Permission denied: [client <IP_ADDRESS>:9749] AH00529: /home/user/public_html/yiiproject/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/user/public_html/yiiproject/web/' is executable
This is happen on some server only.
Is there any related server settings to change to solved this error ?

Q
A

Yii version
2.0.5

PHP version
5.6

Operating system
Centos 7

May be anything changed in chmod on '/home/user/public_html/yiiproject/web/' ?

Is happening because of mod_security rule
981243: Detects classic SQL injection probings 2/2
Disable that Rule and working fine now.
Error Logs.
Request:  GET /
Action Description:  Access denied with redirection to http://domain.com/ using status 302 (phase 2).
Justification:  Pattern match "(?i:(?:["']\s*?\.+(?:x?or|div|like|between|and|id)\W?["']\d)|(?:\^["'])|(?:^[\w\s"'-]+(?<=and\s)(?<=or|xor|div|like|between|and\s)(?<=xor\s)(?<=nand\s)(?<=not\s)(?<=\|\|)(?<=\&\&)\w+\()|(?:["'`][\s\d]?[^\w\s]+\W?\d\ ..." at REQUEST_COOKIES:_identity.
Thanks


Designation Request - Role Validation

User Story
As a non-BC Public institution user (legal signing authority), when I submit a designation request I should be submitting two different people for the Eligibility Officer and Enrolment Officer Roles. If I am not submitting two different people, I want to be advised to send an email to the ministry to prevent delays in my designation.
Acceptance Criteria

[ ] When the same name is entered in an Eligibility Officer record and an Enrolment Officer record (see business context for example) dynamically add a yellow warning banner beneath the Enrolment officers:

"You have the same official listed as both an Eligibility Officer and an Enrolment Officer. StudentAid BC policy is that these roles must be effectively segregated such that no employee is appointed to perform both duties. An exemption may be granted upon written request and subject to Ministry approval, if a designated institution had fewer than 10 student borrowers who received a combined total of under $50,000 in student financial assistance in the previous program year.
Please email<EMAIL_ADDRESS>if you want to request an exemption."

[ ] Apply this to ONLY BC PRIVATE institutions submitting a designation request.
[ ] Render identical warning banner to the Ministry user when reviewing the Designation Request as well.

Business Context

Best Case: Validation between two role
Option: Better messaging re same people in the role as it's against policy and needs to be reviewed (email to designat)

@CarlyCotton when the match for the Eligibility Officer and Enrolment Officer are considered, do we need to take into account their names ONLY? or do we consider their email id OR AND phone number?

@guru-aot

when the match for the Eligibility Officer and Enrolment Officer are considered, do we need to take into account their names ONLY? or do we consider their email id OR AND phone number?

Just Name, we can ignore email and phone number (possible they might use a generic email / office number)

If the banner is shown as a warning while submitting the designation request, the user will not see the banner in the same screen, so it would be better when they are trying to add the details in the table.

Banner underneath the table, no pop-up or additional messaging when they submit their Designation Request.

Can we show this banner as the names match while typing in the text boxes?

I would expect no banner show before anything is typed in the fields (they are the "same" since both blank)
If the user types the same name into the second name field and then changes focus out of the name box, that is ideally when the banner would show. Then it would show until they have updated either of the fields to be different and changes focus out of the name box again.
Are there limitations in doing that?

@CarlyCotton need to check regarding any limitation in doing this (I believe it will be tricky since this is a formio component and we plan on showing the  banner inside this formio component but other devs can confirm) but I have two additional questions. Just to confirm the below:

Since it is a warning banner, we are allowing the submission of the form even if both the names are same and the warning banner is showing, correct?
You have mentioned that the warning banner shows up when the user starts typing in the 2nd field and if the names become the same and there is a change in focus from the component, we show the warning. Likewise will be true for the reverse scenario, correct? since the user is free to type in any of the boxes, they can type in first in the 2nd box and then type in the first box and we mimic the same behavior, correct?

@sh16011993

Correct, it should still allow the user to submit the designation request with the warning banner showing.
Yes, should work both ways. I am also open to other creative solutions with a similar effect given formio limitations.

Thanks @CarlyCotton

@CarlyCotton both eligibility officers and enrolment officers can be one to many people. (Technically array of names)
Hence, are we suppose to match 2 separate list of names e.g. eligibility officers (name1,name2) vs enrolment officers (name1, name2).
Or should be assume that there will be only one eligibility and one enrolment officer and not more than that(even though system accepts) and validate the first item in both lists ??

@dheepak-aot
We can't assume that there will only be one of each role entered. There are a lot of BC Privates that have multiple locations so may enter multiple people under each role.
Can we compare the two separate list of names?


Issue with Firefox 57 with U2F enabled

With Firefox 57.0b8, if I have security.webauth.u2f enabled under about:config, MyEtherWallet site fails to load with the following error in the log:

TypeError: setting getter-only property "u2f"
[Learn More]
etherwallet-master.js:5792:3
Error: [$injector:modulerr] Failed to instantiate module mewApp due to:
[$injector:nomod] Module 'mewApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=mewApp
minErr/<@https://www.myetherwallet.com/js/etherwallet-master.js:31590:14
module/<@https://www.myetherwallet.com/js/etherwallet-master.js:33722:19
ensure@https://www.myetherwallet.com/js/etherwallet-master.js:33643:40
module@https://www.myetherwallet.com/js/etherwallet-master.js:33720:16
loadModules/<@https://www.myetherwallet.com/js/etherwallet-master.js:36339:24
forEach@https://www.myetherwallet.com/js/etherwallet-master.js:31884:13
loadModules@https://www.myetherwallet.com/js/etherwallet-master.js:36323:7
createInjector@https://www.myetherwallet.com/js/etherwallet-master.js:36239:21
doBootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:33378:22
bootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:33397:14
angularInit@https://www.myetherwallet.com/js/etherwallet-master.js:33287:7
[131]</</<@https://www.myetherwallet.com/js/etherwallet-master.js:64666:5
trigger@https://www.myetherwallet.com/js/etherwallet-master.js:34874:7

http://errors.angularjs.org/1.6.5/$injector/modulerr?p0=mewApp&p1=%5B%24injector%3Anomod%5D%20Module%20'mewApp'%20is%20not%20available!%20You%20either%20misspelled%20the%20module%20name%20or%20forgot%20to%20load%20it.%20If%20registering%20a%20module%20ensure%20that%20you%20specify%20the%20dependencies%20as%20the%20second%20argument.%0Ahttp%3A%2F%2Ferrors.angularjs.org%2F1.6.5%2F%24injector%2Fnomod%3Fp0%3DmewApp%0AminErr%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A31590%3A14%0Amodule%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33722%3A19%0Aensure%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33643%3A40%0Amodule%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33720%3A16%0AloadModules%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A36339%3A24%0AforEach%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A31884%3A13%0AloadModules%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A36323%3A7%0AcreateInjector%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A36239%3A21%0AdoBootstrap%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33378%3A22%0Abootstrap%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33397%3A14%0AangularInit%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A33287%3A7%0A%5B131%5D%3C%2F%3C%2F%3C%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A64666%3A5%0Atrigger%40https%3A%2F%2Fwww.myetherwallet.com%2Fjs%2Fetherwallet-master.js%3A34874%3A7%0A
etherwallet-master.js:31590:14

I knew MyEtherWallet didn’t load in my Firefox, but I didn’t know why—never thought to check the logs. Same problem here, Firefox 57.0b13 with U2F support enabled (which is necessary to use the Ledger Nano, I believe).

I've the same issue with U2F enabled on Firefox 58.0b1.

Same issue here with 58.0b1 and U2F enabled.

Just updated to Fx 57 Final, and with U2F enabled also suffering from the same problem.

Confirming this:
TypeError: setting getter-only property "u2f"
[Learn More]
etherwallet-master.js:6890:3
[58]<
https://myetherwallet.com/js/etherwallet-master.js:6890:3
s
https://myetherwallet.com/js/etherwallet-master.js:1:246
e
https://myetherwallet.com/js/etherwallet-master.js:1:425
<anonymous>
https://myetherwallet.com/js/etherwallet-master.js:1:11

The screenshot may give better/more detail:

Same issue here with latest Firefox 57 & Windows 10
TypeError: setting getter-only property "u2f"

etherwallet-master.js:7000:3
Error: [$injector:modulerr] Failed to instantiate module mewApp due to:
[$injector:nomod] Module 'mewApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.6.5/$injector/nomod?p0=mewApp
minErr/<@https://www.myetherwallet.com/js/etherwallet-master.js:27184:14
module/<@https://www.myetherwallet.com/js/etherwallet-master.js:29316:19
ensure@https://www.myetherwallet.com/js/etherwallet-master.js:29237:40
module@https://www.myetherwallet.com/js/etherwallet-master.js:29314:16
loadModules/<@https://www.myetherwallet.com/js/etherwallet-master.js:31933:24
forEach@https://www.myetherwallet.com/js/etherwallet-master.js:27478:13
loadModules@https://www.myetherwallet.com/js/etherwallet-master.js:31917:7
createInjector@https://www.myetherwallet.com/js/etherwallet-master.js:31833:21
doBootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:28972:22
bootstrap@https://www.myetherwallet.com/js/etherwallet-master.js:28991:14
angularInit@https://www.myetherwallet.com/js/etherwallet-master.js:28881:7
[136]</</<@https://www.myetherwallet.com/js/etherwallet-master.js:60260:5
trigger@https://www.myetherwallet.com/js/etherwallet-master.js:30468:7

Alright.
Firefox doesn't like line 67 in main.js:
window.u2f               = u2f;
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only
However, removing that line does not make it work in FF, and it breaks it in Chrome.
Clicking connect to Ledger does nothing. Clicking connect a second time throws:
Exception {
name: "NS_ERROR_FAILURE"
message: ""
result:<PHONE_NUMBER>
filename: "https://www.myetherwallet.com/js/etherwallet-master.js"
lineNumber: 10539
columnNumber: 0
data: null
stack: "[89]</</Ledger3.prototype.exchange@https://www.myetherwallet.com/js/etherwallet-master.js:10539:2
\n[88]</</LedgerEth.prototype.getAddress@https://www.myetherwallet.com/js/etherwallet-master.js:10335:2
\n decryptWalletCtrl/$scope.scanLedger@https://www.myetherwallet.com/js/etherwallet-master.js:1691:9
\n fn@https://www.myetherwallet.com/js/etherwallet-master.js line 59476 > Function:4:147
\n callback@https://www.myetherwallet.com/js/etherwallet-master.js:71261:17
\n $eval@https://www.myetherwallet.com/js/etherwallet-master.js:62348:16
\n $apply@https://www.myetherwallet.com/js/etherwallet-master.js:62448:20
\n ngEventHandler/<@https://www.myetherwallet.com/js/etherwallet-master.js:71266:17
\n defaultHandlerWrapper@https://www.myetherwallet.com/js/etherwallet-master.js:47747:3
\n eventHandler@https://www.myetherwallet.com/js/etherwallet-master.js:47735:9\n"
}

This is a generic error message with no documented meaning. It seems to occur when people are doing weird things like creating and loading iframes via AJAX, make synchronous json calls when they aren't allowed, etc. So obviously it doesn't like the back and forth with ledger still

Integrating with FIDO U2F v1.1 JS API will allow a developer’s web app to support U2F on Firefox. That said, it’s important to understand that every FIDO U2F implementation can vary from the official specifications. For example, Mozilla did not fully implement the FIDO AppID and Facet Specification. Some sites supporting FIDO U2F have made accommodations for the incompleteness of Firefox’s implementation, but some have not.

https://www.yubico.com/2017/11/how-to-navigate-fido-u2f-in-firefox-quantum/

https://github.com/prefiks/u2f4moz/issues/59
https://twitter.com/jamespugjones/status/912314952232267777
https://twitter.com/jamespugjones/status/912315652072812544
https://www.w3.org/TR/webauthn/

Hey, @tayvano! Just wanted to let you know I stumbled over this ticket when the u2f integration in Nextcloud stopped working (same issue on FF) and the solution for us was to replace the u2f JavaScript lib: https://github.com/nextcloud/twofactor_u2f/pull/74
Hope that helps!

 I was just digging thru your codebase and that npm package
Thanks for the tip. 💖 💖 💖

update npm package for reference so i can stop clicking in circles: https://www.npmjs.com/package/u2f-api

Hey! This issue’s been open for 2 months and nobody from MEW has been assigned to it yet. Does anyone know if they’re aware of the issue or not?

I think they are aware of it: https://www.reddit.com/r/MyEtherWallet/comments/7cuz45/issue_with_firefox_57_with_u2f_enabled/

Tried using MEW with my Nano S yesterday, and came up with this exact problem. Merry Christmas & Happy New Year MEW.

The entire site doesn't work, nano s or none if visited on firefox with u2f enabled. I have to use chrome to visit MEW for this reason. Basically Firefox is now incompatible with MEW.


Verify homepage and repository URLs for new apps

When a new app is added, we should check that the URLs are legit.
The test suite could somehow isolate that newly added app (by looking at the latest git commit) and test that its homepage and/or repository URLs are returning 200 status codes.
This test should NOT be run for every app on every test run. That would be slow and probably cause intermittent test failures.

@zeke, maybe we could use the node request  to verify if an url is legit as below;
var request = require('request')
request({url: value, method: 'HEAD'}, function(err, res) {
if(err) return false;
})
If the url is legit the request will return the code 200 (res.statusCode).
What do you think about it?

Yeah that sounds about right. I think the trickier part may be teaching the tests to only evaluate the most recently added app.

@zeke yes, because it could lead some time to check the URLs. But I was thinking about it and we could evaluate the most recently apps when the wizard for executed before of show the first question...

I'm not sure I understand what you're suggesting about the wizard.

This doesn't seem necessary after all. Closing.


Remove the NULL checks of function parameters

This issue is derived from this comment: https://github.com/openssl/openssl/pull/7113#discussion_r215185781
The main idea here is the NULL-checks for parameters should not be done as what the functions do in current code.
This is not addressed in PR #7113 , but it should be done later after 1.1.1 has been released.

Should we push this a little further now? What is the opinion from @openssl/committers ?

-1 in general to removing any parameter checks for NULLs

I too would add them to all public APIs as it makes the error handling logic cleaner and clearer.
However some others have expressed that the C runtime library doesn't so why should we. I don't support that argument as we are not the C runtime library and crashing due to missing error checks isn't a good state in my view.
A simply null parameter check leads to better code overall in my experience.
Adding is safer than removing and being consistent also makes a good argument for add null checks on all public APIs.

I concur, a program that crashes in the C runtime library doesn't often generate a request to the library provider asking them to debug the issue.  A crash in a crypto library does in my experience -- it dumped core in your code, it must be your problem and we're going to keep saying this loudly until you prove otherwise.

It seems that we need to have that discussion yet again within the team.  Last time this was discussed in depth, it seemed that not checking NULL was favored, because it would immediately show the problem and where it occurs instead of happening somewhere else because the caller never bothered to check for errors.
What has always struck me as curious is that, as a team at that time, we also discussed assertions, and most were against using them...  however, not checking for NULL is kinda sorta an implicit assertion, so we're not entirely consistent.
Me, I'm rather ambivalent on the issue.  Checking for NULL and returning with an error relies on the user checking for the error condition, and we haven't been entirely dilligent in our own code...  as a matter of fact, not checking for NULL has helped finding faults in our code much faster than anything else.  So yeah, pros and cons in both ends of the question.

This could be a way to address that particular concern:
if (ossl_assert(arg != NULL))
    return 0;

As long as you build with debug on (which I do by default) then you will still get the immediate feedback.

Shouldn't that be:
if (!ossl_assert(arg != NULL))
    return 0;

Obviously I'm not a committer but for what it's worth as a user of the library I think it's an argument you'll never satisfy everyone with. People will always argue that as a library you shouldn't just assert and should fail gracefully and other people don't want errors that are hard to debug in users code. For me Matt's suggestion looks like a reasonable compromise. At least I could turn on debug to help root cause those kind of issues but the parameter is being checked and dealt with gracefully in a release build.

@stevelinsell Shouldn't that be: if (!ossl_assert(arg != NULL))

Yes.  And I also find this approach appealing. If passing null is an error on the caller's part, then this avoids crashing in the library, and yet gives callers the opportunity to test with a library that will assert in that case.

I like the dual approach, too. However, the if condition  with the double negation is not very intuitive. I would suggest adding a new macro
#define ossl_is_null(arg) !oss_assert((arg) != NULL)

such that one can replace the above check by
if (ossl_is_null(arg))
    return 0;

The following variant would even give a more precise error message:
diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h
index a608735187..460e4be247 100644
--- a/include/internal/cryptlib.h
+++ b/include/internal/cryptlib.h
@@ -27,6 +27,7 @@

 #ifdef NDEBUG
 # define ossl_assert(x) ((x) != 0)
+# define ossl_is_null(x) ((x) == NULL)
 #else
 __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr,
                                               const char *file, int line)
@@ -39,7 +40,8 @@ __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr,

 # define ossl_assert(x) ossl_assert_int((x) != 0, "Assertion failed: "#x, \
                                          __FILE__, __LINE__)
-
+# define ossl_is_null(x) ossl_assert_int((x) != NULL, "Invalid NULL pointer: "#x, \
+                                         __FILE__, __LINE__)
 #endif

 typedef struct ex_callback_st EX_CALLBACK;

I just noticed: Things are bit more tricky, because in the NDEBUG case an error should be pushed on the stack.

BTW: shouldn't also ossl_assert() push an error in the NDEBUG case, instead of failing silently?

It isn't failing silently - it is returning an error code. That is the point. Not all error returns push to the error stack. Pushing to the error stack for this sort of thing would be over-the-counter habdling IMHO.

You can also go further and place the if and return into the macro and add an extra argument to be the return value as it does vary depending on the function. That would also provide a simple way to compile that code out completely if someone objects to having it. Then you get three choices. Personally I don't see the need for a debug assert approach as this isn't something I would want to see asserts used on - it should have to be explicitly enabled - as passing in null would be legitimate API usage and having asserts defeats some of the purpose of cleaner and clearer error handling as you would still have to handle API usage to avoid calling with null so that debug builds work too. That to me is the wrong approach.
A set of compile time options to allow testing the behaviour doesn't hurt though - I just would not include it in a debug build.

What do you think about #7218?

I would like to see a build flag that let me disable NULL checks without turning on NDEBUG.

The votes in this issue were against removing NULL checks. Instead, they were pro adding an abort in addition to the NULL check in the debug version.

If you're going to convert all  NULL checks to a macro -- which is a good idea -- please make it easy to turn that into a no-op in production builds.

What I was suggesting was putting the if statement and return into the macro and allowing additional control at compile time.
So those who want a no-null-check-production build could have that and those that want a debug build without null-check asserts could also have that.
I.e. four options

compile in null checks in production (default)
compile in null checks in debug (default)
compile out null checks in production (extra flag to enable)
compile in null checks asserts in debug (extra flag to enable)

That would allow all options discussed.
But for code usage inside the library only the first two would be checked - as we with have null checks and the corresponding safety and cleanup and use those or we don't in my view. It makes the other two compile options useful for others application code mostly.

four options

Isn't that a bit overengineered? Or asking differntly: does it mean that since we don't manage to get to an agreement, we leave the agony of choice to the user?  ;-)

Keeping everyone happy comes at a cost.
And having debug builds assert but default defeats the point of the NULL checks allowing for cleaner error handling.
I.e. no more if (x!=NULL) {X_free(x); x=NULL; } or the non-null setting version which can lead to free memory reference. Or the missed cleanups will gotos.

What I was suggesting was putting the if statement and return into the macro

this variant is less readable. Also, there are more usages than just
    if (!ossl_assert(p != NULL))
        return 0;

I also saw
    if (!ossl_assert(p != NULL))
        goto error;

and
    if (!ossl_assert(p != NULL)) {
        /* do some error handling */
     }

I.e. no more if (x!=NULL) {X_free(x); x=NULL; }

If passing a  NULL pointer is expected usage, then there it is not a location where an assertion would be used. If not, then one still could have an assertion in debug code combined with cleanup in release code:
    if (ossl_is_null(x) {
        X_free(x);
        x=NULL;
    }

And the point of this change and the view on it is that passing NULL is permitted and allowed (we have it for some functions but not for all functions already). Once we make a decision on that it will be permitted API usage and some cleanup of error handling can be done.
That would mean no assert usage ever on the null checks - but there are some people that want to be able to check for that when working through error paths and trap it. I don't see the need for it myself - but I was noting there are actually four options - if we wanted to cover them all.
You would need multiple macros to cover the range of input parameter checking handling as you note - and I would also tend to move the input parameter checking around to get it up front and cleaner - and then there would be less variation if that was done.

@t-j-h said thusly re ossl_abort:

It isn't failing silently - it is returning an error code.

No.  It returns the inverted boolean result of the expression it's given.  That's not an error code.

Let's not get carried away, we're just contemplating a convenience macro for existing functions that tolerate but error-out on a NULL argument. If this gets much fancier, we're doing too much...
Tim's four options are perhaps one or two too many, but at they do seem to cover all the bases.

I would be okay with just always compiled in checks. Adding assert options defeats the purpose given code must be tested with the checks in place and will take advantage of those checks otherwise they serve little point.
But I did want everyone to see that there are actually four options not two and the assert-in-debug is the wrong approach.

My preference would be to have full checks on exported interfaces,
and if the interface pushes error codes on some error conditions, these
null-parameter checks should also do so.
What I don't like is debug-code behave nice, and report an error, via
an assertion, and the release code have a run-away recursion.

@t-j-h in my opinion Matts proposal boils down to a compromise between two opposing philosophies:

Never check NULL pointers: It's better to crash immediately instead of relying on the user to handle the returned error properly.
Always check NULL pointers and fail gracefully: Although there is a risk of undefined behaviour, it is better than being blamed for the users errors, just because we appear in the call stack of the crash dump.

The compromise is to crash in debug version (only), but handle the error gracefully in the release build. So it picks the best of both ways. And it is not like @bernd-edlinger fears that the error condition is unhandled in release builds.

And it is not like @bernd-edlinger fears that the error condition is unhandled in release builds.

I am referring to 6839a7a7f4973a3fc2f87b12664c26d524bef1f4
where an assertion stopped the recursion from happening in in debug builds.
So if we the debug build aborts in an assertion we have basically a completely
untested error handling after the assertion.

I am referring to 6839a7a

Ok, I see. But in that case the original version had only the assert() and not the regular error return. That's why the release version could crash with a stack overflow.

OMC: Referring to this OTC

OTC Decision: The NULL checks should be kept


Parse table with booleans and numbers

This PR allows to convert an arbitrary table to a string without losing type information.
Booleans are codified with special ASCII values and numeric values are codified as a string.
When a string value needs to be decodified, it will try to decode as a number first. If it's not a numeric value then it will be treated as a string.
The only caveat is that strings that represent numeric values would be mistakenly assigned to numeric values

@JavierLealCortes Just wanted to say thanks for this PR, I think it's exactly what I need for my project!

Sorry, just saw this. I'm hesitant about the caveat. Do you think there's any workaround that isn't too complicated to avoid casting strings to numbers? I'll admit my use case was for serializing string tables.

You could probably just remove the call to parse() on the right-hand side of the assignment? (Also, is it necessary to use tonum() to access the table key anyway? I think Lua will coerce the type for you in that case?)
imo, as written, it's not a big caveat since tonum() returns falsy for anything w a non-numeric char and parse() would proceed to return the NaN value as a string. The only time I can think of that it would cause an issue would be if you tried to concatenate a number from the table without using tostr() on it first, which seems like an edge-case since I think you'd generally want/expect to treat any value containing only numeric chars as a number rather than a string?

btw, this branch was battle-tested through 90% of development for Downstream Dream. In the end, I wrote my own alternative that uses less characters to serialize the table to stay under the compressed limit (at the cost of more tokens to deserialize), but I had no issues with this branch otherwise!


fix(PageSection): Adding margin-top to footer of PageSection

Overview
This just adds a marginTop={16} to the footer of the PageSection component so it's not right up against the content of the section.
This is to support the following design for the Profiles page, but should be applicable to every usecase:

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: ABC-123
[x] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

📬Published Alpha Packages:@codecademy/gamut-kit@0.3.53-alpha.85b38b.0@codecademy/gamut-labs@14.4.5-alpha.85b38b.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://608861a43253cd00b17ba8fb--gamut-preview.netlify.appDeploy Logs


Added get_url to handle authentication

Fixes https://github.com/github/orchestrator/issues/680

Also, can you please take into account the change in https://github.com/github/orchestrator/pull/675?

# ./orchestrator-client -b orchestrator:xxx -c all-instances
<IP_ADDRESS>:3306

# ORCHESTRATOR_AUTH_USER=orchestrator ORCHESTRATOR_AUTH_PASSWORD=xxx ./orchestrator-client -c all-instances
<IP_ADDRESS>:3306

# ./orchestrator-client -c all-instances
parse error: Invalid numeric literal at line 1, column 4
^C^

# edit /etc/profile.d/orchestrator-client.sh

# cut -f1 -d= /etc/profile.d/orchestrator-client.sh
ORCHESTRATOR_API

# ./orchestrator-client -c all-instances
<IP_ADDRESS>:3306

# ./orchestrator-client -c all-instances
orchestrator-client[26762]: Cannot access orchestrator at http://localhost:3000/api.  Check ORCHESTRATOR_API is configured correctly and orchestrator is running

The value of curl_auth_params is tested against 401 Unauthorized and fails before attempting to execute curl ... instead of erroring on jq

@shlomi-noach OK now?

@cezmunsta this will unfortunately fail when orchestrator_api contains multiple entries, as per https://github.com/github/orchestrator/pull/681/files#diff-79f20b792813786c70a731862c24143eL157

As @cezmunsta clarified elsewhere, the check will not fail when orchestrator_api contains multiple entries.


Allow JSON initialization to run multiple times.

When initializing in main(), we callusingTypeRegistry(), which throws IllegalArgumentException if called a second time.
However we may in fact call main multiple times, e.g., if running kythe in a nailgun server.
This change works around the problem by short-circuiting the usingTypeRegistry() call if the same type registry is already in use. It will trigger the same IllegalArgumentException however, if you try to change the type registry to some other one.

All javatests pass. google-java-format run on the changes.


Improve UX of CLI output

For UX reasons, I prefer CLI output to be as silent as possible by default, otherwise it risks a (new) user to miss important output as it gets clouded by noise. Case in point is that multiple of my co-workers have thus far asked at which port the dev-server runs, even though it’s stated right there in the output.
To that end, I would propose the following design (which has worked really well for our users of CocoaPods):

By default (which would correspond to a log: "info" option), only log files that were actually compiled and the entry point they belong to. Note that I included the full URL of the dev-server in the examples, because some terminals allow users to click links.
Example:
$ node fuse.js
🚀 Server launched at http://localhost:4444

[23:48:21] Built ./assets/reaction-force.js
└── default (3 files,  6.5 kB)
      index.js
      provider.js
      preview.js

When passed the log: "silent" option, only log that a file was rebuilt, which is the minimum required output for the user to know that their change has been picked up.
Example:
$ node fuse.js
🚀 Server launched at http://localhost:4444

[23:48:21] Built ./assets/reaction-force.js

When passed the log: "verbose" option, log all the details as is done currently, which is meant to debug, e.g. check if certain files are indeed cached.
Example:
$ node fuse.js
🚀 Server launched at http://localhost:4444

[23:48:21] Built ./assets/reaction-force.js
└── default (3 files,  6.5 kB)
      index.js
      provider.js
      preview.js
└──<EMAIL_ADDRESS>(0 files) 69.6 kB
└──<EMAIL_ADDRESS>(0 files) 7.2 kB
└──<EMAIL_ADDRESS>(0 files) 48 kB
└──<EMAIL_ADDRESS>(0 files) 5.8 kB
└──<EMAIL_ADDRESS>(0 files) 3.2 kB
└──<EMAIL_ADDRESS>(0 files) 119.6 kB
└──<EMAIL_ADDRESS>(0 files) 2.2 kB
└──<EMAIL_ADDRESS>(0 files) 33.3 kB
└──<EMAIL_ADDRESS>(0 files) 3 kB
└──<EMAIL_ADDRESS>(0 files) 1 kB
└──<EMAIL_ADDRESS>(0 files) 1.6 kB
└──<EMAIL_ADDRESS>(0 files) 20.3 kB
└──<EMAIL_ADDRESS>(0 files) 1.7 kB
└──<EMAIL_ADDRESS>(0 files) 1.4 kB
└──<EMAIL_ADDRESS>(0 files) 6.6 kB
└──<EMAIL_ADDRESS>(0 files) 4 kB
└──<EMAIL_ADDRESS>(0 files) 5.8 kB
└──<EMAIL_ADDRESS>(0 files) 5.2 kB
└──<EMAIL_ADDRESS>(0 files) 106 kB
└──<EMAIL_ADDRESS>(0 files) 4.2 kB
└──<EMAIL_ADDRESS>(0 files) 139.3 kB
└──<EMAIL_ADDRESS>(0 files) 13.1 kB
└──<EMAIL_ADDRESS>(0 files) 2.9 kB
└──<EMAIL_ADDRESS>(0 files) 9.8 kB
└──<EMAIL_ADDRESS>(0 files) 550.2 kB
└──<EMAIL_ADDRESS>(0 files) 22.4 kB
└──<EMAIL_ADDRESS>(0 files) 9.4 kB
└──<EMAIL_ADDRESS>(0 files) 2.7 kB
└──<EMAIL_ADDRESS>(0 files) 670 Bytes
└──<EMAIL_ADDRESS>(0 files) 71.1 kB
└──<EMAIL_ADDRESS>(0 files) 15.2 kB
└──<EMAIL_ADDRESS>(0 files) 1 kB
└──<EMAIL_ADDRESS>(0 files) 16.5 kB
└──<EMAIL_ADDRESS>(0 files) 1.7 kB
└──<EMAIL_ADDRESS>(0 files) 7.9 kB
└──<EMAIL_ADDRESS>(0 files) 1.3 kB
└──<EMAIL_ADDRESS>(0 files) 23.9 kB
└──<EMAIL_ADDRESS>(0 files) 16.4 kB
└──<EMAIL_ADDRESS>(0 files) 2.5 kB
└──<EMAIL_ADDRESS>(0 files) 4.4 kB
└──<EMAIL_ADDRESS>(0 files) 4.4 kB
└──<EMAIL_ADDRESS>(0 files) 1.1 kB

    Bundle
    Size: 1.3 MB
    Time: 264ms

Case in point is that multiple of my co-workers have thus far asked at which port the dev-server runs, even though it’s stated right there in the output.

Maybe it should be put at the bottom instead?

For reference, Create-React-App v2 has an excellent CLI UX.

@magnushiie this is wip, filelist can be filtered out currently

sorry @magnushiie I am sure, @aretecode meant @mquandalle

FuseBox v4 Major Upgrade
As of today, the latest major version of FuseBox v4 is available in fuse-box@next. FuseBox has undergone a full re-write from scratch, learning from its mistakes in the previous versions.
There are a lot of improvements, speed and config wise.
Get started here
We are still working on the documentation and polishing before the major release. We are getting very close. And we need help testing.
npm install fuse-box@next

Most of the issues that I am closing have been resolved, however, if you find that your issue is still relevant in v4 don't hesitate to re-open or (better) create a new one with v4 configuration.


Consitent style in the examples

New examples look great, and it's not a big issue more a suggestion!
However example basic.py is just scripted in contrast to load_pytorch with the nice
def main():
   ...
if __name__ == "__main__":
   main()

Yep, totally agree @Anselmoo ! Let me quickly change it.


refactor: switch from enzyme to react-testing-lib

Changes:

use jest as test runner instead of ava
switch from enzyme to react-testing-library

also quick favour can you add hacktoberfest to the repository topics.
you can also check it out if you want to register: https://hacktoberfest.digitalocean.com/

@lwhiteley the hacktoberfest topic is added

I don't know much about jest vs ava but the changes look safe to me. Feel free to squash and merge :+1:

sorry the reason for the change is really to use react-testing library which works better with jest.
it currently handles testing hooks better than enzyme and is more widely used now


Trying to use different bundle id

Hi,
Just installed the latest Fastlane.
First time I (try to) use sigh, so I might be doing something clumsy ;-)
I need to sign an IPA. The IPA has a bundle ID, but I need to change it.
I have the mobileprovisioning file with the correct bundle id sitting beside the app. (same dir)
When I look in the doc on github, I see:
fastlane sigh -a com.krausefx.app -u username

So I might be able to change the bundle id using the -a argument.
However, when I type:
fastlane sigh resign -a com.newDomain.app

I get:
No provisioning profile for nested application:
./floatsignTemp/Payload/Jabber.app/PlugIns/CallIntent.appex' with bundle identifier 'com.OldDomain.app'
Use the -p option (example: -p com.example.app=xxxx.mobileprovision)

So I tried:
fastlane sigh resign -a com.newDomain.app -p mb.mobileprovision=com.newDomain.app

with the same result.
When there is only one mobileprofisioning file in the dir, perhaps the script can get the bundle id from the script and ask the user if that is the proper id?
Thanks!
Wouter

-a only works for sigh itself, not for resigning. I'm not sure how you can solve that for resign

Somewhere we should call:
/usr/libexec/PlistBuddy -c "Set:CFBundleIdentifier $BUNDLE" "extracted/Payload/$APPLICATION/Info.plist"
after the API is unzipped ...

@Yourney I believe fastlane sigh resign is only meant to resign an IPA with a new provisioning profile with the same bundle id. "resigning" is only a subset of the tasks in the whole process of "changing bundle identifier" in an IPA.
I've recently went through this process for a project and changing a bundle identifier can get really complex if an app has a watch app or any other extensions included in it. There can be one to many bundle identifiers in Info.plists that would need to get changed and get resigned. Something like this should be a different action completely, in my opinion 😊  I don't think anything like this exists yet as an action so if you want to make it that would be great 👌

@Yourney  you should not change the bundle id of a already signed - resign is just for replacing provision profiles.
we have a setup where we publish ipa's to a testing company. to build an ipa for them we do it like this:
lane :testbirds do
  before_build
  update_app_identifier(
    app_identifier: 'com.testbirds.app4442',
    plist_path: 'FiveXFive/Supporting Files/fivexfive-Info.plist'
  )
  update_info_plist(
    plist_path: 'FiveXFive/Supporting Files/fivexfive-Info.plist',
    display_name: 'Willi-Bird'
  )
  gym(scheme: $self_scheme,
      clean: false,
      workspace: $self_workspace,
      silent: true,
      buildlog_path: 'fastlane/logs',
      output_name: 'testbirds.ipa',
      use_legacy_build_api: true,
      provisioning_profile_path: 'testbirds.mobileprovision',
      codesigning_identity: 'iPhone Distribution: Testbirds GmbH')
end

Changing Display-Name, bundleId.
using their provided Certs/Prov.Profs.
for sure if you use app-extensions, like todayview, watch and so on, you would require to change those bundle-id's too.

@hjanuschka I believe we do have to change the bundle id.
We receive an IPA with Watch app and a plugin (both signed) with the bundle id that the developer used for testing. We need the app (and Watch app) in our IPA with our own bundle id.
Therefore, we need to resign the Watch app and plugin with the proper bundle-id and the proper mobileprovisioning profile. And then package the App with the Watch app and plugin and Sign that.
Thanks for the script-snippet. I will look into that.
I am not a scripting hero, I am happy to be able call the fast lane resign command ;-)
Regards,
Wouter

@Yourney yeah in that case, your proposed solution seems atleast worth a try. unzipping it - editing plist files - and then after bundle id's have changed,zip it again, name it .ipa 👍  and  run resign.
for extensions its like:
(in fastfile, not sure on how to pass it on commandline to sigh)
resign(
  ipa: "path/to/ipa", # can omit if using the `ipa` action
  signing_identity: "iPhone Distribution: Luka Mirosevic<PHONE_NUMBER>)",
  provisioning_profile: {
    "com.example.awesome-app" => "path/to/profile",
    "com.example.awesome-app.app-extension" => "path/to/app-extension/profile"
  }
)

as seen in docs: https://docs.fastlane.tools/actions/#resign

@hjanuschka Yeah, I'd like to do that, but how do I resign the individual Watch extension and Plugin?
It seems like there can be some sort of recursive element in a script running through all extensions and signing them individually before signing the whole IPA.
Wouter

in the prev. comment you specify the variious bundle id's with the matching prov.prof.

I see an example:
resign(
ipa: "path/to/ipa", # can omit if using the ipa action
signing_identity: "iPhone Distribution: Luka Mirosevic<PHONE_NUMBER>)",
provisioning_profile: {
"com.example.awesome-app" => "path/to/profile",
"com.example.awesome-app.app-extension" => "path/to/app-extension/profile"
}
)
I will see if I can create the proper command for my app ;-)
Thanks for pointing me to te docs!
 It is not a bash command for the Terminal.
Should I make some sort of script?

put it in a file fastlane/Fastfile

lane :do_resign do
resign(
  ipa: "path/to/ipa", # can omit if using the `ipa` action
  signing_identity: "iPhone Distribution: Luka Mirosevic<PHONE_NUMBER>)",
  provisioning_profile: {
    "com.example.awesome-app" => "path/to/profile",
    "com.example.awesome-app.app-extension" => "path/to/app-extension/profile"
  }
)
end

and run it with fastlane do_resign

Yeah! That is perfect!
The command is executed!
Now I must fix some errors I get about entitlements. and conflicting mobileprovisioning files :-(
Thanks for your help guys!!!
Wouter

Can I specify an entitlements file in that command?
Regards,
Wouter

there are those 2 options: entitlements  and use_app_entitlements
not sure how to use.
you could run fastlane action resign to get a help output

Thanks for the solid advice, @hjanuschka! 👍


Add Solutions for Array Questions

Navigate to Basic of Programming/Arrays/QuestionList.md and add solutions to each Question by adding folders with Question Names and there solution in any of the language listed in Array Directory. The flow should look like
-->01 Reverse the Array(Name of folder)
------->Sol.cpp
------->sol.java
------->sol.py

Please assign (Move all the negative elements to one side of the array) ques to me

@yashi12 Go Ahead Yashi add your contribution as instructed

@YABHAKRITI added a PR (#44) , plz review and merge it, Thankyou!

Solved 2 array related questions in java/python. PR requested (#43 #45 #46 ). Please review.

Congratulations your PR(s) has been merged!! @darshita-kumar @yashi12

hey! @YABHAKRITI  plz assign to me. Thank you in advance.

Hi I am interested in submitting solutions in C++. Please assign to me

Can you assign me this please @YABHAKRITI its my first time contribution please


Update AndroidManifest.xml

As a library, you don't need the application object. It causes build issues for us.

Hi @bkhall, this is my first ever pull request!
I removed the  line locally as you suggested and tested the app, seems to be working just fine. But I would like to understand further what is the build issue that you are facing? This is my first library, so there's a lot of things I don't know yet. Will be great if you can explain or send the stack trace.

Hi @tingyik90
I think it caused conflicts for the android apps built. Your setting will update their existing application name using the value as in https://github.com/tingyik90/snackprogressbar/blob/master/lib/src/main/res/values/strings.xml.
Further details may refer to: https://stackoverflow.com/questions/6842112/change-application-name-and-label. :)

Hi @tingyik90
I think it caused conflicts for the android apps built. Your setting will update their existing application name using the value as in https://github.com/tingyik90/snackprogressbar/blob/master/lib/src/main/res/values/strings.xml.
Further details may refer to https://stackoverflow.com/questions/6842112/change-application-name-and-label. :)

Android studio will make an attempt to merge the manifests from all libraries into the final application manifest.
A library can use this fact to declare in its own manifest, the things that it needs to operate. You can define permissions you may need, activities, services, etc and those will be added to the final application.
In your case, you had allowBackup set to true where my own app has it set to false, so there was a conflict, forcing me to add override statements. A library shouldn't have this set ever.
But more generally, since your library does not need extra permissions and does not have its own activities and services, the entire application object in the manifest is unnecessary.

@bkhall, thank you for the explanation! I have merged the commit.


help

Make sure your BIOS is configured correctly, your SSD is supported, and USB mapping is properly set up


Add support for asynchronous callbacks

Is there currently any plan to add support for watches on the various types in consul?
Currently have the need to watch key and or keyprefix for update/creation/delete.  I'm willing to help looking at how to add this.  I have previously used the java support for this behavior from the orbitz consul-client.

AFAIK from HTTP API perspective, watches are done via blocking queries. Ppconsul already supports blocking queries although in a quite limited way.

Apologies, my initial comment on this issue was not clear and I am still learning all the capabilities of this library.  I see from the README and status markdown file that this blocking query is actually there.  I was more referring to an enhancements such as you refer to with capabilities for async callbacks, background polling, etc.
For example, an application wanting to watch for all updates on a key, prefix, etc and then be notified with the value that has changed.  Maybe a mechanism to map watch items to registered observers and then background a query that polls and reschedules watch items?

When is this enhancement planned ?. Can you please update on the same.

@bkannadassan it’s not planned yet. The problem is that there is no standard mechanism in C++ to implement it and regardless of the way I chose there will be projects that can’t integrate with it smoothly.
I don’t want to write event based engine by myself thus I need to either use some framework like Boost.Asio or allow user to integrate Ppconsul with an event engine they use.
I’m talking about Boost.Asio for particular reasons: it’s widely used and I’ve already build a lot of successful projects with it. It’s flexible enough to allow Ppconsul to be integrated into any project that’s not based on Boost.Asio for a cost of one extra thread that will handle Ppconsul IO.
I’d like to hear how ppconsul users would like to use asynchronous callbacks and what their application uses as event engine so I can think about providing the best integration experience.

In a project that I am using ppconsul we have developed our own simple event engine built on top of ppconsul that is loosely based on ideas of Flux and Redux from the javascript world.  It operates by providing a abstract base State that can be extended and there are backend dispatcher threads that interfaces with the ppconsul::kv to handle making any updates to the state via provided Reducer functions.
It basically works like this:

Create a UserState object that models the data contained at a consul kv endpoint.
Create a UserReducer function that maps the json body to the state entries
Call a registerEndpoint("/some/consul/endpoint", UserState, UserReduer) method that will create the dispatcher thread and always keep the UserState up to date with what is current in consul.
Additionally we have supported a registerNotification(std::string &endpoint, std::function<void(std::string)> cb that can be used to register observers in case an action for a state update needs to be taken.  This call will take place on its own separate thread and the raw json string is passed so any synchronization is expected to be handled by the application.

However, there are some caveats to this initial approach 1) Every registerEndpoint call creates its own independent dispatcher thread and ppconsul::kv object which is maybe not the best use of resources if there are a large number of states, and 2) c++ does not provide a way (that I know about) to enforce an immutability of the object by the application consuming the state.  The State classes define modifiers because the Reducers need to use them, but the application code should not be using the modifiers directly.
I would be willing to investigate using boost.asio and helping with this issue.

The Apache Mesos project has it's own custom library for dealing with asynchronicity: https://github.com/apache/mesos/tree/master/3rdparty/libprocess
The ideal integration for us would allow us to implement one or more interfaces using our async library, and pass those implementation to ppconsul for it to use. Off the top of my head, the operations we would provide implementations for:

Schedule a timer
Perform an async io operation (accept, connect, read, write)
Create an "executor" that can have work scheduled to it

These would be straightforward for us to implement and pass into ppconsul, and it would then not need any of its own threads nor would it need to block a caller's thread. We use Futures but we can wire those up ourselves on top of callbacks that ppconsul invokes.
I would also suspect that many users don't care about having multiple threadpools and will want some default implementation that they can pass in, like a threadpool + Boost.Asio implementation.
@oliora asynchronous library composition is an interesting area, would love to hear your thoughts!

Ppconsul uses libcurl easy API which is blocking so it’s not possible to make Ppconsul truly asynchronous (i.e. not blocking the execution thread for the request time) without complete rewrite of the network part.
Otherwise, Ppconsul can only be changed to use a thread pool under the hood (either internal or passed from outside). This will still give some benefit for the user perhaps.
It’s an interesting idea to have async library abstracted via an interface but in reality I don’t think this gonna work. Many users want ppconsul as a ready to use solution not a building block thus ppconsul has to provide its own networking implementation anyway. Also it may not be feasible to come up with interface for async calls that still allows to use different libraries effectively. I’m leaning more toward using boost.asio + boost.beast and leave it up to users to integrate it into their event loop. Worst case they will run one extra thread for ppconsul and dispatch completion events from there to their own event loop.

I've seen a bunch of Rust projects which are runtime independent, i.e, you bring in your own runtime (e.g., event loop).
libprocess is certainly one approach here, as is #include <future> with std::async. If you're willing to up the C++ standard requirements, checkout http://stlab.cc/libraries/concurrency/index.html which looks a lot closer to the Rust API (FWIW).
I'd still hesitate to include boost as a dependency, unless it's clear that the libraries are header only or will be included in the next C++ standard. Boost is heavy!

One of the few good references I've found on the I/O free library idea is here:
https://sans-io.readthedocs.io/

Ppconsul uses libcurl easy API which is blocking so it’s not possible to make Ppconsul truly asynchronous (i.e. not blocking the execution thread for the request time) without complete rewrite of the network part.

@oliora yeah, what I had suggested implies ppconsul would use a Sans-I/O style HTTP library (for example, the Sans-IO page links to a python implementation) composed with the user provided I/O library. I'm not sure if there are some good sans-I/O style HTTP libraries in C/C++. libcurl does have an async API and from the looks of the examples, it seems like it does let you drive the I/O. In this example, you need to do the polling your own way, and it will perform the non blocking reads/writes when you tell it to:
https://curl.haxx.se/libcurl/c/curl_multi_perform.html

@bmahler which async io library do you use in your projects?

I mainly work on Apache Mesos and it uses libprocess. It's really only used by Mesos.

Many users want ppconsul as a ready to use solution not a building block thus ppconsul has to provide its own networking implementation anyway.

Right, I think you would want one or more default implementations available to users if you were to go this route (e.g. thread pool + libev + libcurl async API, or some other implementation combo). I noted this in my earlier message.

@SamuelMarks Do you have any links?

Sure, here's a good example: https://github.com/sozu-proxy/lapin


Replies not coming through

I may be hitting the boundaries of my cheap shared host (or particular setup) here, but I keep getting a User <db_user> already has more than 'max_user_connections' active connections whenever I am supposed to receive a reply.
Is there anything particularly "resource- or database-heavy" about dealing with comments? Most other functions seem to work OK.
I could probably do more logging to find out (or move to a different server).

The access logs show nothing off.
<IP_ADDRESS> - - [16/Jun/2023:11:02:54 +0200] "POST /wp-json/activitypub/1.0/users/1/inbox HTTP/1.1" 202 687 "-" "http.rb/5.1.1 (Mastodon/4.1.2; +https://indieweb.social/)"
I suspect if a DB error occurs WP just "dies" so kind of weird that a 202 is returned rather than a 5xx error.

 This is interesting.

I was using the Block List Updater plugin to keep the Disallowed comment keys "up-to-date." Seems it marks AP replies as spam and immediately trashes them. My bad.


Move all output to the io used to report

This moves all output in Minitest::Display to use io for puts and print.
This allows whatever is reporting to define where to output.

:+1:


Swagger rendering issue with ampersand in xml

Version : 4.01 Swashbuckle.AspNetCore
below is how & (URL and query string) is displayed in XML in response object
google.com?orderID =54&operation=Edit&isOrderNow=False

Need more info = please provide the expected result


Extraction method

Hello,
I'm looking for a way to make Aleapp work,
But I'm stuck,
I think my way of extracting data is not the right one, I tested with Andriller, magnet, avilla, but no way to get the data in a report.
Which method should I use to make Aleapp work?
I'm well aware that this isn't an option offered by the tool, but I'm a bit stuck.
Best regards,

What sort of format is the extraction in?

Can you send a screenshot of the folders? What tool was used to acquire? It's hard to diagnose without further details

It doesn't currently support those formats directly, the parsers are specific on paths (most look for full file system style extraction paths)

I understand perfectly,
But the question now is, how do you get an extraction that works with Aleapp without using Ufed or Xry?
Do you have any advice?

ALEAPP parsers are designed for full file system extractions. We will be
happy to merge any artifacts developed to support Android backup
extractions.
One way to get a full file system extraction without paid tools is to
Google how root the device and use adb to copy the full file system out.
On Fri, Jul 26, 2024, 6:05 PM Vaeth404 @.***> wrote:

I understand perfectly,
But the question now is, how do you get an extraction that works with
Aleapp without using Ufed or Xry?
Do you have any advice?
—
Reply to this email directly, view it on GitHub
https://github.com/abrignoni/ALEAPP/issues/512#issuecomment-2252037659,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG3DPCZEATW6BMYRWMWUU5DZOHRLHAVCNFSM6AAAAABLMXBLQSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJSGAZTONRVHE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Got it!
I'll give it a try and get back to you ;)

Got it!
I'll give it a try and get back to you ;)
Well, I tried it with :
adb.exe backup -apk -shared -all -f ./backup.ab
Which I transformed into .tar with :
java -jar abe.jar unpack backup.ab backup.tar
This doesn't work either
How do you extract from Android?


Update microsoft-defender-endpoint-ios.md

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks


Comparing rust IDEs/editor

Comparing rust IDEs/editor
Proposed article introduction
The ability to control code is a crucial aspect of software development process. To work accurately and save development time, many programmers require efficient code editing and debugging tools. IDE (Integrated Development Environment) help developers to achieve this. An integrated development environment (IDE) is a combination of a source code editor, a code debugger, code completion, a build automation tool, a compiler, and other features into a single software application.
In this article we'll look at top 10 rust IDEs/ editors along with their features  and limitations
Key takeaways
Reader will know to 10 IDEs/editor to use as rust developers.
Know the features and limitations  of each IDE/editor.
How to use some special features some of the IDEs/editor.

@popoolatopzy
Closing due to inactivity - if you'd like to continue working on the topic. Please let us know.


Added maxiter option into golden search.

The testing code should include some examples that demonstrate the need for a maxiter argument - for example, the function in bug #6476 or non-achievable tolerance settings. (Actually I suspect that all those examples can and should be fixed by other means; maxiter in this algorithm should just be for the impatient.)

The testing code should include some examples that demonstrate the need for a maxiter argument - for example, the function in bug #6476 or non-achievable tolerance settings.

Is it fine to run tests that in case of failure might run infinitely? I mean that it's fine if test is passing, but on the other hand any bug in the code can cause that test will be running infinitely.

Actually I suspect that all those examples can and should be fixed by other means

What modification do you suggest?

The testing code should include some examples that demonstrate the need for a maxiter argument - for example, the function in bug #6476 or non-achievable tolerance settings.

Is it fine to run tests that in case of failure might run infinitely? I mean that it's fine if test is passing, but on the other hand any bug in the code can cause that test will be running infinitely.

I'd rather the tests hang than the delivered code hang.

Actually I suspect that all those examples can and should be fixed by other means

What modification do you suggest?

See the line comments, but you can detect that the interval is no longer changing (because there is no floatiing-point number between two of x1 x2 and x3).  This actually happens fairly rapidly when the minimum position is not at zero; tol should catch this, but as a user-supplied parameter, it can fail to. In fact, it's worth running some tests with tol=0 just to make sure that infinite loops do not occur. For normal situations, I believe that convergence is fast enough that tol=0 is actually a reasonable thing to ask (if it means "to machine accuracy").

@ev-br, it's now possible to force the travisCI tests to run again by going to the test page and clicking on the restart build button


[NFC] Build: format LLBuildManifestBuilder.swift

As more changes will be made to this file, let's keep the formatting changes separate. This only contains results of applying SwiftFormat to the file.

@swift-ci smoke test


Structure and extensible Extension

Project structure
In a previous PR, we've copied the modules from base into this repository.
In this PR, we order up those modules, structure them into a Gradle project, adjust build scripts, add CI configurations, and update the README with the info about the structure and purpose of the modules.
The business of extension
We endeavor to maintain language-specific Model Compilers separately from the common parts. However, we'd like to configure everything in one place. To achieve this goal, we're introducing a new mechanism for extending the McExtension.
Language-specific Model Compilers will provide extension types, so that the end-users could do the following config:
import io.spine.tools.mc.java.Java

modelCompiler {
    forLanguage<Java> {
        generateRejections = true
    }
}

Here, Java is the extension type provided by the Java Model Compiler.
This is not yet as fluent as the planned API, which involved Gradle's NamedDomainContainer integration. At this instant, I'm not sure it's feasible to create such an API. On the other hand, the proposed API seems sound enough, as well as understandable to users who view Gradle configuration as a script that it is, rather than a declarative temporally-uncoupled DSL that it tries to be.

@yuri-sergiichuk, PTAL again.

...  the proposed API seems sound enough ...

@dmdashenkov, this API looks good. I don't think we need to go further having java, js, and dart as first class DSL citizens, as we discussed. At least, I don't see it as a priority for v2.0.
Should we see the need for more polished DSL, we'd be able to use it as aliases for the API you implemented in this PR.
@armiol, FYI.


Update tutorial-yii-integration.md

Detailed instruction to use both versions or gradually move from yii1 to yii2

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Tests pass?
✔

Fixed issues
comma-separated list of tickets # fixed by the PR, if any

There is a section about it: https://www.yiiframework.com/doc/guide/2.0/en/intro-upgrade-from-v1
It could be expanded. An external link isn't a good idea.

An external link isn't a good idea

I agree with your statement

It could be expanded.

This link is not only about the doc how to move, but it also has the library to run both versions simultaneously. I was able to develop this library with lots of effort, chich made may able to understand the entire architecture of both versions. This library will save lots of time for others.

That's fine. How about posting info about it to https://yiifeed.com/ and https://www.yiiframework.com/wiki?

Ok
I'll do the same way


pin pydantic<2 in napari

Checklist

[ ] Ran python show_diff.py and posted the output as part of the PR.
[X] Modifications won't affect packages built in the future.

Comes from https://github.com/conda-forge/napari-feedstock/issues/49 and https://github.com/conda-forge/napari-feedstock/pull/50

Thank you @ocefpaf ❤ !