npm-cli.js "start" error

When starting the project v1.0.4 (2/3/2015)
Failed at the react-iTunes-search script 'babel-node server.js
Exit status 1
npm-debug.txt

Hi @benpetersen
Can you try to delete the enitre node-modules folder and do npm install, see if it works? The reason maybe because the different version of babel. Should be able to fix to redo npm install. Let me know if it works. Thanks for reporting, appreciated.

will close it, feel free to open any issue later on. Thanks!


KAFKA-9515: Upgrade ZooKeeper to 3.5.7

A couple of critical fixes:
ZOOKEEPER-3644: Data loss after upgrading standalone ZK server 3.4.14 to 3.5.6 with snapshot.trust.empty=true
ZOOKEEPER-3701: Split brain on log disk full (3.5)
Full release notes:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310801&version=12346098
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Merging to trunk, 2.5 and 2.4 branches.


Test for MemoryMapStorage creation and discard (disabled by default)

A small test that you can activate manually to check the MemoryMapStorage

discard
creation of thousands of files

For now this is only a test. You can try the behavior on different Systems.


mcrypt library is long ago abandoned

The upstream we all derive from hasn't been touched by its authors in 8 years. The last update in Debian was 5 or 6 years ago. RHEL has dropped it.
I think it's fairly a straight forward task to replace everything we use from mcrypt in yii\base\Security. The API will be backwards compatible and I think encrypted data will be compatible too, if we do it right.
So I think we can remove mcrypt from Security without it being a breaking change. The headache for users would be the openssl extension requirement. But I think that is widely deployed already because PHP relies on it for all the SSL io in built-ins.
There may be small gains too, e.g. better random numbers on Windows.
I will start work this week if there's consensus to do this.

I confirm that everything said about mcrypt isn't maintained is true. It's good to replace it and openssl looks like a good alternative.

Not sure about milestone though since while API could be compatible, requirements won't be.

In terms of requirements, on Linux, BSD or most Unix platforms, OpenSSL will be required only for encrypt and decrypt. On Windows, OpenSSL will be required also for randomness.
So requirements will change but OpenSSL will, on *nux/nix platforms, be not a requirement for Yii but a requirement for encrypt/decrypt, which is much weaker.

OpenSSL extension is required for Composer to download from secure locations so it's likely installed.

completely untested first draft
only look at if you're really interested, it's not ready for real review

Custodians of PHP vote to keep a crypto lib abandoned in 2003 in PHP 7

its definitely time to upgrade to OpenSSL or better. Requirements are less important in my opinion.

reading the rfc mail list is so painful. PHP is not great because of their custodians but despite of them.
The scalar typehinting voting right now is a huge example.

@Faryshta yup, but let's keep on topic.

 But I couldn't get openssl_en/decrypt to work with raw binary data. Any help greatly appreciated.
I added unit tests and test vectors to test:

Forwards compat: encrypt data with Yii 2.0.2 using Mcrypt and decrypt with my new version using OpenSSL
Backwards compat: encrypt data with my new version using OpenSSL and decrypt with Yii 2.0.2 using Mcrypt

The SecurityTest class also has the test vector generator I needed. The whole thing is confusing and I don't know how to organize this so we have regression tests for forwards and backwards compact in future releases of Yii. Again,  any help greatly appreciated.

for reference: https://twitter.com/ircmaxell/status/564919926700658689

Not sure what to do with base64encode. All PHP implementations I'm aware of are using it.
I guess we need to move old implementation into tests in order to check backwards compatibility.

i may be wrong but according to php.net it was updated at 5.6 version at least once
http://php.net/manual/en/function.mcrypt-encrypt.php
and is native cipher support. why to make it harder?
also
openssl
https://bugs.php.net/search.php?cmd=display&search_for=openssl+related
mcrypt
https://bugs.php.net/search.php?cmd=display&package_name[]=mcrypt+related
mature doesn't need to be changed often

@yurii-github PHP's library is a wrapper around C mcrypt that was abandoned in 2003. There are about 10 bugs most probably related to the algorithm itself that aren't going to be fixed since some of these are 12 years old.


chore: Update README.md

This is a testing PR for QA automation. Do not merge!

QA done. closing


Run failed on linux

`parallels@parallels-Parallels-Virtual-Platform:~/Desktop/ltcs$ flutter doctor -v
[✓] Flutter (Channel stable, 3.22.2, on Ubuntu 20.04.6 LTS 5.15.0-107-generic, locale zh_CN.UTF-8)
• Flutter version 3.22.2 on channel stable at /usr/bin/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 761747bfc5 (2 周前), 2024-06-05 22:15:13 +0200
• Engine revision edd8546116
• Dart version 3.4.3
• DevTools version 2.34.3
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /home/parallels/Android/Sdk
✗ cmdline-tools component is missing
Run path/to/sdkmanager --install "cmdline-tools;latest"
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run flutter doctor --android-licenses to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/linux#android-setup for more details.
[✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Linux toolchain - develop for Linux desktop
• clang version 10.0.0-4ubuntu1
• cmake version 3.16.3
• ninja version 1.10.0
• pkg-config version 0.29.1
[✓] Android Studio (version 2023.3)
• Android Studio at /home/parallels/Downloads/android-studio-2<IP_ADDRESS>-linux/android-studio
• Flutter plugin version 79.0.2
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
[✓] Connected device (1 available)
• Linux (desktop) • linux • linux-x64 • Ubuntu 20.04.6 LTS 5.15.0-107-generic
[✓] Network resources
• All expected network resources are available.
! Doctor found issues in 2 categories.
parallels@parallels-Parallels-Virtual-Platform:~/Desktop/ltcs$ flutter run
Launching lib/main.dart on Linux in debug mode...
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/include/media_kit_video/video_output.h:23:44: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/include/media_kit_video/video_output.h:24:45: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/media_kit_video_plugin.cc:43:53: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/media_kit_video_plugin.cc:43:53: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/include/media_kit_video/video_output.h:23:44: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/include/media_kit_video/video_output.h:24:45: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/texture_sw.cc:52:29: error: comparison of integer expressions of different signedness: ‘guint32’ {aka ‘unsigned int’} and ‘gint32’ {aka ‘int’} [-Werror=sign-compare]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/texture_sw.cc:53:30: error: comparison of integer expressions of different signedness: ‘guint32’ {aka ‘unsigned int’} and ‘gint32’ {aka ‘int’} [-Werror=sign-compare]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/include/media_kit_video/video_output.h:23:44: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/include/media_kit_video/video_output.h:24:45: error: converting to non-pointer type ‘long int’ from NULL [-Werror=conversion-null]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/texture_gl.cc:72:43: error: comparison of integer expressions of different signedness: ‘guint32’ {aka ‘unsigned int’} and ‘gint32’ {aka ‘int’} [-Werror=sign-compare]
/home/parallels/Desktop/ltcs/linux/flutter/ephemeral/.plugin_symlinks/media_kit_video/linux/texture_gl.cc:73:44: error: comparison of integer expressions of different signedness: ‘guint32’ {aka ‘unsigned int’} and ‘gint32’ {aka ‘int’} [-Werror=sign-compare]
Building Linux application...
Error: Build process failed
`

Doesn't happen for me... the CI succeeds.


Introducing disjointedness between Information and Non-Information Resources

[!NOTE]
(Submitted by @plbt5 and @ajnelson-nist.)
This proposal is split off from Issue 606.  This proposal does not address any of the UUID discussion from 606.

Background
UCO does not currently account for explicitly representing the distinction between a physical resource that extends in time and space, like a device or a person, and a digital (web) resource that only lives in the cyber-domain, e.g., <https://caseontology.org/index.html>. Since both are clearly disjoint from each other, and because there are many objects in UCO that are either one or the other, such disjointedness must be specified case by case. See for instance Issue #536 , which partially addressed a question around a graph-individual representing a downloadable file (e.g., <http://example.org/file.zip>).
We remind us of the distinction that has already been identified by RDF between information and non-information resources. This ended up in RFC9110 HTTP Semantics. We have depicted their application and distinctions in Figure 1 below:

Figure 1 - Information and non-information resources: their relationship and differences
(Note: For the purposes of this proposal, please consider URI and IRI as synonymous.)
The distinction between an Information Resource (IR) and Non-Information Resource (NIR) cannot be determined from the URI itself but from the response that one gets from the server. If the URI concerns a NIR the server cannot respond with data because there does not yet exists something like Elephant-Over-IP or Paul-Over-IP a.k.a. "Beam me up, Scotty" in the protocols. Instead, the server will respond with a HTTP-303 status, redirecting to a URI that is an Information Resource.  Visiting the NIR thus discloses information about the NIR as opposed to the real thing itself.
This kind of behavior of the webserver leaves the determination about whether a resource is a NIR or an IR as a matter of perception by the client.  For instance, some services may differentially serve a page to some users, but not others, like with an international hotel that gives its home page to in-country visitors, but a language-specific page for external-appearing visitors.  This is a case where the home page is perceived as an IR to in-country visitors, and a NIR to out-of-country visitors.  One graph holding perspectives from multiple geographies must be able to tolerate a resource being IR and NIR.

Meanwhile, other RDF resources encoded in a graph remain truly in a set of concepts that will never be information resources, such as people or devices.  Hence, we find a need for specializing non-information resource further with a class of things that will never be information resources.
This distinction is instrumental for a lot of things that are built with RDF(S) and OWL, and it is something that UCO should at least recognize as current practice.
Requirements

Requirement 1
Allow UCO to unequivocally determine in a graph whether a resource is either never an information resource or possibly an information resource.
Requirement 2
A single web resource MUST be able to be represented as an IR and/or an NIR as appropriate at different situations, e.g., due to perception about authorization, location, specific targeting and more.
A resource can be both an IR and a NIR because it can be perceived as an IR or NIR depending on constraints or business rules as implemented by the server, e.g., serving pages in different languages when requested from different geographical locations.
(Proposal flow note: This proposal suggests a solution and competencies before providing a risk/benefit analysis.)
Solution suggestion
The implementation would first need to introduce the distinction between Non-Information and Information Resources. This would become two additional near-top-level classes, under core:UcoThing.  This would be a nod to the concepts really being RDFS concepts, but not defined with RDFS IRIs.  We should also avoid entailing RDFS semantics of rdfs:Resource being the top-level class, because of the tension such would create with OWL and owl:Thing being the top-level class.
Next, another distinction should be introduced to acknowledge Never-Information Resources, and these being disjoint with the IR and NIR. This allows UCO to follow the reality where an IR can change into an NIR, as explained in Competency 1.
To that end, we suggest to introduce the following concepts in UCO:
core:NonInformationResource
	rdfs:subClassOf core:UcoThing ;
	.
core:InformationResource
	rdfs:subClassOf core:UcoThing ;
	.
core:NeverInformationResource
	rdfs:subClassOf core:NonInformationResource ;
	owl:disjointWith core:InformationResource ;
	.

We also introduce observable:WebResource as a parent to observable:WebPage, to acknowledge web resources that are not yet known to be an IR or NIR, and, to acknowledge Webpages that are always to be considered an IR:
observable:WebResource
	rdfs:subClassOf observable:ObservableObject ;
	.
observable:WebPage
	rdfs:subClassOf observable:WebResource ;
	rdfs:subClassOf core:InformationResource ;
	.

Visually, this renders as follows, with green nodes new classes, and the red link a new disjointedness:
flowchart BT

  core_UcoThing[core:UcoThing]
  core_InformationResource[core:InformationResource]
  core_NonInformationResource[core:NonInformationResource]
  core_NeverInformationResource[core:NeverInformationResource]
  core_UcoObject[core:UcoObject]
  core_Item[core:Item]
  observable_Observable[observable:Observable]
  observable_ObservableObject[observable:ObservableObject]
  observable_WebResource[observable:WebResource]
  observable_WebPage[observable:WebPage]

style core_InformationResource stroke:#0f0;
style core_NeverInformationResource stroke:#0f0;
style core_NonInformationResource stroke:#0f0;
style observable_WebResource stroke:#0f0;

core_InformationResource -- ⊂ --> core_UcoThing
core_NonInformationResource -- ⊂ --> core_UcoThing
core_NeverInformationResource -- ⊂ --> core_NonInformationResource
core_InformationResource x-- ⋂=∅ --x core_NeverInformationResource
linkStyle 3 color:red,stroke:red;

core_UcoObject -- ⊂ --> core_UcoThing
core_Item -- ⊂ --> core_UcoObject
observable_Observable -- ⊂ --> core_UcoObject
observable_ObservableObject -- ⊂ --> core_Item
observable_ObservableObject -- ⊂ --> observable_Observable
observable_WebResource -- ⊂ --> observable_ObservableObject
observable_WebPage -- ⊂ --> core_InformationResource
observable_WebPage -- ⊂ --> observable_WebResource

Apart from the above additions to UCO, we suggest to perform an initial alignment. The Risks section should make clear the benefit of such alignment, particularly pertaining to some existing practices (outside of UCO) on designating graph nodes with RDF types analogous to UCO's identity:Person and observable:WebPage.  The rationale followed is - can this owl:Thing ever be downloaded with some browser or command-line tool?
action:Action
	rdfs:subClassOf core:NeverInformationResource ;
	.
core:Event
	rdfs:subClassOf core:NeverInformationResource ;
	.
core:UcoInherentCharacterizationThing
	rdfs:subClassOf core:NeverInformationResource ;
	.
identity:Organization
	rdfs:subClassOf core:NeverInformationResource ;
	.
identity:Person
	rdfs:subClassOf core:NeverInformationResource ;
	.
observable:Device
	rdfs:subClassOf core:NeverInformationResource ;
	.
observable:URL
	rdfs:subClassOf core:NeverInformationResource ;
	.

Competencies demonstrated
Competency 1
Say the webpage of a multilingual company (MC) is being accessed by two market analysts in a multinational organization, who routinely contribute to a shared knowledge base in the organization.  Their offices are in different countries that happen to use languages MC supports, Japan and France.  MC's default language is Japanese.
The Japanese analyst visits the home page, https://mc.example.co.jp/, and is served content from that URL.  The French analyst visits the home page, https://mc.example.co.jp/, and is 303-redirected to https://mc.example.co.jp/lang-fr/ by server-side client-geolocation rules.
Neither analyst knows the other is trying to access https://mc.example.co.jp/.
Competency Question 1.1
What are the representations of the Japanese analyst and the French analyst, using InformationResource, NonInformationResource, NeverInformationResource, WebResource, and/or WebPage?
Result 1.1
The Japanese analyst:
<https://mc.example.co.jp/>
	a observable:WebPage ;
	.

The French analyst:
<https://mc.example.co.jp/>
	a
		core:NonInformationResource ,
		observable:WebResource
		;
	.
<https://mc.example.co.jp/lang-fr/>
	a observable:WebPage ;
	.

Even if pooled in the shared knowledge base, this total knowledge view remains consistent (i.e. does not raise SHACL validation errors).
<https://mc.example.co.jp/>
	a
		core:NonInformationResource ,
		observable:WebPage
		;
	.
<https://mc.example.co.jp/lang-fr/>
	a observable:WebPage ;
	.

This provides an example of a web resource that is, by differential service, contingently a InformationResource and/or a NonInformationResource.
Competency Question 1.2
Are the views consistent when pooled into one graph without any notes on time of observation (i.e., does not raise SHACL validation issues)?
Result 1.2
Yes.  The testing in PR 610 confirms no SHACL violations are raised.  The visual display of the classes and how this example doesn't hit a class-disjointedness issue is as follows (using "⊂" for subclassing (rdfs:subClassOf), "⋂=∅" for class-disjointedness (owl:disjointWith), and "∈" for instantiation (rdf:type)).
flowchart BT

subgraph TBox
  core_UcoThing[core:UcoThing]
  core_InformationResource[core:InformationResource]
  core_NonInformationResource[core:NonInformationResource]
  core_NeverInformationResource[core:NeverInformationResource]
  core_UcoObject[core:UcoObject]
  core_Item[core:Item]
  observable_Observable[observable:Observable]
  observable_ObservableObject[observable:ObservableObject]
  observable_WebResource[observable:WebResource]
  observable_WebPage[observable:WebPage]
end

subgraph ABox
  wp1[https://mc.example.co.jp/]
  wp2[https://mc.example.co.jp/lang-fr]
end

style core_InformationResource stroke:#0f0;
style core_NeverInformationResource stroke:#0f0;
style core_NonInformationResource stroke:#0f0;
style observable_WebResource stroke:#0f0;

core_InformationResource -- ⊂ --> core_UcoThing
core_NonInformationResource -- ⊂ --> core_UcoThing
core_NeverInformationResource -- ⊂ --> core_NonInformationResource
core_InformationResource x-- ⋂=∅ --x core_NeverInformationResource
linkStyle 3 color:red,stroke:red;

core_UcoObject -- ⊂ --> core_UcoThing
core_Item -- ⊂ --> core_UcoObject
observable_Observable -- ⊂ --> core_UcoObject
observable_ObservableObject -- ⊂ --> core_Item
observable_ObservableObject -- ⊂ --> observable_Observable
observable_WebResource -- ⊂ --> observable_ObservableObject
observable_WebPage -- ⊂ --> core_InformationResource
observable_WebPage -- ⊂ --> observable_WebResource

wp1 -- ∈\n(per French analyst) --> core_NonInformationResource
wp1 -- ∈\n(per French analyst) --> observable_WebResource
wp1 -- ∈\n(per Japanese analyst) --> observable_WebPage
wp2 -- ∈\n(per French analyst) --> observable_WebPage

Competency 2
This competency gives a scenario provided as a Risk in the first version of this proposal.
There is a user interface design option available for web services that choose to provide content for browser-based users and RDF-based users.  They can choose to separate the RDF individuals from the web pages documenting those individuals; or, they can choose to provide the browser-friendly contents (i.e., HTML, maybe with graphics) describing an individual at that individual's IRI.
Suppose a personnel indexing service is deployed that uses home pages as person identifiers for an example organization.  Their knowledge graph is available to a graph consumer who also uses UCO, and we assume the IR/NIR/Never-IR distinction of this proposal is adopted.  This statement is in the graph provided by the service:
<http://example.org/~bob>
	a foaf:Person ;
	foaf:givenName "Bob" ;
	.

And, http://example.org/~bob, when visited in a browser, is served as HTML.  A crawler used by the graph consumer logs this in its knowledge graph, after stumbling on Bob's home page through an intranet traversal:
<http://example.org/~bob>
	a observable:WebPage ;
	.

Competency Question 2.1
What encodings are possible to describe the graph-individual <http://example.org/~bob>?
This question stems from UCO's demonstrations to date, and is presented to motivate the need for UCO to clarify its classes URL and WebPage in particular.
Result 2.1

<http://example.org/~bob> a observable:WebPage . - The graph-individual pulls down in a browser as HTML.  From the crawler's perspective, this is a WebPage.
<http://example.org/~bob> a identity:Person . - The graph-individual has a type of foaf:Person in the personnel service's graph, so it feels natural to translate that statement over to UCO's identity:Person.

Unfortunately, if both of those interpretations were taken, an inconsistency would be reached: identity:Person is under core:NeverInformationResource, and observable:WebPage is under core:NeverInformationResource, entailing membership in two disjoint sets.

<http://example.org/~bob> a observable:URL . - The graph-individual can be seen as describing itself.  However, this is another instance of the confusion discussed in Issues #534 and #536 , which addressed modeling a URL that yields a file-download on visit.  In Issue 536, a disjointedness between URL and File was adopted, but several significant questions were left unaddressed.

This proposal takes a step towards addressing the question of what higher-level classes should be made disjoint, rather than piecemeal assignment of some ObservableObject subclasses.
Competency 2.2
How can the personnel indexing service's graph integrate into the UCO-based graph?
Result 2.2
There is some challenge in integrating the personnel indexing service's graph into an environment where information resources and non-information resources are held disjoint.
Integration of such a data source would need to split the resource http://example.org/~bob into independent entities, likely with a new identity:Person node.  Other assertions on Bob from the personnel graph, such as name information, would likely need to migrate into Facets defined in the UCO identity: namespace, rather than be carried over with the FOAF vocabulary.  In this case, some FOAF vocabulary can still be used to preserve links.
The below graph would be derived from the personnel graph, and added to the crawler's knowledge base.  The personnel graph would not be directly added.
<http://example.org/~bob>
	a observable:WebPage ;
	.
kb:Person-a3d3af3d-ea1d-47f6-bc02-ac334ded6549
	a identity:Person ;
	core:name "Bob" ;
	core:hasFacet kb:SimpleNameFacet-5e939a71-078c-4ddd-a6fe-3635288b3f24 ;
	.
kb:SimpleNameFacet-5e939a71-078c-4ddd-a6fe-3635288b3f24
	a identity:SimpleNameFacet ;
	identity:givenName "Bob" ;
	.
kb:Relationship-6c57d1cd-8a10-4163-98bd-93d3d2e15b00
	a core:Relationship ;
	core:isDirectional true ;
	core:kindOfRelationship "Has_Company_Homepage" ;
	core:source kb:Person-a3d3af3d-ea1d-47f6-bc02-ac334ded6549 ;
	core:target <http://example.org/~bob> ;
	.

# Preserve link between new Bob node and Bob's homepage with FOAF vocabulary.  Add FOAF types entailed by linking properties.
<http://example.org/~bob>
	a foaf:Document ;
	foaf:primaryTopic kb:Person-a3d3af3d-ea1d-47f6-bc02-ac334ded6549 ;
	.
kb:Person-a3d3af3d-ea1d-47f6-bc02-ac334ded6549
	a foaf:Person ;
	foaf:homepage <http://example.org/~bob> ;
	.

# Carry some of the FOAF data to UCO Person node.
kb:Person-a3d3af3d-ea1d-47f6-bc02-ac334ded6549
	foaf:givenName "Bob" ;
	.

Risk / Benefit analysis
Benefits
Adding the specialization class NeverInformationResource moves further to realizing an assumed disjunction in RFC 9110's HTTP Semantics between "Information Resource" and "Non Information Resource".  In practice, InformationResource and NonInformationResource can be conflated when graphs are built from multiple perspectives.  This proposal prevents some conflations that should not be possible, especially ones where physical things could accidentally be implied to be downloadable.
Aligning WebPage with a higher-level concept should bring a better understanding to how to use it.  This is needed since UCO's WebPage and URL can become mixed with other concepts due to the fundamental nature of RDF being about using IRIs and UCO describing URLs.  observable:WebPage has been lacking to date in UCO demonstrations, which has raised confusion in Ontology Committee calls.  Chances to clarify this class should be taken.
Understanding what WebPage is and isn't may be especially important in resolving ReactionsListFacet from #374.  A social media post is often viewable as a web page, so UCO usage could easily see something like this in some adopter's graph analyzing some (example) social network:
@prefix ex: <http://example.org/ontology/> .

ex:SocialCompanyPost
	a owl:Class ;
	rdfs:comment "A social media post post on the network provided by Example Social Company, Inc."@en ;
	rdfs:subClassOf
		uco-observable:WebPage ,
		uco-observable:Post
		;
	.
ex:esciRepostOf
	a owl:ObjectProperty ;
	rdfs:domain ex:SocialCompanyPost ;
	rdfs:range ex:SocialCompanyPost ;
	.
ex:esciText
	a owl:DatatypeProperty ;
	rdfs:domain ex:SocialCompanyPost ;
	rdfs:range xsd:string ;
	.

<http://social.example.com/ExampleUser2/1722027818.0>
	a ex:SocialCompanyPost ;
	ex:esciRepostOf <http://social.example.com/ExampleUser1/1722027486.0> ;
	ex:esciText "lol" ;
	.
<http://social.example.com/ExampleUser1/1722027486.0>
	a ex:SocialCompanyPost ;
	ex:esciText "wow" ;
	.

Risks
Competency 2 illustrates a significant quality-control consideration for how to integrate data from non-UCO graphs.  Agreement on fundamentals is one of the significant challenges of cross-graph interoperability.
The heuristic of "Can this ever be downloaded?" might, or might not, be a sufficient guideline for determining what would be NeverInformationResources.  This could be challenging for some things where records and events are closely tied together.  For instance, a Bitcoin transaction has tightly-intertwined elements of (UCO) Actions and EventRecords.  The action is someone transferring coins, which would (by this proposal's action:Action  alignment) be a NeverInformationResource; however, the action doesn't fully happen without the record being an InformationResource retrievable from the blockchain.  This seems like a situation where it's tempting to say one "downloads the action," which the proposers assume is not a kind of statement UCO should wish to support.  This particular "downloading the action" statement can be avoided by adding a specific disjointedness between action:Action and observable:EventRecord; but, the higher-order disjointedness in this proposal satisfies the same separation, stemming from actions being never-information resources, and leaving it open whether event records can be information resources.
If the alignment core:UcoInherentCharacterizationThing rdfs:subClassOf core:NeverInformationResource . is accepted, the current statement in the ontology core:UcoInherentCharacterizationThing rdfs:subClassOf core:UcoThing . becomes entailed, and no longer needs to be explicitly stated from some perspectives, including with respect to SHACL, and with respect to entailment schemes (whether RDFS or OWL).  However, this divide is one of the foundational statements of UCO, that there are "domain objects" (UcoObject and subclasses) and "non-domain objects" (things that only inhere and characterize other things, and cannot exist without those other things).  Removal of the triple core:UcoInherentCharacterizationThing rdfs:subClassOf core:UcoThing . makes this divide less apparent, because core:UcoInherentCharacterizationThing is no longer among the direct subclasses of core:UcoThing; but, the divide is still present from the axiom core:UcoInherentCharacterizationThing owl:disjointWith core:UcoObject .
This appears to the proposers to be an appropriate adjustment of UCO's foundations, because UCO's foundations include design tenets of RDF.
The alignment of core:UcoInherentCharacterizationThing assumes so far and decides furthermore that it has no subclasses that will ever be downloadable.  Were they downloadable, it seems they would be domain objects (further, ObservableObjects) under UcoObject.  To date, it seems the only inherent characterization thing subclass that comes close to fuzzing the downloadable-or-not divide by bundling URLs is observable:URLHistoryEntry, but that class uses observable:url to and observable:referrerURL to separate observable:URLs.
Visual summary
This figure illustrates the added classes and alignments.  Current disjointedness axioms are also illustrated.
flowchart BT

subgraph AlwaysIR
  observable_WebPage[observable:WebPage]
  core_InformationResource[core:InformationResource]
end
subgraph MaybeIR
  core_IdentityAbstraction[core:IdentityAbstraction]
  core_Item[core:Item]
  core_NonInformationResource[core:NonInformationResource]
  core_UcoObject[core:UcoObject]
  core_UcoThing[core:UcoThing]
  identity_Identity[identity:Identity]
  observable_Observable[observable:Observable]
  observable_ObservableObject[observable:ObservableObject]
  observable_WebResource[observable:WebResource]
end
subgraph NeverIR
  action_Action[action:Action]
  core_Event[core:Event]
  core_NeverInformationResource[core:NeverInformationResource]
  core_UcoInherentCharacterizationThing[core:UcoInherentCharacterizationThing]
  identity_Organization[identity:Organization]
  identity_Person[identity:Person]
  observable_Device[observable:Device]
  observable_URL[observable:URL]
end

style core_InformationResource stroke:#0f0
style core_NonInformationResource stroke:#0f0
style core_NeverInformationResource stroke:#0f0
style observable_WebResource stroke:#0f0

core_InformationResource -- ⊂ --> core_UcoThing
core_NonInformationResource -- ⊂ --> core_UcoThing
core_NeverInformationResource -- ⊂ --> core_NonInformationResource
core_InformationResource x-- ⋂=∅ --x core_NeverInformationResource
linkStyle 3 color:red,stroke:red;

action_Action x-- ⋂=∅ --x core_Event
linkStyle 4 color:red,stroke:red;
action_Action -- ⊂ --> core_UcoObject
action_Action -- ⊂ --> core_NeverInformationResource
core_Event -- ⊂ --> core_NeverInformationResource
core_Event -- ⊂ --> core_UcoObject
core_IdentityAbstraction -- ⊂ --> core_UcoObject
core_Item -- ⊂ --> core_UcoObject
core_UcoInherentCharacterizationThing -- ⊂ --> core_NeverInformationResource
core_UcoInherentCharacterizationThing x-- ⋂=∅ --x core_UcoObject
linkStyle 12 color:red,stroke:red;
core_UcoObject -- ⊂ --> core_UcoThing
identity_Identity -- ⊂ --> core_IdentityAbstraction
identity_Organization -- ⊂ --> core_NeverInformationResource
identity_Organization -- ⊂ --> identity_Identity
identity_Person -- ⊂ --> core_NeverInformationResource
identity_Person -- ⊂ --> identity_Identity
observable_Device -- ⊂ --> core_NeverInformationResource
observable_Device -- ⊂ --> observable_ObservableObject
observable_Observable -- ⊂ --> core_UcoObject
observable_ObservableObject -- ⊂ --> core_Item
observable_ObservableObject -- ⊂ --> observable_Observable
observable_URL -- ⊂ --> core_NeverInformationResource
observable_URL -- ⊂ --> observable_ObservableObject
observable_WebResource -- ⊂ --> observable_ObservableObject
observable_WebPage -- ⊂ --> core_InformationResource
observable_WebPage -- ⊂ --> observable_WebResource

Coordination

Tracking in Jira ticket OCUCO-319
[x] Administrative review completed, proposal announced to Ontology Committees (OCs) on 2024-07-30
[ ] Requirements to be discussed in OC meeting, 2024-08-20
[ ] Requirements Review vote has not occurred

[ ] Requirements development phase completed.
[ ] Solution announced to OCs on TODO-date
[ ] Solutions Approval to be discussed in OC meeting, date TBD
[ ] Solutions Approval vote has not occurred

[ ] Solutions development phase completed.
[ ] Backwards-compatible implementation merged into develop for the next release
[ ] develop state with backwards-compatible implementation merged into develop-2.0.0
[ ] Backwards-incompatible implementation merged into develop-2.0.0
[x] Milestone linked
[ ] Documentation logged in pending release page
[ ] Prerelease publication: CASE develop branch updated to track UCO's updated develop branch
[ ] Prerelease publication: CASE develop-2.0.0 branch updated to track UCO's updated develop-2.0.0 branch

One point I found interesting in doing the alignments is that I think on a closer review, much of UCO could end up being considered as core:NeverInformationResources.  The smaller set of classes is core:InformationResource, which at the moment just has observable:WebPage.  Finding other subclasses of core:InformationResource seems to be an interesting challenge.
I have one potential subclass, which I haven't proposed separately because I've had trouble pinning where in UCO it would be.  I'm providing it here just for discussion, not to augment the proposal.
I think an S3 Object would be another subclass of core:InformationResource and core:ObservableObject.  For instance, take this S3 Object from the DFRWS 2021 challenge:
@prefix drafting: <http://example.org/ontology/drafting/> .

<s3://digitalcorpora/corpora/dfrws/challenge-2021/1_Skimmer_mSD.zip>
    a drafting:S3Object ;
    .

This can be seen in Digital Corpora's object browser here, which offers an alternative (downloadable) view of the S3 object via an HTTP portal.
As a graph-individual, how would that S3 object be classified?  I think the UCO definition, including this IR/NIR proposal, would go at least this far:
drafting:S3Object
    a owl:Class , sh:NodeShape ;
    rdfs:subClassOf
        core:InformationResource ,
        observable:ObservableObject
        ;
    .

I don't think it's a subclass of File, because S3 is an object store, not a file system.

I still do not see the justification for this complexity here and still see a fundamental invalidity at least in the example if maybe(?) not in the underlying proposed change.
The validity issue is that throughout the examples and I believe implied in the proposed solution IRI/URI identifiers are used for UcoObjects that are not necessarily (an in at least one case apparently intentionally) globally unique which is an absolute requirement for CDO object identifiers.
This is a hard stop issue.
We have a long agreed to suggested (SHOULD) form for CDO ids ()(e.g., "https://foo.bar.co/people/4fbcece4-afd5-4cd6-b70e-aab77f930b00") that guarantees global uniqueness as long as the producer assures the provided path and UUID are unique within their controlled domain.
Even if a producer chooses not to use the suggested form they are still required to guarantee global uniqueness of ids for all of their produced content.
This is a HARD stop issue because if this requirement goes away or even softens, the entire ecosystem falls apart.
On the broader issues, I am a bit confused.
Is the core purpose for this to be able to support the HTTP scenarios outlined in Competency 1 and 2?
I don't see any justifying rationale for this very fundamental change outside of those two scenarios.
If it is for these scenarios and ones very close to them then I would assert that attempting to use object IRI ids to provide requisite support is the wrong approach.
UCO already has the building blocks (URL, WebPage, HTTPConnection, Relationship, and maybe some other of the networking ObservableObjects) to support these scenarios in a more expressive and flexible manner while avoiding the ID uniqueness issue.
I would be happy to get together on a call for a couple of hours and talk through how to model these scenarios with existing capabilities.
I have read through the long details above a few times I don't think I am missing any edge cases or anything fundamental but holding a working session would hopefully expose if I am wrong.
I would strongly object to progressing this any further until such a working session could occur.

@sbarnum I welcome a discussion to further explore motivations of this and some of CDO's fundamental objectives.  In particular, we should discuss whether CDO can be used to extend existing concepts of other vocabularies and knowledge bases, which I believe (and I think some others believe) to be a key objective of ontological interoperability.  I believe there is a significant risk if CDO avoids this objective - a risk of inducing an information silo.
WebPage and web resources with a download-a-file disposition have also been a source of confusion.  I would very much like to work through examples of these.


Fixed MousePointer

Overview
readded changes from https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/3982 and addressed issues raised:
New Changes
--- readded scroll and original input mappings
--- implemented spatial ptr
--- simplyfied position calculation
--- added gameobject position setting to conform with posesynchronizer
--- removed spatial grip input mapping -> will be fixed in the manipulation handler by @luis-valverde-ms

Original Changes
--- mouse cursor not stuck anymore in center of screen
--- only one mouse cursor gameobject is created / controller won't be enabled more than once
--- screenspace cursor will be hidden when spatial cursor is used
--- fixed other controllers interferring with mouse cursor visibility (hands / camera)
--- removed spatial mouse cursor (retrieved the mouse cursor position and sent it back to the mouse cursor to set the position of the cursor to that same position again)
--- removed mouse wheel scrolling that modified mouse cursor position (not needed as spatial cursor is snapping to interactable objects)
--- added ray to world space position calc to enable object manipulation (bounding box)
--- added spatial grab to controller mapping to support dragging of objects
--- added mouse cursor speed adjustment setting

/azp run mrtk_pr

/azp run

would love to see this being approved as not being able to use the mouse slows down development quite a bit

/azp run mrtk_pr

/azp run mrtk_pr

/azp run mrtk_docs

added follow up task for removing posesynchronizer from mouse pointer https://github.com/microsoft/MixedRealityToolkit-Unity/issues/4251


#36700160 - CLI : function refused by CPU (Unknown error)

#36700160 - CLI : function refused by CPU (Unknown error)

How did you fix this issue?


What are extra features of GaussianModel for?

    def create_from_pcd(self, pcd : BasicPointCloud, spatial_lr_scale : float, time_line: int):
        self.spatial_lr_scale = spatial_lr_scale
        fused_point_cloud = torch.tensor(np.asarray(pcd.points)).float().cuda()
        fused_color = RGB2SH(torch.tensor(np.asarray(pcd.colors)).float().cuda())
        features = torch.zeros((fused_color.shape[0], 3, (self.max_sh_degree + 1) ** 2)).float().cuda()
        features[:, :3, 0 ] = fused_color
        features[:, 3:, 1:] = 0.0
        ....
        self._features_dc = nn.Parameter(features[:,:,0:1].transpose(1, 2).contiguous().requires_grad_(True))
        self._features_rest = nn.Parameter(features[:,:,1:].transpose(1, 2).contiguous().requires_grad_(True))

It seems features contain color, but I can't understand what features_rest is for. What does "dc" stand for? Can you elaborate what it means?

I only follow the implementation of 3D-GS, it seems indeed not used in my approach QwQ


Improve Configurations document page Property format

Improve Configurations document page Property format

Pull Request Test Coverage Report for Build 4391

0 of 0   changed or added relevant lines in 0 files are covered.
6 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.01%) to 36.914%

Files with Coverage Reduction
New Missed Lines
%

azkaban-web-server/src/main/java/azkaban/flowtrigger/FlowTriggerService.java
1
60.08%

azkaban-common/src/main/java/azkaban/jobExecutor/AbstractJob.java
2
31.03%

azkaban-common/src/main/java/azkaban/jobExecutor/AbstractProcessJob.java
3
63.1%

Totals

Change from base Build 4387:
-0.01%

Covered Lines:
10961

Relevant Lines:
29693

💛  - Coveralls


Question: changing task priority rules and rebuilding tasks

When you change the rules for task prioritization, are you also supposed to rebuild the task?
I tried doing that for this challenge, to prioritize areas hit by a recent typhoon but it didn't seem like it changed the task prioritization.
If that isn't the case, how should I update a challenge to apply changes in prioritization rules?

The priority rules are applied when you save your edits to the challenge. I suppose it's possible that for large challenges it could take a minute, so perhaps the updated rules aren't instantly reflected, but refreshing the page after a short wait should show any changes.
Can you provide a couple examples of tasks that aren't being prioritized as you expect?

Hi @nrotstan . In this challenge the highest priority for all tasks whose property is "addr:property" = Catandanues" but I don't get the expected results

I know that I still have available tasks that meets the priority rules, but they are not being served first, as expected.

I think it may be because the tasks are also matching your medium priority rules (hrslph100m equals true) and are ending up with medium priority as a result.

I see. So the prioritization processing is done from high to low?
My initial understanding is that rules to set high priority tasks will override lower rules.
Wouldn't that be a better behavior to expect?

After looking at the code, you are right, the higher priority should be chosen over the medium priority. Can you attach the GeoJSON you're using so I can dig into it further?

Thank you @nrotstan . Here's an older geojson, but should be similar.

I've confirmed this is due to a bug. Fixed by PR maproulette/maproulette2#652

This should now be fixed on maproulette.org

Hi again @nrotstan .  Thank you for taking a stab at this.
I tested this yesterday and today, and it's still not working as expected for the same challenge.
I set a high priority for tasks that meet addr:province=Batanes but I don't see any high priority tasks being served although the dashboard says there are at least 17 tasks that meet the criteria.
Following your earlier instructions, I am only saving the priority settings changes but not rebuilding the task.

When I go to your challenge, @govvin , I get served a task in Batanes province, so it seems to be working correctly. On a challenge of that size it can take 5-10 mins for the tasks to get reprioritized.
Also, one thing I noticed in the test data you offered is that you have your own priority property on the tasks and it was set to medium on the (high priority) task I happened to receive while testing, which was a bit confusing at first. But those properties come from your GeoJSON data and are unrelated to the priorities assigned by MapRoulette. The task I just got from maproulette.org had a blank priority, so I'm not sure if you're using those in the real challenge or not.

Hi Neil. Thank you for the quick response.
I confirm that it now works as expected, and I suppose I should've waited longer before I posted the feedback.
re priority
Yes, the geojson came with a default priority based on a pre-processing criteria (we used  HRSL data to test accuracy of the location data).  My apologies for not elaborating there. The priority key in the geojson  is not being used by MR, no?
We like the idea of having the flexibility of changing priorities on-the-fly (almost, but now I'll keep in mind to give it time) so that we can use it in activities where a geographic region may have a temporary higher priority (e.g. we are doing a mapathon there, or we are complementing another mapping activity for that region, etc.).
Hence, the highest priority in the geojson is only set to medium, so we can set a higher priority for temporal events.

No, there is no special property that MapRoulette looks at for assigning priority — just whatever you setup in your priority rules.


add keysend implementation for LND backend

The following code adds ability to send keysend payments to LNbits
Following changes/additions were made:

UI update to accept/process pubkey in the "payment send" dialog
addition of pay_with_keysend / /api/v1/payments/keysend API so that it can be called from the UI
working implementation of pay_with_keysend in both lndgrpc.py and lndrest.py

Please let me know if you'd like any additional changes with the PR and if keysend support is something you'd like to see as a part of the mainline

Oh wow, thats a nice commit. I have not used keysend, and have worries about supporting such node-centric protocol. I know the v4v people would approve though.

Great PR and well-written code! I just glanced over without doing a deep dive but it looks solid.
We were discussing whether we should add functionality that would diverge features from CLN and LND too much, as LNbits is trying to be node-agnostic. CLN also supports keysend afaik? Might make sense to close the gap before merging.

thanks for the feeback! I was afk for a longer while but should be able to look into it once more in ~1week
agreed about CLN - I just had no prior experience with it but it's never too late to learn ;-)
will update the PR with CLN and ask for another review

bump! like that PR, a couple of tests would be very nice for this!

Any chance of this getting merged?  Having keysend in LNbits would be a game changer for self hosted podcasters and small v4v creator networks.

Any chance of this getting merged? Having keysend in LNbits would be a game changer for self hosted podcasters and small v4v creator networks.

Seconded! I am not a dev but can work my way through setting up a test environment that will specifically test the keysend functionality.

We could help test as well. Our Podcast network is actively using the lightning network to do v4v, we would be very interested in seeing this merged.

This PR needs to be rebased first - there is no point in testing the obsolete code which will not get merged.

Is there anything happening with this? Podcasters like me would love for it to happen!


Support both DirectRegistry and Consul Registry in service discovery

We have DirectRegistry and ConsulRegistry in service discovery. The first one find service based on service_id/service_url mapping in configuration. The second one goes to Consul server for service discovery.
Unfortunately, service discovery can only be configured in either way not both.
We need a hybrid registry that supports service id look up in local config first and search Consul server only when the service id is not defined in local config.
This feature not only enhance the debug capability regarding service discovery, but also bring more flexibility so that we can override service discovery result from Consul and can support DNS based and Consul service discovery at the same time.

Close this issue as the PR has been cancelled.


Error message when recovering from seed if bad node saved in config is not the best

Steps to reproduce:
Have a working qt wallet and connect it to a custom node (maybe a local node).  Kill the node, and then try to create a NEW wallet from seed.  Error looks like:

Saw similar case with embedded node. To reproduce make embedded node fail. You will get an option to switch to the dev node, but clicking on dev node did not change setting for me.

Error will be more descriptive


proposal: encoding/binary: add WriteVarint WriteUVarint methods

There are binary.ReadUVarint and binary.ReadVarint that accept io.ByteReader but no methods to write to an io.ByteWriter
This requires creating a []byte in order to use the Put methods, which is inefficient in high-volume encoding, due to allocation costs.
The methods are trivial, so I am guessing there is some other reason ?

This was rejected previously in #2748. See that bug.
Perhaps we could add:
type Writer struct {
    w io.Writer
    buf [10]byte
}

func NewWriter(w io.Writer) *Writer { ... }

func (w *Writer) WriteVarint(...) { ... }
func (w *Writer) WriteUvarint(...) { ... }
}

@bradfitz I don't understand that issue, it is just the opposite. This PR allows a buffer not to be allocated. Without these changes, a caller using io.ByteWriter must allocate buffers. There are no buffers allocated in the PR I submitted.

@bradfitz to clarify, that is why it takes an io.ByteWriter, not a io.Writer - similar to the Read methods

CL is at https://go-review.googlesource.com/c/go/+/152057 (golang.org/cl/152057 is hidden by #28836).

@ianlancetaylor the CL shows a code review score of -2 (if I’m reading that correctly), but I don’t see any review? Is there some docs on this part of the process I can read? Thanks.

Please see the comment above the -2 score.

Temporary -2 until the proposal is reviewed and accepted.

We rejected Write-based functions in both #2748 and #12009.
It seems weird to introduce WriteByte-based functions now.
None of the other functions here use WriteByte.
The root problem here is that it doesn't really seem worth
adding these very specific things in isolation, especially when
PutVarint can be trivially used instead.

This requires creating a []byte in order to use the Put methods, which is inefficient in high-volume encoding, due to allocation costs.

These are direct calls and they should be recorded by the compiler as not allowing their arguments to escape, so you should be able to use a stack-allocated array just fine.
That is:
var b [binary.MaxVarintLen64]byte
n := binary.PutVarint(b[:], 1000)

does not allocate (go tool compile -m confirms that b does not escape).

@rsc Then why are there analogous functions that take ByteReader? The proposals that were rejected were based on io.Writer not io.ByteWriter.
Furthermore you are forgetting that the common case for this is when the output is backed by a byte.Buffer. Even with a stack allocated array there is an additional copy required.
Honestly, this is such a trivial fix, and the inability for people to understand its valid underpinnings is pretty scary.

The arguments are not nonsensical, they just don’t address the double copy requirements not having the methods creates. They are only concerned with the performance of interfaces - which if that is the underlying rejection reason, the performance of interfaces should be improved because having to create intermediate buffers is a bad design in these conditions.
This is where Java’s inlining/intrinsics excel - it allows you to write clean code and not give up the performance. There is no reason the compiler could not in-line this for the common case like byte.Buffer, either that or there need to be methods in the encoding to work with byte.Buffer which seems restrictive.
Bottom line, rejecting this under the guise of protecting performance is wrong. The additional copy might be worse than a one time interface deterrence if the compiler were smarter. And the poor code is definitely worse. Otherwise, the Go leaders needs to state, don’t use interfaces or your code will be slow, which would be a horrible position - just improve interface performance!

An alternative would be to add varint methods to byte.Buffer, but as pointed out in the CL custom streams may not be using a byte.Buffer

An alternative would be to add varint methods to byte.Buffer, but as pointed out in the CL custom streams may not be using a byte.Buffer

What's next? JPEG encoding methods on bytes.Buffer? ASN.1 encoding methods on bytes.Buffer? No, thanks. It'd be better to just accept a *bytes.Buffer if you need fast WriteByte calls not going through an interface value.

@bradfitz @rsc I also don't understand the 'interface' argument - the main method of this class is:

func Write(w io.Writer, order ByteOrder, data interface{})

which performs dynamic type checks, and even reflection, so arguing that adding these method would lead developers to write poor performing code doesn't hold water - otherwise this method would not exist.
Again, the proposed methods take a ByteWriter, not Writer, so zero allocations. An interface method lookup should be performed once. They are analogous to the ReadVarint methods that already exist in the package.
There is no suitable performant alternative - except for creating these routines locally - which is what I was forced to do - and what everyone is forced to do if they are using byte.Buffer. Not good code structure IMO, and its hard to understand why you are forcing developers down this route.

Then why are there analogous functions that take ByteReader?

Because when you have an I/O stream you don't have the luxury of necessarily knowing how many bytes are incoming. You can always compute how many bytes you might need to write (outgoing).
Let's leave this as is.

@rsc I'm sorry but this reasoning is pretty weak. Anyone using the varint methods is either 1) write their own that allocates the array and calls the method, 2) copy and paste the varint code and have a local version.
Both are poor design decisions, but this flawed reasoning leaves that as the only option.
Under your reasoning, there shouldn't even be a byte.Buffer type, since the caller should be able to known the size of what it is writing. Not to mention, that the only "real reason" against this, is a performance one, and that is an abstraction cost that holds across all Go code - and should be dealt with elsewhere - not creating poor APIs just to help developers avoid performance problems.


Use style/info/category data to filter search results

The Search by Name page could also have options to search by category like the zotero page does: http://www.zotero.org/styles/

Yes. It should be possible to say, for instance, I want styles with citation style numeric that define a type book.


Add details and examples on aggregation areas

Btw, we have Kodiak on this repo. So feel free to add the automerge tags to merge.


Update request: python312Packages.typer 0.12.3 → 0.12.5

Package name: python312Packages.typer
Latest released version:  0.12.5

Current version on the unstable channel: 0.12.3
Current version on the stable/release channel: 0.12.3

[X] Checked the nixpkgs pull requests

Notify maintainers

@winpat
Note for maintainers: Please tag this issue in your PR.

Add a :+1: reaction to issues you find important.

updated in https://github.com/NixOS/nixpkgs/pull/345326, 3cb2de74e60ca662bff9a283cde68b27e54e35b0


12 July 2021 - InnerSource SIG Meeting Minutes

Date
Monday 12 July 2021 - 11am EST / 4pm UK
// Rescheduled from US public holiday on 5th July
Untracked attendees

Fullname, Affiliation, (optional) GitHub username
...

Meeting notices

FINOS SIG Leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS SIG meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[x] Convene & roll call (5mins)
[x] Display FINOS Antitrust Policy summary slide
[x] Review Meeting Notices (see above)
[x] Approve past meeting minutes
[x] Announce Maturity Matrix V0.1
[x] Discuss formation of maturity matrix sub work-stream and gauge participation
[x] Announcement: @daniela-g-zheleva-db departure from InnerSource SIG
[x] ...
[x] AOB, Q&A & Adjourn (5mins)

Meeting minutes

Update on Maturity Matrix:

@mcleo-d explained that editing the Google Sheet was becoming challenging as we scaled, and so we have proposed to lock the current version of the Matrix. The decision was accepted.
@mcleo-d review of steps from @anvacca, agreed by SIG

Let SIG know we are in a frozen state. Provide the read only copy and thank them, let them know the overall plan/timelines.
Once previous step is fine, work with @mcleo-d to create GitHub project (decide where it goes etc) and move data over.

One person assigned to do this with support of @mcleo-d.

Once previous step is complete, person to provide a walkthrough to the SIG leads of the new GitHub project that was created.
Formally assign maintainers to maintain repo and do another around of edits to further clean up the documents.
Go through a formal review process with wider group using new tools/process.
publish 1.0.0 if no objections.

@mcleo-d explained the current state of InnerSource Commons/Linux Foundation discussions around CCLA. This is currently preventing us from giving concrete timelines on when the matrix can be submitted as a project.
Reviewed process of submitting a project proposal when the SIG is ready. Clarified that we need to have maintainers identified before the submission is made. Brief description of maintainers duties - govern the repo, approve PRs, review issues, report back to SIG.
The project is proposed to work in a Hub and Spoke model, where the InnerSource SIG is the HUB and we form a sub-working group to focus on the Maturity Matrix (Spoke).
@eminty69, @aaronsearle and @godds expressed interest in the sub-working group

@danizheleva updated the SIG that she is stepping back from the Co-Lead position, and that this leaves the position open.

@mcleo-d proposed the leadership group have a retrospective to review whether to continue with the co-lead model or try something else.
Claryfication that any addition to a named role (i.e. a lead) needs to be decided through a democratic process. This means a nomination and approval from the rest of the SIG. Noted that this is not a formal interview process, and there is no interviews etc.

Other business discussed: what to do next?

@amaltson showed the SIG awesome lists and discussed how we could use it in this SIG or maybe directly in InnerSource Commons
@eminty69 mentioned how the Matrix can be expanded to include Open Source.
All encouraged to add their thoughts in the following GitHub issue https://github.com/finos/InnerSource/discussions/13

Decisions Made

[x] Matrix version 0.1 is now locked/frozen. It will be circulated round, but no changes will be made until it is submitted to GitHub

Action Items

[x] @danizheleva to circulate maturity matix read-only spreadsheet and PDF to SIG distribution list
[x] @danizheleva to add call to action in GitHub issue and kick off process for nominating a new co-lead
[ ] @mcleo-d to update on when we can bring the Maturity Matrix into FINOS as a contributing process
[ ] Leadership team to have a retro on the way we have worked so far

WebEx info

Meeting link : https://finos.webex.com/finos/j.php?MTID=m3a6ed8ca517918da899f5a0ee90f8b93
Meeting number:<PHONE_NUMBER>
Join by phone

+1-415-655-0003 US Toll
+44-20319-88141 UK Toll
Access code:<PHONE_NUMBER>

Mailing List
Email<EMAIL_ADDRESS>to subscribe to the InnerSource SIG mailing list

👋

Hey everyone

Hi there, Richard from Codethink

Hello 👋🏻

👋

Jane here

Hello, I'm Elspeth

Hello

The latest update and frozen version PDFs for the Maturity Model have been posted to GitHub Discussion for further review and feedback by August 30th 2021 ... https://github.com/finos/InnerSource/discussions/12#discussioncomment-1022570


Investigate moving navigation bar to top

Investigate if it's possible to move the navigation bar to the top without breaking the template.
Disabling:side_nav_toggle_button_no_top_nav_buttons into main.yml opens up on the top side in mobile.
Total Estimated Work Time: 2h

Waiting for #76 to be finished

This ticket can be removed or mark as done, the client doesn't want to waste time on this


Error when upgrade/downgrade subscription on Android with DEFERRED mode

Version of react-native-iap
4.3.3
Version of react-native
0.59.10
Platforms you faced the error (IOS or Android or both?)
Android
Expected behavior
When upgrade/downgrade a subscription with DEFERRED mode, purchase update listener should be called with new transaction receipt.
Actual behavior
purchase error listener is called with following error:
{ message: 'purchases are null.',
code: 'OK',
debugMessage: '',
responseCode: 0 }
Tested environment (Emulator? Real Device?)
Real Device - sandbox
Steps to reproduce the behavior
1.Purchase a subscription with RNIap.requestSubscription(sku), this works correctly.
2.Upgrade or downgrade the subscription with RNIap.requestSubscription(newSku, false, sku, 4). (4 is the DEFERRED Proration Mode) Google Play billing dialog will show the subscription plan is changed successfully, and you will receive a notification email from Google Play about that. However, the error listener is called with the above mentioned error.
3.If you call RNIap.requestSubscription(newSku, false, sku, 4) again, Google Play billing dialog will say they cannot change the subscription plan, and the error listener is called with the following error:
{ message: 'Google is indicating that we have some issue connecting to payment.',
code: 'E_DEVELOPER_ERROR',
debugMessage: '',
responseCode: 5 }
But sometimes Google Play billing dialog will say your order is under processing and your product should be delivered soon, and the error listener is called with the following error:
{ message: 'You already own this item.',
code: 'E_ALREADY_OWNED',
debugMessage: '',
responseCode: 7 }
I guess this is due to the transaction of step 2 is waiting to be acknowledged. However, since step 2 does not return a receipt, we cannot acknowledge it.

Try to call getAvailablePurchases after you've upgrade/downgrade subscription.
Refer to doc.

I tried getAvailablePurchases() after upgrade/downgrade the subscription, but unfortunately, only the transaction receipt of original purchase is in the returned array.
RNIap v2.3.19 & v2.5.5 works correctly, buySubscription() will return a new receipt when upgrade/downgrade the subscription. But I would like to upgrade to v3 or v4 which has a better event based model if possible.
Here is a reference document if someone would like to know how Android subscription upgrade/downgrade works.

@howg0924 Thanks for confirming this. I'd like to compare the differences with v2 and our current version and see how I can fix this issue.

I've looked up the code on the weekend for you!
The new update will be comming in 4.4.0.
Could you kindly test<EMAIL_ADDRESS>version out?

@hyochan I just tried 4.4.0-rc.1, but the situation is still the same.
After calling RNIap.requestSubscription(oldSku, false, newSku 4) and finish the upgrade/downgrade, error listener is called with following error:
{ message: 'purchases are null.',
code: 'OK',
debugMessage: '',
responseCode: 0 }
And getAvailablePurchases() only contains old receipt.

@howg0924 If you know how to debug android, I hope you to test out putting some Log.d and see if it passes if conditions in buyItemByType. Would that possible for you? I want to see how they are being executed.

@howg0924 Oh wait~! I think I found the problem let me get back to you soon!

@howg0924 Could you try 4.4.0-rc.2? I think it will work this time.

@hyochan 4.4.0-rc.2 build failed on:
RNIapModule.java:436: error: incompatible types: SkuDetails cannot be converted to String:
   builder.setOldSku(selectedOldSku);
                     ^

@hyochan I monitored buyItemByType() of 4.4.0-rc.1. When upgrade/downgrade, it did execute:
builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);

and also executed:
BillingResult billingResult = billingClient.launchBillingFlow(activity, flowParams);

Do you want me to monitor/dump any flow/data?

The error message "purchases are null." comes from onPurchasesUpdated() -> sendUnconsumedPurchases() which uses billingClient.queryPurchases().
Is it possible that something is wrong in queryPurchases()? Not sure whether this is related:
billingClient.queryPurchases returns the list with already cancelled subsription
which says queryPurchases() uses a cache mechanism and sometimes gives inaccurate result. Is it possible queryPurchases() also give wrong result when subscription upgrade/downgrade?

@howg0924 Sorry that I've made mistake because I did not have a good debugging env. I've reverted this in 4.4.0-rc.3. It looks like your code is not running builder.setOldSku(oldSku) which is most important.

After compare with 2.5.5, I found 2.5.5 does not call
builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);
when using the DEFERRED mode.
So I try to remove this line on 4.4.0-rc.1, and it works! But, I don't know:
1.what proration mode it is working on now.
2.why it doesn't work when set to DEFERRED mode by setReplaceSkusProrationMode()

        if (prorationMode != null && prorationMode != -1) {
          if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE);
            if (type.equals(BillingClient.SkuType.SUBS) == false) {
              String debugMessage = "IMMEDIATE_AND_CHARGE_PRORATED_PRICE for proration mode only works in subscription purchase.";
              WritableMap error = Arguments.createMap();
              error.putString("debugMessage", debugMessage);
              error.putString("code", PROMISE_BUY_ITEM);
              error.putString("message", debugMessage);
              sendEvent(reactContext, "purchase-error", error);
              promise.reject(PROMISE_BUY_ITEM, debugMessage);
              return;
            }
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION);
          } else if (prorationMode == BillingFlowParams.ProrationMode.DEFERRED) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION);
          } else {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY);
          }
        }

We are currently passing down the ProrationMode as above. So does that mean you can auto-renew subscriptoin when you've removed DEFERRED?

I mean if I change code to:
        if (prorationMode != null && prorationMode != -1) {
          if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE);
            if (type.equals(BillingClient.SkuType.SUBS) == false) {
              String debugMessage = "IMMEDIATE_AND_CHARGE_PRORATED_PRICE for proration mode only works in subscription purchase.";
              WritableMap error = Arguments.createMap();
              error.putString("debugMessage", debugMessage);
              error.putString("code", PROMISE_BUY_ITEM);
              error.putString("message", debugMessage);
              sendEvent(reactContext, "purchase-error", error);
              promise.reject(PROMISE_BUY_ITEM, debugMessage);
              return;
            }
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION);
          } else if (prorationMode == BillingFlowParams.ProrationMode.DEFERRED) {
            // comment following line
            // builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED);
          } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION) {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITH_TIME_PRORATION);
          } else {
            builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.UNKNOWN_SUBSCRIPTION_UPGRADE_DOWNGRADE_POLICY);
          }
        }

then I can use RNIap.requestSubscription(newSku, false, sku, 4 /* DEFERRED mode */) to upgrade/downgrade a subscription. Though I am not sure whether what proration mode it actually works on since builder.setReplaceSkusProrationMode() is not executed, as v2.5.5 did.
Following code is from v2.5.5:
        if (type.equals(BillingClient.SkuType.SUBS) && oldSku != null && !oldSku.isEmpty()) {
          // Subscription upgrade/downgrade
          if (prorationMode != null && prorationMode != 0) {
            builder.setOldSku(oldSku);
            if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE) {
              builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_AND_CHARGE_PRORATED_PRICE);
            } else if (prorationMode == BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION) {
              builder.setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.IMMEDIATE_WITHOUT_PRORATION);
            } else {
              builder.addOldSku(oldSku);
            }
          } else {
            builder.addOldSku(oldSku);
          }
        }

@howg0924 Well this is very strange since we did not even set DEFFERED in our current master branch which is 4.3.4. I've added this code in 4.4.0+.
I think the reason might be something different. I hope you can come back if there is some other news.

Related #391

OK, I will try more and report back.
Related #707

@hyochan After further test on 4.4.0-rc.1:
IMMEDIATE_WITH_TIME_PRORATION => works
IMMEDIATE_AND_CHARGE_PRORATED_PRICE => works
IMMEDIATE_WITHOUT_PRORATION => works
DEFERRED => NOT WORK (don't know why)

Well this is very strange since we did not even set DEFFERED in our current master branch which is 4.3.4. I've added this code in 4.4.0+.

I believe this is because of the following code in 4.3.0 still set it to DEFERRED mode:
  if (prorationMode != 0 && prorationMode != -1) {
    builder.setReplaceSkusProrationMode(prorationMode);
  }

However, above code does not exist on 2.3.19 & 2.5.5. Therefore, when I call RNIap.requestSubscription(newSku, false, sku, 4 /* DEFERRED */) on 2.3.19 & 2.5.5, it will work, but on the default IMMEDIATE_WITH_TIME_PRORATION mode.

Ok so we should know why the Deffered won't work.

I've got the same issue but behavior is different.
When I call requestSubscription(newSku, false, oldSku, 4), it throws an error with error code OK and empty error message. Payment on Google Play side is as expected (it's deferred). When the next subscription charge happen, I get purchaseUpdatedListener event on app start but unable to acknowledge the purchase (through calling finishTransaction()). finishTransaction() gives an DEVELOPER_ERROR error.
The happens on both version 4.4.0 and 4.3.4.

Hi @hyochan, I saw that in in https://github.com/dooboolab/react-native-iap/pull/893 to marked this as resolved but I updated react-native-iap to latest version but this one is still not be fixed. I still got error in listener error {"code": "OK", "debugMessage": "", "message": "purchases are null.", "responseCode": 0} and received the email You updated your subscription purchase normally. So my question is what is the correct solution for DEFERRED mode?

Last time I"ve found this issue either. It strangely doesn't work only in deferred mode. We need to investigate this.

Hi @howg0924, did you get a solution for this issue yet?

@nenjamin2405 No, I am still using the default IMMEDIATE_WITH_TIME_PRORATION mode, and I really hope this could be fixed.

Hi @hyochan, any update on this? My app's new feature is stuck by this issue. Really appreciate your effort in investigating this, thanks

Not yet. I've not had time to go over this issue.
I hope somebody also brings up useful information to handle this issue.
Asking Google or StackOverflow and share that in this thread might be really helpful.

We've been looking at this issue and wanted to share with the community, it may help some people out there.
The issue is due to the purchase updated listener being called with a empty list of purchases on a deferred subscription replace, which is how Android works (See here here "For the deferred replacement mode...")
We added the support of android deferred subscription replace on react-native-iaphub by doing a fix looking when the error listener is called with the purchases are null error on a subscription replace. (See commit)
Of course you'll have to do some modifications on your server side validating your receipts as well, refreshing the receipt isn't enough when dealing with deferred subscriptions.
You'll have to implement the Android realtime notifications in order to detect when the subscription replace is occurring and process a new token.
Or you can just use IAPHUB which is doing all of that for you 🙂

Any plans to resolve this issue?

As @iaphub mentions, the issue is that onPurchasesUpdated is called with the purchases argument as null when  DEFERRED mode is used.
From google docs:

For the deferred replacement mode, your app receives a call to your PurchasesUpdatedListener with an empty list of purchases and a status of whether the upgrade or downgrade was successful.

So it's just a matter of handling that case inside that listener.
But I'm uncertain about what should be the proper way of handling that situation:

Resolving the promise with the previous subscription info
Resolving the promise with undefined
Rejecting the promise with a PURCHASE_DEFERRED code

What do you think?

Hi @Paduado  do you find a good solution ?

Not really @Patzelly, like I said the issue is happening because the way Android handles deferred purchases was not considered on the React Native API.
Correctly handling this will be a breaking change on the API, I think any of the options I mentioned would work but I would like to have the input of any of the maintainers.
For now my JS code looks like this:
try {
  await RNIap.requestSubscription(
    productId,
    false,
    lastPurchase?.productId,
    lastPurchase?.purchaseToken,
    ProrationModesAndroid.DEFERRED,
  );
} catch (e) {
  if (e.code === 'OK' && !e.message && e.responseCode === 0)) {
    return 'success';
  }
  throw e;
}

@Paduado Thanks for clarifying the issue. It looks like then #1357 can solve the problem?

@hyochan Yes that would solve it 👌 , but I think that the type definition for the returned value of requestSubscription should be updated to  Promise<SubscriptionPurchase | null>:
https://github.com/dooboolab/react-native-iap/blob/34ce8512714a75431a1fae055026e3b333df0e52/src/iap.ts#L440

@hyochan Yes that would solve it 👌 , but I think that the type definition for the returned value of requestSubscription should be updated to  Promise<SubscriptionPurchase | null>:
https://github.com/dooboolab/react-native-iap/blob/34ce8512714a75431a1fae055026e3b333df0e52/src/iap.ts#L440

@Paduado I hope you can create a PR for that. I would like to give i the credit.

For completeness: https://github.com/dooboolab/react-native-iap/pull/1387/files


inspect.py should use GObject Introspection

https://github.com/fonttools/fonttools/blob/master/Lib/fontTools/inspect.py uses the really old pygtkcompat import. It should be switched to use regular pygobject and GObject Introspection.
This might be the issue that caused https://github.com/fonttools/fonttools/issues/93 ( I needed to make sure that python3-gi [or python-gi for the python2 version] and gir1.2-gtk-3.0 were installed on my Debian/Ubuntu system to avoid the import error.)

inspect.py is unmaintained.  If you can send a pull-request, we'll happily merge.  Otherwise, we might even remove it.


Add fee calculation to InternalDeployAccount.

Codecov Report

Merging #176 (9318355) into main (bc82f11) will decrease coverage by 0.55%.
The diff coverage is 9.09%.

@@            Coverage Diff             @@
##             main     #176      +/-   ##
==========================================
- Coverage   70.95%   70.40%   -0.55%
==========================================
  Files          40       40
  Lines        2420     2436      +16
==========================================
- Hits         1717     1715       -2
- Misses        703      721      +18

Impacted Files
Coverage Δ

src/business_logic/transaction/fee.rs
0.00% <0.00%> (ø)

...gic/transaction/objects/internal_deploy_account.rs
0.00% <0.00%> (ø)

...ness_logic/transaction/objects/internal_declare.rs
69.81% <25.00%> (-1.89%)
:arrow_down:

src/testing/starknet_state.rs
45.74% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Params for SQL query not working

I've been dealing with this issue for some days. I didn't find anything in the web and I read the code and should work but it's no working for me.
I'm running the compiles version 0.16.0
I have this section in my config.toml file
[[providers.layers]]
  name = "harvest_map"
  geometry_fieldname="geometry"
  id_fieldname="gid"
  #geometry_type="Point"
  sql = """SELECT ST_AsMVTGeom(geometry,!BBOX!)
        AS geometry, gid,  yield_, collection_id, crop
        FROM harvest_map WHERE geometry && !BBOX!  !PARAM!"""

[[maps.params]]
name = "collection_id"
token = "!PARAM!"
type = "string"
sql = "AND collection_id = ?"
default_sql = " "

I get this error when launching the server
{"level":"debug","timestamp":"2023-03-11T16:18:06.272-0300","message":"SQL for Layer(harvest_map):\nSELECT ST_AsMVTGeom(geometry,!BBOX!) AS geometry, gid,  yield_, collection_id, crop FROM harvest_map WHERE geometry && !BBOX! !PARAM! \n"}
Error: could not register providers: error fetching geometry type for layer (harvest_map): ERROR: column "param" does not exist (SQLSTATE 42703)
If I change the token to something else line !PARAM2!, the error is
Error: could not register providers: error fetching geometry type for layer (harvest_map): ERROR: column "param2" does not exist (SQLSTATE 42703)
Whatever I use as token it's appear as a column X does not exists.
Is this a bug or I'm doing something wrong?
Thank you in advance.

@jmcaracoche What happens when you uncomment:
#geometry_type="Point"

What you're encountering is a part of tegola from the early days where the software tries to figure out your geometry type based on your SQL. Unfortunately this process is kind of fragile, and the more complex the SQL the less likely it is to succeed. By setting the geometry_type for the layer this startup step will be skipped.

@jmcaracoche did you build tegola from source, or grab a binary from the CI? I realized that we don't support param filtering in 0.16.0, but we do in the upcoming release (v0.17.0). I want to first make sure you're on the correct version.
I would also like to summon @bemyak to be part of this convo as they authored this fantastic feature.

I’m using the compiled version. Seeing the stack trace and following it with the code I realized that may be a different code the binary one! Now confirm it! I will build it! When are you planning to release the 0.17?
thank you for this!
best
juan

Closing, please reopen if it still fails with the version built from the source.


Ignored appearances and enter passcode label text setter

numberLabelFont and letterLabelFont appearance properties wasn't used in prepareApperance method.
Also, you can now set the enter passcode label's text with a simple method.

Hey artnoww44, thanks heaps for that! I'll aim to look at that today.

Thanks for the work! Sorry it took so long to get this going. I'm going to merge this and a few others (pending review) over the next few days and issue a release. Thanks for your patience :)


[Event Request] Codeunit 5606 - FA Check Consistency - OnCheckSalesPostingOnAfterSetFALedgerEntryFilters

Dear ALAppExtensions team,
Through this issue we would like to request adding event publisher OnCheckSalesPostingOnAfterSetFALedgerEntryFilters in Codeunit 5606 FA Check Consistency with the following signature (similar to OnCheckNormalPostingOnAfterSetFALedgerEntryFilters):
[IntegrationEvent(false, false)]
local procedure OnCheckSalesPostingOnAfterSetFALedgerEntryFilters(var FALedgerEntry: Record "FA Ledger Entry";
                                                                  FANo: Code[20];
                                                                  DepreciationBookCode: Code[10])
begin
end;

with VAR parameter FALedgerEntry.
which would be called as follows in CheckSalesPosting:
local procedure CheckSalesPosting()
begin
    with FALedgEntry do begin
        if FADeprBook."Acquisition Date" = 0D then
            CreateAcquisitionCostError;
        SetCurrentKey("FA No.", "Depreciation Book Code", "Part of Book Value", "FA Posting Date");
        SetRange("FA No.", FANo);
        SetRange("Depreciation Book Code", DeprBookCode);
        SetRange("Part of Book Value", true);
        SetFilter("FA Posting Date", '%1..', FAPostingDate + 1);
        if Find('-') then
            CreateDisposalError;
        SetRange("Part of Book Value");
        SetCurrentKey("FA No.", "Depreciation Book Code", "Part of Depreciable Basis", "FA Posting Date");
        SetRange("Part of Depreciable Basis", true);
        // >>>> New >>>>>>>>>>>>>>>>
        OnCheckSalesPostingOnAfterSetFALedgerEntryFilters(FALedgEntry,FANo,DeprBookCode);
        // <<<< New <<<<<<<<<<<<<<<<
        if Find('-') then
            CreateDisposalError;
        SetRange("Part of Depreciable Basis");
        if not FADeprBook."Use FA Ledger Check" then
            DeprBook.TestField("Use FA Ledger Check", false)
        else begin
            SetCurrentKey(
                "FA No.", "Depreciation Book Code",
                "FA Posting Category", "FA Posting Type", "FA Posting Date");
            SetRange("FA Posting Category", "FA Posting Category"::" ");
            SetRange("FA Posting Type", "FA Posting Type"::"Proceeds on Disposal");
            SetRange("FA Posting Date");
            if Find('-') then
                repeat
                    NewAmount := NewAmount + Amount;
                    if NewAmount > 0 then
                        CreatePostingTypeError;
                until Next() = 0;
        end;
    end;
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


[HIGH]Fix crash due to null workInfo object[TINY]

Make sure the infoWork is not null

This looks good to me.
Just one question though - if the workInfo is null, will this affect any expected functionality?
Or is it fine to silently fail?

JR cos this is in the background it will not matter. The first that we want to download the bundle it works fine (is on front ground). So would say that will not matter if it fails silently.


Add support for solution 3000 + polling, and for the alarm being triggered

This also checks for support of some commands, namely the PRODUCT_SERIAL command as this isn't supported on a lot of panels by the looks of things.
Also exposes a list of all triggered alarms as a attribute on the panel.

We will probably want to work out a nicer way to handle the platform specific stuff as I am currently just using if statements here, and you did say you preference would be to not do that, but im not really sure what a better method is.

I was also very glad when the loading code just worked

For the moment ive pushed the package to pypi just so that i can get people testing a version without needing them to go and manually delete their local git copies when i make changes. I had someone test on the solution 2000 and it is working there, and im currently getting someone to also test on a AMAX300 as well

Yeah, I'm testing with someone's Amax 3000 at the moment
On Wed, 24 May 2023, 4:41 am Michael Grigoriev, @.***>
wrote:

@.**** commented on this pull request.
In bosch_alarm_mode2/const.py
https://github.com/mag1024/bosch-alarm-mode2/pull/2#discussion_r1202692610
:

@@ -61,6 +61,39 @@
0xA9: "B6512 (US1B)",
}

+PANEL_AREAS_MAX = {
Do we know what panels this is actually necessary for?
In general, to make reviewing easier, I would suggest the approach of
focusing this PR on support for the panels we have access to/can directly
test with, and splitting additional panel compatibility features into
separate PR.
—
Reply to this email directly, view it on GitHub
https://github.com/mag1024/bosch-alarm-mode2/pull/2#pullrequestreview-1440175687,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOGYQHUIII2WD6YX2FMMUDXHTSCTANCNFSM6AAAAAAYJUFZFA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@mag1024 does this all work on your panel?

One other thing, since not every panel has a serial number, should we be using something else for the unique id?

Im sure theres a better way to handle history - i think tomorrow ill add in checking if the text based history commands are supported for a panel, and ill use that if its available - i know the solution and amax panels dont support it though.
We might also want to look at a more standardized history format, and im not sure if theres a better way to bring that data across to home assistant besides just a giant string in an attribute

The history stuff looks cool, but following the best practice of keeping the changes small/focused, let's please pull it out into a separate PR.
Re: missing serial numbers. I guess we the best we can do at that point is the model? We just need something that is stable and "unique enough" not to have collisions within a given HA instance.

Fair call, ill splice out the history stuff into its own branch. I was just trying to get something that had the features of my old project, so I can just deprecate that and push people over to this one.

Out of curiousity though, does that history stuff parse correctly on your panel?

Out of curiousity though, does that history stuff parse correctly on your panel?

This is what I got:
2023-05-25 23:59:19.825 DEBUG (MainThread) [custom_components.bosch_alarm.bosch_alarm_mode2.panel] Loading history...
2023-05-25 23:59:19.825 DEBUG (MainThread) [custom_components.bosch_alarm.bosch_alarm_mode2.connection] >> b'\x01\x06\x15\xff\x00\x00\x00\x00'
2023-05-25 23:59:20.411 DEBUG (MainThread) [custom_components.bosch_alarm.bosch_alarm_mode2.connection] << b'\x01\xde\xfe\t\x00\x00\x0b\x87\x00\x19\x00\x00\x00\x14\x00\x00\x00\x00-\x16\xd9@\x06fffffffff\x000\x00\x00\x00\x00\x00\x00\x00\x00-\x19G\xc0ffffffffff\x00\r\x00\x00\x00\x15\x00\x00\x00\x00-\x19G\xc0\x06fffffffff\x00y\x00\x00\x00\x00\xff\xff\x00\x04-\x19H\x00ffffffffff\x00=\x00\x00\x00\x00\x00\x01\x00\x03-\x1ai\x80ffffffffff\x000\x00\x00\x00\x00\x00\x00\x00\x00-\x1bU@ffffffffff\x00\r\x00\x00\x00\x15\x00\x00\x00\x00-\x1bU@\x06fffffffff\x00y\x00\x00\x00\x00\xff\xff\x00\x04-\x1bU\x80ffffffffff\x00\x13\x00\x00\x00\x04\x00\x00\x00\x00-\x1ci\x00\x06fffffffff'
2023-05-25 23:59:20.411 DEBUG (MainThread) [custom_components.bosch_alarm.bosch_alarm_mode2.panel] Loading count: 9
2023-05-25 23:59:20.411 ERROR (MainThread) [root] Initial panel connection failed
Traceback (most recent call last):
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/__init__.py", line 38, in async_setup_entry
await panel.connect(load_selector=bosch_alarm_mode2.Panel.LOAD_ALL_HISTORY)
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/bosch_alarm_mode2/panel.py", line 165, in connect
await self._connect(load_selector)
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/bosch_alarm_mode2/panel.py", line 241, in _connect
await self.load(load_selector)
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/bosch_alarm_mode2/panel.py", line 175, in load
await self._load_history()
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/bosch_alarm_mode2/panel.py", line 270, in _load_history
area._add_history(self._history_parser(data))
File "/home/mag/homeassistant/core/config/custom_components/bosch_alarm/bosch_alarm_mode2/history.py", line 735, in _parse
return b_g_history(date, event_code, area, param1, param2, param3)
TypeError: b_g_history() takes 5 positional arguments but 6 were given

Ive just sliced the history stuff off into another branch

Before we merge this, have you got a pypi account so i can transfer that across to you?


Add option to construct a new animation but reversed, based on an existing one

Something like
  Animation animation = ...
  Animation reversed = animation.reversed(); // creates a new animation with the same frame but in reversed order

possible implementation:
    return new Animation(frames.reversed.toList())

Something like this. Would be really useful.

It'd be a good opportunity to actually fix this: the loop optional parameter in the animation nameless constructor should have default value true.

This was fixed by #66.


soldierskins_robocopzip_d77a3a9c

Add content:

[UT99 VOICE] Robocop

Submission log: https://unrealarchive.org/submit/#d77a3a9c

manually indexed


Sometimes image is not loading in pager (1.7.0)

Thanks for Such a usefull library. I am using loader1.7.0, I found one bug in loading the image in pager view. Sometimes Image not loading, Loading stuck in ImageLoadingListener onLoadingStarted() method. Earlier I was using universal-image-loader-1.5.5-with-src.jar and its working fine. Now I have switched to 1.5.5.

Hi nostra13,
I am also facing same @rajendrabohra ImageLoder error in android: 4.1.1 .
Logs:
W/dalvikvm: threadid=16: thread exiting with uncaught exception (group=0x40a13300)
E/AndroidRuntime: FATAL EXCEPTION: Thread-84
java.lang.ClassCastException: android.support.v7.widget.TintContextWrapper cannot be cast to android.app.Activity
at com.foogletech.cdinesh.ImageLoader$PhotosLoader.run(ImageLoader.java:185)
Please Help.

I have the same problem as @o-antsiferov
Any solution?


request for porncomix.one to be added

Ripme version: v1.7.93
Java version:
Operating system:

Exact URL you were trying to rip when the problem occurred: https://www.porncomix.one/link/seiren-in-the-dark-room/512640
Please include any additional information about how to reproduce the problem:

Expected Behavior
Detail the expected behavior here.
Actual Behavior
I get error msg: Expected proncomix URL format: porncomix.one/gallery/comic - got https://www.porncomix.one/link/seiren-in-the-dark-room/512640 instead
Detail the actual (incorrect) behavior here. You can post log snippets or attach log files to your issue report.

Always fill the template in full. If it's absolutely obvious  Java version and/or OS doesn't matter (technically here it doesn't, but still) you write Inapplicable.

bump 👍


Add Favicon

Related Issue

Info about the related issue

Closes: #[issue number that will be closed through this PR]
Describe the changes you've made
Give a clear description what modifications you have made
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Mention any unusual behaviour of your code (Write NA if not)
Any unusual behaviour of your code
Additional Info (optional)
Any additional information you want to give
Checklist:

[ ] My code follows the guidelines of this project.
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly whereever it was hard to understand.
[ ] My changes generate no new warnings.
[ ] Any dependent changes have been merged and published in downstream modules.

Sorry , I can't accept your PR bcoz I have strictly mentioned get yourself assigned before working on any issue.


FileDownloadDelegate: pass response header through

Currently FileDownloadDelegate doesn't pass the response header through in its Response associated type, which is satisfied by the Progress inner type declaration. This makes it hard to use in the Swift Concurrency context, since it's no trivial to pass response header around from reportHead closure. Let's fix that by adding a new field that passes the response header in the delegate's response.
This change is not source-breaking and is purely additive, since no existing properties were changed.

Closing this in favour of https://github.com/swift-server/async-http-client/pull/681

I feel like maybe this shouldn't have been closed. It's not super ergonomic to have to capture the response head via the reportHead closure. Is the below even correct with strict concurrency?
var head: HTTPResponseHead?
let delegate = try FileDownloadDelegate(path: "/some/tmp/file.tmp",
                                        pool: nil,
                                        reportHead: {
        head = $1
        if $1.status.code != 200 {
            $0.cancel()
        }
    },
                                        reportProgress: nil
)

let result = try await HTTPClient.shared.execute(request: request, delegate: delegate).get()

if let head {
   // do something with head
}

The fix in 681 was suitable for the use-case in question, where the head wasn't wanted after the download, but so that it could be analysed before the download progressed. If you need the head afterward then we may want to approach this other design instead.

In my case I want to inspect the "content-disposition" field to determine a suitable user-facing file name.

Ok, so I think it's worth us adding this flow. @dnadoba any objections on your end?

I'm happy to make a PR with the change. I don't think the Progress struct should be modified as addressed in this PR since there is a reportHead closure now. We should probably just make a Response struct (instead of the current typealias) with progress + head info, right?

We cannot replace the FileDownloadDelegate.Response type alias with a new struct without breaking source.
We can therefore only add the head as new field to the FileDownloadDelegate.Progress struct as proposed in this PR.
I'm fine if we add it. However, if we want to add it we should make the head non-optional and require it as opposed to what is  proposed in this PR. This can be done safely because we only report progress (or finish the request and return FileDownloadDelegate.Response which is a type alias to FileDownloadDelegate.Progress) after we have received the head.


Draft: ESP32: Add support for ESP32-C61

Add support for ESP32-C61 in all-clusters-app and lighting-app on idf/release/v5.4.

@DejinChen is this still draft? PR starts being reasonably old without any updates.

@DejinChen is this still draft? PR starts being reasonably old without any updates.

Sorry for the late update.  Have added the build examples support.


[FR] FR-24: Support continue profile based on ebpf

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Profile program without changing any codes and store performance stats to database for analysing in recent time.
Use case
Support continue profile with static language such as Go, rust and C, etc. And push performance stats to ClickHouse.
Related issues
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

https://github.com/deepflowio/deepflow/pull/2949
This PR support ebpf profile, please view this PR in detail.


toggle between SDS and centile charts still happens when results are showing - need to disable the SDS/centile toggle button

fixed