address now contains non-empty string

Potentially fixes #1

Hey, this is very nice. Wasn't really expecting contributors just yet. Can I ask why are you interested in this repo?
Honestly last time I had time for it I barely got it to work, so I haven't really used it.
Last time I checked it, I had to use some more internal state to match up with Bonsoir expectations, so I left it for some other day.

Oh I'm not even familiar with bonjour or zeroconf (yet).
I'm trying to find the IP address & port number of debug enabled Android devices on _adb-tls-connect._tcp in order to auto connect without manually typing out the IP & port each time. I ultimately want to make a basic adb GUI in flutter, but haven't had much luck finding any dns_sd abstractions on windows.

You can use multicast_dns package to resolve services through multicast DNS directly. I just really created this package because I wanted to practice some ReceivePort on FFI. Hopefully with the advancement of dart:io and dart ffi a companion c library won't be necessary.

Ah that's cool. I actually already tried that package but unfortunetely it seems to be broken on windows due to https://github.com/flutter/flutter/issues/53477.
I've tried all that pub.dev has to offer including flutter_nsd which contrary to its platform listing, doesn't support windows. Unless I've missed something within these packages I'm going to have to wait for advancements in dart:io and dart:ffi like you say. Thus far, this seems to be the only package that returns an IP address on windows.
Thank you for the suggestion.

Well, I wrote a nicer fix for the IP issue by actually allocating instead of relying on std::string buffer's, so I'm going to close this PR. Thanks anyways.


feat(DatePicker): add footer and indicated in a range of dates

SDE-374
Description
In our current initiative, we'll need some improvements in the DatePicker component to be used in Client Portal and Staff Portal. So in this PR, we have developed some features listed below:

Option to highlight with a yellow indicator a specific range of dates
Option to add a customized footer to the bottom of the calendar

How to test

Access https://picasso.toptal.net/sde-374-improve-date-picker-features/
Verify each feature example at Datepicker section
Compare requirements in the ticket with implementation

Screenshots

Features
Screenshots

With Indicated Range

With Footer

Development checks

[x] Add changeset according to guidelines (if needed)
[x] Read CONTRIBUTING.md and Component API principles
[x] Annotate all props in component with documentation
[x] Create examples for component
[x] Ensure that deployed demo has expected results and good examples
[x] Ensure the changed/created components have not caused accessibility issues. How to use accessibility plugin in storybook.
[x] Self reviewed
[x] Covered with tests

Breaking change

[N/A] codemod is created and showcased in the changeset
[N/A] test alpha package of Picasso in StaffPortal

PR commands

List of available commands:

@toptal-bot run all - Run whole pipeline
@toptal-bot run build - Check build
@toptal-bot run deploy:documentation - Deploy documentation
@toptal-bot run package:alpha-release - Release alpha version

PR Review Guidelines

When to approve? ✅
You are OK with merging this PR and

You have no extra requests.
You have optional requests.

Add nit: to your comment. (ex. nit: I'd rename this variable from makeCircle to getCircle)

When to request changes? ❌
You are not OK with merging this PR because

Something is broken after the changes.
Acceptance criteria is not reached.
Code is dirty.

When to comment (neither ✅ nor ❌)
You want your comments to be addressed before merging this PR in cases like:

There are leftovers like unnecessary logs, comments, etc.
You have an opinionated comment regarding the code that requires a discussion.
You have questions.

How to handle the comments?

An owner of a comment is the only one who can resolve it.
An owner of a comment must resolve it when it's addressed.
A PR owner must reply with ✅ when a comment is addressed.

Hi @pedrobarrostech!
First of all, thanks for your contribution! We really appreciate it! :bow:
Have these changes been discussed and confirmed with the BASE design team?

@augustobmoura Now we have the approval from the BASE design team so we can start reviewing it.

Hey, @pedrobarrostech!
One question. You mentioned this point: Option to define tooltips to a specific range of date
Have you implemented it or it's not needed anymore?

Hey, @pedrobarrostech! One question. You mentioned this point: Option to define tooltips to a specific range of date Have you implemented it or it's not needed anymore?

sorry, I just updated the description because we don't need it anymore

https://happo.io/a/675/p/1189/compare/2046deeeab071aea70c28f6c4edc989f34b155fa/dfae538a7d1ddec1594c8d92f8483fbaf9ac15c8?t=added
there are two new Happo screenshots. But they do not expose the real screenshots of DatePicker.
Either remove them or Make


Calling Identify.set with a null value throws an unhandled exception

Expected Behavior

const user = new Amplitude.Identify();
user.set('key', null) <-- crashes

Current Behavior

Error: Cannot convert undefined or null to object
because: typeof null === 'object'
Possible Solution

adding || {} to make sure Object.keys doesn't throw
export var isValidObject = function (properties) {
    if (Object.keys(properties || {}).length > MAX_PROPERTY_KEYS) {
        return false;
    }
}

Steps to Reproduce

const user = new Amplitude.Identify();
user.set('key', null) <-- crashes

Environment

JS SDK Version: amplitude-ts/1.0.0
Installation Method: yarn
Browser and Version: 87.0.4280

Hi @Kyusung4698! Thanks for submitting a GitHub issue! Before I jump into solutioning, I wanted to ask what the motivation of setting an identify key here to null? Amplitude offers unsetting an identify key like
const user = new Amplitude.Identify();
user.unset('key')

unless you have a use case for a null identify key.

I was integrating amplitude in an existing code base and some fields were based on user settings. So, after pushing to prod I noticed not all users were picked up correctly. The motivation is simply not having an analytics framework throw an error after receiving bad input.

@Kyusung4698, I see. We can add a check here to prevent this from throwing an error.


Question: can you override default project file locations?

The docs say It supports the default locations for profiles.yml and dbt_project.yml files is there a way to override that to point to other locations?

We don't have a way to do this for now, but we have plans to support it. I will update this thread as soon as the task is implemented.

Hello @ajbosco, could you elaborate on your use case about overriding default project file locations?

I'd like to be able to put profiles.yml and dbt_project.yml in other directories besides ~/.dbt/


[arm tizen unix] Added NewArr1 to ReadyToRun helpers

cc @jkotas @Dmitri-Botcharnikov @BredPet

I do not think that this is a good change.
It seems to be compensating for a bug in the JIT. The JIT is never supposed to call getHelperFtn with CORINFO_HELP_READYTORUN_NEWARR_1.

@jkotas
We found the following set of RTR helpers, that are not supported in CoreRT yet:
CORINFO_HELP_READYTORUN_NEW
CORINFO_HELP_READYTORUN_NEWARR_1
CORINFO_HELP_READYTORUN_CHKCAST
CORINFO_HELP_READYTORUN_STATIC_BASE
CORINFO_HELP_READYTORUN_ISINSTANCEOF
CORINFO_HELP_READYTORUN_GENERIC_HANDLE

Are all these helpers never supposed to be generated with getHelperFtn in JIT or only CORINFO_HELP_READYTORUN_NEWARR_1?

All of these are never supposed to be generated with getHelperFtn. These are supposed to be generated with getReadyToRunHelper that has the additional context for them.

@jkotas thanks!


Any codes for Popsplits and doublesplits

If anyone has a code for perfect popsplits and doublesplits give me the code and tell me where to put them im currently making a public server and i want to practice those with my friends

There is NO special code for popsplits.
Also a duplicate of many other issues.
Please look through them before making a new one.

You can try reducing this line's value, but if it goes below 1, the viruses will break.
And @FantasyIsBae is right, so many people have talked about this, so this will be issue from now on if such user made a related issue, they will be redirected to this.
@MastaCoder @Megabyte918 close.

900th Issue lol


Template Faasd install issue (solution suggested)

Description
I've been trying to install a new LIMA instance with the faasd template and the installation fails or doesn't install faasd.
After testing with Ubuntu template and comparing to K3s template, I could confirm that the issue comes from the provision script being run as system instead of user:
Current provision script (doesn't work):
...
provision:
- mode: system
  script: |
    #!/bin/sh
    curl -sfL https://raw.githubusercontent.com/openfaas/faasd/master/hack/install.sh | bash -s -
...

Working provision script:
...
provision:
- mode: user
  script: |
    #!/bin/sh
    curl -sfL https://raw.githubusercontent.com/openfaas/faasd/master/hack/install.sh | bash -s -
...

Finally, and as an option, the header of the faasd template explains what to do after the instance is up. This could be added as a message at the end of the template file:
...
message: |
  Get the faas-cli:
  $ curl -sLS https://cli.openfaas.com | sh

  You can now log into your gateway:
  $ export OPENFAAS_URL=http://localhost:8080
  $ limactl shell faasd sudo cat /var/lib/faasd/secrets/basic-auth-password | faas-cli login -u admin --password-stdin
  $
  $ faas-cli store deploy NodeInfo

  Deployed. 200 OK.
  URL: http://localhost:8080/function/nodeinfo

Hope this helps and please let me know if you need any further information.

Thanks for filing the issue! Since you have the fix already figured out, would you mind submitting a PR as well?


CB-14078: Creating version 8.x of docs.

Platforms affected
None.
What does this PR do?
Updates the docs.
What testing has been done on this change?
Built site locally, and verified that the new version shows.
Checklist

[x] Reported an issue in the JIRA database
[x] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.
[x] Added automated test coverage as appropriate for this change.

LGTM. Want me to merge it in?

@stevengill thank you!


DOC: change docs that specify the SNR ratio definition for find_peaks_cwt().

Fix for https://github.com/scipy/scipy/issues/15059. Updates the documentation for the min_snr argument of find_peaks_cwt() which specifies how the SNR is calculated when not specified by the user.

@rgommers any update on this one?


Cannot add references to other types in @typedef, nor to the type itself.

References and self references
I'm not sure if anyone has ever wanted to do something like this before. When looking at the JSON documentation, it states that a valid JSON object has to be one of certain types.
string, number, boolean, null, array, object
Among those types are arrays and objects, which in turn should be valid JSON themselves. This means that a valid JSON object could contain other valid JSON objects. Defining a simple type to prevent any invalid JSON objects would require the use of two types that contain references to one another.
The types
JSONObject, which contains strings as keys and JSONType values.
JSONType which contains strings, numbers, booleans, null values, arrays which have to contain valid JSON values == self reference, and valid JSON objects:  JSONObject.
The code
/**
 * @typedef {{[x: string]: JSONType}} JSONObject - A valid JSON Object.
 */

/**
 * @typedef {(string | number | boolean | null | JSONType[] | JSONObject)} JSONType - A valid JSON type.
 */

The results
Currently, these definitions boil down to
type JSONObject = {
    [x: string]: any
}

type JSONType = any

Is this the expected behaviour? If so, would references to other types and self references be a nice-to-have functionality?

/**

@typedef {{[x: string]: JSONType}} JSONObject - A valid JSON Object.
*/

/**

@typedef {(string | number | boolean | null | JSONType[] | JSONObject)} JSONType - A valid JSON type.
*/


[onset-picker] Ensure onsetOnChange gets called any time a complete d…

…ate is entered or selected
Summary

Closes #
Deployment Link

https://terra-clinical-deployed-pr-#.herokuapp.com/
Testing

Additional Details

Thank you for contributing to Terra.
@cerner/terra

Functionally reviewed.


set a different default language when entering literals

Describe the feature you'd like
A way to set a different default language (other than English) for multiple literals within one resource template when describing non-English resources. Changing the default from English to another language field-by-field is time-consuming and in the high-production environment catalogers normally work in, many catalogers will overlook this step, thereby creating potentially serious errors by labelling everything as English.
Give an example
In Stage, I entered a title in Turkish and set the language of the title field to Turkish. I entered a variant title but forgot to set the language, so it says the variant title is English, but it's Turkish.
It would be nice if when I set the language of the title field, there was an option such as "Use this language as the default for this resource? yes/no" or something like that. If I could say "yes" then I could enter all the Turkish literals, and when I entered notes, etc., in English, I could change the language as needed. Important to note: I'm only referring to the language associated with literals entered in the form (not the "description language" in administrative metadata, which for my institution is always English).

Describe alternatives you've considered
Default language for the literals could be determined by the Language entered for the Work, but wouldn't this mean the Work would always need to be described first?

+1

I'd propose that instead of asking the user, the language selection modal has a checkbox for "Make this the default" that the user can select.

@justinlittman in your proposal above, all literal fields would have this "Make this the default language for all fields in this resource" checkbox? And if the user checked this box on any literal field, the language of all other literal fields (even if no data was entered yet), would change to that language?

No, the language in all future literal fields would change to that language; existing literal fields would be unchanged.

To be clear to catalogers we need to differentiate between default language for literals vs lookups (which may be in a different language). And to be sure, we would still need to be able to change and/or suppress the language as we catalog--the language of cataloging may be different from the language of the resource resulting in a mixed language description.

if we implement language detection #2876 then do we also need this?

yes I think so. I doubt language detection is perfect (it isn't in Google translate!) and there will be languages that I'm sure it won't know. There will also be many instances of mixed languages (especially if we change how we do titles as LC is considering...)

a related enhancement request is to keep the diacritic picker set to the same script, after you select a script the first time

closing in favor of #3372


Supporting enterprise versions of Gitlab

I was wondering if OGR does support interacting with enterprise versions of Gitlab, when provided with an private token. I think Gitlab enterprise has the same set of API's as the public version, so is there a way to like provide the service url like for example - https://gitlab.cee.redhat.com and it would then try accessing repo's from that instead of publicly hosted Gitlab.

Hi @saisankargochhayat, thanks for your interest!
Yes, you can use instance_url argument for that when instantiating the service instance:
https://github.com/packit-service/ogr/blob/022e9dff7fd02e2f4d34ca836ac298127d7f5694/ogr/services/gitlab/service.py#L33-L36
Some testing was done on git.gnome.org and for internal instances ssl_verify argument may comes handy.

In ogr/factory.py, you can find some methods for picking the right instance for the project url:
https://github.com/packit-service/ogr/blob/022e9dff7fd02e2f4d34ca836ac298127d7f5694/ogr/factory.py#L68-L81
(Sadly, we don't have nice docs yet... #53 )

@lachmanfrantisek Thanks a lot for the quick reply.
I tried out some methods after instantiating with the instance_url, it seems to work with ssl_verify set to False, however fails when ssl_verify is set to true.

it seems to work with ssl_verify set to False, however fails when ssl_verify is set to true.

The internal certificates were probably not discovered  -- @TomasTomecek knows how to get requests know about them.

however fails when ssl_verify is set to true.

fails how? we can't help you if you don't provide us:

logs
code
error messages

@TomasTomecek I think we know the problem and already discussed this situation some time ago:

You have internal certs, but python/SSL does not know about them.
I remember some env-var or something like that to get python/SSL know about it.

But a specific error might help.

however fails when ssl_verify is set to true.

fails how? we can't help you if you don't provide us:
* logs

* code

* error messages

Sorry about that. I have attached the same below -
Error log -
https://paste.ofcode.org/LDxYLXrkxzi7WvXKqwvb4x
Code (its a sample get issues) -
from ogr.services.github import GithubService
from ogr.services.gitlab import GitlabService
from ogr.abstract import PRStatus

service = GitlabService(token=<my token>, instance_url="https://gitlab.cee.redhat.com")

ogr_project = service.get_project(
        repo="ai-ingest",
        namespace="data-hub"
)

print(ogr_project.get_owners)

issues = ogr_project.get_issue_list()
for i in issues:
    print(i.id)

Since this is using requests under the hood, you can tell requests to pick CAs from a specific file:
export REQUESTS_CA_BUNDLE=/etc/pki/tls/certs/ca-bundle.crt

We should probably document this.

This is exactly what I had in mind.. Thanks!

I've created a new issue for the documentation part: https://github.com/packit-service/ogr/issues/356
I think we can close this one.

Thanks once again for all the help!


Attempted to add a trail vertex in between two previous vertices

The server crashes frequently with the following stack trace:
error: Uncaught Error: Assertion failed: Attempted to add a trail vertex in between two previous vertices.
    at Player.#addTrailVertex (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:354:13)
    at Player.#drainMovementQueue (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:313:25)
    at Player.loop (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:556:29)
    at Game.loop (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Game.js:59:11)
    at ApplicationLoop.loop (file:///home/runner/work/splix/splix/gameServer/src/ApplicationLoop.js:15:26)
    at Object.action (ext:deno_web/02_timers.js:146:11)
    at handleTimerMacrotask (ext:deno_web/02_timers.js:63:10)

It also frequently logs a similar stack trace, though in this case the server doesn't crash because errors inside the message handler are always caught.
An error occurred while handling a websocket message ArrayBuffer {} Error: Assertion failed: Attempted to add a trail vertex in between two previous vertices.
    at Player.#addTrailVertex (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:354:13)
    at Player.#drainMovementQueue (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:313:25)
    at Player.clientPosUpdateRequested (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:269:27)
    at WebSocketConnection.onMessage (file:///home/runner/work/splix/splix/gameServer/src/WebSocketConnection.js:245:17)
    at WebSocket.<anonymous> (file:///home/runner/work/splix/splix/gameServer/src/WebSocketManager.js:23:24)
    at innerInvokeEventListeners (ext:deno_web/02_event.js:783:7)
    at invokeEventListeners (ext:deno_web/02_event.js:823:5)
    at dispatch (ext:deno_web/02_event.js:692:9)
    at WebSocket.dispatchEvent (ext:deno_web/02_event.js:1082:12)
    at WebSocket.[[[eventLoop]]] (ext:deno_websocket/01_websocket.js:433:16)

This may have been fixed in #41

Seems like this is still an issue, though less frequently.
The stack trace is different though.
Oct 21 18:17:07 splix-fra splixGameServer[506574]: error: Uncaught Error: Assertion failed: Attempted to add a trail vertex in between two previous vertices.
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at Player.#addTrailVertex (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:390:13)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at Player.#updateCurrentTile (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:932:25)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at Player.loop (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:588:28)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at Game.loop (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Game.js:59:11)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at ApplicationLoop.loop (file:///home/runner/work/splix/splix/gameServer/src/ApplicationLoop.js:15:26)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at Object.action (ext:deno_web/02_timers.js:151:11)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at handleTimerMacrotask (ext:deno_web/02_timers.js:65:10)
Oct 21 18:17:07 splix-fra splixGameServer[506574]:     at eventLoopTick (ext:core/01_core.js:189:21)

A similar stack trace also crashes the server:
Oct 22 11:46:10 splix-fra splixGameServer[516222]: An error occurred while handling a websocket message ArrayBuffer { [Uint8Contents]: <01 03 00 82 00 54>, byteLength: 6 } Error: Assertion failed: Attempted to add a trail vertex in between two previous vertices.
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at Player.#addTrailVertex (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:390:13)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at Player.#drainMovementQueue (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:338:25)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at Player.clientPosUpdateRequested (file:///home/runner/work/splix/splix/gameServer/src/gameplay/Player.js:294:27)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at WebSocketConnection.onMessage (file:///home/runner/work/splix/splix/gameServer/src/WebSocketConnection.js:271:17)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at WebSocket.<anonymous> (file:///home/runner/work/splix/splix/gameServer/src/WebSocketManager.js:18:24)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at innerInvokeEventListeners (ext:deno_web/02_event.js:750:7)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at invokeEventListeners (ext:deno_web/02_event.js:797:5)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at dispatch (ext:deno_web/02_event.js:654:9)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at WebSocket.[[[eventLoop]]] (ext:deno_websocket/01_websocket.js:452:11)
Oct 22 11:46:10 splix-fra splixGameServer[516222]:     at eventLoopTick (ext:core/01_core.js:183:11)


Request Sepolia test

Hi! We are team working on a new account abstraction bundler client implementation in python. We are missing 10000 sepolia ETH for a very long time to run a validator to get started in our work supporting the bundler to run in the alternative p2p mempool.
I am unable to download the bridgeID app (not available in my country), and the faucets drips fractions of what we need. Please help :)
Recipient address : 0xfA80f7F84B66d56Fd622273899CD30B126852d4C

You cannot run validators on Sepolia, take a look at https://github.com/eth-clients/holesky

@q9f just found out about it but can you send it for testing apps and dapps for a very long time to our devs we really need it

5000-10000 it is invaluable for our long-term testing :) @q9f

pls help @q9f


DocumentInfo

In file DocumentInfo.cs there's string:
Thumb = new PhotoSizeInfo(jsonObject["thumb"].Value());
which obviously does not belong there and causes errors

@pushist1y : Thanks for your feedback. Actually Thumb can be part of the Document, but it is optional. So I updated the code to read the value only if it is available.
Please have a look at Telegram Bot API. Thumb is optional:
https://core.telegram.org/bots/api#document

Yeah, you are right. Thanks for response anyway.


Function runtime pluggable

Master Issue: https://github.com/apache/pulsar/issues/4176
Motivation
Currently, Pulsar Function runtime does not expose a clean interface to make it pluggable.
Modifications
Make Pulsar Function Runtime Factory pluggable to make specifying Function Runtimes more flexible and allow the development of future runtimes to be more smooth since a complete interface is extracted
Also added additional tests, clean up of code, and BC tests

rerun integration tests

rerun integration tests

@wolfstudy please help review this function runtime interface

@sijie @wolfstudy @merlimat please review

rerun java8 tests

rerun integration tests

@jerrypeng
org/apache/pulsar/client/impl/ReaderBuilderImpl
Stacktrace
java.lang.NoClassDefFoundError: org/apache/pulsar/client/impl/ReaderBuilderImpl
	at org.apache.pulsar.client.impl.PulsarClientImpl.newReader(PulsarClientImpl.java:192)
	at org.apache.pulsar.tests.integration.functions.PulsarFunctionsTest.testWindowFunction(PulsarFunctionsTest.java:1019)
	at org.apache.pulsar.tests.integration.functions.PulsarFunctionsTest.testSlidingCountWindowTest(PulsarFunctionsTest.java:1084)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:54)
	at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:44)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

rerun integration tests

@sijie please take a look again.  I have replied to your comments.

@sijie that is something we should definitely think about.  Though I would suggest we have discussion on how to handle plugins in general in Pulsar.  Perhaps we should implement or standardize on some sort of plugin loading framework.

@jerrypeng agree. we have used NAR for functions, connectors, offloaders and protocol handlers. I think we can continue that route.


Clarify ElseExpression rule

From the docs: "An if expression with an else branch is never necessary". It then goes on: "You can rewrite the conditions in a way that the else is not necessary and the code becomes simpler to read. To achieve this use early return statements."
I don't understand the reasoning. Why is an early return (or, I assume, continue) statement intrinsically simpler to read? Why should we avoid else statements simply because they are never necessary? (The if statement, I might add, is never necessary either!)
These factors are unchanged:

There is still an if.
The "else" condition is still evaluated in exactly the same cases, only now by "falling through" instead of branching to the else block. The rationale that the exact condition for evaluating the else code is not clear, persists.

New issues are introduced:

When using early returns, postprocessing code that has to be run in both branches has to be duplicated, introducing the potential for later divergence.
When using early returns, the "else" code is "promoted" to a shallower indentation level, suggesting to the casual reader that it is the default case, even if the cases may be 50/50.
When moving the if/else into a separate method, that method then needs to use early returns as well, because it can't use else either. Does it make the code more readable to have that method simply for this single purpose?
A ternary operator is often harder to read. The only advantage I see there is that it only allows expressions instead of statements.

I have had a spirited discussion with my coworkers, but fail to be convinced so far that this rule achieves its objectives. I understand that else statements often appear in bad code, but I see them as a symptom rather than a cause. I feel that encouraging less experienced developers to use early returns and ternary operators may cause them to write worse code, not better.
I have found only a few critiques of the else statement on Google, and all of them focus on bad uses of else, not on the use of else per se.
My suggestion is to either:

Clarify some of these concerns in the docs, and improve the suggestions.
Put this rule in the "controversial" set.

I haven't made my own version of the docs text yet, because first I would like to have a clear understanding of the reasoning behind the rule and make sure there is nothing I miss.

I agree that the documentation could be improved to better point out the problems or better said potential problems.
And I personally agree it does not become more readable by default when not using else clauses.

I feel that encouraging less experienced developers to use early returns and ternary operators may cause them to write worse code, not better.

As long as we point them to some ressources where they can become better developers, I see no problem.
In the end is phpmd for me personally not a tool to teach people how to be better programmers but to point them to some of the most obvious and common mistakes and pitfalls.
What we can do though is to direct them to ressources where they can read how to do it better...
@manuelpichler do you know of any good (PHP related at best) ressource which explains all the things about else clauses?

One thing I have noticed with PHPMD and I'm not sure if this is intentional or not is that this will trigger the warning:
if ($x) {}
else {
$statement1;
$statement2;
}

Whereas this will not:
if ($x) {}
else $statement1;

I'm not sure if this is due to the brackets or the fact that this could be represented as a ternary statement so for consistency PHPMD does not flag it up
I think that in this case, where we're controlling program flow and calling different methods:
if ($x) $this->doX();
else $this->doY();
Should not flag up the error but if there was a bunch of code instead of just a function call it should flag it up. It looks like this is how PHPMD works at the moment.
I think the book Clean Code by Robert C. Martin describes this situation well:

This implies that the blocks within if statements, else statements, while statements, and
so on should be one line long. Probably that line should be a function call. Not only does
this keep the enclosing function small, but it also adds documentary value because the
function called within the block can have a nicely descriptive name.
This also implies that functions should not be large enough to hold nested structures.
Therefore, the indent level of a function should not be greater than one or two. This, of
course, makes the functions easier to read and understand.

On p358 of Code Complete (2nd Edition) by Steve McConnell suggests that you should include else statements:

Consider the else clause  If you think you need a plain if statement, consider whether you don't actually need an if-then-else statement. A classic General Motors analysis found that 50 to 80 percent of if statements should have had an else clause (Elshoff 1976)

One option is to code the else clause - with a null statement if necessary - to show that the else clause has been considered. Coding null elses just to show that that case has been considered might be overkill, but at the very least, take the else case into account. When you have an if test without an else, unless the reason is obvious, use comments to explain why the else clause isn't necessary

I also can't see where in the Original PMD rules there is any reference to completely re-writing functions to exclude else statements.
I second @sbesselsen 's request to put this in the controversial list.

I think ElseExpression should only happen if there is return or throw inside of it, then there are really no point of having this return/throw in else. Otherwise it should be allowed.

Agree with @Jurigag.
Improving the docs and only raise a violation if the else is really superfluous, seems to me the right way.
This way, the rule can stay in clean code and should not be considered controversial.

Also there is some case like this:
if (some condition) {
$a = 1;
$b = 2;
}
else {
$a = null;
$b = null;
}

Some people would say that else is necessary. Well we can remove it by just setting $a and $b to null before if, but not sure if it's good way, for me code like this would look kind of weird, not sure how to handle something like this.

Since I guess the detection could become quite complex for more advanced situation, I currently would only raise a violation for clear situations like with a return or throw.
We then could add another rule like AdvancedElseExpression or simply ElseExpression but in the controversional folder...

Yea, but still there should be check if we can simplify if to ternary operator.

I don't se the benefit of this check. Or better said, I don't see the relaton between tenary operator and the current ElseExpression rule. Can you elaborate more on that?

I mean currently if we have if else which can be simplified to ternary operator is obviously detected. But if we want to change it to some limited area like throw/return i think it should check too if we can simplify to ternary operator. I mean conditional operator/shorthand if as well(? as well ?:)

I'm going to close this as I will try to improve the docs as a first step.
For interested parties, here is an article why else clauses are bad and what alternatives you have, though it certainly does not cover everything.

The ternary operator is an else-clause, it just has a different syntax. Recommending its use is admitting else is ok.

@ravage84 sorry old post but that article only has the following reasoning for not using else clauses:

Do you remember the last time you saw a nested conditional? Did you enjoy reading it? I don’t think so, and that is exactly why it should be avoided.

That's a fairly weak statement for getting rid of a fundamental concept in programming languages. I personally agree and I do prefer guard clauses, but there should be better arguments put forward.

TL;DR: This rule is under "clean code", but the Clean Code book uses else statements in MANY locations. This rule does not belong here. It belongs in Controversial.
"An if expression with an else branch is never necessary."
Neither is PHP. Let's write all our web apps in assembly language.
What's that? You want to use PHP because it works better for you than assembly language? It's more expressive and easy to understand and maintain?
I don't write else statements for the compiler. I write them for myself, and for all the programmers who will be reading and maintaining my code after me. They express intention, which is among the kindest things I can do for everyone who has reason to understand what I'm "else"ing.
It is possible to use early returns. They are not "better" than else statements. At the end of the day, the behavior is identical either way.
If you prefer guard statements, or Rube-Goldberg-like code contraptions that allow you to avoid using 'else', please, be my guest. That preference does not obligate the rest of us to stop using one of the most obvious statements of intent that a programmer can possibly use, or to tolerate endless squawking about it, or to pollute our PHPDoc blocks with overrides that make it harder to read the source in exchange for exactly nothing.
"Else" is not prohibited in PSR-2. Instead, they show a three-way if statement with two elses right at the top of the document:
<?php
namespace Vendor\Package;

use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class Foo extends Bar implements FooInterface
{
    public function sampleMethod($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // method body
    }
}

How is this not just someone's arbitrary decision, rolled into phpmd's behavior with no actual research or discussion? It's not in PSR-2, and I couldn't find it anywhere in Clean Code. In fact, Clean Code uses else statements in MANY locations.

I'm still thinking that my first comment here 2 years ago is a way to go, it could stay in clean code only if it would consider return/throw statement in else condition.

Interesting to see that this discussion is still going. I have learned a lot in 3 years, as I'm sure we all have, but I still see no reason to disallow else statements. All arguments against it that anyone here has been able to put forward boil down to "you can use it in a bad way", which is true of literally every other language feature.
Personally I would say this: leaving this check in is a strongly opinionated stance. If phpmd as a project is willing to be strongly opinionated, simply state it in the docs. "We discourage else because we feel that it can lead to bad code." Just don't state it as some kind of common knowledge or folk wisdom. I can live with it, as I have been doing for the past 3 years ;)
I understand that this is low priority, but surely the maintainers would like to remove this issue from the queue?

This rule does not belong here. It belongs in Controversial.

I agree.
Look at this situation:
$user = $this->em->getRepository(User::class)->findOneBy([
    'email' => $email,
]);
if ($user) {
    $this->io->text("Found existing User with email: $email");
} else {
    // Create user
}

return $user;

PHPMD wants:
$user = $this->em->getRepository(User::class)->findOneBy([
    'email' => $email,
]);
if ($user) {
    $this->io->text("Found existing User with email: $email");

   return $user;
}
// Create User

return $user;

Is it more readable ? Maybe.
Do I need to add an extra return statement. Yes.

No PHPMD do not "want" you to do this, you have other alternatives:
$user = $this->em->getRepository(User::class)->findOneBy([
    'email' => $email,
]);

$this->ensureUserExists($user, $email);

return $user;

...
public function ensureUserExists($user)
{
  if ($user) {
    $this->io->text("Found existing User with email: $email");

   return;
  }

  // Create User
}

And so in this case, you have a more readable code and 2 methods where each one has a more restrictive responsibility (you can explicit with the method name).
When you have an else, you should not ask yourself: "How to convert this code 1-to-1 to early-return?" You should ask yourself: "Can it be split into more atomic steps?"
And you will discover this rules help you to create methods with better defined responsibilities.

"Can it be split into more atomic steps?"

Understood.
@kylekatarnls Thanks!

I agree with @Jurigag. If each clause in an if/elseif/else statement ends with a return or throw, it makes sense to just turn them all into separate if statements. But when there is no return from the statements, but they instead do assignment, logging, etc., it makes no sense to discourage the use of else.

it makes no sense to discourage the use of else

It does: here is the reason (and example that do no imply throw/return):
https://medium.com/@kylekatarnls/stop-using-else-84c1fa977202
I write a lot of code every day, and I didn't use else for years and I can ensure you my code is cleaner this way.
Code rules of PHPMD or any static analyzers are common practices in some language/company/region communities, there is no absolute universal rules that would benefit 100% of coding people, it's up to you to select the rules you need.


Update papers.md

AMC Seminar Sign Up

Link to previous seminar meeting minutes comments issue:

#264
tabZhang
1. Oral / Poster Selection

Select one of the following selections for Oral or Poster:

Oral should be prepared for 15 - 30 minutes, and no more than 45 minutes, including Q/A.
Posters should be prepared for 5 - 10 minutes, and no more than 15 minutes, including Q/A.

[ ] 🗣 Oral (15 MIN)
[x] 📰 Poster (5 MIN)

2. Paper Information

Please fill the follow table and provide all the information as many as possible, for sharing with others better. (delete the rows that you did not fill)

Paper
Information

Name
Chinese NER Using Lattice LSTM

Recommendation
paper sharing

Prior Knowledge
basic NLP no prior knowledge needed

Year
2018

Publish
ACL

Author
Yue Zhang and Jie Yang

GitHub
https://github.com/jiesutd/LatticeLSTM

Blog
None

Arxiv
https://arxiv.org/pdf/1805.02023.pdf

3. After Party 🍻

Everyone will be welcome. You can join or not join as you want (not required by the AMC), and change your mind at any time.

After Party will be started right after all the meeting agenda had been fulfilled.
We will find a bar and drink beers and talk whatever we want. (we can expect that it will be related to meeting topics of the day)
The bill will be paid AA

[ ] 🍻 YES! I'll definitely join the After Party!
[ ] 🤔 Maybe. I'd like to decide later.
[x] 🛌 No, I'm afraid not this time.

4. New Friend

Whether you have a new friend comes with you to the club.

[ ] 👥 I'll bring a new friend
[x] 👤 There's no new friend from me

Artificial Intelligence & Machine Learning CLUB, 2018 - 2019 AI ML Club - AMC Member Manual

@ltg001 You should link the issue NOT your GitHub profile.

@ltg001 Plz make sure add refer to latest event summary issue e.g. #264


Add Var;'gene ids' to AnnData

Hello-
I have used the import anndata function:
adata = anndata.AnnData(data)
Do you know how I can add the var_names='gene_symbols' function in adata
so that I can get: AnnData object with n_obs × n_vars = 2700 × 32738 var: 'gene_ids'. At the moment the AnnData has n-obs x n_vars, but missing var:'gene_ids'. This causes issues with downstream analysis using the tutorial from this site: https://icb-scanpy-tutorials.readthedocs-hosted.com/en/latest/pbmc3k.html#
Thank you!

can you elaborate?
Are you trying to do this (from the tutorial you mention):
adata = sc.read_10x_mtx(
    './data/filtered_gene_bc_matrices/hg19/',  # the directory with the `.mtx` file
    var_names='gene_symbols',                  # use gene symbols for the variable names (variables-axis index)
    cache=True)                                # write a cache file for faster subsequent reading

Sorry to bump an old issue but I was building loom files from Alevin data and encountered this issue.
The issue is that the attributes in the loom file created by anndata are called "var_names" and "obs_names" containing the Gene IDs and Cell IDs respectively, but the expected name for the attribute "var_names" is "Gene" and for "obs_names", "CellID". This is what the attributes are named in the Loompy sample files, and are what is expected by, for example, seurat's function to load loom files.
If you create an attribute named "Gene" or "CellID", AnnData.write_loom seems to ignore those attributes.

Hello
How can I add the 'gene_ids' if I upload a txt file with scanpy?

Thank you!
On Sun, Oct 2, 2022 at 2:01 AM Maironman14@ @.***>
wrote:

Hello
How can I add the 'gene_ids' if I upload a txt file with scanpy?
[image: image]
https://user-images.githubusercontent.com/92496430/193433586-c06bbc55-1dc1-49fc-b62a-ab996b5bb0df.png
—
Reply to this email directly, view it on GitHub
https://github.com/scverse/anndata/issues/224#issuecomment-1264519742,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJTZXUYRSPNP4K5NL3RLOPLWBDNFTANCNFSM4IYYWCVQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add Boost to list of dependencies

[x] Add Boost to the list of dependencies in both INSTALLME.sh and README.sh
[ ] Ideally, I'd just set up a Nix packages environment and get it over with! I'm having compilation problems with Nix though (specifically the linker)

Closed by #78


Improve pdf quality

Use original images instead of the qgraphicsview render

Read here: https://stackoverflow.com/questions/2925484/place-image-over-pdf

Also read here: https://shallowsky.com/blog/programming/qt5-poppler-pdf.html


Cache files not stored under appropriate XDG directory

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.57.0
OS Version: Ubuntu 20.04.2 LTS

VSCode appears to store cache/intermediate files under ~/.config/Code. For example: Cache/, CachedConfigurations/, CachedData/, CachedExtensions/, CachedExtensionsVSIXs/, Code Cache/, GPUCache/, etc. There may be other files/folders containing temporary data that is also inappropriate for the ~/.config location.
On a well used Ubuntu system, my total ~/.config/ is 657 MB, the ~/.config/Code directory is 606 MB, and the sum of all .config/Code/ directories starting with “Cache” is 568 MB. While it is possible that the “Cache” naming is a red herring, I believe they should be stored under ~/.cache, as per the XDG specification.
Only noticed this because I am trying to become more diligent about backups, and the total size of my ~/.config was surprising.

Likewise, only my .config/Code folder is 2.9GB and I'm fairly certain the only thing in there I'd want to back up is my settings.json file and maybe some snippets.

Related: https://github.com/microsoft/vscode/issues/3884
Apparently this "feature" is inherited by VSCode and VSCodium from Chromium/Electron, though I see that on MacOS VSCode appropriately puts some caches under ~/Library/Caches/com.Microsoft.VSCode (and com.Microsoft.VSCode.ShipIt) and the rest under ~/Library/Application Support/Code (?).
Some suggest to symlink them out of the way, I have not tried yet.

I'm having the same issue. I am backing up ~/.config. And I see ~/.config/Code/CachedData show in my backup logs. It looks like these files should be moved to ~/.cache.

Upstream issue https://github.com/electron/electron/issues/8124

Thanks for this link. Looking upstream, I was a bit disappointed to see a comment war about what is cache and what is config.
I'd still like to see cache in the cache directory and configurations in the config directory. This follows the common meaning of cache and config. And it will solve the backup and replication issues reported over the years.

This is the same as #3884, isn't it?


Cannot install hashable

haste-inst install void stopped with error.
I tryed with commit b6326e06af25f494428170b11e5aaf150643f1da to reproduce the issue.
Configuring hashable-<IP_ADDRESS>...
Building hashable-<IP_ADDRESS>...
Preprocessing library hashable-<IP_ADDRESS>...
Data/Hashable/Class.hs:302:26:
Constructor ‘J#’ should have 1 argument, but has been given 2
In the pattern: J# size# byteArray
In an equation for ‘hashWithSalt’:
hashWithSalt salt n@(J# size# byteArray)
| n >= minInt && n <= maxInt
= hashWithSalt salt (fromInteger n :: Int)
| otherwise
= let
size = I# size#
numBytes = 4 * abs size
in
hashByteArrayWithSalt byteArray 0 numBytes salt hashWithSalt size
where
minInt = fromIntegral (minBound :: Int)
maxInt = fromIntegral (maxBound :: Int)
In the instance declaration for ‘Hashable Integer’
cabal: Error: some packages failed to install:
hashable-<IP_ADDRESS> failed during the building phase. The exception was:
ExitFailure 1
nats-1 depends on hashable-<IP_ADDRESS> which failed to install.
semigroups-<IP_ADDRESS> depends on hashable-<IP_ADDRESS> which failed to install.
unordered-containers-<IP_ADDRESS> depends on hashable-<IP_ADDRESS> which failed to
install.
void-0.7 depends on hashable-<IP_ADDRESS> which failed to install.

This one is a known issue: https://github.com/valderman/haste-compiler/issues/51
That URL gives a workaround that should get it to compile, but still not work.  I'm not sure exactly how close we are to having Hashable work with Haste.

Indeed, closing as duplicate of #51.


[BUG] Enum type is not serialized using its toJson method

Describe the bug
When calling an API call with a request class that has an enum type property, a NoSuchMethodError is thrown as no toJson method was found for the enum type.
It could seem that the generated models code are not using the appropriate enumClassnameToJson() method when serializing the enum value.
Error Message
NoSuchMethodError: Class 'PaymentType' has no instance method 'toJson'.
Receiver: Instance of 'PaymentType'
Tried calling: toJson

Stacktrace
E/flutter ( 6760): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: Converting object to an encodable object failed: Instance of 'InitatePurchaseRequest'
E/flutter ( 6760): #0      _JsonStringifier.writeObject (dart:convert/json.dart:688:7)
E/flutter ( 6760): #1      _JsonStringStringifier.printOn (dart:convert/json.dart:877:17)
E/flutter ( 6760): #2      _JsonStringStringifier.stringify (dart:convert/json.dart:862:5)
E/flutter ( 6760): #3      JsonEncoder.convert (dart:convert/json.dart:262:30)
E/flutter ( 6760): #4      JsonCodec.encode (dart:convert/json.dart:172:45)
E/flutter ( 6760): #5      JsonConverter.encodeJson (package:chopper/src/interceptor.dart:245:42)
E/flutter ( 6760): #6      JsonConverter.convertRequest (package:chopper/src/interceptor.dart:239:12)
E/flutter ( 6760): #7      ChopperClient._encodeRequest (package:chopper/src/base.dart:178:23)
E/flutter ( 6760): #8      ChopperClient._handleRequestConverter (package:chopper/src/base.dart:277:26)
E/flutter ( 6760): #9      ChopperClient.send (package:chopper/src/base.dart:301:21)
E/flutter ( 6760): #10     _$CoffeecardApiV2._apiV2PurchasesPost (package:coffeecard/generated/api/coffeecard_api_v2.swagger.swagger.chopper.dart:42:10)
E/flutter ( 6760): #11     CoffeecardApiV2.apiV2PurchasesPost (package:coffeecard/generated/api/coffeecard_api_v2.swagger.swagger.dart:57:12)
E/flutter ( 6760): #12     PurchaseRepository.initiatePurchase (package:coffeecard/data/repositories/v2/purchase_repository.dart:17:33)

To Reproduce
Below code snippet calls the generated API code
Future<InitiatePurchaseResponse> initiatePurchase(
    int productId,
    PaymentType paymentType,
  ) async {
    return await _api.apiV2PurchasesPost(
      body: InitatePurchaseRequest(
        productId: productId,
        paymentType: paymentType,
      ),
    );
}

The Post method takes the below InitatePurchaseRequest in the HTTP body. Notice that the property paymentType is an enum
InitatePurchaseRequest
"InitatePurchaseRequest": {
    "type": "object",
    "description": "Initiate a new purchase request",
    "additionalProperties": false,
    "required": [
        "productId",
        "paymentType"
    ],
    "properties": {
        "productId": {
            "type": "integer",
            "description": "Id of product to be purchased",
            "format": "int32",
            "example": 1
        },
        "paymentType": {
            "description": "Payment Type used to fulfill purchase",
            "example": "MobilePay",
            "oneOf": [
                {
                    "$ref": "#/components/schemas/PaymentType"
                }
            ]
        }
    }
}

PaymentType
"PaymentType": {
    "type": "string",
    "description": "PaymentType represents the type of Payment which is used to fulfill a purchase",
    "x-enumNames": [
        "MobilePay"
    ],
    "enum": [
        "MobilePay"
    ]
}

Expected behaviour
The Request class with an enum property is serialized correctly and a successful HTTP request is sent to the server.
Swagger specification link
Link to Cafe Analog CoffeeCard API v2
Library version used:
dependencies:
  chopper: 4.0.4

dev_dependencies:
  chopper_generator: 4.0.3
  json_serializable: 6.1.3
  swagger_dart_code_generator: 2.3.2

Additional context
None. Just tag me if more information is needed

Hi @jonasanker , actually good issue. Will try to fix it soon!

Hi @jonasanker
InitatePurchaseRequest.paymentType is dynamic because it's oneOf. When you set dynamic field some value - it should be convertable to json. Enum is not convertable to json by default. So you need just use some String value instead of enum. Method jsonEncode is not working with enums.
Let me demonstrate an example:
`
void main() {
final aa = jsonEncode(SomeClass('someThing').toJson()); // OK
final bb = jsonEncode(SomeClass(MyEnum.one).toJson()); // NOT OK
final cc = jsonEncode(MyEnum.one); // ALSO NOT OK
}
@JsonSerializable(explicitToJson: true)
class SomeClass {
@JsonKey()
final dynamic someField;
SomeClass(this.someField);
Map<String, dynamic> toJson() => _$SomeClassToJson(this);
}
enum MyEnum {
one,
two,
three,
}
`

@jonasanker  anyway if field not dynamic, but generated as enum - you can use Enum of course, because we add custom toJson methods to such fields. I'm closing the issue. Don't hesitate to contact us if something is not clear.


Prefetching rows from remote source

Is there a way to prefetch rows from a remote source?
It seems that setting setDataListener gets called whenever the viewport changes. When scrolling this generates a lot of calls to the server. What is the best way to implement a caching mechanism to load data in pages (e.g. load 100 rows instead of just the 25 of the viewport) and have the table generate a call only when needed, or when approaching the edge of the prefetched data?

regular-table does not cache/keep any data, even for just the visible viewport, once rendered this data is discarded.  This is by design, and preserves proper separation from the data model.  If you have a specific prefetch strategy in mind, it is trivial to implement a cache pattern within a setDataListener() callback data model, something like so:
async function dataListener(x0, y0, x1, y1) {
    if (!cache.has(x0, y0, x1, y1)) {
        const data = await getDataFromServer(...embiggenViewport(x0, y0, x1, y1));
        cache.set(x0, y0, data);
    }
    return cache.get(x0, y0, x1, y1);
}

Future renders will block until a page request to this callback is complete, so you can trade off page-boundary for intra-cache performance as desired.
If you are interested in a more fully-featured data model, rather than the bring-your-own approach of regular-table, check out perspective, a complete WebAssembly data model and query engine for regular-table

Thank you for your repsonse! Perspective is great and I was actually asking in that regard. It seems that the Perspective dataListener in case of a remote view reloads the viewed records from the remote server which causes a lot of roundtrip data sent over the wire. I was looking into the best way to implement such caching with Perspective's remote view capabilities.
I was asking on this repo since it seems the dataListener implementation for Perpsective resides here.
Does this functionality already exist within Perspective?
Any pointers on implementation would be appreciated so I can try to produce a PR.

No, perspective-python's virtual mode does not do this;  scroll performance is substantially better without it for the reason stated below.  However, it is much more common to run perspective both on the server and client (via the perspective.js WebAssembly library), in which case the entire data set is downloaded via Apache Arrow to the browser and loaded locally where scroll "roundtrip" is not an issue.

It seems that the Perspective dataListener in case of a remote view reloads the viewed records from the remote server which causes a lot of roundtrip data sent over the wire.

All virtual data models do this, even if you increase the "page size".  I think you may misunderstand how regular-table's scrolling works, it does not make a request for every scroll row;  rather, it fires a scroll repaint at the current scroll position at the moment the previous render frame is complete, which may be many thousands of rows after the previous frame, or perhaps before (or diagonally!), depending on where the user has scrolled.  Doing nothing other than increasing the page size makes your request 1/N as frequent but block for N times a long, except you no longer can make requests for the next draw page while rendering the previous one, leading to overall lower average scroll frame rate.


Feature Add Nested Scrollview

This feature adds elegant handling of nested scrollviews. Overscroll data of nested scrollview get thrown to the parent. Also adds in a new property scroll_nested, which defaults to False.
Testing needs to be done, as far as I can tell it is working, and fixes #4444, while not removing other functionality.
Some documentation might need to be amended also to reflect the scroll_nested property.

Just checked the test case in #4444. Seems like the issue is still active. (Was fixed for the test case I was using)
I know my way around scrollview now though so will take a stab at fixing.

Why implement a new property that enables nesting instead of making it doing so automatically? I mean, I can't imagine myself actually doing this:
ScrollView:
    scroll_nested: True
    ScrollView:
        scroll_nested: True
        ScrollView:
            scroll_nested: True
            ...

Problem I ran into was that nested views needed to have the effect class use ScrollEffect, instead of DampedScroll, this was easiest implemented through a new property. Furthermore, it seemed the simplest solution to the problem. Another solution could be to traverse children to see if there are any scrollviews nested, and set the effect class then. Will get back to you.

@KeyWeeUsr
Have updated the code as per your suggestions, removing the need for a new declared property, instead the scrollview looks for children, and if there are, changed the private property.
Also corrected some issues with the scroll bars. From what I could tell the bindings in the style.kv file weren't working properly. I removed these binding and created replacements in the scrollview.py file. This has corrected the issue.
Still some testing needed for multiple nestings, i.e. SV in SV in SV, or Multiple nested SVs in one SV.

I have an idea, but I'm not really sure if you're in favor of it. I noticed this part:

Still some testing needed for multiple nestings, i.e. SV in SV in SV, or Multiple nested SVs in one SV.

Recently I've made some changes in the part that's used directly for the UI unittesting of (not only) Kivy widgets - common.py. If you're willing to, you can inspire yourself with test_uix_slider.py and test_uix_actionbar.py(mainly this) and make a test(s) for the functionality of this PR.
I made some progress with test_uix_scrollview.py for basic SV testing, however I don't think that's enough and adding changes targeting the nesting would definitely make the widget more friendly for future changes as I see you make quite a lot of them. IMO this PR has quite a potential.
Feel free to contact me or anyone from the core team at #kivy-dev if you have questions about the unittesting. I mostly tend to appear there between 6pm to 2am CEST (or at least stalk the logs).


mvn install

when i run the mnv install, or compile:
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------< org.dillon.fx:dillon-boot-fx >--------------------
[INFO] Building dillon-boot-fx 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> sass-cli-maven-plugin:1.0.1:run (run-sass) > generate-resources @ dillon-boot-fx >>>
[INFO]
[INFO] <<< sass-cli-maven-plugin:1.0.1:run (run-sass) < generate-resources @ dillon-boot-fx <<<
[INFO]
[WARNING] The POM for com.ruoyi:ruoyi-api-system:jar:3.6.2 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.837 s
[INFO] Finished at: 2023-02-13T14:50:16+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project dillon-boot-fx: Could not resolve dependencies for project org.dillon.fx:dillon-boot-fx:jar:1.0-SNAPSHOT: com.ruoyi:ruoyi-api-system:jar:3.6.2 was not found in https://oss.sonatype.org/content/repositories/snapshots/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of sonatype-snapshots has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

download here：
https://gitee.com/y_project/RuoYi-Cloud


css

view-source:https://www.mywebsiteonline.com/asset/gzip/?t=css&d=templates/themes/base/css/&f=splash.css,tooltip.css,js/jquery/carousel.css
/asset/gzip/?t=css&d=static/css/&f=bootstrap.css,bootstrap_customize.css,animate.css
all the css.
I have:
> /*Cached` on 19 Apr 2022 19:57:24*/
> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><title>403 Forbidden</title>
Forbidden

You don't have permission to access this resource.

Additionally,a 403 Forbiddenerror was encountered while trying to use an ErrorDocument to handle the request.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><title>403 Forbidden</title>
Forbidden

You don't have permission to access this resource.

Additionally,a 403 Forbiddenerror was encountered while trying to use an ErrorDocument to handle the request.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><title>403 Forbidden</title>
Forbidden

You don't have permission to access this resource.

Additionally,a 403 Forbiddenerror was encountered while trying to use an ErrorDocument to handle the request.

the template is not showing
why?
Should I change the chmod ?
thanks

When I viewed the link you provided it says the website domain is up for sale.

The  link is a example.


Repeated storage error messages

On storage connection error, I got the following in my terminal:
 Error Details

 ✖ storage
The specified bucket does not exist

Caused by:
    The specified bucket does not exist

The redundancy is not very nice.

Confirmed it still happens today.

@fulmicoton @fmassot
Would you please help to confirm if it's still happens today? thank you

@fulmicoton @fmassot
There are more duplicate error messages  such as
✘ Command failed: Failed to connect to metastore: `Internal error: Failed to get index files. Cause: `StorageError(kind=Internal, source=failed to construct request: A region must be set when sending requests to S3. (ConstructionFailure(ConstructionFailure { source: ResolveEndpointError { message: "A region must be set when sending requests to S3.", source: None } })))`.`

Caused by:
    Internal error: Failed to get index files. Cause: `StorageError(kind=Internal, source=failed to construct request: A region must be set when sending requests to S3. (ConstructionFailure(ConstructionFailure { source: ResolveEndpointError { message: "A region must be set when sending requests to S3.", source: None } })))`.

But I need help about how to trigger the duplicate message @fmassot reported
✖ storage
The specified bucket does not exist

@fulmicoton @fmassot
In order to solve this issue, we need to refactor the error handler and considering the usage of Trait anyhow::Context

@fmassot @fulmicoton
The root cause of the duplicate error message is the representation of error messages when using #[error("...")] to generate Display impl, such as
    #[error("failed to connect to metastore: `{0}`")]
    Initialization(#[from] MetastoreError),

    #[error("internal error: {message}; cause: `{cause}`")]
    Internal { message: String, cause: String },

https://github.com/quickwit-oss/quickwit/blob/8c22505c5e0f25ac156d1e7f181979ebc988b60c/quickwit/quickwit-metastore/src/error.rs#L40
https://github.com/quickwit-oss/quickwit/blob/2de3fb969b815511a9663e739e93e2538da6f1b5/quickwit/quickwit-proto/src/metastore/mod.rs#L117

@fmassot @fulmicoton
Such error definition like these will output duplicate error messages like the one outlines before
https://github.com/quickwit-oss/quickwit/blob/main/quickwit/quickwit-doc-mapper/src/error.rs#L27-L38
Should we re-factor the string representation of the Errors?


Inject fails with "not a valid Win32 application"

remote io error: %1 is not a valid Win32 application. (os error 193)
This is specific to a game called "the binding of isaac".
Processname is "isaac-ng" and shows up as a 32bit application in task manager.
I can inject successfully into "explorer" for example.
Tried enabling feature into-x86-from-x64 without any luck.
Host: Windows 10 64bit
Thanks for any help

Is the payload dll you are trying to inject 32 bit as well?

It was not, thanks for that.
Now I am running: cargo build --target=i686-pc-windows-msvc
But still get another error: The system cannot find the file specified. (os error 2)
This is not the same as wrong path to the .dll

Are you maybe using a relative path that cannot be resolved from the context of the target process?

I am using a relative path  ./target/i686-pc-windows-msvc/debug/irestart.dll
Tried to change it to an absolute path with same result.
But even with the relative path I get different results for:  ./target/i686-pc-windows-msvc/debug/irestart.dll
vs
./target/i686-pc-windows-msvc/debug/doesnotexist.dll
First example is: cannot find file (os error 2)
Second is: cannot find module (os error 126)
I upload a repo: https://github.com/bonega/irestart

@bonega here are things I would try:

Run ProcMon and look for error return codes in isaac-ng when injecting: https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Try to LoadLibrary your DLL directly from an executable you've coded yourself
Try to inject it into another executable (maybe a 64-bit one)
Use dumpbin /imports on your DLL (from an MSVC developer tools shell for x86), or use Dependency Walker or a modern equivalent

Can you try your code in release mode?

@OpenByteDev --release for the injector solved it, thank you very much.
@fasterthanlime Thanks for the general tips.
In your video, are you running the injector in release mode? I couldn't see it.

The error seems to be with the debug_assert in Syringe::inject.

The error seems to be with the debug_assert in Syringe::inject.

In your video, are you running the injector in release mode? I couldn't see it.

Mhh no I even had a bit (that I cut) about how you normally would want release mode but it was so little code that it didn't actually slow down the emulator enough for me to care.
(Context for everyone else: @bonega is talking about this video)

Fixed in 0.11.2


OpenSSL 1.1 incompatible with qt < 5.10

[x] I confirm that this is an issue rather than a question.

Bug report
I just tried the new release. But it's always crashing. Am I doing something wrong or is this a bug?
(The previous versions run fine)
Steps to reproduce
Install released version
Start it
What is expected?
Hyperion starts
What is actually happening?
pi@Hyperion-on-RPi1:/usr/share/hyperion/bin $ sudo hyperiond
[hyperiond EFFECTFILES] <INFO> 38 effects loaded from directory :/effects/
[hyperiond EFFECTFILES] <INFO> 21 effect schemas loaded from directory :/effects/schema/
[hyperiond EFFECTFILES] <INFO> 0 effects loaded from directory /root/.hyperion/custom-effects
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()> Settings database initialized
[hyperiond BLACKBORDER] <DEBUG> <BlackBorderProcessor.cpp:65:handleSettingsUpdate()> Set mode to: default
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Blackborder detector: enabled
[hyperiond DAEMON] <INFO> set screen capture device to 'dispmanx'
[hyperiond DISPMANXGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
[hyperiond DISPMANXGRABBER] <INFO> Display opened with resolution: 640x480
[hyperiond DISPMANXGRABBER] <DEBUG> <Grabber.cpp:82:setWidthHeight()> Set new width: 80, height: 45 for capture
[hyperiond DAEMON] <INFO> DISPMANX frame grabber created
[hyperiond V4L2:/dev/video0] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
[hyperiond LEDDEVICE] <INFO> LedDevice 'ws281x' found.
[hyperiond V4L2:/dev/video0] <INFO> Signal threshold set to: {12, 12, 12}
[hyperiond V4L2:/dev/video0] <INFO> Cropping image: width=0 height=0; crop: left=20 right=21 top=0 bottom=14
[hyperiond V4L2:/dev/video0] <INFO> Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
[hyperiond DAEMON] <DEBUG> <hyperiond.cpp:434:handleSettingsUpdate()> V4L2 grabber created
[hyperiond LEDDEVICE] <DEBUG> <LedDeviceWS281x.cpp:60:init()> ws281x strip type : 1050624
[hyperiond JSONSERVER] <DEBUG> <JsonServer.cpp:25:JsonServer()> Created instance
[hyperiond JSONSERVER] <INFO> Started on port 19444
[hyperiond FLATBUFCONNECTION] <INFO> Connecting to Hyperion: <IP_ADDRESS>:19401
[hyperiond EFFECTENGINE] <INFO> Run effect "Start Background" on channel 0
[hyperiond EFFECTENGINE] <ERROR> Effect Start Background not found
[hyperiond HYPERION] <INFO> Initial foreground effect 'Start Background' failed
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:158:registerInput()> Register new input 'System/COLOR' with priority 254 as inactive
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:198:setInput()> Priority 254 is now active
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:333:setCurrentTime()> Set visible priority to 254
[hyperiond HYPERION] <INFO> Inital background color set (163 122 67)
[hyperiond BOBLIGHT] <DEBUG> <BoblightServer.cpp:28:BoblightServer()> Instance created
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> LED device: enabled
[hyperiond FLATBUFSERVER] <INFO> Started on port 19400
[hyperiond PROTOSERVER] <INFO> Started on port 19445
[hyperiond HYPERION] <INFO> Hyperion instance 'First LED Hardware instance' has been started
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: QSslSocket: cannot resolve SSLeay_version
qt.network.ssl: QSslSocket: cannot call unresolved function SSLeay
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
[hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:105:handleSettingsUpdate()> Set document root to: :/webconfig
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function sk_num
[hyperiond WEBSERVER] <DEBUG> Previous line repeats 1 times
[hyperiond WEBSERVER] <INFO> Started on port 8090 name 'Hyperion Webserver'
Segmentation fault

System
Raspberry Pi1 running Raspian

Seems to be a issue with qt <-> openssl. so
Can you verify with sudo apt-get install openssl that the version is 1.1
Thanks

Yes it was:
Package: openssl Version: 1.1.1d-0+deb10u2
but running
sudo apt install libssl1.0-dev
fixed it for me. Thanks
Maybe this should be listed as an install dependency.

Great it worked, but libssl1.0-dev is a transition dependency and no longer available for debian buster. Not sure how other platforms handle this.
Solutions

package openssl1.0 (+ possible sub deps) until Qt5.10 is available on all platforms.
Recompile qt for all platforms with openssl11 support
Update to Qt 5.10 for all platforms (first version with openssl 1.1)

2 and 3 can be combined to compile always the latest qt version and package it.
@Lord-Grey @Paulchen-Panther

@brindosch
Ich werde mich der sache mal annehmen.
Unsere Docker Container laufen ja noch auf Stretch. Sollten wir diese vielleicht auch auf Buster upgraden?

Avahi sollten wir glaube ich auch aus der Blacklist streichen.
Screen:

Source:
https://github.com/hyperion-project/hyperion.ng/blob/master/src/hyperiond/CMakeLists.txt#L8-L9

Ich werde noch mal schauen, warum die libssl NICHT mit in das /lib verzeichnis kopiert wird.
Screen:


Drawing tool: Bug while drawing if we already have drawn a geometry

Story details: https://app.shortcut.com/cartoteam/story/200165

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.913%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1116

Relevant Lines:
1500

💛  - Coveralls


Add qamets qatan when 'kol' is by itself

I noticed that the current qamets qatan regex for 'kol' doesn't handle the case when it is by itself (i.e. doesn't precede another word). This doesn't come up in practice, of course, but it did confuse me and make me think that the qamets qatan conversion didn't work when I typed in just "כָּל" as a test in hebrewtransliteration.app.
This PR makes the whitespace in that regex optional, which fixes this issue, and adds some tests.
(BTW I just found this project, it's amazing!)

@m-yac
Wow, thanks!
This looks great, and a nice simple fix.
A user would definitely expect "כָּל" to have a qamets qatan.
For context, there are a few places where "כָּל" appears w/o a maqqef (e.g. Psa 35:10) and, if I remember correctly, reading traditions are split on how to pronounce it. Miqra acc. to the HaMasorah fixes this with a maqqef (Psa 35:10 again).
I'm glad you're finding it useful!

The tests pass, but you'll have to run
npm run format

to fix the formatting issues


Update required for OED version 1.0.4

Update required for OED version 1.0.4

https://github.com/sr-murthy/oedtools/pull/7

Update complete + package published
https://pypi.org/project/oedtools/


cannot configure

self explanetory

@Istoleyourface
thank you for raising the issue.
Could you tell me where you are placing the config file and which config you are trying to change.
I checked the latest exe and I could change the offset of my neko just fine.

hey, thanks for the response
the config file was ".configneko2020config.yml", under my %USERDATA% folder, as suggested in the readme.
but from your screenshots i can see that its meant to be a path.
i think the readme should be changed to say that its meant to be in a folder

Oh, i didn't notice that. Sorry for the inconvenience.
It must have slipped through when updating the readme.
I will fix it.

updated!


Place schema violations below constraint violations, add a note that schema violations are not currently enforced

This is to reduce confusion regarding recent changes to the behavior of the CDC validator (see cessda/cessda.cdc.versions#545).

@john-shepherdson Current test appearance

Not sure it is clear what 'Not currently enforced' applies to. Also, concept of 'enforcement' is not clear.
Need a statement at top of results that says something like:
Note that records with constrain violations will be visible in the CESSDA Data Catalogue (CDC) User Interface, but will be excluded from the OAI-PMH endpoint. Records with XSD Schema violations will be visible in the CDC User Interface and, for the time being, also included in the OAI-PMH endpoint.

Seems a bit wordy to me. I do agree that "Not currently enforced" is unclear though.

Note that records with constrain violations are excluded from the CESSDA Data Catalogue OAI-PMH endpoint.


DE-setup: overlooked extra website-section

added /server/templates/website-section/editorial-advisory-board

@Alixers505 The custom route from DE will need to be ported over in order for the editorial advisory board template to be used. Also, can you verify the NativeX configuration matches what is in place on their existing site?

I added the custom route for the website section. I'm not sure what you want me to verify on NativeX? The native-x.js files match between old and new, and the placement on the homepage blocks. Is there somewhere else I should be verifying?


”Solești”, ”Boușori”, ”Iaz”, ”Satu Nou” are listed in the drop-down menu

Description:
When user writes ”Solești”, ”Boușori”, ”Iaz”, ”Satu Nou” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Solești"

Expected results
The location appears in the drop-down menu as "Sat Solești, VASLUI (Solești)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Boușori"

Expected results
The location appears in the drop-down menu as "Sat Boușori, VASLUI (Solești)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Iaz"

Expected results
The location appears in the drop-down menu as "Sat Iaz, VASLUI (Solești)".

Step 6
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 7
Write in the search bar "Satu Nou"

Expected results
The location appears in the drop-down menu as "Sat Satu Nou, VASLUI (Solești)".


GetDoorStatus threw an error:

I have done all and it is pulling the locks off the August API server with their ID and
[13/06/2022, 03:56:13] [August DoorSense] GetDoorStatus threw an error:
 Error: Unknown door status: kAugDoorState_Init
    at augustGetDoorStatus (/usr/lib/node_modules/homebridge-august-door-sense/src/august.ts:243:13)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)

While I do have one unresponsive lock in another houseid, its id has been filtered out through the filter function. However, the plugin seems to still fail at pulling the lock status
Any help is appreciated!
it just seems to be bringing the other locks from another house along even though I have tried filtering out their ID and houseid
        {             "name": "August DoorSense",             "email"<EMAIL_ADDRESS>            "password": "**********",             "code": "******",             "installId": "de************************d0",             "filter": "CC598***************8,8*********************2",             "platform": "AugustDoorSense"         }
Problem I'm having is with the filter for multiple lock, one works ok, two none work

Fixed by using proper json array formatting ["xxxxxx","xxxxx"],
Regards


[Infra] Create a infra ticket queue

Goal: enable infra customers to easily open bugs for failures, the infra on call will be in charge of triaging and fixing small issues and moving the one that will take more than a day to another queue.
This is similar to go/intk.
Action items

[ ] Create a doc for discussion.
[ ] Move the finalized plan to a wiki page.

Related chat notes.
/cc @godofredoc @pcsosinski

A proposal is in progress: go/flutter-infra-ticket-queue


java.lang.IllegalArgumentException: Comparison method violates its general contract!

Please describe what you did before the error occurred.
IMPORTANT! If the error occurs with a specific APK file please attach or provide link to apk file!

Jadx version: 1.4.2
Java version: <IP_ADDRESS>
Java VM: Oracle Corporation OpenJDK 64-Bit Server VM
Platform: Windows 11 (10.0 amd64)
Max heap size: 4096 MB

java.lang.IllegalArgumentException: Comparison method violates its general contract!
	at java.base/java.util.ComparableTimSort.mergeHi(Unknown Source)
	at java.base/java.util.ComparableTimSort.mergeAt(Unknown Source)
	at java.base/java.util.ComparableTimSort.mergeForceCollapse(Unknown Source)
	at java.base/java.util.ComparableTimSort.sort(Unknown Source)
	at java.base/java.util.Arrays.sort(Unknown Source)
	at java.desktop/sun.awt.shell.Win32ShellFolderManager2.get(Unknown Source)
	at java.desktop/sun.awt.shell.ShellFolder.get(Unknown Source)
	at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel.addItem(Unknown Source)
	at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI.doDirectoryChanged(Unknown Source)
	at java.desktop/javax.swing.plaf.metal.MetalFileChooserUI$5.propertyChange(Unknown Source)
	at java.desktop/java.beans.PropertyChangeSupport.fire(Unknown Source)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
	at java.desktop/java.awt.Component.firePropertyChange(Unknown Source)
	at java.desktop/javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
	at java.desktop/javax.swing.JFileChooser.<init>(Unknown Source)
	at java.desktop/javax.swing.JFileChooser.<init>(Unknown Source)
	at jadx.gui.ui.dialog.FileDialog$FileChooser.<init>(FileDialog.java:155)
	at jadx.gui.ui.dialog.FileDialog$FileChooser.<init>(FileDialog.java:155)
	at jadx.gui.ui.dialog.FileDialog.buildFileChooser(FileDialog.java:137)
	at jadx.gui.ui.dialog.FileDialog.show(FileDialog.java:73)
	at jadx.gui.ui.MainWindow.addFiles(MainWindow.java:304)
	at jadx.gui.ui.MainWindow$5.actionPerformed(MainWindow.java:840)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

The only occurrence of Arrays.sort(..) in sun.awt.shell.Win32ShellFolderManager2 is:
File[] secondLevelFolders = checkFiles(desktop.listFiles());
Arrays.sort(secondLevelFolders);

So this error is caused by the Comparable implementation of java.io.File.
My guess is that this is a very rare Java bug. May be caused by a file that is deleted while sorting is in progress.

I found that creating two JFileChooser on windows does exaclty that. Somehow when calling it the second time it will inject another Documents folder and the Sort will go nuts. I might create a java bug ticket for that.


ERR_CONNECTION_CLOSED

What version of V2Ray are you using (If you deploy different version on server and client, please explicitly point out)?
Version 3.16 for both server and client

What's your scenario of using V2Ray? E.g., Watching YouTube videos in Chrome via Socks/VMess proxy.
Internet browsing

What did you see? (Please describe in detail, such as timeout, fake TLS certificate etc)
ERR_CONNECTION_CLOSED on chrome

Please attach your configuration file (Mask IP addresses before submit this issue).
Server configuration:

{
    "log": {
            "access": "/var/log/v2ray/access.log",
            "error": "/var/log/v2ray/error.log",
            "loglevel": "warning"
    },
    "inbound": {
            "port": 40000,
            "protocol": "vmess",
            "settings": {
                    "clients": [{
                            "id": "xxxxxxxxxxxxxxxxxxxx",
                            "level": 1,
                            "alterId": 64,
                            "security": "auto"
                    }]
            },
            "streamSettings":{
                    "network":"ws",
                    "security":"auto",
                    "wsSettings":{
                            "path": "/fles/"
                            }
                    }
    },
    "outbound": {
            "protocol": "freedom",
            "settings": {}
    },
        "outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "<IP_ADDRESS>/8",
                        "<IP_ADDRESS>/8",
                        "<IP_ADDRESS>/10",
                        "<IP_ADDRESS>/8",
                        "<IP_ADDRESS>/16",
                        "<IP_ADDRESS>/12",
                        "<IP_ADDRESS>/24",
                        "<IP_ADDRESS>/24",
                        "<IP_ADDRESS>/16",
                        "<IP_ADDRESS>/15",
                        "<IP_ADDRESS>/24",
                        "<IP_ADDRESS>/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}

Client configuration:

{

  "log": {
    "loglevel": "warning",
    "access": "/Users/MacBook/v2ray/access.log",
    "error": "/Users/MacBook/v2ray/error.log"
  },
  "inbound": {
    "port": 1081,
    "listen": "<IP_ADDRESS>",
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": true,
      "ip": "<IP_ADDRESS>",
      "clients": null
    },
    "streamSettings": null
  },
  "outbound": {
    "tag": "wsout",
    "protocol": "vmess",
    "settings": {
      "vnext": [
        {
          "address": "xxxxxx.club",
          "port": 443,
          "users": [
            {
              "id": "xxxxxxxxxxxxxxxxxxxx",
              "alterId": 64,
              "security": "auto"
            }
          ]
        }
      ]
    },
    "streamSettings": {
      "network": "ws",
      "security": "tls",
      "tlsSettings": {
        "serverName": "xxxxxxxxx",
        "allowInsecure": true
    },
      "wsSettings": {
        "connectionReuse": true,
        "path": "/fles/"
      }
    },
    "mux": {
      "enabled": true
    }
  },
  "outboundDetour": [
    {
      "protocol": "freedom",
      "settings": {
        "response": null
      },
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "settings": {
        "response": {
          "type": "http"
        }
      },
      "tag": "blockout"
    }
  ],
  "dns": {
    "servers": [
      "<IP_ADDRESS>",
      "<IP_ADDRESS>",
      "localhost"
    ]
  },
  "routing": {
    "strategy": "rules",
    "settings": {
      "domainStrategy": "IPIfNonMatch",
      "rules": [
        {
          "type": "field",
          "port": null,
          "outboundTag": "direct",
          "ip": [
            "<IP_ADDRESS>/8",
            "<IP_ADDRESS>/8",
            "<IP_ADDRESS>/10",
            "<IP_ADDRESS>/8",
            "<IP_ADDRESS>/16",
            "<IP_ADDRESS>/12",
            "<IP_ADDRESS>/24",
            "<IP_ADDRESS>/24",
            "<IP_ADDRESS>/16",
            "<IP_ADDRESS>/15",
            "<IP_ADDRESS>/24",
            "<IP_ADDRESS>/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "domain": null
        }
      ]
    }
  }
}

Please attach error logs, especially the bottom lines if the file is large. Error log file is usually at /var/log/v2ray/error.log on Linux.
Server error log:

2018/05/09 17:36:09 [Warning] Core: V2Ray v3.16 started
2018/05/09 17:41:42 [Warning] Core: V2Ray v3.16 started
2018/05/09 17:42:26 [Warning] Core: V2Ray v3.16 started

Client error log:

2018/05/09 18:30:31 [Warning] Core: V2Ray v3.16 started
2018/05/09 18:45:31 [Warning] Core: V2Ray v3.16 started
2018/05/09 18:47:00 [Warning] Core: V2Ray v3.16 started
2018/05/09 22:49:43 [Warning] Core: V2Ray v3.16 started
2018/05/10 11:52:58 [Warning] Core: V2Ray v3.16 started

Please attach access log. Access log is usually at '/var/log/v2ray/access.log' on Linux.

2018/05/10 09:48:21 tcp:<IP_ADDRESS>:55794 accepted tcp:www.google.be:443
2018/05/10 09:48:22 tcp:<IP_ADDRESS>:55794 accepted tcp:www.google.be:443
2018/05/10 09:48:22 tcp:<IP_ADDRESS>:55794 accepted tcp:play.google.com:443
2018/05/10 09:48:22 tcp:<IP_ADDRESS>:55794 accepted tcp:www.google.be:443
2018/05/10 09:48:23 tcp:<IP_ADDRESS>:55794 accepted tcp:play.google.com:443
2018/05/10 09:48:23 tcp:<IP_ADDRESS>:55794 accepted tcp:www.google.be:443
2018/05/10 09:48:24 tcp:<IP_ADDRESS>:55794 accepted tcp:www.google.be:443
2018/05/10 09:48:25 tcp:<IP_ADDRESS>:55794 accepted tcp:www.google.be:443
2018/05/10 09:48:25 tcp:<IP_ADDRESS>:55794 accepted tcp:hudong.alicdn.com:80
2018/05/10 09:48:34 tcp:<IP_ADDRESS>:55796 accepted tcp:www.google.be:443
2018/05/10 09:48:35 tcp:<IP_ADDRESS>:55796 accepted tcp:www.google.be:443
2018/05/10 09:48:46 tcp:<IP_ADDRESS>:55796 accepted tcp:www.google.be:443
2018/05/10 09:48:47 tcp:<IP_ADDRESS>:55796 accepted tcp:www.google.be:443
2018/05/10 09:48:55 tcp:<IP_ADDRESS>:55800 accepted tcp:www.google.be:443
2018/05/10 09:48:56 tcp:<IP_ADDRESS>:55800 accepted tcp:www.google.be:443
2018/05/10 09:52:56 tcp:<IP_ADDRESS>:55824 accepted udp:<IP_ADDRESS>:53
2018/05/10 09:52:56 tcp:<IP_ADDRESS>:55824 accepted tcp:www.google.be:443
2018/05/10 09:52:58 tcp:<IP_ADDRESS>:55824 accepted tcp:www.google.be:443
2018/05/10 09:52:59 tcp:<IP_ADDRESS>:55824 accepted tcp:www.google.be:44

I don't see any error and I have been running this config for months and suddenly, 2 days ago i just couldn't use my internet browser laptop/phone, ERR_CONNECTION_CLOSED. I have checked the time on both side, only 5 second difference.
Interesting fact, on my phone, I still can make a connection to internet through some application, ex. messenger etc....

Thanks


Missing model composition references in OpenAPI schema

I am no expert in OpenAPI schema but I am wondering if the STAC API extensions such as Filter do not miss the reference to the base schema they extent as well as the paths were they are applicable.
refs: https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/
For instance:
schemas:
    searchBody:
      type: object
      x-stac-api-fragment: filter
      description: |-
        **Extension:** Filter
        A filter for properties in Items.
      properties:
        filter:
          $ref: '#/components/schemas/filter-cql2-json'
        filter-lang:
          $ref: '#/components/schemas/filter-lang'
        filter-crs:
          $ref: '#/components/schemas/filter-crs'

should actually be
schemas:
  searchBody:
    type: object
    x-stac-api-fragment: filter
    description: |-
      **Extension:** Filter
      A filter for properties in Items.
    allOf: # Combines the searchBody of Item-filter and the inline model
      - $ref: "https://api.stacspec.org/v1.0.0-rc.2/item-search/openapi.yaml#/components/schemas/searchBody"
    properties:
      filter:
        $ref: "#/components/schemas/filter-cql2-json"
      filter-lang:
        $ref: "#/components/schemas/filter-lang"
      filter-crs:
        $ref: "#/components/schemas/filter-crs"

and even if it defines a new data structure, the path using it should be specified again in order to specify which route accepts the new or extended structure
paths:
  /search:
    post:
      summary: Search STAC items with full-featured filtering.
      operationId: postItemSearch
      tags:
        - Item Search
        - Filter extension
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/searchBody'

On my side, without those specifications, the OpenAPI SDK generator cannot link the extension with any of the core APIs.
Let me know If I am missing something...

This modified OpenAPI spec works with OpenAPI client generator: https://github.com/Terradue/DotNetStac.Api/blob/45f91d9afba626937473251915273d15987a1bd0/src/Stac.Api.CodeGen/Schemas/extensions/filter/openapi-1.0.0-rc.2-mod.yaml


Cards with Evolution can't be recognized properly

I have two evolved cards which are showing as original cards rating in the solver.

not only that - it fails to categorize them properly in general.


Boruvka’s Algorithm in cpp

💥 Proposal
Boruvka’s Algorithm is a greedy algorithm used for finding Minimum Spanning Tree (MST) for a connected, weighted, and undirected graph.
Boruvka’s algorithm is parallel in nature. It operates in phases. In each phase, it selects the cheapest edge from each vertex, adds all of these to the MST at once, and then contracts each connected component into a single vertex.
This algorithm will be implemented in cpp.
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


NH : missing auth rule property file fix

No modification for Ruby

No modification for Python

No modification for NodeJS


[bug] <rh-accordion> accent demos

Describe the bug
In the full screen demos for <rh-accordion>, an additional tag with two icons get added for each purposely placed tag:

Also, the "Accents Bottom" demo doesn't show the tags below the header.

Screenshots
No response
Steps to reproduce
Go to the accordion's "Accents" demo or "Accents bottom" demo.
Expected behaviour
The tags should look similar to what's in the image for the accent slot docs.
Element HTML
No response
Operating System (OS)
macOS
Browser
Chrome
Additional browser or assistive technology info
No response

@markcaron @hellogreg, I've added this under Clefairy, but feel free to move it around if it's not a high priority.

Make sure icon gets loaded on the demo page and that the hydration shim loads before any component definitions

#1853 should fix this. see DP


Plans for dirty tracking?

Are there any plans to implement dirty tracking support in Virtus? I can do what I want without it, but it would be handy in some circumstances.
I believe the plan with DM2 is to manage dirty tracking in a UnitOfWork/Session object, but I'd like it for non-persistent objects.

You mean like https://github.com/solnic/virtus-dirty_tracking ?

@namelessjson — Thanks for the pointer!
Between virtus-dirty_tracking and rethinking my approach, I've realized I don't need general-purpose dirty tracking in Virtus.
Also, I agree that dirty-tracking on non-persistent objects is probably not a widespread use-case, and probably shouldn't be in Virtus itself in any case.


⚠ Orpheus has degraded performance

In a55c32e, Orpheus ($OPS) experienced degraded performance:

HTTP code: 502
Response time: 1122 ms

Resolved: Orpheus performance has improved in 9bde6f0.


Segment Status Checker: Handle case when partition online in idealstate is not present in the external view

Modified Segment Status checker to mark the number of replicas in external
view as 0 for segments having online replicas in ideal state but no presence
at all in the external view. Added test to check this condition.

[Current coverage][cc-pull] is 50.50%

Merging [#185][cc-pull] into [master][cc-base-branch] will decrease coverage by <.01%

@@             master       #185   diff @@
==========================================
  Files           711        711
  Lines         38944      38948     +4
  Methods           0          0
  Messages          0          0
  Branches       6236       6237     +1
==========================================
  Hits          19671      19671
- Misses        19251      19255     +4
  Partials         22         22

Powered by Codecov. Last updated by [70b98da...8982d6c][cc-compare]
[cc-base-branch]: https://codecov.io/gh/linkedin/pinot/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/linkedin/pinot/compare/70b98da1f5749b5d97c6bac671d682eb6bcefe4a...8982d6cbc37d84670e8a9346a30dc08d146e7e4c
[cc-pull]: https://codecov.io/gh/linkedin/pinot/pull/185?src=pr