a

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

VS Code Version:
OS Version:

Steps to Reproduce:

/needsMoreInfo


Find power of a number

Description
Power of a number is the result of multiplying a number by itself a certain number of times. For example, 2^3 = 2 * 2 * 2 = 8. The number 2 is the base and 3 is the exponent.
Input  : 2 3
Output : 8

Program added successfully :tada:
Thanks for your contribution :hugs:


Allow each column to specify its own sort function

Currently the column sorting is limited to a basic string sort, which doesn't necessarily work properly for all cases. For example, sorting a column of dates will almost never work, unless you are displaying a format like YYYY-MM-DD.
It would be great if you could optionally specify a sort function at the column level, which then gets passed into the sort call.

@rooby, I opened up a PR for custom sorting.
https://github.com/gregnb/mui-datatables/pull/176/files

The customSort seems to override the sorting for all the columns. Is there a way to have the custom sort, but have other columns use a different sort function?

@Flavyoo customSort passes an argument for column index (see documentation for more information). With the column index, you can conditionally set sorting logic per column.

Okay thank you. That is pretty cool


[terra-status-view] Rework component

Summary
Rework status-view :D
Removed

Removed children prop. Replaced with buttonAttrs prop
Removed the default of rendering an error view
Removed the custom variant
Removed hide glyph logic based on available container space
Removed onComponentMount logic to calculate padding
Removed StatusView.Opts object and export

Changed

Use CSS grid to center component
Render divider if title and message/buttons exist

Deployement Link
https://terra-core-deployed-pr-2453.herokuapp.com/#/components/terra-status-view/status-view/status-view
Closes #1578, #2450, #2440

Functional verification completed. The status view examples display and function as expected with the above changes.

Tested: PR #2453
Resolves: Issues #1578, #2450, #2440
Reviewed:

refactors Status View with minimal to no apparent changes.

Verified by @neilpfeiffer, Ready for Release after minor edit: https://github.com/cerner/terra-core/pull/2453#pullrequestreview-255515874.

Pass

UX Review

Looks like a breaking change (https://github.com/conorhastings/react-syntax-highlighter/issues/193) . Locking down react-syntax-highlighter until that's fixed.


Web - User details message click button does not open user report page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Precondition: user A should have 1 or more request money/task report with user B and after login, user B report should not be opened, user A should also have group with user B

Open the app and login with user A
Open request money/task report of user B
Click on search and open group report with user B in it
Click on group avatars to open group details
Click on user B to open user B details
Click on message and observe that app opens report opened in step 2 instead of opening main user B report

Expected Result:
App should open user report on click on message in user details
Actual Result:
App opens user request/task report on click on message in user details if we first open user request/task report  and then search for group with that user and from group, open user details
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.35-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/413f30c3-befb-4e1b-97ff-597c8746980c
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1688204408974849
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
User details message click button does not open user report page
What is the root cause of that problem?
If user A click message button on user B's detail page, Report.navigateToAndOpenReport is called, and then ReportUtils.getChatByParticipants is called.
https://github.com/Expensify/App/blob/5e6e5cf33e19bea13cb41f7c902c845f977c59d3/src/pages/ProfilePage.js#L210
https://github.com/Expensify/App/blob/5e6e5cf33e19bea13cb41f7c902c845f977c59d3/src/libs/actions/Report.js#L514-L525
ReportUtils.getChatByParticipants function will iterate all report actions and find the first report whose participant id is equal to user B's account id.
https://github.com/Expensify/App/blob/5e6e5cf33e19bea13cb41f7c902c845f977c59d3/src/libs/ReportUtils.js#L1961-L1972
ReportUtils.getChatByParticipants does not filter out money requests and report actions are stored randomly in Onyx, so money requests whose participant id equal to user B's account id may be returned.
The task report may also be returned if user A creates a task and assigns it to user B, and then clicks the message button on user B's detail page.
What changes do you think we should make in order to solve the problem?
We can add onlyIncludeChatReport parameter to ReportUtils.getChatByParticipants with false default value.
And pass true to ReportUtils.getChatByParticipants function.
-	function getChatByParticipants(newParticipantList) {
+	function getChatByParticipants(newParticipantList, onlyIncludeChatReport = false) {
		newParticipantList.sort();
		return _.find(allReports, (report) => {
			// If the report has been deleted, or there are no participants (like an empty #admins room) then skip it
			if (!report || !report.participantAccountIDs || isThread(report)) {
				return false;
			}

+			if (onlyIncludeChatReport && !isChatReport(report)) {
+				return false;
+			}

			// Only return the room if it has all the participants and is not a policy room
			return !isUserCreatedPolicyRoom(report) && _.isEqual(newParticipantList, _.sortBy(report.participantAccountIDs));
		});
}

function navigateToAndOpenReportWithAccountIDs(participantAccountIDs) {
    let newChat = {};
-   const chat = ReportUtils.getChatByParticipants(participantAccountIDs);
+   const chat = ReportUtils.getChatByParticipants(participantAccountIDs, true);
    if (!chat) {
        newChat = ReportUtils.buildOptimisticChatReport(participantAccountIDs);
    }
    const reportID = chat ? chat.reportID : newChat.reportID;

    // We want to pass newChat here because if anything is passed in that param (even an existing chat), we will try to create a chat on the server
    openReport(reportID, [], newChat, '0', false, participantAccountIDs);
    Navigation.dismissModal(reportID);
}

What alternative solutions did you explore? (Optional)
None.

@dhanashree-sawant, I'm unable to reproduce, any idea what I should be doing differently?
https://github.com/Expensify/App/assets/22508304/f62f0777-de1c-49cf-a8d6-28346a66ded8

@dhanashree-sawant, I'm going to assign you to see if it helps get ya 👀 on the above, I'm unable to reproduce

Hi @mallenexpensify, sorry for the delay, your steps seems to be perfectly fine. 1 thing to note is that it occurs only once after login so maybe that you can try. If still not reproducible, we can close it.

Unable to reproduce again.  Are you able to consistently @dhanashree-sawant ?

Hi @mallenexpensify, thanks for rechecking, the reproduction is slightly unreliable so I think we can close it for now.


Use default branch on recently created Mercurial repository

After hg init command, sometimes Mercurial does not create .hg/branch file so we'll use 'default' as fallback, which is the master branch in Mercurial repositories.

@mcornella can you take a look, pls?

Sorry for the delay, thanks for the patch! :smile:

Thank you, @mcornella


Integrate functions for tags from hooks.go files and add unit test for it

Issue #, if available:
Description of changes:
Integrate functions for tags from hooks.go files and add unit test for it.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/test all

/hold
test hold

/test all

/test all

There were changes to the code-generator that added support for the tags comparison.


Added raw sql streaming example with headers to docs/howto/outputting-csv

Example of a lightweight wrapper streaming results from raw sql
with headers.  Demonstrates adding headers in a generator function,
using datetime to format an attachment filename, and using
cursor.execute with params.

I'm not convinced this adds much value to the existing example. Maybe we could alter it to output columns and a timestamp'ed filename instead?
By the way using seek(), read() and truncate() was deemed too un-Pythonic to be used as en example in the original ticket so you might want to re-use the Echo object.

Example updated to use Echo() instead of StringIO
Typical column count can be between 10-50 so unrealistic to include them in a filename.
Although a common use case, there appear to be no streaming csv examples from a google or stackexchange search that output a header row followed by data from a sql cursor. Either header or data is straightforward, it's the combination of both that is the value of this example.
This example can be copy, pasted and used as the basis for most real world raw sql output.

I don't know, this is repeating a lot from the first example. In my opinion, the Django docs needn't explain or demonstrate every use case here. Maybe some concepts could be explained better so that someone could arrive at the code you wrote by reading the existing example. Providing copy/paste examples seems more suitable to a site like https://djangosnippets.org/.

Ok, if it doesn't add enough value then it shouldn't add noise.


cf app: index out of range

Something completely unexpected happened. This is a bug in cf.
Please file this bug : https://github.com/cloudfoundry/cli/issues
Tell us that you ran this command:
	cf app env

using this version of the CLI:

	6.11.3-cebadc9

and that this error occurred:

	runtime error: index out of range

and this stack trace:

	goroutine 1 [running]:
main.generateBacktrace(0xc21000a000, 0x3)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/main/main.go:177 +0xa9
main.handlePanics(0x12555d8, 0xc2100675a0)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/main/main.go:161 +0x123
runtime.panic(0x570540, 0xe7c917)
	/usr/local/go/src/pkg/runtime/panic.c:248 +0x106
github.com/cloudfoundry/cli/cf/api.(*logNoaaRepository).GetContainerMetrics(0xc210037000, 0xc2100b0cf0, 0x24, 0xc2100bcd20, 0x1, ...)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/api/logs_noaa.go:68 +0x275
github.com/cloudfoundry/cli/cf/commands/application.(*ShowApp).ShowApp(0xc210342120, 0xc2100b0cf0, 0x24, 0xc21018c6e0, 0x3, ...)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/app.go:112 +0x683
github.com/c

Hi,
Can you please retry on the latest cf cli release?
We fixed a bug in the area this error occurred.
Cheers,

CLI team

I'm running into same issue. It appears when you scale it up, and then scale it down, then do a cf app.
using this version of the CLI:
	6.12.1-56792aa

and that this error occurred:

	runtime error: index out of range

and this stack trace:

	goroutine 1 [running]:
main.generateBacktrace(0xc21000a000, 0x3)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/main/main.go:175 +0xa9
main.handlePanics(0x11704e0, 0xc210189b60)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/main/main.go:159 +0x123
runtime.panic(0x5a5b80, 0xf0d8b7)
	/usr/local/go/src/pkg/runtime/panic.c:248 +0x106
github.com/cloudfoundry/cli/cf/api.(*logNoaaRepository).GetContainerMetrics(0xc2102697e0, 0xc2100bd450, 0x24, 0xc21018dcc0, 0x1, ...)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/api/logs_noaa.go:68 +0x275
github.com/cloudfoundry/cli/cf/commands/application.(*ShowApp).ShowApp(0xc21006ea80, 0xc2100bd450, 0x24, 0xc2100ac420, 0xc, ...)
	/Users/pivotal/go-agent/pipelines/Mac-OSX-Unit-Tests/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/app.go:179 +0x6e0
github.com/c

Hi Ryan,
Can you confirm whether it's reproducible with the latest cli release?
https://github.com/cloudfoundry/cli#downloads

That works! The latest version on Caskroom/cask/cloudfoundry-cli has the bug. I just had to tap your pivotal/tap for the version with the fix in it. Thanks

Thanks for checking. I wasn't aware of the Caskroom site and their linked version is fairly old. You can always get our latest versions from the github page above.
Regards,
Dies Koper - CF CLI PM


Frame drops when setting imageData tensor3D as input

frame drops when I set a tensor3D object as input, is there any way to optimize? the code below is only for demostration, coz I can only access webcam fame data in a webview env.
const data = ctx.getImageData(0, 0, vw, vh)
const elem = faceapi.tf.browser.fromPixels(data)
const options = new faceapi.TinyFaceDetectorOptions({ inputSize, scoreThreshold })
const result = await faceapi.detectSingleFace(elem, options).withFaceLandmarks()

What does "frame drops" mean? You also have to dispose the elem tensor after the API call (elem.dispose()), othewise you will end up with memory leaks.


Avoid Null pointer exception if time is not set

For instance if junit report contains: <testsuite errors="0" failures="0" tests="19" name="SIP URI">, we should ignore time and set it to 0 instead of null pointer exception.

👍


RFC: Move Class-based Program Design to be taken after Systematic Program Design

Problem:
OSSU list courses that would make more sense when rearranged in a different order.
Duration:
One month.
Background:
Our current curriculum currently recommends taking Class-based Program Design after the Programming Languages classes. I think that it would make more sense if we take Class-based Program Design after SPD instead of PLABC.
Class-based Program Design follows the same concepts closely as Systematic Program Design. It discusses the same concepts that were taught in SPD, but translated to working with OOP-based languages instead of functional languages. This makes sense because in NEU, the course is called Fundies II, which is a course that is taken after Fundies I (which is their version of SPD).
Here is the prerequisites listed on the site:

The course assumes proficiency with the systematic design of programs and some mathematical maturity. It demands curiosity and self-driven exploration and requires a serious commitment to practical hands-on programming.

In fact, I am currently taking Class-based Program Design, and after taking PLABC, I had to refresh some SPD concepts again.
Additionally, these are some interesting things I've noticed when taking Class-based Program Design after PLABC.
Class-based Program Design is a gentler introduction to a statically typed programming language. Until this point, OSSU teaches two programming languages, Python and BSL/Racket, both of which are dynamically typed languages. Programming Languages Part A introduces you to SML, which is a statically typed functional programming language. Due to PL's less hand-holdy nature, I had some difficulties trying to figure out how static typing works. In contrast, Class-based Program Design is a lot more gentle and assumes no knowledge in Java or even in a statically typed language (their first course was in BSL/Racket, after all).
Lastly, PLABC assumes a bit of knowledge with Java (but they're optional, not required). This is more of a side note and not really a requirement, but it would also be nice if we can follow along optional Java example lectures. I think most of us following OSSU would just skip them because we would have no Java knowledge.
Proposal:

Move Class-based Program Design to be taken after Systematic Program Design.

Alternatives:

No change in ordering, but may need to tell people to refresh SPD concepts when taking the course.

Ok

Thanks for the suggestion @etherealcomity ! It's been incorporated into the curriculum.


TextField needs to behave better when unbounded

Currently, it just throws this exception:
I/flutter (14542): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (14542): The following assertion was thrown during performLayout():
I/flutter (14542): BoxConstraints forces an infinite width.
I/flutter (14542): These invalid constraints were provided to RenderStack's layout() function by the following
I/flutter (14542): function, which probably computed the invalid constraints in question:
I/flutter (14542):   RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:260)
I/flutter (14542): The offending constraints were:
I/flutter (14542):   BoxConstraints(w=Infinity, 0.0<=h<=Infinity)
I/flutter (14542):
I/flutter (14542): When the exception was thrown, this was the stack:
I/flutter (14542): #0      BoxConstraints.debugAssertIsValid.<anonymous closure>.throwError (package:flutter/src/rendering/box.dart:394)
I/flutter (14542): #1      BoxConstraints.debugAssertIsValid.<anonymous closure> (package:flutter/src/rendering/box.dart:435)
I/flutter (14542): #3      BoxConstraints.debugAssertIsValid (package:flutter/src/rendering/box.dart:389)
I/flutter (14542): #4      RenderObject.layout (package:flutter/src/rendering/object.dart:1789)
I/flutter (14542): #5      RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:260)
I/flutter (14542): #6      RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #7      RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #8      RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #9      RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #10     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #11     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:500)
I/flutter (14542): #12     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #13     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:500)
I/flutter (14542): #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #15     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #17     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #18     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:980)
I/flutter (14542): #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #20     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:124)
I/flutter (14542): #21     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:85)
I/flutter (14542): #22     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:194)
I/flutter (14542): #23     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:338)
I/flutter (14542): #24     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #25     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #26     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #27     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #28     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:980)
I/flutter (14542): #29     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #30     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #31     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #32     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #33     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #34     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #36     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #37     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:2483)
I/flutter (14542): #38     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #39     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #41     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:433)
I/flutter (14542): #42     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #43     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #44     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #45     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #46     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #47     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #48     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #49     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #50     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #51     RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:100)
I/flutter (14542): #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1872)
I/flutter (14542): #53     RenderView.performLayout (package:flutter/src/rendering/view.dart:120)
I/flutter (14542): #54     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1749)
I/flutter (14542): #55     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1050)
I/flutter (14542): #56     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:232)
I/flutter (14542): #57     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:361)
I/flutter (14542): #58     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:170)
I/flutter (14542): #59     BindingBase&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:685)
I/flutter (14542): #60     BindingBase&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:633)
I/flutter (14542): #61     BindingBase&SchedulerBinding&GestureBinding&ServicesBinding&RendererBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/rendering/binding.dart:247)
I/flutter (14542): #63     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:366)
I/flutter (14542): #64     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:394)
I/flutter (14542): #65     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)
I/flutter (14542): (elided 2 frames from class _AssertionError and package dart:async-patch)
I/flutter (14542):
I/flutter (14542): The following RenderObject was being processed when the exception was fired:
I/flutter (14542):   RenderConstrainedBox#987687393 relayoutBoundary=up7 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (14542):   creator: ConstrainedBox ← InputDecorator ← AnimatedBuilder ← Listener ← _GestureSemantics ←
I/flutter (14542):   RawGestureDetector ← GestureDetector ← TextField ← Row ← Column ← DefaultTextStyle ←
I/flutter (14542):   AnimatedDefaultTextStyle ← ⋯
I/flutter (14542):   parentData: <none> (can use size)
I/flutter (14542):   constraints: BoxConstraints(unconstrained)
I/flutter (14542):   size: MISSING
I/flutter (14542):   additionalConstraints: BoxConstraints(w=Infinity, 0.0<=h<=Infinity)
I/flutter (14542): This RenderObject had the following descendants (showing up to depth 5):
I/flutter (14542):   RenderStack#104464218 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (14542):     RenderPadding#988890708 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (14542):       RenderDecoratedBox#188031708 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (14542):         RenderPadding#384224006 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (14542):           RenderRepaintBoundary#914689605 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (14542): ════════════════════════════════════════════════════════════════════════════════════════════════════

From this it's kinda hard to figure out what's wrong (especially for somebody new). I was able to fix the problem by wrapping the TestField in an Expanded widget.
/cc @Hixie

From this it's kinda hard to figure out what's wrong (especially for somebody new). I was able to fix the problem by wrapping the TestField in an Expanded widget.

Same. Thank you for saving my time!

I think we should make the text field complain if it's made infinitely wide (but in a less ugly way than it does now).
@HansMuller this might fit with your current work on this render object.

new Expanded(
child: new Row(
children: [
new TextField()
],
),
),
I did same but it didnt resolve.

Using Flexible breaks mainAxisAlignment for the Row widget. With two text widgets there's no problem, but with a text widget and a Textfield widget contained in Flexible it gets aligned to the left with no spacing.

@hasen6 Please file new bugs rather than commenting on closed bugs. Thanks.

i solved mine by wrapping the TextField with expanded. If your TextField is inside row then you need to provide the width either by using sized box or with expanded it does automatically

You can Do This Thing.....
new Row(
children: [
new Flexible(
child: new TextField(
decoration: const InputDecoration(helperText: "Enter App ID"),
style: Theme.of(context).textTheme.body1,
),
),
],
),

I am using GridView.builder inside Column widget  and
I have wrap the GridView.builder with the following
1)ShrinkWrap:true
2) using Expanded
3) using Flexible
but nothing works for me

here is all possible solution added TextField inside of Row causes layout exception: Unable to calculate size


[BUG] Modulestack not respected when module refered with git path

Describe the bug
Modulestack of module referenced by git path is ignored. I.e.
path: git::codecommit::REGION://ACCOUNT@repo.git//modules/foo/?ref=abc
parameters:
[...]

Does not have policy from modulestack.yaml deployed at all.
However, same module with path
path: /Users/foo/PROJECT-NAME/modules/foo

has policy from module stack deployed.

Is this occurring on other modules that are also sourced via git and are also using a modulestack.yaml?
Can you elaborate on the details?  Was this module successfully deploying previously in other deployments?  Did it successfully deploy in this deployment or not at all in this deployment?
Please reach me via email / slack.

Closing as I could not replicate it anymore


WIP: e2e: serial: start workload placement tests

Add test to verify the behaviour of the whole TAS flow, placing guaranteed workloads and checking the placement.
Add utilities to deal with NRT objects.
Partially replaces #95

retargeting this PR to add a preliminary test and (a lot) more infra; I'll address the real planned test case with a later PR building on this one

depends on: https://github.com/openshift-kni/numaresources-operator/pull/135

/retest
known flake

install lane failures addressed in https://github.com/openshift-kni/numaresources-operator/pull/136

/retest

depends on

https://github.com/openshift-kni/numaresources-operator/pull/135
https://github.com/openshift-kni/numaresources-operator/pull/136

/retest

/lgtm
/approve


[Dribbblish] Misaligned sidebar playlist icons

Also have this issue on a brand new install using Marketplace:

Sir i want to work on this issue,can u pls guide me through


write some unit test (test some instructions)

unit test (test_instructions)

Please don't merge, still working on this PR.

Hi, @musenming .To let us pull your changes, please solve the conflicts and merge this PR to active Travis-CI in you fork.

Move to #17


Black screen in 3D scene after new install

Tested versions
v4.2.2.stable.official [15073afe3]
System information
Windows	10.0.19045 Build 19045         NVIDIA GeForce GTX 960M
Issue description
Downloaded and ran GODOT. Console opened and new project (Forward+) created.
GUI opened 3D scene which was total black. Switching to scene to 2D displays 2D correctly. 3D scene remains total black.
Steps to reproduce
Deleted project and attempted creation two more times with same result (black 3D scene).
Minimal reproduction project (MRP)
test2.zip

In the output panel at the bottom, do you see any errors printed?

Your video driver is probably out of date or has a related problem in your operating system. Does the problem occur in Godot4.3 or 4.1?
https://godotengine.org/download/archive/#4.3
https://godotengine.org/download/archive/#4.1.4

Output window as requested.

Output window as requested.

The message is just a warning about the additional (optional) tool for importing Blender files.

Have you tried updating your video driver via the NVidia website?
Have you tested Godot4.1.4?
Have you tested Godot4.3-dev?
Have you tried switching from Forward to Compatibility?

I hope this helps 👍

Godot 4.1.3 tested.......same problem
Video drivers updated.......
Problem resolved!


Big row softmax

This is probably not a pull request, feel free to close and suggest the right next steps.
I notice that with big row size, the demo softmax kernel's speed is lower than pytorch. I suspect it is because of spill and fill to the shared memory done by the compiler under the hood. But I have not found a way to confirm that.
I looked at the pytorch algorithm, which does 3N reads and 1N write (by doing 2N exp() ops). I kind of did that here but with a minor optimization where we avoid 1 extra fetch between rounds if we start working on the last block first in the next round.
The results are here: https://gist.github.com/min-xu-ai/c47d27a88f383f6b31dc8a4a32abec14
I tried to implement this with a loop and static-(compile-time)-if-conditions within the loop if the loop is unrolled. However, I ran into asserts and NotImplemented errors with Triton.
Can you kindly take a look and suggest a better way to implement this?
If there is a tutorial on how to start developing (hack) on the compiler, I'd be really interested. Thanks again for this awesome work!

Hey! Thanks for this PR. I'll be taking a look at it tomorrow!

I think generally this is the right idea, ie keeping track of partial max/sum as you loop through the big row. Loop in Triton are for now very basic, so you can only iterate through a plain range. It's possible to do softmax using only simple loops though. It would look something like:
# compute maximum
max = float('-inf')
for off in range(0, N, BLOCK_SIZE):
  x_ptrs = x_ptr + row_id*stride_xm + off + tl.arange(0, BLOCK_SIZE)
  x = tl.load(x_ptrs) # mask omitted for simplicity
  max = tl.maximum(max, tl.max(x, axis=0))
# compute denominator
denom = 0
for off in range(0, N, BLOCK_SIZE):
    x_ptrs = x_ptr + row_id*stride_xm + off + tl.arange(0, BLOCK_SIZE)
    x = tl.load(x_ptrs) # mask omitted for simplicity
    denom += tl.exp(x- max)
# write-back result
for off in range(0, N, BLOCK_SIZE):
    x_ptrs = x_ptr + row_id*stride_xm + off + tl.arange(0, BLOCK_SIZE)
    y_ptrs = y_ptr + row_id*stride_ym + off + tl.arange(0, BLOCK_SIZE)
    x = tl.load(x_ptrs) # mask omitted for simplicity
    y = (x - max) / denom
    tl.store(y_ptrs, y)

The performance should be quite good because no temporary tensor is being used, so x can stay in the L2 cache. So for an A100 should still be loaded only once from dram as long as it fits in 40MB

Thanks! Do you need me to update this PR for include this kernel in this demo/tutorial or just close the PR? I am fine with closing. I have already got what I wanted which is the right way to write this loop. :-)
Thanks for the detailed reply! Happy to continue on this PR if you want to.

Update: I implemented the loop based big row kernel here: https://github.com/min-xu-ai/triton/blob/6f9ebea5ed10b7ce0ac0c253bb557ec8f5d72fa6/python/tutorials/02-fused-softmax.py#L127
Unfortunately, it appears that adding a if-condition to optimize memory load/store actually lowered the performance. On the other hand, when I had unrolled the loop by hand hence eliminated the if-condition, it was faster as expected.
Not a big deal to me. I will close this for now.


Uploading documents crashes the system

Access to fetch at 'https://api.rxchart.xyz/v1/file/upload/1128?api_key=xxxxxxxxx' from origin 'https://rxchart.xyz' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

FileProvider.ts:88          POST https://api.rxchart.xyz/v1/file/upload/1128?api_key=xxxx-xxxx

net::ERR_FAILED 413

Chrome (stupidly) reports this as a CORS error. It's not. NGINX must be configured to allow file upload sizes as well as fpm/php.ini needs to be changed as well:
NGINX (/etc/nginx/nginx.conf):
http {

  [...]

   # Put this at the end:
   client_max_body_size 100M;
}

PHP: (/etc/php/8.x/fpm/php.ini)
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; https://php.net/file-uploads
file_uploads = On

; Maximum allowed size for uploaded files.
; https://php.net/upload-max-filesize
upload_max_filesize = 100M

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;

[...]

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; https://php.net/post-max-size
post_max_size = 100M


Performance admin menu bar links to Support page

When you hover Performance in the Admin menu bar, there's a link to Support. That support page is a dead page that only says "Sorry, you are not allowed to access this page."

I believe that menu item should either be removed, or replaced with information leading to this repository and other useful information.

Thanks for letting us know.  I willl take care of it now!


After rotating to landscape and back to portrait location UI is broken

Even if you rotate on previous page and then open passcode view in a portrait mode.
Was able to reproduce on demo application by enabling landscape orientations in project, then launching the app, rotating it to landscape, rotating back to portrait and pressing button "enable" in the demo app.

@alexsorokoletov is your control open source or available for use?

Fixed in 3.6.8.


CHR field misincorporation.txt

Hi,
I noticed that the CHR field has been removed from the misincorporation.txt file. I was using it to plot damage patterns for the first few bases for each BAM header. Any chance we could either get this column back or get the information from the current version of mapdamage?

true, this is no longer there. @MikkelSchubert  could you do something it?

This functionality is still available in the last tagged release (v2.2.1), but was removed in the mater branch due to a lack of perceived benefit and due to the problems it causes with poorly assembled genomes (extreme memory usage and gigantic table files). I'll look at re-adding it as an optional (off by default) feature when I get back to working on the mapDamage.


symbolOffset not working in markLine data

One-line summary [问题简述]
Trying to change symbol by using 'image://' and change symbolOffset but it's not working in markLine data
Version & Environment [版本及环境]

ECharts version [ECharts 版本]: 4.2.0-rc.2
Browser version [浏览器类型和版本]: Google Chrome 70.0.3538.77
OS Version [操作系统类型和版本]:

Expected behaviour [期望结果]

Able to customise the symbol image position

ECharts option [ECharts配置项]

 markLine: {
               lineStyle: {
                        width: 1,
                        color: '#626c91',
                        type: 'solid'
                    },
                    data: [
                        [

                            {
                                xAxis: 50,
                                yAxis: 0,
                                symbol: 'none',
                            },

                            {
                                xAxis: 50,
                                yAxis: 1800,
                                symbol: 'image://../../../assets/images/greyboxTest.png',
                                symbolSize: [160, 60],
                                symbolOffset: [0, '50%']
                            }
                        ]
                    ]
                }

Other comments [其他信息]

If the image "box" not transparent, it will cover the text "50, current 8000"

the same problems. any news?

Bump - symbolOffset doesn't work for me either.


Typo: even instead of odd?

On page 40 there's a code listing printing a sequence of odd numbers with the following introduction:

Here is an example of using continue to print a string of even numbers. In this case, the result could be accomplished just as well with an if-else statement, but sometimes the continue statement can be a more convenient way to express the idea you have in mind:

In [7]: for n in range(20):
           # check if n is even
           if n % 2 == 0:
               continue
           print(n, end=' ')
1 3 5 7 9 11 13 15 17 19

Shouldn't the intro paragraph say odd instead of even?
Thank you for writing this book and publishing it for free! I really enjoy it and recommend it to my colleagues who have to dip their toes in some Python code.

I checked book's source and this is already fixed. However, the PDF uploaded to O'Reilly site and linked from the README still has the old version.


Transitively package reference not added

This is not true for me:
The Microsoft.Authentication.WebAssembly.Msal package transitively adds the Microsoft.AspNetCore.Components.WebAssembly.Authentication package to the app.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3039ff79-ee86-20b1-0082-d3899a84c823
Version Independent ID: af4a3a75-ae52-5f6d-2120-737bc2fefb07
Content: Secure an ASP.NET Core Blazor WebAssembly hosted app with Azure Active Directory
Content Source: aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

This only happens if you are referencing packages of different versions ( e.g. 3.1.2 and 5.0.0)


Notification (Sound or visual)

It would be nice if we could be able to know when we receive a message while the tab is minimized (or when we're using another tab of the terminal itself).
I don't know if it's possible to make a sound through the app, though
maybe the header of the terminal could show some sort of.. I don't know, star "*", just like when it happens when we let a command running and it finishes the task
well, I guess you got the idea
ah, yeah, I love this project, it's being extremely helpful to me o/ thanks a lot

@tomquirk really? lol
can I switch the terminal? I'm using the terminal that comes in with the Lubuntu and I don't know how to make it sound XD
and it doesn't display anything at the header when I switch tab or minimize it

yeah I'm honestly not sure 🤔 Maybe have a read around for how other people get notifications on Ubuntu

@tomquirk I think a lot of people have the terminal bell disabled to avoid immediate mental break. It's also off by default in many terminals. I would suggest switching from using terminal bell to a package like play-sound or audio-play.

on ubuntu you can produce notification by calling notify-send "title" "body"

not sure how this works on other distros (or win/mac) though


Prevent CI from masking version problem bugs

The current CI hides version problems by overwriting the version of Cedar used.
This PR removes that functionality.

Let's use https://github.com/cedar-policy/cedar-examples/pull/149


Add repository to the package info

Fixes npm warning.

Cutting Hacktober kinda close :smile:

Haha :-) I actually reached my 5 pull requests quite a while... But my next pull request will be more meaningful, even if just a bit, I promise!


p005- not able to import nnfs

Hi, I ran the debugger to look for the issue and this is what it reports:
Connected to pydev debugger (build 211.7628.24)
Traceback (most recent call last):
File "", line 1027, in _find_and_load
File "", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nnfs'
python-BaseException
nnfs is coming up in the pip list of installed modules, so it seems to be installed.
Any suggestions?
Thank you.

Hi,
There might be numerous reasons for this. I don't see filenames, so I think you're using notebook maybe? What's your operating system? My current best guess is you have multiple Python versions installed and pip you used does not match interpreter you're using.

Hi Daniel, thanks for the reply. I am using a regular .py file, using python 3.9.12 on pycharm, I have also tried it in VScode with the same issue. There may be an issue around my set-up with wsl-ubuntu. I have python installed through wsl ubuntu and use windows for my ide's... but my issue with that theory is that all of my other pip-installed modules work. Could you maybe check that everything is up to date on your side? Thank you.

We haven't changed this module for months now, nothing has changed on our side.
How did you install this module? What's the exact command?
Please run it again and show the exact output you are getting.
Also please provide the output of these 2 commands: where python and where pip.

We haven't changed this module for months now, nothing has changed on our side. How did you install this module? What's the exact command? Please run it again and show the exact output you are getting. Also please provide the output of these 2 commands: where python and where pip.

Hi Daniel,

We haven't changed this module for months now, nothing has changed on our side.

What I mean by checking everything is up to date on your side is just to check the license/certificate on pypi.

How did you install this module? What's the exact command?

I used pip install nnfs

Please run it again and show the exact output you are getting.

It seems to be installed, when I run it in ubuntu bash I get:
Neural Networks from Scratch in Python Tool.

Basic usage:
nnfs command [parameter1 [parameter2]]

Detailed usage:
nnfs info | code video_part [destination]

Commands:
  info    Prints information about the book
  code    Creates a file containing the code of given video part
          in given location. Location is optional, example:
          nnfs code 2 nnfs/p02.py
          will create a file p02.py in a nnfs folder containing
          the code of part 2 of video tutorial

... but it doesn't recognize the nnfs module in pycharm or vscode.
Traceback (most recent call last):
  File "\\wsl$\Ubuntu\home\david\NN_from_scratch\my_first_NN1.py", line 3, in <module>
    import nnfs
ModuleNotFoundError: No module named 'nnfs'

Process finished with exit code 1

Also please provide the output of these 2 commands: where python and where pip.

C:\Users\B00865398>where python
C:\Program Files\Python39\python.exe
C:\Users\B00865398\AppData\Local\Programs\Python\Python310\python.exe
C:\Users\B00865398\AppData\Local\Microsoft\WindowsApps\python.exe

C:\Users\B00865398>where pip
C:\Program Files\Python39\Scripts\pip.exe
C:\Users\B00865398\AppData\Local\Programs\Python\Python310\Scripts\pip.exe

What I mean by checking everything is up to date on your side is just to check the license/certificate on pypi.
We do not control pypi, it's Python's package index. If something was wrong with it, you could not install any package.

Did you try pip install nnfs on Windows or in WSL? I have not much experience with WSL, but I imagine you have to install packages separately on Windows and WSL.
In PyCharm/VSC check which interpreter it is using and install the nnfs for this interpreter. If you are using a virtual environment, install it in the virtual environment.
In general, you have some mixed Python interpreter installations and you have to install nnfs for each you are using.

What I mean by checking everything is up to date on your side is just to check the license/certificate on pypi.

We do not control pypi, it's Python's package index. If something was wrong with it, you could not install any package.
Did you try pip install nnfs on Windows or in WSL? I have not much experience with WSL, but I imagine you have to install packages separately on Windows and WSL. In PyCharm/VSC check which interpreter it is using and install the nnfs for this interpreter. If you are using a virtual environment, install it in the virtual environment. In general, you have some mixed Python interpreter installations and you have to install nnfs for each you are using.

Hi Daniel, the issue is now solved,
It was indeed the wrong interpreter. The one I normally use on wsl ubuntu (3.9) had nnfs installed, but the version linked to pycharm and vscode (3.10) did not have it installed.
Thanks for your help.

I'm glad we solved that :)
Hope you'll enjoy the book or the videos (I'm not sure which one you;re following) :)


fix errors on windows

For me, this fixes the errors i got on my windows machine.
If there's stuff you 'd like to do different, let me know.

Awesome, thanks!


Brother DCP-J125 not printing after update to cups-filer 2.0b3 & 2.0rc1

Hello,
after update to Fedora 38 and cups-filter rpm package from 1.28 to 2.0 b3 I have a problem with printing on my Brother DCP-J125 - printer do not print at all and do not react for any actions executed from cups. Every print job ends with "No pages found!" error in cups logs. After short investigation below part attract my attention:
May 07 14:21:12 hp840 cupsd[17511]: cupsdSetBusyState: newbusy="Printing jobs and dirty files", busy="Active clients, printing jobs, and dirty files"
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterLoadPPD: Color profile qualifier determined from job and PPD data \'..\'
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterLoadPPD: No ICC profiles specified in PPD
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterLoadPPD: Searching for profile \"-/-\"...
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterLoadPPD: Last filter determined by the PPD: brlpdwrapperdcpj125; Final data MIME type: application/vnd.cups-postscript => PDF filter will not log pages in page_log.
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterUniversal: \"*cupsFilter(2): ...\" lines in the PPD file:
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterUniversal:    application/vnd.cups-raw application/octet-stream 0 -
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterUniversal:    application/vnd.cups-postscript 0 brlpdwrapperdcpj125
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterUniversal: PPD uses \"*cupsFilter: ...\" lines, so we always convert to format given by FINAL_CONTENT_TYPE
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] ppdFilterUniversal: Converting from application/vnd.cups-pdf-banner to application/vnd.cups-postscript
May 07 14:21:12 hp840 cupsd[17511]: [Job 172] cfFilterChain: Running filter: universal

From my understanding cups is trying to use universal filter instead of brlpdwrapperdcpj125. This in my opinion could be the source of my problem. Because I am not familiar with cups printing flow I would like to ask you for small help with investigation. Full log can be found in attachment, print job number is 172. Thanks in advance!

@soltysh @GrzegorzBB I might find the fix - can you try testing RPMs https://koji.fedoraproject.org/koji/taskinfo?taskID=101514696 ?

Hi @zdohnal, unfortunately the problem is still there. New cups log below.
cups_log_j125_job175.txt

Ok, thanks for letting me know - there are several hacks in PDFTOPS filter function specifically for Brother printers (because of its firmware bugs) and those hacks are applied if the manufacturer name matches with a substring from a specific make_model string, but make_model string doesn't contain the manufacturer in certain scenarios, which is  a bug.
I'm working on https://bugzilla.redhat.com/show_bug.cgi?id=2192912 (although it is Utax printer) as well and the fix for this bug might be solution for it, so I thought it could help as well, but probably the reason why different functions are used is more deep than mismatched make_model.
In case the patch will work at least on the Utax printer in question, I'll create PR.

@zdohnal, what I have fixed now, is an actual bug in the ppdFilterPSToPS() filter function which got introduced by the conversion of the classic pstops CUPS filter into a filter function (see commit message). Independent of this naturally the non-application of the Brother workaround in the ppfFilterPDFToPS() filter function needs also to get fixed.
@GrzegorzBB @soltysh my fix for this bug should already solve your problem. For your specific bug, @zdohnal's fix for the Brother workarounds is not needed, that one is only relevant for PostScript printers.

Thx @tillkamppeter, I'll wait for the updated built and will give it a try and report back if I encounter any problems :)

@soltysh @GrzegorzBB the fix will arrive into Fedora testing repos later today if you want to check the patch.

I picked the build from https://koji.fedoraproject.org/koji/buildinfo?buildID=2207641 and it's working :tada: Thank you!

I can also confirm, it is working. Thanku you @tillkamppeter  and @zdohnal.


Adjusting sample rate for sensor data (Sensors_plus package) when building for web?

There has been a discussion about adjusting the sample rate for sensor data in the Sensors_plus flutter package (https://github.com/flutter/flutter/issues/25971). (Sensors_plus is the only sensor package for web).
Following the above thread, I managed to adjust the rate when building for Android, by changing SENSOR_DELAY_NORMAL to SENSOR_DELAY_GAME.
Now my question is: Is there a way to adjust the sampling rate when building for web?

Hi @bjornwinther1996, sensors_plus is a third-party plugin, I would suggest filing that issue in its plus_plugins repository. Closing as this is not related to Flutter.


Feature request: binary release for the CLI

I'd love to see a binary release for the cli tool - I'm after a single-binary smartcrop implementation to put on a docker image. There's the official smartcrop-cli, but that brings whole nodejs into the fold, bumping the size of the image substantially. Any chance of getting a binary build here, that I can then just wget in? :D
Thanks!

Sure, that sounds reasonable! Will prepare something...

@muesli can I take this up?
I can add goreleaser as a GitHub action.


Iris Task

Please follow the name convection as mentioned in the below 👇
https://github.com/auth-02/CSI_AI-ML_23-24/blob/main/README.md


default workflow(s): utilise --lang and --script info

For example, with ocrd-tesserocr-recognize we could do something like:
shopt -s nocasematch
MODEL=eng
case "$LANGUAGE" in
  de|deu|ger) MODEL=deu
    case "$SCRIPT" in
      Fraktur) MODEL=frak2021;;
      ...
    esac;;
  fr|fre|fra) MODEL=fra;;
  hsb) MODEL=hsb
    case "$SCRIPT" in
      Fraktur) MODEL=hsbfraktur;;
      ...
    esac;;
  ...
esac

The question is: do we only apply this when no --workflow is supplied, or should we assume that all workflow files themselves may contain placeholders, e.g. $TESSMODEL, which we must replace on the fly?

At least for ocrd-tesserocr-recognize, we can also parameterise dynamically (via XPath queries): xpath_model e.g.
{
"contains('de,deu,ger',@language) and starts-with(@script,'Latf')": "frak2021",
"contains('fr,fre,fra',@language)": "fra",
"@language='hsb') and starts-with(@script,'Latf')": "hsbfraktur",
"@language='hsb')": "hsblatin",
"": "eng"
}

And as workaround for the missing MODS inheritance, we could simply write a dummy processor that fills the respective PAGE attributes from MODS...


Initial work to refactor NSE

I should of posted earlier on this, don't merge. This was posted primarily to see how it breaks CI. It is nowhere near the final version.


[v3] Add prerequisites 1/6

The idea is to split #960 into smaller chunks.
Here is the list of practices exercises to deal with for this part :
hello-world

two-fer

resistor-color

resistor-color-duo

gigasecond

rna-transcription

space-age

pangram

matrix

bob

pascals-triangle

linked-list

grade-school

list-ops

robot-name

simple-cipher

wordy

secret-handshake

leap

reverse-string

I'll work on this one

@SleeplessByte Can you assign me this issue ?


Feature: public methods for opening and closing the tooltip

These could come in handy.

Documentation needs to be added for this feature.


Focus on view

Type: Feature Request
Once the user clicks on a file in the explorer to show it in a view, the focus should automatically go to the view otherwise every find will be executed in the explorer
VS Code version: Code 1.73.1<PHONE_NUMBER>f055b99068d3688932416f2346dd3b, 2022-11-09T04:27:29.066Z)
OS version: Windows_NT x64 10.0.19041
Modes:
Sandboxed: No

/duplicate of #166118 which you may want to upvote.

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Updating to disable drag/drop and  display multi line records

David,
Thanks for providing excellent component.
I need to modify the code to incorporate following.

Remove drag/drop (Is it possible with any property?)
Display each item as 3 line record
Move add remove to middle and remove buttons on the bottom.

Let me know any tips for completing those. I created project with just copying files under  lib/src as a module and imported it  and it is working as well.  Now I can modify the source code for any changes needed. Appreciate your time on any high-level tips.

Per the README.md, you can remove drag-and-drop via a format object passed in the html. For example:

<dual-list [source]="source" [(destination)]="confirmed"
    [format]="{ draggable: false }"></dual-list>

You can style the dual-list anyway you need by extending the component and providing it with a new template. I have a sample project with an example here: czeckd/custom-dual-listbox. This is how it looks without really needing to incorporate the angular-dual-listbox source code in your project :

See 2.

Thanks David,  It is easy to extend the code. I only have few months of angular experience and struggling to understand following snippets. However, it is an interesting application to use as a project to understand better on angular/typescript/javascript.
@Input() id = dual-list-${nextId++}; //guess used fro drag/drop
ngOnChanges(changeRecord: {[key:string]:SimpleChange}) //guess name value pairs  name:value
constructor(private differs:IterableDiffers) {
this.sourceDiffer = this.differs.find(this.source).create(null); // don't know
const sourceChanges = this.sourceDiffer.diff(source);
I will extend now and go through code later. Appreciate taking time to reply.

The DualListComponent has var nextId = 0; which is the default if the id isn't provided as an Input().
Read the Angular docs on OnChanges and SimpleChange.
The Angular docs on IterableDiffers is a bit sparse, but basically that bit of code is using a factory to create a differ, the null being passed in is what to track by, in this case nothing. If you want more details, read Minko Gechev's article on Understanding Differs. The pattern I used in the component is old, but you can still see an example of its use in this Angular 2 plunkr in app.component.ts.

Thanks David for taking time to reply in detail.  I was going through dual list from last 2 days. I did not use Javascript for a while  and this project is helping me to refresh and also learn new Javascript APIs and learn how Angular is used with all the lifecycle methods and template. I like the demo usage sample also as being powerful to customize the application.
One question I have is to create IterableDiffer  object, find is passed empty array or Iterable object. I guess both return same object and is invoked create method. In dual list project iterable is passed but most samples shows []. I need to read little more on it.
I am trying to understand how list,sift, and pick are used. It seems pick is used whenever user selects an element.  sift is used in ngFor to display.   Not sure source of truth is list or sift and how they being used. I will  go through the code again during my free cycles.
I am also trying to understand how label changing methods  like filterBtn() is being called when user clicks filter and doFilter() happens.
<button class="btn btn-default" (click)="doFilter()">{{filterBtn()}}
<button class="btn btn-default" (click)="doDisable()">{{disableBtn()}}

Per the README.md, you can remove drag-and-drop via a format object passed in the html. For example:

<dual-list [source]="source" [(destination)]="confirmed"
    [format]="{ draggable: false }"></dual-list>

I'm using custom and [format]="{ draggable: false }" it's not working

@edoura without seeing your template in your custom, it is impossible to troubleshoot. If I had to guess, then it would be you omitted code like [draggable]="!disabled && format.draggable" from the <li #itmConf> in the <div class="record-picker">.

Thank you very much @czeckd. My model is very similar to the one you provided. It was exactly what you observed :+1:


Path to Spinnaker SDK is hardcoded, Spinnaker.h not found

System Description
Camera Name and Model:  FLIR Blackfly S BFS-U3-50S5C-C
Operating System: Ubuntu 18.04 "Bionic"
Spinnaker Version: <IP_ADDRESS>
ROS Version:  Melodic
Computer details
Processor:  Jetson TX2
RAM:  4 GB?
Do the cameras work with SpinView?
They work with the Python examples provided with the Spinnaker SDK.
Describe the bug
I am building from the Feature/spinnaker_update branch, using catkin.
When I compile the project, it is unable to find a key Spinnaker SDK header file. But the file exists, and is located at /opt/spinnaker/include/Spinnaker.h
The problem stems from the fact that CMakeLists.txt hardcodes the path to the Spinnaker SDK, rather than allowing CMake to try to discover the library.
set(SPINNAKER_INCLUDE_DIR "/usr/include/spinnaker" CACHE PATH "Spinnaker Include Directory")
set(SPINNAKER_LIB_DIR "/usr/lib" CACHE PATH "Spinnaker Libs Directory")

You could invoke:
catkin build spinnaker_sdk_camera_driver --cmake-args -DSPINNAKER_INCLUDE_DIR=/opt/spinnaker/include -DSPINNAKER_LIB_DIR=/opt/spinnaker/lib

But the CMakeLists.txt should be changed to use find_package to determine the path, rather than expect that it exists at the hardcoded location.
Error Messages
spinnaker_sdk_camera_driver/include/spinnaker_sdk_camera_driver/std_include.h:5:10: fatal error: Spinnaker.h: No such file or directory
 #include "Spinnaker.h"

@rgov thanks for pointing this out. It looks like spinnaker made this change in one of the recent updates where they started to install the driver in /opt instead of /usr.  We will test and update the master as per your recommendations.
Cheers.

@rgov thanks for pointing this out. It looks like spinnaker made this change in one of the recent updates where they started to install the driver in /opt instead of /usr.  We will test and update the master as per your recommendations.
Cheers.

@rgov  this is fixed in the hotfix/spinnaker_cmake branch


Incorrect escape character inserted before " | "

Version
1.4.6
Test Environment
Chrome and Safari browser
Current Behavior
When you input the following in WYSIWYG mode
(not a table)
|1|

and change to Markdown mode, it become
\|1\|

Expected Behavior
In markdown mode, should also display as
|1|

@kelvinkoko
That's not a bug. It's currently a spec that escaping some punctuation character in WYSIWYG. (ref.)

I see, thank you for your reference, I will close this issue


Is there a workaround to include videos and screenshots for the test cases which are passed as well to the report in cypress????

Report used: "multiple-cucumber-html-reporter": "^1.16.2".
cucumber-report.js file which contains the current code to attach the screenshots on failures.
what i need is to include the videos generated on execution of features to the html report!!!!!
-----------------Existing Code----------------------------------------------------------------------------------
const report = require('multiple-cucumber-html-reporter')
const fs = require('fs-extra')
const path = require('path')
const chalk = require('chalk')
const cucumberJsonDir = './cypress/cucumber-json'
const cucumberReportFileMap = {}
const cucumberReportMap = {}
const jsonIndentLevel = 2
const ReportDir = './cypress/reports/cucumber-report'
const screenshotsDir = './cypress/screenshots'
getCucumberReportMaps()
addScreenshots()
generateReport()
//Mapping cucumber json files from the cucumber-json directory to the features
function getCucumberReportMaps() {
const files = fs.readdirSync(cucumberJsonDir).filter(file => {
return file.indexOf('.json') > -1
})
files.forEach(file => {
const json = JSON.parse(
fs.readFileSync(path.join(cucumberJsonDir, file))
)
if (!json[0]) { return }
const [feature] = json[0].uri.split('/').reverse()
cucumberReportFileMap[feature] = file
cucumberReportMap[feature] = json
})
}
//Adding screenshots to the respective failed test steps in the feature files
function addScreenshots() {
const prependPathSegment = pathSegment => location => path.join(pathSegment, location)
const readdirPreserveRelativePath = location => fs.readdirSync(location).map(prependPathSegment(location))
const readdirRecursive = location => readdirPreserveRelativePath(location)
.reduce((result, currentValue) => fs.statSync(currentValue).isDirectory()
? result.concat(readdirRecursive(currentValue))
: result.concat(currentValue), [])
const screenshots = readdirRecursive(path.resolve(screenshotsDir)).filter(file => {
return file.indexOf('.png') > -1
})
const featuresList = Array.from(new Set(screenshots.map(x => x.match(/[\w-_.]+.feature/g)[0])))
featuresList.forEach(feature => {
screenshots.forEach(screenshot => {
const regex = /(?<=--\ ).+?((?=\ (example\ #\d+))|(?=\ (failed))|(?=.\w{3}))/g
const [scenarioName] = screenshot.match(regex)
console.info(chalk.blue('\n    Adding screenshot to cucumber-json report for'))
console.info(chalk.blue(    '${scenarioName}'))
const myScenarios = cucumberReportMap[feature][0].elements.filter(
e => scenarioName.includes(e.name)
)
if (!myScenarios) { return }
let foundFailedStep = false
myScenarios.forEach(myScenario => {
if (foundFailedStep) {
return
}
let myStep
if (screenshot.includes('(failed)')) {
myStep = myScenario.steps.find(
step => step.result.status === 'failed'
)
} else {
myStep = myScenario.steps.find(
step => step.name.includes('screenshot')
)
}
if (!myStep) {
return
}
const data = fs.readFileSync(
path.resolve(screenshot)
)
if (data) {
const base64Image = Buffer.from(data, 'binary').toString('base64')
if (!myStep.embeddings) {
myStep.embeddings = []
myStep.embeddings.push({ data: base64Image, mime_type: 'image/png' })
foundFailedStep = true
}
}
})
//Write JSON with screenshot back to report file.
fs.writeFileSync(
path.join(cucumberJsonDir, cucumberReportFileMap[feature]),
JSON.stringify(cucumberReportMap[feature], null, jsonIndentLevel)
)
})
})
}
//Report generation with customized meta data included
function generateReport() {
if (!fs.existsSync(cucumberJsonDir)) {
console.warn(chalk.yellow(WARNING: Folder './${cucumberJsonDir}' not found. REPORT CANNOT BE CREATED!))
} else {
report.generate({
jsonDir: cucumberJsonDir,
reportPath: ReportDir,
saveCollectedJSON: true,
displayDuration: true,
reportName: Regression Test Report - ${new Date().toLocaleString()},
metadata: {
browser: {
name: 'chrome'
},
device: 'LM',
platform: {
name: 'Windows'
}
}
})
}
}

hi @pvishnu991 , thanks for you awesome script.
I've made some minor updates to it, especially on the regex.
Let me share it here. Note that in this version, I'm just populating the
//const report = require('multiple-cucumber-html-reporter')
const fs = require('fs-extra')
const path = require('path')
const chalk = require('chalk')

const cucumberJsonDir = './cypress/cucumber-json'
const cucumberReportFileMap = {}
const cucumberReportMap = {}
const jsonIndentLevel = 2
const ReportDir = './cypress/reports/cucumber-report'
const screenshotsDir = './cypress/screenshots'

getCucumberReportMaps()
addScreenshots()
//generateReport()

//Mapping cucumber json files from the cucumber-json directory to the features
function getCucumberReportMaps() {
    const files = fs.readdirSync(cucumberJsonDir).filter(file => {
        return file.indexOf('.json') > -1
    })
    files.forEach(file => {
        const json = JSON.parse(
            fs.readFileSync(path.join(cucumberJsonDir, file))
        )
        if (!json[0]) { return }
        const [feature] = json[0].uri.split('/').reverse()
        cucumberReportFileMap[feature] = file
        cucumberReportMap[feature] = json
    })
}

//Adding screenshots to the respective failed test steps in the feature files
function addScreenshots() {

    const prependPathSegment = pathSegment => location => path.join(pathSegment, location)

    const readdirPreserveRelativePath = location => fs.readdirSync(location).map(prependPathSegment(location))

    const readdirRecursive = location => readdirPreserveRelativePath(location)
        .reduce((result, currentValue) => fs.statSync(currentValue).isDirectory()
            ? result.concat(readdirRecursive(currentValue))
            : result.concat(currentValue), [])
    const screenshots = readdirRecursive(path.resolve(screenshotsDir)).filter(file => {
        return file.indexOf('.png') > -1
    })

    const featuresList = Array.from(new Set(screenshots.map(x => x.match(/[\w-_.]+\.feature/g)[0])))
    featuresList.forEach(feature => {
        screenshots.forEach(screenshot => {

            const regex = /(?<=\ --\ ).*?((?=\ \(example\ \#\d+\))|(?=\ \(failed\)))/g
            const [scenarioName] = screenshot.match(regex)
            console.info(chalk.blue('\n Adding screenshot to cucumber-json report for'))
            console.info(chalk.blue(scenarioName))

            console.log(featuresList)
            console.log(feature)
            console.log(cucumberReportMap)
            const myScenarios = cucumberReportMap[feature][0].elements.filter(
                e => scenarioName.includes(e.name)
            )
            if (!myScenarios) { return }
            let foundFailedStep = false
            myScenarios.forEach(myScenario => {
                if (foundFailedStep) {
                    return
                }
                let myStep
                if (screenshot.includes('(failed)')) {
                    myStep = myScenario.steps.find(
                        step => step.result.status === 'failed'
                    )
                } else {
                    myStep = myScenario.steps.find(
                        step => step.name.includes('screenshot')
                    )
                }
                if (!myStep) {
                    return
                }
                const data = fs.readFileSync(
                    path.resolve(screenshot)
                )
                if (data) {
                    const base64Image = Buffer.from(data, 'binary').toString('base64')
                    if (!myStep.embeddings) {
                        myStep.embeddings = []
                        myStep.embeddings.push({ data: base64Image, mime_type: 'image/png' })
                        foundFailedStep = true
                    }
                }
            })
            //Write JSON with screenshot back to report file.
            fs.writeFileSync(
                path.join(cucumberJsonDir, cucumberReportFileMap[feature]),
                JSON.stringify(cucumberReportMap[feature], null, jsonIndentLevel)
            )
        })
    })
}

//Report generation with customized meta data included
/*
function generateReport() {
    if (!fs.existsSync(cucumberJsonDir)) {
        console.warn(chalk.yellow(WARNING: Folder './${cucumberJsonDir}' not found.REPORT CANNOT BE CREATED!))
    } else {
        report.generate({
            jsonDir: cucumberJsonDir,
            reportPath: ReportDir,
            saveCollectedJSON: true,
            displayDuration: true,
            reportName: Regression Test Report - ${ new Date().toLocaleString() },
            metadata: {
            browser: {
                name: 'chrome'
            },
            device: 'LM',
            platform: {
                name: 'Windows'
            }
        }
})
}
}
*/

Due to personal reasons, the previous maintainers of this package are stepping down and handing the reigns over to me, a long-time contributor to the project and a user of it myself. This is a responsibility I'm very excited about. Furthermore, I'd like to thank @lgandecki ++ for all the work that they've done so far.
Read more about the transfer of ownership here.
The repository has however moved and all outstanding issues are being closed. This is not a reflection of the perceived importance of your reported issue. However, if after upgrading to the new version, you still find there to be an issue, feel free to open up another ticket or comment below. Please make sure to read CONTRIBUTING.md before doing so.


download, unpack, and build BOOST in ram

would it be possible to provide an option to download, build, and copy BOOST in ram, then copy to current directory

Build it on a ramdisk
https://www.linuxbabe.com/command-line/create-ramdisk-linux
On Fri, 26 Jun 2020, 09:11 mgood7123<EMAIL_ADDRESS>wrote:

would it be possible to provide an option to download, build, and copy
BOOST in ram, then copy to current directory
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/moritz-wundke/Boost-for-Android/issues/198, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABF5QFJRG5UEXRSO5GDW3DRYQ3Y5ANCNFSM4OJAY3EA
.


FR: Task fileClass

Loving the app so far. Especially fileclasses... they've transformed all my vaults.
I would love to be able to set a global fileclass for all Tasks and to have tasks gain all the benefits of file classes
Context: All my tasks get a p:: (priority) and an e:: (effort) value.
I currently have them set as preset field settings so that I can quickly define them in tasks.
I view all of my tasks mainly through Dataviews, which pull in tasks based on what file they're in or if they have a file linked in the task, or on due date or on emojis I've added to the task (etc).
But task data views don't get all the fun options that table data views do from Metadata Menus. I'd love to be able to see all my tasks in my task dataview and right click on one to be able increase the priority, change the due date, or add an emoji (based on a set of emojis added to a new MM field on the tag).
Would also be interesting to be able to define task specific metadata on file classes. Meaning all tasks made in notes with this file class would gain those specific fields as metadata for those tasks, like another fileClass but just for the tasks.

Hi thank you for your feedback, much appreciated
This is really a great idea. Unfortunaltely fileClasses are deeply leveraging the "note" object.
Therefore, it would require significant efforts to replicate those capabilities at task level and make sure that this fits well with the fileClass definition at file level.
I'm afraid I won't have enough time to work on it in the near future

Totally understand. I really do love the plug in. Thanks for considering it!

i think this would be a nice enhancement to have. may i take a crack at implementing it?


Do not check assembly symbols equality by DefinitionRange and name

Currently, assembly symbols have startup definition range and are considered equal when LogicalName equals.
We should not check this range for assembly symbols, as a proper check is done just before.
Fixes #4658.

@dsyme Is it a good idea to have such definition ranges for symbols at all?
At least we could encode assembly file name in the range (although I don't see a way it would be useful).

Any plans to merge this? It's ready for a month.

We can merge this but we should first re-test once IDE tests are re-enabled I suppose

cc @KevinRansom


Placeholder

This PR is to merge @fujiisoup 's Placeholder suggestiongs into master. Discussion and edits can take place in this PR.

Okay @fujiisoup I had a look at the changes and added some of my own. I think this is a good direction, but there are a few things to address before we can merge.

storing the data in _data_dict is going to be annoying if people have previously relied on m.X, m.Y for whatever reason. Suggest using the _tf_mode switch to use the tf representation at the appropriate time. Not sure exactly how to do this: a new class for holding data could be one way, but might be overkill.

Some of the code clashes with the methods in svgp.py which supplies the data in minibatches. We should make sure the two mechanisms are one-and-the-same, and share code where possible. I think this might be an opportunity to make the code clearer and more general. We should discuss with @markvdw .

How long does it take to gather the placeholders and the arrays, to put in the feed_dict? If this is quick, no problem. But we are doing this inside the _objective function, so time spent here happens at every step of the optimizer (or sampler).

Obviously the tests must pass, and we'll need to write some new ones that target the functionality that we've added.

Oh, one more thing.

We've broken the ability to pickle models, I suspect through the data_dict (which can't be pickled). We'll need to remove the data_dict at pickle time, and reinstate it afterwards. (see also point 1.) Perhaps a Data object would be sensible after all.

Hi @jameshensman.
Thank you for your review.
First of all, please let me make sure whether the code you have modified works well in your environment.
In my environment (Ubuntu 14.04 64bit, Python 2.7), the code fails at the 17th code block in notebook.
I guess tf.placeholder object is recreated and becomes different from that in feed_dic at some point related to fix-parameters.
I struggled about this issue today resulting in the ugly code I pushed...
I also thank you for the comments 1~5.

5, I will consider about the solution to satisfy the backward compatibility.

3., I did not consider the gathering time.
It might be significant for the large problem. I don't think of anything...
The use of tensorflow optimization might be solution?
4, I will see testing dirs after the directions were fixed.

Hi everyone,
@fujisoup Thanks for your interest in GPflow and your contribution.
One observation from a brief review. Looking at the pull request there seems to be quite a lot of notebook code (the pull request as a whole has 6700 new lines). @jameshensman maybe we want to streamline that a bit or move it into python test code? I'm sure it is possible to fix.

@alexggmatthews yep we can do that

@fujiisoup can we have a think about whether we want to be able to change the shape of the data for VGP (and GPMC also)? Perhaps this should just raise an error, since the model has to be recompiled anyway. For the other models it's fine, but I'm not sure we should be re-creating model parameters when the data are changed - this seems like a big change to the model. What do you think?
Anyone else got any thoughts, @GPflow/contributors ?

I did some tests to have a look at the gathering time. For a SVGP with a RBF kernel, the time is 0.085ms. For a more complex kernel, it's going to take longer to traverse through the structure and gather the parameters. I tried this:
ks = GPflow.kernels
k = ks.RBF(1) + ks.Linear(1) + ks.Matern32(1) * ks.Linear(1) + ks.Bias(1) + ks.White(1)
m = GPflow.svgp.SVGP(X, Y, k, Z=X[::2].copy(), likelihood=GPflow.likelihoods.StudentT())

and the time to gather the feed_dict was 0.207ms. To on something that iterates for 500 iterations, that's an extra 10 seconds, not insignificant.

I guess tf.placeholder object is recreated and becomes different from that in feed_dic at some point related to fix-parameters.
I struggled about this issue today..

I found that this was due to the placeholder be recreated (as you suggested) when calling an AutoFlow function (like predict, for example).
In the PR I've proposed to merge into this one, #110 , I fixed this issue by only creating the placeholder when the Parameter becomes fixed.
Hope that's helpful.

Thank you @jameshensman for much improvement.
I merged that PR.
(Is it a correct way for PR? Actually I am not yet accustomed a GitHub culture... sorry)
I added some test code in (https://github.com/fujiisoup/GPflow/tree/Placeholder)
but found it fails when a parameter is fixed and assigned a value to param.value before the first compilation.
After any compilation, it succeeds.
(I tried to commit it to this PR but have no access ...)
Tomorrow, I will review your code more carefully and
try to find any solutions for the above issue and the below 1)

The advantages are:

I like the syntax m.X = X_new, instead of m.update_data(X_new, Y_new).
The minibatching in SVGP is now much simpler, and incorporated into the same mechanism
It's easier to add new models that want to do minibatching (Deep GPs, perhaps?)
We can get at the data values in the same way as parameters through m.X.value
All the tests pass

The disadvantages are:

A new class. I'm wary of class bloat.
Some new tests are needed, and documentation needs improving before this can be merged onto master (this PR is to merge into Placeholder, for the moment).

Is it a correct way for PR?

Yes, that PR was meant for you to merge into this one once you'd had a look and made sure I wasn't doing anything silly. Once we're happy with what we have on this PR, we'll get @alexggmatthews and/or @markvdw to have a look and see if they agree that it should be merged on to master. Nice work so far :)

I added some test code in ...

Now you can add the test code straight into this PR: we've given you permission to write to this branch. To do this

make a fresh clone of this repo git clone git@github.com:GPflow/GPflow.git
get this PR (branch) git checkout Placeholder
make changes and push git push origin Placeholder
Your changes will show up here, and the tests and coverage will run automatically.

... but found it fails when a parameter is fixed and assigned a value...

Great! That's exactly the point of writing tests. Together we'll work out a clean solution so that it works for that case, and any other case that you can think of that might break the current implementation.

Thanks @jameshensman for the information.
I reviewed your changes and found my previous comment

but found it fails when a parameter is fixed and assigned a value to param.value before the first compilation.
was wrong.
Your code works more than perfectly but my test_code was buggy.

I also prepared some documentation in codes.
Please review the changes.
I appreciate your help.

Thanks @fujiisoup, those are some good additions! I'll have a go through
them today.
James.
On Mon, 27 Jun 2016 at 11:08 Keisuke Fujii<EMAIL_ADDRESS>wrote:

Thanks @jameshensman https://github.com/jameshensman for the
information.
I reviewed your changes and found my previous comment
but found it fails when a parameter is fixed and assigned a value to
param.value before the first compilation.
was wrong.
Your code works more than perfectly but my test_code was buggy.
I also prepared some documentation in codes.
Please review the changes.
I appreciate your help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GPflow/GPflow/pull/108#issuecomment-228705458, or mute
the thread
https://github.com/notifications/unsubscribe/AAJbD1QHqrA6z17zsK2bDJNvCyBtDOtYks5qP6EngaJpZM4I9olk
.

and the time to gather the feed_dict was 0.207ms. So on something that iterates for 500 iterations, that's an extra 10 seconds, not insignificant.

Oh dear, I must have been tired writing that. 0.2ms means that for something that iterates 5000 iterations, it takes an extra 1 second. Not a problem, in my view.

A few days ago I identified 5 potential issues with this PR. They are now all fixed.

1.storing the data in _data_dict is going to be annoying...

I think the DataHolder class is a clean addition, no more data_dict.

Some of the code clashes with the methods in svgp.py

I think our solution is perhaps cleaner than the one currently on master: no extra code is needed in the svgp class (the DataHolder class manages the minibatches)

How long does it take to gather the placeholders and the arrays,

Not a problem in my opinion, see above comment

Obviously the tests must pass, and we'll need to write some new ones that target the functionality that we've added.

Done.

(5). We've broken the ability to pickle models

Fixed.
There's one thing we need to discuss, which is: what is the desired behaviour when changing the shape of the data?

Thank you @jameshensman.

(3). How long does it take to gather the placeholders and the arrays,
Not a problem in my opinion, see above comment

I Agree.

what is the desired behaviour when changing the shape of the data?

I think the current implementation is better than to raise an exception,
because users may expect models are just reusable.
I think I don't understand an advantage of the another implementation that raises an exception for different shape data.
Another thing.
I'm wondering about the backward compatibility.
In the previous implementation, the data used in the model can be read through
used_x = m.X
but in the current code, it should be like
used_x = m.X.value
I modified to maintain this backward compatibility. See #111.
But the code becomes a bit less beautiful.

I think the current implementation is better than to raise an exception
Well, one problem with the current implementation is that all the models
recompile, when actually four of them do not need to recompile (GPR,
SVGP, SGPR, SGPMC). In those models we could just set the data, and the
model would work fine.

So my proposal is that for those four models, we just set the data, no
recompile needed. For the two models that can't do that (VGP, GPMC), we
either: 1) recompile. or 2) raise an exception that tells the user to make
a new model. What do you think?
On Tue, 28 Jun 2016 at 04:03 Keisuke Fujii<EMAIL_ADDRESS>wrote:

Thank you @jameshensman https://github.com/jameshensman.
(3). How long does it take to gather the placeholders and the arrays,
Not a problem in my opinion, see above comment
I Agree.
what is the desired behaviour when changing the shape of the data?
I think the current implementation is better than to raise an exception,
because users may expect models are just reusable.
I think I don't understand an advantage of the another implementation that
raises an exception for different shape data.
Another thing.
I'm wondering about the backward compatibility.
In the previous implementation, the data used in the model can be read
through
used_x = m.X
but in the current code, it should be like
used_x = m.X.value
I modified to maintain this backward compatibility. See #111
https://github.com/GPflow/GPflow/pull/111.
But the code becomes a bit less beautiful.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GPflow/GPflow/pull/108#issuecomment-228935969, or mute
the thread
https://github.com/notifications/unsubscribe/AAJbDz4iK23_QUENw_2zzVMQ5WajCEazks5qQI8agaJpZM4I9olk
.

Thank you @jameshensman for the information.
I did not understand it well.
I still think that it is more user-friendly to make recompilation for these two models.
Expert users may understand why these two models need recompilation, while beginners can use GPflow more naturally.

Okay @alexggmatthews , I think this one is ready to roll. @fujiisoup , thanks so much for your help: do you have any further comments? @alexisboukouvalas might have some comments too, since this covers some of his use-cases, including #80.
There are a lot of changes. Most notably, a unified mechanism for feeding things to self._session.run() that are not parameters. This is called get_feed_dict, and it plays well with the current structure. currently it fetches data (through the dataHolder class) and fixed parameters.
The consequences are:
-- data can be changed safely! m.X = X_new
-- recompilation avoided if the data changes (where possible)
-- fixed parameters can be changed (this was a bug, #80)
-- minibatching is simpler (less code, extendable to other objects easily. I hope @markvdw approves)
I propose incrementing the version to 0.2.0 I've added notes to the RELEASE.md file.

Thank you @jameshensman and all for taking care of my request.
I am happy to hear that.
One thing.
A notebook I have pushed is not so helpful for beginners.
It might be good to introduce main functionalties in the notebook for users
(I was so helped by these noteebooks).

@jameshensman @fujiisoup OK I will have a look.

This is a great improvement! I will try these changes with my use cases (branching code) as @jameshensman  suggests.
Any tests done on impact on performance? I suspect that in scenarios where fixed values are changed frequently (e.g. data or parameters) this change will improve things significantly.
I also like @fujiisoup suggestion for a beginners notebook where we show all the different ways of updating the parameters/data and what does and does not trigger a recompile.

OK @jameshensman @fujiisoup . Thank you both for your efforts this looks good. @fujiisoup congratulations on becoming a GPflow contributor your name is now in the acknowledgements.


check kafka using csv

Summary
Related issue(s)
Fixes #
Tests

[x] Unit/function tests have been added and incorporated into make unit-tests.
[x] Integration tests have been added and incorporated into make integration-test.
[x] E2E tests have been added and incorporated into make e2e-test-all.
[x] List other manual tests you have done.

/retest

/retest

/retest

/cc @clyang82 @yanmxa

@clyang82 This pr should fix the kafka cluster not created issue.

/retest

/retest

/lgtm

/retest

/retest

/retest

/lgtm


add an object3d group node, resolves #938, resolves #949

apart from the code comments, lgtm, we can refactor the scene/group plugins later

lgtm


Ensure that perses calculations can be resumed

We've received reports that the perses calculations hang when trying to restart/resume.
We should make sure that perses calculations can be resumed by

adding unit tests to run one iteration and terminate, then resume via the API
also test the same via the CLI
also test early termination via SIGKILL during the startup phase to make sure the calculation is not left in an un-rerunnable state
test on our batch queue system
test on AWS

@zhang-ivy example for small molecule transformation (protein mutation would be nice but lower priority)
@jchodera link to yank code that handles resume

The YANK driver code explicitly checks to see if there is a calculation that can be resumed here. That code is located in AlchemicalPhase, which just defers to the MultiStateSampler. If the file exists, it resumes the MultiStateSampler object from storage. Otherwise, it creates a new MultistateSampler.

@mikemhenry  Here is a pickled hybrid topology factory for a cdk2 transformation as well as two sample scripts -- one for running h-repex and one for resuming. You'll just need to change some of the input file names but otherwise they should work. Let me know if you have any problems
small_molecule_repex.zip

@zhang-ivy @mikemhenry : Our focus here should be on the simplest/fastest example that runs so we can incorporate it into unit tests: Something like a mutation for alanine dipeptide in vacuum would be optimal here. Could you help set up an example like this, @zhang-ivy ?

During our perses dev sync I think we had agreed on using a small molecule transformation for this test case because we wanted to match Relay's applications as closely as possible. Alanine dipeptide in vacuum should be fine too -- I think Mike already has a pickled htf alanine dipeptide in vacuum from debugging the repex cycling issue, but I can re-send a pickled htf tomorrow if you need @mikemhenry

@zhang-ivy can you send me a small molecule example that starts "from scratch"? The issue with pickles for this is as we change things in the package, stuff breaks:
Traceback (most recent call last):
  File "run_h_repex.py", line 10, in <module>
    htf = pickle.load(open("cdk2_solvent.pickle", "rb"))
ModuleNotFoundError: No module named 'oechem'

This doesn't work anymore since newer versions of perses don't put oechem in the package namespace. I can fix this by adding a from openeye import oechem to the top of the run_h_repex.py script, but for turning this into a unit test we will want something more robust.

@zhang-ivy : You recently did some capped peptide transformations to validate the new reaction field PR. These would be great to include as examples/tests, especially if we can do it without solvent present or with very minimal solvent (e.g. low density)!

I’m on the way to the airport now and will be on vacation until 7/25, but I’ve slack messaged Mike the code to generate a htf for alanine dipeptide in vacuum

I've got everything I need and so far resuming is working fine! Just working on the unit tests now.

I'm not sure you would want to resume a simulation from a yaml (unless you want to change some simulation parameters explicitly) . in replica-exchange mode, for example, the reporter is written to .nc files. the files can be loaded back into perses.samplers.multistate.HybridRepexSampler and openmmtools.multistate.MultiStateReporter and extended like (or some variation of):
from perses.samplers.multistate import HybridRepexSampler
from openmmtools.multistate import MultistateReporter

reporter = MultiStateReporter('my_nc.nc')
simulation = HybridRepexSampler.from_storage(reporter)

total_steps = {N}
run_so_far = simulation.iteration
left_to_do = total_steps - run_so_far

simulation.extend(n_iterations = left_to_do)

@dominicrufa @jchodera
I was thinking about a situation where the simulation crashed or you just wanted to run it longer. If we don't have a need to support that and want to just resume with the API, then things are working as intended.
Now that we have resuming tested, I think we are good for 0.9.1 release and if we want to add functionality where re-running the same yaml will automatically check for a checkpoint file and just resume if it finds one (and makes sure nothing else changed) then that should go in the 0.10.0 milestone.

We need more detailed tests to ensure simulations can be resumed. Such as, depending on the ensemble, we could check the sanity of some quantities (positions, velocities, energy, etc.) right after resuming to actually ensure we are doing it correctly. @mikemhenry did a great job with https://github.com/choderalab/perses/pull/821 to ensure this at some level, but I believe we might need more detailed tests.

I agree @ijpulidos we also need to test to see if SIGKILL will be an issue or not. Now that we have basic functionality tested, I'm going to move this into the next milestone.

Fixed with #830


i18n(zh-cn): update images.mdx

Description (required)
This adds an explicit note about no optimization for remote and public/ images using the standard Markdown syntax.
Related issues & labels (optional)
#8177
#7539

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

zh-cn
guides/images.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


[WIP] Introduce Dummy Policy

This will allow to test matcher error messages

I've noticed that error messages are not test, so it would be a risk to fix rubocop offences in lib/pundit/matchers.rb
Once we get 100% coverage, we can refactor offenses
Please let me know if you want me to continue on this PR

I wasn't able to find a configuration to trigger this message:
https://github.com/punditcommunity/pundit-matchers/blob/9fe6621abbc1ebf1f5cf2bbc54511ee3767c6ac6/lib/pundit/matchers.rb#L75

This looks like a good change, and I agree it's worthwhile to aim for 100% test coverage. If we could rename the policy from DummyPolicy to TestPolicy to avoid any controversy that would be great.

I wasn't able to find a configuration to trigger this message:
https://github.com/punditcommunity/pundit-matchers/blob/9fe6621abbc1ebf1f5cf2bbc54511ee3767c6ac6/lib/pundit/matchers.rb#L75

I think the intent was that if you call forbid_actions([]) the error will appear.

I wasn't able to find a configuration to trigger this message:
https://github.com/punditcommunity/pundit-matchers/blob/9fe6621abbc1ebf1f5cf2bbc54511ee3767c6ac6/lib/pundit/matchers.rb#L75

I think the intent was that if you call forbid_actions([]) the error will appear.

I've tried without success. Because it's the negated message, so if you pass an empty array it looks like it is unable to raise 🤷🏻♂
BTW i will open a new request because I've also changed the branch name