Rotation matrix multiplication order should be ZYX

i tried godot to verify some 3d transformations and found out that they were 'incorrect'.
it seems like godot uses XYZ order for rot. matrix multiplication but the correct order is ZYX (like in blender, and glm's quaternions)
im not an expert in 3d math but i read articles in internet that the correct order for euler angles is ZYX (like in quaternions) but many apps use XYZ (incorrect)
Steps to reproduce:

create an entity in blender, translate by 2,3,4 then rotate by 45,45,45 deg
compare the position with godot, try switch rotation order in blender (XYZ, YXZ - will give different position)

use this code with glm

#include <iostream>
#include <glm/vec3.hpp> // glm::vec3
#include <glm/vec4.hpp> // glm::vec4
#include <glm/mat4x4.hpp> // glm::mat4
#include <glm/gtc/matrix_transform.hpp> // glm::translate, glm::rotate, glm::scale, glm::perspective
#include <glm/gtc/matrix_inverse.hpp>
#include <glm/gtc/constants.hpp> // glm::pi
#include <glm/gtc/quaternion.hpp>
#include <glm/ext.hpp>
#include <glm/gtx/string_cast.hpp>
#include <glm/gtx/matrix_decompose.hpp>
#include <glm/gtx/quaternion.hpp>

using namespace std;
using namespace glm;

int main()
{
         mat4 rm = mat4(); // identity matrix
	// ZYX order (yaw, pitch, roll); "XYZ" in blender.
	rm = rotate(rm, radians(45.0f), vec3(0.0, 0.0, 1.0)); /// change values here to have "XYZ" order (wrong)
	rm = rotate(rm, radians(45.0f), vec3(0.0, 1.0, 0.0));
	rm = rotate(rm, radians(45.0f), vec3(1.0, 0.0, 0.0));
	//mat4 tm = mat4();
	mat4 tm = translate(vec3(2., 3., 4.));
	mat4 sm = mat4();

	mat4 modelMatrix = tm * rm * sm;
        mat4 m = modelMatrix;

	cout << "model matrix:" << endl;
	cout << to_string(m) << endl << endl;

        // Verifing it with quaternion rotation

	// quaternion rm test

	vec3 EulerAngles = radians(vec3(45, 45, 45)); // radians
	quat q1 = quat(EulerAngles);

	rm = mat4();
	rm = toMat4(q1); // quat to Rm
	m = tm * rm * sm;

	cout << "model matrix from quat:" << endl;
	cout << to_string(m) << endl << endl;

	cout << "quat:" << endl;
	cout << to_string(q1) << endl << endl;

        return 0;

}

hope it compiles
Link to minimal example project (optional but very welcome):

It's actually common to support all combinations of rotations so this may be something that needs to be added as a setting. Look for instance and BVH for animation structures where the rotation order is specified on each joint for animations. Something to keep in mind if this gets changed.

Does the orientation affect the definition of 'correct' rotation matrix?  The OP mentioned a comparison to Blender and Godot has a different orientation than Blender (Z is 'up' axis and Y is 'eye poker' axis in Blender but in Godot Z is the 'eye poker' axis and Y is 'up' axis).

@gau-veldt
yes, im aware about Z/Y-up difference, but its not related
personally im using blender and glm only to verify my own 3d math 'library'

Yeah I know this is broken, it's noted in the list of things that need to
be fixed for 3.0. If you know a good implementation for reference in how to
deconstruct and construct the euler angles that is compatible with Blender,
Unity and others let me know.
On Fri, Oct 14, 2016 at 6:35 AM, zzz125<EMAIL_ADDRESS>wrote:

@gau-veldt https://github.com/gau-veldt
yes, im aware about Z/Y-up difference, but its not related
personally im using blender and glm only to verify my own 3d math 'library'
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6816#issuecomment-253753971,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2yrQAKimQ2aQHxA5tTkAV9jmseVKks5qz0z4gaJpZM4KV8Zm
.

@reduz

If you know a good implementation for reference in how to deconstruct and construct the euler angles that is compatible with Blender
as i said, im not an expert but its in the example code that i posted

    // ZYX order (yaw, pitch, roll); "XYZ" in blender.
    rm = rotate(rm, radians(45.0f), vec3(0.0, 0.0, 1.0)); /// change values here to have "XYZ" order (wrong)
    rm = rotate(rm, radians(45.0f), vec3(0.0, 1.0, 0.0));
    rm = rotate(rm, radians(45.0f), vec3(1.0, 0.0, 0.0));

this code is compatible with both blender and glm's quaternions (i used it later to 'verify' the order')
it will will create a 45,45,45 deg rotation matrix in ZYX multiplication order (first multiply (rotate) by Z axis, then Y, then X). and in blender this order is called "XYZ" in the gui, it is a default order, you can choose "ZYX" in order in blender, but in glm it will be an "XYZ" order...
the verification part is quaternion-based transforms (blender uses them internally too AFAIK)
    // quaternion rm test

    vec3 EulerAngles = radians(vec3(45, 45, 45)); // radians
    quat q1 = quat(EulerAngles);

    rm = mat4();
    rm = toMat4(q1); // quat to Rm

here the same rotation was performed. first quaternion from euler angles was created, later it was converted to rotation matrix, and it gives the same matrix as ZYX multiplications.
if you want to test it againts XYZ matrix change these lines
    // ZYX order (yaw, pitch, roll); "XYZ" in blender.
    rm = rotate(rm, radians(45.0f), vec3(0.0, 0.0, 1.0)); /// change values here to have "XYZ" order (wrong)
    rm = rotate(rm, radians(45.0f), vec3(0.0, 1.0, 0.0));
    rm = rotate(rm, radians(45.0f), vec3(1.0, 0.0, 0.0));

to these:
    // XXX warn: XYZ order (will be called ZYX in blender)
    rm = rotate(rm, radians(45.0f), vec3(1.0, 0.0, 0.0)); // first X
    rm = rotate(rm, radians(45.0f), vec3(0.0, 1.0, 0.0)); // then Y
    rm = rotate(rm, radians(45.0f), vec3(0.0, 0.0, 1.0)); // then Z

the result will be different and incompatible with quaternion's version.
maybe it will help, it helped me to solve this in my engine

If you know a good implementation for reference in how to deconstruct and construct the euler angles that is compatible with Blender, Unity and others let me know.

I'm not sure about the deconstruction part, but the construction of the full matrix can be found here: https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix

If the only issue is converting from XYZ to ZYX, I think it can be done with minimal change, using the following relation between XYZ and ZYX rotations.
An XYZ rotation matrix is R_z(γ) R_y(β) R_x(α), where R_i(θ) denotes rotation along i-axis by θ. In quaternion representation, this corresponds to a rotation by ψ along some u axis. The transpose (=inverse) of the original rotation matrix is R_x(-α) R_y(-β) R_z(-γ), which can be interpreted as a ZYX rotation, and in angle-axis representation, it is a rotation by -ψ along the same u axis.

Found it here! The current Quat constructor is the one on page A-11 (which is X-first, Z-last) up to sign conventions (flipping the signs of θ2 and θ3 does it); the one on page A-2 is the opposite order (Z-first, X-last).
The relation I mentioned in my previous post is also there, Eq. (13).

@zzz125 A few corrections:

The correct terminology is XYZ means Z-first, Y-next, X-last, it's not read from left-to-right, it's read from right-to-left. The reason is, each letter represents a rotation matrix along the indicated axis. The matrix on the right acts first. So the blender terminology is correct, and the title of this issue should be "Rotation matrix multiplication order should be XYZ".
There is no "correct order" for Euler anglers or quaternions. You can expand a rotation matrix in infinitely many different ways. It's a matter of convention. However, the mapping between axis-angle representation (used when constructing a quaternion) and Euler angles depends on the axes you choose for your Euler angles. This is obvious I guess, because (Euler) angles are measured from some axis; if you use different axes, the angles will be different.

@zzz125 Could you try the PR #6865?

@zzz125 Can you post the gdscript code you found problematic?
One confusing and undocumented bit about godot's convention is rotations are passive (the angle in godot is flipped in comparison to the "normal" rotation matrix). For example, Matrix3(Vector3(0,0,1), PI/2)*Vector3(1,0,0) will give you (0,-1,0), not (0,1,0) because Matrix3(u, phi) gives a rotation matrix that rotates around u by -phi when applied to a vector as an active transform.
This is unlike glm or Unity or anything I've ever used, and I'm not sure whether this was intentional or not, I hope reduz can answer this, but for now, you'll need to flip the signs of your angles.
Can you please check whether this is the thing that causes your problem?

Same thing is for quaternions, godot flips the sign of the rotation angle, so Quat(u, phi) gives you a rotation matrix that rotates by -phi around u axis, when you use it as a normal (active) rotation matrix.

Correcting the angles broke some rotations in the 3D editor (spatial editor plugin). At first glance, the problem seems to be the fact that active transforms (matrices and quaternions that modify vectors are active by definition) were used for passive transformations that rotate basis vectors. I believe this is the reason why the angles were wrong in the first place.

Also I think Matrix3::rotate and Matrix3::rotated could be renamed and hidden in GDScript. Ordinarily, rotating a matrix implies R.M.Rᵀ whereas these functions are intermediate tools for constructing the model transform matrix in a particular way (which can be achieved by constructing ordinary rotation matrices in GDScript using the angle-axis constructor).

I just realized that the docs are also confusing:

Transform is the act of switching between coordinate systems. To convert a position (either 2D or 3D) from “designer” coordinate system to the OCS, the “xform” method is used.

This is a passive transformation which is not the first thing game programmers think of by default (all transformations are active on Unity and Love2D, and I'm guessing it's the same in Unreal Engine and others too). Strictly speaking, a passive transformation rotates the basis vectors of the world, and the vectors (such as position vector) are left unchanged.
I don't know how you can actually do real passive transformations in OpenGL (that is, changing the definition of basis vectors), but either case, a passive rotation leaves the vectors intact, so a passive rotation can't act on vectors.
To add more to the confusion, rotation and are like passive whereas scaling is active.
I'd be happy to submit a PR for the docs (and maybe explain more about the rotation group SO(3) and Spin(3) for those not familiar with them) if & after this PR is merged.


Renamed examples and solutions

Renamed notebooks 02, 03, 05 and 07

Was merging to master instead of symposium2019. Cancelled PR.


sir i am unable to use the tool sir

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

please run python setup.py first or manually write pip install selenium


Security Rules ternary operator not recognized

Hi Darwin(?),
I wonder if it's okay to file support requests / bug reports here?  I started evaluating your plugin (2.5.6-SNAPSHOT) today.
Description
Syntax highlighting does not recognise the ternary operator (? :).

There are also some other, unexplained syntax errors shown for what is a working .rules file. Let me know if you want to know about them.

@akauppi thanks for testing, yes, please, create report all the issues that you found.

Only add the label feature if it's something new to support.

Ternary operator is not implemented yet, I'll be working on this.

thanks for testing, issue will be fixed on version: 2.5.8


RSSI Polling only works once.

After polling the RSSI value for a BLE device using the evothings.ble.rssi function, any following attempts to poll the RSSI for the device fail with the following error message: "Previous call to rssi() not yet completed!"
It appears the mRssiContext is not being reset to null after the callbackContext (which is assigned to mRssiContext) completes.

Works fine on iOS.
The Android code in question does seem buggy. Testing a fix... it worked.


New version of ltspice2matlab does not work with Octave 4.0.0

Gentlemen,
after update to the original code of ltspice2matlab it stopped working in Octave 4.0.0.
I fixed it on my local PC, I had to revert to the old-fashioned style of string look-up.
Also newline constant has not been recognized by Octave. I would like to send you the updated code for tests.

LTspice2Matlab.zip

octave.patch.gz


Can't Disable Red Highlighting For Query Error In SQL Editor

System information:

Operating system -- Mac Monterey 12.3.1, running in a Macbook pro 14-inch M1
DBeaver version -- Version <IP_ADDRESS>204041542
Additional extensions - DBeaver Office Support

Connection specification:

Database name and version MariaDB 10.5.15
Do you use tunnels or proxies (SSH, SOCKS, etc)?  SSH

Describe the problem you're observing:
After a somewhat recent update, in the built in query editor there is a very extreme dotted red underline under my entire query when an error occurs.   It's making it very difficult to read my query and debug it.   I desperately want to turn off this setting, but cannot figure out any way to turn it off.
See attached screenshot.

Thank you so much!!!! That's exactly what I needed!!!  Hopefully this post will help someone else in the future (myself included if I forget)


Question: How to work with GridView Click Event?

Hi all,
i have got another question and since my last was answered so perfect and helped me a lot, i will try it again. :-)
I am currently working with a GridView that is populated in a model class via the ViewModel of the MainPage. When a user clicks on a GridView item i want the Frame just to navigate to another page - lets call it DetailPage.
Normally i would just use the click event property of the GridView and then type something like:
Frame.Navigate(typeof(Views.DetailPage), clickedItem);
This does not work when working with Template10 because i think i Need to use the NavigationService and its navigate()-method. I see that in the MainPageViewModel.cs there is something like:
public void GotoDetailsPage() =>             NavigationService.Navigate(typeof(Views.DetailPage), Value);
But when i try to use the NavigationService in my Code-Behind file MainPage.xaml.cs it does not work. Neither am i able to call the method GotoDetailsPage(). How may i get from the Code-Behind file MainPage.xaml.cs to the ViewModel to use the standard GotoDetailsPage()-method? How can i get the Frame to navigate to the DetailPage.xaml when a user clicks on a GridView item? There seems to be no standard way in Template10 for a GridView like for a Button (AppBarButton), which works fine with:
<AppBarButton Command="{Binding GotoDetailsCommand}" Icon="Forward" Label="Next" />
Thank you very much in advance! :-)

Okay, via ViewModel.NavigationService() or ViewModel.GotoDetailsPage() I can call the specific method of the ViewModel in the Code-Behind and I can call the NavigationService. But still the Frame does not Change its Content as expected... :-(

Omg... When i debug the Code and set a breakpoint in the click-event method from the GridView the app never seems to reach this Code... ô.0 dont know why... still searching

Okay i found it... Just forgot to set the IsItemClickEnabled property of the GridView. Something a beginner can easily forget. Why didnt MS set this property to true by Default? I dont understand... Well maybe this issue still helps somebody else. :) I will Close it now - thanks.


LED keeps defaulting back on

Never happens when using the app. LED setting keeps turning on. Can support for this be added in the app?

Yes it's can.
Need some time and motivation.

Was this completed? Still happening every time :(

Did you give motivation?

I would also be interested in a default setting for the LED (&beeping sound) to be switched off.
Use case is to be quiet for my little baby girl in the room :-)


Fixes for Background Sync Cache Processing

Makes a couple of things:

Avoids event/(null) requests and immediately fails them.
Adds some error logs around event/(null) requests.
Avoids session state back and forth when there is no cached sync responses.
Adds another bg sync cache processing round in the session if new data received when processing an old one.

Part of vector-im/element-ios#5426

LGTM. Only one comment. I added @Anderas as a reviewer because he is looking at a similar issue

I tested this branch and the issue with cancelling HTTP request and subsequently pausing the session still occurs so I think it is unrelated. I will raise separate PR


Proposed windows fixes

Hey guys, ran into and fixed some issues on my Windows machine.
Replaced line 29 with ruby equivalent because touch isn't available on most windows machines
Replaced single quotes with double quotes on line 31 since also breaking on windows
Thanks :)

Thanks a bunch!


Add mailgun driver

Proposed changes
Add Mailgun driver for sending mails
Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

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

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ x] I have read the CONTRIBUTING doc
[ x] Lint and unit tests pass locally with my changes
[x ] I have added tests that prove my fix is effective or that my feature works.
[x ] I have added necessary documentation (if appropriate)

Further comments
Previously got package was used for sending request, I have used axios which has much more detailed documentation and easy to work with. To run the test case for the mailgun, three ENV variable required:
MAILGUN_DOMAIN,
MAILGUN_API_KEY,
MAILGUN_EMAIL

I ran npm run lint -- --fix which is including the semi colon in some places, not sure what to do.

@thetutlage it seems like you have already implemented mailgun driver. So closing this out.


OJ-1257: Access  token handler coverage

Proposed changes
What changed
Added expiration date checking to session-service.
Updated access-token-handler unit test to test expired tokens.

Why did it change
The functionality was missing in ts land.

Issue tracking

OJ-1257

Checklists
Environment variables or secrets

[X ] No environment variables or secrets were added or changed

Closing to resolve conflict in new branch


Adding some changes to answer common questions

Adding minor changes to answer common questions about Cloudflare Dashboard SSO to clarify commonly asked questions to CSUP

Adding minor changes to answer common questions about Cloudflare Dashboard SSO to clarify commonly asked questions to CSUP


Changes needed for other platforms

There's some "Windows-specific" assumptions baked in here that I should change to make them work for any platform:

Usage of cmd.exe (eg https://github.com/derekantrican/ClockworkFramework/blob/master/ClockworkFramework.Core/Utilities.cs#L109 )
WriteToConsoleWithColor doesn't seem to work on Linux https://github.com/derekantrican/ClockworkFramework/blob/master/ClockworkFramework.Core/Utilities.cs#L36-L42 Actually, this is working
Maybe others? I'll expand this list if I find others

Changed how processes are executed on other platforms


[List] Fix issue with styling on list related components

The issue currently shows extra padding around list items (for menus) on the docs site.

@newoga Thanks!


Add onioncircuits filter policy

we should not merge this or at least not make a package with this new onioncircuits filter policy file until we merge Leif's pull request here https://github.com/subgraph/roflcoptor/pull/45 which also depends on his bulb patch here https://github.com/Yawning/bulb/pull/4

closing because we need to properly attribute this policy to leif. we can use his pull request and correct it later.


Bot does not enumerate '9' or '9 targets' for categories like riddle or incomplete runs

e.g. for mismatch ganon/doc '9' won't be a value. it might be enumerated as 9.00

Seems like it can still work if i input as '9' but i need to be careful when adding runs


KAFKA-18199: Fix size calculation for nullable tagged structs

When a struct field is tagged and nullable, it is serialized as
{ varint tag; varint dataLength; nullable data }, where
nullable is serialized as
{ varint isNotNull; if (isNotNull) struct s; }. The length field
includes the is-not-null varint.
This patch fixes a bug in serialization where the written value of
the length field and the value used to compute the size of the length
field differs by 1. In practice this has no impact unless the
serialized length of the struct is 127 bytes, since the varint encodings
of 127 and 128 have different lengths (0x7f vs 0x80 01).
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Thanks for the review! I've tried to address the comments.

Merged to trunk and to 3.9.


Web visualization

Hello,
I'm interested in web-based visualization of netCDF data. Are there plans for xrviz to connect with a web front-end, both for locally-hosted netCDF files, or via OPeNDaP for remotely-hosted files? In any case, if you have not considered such applications of the tech, I encourage you to think about it, and will be happy to provide a use case or two!
Beyond visualization, I'd also like to facilitate export of the subset of data being plotted (either as netCDF, or a simpler format (say, csv) for 1D arrays.  Do you know of any package that does that? If not, what would be technical hurdles to consider?
Julien

Hi @CommonClimate,

I'm interested in web-based visualization of netCDF data. Are there plans for xrviz to connect with a web front-end, both for locally-hosted netCDF files, or via OPeNDaP for remotely-hosted files?

XrViz is already having web-based frontend in the sense that interface dashboard generated is displayed in the browser. You can easily visualise local and remote files by:
import xarray as xr
from xrviz.dashboard import Dashboard

# for local data
file_name = 'file name/location here'
data = xr.open_dataset(file_name)

# for remote data
url = 'data url here'
data = xr.open_dataset(url)

dashboard = Dashboard(data)
dashboard.show()

I would like to add, that the xrviz interface can be embedded in any Panel layout you might want, or, of course, be included in a site using standard HTML techniques. The former of these two options is the one which intake plans to take, thus unifying the finding and loading of data-sets with their interactive visualisation.
(xarray can already load openDAP URLs directly, and Intake can provide such data sources, or interact with catalog or data services such as thredds which might list such resources)

Thank you @hdsingh and @martindurant for your quick and informative answers. I had a look at the intake doc and it looks very promising. However, given the examples provided, I am not exactly sure how I would go about doing what you say (embedding the xrviz interface in a Panel).  If you have a notebook/example demonstrating that, I'd love to see it.

Ah, I should have been clearer. Intake aims to embed the xrviz interface in its own GUI, but does not yet do so. Watch the space! For the time being, though, it may already be useful to you as a means of finding and loading your xarray (i.e., netcdf) data.
There are not yet any examples of how to embed xrviz in other applications, but there should eventually be. For the time being, I would advise you to read the Panel framework documentation, and feel it should not be too difficult.

Ah, my problem was that I am not plugged into the Python viz ecosystem, so didn't know about Panel as a package. After perusing the doc, it does seem like it's ideally suited to what we want to do. Do feel free to reach out if you need guinea pigs to test things out for you.
Cheers

Closing this as resolved, but please do follow our progress!


⚠ Bofrost.be has degraded performance

In 0a98eb6, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 812 ms

Resolved: Bofrost.be performance has improved in 26b3969 after 6 minutes.


Make it easier to register configuration extension ...

... options
closes #9529
Which issue does this PR close?

Closes #9529.
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Thanks again @milenkovicm


Make opcode::to_u8 a const function

In general, if a function can be const, it should be, and this one
trivially can be, so it should be.

In general, if a function can be const, it should be

API design question: Do we need to be concerned about later wanting/needing to make a function non-const, this would be an API breaking change, right?

API design question: Do we need to be concerned about later wanting/needing to make a function non-const, this would be an API breaking change, right?

Yes. It would break all user code that depends on it. Should there's some design consideration to it.

Good point @dpc -- though in this case I think it's very clear we won't ever want to remove this const.


the converter ignores size limit when using "Change Rate"

this results in a webm with a smaller filesize than desired, with very poor image quality
in the example below, the rate was changed to 150%, with the VP9 encoders

Issues
If you have any issues with this program, you may report them on new issue. Add the respective video to test and configuration used if not the issue will be closed.

the video in question is too big to upload here directly, so here's a dropbox link to it
and here are the settings used:

You are playing with the limit trying to convert 1 minute long clip in 4MB. Still in investigation the target final size.
Double pass, resize to 720, 1 minute long, 4MB.
Yu-Gi-Oh! Master Duel 2024.02.07 - <IP_ADDRESS>-5-1.webm

The last time that feature was touched in 3.18.3. When noticed it?

Happens with vp8 and vp9. The argument -maxrate:v 519430 keep the quality in op case. I don't have an algorithm for the value tho.

Maybe the new method will not work 100% of the cases but is more reliable now. Check latest update.

Can confirm it seems more reliable with cleaner results now, thank you.

thank you for your work, it seems to work correctly now!


SOLR-17534 ClusterState.getCollectionNames

https://issues.apache.org/jira/browse/SOLR-17534
This PR also calls ClusterState.size() in some places where one of the map methods were used as an intermediary.  Added javadocs to that method as well, and indicated it's an approximation.

+1. Nice and simple. There is a failing test that needs to be addressed: TestLBHttp2SolrClient.testTwoServers

testTwoServers has been unstable lately (<-- linked from build failures, conveniently); certainly isn't this PR
After maybe flipping that Set.copyOf to a Set cast in the test, I will wait till Monday to merge.  CHANGES.txt in Other section would be "Added ClusterState.getCollectionNames"

testTwoServers has been unstable lately (<-- linked from build failures, conveniently); certainly isn't this PR

Really want to disable this one and another one from the same class (or, find better solution).  They failed so frequently that It wastes lot of time. (May be discussion for dev-list)


documentation out of sync?

i am reading
https://echarts.apache.org/option.html#toolbox.feature.dataZoom.icon.zoom
and i see that the default props of
toolbox.feature.dataZoom.title.back string
is
restore area zooming
but i get some chinese character that i don't understand.
also,setting it to anything doesn't produce any change.
i am using the latest npm version that's 4.2.0-rc.1

Hi, this problem is caused because we use the same demo for English and Chinese version, and for English doc, we use default value with English version.
You may download this GitHub project and run npm i; node build/build.js --lang en to build the English version and get the default value as the doc shows. If this is too much trouble, you may also set title to overwrite the default values.


feat: updates shardwidth.Exponent to single constant

removes build time constant in favor of single constant with relevant godoc and warnings
removes code for build time config from makefile

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Christopher Lowenthal seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[ENH][SEC]: Add warning if cors is a wild card

Description of changes
Summarize the changes made by this PR.

Improvements & Bug fixes

Chroma will issue a warning at startup in server mode when a wild card is found the the chroma_server_cors_allow_origins

Test plan
How are these changes tested?

[x] Tests pass locally with pytest for python, yarn test for js, cargo test for rust

Documentation Changes
TBD
Refs: #1841

#1951  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tazarov and the rest of your teammates on  Graphite

@AlabasterAxe, wdyt? Does this make sense in light of the discussion we had on https://github.com/chroma-core/chroma/issues/1841

@AlabasterAxe, wdyt? Does this make sense in light of the discussion we had on #1841

Yeah, definitely!


$.payment.validateCardExpiry(obj.month, obj.year) does not work [expects strings]

Reproduce issue in chrome:
var obj = $el.payment('cardExpiryVal'); //=> {month: 4, year: 2020}
var val = $.payment.validateCardExpiry(obj.month, obj.year); // FAIL
var val = $.payment.validateCardExpiry(obj); // FAIL
var val = $.payment.validateCardExpiry(''+obj.month, ''+obj.year); // SUCCEED
The reason is:
$.payment.validateCardExpiry = function(month, year) {
    ...
    month = $.trim(month); // <--- BUG !! A number inputted results in empty string outputted.
    year = $.trim(year);   // <--- BUG !! A number inputted results in empty string outputted.
    ...
};

To fix:
$.payment.validateCardExpiry = function(month, year) {
    ...
    month = $.trim(''+month); // <--- BUG !! A number inputted results in empty string outputted.
    year = $.trim(''+year);   // <--- BUG !! A number inputted results in empty string outputted.
    ...
};

validateCardExpiry is for validating user inputs, hence strings. I agree that the README is not as clear as it could be about input types, but the examples are clear.
$.trim also expects string inputs but all versions I've seen auto convert, so .e.g $.trim(2016) returns "2016". There are even tests for this behavior in both jquery and zepto.
What version were you using that actually showed this behavior?


link --name documentation is unintuitive

I was initially unsure if it was possible to change the filename of the client as downloaded from link, and while in retrospect "Set link name" makes sense, I think it could be improved by making it clearer that this is specifically the filename of the client download. Potentially something along the lines of "Set the link download filename (default to random characters)" would be clearer.

Yeah fair dinkum. I'll add that and pop it on unstable.


Mat/Pat - Email with next steps before supervisor approval

We got this feedback fro Jason/Contact centre -  While the form clearly states that proof of EI acceptance/payment is required to receive leave allowance it is not clear how that is to be done.Despite the repeated check box agreement, it could easily be overlooked, and feedback is that employees often expect that the allowance does not require additional specific actions by them.
Potential Solutions -

[ ] Send the content with next steps before submission (and also after)
[ ] Change the subject to say this includes next steps
[ ] Explore how simplify the complex email logic
[ ] Explore how simplify the complex email content (subheadings?)

look at clarity in email layout with @fazil-ey


stuck at "Record Collection"

Challenge Name

Issue Description

it's two days now that ive been tweaking with this challenge but i can't seem to find a correct solution .. ive googled but the answers seem rather outdated and missing a requirement in the challenge which is (If prop is "tracks" but the album doesn't have a "tracks" property, create an empty array before adding the new value to the album's corresponding property.)
i think that i'm misunderstanding the issue but ive been working on it for two days now so please help me or at least give me a hint of where is my mistake.
Browser Information

Browser Name, Version: chromium, 53.0.2785
Operating System: ubuntu 16.04
Mobile, Desktop, or Tablet: desktop

Your Code

// Setup
var collection = {
    "2548": {
      "album": "Slippery When Wet",
      "artist": "Bon Jovi",
      "tracks": [
        "Let It Rock",
        "You Give Love a Bad Name"
      ]
    },
    "2468": {
      "album": "1999",
      "artist": "Prince",
      "tracks": [
        "1999",
        "Little Red Corvette"
      ]
    },
    "1245": {
      "artist": "Robert Palmer",
      "tracks": [ ]
    },
    "5439": {
      "album": "ABBA Gold"
    }
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function updateRecords(id, prop, value) {
  if (prop != "tracks" && value !== "") {
    collection[id][prop] = value;
  } else if (prop == "tracks" && collection[id][prop] === undefined) {
    collection[id][prop] = [];
    collection[id][prop] = value;
  }else if (prop == "tracks" && value !== "") {
    collection[id][prop].push(value);
  } else if (value === "") {
    delete collection[id][prop];
  }

  return collection;
}

// Alter values below to test your code
updateRecords(5439, "tracks", "Take a Chance on Me");

Screenshot

i think there's some issue with the challenge itself

Hey @BahaaZidan! Thank you for the detailed report. As VarCI-bot reported, the issue tracker is only for bugs. You can use the "Help" button in the challenge for coding help. For this challenge, it will take you to the HelpJavascript chatroom. Don't worry, you're really close. This isn't an issue with the challenge itself, there's a small issue in your code.
Happy coding!

Hi @AndreiLuca99! As I said in my comment above, please use the "help" button to get help 🙂
I know for a fact that Bahaa got things working, and that his issue was an issue in his code, not with the challenge.
Good luck, and happy coding!


When glk::Splatting is drawn, wireframe is not drawn correctly

Related to https://github.com/koide3/iridescence/issues/92#issuecomment-2029586152
This disappearance seems to occur when Splatting is drawn.
In the following code, are glDisable and glEnable swapped?
https://github.com/koide3/iridescence/blob/ac17e6a3b0219e0653de73c683d1c5bdba5defa7/src/glk/splatting.cpp#L93-L107

Ah, thanks for finding it. That is the cause. It wrongly enables face culling after drawing splats. I also noticed that the same issue occured when rendering transparent objects due to a similar problem stems  from the face culling mode. I just pushed an update https://github.com/koide3/iridescence/pull/96/files that should fix the issue.


Pluigin not tracking?

Whenever I do a BH run or Herb/Tree run, the timers always just say "ready"
Even when I do a new run, the timers never start/reset?
What do i have to do to get them to work?


170710 connect ap column

https://cucumber.atlassian.net/browse/ISSUES-286
https://cucumber.atlassian.net/browse/ISSUES-287


Add multi-groupe support

In the current version, there is only one groupe available to chat.
Add the ability to create new groupes and display them into the Home view.

Wainting on risichat-back to support the feature


Set up Dependabot for generators.yml and fern.config.json

As a user, I want to install the dependabot app and have a notification that a new version of the fern cli or any generator I'm using is now available.

ChatGPT:
If you are using a custom file format for specifying dependencies, such as your generators.yml file, you may need to teach Dependabot how to understand and update these dependencies. You can do this by creating a configuration file for Dependabot, called a .dependabot/config.yml, in the root of your repository.
In the configuration file, you can specify rules and patterns for Dependabot to follow when searching for and updating dependencies in your custom file. For example, you might specify the file path of your generators.yml file and the specific field or fields that contain the dependencies you want Dependabot to update. You can also specify the type of update you want Dependabot to perform (e.g. patch, minor, or major) and the range of versions that Dependabot should consider when searching for updates.
Here is an example of what your .dependabot/config.yml file might look like for updating the dependencies in your generators.yml file:
version: 2
update_configs:
  - package_manager: custom
    directory: '/'
    update_schedule: daily
    file:
      - path: generators.yml
        dependencies:
          - name: '*'
            version: '*'
            update_type: patch

This would be sick

Relevant: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates
ChatGPT is wrong here about the keys and values possible. I don't see package_ecosystem or custom listed in the docs.
The default starter config is:
version: 2
updates:
  - package-ecosystem: "" # See documentation for possible values
    directory: "/"
    schedule:
      interval: "weekly"


TypeError: dot() got an unexpected keyword argument 'trans_b'

Hi all,
I am working on integrating the Triton version of Flash Attention in a GPT-like model.
For some reason I am receiving this error: TypeError: dot() got an unexpected keyword argument 'trans_b'
Here is a snippet of the code where the error is occurring:
import math
from dataclasses import dataclass, asdict

import torch
import torch.nn as nn
import flash_attn.flash_attn_triton as flash_attn_triton

from einops import rearrange, repeat

@dataclass
class GPT2Config:
    num_heads = 8
    head_dim = 64
    hidden_dim = 512
    attn_pdrop = 0.1
    resid_pdrop = 0.1

class NewGELUActivation(nn.Module):
    """
    Implementation of the GELU activation function currently in Google BERT repo (identical to OpenAI GPT). Also see
    the Gaussian Error Linear Units paper: https://arxiv.org/abs/1606.08415
    """

    # noinspection PyMethodMayBeStatic
    def forward(self, x: torch.Tensor) -> torch.Tensor:
        return (
            0.5 * x * (1.0 + torch.tanh(
                math.sqrt(2.0 / math.pi)
                * (x + 0.044715 * torch.pow(x, 3.0))
            ))
        )

class Conv1D(nn.Module):
    """
    1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2).
    Basically works like a linear layer but the weights are transposed.
    Args:
        nf (`int`): The number of output features.
        nx (`int`): The number of input features.
    """

    def __init__(self, nf, nx):
        super().__init__()
        self.nf = nf
        w = torch.empty(nx, nf)
        nn.init.normal_(w, std=0.02)
        self.weight = nn.Parameter(w)
        self.bias = nn.Parameter(torch.zeros(nf))

    def forward(self, x):

        size_out = x.size()[:-1] + (self.nf,)
        x = torch.addmm(self.bias, x.view(-1, x.size(-1)), self.weight)
        x = x.view(size_out)

        return x

class GPT2Attention(nn.Module):
    def __init__(self, config):
        super().__init__()
        self.config = config
        inner_dim = config.num_heads * config.head_dim
        self.c_attn = Conv1D(3 * inner_dim, config.hidden_dim)
        self.c_proj = Conv1D(config.hidden_dim, inner_dim)

        self.attn_dropout = nn.Dropout(config.attn_pdrop)
        self.resid_dropout = nn.Dropout(config.resid_pdrop)

    def forward(self, x):
        batch_size, seq_len, hidden_dim = x.shape
        num_heads, head_dim = self.config.num_heads, self.config.head_dim

        # x.shape -> torch.Size([1, 512, 512])

        qkv = self.c_attn(x).chunk(3, dim=-1)

        q, k, v = map(lambda t: rearrange(t, 'b n (h d) -> b n h d', h = num_heads), qkv)

        # batch_size, seq_len, num_heads, head_dim
        # q.shape, k.shape, v.shape -> torch.Size([1, 512, 8, 64])

        flash_attn_out = flash_attn_triton.flash_attn_func(
            q,
            k,
            v,
            None,
            True,
            1.0
        )

        out = flash_attn_out.contiguous().view(
            batch_size, seq_len, hidden_dim
            )

        attn_out = self.c_proj(out)

        attn_out = self.resid_dropout(attn_out)

        return attn_out

# Test GPT2Attention
config = GPT2Config()

attention = GPT2Attention(config).to(torch.float16).cuda()

print(attention(torch.randn(1, 512, 512).to(torch.float16).cuda()))

Any help would be appreciated.
Thank you,
Enrico

On the latest master branch, you can use tl.trans(b) explicitly. See https://github.com/openai/triton/blob/main/python/tutorials/06-fused-attention.py#L165 for example

I will update the source code for the Triton Flash Attention implementation with your recommendation. And report back.
Thank you for the advice.
Enrico

@ptillet I tried both the most updated stable version of Triton and the nightly build available. I am using Python 3.9 and CUDA 11.3. I am now receiving the error AttributeError: module 'triton.language' has no attribute 'trans' at:
        qk += tl.dot(q, tl.trans(k))

Thank you,
Enrico

you should install from source. The nightly build is about a month and half old, as new nightly builds are way less stable than the old one. We plan a triton alpha release in ~2 weeks.

Ok. I will try installing from source now.

@conceptofmind , let me know if you get building from source to work. So far, I haven't managed to get it to work, which could 100% be an issue on my end.

@vedantroy I have not had any success building from source either. Throws an error.

What error are you guys having? The build should be quite smooth.

Here is where it breaks:

/home/henry/triton/lib/Target/LLVMIR/LLVMIRTranslation.cpp:21:10: fatal error: filesystem: No such file or directory
     #include <filesystem>
              ^~~~~~~~~~~~
    compilation terminated.
    lib/Target/LLVMIR/CMakeFiles/obj.TritonLLVMIR.dir/build.make:78: recipe for target 'lib/Target/LLVMIR/CMakeFiles/obj.TritonLLVMIR.dir/LLVMIRTranslation.cpp.o' failed
    make[2]: *** [lib/Target/LLVMIR/CMakeFiles/obj.TritonLLVMIR.dir/LLVMIRTranslation.cpp.o] Error 1
    make[2]: Leaving directory '/home/henry/triton/python/build/temp.linux-x86_64-3.9'
    CMakeFiles/Makefile2:2755: recipe for target 'lib/Target/LLVMIR/CMakeFiles/obj.TritonLLVMIR.dir/all' failed
    make[1]: *** [lib/Target/LLVMIR/CMakeFiles/obj.TritonLLVMIR.dir/all] Error 2
    make[1]: Leaving directory '/home/henry/triton/python/build/temp.linux-x86_64-3.9'
    Makefile:148: recipe for target 'all' failed
    make: *** [all] Error 2
    Traceback (most recent call last):
      File "<string>", line 2, in <module>
      File "<pip-setuptools-caller>", line 34, in <module>
      File "/home/henry/triton/python/setup.py", line 171, in <module>
        setup(
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/site-packages/setuptools/command/develop.py", line 34, in run
        self.install_for_development()
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/site-packages/setuptools/command/develop.py", line 114, in install_for_development
        self.run_command('build_ext')
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/henry/triton/python/setup.py", line 126, in run
        self.build_extension(ext)
      File "/home/henry/triton/python/setup.py", line 168, in build_extension
        subprocess.check_call(["cmake", "--build", "."] + build_args, cwd=self.build_temp)
      File "/home/henry/anaconda3/envs/palm/lib/python3.9/subprocess.py", line 373, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'TritonRelBuildWithAsserts', '--', '-j24']' returned non-zero exit status 2.
    [end of output]

Obtaining file:///home/henry/triton/python
Collecting cmake (from triton==2.0.0)
  Downloading https://files.pythonhosted.org/packages/e9/67/3d545c3a706bc427b1bd2a9108e3986dfc8c1450be0da8149fe591902875/cmake-3.25.0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-7nv5_q__/cmake/setup.py", line 8, in <module>
        from skbuild import setup
    ModuleNotFoundError: No module named 'skbuild'

    ----------------------------------------

@ptillet
Here's my build error: https://github.com/openai/triton/issues/1096
If you need more  reproducibility, I can try to  throw together a docker container that  fails to build triton.

@conceptofmind what compiler version are you using. It seems like your compiler doesn't support
@vedantroy it looks like the LLVM download was interrupted somehow during your install. Triton installer currently doesn't check md5 or integrity of the downloaded archive. Can you delete ~/.triton/cache and retry?

@ptillet I am pretty sure it is GCC on Ubuntu 18.04. I will have to check when I get back. I was also having a problem with the installation constantly stopping. I would have to keep installing it to progress. It stopped working around 91%.

@conceptofmind @ptillet , I can reproduce conceptofmind's skbuild error with the following docker:
FROM nvidia/cuda:11.6.0-devel-ubuntu18.04 as dep_triton

ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y git software-properties-common
RUN apt install -y python3-pip
RUN git clone https://github.com/openai/triton.git \
    && cd triton/python \
    && git checkout d3e753b5c00bbae855b283adf3d3a5d6d1547830 \
    && python3 -m pip install cmake scikit-build \
    && python3 -m pip wheel --wheel-dir /tmp/dist . --verbose

Yeah, Ubuntu 18.04 includes GCC 7.5.0 by default, which doesn't support C++17. You can still use Ubuntu 18.04 but you have to install a more recent version of gcc/clang. As for the other errors, we'll look into it when we have some time, we're still firefighting some issues with the new backend.

And FYI wheel built on Ubuntu 22 + CUDA 12 should work everywhere. Triton isn't tied to any CUDA version.

I will update my gcc/clang compiler later and let you know if the issue is resolved.

@ptillet Works now with gcc/g++ 9. Was able to install from the source and run the Triton version of Flash Attention.

I solved the issue uninstalli it  triton, intalling and again uninstall it


Drug index : I : Refactor chembl.py plug-in in ck_compound branch to read data from file

The chembl.py module currently queries the ChEMBL API to retrieve compounds with clinical trial data and compounds with mode of action annotation. To make the pipeline reproducible, the API call responses should be saved in files that are read in by the chembl.py module to generate the drug index.

Done in branch af-drug in data_pipeline

Closing as deployed via 19.06 release.


Add option to disable calling compinit.

Add variable ZSH_DISABLE_COMPINIT. When set to true, stops omzsh from invoking compinit.
Particularly useful when Omzsh is being used as a plugin by zgen, antigen, etc., and the user wants to call compinit later.

compinit needs to be called because many plugins rely on it to call compdef.

@mcornella compinit  needs to be called once, at the end. Sometimes ohmyzsh is used as a library, instead of a package manager (eg. with zgen) and we would like for ohmyzsh to not call compinit a second time, as it can be perceptibly slow.
It's fine for this not to be upstreamed, as downstream package managers can be more explict about piecing out ohmyzsh.
For anyone else that stumbles across this, https://github.com/mfarrugi/.dots/blob/master/zsh/_zsh_plugins.zsh#L16 is my config for zplug which doesn't end up calling compinit twice.


chromium,chromedriver: 126.0.6478.182 -> 127.0.6533.72

Description of changes
This update includes 22 security fixes.
CVEs:
CVE-2024-6988 CVE-2024-6989 CVE-2024-6991 CVE-2024-6994 CVE-2024-6995
CVE-2024-6996 CVE-2024-6997 CVE-2024-6998 CVE-2024-6999 CVE-2024-7000
CVE-2024-7001 CVE-2024-7003 CVE-2024-7004 CVE-2024-7005
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 330023 run on x86_64-linux 1

1 package failed to build:

gotenberg

20 packages built:

aws-azure-login
chromedriver
chromium
chromium.sandbox
fast-cli
flaresolverr
grafana-kiosk
mermaid-cli
mermaid-filter
percollate
playwright-test
puppeteer-cli
selendroid
selenium-server-standalone
sharedown
single-file-cli
sitespeed-io
undetected-chromedriver
vhs
wayback

# git describe --abbrev=40
24.11-pre-27603-g9cb99744c338ed8c6b53bcda61b2fb5c77d4563a
# nix-build nixos/tests/chromium.nix -A stable
/nix/store/cbn1m8bb2xgkdzdcgi4pjfj4dkjhb0db-vm-test-run-chromium-stable


LastLedgerSequence error

send xrp always get error:
let tx = {
        Fee: xrpMAP.tx_cost,
        TransactionType: 'Payment',
        Account: fromAddress,
        Amount: xrpl.xrpToDrops(amtXRP),
        Destination: toAddress,
        LastLedgerSequence: validated_ledger + 77, // 2 mins to confirm
        Memos: [
            {Memo: {MemoData: xrpl.convertStringToHex(recordId)}},
            {Memo: {MemoData: xrpl.convertStringToHex(tagInt)}},
        ]
    }
    if (tagInt) {
        tx.DestinationTag = parseInt(tagInt); // int need
    }
    console.log(`xrp-send-data-${JSON.stringify(tx)},${recordId}`);
    let res = await client.submitAndWait(tx, {
        autofill: true,
        failHard: true,
        wallet: fromWallet,
    }).then(res => res.result).catch(err => console.log(`xrp-send-error-${recordId}`, err));

always return error XrplError: The latest ledger sequence 73215626 is greater than the transaction's LastLedgerSequence (73215625).
how to optimize this

upgrade tx cost
validated_ledger  get from server_state then add 77

still always error?  what should i do

The relevant xrpl.js issue was closed: https://github.com/XRPLF/xrpl.js/issues/2052 so I think this issue can also be closed.


Add/primitives

TODO:

[ ] test the new changes
[ ] fix the contract tests that use the consts

Still needs to be tested, and we need to fix the tests

Additionaly we could store 2 primitives for player 1 and 2 so they can have differnt stats
could be interesting for:

classes
a meta game(where we can favor someone in the duel) Like for your tournament idea @knownasred


Manual Control

How to accelerate in manual mode?

This depends on the selected action type, but generally you can find the controls here:
https://github.com/eleurent/highway-env/blob/d33b57ae73c233e59c86180f1d1d460964b026a6/highway_env/envs/common/graphics.py#L165
TLDR: right key for discrete actions, and up key for continuous actions (not consistent, I know...)


SA1623 - Property summary documentation in private class

After updating to Beta 17 I am getting SA1623 reported for the following scenario (note the class is private):
private class TestClass
{
    /// <summary>
    /// Gets the name
    /// </summary>
    public string Name { get; private set; }
}

It thinks that the summary should start with "Gets or sets". The analyzer gets confused because the effective accessibility of the getter/setter is determined to be private due to the fact that is in contained in a private class.
I started trying to fix this but it's rather tricky. It's a low priority for me because we very rarely use private classes.
For what it's worth, I think the following unit test should pass.
    [Theory]
    [InlineData("public", "int", "{ get; set; }", "Gets or sets")]
    [InlineData("public", "int", "{ get; protected set; }", "Gets or sets")]
    [InlineData("public", "int", "{ get; protected internal set; }", "Gets or sets")]
    [InlineData("public", "int", "{ get; internal set; }", "Gets")]
    [InlineData("public", "int", "{ get; private set; }", "Gets")]
    [InlineData("public", "int", "{ get; }", "Gets")]
    [InlineData("public", "int", "{ get; } = 0;", "Gets")]
    [InlineData("public", "int", "=> 0;", "Gets")]
    [InlineData("public", "int", "{ set { } }", "Sets")]
    [InlineData("public", "int", "{ internal get { return 0; } set { } }", "Sets")]
    [InlineData("public", "int", "{ private get { return 0; } set { } }", "Sets")]
    [InlineData("public", "bool", "{ get; set; }", "Gets or sets a value indicating whether")]
    [InlineData("public", "bool", "{ get; }", "Gets a value indicating whether")]
    [InlineData("public", "bool", "{ get; } = true;", "Gets a value indicating whether")]
    [InlineData("public", "bool", "=> true;", "Gets a value indicating whether")]
    [InlineData("public", "bool", "{ get; private set; }", "Gets a value indicating whether")]
    [InlineData("public", "bool", "{ set { } }", "Sets a value indicating whether")]
    [InlineData("public", "bool", "{ private get { return false; } set { } }", "Sets a value indicating whether")]
    [InlineData("protected", "int", "{ get; private set; }", "Gets")]
    [InlineData("protected", "int", "{ private get { return 0; } set { } }", "Sets")]
    [InlineData("protected internal", "int", "{ get; internal set; }", "Gets")]
    [InlineData("protected internal", "int", "{ get; private set; }", "Gets")]
    [InlineData("protected internal", "int", "{ internal get { return 0; } set { } }", "Sets")]
    [InlineData("protected internal", "int", "{ private get { return 0; } set { } }", "Sets")]
    [InlineData("internal", "int", "{ get; private set; }", "Gets")]
    [InlineData("internal", "int", "{ private get { return 0; } set { } }", "Sets")]
    public async Task VerifyDocumentationOfPublicMethodInPrivateClassWillProduceDiagnosticAsync(string accessibility, string type, string accessors, string expectedArgument)
    {
        var testCode = $@"
public class TestClass
{{
    private class PrivateTestClass
    {{
        /// <summary>
        /// The first test value.
        /// </summary>
        {accessibility} {type} TestProperty {accessors}
    }}
}}
";

        var fixedTestCode = $@"
public class TestClass
{{
    private class PrivateTestClass
    {{
        /// <summary>
        /// {expectedArgument} the first test value.
        /// </summary>
        {accessibility} {type} TestProperty {accessors}
    }}
}}
";

        var expected = this.CSharpDiagnostic(PropertySummaryDocumentationAnalyzer.SA1623Descriptor).WithLocation(9, 11 + accessibility.Length + type.Length).WithArguments(expectedArgument);

        await this.VerifyCSharpDiagnosticAsync(testCode, expected, CancellationToken.None).ConfigureAwait(false);
        await this.VerifyCSharpDiagnosticAsync(fixedTestCode, EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false);
        await this.VerifyCSharpFixAsync(testCode, fixedTestCode).ConfigureAwait(false);
    }

@vweijsters What did StyleCop Classic report in this case?

According to the documentation, "restricted accessibility" is defined as one accessor method being accessible to a larger number of members than the other. In the example above, this is certainly the case. I believe the solution for this is to use the declared accessibility instead of the effective accessibility.

Yes it is that simple. My unit tests pass after that change. Since you've started I'll leave you to work on it.

I used your unit test, but I massively simplified the accessibility checks (down to two lines). I'll post a code review soon.

The proposed solution is not correct. There is a bug in the implementation regarding the private setter mentioned in the example, but the implementation is correct for other cases. Below the relevant quote from the documentation:

3 The property is private or is contained beneath a private class, and the set accessor has any access modifier other than private.

@vweijsters That's the conclusion I came to as well.

Point 1 does not cover everything, for example an public property with a protected setter should have the Gets or sets text.
I would say public, protected and protected internal must be document, as these are part of the public API of a component.  Internal and private should not be documented. It could be a future extension to control flagging of internals with a property in the settings file.
The second point is part of the C# language specification (section 10.7.2), so no need to do anything there.

@vweijsters The rules I suggested as preferable are certainly not equivalent to the documented rules. I was just saying they would be easier to explain, and much easier to implement.

@sharwell I figured that much and I think that would be a good thing. The point I was trying to make is that your suggested rules do not cover all cases that I think should be documented, the given example being the most prominent issue.
I do think that it is desirable to simplify the rules, hence the alternative suggestion in my post.

I think I finally figured this out... PR coming if tests actually pass.


Proposal: AnimatedVisualPlayer to have Loop property and/or PlaybackFinished event

Proposal: AnimatedVisualPlayer to have Loop property and/or PlaybackFinished event

Summary
I propose adding a property for controlling looping, and an event to fire once Playback has finished.
Rationale
There is no way (that I can see) to control looping and playback at the moment, aside from using PlayAsync. This does not work well in a XAML environment. It would be nice to have a property for controlling the looping.

Scope

Capability
Priority

Add a Loop property
Must

Add a PlaybackFinished event
Should

Important Notes

Open Questions

Any update on a playback finished event would be really useful and would align functionality to most other media playing controls.


add email HTML generation with OTP and host for branch #48

add activation link with OTP and host to utils/mailBuilder/UserOtpMail.xsl
it should take host and port from local.properties and send it to registered user.
test for this issue: org.itevents.util.mail.MailBuilderUtilTest#shouldReturnMailWithActivationLink
Currently it's sending empty email

@AndriyBaibak time spent: 1h


Typos in documentation page lovelace_config.yaml examples

Got this all up and running! Awesome work porting this over from the Dark Sky card!
I noticed a couple of typos that I had to fix to make the card work.
On the main documentation page in the template sensor wbit_alt_wind it still references "dark_sky":
wbit_alt_wind:   value_template: >-                   {% set winddir = ['North','North-Northeast','Northeast','East-Northeast','East','East-Southeast','Southeast','South-Southeast','South','South-Southwest','Southwest','West-Southwest','West','West-Northwest','Northwest','North-Northwest','North'] %}                   {{ states('sensor.dark_sky_wind_speed') | round }} mi/h from the {{ winddir[((states('sensor.dark_sky_wind_bearing') | float / 360)*16) | round]}}
And in your lovelace_config.yaml example the sun entity is referenced as "entity_sun: sun.sun" instead of just "entity: sun.sun"
entity_summary_5: sensor.wbit_day6_text entity_sun: sun.sun entity_daytime_high: sensor.wbit_day1_high
Just to save any copy/pasters out there like me some hunting in the future!

Really glad you were able to get it working.  Thanks for pointing out the Dark Sky typo - missed that when I was editing the documentation.  I've updated the documentation, including the card picture and the config.
It is entity_sun: sun.sun, that is not a typo.  The Lovelace config shown is taken directly from my working instance.

Oh, interesting. I had to change it to entity: sun.sun to display the card.  Wonder why there's a difference there?

I have no idea why that is working for you. If I change my card config to entity: sun.sun, I see the card but there the sunrise and sunset entries disappear.


Helpdesk webpages are missing alot of images

Preflight Checklist

[x] I agree to follow the Code of Conduct that this project adheres to.
[x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Describe the bug
Like title says, a lot of the pages in the documentation are missing their images.

Expected behavior
The docs/help feature need images to be fully readable and understandable.
Screenshots

Hi, if you open these articles in other browser and Incognito mode, does it help? Also, check the URL in your address bar.
I use Chrome Version 86.0.4240.198 (Official Build) (64-bit) and Win10 and all is displayed fine.

I've tried Firefox, Edge, Internet Explorer, Chrome. They all have the same issue.
If I look at the source code of the webpages, I notice that the missing images all have relative paths to the files.
Example : /download/attachments/7962715/image2015-7-31%2015%3A45%3A10.png
The working images all have a full path.
Example: https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/16003339799/original/papersize.png
If you are browsing the webpages using a different URL/domain (i.e. on an intranet solution) this could explain why you're not experiencing the same problem as external users.

Hi there
Sorry, I didn't notice you've sent me a direct email instead of posting in
the github thread. (I've posted my reply there, tough.)
On Mon, Nov 16, 2020 at 10:52 AM mararad<EMAIL_ADDRESS>wrote:

Hi, if you open these articles in other browser and Incognito mode, does
it help? Also, check the URL in your address bar.
I use Chrome Version 86.0.4240.198 (Official Build) (64-bit) and Win10 and
all is displayed fine.
[image: images]
https://user-images.githubusercontent.com/44292306/99238214-c1ff3500-27f9-11eb-8ffb-3c256221eb78.JPG
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jgraph/drawio/issues/1424#issuecomment-727867879, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEXY3GSHSGVVPNH6H3BBUQLSQDY53ANCNFSM4TVNHYVA
.

We are migrating all the FAQ content, https://www.diagrams.net/doc/faq/, once that is complete it will show correctly.
Thanks for the report.

We are migrating all the FAQ content, https://www.diagrams.net/doc/faq/, once that is complete it will show correctly.
Thanks for the report.


Don't use str for inner classes in nested JSONs

Python supports inner classes and they work just fine in incoming, it's just a
matter of scoping them correctly :) Also, the documentation shouldn't hint
users to use strings instead because it's not as powerful and it can be
harmful.
For example, using proper classnames, Python will complain at compile time if a
name is wrong. If using strings, the error would go unnoticed until the code
path is executed.

Yes. That was purposely done even when I know that the same can be done without strings. The rationale behind doing that was that it should not be limited as to where you put the inner classes inside your class or how you order them. While in your example, you put it at the beginning of the class, I may want to put the same class at the very end. Its just how I might want to organize my code.
Now, I am not saying that is necessarily the way I (that is me) would do it. But someone else may want that. So this was just done for the sake of flexibility.
What is your opinion on this? Do you think this is just an extra step towards trying to be flexible and may not really offer as much good as much harm it is capable of doing? I do agree with your point of error going unnoticed until the code path is executed.

My idea was just to remove it, be Pythonic and use the most Pythonic solution (which is clearly use proper scoping and not hacking around it using strings! :). If someone needs to use this using an inner class before defining it, I'm pretty sure that they would check the code and see that passing a string would work in this case. But I would definitely not encourage it.
In my experience, it's good to state the best approach only :) By explaining that strings are also valid you would be reinforcing a bad practice and quite a few people would get burnt in the mid-long term. Always use as much of the language as possible to defend agains coding mistakes.


The dialog Find don't keep the size

Hello.
If I resize the dialog Find, it don't keep the size, after I reopen VSCODE.

VSCode Version: 1.15.1  32-bit
OS Version: Windows 10  64-bit

Steps to Reproduce:

open vscode
Edit > Find  (the dialog is too small)
resize the dialog
close vscode
open vscode
Edit > Find  (the dialog is too small)

Reproduces without extensions: Yes
Best regards
Danilo

I have the same problem on different platform:

VSCode Version: Code 1.15.1 (41abd21afdf7424c89319ee7cb0445cc6f376959, 2017-08-16T17:15:57.756Z)
OS Version: Darwin x64 15.6.0
Extensions: none

SOLVED.
On the VSCode 1.17.0


(TF 2.0)My custom loss doesn't works.

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Window 10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): 2.0
Python version: 3.7
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: 10.0 / 7.6.0
GPU model and memory: 8G

I have made my custom loss like below:
def inner_loss(model, penalty=0.001):
    for i in range(model.layers[3].trainable_variables[1].shape[3]):
         for j in range(i + 1, model.layers[3].trainable_variables[1].shape[3]):
            pw_kernel_i = tf.squeeze(model.layers[3].trainable_variables[1][:, :, :, i])
            pw_kernel_j = tf.squeeze(model.layers[3].trainable_variables[1][:, :, :, j])
            model.add_loss(lambda: penalty * tf.tensordot(pw_kernel_i, pw_kernel_j, 1))
    return

@tf.function
def train_one_step(model, x, y, optimizer):
    with tf.GradientTape() as tape:
        logits = model(x, training=True)
        loss = _criterion(y_true=y, y_pred=logits)

        inner_loss(model, 0.001)
        loss += sum(model.losses)

    grads = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(grads, model.trainable_variables))
    return loss, logits

And I have this error code:
TypeError: An op outside of the function building code is being passed
a "Graph" tensor. It is possible to have Graph tensors
leak out of the function building context by including a
tf.init_scope in your function building code.
For example, the following function will fail:
@tf.function
def has_init_scope():
my_constant = tf.constant(1.)
with tf.init_scope():
added = my_constant * 2
The graph tensor has name: Squeeze_4030:0
Why does this error occur?

@jyh2378, Looks like code is incomplete to replicate the reported issue. Please provide the complete code. Thanks!

@gadagashwini This is my full code:
import time
from data_pipe import *

train_dataset, test_dataset = load_tensorflow_dataset("D:/DataSet/cifar10", batch_size=128)

model = tf.keras.Sequential([tf.keras.layers.Conv2D(32, (3, 3), strides=1, padding='same', kernel_regularizer=tf.keras.regularizers.l2(l=0.001), input_shape=(32,32,3)),
                             tf.keras.layers.BatchNormalization(),
                             tf.keras.layers.ReLU(),
                             tf.keras.layers.SeparableConv2D(64, (3, 3), strides=1, padding='same', depthwise_regularizer=tf.keras.regularizers.l2(l=0.001)),
                             tf.keras.layers.BatchNormalization(),
                             tf.keras.layers.ReLU(),
                             tf.keras.layers.SeparableConv2D(128, (3, 3), strides=2, padding='same', depthwise_regularizer=tf.keras.regularizers.l2(l=0.001)),
                             tf.keras.layers.BatchNormalization(),
                             tf.keras.layers.ReLU(),
                             tf.keras.layers.SeparableConv2D(128, (3, 3), strides=1, padding='same', depthwise_regularizer=tf.keras.regularizers.l2(l=0.001)),
                             tf.keras.layers.BatchNormalization(),
                             tf.keras.layers.ReLU(),
                             tf.keras.layers.GlobalAveragePooling2D(),
                             tf.keras.layers.Dense(10)
])

optimizer = tf.keras.optimizers.Adam(lr=0.001)

_criterion = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

def inner_loss(model, penalty=0.001):
    for i in range(model.layers[3].trainable_variables[1].shape[3]):
         for j in range(i + 1, model.layers[3].trainable_variables[1].shape[3]):
            pw_kernel_i = tf.squeeze(model.layers[3].trainable_variables[1][:, :, :, i])
            pw_kernel_j = tf.squeeze(model.layers[3].trainable_variables[1][:, :, :, j])
            model.add_loss(lambda: penalty * tf.tensordot(pw_kernel_i, pw_kernel_j, 1))
    return

@tf.function
def train_one_step(model, x, y, optimizer):
    with tf.GradientTape() as tape:
        logits = model(x, training=True)
        loss = _criterion(y_true=y, y_pred=logits)

        inner_loss(model, penalty=0.001)
        loss += sum(model.losses)

    grads = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(grads, model.trainable_variables))
    return loss, logits

@tf.function
def test_one_step(model, x, y):
    logits = model(x, training=False)
    loss = _criterion(y_true=y, y_pred=logits)
    return loss, logits

templete = ("\r[{0:3}/{1}]\t"
            "Time per epoch: {epoch_time:.3f}\t"
            "Time per batch: {batch_time:.3f}\t"
            "Loss: {loss:.4f}\t"
            "Top1 Acc: {top1:.4f}")

def train(model, train_dataset, optimizer):
    train_batch_time = tf.keras.metrics.Mean()
    train_loss = tf.keras.metrics.Mean()
    train_acc = tf.keras.metrics.SparseCategoricalAccuracy()

    epoch_time = 0
    for batch_idx, (x, y) in enumerate(train_dataset):
        start_time = time.time()
        loss, logits = train_one_step(model, x, y, optimizer)
        train_loss(loss), train_acc(y_true=y, y_pred=logits)

        elapsed_time = time.time() - start_time
        train_batch_time(time.time() - start_time)
        epoch_time += elapsed_time
        print(templete.format(batch_idx + 1, 391,
                              epoch_time=epoch_time,
                              batch_time=train_batch_time.result().numpy(),
                              loss=train_loss.result().numpy(),
                              top1=train_acc.result().numpy()),
              end='')
    print(templete.format(batch_idx + 1, 391,
                          epoch_time=epoch_time,
                          batch_time=train_batch_time.result().numpy(),
                          loss=train_loss.result().numpy(),
                          top1=train_acc.result().numpy()),
          end='\n')
    return

def validation(model, test_dataset):
    test_batch_time = tf.keras.metrics.Mean()
    test_loss = tf.keras.metrics.Mean()
    test_acc = tf.keras.metrics.SparseCategoricalAccuracy()

    epoch_time = 0
    for batch_idx, (x, y) in enumerate(test_dataset):
        start_time = time.time()
        loss, logits = test_one_step(model, x, y)
        test_loss(loss), test_acc(y_true=y, y_pred=logits)

        elapsed_time = time.time() - start_time
        test_batch_time(time.time() - start_time)
        epoch_time += elapsed_time

    print("(validation acc)", test_acc.result().numpy())
    return test_acc.result().numpy()

# training!
max_acc = 0
for epoch in range(250):
    if epoch % 5 == 4:
        optimizer.lr = optimizer.lr * 0.9
        print(optimizer.get_config())
    print("epoch", epoch)
    train(model, train_dataset, optimizer)
    val_acc = validation(model, test_dataset)
    if val_acc > max_acc:
        max_acc = val_acc
        model.save_weights("saved_model/mobilenet/5/experiment_l1l2inner.h5")
        print(epoch, "epoch model was saved")

@jyh2378, Thanks for the code.
I tried to replicate the issue, i am unable to import the data_pipe.
ModuleNotFoundError: No module named 'data_pipe'. Please help us to replicate the issue. Thanks!

@gadagashwini  Oh, 'data_pipe' is my custom loading data code.
This code return tf.data.dataset of cifar10.
So you can reproduce this by using below code:
import tensorflow as tf
(x_tr, y_tr), ( x_te, y_te) = tf.keras.datasets.cifar10.load_data()
train_dataset = tf.data.Dataset.from_tensor_slices((x_tr, y_tr))
test_dataset = tf.data.Dataset.from_tensor_slices((x_te, y_te))

@jyh2378, I tried replicating the issue on colab but got different error message. Please take a look at the gist. Thanks!

@gadagashwini I have changed the code in gist. Thanks!

Based on this comment  you have to strip @tf.function decorator from def test_one_step(model, x, y) and try running the training again and it should work.

@jyh2378 Did the above comment help you solve your issue?

@gowthamkpr Yes, it works well. But I don't use keras.fit() method, so I think @tf.function decorator is be needed to fast training up.

So I think your issue is caused by the model.add_loss() in the inner_loss function. Note that model is a stateful object, and the current code is adding inner loss tensor in each training steps to the model, which is not correct.
The alternative can be like below, and your model just trains fine.
def inner_loss(model, penalty=0.001):
  losses = []
  for i in range(model.layers[3].trainable_variables[1].shape[3]):
    for j in range(i + 1, model.layers[3].trainable_variables[1].shape[3]):
      pw_kernel_i = tf.squeeze(model.layers[3].trainable_variables[1][:, :, :, i])
      pw_kernel_j = tf.squeeze(model.layers[3].trainable_variables[1][:, :, :, j])
      # model.add_loss(lambda: penalty * tf.tensordot(pw_kernel_i, pw_kernel_j, 1))
      losses.append(penalty * tf.tensordot(pw_kernel_i, pw_kernel_j, 1))
  return losses

@tf.function
def train_one_step(model, x, y, optimizer):
  with tf.GradientTape() as tape:
    logits = model(x, training=True)
    loss = _criterion(y_true=y, y_pred=logits)

    inner_losses = inner_loss(model, penalty=0.001)
    loss += sum(inner_losses)
    loss += sum(model.losses)


Title overflows when the screen is too narrow

When the title is too long and the screen is too narrow, the title overflows the header.

Just adding ellipsis is not enough, since a couple of toolbar icons eat the available space.

Some space can be reclaimed from the toolbar by implementing https://github.com/FlowingCode/AppLayoutAddon/issues/42
However:

The overflow only happens when the title breaks into three or more lines. If there are only two lines, there are no issues:

In normal mode, adding ellipsis forces the title to fit in a single line, which would be a worse outcome for medium-sized titles

In compact mode, only one line can fit, and adding ellipsis fixes the issue:

I'm still undecided on what would be the expected behavior in normal mode.

I think that the problem with normal mode is that the icon size for the logo is not the same size as the other icons. If the icon would be smaller (or the same size than the other ones), then having only one line with ellipsis would make sense.
Another thing is that splitting in two lines would end up in the same problem if the title is very long. The title should always be in one line with ellipsis, if another behavior is needed, you could add your own  as a component and configure the title in the way it's needed.

if another behavior is needed, you could add your own as a component and configure the title in the way it's needed.

That feature is currently not implemented: the title is always a String and it cannot be replaced with a Div or another component because AppToolbar handles the wrapping. (It would be a good idea though, since it would enable breadcrumbs or other advanced use cases)
https://github.com/FlowingCode/AppLayoutAddon/blob/5d2785111c93bce677717071469549de8ec72bc6/src/main/java/com/flowingcode/addons/applayout/AppToolbar.java#L84

Oh, yes, I was thinking about leaving the title empty and then adding a custom component to represent the title, but now I remember that they go to the right (because they are meant for creating toolbar things).
Anyway, giving that it's something that it would be nice to have in the future, maybe we could just leave it with ellipsis for now, what do you think?

AbstractFcAppRouterLayout was removed in version 4.0.0 (#85). Now it's possible to add arbitrary components to the, title and they can be styled as needed.


NotImplementedError: Unsupported Ops of type: LeakyRelu

It seems that it support LeakyReLU but not works.

This should be supported in the latest converter. @ray1422 please re-open if you fin any issues. Thanks!
pip install coremltools==3.0b3
pip install tfcoreml==0.4.0b1


feat(jellyfish-api-core): add createMultiSig function

What this PR does / why we need it:
This PR adds the function createMultiSig.
Which issue(s) does this PR fixes?:

Fixes #
Additional comments?:

Test are not running, conflicts


closureCreateSourceMap: sourceMappingUrl link not generated on rebuild

 Issue by tekhedd
Wednesday Apr 12, 2017 at 18:44 GMT
Originally opened as https://github.com/samaxes/minify-maven-plugin/issues/142

Using minify-maven-plugin 1.7.6.
When rebuilding a project using closureCreateSourceMap, the sourceMappingUrl is correctly generated on a clean build, but not inserted into the minified file on a rebuild.
My tests indicate that the //#sourceMappingUrl will be generated only if the original .js.map file does not exist. In other words, if I run
mvn clean ; mvn package
sourceMappingUrl is present.
If I run 'mvn package' again without cleaning, sourceMappingUrl is missing.
If I manually remove target/exploded-dir/merged.min.js.map and then run 'mvn package' again, the sourceMappingUrl is generated.
The timestamp on the .map file is not changed, so it appears that closure is failing to regenerate it, hence the missing sourceMappingUrl line.
Workaround? Explicitly delete the source map file as part of the build, or always explicitly clean the target before deploying. (The target always runs regardless of whether it needs to be rebuilt, so in netbeans "clean and build" followed by "run" results in no map file.)
Note: all mvn runs performed with "-e" "-DskipTests" for this experiment. Hope this helps.
File names have been changed to protect the innocent.
   <plugin>
        <groupId>com.samaxes.maven</groupId>
        <artifactId>minify-maven-plugin</artifactId>
        <version>1.7.6</version>
        <executions>
            <execution>
                <id>minify</id>
                <phase>process-resources</phase>
                <goals>
                    <goal>minify</goal>
                </goals>
                <configuration>
                    <charset>UTF-8</charset>

                    <cssTargetDir>css</cssTargetDir>
                    <cssFinalFile>style.css</cssFinalFile>

                    <cssSourceDir>css</cssSourceDir>
                    <cssSourceFiles>
                               ...
                    </cssSourceFiles>

                    <jsTargetDir>.</jsTargetDir>
                    <jsFinalFile>final.js</jsFinalFile>
                    <closureCreateSourceMap>true</closureCreateSourceMap>
                    <nosuffix>false</nosuffix>

                    <jsSourceDir>.</jsSourceDir>
                    <!-- <jsSourceIncludes>*.js</jsSourceIncludes> -->
                    <jsSourceFiles>
                             ...
                    </jsSourceFiles>

                    <jsEngine>CLOSURE</jsEngine>
                    <closureCompilationLevel>SIMPLE_OPTIMIZATIONS</closureCompilationLevel>
                    <closureCreateSourceMap>true</closureCreateSourceMap>
                </configuration>
            </execution>
        </executions>
    </plugin>`

 Comment by tekhedd
Wednesday Apr 12, 2017 at 19:05 GMT

FYI workaround: add this so that it will run before the minify plugin. (Note use of deprecated tasks element!) [updated to fix failure to build after clean]
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
            <execution>
                <id>minify-map-file-workaround</id>
                <!-- phase/goal must match minify-maven-plugin -->
                <phase>process-resources</phase>
                <goals>
                    <goal>run</goal>
                </goals>
                <configuration>
                    <tasks>
                        <delete>
                            <!-- Delete all map files found in the output dir. Output dir should exist by
                                 - this time in the build process even if it's a clean build. map file might not.
                                -->
                            <fileset dir="${project.build.directory}">
                                <!-- Caveat: if this is not the path to your map file, no error will occur. -->
                                <include name="${project.build.finalName}/*.map" />
                            </fileset>
                        </delete>
                    </tasks>
                </configuration>
            </execution>
        </executions>
    </plugin>

 Comment by ghost
Tuesday May 02, 2017 at 16:40 GMT

+1

Should be fixed via merging https://github.com/samaxes/minify-maven-plugin/pull/149


Run executables in a container

Enhancement Summary
Run any executable in a container on the machine.
Feature list

[ ] Pull and run base images
[ ] Execute flow executables inside of the local machine in the with base image
[ ] Mount container to local filesystem

Additional context

The more I think about this, the more I realize it is not needed. If a container is preferred, it is pretty easy to setup a quick script / wrapper for the container build and run.


Need To format the Code of the Drawer Section inside the Code Section.

I believe this is just a Formatting Issue. The code in the Drawer Section at the Components section is out of place.
check it here
https://docs.nativebase.io/Components.html#Drawer

Thankyou @mohammedSlimani, We will update it.

Hi @mohammedSlimani , latest version of Native base has been released.
Native Base 2.13.12


why i cannot use Console.ReadLine() in this. how can i get user input

The package and version I'm asking about:

Question

Please take a look at https://github.com/dotnet/interactive/blob/main/docs/input-prompts.md. Does this work for the scenario you had in mind?


Update studio.png

Description
Updated image for the gProfiler web application.

Related Issue
Resolves https://github.com/Granulate/gprofiler/issues/95
How Has This Been Tested?
Created a commit that references this branch to test on web, looks good, amended that commit afterwards.
Screenshots (if appropriate):
New image:

Types of changes

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

Checklist:

[x] My code follows the code style of this project.
[x] I have updated the relevant documentation.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

@sobolron wanna take a new screenshot from the demo now?

Re-added as LFS


Feature/125 add activities educators

Is your feature request related to a problem? Please describe.
Not applicable
Describe the solution you'd like
Create the activities screen for educators. The educatos should see the students that can participate for that activity as well as if the kid is going or not.
Describe alternatives you've considered
Not applicable
Additional context
There is a mock up to use as inspiration as well as styles already implemented that can be use. If you need to create them, feel free for it but make sure they are resposive and include it in the style.css

Story Points: 8
See the discussion in Frontend S2 W8
Powered by Parabol


Fix the bug where DataLoaderDispatcher gets stuck in an infinite wait…

Fix the bug where DataLoaderDispatcher gets stuck in an infinite wait when the dataset is an IterDataPipe during multi-process training.
In newer version of pytorch, the iterator of DataLoader will try to broadcast a shared seed across all distributed processes (see here). In the current implementation of DataLoaderDispatcher, the iterator is only created in the main process. This causes the training to hang when dataset is an IterDataPipe.
One can try out the script below to see the effect.
import accelerate
from torch.utils.data.dataloader import DataLoader
from torch.utils.data.datapipes.iter import IterableWrapper

def print_rank_by_rank(*args, **kwargs):
    for rank in range(accelerator.num_processes):
        if rank == accelerator.process_index:
            print(*args, **kwargs)
        accelerator.wait_for_everyone()

if __name__ == "__main__":
    accelerator = accelerate.Accelerator()
    accelerator.print(accelerate.__version__)

    dp = IterableWrapper(range(21)).shuffle().map(lambda x: x + 1)

    loader = DataLoader(dp, batch_size=4, shuffle=True)
    loader = accelerator.prepare(loader)

    accelerator.print(type(loader))

    print_rank_by_rank(list(loader))
    print_rank_by_rank(list(loader))

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


[ENHANCEMENT] Planned Improvements

[ ] Display Nikke name on the Nikke's .
[ ] Adjustable Post-Processing.
[x] Scroll to zoom in/out Nikke.
[ ] Combine the assets selection dialog to reduce the work selecting them.
[X] Remember last selected file/folder directory.
[ ] Regular bug fixes.

Apparently, changing the Nikke's scale with mouse scroll won't work when Nikke Viewer EX is used as live wallpaper.
Also you can't type anything on the input field, it's only support click interaction.

Apparently, changing the Nikke's scale with mouse scroll won't work when Nikke Viewer EX is used as live wallpaper. Also you can't type anything on the input field, it's only support click interaction.

Added a slider to change the Nikke scale from minimum 0.1 to 10 [3150b55374f0d4f00844af705c45d78aa155a691].
Added On-Screen Keyboard [7bf4525314083aba95db78233f71f80115fa54ab].

Displaying a Nikke name added in ecaec44.