feat: add data_as_bytes method to KinesisStreamRecordPayload

**Issue https://github.com/awslabs/aws-lambda-powertools-python/issues/617
Description of changes:

adding data_as_bytes helper to KinesisStreamRecordPayload as described in linked issue
Checklist

[x] Meet tenets criteria
[x] Update tests
[ ] Update docs
[x] PR title follows conventional commit semantics

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Thank you so much @hjurong !!! Merging this now and making part of today's release

Codecov Report

Merging #628 (525170f) into develop (b2773d5) will decrease coverage by 0.04%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #628      +/-   ##
===========================================
- Coverage    99.95%   99.91%   -0.05%
===========================================
  Files          114      114
  Lines         4597     4599       +2
  Branches       254      254
===========================================
  Hits          4595     4595
- Misses           0        1       +1
- Partials         2        3       +1

Impacted Files
Coverage Δ

...ols/utilities/data_classes/kinesis_stream_event.py
100.00% <100.00%> (ø)

aws_lambda_powertools/utilities/parser/types.py
71.42% <0.00%> (-28.58%)
:arrow_down:

Continue to review full report at Codecov.

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


hyundai: match stock when aeb is disabled

openpilot longitudinal for hyundai doesn't have AEB so we should match stock when you manually disable AEB

confirmed this matches manually disabled AEB (show orange indicator on dash) should be good to merge

Do you have a picture of what the alert looks like?

That looks ok to me. I'm sure we're going to get questions about it though ("Why is my car faulted?"), so maybe put a comment here: https://github.com/commaai/openpilot/blob/master/selfdrive/car/hyundai/interface.py#L28


WinterCG

Curious; is supporting https://wintercg.org/ something you are interested in?
(CC @cyco130 author of HatTip which is also a modern cross-platform Express.js alternative.)

Wayne is not cross-platform it's a Browser only library. If you need to support server-side you have express.js, it doesn't make much sense to compete with express which works well.

Ah, I see, interesting. I wonder what the use cases are? Frameworks like Express.js exist to transfer information that only exists on the server-side (database) to the user's client.

The library is like express.js because it have similar API, but not on the server only for Service Worker. You can have the same what express.js does but in the browser.

The use case would be if you want to have files in a browser that work like normal files (or API requests) but are created in the browser.
An example use case is when you want for instance change API from REST to GraphQL and you write Facade in Service Worker and you don't need to change the application.
I use the same technique when I save files in indexedDB (with a library) and serve them as static files.


User authentication?

I love this, but I don't want my site content to be openly editable by anyone. Is there a way to add an admin user log in?

Hi @meghart, glad you like the editor :)
To clarify - ContentTools is not a CMS - it's a front-end tool that provides a more natural editing environment for HTML pages than traditional rich text boxes. You still need a CMS behind it.
The (Saving Strategies)[http://getcontenttools.com/tutorials/saving-strategies] tutorial is intended to help those looking to integrate ContentTools into their CMS understand how the output of the editor can be stored and only briefly touches on the subject of user authentication.
I am working on an article currently (which I hope to publish early next week) which will look at how to integrate ContentTools into the workflow of your CMS, in particular the UI, and this will cover the basics of user authentication.
In the mean time I can tell you that I've integrated ContentTools into a number of projects internally now all of which use existing CMS applications. In these cases I use cookies to determine if the editor should be shown when a user is browsing the front-end of the website (e.g is the administrator cookie set). Of course the server-side view that receives saved changes must still validate the administrator's credentials  before committing any changes.
I hope that helps better explain the role of ContentTools, I've taken to tweeting when I publish a new tutorial but I'll also try to remember to update this question at the same time.

On kind a same theme - is there any known open source CMS who use ContentTools? Would love to try out for new projects.
If there is no one, and if I had enough time in evenings, I would love start new one.

As it stands I know that @guillaumepiot is working on an open source Django based CMS that use's the editor and I'm working with him also on a WordPress integration. I've spoken to someone looking at integrating the editor with Laravel - but nothing more concrete than that to date.

Also this video maybe of interest as it shows ContentTools integrated into a CMS https://youtu.be/Vh3Fd91pVqQ

I think this should be closed since this is outside the scope of content tools


Consider replacing wget with a resumable download manager

[x] I read the conda-forge documentation and could not find the solution for my problem there.

Issue:
I recently tried to install this package on a jumpy connection and it was quite difficult to get the big .run file downloaded correctly due to its size. Every time it was failing, the download had to be started from the beginning. I had to download it manually to the right folder and fix caching (#51).
There are other download managers like aria2^1 that allow resuming, it could be worth checking them out to mitigate such problems. Switching to aria2 should be straightforward, just add a new run dependency here:
https://github.com/conda-forge/cudatoolkit-dev-feedstock/blob/ab69e3f266bafb99b9f0208c2f5de47c2b6a7252/recipe/meta.yaml#L27-L30
and replace wget with aria2c here:
https://github.com/conda-forge/cudatoolkit-dev-feedstock/blob/ab69e3f266bafb99b9f0208c2f5de47c2b6a7252/recipe/cudatoolkit-dev-post-install.py#L72-L77

maybe the wget command could use the flag -c
 -c,  --continue                  resume getting a partially-downloaded file

That's another great option I didn't try, thanks for pointing it out! In my experience, aria2 is generally faster than wget because it uses multiple connections, but speed is not really important as fixing resuming.


Added MInvariant, for invariant functors in the category of monads.

Hi Gabriel,
I wonder would I be able to persuade you to add the MInvariant class to your mmorph package? I've implemented it below. While some monad transformers can't be made an instance of MFunctor, every monad transformer (even ContT and similar) can be made an instance of MInvariant. Unfortunately this is a breaking change, because I have made MInvariant a superclass of MFunctor.
The reason I'm asking is because it would simplify the implementation of my layers package, which as it stands contains some overlap in functionality with mmorph. With this change I could simply depend on mmorph rather than reimplementing the wheel for this functionality.
If you are considering merging this patch, feel free to change any of the named I've chosen, and you might also want to update the documentation as well. At the moment I'm just trying to see if you would have any interest in this.
Thanks,
Shane

I'm going to close this since this is old and I'm reluctant to make any new breaking changes to the class hierarchy at this point


Simplify sender and receiver configs

Core configures orchestrator queue that it sends to as:
https://github.com/eclipse-apoapsis/ort-server/blob/9c96a53f934e995c79638c58e26b088a2cb8fc47/core/src/main/resources/application.conf#L96-L109
and orchestrator configures the queue that it receives from as:
https://github.com/eclipse-apoapsis/ort-server/blob/9c96a53f934e995c79638c58e26b088a2cb8fc47/orchestrator/src/main/resources/application.conf#L56-L69
Is there ever a situation where ORCHESTRATOR_SENDER_TRANSPORT_* would be different from ORCHESTRATOR_RECEIVER_TRANSPORT_*? If not, it would be clearer if they both would use ORCHESTRATOR_TRANSPORT_* or something like that. Same applies to other senders and receivers as well.

There can be indeed asymmetry between senders and receivers. In our setup, Orchestrator sends messages to the workers via the Kubernetes transport, but the workers respond via a message queue. But I think you are right wrt Orchestrator: as the central component that receives messages from all others, the receiver protocol always corresponds to the sender protocols.
I am not sure however, whether your proposed changes bring a significant simplification. The transport protocol still needs to be declared in the configuration files for all components. The configuration is separated into a sender and receiver configuration which is necessary because of the mentioned asymmetry.

There can be indeed asymmetry between senders and receivers. In our setup, Orchestrator sends messages to the workers via the Kubernetes transport, but the workers respond via a message queue. But I think you are right wrt Orchestrator: as the central component that receives messages from all others, the receiver protocol always corresponds to the sender protocols.
I am not sure however, whether your proposed changes bring a significant simplification. The transport protocol still needs to be declared in the configuration files for all components. The configuration is separated into a sender and receiver configuration which is necessary because of the mentioned asymmetry.

Thanks for the clarification! Maybe the actual thing that confuses me a little is the naming based on the receiver and sender instead of the actual queue. Orchestrator Sender and Receiver are both actually the orchestrator_queue, and same applies to all other senders and receivers. And IIUC, there will always be a matching sender and receiver, or could there be a situation where Core's ORCHESTRATOR_SENDER_TRANSPORT_TYPE is kubernetes and Orchestrator's ORCHESTRATOR_RECEIVER_TRANSPORT_TYPE is rabbitMQ?
Using variable naming based on the actual queue and not the service sending or receiving would clarify this relation and dependency between the two. Similar logic is used with database environment: there's DB_HOST on all services, no ORCHESTRATOR_DB_HOST etc. So maybe instead of the ORCHESTRATOR_TRANSPORT_TYPE etc. I suggested in the first message, there could be ORCHESTRATOR_QUEUE_TYPE and others.

I agree that this approach would simplify the configuration. So, basically only receivers would be configured - according to the transport the affected component is listening. The sender configuration would then be derived from this.
I only fear that this would require a major change in the code that sets up the communication between the workers. Also, in some cases, there are differences in the sender and receiver configuration. For instance, the Kubernetes sender has a rather complex configuration that supports labels, volume mounts and much more, while the receiver is quite simple.


Is it possible to set an image as the background of the slide ?

I am currently working on a project aiming to create a PowerPoint thanks Python pptx. However I am trying to set an image as the background of the slide and I can’t seem to find the solution in the docs of Python pptx. Is it possible to set an image as background if so can someone help me ?

Sure, just create a master slide and use it on any Slide you'd like a background image on.

Agreed. If the background option an be expanded to include an image instead of just a color, that would be preferable to creating a master.

is there a way for us to upload background images via local pathing? All i get is a ? jpg

This feature is now available thanks to @thomasowow via Pull #610


Cannot specify a log level from the CLI

I am attempting to write an interactive tutorial and want to use dotnet-watch. I would like to suppress the info messages printed out by the watch command so that only messages from my tutorial are displayed.
I have tried adding a logging.json file, but it doesn't seem to be respected. The log level in the Tools project appears to be hard coded to info. How can I override it?

Agree, it would be a nice feature. It's a bit tricky to implement because we need a way to pass arguments to dotnet watch. Today, it just passes everything to dotnet. We'll definitely investigate this

It might be as simple as looking for a logging.json so it can be configured externally.

Assigning to @victorhurdugaci for invesigation in 1.1.0.

Hey @glennc, what do you think about this one?

hmmm. What are examples of the output that you want to suppress? Is it all output from watch?
I am thinking a switch passed to watch to stop it from logging anything. -[q]uite

Talked to @glennc offline. We'll make this configurable through and environment variable, just like we do for enabling the polling watcher.

Here is an example from the DotNetCoreKoans project. The project is a teaching tool where the student is instructed to open the project in a text editor and then run dotnet watch run in their console. The student then changes code in a set of unit tests learning about the C# language. The output of the application guides them  through each tutorial.
When running the application without the watcher, I have complete control over the output. With the watcher, it clutters up the output making it hard to follow.
At a minimum it would be nice to have the watcher respect a config file or a flag to specify silent output.

Would we be still displaying errors in "quiet" mode, and just be silent otherwise? Or completely silent?

The value you set in the env var will be the value from the LogLevel enum. If you set it to none nothing will be displayed while if you set it to error only error (and above) will be displayed. So, it's not a "quiet mode"

Hey @NotMyself , I added a new flag to allow you to turn off the log messages. See the updated readme for usage.

In #197, we added --verbose and --quiet options to dotnet-watch.
We also removed the env variable added in #155. It's worth noting that #197 also added support for the global dotnet-cli verbose flag (usage dotnet --verbose watch) which can also be set via the env variable DOTNET_CLI_CONTEXT_VERBOSE=true


Add buildpack details to cf7 app summary

Co-authored-by: Piyali Banerjee<EMAIL_ADDRESS>Co-authored-by: Connor Braa<EMAIL_ADDRESS>Thank you for contributing to the CF CLI! Please read the following:

If you haven't yet, please review our contributing guidelines: https://github.com/cloudfoundry/cli/blob/master/.github/CONTRIBUTING.md
We're not allowed to accept any PRs without a signed CLA, no matter how small.
If your contribution falls under a company CLA but your membership is not public, expect delays while we confirm.
All new code requires tests to protect against regressions.
Contributions must confirm to our style guide. Please reach out to us if you have questions.

Does this PR modify CLI v6 or v7?
v7
Please see the contribution doc above or review Architecture Guide.
Description of the Change and Value of PR
The app summary command sometimes lists buildpack names hardcoded in the buildpacks themselves (i.e.: "python" for any python buildpack). Since these names may be different from the user-provided names (for Custom Buildpacks), this may be confusing for users. This PR includes some additions to the buildpacks info in the app summary output to include the user-provided buildpack names as well as the buildpack versions if available. We kept the original buildpacks field the same in case other scripts rely on that already.
Slack discussion with CLI team: https://cloudfoundry.slack.com/archives/C032824SM/p1593561984360700
Why Should This Be In Core?
Explain why this functionality should be in the cf CLI, as opposed to a plugin.
Having detailed buildpack information in the app summary output is valuable in general for debugging purposes, as well as for ensuring the correct buildpacks were used to build the app.
Applicable Issues
List any applicable Github Issues here
How Urgent Is The Change?
Is the change urgent? If so, explain why it is time-sensitive.
No.
Other Relevant Parties
Who else is affected by the change?

I believe this functionality was covered in this commit https://github.com/cloudfoundry/cli/commit/528d0ff853320e5981aa13fde46132622fd05367 as such I am closing this, please let me know if this has been closed in error,
Thanks,
Jenna


Attribute values sent in SCIM2 is trimmed when sending to the userstore

When creating a user using SCIM2 if we add leading or trailing whitespace in the attribute values, they are automatically trimmed. But if we use the addUser() of the RemoteUserStoreManagerService[1] then the set attribute values are stored as given even with leading/trailing whitespaces.
The behaviour should be that the values sent in should be stored as it is if it does not violate any preset condition.
[1] - https://docs.wso2.com/display/IS570/Managing+Users+and+Roles+with+APIs#ManagingUsersandRoleswithAPIs-addUser()

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


DBZ-1238 Allow more options for snapshot SPI

https://issues.jboss.org/projects/DBZ/issues/DBZ-1238
This commit adds some more options to the Postgres Snapshottter SPI
interface, specifically, the ability to create the query for the start
of a snapshot, as well as the ability to generate a statement to lock
the tables.
Additionally, some rework is done to allow for the usage of an exported
snapshot in conjuction with the SPI taking metadata about a newly
created slot. This also changes how slots are initialized to allow for
the exported snapshot to be referenced, which requires adding a more
granular setup of a ReplicationConnection
Together, these options allow for a lot more flexibility, such as not
taking locks when snapshotting large databases as well as potentially to
use exported snapshots.
A future version should perhaps make some options possible without
implementing the SPI (such as using the exported snapshot by default)
but this commit is just trying to get all the groundwork in place to
allow for the Snapshotter SPI to have this functionality.

Hi @addisonj, wouldn't this be a potential use case for the new snapshotting class SPI?

It could potentially... but at the moment, the SPI just controls to start the snapshot and/or streaming consumer and generates the queries.
If you wanted to extend the idea to also controlling more aspects of the snapshot, that might make sense, but just adding an option to take locks or not feels a bit strange, as it is pretty specific for what is easily an option.
Perhaps the SPI could also have a method for taking a connection and a list of tables to open and close the transaction? That feels pretty flexible, but IDK of how different the use cases would be...

but just adding an option to take locks or not feels a bit strange, as it is pretty specific for what is easily an option.

I'm wondering whether this just shouldn't be a new value for the existing "snapshot mode* option. Or is it rather an orthogonal concern to the existing snapshotting modes and could be combined with any of them?

Any thoughts on ^^^, @addisonj?

Hey Gunnar, yes I have seen both of these, just got diverted onto something
different for a bit, hope to get back to this before end of week!
On Tue, Apr 23, 2019 at 2:15 AM Gunnar Morling<EMAIL_ADDRESS>wrote:

Any thoughts on ^^^, @addisonj https://github.com/addisonj?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/debezium/debezium/pull/852#issuecomment-485691906,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAE3LA3TO62EP4OVFES57CDPR3AR7ANCNFSM4HGB5VBQ
.

Hey, grooming the backlog a bit, I came across two related issues:

https://issues.jboss.org/browse/DBZ-1252: this suggests to establish "lock mode" as an orthogonal concern to snapshotting mode -- something we already have for SQL Server. This seems pretty reasonable, "no lock" would then just be one specific value of that new option
https://issues.jboss.org/browse/DBZ-1035: this is about leveraging "exported snapshots"; in the light of the issue above, this could be another locking strategy chooseable from that option for lock modes

Curious what you think about it?

just getting back to this, thanks for pointing that out @gunnarmorling, will try and look deeper and see if there isn't a way to accommodate that with the SPI

@gunnarmorling I think this should be ready, I ended up having to change a few tests that I think just were passing because of luck and not very specific assertions before, otherwise, I think this introduces everything needed to make those new options possible via the SPI, but not integrated directly as options (which could be done relatively quickly as a follow on).
Let me know what you think, I don't have a ton of time in the near future to keep working on this, but let me know if there is anything you were thinking of a lot differently.

@addisonj, getting back to this now after two weeks of conference travel. Need to wrap my head around what's happening again.

@addisonj, reading the notion of "exported snapshots" a few times. Does this mean that this now addresses DBZ-1035, too? Taking a step back, could you perhaps describe on a somewhat higher level what has changed here? Thanks a lot, that'd help to undestand the gist of this.

hi @gunnarmorling, no worries, hope it was a nice time :)
So yes, this is intended to exported snapshots (DBZ-1035) possible. It is not turning them on by default or exposing options to use the, but all of the pipes should be connected to do so, but I considered this change big enough already!
As far as an overview, I added a description to the commit message (copied here) but since I resused the old PR, the description didn't get updated (I just edited it):
This commit adds some more options to the Postgres Snapshottter SPI
interface, specifically, the ability to create the query for the start
of a snapshot, as well as the ability to generate a statement to lock
the tables.

Additionally, some rework is done to allow for the usage of an exported
snapshot in conjuction with the SPI taking metadata about a newly
created slot. This also changes how slots are initialized to allow for
the exported snapshot to be referenced, which requires adding a more
granular setup of a ReplicationConnection

Together, these options allow for a lot more flexibility, such as not
taking locks when snapshotting large databases as well as potentially to
use exported snapshots.

A future version should perhaps make some options possible without
implementing the SPI (such as using the exported snapshot by default)
but this commit is just trying to get all the groundwork in place to
allow for the Snapshotter SPI to have this functionality.

In other words it:

adds the new methods to the SPI interface for generating the transaction and lock queries
changes how a replicationConnection is initiated, which allows for us to use an exportedSnapshot (you can't make any other commands/queries on the connection after the slot is created, or it invalidates the snapshot)

hi @gunnarmorling, no worries, hope it was a nice time :)

Thanks, stressful yet insightful nevertheless :)
Digesting this change as we speak, definitely a lot is happening here...

@addisonj, I actually went ahead and pushed a commit to address some of the things I've commented on.

@addisonj, ok, pushed another commit with some small fixes. On a high level, these are the things I see:

needs rebase to use the new common snapshot.fetch.size option
initialization of the slot without try/catch might be an issue for wal2json (see inline comment)
the interactions in PostgresReplicationConnection are getting more and more complex; there's multiple initXy(), startStream(), createStream() methods and it's tough to grok what's going on. I think this needs a major overhaul eventually (not necessarily as part of this PR, but it seems this adds on the complexity that already existed before)

Hey @addisonj, quick heads-up: we're planning to do the 0.10.0.Alpha1 release tomorrow. Beta1 will follow up on that rather quickly, so whenever this here is ready we can include it into a release soon thereafter. There's also related work going for unifying more code of the connectors, which might impact the design here (e.g. see the SnapshotChangeEventSource contract already used for Oracle and SQL Server). But let's cross that bridge when we get there (migrating the PG connector to those framework classes), after all the SPI here is marked as "incubating".

Hi Gunnar,
Okay, tomorrow I was planning on addressing all the things mentioned, but
if it looks like it will be a bit, then I may not rush as much, but will
still try and get everything addressed ASAP.
Thanks,
Addison
On Mon, May 27, 2019 at 10:23 AM Gunnar Morling<EMAIL_ADDRESS>wrote:

Hey @addisonj https://github.com/addisonj, quick heads-up: we're
planning to do the 0.10.0.Alpha1 release tomorrow. Beta1 will follow up on
that rather quickly, so whenever this here is ready we can include it into
a release soon thereafter. There's also related work going for unifying
more code of the connectors, which might impact the design here (e.g. see
the SnapshotChangeEventSource contract already used for Oracle and SQL
Server). But let's cross that bridge when we get there (migrating the PG
connector to those framework classes), after all the SPI here is marked as
"incubating".
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/debezium/debezium/pull/852?email_source=notifications&email_token=AAE3LAYUK7N42PXU2LOUEWDPXQDHBA5CNFSM4HGB5VB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWKFGLA#issuecomment-496259884,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAE3LAZBCX3ZKOHFF3Q7G5LPXQDHBANCNFSM4HGB5VBQ
.

Yes, no need to rush it, the next release (0.10 Beta1 is planned for next week).
One quick other question: I noticed "xmin" was added to the "source" block of Postgres events produced by Debezium (DBZ-1082). Is this information actually relevant for consumers, or should this rather have gone only into the (connector-internal) offset structure?

@gunnarmorling yes, it was intended to be exposed, as that is the useful bit we are using to write our own snapshotter that allows us to ensure we don't miss any changes in the event of a slot fail-over

as that is the useful bit we are using to write our own snapshotter that allows us to ensure we don't miss any changes in the event of a slot fail-over

I see, thanks. Could you expand a bit perhaps on the usage? Do you retrieve the value manually from already produced messages in Kafka? I'm wondering whether it perhaps could even be a short guest post on our blog describing this approach a bit? WDYT?

@gunnarmorling I pushed an updated fix to this and this realized I made a goof! I forgot you had pushed some changes, so I think I force pushed over them. I am not sure how to get them back as I didn't pull the branch before force pushing. Do you still have those locally?
That said I think I addressed most your comments (other than the ones I brought back...), but just general things:

I added a few comments to make it more clear, but the initConnection was in the wrong place (needed to happen earlier on), but it is safe to do with the wal2json stuff as creating and starting the slot in distinct
As for a refactor, I agree it could be cleaned up some, but it did feel better suited to a follow on, which I can perhaps help with, but for now, I think it mostly represents the real complexity, given that creating a slot, init-int a slot, and starting a slot are all distinct operations in starting a slot that are all represented by their own method calls. Upon thinking about it further, it shouldn't be too surprising that we need the application to be aware of all of those lifecycle methods, though there is the potential for making that more clear in the class and making sure that sequence is initiated more sanely, but it does feel like it shouldn't be here.

Anyways, let me know how this looks and if you can re-attach your changes! Sorry for the goof, still getting used to the future to allow owners to push changes!

Do you still have those locally?

Yes; I've just pushed a new branch with them here: https://github.com/gunnarmorling/debezium/tree/DBZ-1238 (see the last two commits). Can you work this into the PR here?

Hey @addisonj, thanks for the update. So could you do the following:

Rebase it to latest master
Apply the changes I did from the branch I linked above
Add any other changes you'd like to do (if any)

Once that's done, I'll do one more review pass of it (need to bring back all the context to my memory as it has been a while and I'm getting old ;). Thanks a lot!

@gunnarmorling thanks for all that! like all those changes.
I rebased this and squashed your changes into this, so I think it should have everything. I didn't really see anything else as part of this commit, but obviously I think there are some follow on commits as we have touch on previously.
Let me know if there is anything else!

Hey @Naros, I'm not sure whether you're aware of this pending change to the PG connector, it is about giving more capabilities to snapshotting. I have two questions for you based on it:

can you evaluate whether there's lots of merge conflicts with your pending work for pgoutput? I'd expect that it's not too much, as your work should mostly add new classes, but I might be missing something
can you build this PR branch and run it against the different wal2json versions deployed on RDS (IIRC, you had an instance set-up)? This changes the way the replication slot is set up, and as we had issues with that in the past, I'd like to avoid any potential regressions due to the way wal2json handles unsupported options (they officially "deprecated" some plug-in options, in reality passing those will cause a hard failure, though).

Thanks a lot!

@addisonj, just to double-check: the proposed change wouldn't alter the current default behavior of the connector, correct?

@Naros, did you see my message above? Would be great if you could check this change against RDS. Thanks!

can you evaluate whether there's lots of merge conflicts with your pending work for pgoutput? I'd expect that it's not too much, as your work should mostly add new classes, but I might be missing something

There may be a few conflicts, most notably around PostgresReplicationConnection but nothing that will be a problem to resolve.  A vast majority of my changes are new classes or additional methods being added to existing classes which should merge nicely.

can you build this PR branch and run it against the different wal2json versions deployed on RDS (IIRC, you had an instance set-up)?

I'll give this a shot today and report back with my findings.

Sweet; thanks, @Naros!

Postgres 9.6.3 R1

PostgresConnectorIT#shouldReceiveChangesForChangePKColumnDefinition
I don't believe this test failure is related specifically to this PR as it also fails on master.  I briefly looked at it and I couldn't really diagnose why it works with a local docker image of postgres 9.6 but fails when connecting to RDS.  Will need more time on this one to pin-point the underlying problem.
The specific issue is the test expects key schema to return a null value for field pk3 but instead it returns <Field{name=pk3, index=1, schema=Schema{INT}}>.

RecordsStreamProducerIT#testPassingStreamParams
This test fails with option "add-tables"="s1.should_stream" is unknown.
Possible incompatibility?

RecordsStreamProducerIT#testPassingStreamMultipleParams
This test fails with option "filter-tables"="s2.should_not_stream" is unknown.
Possible incompatibility?

RecordsStreamProducerIT#shouldReceiveChangesForTypeConstraints
This likely could be a timing problem with RDS and the test suite as I can't reproduce this locally but the failure happens at https://github.com/debezium/debezium/blob/master/debezium-connector-postgres/src/test/java/io/debezium/connector/postgresql/RecordsStreamProducerIT.java#L598 where we expect the precision to be 6 but is still 5.

Postgres 10.6 R1

RecordsSnapshotProducerIT#shouldGenerateSnapshotAndContinueStreaming
This test fails on RDS stating that a logical replication slot named debezium already exists and that we cannot have multiple defined with the same name.  This appears to happen during the transition between Snapshot and Stream modes, inside RecordsStreamProducer#start.  This is not a problem locally with master against my local postgres 10.9 docker image.

ReplicationnConnectionIT#shouldReceiveAndDecodeIndividualChanges
This test fails on RDS with error that table table_without_pk cannot be updated because it does not have a replica identity and publishes updates.  Strangely this runs against master and my local 10.9 docker instance.

So while testing with RDS, there were a few changes I had to make in order to make this work smoothly.  The one that I think is pertinent to this PR is in PostgresConnectorIT.java
@Before
public void before() {
  TestHelper.create().dropReplicationSlot("debezium");
  initializeConnectorTestFramework();
}

I noticed there was problems with the replication slot not being dropped correctly between the tests.  For the short-term I explored the above change to the test and it seemed to have resolved the issues.

Hey @Naros, thanks a lot for the analysis! Something to digest indeed. Of those issues you describe above, do any of them also apply to the current master? I.e. are any specifically introduced by this PR here?

Hey @addisonj, howdy? Did you have a chance to look into my comments/questions above? Thanks!

@gunnarmorling yeah sorry missed those with all the conversation here. I addressed them all inline, but I won't have time to make changes until next week or so, but I think there is enough information there if you want to push ahead on the last details of this!
Thanks for all the feedback :)

@gunnarmorling Some of them do, I believe i indicated in the wall of text for each point whether it was a problem for master.  If I didn't explicitly state whether it was or was not, then it wasn't.

@Naros, hum, hum. So I'm struggling a bit to to grasp what's the take-away from all this; essentially, the question is: is there any regression introduced by this PR or not? This one has been dragging on for quite some time, and I'd love to have it off the slate eventually.

Pushed one commit with some clean-up.

Hi @gunnarmorling, sorry for the confusion as my prior comments were a bit misleading in retrospect.
I took another look at this PR and from a PostgreSQL 9.6 perspective it LGTM.  The only concern I saw was when testing using the postgres-10 profile, I noticed we had one test class that had two failures:

RecordsSnapshotProducerIT#shouldGenerateSnapshotsForPartitionedTables
RecordsSnapshotProducerIT#shouldGenerateSnapshotAndContinueStreaming

The first failure was a known problem on master so by rebasing this PR with master, that error should automatically be fixed as Jiri and I uncovered this when I began working on pgoutput.  The second failure is most puzzling because even running that test against a clean PG10 environment, it fails with the following:
2019-07-08 17:28:13,556 INFO   Postgres|test_server|records-stream-producer  Obtained valid replication slot ReplicationSlot [active=true, latestFlushedLsn=896796512, catalogXmin=1296]   [io.debezium.connector.postgresql.connection.PostgresConnection]
2019-07-08 17:28:13,557 ERROR  Postgres|test_server|records-snapshot-producer  unexpected exception   [io.debezium.connector.postgresql.RecordsSnapshotProducer]
org.apache.kafka.connect.errors.ConnectException: java.lang.IllegalStateException: A logical replication slot named 'debezium' for plugin 'wal2json' and database 'postgres' is already active on the server.You cannot have multiple slots with the same name active for the same database.
        at io.debezium.connector.postgresql.RecordsStreamProducer.start(RecordsStreamProducer.java:136)
        at io.debezium.connector.postgresql.RecordsSnapshotProducer.lambda$startStreaming$3(RecordsSnapshotProducer.java:158)
        at java.util.Optional.ifPresent(Optional.java:159)
        at io.debezium.connector.postgresql.RecordsSnapshotProducer.startStreaming(RecordsSnapshotProducer.java:148)
        at io.debezium.connector.postgresql.RecordsSnapshotProducer.lambda$start$1(RecordsSnapshotProducer.java:109)
        at java.util.concurrent.CompletableFuture.uniRun(CompletableFuture.java:705)
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:687)
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
        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)
Caused by: java.lang.IllegalStateException: A logical replication slot named 'debezium' for plugin 'wal2json' and database 'postgres' is already active on the server.You cannot have multiple slots with the same name active for the same database.
        at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.ensureSlotNotActive(PostgresReplicationConnection.java:121)
        at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.initReplicationSlot(PostgresReplicationConnection.java:136)
        at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.initConnection(PostgresReplicationConnection.java:234)
        at io.debezium.connector.postgresql.connection.PostgresReplicationConnection.startStreaming(PostgresReplicationConnection.java:218)
        at io.debezium.connector.postgresql.RecordsStreamProducer.start(RecordsStreamProducer.java:118)
        ... 10 more

From what I can tell, the above is the only regression this PR introduces and is only applicable when running the test suite with the postgres-10 profile.

Hey @addisonj, so we did some more testing with this PR on Amazon RDS, and this revealed one issue (which isn't specific to RDS); specifically, when creating a temporary replication slot in the snapshotter (as it's the case during testing), it will be active right away. So when calling ensureSlotNotActive() during starting the streamer, it will raise an exception. This is the case for PG 10 onwards.
So I'm wondering: is the check in ensureSlotNotActive() perhaps a bit over-ambitious, and we could simply remove it? I'd expect that PG itself will complain when connecting to an already active slot a second time. WDYT?

The only concern I saw was when testing using the postgres-10 profile
RecordsSnapshotProducerIT#shouldGenerateSnapshotAndContinueStreaming

Thanks, @Naros. That one is a problem indeed (see above). Let's wait to hear back from @addisonj.

Pushed one more commit to remove ensureSlotNotActive(), as dicussed above.

Pushed another commit for simplifying the handling around startStreaming().

@addisonj So I've pushed a few more commits, most notably to remove the check for the activeness of the replication slot (see the discussion above for the details). I think with this one it's good to go.
Could you do the following:

double-check on the commits I've added
rebase the PR to latest master (there's one small conflict)
send a PR against the doc repo, updating the PG connector docs so it mentions the snapshot.mode of custom together with the snapshot.custom.class option (in fact, we had missed that before). Ideally, that'd discuss how to use all this to take advantage of lock-free, exported snapshots

Thanks a lot again! Very happy to see this finally done, the support for exported snapshots is super-cool. It's my personal goal to iterate though such changes more quickly going forward, but it's not always easy given the complexity of the matter and many other things going on. So esp. thanks for your patience and hanging in there through all the reviewing rounds!

Okay, I looked at all those changes :+1:  from me on it, rebased as well, and I opened up the docs commit here: https://github.com/debezium/debezium.github.io/pull/327

Thanks a lot, @addisonj! Very nice to see this done :)

@addisonj, btw. are you using this for exported snapshots already? We were thinking to add a snapshot mode "exported" based on the new SPI out of the box (see DBZ-1035). Eventually, this even might become the default, if there are no downsides to using it.

Not yet! I haven't had time to experiment with it yet, but plan to do so in a few weeks when I get back to this.


Unit tests

Add unit tests for all the methods in all the classes:
Book
Person
Student
Teacher
Classroom
Rental
all classes that you created while implementing the Decorator design pattern

Thank you @bobb-Rob for the approval!


Markdown Links Not Working

Simple markdown formatted links are not working, such as (Alchemy VTT)[https://alchemyrpg.com].
Is this correct, or have I missed something?

I just realized I had the brackets swapped. All good. THX!

Closed.


Publish new version

The auto-update feature in Obsidian lists a new update for this plugin, but fails to update it, as the new version is only present in metadata, not as a release.

Oh, I thought it's on tag push. Will fix today. Thanks for heads-up.

Should be good now. Can you check?

All good, thank you!
When do you plan on releasing a new version by the way?

This weekend probably
On Sat, 16 Nov 2024, 08:07 NomarCub, @.***> wrote:

All good, thank you!
When do you plan on releasing a new version by the way?
—
Reply to this email directly, view it on GitHub
https://github.com/mnowotnik/obsidian-user-plugins/issues/6#issuecomment-2480458003,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB64XG45NSWLOZP6T22THPL2A3VKRAVCNFSM6AAAAABR3BG4EOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBQGQ2TQMBQGM
.
You are receiving this because you commented.Message ID:
@.***>


Receiving 403 error when running create playlist method.

I'm also receiving this error, how did you end up resolving this?

Same Question - what's the fix?


fix fix duplicate key in schema change (#25705)

Proposed changes
cherry-pick from：#25705

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 47.98 seconds
stream load tsv:          553 seconds loaded<PHONE_NUMBER>9 Bytes, about 129 MB/s
stream load json:         19 seconds loaded<PHONE_NUMBER> Bytes, about 118 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select:          29.7 seconds inserted 10000000 Rows, about 336K ops/s
storage size:<PHONE_NUMBER>1 Bytes


[geos] Update to 3.8.1

Describe the pull request

What does your PR fix?

Update geos to 3.8.1

Which triplets are supported/not supported? Have you updated the CI baseline?

No changes to triplet support I think.

Does your PR follow the maintainer guide?

It should.

Hi, I cant take a look at this for a couple of weeks as I'm on vacation.
BR,
Oskari

From: Robert Schumacher<EMAIL_ADDRESS>Sent: maanantai 6. heinäkuuta 2020 23.34
To: microsoft/vcpkg
Cc: Oskari Timperi; Author
Subject: Re: [microsoft/vcpkg] [geos] Update to 3.8.1 (#12163)
@ras0219-msft requested changes on this pull request.

In ports/geos/static-lib-prefix.patch:

@@ -0,0 +1,26 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b78ca54b..26778c83 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -228,6 +228,10 @@ if(BUILD_SHARED_LIBS)

set_target_properties(geos PROPERTIES VERSION ${GEOS_VERSION})
set_target_properties(geos PROPERTIES SOVERSION ${GEOS_VERSION})
++else()
++  if(WIN32)
++    set_target_properties(geos PROPERTIES PREFIX lib)

Why is this needed? Ideally, the static libraries and the import libraries will have the same name (see the maintainer guide[1]). If there are downstream ports that break when only the dynamic names are provided, they should be patched instead to use the CMake targets.
[1] https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#do-not-rename-binaries-outside-the-names-given-by-upstream
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

@PhoebeHui Can I somehow run the CI again as the build errors seems to be something that I cannot control? For example The windows build:
Downloading powershell-core...
 https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/PowerShell-6.2.1-win-x86.zip -> D:\downloads\PowerShell-6.2.1-win-x86.zip
WinHttpReceiveResponse() failed: 12152
##[error]Convert-Path : Cannot find path 'C:\agent\_work\1\a\xml-results\x64-windows.xml' because it does not exist.

/azp run

/azp run

@oswjk, the failures doesn't relate to your changes, please ignore it, I have rerun the CI testing.

Merged master as soil was failing.


Allow removing objects with the delete key

It seems natural to hit delete to remove an item from the platform.

Can't be done because we don't know if the delete is for some text box or for the models.  Now that the remove button can be pressed many times in a row, this isn't to important.


v2.5.0

Docker Image for build 1 is available on DockerHub as jc21/nginx-proxy-manager:github-pr-592


refactor: create CStarAlgebra classes and refactor to use them

[x] depends on: #17838

if you prefer, I can split off the new classes into a separate PR, but it's probably better to just merge this for performance reasons instead, despite the fact that review is a little harder.

!bench

!bench

As Eric mentioned here:

ULift and PUnit would be good instances too, assuming the machinery is present elsewhere.

We don't have that machinery, so I'm not going to do it in this PR (e.g., we have no Star PUnit instance).

!bench

!bench


Compile issue

Hi,
I'm encountering a compile issue with code that used to work fine for a long time. I am a bit lost with this as I get c++ errors that shouldn't really be there. What makes this weirder is that  it also is present if I downgrade to pythran 0.10 (which definitely used to work) or upgrade to latest HEAD and is present on both clang and gcc. I'm using arch linux.
$gcc --version
gcc (GCC) 13.1.1 20230714
$clang --version
clang version 15.0.7
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$uname -r
6.4.7-arch1-1
$pythran --version
0.13.1

I could reduce it down to the following (sorry quite long, but further reduction seems to compile):
import numpy as np

def apply_filter(E, wx):
    pols = E.shape[0]
    Ntaps = wx.shape[1]
    Xest = E.dtype.type(0)
    for k in range(pols):
        for i in range(Ntaps):
            Xest += E[k, i]*np.conj(wx[k,i])
    return Xest

#pythran export train_equaliser(complex128[][], int, int, int, float64, complex128[][][], int[], bool, complex128[][], str)
#pythran export train_equaliser(complex64[][], int, int, int, float32, complex64[][][], int[], bool, complex64[][], str)
def train_equaliser(E, TrSyms, Niter, os, mu, wx, modes, adaptive, symbols,  method):
    if method == "mcma":
        errorfct = mcma_error
    elif method == "cma":
        errorfct = cma_error
    else:
        raise ValueError("Unknown method %s"%method)
    nmodes = E.shape[0]
    ntaps = wx.shape[-1]
    assert symbols.shape[0] == nmodes, "symbols must be at least size of modes"
    assert wx.shape[0] == nmodes, "wx needs to have at least as many dimensions as the maximum mode"
    assert E.shape[1] > TrSyms*os+ntaps, "Field must be longer than the number of training symbols"
    assert modes.max() < nmodes, "Maximum mode number must not be higher than number of modes"
    err = np.zeros((nmodes, TrSyms*Niter), dtype=E.dtype)
    #omp parallel for
    for mode in modes:
        for it in range(Niter):
            for i in range(TrSyms):
                X = E[:, i * os:i * os + ntaps]
                Xest = apply_filter(X,  wx[mode])
                err[mode, it*TrSyms+i] = errorfct(Xest, symbols[mode], i)
                wx[mode] += mu * np.conj(err[mode, it*TrSyms+i]) * X
    return err, wx, mu

######################################################
# Error functions
######################################################

def mcma_error(Xest, s1, i):
    J = Xest.dtype.type(1j)
    dr = (s1[0].real - Xest.real**2)
    di = (s1[0].imag - Xest.imag**2)
    return dr*Xest.real + di*Xest.imag*J

def cma_error(Xest, s1, i):
    d = s1[0].real - abs(Xest)**2

Error logs are attached (too long to include here)
log_clang.txt
log_gcc.txt
Not sure what to make of this

Ok I wiggled it down a bit further, not sure if that helps though:
import numpy as np

#pythran export train_equaliser(complex128[][], int, int, int, float64, complex128[][][], int[], bool, complex128[][], str)
def train_equaliser(E, TrSyms, Niter, os, mu, wx, modes, adaptive, symbols,  method):
    if method == "mcma":
        errorfct = cma_error
    elif method == "cma":
        errorfct = mcma_error
    nmodes = E.shape[0]
    for mode in modes:
        err = errorfct(E[0,0], symbols[mode], mode)
    return err, wx, mu

######################################################
# Error functions
######################################################

def cma_error(Xest, s1, i):
    return Xest

def mcma_error(Xest, s1, i):
    return Xest

Reduced test case:
import numpy as np

#pythran export train_equaliser(complex128[][], int[], str)
def train_equaliser(E,  modes, method):
    if method == "mcma":
        errorfct = cma_error
    elif method == "cma":
        errorfct = mcma_error
    mode = modes[0]
    err = errorfct(E[0,0], mode)
    return err

######################################################
# Error functions
######################################################

def cma_error(Xest, i):
    return Xest

def mcma_error(Xest, i):
    return Xest


ceph_ansible: make code py3 compatible

Signed-off-by: Kyr Shatskyy<EMAIL_ADDRESS>

@susebot run deploy

LGTM, Thanks!

@rakeshgm can you run tests in octo lab?

@vasukulkarni @rakeshgm do you have any updates? can we merge this already?

@kshtsk LGTM, I think the compatibility for python3 looks good. As for the script execution, we can check once we start testing. but I am okay with the merge.

If the branch is in teuthology, I could have run following cmd on sepia:
 teuthology-suite  -c luminous -s ceph-ansible --ceph-repo http://github.com/ceph/ceph --suite-repo https://github.com/ceph/ceph --suite-branch luminous --suite-relpath qa  --dry-run -m mira -t wip-py3-ceph-ansible

http://pulpito.ceph.com/vasu-2019-11-20_19:55:04-ceph-ansible-luminous-distro-basic-mira/ , worse case if a test fails one of us can add a fix.

If the branch is in teuthology, I could have run following cmd on sepia:
 teuthology-suite  -c luminous -s ceph-ansible --ceph-repo http://github.com/ceph/ceph --suite-repo https://github.com/ceph/ceph --suite-branch luminous --suite-relpath qa -m mira -t wip-py3-ceph-ansible

JFYI, it was not in teuthology, but now you can try and use new feature: -t refs/pull/1360/merge and it grabs the code from the PR 1360 merged against master


Use a .travis.yml file to run npm test on each push to repo

Yay Travis!
I think all you'd need is to create a .travis.yml file and add the following contents (as well as sign up at https://travis-ci.org/ and tell it to watch this repo):
language: node_js
node_js:
  - "0.10"

This should run npm install and npm test for you automatically. Then just add a fancy badge to your README.md to see the current status. We may need to tweak another couple things like adding before_install which installs the grunt-cli or whatever.

...and thus the tech wheel continues to turn. Travis is now out of vogue. GitHub Actions are in.
I'll file separate issues around overhauling this repo's tooling. Cheers!

Ooh, the wheel in the sky keeps on turnin
I don't know where I'll be tomorrow
Wheel in the sky keeps on turnin


Glvis Build Error 1

Hello,
I've been trying to install Glvis for a while and sway between errors when building serial version. Currently I am getting the error below and am not sure how to fix it:
/home/linuxbrew/.linuxbrew/bin/ld: cannot find -lglvis: No such file or directory collect2: error: ld returned 1 exit status make: *** [makefile:258: glvis] Error 1
I am using Glvis-4.0 and mfem-4.2 on GNU make since those are the versions used in the example: https://glvis.org/building/

Can you try the latest releases, i.e. glvis-4.2 and mfem-4.5?

I did and get this error continually:
'error: XDG_RUNTIME_DIR not set in the environment.
FATAL: Failed to initialize SDL: No available video device
Thank you for using GLVis.
Waiting for data on port 19916 ...'


Check ret before dereferencing cqe

If io_uring_wait_cqe fails, then cqe will be uninitialized, so dereferencing
it will almost certainly cause a segfault. To easily reproduce this, hit
Ctrl+Z then run fg immediately after starting the server, to cause it to
fail with EINTR.

Thanks!

Running this example is giving the follow error from line 399 with errno 16:
Async request failed: Invalid argument for event: 0
Any idea why?

Unexpectedly cqe->res < 0 was always true. The value of cqe->res was -5 consistently, input/output error. The sqe->opcode was 13 (IORING_OP_ACCEPT). Using ss command helped to show that the socket was in LISTEN state, which corresponded with the ACCEPT since no socket connection was established.
LISTEN 0 10 <IP_ADDRESS>:8000 <IP_ADDRESS>:* users:(("webserver_liburing",pid=58904,fd=3))
The issue is reproduced on the following system environment:
 Operating System: Ubuntu 20.04.3 LTS
           Kernel: Linux 5.5.0-050500-lowlatency
     Architecture: x86-64

How is that related to this PR?

Without processing the cqe for failed cases the req is always the same regardless where it is read. Suggest also add the change below:
void server_loop(int server_socket) {
    struct sockaddr_in client_addr;
    socklen_t client_addr_len = sizeof(client_addr);

    add_accept_request(server_socket, &client_addr, &client_addr_len);

    while (1) {
        struct io_uring_cqe *cqe;                // <---Enable printing out a different cqe for each loop.
        int ret = io_uring_wait_cqe(&ring, &cqe);
        printCQ(&ring.cq,0);
        if (ret < 0)
            fatal_error("io_uring_wait_cqe");
        struct request *req = (struct request *) cqe->user_data;
        if (cqe->res < 0) {
            fprintf(stderr, "Async request failed: %s for event: %d\n",
                    strerror(-cqe->res), req->event_type);
            io_uring_cqe_seen(&ring, cqe);  // <--- Added to mark the failed operation to be processed.
            exit(1);
        }

        switch (req->event_type) {
            case EVENT_TYPE_ACCEPT:
                add_accept_request(server_socket, &client_addr, &client_addr_len);
                add_read_request(cqe->res);
                free(req);
                break;
            case EVENT_TYPE_READ:
                if (!cqe->res) {
                    fprintf(stderr, "Empty request!\n");
                    break;
                }
                handle_client_request(req);
                free(req->iov[0].iov_base);
                free(req);
                break;
            case EVENT_TYPE_WRITE:
                for (int i = 0; i < req->iovec_count; i++) {
                    free(req->iov[i].iov_base);
                }
                close(req->client_socket);
                free(req);
                break;
        }
        /* Mark this request as processed */
        io_uring_cqe_seen(&ring, cqe);

    }
}

Again, that has nothing to do with my PR. Please open an issue or PR of your own instead of commenting on this one.


feat/429/add clickhouse connector

Description
This add a connector to clickhouse, using [clickhouse-sqlalchemy].(https://pypi.org/project/clickhouse-sqlalchemy/). The port used for clickhouse is 9000 (native, not 8123 which is the HTTP interface).
I tested this against our analytics db at Withings, which runs on Clickhouse - it seems to work fine as sqlalchemy is doing most of the job, but we can implement unit tests if needed.
Issues
Closes #429
Checklist

[x] I formatted my PR name according to CONTRIBUTING.md
[ ] I added a news fragment to help populating the changelog as encouraged in CONTRIBUTING.md
[x] I added "Closes #<issue_number>" in the "Issue Information" section (if no issue, feel free to tick thick the box anyway).

Hi @PaulMatthieu I'll have a look in the coming days. Thanks a ton for your help on this. I hope we'll be able to merge and ship a new version soon!


Feature Request: Allow running any Obsidian commands

Feature Requested
I would like to completely replace Obsidian's ocmmand palette with Shimmering Obsidian, but I can enter in specific Obsidian commands with it. There should be a keyword to do so and as I type it shows me a list of commands that match the query I type.
Relevant Screenshot
No response
Checklist

[X] The feature would be useful to more users than just me.
[X] I have checked the feature overview and the feature doesn't already exist.
[X] Feature Requests regarding daily notes will not be implemented, since there are other Alfred workflows that do focus on daily notes already.
[X] If it is an entirely new feature: The requested feature makes more sense to be implemented in Alfred than in a plugin. Please also explain why.

Opening files is something that makes sense from outside of Obsidian, but I really see what the benefit of a command palette outside of Obsidian is.
I think that all in all, the feature is a bit too specific and not many people would use it, sorry.


Data Science with Python : Linear Regression Algorithm #1567

Description 📜
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
Fixes #1567

Type of change 📝

[x] Video (Animations, screen-recordings, presentations and regular explanatory films are all possibilties etc)

Domain of Contribution 📊

[x] Datascience with Python

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GWOC'21 contributor

Screenshots / Gif (Optional) 📸

@prathimacode-hub , Can you please evaluate my PR.


Prevent duplicate column names over SQL adapter

SQL over edgedb protocol requires unique column names in query results.
In PostgreSQL, duplicate column names are possible in 3 cases:

explicit column names: SELECT 1 as a, 2 as a;
This PR adds an error in this case (but only when SQL is being resolved for EdgeDB protocol)

duplicate names are inferred: SELECT a.id, b.id FROM a, b;
I've already removed this behavior and disabled column name inference if it would result in duplicate names. This was needed for DML commands, so results of such queries can be used in later SQL.

duplicate names result from wildcard includes:
WITH
  x(a) AS (VALUES (1)),
  y(a) AS (VALUES (2))
SELECT * FROM x, y

This PR makes it so inferred names in this case are a and ya.

My question have been resolved.
This can now be merged, but it will cause merge conflicts with #7991. I can go and fix those.
Also, all tests added in this PR should also be added to be executed over edgedb-protocol in #7991. I've written comments about what's the expected behavior.


Header 'Date' ignored inside request headers

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from fastapi import FastAPI, Depends

async def check_access(request: Request, date: str | None = Header(default=None)):
    print(date)
    print(request.headers)

app = FastAPI(
    dependencies=[Depends(check_access)],
)

@app.get("/")
async def read_root():
    return {"Hello": "World"}

Description
Hello,
I'm trying to add Date header to my request from swagger field, but every string is ignored.

The first print is: None
The second print not include any Date header.
Inside curl request the UI shows -H parameter with date: '{my_string}' but it seems to be ignored.

If I change the name from date to anything else (dates  for example), the header works properly.
Do you have any solution to include and read date header???
Operating System
macOS, Other
Operating System Details
Docker container
FastAPI Version
0.87.0
Python Version
3.10.5
Additional Context
No response

You can't. Since you are sending a request it MUST be terminated according to the standard when you set a whole list of prohibited headers:
https://www.w3.org/TR/2010/CR-XMLHttpRequest-20100803/
Terminate these steps if header is a case-insensitive match for one of the following headers:

Accept-Charset
Accept-Encoding
Connection
Content-Length
Cookie
Cookie2
Content-Transfer-Encoding
Date
Expect
Host
Keep-Alive
Referer
TE
Trailer
Transfer-Encoding
Upgrade
User-Agent
Via

Date is a forbidden header name in fetch, which is likely what is being used in the OpenAPI UI (which I assume is what you are referring to) https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Date
Does it do the same thing if you use Curl directly ?

If I use a Curl, date header is readed correctly, maybe it is a bug of swagger documentation that doesn't pass prohibited headers correctly.

@gs1-rob-392 how will it be a bug when it does something that is expected?🤔
I think its expected behavior.
Suggestion: you can use another name for your date header, something like X-Date

`from fastapi import FastAPI, Request
app = FastAPI()
@app.get("/")
async def root(request: Request):
date= request.headers.get('date')
return {"date": date}`
Can you try doing above and see if you can get the date and then doing the same thing on the middleware.

@gs1-rob-392 how will it be a bug when it does something that is expected?thinking I think its expected behavior.
Suggestion: you can use another name for your date header, something like X-Date

I mean it would probably be nice if the UI warned the user or something if they are trying to use a forbidden header.  The fact that is is forbidden by fetch but is accommodated by curl can be sorta confusing.
Never the less that would be something to be solved by https://github.com/swagger-api/swagger-ui it think, not FastAPI

Swagger bug


Support Spring Boot 1 and 2

Closes #191

Codecov Report

Merging #193 into master will increase coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #193      +/-   ##
==========================================
+ Coverage   63.95%   64.02%   +0.06%
==========================================
  Files         271      271
  Lines        9578     9578
  Branches     1073     1073
==========================================
+ Hits         6126     6132       +6
+ Misses       2824     2819       -5
+ Partials      628      627       -1

Impacted Files
Coverage Δ

...internal/storage/repository/git/GitRepository.java
79.14% <0%> (+0.3%)
:arrow_up:

...erver/internal/mirror/DefaultMirroringService.java
67.08% <0%> (+5.06%)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks, reviewers :-)


Expose access to ElasticSearch client options

I'm running Heapster in a Kubernetes pod and using an external ELK cluster for the sink. When the ElasticSearch driver loads, it creates the ElasticSearch client which performs a startup health check. Unfortunately my cluster responds slowly (due to network latency I'm guessing) which is causing the initial check to fail. The client, however, allows you to bump the timeout and retry values. You pass these functions in when creating a client.
When I do this, the initial health check passes and things are fine. My question is: is there any way we can allow users to modify these values? Possibly with environment variables?

Not now, but we are open to the contribution. ElasticSearch sink is maintained by community.
cc @huangyuqi @mwielgus @titilambert

@jamiehannaford thanks for reporting the issue. ES client has many config items, but in current community version ,we just allow user to config the endpoints secret indexname;   If you want add some other config items for ES client, contributing code for this sink is appreciate.Or contacting me to add this code.
BTW, the interface of Init ES client contains the enable variable of "health check".

@piosz @huangyuqi I'm happy to contribute the code to get this enabled. What would be the best way for the end-user to add ElasticSearch-specific configuration, considering that there are a lot of potential options?
I could add a few for now to the URL (?maxRetries= and ?startupHealthcheckTimeout=). I notice that Hawkular has a lot of configuration values too.

@jamiehannaford cool. The URL path is as for now the only possible configuration option. Please agree with @huangyuqi the set of configuration params.

@piosz @jamiehannaford  I agree with this way of adding the configuration params. Thanks


PT does not uninstall fully

ℹ Computer information

PowerToys version: v0.20.1
PowerToy Utility: N/A
Running PowerToys as Admin: Yes
Windows build number: Microsoft Windows [Version 10.0.18363.1016]

📝 Provide detailed reproduction steps (if any)

Uninstall PowerToys from Control Panel -> Program and Features
Restart computer
Install PowerToys v0.20.1

✔ Expected result
Clean installation of PowerToys
❌ Actual result
FancyZones settings (zone layout) still present and accessible via left clicking a window to drag, and then clicking right mouse button. I can see my pervious zone layout.

Duplicate of https://github.com/microsoft/PowerToys/issues/842


Adding support for PNPM

PNPM is also a good & popular alternative as package manager in frontend beside NPM and Yarn.
To show the importance of PNPM, other very popular projects switched to PNPM:

https://github.com/vuejs/core
https://github.com/sveltejs/kit
https://github.com/vercel/next.js

@taylorotwell Unfortunately it is impossible to include this feature in a separate package. Because it should be installed within the Dockerfile. So sail can execute this in the docker containers. I hope you will see this.


Can't query using $nearSphere because of model validation of query object

Not sure if this is related to #13.
My schema is:
const MySchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  points: [mongoose.Schema.Types.Feature]
});
MySchema.index({ 'points.geometry': '2dsphere' });

I can query it in mogodb:
db.myCollection.find({"points.geometry": {$nearSphere: {$geometry: {type: "Point", coordinates: [8.66, 50.10] }}}})

Querying it with mongoose throws an error.
      query.points = {
        geometry: {
          $nearSphere: {
            $geometry: {
              type: 'Point',
              coordinates: [lon, lat]
            }
          }
        }
      };

    return this.find(query) // ...

→ Error: Feature must have a type
I can work around all the validation errors by adding missing properties to the query:
      query.points = {
        type: 'Feature',
        geometry: {
          type: 'Point',
          coordinates: [1, 1],
          $nearSphere: {
            $geometry: {
              type: 'Point',
              coordinates: [lon, lat]
            }
          }
        }
      };

    return this.find(query) // ...

But this, of course, does not return any results as long as I don't have a point at [1, 1].
How should I query in this case?

It looks like perhaps you have declared in your schema that points is to be an array of Features:

points: [mongoose.Schema.Types.Feature]

But then you are treating it like it is a single feature. For example, expect points to have an geometry property:

MySchema.index({ 'points.geometry': '2dsphere' });

Also, I think $nearSphere is meant to work on a single GeoJSON element, not an array of them.

Correct @markstos - Mongo will only deal with indexing a GeoJSON object in a document in a collection, not an array. I don't know what you'd be expecting the result to be if you had e.g. an array of Points.


[other]: Camera compatability

Other
Hello,
Could you provide list of compatible RPI Cameras?

https://github.com/kendryte/k230_docs/blob/main/zh/01_software/board/mpp/K230_Camera_Sensor适配指南.md   section 4.1
OV_OV9732_MIPI_1280X720_30FPS_10BIT_LINEAR = 0,
OV_OV9286_MIPI_1280X720_30FPS_10BIT_LINEAR_IR = 1,
OV_OV9286_MIPI_1280X720_30FPS_10BIT_LINEAR_SPECKLE = 2,
OV_OV9286_MIPI_1280X720_60FPS_10BIT_LINEAR_IR = 3,
OV_OV9286_MIPI_1280X720_60FPS_10BIT_LINEAR_SPECKLE = 4,

OV_OV9286_MIPI_1280X720_30FPS_10BIT_LINEAR_IR_SPECKLE = 5,
OV_OV9286_MIPI_1280X720_60FPS_10BIT_LINEAR_IR_SPECKLE  = 6,

IMX335_MIPI_2LANE_RAW12_1920X1080_30FPS_LINEAR = 7,
IMX335_MIPI_2LANE_RAW12_2592X1944_30FPS_LINEAR = 8,
IMX335_MIPI_4LANE_RAW12_2592X1944_30FPS_LINEAR = 9,
IMX335_MIPI_2LANE_RAW12_1920X1080_30FPS_MCLK_7425_LINEAR = 10,
IMX335_MIPI_2LANE_RAW12_2592X1944_30FPS_MCLK_7425_LINEAR = 11,
IMX335_MIPI_4LANE_RAW12_2592X1944_30FPS_MCLK_7425_LINEAR = 12,

IMX335_MIPI_4LANE_RAW10_2XDOL = 13,
IMX335_MIPI_4LANE_RAW10_3XDOL = 14,

SC_SC035HGS_MIPI_1LANE_RAW10_640X480_120FPS_LINEAR = 15,
SC_SC035HGS_MIPI_1LANE_RAW10_640X480_60FPS_LINEAR = 16,
SC_SC035HGS_MIPI_1LANE_RAW10_640X480_30FPS_LINEAR = 17,

OV_OV9286_MIPI_1280X720_30FPS_10BIT_MCLK_25M_LINEAR_SPECKLE = 18,
OV_OV9286_MIPI_1280X720_30FPS_10BIT_MCLK_25M_LINEAR_IR = 19,
OV_OV9732_MIPI_1280X720_30FPS_10BIT_MCLK_16M_LINEAR = 20,

OV_OV5647_MIPI_1920X1080_30FPS_10BIT_LINEAR = 21,
OV_OV5647_MIPI_2592x1944_10FPS_10BIT_LINEAR = 22,
OV_OV5647_MIPI_640x480_60FPS_10BIT_LINEAR = 23,
OV_OV5647_MIPI_CSI0_1920X1080_30FPS_10BIT_LINEAR = 24,

SC_SC201CS_MIPI_1LANE_RAW10_1600X1200_30FPS_LINEAR = 25,
SC_SC201CS_SLAVE_MODE_MIPI_1LANE_RAW10_1600X1200_30FPS_LINEAR = 26,

@skol101
hi skol101,
please check with the answer, if there is no any new issue, we will close this issue later.


fixup: SSL: disabled TLSv1 and TLSv1.1 by default.

Note: MSVC can't handle split lines by macros. https://developercommunity.visualstudio.com/t/Compilation-error-with-ifdef-in-a-macro/10220204?q=muecker

Yes, we know about the issue. Thanks for the patch. I suggest more details in the commit log:
    SSL: fixed MSVC compilation after ebd18ec1812b.

    MSVC generates a compilation error in case #if/#endif is used in a macro
    parameter.

Also, technically NGX_SSL_TLSv1_2|NGX_SSL_TLSv1_3 can be removed from the first block. However for the sake of simplicity we can leave it as is.

But how can I edit the commit log?

But how can I edit the commit log?

git commit --amend

It's done.

Spit the commit log line and committed. Thanks.


chore(housekeeping): rename module name

Description
This PR replaces the former module name (github.wdf.sap.corp/cc/heureka) with the current (github.com/cloudoperators/heureka).
What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[X] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents
Fixes #121
https://github.com/cloudoperators/heureka/issues/121
Added tests?

[ ] 👍 yes
[X] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help
[ ] Separate ticket for tests # (issue/pr)

Added to documentation?

[ ] 📜 README.md
[ ] 🤝 Documentation pages updated
[X] 🙅 no documentation needed
[ ] (if applicable) generated OpenAPI docs for CRD changes

Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

Looks like you forgot:
Error: auth.go:12:2: no required module provides package github.wdf.sap.corp/cc/heureka/internal/util; to add it:
	go get github.wdf.sap.corp/cc/heureka/internal/util

That probably came from a merge back.

@dustindemmerle, can you check the actual state and check again for anything that got merged back while merging? Thanks!


Add CAST(real as decimal)

Supports CAST(real as decimal) and makes the result more precise with below two
considerations.

The significant decimal digits precision of double and float includes the
integral part, therefore when scaling up, the integral size needs to be
excluded from the scale factor. This PR takes integral digits into
consideration in rescaleFloatingPoint to avoid introduing unexpected digits to
the result.
E.g. in cast(1000.03 as decimal(38, 18)), 1000.03 is
1000.02999999999997271515... as double. If scaling it up by 15,
1000029999999999972.71515... is got and then rouned to
1'000'029'999'999'999'973. We finally get 1'000'029'999'999'999'973'000
as  the result of decimal(38, 18) type. But if we scale the input up by 11,
100002999999999.99... is got and then rounded to<PHONE_NUMBER>00000, and
we will get the correct result 1'000'030'000'000'000'000'000.

When the given scale is less than the the precision provided by double or
float, the input value needs to be scaled up to the max precision before
rounding, and scaled down to the given scale to get the expected result.
E.g. in cast(0.95 as decimal(4, 1)), 0.95 is 0.94999998... as float. If
scaling it up by 1, 9.49999... is got and then rounded to 9 as the result of
decimal(4, 1) type. But if we firstly scale it up to 949999.98... by
multiplying 10^6, then it can be rounded as 950000. After dividing 10^5, we
will get 9.5 which can be rounded to 10 as the final result.

@mbasmanova Could you spare some time to review this PR? Thanks.

Hi @gggrace14 @kagamiori, do you have more comments for this change? Thanks!

Hi Masha @mbasmanova, I'm having a question on casting floating types as decimal. Maybe you could give me some inputs here.
As a decimal value cannot be precisely represented with double/float, there are some precision loss when casting from floating types to decimal. But it seems we cannot avoid that.
E.g. in cast(1000.03 as decimal(38, 18)), as 1000.03 is 1000.02999999999997271515... as double,  after scaling it up we get 1'000'029'999'999'999'973'000 as the decimal result, instead of 1'000'030'000'000'000'000'000.
I checked the implementations of ClickHouse and DuckDB, and found they provided similar conversion. Do you think it makes sense to keep using current logic, and allow precision loss in tests when comparing results? Thanks!

@rui-mo

As a decimal value cannot be precisely represented with double/float, there are some precision loss when casting from floating types to decimal. But it seems we cannot avoid that.

That makes sense. Since not all floating point values can be represented using double or float, the values that cannot be represented will appear different.

E.g. in cast(1000.03 as decimal(38, 18)), as 1000.03 is 1000.02999999999997271515... as double,

Here, I'm not sure I understand why 1000.03 cannot be represented. Presto seems to be able to handle this value fine.
presto> SELECT cast(double '1000.03' as decimal(38, 18));
          _col0
-------------------------
 1000.030000000000000000
(1 row)

I believe the issue is that 1000.03 * (10^18) cannot be represented exactly. I wonder if there is a way to determine the number of digits after period and avoid multiplying by more than that.

  double d = 1000.03;
  LOG(ERROR) << d;
  LOG(ERROR) << std::fixed << d * 1e1;
  LOG(ERROR) << std::fixed << d * 1e2;
  LOG(ERROR) << std::fixed << d * 1e3;
  LOG(ERROR) << std::fixed << d * 1e10;
  LOG(ERROR) << std::fixed << d * 1e18;

] 1000.03
] 10000.300000
]<PHONE_NUMBER>00
] 1000030.000000
]<PHONE_NUMBER>0000.000000
]<PHONE_NUMBER>999999934464.000000

@mbasmanova Thank you for the pointer. I tried below two numbers and found when multiplied with 1e15, 1000.03 was still accurate but 99999.99 becomed inaccurate. This indicates a fixed scale factor (in this PR 6 for float, and 15 for double) does not work for all numbers. I checked the implementations of Presto , and it creates BigDecimal from double string link. Spark uses the constructor of double to BigDecimal link.

I wonder if there is a way to determine the number of digits after period and avoid multiplying by more than that.

I cannot think of a good way to detect the wanted digits in a floating value. Do we need to try what BigDecimal does to generate a more precise decimal from double? Thanks.
    for (double val : {1000.03, 99999.99}) {
        std::cout << std::fixed << std::setprecision(20) << val << std::endl;
        std::cout  << val * 1e14 << std::endl;
        std::cout  << val * 1e15 << std::endl;
        std::cout  << val * 1e18 << std::endl;
    }

Results:
1000.02999999999997271516
100003000000000000.00000000000000000000
1000030000000000000.00000000000000000000
1000029999999999934464.00000000000000000000
99999.99000000000523868948
9999999000000000000.00000000000000000000
99999990000000008192.00000000000000000000
99999990000000004259840.00000000000000000000

@rui-mo Maybe check how std::cout << std::fixes << (double) is implemented?

Hi @mbasmanova, I implemented some logic to handle the precision issue as the PR description says. Could you help review this PR? Thank you.

Seeing a lint warning:

@mbasmanova The lint warning is about preventing misuse of min for floating-point types. Min is near zero, and lowest is negative max, so they have different results when casting as decimal. I added both of them in the tests.


Updating main with piper changes.

PiperOrigin-RevId: 510219550
Change-Id: I2a74b4c2208f6f133444413d2dc187460869febc

Don't click that Update branch button :)


Removed unnecessary nullcheck in access control

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Fixed issues

isset() also checks null. Therefore elseif is unnecessary.

Thanks, @schmunk42. @dystopia3103 indeed, these are different checks.


Fix: Network connection issues fail silently

This ensures that network issues are raised as exceptions instead of failing silently. During a recent Humio outage we noticed that our lambda did not log any HTTP errors which was traced back to this request.
Example Test:
#!/usr/bin/python

import requests

http_session = requests.Session()

request = http_session.post('https://httpbin.org/status/503', data={}, headers={})
request
# Nothing raised/logged

request = http_session.post('https://httpbin.org/status/503', data={}, headers={})
request.raise_for_status()
# Traceback (most recent call last):
#   File "./humio-new-fix.py", line 13, in <module>
#     request.raise_for_status()
#   File "/Users/scottclark/Library/Python/3.8/lib/python/site-packages/requests/models.py", line 1021, in raise_for_status
#     raise HTTPError(http_error_msg, response=self)
# requests.exceptions.HTTPError: 503 Server Error: SERVICE UNAVAILABLE for url: https://httpbin.org/status/503

Hi @scottclk ,
Thanks for the PR.
From what I can tell, what you want here is that the error is somehow logged.
Instead of throwing an exception upwards until the lambda caller catches it, I'd prefer to log as an error at the source.
I've created an alternative solution to yours here:
https://github.com/humio/cloudwatch2humio/pull/45
Would you mind having a look and confirming whether it'd solve your issue? :)

Decided to merge https://crowdstrike.slack.com/archives/C02H4HP1L5T/p1661842992761469 instead.
Closing.


Display username in password reset email

Fixes #2240
Add "Your username (in case you've forgotten):" to the bottom of the password reset email (but only if there's actually a username field that's distinct from email).

Just noticed that Django's default template does this (and reveals that it can be done without a custom template tag after all...)
https://raw.githubusercontent.com/django/django/master/django/contrib/admin/templates/registration/password_reset_email.html

Merged in 3a6018e7d4ee3ccae75b71679a982050f4d4760c then tweaked in fdfbe689b4cd93cc3e35baa0fe4fd21187e587fc
Thanks!


C117640Escaping backslah to avoid localization content

Localization team has reported source content issue that causes localized version to have broken/different format compared to en-us version.
Description: Backslash"\" in section name is breaking formatting causing English strings to render on LOC pages.

Hi @KathleenDollard, can you please merge this PR?
Thanks in advance.

Thanks @mairaw


Does this library have the ablity to detect different gesture types on the node (double tap, fling, long press etc.)?

Hello. So, a simple tap on a sceneform node works fine but there is no listener for double tap, long press, fling, etc. on a node. Currently, the way I do it is to get the HitTestResult from the setOnTouchListener on ArSceneView and check whether the hit gives me a node with a specific name. However, it is not an elegant solution and I think if it is possible to add a listener that can make use of the classic android gesture detector, that would be great.

Just in case anyone is wondering how to do this:
GestureHelper.java for detecting types of gesture whenever the screen is tapped
public class GestureHelper extends GestureDetector.SimpleOnGestureListener {
    public enum GestureType {
        NONE,
        SINGLE_TAP,
        DOUBLE_TAP,
        PRESS_START,
        PRESS_MOVE,
        PRESS_RELEASE,
        LONG_PRESS
    }
    GestureType gestureType = GestureType.NONE;
    MotionEvent singleTapEvent;

    // coordinates where you long press on screen
    int currLongPressMenuLocX = -1;
    int currLongPressMenuLocY = -1;

    public GestureType getGestureType() {
        return gestureType;
    }

    public void resetGestureType() {
        this.gestureType = GestureType.NONE;
    }

    public MotionEvent getSingleTapEvent() {
        return singleTapEvent;
    }

    public void resetSingleTapEvent() {
        this.singleTapEvent = null;
    }

    public int getCurrLongPressMenuLocX() {
        return currLongPressMenuLocX;
    }

    public int getCurrLongPressMenuLocY() {
        return currLongPressMenuLocY;
    }

    @Override
    public void onLongPress(MotionEvent e) {
        super.onLongPress(e);
        currLongPressMenuLocX = (int) e.getX();
        currLongPressMenuLocY = (int) e.getY();
        gestureType = GestureType.LONG_PRESS;
    }

    @Override
    public boolean onDoubleTap(MotionEvent e) {
        gestureType = GestureType.DOUBLE_TAP;
        return super.onDoubleTap(e);
    }

    @Override
    public boolean onSingleTapConfirmed(MotionEvent e) {
        gestureType = GestureType.SINGLE_TAP;
        singleTapEvent = e;
        return super.onSingleTapConfirmed(e);
    }
}

MainActivity.java
        gestureHelper = new GestureHelper();
        gestureDetectorCompat = new GestureDetectorCompat(this, gestureHelper);

        arSceneView
                .getScene()
                .setOnTouchListener(
                        (HitTestResult hitTestResult, MotionEvent event) -> {
                            gestureDetectorCompat.onTouchEvent(event);
                            if (hitTestResult.getNode() == null) {
                                return false;
                            }

                            String name = hitTestResult.getNode().getName();
                            // check if the name of the node that was hit is the same
                            // as one of the nodes in your scene and use the below switch conditions
                            // to perform different actions on that node
                            switch (gestureHelper.getGestureType()) {
                                case NONE:
                                    break;
                                case SINGLE_TAP:
                                    break;
                                case DOUBLE_TAP:
                                    break;
                                case PRESS_START:
                                    break;
                                case PRESS_MOVE:
                                    break;
                                case PRESS_RELEASE:
                                    break;
                                case LONG_PRESS:
                                    break;
                            }
                            return true;
                        });


Update README.md

I'm setting up a new computer and the current automated copy / paste command fails in zsh. Figured && would be safer in more environments.

Yeah, fine by me


Sudden Error: "Looks like you have a different program called watchman"

Mac OSX 10.11.6
Looks like you have a different program called watchman, falling back to NodeWatcher.
Visit http://ember-cli.com/user-guide/#watchman for more info.
ng -v:
angular-cli: 1.0.0-beta.15
node: 4.5.0
os: darwin x64
I was happily developing on my project. Then I hit ctrl + C to end the watching process in the terminal. Now my project is completely broken, and when running ng serve I get this useless error message:
Looks like you have a different program called watchman, falling back to NodeWatcher.
Visit http://ember-cli.com/user-guide/#watchman for more info.
Error
How can I fix this??

https://github.com/angular/angular-cli/issues/2755#issuecomment-254436966

If you're just seeing the message 'Error', this might be a broken angular-cli.json. https://github.com/angular/angular-cli/pull/2565 fixed the message but was included only on beta.18. I recommend updating and opening a new issue if the problem persists.


[Feature Request] Improve comment navigation

A shortcut key to scroll to a comment's parent.

Any suggestions? I think it would need to include a keyboard modifier, like shift+j / shift+k?


Upstream of updates and misc improvements

Upgrades to Scala 2.13 and latest libs (twitterVersion to latest 22.12.0)

Hello! here is a detailed list of all the changes:
Most importantly: Support Prometheus labels and values (metadata for metrics)
Given that the way this library currently works of exporting Twitter metrics to Prometheus metrics we had to piggyback on Twitter metric names to include the list of labels and values as URL parameters, and parse them out and expose them with the right format for Prometheus.
Misc changes:

Add support for Scala 2.13.10
Update sbt to 1.8.0
Update Twitter libraries to 22.12.0
Update Prometheus client to 0.16.0
Update Logback classic to 1.4.5
Update scalatest to 3.2.14
Replace class + object to a case class to have an automatically generated constructor companion object.


⚠ Bofrost.at has degraded performance

In e2aefe0, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1046 ms

Resolved: Bofrost.at performance has improved in ca85b52 after 16 minutes.


✨ Add login screen

Closes #19
Adds a login screen for the user. Page will redirect to login screen until user logs in.
🔥 Can get rid of the Netlify environment variables once this is merged.
Note: stores this info in the sessionStorage so that user can input urls (ie. refresh the page) without the Redux store state being lost. Right now there is no expiration check associated with this. When the user closes this browser tab, sessionStorage will clear.

@znatty22 for now "requires auth" should just be KF right? I guess I don't necessarily see this login page acting as a "universal login page" for other servers because the format is specific - for example, Synthea requires a key for auth, not a username/password combination.

now "requires auth" should just be KF right? I guess I don't necessarily see this login page acting as a "universal login page" for other servers because the format is specific - for example, Synthea requires a key for auth, not a username/password combination.

Yea, you're for now its just KF.
However ...
In the future, it would be really great if an admin user could "add a FHIR server" their list of servers. When they add a server they'd be adding all of the necessary connection details and auth settings needed to authenticate w that server. Then the server drop down menu would populate based on the servers the user has added.
This would probably help enable comparison of data between FHIR servers or syncing data between FHIR servers.

I kept the "Login" text the same color - right now the app CSS has all the page headers (<h2>) as d3b-gray: #393939. Should they be d3b-blue: #005788  instead?

I kept the "Login" text the same color - right now the app CSS has all the page headers () as d3b-gray: #393939. Should they be d3b-blue: #005788 instead?

Nah actually let's leave it alone

Ooo I'll look into that. Thanks!


委员申请：Lm

Introduction: For ten years, I have been engaged in many industries such as GIS, Internet, and blockchain, and have some experience in research and development, products, and management. He has participated in other blockchain projects, and participated in the research and development of simple underlying, browser, wallet, DAPP and other types of projects. Willing to progress and grow with the Conflux project.
github:https://github.com/calmlism
参与Conflux项目:
1、https://github.com/Conflux-Chain/conflux-nft-contract
2、https://github.com/calmlism/Conflux-wallet
3、https://github.com/calmlism/conflux-crc721
4、https://github.com/calmlism/java-conflux-sdk
本人愿意承担一年期的技术 委员会的治理工作。

done


Uncaught ReferenceError: reentry is not defined

[Enter steps to reproduce:]

...
...

Atom: 1.22.1 x64
Electron: 1.6.15
OS: Microsoft Windows 8.1 Single Language
Thrown From: Remote-FTP package 2.1.1
Stack Trace
Uncaught ReferenceError: reentry is not defined
At C:\Users\Jaycel Cunanan\.atom\packages\Remote-FTP\node_modules\@icetee\ftp\lib\connection.js:937

ReferenceError: reentry is not defined
    at /packages/Remote-FTP/node_modules/@icetee/ftp/lib/connection.js:937:18
    at /packages/Remote-FTP/node_modules/@icetee/ftp/lib/connection.js:996:7)
    at Object.onceWrapper (events.js:290:19)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at TCP._handle.close [as _onclose] (net.js:501:12)

Commands
     -0:50.1.0 tree-view:remove (span.name.icon.icon-file-text)
     -0:42.3.0 remote-ftp:create-ftp-config (div.tool-panel.tree-view)
  3x -0:24.8.0 core:paste (input.hidden-input)
     -0:16.9.0 core:save (input.hidden-input)
     -0:13.5.0 remote-ftp:connect (ul.list-inline.tab-bar.inset-panel)

Non-Core Packages
Remote-FTP 2.1.1

same issue

same issue

Same issue.

I have the same..

Same issue with AWS server

@Haylin-chama did you find any solution? I have same issue. :(

Can you help reproduction? Create an S3?

@jovicon
No, because AWS needs a public key and i don't know how to add it to the .ftpconfig file.

Create authorized_keys file, use SFTP config and set privatekey property ~/.ssh/rsa_id https://github.com/icetee/remote-ftp/issues/1151

Any Updates on this? Only does it with one of my servers which works fine in filezilla

same ((( Any updates ?

+1

Hi,
I mdified line 907 in the connection.js file.
C:\Users<User<EMAIL_ADDRESS>Before
  this._send(pasvCmd, function (err, text) {
After
  this._send(pasvCmd, function reentry(err, text) {
Good luck :)

I'm experimenting this issue from promise-ftp library, when I use the solution from @wolfkang it works well, is there some workaround for that without edit the file manually because I need to ship my project with docker

Suddenly appearing.
Uncaught ReferenceError: reentry is not defined
/Users/Robert/.atom/packages/remote-ftp/node_modules/@icetee/ftp/lib/connection.js:943
Hide Stack Trace
ReferenceError: reentry is not defined
    at /Users/Robert/.atom/packages/remote-ftp/node_modules/@icetee/ftp/lib/connection.js:943:11
    at Socket.<anonymous> (/Users/Robert/.atom/packages/remote-ftp/node_modules/@icetee/ftp/lib/connection.js:1002:7)
    at Object.onceWrapper (events.js:315:30)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at TCP._handle.close [as _onclose] (net.js:554:12)
The error was thrown from the remote-ftp package. This issue has already been reported.

@wolfkang's fix seems to work.

It looks like this issue was fixed around version 1.0.6 of @icetee/node-ftp, and this library was updated to use version 1.0.7 about a year ago.
With that in mind, the offending code was in some error handling that attempts to handle a failure to establish a passive connection. So if you were seeing this error, it may mean that your FTP server is misconfigured (e.g. it is reporting the wrong passive connection IP address).

C:\Users\Morgan.atom\packages\remote-ftp\node_modules@icetee\ftp\lib\connection.js:947
Hide Stack Trace
ReferenceError: reentry is not defined
at C:\Users\Morgan.atom\packages\remote-ftp\node_modules@icetee\ftp\lib\connection.js:947:11
at C:\Users\Morgan.atom\packages\remote-ftp\node_modules@icetee\ftp\lib\connection.js:972:9
It is still happened to me. I am using 2.2.4 version.
It is only happened on specific Amazon server. I have tested to access the ftp server with another application. The application works well without any problem.

If someone has the same problem, use Amazon key-pair with sftp connection way.


Missing documentation on dynamic label addition (CLI)

I can't find any documentation on how to pass labels using command line arguments.
I have seen command lines here and there that seems to work for annotations, but the logic behind it doesn't seem documented.
Here are some examples of commands that work:
helm template helm/myTemplate -f helm/static_values.yaml --set annotations.annotationKey=annotationValue

On the other hand, the same with labels doesn't seem to work :
helm template helm/myTemplate -f helm/static_values.yaml --set labels.labelKey=labelValue

I tried other forms (random guesses since I couldn't find any documentation):
helm template helm/myTemplate -f helm/static_values.yaml \
  --set labels.labelKeyA=labelValueA \
  --set label.labelKeyB=labelValueB \
  --set metadata.labels.labelKeyC=labelValueC \
  --set metadata.label.labelKeyD=labelValueD

None of which works.

The chart has to be configured to accept annotations or labels. See you chart's values.yaml. Most of them are well documented.


cpython: drop tcl-tk patch from 3.11 on darwin

The library is now being discovered through pkg-config.
https://github.com/NixOS/nixpkgs/pull/168357#issuecomment-1098085025
https://github.com/python/cpython/commit/b36d222110d0d6d84dc8e973ca87d976c2423f5d
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@ofborg build python311

@ofborg build python311.pkgs.cryptography

Result of nixpkgs-review pr 168492 run on aarch64-darwin 1

1 package built:

python311

Without a working docutils build it's hard to build anything, so I think this is as good as it gets for now.