Normative: Freeze the return object and array

Address issue #62

@bathos

@FrankYFTang sorry I hadn’t caught the prior discussion. Freezing the objects makes sense to me. I may be missing something though because it appears orthogonal to issue #62, which was about preserving Object.is(a.b, a.b) === true semantics for intrinsic accessors. That will still be false with this change, right? Or is this “part 1” or something?

that is the problem I have. I really do not want to keep a copy of the object cached somewhere for the object because that will require the locale to increase at least a pointer to that. Maybe a better solution is just to change these getter to function?

Maybe a better solution is just to change these getter to function?

That has the benefit of consistency with the direction that web platform APIs have been moving with things like this, favoring methods that return “plain” objects and arrays with each invocation. IIUC that shift has been motivated by the same interest in reducing the need for stateful bookkeeping without introducing confusing [[Get]] semantics.

Discuss this in the 2022-11-30 TC39 and many people prefer we move to change from getter to function. So I will close this PR and open a new one which change the getters to functions.


placement of "sperm motility"

Hi,
I am looking at "sperm motility", which is an is_a child of "cell motility".
I think "sperm motility" should be moved down to be an is_a child of "ciliary cell motility" since the sperm flagellum is a specialized type of cilium. Then, the "regulation of sperm motility" terms should be be made types of the more general "regulation of ciliary cell motility" terms.
I also see that there is a term for "cilium movement involved in cell motility", but I don't see a parallel term for "sperm flagellum movement involved in sperm motility". It seems potentially useful given that there are a number of specialized proteins present in sperm flagella, but not in other cilia that contribute to the extreme needs of the sperm flagellum. Of course, it might be worth considering the relations to terms like "sperm capacitation" as well before making changes based on this last suggestion.
thanks,
-Karen
Reported by: krchristie
Original Ticket: geneontology/ontology-requests/10719

In an email discussion, Paola has pointed out that the cross-product definition of “sperm motility” is to a CL term that is a SubClassOf “ciliated cell”. Thus the logical definition of the term “sperm motility” is inconsistent with its position in the ontology.
http://bioportal.bioontology.org/ontologies/CL?p=classes&conceptid=CL%3A0000019
As David H said earlier, C. elegans has amoeboid sperm, so within actively annotated model organisms, we have two types of sperm motility:

amoeboid sperm motility
flagellated sperm motility

The existing logical definition would be correct for "flagellated sperm motility" and such a term looks like it should be a child of this term: "cilium-dependent cell motility (GO:0060285)”.
In the recent email discussion involving John Van Dam, it was noted that the sperm of angiosperms are not flagellated. However, from Dresselhaus et al. 2016. Fertilization Mechanisms in Flowering Plants (PMID:26859271), it looks like the sperm of angiosperms are not considered to be motile cells, so possibly don't need a type of "sperm motility" term.
-Karen
@paolaroncaglia
@JohnvanDam
@tberardini

Yep, no motile sperms in angiosperms.
However, gymnosperms have flagellated and motile sperm cells.  http://www.ncbi.nlm.nih.gov/pubmed/16736257

Thanks Tanya, I think that the flagellated motile sperm of gymnosperms would be covered by a general term for "flagellated sperm motility" though. I'm not aware of anything that would necessitate a special term here.

Yes, I thought that a 'flagellated sperm motility' term would work for gymnosperms too.  Cool biology, eh?

Hi Paola,
While you're working on cilia GH tickets, would you see if you can take a look and possibly finish this one too. thanks,
-Karen
@paolaroncaglia

Hi @krchristie ,
Yes, I'm hoping to work more on ciliary processes this week, and the motility branch is in my to-do list :-)
Cheers,
Paola.

Thanks @paolaroncaglia !!

https://github.com/geneontology/go-ontology/issues/10898

I have reviewed this thread. Looking at things more closely, CL:0000019 ’sperm’ is a descendant of ‘animal cell’, see http://www.ontobee.org/ontology/CL?iri=http://purl.obolibrary.org/obo/CL_0000019. So, even though CL:0000019 ’sperm’ is not formally taxon-restricted in CL (…neither is ‘animal cell’!), I think it’s safe to say that CL:0000019 ’sperm’ refers strictly to animal sperm. Not to plant sperms, so that takes care of the whole angiosperms/gymnosperms stuff. :-) As for animals that have sperms that are not ciliated, such as C. elegans, that’s also taken care of, because CL:0000019 ’sperm’ is_a ‘ciliated cell’, which worm sperms clearly aren’t. (Note that ‘ciliated cell’ is formally linked to GO ‘cilium’.) Therefore, any GO term that cross-references CL:0000019 ’sperm’, including ‘sperm motility’, cannot be used for plants, nor for any non-plant species that doesn’t have ciliated sperms.
This said, the pending issues are:

How can we make the above more explicit in GO?
In a previous email, Karen noted: “It seems clear to me that the existing term “sperm motility” is meant to refer to ciliated/flagellated sperm [correct], so we could change the name from “sperm motility” to “ciliated sperm motility”, and move it to be a child of this term: "cilium-dependent cell motility (GO:0060285)”.”. It seems that all ‘sperm’ terms in GO clearly refer to the same animal, ciliated sperm; ‘sperm part’ does so even formally, via part_of. Therefore, for consistency, I would not change the primary GO names of sperm-related classes, but I’d certainly add an exact synonym “ciliated sperm motility” to “sperm motility”. I will also edit its definition from “Any process involved in the controlled movement of a sperm cell.” to “Any process involved in the controlled movement of a ciliated animal sperm cell.”.
As for the placement, yes, I will move “sperm motility” under "cilium-dependent cell motility”.
I will also add a taxon rule: sperm motility only_in Metazoa.
Any objections?

It appears that current annotations to ‘sperm motility’ and descendants cover Caenorhabditis (haven’t checked other species yet). Those will need to move elsewhere. I’ll need to look into this further.

In her initial request, Karen asked for "sperm flagellum movement involved in sperm motility”. To this aim:
a) I’d create ‘sperm flagellum movement’ (is_a cilium movement, and mediated_by sperm flagellum - or perhaps has_participant or occurs_in - see https://github.com/geneontology/go-ontology/issues/10898)
b) Karen could request "sperm flagellum movement involved in sperm motility” via TG template.

Longer-term: we may want to look at ‘cell motility’ and revamp the entire branch based (more) on the different mechanisms of motility. See my (Chris’) comment on May 9, 2014.

I'm not sure I am completely comfortable with this. I believe some crustaceans also have sperm without flagella. It seems to me the CL term is too restrictive.

Argh...

@ukemi
We could certainly suggest to CL that they add the missing term, as long as we can provide them PMIDs or ISBNs to support it. I was just saying that the GO terms referencing CL 'sperm' actually mean 'ciliated animal sperm' blahblah.

Hi Paola,
I agree with David that it might be good if we could use a CL term that is less restrictive to Metazoa, but not because of crustaceans that have sperm without flagella, but because of gymnosperms that do have flagellated sperm. If it is possible to use a more general term that would allow for any flagellated/ciliated cell, I think that would be better. Basically, I think that the CL term xref	for "flagellated sperm motility" should	be to a term with as broad a taxonomic range as possible since the presence of cilia/flagella seems to be very ancient. However, if the CL doesn't go to a level that makes that possible, I am OK with a less general term, though at some point	in the future if GO expands its	mandate	for organismal coverage, we might	need to use a more general term.
I am also concerned about having this term mean "flagellated sperm motility", but NOT changing its name to say that since there are other kinds of sperm motility that do not involve flagella. I think this will lead to annotators using this term to annotate other kinds of sperm motility.  I think we need a general term for "sperm motility" and then under it terms for sperm motility that depend on different mechanisms, e.g. "flagellated sperm motility", "amoeboid sperm motility", perhaps others.
Basically, I think we need something like this:

sperm	motility
-- flagellated sperm motility
-- amoeboid sperm motility

It seems to me that the existing term for "sperm motility" refers to "flagellated sperm motility, based on its existing cross products. However, whether it is better for the existing term "sperm motility" to remain the top level sperm (to avoid making any current annotations incorrect) or to make it more specific based on its current cross-products is an open question that I don't feel strongly about.
-Karen

@krchristie suggestion sounds reasonable to me.  I agree that a more general 'sperm motility' parent term with child terms referring to the different mechanisms might be best.
It also seems that there may be some work to do on the CL wrt the different types of sperm and getting the parentage correct?

I like Karen's plan as well.

Thanks all. Then this becomes a question for CL first of all... I'm not sure what their bandwidth is at the moment, and what timeline this would imply. @cmungall , any idea? I can certainly create a ticket on their tracker, unless one of you would like to give it a shot.

Do proposed changes in GO really depend on CL? It seems that we could make the changes I'm proposing in GO without waiting for CL, using the existing CL reference for the xref of the "flagellated sperm motility" term for now and changing that later if/when CL provides a more general term.

That could do too, yes.
I'll come back to this hopefully tomorrow.

It sounds like there should be a ticket with two items should be opened in the CL tracker:

remove assumption that all sperm is ciliated
remove assumption that all sperm is animal

To start with, I opened a ticket in the CL tracker, feel free to subscribe:
https://github.com/obophenotype/cell-ontology/issues/437

Back to Karen’s comment
“I think we need a general term for "sperm motility" and then under it terms for sperm motility that depend on different mechanisms, e.g. "flagellated sperm motility", "amoeboid sperm motility", perhaps others.
Basically, I think we need something like this:

sperm motility
-- flagellated sperm motility
-- amoeboid sperm motility
It seems to me that the existing term for "sperm motility" refers to "flagellated sperm motility, based on its existing cross products. However, whether it is better for the existing term "sperm motility" to remain the top level sperm (to avoid making any current annotations incorrect) or to make it more specific based on its current cross-products is an open question that I don't feel strongly about.”

Thinking about the best strategy here, I’m looking at the manual experimental annotations to ‘sperm motility’ and its descendants, including regulation terms. There are 139, to 9 species:
Mus musculus
Drosophila melanogaster
Homo sapiens
Caenorhabditis elegans
Rattus norvegicus
Danio rerio
Coturnix coturnix japonica
Sus scrofa
Lytechinus variegatus
All have flagellated sperms except Caenorhabditis, which accounts for 7 annotations (6 WormBase + 1 UniProt).
Therefore, I will

rename and redefine the existing ’sperm motility’ as ‘flagellated sperm motility’ and retain its cross-reference to CL:0000019 ’sperm’

rename and redefine the existing triad of regulation terms for ’sperm motility’ accordingly

create a broad parent for ‘flagellated sperm motility’ (’sperm motility’) and a sibling (‘amoeboid sperm motility’)

add regulation terms for ‘amoeboid sperm motility’ (reg + pos reg only)

when ready, ask WormBase and UniProt to move Caenorhabditis annotations to the corresponding amoeboid terms (including regulation terms)

create ‘sperm flagellum movement’ (is_a cilium movement, and mediated_by sperm flagellum - or perhaps has_participant or occurs_in - see #10898). Karen could then request "sperm flagellum movement involved in flagellated sperm motility” via TG template.

if and when CL revises their ‘sperm’ branch, we may adjust/add cross-references to ‘sperm motility’ terms.

Longer-term: we may want to look at ‘cell motility’ and revamp the entire branch based (more) on the different mechanisms of motility. See my (Chris’) comment on May 9, 2014.

Hi @vanaukenk,
(Please refer to the checklist in my previous comment for a summary)
There are currently 6 WormBase annotations to ‘sperm motility’ and regulation thereof. (Note the terms have just been renamed to ‘flagellated sperm motility’ etc. but this name change may not have percolated yet.) Could you please rehouse those annotations to the new ‘amoeboid sperm motility’ terms below as appropriate?
GO:0097723 amoeboid sperm motility
GO:1905416 regulation of amoeboid sperm motility
GO:1905417 negative regulation of amoeboid sperm motility
GO:1905418 positive regulation of amoeboid sperm motility
Thanks,
Paola

Note for self: emailed GOA about the single UniProt annotation, here's my email text for reference:
"Could you please move the following annotation
UniProtKB    P34370    cil-1        GO:1902093    PMID:19781942 IMP        P    Inositol polyphosphate 5-phosphatase I5P2_CAEEL|cil-1|C50C3.7    protein    taxon:6239    20130712 UniProt
from the current term GO:1902093 'positive regulation of sperm motility'
to the new term GO:1905418 'positive regulation of amoeboid sperm motility'?"

Hi @krchristie ,
I just added GO:0097724 ‘sperm flagellum movement’ (is_a cilium movement), and renamed GO:0030317 as ‘flagellated sperm motility’.
If you wish, you may now request ‘sperm flagellum movement involved in flagellated sperm motility’ via TG template. Thanks.

Hi @cmungall and/or @dosumis,
(You may ignore the rest of this ticket)
Would it be appropriate to add the following links please:
cilium movement has_participant cilium
sperm flagellum movement has_participant sperm flagellum
cilium-dependent cell motility has_participant ciliated cell
Or would occurs_in or mediated_by be more correct?
Thanks!

Note for self:
The action items left to do for this ticket (see unchecked boxes in my comment dated June 23rd 2016) are of minor priority, so I’ll set this ticket to pending.

Thanks very much Paola for your work in resolving this issue. I've requested the ‘sperm flagellum movement involved in flagellated sperm motility’ term via TG template as you suggested.
thanks!!
-Karen

Note for self: Alice emailed me this morning:
"I tried to correct the annotation as you requested, but it looks like the changes have not be implemented in QuickGO and it does not recognize the new term. I'll try next week again."

Hi @cmungall  and @dosumis ,
May I please double-check something with you. For the cilia-GO project, I’m looking into creating links between cilium movement BP terms and ciliary CC terms/ciliated cell CL terms. In particular between

cilium movement and cilium
sperm flagellum movement and sperm flagellum

I’m leaning towards using has_agent CC, e.g. cilium movement has_agent cilium.
occurs_in CC seems reductive and incomplete (e.g. cilium movement occurs_in cilium), but would propagate annotations.
has_agent cilium/sperm flagellum AND occurs_in CL:0000064 ciliated cell/CL 0000019 sperm seems more complete, but CL is currently pointing to animal cells at the moment and not considering plants. So this option may create TPV currently and until CL expands to new taxa and retains the general classes (see https://github.com/obophenotype/cell-ontology/issues/437). Trying to create a link at a lower level between cilium-dependent cell motility and ciliated cell would also incur in the same problem.
Should I just add cilium movement/sperm flagellum movement has_agent cilium/sperm flagellum and stop there for now?
Thanks!

has_agent* is not wrong, so I don’t see a problem with adding.  We already have links in the other direction - via capable_of_part_of (this should probably be changed to capable_of).
I think we need to ditch the CL link for now as will remain too taxon restricted for the foreseeable future.

Chris:  we have some cleanup work to do here, merging with ‘mediated_by’.  Official label in RO not has_agent - revisit?

On Oct 6, 2016, at 8:43 AM, paolaroncaglia<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
Hi @cmungall https://github.com/cmungall and @dosumis https://github.com/dosumis ,
May I please double-check something with you. For the cilia-GO project, I’m looking into creating links between cilium movement BP terms and ciliary CC terms/ciliated cell CL terms. In particular between

cilium movement and cilium
sperm flagellum movement and sperm flagellum

I’m leaning towards using has_agent CC, e.g. cilium movement has_agent cilium.
occurs_in CC seems reductive and incomplete (e.g. cilium movement occurs_in cilium), but would propagate annotations.
has_agent cilium/sperm flagellum AND occurs_in CL:0000064 ciliated cell/CL 0000019 sperm seems more complete, but CL is currently pointing to animal cells at the moment and not considering plants. So this option may create TPV currently and until CL expands to new taxa and retains the general classes (see obophenotype/cell-ontology#437 https://github.com/obophenotype/cell-ontology/issues/437). Trying to create a link at a lower level between cilium-dependent cell motility and ciliated cell would also incur in the same problem.
Should I just add cilium movement/sperm flagellum movement has_agent cilium/sperm flagellum and stop there for now?
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/geneontology/go-ontology/issues/10905#issuecomment-251890013, or mute the thread https://github.com/notifications/unsubscribe-auth/AAG4x0gaM-GtL8rPmwS1OUhAfloHyJwlks5qxKaSgaJpZM4IbpTZ.

On 6 Oct 2016, at 1:37, David Osumi-Sutherland wrote:

Chris: we have some cleanup work to do here, merging with
‘mediated_by’. Official label in RO not has_agent - revisit?

+1

Is has_agent correct in the general case here?
Maybe this doesn't work for cilia, but think of a person riding a bicycle. The agent in the bicycle-movement process is the person, not the bicycle or the mereological sum of person+bike.
In this case the bicycle undergoes movement, and the movement is undergone_by bicycle. We don't have such a relation in RO, but there are a number of cases where this would be useful.

Hi @cmungall and @dosumis,
I agree with Chris - the real agent in the movement of the cilium is one of its parts and not the whole cilium (the molecular motor, which has ‘effectors’, again ciliary parts). So none of the available solutions look satisfactory at the moment, and it’s not a priority, so I’ll drop this.
David suggests changing
motile cilium capable of part of cilium movement
to
motile cilium capable of cilium movement
which sounds correct for this particular case, but I thought the use of capable of was reserved to MFs?

but I thought the use of capable of was reserved to MFs?

Nope.  If a structure is capable of carrying out a whole BP or MF then capable_of applies.  If it only capable of carry out a part then capable_of_part_of applies. (The relations are not GO specific: In VFB we use capable_of an capable_of_part_of to record the functions of neurons.)

Thanks @dosumis , I updated that link.

Only action item left:

[ ] Longer-term: we may want to look at ‘cell motility’ and revamp the entire branch based (more) on the different mechanisms of motility. See this comment:
https://github.com/geneontology/go-ontology/issues/10905#issuecomment-124912611

Now moved to https://github.com/geneontology/go-ontology/issues/12722. So, closing this one.


Add file modification

Motivation
Allow creating/updating/deleting a file.
Modification

Add update file.
Add delete file.
Extract modals to their own components.
Rename addNewFile endpoint to pushFileChanges.
Exclude slash / hotkey from input fields.
Support nested directories/files.

Result

npm run develop

Create a new file.

Note: slash / is now usable.

Navigate to the file content page to update/delete the file.

Display commitMessage's history.

New file now has initial prefixes.

New file now has initial prefixes.

This is so convenient. I like it!


Use api_key from temporary companies

It fixes the usage of process.env.API_KEY

There were the following issues with your Pull Request

Commit: 7f39d3a819d1d0fc5fe7955ec9a2012427f585dd
Invalid type. Valid types are add, refactor, remove, move, fix, update, version, cleanup, replace, bump

${scope}: the subsystem affected by change. when housekeeping use "chore"
${type} is one of: add, refactor, remove, move, fix, update, version, cleanup, replace, bump
${description}: a brief commit title

This message was auto-generated by https://gitcop.com

We found issues in commit naming convention

Commit: b2e9aa7f6e85ca3a39dd71c48dbb0b311f22c768
Invalid type. Valid types are add, refactor, remove, move, fix, update, version, cleanup, replace, bump

${scope}: the subsystem affected by change. when housekeeping use "chore"
${type} is one of: add, refactor, remove, move, fix, update, version, cleanup, replace, bump
${description}: a brief commit title

This message was auto-generated by https://gitcop.com

We found issues in commit naming convention

Commit: d8df7a4f873fe211492043c98adac048afbff98d
Your subject line is longer than 50 characters

${scope}: the subsystem affected by change. when housekeeping use "chore"
${type} is one of: add, refactor, remove, move, fix, update, version, cleanup, replace, bump
${description}: a brief commit title

This message was auto-generated by https://gitcop.com


Multiple field search & display 2 fields in textbox of same collection.

Hi,
I am looking for a use-case as below:
I am considering the same data as provided in the sample application.
Template.single.helpers({
settings: function() {
return {
position: Session.get("position"),
limit: 10,
rules: [
{
// token: '',
collection: StandardLegends,
field: 'legend',
matchAll: true,
template: Template.standardLegends
}
]
};
},
legends: function() {
return StandardLegends.find();
}
});
In this case, it searches for a field 'legend' in the collection and displays the same in textbox in UI.
But I am looking for multiple fields search like 'legend', 'code', 'year' ... which mean ... even if I search with any of these values ... my search should succeed.
Along with this, it should also support displaying 2 fields in the textbox in UI like 'legend' & 'year'.
In my case, i would like to search on a users collection ... where user can search on any field like 'firstname', 'lastname',  'email' etc ... And since firstname and lastname are two different fields ... i would like display both in the textbox of UI.
Can you please help me providing the sample on your example .. so that i can follow the same on users collection ?
Advance Thanks.

And another point to mention ..... I am not looking for any tokens here.
It can be single/multiple rules ... that's not a problem.

I dont know if this helps but i did the following to search in two fields (frist name and last name)
return {           position: "bottom",           limit: 10,           rules: [{               token: '',               collection: Meteor.users,               field: "_id",               template: Template.userPill,               selector: function(match){                 var terms = _.map(match.split(' '), function(key) {return new RegExp("^"+key, 'i'); });                 return {'$or': [{'profile.firstName': {'$in': terms}}, {'profile.lastName': {'$in': terms}}]};               }           }]       };
<template name="userPill">     {{profile.firstName}} {{profile.lastName}} </template>

Thanks for your time "Juan Camilo Ceron".
I will try your suggestions and will update you.
Have a Great Day.

@HemanthAnakapalle
Here is my solution of the problem.


Can't preview image file -- download in menu appends .txt file extention

OS: Linux
Version of IPFS Desktop https://github.com/ipfs-shipyard/ipfs-webui/commit/7a8f695

Describe the bug
I am looking at the Apollo archive (listed in the explore tab) at this image (on my local gateway)
http://<IP_ADDRESS>:8080/ipfs/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D/albums/QXBvbGxvIDEwIE1hZ2F6aW5lIDM1L1U=/21328560323_6b33f5d4c3_o.jpg
In the explore tab I also navigated to find the raw CID of the image, which is here (Qmdgqdddt3F2uszEaE7zph7kXbwHX3iTDCWeQjdtNGnQgz):
http://<IP_ADDRESS>:8080/ipfs/Qmdgqdddt3F2uszEaE7zph7kXbwHX3iTDCWeQjdtNGnQgz

Bug 1:
Using the Brose search bar up top for that CID gives:

The "Try downloading it instead." link correctly gives a .jpeg extension.

Bug 2:
BUT the ... More menu download yields a "Save As..." menu with a .txt file named the CID.

Bug 3:
I try to pin/unpin this to my node in the same menu, and receive an error:

Bug 4 :wink:
I can't find this on the GUI anywhere, though I am directed to by the issue template:
ATTACH LOGS

If possible:
1. Go to `Advanced` → `Open Logs Directory`
2. Find `*.log` files
3. Attach `error.log` and `combined.log` to this issue.

I only found the attached logs as I get the notification when I run the application from a terminal
info: [meta] logs can be found on ...../.config/IPFS Desktop

combined.log
2020-09-30T22:23:57.625Z info: [meta] logs can be found on /home/dan/.config/IPFS Desktop
2020-09-30T22:23:59.123Z info: [web ui] window ready
2020-09-30T22:23:59.125Z info: [web ui] navigate to /
2020-09-30T22:23:59.173Z info: [tray] starting
2020-09-30T22:23:59.233Z info: [tray] started
2020-09-30T22:23:59.234Z info: [ipfsd] start daemon STARTED
2020-09-30T22:24:00.988Z info: [daemon] PeerID is Qmb61NjeYWBAUHHfXdZQp2MED8XuXRWrRgrFDG4xtBTQvA
2020-09-30T22:24:00.989Z info: [daemon] Repo is at /home/dan/.ipfs
2020-09-30T22:24:00.999Z info: [ipfsd] start daemon FINISHED 1.7648615709999576s
2020-09-30T22:24:01.033Z error: [updater] Error: ENOENT: no such file or directory, open '/opt/IPFS Desktop/resources/app-update.yml'
2020-09-30T22:24:01.041Z info: [npm on ipfs] 1st time running and package is not installed
2020-09-30T22:24:01.048Z info: [launch on startup] disabled
2020-09-30T22:25:04.825Z info: [web ui] window hidden
2020-09-30T22:25:09.306Z info: [ipfsd] stop daemon STARTED
2020-09-30T22:25:09.591Z info: [ipfsd] stop daemon FINISHED 0.2849655619999394s
2020-09-30T22:25:09.602Z info: [ipfsd] start daemon STARTED
2020-09-30T22:25:12.081Z info: [daemon] PeerID is Qmb61NjeYWBAUHHfXdZQp2MED8XuXRWrRgrFDG4xtBTQvA
2020-09-30T22:25:12.082Z info: [daemon] Repo is at /home/dan/.ipfs
2020-09-30T22:25:12.082Z info: [ipfsd] start daemon FINISHED 2.4798767619999125s
2020-09-30T22:25:19.510Z info: [web ui] navigate to /
2020-09-30T22:25:21.520Z info: [web ui] navigate to /peers
2020-09-30T22:25:27.988Z info: [web ui] navigate to /settings
2020-09-30T22:25:35.808Z info: [web ui] window hidden
2020-09-30T22:25:39.293Z info: [ipfsd] stop daemon STARTED
2020-09-30T22:25:39.339Z info: [ipfsd] stop daemon FINISHED 0.04602136099990457s
2020-10-06T00:46:25.316Z info: [meta] logs can be found on /home/dan/.config/IPFS Desktop
2020-10-06T00:46:26.913Z info: [web ui] window ready
2020-10-06T00:46:26.914Z info: [web ui] navigate to /
2020-10-06T00:46:26.973Z info: [tray] starting
2020-10-06T00:46:27.028Z info: [tray] started
2020-10-06T00:46:27.028Z info: [ipfsd] start daemon STARTED
2020-10-06T00:46:29.373Z info: [daemon] PeerID is Qmb61NjeYWBAUHHfXdZQp2MED8XuXRWrRgrFDG4xtBTQvA
2020-10-06T00:46:29.374Z info: [daemon] Repo is at /home/dan/.ipfs
2020-10-06T00:46:29.374Z info: [ipfsd] start daemon FINISHED 2.3457141930013896s
2020-10-06T00:46:29.400Z error: [updater] Error: ENOENT: no such file or directory, open '/opt/IPFS Desktop/resources/app-update.yml'
2020-10-06T00:46:29.408Z info: [ipfs on path] no action taken
2020-10-06T00:46:29.410Z info: [launch on startup] disabled
2020-10-07T01:50:24.447Z info: [meta] logs can be found on /home/dan/.config/IPFS Desktop
2020-10-07T01:50:25.710Z info: [web ui] window ready
2020-10-07T01:50:25.711Z info: [web ui] navigate to /
2020-10-07T01:50:25.811Z info: [tray] starting
2020-10-07T01:50:25.860Z info: [tray] started
2020-10-07T01:50:25.861Z info: [ipfsd] start daemon STARTED
2020-10-07T01:50:26.143Z info: [daemon] removing api file
2020-10-07T01:50:27.602Z info: [ipfsd] start daemon FINISHED 1.7408583110049367s
2020-10-07T01:50:27.631Z error: [updater] Error: ENOENT: no such file or directory, open '/opt/IPFS Desktop/resources/app-update.yml'
2020-10-07T01:50:27.636Z info: [ipfs on path] no action taken
2020-10-07T01:50:27.639Z info: [launch on startup] disabled
2020-10-07T02:14:46.318Z info: [web ui] launching web ui
2020-10-07T02:22:28.788Z info: [web ui] window hidden
2020-10-07T02:22:36.966Z info: [web ui] launching web ui

error.log
2020-09-30T22:24:01.033Z error: [updater] Error: ENOENT: no such file or directory, open '/opt/IPFS Desktop/resources/app-update.yml'
2020-10-06T00:46:29.400Z error: [updater] Error: ENOENT: no such file or directory, open '/opt/IPFS Desktop/resources/app-update.yml'
2020-10-07T01:50:27.631Z error: [updater] Error: ENOENT: no such file or directory, open '/opt/IPFS Desktop/resources/app-update.yml'

(Transferring issue to webui repo.)

Thanks, @nukemandan. We'll investigate these in more depth in our next weekly triage.

Some notes for triage:

Can confirm similar experience to @NukeManDan on his bugs 1-3 above (for me, Mac in latest 0.13.0 release). @rafaelramalho19 and/or @lidel, can you please do some investigation when you get the time?

For bug 4, these instructions didn't make sense to @NukeManDan because he's running a Linux that doesn't give him the system tray menu.

Dan - as the link notes, this may be better in 0.13.0. Can you give it a try?
I'll amend the bug report issue template to make it clear what "if possible" means.
I'm also filing a separate issue for a glitch I'm seeing in opening logs from the cube menu.

RE: bug 1 - this is expected behaviour I think, as a raw CID does not contain file header information like a file that has human readable MFS extensions... I would think it possible to auto detect this in browser, I know that on Linux at least, with no extension the OS usually detects the file type somehow...
RE: bug 4 - I actually do have the tray icon! But I did not realize that was where I was to look! I was only trying to find this in the full window GUI.
The error logs seem to indicate updating automatically is not working, possibly only due to the updater not being installed correctly by my or the .deb package? (Revision 7a8f695)

I updated to v0.13.0 via the .deb release and have the same updating error. I can port this to a new issue if you like 😁

@NukeManDan - An updating issue would be specific to Desktop, so if you're able to open an issue in https://github.com/ipfs-shipyard/ipfs-desktop with any relevant details, that would be very helpful.

Did a quick analysis of bug 1:
Problem occurs because  ipfs-webui does not do full-blown proper content-type sniffing, it only looks at filename https://github.com/ipfs-shipyard/ipfs-webui/blob/95319bab6e1d915bff1d83717752ec2f8312f715/src/files/file-preview/FilePreview.js#L21
That is why opening https://webui.ipfs.io/#/ipfs/Qmdgqdddt3F2uszEaE7zph7kXbwHX3iTDCWeQjdtNGnQgz fails because it has no file extension to work with.
Potential fix would be to detect situation like this, read first n bytes via ipfs.cat  and pass them to content-type sniffer.
Prior art is already in the basic gateway implemented in js-ipfs:

https://github.com/ipfs/js-ipfs/blob/796d7ef09405689220353388d4b12bb82689633e/packages/ipfs-http-gateway/src/resources/gateway.js#L128

https://github.com/ipfs/js-ipfs-http-response/blob/710a96d1b6522a5b103cee660a042864d4bf3029/src/utils/content-type.js

Happy to craft separate issues referencing this one and closing it if that helps @lidel 🙇🏼

For this specific case I think we can keep them grouped together (renamed the issue to reflect that) :+1:


User Management - Add security around endpoints

AC:

Admin and user interceptors are applied to protected routes

We need to document protected routes for verification.

Some of this work has been completed, and the rest will require about a 2 of work.

Moving to Beta

This will be an auditing ticket, moving to alpha4


Add fallback to prevDay quote for polygon prices

Amends the changes made in #21.

Adds a fallback to the prevDay quote in case the lastQuote does not contain any non-zero values.
Does not return a quotation if the price is 0, so that the off-chain worker does not feed 'invalid' price data to the chain.

I noticed that the batching server returns a price of 0 for the TZS and NGN currencies. This is because the lastQuote returned by the 'all-tickers' endpoint returns 0 values for all fields of those currencies. I suppose this is either because there is not much activity or maybe they were not traded on that day yet, see
https://api.polygon.io/v2/snapshot/locale/global/markets/forex/tickers?tickers=C:TZSUSD&apiKey={apiKey}.

In case the lastQuote is empty we will now fall back to the prevDay values instead.
I compared them to the response of the currency-conversion endpoint here
https://api.polygon.io/v1/conversion/TZS/USD?amount=1&precision=5&apiKey={apiKey}
and I think using the c (-> 'close') value of the previous day makes the most sense in this case. It also matches the result of the conversion (though to be fair, all values seem to do in this example due to the low precision).

So this 0 value can happen at any time ?

I think it shouldn't but for some reason it seemed to happen on that day for TZS and BRL. So we should assume that it can happen any time, yes.

I would worry that the previous day close would be much lower/higher than the previous non-zero fetched value for that day.

I don't think this should be the case because I would assume that in the cases where the lastQuote for the current day is 0, I would assume that the close of the previous day would then be equal to the previous non-zero fetched value. At least I would understand the problem to be such that the lastQuote is only empty because there is no trade yet for that new day.

I would understand the problem to be such that the lastQuote is only empty because there is no trade yet for that new day.

That would make the most sense to be honest, especially since it is not mentioned on the docs. So let's go for it. Yeah let's add just a println for when the 0 value happens to confirm our theory.

Added the logs and will merge now.


4.0.1 at ios🐛

since I try to run fluent_ui 4.0.1 example  at ios but
throw MissingPluginException('No implementation found for method $method on channel $name');
But I can run example when I ignore this
Is Windows_manager Caused max /min windows ?
How to fix my project run at ios , android, windows ?
thanks

Can you post the whole error message?

Linux and windows work properly
and
I switch android , ios at  method = isMaximized, arguments =null
@optionalTypeArgs
Future<T?> _invokeMethod(String method, { required bool missingOk, dynamic arguments }) async {
assert(method != null);
final ByteData input = codec.encodeMethodCall(MethodCall(method, arguments));
final ByteData? result =
!kReleaseMode && debugProfilePlatformChannels ?
await (binaryMessenger as _ProfiledBinaryMessenger).sendWithPostfix(name, '#$method', input) :
await binaryMessenger.send(name, input);
if (result == null) {
if (missingOk) {
return null;
}
throw MissingPluginException('No implementation found for method $method on channel $name');
}
return codec.decodeEnvelope(result) as T?;
}


Replace logical plan from Arc to Box

Which issue does this PR close?

Closes #.
Rationale for this change

#9637
I think it is easier to avoid clone after the plan are all boxed instead of arced
What changes are included in this PR?

Change Arc to Box
union is changed to Vec instead of Vec<Box>

Are these changes tested?

Are there any user-facing changes?

It is part of #9768 , if #9768 is too complex to review, we can merge this first.

Thanks @jayzhan211  -- I only just saw that you were working on this -- I agree this would be a good change. However, I think it will be a substantial performance regression until we also avoid so many logical plan clone's in the optimizer


Feature proposal: microseconds and nanoseconds support

Hi!
I have a need to convert microseconds and nanoseconds to milliseconds, so I thought I would propose a pull request on this module (w/ updated unit tests and readme).
The only doubt I have is when converting to long format. I left a comment line 160 about this: when the module converts to milliseconds, I decided to keep the xxx ms format instead of changing it to xxx millisecond(s), to avoid introducing a breaking change.
Should you agree with adding micros and nanos to ms, you may have a different opinion on this one. If so just tell me, I will gladly proceed to change this.

This seems great. @scottinet if you rebase I'll merge it

Will do. :+1:


startWith causes stream to end early

When you run this:
var Bacon = require('baconjs');
var expandedStateBus = new Bacon.Bus();
expandedStateBus
  .startWith(false)
  .take(1)
  .log('take 1')
  .flatMap(function() {
    return Bacon.later(0, [
      {title: '1'},
      {title: '2'}
    ]);
  })
  .log('last map');

you'll get this incorrect output:
take 1 false
take 1 <end>
last map <end>

If you change .startWith to be .toProperty, then it works correctly:
take 1 false
take 1 <end>
last map [ { title: '1' }, { title: '2' } ]
last map <end>

(In case it looks a bit nonsense here: in the original code, .startWith isn't always passed false, but an expression that's only sometimes false.)
(Removing the first .log statement also fixes it in this stripped-down example. This is not true of the original code I found this issue in.)
Using Bacon 0.7.50 from npm.

This is practically the same issue as #367: the startWith stream is synchronous and emits it's (only) value to the first subscriber only. The toProperty solution will work of course.
This should be addressed in rel 0.8.


After latest update Inverter Grid sensor always On

Description
After latest update Inverter Grid sensor always On.
It was working before update for sure as i have HA automation based on this sensor.

Reproduction Steps
Turn off grid.
Check Inverter Grid sensor.
Log
error_log-2.txt
Version
24.12.22
Home Assistant Core Version
2024.12.5
Home Assistant Operating System Version
14.1

What was the state of the relay?

What was the state of the relay?

At the moment there is an outage at all.

Other sensors shows correctly, but Grid is on.
It also is reproducible when some phase is absent. It also shows on hut before update it was showing Off.

Show me the Relay State.

Show me the Relay state in HA (w/ attributes in sensor detail).

Do you mean this one?

Yes that's the one, it's used for Grid sensor.

Yes that's the one, it's used for Grid sensor. The relay has bit for Grid set... there is not much I can really do...
Can you show history of this Relay sensor? What value was there previously for example with grid off?

Seems its not related to relay status.
Here is an example, there was no voltage at grid L2, the rest of phases were ok. So there was same power supply but with grid off:

Mhmm, "Power Suppy" is a placeholder value for everything except known combination so the real value could be different.
But it's hard to read history of attributes so I won't bother you w/ that.
But my suspicion is that your inverter simply does not show correct state of the Relay and thus also shows incorrect state of the Grid sensor.
Did you tried to restart it or smthing?

Mhmm, "Power Suppy" is a placeholder value for everything except known combination so the real value could be different.
But it's hard to read history of attributes so I won't bother you w/ that.
My suspicion is that your inverter simply does not show correct state of the Relay and thus also shows incorrect state of the Grid sensor.
Did you tried to restart it or smthing?

I have restarted it couple of times after update to latest version of this hacs. Solarman and deyecloud alway show grid off status properly.
This issue started to reproduce right after update so something definatelly changed in the hacs code.

I was talking about restarting your inverter and stick logger cause they are giving out incorrect value.

This issue started to reproduce right after update so something definatelly changed in the hacs code.

It did not, sorry,

I was talking about restarting your inverter and stick logger cause they are giving out incorrect value.

This issue started to reproduce right after update so something definatelly changed in the hacs code.

It didn't, sorry,
I mean you can try to revert back to version you think works and we will see. 😉

Ye, i understood that you are taking about restarting of inverter. It was restarted couple of times.
Also deye support has updated logger and inverter with latest sf version so it was updated today and after that there was couple of outages :)
Ok, i will play with reverting to previous version to see whether the issue is fixed. But not sure when :)

Also deye support has updated logger and inverter with latest sf version so it was updated today and after that there was couple of outages :)

You should have said at the beginning. So proly they fuck*d it up. So what version you have now? Show me attributes of Device sensor.

Also deye support has updated logger and inverter with latest sf version so it was updated today and after that there was couple of outages :)

You should have start w/ this! So proly they fuck*d it up. So what version you have now? Show me attributes of Device sensor.
Don't forget to hide serial number.

Issue started at 23rd of Dec, when i have updated the hacs, not today, so this is not related to inverter sw update (performed today).

And I'm telling you that nothing about this changed and sensor shows correct value according what ac relay register number 552 says.
Value: 7 which is 111 in binary, bit0 is inverter relay and is set, bit1 is undefined and is set, bit2 is grid relay and is set.


endSession doesn't work after transfer

Hello,
We are integrating the sdk in our CRM and all our cheklist is green except one use case.
The call to the endSession method (with sessionId or conversationId) does nothing after a transfer.
After an incoming call (no transfer) it is working as expected.
There is no warning, no error.
Here are the logs when it is working (incoming call no transfer) :

Here are the logs when it is not working (transfer) :

This problem occurs at least on v4.1.2 and on v5.0.5.
Best

I have a few questions for you.

When you say The call to the endSession method (with sessionId or conversationId) does nothing after a transfer does that mean the call is still completely connected and you can still talk to the other party?
Are you using persistent connection?

In the meantime, I will see if we can reproduce this.

Yes exactly. The only way to end the call is to wait for the other party to end it on its phone.
What do you mean ?

I have made some other tests and I have the same behavior with setAudioMute method.
Here the normal behavior with an incoming call (no transfer) > muted has the expected effect on the conversation :

Here the problem when the call has been transfered > muted has no effect on the conversation :

The muted flag stays false.
Maybe it tries to modify the previous agent ?

interesting... That's possible. Let me have another go at reproducing this tomorrow. Thanks for the info, this is very helpful.

I just tried to reproduce this using an ivr and queues and separate users just like you have here and I wasn't able to see what you are seeing. I'd like to look at the logs and see if there's anything there, can you tell me what region this is in?

France and we use the german env :
sdk = new $window.GenesysCloudWebrtcSdk({     accessToken: accessToken,     environment: 'mypurecloud.de' });

I didn't see any problems in the logs, @Loyc59 can you look at the network tab and verify you are sending an api request to end the call? It will look something like this:
PATCH /conversations/calls/${conversationId}/participants/${participantId}

body will look like this:
{ state: 'disconnected' }

Yes I see a PATCH with a success code but I am still in conversation, it has no effect.
Thu, 08 Apr 2021 13:29:50 GMT
PATCH https://api.mypurecloud.de/api/v2/conversations/calls/da6fe467-3d18-4042-ab41-b6e63b773cb1/participants/079f4d35-5cbd-42ea-9953-86da179476fa
Body = {state: "disconnected"}
Response code : 202 Accepted
I even did it 6 times in a row but still 202 and no effect.
Thanks for your perseverance on this subject ;)

ok I see the problem. When we try and end the call, we are trying to find the participant like this:
const participant = participants.find((p) => p.userId === this.sdk._personDetails.id);

but that doesn't work in this case because both the participants are from the same user so it's finding the first user. I'll get a pr up with better logic for identifying the participant.

https://github.com/MyPureCloud/genesys-cloud-webrtc-sdk/pull/507

this is fixed in newly released version 5.0.9.

this is fixed in newly released version 5.0.9.

Thanks @jensengar it works now.


Allow validation on multiple fields with different text structures

All keys passed into the Data.validate! method
can now be correctly parsed for valid Yaml or JSON.
Once parsed they are reoriented to match the
tower data structure so the API can process the requested
changes.

@bdunne - Reopened after a rebase and a few small refactors in the Data class. -- cc @bzwei, @gmcculloug

@syncrou Do we need to pass in the whole hash rather than just the strings we need to validate?

@bdunne - My thought was to pass in the whole hash so we could eliminate logic in separating out specific keys.
The other thought was that if we validate everything passed in (on the gem side) - the API will only use what it needs.  Not sure if that is a common pattern to follow - but would allow the API to adjust while not having to manage it all in our gem.
I also wanted the Data class to 'do the right thing' and return back to the caller only what would be needed.


chart name is not shown on the dashboard

When you add a chart to a dashboard the chart name is not shown.
This is specially problematic when you add 2 different charts from the same query: you don't have the name from each and when both are 'similar' (ie, 2 pie charts) it's pretty confusing.

Something like makes sense? ("User's Actions" is the query name and "Very Interesting Pie" is the chart name)

yep!
On Thu, May 7, 2015 at 3:54 PM, Arik Fraimovich<EMAIL_ADDRESS>wrote:

[image: image]
https://cloud.githubusercontent.com/assets/71468/7523311/9d023aec-f503-11e4-9c22-459787710129.png
Something like makes sense? ("User's Actions" is the query name and "Very
Interesting Pie" is the chart name)
—
Reply to this email directly or view it on GitHub
https://github.com/EverythingMe/redash/issues/418#issuecomment-99978501.

great. follow #421 for status.


Add Healthcare functionality

[x] Code that exposes new functionality
[x] Min live tests and recordings
[ ] Sample
[ ] Update Readme and Changelog

Hold off on documentation until service deploys


do you need with the code? I can contribute if you want

Hey there! Thanks for the help. The framework in itself is working. What was giving me trouble was the agent's code and also the reward function. My idea is to first train the agent to drive in an empty and simple road and then train it to more complex scenarios. If you see something is wrong please tell me. I appreciate all the help I can get.


Expanding the HDFS folder for BDC leads to an error

Issue Type: Bug
I connected to a BDC deployment on mssql.tdeupgrade.aris.local,31433 using Windows authentication. I expanded the HDFS folder in the Object explorer and I got this error "Error: Missing required inputs for CLuster controller API (URL, username, password)

Azure Data Studio version: azuredatastudio-insiders 1.24.0-insider (10d3a6b2bae26d9a95bc44df4843c9e62224e404, 2020-10-13T05:30:59.632Z)
OS version: Windows_NT x64 10.0.19041

System Info

Item
Value

CPUs
Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz (8 x 2295)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_renderer: disabled_off_okvideo_decode: disabled_softwarevulkan: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
undefined

Memory (System)
16.00GB (10.35GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions: none

Tried this on two different VMs both domain joined. Works OK in the latest release build that I downloaded though. So possibly a regression.


[TACHYON-1428] Documented parts of the tachyon-servers module in preparation for the checkstyle rule

https://tachyon.atlassian.net/browse/TACHYON-1428

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/7950/
Test PASSed.

Thanks for the doc improvement! I left one comment.

@yupeng9 Thanks for the comment. I updated the PR accordingly.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/7952/
Test PASSed.

LGTM. Thanks!


Feature Request: need generic setupAutomaticTokenRefresh for Password Flow and Implicit flow

similar to setupAutomaticSilentRefresh for  Implicit flow, we need setupAutomaticTokenRefresh for Password Flow. it would be better if we can provide generic  AutomaticTokenRefresh  setup method for both.
It will help subscribing to  oauthService.events   at one place within the lib, and avoid potential   leaking references and memory issues.
currently we have to implement:
export function initializeAuth(oauthService: OAuthService, ngxs: Ngxs) {
  oauthService.configure(environment.isPasswordFlow ? authConfigPassword : authConfigImplicit);

  oauthService.tokenValidationHandler = new JwksValidationHandler();
  oauthService.setStorage(sessionStorage);

  // Auto Refresh Token
  if (oauthService.oidc === false) {
    oauthService.events
      .filter(e => e.type === 'token_expires')
      .subscribe(e => {
        oauthService.refreshToken().then();
      })
  } else {
    // setupAutomaticSilentRefresh only for Implicit flow
    oauthService.setupAutomaticSilentRefresh();
  }

  return async () => {
    await oauthService.loadDiscoveryDocumentAndTryLogin();

    if (oauthService.hasValidAccessToken()) {
      // This is called when using ImplicitFlow or page reload, no effect for ROPC Flow
      console.log("hasValidAccessToken");
      const profile: any = oauthService.getIdentityClaims();
      const isLoggedIn = true;
      ngxs.dispatch(new LoginSuccess({isLoggedIn, profile}));
    }
  };
}

Thanks! Your example really helped me out.
I kept assuming the silent refresh was OK for Password Flow.

Hoping  @manfredsteyer can make it part of the lib

Hi @xmlking ,
I'm also trying to implement the auto token refresh and I'm using password flow.
May I know where should I put this function and where should I call it so that the token that gets automatically attached to all my request is valid?
Hope to hear from you.
Many thanks,
Toni

see also #285

Why is this closed? Was this implemented?


sysvtools: fix build

mountpoint from utillinux is now preferred, not installed anymore in sysvinit
See http://git.savannah.nongnu.org/cgit/sysvinit.git/commit/?id=3cb95c83714161a18f140814eece9345aebb42c0

Success on x86_64-linux (full log)
Attempted: sysvtools
Partial log (click to expand)
shrinking /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/bin/killall5
shrinking /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/bin/utmpdump
shrinking /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/sbin/sulogin
gzipping man pages under /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/share/man/
strip is /nix/store/gpc2wld1s0c6qzx9326cwn1wcx29xzsj-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/bin  /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/sbin
patching script interpreter paths in /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89
checking for references to /build in /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89...
moving /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/sbin/* to /nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89/bin
/nix/store/dx6b7y0ahc9h56viwz4ph9dkxln074lf-sysvtools-2.89

Success on aarch64-linux (full log)
Attempted: sysvtools
Partial log (click to expand)
shrinking /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/bin/utmpdump
shrinking /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/bin/mesg
shrinking /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/bin/last
gzipping man pages under /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/share/man/
strip is /nix/store/ah0va6j4cnwj9nx4j6rwcfc8nh785jwm-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/bin  /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/sbin
patching script interpreter paths in /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89
checking for references to /build in /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89...
moving /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/sbin/* to /nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89/bin
/nix/store/di5ipvxazihcnm9s3hkdiv3md34xbhf6-sysvtools-2.89


Pass ts from ack reply to lazy listener

I think the ask is pretty straightforward. I want the ts from the ack in the lazy listener to be passed down to my long running function. Is there any way to make that happen? Right now, given that this is going to get deployed to lambda, I'm somewhat tempted to just assign it in the global variable scope and then re-access it in my long running method.

Hi @asontha, thanks for writing in! I understand your use case, but unfortunately, this is not feasible in a simple way. The ack() method does not have any response because it's an HTTP response under the hood.
To know the ts of a message posted by your ack() call, the only way I can share is to call conversations.history API to fetch the latest messages in the channel, and then find the one your app just posted.
I know the above approach may not be an easy solution, but I hope this was helpful to you. Let us know if you have more to ask on this :wave:

I've provided an answer to this question, so let me close this issue now. Please feel free to write in whenever you have further questions on this topic!


Added Eda to Market Trend Classification Model #206

fixes - #202
Issue no - #202
Closes #202
I have added eda to market trend classification !
@rohitinu6 pls review it and if there is any conflicts let me know !

@rohitinu6
@Mayureshd-18
@jvedsaqib

@jvedsaqib kindly review PR !

Looks good to me!

then pls merged PR

@Mayureshd-18
@rohitinu6 @jvedsaqib
pls merged my PR as today is last day for this event


chore(tile): add grid tile and overriding styles for grid

Adds grid tiles example
Adds overriding styles

@shixiedesign Nope thank you that is all


radio field support for dynamic_inline.js

When using radio buttons in dynamic inlines this raised an 'Unhandled
field in dynamic_inline.js:' alert. This was fixed by dublicating the
'checkbox' case in the function 'anyFieldDirty' in 'dynamic_inline.js'

Thanks!


Minimum Node Version?

@nfarina  I don't see any clear documentation on the minimum node version required. Would be great to add this to the Installation section of the README (and update package.json)

package.json says v4.3.2
@KhaosT says v5.10 here

@plasticrake I believe node 4.x worked again after someone submitted a change to accommodate both type of buffer init.

i use 8.4.0 without any problems....

Thanks @KhaosT, I just submitted PR #1590 to add this to the readme.


/part doesn't get send to znc

Whenever I part a channel using /part to which I am connected using znc, lounge only closes the windows but does not leave the channel in znc.
when I then get a message in that channel, it is displayed in a pm window (with the name #name).
I can tell that it is a pm window since there is no user list and I get the sounds. disconnecting and reconnecting to the network restores the old state.
lounge version is b67836f
znc version is 1.6.3

Is your znc configured to do some kind of unattachment? Unless you are closing an already broken window (that is not considered a channel), then it will send part.

mmh, I don't think that I configured anything in znc.
I just tried again to reproduce it and I couldn't do it, strange.
could reproduce it on ever try before.
closing for now


Add support for delete operations in write transactions

Add delete operation support when via write transaction

This has already been implemented and available for use since v1.5.0


Questions about writing a Rust wrapper for libqpdf

Thank you so much for writing QPDF. I'm trying to make a tool for tinkering with PDF metadata, and QPDF's low-level access to the PDF object model, through a C-based API (that I can wrap in Rust) is just what I needed!
However, I did get a bit confused trying to adapt the C API to Rust's conventions, so before I spent too much time reading the source code I figured I should ask how things are intended to work. I'm willing to turn the answers into a PR updating the docs in qpdf-c.h if you'd like.
How safe are object types?
The C API documentation says that every API call can raise an error and produce zero or more warnings. That makes sense, but since Rust makes error-handling explicit, it can get tedious. For example, if I create an object handle:
qpdf_oh mybool = qpdf_oh_new_bool(doc, QPDF_TRUE);

...and it succeeds, and no intervening API calls raise an error, is there any chance at all that a later call:
qpdf_oh_get_bool_value(doc, mybool);

...will raise an error or cause a warning?
Why do names include "/"?
As I understand it, in a PDF file the token (foo) is a string of length 3 containing the bytes 0x66 0x6F 0x6F. The () are not part of the string, they're just the notation that distinguishes strings from other kinds of data.
As I understand it, in a PDF file the token /Foo is a name of length 3 containing the bytes 0x46 0x6F 0x6F. The / is not part of the name, it's just the notation that distinguishes names from other kinds of data.
I'm very confused, therefore, that qpdf_oh_dict_next_key() returns a pointer to a string that starts with /, and that qpdf_oh_get_key() seems to expect key names to begin with /. Does that mean name objects are unparsed in QPDF? If I ask for the key /AB but the PDF says /A#42 (to steal an example from ISO32000 section 7.3.5) will the key not be found?
Does QPDF copy name data?
When I call pdf_oh_new_name(), the name data is copied into a buffer owned by QPDF, right?
Is there a way to construct a PDF Unicode string containing NULs?
As I understand it, a PDF string is a sequence of bytes (possibly including NUL) in no encoding, in PDFDocEncoding, or in UTF-16BE.
QPDF provides qpdf_oh_new_binary_string() to create a string from a verbatim sequence of bytes (possibly including NUL).
QPDF provides qpdf_oh_new_unicode_string() to create a string from a UTF-8-encoded sequence of bytes (excluding NUL) in whichever encoding is most compact.
Thus, it's impossible to create a string from a UTF-8-encoded sequence of bytes including NUL, which happens to be Rust's native string type. It's probably not a big problem in practice, but it's annoying that Rust supports "Unicode string including NULs" and PDF supports "Unicode string including NULs" but I can't convert one into the other without replicating all the transcoding machinery QPDF already implements.
Is the QPDF version ever invalidated?
My understanding is that most functions returning char* are returning a pointer into a buffer owned by the qpdf_data structure, and the buffer contents should be copied out before calling another function that returns a char*. However, qpdf_get_qpdf_version() does not take a qpdf_data parameter; is it guaranteed to return a pointer to a static string?
What is the advantage of qpdf_read() over qpdf_read_memory()?
It is great that QPDF supports proper UTF-8 filenames, malformed UTF-8 filenames, and (on Windows) UTF-16 filenames through the same API. However, the Rust idiom is (of course) to use its own standard library file handling, which supports proper UTF-8 filenames, malformed UTF-8 filenames, UTF-16 filenames, and malformed UTF-16 filenames.
It would be fairly easy for my wrapper to use Rust's APIs to read the file-data into memory, then qpdf_read_memory() to read it, but what would I be giving up? Does qpdf_read() do special mmap() magic to make file reading more efficient, or any other tricks like that? Does qpdf_read_memory() incur the cost of copying the data into a C++-owned buffer?
Can QPDF be used to make a new document from scratch?
 Could I create an entire document from whole cloth just by constructing objects and adding them to the tree?
What does qpdf_check_pdf() do?
I have a slightly damaged PDF here, which causes qpdf --check to print 2172 warnings. However, if I load it via the API and call qpdf_check_pdf(), qpdf_more_warnings() reports no warnings. What am I missing?
Why does QPDF care about decimal places?
As I understand it, the PDF object model includes both integers and reals.
qpdf_oh_new_integer() makes perfect sense to me — hand in an integer, get back an object handle.
qpdf_oh_new_real_from_double() is confusing. I would expect the same convention — hand in a double, get back an object handle — but QPDF also wants me to tell it how many decimal places the double has. Isn't that information encoded into the double itself? Or is it supposed to be some kind of scaling factor/exponent applied to the raw double value?
What actually is the QPDF object model?
This is a long and rambly not-really-a-question, and for that I apologise in advance. However, I strongly suspect I've misunderstood how things are supposed to work, and I figure it will be easier for me to describe what I'm trying to do, and be corrected.
As you may know, Rust is a strongly, statically-typed language. Because different PDF objects have different methods (Arrays and Dicts have .get(), Dicts have .keys(), etc.) I want a different Rust type for each PDF object type: Null, Bool, Integer, Real, etc.
Because qpdf_replace_object() is a function that only applies to indirect objects, it makes sense to me that I also need an Indirect type so I can give it a .replace() method. However, most people are going to want to access the object "inside" the Indirect object, so we need some kind of .dereference() method too.
Because there's a .replace() method, I assume that a QPDF object is "really" the reference end (1 0 R), not the target end (1 0 obj ...). And I notice that there's functions qpdf_oh_get_object_id(), qpdf_oh_get_generation() and qpdf_get_object_by_id(), so it seems like you should be able to get an indirect reference, extract the object/generation, then look up the object/generation to get the target... but this doesn't seem to work, it gives you the original indirect object back again?
Next I saw qpdf_oh_make_direct() which sounded like a nice counterpart to qpdf_make_indirect_object(): one to wrap a direct object in an indirect object, the other to unwrap the indirect object and extract the direct object. Implementing .dereference() as a call to qpdf_oh_make_direct() seems to work, mostly...
...but when I started writing code to poke around in an existing PDF file:

I got the trailer dict from the document
I got the /Root key from the dict, returning an Indirect object (for which I verified that is_indirect() returned true, and get_type_code() returned ot_dictionary)
I called qpdf_oh_make_direct() to unwrap it and extract the dictionary, which raised an error "attempt to make a stream into a direct object" even though as far as I can tell no streams are involved

That's it for now!
If you've read this far, thank you. Again, QPDF is a great tool that's already been helpful in maintaining my personal PDF library, and for that alone I am grateful, but I would be extra grateful for any additional information or insight you can provide about the things I've listed above.

I read your whole message. I'm going to cc @m-holger here since he was also talking to me about using the C API from rust, and in fact, 10.5.0 included several enhancements specifically to make this easier, and 10.6.0 (hopefully coming out in the next few weeks) will have a few more. I'm interested in discussing these issues with you and am trying to figure out the best way. I'm actually open to having an interactive discussion over zoom, phone, or your communication mechanism of choice, or I can convert this issue to a discussion and we can talk via typing. Although I type very fast and tend to be on the wordy side, it may take me a while to fully address all your issues.
Let me throw out a few general comments.
I have recently started dabbling in rust myself, though I don't have any real-world excuses to use it. If I could pick any language, rust would be it. I've done a few small projects with it, and I believe I have a pretty full understanding of its models for memory safety and error handling. I have done a little more work in go, which is of course completely different, but shares with rust the explicit error checking pattern. I've been programming since the early 1980s and have seen lots of patterns come and go, but I have to say that the way rust does type safety and error handling is my favorite from among the many languages I've used.
I started writing qpdf in around 2002, though it didn't become open source until 2008. The basic object model of qpdf has been around that whole time, making it almost 20 years old. That means that qpdf is steeped in the world of exception handling and C/C++-style memory management. The C API tries to deal with errors without exceptions. Maybe I got it right, maybe I didn't. There are lots of ways to do error handling in C. Prior to 10.5.0, there were a whole category of errors you simply could not capture from the C API, and I tried to make some changes to it to make that better but wanted to do so without breaking backward compatibility. It's possible that a second C API more suited to modern languages might be in order. The original C API was actually created to enable a Windows/Delphi user to access certain qpdf features my loading the DLL at runtime and making calls, so a lot of the simplicity of the C API is based on that mode of operation.
I'll admit that there is a part of me that would like to abandon all my responsibilities and spend a year rewriting qpdf in rust and maybe getting more of it right, but that's not going to happen. I'm not sure the existing C API is the best way to expose qpdf to rust. Other options might include writing a separate C++ library with its own C interface specifically for interfacing with rust, or another option might be to have some kind of "official" rust bindings to qpdf. Another idea that is floating around (see #593 for a partial discussion) is to have a JSON-based API. Soon-to-be-released 10.6.0 has the beginning of that, but all it does in the initial release is provide a JSON alternative to the command line, which turns out to be enough for a lot of users who just want to use qpdf for things like splitting pages and would rather call an API than invoke something through the command line. But I might try to extend it to allow more general manipulation of PDF through JSON. I just merged 5 weeks of refactoring to support the json API into main this morning.
Another thing that I have in the works is a version 2 of qpdf's existing JSON output, the difference being that my json v2 output will actually capture everything about the PDF to the extent that it would be possible to recreate a PDF from the JSON. This might enable another mode of operation: use qpdf to get a JSON representation of the PDF, manipulate it as JSON, and then use qpdf to create a new PDF from the modified JSON. Quite a bit of code would be required to make that work, but it could be done. I'd say I'm months away from undertaking a project like that though even if even ends up being the next thing.
That's all I have time to write right now -- I'm heading into a busy day. I'll see if I can find some time to answer your specific questions. Some of the answers will be deep, and others will be that I made an arbitrary decision a long time ago that we're stuck with because of backward compatibility. One thing though is the type safety of QPDF objects -- they are not type safe, and making them type safe would be a deep and difficult change and may not even work. I came up with a full proposal for type-safe objects a few months ago, and upon finishing the proposal, realized that it wouldn't actually help. Dealing with PDF object structure is kind of like dealing with unstructured json, and there are a lot of things in PDF where the type is unknown (could be a name, array, etc.) and, even more fundamentally, there are lots of broken PDF files in the wild, and it's important for qpdf to be able to handle them as well as possible.
I'll try to find some time in the next several days to answer more. I'm curious to know your use case, how general your rust solution is, whether this is something you're planning to release or just something for your own use, etc.
More later!


Marker clustering ios

adds marker clustering for iOS. still trying to get it workong on Android...

@joshblour Hi!
Is there any luck with clustering on Android?
I've figured out how to make clustering with native markers, created in Java class.
But I can't get how to connect React Native Maps markers with ClusterManager in Java :(

@alexHlebnikov check out this branch https://github.com/joshblour/react-native-maps-1/commits/marker_clustering (it's probably what you already have)
The ClusteringManager lets you provide your own ClusterRenderer. They recommend subclassing DefaultClusterRenderer and if you do, you can implement onBeforeClusterItemRendered and provide some of your own marker options.
Note: You'll then need to tell AirMapView not to add it's own markers to the map, otherwise they'll appear twice; clustered and unclustered.
The problem with this approach is that we're limited to plain-ol' markers, and can't use custom views, which blows.
It would be awesome if there was a way to provide our own marker object to DefaultClusterRenderer but there doesn't seem to be a way of doing that. Maybe a pull request somewhere around here: https://github.com/googlemaps/android-maps-utils/blob/master/library/src/com/google/maps/android/clustering/view/DefaultClusterRenderer.java#L813

I think [here] (http://stackoverflow.com/questions/23658561/how-to-set-my-own-icon-for-markers-in-clusterer-in-google-maps) is a way to reslove the problem with clusetering markers customization in Java.

yes but that's the approach they recommend but it's still just setting markerOptions.
I haven't tried, but it seems that with AirMaps you can have completely custom marker by providing your own view. Anyone using a custom view wouldn't be able to use clustering.
What we really want is to tell DefaultClusterRenderer to use the marker we provide, instead of rendering a new one (even if we can specify the options)

Hey, whats the status of this PR?
Does the project support already marker clustering? Or maybe do you know if there is an easy way to implement it?
Thanks

Would be awesome to get this in, feels like the missing piece

Any progress on this?

Hey guys! Any chance you can merge this and release a new version any time soon?

Please merge this, it would be really useful 🙏

+1, please merge

I will pay for who can make clustering for both platforms. Just say the price.
Currently it is really slow when there are 100+ markers.

I can def sponsor as well

On 21 Jul 2016, at 03:10, Burak Çalık<EMAIL_ADDRESS>wrote:
I will pay for who can make clustering for both platforms. Just say the price.
Currently it is really slow when there are 100+ markers.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I solved this by doing the clustering in javascript, inspired by leaflet and google maps. At the moment it's very much tied into our application and not perfect yet. If you guys don't mind an javascript implementation, I'm happy to explore to open source our solution.

@justim that would be great. I also planned to do on js side, your code would help.

@justim I'd love to see your code too :)

I'm also looking at javascript implementation - a possible solution might come via https://github.com/mapbox/supercluster

@nazywamsiepawel supercluster looks pretty sweet, my solution can't handle that kind of amounts of markers.
I didn't really get to making a proper repo/PR for the clustering, but since there are people that want to cluster, I created a gist with code that I pulled from our application. There are some magic numbers and the region/bounds stuff is a bit weird, but it works alright. Maybe someone can use it :)
https://gist.github.com/justim/2c834a657553f0e2531949edae03fb83

anyone had a luck using a supercluster?
want to know how much work needs to be done before I jump into it

@veedeo We used supercluster, and it solved this problem nicely! I didn't do the implementation, but looking at the code it seems pretty simple.

Cool thanks, will look at it later

@i-tu Can you provide a sample of the implementation you used?

Guys, if you need generalisation instead of clustering, you can use https://github.com/mourner/rbush

@DVassilev I just noticed your message, but in case you still need help with this heres an incomplete snippet, HTH to point you in the right direction https://gist.github.com/i-tu/05e79737adfe36935ec869125a686f82

@i-tu I followed your snippet and managed to get clustering in place. Big thanks for that!
However, I would like to be able to click on a cluster and have it zoomed in. Did you solve that? I guest the fitToMarkers could come in handy but I cannot get the markers/points out from the cluster.
Any ideas on how to get that in place? That's the only issue left to get proper clustering support.

@i-tu Thanks for that, I managed to implement it but noticed that if markers change dynamically the module requires the entire list to be loaded in again which blocks the JS thread and there's a bit of a delay when getting the clusters back. It seems like a native implementation would probably be the best solution.

@danielreuterwall or @DVassilev could either of you post a more complete example of getting clustering to work with SuperCluster? Struggling to get it working.

Any news on this ?

Will this be implemented any time soon?

Is there any luck with clustering on Android?  cc @yonahforst

@yonahforst  I have implemented map clustering android code from your branch https://developer.android.com/training/wearables/apps/bt-debugging.html#SetupDevices
But I can't get how to connect React Native Maps markers with Cluster Markers. @yonahforst I didn't get any use of cluster markers in your branch also. cc: @alexHlebnikov Is there any working example.

Sorry for not getting back before. So I did solve this using the supercluster from MapBox. When the region changes on the map I load places from my backend API and the invoke the clustering like this:
´´´
createCluster(places) {
const cluster = supercluster({
radius: 60,
maxZoom: 16,
});
try {
  cluster.load(places);
  const padding = 0;
  const markers = cluster.getClusters([
    this.state.region.longitude - (this.state.region.longitudeDelta * (0.5 + padding)),
    this.state.region.latitude - (this.state.region.latitudeDelta * (0.5 + padding)),
    this.state.region.longitude + (this.state.region.longitudeDelta * (0.5 + padding)),
    this.state.region.latitude + (this.state.region.latitudeDelta * (0.5 + padding)),
  ], this.getZoomLevel());
  this.setState({
    markers,
    cluster
  });
}
catch(e) {
  console.debug('failed to create cluster', e);
}

}
getZoomLevel(region = this.state.region) {
const angle = region.longitudeDelta;
return Math.round(Math.log(360 / angle) / Math.LN2);
}
´´´
Inside the ´´ component I  render the markers/clusters.
´´´
<MapView ref={ref => { this.map = ref; }}>
{ this.state.markers.map((marker, index) => {
return (
<MapView.Marker
coordinate={{ latitude: marker.geometry.coordinates[1], longitude: marker.geometry.coordinates[0] }}
onPress={() => this.markerPressed(marker)}>

</MapView.Marker>
);
})}

´´´
The ´´ component is my custom marker and it checks for ´properties.cluster´ in its model and render itself accordingly.
Finally I have a method that handled taps on the marker/cluster. If its a cluster is centers it and zooms in, if its a regular marker it just centers it.
´´´
markerPressed(marker) {
let isCluster = marker.properties && marker.properties.cluster;
let region = this.state.region;
this.map.animateToRegion({
longitude: marker.geometry.coordinates[0],
latitude: marker.geometry.coordinates[1],
longitudeDelta: isCluster ? region.longitudeDelta/5 : region.longitudeDelta,
latitudeDelta: isCluster ? region.latitudeDelta/5 : region.latitudeDelta,
}, 200);
}
´´´
Hope this helps.

how is it going with this pr? Would love to import this to our current application!

I'm working on this for android. Would be great if someone had knowledge if it's possible to use react natives view stuff as a custom renderer. And if so some pointers to how (I don't know much Java)
My original idea was just to make our design in Java but would be nicer to use React.

I have a working Hack (sofar) for doing this in android.
you need to make getIcon in AirMapMarker public also add implements ClusterItem
then in AirMapView add something like this
    private class MarkerRenderer extends DefaultClusterRenderer<AirMapMarker> {

        public MarkerRenderer(ThemedReactContext reactContext) {
            super(reactContext.getApplicationContext(), map, mClusterManager);
        }

        @Override
        protected void onBeforeClusterItemRendered(AirMapMarker post, MarkerOptions markerOptions) {
            markerOptions.icon(post.getIcon());
        }

        @Override
        protected void onBeforeClusterRendered(Cluster<AirMapMarker> cluster, MarkerOptions markerOptions) {

            AirMapMarker first = cluster.getItems().iterator().next();
            markerOptions.icon(first.getIcon());
        }

        @Override
        protected boolean shouldRenderAsCluster(Cluster cluster) {
            // Always render clusters.
            return cluster.getSize() > 1;
        }
    }

    @Override
    public boolean onClusterClick(Cluster<AirMapMarker> cluster) {
        AirMapMarker item = cluster.getItems().iterator().next();
        WritableMap event;
        event = makeClickEventData(item.getPosition());
        event.putString("action", "marker-press");
        event.putString("id", item.getIdentifier());
        manager.pushEvent(this, "onMarkerPress", event);
        return true;
    }

    @Override
    public void onClusterInfoWindowClick(Cluster<AirMapMarker> cluster) {
        // Does nothing, but you could go to a list of the users.
    }

    @Override
    public boolean onClusterItemClick(AirMapMarker item) {
        WritableMap event;
        event = makeClickEventData(item.getPosition());
        event.putString("action", "marker-press");
        event.putString("id", item.getIdentifier());
        manager.pushEvent(this, "onMarkerPress", event);
        return true;
    }

    @Override
    public void onClusterItemInfoWindowClick(AirMapMarker item) {
        // Does nothing, but you could go into the user's profile page, for example.
    }

    @Override
    public void onMapReady(final GoogleMap map) {
        this.map = map;
        this.map.setInfoWindowAdapter(this);
        this.map.setOnMarkerDragListener(this);
        this.mClusterManager = new ClusterManager<AirMapMarker>(this.getContext(), map);
        mClusterManager.setRenderer(new MarkerRenderer(this.context));

        manager.pushEvent(this, "onMapReady", new WritableNativeMap());

        final AirMapView view = this;
        map.setOnCameraIdleListener(mClusterManager);
        map.setOnMarkerClickListener(mClusterManager);
        map.setOnInfoWindowClickListener(mClusterManager);
        mClusterManager.setOnClusterClickListener(this);
        mClusterManager.setOnClusterInfoWindowClickListener(this);
        mClusterManager.setOnClusterItemClickListener(this);
        mClusterManager.setOnClusterItemInfoWindowClickListener(this);
        mClusterManager.cluster();

   public void addFeature(View child, int index) {
        // Our desired API is to pass up annotations/overlays as children to the mapview component.
        // This is where we intercept them and do the appropriate underlying mapview action.
          if(child instanceof AirMapMarker) {
            AirMapMarker annotation = (AirMapMarker) child;
//            annotation.addToMap(map);
            mClusterManager.addItem(annotation);
            features.add(index, annotation);
            Marker marker = (Marker) annotation.getFeature();
            markerMap.put(marker, annotation);

    public void removeFeatureAt(int index) {
        AirMapFeature feature = features.remove(index);
        if (feature instanceof AirMapMarker) {
             mClusterManager.removeItem((AirMapMarker) feature);
        }else{
            feature.removeFromMap(map);
        }
    }

Maybe there where some more minor things but that is pretty much it.
Also i commented out
map.setOnInfoWindowClickListener
map.setOnMarkerClickListener

I would like to collaborate on how one would do the cluster indicator in a efficent way.

Any progress with this PR? I am dying to see this feature since I am dealing with thousands of markers and for now performance is simply tragic.

@nehvaleem it looks like some others in this thread have investigated the android side of things but nothing has made it into this branch.
If we can come up with a good general clustering solution that doesn't inhibit the non-clustering use case, then I am all for adding it to this library.

@danielreuterwall
I've tried your code but i got an error
failed to create cluster {"line":85494,"column":34,"sourceURL":"http://<IP_ADDRESS>:19001/node_modules/react-native-scripts/build/bin/crna-entry.bundle?platform=ios&dev=true&strict=false&minify=false&hot=false&assetPlugin=expo/tools/hashAssetFiles"}
I've tried with these two json for the test, load them as places!
https://github.com/mapbox/supercluster/tree/master/test/fixtures
Any tips? In case i've misunderstanding the code :/
Thx a lot!

My full implementation working on android using supercluster
`
import isEqual from 'lodash.isequal';
import React, { Component } from 'react';
import { StyleSheet, View, Dimensions } from 'react-native';
import MapView from 'react-native-maps';
import supercluster from 'supercluster';
import MapClusterMarker from './map-cluster-marker';
const { width, height } = Dimensions.get('window');
const ASPECT_RATIO = width / height;
const LATITUDE = 31.8018895; // your starting lat
const LONGITUDE = -85.9572283; // your starting lng
const LATITUDE_DELTA = 0.0922;
const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;
const SPACE = 0.01;
export default class Map extends Component {
constructor(props) {
super(props);
this.createCluster = this.createCluster.bind(this);
this.getMarkers = this.getMarkers.bind(this);
this.getZoomLevel = this.getZoomLevel.bind(this);
this.onRegionChange = this.onRegionChange.bind(this);

this.state = {
  region: {
    latitude: LATITUDE,
    longitude: LONGITUDE,
    latitudeDelta: LATITUDE_DELTA,
    longitudeDelta: LONGITUDE_DELTA,
  }
};

const cluster = this.createCluster(this.props.screenProps);
const markers = this.getMarkers(cluster, this.state.region);

this.state['cluster'] = cluster;
this.state['markers'] = markers;

}
createCluster(props) {
const cluster = supercluster({
radius: 75,
maxZoom: 16,
});
const { geoData } = props;

const places = geoData .map( geo => {
  return {
    "type": "Feature",
    "geometry": {"type": "Point", "coordinates": [geo.lng, geo.lat]},
  };
});

try {
  cluster.load(places);
  return cluster;
}
catch(e) {
  console.debug('failed to create cluster', e);
}

}
getMarkers(cluster, region) {
const padding = 0;
return cluster.getClusters([
region.longitude - (region.longitudeDelta * (0.5 + padding)),
region.latitude - (region.latitudeDelta * (0.5 + padding)),
region.longitude + (region.longitudeDelta * (0.5 + padding)),
region.latitude + (region.latitudeDelta * (0.5 + padding)),
], this.getZoomLevel());
}
getZoomLevel(region = this.state.region) {
// http://stackoverflow.com/a/6055653
const angle = region.longitudeDelta;
// 0.95 for finetuning zoomlevel grouping
return Math.round(Math.log(360 / angle) / Math.LN2);

}
componentWillReceiveProps(nextProps) {
const cluster = this.createCluster(nextProps.screenProps);
const markers = this.getMarkers(cluster, this.state.region);
this.setState({
  cluster: cluster,
  markers: markers
});

}
onRegionChange(region) {
if (this._regionChangeTimer !== null) {
clearTimeout(this._regionChangeTimer);
}
this._regionChangeTimer = setTimeout(() => {
this.setState({
region: region,
});
this._regionChangeTimer = null;
}, 150);
}
componentDidUpdate(prevProps, prevState) {
if (!isEqual(prevState.region, this.state.region)) {
this.setState({
markers: this.getMarkers(this.state.cluster, this.state.region)
});
}
}
renderMarkers() {
return this.state.markers.map( (marker, i) => {
return (
<MapView.Marker
key={i}
coordinate={{
latitude: marker.geometry.coordinates[1],
longitude: marker.geometry.coordinates[0],
}}
>
<MapClusterMarker {...marker} />
</MapView.Marker>
);
})
}
render() {
return (

{this.renderMarkers()}

);
}
}
const styles = StyleSheet.create({
container: {
...StyleSheet.absoluteFillObject,
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#f4f4f4',
},
map: {
...StyleSheet.absoluteFillObject,
},
});
`
Thanks to @danielreuterwall  and @i-tu  above.

@jayesbe ,
I have initialized supercluster and react-native maps.But still,I am not able to
import MapClusterMarker from './map-cluster-marker';

@kajalmittal .. the map-cluster-marker is your custom marker component. did you create one ?
eg

import React, { Component } from 'react';
import { StyleSheet, View } from 'react-native';
import Svg, { Circle, Text } from 'react-native-svg';
import Icon from 'react-native-vector-icons/MaterialIcons';

export default class MapClusterMarker extends Component {

  setNativeProps(props) {
    this.refs['marker'].setNativeProps(props);
  }

  render() {
    const { circleColour, textColour } = this.props;

    if (!this.props.hasOwnProperty('properties') ||
        !this.props.properties.hasOwnProperty('cluster') ||
        !this.props.properties.cluster)
    {
      return (
        <Icon ref="marker" name="place" size={24} color={circleColour} />
      );
    }

    const pointCount = this.props.properties.point_count_abbreviated;
    const height = 50;
    const width = 50;
    const fontSize = 20;

    return (
      <View ref="marker">
        <Svg
          height={height}
          width={width}
        >
          <Circle
            cx={width / 2}
            cy={height / 2}
            strokeWidth={0}
            r="25"
            fill={circleColour}
            fillOpacity={0.5}
          />
          <Circle
            cx={width / 2}
            cy={height / 2}
            strokeWidth={0}
            r="20"
            fill={circleColour}
          />
          <Text
            fill={textColour}
            fontSize={fontSize}
            // fontWeight="bold"
            strokeWidth={0}
            x={width / 2}
            y={(height / 2) - (fontSize / 2)}
            dy={fontSize * -0.25}
            textAnchor="middle"
          >
          {pointCount}
          </Text>
        </Svg>
      </View>
    );
  }
}

MapClusterMarker.propTypes = {
  circleColour: React.PropTypes.string,
  textColour: React.PropTypes.string,
};

MapClusterMarker.defaultProps = {
  circleColour: "#333", // #2b87a2
  textColour: 'white'
};

@jayesbe Nice code, thanks a lot. But I find that you didn't define _regionChangeTimer anytime.

You can try this. It works for me :) https://github.com/venits/react-native-map-clustering
It is the simplest solution right now.

You can try this. It works for me :) https://github.com/venits/react-native-map-clustering
It is the simplest solution right now.

@yonahforst this PR is really old and sadly somehow it didn't make it in the repo. Lot of things changed in the module since then and the supercluster solution works pretty well.
I will close the PR (we're trying to clean up as much as possible) but please ping me if you think you could update it to work with the last code and also android side 🤗
Thanks for all your effort :)

const cluster = this.createCluster(this.props.screenProps);

What is this.props.screenProps ? logically looks like marker list


Address flakiness of http2 flood test in CPU heavy builds

Risk Level: Low, test only
Testing: Unit tests
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A
Fixes #21019

will this fix #27886 also ?


[Add] basename command integration tests

You don't have to write anything.
This issue is made as a TODO list.

Added integration tests


DataGrid: Bug - Incorrect DataSource Change Detection in Grid Component Due to Boxing

🐛 Bug Report
Title
Bug: Incorrect DataSource Change Detection in Grid Component Due to Boxing
Description
Problem
The current implementation of the OnParametersSetAsync method in the Grid component incorrectly detects changes in the data source, leading to unnecessary refreshes and potential performance issues.
Current Behavior
The existing code uses a comparison that can be affected by boxing:
var _newItemsOrItemsProvider = Items ?? (object?)ItemsProvider;
var dataSourceHasChanged = _newItemsOrItemsProvider != _lastAssignedItemsOrProvider;

This comparison almost always evaluates to true, even when the actual data source hasn't changed.
Expected Behavior
The data source change detection should only return true when either Items or ItemsProvider has actually changed.
Root Cause
The primary issue is boxing, not the reference comparison itself. When Items or ItemsProvider is assigned to _newItemsOrItemsProvider (of type object), boxing occurs if they are value types. This boxing creates a new object instance each time, even if the underlying value hasn't changed. As a result, the reference comparison (!=) always detects a "change" because it's comparing two different boxed instances.
Even for reference types, the cast to object? might create a new reference in some cases, leading to false positives in the change detection.
Solution
Replace the current comparison with a more robust equality check that avoids boxing:
var dataSourceHasChanged = !Equals(Items, _lastAssignedItems) || !Equals(ItemsProvider, _lastAssignedItemsProvider);

This solution uses the Equals method to compare Items and ItemsProvider separately with their last assigned values, avoiding the boxing issue entirely.
Additional Context
This boxing issue can lead to unnecessary data refreshes and re-renders, potentially impacting the performance of applications using this Grid component, especially with large datasets or frequent updates.
Steps to Reproduce

Use the Grid component with either Items or ItemsProvider set.
Perform actions that would trigger OnParametersSetAsync without actually changing the data source.
Observe that the grid unnecessarily refreshes its data.

Proposed Fix
Replace the problematic lines in OnParametersSetAsync with:
var dataSourceHasChanged = !Equals(Items, _lastAssignedItems) || !Equals(ItemsProvider, _lastAssignedItemsProvider);
if (dataSourceHasChanged)
{
    _lastAssignedItems = Items;
    _lastAssignedItemsProvider = ItemsProvider;
    _asyncQueryExecutor = AsyncQueryExecutorSupplier.GetAsyncQueryExecutor(Services, Items);
}

This change ensures accurate detection of data source changes without boxing, preventing unnecessary refreshes.
Impact
This fix will improve the performance and efficiency of the Grid component by reducing unnecessary data refreshes and re-renders caused by false positive change detections due to boxing.

I will include fix in existing PR #2512

Closing this as PR #2512 hasbeen merged. Will be in next release,


darwin.libunwind: fix source

Motivation for this change
Unlike #21003 this fixes the julia build and doesn't break ruby.
Since this was the same sha as the linux package nix just used that instead. 🙁
Fixes #20977.
Things done

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

[ ] NixOS
[x] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

/cc @vbgl

LGTM! Thanks.

Perhaps this should go into first staging, it rebuilds about 4000 packages.

Merged  into staging https://github.com/NixOS/nixpkgs/commit/a01a5ed925552fcd7df113ce043d936f11f418b3.

Merged into master by https://github.com/NixOS/nixpkgs/commit/86e4c9ed463b0e71e046c902638c0c0ed99e666f


Deployment of WVD Agent and Boot Loader?

What about the WVD Agent & WVD Agent Boot Loader?
Should they be installed manually on the new machines, with the registration token?
Will the same process that adds the machines deploy these services on them automatically? If so, is there any preparation needed for this?

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

ID: 8b6a3e65-41c2-2b42-2a04-64532ba021d3
Version Independent ID: e24ba292-e0fd-20d7-611c-30b1b664390d
Content: Expand existing host pool with new session hosts - Azure
Content Source: articles/virtual-desktop/expand-existing-host-pool.md
Service: virtual-desktop
GitHub Login: @Heidilohr
Microsoft Alias: helohr

Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

The process in this article uses the Azure Virtual Desktop service to deploy the new VMs, so it automatically adds the agent and boot loader. You only need to do this manually if you create VMs outside of the Azure Virtual Desktop service and add them to a host pool.
#please-close


Use CSS variables

Now supported in all major browsers! http://caniuse.com/#feat=css-variables

This is not really applicable since there is little to no repetition of values in the stylesheet (for now, at least).


fix: Fixed correct settings path

This fixes the settings bug introduced by the last merge. Sorry about that.

Thank you!


feat: dev config tool update (fix #298)

Please check if the PR fulfills these requirements

[x] It's submitted to right branch according to our branching model
[x] It's right issue type on title
[x] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)
[x] It does not introduce a breaking change or has description for the breaking change

Description
issue

https://github.com/nhn/tui.image-editor/issues/298

npm install fails to install normally on nodejs stable version

Error output when installing karma version 1.x.x
Fixed in package-lock.json update, but outputs version compatibility warning.
After all, to update karma, webpack also needs to be updated.

Thank you for your contribution to TOAST UI product. 🎉 😘 ✨

@jinwoo-kim-nhn 바꾸게된 이유와 변경 내역이 github issue로 PR에 연결되어 관리되면 좋을것 같습니다.

fabric 설치 방법이 바뀐다면 readme에 설명도 바뀌어야 할 것 같습니다!