fixed an error in use smartbft

fixed an error after deleting a node when it participated in block signing immediately before deletion
Recently the TestAddAndRemoveNodeWithoutStop test has been terminating with an error very often in unit tests.
It went like this:

prepared a new config with node 5 removed from the cluster
send it to the orderers
The 5th node participated in the consensus to accept this block
deleted the 5th node
sent a simple transaction to check that everything was working.
In the very first stage of consensus, the smartBFT library takes the previous commit with signatures and checks for correctness. It sends it to the fabric function VerifyConsenterSig. In the previous commit the signature of node 5 is present, but in the current config it is not. This causes an error here.

My suggestion for a fix:

keep the previous set of nodes in memory
if we don't find a signature in the current set and the block is equal and/or less than the current block number, check in the previous set

Perhaps there is a better and more beautiful solution.

In the very first stage of consensus, the smartBFT library takes the previous commit with signatures and checks for correctness.

If I remember correctly, we only add the previous signatures, when we have leader election enabled, and in Fabric we don't have leader election enabled. If the leader doesn't send the previous signatures, then the followers won't verify them.
However in the tests, the decisions per leader is 0... it is therefore odd that the previous signatures verification is the cause this behavior.
Can you perhaps add a stack trace dump in the place where we verify the consenter signature?
Just to give some background - we introduced the previous commit signatures in order to know how to prune the blacklist. However, we don't use leader rotation nor the blacklist in Fabric, so before we go ahead and fix something, let's be 100% sure of it's cause.

My suggestion for a fix:

keep the previous set of nodes in memory
if we don't find a signature in the current set and the block is equal and/or less than the current block number, check in the previous set

Regarding your fix - I don't think we should leniently just check the previous set if we don't find a signature in the current set. Moreover, in your commit, you check the previous set if you don't find an identity, and not a signature. This function is used also to collect commit messages, so we should not carelessly change it like this.
I think there is a more "holistic" fix:

When verifying a block, we inspect the Fabric header number and look at the block number. If the last block we have committed (we check the runtime config) is the previous block to the block we're verifying, then we proceed as usual.
Else, if it is a block we have not committed yet (I know this is not possible, but for completeness, I am writing this case) we return an error.
Else, it's a block from the past, so we fetch the block with this number from the ledger, and look at its last config block. We then fetch that config block, and proceed to use it, to verify the requested block.

The above "fix" is very easy to test, as it only changes a single function and preserves the intended verification logic.

Can you perhaps add a stack trace dump in the place where we verify the consenter signature?

easily
goroutine 126 [running]:
github.com/hyperledger/fabric/orderer/consensus/smartbft.(*Verifier).VerifyConsenterSig(0xc000032e80, {0x5, {0xc000447340, 0x6f, 0x6f}, {0xc0009a2b80, 0x77, 0x77}}, {{0xc000c2c000, 0xa5cf, ...}, ...})
	/Users/f/go/src/github.com/hyperledger/fabric/orderer/consensus/smartbft/verifier.go:218  0xb14
github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).verifyPrevCommitSignatures(0xc0000f6600, {0xc000e9a240, 0x4, 0x4}, 0x0)
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:631  0x7c6
github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).verifyProposal(0xc0000f6600, {{0xc000efe580, 0x75, 0x75}, {0xc00063e230, 0x49, 0x49}, {0xc0009567b0, 0x4, 0x4}, ...}, ...)
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:588  0xb45
github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).processProposal(0xc0000f6600)
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:386  0x5e5
github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).doPhase(0xc0000f6600)
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:291  0x46
github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).run(0xc0000f6600)
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:277  0x215
github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).Start.func1()
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:140  0x1c
created by github.com/hyperledger-labs/SmartBFT/internal/bft.(*View).Start in goroutine 85
	/Users/f/go/src/github.com/hyperledger/fabric/vendor/github.com/hyperledger-labs/SmartBFT/internal/bft/view.go:139  0x20d

In the very first stage of consensus, the smartBFT library takes the previous commit with signatures and checks for correctness.

If I remember correctly, we only add the previous signatures, when we have leader rotation enabled, and in Fabric we don't have leader rotation enabled. If the leader doesn't send the previous signatures, then the followers won't verify them.
However in the tests, the decisions per leader is 0... it is therefore odd that the previous signatures verification is the cause this behavior.
Can you perhaps add a stack trace dump in the place where we verify the consenter signature?
Just to give some background - we introduced the previous commit signatures in order to know how to prune the blacklist. However, we don't use leader rotation nor the blacklist in Fabric, so before we go ahead and fix something, let's be 100% sure of it's cause.

My suggestion for a fix:

keep the previous set of nodes in memory
if we don't find a signature in the current set and the block is equal and/or less than the current block number, check in the previous set

Regarding your fix - I don't think we should leniently just check the previous set if we don't find a signature in the current set. Moreover, in your commit, you check the previous set if you don't find an identity, and not a signature. This function is used also to collect commit messages, so we should not carelessly change it like this.
I think there is a more "holistic" fix:

When verifying a block, we inspect the Fabric header number and look at the block number. If the last block we have committed (we check the runtime config) is the previous block to the block we're verifying, then we proceed as usual.
Else, if it is a block we have not committed yet (I know this is not possible, but for completeness, I am writing this case) we return an error.
Else, it's a block from the past, so we fetch the block with this number from the ledger, and look at its last config block. We then fetch that config block, and proceed to use it, to verify the requested signature.

The above "fix" is very easy to test, as it only changes a single function and preserves the intended verification logic.

error itself:
2024-10-11 15:32:51.289 MSK 181e WARN [orderer.consensus.smartbft.consensus] processProposal -> 1 received bad proposal from 1: failed verifying consenter signature of 5: node with id of 5 doesn't exist channel=testchannel

In the very first stage of consensus, the smartBFT library takes the previous commit with signatures and checks for correctness.

If I remember correctly, we only add the previous signatures, when we have leader rotation enabled, and in Fabric we don't have leader rotation enabled. If the leader doesn't send the previous signatures, then the followers won't verify them.
However in the tests, the decisions per leader is 0... it is therefore odd that the previous signatures verification is the cause this behavior.
Can you perhaps add a stack trace dump in the place where we verify the consenter signature?
Just to give some background - we introduced the previous commit signatures in order to know how to prune the blacklist. However, we don't use leader rotation nor the blacklist in Fabric, so before we go ahead and fix something, let's be 100% sure of it's cause.

My suggestion for a fix:

keep the previous set of nodes in memory
if we don't find a signature in the current set and the block is equal and/or less than the current block number, check in the previous set

Regarding your fix - I don't think we should leniently just check the previous set if we don't find a signature in the current set. Moreover, in your commit, you check the previous set if you don't find an identity, and not a signature. This function is used also to collect commit messages, so we should not carelessly change it like this.
I think there is a more "holistic" fix:

When verifying a block, we inspect the Fabric header number and look at the block number. If the last block we have committed (we check the runtime config) is the previous block to the block we're verifying, then we proceed as usual.
Else, if it is a block we have not committed yet (I know this is not possible, but for completeness, I am writing this case) we return an error.
Else, it's a block from the past, so we fetch the block with this number from the ledger, and look at its last config block. We then fetch that config block, and proceed to use it, to verify the requested signature.

The above "fix" is very easy to test, as it only changes a single function and preserves the intended verification logic.

error itself:
2024-10-11 15:32:51.289 MSK 181e WARN [orderer.consensus.smartbft.consensus] processProposal -> 1 received bad proposal from 1: failed verifying consenter signature of 5: node with id of 5 doesn't exist channel=testchannel

Total:

The processProposal() function is executed in the COMMITTED phase
after PrePrepare is generated and received, verifyProposal is executed, where PrevCommitSignatures are passed to
after that everything is passed to the verifyPrevCommitSignatures function without any conditions.
there each signer with a signature is verified by calling VerifyConsenterSig from the fabric
and already VerifyConsenterSig ends with an error.

@yacovm you can see for yourself.

put the stopper here
and run this test in debug

out of 10 runs, one of them will definitely work.

Regarding your fix - I don't think we should leniently just check the previous set if we don't find a signature in the current set. Moreover, in your commit, you check the previous set if you don't find an identity, and not a signature. This function is used also to collect commit messages, so we should not carelessly change it like this.
I think there is a more "holistic" fix:

When verifying a block, we inspect the Fabric header number and look at the block number. If the last block we have committed (we check the runtime config) is the previous block to the block we're verifying, then we proceed as usual.
Else, if it is a block we have not committed yet (I know this is not possible, but for completeness, I am writing this case) we return an error.
Else, it's a block from the past, so we fetch the block with this number from the ledger, and look at its last config block. We then fetch that config block, and proceed to use it, to verify the requested signature.

The above "fix" is very easy to test, as it only changes a single function and preserves the intended verification logic.

I have the block number check.
Do you want me to get the config and participant set in the same place?

I don't think we should be sending the previous commit signatures if we don't need them. Why do that? It's just excess CPU cycles, network bandwidth and disk storage.
I think we should not attach them if leader rotation is disabled.

I don't think we should be sending the previous commit signatures if we don't need them. Why do that? It's just excess CPU cycles, network bandwidth and disk storage.
I think we should not attach them if leader rotation is disabled.

What if at the time the 5th node is removed, the leader is the 5th node?

leader change
the previous signatures would be
The 5th node can participate.

and we'll be in the same situation again

I don't think we should be sending the previous commit signatures if we don't need them. Why do that? It's just excess CPU cycles, network bandwidth and disk storage.
I think we should not attach them if leader rotation is disabled.

What if at the time the 5th node is removed, the leader is the 5th node?

leader change
the previous signatures would be
The 5th node can participate.

and we'll be in the same situation again

If we're not attaching signatures of the previous block then how can we have a problem in verifying the signatures of the previous block which we do not attach?

I don't think we should be sending the previous commit signatures if we don't need them. Why do that? It's just excess CPU cycles, network bandwidth and disk storage.
I think we should not attach them if leader rotation is disabled.

What if at the time the 5th node is removed, the leader is the 5th node?

leader change
the previous signatures would be
The 5th node can participate.

and we'll be in the same situation again

If we're not attaching signatures of the previous block then how can we have a problem in verifying the signatures of the previous block which we do not attach?

during the change of leadership?

I don't think we should be sending the previous commit signatures if we don't need them. Why do that? It's just excess CPU cycles, network bandwidth and disk storage.
I think we should not attach them if leader rotation is disabled.

What if at the time the 5th node is removed, the leader is the 5th node?

leader change
the previous signatures would be
The 5th node can participate.

and we'll be in the same situation again

If we're not attaching signatures of the previous block then how can we have a problem in verifying the signatures of the previous block which we do not attach?

Or is it only needed when rotation is on?
and when rotation is disabled it is not necessary, even when the leader has changed?

exactly, it's only used when periodical leader rotation is active. A regular leader failover has nothing to do with it.

exactly, it's only used when periodical leader rotation is active. A regular leader failover has nothing to do with it.

Okay.
then I'll refine the task.
to leave adding signatures of the previous comitee only if leader rotation is enabled and DecisionsInView==0
right?

exactly, it's only used when periodical leader rotation is active. A regular leader failover has nothing to do with it.

Okay. then I'll refine the task. to leave adding signatures of the previous comitee only if leader rotation is enabled and DecisionsInView==0
right?

I don't understand how decisions in view is related to what we're talking about. Did you mean DecisionsPerLeader?

DecisionsInView==0

DecisionsPerLeader > 0 - sign that rotation is enabled
DecisionsInView==0 - sign that the leader has just changed
Or is the second one unnecessary?

I don't understand how decisions in view is related to what we're talking about. Did you mean DecisionsPerLeader?

DecisionsPerLeader > 0 - indicator that rotation is enabled
DecisionsInView==0 - indicator that the leader has just been changed Or is the second one unnecessary?

The former is a configuration parameter.
The latter is a byproduct of the consensus protocol.
So we need to consider the former, not the latter.

I don't understand how decisions in view is related to what we're talking about. Did you mean DecisionsPerLeader?

DecisionsPerLeader > 0 - indicator that rotation is enabled
DecisionsInView==0 - indicator that the leader has just been changed Or is the second one unnecessary?

The former is a configuration parameter. The latter is a byproduct of the consensus protocol.
So we need to consider the former, not the latter.

https://github.com/hyperledger-labs/SmartBFT/pull/599
take a look, please.


Triggers Manual and Click

Hey, thank you for this is amazing plugin, but i just figure out that there s an annoying bug with events.
I have two sort of Popover, for Alerts , and Data. For alerts i'm using 'manual' triggers so i can Pop IN / OUT when needed , and 'click' for Data that pops in when created and, 'Multi' option is set to FALSE for both.
Problem is : when alerts , are Poped in with .('show') and then .('hide') , and there s no other Popover showing, Data popover won't show in when Clicked.
Please, i'm asking for a workaround or fix, because it's my final project and it's tooo late to implement another popup system !
UPDATE(1/1)
After some DEBUG : every Data popup (trigger:click) that is clicked before the construction of webui of type Alert (trigger : manual) are able to be shown again , when alert popup hides, but not the rest

Don't know if stupidity or weariness but i fix it out, i was using same var name for all the type -_- !


AddressAllCommand

Implement AddressAllCommand and refactor existing commands to use it.
Note: No need for additional test cases as the existing ones cause all the functionality to be exercised

Codecov Report

Merging #246 (254f566) into develop (0767ba7) will decrease coverage by 2.43%.
The diff coverage is 47.96%.

@@             Coverage Diff             @@
##           develop     #246      +/-   ##
===========================================
- Coverage    82.46%   80.02%   -2.44%
===========================================
  Files           51       52       +1
  Lines         2823     3039     +216
===========================================
+ Hits          2328     2432     +104
- Misses         495      607     +112

Impacted Files
Coverage Δ

include/client.h
100.00% <ø> (ø)

include/command.h
95.23% <0.00%> (-4.77%)
:arrow_down:

include/redisserver.h
33.33% <0.00%> (-66.67%)
:arrow_down:

src/cpp/addressallcommand.cpp
0.00% <0.00%> (ø)

src/cpp/command.cpp
77.34% <0.00%> (-15.18%)
:arrow_down:

src/cpp/redis.cpp
58.59% <0.00%> (-11.50%)
:arrow_down:

src/cpp/client.cpp
83.45% <53.16%> (-3.51%)
:arrow_down:

src/python/module/smartredis/client.py
95.26% <92.75%> (-0.65%)
:arrow_down:


Bug - Kitematic crashes after opening on Yosemite 10.10.3

When I start Kinematic my MacBook Pro 13" Early 2015 always crashes and restarts automatically.
Mac OS Yosemite 10.10.3 (14D136).
Tried with Kitematic-0.5.25 and Kitematic-0.5.27.

@epavlenko Can you help get Kitematic logs?
cd  your directory
./Kitematic\ \(Beta\).app/Contents/MacOS/Kitematic\ \(Beta\)

That should run Kitematic with logs.

@mchiang0610 I was unable to generate a text file or a screenshot, so here are photos of my screen when I run Kinematic as you showed.

@epavlenko It seems to be running well. Does KM get stuck at 2%? (The logs you are showing seem all good)

@mchiang0610 my computer always goes to kernel panic at that moment

@epavlenko One of the older version of KM may have a bug that caused that. Are you running the latest Kitematic? (Mind also checking if you are running the latest virtualbox? )
Thanks, and sorry about the experience so far.

@mchiang0610 Thanks. I removed my virtualbox and computer stopped crashing.
But now it's stuck on 99%.
There is nothing new in log:

$ ./Kitematic\ (Beta).app/Contents/MacOS/Kitematic\ (Beta)
[1929:0521/115348:INFO:renderer_main.cc(200)] Renderer process started
[1927:0521/115349:INFO:CONSOLE(109)] "Download the React DevTools for a better development experience: https://fb.me/react-devtools", source: /Users/eugene/Downloads/Kinematic/Kitematic (Beta).app/Contents/Resources/app/node_modules/react/lib/React.js (109)

@epavlenko Ah. Good. Do you mind trying this version of Kitematic? It should fix that issue. Let me know if it doesn't.
https://github.com/kitematic/kitematic/releases/tag/v0.5.27-intel-nic
(Note: this is a pre-release build that we are using to test the getting stuck at 99% bug)  Reference this issue: https://github.com/kitematic/kitematic/issues/236

Closing this issue in favor of that issue now. (since it's the same) https://github.com/kitematic/kitematic/issues/236


v.1.9.7 to production

Pull Request Test Coverage Report for Build 87

23 of 50 (46.0%)  changed or added relevant lines in 8 files are covered.
9 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-1.2%) to 58.466%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

astetik/plots/line.py
6
8
75.0%

astetik/plots/world.py
0
2
0.0%

astetik/plots/hist.py
7
10
70.0%

astetik/style/template.py
0
6
0.0%

astetik/plots/roc.py
6
20
30.0%

Files with Coverage Reduction
New Missed Lines
%

astetik/plots/world.py
1
16.9%

astetik/style/template.py
1
80.0%

astetik/utils/country_code.py
7
0.0%

Totals

Change from base Build 74:
-1.2%

Covered Lines:
663

Relevant Lines:
1134

💛  - Coveralls


Design a board for simulating N-Queen Problem

I can do this, assign this to me.

Before we proceed, we kindly request you to:

Star this Repository: ⭐ Starring the repository helps us reach a wider audience and encourages more contributions. You can star the repo by clicking the "Star" button at the top of this page.

Follow the Code of Conduct: 📜 We maintain a Code a Code of Conduct to ensure a positive and respectful environment for all contributors. Please review and abide by it throughout your involvement in this project.

Add Your Profile Details: 📋 You can find instructions on how to add your profile details to the repository in our YouTube Video. Please follow the steps outlined in the video to complete this task before contributing.

If you have any questions or need further assistance, feel free to ask. Happy coding! 🚀


extension doesn't work

Environment (please complete the following information):

OS (e.g., Windows 10):
Extension version (e.g., 1.2.3):

Describe the bug:

Repro steps:

Expected behavior:

Additional context:

### Tasks

Closing as incomplete. Please feel free to add more information if you have any and we can re-open the issue.


It is not possible to remove TableNamePrefix via DynamoDBOperationConfig

Describe the bug
	        [DynamoDBTable("test-table")]
	        class ExternalTable
	        {
				...
	        }

            var dynamoDbContext = new DynamoDBContext(new DynamoDBContextConfig
            {
                TableNamePrefix = "my-prefix-"
            });

            dynamoDbContext.SaveAsync(new ExternalTable { }, new DynamoDBOperationConfig
            {
                TableNamePrefix = "",
                OverrideTableName = "external-table"
            });

Expected Behavior
Since I have explicitly set TableNamePrefix to empty string, I would expect it to be empty, there SaveAsync would happen for "external-table" table name.
Current Behavior
TableNamePrefix = "" is ignored. SaveAsync is attempted for "my-prefix-external-table" table name.
Possible Solution
Create a separate context.
Additional Information/Context
DynamoDBFlatConfig uses string.IsNullOrEmpty comparison, therefore empty string is simply ignored.
AWS .NET SDK and/or Package version used
3.7.402.7
Targeted .NET Platform
.NET 8
Operating System and version
AmazonLinux

Hello @Dreamescaper,
Thank you for reporting the issue. As per the source code, if the DynamoDBOperationConfig.TableNamePrefix is Empty it falls back to the DynamoDBContextConfig.TableNamePrefix which is set to "my-prefix-" in your case.
Ideally DynamoDBOperationConfig would override any settings specified by the DynamoDBContextConfig object. But due to above logic, I don’t see a way to remove the TableNamePrefix from inside DynamoDBOperationConfig if its set (Non Empty or not null) in DynamoDBContextConfig.
I will further check on this with the team and keep you posted.

Repro code

Package version:  AWSSDK.DynamoDBv2 3.7.400.18
       static async Task Main(string[] args)
       {
           //Create DDB table=`my-prefix-external-table` and Partition key as id(String)

           var client = new AmazonDynamoDBClient();

           var config = new DynamoDBContextConfig
           {
               TableNamePrefix = "my-prefix-"
           };

           var dynamoDbContext = new DynamoDBContext(client, config);

           await dynamoDbContext.SaveAsync(new ExternalTable { Id = "1" }, new DynamoDBOperationConfig
           {
               TableNamePrefix = "",
               OverrideTableName = "external-table"
           });
       }

       [DynamoDBTable("test-table")]
       public class ExternalTable
       {
           [DynamoDBHashKey]
           [DynamoDBProperty("id")]
           public string Id { get; set; } = null!;
       }

Regards,
Chaitanya

I assume that technically, changing that behavior would be a breaking change.
Would it make sense to fix it in V4 for new operation-specific overloads?

Hello @Dreamescaper,
Team will be fixing this issue as part of V4 efforts. Thank you again or reporting the issue.
Regards,
Chaitanya

@bhoradc
Would it be fine to implement this?

@Dreamescaper happy to take a PR for this change. Just be sure to target the v4-development branch.

Thanks again for the contribution, your PR was included in the latest preview of the SDK that was just released: https://www.nuget.org/packages/AWSSDK.DynamoDBv2/4.0.0-preview.3


Initial contribution of SyntheticGCWorkload tests

Tests that help verify GC behaviour

Some Grinders:
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder_Advanced/45
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder_Advanced/46
https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder_Advanced/47

Thanks for the review @llxia - I will merge this now, and then triage or tune to address any test failures that arise.

Just to add that the tool was originally developed by Andrew Somerville (https://github.com/andy16666).


[RHOAIENG-14313] - KServe - Type Confusion [rhoai-2.13]

chore:  Update the poetry.lock files
so the dependency version gets updated, in this case the cryptography
one was updated as expected to the suggested one.

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Type of changes
Please delete options that are not relevant.

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

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[ ] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

konflux failures are ok by now.

/lgtm
/approve

@riprasad is this failure ok or should it be investigated?


FR: Define and Show Persistent Labels on a Map

Here's my use case: I made a map of all my neighbors (most of which I only see once a year at the block party) so I can remember who they are and where they live. I'd like to be able to define a label with their name (e.g. "June & Joe Smith", "Sara & Sally Saunders") so I can zoom in on my block and see who lives where without having to mouse over each marker. Same would apply for all my favorite restaurants I've got in another note.
I should point out that I have all of them in one note. I'd be ok making them all individual notes and being able to show the note name as the persistent label if I had to. Or both options would be twice as nice. :)
Love this plugin. Thank you! I'm using the heck out of it!

That's a really nice idea, I'll look into it. Thank you!

Would also love this :)

I'm happy to update that the just-released v5.0.0 adds this feature.


Initialize plugin with context rather than with activity

This will enable using plugin in flutter headless mode when there could be no activity

Thanks, done.


JVM: isAny() (and other methods) doesn't work on interfaces

interface Bar
class Foo { fun consume(bar: Bar) }
  // in a test
  mocker.verify { foo.consume(isAny<Bar>()) } // throws a java.lang.InstantiationError

Objenesis can instantiate classes but I think it cannot instantiate interface as far as I can tell:
    class Foo
    interface Bar
    val cl = ObjenesisStd(true).newInstance(Foo::class.java) // Builds a Foo
    val inter = ObjenesisStd(true).newInstance(Bar::class.java) // throws InstantiationError

I suppose Mockmp should detect if it's an interface and may:

if the interface has a generated Mock, use the Mock class instead
if no mock has been generated for this interface, then provides an error message explaining the limitation and procedure to fix it.

Looks like ObjGenesis cannot instanciate Arrays as well: https://kotlinlang.slack.com/archives/D035VNK0GTF/p1646669455939899

Fixed in 1.3.0.
https://github.com/Kodein-Framework/MocKMP/releases/tag/v1.3.0


typo in acos range error message

main = drawingOf (text (printed (acos (42))))

produces the error

The asin function is only defined for numbers from -1 to 1.

It should say acos.

Thanks for the report.  Pranjal's commit fixes this.


Song duration exceeds limit

https://imgur.com/fJeGgrF
song duration exceeds limit (3795>1200)
how to fix 1200(seconds) to more than 3795 ?
im struggle on here any one help me pls ? :D

problem has been solved :P

Permissions.ini
MaxSongLength = 1200 change that


Option to skip tests

Forked off from issue #3

Have you considered a declaration to skip tests? Could be as simple as skip: true or more sophisticated like skip: { $os: { $eq: "Windows" } }

@gitblit can you please elaborate on this need? I am not able to appreciate the use case here.
The philosophy we wanted to follow in zzAPI is to not over-engineer and use the editor itself to achieve many things. If you like to temporarily disable the tests, you could just comment them out and uncomment them when you are done.

I am wondering how to specify the skip on a per-test basis. Some thoughts:
tests:
  $.some.nested.path: { $eq: 42, $skip: true } # cannot use $.some.nested.path: 42, forced to use { $eq }
  status: { $lte: 299, $skip: true } # For $lte etc, we anyway need this object
  ...

or
tests:
  x$.some.nested.path: 42 # any test starting with x will be skipped
  xstatus: 42 # not very obvious for the reader, but very succinct

Thoughts, @gitblit ?

I like the attribute/property over the prefix convention.
{ $eq: 42, $skip: true }


Disable javax_print on jdk17 openj9 and ibm

We decided to disable javax_print on 17 oepnj9 and ibm (details : backlog/issues/633). The test will be run on 17 manually. This PR adds that exclusion.

Signed-off-by: Mesbah-Alam<EMAIL_ADDRESS>FYI @JasonFengJ9

Sanity check :

17 : Grinder_JCK/329
8 : Grinder_JCK/330


Add crypto-square.json

Mentioned in #190, but I don't see that this has its own issue
Currently 18 tracks implement this exercise. I did a survey of their test suites and found that they fell into two types:
Type One: Test Just Encoding

python
lisp
go
elixir

Follow this approach. Just an encode method (or some alias) is implemented and tested.
Type Two: Test Intermediate Methods
The remaining 14 tracks followed this style. There's not a lot of variation between these suites.  Ruby is a good, representative example.
In these test suites several methods are implemented and tested:

normalized_plaintext
size
plaintext_segments
ciphertext
`normalized_ciphertext'

Exact method names vary.
What I did
In implementing this json file I followed the Test Intermediate Methods approach. I did this for a few reasons:
It's already the majority: With 14 of 18 tracks already implementing tests like this, there is some value in following the crowd.
I think it's the best approach: This one is more subjective, obviously. My problem with the Test Just Encoding approach is that there's a huge gap between starting the exercise and getting a useful passing test. Students have to implement the full algorithm to get tests passing.
By breaking the steps down in to smaller methods, each with their own tests, the lag time between starting to code and getting a passing test is smaller. And the tests are ordered so that each new method builds on the methods already built.
The downside of this approach, I think, is that we're doing a lot of the design up front in the test suite. In the Test Just Encoding approach students can implement the algorithm using as many methods as they want. In the Test Intermediate Methods approach, students end up locked to the methods defined in the test suite.
In this case I think the trade off is worth it.
But that's just my opinion. My kata group also worked through this exercise. 3 people did it in Test Just Encoding languages (Elixir and Python). 2 people did it in Test Intermediate Methods languages (Ruby and Javascript).
Their opinions largely mirrored mine. Those that used Just Encoding found it a lot of work to get the 2nd test to pass (since the first test encodes an empty string). But once they got the 2nd test to pass, all tests passed.
Those who used the Intermediate Methods approach found the steps between tests easer to manage and thought that this approach was better for learning.
However, as an argument for Just Encoding, the Python people were impressed at the variety of designs people used to solve the problem.  And our Elixir people liked that they could make up their own mind about internal implementations.
A suggested middle ground was to have one exercise offer a Intermediate Methods test suite, while a later exercise could cover similar ground with a more free-form Just Encoding test suite.
Removed Tests
I dropped one set of tests that existed in the Test Intermediate Methods approach: size. I didn't see a reason for this method. I don't see it being used as part of a 'real' crypto library (though if your real crypto library is using Crypto Square then you probably have other problems). And I didn't see that testing it offered any useful tests not already provided by the plaintext_segments tests.
Tweaked Method Names
Method naming varies between current implementations and the Readme.  I've tried to use method names that follow the readme.
My methods

normalized_plaintext
plaintext_segments
encoded
ciphertext

Terms used in the Readme

'input is normalized'
'plaintext in a rectangle'
'encoded text'
'cyphertext' or 'encoded text chunks'

plaintext_segments is the method name that deviates most from the readme. It comes from the current implementations and I could not think of a better name. Names = hard.

I looked through this and think it looks good.  I compared to the Ruby track and only saw a minor difference.  I think it will work well.
I like the idea of doing even a similar or same exercise with a different driving set of tests, so guiding in the intermediary steps for the first time, and then allowing as full creativity as possible the second time is good.  The second time, you are familiar with the problem domain, and not fighting with restrictions that may initially be necessary for sanity, but freeing when you don't have them for the second time.

Ok. That's one vote. I'll let this sit until Monday to see if any other @exercism/track-maintainers have suggestions. If it looks good, I'll merge!

Interesting discussion about whether to test intermediate methods or not. I made the opposite decision in largest series product a while back, but the circumstances there may differ from here.
I did this exercise and didn't feel terribly about having the intermediate methods be tested. Why? I'm not sure. Maybe it's because I thought there probably wasn't going to be that much interesting variation. However you've told me I'm wrong:

the Python people were impressed at the variety of designs people used to solve the problem

For this exercise, I think I'm most convinced by you saying testing the intermediate methods is better for learning.

I think I've addressed @petertseng's comments. If there's anything else, let me know!

Ran the whole file through jq to fix the formatting.

This looks good to me now.

I'm ready to say :+1: (with squash)

Oh, was that the fancy new 'merge with squash' thing? I still haven't used that yet. Nice.

Yep.  Trying to find one with rutabaga, but so far just squash.

Just like a squash, it presented with a lot of information, some useful, some not so useful.  If you don't expand the textarea you may miss it.  It is but an irritation, you just have to remember.


[BUG] Event Grid samples are not showing up in docs.microsoft.com/samples/browse

We expect all the samples that live in this repo to show up in https://docs.microsoft.com/samples/browse
We do this by adding the right metadata in the readme file that lives in the folder that has the samples.
If you see this search query for Event Grid samples in Python, there are no results for samples for Event Grid SDK
Compare this with the [search query for Event Grid samples in JS]https://docs.microsoft.com/en-us/samples/browse/?filter-products=grid&products=azure-event-grid&languages=javascript) and you will see samples for Event Grid SDK. Same for .NET

Can we keep this issue open until the sample actually starts showing up in docs.microsoft.com/samples/browser?

@ramya-rao-a Verified that the samples are reflecting in the search query
Here's the link https://docs.microsoft.com/en-us/samples/azure/azure-sdk-for-python/eventgrid-samples/

Yay! Thanks!


Fix RabbitMQ documentation

The RabbitMQ documentation was lacking when RabbitMQ was used but messages arrived in the "Unacked" state rather than the "Ready" state, which can happens in frameworks such as Dapr.
This commit clarifies that this can be resolved through the HTTP interface and also points to the correct endpoint to utilize.

LGTM with some suggestions, can you fix DCO please?

Fixed DCO but messed up a bit in-between 😅 any way of signing commits automatically?

LGTM with some suggestions, can you fix DCO please?

Fixed DCO but messed up a bit in-between 😅 any way of signing commits automatically?

To sign commits, you can run
git commit -s

VSCode has a setting to sign all commits and I think that other IDEs have the same, if that's what you are asking for :)

Looking good, could you please rebase your branch and force push (so it doesn't contain the Alibaba commit) thanks!

Awesome! Figured it out, thank for the help 😊 (not a pro in all this signing stuff haha)


Media queries not deterministic.

I'm experiencing a lot of issues with media queries and out-of-order/conflicting rules.
Does cxs handle media queries intelligently, ie: are the rules generated in the order provided by the properties? I'm defining these media queries from smallest to largest.
Sometimes it seems adding a property to a media query ends up affecting unrelated things. I haven't been able to pinpoint a specific case, it all feels very arbitrary (although I'm sure there's a good reason as to why it's happening).

I'm not totally sure, but this might not have anything to do with media queries. I suspect it's just noticeable because you're expecting style toggle on/off
Commenting out all the common declarations in /dist seemed to fix a lot of issues I was having.

I'm not sure I follow. This is still a WIP so there's probably issues with what you're describing. Can you provide a link to a jsbin as an example?

Yeah I will try and get an isolated test case for you.

But to simplify my initial ramblings, is the order of the properties and media queries preserved? This is particularly important for media queries where you would want properties to cascade as you increase screen size.

They should be and I intended for that to be true, but there is some sorting that cxs does to rulesets that might be affecting that. I should add some tests and ensure it works as expected

Just published 1.0.0 with some small fixes. Feel free to reopen this issue if you're still having problems with the latest version

Still having issues. I may have isolated... some bizarre behavior? Not entirely sure if it's related.
The following block:
const sx = {
  '@media screen and (min-width : 320px)': {
    display: 'none',
  },
  '@media screen and (min-width : 768px)': {
    display: 'block',
  },
};

Results in the following cxs.rules:
[
  {
    id: 'cxs-1266547199',
    order: 1,
    selector: '.cxs-1266547199',
    css: '.cxs-1266547199{}'
  },
  {
    id: 'cxs-1266547199@media screen and (min-width : 320px)',
    order: 2,
    selector: '.cxs-1266547199',
    css: '@media screen and (min-width : 320px) { .cxs-1266547199{} }'
  },
  {
    id: 'cxs-1266547199@media screen and (min-width : 768px)',
    order: 2,
    selector: '.cxs-1266547199',
    css: '@media screen and (min-width : 768px) { .cxs-1266547199{} }'
  }
]

Which results in the following cxs.css:
.cxs-1266547199{}@media screen and (min-width : 320px) { .cxs-1266547199{} }@media screen and (min-width : 768px) { .cxs-1266547199{} }

So it seems to be ripping out the display properties?

@Silverwolf90 was this resolved?

looks like this is resolved in 2.1.0, at least for me; was seeing the issue described above previously.


Toggle the glow window?

Hi, cool plugin!
Is there a way to toggle the preview window?

hey @pschmitt not sure what you mean by "preview window". Current :Glow  command already pops a floating window with the output. Can you clarify please?

Sure, sure what I want is to be able to toggle the terminal window that displays glow.
Workflow-wise this would look like that:

call ToggleGlow() -> show the preview window if not currently displayed, else hide it (as if the user pressed q)

Will definitely think in a possible func alongside with a mapping for this.

@pschmitt just pushed the feature, using :Glow as a toggle command right now. Let me know if that worked for you


Add a dummy function whenever noun_chunks is called

Closing this PR in favor of https://github.com/explosion/spacy-demos-service-displacy/pull/8


2.0.0 -> 3.1.1 performance degradation

https://github.com/bugproof/TomlLibrariesBenchmark

Hi!
Thanks for bringing this up; this is quite a significant slowdown. After some basic profiling, it seems that the change to support TOML 1.0.0 caused a regression in date parsing performance:

The issue is likely the try-catch snippet which essentially causes unnecessary operations:
https://github.com/dezhidki/Tommy/blob/91e8fff297e0c5cc2885ae34f36e5394c553cddd/Tommy/Tommy.cs#L2011-L2018
Changing it back to original TryParse implementation indeed fixes the flamegraph:

Of course, supporting full TOML 1.0.0 spec causes a slight performance degradation that I cannot fully fix.
I pushed the fixed code right now (https://github.com/dezhidki/Tommy/commit/ecac69d7d8ffa7cbf6fa50620ac1b2ace6671396, no release yet) if you feel like giving it a test. Here's the library if you don't want to compile it from the source:
Tommy.zip
I don't know about your testing setup, but on mine:
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1415 (21H2)
AMD Ryzen 5 3600, 1 CPU, 12 logical and 6 physical cores
.NET SDK=6.0.100
  [Host]     : .NET 6.0.0 (<IP_ADDRESS>210), X64 RyuJIT
  DefaultJob : .NET 6.0.0 (<IP_ADDRESS>210), X64 RyuJIT

The fixed code now runs in 20.54 us, which is reasonable given the results with 2.0.0.

Quite a big difference after replacing exceptions with TryParse. I will update the benchmark results when new version will be on NuGet.


npm install error

I build an component and i publish to my verdaccio serve.
but i install error.
what this error?

my component package.json

my english is not good, but i studying all the time.
Please understand.

Hi @bhabgs,
cb() never called is a bug in npm itself and with cache issues. It is not caused by your code.
Please try npm i -g npm@latest and check if you can change the owner and group of the mentioned file(s).

i have update npm to latest, but show this error

thank for you, i have update npm to latest and  remove node_module folder. try it ok.


Please convert another part of OPN model to onnx

Issue Type
Bug
OS
Ubuntu
OS architecture
x86_64
Programming Language
Python
Framework
ONNX
Model name and Weights/Checkpoints URL
OPN: https://github.com/seoungwugoh/opn-demo/
Description
From https://github.com/seoungwugoh/opn-demo/blob/master/models/OPN.py, please see:
def forward(self, *args, **kwargs):
print(len(args), len(kwargs))
if len(args) == 3:
return self.memorize(*args)
else:
return self.read(*args, **kwargs)
Seem you only exported self.memorize(*args)? If so, would you mind export self.read(*args, **kwargs) as well? Thanks. :-)
Relevant Log Output
No response
URL or source code for simple inference testing code
No response

You can also show me the converting script so I can do it myself.

Just write an export statement here. I'm not really interested in this model at the moment, so please try it yourself first.
https://github.com/seoungwugoh/opn-demo/blob/5c7229c518851a3e6b6944ae09fc42368f32b262/demo_group_image.py#L84-L94


Two subdomains: Letsencrypt as certificateresolver vs nginx with certbot

Potential bug
What did you do?
I am running Traefik 2.2.
I have two subdomains which i have configured in Traefik
AA.domain.com
and
BB.domain.com
For the AA subdomain i am using the integrated Letsencrypt resolver in Traefik (which is working fine).
BB domain however is running nginx and has it's own certbot. However it appears that Traefik also tries to handle the requests to BB.domain.com/.well-known/acme-challenge/abcdefg (and fails)
Here is my basic configuration for these domains.
http:
  routers:
    routeraa:
      rule: "Host(`AA.domain.com`)"
      service: main-service
      tls:
        certResolver: myletsencrypt
      entryPoints:
      - "web"
      - "websecure"
    routerbbnginx:
      rule: "Host(`BB.domain.com`)"
      entryPoints:
      - "web"
      - "websecure"
      service: nginx-service`

Here is my certResolver
certificatesResolvers:
  myletsencrypt:
    acme:
      email<EMAIL_ADDRESS>      storage: acme.json
      httpChallenge:
        entryPoint: web`

What did you expect to see?
As i understood it from the documentation, Traefik tries to receive certificates based on matching hostnames which have a certResolver defined. However i do not have certResolver associated with BB.domain.com. Therefore i expected certResolver to pass the request to .well-known to the nginx server running BB.domain.com
What did you see instead?
It appears that Traefik tries to handle a request to .well-known for a subdomain that hasn't a certResolver associated.
Here is the output from the Traefik log when i open the http://BB.domain.com/.well-known/acme-challenge/abcdefg url. The request to this url never reaches the nginx server.
time="2020-04-24T11:58:05Z" level=debug msg="Unable to split host and port: address BB.domain.com: missing port in address. Fallback to request host." providerName=myletsencrypt.acme

time="2020-04-24T11:58:05Z" level=debug msg="Retrieving the ACME challenge for token abcdefg..." providerName=myletsencrypt.acme

time="2020-04-24T11:58:05Z" level=error msg="Error getting challenge for token retrying in 616.051907ms" providerName=myletsencrypt.acme

...

time="2020-04-24T11:58:30Z" level=error msg="Error getting challenge for token retrying in 7.299364087s" providerName=myletsencrypt.acme

time="2020-04-24T11:58:37Z" level=error msg="Error getting challenge for token retrying in 24.931919645s" providerName=myletsencrypt.acme

time="2020-04-24T11:59:02Z" level=error msg="Error getting challenge for token retrying in 39.959238407s" providerName=myletsencrypt.acme

time="2020-04-24T11:59:42Z" level=error msg="Cannot retrieve the ACME challenge for token abcdefg: cannot find challenge for token abcdefg" providerName=myletsencrypt.acme`

Output of traefik version: (What version of Traefik are you using?)
Running Traefik 2.2 on Docker

Hello,
I recommend to use the TLS challenge instead of the HTTP challenge.
https://docs.traefik.io/v2.2/https/acme/#tlschallenge


[elasticsearch] use security by default

This commit update Elasticsearch chart to use security by default.

Adds a new Secret template for Elasticsearch password with a
randomized password if secret.password isn't defined.

Adds instructions to retrieve the password in Elasticsearch chart
deployment notes.

Also, remove usage of ELASTIC_USERNAME variable because it
don't seem to be supported anymore by Elasticsearch

The other charts will be updated in follow-up PRs to use the proper
credentials
Relates to https://github.com/elastic/helm-charts/issues/1375

Merging as Elasticsearch chart tests are successful and the other charts will be fixed in follow-up PRs.


New version: Diskuv.opam version 2.2.0-beta3

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I can't find anywhere in the Azure Pipelines steps and logs what the actual problem is.

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-06-13 02:02:31.145 [FAIL] Installer failed security check. Url: https://github.com/diskuv/dkml-installer-opam/releases/download/2.2.0-beta3-20240611/unsigned-opam-windows_x86-i-2.2.0-beta3-20240611.exe Result: 0x80004005

Automated error analysis suggests -1978335187 may mean Installer failed security check. Another script should retry this every 18 hours.
(Automated response - build 885.)

I've automated the above into a PowerShell script, which then filters for "error", "exception" and "fail", and then filters out the noise.

I don't see your script but it was simple enough for me to use grep --color on the logs. Thanks for the useful information!
I'll let it do its security check again but since the inputs aren't changing that doesn't sound promising.
Since it seems to be affecting only the x86 32-bit installer I'll drop that for this release if it fails again. But more generally, we've had problems with false positives in Windows Defender for OCaml binaries (this Diskuv.opam package is for the OCaml package manager, and I'm guessing all programming language package managers and compilers do poorly with AV heuristics).
Any suggestions would be appreciated. For a while we signed packages, but that didn't meaningfully reduce the Windows Defender false positives (and cost money and was a pain).

/azp run


Adjective generation rule for "Mrauk U"

closes #510

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 92.894%

Totals

Change from base Build<PHONE_NUMBER>4:
0.001%

Covered Lines:
3490

Relevant Lines:
3714

💛  - Coveralls


Show/Hide Desktop Icons

Description of the new feature / enhancement
Please add a shortcut to toggle Show/Hide Desktop Icons
Scenario when this would be used?
I would use this all the time as I have icons on my desktop that I often need to get to but when not using them, I like the desktop to be clear.
Supporting information
No response

/dup #977


License change

+306 −20,612
Nice!

+306 −20,612

Nice!

Minus part is mostly license of each Qt dependency (of 1 arbitrary chosen Qt version, with chances that it is not the one used by users), needed at a specific point of the time ;-), now redirected to Qt page as we don't need that anymore, and as this repository does not contain Qt library.

Yeah I looked at the code. ;) Code.. reviewed!


Quotes & strip: can't open file

Hello, quotes nightmare seems to be back (#12). So like before I deployed my very best dev skills by calling print() ^^.
cmd strip show the returned value of _strip_sudo() and cmd exec the value in exec_command() right after the composition of the final command (if I get this corectly: cmd = ' '.join([executable, '-c', pipes.quote(cmd)]))
I use python 2.7.14 and ansible v2.5.6 and v2.6.1 give the same output:
$ ansible jail -i inventory -m ping -v

cmd exec: /bin/sh -c '/bin/sh -c '"'"'echo ~igor'"'"''
cmd exec: /bin/sh -c '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo ~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424 `" && echo ansible-tmp-1533806098.24-152749480273424="` echo ~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424 `" )'"'"''
cmd exec: /bin/sh -c '/bin/sh -c '"'"'chmod u+x '"'"'"'"'"'"'"'"'~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424/'"'"'"'"'"'"'"'"' '"'"'"'"'"'"'"'"'~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424/ping.py'"'"'"'"'"'"'"'"''"'"''
cmd strip: /usr/local/bin/python '"'"'"'"'"'"'"'"'~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424/ping.py'"'"'"'"'"'"'"'"'
cmd exec: /bin/sh -c '/usr/local/bin/python '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424/ping.py'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''
cmd exec: /bin/sh -c '/bin/sh -c '"'"'rm -f -r '"'"'"'"'"'"'"'"'~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424/'"'"'"'"'"'"'"'"' > /dev/null 2>&1'"'"''

jail | FAILED! => {
    "changed": false,
    "module_stderr": "Shared connection to <IP_ADDRESS> closed.\r\n",
    "module_stdout": "/usr/local/bin/python: can't open file '\"'\"'\"'~igor/.ansible/tmp/ansible-tmp-1533806098.24-152749480273424/ping.py'\"'\"'\"': [Errno 2] No such file or directory\r\n",
    "msg": "MODULE FAILURE",
    "rc": 2
}

Igor is my become_user here and sudo is enabled. It seems to confirm than a lot of uninvited double-quotes have join the party around the name of the temporary python script on remote hosts.
What do you think?

@fdutheil do you still get this on ansible 2.7.* as I don't see it. I have seen this issue come and go as upstream also tries to find exactly the right number and type of nested quotes. It's almost as if tunneling python source code to the server isn't really the right approach to doing sysadmin work shrugs

Hi @dch,
Thank you for the update.
I updated to ansible 2.7.5, got latest GIT version of sshjail, and I still get this:
$ ansible jail -i inventory -m ping

jail | FAILED! => {
    "changed": false,
    "module_stderr": "Connection to <IP_ADDRESS> closed.\r\n",
    "module_stdout": "/usr/local/bin/python: can't open file '\"'\"'\"'~igor/.ansible/tmp/ansible-tmp-1550596203.7999833-240778608663086/AnsiballZ_ping.py'\"'\"'\"': [Errno 2] No such file or directory\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 2
}

Hi,
I'm still the only one affected by this? Someone else is using "become" and sudo on the jails' host?

Hi @fdutheil sorry that I'm coming around super late on this... I don't suppose you can speak to whether this is still an issue for you? Especially on more recent ansible?

Hi @fdutheil sorry that I'm coming around super late on this... I don't suppose you can speak to whether this is still an issue for you? Especially on more recent ansible?

Hi @fdutheil sorry that I'm coming around super late on this... I don't suppose you can speak to whether this is still an issue for you? Especially on more recent ansible?

Hi Austin!
No worry, that's how "life" works ^^
Indeed I had to move along and reorganize my little jails infrastructure to be ssh-enabled again. For now, I'll close this issue and refer to it later if I have time to give sshjail a go again ;)

Hi @fdutheil sorry that I'm coming around super late on this... I don't suppose you can speak to whether this is still an issue for you? Especially on more recent ansible?

Hi Austin!
No worry, that's how "life" works ^^
Indeed I had to move along and reorganize my little jails infrastructure to be ssh-enabled again. For now, I'll close this issue and refer to it later if I have time to give sshjail a go again ;)

I'm sorry to hear that you never got it working.
When I was testing some changes in another PR the other week, I didn't notice anything like this, so I wonder if it was something specific to your setup?
There's a small chance that PR (now accepted and on master) fixed this issue because it changed the way we build file copy commands, but given the absurdness of the way Ansible generates commands and quotes things, I doubt it's fixed :(
Best of luck with your setup, and I'm sorry I wasn't able to make this work for you when you needed it

I'm sorry to hear that you never got it working.
When I was testing some changes in another PR the other week, I didn't notice anything like this, so I wonder if it was something specific to your setup?
There's a small chance that PR (now accepted and on master) fixed this issue because it changed the way we build file copy commands, but given the absurdness of the way Ansible generates commands and quotes things, I doubt it's fixed :(
Best of luck with your setup, and I'm sorry I wasn't able to make this work for you when you needed it

Not to reopen the issue, more for documentation purpose in case someone else has the same problem.

<jailhost.example.com> (2, b'/usr/local/bin/python3.8: can\'t open file \'"\'"\'"\'~ansible/.ansible/tmp/ansible-tmp-1648330350.7033346-13083-29065725208230/AnsiballZ_setup.py\'"\'"\'"\': [Errno 2] No such file or directory\r\n', b'Shared connection to jailhost.example.com closed.\r\n')
<jailhost.example.com> Failed to connect to the host via ssh: Shared connection to jailhost.example.com closed.
<EMAIL_ADDRESS>ESTABLISH SSH CONNECTION FOR USER: ansible
<jailhost.example.com> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o Port=22 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="ansible"' -o ConnectTimeout=10 -o ControlPath=/home/wombelix/.ansible/cp/062ff11488 -tt jailhost.example.com 'sudo -H -S -n  -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-gawnvpxcvrfxlqomuzwvrvzrulpackli ; jexec 68 /bin/sh -c '"'"'"'"'"'"'"'"'/bin/sh -c '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'rm -f -r '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'~ansible/.ansible/tmp/ansible-tmp-1648330350.7033346-13083-29065725208230/'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"' > /dev/null 2>&1'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<jailhost.example.com> (0, b'', b'Shared connection to jailhost.example.com closed.\r\n')
<EMAIL_ADDRESS>| FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/local/bin/python3.8"
    },
    "changed": false,
    "module_stderr": "Shared connection to jailhost.example.com closed.\r\n",
    "module_stdout": "/usr/local/bin/python3.8: can't open file '\"'\"'\"'~ansible/.ansible/tmp/ansible-tmp-1648330350.7033346-13083-29065725208230/AnsiballZ_setup.py'\"'\"'\"': [Errno 2] No such file or directory\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 2
}

After applying https://github.com/austinhyde/ansible-sshjail/pull/36 everything seem to be ok, ansible_facts where returned from inside the jail as expected.


make clearer separation between regular setup instructions & addition of "pgcli"

Because of the order of instructions, students are typing brew install pgcli once they're inside psql

Then to login to the database, use psql mydb.
To setup autocomplete for PostgreSQL, you can install pgcli with brew:
brew install pgcli

[ ] Make a clearer distinction between the two sections:

main installation instructions for MAC
optional extra section to add pgcli

[ ] Add really obvious statement about what pgcli is

Pgcli is a command line interface for Postgres with auto-completion and syntax highlighting.

I've moved it into a separate bonus section and added a statement that pgcli is an alternative postgres CLI client, and added Linux instructions as requested in #9 .
Does this PR solve the issue?
https://github.com/macintoshhelper/learn-sql/blob/postgresql/setup/refactor/postgresql/setup.md

@jsms90 @macintoshhelper This issue appears to have been solved - can we close this?


Attempt to invoke virtual method isRoaming() on a null object reference

I get this at boot:
[ 06-17 21:30:50.251  3264: 3598 W/GmsGcmMcsSvc ]
Exception while connecting!
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.net.NetworkInfo.isRoaming()' on a null object reference
	at org.microg.gms.gcm.GcmPrefs.getNetworkPrefForInfo(GcmPrefs.java:103)
	at org.microg.gms.gcm.McsService.connect(McsService.java:370)
	at org.microg.gms.gcm.McsService.handleMessage(McsService.java:535)
	at android.os.Handler.dispatchMessage(Handler.java:98)
	at android.os.Looper.loop(Looper.java:154)
	at org.microg.gms.gcm.McsService$HandlerThread.run(McsService.java:152)

[ 06-17 21:30:50.251  3264: 3598 D/GmsGcmMcsSvc ]
Teardown initiated, reason: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.net.NetworkInfo.isRoaming()' on a null object reference

The problem is here but it is caused by the fact that there isn't a null check for the two call of cm.getActiveNetworkInfo() here.
ConnectivityManager.getActiveNetworkInfo():
a NetworkInfo object for the current default network or **null** if no default network is currently active.

Fixed in https://github.com/microg/android_packages_apps_GmsCore/commit/7bbdcac990a8bcf939b8012c642cbe2249e64758


Typo in mystery of lore (pf2)

In Pathfinder 2e/apg/class/oracle/mystery/oracle-mystery-lore, it reads **Bonsus** to saves against linguistic effects. instead of **Bonus** to saves against linguistic effects., with an extra s.

Fixed.


How to increase text label size of annotation

Very interesting lib, it is highly appreciated but it seems changing pdf-annotate default text annotate size from pdf.py has no effect on the label that is annotated on the output.pdf .
Any help is deeply appreciated

Are you referring to line 232 on pdf.py?
# Add title annotation next to highlight
annotator.add_annotation("text", Location(x1=x1, y1=y1, x2=x2, y2=y2, page=page),
                         Appearance(fill=rgb + (1,), font_size=7, stroke_width=1, content=title))

If so, did you rebuild the library from source after making that change and reinstall?

Thanks @davidmezzetti  , I am very newb and wasn't aware of the process of modifying packages.  Once again highly appreciate your work.

No problem, glad you were able to resolve the issue!


Load Bazel rules

Fix the following error:
$ bazel run //java/gulava:Demo
Starting local Bazel server and connecting to it...
ERROR: /Users/jing/code/github/gulava/WORKSPACE:21:1: name 'maven_jar' is not defined
ERROR: error loading package '': Encountered error while reading extension file 'tools/build_defs/repo/http.bzl': no such package '@bazel_tools//tools/build_defs/repo': error loading package 'external': Could not load //external package
INFO: Elapsed time: 2.826s
INFO: 0 processes.

I see you have already signed the CLA. Thank you for the fix. It looks good (tested it myself) but need to obtain write access to this repo from the admin so I can merge this PR. I expect to get write permissions early next week.


add preeclampsia card

Add preeclampsia card

Codecov Report

Merging #298 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #298   +/-   ##
=======================================
  Coverage   61.77%   61.77%
=======================================
  Files          16       16
  Lines         259      259
  Branches       54       54
=======================================
  Hits          160      160
  Misses         99       99

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 873cfd0...2089684. Read the comment docs.

Hey @dsifford can't merge w/o your review. Used to be able to Squash and Merge. Another permission thing? Def logged in this time ;)


Allow to enable sandbox behind a setting and validate it works

The idea is to eventually enable this by default in insiders.
Things to check:

[ ] There are no issues from the contextBridge when using the exposed API from our preload script
[ ] 🏃 Investigate the impact on running as admin when sandbox: true
[ ] Performance validation & tuning

Investigate if there is a slowdown from using ipcRenderer via preload vs. direct MessagePort to main process
Understand the impact of having to use Uint8Array over Buffer for large data transfers (e.g. file IO)
macOS: Investigate 8kb limit of chunks in streams (vscode#40681)

From @deepak1556 on running as admin:
Running the application as elevated on macOS and windows will work, the problematic scenarios are the following,

On Linux, if a user the installed the application as root technically they should be able to launch the application but the issue would be the sandbox will now run under admin privilege and access to files which are owned by a different user will fail and most often the user data directory would not be owned by root and chrome's internal logic would abort when not being able to read/write to this folder.
The second scenario on linux is when application was installed as normal user but then tried to launch with sudo, in this case the sandbox which uses execve would fail to stat the executable after launching a process and lead to a hard crash. This makes chrome unable to launch child processes. The decision was then made to never allow running as elevated on linux under sandbox, https://bugs.chromium.org/p/chromium/issues/detail?id=638180
On Windows, when running the application as elevated while applocker is enabled will cause the sandboxed process to fail launch https://bugs.chromium.org/p/chromium/issues/detail?id=740132

Test plan item: https://github.com/microsoft/vscode/issues/155827


[docs] fix broken fontsource link

[ ] I have followed (at least) the PR section of the contributing guide.

Thanks @mnajdova


Adaptive hide not working

Adaptive hide not working when the music stop. I need to click refresh button then the text got hidden

Hi, with which player did you have this issue? Can you list down for me the exact steps you did so I can replicate them?

I'm having the same issue using spicetify to play music with the webplayingnow media player selected in the settings.
Everything works great except the adaptive hide when the music is paused. If I refresh the skin, the skin displays "Fetching" then vanishes for a couple of seconds before appearing again with "fetching" then switches to the info for the paused song.

The same issue is back again. If I use WebNowPlaying in Chrome with extension, the plugin is "Fetching..." when not on some supported page.
I reproduced commit from bugfix and now it works as expected.


Unable to signoff commits since v4

TL;DR
As per the title - It appears as if though the interface between release-please-action and release-please itself results in the signoff property being ignored.
Expected behavior
When migrating from v3 -> v4
Add the signoff key to my release-please-config.json file
Release please continues to signoff commits
Observed behavior
No commit signing appears to be happening
Action YAML
Happy to share this but it's mostly irrelevant. Heres the original release-please config after renovate updated us to v4 (we got some warning logs in the release-please task about unrecognised properties):
      - name: Release please
        uses: google-github-actions/release-please-action@v4
        id: release
        with:
          token: ${{ secrets.RP_TOKEN}}
          command: manifest
          monorepo-tags: true
          signoff: "Obfuscated<EMAIL_ADDRESS>
Heres the two keys I added to the release-please-config.json as per the migration recommendations
  "signoff": "Obfuscated<EMAIL_ADDRESS>  "include-component-in-tag": true,

And heres the release-please yaml post actioning the migration recommendations
      - name: Release please
        uses: google-github-actions/release-please-action@v4
        id: release
        with:
          token: ${{ secrets.RP_TOKEN}}

Log output
No response
Additional information
Having done some digging..
The Manifest constructor expects the signoff property to be in manifestOptions (the 5th argument to the constructor)
https://github.com/googleapis/release-please/blob/main/src/manifest.ts#L356
When fromManifest is called it sets the 5th argument of the Manifest constructor to the following:
{
  manifestPath: manifestFile,
  ...manifestOptions,
  ...manifestOptionOverrides,
}

manifestOptionOverrides is only passed in by release-please-action in certain circumstances
manifestOptions comes from the parseConfig function in release-please
The parseConfig function does not extract the signoff property into the options:
https://github.com/googleapis/release-please/blob/main/src/manifest.ts#L1392-L1406
This might need to be an improvement in the release-please project but thought i'd raise it here as it has meant our upgrade to v4 has been unsuccessful.

According to the linked issue and PR, the bug is fixed in recent release-please version.
Running my workflow with release-please-action@v4 it prints in the logs Running release-please version: 16.12.0
However, the commit in the release-pr is still not signed of in my repo.
Action YAML
name: Release

on:
  push:
    branches:
      - main
  workflow_dispatch:

permissions:
  contents: write
  pull-requests: write

jobs:
  release-please:
    name: Maintain Upcoming Release
    runs-on: ubuntu-latest
    steps:
      - uses: googleapis/release-please-action@v4
        id: release
        with:
          token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
          config-file: release-please-config.json
          manifest-file: .release-please-manifest.json

release-please-config.json:
{
    "release-type": "go",
    "bump-minor-pre-major": true,
    "pull-request-title-pattern": "chore: release ${version}",
    "include-component-in-tag": false,
    "include-v-in-tag": true,
    "signoff": "Jens Drenhaus<EMAIL_ADDRESS>    "changelog-sections": [
        {
            "type": "feat",
            "section": "Features"
        },
        {
            "type": "fix",
            "section": "Bug Fixes"
        },
        {
            "type": "docs",
            "section": "Documentation"
        },
        {
            "type": "refactor",
            "section": "Other Work"
        },
        {
            "type": "test",
            "section": "Other Work"
        },
        {
            "type": "build",
            "section": "Other Work"
        },
        {
            "type": "ci",
            "section": "CI",
            "hidden": true
        },
        {
            "type": "chore",
            "section": "Chore",
            "hidden": true
        },
        {
            "type": "revert",
            "section": "Revert",
            "hidden": true
        }
    ],
    "packages": {
        ".": {}
    }
}

@geemanjs do you still encounter the problem, too?


UCI log likelihood calculation

Hi. Great Repository! I was having trouble recreating the results from some of the papers which you implemented and I found your examples to be more complete than the original author repositories which is very helpful.
I have a question regarding your calculation of the test set log likelihood of the UCI datasets...
In this file (https://github.com/JavierAntoran/Bayesian-Neural-Networks/blob/master/notebooks/regression/mc_dropout_hetero.ipynb) you use the flow...
- make tensor of (samples, mu) and (samples, log_sigma)
- use means.mean() as mu and (means.var() + mean(sigma) ** 2) ** 0.5 as sigma
- calculate sum of all log probability / data instances

Then as a last step you add log(y_sigma) which is the standard deviation of the y values before they were normalized. Why do you do this and where does the necessity to do this come from?
The original MC Dropout and Concrete Dropout repositories use some form of the logsumexp trick do calculate the log probabilities, but so far I have been unable to recreate the UCI results using their method. I get much closer with your method but I cannot justify the last step to myself.
Reference
Concrete Dropout
MC Dropout

Hi @jeffwillette and thanks for the question. The reason why we add this log-stddev part is because we need to account for data normalisation: we want to evaluate the model's log-likelihood on the raw data, not on the normalised data. Here's a more detailed explanation:

We could just model the raw (unnormalised) data. In this case, the log-likelihood of the model parameters for the unnormalised data will be just the output of get_loss_and_rmse, and that would be the end of the story.

But we want to normalise the data to facilitate training. We choose to normalise each component independently using:

        x_train, y_train = data[train_index, :in_dim], data[train_index, in_dim:]

        x_means, x_stds = x_train.mean(axis = 0), x_train.var(axis = 0)**0.5
        y_means, y_stds = y_train.mean(axis = 0), y_train.var(axis = 0)**0.5

        x_train = (x_train - x_means)/x_stds
        y_train = (y_train - y_means)/y_stds

To evaluate the log-likelihood on the raw data we should: (1) normalise the test inputs - using the means and standard deviations of the training data; (2) pass the (normalised) test inputs through the network to get predictions (in normalised y-space); (3) transform the predictions (predicted means and standard deviations) back to unnormalised space and use them to evaluate the log-likelihood.

As a design choice, we decided to have the outputs of the model be in normalised (and not in unnormalised) space. If you look at the formula for a normal distribution, you can see that if we transform both the predictions and the data, the term in the exponent will remain unchanged, whereas the normalising constant at the front will change by an appropriate multiplicative factor, which when you take the log, turns up as the np.log(y_stds) term that's added on.

I hope this explanation helps. This part of the code is poorly written and not at all documented (I'm responsible for this crime), and it's far from obvious what this term is doing there. I hope we'll soon get the bandwidth to fix this and other issues with this code. Thanks for pointing it out!

Thanks for the explanation. I knew this must have been the reason but I had to do the math on paper before I could believe it and I had never seen this calculation before. Thanks for the detailed explanation

Could you give a snippet (or link) of the code you are using and the (numerical) answers you are getting?

The code I am using in my training loop is as follows (this was for a single run on the UCI housing dataset.
            with torch.no_grad():
                squared_err = 0.0
                total_ll = 0.0
                aleatoric = 0.0
                epistemic = 0.0
                total_d_ll = 0.0
                for i, (x, y) in enumerate(test):
                    x, y = x.to(device), y.to(device)

                    mus = torch.zeros(args.samples, x.size(0), device=device)
                    logvars = torch.zeros(args.samples, x.size(0), device=device)
                    for j in range(args.samples):
                        mus[j], logvars[j], _ = model(x)

                    ll = Normal(mus, torch.exp(logvars / 2)).log_prob(y)
                    total_ll += torch.logsumexp(ll.sum(dim=1), dim=0).item()

                    mean = mus.mean(dim=0)
                    std = (
                        mus.var(dim=0) + torch.exp(logvars / 2).mean(dim=0) ** 2
                    ) ** 0.5
                    total_d_ll += Normal(mean, std).log_prob(y).sum()

                    epistemic += mus.var(dim=0).mean().item()
                    aleatoric += torch.exp(logvars).mean(dim=0).sum().item()

                    real_y = y * test.dataset.y_sigma + test.dataset.y_mu  # type: ignore
                    real_mu = mus.mean(dim=0) * test.dataset.y_sigma + test.dataset.y_mu  # type: ignore
                    squared_err += ((real_y - real_mu) ** 2).sum().item()

                aleatoric /= len(test.dataset)
                epistemic /= len(test.dataset)

                total_ll = total_ll - np.log(args.samples)
                total_ll /= len(test.dataset)
                total_ll -= np.log(test.dataset.y_sigma.item())  # type: ignore

                total_d_ll /= len(test.dataset)
                total_d_ll -= np.log(test.dataset.y_sigma.item())  # type: ignore
                print(f"total_ll: {total_ll} total_d_ll: {total_d_ll}")

outputs:
total_ll: -2.2789058327527476 total_d_ll: -2.5311999320983887

So if I haven't made a mistake, these both give different answers


insuficient funds for gas*price + value

hi I ma getting following error when withdraw ethereum
in peatio 1.8
Can anyone help in this problem?
<CoinAPI::Error: {"code"=>-32000, "message"=>"insufficient funds for gas * price + value"

Hi @HafeezRai,
I guess your ethereum balance is too low to perform withdraw request.

It's hard to find information, I suggest you see this https://bitcointalk.org/index.php?topic=5202005.new#new


Added config parameter to the Ocean object where it was needed in parameters.md.

Fixes #449 .
Changes proposed in this PR:

added config parameter to the Ocean object where it was needed in parameters.md.

I tested the modifications as well and it worked.


Unable to copy extended attributes for backup of original IOBluetoothFamily.kext & IO80211Family.kext (operation not permitted)

Setup in question:
13-inch Late 2011 MacBook Pro w/ upgraded internal hardware (BCM94331PCIEBT4CAX) running OS X El Capitan 10.11.5

Issue:
So I had to do a fresh install (not because of CAT) of OS X El Capitan 10.11.5 and when I ran the Continuity Activation Tool it gave these errors.

not sure how or if this will effect me down the road if the need to restore the original kext ever arises but everything (continuity, instant hotspot, AirDrop) works as it should.
Also worth noting:
The permissions on the files in question are as follows

These extended attributes are not needed for the kexts so I told cp to ignore them in the newest version.

alright. Just thought i'd report my findings. . .


NoClassDefFoundError

Class is not being recognized.
Encountered the error in Stanford NER Tagger training process
Possible Solution: Downgrading the Stanford NER/POS/CoreNLP version from 3.6.0 to 3.5.2
Things I've found so far
https://gist.github.com/alvations/e1df0ba227e542955a8a
https://github.com/nltk/nltk/issues/1237
http://stackoverflow.com/questions/20595351/exception-in-thread-main-java-lang-noclassdeffounderror-edu-stanford-nlp-time
http://stanfordnlp.github.io/CoreNLP/cmdline.html
http://stackoverflow.com/questions/6780678/run-class-in-jar-file
http://nlp.stanford.edu/software/crf-faq.html#a

Solved
Solution:
The solution was to use stanford-ner-2015-04-20 library package.

Make sure to use the path of Stanford-ner.jar
java -cp "C:\StanfordParser\stanford-ner-2015-04-20\stanford-ner.jar" edu.stanford.nlp.process.PTBTokenizer


Placeholder - Admin Area: Concept descriptions not showing in production for admin users

Steps to reproduce bug:

Log in to F&E production environment as and admin user.
Click on 'Sort categories and concepts'.
Select 'Expand all concepts' tick box.
For any Concept, select either 'View details' or 'Edit'.
'Description' field is blank.

The Concept descriptions are, however, showing on the 'Find & Explore' website, the issue is just within the admin tool. The Concept descriptions can be changed by selecting 'Edit' for that Concept and putting in the required new description, it will save and display correctly on the F&E website.

After discussing with @cacquani, the issue isn't as I thought and it isn't a bug. And it isn't limited to production, it's the same on staging. The actual problem is that for concepts that haven't been given a description, the system looks at the descriptions for the data items within that concept and uses the longest one as the description for the concept. The description doesn't show in the admin pages so that the admin user can see which concepts haven't been given a description.
There is another issue, where some of the concept descriptions are set to the path of the concept, e.g.  'Demographics > Socio-economic status > Free school meals (FSM) > Eligible for free school meals aged 10-15'. These descriptions have been set by someone so they're showing in the admin tool, but they need to be changed as they don't make any sense.
So a decision needs to be made as to whether we change the default behaviour of showing the longest data item description as the concept description where a concept description hasn't been manually applied. There then needs to be a manual exercise undertaken to apply meaningful descriptions to all concepts.
I'll close this bug ticket and add a new one to undertake the work to apply meaningful descriptions to concepts.

Closed this ticket and opened a new one, #714, to address the missing concept names issue.


Loading currfile-abspath before currfile raises error?

Example:
\documentclass{article}
\usepackage{currfile-abspath}
\usepackage{currfile}
\begin{document}

\end{document}

I think since currfile-abspath is documented as "can be used standalone" the above should be supported?
(not necessarily literally like that but maybe some package loads currfile-abspath only then another package loads currfile.)

Error message is:
LaTeX2e <2022-11-01>
L3 programming layer <2022-11-02>
(d:/texlive/2022/texmf-dist/tex/latex/base/article.cls
Document Class: article 2022/07/02 v1.4n Standard LaTeX document class
(d:/texlive/2022/texmf-dist/tex/latex/base/size10.clo))
(d:/texlive/2022/texmf-dist/tex/latex/currfile/currfile-abspath.sty)
(d:/texlive/2022/texmf-dist/tex/latex/currfile/currfile.sty
(d:/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty
(d:/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty)
(d:/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
(d:/texlive/2022/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty))

! LaTeX Error: Command \currfile@mainext already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.21 }
      %
?

Thank you for reporting this issue.
Loading currfile-absfile alone is ok. Loading it before currfile is problematic if that package is loaded with contradicting options. It is recommended to load currfile very early before any other packages.
Nevertheless, I added a fix to the package now.

More than one year later, I encounter the error again, and notice that the new version hasn't been uploaded to CTAN. Can you upload it?

Sorry, I will release it shortly.

I just uploaded it as v1.0 . Should be available on CTAN within 1-2 days, +1-2 days in the distributions.


" ++ toggles fullscreen state of the application"  does not work as expected more than 1 time.

Describe the bug
Similar problem as #9886
I have the same problem with full screen mode, ie
<CTRL>+<ALT>+<Return> toggles fullscreen state of the application
connecting to windows rdsfarm.
using option : / multimon  = all full screens
using extra option : /f or +f does not change anything.
resizing from full screens with ctrl+alt+enter works exactly 1 time.
after resizing again to full screen it is not possible any more to resize back and the full screen mode is locked.
Expected behavior
The possibility to exit and enter full screen mode more than 1 time.
This worked fine in my previous xfreerdp
Application details
Ubuntu 24.04.1 using : freerdp3-x11 (3.5.1+dfsg1-0ubuntu1)

Output of xfreerdp /buildconfig
This is FreeRDP version 3.5.1 (n/a) Build configuration: BUILD_TESTING=OFF WINPR_HAVE_AIO_H=1 WINPR_HAVE_EXECINFO_BACKTRACE=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS_FD=1 WINPR_HAVE_EXECINFO_HEADER=1 WINPR_HAVE_FCNTL_H=1 WINPR_HAVE_GETLOGIN_R=1 WINPR_HAVE_GETPWUID_R=1 WINPR_HAVE_INTTYPES_H=1 WINPR_HAVE_POLL_H=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 WINPR_HAVE_STDBOOL_H=1 WINPR_HAVE_STDINT_H=1 WINPR_HAVE_STRNDUP=1 WINPR_HAVE_SYSLOG_H=1 WINPR_HAVE_SYS_EVENTFD_H=1 WINPR_HAVE_SYS_FILIO_H= WINPR_HAVE_SYS_SELECT_H=1 WINPR_HAVE_SYS_SOCKIO_H= WINPR_HAVE_SYS_TIMERFD_H=1 WINPR_HAVE_TM_GMTOFF=1 WINPR_HAVE_UNISTD_H=1 WINPR_HAVE_UNWIND_H=1 WITH_AAD=OFF WITH_ABSOLUTE_PLUGIN_LOAD_PATHS=ON WITH_ADD_PLUGIN_TO_RPATH=OFF WITH_ALSA=ON WITH_BINARY_VERSIONING=ON WITH_CAIRO=ON WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=OFF WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CLIENT_SDL=ON WITH_CLIENT_SDL_AVAILABLE=1 WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_CODECS=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_EVENTS=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SCHANNEL=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=OFF WITH_DSP_FFMPEG_AVAILABLE=0 WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=OFF WITH_FREERDP_DEPRECATED=OFF WITH_FREERDP_DEPRECATED_COMMANDLINE=OFF WITH_FUSE=ON WITH_GFX_H264=OFF WITH_GPROF=OFF WITH_GSM=OFF WITH_ICU=ON WITH_INTERNAL_MD4=OFF WITH_INTERNAL_MD5=OFF WITH_INTERNAL_RC4=OFF WITH_JPEG=ON WITH_KERBEROS=ON WITH_KRB5=ON WITH_KRB5_NO_NTLM_FALLBACK=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBRESSL=OFF WITH_LODEPNG=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_NATIVE_SSPI=OFF WITH_NEON=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSC_PKCS11_LINKED=OFF WITH_OPENSSL=ON WITH_OPUS=ON WITH_OSS=ON WITH_PCSC=ON WITH_PKCS11=OFF WITH_PLATFORM_SERVER=ON WITH_POLL=ON WITH_PROFILER=OFF WITH_PROXY=OFF WITH_PULSE=ON WITH_RDTK=ON WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_EMULATE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SMARTCARD_PCSC=ON WITH_SOXR=OFF WITH_SSE2=OFF WITH_SWSCALE=OFF WITH_SYSTEMD=ON WITH_THIRD_PARTY=OFF WITH_UNICODE_BUILTIN=OFF WITH_URIPARSER=OFF WITH_VAAPI=OFF WITH_VAAPI=OFF WITH_VAAPI_AVAILABLE=0 WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_VERBOSE_WINPR_ASSERT=ON WITH_VIDEO_FFMPEG=OFF WITH_VIDEO_FFMPEG_AVAILABLE=0 WITH_WAYLAND=ON WITH_WINPR_DEPRECATED=OFF WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XV=ON Build type:          RelWithDebInfo CFLAGS:              -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/build/freerdp3-Y6sMvf/freerdp3-3.5.1+dfsg1=/usr/src/freerdp3-3.5.1+dfsg1-0ubuntu1 -Wdate-time -D_FORTIFY_SOURCE=3 -Wdate-time -D_FORTIFY_SOURCE=3 -Wall -Wpedantic -Wno-padded -Wno-cast-align -Wno-declaration-after-statement -fPIC -Wall -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -fno-omit-frame-pointer Compiler:            GNU, 13.2.0 Target architecture: x64
OS version connecting to (server side)
Windows server 2019 standard , version 18.09 build 17763.6293
not changed since previous xfreerdp.

Environment (please complete the following information):

OS: Ubuntu 24.04.1
Architecture: amd64

@RneeJ no, #9886 is unrelated (different client implementation)
as for the ubuntu handling I did a few tests.
the window manager behaves strangely, not much we can do here:

the shortcut only removes the fullscreen flag, does not resize the window.
as the window is larger than the usable screen the window manager makes it fullscreen again...

so, what can you do?

with right control you can switch focus away from xfreerdp and use local keyboard shortcuts (alt+tab, ...)
with the next release of stable-3.x we have added <ctrl>+<alt>+m to minimize a window with xfreerdp


save image error

puppet-xp latest version
wechat <IP_ADDRESS>
22:20:49 INFO PuppetXp messageImage(clb6lfm6h000074ou7n4qdjzo, 2[HD])
22:20:49 INFO C:\Users\lirenjie\Documents\WeChat Files\wxid_u1aox5vhmk3e22\FileStorage\Image\2022-12\d6cf955199daa7a3e146783d33936808.dat true
[Error: ENOENT: no such file or directory, access 'C:\Users\lirenjie\Documents\WeChat Files\wxid_u1aox5vhmk3e22\FileStorage\Image\2022-12\d6cf955199daa7a3e146783d33936808.dat'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'access',
  path: 'C:\\Users\\lirenjie\\Documents\\WeChat Files\\wxid_u1aox5vhmk3e22\\FileStorage\\Image\\2022-12\\d6cf955199daa7a3e146783d33936808.dat'
}
22:20:52 INFO PuppetXp messageImage(clb6lfm6h000074ou7n4qdjzo, 2[HD])
22:20:52 INFO C:\Users\lirenjie\Documents\WeChat Files\wxid_u1aox5vhmk3e22\FileStorage\Image\2022-12\d6cf955199daa7a3e146783d33936808.dat true
[Error: ENOENT: no such file or directory, access 'C:\Users\lirenjie\Documents\WeChat Files\wxid_u1aox5vhmk3e22\FileStorage\Image\2022-12\d6cf955199daa7a3e146783d33936808.dat'] {
  errno: -4058,
  syscall: 'access',
  path: 'C:\\Users\\lirenjie\\Documents\\WeChat Files\\wxid_u1aox5vhmk3e22\\FileStorage\\Image\\2022-12\\d6cf955199daa7a3e146783d33936808.dat'
}

have the same problem, images not download automatically.

This is because the WeChat client has not completely downloaded the pictures to the local area. It usually occurs when the picture size is relatively large. Try adding a delay when receiving pictures to alleviate this problem, but it cannot be eradicated.

This is because the WeChat client has not completely downloaded the pictures to the local area. It usually occurs when the picture size is relatively large. Try adding a delay when receiving pictures to alleviate this problem, but it cannot be eradicated.

Adding delay can not fix this problem, should add some params to make Wechat download image automatically!!!
If I once run ntchat/itchat(other framework) program, then images can be automatically downloaded!!!

well, did you slove this problem. cause I have a same one now...


Dataset.to_array method

It should be possible to easily convert back and forth between Datasets and DataArrays that consist of each variable in a Dataset stacked along a "variable" dimension.
The implementation for to_array should be mostly equivalent to DataArray.from_series(ds.to_dataframe().stack()), although for performance reasons we probably don't actually want to convert everything into intermediate representations as pandas object.
Similarly, to_dataset(dimension) would be roughly equivalent to Dataset.from_dataframe(array.to_series().stack(dimension)).

DataArray.to_dataset() currently converts a DataArray into a Dataset with a single data variable.
This is fine, but we should add a dim argument so that x.to_dataset(dim='time') will instead create a Dataset with one data variable per time value.

Dataset.to_array will have to decide how to handle attributes on the separate Variables being stacked.  For consistency we should keep all or drop all.  The latter is far simpler.

Agreed. +1 for dropping attributes.


create_iterable is broken

create_iterable from the docs does not work.

Go here: https://python.useinstructor.com/#streaming-iterables-create_iterable
Copy + paste + run the example
Error

Traceback (most recent call last):
  File "/Users/bryan/work/flow/iterable.py", line 14, in <module>
    users = client.chat.completions.create_iterable(
  File "/Users/bryan/work/flow/.venv/lib/python3.10/site-packages/instructor/client.py", line 184, in create_iterable
    return self.create_fn(
  File "/Users/bryan/work/flow/.venv/lib/python3.10/site-packages/instructor/patch.py", line 140, in new_create_sync
    response_model, new_kwargs = handle_response_model(
  File "/Users/bryan/work/flow/.venv/lib/python3.10/site-packages/instructor/process_response.py", line 191, in handle_response_model
    if is_simple_type(response_model):
  File "/Users/bryan/work/flow/.venv/lib/python3.10/site-packages/instructor/dsl/simple_type.py", line 40, in is_simple_type
    if isclass(response_model) and issubclass(response_model, BaseModel):
  File "/Users/bryan/miniconda3/envs/turbo/lib/python3.10/abc.py", line 123, in __subclasscheck__
    return _abc_subclasscheck(cls, subclass)
TypeError: issubclass() arg 1 must be a class

(turbo) bryan@Bryans-MacBook-Pro-7 flow % python -V
Python 3.10.12
(turbo) bryan@Bryans-MacBook-Pro-7 flow % pip show openai
Name: openai
Version: 1.30.1
Summary: The official Python library for the openai API
Home-page:
Author:
Author-email: OpenAI<EMAIL_ADDRESS>License:
Location: /Users/bryan/miniconda3/envs/turbo/lib/python3.10/site-packages
Requires: anyio, distro, httpx, pydantic, sniffio, tqdm, typing-extensions
Required-by: instructor, litellm, open-interpreter, self-operating-computer
(turbo) bryan@Bryans-MacBook-Pro-7 flow % pip show instructor
Name: instructor
Version: 1.2.6
Summary: structured outputs for llm
Home-page: https://github.com/jxnl/instructor
Author: Jason Liu
Author-email<EMAIL_ADDRESS>License: MIT
Location: /Users/bryan/miniconda3/envs/turbo/lib/python3.10/site-packages
Requires: aiohttp, docstring-parser, openai, pydantic, pydantic-core, rich, tenacity, typer
Required-by:
(turbo) bryan@Bryans-MacBook-Pro-7 flow %

Same for me:
client = instructor.from_litellm(completion)

completion_return = client.chat.completions.create_iterable(
messages=[{"role": "user", "content": prompt}],
response_model=task_decomp,
model=model,
)
Error: issubclass() arg 1 must be a class
class task_decomp(BaseModel):
index: int
description: str
duration: int
left: int

i am facing the same issue, have you figured out how to fix it?

will explore more!

This issue was fixed in #710, with the relevant changes found here:
https://github.com/jxnl/instructor/blob/081418d59a397b38a1b66fe58a64ef94f9124a6b/instructor/dsl/simple_type.py#L40-L48
I’ve verified that the example now runs without any problems. It’s safe to close this issue.

I still face the same problem and the error happens like below in version 1.3.2 (latest).

issubclass() arg 1 must be a class ... TypeError: issubclass() arg 1 must be a class

class GeminiClient:
    def __init__(self):
        genai.configure(api_key=GOOGLE_API_KEY)
        self.model = client_gemini.from_gemini(
            client=genai.GenerativeModel(model_name="models/gemini-1.5-flash-latest"),
            mode=Mode.GEMINI_JSON
        )

class ScenarioTelop(BaseModel):
    telop_id: int = Field(description="Order of the telop (starting from 1)")
    overview: str = Field(description="Overview of the telop")
    intention: str = Field(description="Intention of the telop")
    text: str = Field(description="Corrected text of the telop")
    original_text: str = Field(description="Original text of the telop")
    timestamp_start: float = Field(description="Start timestamp of the telop (s)")
    timestamp_end: float = Field(description="End timestamp of the telop (s)")

what version of python are you on?

Proposed a potential fix for this https://github.com/jxnl/instructor/pull/737 - can't seem to get the 3.11 coverage step to pass for some reason but the iterable fix is shown to work in 3.9,3.10 and 3.11

Fixed in #737

Fixed in #737


NMS.MA.ACCESS.006, NMS.MK.ACCESS.006 - Open access by default

MK access shall by default be open to all without any access validation related to status of an FLW with restrictions specified in #134  NMS.GEN.DEPL.004.

Currently access is allowed unless there is a service cap defined.  Per #134 access will be rejected if the service is not deployed for a location


Issue with _req & ktlCond on form input

Hi Norm
Just had a call with Carl and we are trying to get _req to work with ktlCond on a form input: _req=[field_3165], [ktlCond, is, Required, field_3135, view_5060]
Where field 3135,is in the same view as field I want to make required, is a multi choice field with values Received & Required.  I can't get it to work. It works fine without the ktlCond.
Craig

Yes, sorry, I broke it again 🤩Carl HolmesOn 28 Jun 2024, at 20:57, Craig Winnall @.***> wrote:
Hi Norm
Just had a call with Carl and we are trying to get _req to work with ktlCond on a form input: _req=[field_3165], [ktlCond, is, Required, field_3135, view_5060]
Where field 3135,is in the same view as field I want to make required, is a multi choice field with values Received & Required.  I can't get it to work. It works fine without the ktlCond.
Craig
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>