feat: add useMethods state hook

Description

#206

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as before)

Checklist

[x] Read the Contributing Guide
[x] Perform a code self-review
[x] Comment the code, particularly in hard-to-understand areas
[x] Add documentation
[x] Add hook's story at Storybook
[x] Cover changes with tests
[x] Ensure the test suite passes (yarn test)
[x] Provide 100% tests coverage
[x] Make sure code lints (yarn lint). Fix it with yarn lint:fix in case of failure.
[x] Make sure types are fine (yarn lint:types).

This also has eslint fixes for useMethods for #947

:tada: This PR is included in version 13.26.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


fixes #2776

also formats
changes the logic too. man, i used to make programming so much harder than it should be with all that true/false business

Using Pipeline is a good thing to learn fast, and to build into one's cmdlets / Advanced Functions.
The last one is not my strong side... but it's all ways on my todo list to do later...

Stop-Function is available in PSFramework as Stop-PSFunction. It helps turn all that red into warnings, unless -EnableException is used. PSFramework is a great stating point for new modules because it gives you the instant ability to log, set configs and handle exceptions differently. I use it in all of my other modules.
Invoke-DbatoolsFormatter rewrites the format to abide by PSSA (PowerShellScriptAnalyzer). Frikken cool. No idea how @niphlod did it but bravo there.


DEBEZIUM_JSON source cannot  correctly parse a decimal/numeric

Describe the bug
Probably a known issue.
PG:
ch_benchmark_db=# \d tpcch.dc;
                 Table "tpcch.dc"
 Column |  Type   | Collation | Nullable | Default
--------+---------+-----------+----------+---------
 c      | numeric |           | not null |
Indexes:
    "dc_pkey" PRIMARY KEY, btree (c)
Publications:
    "dbz_publication"

ch_benchmark_db=# select * from tpcch.dc;
   c
--------
      1
    2.2
 3.3333
(3 rows)

RisingWave:
dev=> create materialized source dc_mv (c numeric, primary key (c)) with (                                                                                connector = 'kafka',
topic = 'postgres.tpcch.dc',
properties.bootstrap.server = '<IP_ADDRESS>:9092',
scan.startup.mode = 'earliest'
) ROW FORMAT DEBEZIUM_JSON;
CREATE_SOURCE

RisingWave's log:

2022-12-12T04:45:20.526516Z  WARN risingwave_source::parser: failed to parse source data: internal error: failed to parse type 'numeric' from json: expect Decimal, but found {"scale": Static(I64(0)), "value": String("AQ==")}
2022-12-12T04:45:20.526721Z  WARN risingwave_source::connector_source: message parsing failed internal error: failed to parse type 'numeric' from json: expect Decimal, but found {"scale": Static(I64(0)), "value": String("AQ==")}, skipping
2022-12-12T04:45:21.228379Z  WARN risingwave_source::parser: failed to parse source data: internal error: failed to parse type 'numeric' from json: expect Decimal, but found {"scale": Static(I64(1)), "value": String("Fg==")}
2022-12-12T04:45:21.228555Z  WARN risingwave_source::connector_source: message parsing failed internal error: failed to parse type 'numeric' from json: expect Decimal, but found {"scale": Static(I64(1)), "value": String("Fg==")}, skipping
2022-12-12T04:45:21.929591Z  WARN risingwave_source::parser: failed to parse source data: internal error: failed to parse type 'numeric' from json: expect Decimal, but found {"scale": Static(I64(4)), "value": String("AII1")}
2022-12-12T04:45:21.929654Z  WARN risingwave_source::connector_source: message parsing failed internal error: failed to parse type 'numeric' from json: expect Decimal, but found {"scale": Static(I64(4)), "value": String("AII1")}, skipping

To Reproduce
No response
Expected behavior
No response
Additional context
https://github.com/risingwavelabs/risingwave/blob/main/src/source/src/parser/common.rs#L154-L156
So Decimal can indeed be parsed correctly out of an f64.

@waruto210 Can you help to take a look?

@waruto210 Can you help to take a look?

I'll take a look.

This is due to

When the decimal.handling.mode property is set to precise, the connector uses the Kafka Connect org.apache.kafka.connect.data.Decimal logical type for all DECIMAL, NUMERIC and MONEY columns.

Should we wrtie a logical to parse the org.apache.kafka.connect.data.Decimal or just tell the user not to use the precise mode.
@fuyufjh @lmatz

It seems that decimal.handling.mode property is set by us instead of our users.
So we have to decide whether to

Use precise mode and convert org.apache.kafka.connect.data.Decimal to our decimal
Use non-precise mode and convert std's Decimal to our decimal

Need some investigation to make the decision

It seems that decimal.handling.mode property is set by us instead of our users.

decimal.handling.mode is a property of Debezium connector, you mean that we deployed debezium for our users?

decimal.handling.mode is a property of Debezium connector, you mean that we deployed debezium for our users?

Thanks for the investigation!
Both cases may exist(we deploy or the user already deployed). I am afraid we may have to support both in the long run.
Not particularly urgent though.


hardware: Be more selective about which registers to scrub

This shouldn't make a huge difference since the sanitization process was
done once per function where XMM registers are used, but there's no
reason to do more work than needed.
Notes:

Technically speaking it is debatable if tk1 is all that senstive
as it is trivial to derive for each step of the processing assuming
that the number of blocks in the AAD and message are known.  This
implementation will scrub it anyway, as it is at most 4 extra PXOR
operations.

bcXOR does not need to sanitize the registers that hold the AESENC
round keys since they are reused to load the plaintext to XOR with
the keystream.

thanks!  lgtm2


Update flyway-core to 7.9.1

Updates org.flywaydb:flyway-core from 7.5.4 to 7.9.1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, semver-minor

Superseded by #152.


Render function doesn't extend

When I want to use multiple views for one model, I extend the main view which I first create, as show below.
Somehow, leaving out de 'render' function in de second view stops events in that view from running, so that I have to duplicate the render function in de new view, whereas te only difference is the template. In my app, the render function is a little more complicated than shown below, so it's a bit of a shame to have to duplicate this.
Am I doing something wrong or is this just the way it is?
ItemV = Backbone.View.extend({

	tagName: "tr",

	events: {
		"click": "choose"
	},

	template: _.template($("#item-template").html()),

	initialize: function() {
		this.model.on('change', this.render, this)
	},

	render: function() {
		this.$el.html(this.template(this.model.toJSON()));
		return this
	},

	choose: function() {
		(Lists.get(this.model.get('list'))).set({choice: this.model.id});
	}

});

InviteV = ItemV.extend({

	template: _.template($("#invite-template").html()),

	// this function is exactly the same as in the view it extends
	render: function() {
		this.$el.html(this.template(this.model.toJSON()));
		return this
	}

});

Which event isn't binding? The "click $el => choose" event, the "model:change => render" event or both?

The "model:change => render" event doesn't execute.

It doesn't look like this choose method updates any attributes of the model that the current view is bound to?
choose: function() {
    (Lists.get(this.model.get('list'))).set({choice: this.model.id});
}

just as a basic exercise can you change that to
choose: function() {
    var active = this.model.get('active');
    this.model.set({active: -active});
}

looking closer at your code, you might perhaps be listening to the wrong event on the wrong object. Your choose event updates a choice in a collection that has nothing to do with the current views' model (assumption). As a proper backbone pattern I would recommend adding a method on your collection like this if you want to get a list of currently highlighted table rows.:
getChoices: function getChoicesFn()
{
    return this.find(function (model) {
        return model.get('active') === true;
    });
}

don't forget you can listen and bind a method to a collection change event.
collection.on('change:active', this.onChangeActive, this);

that might get you a bit further, but without really knowing how you've structured your views, this is as much a calculated guess as any.

Updating the 'choice' attribute of the List model also updates the 'free' attribute of the old choice's item model and the new choice's item model (an item can be chosen by a limited amount of users, hence the 'free' attribute). This causes the item's model:change event to execute. (I've added a part of the List model below.)
The problem I'm having is, that although render functions of both the Item and Invite models are exactly the same, the Invite's view doesn't re-render after item model:change is executed. It will only work if I duplicate the render method.
window.ListM = Backbone.Model.extend({

	initialize: function() {
		this.on('change:choice', this.choiceChange, this);
	},

	choiceChange: function() {
		var oldChoice;
		if (oldChoice = this.previous('choice'))
			(Items.get(oldChoice)).set({free: (Items.get(oldChoice)).get('free') + 1});

		var newChoice = this.get('choice');

		(Items.get(newChoice)).set({free: (Items.get(newChoice)).get('free') - 1});

		$.get('home/choose/' + newChoice); // handles the change of choice on the server
	}

});

Ah, now I get what you mean. I think the following snippet should give you what you need.

InviteV = ItemV.extend({
    template: _.template($("#invite-template").html()),
    initialize: function initializeFn()
    {
        this.constructor.__super__.initialize.apply(this, arguments);
    },
    render: function ()
    {
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    }
});


in workflowtool sort cards in columns alphabetical

meeting with the team showed that there will be up to 300 bios in every issue.
to allow for finding the bio that you need alphabetical sorting could be an option. however, this would screw up the possibility to re-order cards. we could also think of allowing every user to sort the cards in his/her own way...

sort alphabetical by lastName (check if lastName ist required in the model)

we dont persist manual re-ordering to db


Write clear TF Support Statement

Issue
TF Support members often get asked questions outside of TF. While they can take the time to help, it is not their obligation. TF Support should have clear disclaimer on the kind of help it can offer to users.
This issue was discussed with the communication and content circle, with @scottyeager and @amandacaster
Proposition
We should generate a clear statement, that we can display on the manual and elsewhere, where it is stated clearly what the TF Support can and cannot do in terms of support and help, etc.
e.g.

The ThreeFold support team can help you with anything to do with ThreeFold. If you have questions about workloads or projects not directly related to TF, the support team can help you, but this is not part of their official functions. Please bear this in mind when contacting the TF support team.

@TullysInc
Do you want to write something around this? I think it fits with your knowledge and experience with the support team.

@TullysInc I assigned you for a draft and I can help to finalize. Let me know.

@TullysInc I assigned you for a draft and I can help to finalize. Let me know.

@Mik-TF  - While I find that the statement itself is pretty straightforward (as I mentioned earlier), I presume at some point we're failing to establish where we draw the line with ThreeFold Support's jurisdiction. I state this in context to a case , where in it's not totally clear if ThreeFold is indeed responsible for these issues, given that the WordPress deployment is on the TF Grid.

@scottyeager @TullysInc
Would be nice to have something on this soon. Or if it's not ready we can close the issue and work on this later.
Let me know. we could discuss about this during the next tech meeting too.

OK! I think I have something:
The members of the ThreeFold support team are happy to help you explore the ThreeFold Grid.
Questions you might have may fall outside of the support team's scope, e.g. if your deployments involve third parties.
Please take this into consideration when interacting with the support team.

As discussed with the support team, we will go with the statement above, but for now we will publish it on the forum among a broader TF support post (by Sherwin).
So for now we have completed the work needed. Closing this issue. We may open a new issue later when we want to implement the broader tf support statement on the manual.


[Question] why just the first element of parameters in client.call have effect?

Dear @hharnisc  and @ppettit
When I execute the following code, just 'a' appears in terminal, I can't understand why the other parameters do not appear.
    client.call('callPy', ['a', 'b',  'c'])

    Meteor.methods({
        callPy: function(x){
            console.log(x)
            return 'abc'
            }
    })

After I tried several other codes. I found the following code works, 'b' appears.
client.call('callPy', [['a', 'b',  'c']])

    Meteor.methods({
        callPy: function(x){
            console.log(x[2])
            return 'abc'
            }
    })

Though 'b' appears nearly every time, the exception ocasionlly appears too.
Exception in thread WebSocketClient (most likely raised during interpreter shutdown)

Is there a reliable way to call Meteor.methods with parameters? Thank you very much!

hi @wuxianliang,
i think you have an error in your JS code. If you look at the Meteor docs for Meteor.methods you'll see that the arguments are passed individually to your method, not as an array. DDP (and python-meteor) however does use an array.
so the following meteor code:
if (Meteor.isServer) {
  Meteor.methods({
    echo: function(x, y){
      console.log(x);
      console.log(y);
      return [x, y];
    }
  })
}

and the following python code:
#!/usr/bin/env python2

from MeteorClient import MeteorClient

waiting = True
client = MeteorClient('ws://<IP_ADDRESS>:3000/websocket', debug=True)
client.connect()

def print_result(err, res):
    global waiting
    print err
    print res
    waiting = False

client.call('echo', ['hello', 'world'], print_result)

while waiting:
    pass

produces the following output on the server:
I20150208-18:15:01.493(0)? 'hello'
I20150208-18:15:01.493(0)? 'world'

and the following output from the python script:
$ ./test.py
<<<{"msg": "connect", "support": ["pre1"], "version": "pre1"}
>>>{"server_id":"0"}
>>>{"msg":"connected","session":"rdCYW6mfuGMhapxgN"}
<<<{"msg": "method", "params": ["hello", "world"], "id": "1", "method": "echo"}
>>>{"msg":"updated","methods":["1"]}
>>>{"msg":"result","id":"1","result":["hello","world"]}
None
[u'hello', u'world']

The reason you got 'b' with your second bit of code is because you were sending a single argument to the method which was an array. The reason you were getting the exception is probably because the script was ending in while the reply was still being processed (hence the hack in my example to wait for the reply callback before exiting).
I hope that helps!
thanks,
paul.

Very thorough answer from @ppettit - it's a good example of not only calling a meteor method, but also how to deal with returning data!
To isolate your question a little further
Let's assume you've got a meteor-python client who is connected to a server
call meteor method from python
client.call('method2Args', ['arg1', 'arg2'])

meteor method
if (Meteor.isServer) {
  Meteor.methods({
    method2Args: function(arg1, arg2){
      console.log(arg1); // logs `arg1` to the server side javascript console
      console.log(arg2); // logs `arg2` to the server side javascript console
      return [arg1, arg2];
    }
  })
}

To summarize, the array of arguments from the python-meteor method call are applied to the meteor method arguments.
I'm going to close this, but please reopen this if you'd like more clarification.

I am sorry for delaying response. Thank you very much!
I am working on integration Meteor with OrientDB. Hope I can work out a demo in March.


WIP: Added jobs directory to store input copy and outputs

Closing this in favor of https://github.com/jupyter-server/jupyter-scheduler/pull/189


Feature Request: Support for Obsidian Mobile and Publish

I would love to be able to use Breadcrumbs as the complete navigation for my Obsidian vault, even on Mobile and Publish. Even if it was only the Trail feature at the top of the pages that would be enough. I love this plugin, and I want to use it everywhere! Thanks so much.

Just noting what was discussed on the Discord:

No plugins on Publish for now
Possibly working on mobile

Gonna close this. Awesome to hear it's working on mobile, and I will try get it working on Publish when that is possible


[Bug]: ML not affecting groupBy queries.

Which product are you using?
Headless
product version
2.8.10
bug description
Hello!
We've recently observed the following issue: we have a search results page with tabs - divided into some categories based on a template of a page - for example Products Jobs Events Stories this is implemented using Headless Tab. Now the tricky part is - that one of the requirements is to have the count of the results for each category in the tab title. This is easy with facets, but not so easy with tabs. We added a custom group by to the query, grouping results by the template - so same thing by which we split results.
All was working fine until I guess more and more searches were triggered by visitors. ML model was learning, and now we're observing differences between what we get from our groupBy and what are the real results when you select a tab.
For example - groupBy returns only 1 product, but clicking on the Product tab gives you 5 results - 4 from ML.
Now the question is - anything we could do here? like how to get the count of results per tab in this case, could we make a group by somehow also count ML results?
Or have Headless tabs return count similar to Facets?
Or ...?
Any help is appriciated🙂 Thanks!
Steps to reproduce
No steps - see description on what's the issue.
It could be that it's not an issue, rather Feature request
Relevant log output
No response

This is indeed a feature request, I advise you to reach out to your CSM or representative @coveo.

Ok, thanks @louis-bompart will do!


i cant run  my website.it says no local host

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:

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


Heads Up on Changes to INP Measurement When Interfered with JS Modal Dialogs

With landing of EventTimingFallbackToModalDialogStart, event timing now will treat JS modal dialog showing time as an alternative end point of INP or event duration measurement.
It has following impact on WebVitals.js v4:

Events will have a short duration (when interfered with JS modal dialogs), which is good
The Event Timing processing is still large (this is a weirdness in event timing itself)

So now we can have a situation like:
INP: 100ms, input delay: 20ms, processing: 10000ms, presentationDelay: 0ms
This doesn't break web-vitals.js which is good, and it's also technically the truth:)
However, that huge event timing processing is also used to get a LoAF attribution, and it can be something that users will find surprising if it comes from field data, and we might want to signal it somehow.
(Loaf ::Script will have a pauseDuration for dialogs, which could be one strategy to mitigate this)

Steps to reproduce:

Open a page (e.g. the INP Demo page)
Using JS console:

Add an event handler that fires an alert, with less priority than the registered events on the page already:

document.documentElement.addEventListener('click', () => alert("hi"));

Add web-vitals.js v4 + attribution logging:

  const { onLCP, onINP, onCLS } = await import('https://unpkg.com/web-vitals/attribution?module');
  onINP((metric) => {
    console.log('web-vitals.js', metric.value, metric);
  }, { reportAllChanges: true });

Then interact with the page.

This results in the following:

First, you see a small jank which comes from the INP demo page itself (setInterval, pointerdown/up blocking events etc)
Then you see an alert popup, after that delay

The reported INP will show something like (specific numbers will vary):
{
    "name": "INP",
    "value": 376,
    "rating": "needs-improvement",
    "delta": 104,
    "entries": [
        {
            "name": "pointerdown",
            "entryType": "event",
            "startTime": 13763.100000023842,
            "duration": 376,
            "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
            "interactionId": 7303,
            "processingStart": 13820,
            "processingEnd": 13935.100000023842,
            "cancelable": true
        }
    ],
    "id": "v4-1717772209807-2007043867067",
    "navigationType": "back-forward",
    "attribution": {
        "interactionTarget": "#textarea",
        "interactionTargetElement": {},
        "interactionType": "pointer",
        "interactionTime": 13763.100000023842,
        "nextPaintTime": 16142.899999976158,
        "processedEventEntries": [
            {
                "name": "pointerdown",
                "entryType": "event",
                "startTime": 13763.100000023842,
                "duration": 376,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "interactionId": 7303,
                "processingStart": 13820,
                "processingEnd": 13935.100000023842,
                "cancelable": true
            },
            {
                "name": "mousedown",
                "entryType": "event",
                "startTime": 13763.100000023842,
                "duration": 376,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "interactionId": 0,
                "processingStart": 13935.100000023842,
                "processingEnd": 13935.100000023842,
                "cancelable": true
            },
            {
                "name": "pointerup",
                "entryType": "event",
                "startTime": 13769.199999928474,
                "duration": 368,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "interactionId": 7303,
                "processingStart": 13936.299999952316,
                "processingEnd": 14136.299999952316,
                "cancelable": true
            },
            {
                "name": "mouseup",
                "entryType": "event",
                "startTime": 13769.199999928474,
                "duration": 368,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "interactionId": 0,
                "processingStart": 14136.299999952316,
                "processingEnd": 14136.299999952316,
                "cancelable": true
            },
            {
                "name": "click",
                "entryType": "event",
                "startTime": 13769.199999928474,
                "duration": 368,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "interactionId": 7303,
                "processingStart": 14136.299999952316,
                "processingEnd": 16142,
                "cancelable": true
            }
        ],
        "longAnimationFrameEntries": [
            {
                "name": "long-animation-frame",
                "entryType": "long-animation-frame",
                "startTime": 13745.899999976158,
                "duration": 2397,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "renderStart": 16142.100000023842,
                "styleAndLayoutStart": 16142.299999952316,
                "firstUIEventTimestamp": 13763.100000023842,
                "blockingDuration": 2289,
                "scripts": [
                    {
                        "name": "script",
                        "entryType": "script",
                        "startTime": 13754.100000023842,
                        "duration": 65,
                        "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                        "invoker": "TimerHandler:setTimeout",
                        "invokerType": "user-callback",
                        "windowAttribution": "self",
                        "executionStart": 13754.100000023842,
                        "forcedStyleAndLayoutDuration": 0,
                        "pauseDuration": 0,
                        "sourceURL": "https://inp-demo.glitch.me/main.js",
                        "sourceFunctionName": "periodicBlock",
                        "sourceCharPosition": 1410
                    },
                    {
                        "name": "script",
                        "entryType": "script",
                        "startTime": 13820,
                        "duration": 114,
                        "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                        "invoker": "DOMWindow.onpointerdown",
                        "invokerType": "event-listener",
                        "windowAttribution": "self",
                        "executionStart": 13820,
                        "forcedStyleAndLayoutDuration": 0,
                        "pauseDuration": 0,
                        "sourceURL": "https://inp-demo.glitch.me/main.js",
                        "sourceFunctionName": "",
                        "sourceCharPosition": 4059
                    },
                    {
                        "name": "script",
                        "entryType": "script",
                        "startTime": 13936.299999952316,
                        "duration": 200,
                        "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                        "invoker": "DOMWindow.onpointerup",
                        "invokerType": "event-listener",
                        "windowAttribution": "self",
                        "executionStart": 13936.299999952316,
                        "forcedStyleAndLayoutDuration": 0,
                        "pauseDuration": 0,
                        "sourceURL": "https://inp-demo.glitch.me/main.js",
                        "sourceFunctionName": "",
                        "sourceCharPosition": 4059
                    },
                    {
                        "name": "script",
                        "entryType": "script",
                        "startTime": 14136.699999928474,
                        "duration": 2005,
                        "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                        "invoker": "HTML.onclick",
                        "invokerType": "event-listener",
                        "windowAttribution": "self",
                        "executionStart": 14136.699999928474,
                        "forcedStyleAndLayoutDuration": 0,
                        "pauseDuration": 0,
                        "sourceURL": "",
                        "sourceFunctionName": "",
                        "sourceCharPosition": -1
                    }
                ]
            }
        ],
        "inputDelay": 56.89999997615814,
        "processingDuration": 2322,
        "presentationDelay": 0.8999999761581421,
        "loadState": "complete"
    }
}

The value of 376 here represent the time it took to show the dialog-- which in this case did have observable UX delays.  It does not include the time the dialog was opened.
However, the attribution data represents the entirely of the animation frame, including other events and the total time the js dialog was opened.
In particular, "processingDuration": 2322 is somewhat inconsistent with overall value of the metric, at first glance.  (the last LoAF Script entry should have a "pauseDuration": value which is not 0, but seems not working on Canary for me...

In my opinion the attribution is FINE but there probably should be some obvious clue about WHY the numbers are the way they are.  Maybe if the LoAF "pauseDuration" worked and the sum of all pauseDuration was split out  from "processingDuration" (subtracted from and reported distinctly) this would be good enough?

To make testing this a bit easier, I've forked the INP demo to include a few buttons for triggering different dialogs and upgraded it to the latest attribution build: https://inp-demo-dialog.glitch.me/

Filed https://github.com/w3c/long-animation-frames/issues/17 to track the 0ms pauseDuration bug

@mmocny / @zuoaoyuan this looks weird:
            {
                "name": "click",
                "entryType": "event",
                "startTime": 13769.199999928474,
                "duration": 368,
                "navigationId": "204030c4-b7ac-4c2c-a31d-5d15ef400627",
                "interactionId": 7303,
                "processingStart": 14136.299999952316,
                "processingEnd": 16142,
                "cancelable": true
            }

The processingEnd is > duration + startTime.
I guess that's technically correct since we're capping the duration but why not also cap processingEnd? Is the thought that people might still want to measure the full duration?
I guess web-vitals could similarly cap the processingDuration but it seems to me it's accurately reporting that based on the event timing details.

why not also cap processingEnd?

Because the event is not done processing yet, and we thought that it would be best (i.e. for LoAF attribution with scripts) to leave the value accurate and "honest".  Also, duration is capped because for INP we thought it made more sense-- but developers using Event Timing for other reasons might have different preferences.
I think we should expose MORE data to make this less confusing, such as making it obvious that the duration is based on an alternative fallback time, and to also still expose the presentation time alongside.  We've started to do this in tracing but need to make a spec proposal to change public entry interface.

One more note: when you have multiple events in one frame, the "fallback time" will be in the middle of exactly one of those events.  For the other events, the fallback time can be before processingStart or after processingEnd.
The only reliable way to know if we're using a fallback time (at least today) I think is to compare with LoAF data and see if the end time of the event disagrees with the end time of the animation frame.

Hmmm... so I guess from an INP point of view the duration has finished processing. So we could cap processingDuration (there precedence for this in #527 for example).
Would still look weird for LoAF-based bucketing, but guess we can deal with that, when we decide how that looks.

the duration has finished processing

I would say:

The interaction has finished (there was visual feedback)
The event has not finished processing

I think capping processingDuration for the interaction as used for INP breakdowns for example, I think makes sense to me.

That's why I said "from an INP point of view" 😁
OK will raise a PR similar to #527


Groupby memory accounting

As of #800, we have a spillable groupby that can spills to disk for inputs with high cardinality in the grouping key (assuming decomposable reducers).
The initial implementation of spillable groupby repurposes the existing -limit parameter: once the groupby table has limit entries, it is spilled to disk. This is a coarse way of capping the table since table entries can consume differing amounts of memory depending on the number of groupby keys and the key values for each entry, as well as the number and type of reducers.
We could do a better job at measuring this, and this issue tracks that effort.
(Note that even with exact memory accounting, there are further aspects to consider such as dynamic memory accounting of multiple procs  and multiple flowgraphs. This issue is just a first lower-layer step).

Before jumping into this, I think it would be worth doing a survey of how other (Go-based) memory intensive systems handle memory pressure.

Now that we have aggregators that can build arrays and sets on a per-record basis, I think we should address this issue.  My suggestion is that the aggregation consumer could return its delta change in memory use and the groupby can adjust it's total size using the updates from each reducer.


maint(build): build wheels for OSX and Linux in CI

This commit adds the capability to build wheels for OSX and Linux for Python 3.7 and 3.8 in Github Actions.
The build wheels will be attached as Github Actions artifacts to this PR.

It's possible that Github Actions needs to be enabled on this repo to see the results...
Otherwise you can see it here:
https://github.com/oscarbenjamin/python-flint/actions/runs/727631490

It's already set to "Allow all actions".

Maybe the actions jobs won't show up on this repo until an actions workflow has actually been merged into it.

I'll try merging it to see if Actions runs.

Let's see.

Looks you got there first!


Update slack_nagios.pl to support links

Update slack_nagios.pl to support links
provide direct nagios links to the host having issues
ensure slack channel is right

Add slack icon for :nagios:
updated slack_nagios.pl to support links


Incorrect balances on bch-insight.bitpay.com

A lot of addresses are showing incorrect balances.
Example:
qqnlkglzevnvrgefype52hdc7mapnlqwmuptutgf8c (owned by Kraken) has a balance of 37,713.10941936 BCH on blockchair.com and bch.btc.com, but 14,942.12998416 BCH on bch-insight.bitpay.com.

hi, all , can you tell me how to deploy  bch-insight  ?  I need it .
can you gave me a documents?

hello @linzhoushi2017
Please create a new thread for your inquiry.
Thanks


Color Picker Fixes

Summary
Color picker would not change color and randomly move to the left.
Test Plan
Issues
#196
Color picker was not setting the state properly due componentDidUpdate setting the color state back to the props.
Future Followup (Optional)
I am not sure if this entirely fixes the problem.

Dispatcher was a clever way to fix this but I think I found a simpler way to do this in #198


fix: build detectron2 with GPU support

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

This fixes an issue where detectron2 was not build with CUDA support. By default the information is not properly relayed via pytorch. This PR fixes this using the same approach as taken by torchvision: https://github.com/conda-forge/torchvision-feedstock/blob/da433bf865b44afa7890aeafa5a34933af129942/recipe/build-torch.sh

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@mxr-conda @ndmaxar @oblute @rluria14 I would love to have you take a peek at this!


Empty file is created with filesaver.js while saving

Hi all,
I am trying to create excel file and save the data using the filesaver.js, tried with various options but neither of it works. Ironically I can see in the console that data is being successfully created , along with that I have consoled the output of arrayBuffer which also gives the length around 14k but not sure why the data is not being saved using filesaver.js.
Here is the code snippet :-
const exportExcelReport = (reportData) => {
  /* bookType can be any supported output type */
  const wopts = { bookType:'xlsx', bookSST:false, type:'binary' }; //tried using base64

  const workbook = XLSX.utils.book_new(); // declaring workbook...
  const ws = constructWorkSheet(reportData);
  const wsName = 'report'
  workbook.SheetNames.push(wsName)
  workbook.Sheets[wsName] = ws;

  console.log(workbook,"bc.....") // This clearly shows the data for workbook there
  let wbout = XLSX.write(workbook,wopts);
   console.log(wbout,"wbout....")
  /* the saveAs call downloads a file on the local machine */
  // const blob = base64ToBlob(wbout); // tried with base64 as well

  saveAs(new Blob([s2ab(wbout)],{type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}), "meteor.xlsx"); // tried with octet-stream as well
}

My work enviroment is
Chrome 58
ubuntu 16.04
Any help is greatly appreciated.

If you can see the output data in console.log(wbout,"wbout...."), that is probably a bug with FileSaver.js and you should raise an issue there: https://github.com/eligrey/FileSaver.js/issues .
One possible issue: the demos use type application/octet-stream -- does that work?


When performing an upgrade using install.yaml, a pipeline that ran in the past is now running.

Expected Behavior
The upgrade should be completed without running past pipelines.
Actual Behavior
Past pipeline is up and running.
Major problems occurred in the past as pipelines went live.
Steps to Reproduce the Problem
1.Upgraded by applying install.yaml
2.Past pipeline was up and running after upgrade.
3.pipeline had a failure status when checked with tkn pr list, but the pipeline was actually running and a major problem occurred
Additional Info

Kubernetes version:

Openshift Container Platform v4.12.56_1593
Output of kubectl version:
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.11", GitCommit:"3cd242c51317aed8858119529ccab22079f523b1", GitTreeState:"clean", BuildDate:"2023-11-15T17:00:54Z", GoVersion:"go1.20.11", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.16+054f0ba", GitCommit:"f5b7c3e8faedd51935d77828a5fc72c7540236f4", GitTreeState:"clean", BuildDate:"2024-04-15T13:49:12Z", GoVersion:"go1.19.13 X:strictfipsruntime", Compiler:"gc", Platform:"linux/amd64"}

Tekton Pipeline version:
Output of tkn version or kubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'

Client version: 0.26.1
Pipeline version: v0.56.3
Triggers version: v0.26.1
Dashboard version: v0.45.0

I want to know why past pipelines have moved with the upgrade.
install.yaml

We performed a reproduction test using the following procedure, and reproduced the problem with a specific version.

Install "From version" of tekton-pipeline.
Create a task and pipeline, execute pipelinerun, and confirm normal termination.
Delete the pod that is the actual state of the executed task (leave pipelinerun as it is)
Install "To version" of tekton-pipeline.
　　→The pipelinerun that was Succeeded in step 2 above is re-executed.

The version transition where the event occurred
From version    To Version
v0.41.2        -> v0.56.3
v0.41.2        -> v0.50.0
v0.44.4        -> v0.50.0
Version transition where the event did not occur
From Version     To Version
v0.41.2        -> v0.47.8 -> v0.50.0
v0.41.2        -> v0.44.4
v0.44.4        -> v0.47.8
From the reproducibility test, it seems that the problem is reproduced when the v0.44.4 -> v0.50.0 part is done in a single version update.
We are wondering if there might be a latent problem in this VersionUp that could lead to the reproduction of the event.
Could you please check?


Copying image from browser does not work

Describe the bug
Copying image from browser does not work
To Reproduce
Steps to reproduce the behavior:

Go to client chrome browser
View Image in new tab (make sure that the extension is .jpg)
Copy Image via ctrl+c
Paste image in remote and you will just get box

Expected behavior
Image should be pasted in the remote
Screenshots
If applicable, add screenshots to help explain your problem.
Application details

FreeRDP version 2.4.0
Command line used: xfreerdp /network:auto +auto-reconnect +clipboard +homedrive -wallpaper
Output of xfreerdp /buildconfig

This is FreeRDP version 2.4.0 (2.4.0)
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=OFF HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_GETLOGIN_R=1 HAVE_INTTYPES_H=1 HAVE_JOURNALD_H=TRUE HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=ON WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON 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_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=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_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=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DIRECTFB=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=OFF WITH_GFX_H264=OFF WITH_GPROF=OFF WITH_GSM=ON WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=ON WITH_ICU=ON WITH_IPP=OFF WITH_JPEG=ON WITH_LAME=ON WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=ON WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PULSE=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=OFF WITH_SERVER_INTERFACE=OFF WITH_SHADOW_MAC=OFF WITH_SHADOW_X11=OFF WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=ON WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XTEST=OFF WITH_XV=ON WITH_ZLIB=ON
Build type:          Release
CFLAGS:              -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -fno-omit-frame-pointer -DWINPR_DLL
Compiler:            GNU, 8.4.1
Target architecture: x64

OS version connecting to: Win. 10

Environment (please complete the following information):

OS: CentOS Linux release 8.4.2105 Linux 4.18.0-305.12.1.el8_4.x86_64
Version/Distribution: CentOS Linux release 8.4.2105
Architecture: 64bit

Additional context
Works if the image is viewed in browser as base64 then click copy the displayed image.
Use this extension to convert image to base64 https://chrome.google.com/webstore/detail/images-to-base64/ieedflcjddanicndmocomefhpggfbbmm

What remote application do you use?
This sounds like a usage limitation (e.g. the clipboard announces different formats, e.g. html, bitmap and maybe a few others and the wrong one is chosen for insert)

closing as reporter opened a duplicate


Saving Images After scan result

I am unable to figure out the activity in which changes are to be made to enable the saving of scanned images.

You can get the scanned image from onActivityResult code


bug: back button on group page is not working after visiting add assignments page

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Back button on some group page is not working after one or more times clicking add assignments buttons on the same page
https://github.com/CircuitVerse/CircuitVerse/assets/127022024/262725eb-a361-4bff-98c9-c868e359ecb0
Steps To Reproduce

Go to main site
Go to my groups section
go to view section
4.click on back button (it is not working after  one or more times clicking other buttons on the same page)

Expected Behavior
It should redirect back to all group listing section
Screenshots
No response
Device Information [optional]
- OS:
- Browser:
- version:

Additional context
No response
Are you working on this issue?
Yes

@tanmoysrt please assign this issue to me

@VaibhavUpreti @tachyons @tanmoysrt please assign this me this issue

Hi @priyanshagra you can work on the issue.

@priyanshagra  Are you still working on this issue  ?

I think the issue description is not accurate, the back button is working but it is redirecting to wrong page and the expected behaviour is that it redirects to all groups page. @priyanshagra


Edgemesh support cni

What would you like to be added/modified:
Why is this needed:

@lclxg Hello, lclxg, can you describe EdgeMesh support CNI in a little more detail, not just pr, idea is also welcome.


under Ubuntu cannot open files with double click

build timestamp: Tue Oct 13 2015 12:00:44 GMT+0000```
when i double click or say open with brackets for a file it wont open just brackets opens with latest opened file in it. I must open file within brackets

duplicate of #11921


TimeDistributed._get_shape_tuple should work well in compute_mask

Summary
Run the following code with theano backend:
from keras.layers import Input, Embedding, Dense
from keras.layers.wrappers import TimeDistributed
from keras.layers.merge import concatenate
from keras.models import Model

input1 = Input(shape=(20,))
input2 = Input(shape=(20,))
x1 = Embedding(10000, 10, input_length=20, mask_zero=True)(input1)
x2 = Embedding(10000, 10, input_length=20, mask_zero=True)(input2)
x = concatenate([x1, x2])
x = TimeDistributed(Dense(8, activation='softmax'))(x)
model = Model(inputs=[input1, input2], outputs=[x])

TimeDistributed._get_shape_tuple throws exceptions due to theano K.int_shape return None.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "keras/engine/base_layer.py", line 458, in __call__
    output_mask = self.compute_mask(inputs, previous_mask)
  File "keras/layers/wrappers.py", line 300, in compute_mask
    inner_mask_shape = self._get_shape_tuple((-1,), mask, 2)
  File "keras/layers/wrappers.py", line 184, in _get_shape_tuple
    int_shape = K.int_shape(tensor)[start_idx:]
TypeError: 'NoneType' object has no attribute '__getitem__'

This is because mask values propagate along layers, many layers(theano backend) don't add _keras_shape to the output mask values, then K.int_shape(mask) returns None and caused exception. For tensorflow backend, if there is not _keras_shape for mask values, it calls tensor.get_shape to get static shape in most case, but it still not guaranteed, it's also possible to return None.
The fix is: if K.int_shape return None, we fall back to K.shape.
Related Issues
#10726
PR Overview

[x] This PR requires new unit tests [y/n] (make sure tests are included)
[ ] This PR requires to update the documentation [y/n] (make sure the docs are up-to-date)
[x] This PR is backwards compatible [y/n]
[ ] This PR changes the current API [y/n] (all API changes need to be approved by fchollet)

Wouldn't a preferable fix be not to return None with Theano in this situation? We've been trying to make the Theano backend functions capable of static shape inference, although that is still far from complete.

Agree this is not a ideal fix. I thought it's not easy to complement static shape inference for all Theano backend functions in short time, so fall back to the imperfect solution. That's ok, I will close this one and send another one to add static shape inference for relevant Theano functions.

Move the new fix to #10873 .


add config data to environments instead of file in firebase-feature branch

Firebase app in current firebase-feature branch uses config.js file.
It is important to provide config via environment variables reference to this guide and this quote from it:

For open source projects, we generally do not recommend including the app's Firebase config file or object in source control because, in most cases, your users should create their own Firebase projects and point their apps to their own Firebase resources (via their own Firebase config file or object).

Resolved by #7


Inference time？

Hi, Bohan,
Nice work! However, when I run the demo.py, the inference time is too long (about 20 min). Is anything I missed, or did I run incorrectly? Do you have any idea to solve it?
Thanks!
Looking forward to your reply!

I'm facing the same issue while FOMM takes less than a minute to infer.
Thanks!


Event Details Page - A typo was there in the last pr

Related Issue

Information about the related issue

Closes: #166
Describe the changes you've made
The changes were not reflected in the main site as there was a small error with the Link component.
Type of change
What sort of change have you made:

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

How Has This Been Tested?

Checklist

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[ ] I have commented on my code, particularly wherever it was hard to understand.
[ ] I have made corresponding changes to the documentation.
[ ] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] Any dependent changes have been merged and published in downstream modules.

Screenshots (if applicable)

Original
Updated

original screenshot
updated screenshot

Code of Conduct

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

@Varghab there was a production error in your last pr. can you please check it out?

@Deepu178 Would you tell me the exact error?

@Varghab you can run  your code in production locally and you will get the error.
Build optimization failed: found page without a React Component as default export in
pages/events/eventsData

@Deepu178 My code is working fine locally. I guess the issue is arising from events_data file.

did you try running @Varghab
pnpm run build and if yes is it working fine?

@Deepu178 I guess I figured out the issue, this is probably happening because I have used eventsData.tsx instead of _eventsData.tsx

@Deepu178 I have fixed the issue, merging this PR should work.

No, it will not fix the error @Varghab like if you want I can fix the issue

@Deepu178 Do you know why is that happening?


[otbn] Implement P384 in current ISA

Profile implementation of P256 and P384 sign/very operations, and evaluate performance degradation due to lack of extensible modular instructions for P384.
(Split out from https://github.com/lowRISC/opentitan/issues/2856)
Sub-tasks

[ ] Implement/evaluate modular add/sub for p384 #3191
[x] Implement/evaluate modular multiplication for p384 #3192.
[ ] implement p384 specific things (like domain parameter setup)
[ ] implement point doubling
[ ] implement point addition
[ ] implement scalar multiplication
[ ] implement coordinate transformation (projective <-> affine)
[ ] implement curve point verification
[ ] implement ECDSA sign
[ ] implement ECDSA verify
[ ] implement Stein's algorithm
[ ] document loading of curve domain parameters and constants

Evaluation results for p384 multiplication
(copied from the #3192)
Currently it is 152 cycles for 384 bit vs. 37 cycles for 256 bit.
This is with using the fully unrolled multiplication.
There is room for optimization here:

For a generic implementation (no specific curve) we would implement Karatsuba for the multiplication kernel
For the p384 specific implementation we would either move to Solinas or use an optimized Barret implementation (using the special form of the pre-computed barrett parameter for p384). This could use Karatsuba on top. Using Solinas should be faster but I am not sure yet how efficiently it can be implemented on OTBN.

Edited original issue to track implementation of all the p384 building blocks. Like we did with p256


Add node definition for Boiler that inherits from DI

Purpose
add first revision of Boiler2 nodeset2
add DI nodeset2
add simple plugin for boiler2 and DI. Nodes are loaded  by plcNodeManager and accessed by an Opc client

...

Does this introduce a breaking change?

[ ] Yes
[x ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code

What to Check
Verify that the following are valid

...

Other Information

Copyright (c) 2005-2021 The OPC Foundation, Inc. All rights reserved.

Pls move to folder CompanionSpecs\DI

Refers to: src/DI/Opc.Ua.DI.Classes.cs:2 in ffaf1d7. [](commit_id = ffaf1d7dd8f4cd0ee04c0438c135f242a0d34637, deletion_comment = False)

Move to folder CompanionSpecs

Refers to: src/Opc.Ua.Di.NodeSet2.xml:1 in ffaf1d7. [](commit_id = ffaf1d7dd8f4cd0ee04c0438c135f242a0d34637, deletion_comment = False)

Move to folder Boilers. Rename to BoilerModel2.NodeSet2.xml

Refers to: src/Boiler.NodeSet2.xml:2 in ffaf1d7. [](commit_id = ffaf1d7dd8f4cd0ee04c0438c135f242a0d34637, deletion_comment = False)


[Build] chip-tool build fails on Raspberry Pi 4 (Ubuntu OS)

Build issue(s)
Following this guide: https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/BUILDING.md for the Raspberry Pi 4, running Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1034-raspi aarch64).
After source scripts/activate.sh is completed succesfully I want to build the CHIP-tool using the following command:
./scripts/examples/gn_build_example.sh examples/chip-tool ~/CHIP_TOOL_BUILD as explained in the CHIP-tool guide.
After quite some time I get the following error:
[P5737 12:02:15.292 storage.go:245 I] [fetch 3/4] Fetching:  63.6/405.8 MB ( 16%, 5.89 MB/s)
[P5737 12:02:15.793 storage.go:245 I] [fetch 3/4] Fetching:  66.7/405.8 MB ( 16%, 5.92 MB/s)
[P5737 12:02:16.294 storage.go:245 I] [fetch 3/4] Fetching:  68.9/405.8 MB ( 17%, 5.68 MB/s)
[P5737 [P5737 12:07:27.508 client.go:1913 E] [unzip 3/4] Failed to install fuchsia/third_party/rust/linux-arm64 in "pigweed/rust": failed to download after multiple attempts
Errors:
  failed to install fuchsia/third_party/clang/linux-arm64 in "pigweed": failed to download after multiple attempts
  failed to install fuchsia/third_party/sysroot/linux in "pigweed/clang_sysroot": write /home/userpi/connectedhomeip/.environment/cipd/packages/.cipd/pkgs/8/YuDp0GW7uRHE/usr/lib/python3.8/config-3.8-arm-linux-gnueabihf/libpython3.8-pic.a: no space left on device (and 4471 other errors)
  failed to install fuchsia/third_party/zap/linux-arm64 in "zap": write /home/userpi/connectedhomeip/.environment/cipd/packages/.cipd/pkgs/7/prABZHrcLuSr/resources/app.asar: no space left on device (and 114 other errors)
  failed to install fuchsia/third_party/rust/linux-arm64 in "pigweed/rust": failed to download after multiple attempts
/home/userpi/connectedhomeip/.environment/cipd/cipd ensure -ensure-file /home/userpi/connectedhomeip/.environment/cipd/packages.ensure -root /home/userpi/connectedhomeip/.environment/cipd/packages -log-level debug -json-output /home/userpi/connectedhomeip/.environment/cipd/packages.json -cache-dir /home/userpi/.cipd-cache-dir -max-threads 0
None
Traceback (most recent call last):
  File "/home/userpi/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 932, in <module>
    sys.exit(main())
  File "/home/userpi/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 924, in main
    return EnvSetup(**vars(parse())).setup()
  File "/home/userpi/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 539, in setup
    result = step(spin)
  File "/home/userpi/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 652, in cipd
    if not cipd_update.update(
  File "/home/userpi/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/cipd_setup/update.py", line 382, in update
    subprocess.check_call(cmd, stdout=outs, stderr=subprocess.STDOUT)
  File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/userpi/connectedhomeip/.environment/cipd/cipd', 'ensure', '-ensure-file', '/home/userpi/connectedhomeip/.environment/cipd/packages.ensure', '-root', '/home/userpi/connectedhomeip/.environment/cipd/packages', '-log-level', 'debug', '-json-output', '/home/userpi/connectedhomeip/.environment/cipd/packages.json', '-cache-dir', '/home/userpi/.cipd-cache-dir', '-max-threads', '0']' returned non-zero exit status 1.

I hope anyone could help me out here, if you need any additional information, please let me know.
Thanks for any help.
Platform
raspi
Anything else?
No response

@Peugot206
Errors:   failed to install fuchsia/third_party/clang/linux-arm64 in "pigweed": failed to download after multiple attempts   failed to install fuchsia/third_party/sysroot/linux in "pigweed/clang_sysroot": write /home/userpi/connectedhomeip/.environment/cipd/packages/.cipd/pkgs/8/YuDp0GW7uRHE/usr/lib/python3.8/config-3.8-arm-linux-gnueabihf/libpython3.8-pic.a: no space left on device (and 4471 other errors)   failed to install fuchsia/third_party/zap/linux-arm64 in "zap": write /home/userpi/connectedhomeip/.environment/cipd/packages/.cipd/pkgs/7/prABZHrcLuSr/resources/app.asar: no space left on device (and 114 other errors)   failed to install fuchsia/third_party/rust/linux-arm64 in "pigweed/rust": failed to download after multiple attempts
fromthe logs it shows that there is no space on device could you please check that , and try.

You are right, the device is out of space. I have a 32GB SD on the RPI and somehow it is already full after installing all the necessary Matter software. Going to upgrade to a 64GB SD card.
@aravindone do you know if Matter builds on Raspberry Pi OS 64-bit? Since it has to be a 64-bit system, this is now available on the RPI OS.

@Peugot206 matter usage on raspberry pi using Ubuntu server OS is the best option  ### Raspberry Pi OS 64-bit###  wont build properly.

@Peugot206 matter usage on raspberry pi using Ubuntu server OS is the best option . Raspberry Pi OS 64-bit im not sure

Thanks @aravindone. I tried and it indeed does not work on Raspberry Pi OS 64-bit. I am now installing on Ubuntu Server 22.04 on a Raspberry Pi 4 (4 GB, 64 GB storage USB) and it keeps getting stuck on the command after a while:
./scripts/examples/gn_build_example.sh examples/chip-tool BUILD_PATH
as explained here. I then have to reboot the Pi, run the command again and it seems to pick up where it stopped, but stops very quickly again.
Any clue why? Could anyone else try this on a Raspberry Pi 4 to see if he has any success. Am I also right that this installation is pretty huge and almost requires ~25+ GB? I think that should be mentioned in the build instructions at least.

it keeps getting stuck on the command after a while

@Peugot206 could you please share the log for analyzing problem. more over if your working on raspberry pi it will be little slow.

could you please share the log for analyzing problem. more over if your working on raspberry pi it will be little slow.

@aravindone hi, I don't really have the logs but had a screenshot from where it got stuck, this was with the command ./scripts/examples/gn_build_example.sh examples/chip-tool BUILD_PATH:

As you can see now it shows [0/192], if one file takes too long to build, it eats up all the RAM and eventually gets stuck. With enabling 3 GB of swap only then I could get through this build process. Some files will build almost instantly but some other (presumably big ones) take a long time. Luckily if it gets stuck it continues where it got stuck on, and doesn't restart all over again.
Is this normal? I thought many people used the Pi to run chip-tool on..

Hi @Peugot206 i would suggest to go for optimized approach raspberry pi image  like : https://github.com/SiliconLabs/matter/blob/release_1.1.0-1.1/docs/silabs/general/ARTIFACTS.md
this image contains the OTBR and chip-tool bult-in , because matter sdk will build from scratch which eventually end up in stuck like this.
but for matter commissioning i would recommend for ubuntu laptop for best practice.

Thanks a lot @aravindone ! I will use this for future use cases.
This does mean it won't be the latest version, right? And I can't just 'update' to the latest version, but it is more like a snapshot. If that's the case, it still shouldn't really be a problem for me.

Initial report is solved with the "out of space" observation.  Other problems should go into separate issues.


[BugFix] Resolve manual optimization

What does this PR do?

Fixes # (issue) <- this links related issue to this PR
Before submitting

[ ] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes? (if necessary)
[ ] Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review
Anyone in the community is free to review the PR once the tests have passed.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified
[ ] Check that target branch and milestone match!

Did you have fun?
Make sure you had fun coding 🙃

Hello @tchaton! Thanks for opening this PR.

In the file pytorch_lightning/accelerators/tpu.py:

Line 30:91: W292 no newline at end of file

In the file pytorch_lightning/plugins/precision/native_amp.py:

Line 66:121: E501 line too long (147 > 120 characters)
Line 79:1: W293 blank line contains whitespace

In the file pytorch_lightning/plugins/precision/precision_plugin.py:

Line 79:121: E501 line too long (140 > 120 characters)

Do see the Hitchhiker's guide to code style


Implemented physics collision visualizer

Implemented the collision visualizer to better debug the collisions

Added the AABB drawing

What's about this?

@akien-mga any chance for this PR to be merged if I resolve the conflict?

Sure.

Done

You have two commits with the same name instead of one it seems.

It were two separate commits purposely since this introduce the collision visualizer and the profiler, but the commit message of the first commit got changes for an error.
Now there is only one commit

There are a couple of warnings (errors on CI) about locals that shadow other locals: https://travis-ci.org/godotengine/godot/jobs/526779988

Code seems OK to me otherwise, though I think it would have been better to PR the collision visualizer and the profiler separately, as they don't seem directly related.

@akien-mga fixed last problems.
They are not related but I've already combined them so I would prefer if you merge them as is at this point.

I'm tired to refactor this PR another time honestly


Deny-ERPeering Policy definition

I see that Deny-ERPeering policy is configured with  following part of definition.
"if": {
              "field": "type",
              "equals": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings"
            }

My understanding is RP Microsoft.Network/virtualNetworks targets the Virtual Networks and not ExpressRoute. ER RP should be  something like Microsoft.Network/expressRouteCircuits/peerings
Should this policy be named either Deny-VNetPeering or should RP be changed to Microsoft.Network/expressRouteCircuits/peerings?
Or may be I am missing something?
Thanks.

Thanks for the feedback Makesh. It will be fixed in our next update.

Thanks for the feedback Makesh. It will be fixed in our next update.

thanks for the update @daltondhcp - can you confirm if its still Deny-ERPeering or Deny-VNetPeering?

thanks for the update @daltondhcp - can you confirm if its still Deny-ERPeering or Deny-VNetPeering?

It will be Deny-VNetPeering.

It will be Deny-VNetPeering.


[Feature] Sort Conditional Access Policies in PowerPoint by Name

Currrently the Conditional Access Policies are grouped into different sections based in the status.
In addition to this it would be great of the slides would be sorted by the Conditional Access Policy name

Hey @f-bader I received a few requests for this so I've changed the default order to sort by name instead.
Try it out in the CI environment: http://ci.idpowertoys.com/

Looks great.
Was it intentional that you removed the grouping by current state.
Personally I liked the grouping and would prefer grouping and then sorted by name


Previous optimisation for 0/1 floats in SnapBufferWriteBinary() now breaks in newer versions of GameMaker

Need to remove the special case and keep datatype consistent.

https://github.com/JujuAdams/SNAP/commit/7468243e599d7f29746121d68ba4d6d91b26b21b


Deprecate the Void runtype

fixes https://github.com/pelotom/runtypes/issues/81

Coverage decreased (-0.02%) to 98.866% when pulling ad20106306e83a51e1e08ea0906c41d161623c99 on googol:deprecate-void-runtype into 4a6e49531b77777a66440e4f0c4d1d5df825da29 on pelotom:master.

Thanks!


Refreshing listing causes error

When loading data directly with App.store.loadMany(), subsequent calls to App.store.findAll() result in the exception Uncaught Error: <DS.StateManager:ember368> could not respond to event setData in state rootState.loaded.

Resolved error by changing the way data is loaded - see 634c74c8c8cd5a278efed6f43fae347954009360
However, we still need to figure out the correct way to refresh the listing...


Help PLS i NEED HELP

After selecting "Join Existing Network" in the setting change, it is not found in SSID How do I connect??

If you chose join existing network try running an app like fing to scan for the ip of the USB (assuming it changed the IP after connecting to your wifi) then type In that ip instead of the base ip you would use on a fresh cactus


Project System: Don't auto-format or change sections in the project file that you didn't change

From @davkean on May 11, 2016 8:12
See this commit: https://github.com/dotnet/roslyn-project-system/pull/27/commits/78075edf8ad17308fbd9b7717867cedd900054d5
Here I add a new file, and the project system re-formatted the project file, we shouldn't do that and we should treat it similar to a source file, where we only change pieces that the user actually changed.
Copied from original issue: dotnet/roslyn#11245

This has been fixed, we no longer reformat.


Flaky test:  realm::Transaction::get_version_of_current_transaction() crashes on Ubuntu

This particular crash has now been seen a number of times, but only on Ubuntu. I am not sure if it is the same test crashing every time or different ones.
io.realm.kotlin.test.common.RealmLogTests[jvm] > addLogger_twice[jvm] STANDARD_OUT
    2024-Jan-11 11:18:32,891 TRACE: [REALM] Hello
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f866cfee314, pid=2166, tid=2172
#
# JRE version: OpenJDK Runtime Environment Zulu11.68+17-CA (11.0.21+9) (build 11.0.21+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM Zulu11.68+17-CA (11.0.21+9-LTS, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [librealmc.so+0x3ee314]  realm::Transaction::get_version_of_current_transaction() const+0x10
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/runner/work/realm-kotlin/realm-kotlin/packages/test-base/core.2166)
#
# An error report file with more information is saved as:
# /home/runner/work/realm-kotlin/realm-kotlin/packages/test-base/hs_err_pid2166.log
Compiled method (nm)   40692 2524     n 0       io.realm.kotlin.internal.interop.realmcJNI::realm_get_version_id (native)
 total in heap  [0x00007f86941cff90,0x00007f86941d0368] = 984
 relocation     [0x00007f86941d0108,0x00007f86941d0138] = 48
 main code      [0x00007f86941d0140,0x00007f86941d0360] = 544
 oops           [0x00007f86941d0360,0x00007f86941d0368] = 8
#
# If you would like to submit a bug report, please visit:
#   http://www.azul.com/support/
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

Last seen here: https://github.com/realm/realm-kotlin/actions/runs/7487613739/job/20381458403

Another case:
io.realm.kotlin.test.common.RealmLogTests[jvm] > addLogger_twice[jvm] STANDARD_OUT
    2024-Jan-17 08:45:09,220 TRACE: [REALM] Hello
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f7e399ed440, pid=2176, tid=2179
#
# JRE version: OpenJDK Runtime Environment Zulu11.70+15-CA (11.0.22+7) (build 11.0.22+7-LTS)
# Java VM: OpenJDK 64-Bit Server VM Zulu11.70+15-CA (11.0.22+7-LTS, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [librealmc.so+0x3ed440]  realm::Transaction::get_version_of_current_transaction() const+0x10
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/runner/work/realm-kotlin/realm-kotlin/packages/test-base/core.2176)
#
# An error report file with more information is saved as:
# /home/runner/work/realm-kotlin/realm-kotlin/packages/test-base/hs_err_pid2176.log
Compiled method (nm)   42956 2513     n 0       io.realm.kotlin.internal.interop.realmcJNI::realm_get_version_id (native)
 total in heap  [0x00007f7e781d1c90,0x00007f7e781d2068] = 984
 relocation     [0x00007f7e781d1e08,0x00007f7e781d1e38] = 48
 main code      [0x00007f7e781d1e40,0x00007f7e781d2060] = 544
 oops           [0x00007f7e781d2060,0x00007f7e781d2068] = 8
#
# If you would like to submit a bug report, please visit:
#   http://www.azul.com/support/
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

https://github.com/realm/realm-kotlin/actions/runs/7561504211/job/20590034882


Parse Korean and Russian trade messages

This adds message parsing for Russian and Korean.
Item names are not translated.
This also refactors MessageParser into many smaller parsers.
Some tests were added for the parsers as well.
Relates to #50 .

I'm currently testing this ingame now. Will update this comment with the results.

There might be a bug with "resend message".
I send original trade as:
2021/05/23 13:56:50 6381453 bad [INFO Client 12160] @To 살고싶습니다lll: 안녕하세요, 결전(보관함 탭 "팜1", 위치: 왼쪽 9, 상단 6)에 115 chaos(으)로 올려놓은 저항의 망토(Cloak of Defiance) 옻칠한 의복(을)를 구매하고 싶습니다

and clicked resend, and got:
2021/05/23 14:03:44 6794703 bad [INFO Client 12160] @To 살고싶습니다lll: 팜1

I found the issue: sourceString is not correct for those languages.

I found the issue: sourceString is not correct for those languages.

Should be resolved now.

I need to test this a bit more before merging to master

Any progress on your testing? Is there anything you are concerned about, which I can add automated tests for, or clarify?


Bugfix: items in reverse order inside groups (ios)

Hey, I noticed items inside groups were coming in the wrong order. Here's a quick fix. It comes with a 'works for me' guarantee.

:+1:


[CELEBORN-863][FOLLOWUP] Fix persisted committed file infos lost

What changes were proposed in this pull request?
To fix a bug that might cause persisted committed file info lost.
Why are the changes needed?
A worker starts will clean its persisted committed file info and won't put back if this worker restart again, the committed file infos will lost.
Does this PR introduce any user-facing change?
NO.
How was this patch tested?
GA.

Merge to main(v0.5.0) and branch-0.4(v0.4.1)


Migrate Code to TypeScript

https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html

Hi @ozdemirburak, I'd like to work on this

Sure, @drishit96.

@ozdemirburak I have run the tests and they work but the jshint lint is not working since the js file generated by typescript is not jshint compatible. Should I replace jshint with eslint?

That'd be great @drishit96.


[LiveMotion] Motion element not found. Did you forget to make your target a LiveMotion.motion component?

I have done the setup as instructed in the readme, but I am unable to test any of the examples provided, in my application. I am getting this error on the console:
[LiveMotion] Motion element not found. Did you forget to make your target a LiveMotion.motion component?
This is my code in the LiveView Component:
`
import LiveMotion, only: [motion: 1]
def render(assigns) do
~H"""

🍿

<button type="button" phx-click={LiveMotion.JS.hide(to: "#popcorn")}> Eat popcorn

"""
end
`
Here is my app.js
`
// Live Motion Library
import { createLiveMotion } from 'live_motion';
const { hook: motionHook, handleMotionUpdates } = createLiveMotion();
const Hooks = {_, _, motionHook};
`

I have the same issue apart from that I dont have any error or warning. Followed all instructions and when page is rendered for first time, there is some animation but then button does not have an effect


Added “LifetimeTracker” library

Project URL
https://github.com/krzysztofzablocki/LifetimeTracker
Description
LifetimeTracker can surface retain cycle / memory issues right as you develop your application, and it will surface them to you immediately, so you can find them with more ease.
Why it should be included to awesome-ios (optional)
Developers can make use of this Tool for finding memory issues.
Checklist

[X] Only one project/change is in this pull request
[X] Addition in chronological order (bottom of category)
[X] Supports iOS 9 / tvOS 10 or later
[X] Supports Swift 3 or later
[X] Has a commit from less than 2 years ago
[X] Has a clear README in English

@Yogesh-MV this library looks awesome. Thanks for contributing 👍


Default filter value

I want to add a directive to set the default filter value when loading the table. Can you hint where in the code should I look at?

If you link and set the global filter variable to a value it should work. Check the Grid Options section on the demo site.

Closed due to inactivity.


Import existing Production Projects into the front end - Process csv report

Process the CSV report that is created of the existing projects in mediaflux.
Acceptance criteria

[x] write a rake task that can process the CSV report and create records in the application
[ ] Run the rake task in production for one item
[ ] Verify the item is correct with Chuck and Matt
[ ] Run the rake task in production on the rest of the items

Gather the missing users from production
mediaflux_projects = CSV.read('/home/deploy/MF Prod Projects Nov-19-2024.csv', headers: true)
missing_sponsors = []
 missing_managers = []
 missing_datausers = []
 mediaflux_projects.each do |project|
   user = User.find_by(uid: project["dataManager"])
   missing_managers << project["dataManager"] if user.blank?
   user = User.find_by(uid: project["dataSponsor"])
   missing_sponsors << project["dataSponsor"] if user.blank?
   datauser = if project["dataUser"].blank?
                         []
                      else
                         project["dataUser"].split(",").map(&:strip)
                     end
    datauser.each do |uid|
       user = User.find_by(uid: uid)
       missing_datausers << uid if user.blank?
    endput
 end
puts missing_managers.uniq.sort
puts missing_sponsors.uniq.sort
puts missing_datausers.uniq.sort


Improve Python/Django Quickstarts with specific example

Expected Behavior

https://github.com/ddev/ddev/issues/6438
https://github.com/ddev/ddev/issues/5819
https://github.com/ddev/ddev/issues/5171

You should be able to use the python/django/flask quickstarts without thinking or a lot of knowledge
Actual Behavior
To use the Python/Flask or Django quickstarts you have to understand what an "app", is, what a WSGI_APP is, how it's set, and where it's set.
https://ddev.readthedocs.io/en/stable/users/configuration/experimental/#django4-and-python-project-types gives a little more info, but not enough.
Steps To Reproduce

[ ] Use a specific example with specific WSGI_APP
[ ] Explain in general what is going on
[ ] Add more explanation about how to debug
[ ] Remove < and > from anywhere in the quickstarts, because people don't read them and use them literally, leading to syntax error.

Anything else?
No response

I think we should consider removing python/django support in v1.24.0

https://github.com/ddev/ddev/issues/6714

We'll remove support.


width of html is compressed

Element which i render is looks great in html but when i convert it using html2pdf() it's compresses the size of it, i am get what the issue is, when i am setting height width it is changing only changes size of document only i want to change width of image to full width of document.
My HTML

Exporting Image  #Data

I am also getting this same issue:
configuration:
      let doc_width = 8.27;  // A4 measures 210 × 297 millimeters or 8.27 × 11.69 inches
      let doc_height = 11.69;
      let aspect = doc_height / doc_width;
      let dpi = 120; // targeting ~1200 window width
      let img_width = doc_width * dpi;
      let img_height = doc_height * dpi;
      let win_width = img_width;
      let win_height = img_height;

      // https://html2canvas.hertzen.com/configuration
      let html2canvasOpts = {
        scale: img_width/win_width,
        width: img_width,
        height: img_height,
        windowWidth: win_width,
        windowHeight: win_height,
      };

      // https://rawgit.com/MrRio/jsPDF/master/docs/jsPDF.html
      let jsPDFOpts = {
        orientation: 'portrait',
        unit: 'in',
        format: [doc_width, doc_height]
      };

then using html2pdf.js npm package:
      // https://github.com/eKoopmans/html2pdf
      html2pdf().set({
        margin:       [0.01, 0.01, 0.01, 0.01],
        filename:     'html2pdf.pdf',
        image:        { type: 'jpeg', quality: 0.98 },
        html2canvas:  html2canvasOpts,
        jsPDF:        jsPDFOpts,
      }).from( document.getElementById('dom-to-print') ).save();

I am using html2pdf.js 0.9.1 in an Angular 5 app.
If I call the html2canvas and jsPDF manually, then I get a perfect PDF page:
var pdf = new jsPDF(jsPDFOpts);
pdf.addImage(img, 'JPG', 0, 0, doc_width+.16, doc_height); // no idea why the extra .16 is needed...
pdf.save('jsPDF.pdf');

Resulting PDFs:
Using html2pdf (width is narrow):
html2pdf.pdf
Using jsPDF (looks good!):
jsPDF.pdf

My html content is like so:
HTML template in Angular5

Lazy loaded MyLazy2Component, a complex PDF writer!

  <button (click)="show = true; writePDF();">Write PDF</button>

Company Summary

 Fake Company

    The quick fox jumped over the brown lazy dog.
    Jack quietly moved up front and seized the big ball of wax.
    Few black taxis drive up major roads on quiet hazy nights.
    Just poets wax boldly as kings and queens march over fuzz.
    Bored? Craving a pub quiz fix? Why, just come to the Royal Oak!
    Quincy Pondexter blocked five jams against the Wizards!
    Crazy Frederick bought many very exquisite opal jewels.
    A quivering Texas zombie fought republic linked jewelry.
    Grumpy wizards make toxic brew for the evil queen and jack.
    The job of waxing linoleum frequently peeves chintzy kids.
    Back in June we delivered oxygen equipment of the same size.
    Just keep examining every low bid quoted for zinc etchings.
    How razorback-jumping frogs can level six piqued gymnasts!
    A quick movement of the enemy will jeopardize six gunboats.
    All questions asked by five watched experts amaze the judge.
    Bobby Klun awarded Jayme sixth place for her very high quiz.
    The wizard quickly jinxed the gnomes before they vaporized.
    Zelda might fix the job growth plans very quickly on Monday.
    Zack Gappow saved the job requirement list for the six boys.

      Jack quietly moved up front and seized the big ball of wax.
      Few black taxis drive up major roads on quiet hazy nights.
      Just poets wax boldly as kings and queens march over fuzz.
      Bored? Craving a pub quiz fix? Why, just come to the Royal Oak!
      Quincy Pondexter blocked five jams against the Wizards!
      Crazy Frederick bought many very exquisite opal jewels.
      A quivering Texas zombie fought republic linked jewelry.
      Grumpy wizards make toxic brew for the evil queen and jack.
      The job of waxing linoleum frequently peeves chintzy kids.
      Back in June we delivered oxygen equipment of the same size.
      Just keep examining every low bid quoted for zinc etchings.
      How razorback-jumping frogs can level six piqued gymnasts!
      A quick movement of the enemy will jeopardize six gunboats.
      All questions asked by five watched experts amaze the judge.
      Bobby Klun awarded Jayme sixth place for her very high quiz.
      The wizard quickly jinxed the gnomes before they vaporized.
      Zelda might fix the job growth plans very quickly on Monday.
      Zack Gappow saved the job requirement list for the six boys.
      Jackie will budget for the most expensive zoology equipment.

 Things They Don't

      The quick fox jumped over the brown lazy dog.
      Jack quietly moved up front and seized the big ball of wax.
      Few black taxis drive up major roads on quiet hazy nights.
      Just poets wax boldly as kings and queens march over fuzz.
      Bored? Craving a pub quiz fix? Why, just come to the Royal Oak!
      Quincy Pondexter blocked five jams against the Wizards!
      Crazy Frederick bought many very exquisite opal jewels.
      A quivering Texas zombie fought republic linked jewelry.
      Grumpy wizards make toxic brew for the evil queen and jack.
      The job of waxing linoleum frequently peeves chintzy kids.
      Back in June we delivered oxygen equipment of the same size.
      Just keep examining every low bid quoted for zinc etchings.
      How razorback-jumping frogs can level six piqued gymnasts!
      A quick movement of the enemy will jeopardize six gunboats.
      All questions asked by five watched experts amaze the judge.
      Bobby Klun awarded Jayme sixth place for her very high quiz.
      The wizard quickly jinxed the gnomes before they vaporized.
      Zelda might fix the job growth plans very quickly on Monday.
      Zack Gappow saved the job requirement list for the six boys.
      Jackie will budget for the most expensive zoology equipment.

View this in the app

http://www.go.to/some/place

Last Updated

03/13/2020

CSS
  button {background-color:#ff0000;color:#ffffff;}
  #dom-to-print {
    position: relative;
    width: 100%;
    height: 100vh;
    background-color: #ffffff;
    color: #000000;
    font-family: Helvetica, Arial, Sans-Serif;
  }
  #header {
    background-color: #5577aa;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 700;
    height: 4.7rem;
    margin: auto;
    display: flex;
  }
  #left {
    padding: 1rem;
    flex: 0 0 50%;
    vertical-align: middle;
  }
  #right {
    flex: 1;
    padding: 1rem;
    text-align: right;
    vertical-align: middle;
  }
  #header #right img {
    width: 100px;
  }
  #body {
    font-size: 1rem;
    font-weight: normal;
    padding: 3rem;
    line-height: 1.5rem;
  }
  h1 {
    border-bottom: 1px solid #333333;
    padding-bottom: 0.7rem;
  }
  a, a:hover, a:active {
    font-weight: normal;
    color: #333333;
  }
  #footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    display: flex;
    height: 64px;
    background-color: #dddddd;
    color: #000000;
    font-size: 0.8rem;
  }

If I comment out width, then the width is fixed, but the height overflows:
let html2canvasOpts = {
        scale: 1,       //  img_width/win_width // is 1,
        //width: img_width,
        height: img_height,
        windowWidth: win_width,
        windowHeight: win_height,
      };

html2pdf (15).pdf

Multiplying the windowWidth does nothing:
      let html2canvasOpts = {
        scale: 1,
        width: img_width,
        height: img_height,
        windowWidth: win_width * 0.7,   // 1.3 also does nothing
        windowHeight: win_height,
      };

Width and Height in my case are needed to increase the DPI.   The DPI is just too pixelated using default settings.
let html2canvasOpts = {
        scale: 1,
        windowHeight: win_height * 0.796, // ~1118px?
         Were you specifying width/height on the html2canvas options?  If so, take a look at my tests and see if that helps you.

+1

if I set
const opt = {
        // margin: 5,
        filename: 'myFile.pdf',
        html2canvas: {
          // scale: 2.5,
          useCORS: true,
          // width: element.offsetWidth,
          // windowWidth: element.offsetWidth * 2,
        },
        jsPDF: { unit: 'pt' },
      };

the width of html is compressed ,and scale is useless

What ended up being the fix for this issue?
I just downloaded the latest bundled minified version of html2pdf and this is happening to me.

What ended up being the fix for this issue?
I just downloaded the latest bundled minified version of html2pdf and this is happening to me.

use html2canvas with custom JS

@subatomicglue I have implemented the same in angular 8.1
https://github.com/eKoopmans/html2pdf.js/issues/142#issuecomment-437093743
but generated PDF stretched.
See attached PDF
html2pdf.pdf
file

no fix yet?


Failed to clone rspec repo on the branch 4-0-dev

Failed to clone rspec repo during CI
On the branch 4-0-dev , every job on CI failed to clone rspec repository and are down.
https://github.com/rspec/rspec-core/actions/runs/8874478323/job/25365014656?pr=3081
Run script/clone_all_rspec_repos
  script/clone_all_rspec_repos
  shell: /usr/bin/bash -e {0}
  env:
    RSPEC_CI: true
    RSPEC_VERSION: = 4.0.0.pre
    __UNUSED_VARIABLE: Prevents build error when {matrix.env} is used.
~/work/rspec-core ~/work/rspec-core/rspec-core
Cloning into 'rspec'...
fatal: could not read Username for 'https://github.com/': No such device or address
Error: Process completed with exit code 128.

This is because rspec repo was renamed to rspec-metagem on  Oct 27, 2021(I found this commit) and we have to update script/clone_all_rspec_repo

4-0-dev will be back in active development after we switch to the monorepo


Create Historical Interest Rate Graph (1982-2023)

Hi @jstac,
This PR is up-to-date with the figures I demonstrated today.
Please let me know if there is anything I can further improve.
Many thanks in advance.