Restructure the Kafka related operators

Proposal:
We create a wayang-kafka module inside of wayang-platforms.
This leads to a cleaner approach to add these operators.
Right now we edit both wayang-java and wayang-spark, where both of them contain versions of operators related to reading and writing to Kafka.
Conceptually, having all implementations for the specific APIs in wayang-kafka would be neat.
Then you could have wayang-kafka/src/main/java/JavaKafkaOperator wayang-kafka/src/main/java/SparkKafkaOperator etc. and the respective platforms themselves don't have to concern about Kafka.
It is planned to implement this as soon as the initial demos for Kafka integration are ready.
Target: Release 1.1 - Q1-2025.

To take this further, we create another module called wayang-io (or some other name) and inside this parent module we place the wayang-kafka module that @kamir mentioned above. The reason for that being: Kafka is not a processing platform, only reads or writes data. So inside wayang-io we can have all the data sources and the data sinks.

+1 - that's a great idea! There we can also put our REST API or pure storage modules.


Jhendr m365 community

metadata corrections

Docs Build status updates of commit 58f5e25:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: Docs Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 58f5e25:
:warning: Validation status: warnings

File
Status
Preview URL
Details

Community/adding-content.md
:warning:Warning
View
Details

Community/auto-apply-retention-labels-in-office-365-using-content-types-and-metadata.md
:warning:Warning
View
Details

Community/benefits-of-using-powershell-with-sharepoint.md
:warning:Warning
View
Details

Community/changing-microsoft-teams-from-private-to-public-what-to-expect-in-sharepoint.md
:warning:Warning
View
Details

Community/designing-solution-for-scale.md
:warning:Warning
View
Details

Community/getting-started.md
:warning:Warning
View
Details

Community/glossary.md
:warning:Warning
View
Details

Community/importing-data.md
:warning:Warning
View
Details

Community/information-architecture-managed-metadata-vs-lookup-column.md
:warning:Warning
View
Details

Community/information-architecture-site-topology.md
:warning:Warning
View
Details

Community/known-folder-move-benefits-for-enduser.md
:warning:Warning
View
Details

Community/library-scenarios.md
:warning:Warning
View
Details

Community/list-column-or-site-column-which-one-to-choose.md
:warning:Warning
View
Details

Community/machine-learning-and-managed-metadata.md
:warning:Warning
View
Details

Community/managing-external-guest-in-SharePoint-vs-Teams.md
:warning:Warning
View
Details

Community/new-site-checklist.md
:warning:Warning
View
Details

Community/permission-model-diferences.md
:warning:Warning
View
Details

Community/select-an-effective-navigation-strategy.md
:warning:Warning
View
Details

Community/site-design-life-cycle.md
:warning:Warning
View
Details

Community/team-site-or-communication-site.md
:warning:Warning
View
Details

Community/versioning-basics-best-practices.md
:warning:Warning
View
Details

Community/what-is-content-type.md
:warning:Warning
View
Details

Community/what-is-site-column.md
:warning:Warning
View
Details

Community/adding-content.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/auto-apply-retention-labels-in-office-365-using-content-types-and-metadata.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/benefits-of-using-powershell-with-sharepoint.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/changing-microsoft-teams-from-private-to-public-what-to-expect-in-sharepoint.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/designing-solution-for-scale.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/getting-started.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/glossary.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 16: [Warning] Cannot find bookmark '#E' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#F' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#G' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#H' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#I' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#K' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#K' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#L' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#M' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#N' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#O' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#P' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#Q' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#R' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#S' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#T' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#U' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#V' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#W' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#X' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#Y' in 'glossary.md', did you mean '#a'?
Line 16: [Warning] Cannot find bookmark '#Z' in 'glossary.md', did you mean '#a'?
Line 118: [Warning] Cannot find bookmark '#Hub-Site' in 'glossary.md', did you mean '#hub-site'?
Line 200: [Warning] Cannot find bookmark '#Customization' in 'glossary.md', did you mean '#customization'?
Line 220: [Warning] Link 'https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/powershell' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 314: [Warning] Cannot find bookmark '#Inheritance' in 'glossary.md', did you mean '#inheritance'?
Line 338: [Warning] Cannot find bookmark '#Column-Formatting' in 'glossary.md', did you mean '#column-formatting'?

Community/importing-data.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/information-architecture-managed-metadata-vs-lookup-column.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/information-architecture-site-topology.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/known-folder-move-benefits-for-enduser.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/library-scenarios.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/list-column-or-site-column-which-one-to-choose.md

Line 1: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1: [Warning] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2: [Warning] Mapping values are not allowed in this context.

Community/machine-learning-and-managed-metadata.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/managing-external-guest-in-SharePoint-vs-Teams.md

Line 1: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1: [Warning] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 5: [Warning] Mapping values are not allowed in this context.
Line 112: [Warning] Link 'https://docs.microsoft.com/en-us/office365/admin/create-groups/manage-guest-access-in-groups?view=o365-worldwide' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

Community/new-site-checklist.md

Line 1: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1: [Warning] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2: [Warning] Mapping values are not allowed in this context.

Community/permission-model-diferences.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 24: [Warning] Link 'https://docs.microsoft.com/en-us/sharepoint/understanding-permission-levels' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 25: [Warning] Link 'https://docs.microsoft.com/en-us/sharepoint/how-to-create-and-edit-permission-levels' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.
Line 26: [Warning] Link 'https://docs.microsoft.com/en-us/sharepoint/customize-sharepoint-site-permissions' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

Community/select-an-effective-navigation-strategy.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/site-design-life-cycle.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/team-site-or-communication-site.md

Line 1: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1: [Warning] Missing required attribute: 'title'. Add a title string to show in search engine results.
Line 2: [Warning] Mapping values are not allowed in this context.

Community/versioning-basics-best-practices.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/what-is-content-type.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

Community/what-is-site-column.md

Line 2: [Warning] Missing required attribute: 'author'. Add the current author's GitHub ID.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


fix scatterplot y-scale

Hi @NevilleMthw
A few things I changed:

in MlProvSidebar, offlineBoltIcon was imported multiple times
You used the d3 package, while I used d3-selection, which is just a subset. I've therefore removed the d3-seleciton from package.json

For the scatterplot:

the x-axis title was out of place, as you had

    svg
      .append('text')
      .attr('x', width / 2 + 100)
      .attr('y', height - 15 + 150)

The SVG coordinate sytem starts at the top left:

source: https://vanseodesign.com/web-design/svg-viewport/
For the x-position, just the half of the width is fine. Would helps me here are the browser dev tools:

With them, I can also update the positon there and check what looks good.

The y-axis was simply out of the svg:

The way you specified the chart, the width/height only contain the area enclosed by the axes, while the margin has to contain the axes and their labels.
Threfore, I dind't shift the whole svg by the given margin, but instead created a new plot group that has the marks and axis in it: https://github.com/Vis4Sense/ml-prov-binder/pull/7/files#diff-f7c09868282d8798063d22f5c62933ede4237b286e5f6c1dce44d2e6953f3067R65-R68
But I always find the y-axis a bit tricky and refer to some old code from myself or the internet for that 😉

Some questions:
Is there a reason that some html part defined as constant in the top and others in addStaticDummyContent?

here: https://github.com/Vis4Sense/ml-prov-binder/blob/scatterGraph/src/MlProvSidebar.ts#L12-L17
and here: https://github.com/Vis4Sense/ml-prov-binder/blob/scatterGraph/src/MlProvSidebar.ts#L46-L55

I also noticed that the template uses prettier for code formatting and also checks with GitHub Actions.
I also use it in other projects and find the defaults a good common practice.
You can install the VS Code extension (in case you use VS Code) and it should format the files on save: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

I use the prettier extension in vscode for other projects as well. But I think the build failed earlier for the previous PR before you made the changes but now I think it should build fine, I've never encountered any failed builds so then I assumed it was prettier extension causing the problem.
Also, for the HTML part in the addStaticDummyContent, that was done by Rupak. Since I was working on the main graph. I can change it, no problem from my end.

Yes, previously everything was separate: https://github.com/Vis4Sense/ml-prov-binder/pull/4/files#diff-f7c09868282d8798063d22f5c62933ede4237b286e5f6c1dce44d2e6953f3067R21-R44
I grouped the axes and marks and moved them by the margin


Problem with a PIN profile

Hi, from this morning i have aproblem with mi wallet. My PIN doesn´t works. Finally I have to create a second profile and recover my wallet with my IOTA´s. But I´m so worried because the PIN of that first profile this morning worked well and now is not working. So I would like to delete that profile becuase I think that is a direct access to my coins and if someone has changed my PIN now he can send my coins to other account.
Sorry for mi english. It´s not my native language

I have the same problem, my Pin is not working anymore.

@Mcjevo In the current version that is an issue with the language and currency when using other languages. Please try changing the language back to English and restart Firefly, and see if you can login to your first profile.
Then please continue to use Firefly in english until new version is released.
And about;  if someone has changed my PIN now he can send my coins to other account.
This is not possible. You need the stronghold password to send funds. So your funds are safe.

@Mcjevo In the current version that is an issue with the language and currency when using other languages. Please try changing the language back to English and restart Firefly, and see if you can login to your first profile.
Then please continue to use Firefly in english until new version is released.
And about; if someone has changed my PIN now he can send my coins to other account.
This is not possible. You need the stronghold password to send funds. So your funds are safe.

I changed the languaje and restart the wallet app and I have the same problem, My PIN doesn´t works and I finish with the message of "3 incorrect attemps" and i have to wait.
I suppose that the password cannot be changed from the settings of this profile.
By the way, another user write to me that have the same problem with the PIN today, but here I can´t see the reply. Sotrry is the first time taht y write in Hitub
Anyway, Thank you very much for you Reply  tOOk and sorry again for my english.

Okay, I helped a user earlier today and the language was his issue.
No need to say sorry for your english. Also, there is no risk about your funds with the first profile.
If you have your 24 phrases and the stronghold backed up you can re-install Firefly wallet and setup a new profile with those 24 phrases.
As long as you have your 24 phrases or the stronghold you can always access your IOTA.
Are you using Windows?

Yes I´m using Windows 10. Really, instead of re-install the app I opened a new profile and I selected recovere the wallet with the 24 phrases and I could see that all it´s ok. Althouhgt I would like to delete that first profile to avoid risk, but for delete that profile I believe that I can to access fist with the PIN :).

Yes, but the only way to remove the first profile is to get access to it first, which you will probably not be able to.
What you can do is to browse into C:\Users\Username\AppData\Roaming\Firefly and remove that Firefly folder. This will remove Firefly from your computer and let you re-install it. Then you just setup with the same 24 words again (as you did with your second profile) and you will see the funds again, and only have one profile.

Well, thank you very much T00k. your solution has worked well.
I was able to delete the profile and everything is fine.
Thanks a lot.

Happy to hear. Can you please mark this issue as solved here on github?
Have a great night!


Add Ninja Gaiden Sigma

Confirmed working with Steam version

Hey, sorry for the delay!
I've refactored the game handling to use a JSON file as a database for different games. Can you refactor this MR to use that? Alternatively, you can send me your saves so I can test that this works before committing.


Added kepler.gl google places integration

Added google place API integration
First version

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


WIP: add cookiecutter template option

Addresses #2657
PR Type

Feature Pull Request

Allow users to define a cookiecutter template for configuring a molecule scenario
molecule init -t ~/mycookiecutter role ~/testrole
cd ~/testrole
molecule init -t ~/mycookiecutter scenario customscenario

Here we assume the cookiecutter directory structure reflects that of the default from the "molecule" directory down with changes only to molecule.yml. Do we want to make this available as an environment variable?

There are no plans to reinstate the custom template functionality in molecule, mainly because you can always create your own cookiecutter templates that do not rely on molecule itself.


Add assignment rubric auto-generation

This part of code allows for the ability to generate rubrics by parsing a lab's README (or main file).
Advantages to this method is that it prevents duplication of data (having the rubric specified in two locations).
This method is optional, and can be skipped by not specifying the file to parse.

Pull Request Test Coverage Report for Build 312

0 of 0   changed or added relevant lines in 0 files are covered.
538 unchanged lines in 14 files lost coverage.
Overall coverage decreased (-6.4%) to 71.613%

Files with Coverage Reduction
New Missed Lines
%

src/controllers/PersonController.ts
3
81.43%

src/server/SDMM/SDMMREST.ts
11
86.25%

src/controllers/DatabaseController.ts
13
91.77%

src/controllers/GitHubController.ts
13
75.0%

src/controllers/SDMM/SDMMController.ts
14
91.65%

src/controllers/ScheduleController.ts
16
9.03%

src/controllers/CourseController.ts
23
70.93%

src/controllers/ResultsController.ts
27
82.24%

src/controllers/TeamController.ts
37
38.0%

src/controllers/GitHubActions.ts
38
88.25%

Totals

Change from base Build 307:
-6.4%

Covered Lines:
2554

Relevant Lines:
3457

💛  - Coveralls

Can we get the tests for this great new feature integrated into the PR as well so it can all be merged in a known-good state? The median coverage rate in the repo right now is > 90% so these will really be out of character.


Suggestion for Quick Accent, scaling of window size. (Accessibility issue, poor vision and text interpretation)

Description of the new feature / enhancement
The Quick Accent menu is super powerful, but the preview is rather small for someone with poor eyesight like me and difficulty interpreting text. Would like the option to increase the size of the font, or scale the window.
A la 100, 125, 150, 200% etc,
Scenario when this would be used?
I consider it an accessibility issue, so all the time.
Supporting information
n/a

Strong +1 here.
I don't even have poor eyesight, but accent marks are often very small and the current size of the popup is inadequate for its intended use. Needs to be much larger, or at least configurable.

/dup #22614


feat(azure): Add Azure Storage Account (file)

Issue #575
access_tier : can be only Hot and Cool.

@alikhajeh1 this PR ready to check)

@tim775 you can check commit

@alikhajeh1 LGTM


ray_tracing_reflection has build errors

I'm seeing these errors when building:
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp: In member function 'void RaytracingReflection::create_scene()':
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:493:54: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_red     = {{1, 0, 0}, {1, 1, 1}, {0}};
                                                      ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:494:54: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_green   = {{0, 1, 0}, {1, 1, 1}, {0}};
                                                      ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:495:54: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_blue    = {{0, 0, 1}, {1, 1, 1}, {0}};
                                                      ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:496:54: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_yellow  = {{1, 1, 0}, {1, 1, 1}, {0}};
                                                      ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:497:54: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_cyan    = {{0, 1, 1}, {1, 1, 1}, {0}};
                                                      ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:498:54: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_magenta = {{1, 0, 1}, {1, 1, 1}, {0}};
                                                      ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:499:75: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_grey    = {{0.7f, 0.7f, 0.7f}, {0.9f, 0.9f, 0.9f}, {0.1f}};        // Slightly reflective
                                                                           ^
samples/extensions/ray_tracing_reflection/ray_tracing_reflection.cpp:500:75: error: braces around scalar initializer for type 'float'
  ObjMaterial mat_mirror  = {{0.3f, 0.9f, 1.0f}, {0.9f, 0.9f, 0.9f}, {0.9f}};        // Mirror Slightly blue

Ah - indeed it is, thanks.
I had checked out a different PR to test which didn't have the fix.


More obvious way to rotate GridMap tiles

Ubuntu Studio Godot 2.1
I work with 3D procedural world, and actually, for a wall for exemple I must had 4 Tiles (North, East, West, South) Oriented tiles for make Library mesh. after that I can put on gridmap my tiles with set_cell_item(x,y,z,0), but when done, It's not possible to change Y axis of my tiles by code. I think, and I'm not alone, set_cell_item_rotation(x,y,z) function has very welcome for do that, simply for have only one tile for wall not four !
Thank you for had this: 3D projects really need rotating(x,y,z) tiles in gridmap.
You can find my project here : https://www.facebook.com/groups/168800120225984

Are you requesting something similar to 90 degrees rotation or flip/mirror like TileMap?

Yes, something like set_cell_item_rotation(x,y,z) for manipulate Tiles 3D
in gridmap, why ?
Le 29 sept. 2016 2:38 PM, "Marc"<EMAIL_ADDRESS>a écrit :

Are you requesting something similar to 90 degrees rotation or flip/mirror
like TileMap?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6639#issuecomment-250453848,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUOUB6-AOETPROra8w_ffXqyQWKIITvsks5qu7EtgaJpZM4KJqCg
.

Just wanted to clarify, because on this kind of grid you could flip and rotate 90 degrees because it's very cheap to store the information (only a few bits per block), but arbitrary rotations, scales and positions are usually not supported (mostly for optimization).

@Zebcash set_cell_item already has an optional "orientation" param.. so workaround is too easy. (just you have to make some tests on what different values do, but, yeah)

Yes Bojidar-bg, I know, but try this option for rotate your tile on the same time on the x y and z axis... good luck ;-), believe me, I have not posted here, if I could overcome my problem with the current set_cell_item

I think the orientation parameter is not an angle here, but an index to a 3D base between 0 and 24, 0 being the identity base (X+, Y+, Z+).
This is for sure a terribly un-obvious API ;D https://github.com/godotengine/godot/blob/master/core/math/matrix3.cpp#L290

Waouh ! Sure ! Terribly un-obvious ! But thanks for this explain, and for finding this link. I stay on my first Idea. Godot need a more intuitive command for rotate item.

@tagcup Did you handle this by chance in your math changes?

Hello,
I have a little difficulty to link your question to its context.
I have been obliged during the last three months to put my project on a
break for professional reasons, and I disconnected a bit from godot, (I
wait for the 3.0 to get over it as my project is in 3D)
But I will be happy to answer it if I can, if you help me understand it
better.
2017-01-13 19:07 GMT+01:00 Rémi Verschelde<EMAIL_ADDRESS>
@tagcup https://github.com/tagcup Did you handle this by chance in your
math changes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6639#issuecomment-272505809,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUOUB7bgmp8LdX6ptdnRw6fssLSujEQdks5rR71igaJpZM4KJqCg
.

@akien-mga Nope, this is rather a UI issue.
So how about changing the UI such that you select a rotation axis (X, Y or Z) and angle (90 or 180), and possible flips for each axes? Constructing the transformation from this information is straightforward, and we can get rid of _ortho_bases completely.

@Zebcash I was asking @tagcup specifically as @Zylann above had reference the Matrix3 API, which was recently changed a bit.

So how about changing the UI such that you select a rotation axis (X, Y or Z) and angle (-90, 0, 90, 180), and possible flips for each axes? Constructing the transformation from this information is straightforward, and we can get rid of _ortho_bases completely.

Sounds good to me :)

For UI, I don't know,
I had only one problem of rotation with the 3D Tiles in the gridmap, but I
solved that by tatoning based on:
https://github.com/godotengine/godot/blob/master/core/math/matrix3.cpp#L290
That said I learned the code alone and I still have a lot of progress to
make in this area. The Gdscript is a very easy tool to understand for
someone who uses the code occasionally, hence my choice on godot, my
reflection on this subject and just that the matrix3 system is a bit
twisted, and that to find a solution more Intuitive (I'm a 3D graphics
designer) might be useful for non-codeware users. I suspect that priority
should not be my problem of locating in a 3D space via the code! ;-)
waiting for 3.0 for testing !!!
2017-01-13 19:49 GMT+01:00 Ferenc Arn<EMAIL_ADDRESS>
@akien-mga https://github.com/akien-mga Nope, this is rather a UI issue.
So how about changing the UI such that you select a rotation axis (X, Y or
Z) and angle (90 or 180), and possible flips for each axes? Constructing
the transformation from this information is straightforward, and we can get
rid of _ortho_bases completely.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6639#issuecomment-272515999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUOUB1VF0joA0Ef5yfdjlsooLFNvfnZvks5rR8c5gaJpZM4KJqCg
.

Ok... :-D Ah ! ah! ah!
2017-01-13 19:58 GMT+01:00 Rémi Verschelde<EMAIL_ADDRESS>
@Zebcash https://github.com/Zebcash I was asking @tagcup
https://github.com/tagcup specifically as @Zylann
https://github.com/Zylann above had reference the Matrix3 API, which
was recently changed a bit.
So how about changing the UI such that you select a rotation axis (X, Y or
Z) and angle (-90, 0, 90, 180), and possible flips for each axes?
Constructing the transformation from this information is straightforward,
and we can get rid of _ortho_bases completely.
Sounds good to me :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6639#issuecomment-272518307,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUOUB38M7fBGKdIUhfxAi_qbNvwgLAtPks5rR8lbgaJpZM4KJqCg
.

OK, so I checked what exactly these orthogonal indices are. There are just all possible cube rotations, with no reflections.
It seems they form a "nice" sequence (except for the last 4) if we assume that they're rotation matrices written in ZYX-convention Euler angles (which is different from Godot's overall XYZ convention!).
First, let me define a simple notation, in which trio of ZYX Euler angles are written as a vector in units of π/2. For example, a rotation of R_z(π/2).R_y(2π/2).R_x(3π/2) is written as (1,2,3). To further simplify the notation, I'll just write 1 2 3
Then the 24 orthogonal matrices correspond to Euler rotations given as
0 0 0
1 0 0
2 0 0
3 0 0

0 0 1
1 0 1
2 0 1
3 0 1

0 0 2
1 0 2
2 0 2
3 0 2

0 0 3
1 0 3
2 0 3
3 0 3

0 1 0
1 1 0
2 1 0
3 1 0

2 3 0
3 3 0
0 3 0
1 3 0

There are many other alternatives for basis of course. We need to choose a basis such that

It uses XYZ convention
There is a simple correspondence between Euler angles and the index to this matrix list, such that we can have a nice UI.

After thinking about this a little, I'm planning to submit a PR to implement this soon (sans the actual UI implementation). The UI, which can come in a later PR, can look like this:
Z-rotation (first rotation): (integer)
Y-rotation (second rotation): (integer)
X-rotation (third rotation): (integer)
Integers will be mod 4, of course. And there will be 64 combinations, of which 40 of them are redundant. This degeneracy needs to be lifted manually only in set_orthogonal_index though, get_orthogonal_index is fine since it will map one of the 24 matrices to an index.

as nothing was done on this, will kick to 3.1
keep in mind that whatever you add, it will still need to be compatible with old saved scenes

Yeah, I've been a bit busy these days. Sure, sounds good. It's just a usability issue anyway

Hey, flipping feature could be useful to introduce move variations in tiles.
for a wall for exemple I must had 4 Tiles (North, East, West, South)
I'm not sure if rotating was implemented back then, but if yes - it is possible to do such thing with only one tile, at least for me. The origin just needs to be set right.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!

For anyone else who winds up here from a search engine, here is a helpful chart I found:

Source: https://old.reddit.com/r/godot/comments/6y5gwa/gridmap_rotations_chart/

For anyone else who winds up here from a search engine, here is a helpful chart I found:

Source: https://old.reddit.com/r/godot/comments/6y5gwa/gridmap_rotations_chart/


Fully implement the new SQL databse

The database I have used needs to be implemented into the previous code. Some example changes can be:

Remove previous data saving
Change all numerical checkers to use the function

def get_numeric_input():

Modify the new saving system to be similar to the previous code (Check the main branch for old car data saving)

In the latest update to the branch we:

[X] Implemented the new SQL database(no errors)
[ ] Change wordings to fit the code
[ ] Edit the code to fit the rest of the code

Don't do

def get_numeric_input():

because it changes how the code checks if a number is a float and how it works with the SQL database.


I get a config error

this is my whole config :
Config = {
QBinventory = 'lj-inventory',--//the name of inventory you are using
AlowCuts = true,--// if this is true this means that all businesses have to take a cut from a employee sale
PayoutSplit = 40,--// the cut procentage what the business takes what the rest is left for the employee
Debug = false,--//if true it will enable polyzone debug
businesses = {
--//Default preset business
['burgershot'] = {--//key name stands for the business job name
Blip = {--//blip this is where it shows the business location on the map
[1] = {
pos = vec3(-581.15, -1064.5, 22.35),--//blip location using vector3
label = "Burgershot", --//blip label you can see on the map
color = 1,--// blip color
scale = 0.8,--// blip scale
id = 106--//blip icon ID
}
},
        Register = {--//register where workers can write bills and players can pay them
            [1] = {--this means you can add a second register and so on
                pos = vec3(-1194.8657, -893.4211, 14.1674),--//location of the box zone
                heading = 340,--//box zone heading
                length = 0.5,--//box zone length
                width = 0.5,--// box zone width
                minZ = 21.34,--// box zone min height
                maxZ = 22.74 --// box zone max height
            },
            [2] = {--this means you can add a second register and so on
                pos = vec3(-1193.3776, -895.1368, 14.2023),--//location of the box zone
                heading = 0,--//box zone heading
                length = 0.5,--//box zone length
                width = 0.5,--// box zone width
                minZ = 21.34,--// box zone min height
                maxZ = 22.74 --// box zone max height
            }
            [3] = {--this means you can add a second register and so on
            pos = vec3(-1196.049, -891.3801, 14.2023),--//location of the box zone
            heading = 0,--//box zone heading
            length = 0.5,--//box zone length
            width = 0.5,--// box zone width
            minZ = 21.34,--// box zone min height
            maxZ = 22.74 --// box zone max height
            }
        },

        Storages = {--//storages this where you can store youre items
            [1] = {--this means you can add a second storage and so on
                pos = vec3(-1194.0098, -894.2845, 14.1113),--//location of the box zone
                heading = 0,--//box zone heading
                length = 1,--//box zone length
                width = 1,--// box zone width
                minZ = 21.34,--// box zone min height
                maxZ = 22.74,--// box zone max height
                stash = {
                    label = 'Odpri pult',--//this is the label of the target for the stash
                    name = 'burgershot_pult1',--//this is a stash ID
                    weight = 50000,--//this is stash weight
                    slots = 5,--//this is stash slots
                    job = false--// if job = false that means that this storage is public. If you want a private stash replace false with your job name like this: job = "uwu"
             }
            [2] = {--this means you can add a second storage and so on
                pos = vec3(-1195.3229, -892.2323, 14.0216),--//location of the box zone
                heading = 0,--//box zone heading
                length = 1,--//box zone length
                width = 1,--// box zone width
                minZ = 21.34,--// box zone min height
                maxZ = 22.74,--// box zone max height
                stash = {
                    label = 'Odpri pult',--//this is the label of the target for the stash
                    name = 'burgershot_pult2',--//this is a stash ID
                    weight = 50000,--//this is stash weight
                    slots = 5,--//this is stash slots
                    job = false--// if job = false that means that this storage is public. If you want a private stash replace false with your job name like this: job = "uwu"
                }
             },
            [3] = {--this means you can add a second storage and so on
                pos = vec3(-1203.2471, -895.7289, 14.483),--//location of the box zone
                heading = 0,--//box zone heading
                length = 1,--//box zone length
                width = 1,--// box zone width
                minZ = 21.16,--// box zone min height
                maxZ = 23.76,--// box zone max height
                stash = {
                    label = 'Open hladilink',--//this is the label of the target for the stash
                    name = 'burgershot_hladilnik1',--//this is a stash ID
                    weight = 500000,--//this is stash weight
                    slots = 50,--//this is stash slots
                    job = 'burgershot'--// if job = false that means that this storage is public. If you want a private stash replace false with your job name like this: job = "uwu"
                }
            },
            [4] = {--this means you can add a second storage and so on
                pos = vec3(-1204.942, -893.7721, 13.9348),--//location of the box zone
                heading = 270,--//box zone heading
                length = 1,--//box zone length
                width = 3,--// box zone width
                minZ = 21.34,--// box zone min height
                maxZ = 23.54,--// box zone max height
                stash = {
                    label = 'Open skladisce',--//this is the label of the target for the stash
                    name = 'burgershot_skladisce1',--//this is a stash ID
                    weight = 500000,--//this is stash weight
                    slots = 50,--//this is stash slots
                    job =  false--// if job = false that means that this storage is public. If you want a private stash replace false with your job name like this: job = "uwu"
                }
            }
        },
        Craft = {--//This is where workers can craft items
            [1] = {--this means you can add a second craft and so on
                pos = vec3(-1199.1029, -898.1125, 13.9114),--//location of the box zone
                heading = 0,--//box zone heading
                length = 1,--//box zone length
                width = 1,--// box zone width
                minZ = 21.36,--// box zone min height
                maxZ = 22.56,--// box zone max height
                items = {--// all the items you can craft
                    {

                        item = 'steak',--//this is the items spawn name
                        label = 'Meso: 1x',--//this is the items label name
                        requiredLabel = 'Surovo Meso',--//this displays on the menu what items are required to make this item
                        required = {--//required item list
                            ['burger-raw'] = 1,--// [item spawn name] = item count

                        }
                    },
                    {

                        item = 'shotnuggets',
                        label = 'Nageci',
                        requiredLabel = 'Kurje meso: 1x',
                        required = {
                            ['chicken_strips_raw'] = 1,--// [item spawn name] = item count

                        }
                    }
                    {

                        item = 'heartstopper',
                        label = 'Heartstopperi',
                        requiredLabel = 'Meso: 1x, Kruh za bruger: x1, Salata: 1x, Krompir : 1x',
                        required = {
                            ['steak'] = 1,--// [item spawn name] = item count
                            ['burger_bun'] = 2,
                            ['salad'] = 3,
                            ['fries'] = 4,

                        }
                    }
                    {

                        item = 'moneyshot',
                        label = 'Moneyshot',
                        requiredLabel = 'Meso: 1x, Kruh za bruger: x1, Salata: 1x, Krompir : 1x',
                        required = {
                            ['steak'] = 1,--// [item spawn name] = item count
                            ['burger_bun'] = 2,
                            ['salad'] = 3,
                            ['fries'] = 4,

                        }
                    }
                    {

                        item = 'bleeder',
                        label = 'Bleeder',
                        requiredLabel = 'Meso: 1x, Kruh za bruger: x1, Salata: 1x, Krompir : 1x',
                        required = {
                            ['steak'] = 1,--// [item spawn name] = item count
                            ['burger_bun'] = 2,
                            ['salad'] = 3,
                            ['fries'] = 4,

                        }
                    }
                    {

                        item = 'torpedo',
                        label = 'Torpedo',
                        requiredLabel = 'Meso: 1x, Kruh za bruger: x1, Salata: 1x, Krompir : 1x',
                        required = {
                            ['steak'] = 1,--// [item spawn name] = item count
                            ['burger_bun'] = 2,
                            ['salad'] = 3,
                            ['fries'] = 4,

                        }
                    }
                    {

                        item = 'rimjob',
                        label = 'Rimjob',
                        requiredLabel = 'Meso: 1x, Kruh za bruger: x1, Salata: 1x, Krompir : 1x',
                        required = {
                            ['steak'] = 1,--// [item spawn name] = item count
                            ['burger_bun'] = 2,
                            ['salad'] = 3,
                            ['fries'] = 4,

                        }
                    }
                    {

                        item = 'shotfries',
                        label = 'Pomfri',
                        requiredLabel = 'Krompir',
                        required = {
                            ['fries'] = 1,--// [item spawn name] = item count

                        }
                    }
                    {

                        item = 'cheesewrap',
                        label = 'Sirov zavitek',
                        requiredLabel = 'Wrap : 1x',
                        required = {
                            ['wrap'] = 1,--// [item spawn name] = item count

                        }
                    }
                    {

                        item = 'chickenwrap',
                        label = 'Kurji zavitek',
                        requiredLabel = 'Wrap : 1x',
                        required = {
                            ['wrap'] = 1,--// [item spawn name] = item count

                        }
                    }

                }
            }
        },

        Duty = {--//this is where your workers can change there duty
            [1] = {--this means you can add a second duty and so on
                pos = vec3(-1190.7782, -896.6539, 14.1387),--//location of the box zone
                heading = 0,--//box zone heading
                length = 1,--//box zone length
                width = 1,--// box zone width
                minZ = 21.32,--// box zone min height
                maxZ = 25.32--// box zone max height
            }
        },

        Outfit = {--//this is where workers can change into their saved outfits
            [1] = {--//this means you can add a second and so on
                pos = vec3(-1205.9567, -890.1954, 14.3421),--//location of the box zone
                heading = 270,--//box zone heading
                length = 1,--//box zone length
                width = 2,--// box zone width
                minZ = 21.34,--// box zone min height
                maxZ = 23.94--// box zone max height
            }
        },
        Store = {--//this is where workers can buy ingredients
            [1] = {--//this means you can add a second store and so on
                pos = vec3(-1202.7578, -892.0012, 14.2379),--//location of the box zone
                heading = 0,--//box zone heading
                length = 1,--//box zone length
                width = 2,--// box zone width
                minZ = 21.36,--// box zone min height
                maxZ = 23.56,--// box zone max height
                label = "Sestavine",--//store label
                slots = 30,--//How many slots can the store have
                items = {--//store item list
                    {
                        name = "chicken_strips_raw",--//item spawn name
                        price = 0,--//item price
                        amount = 100,--//item amount
                        info = {},--//item metadata
                        type = "item",--//item type
                        slot = 1,--//item slot where it will be placed on the inventory
                        authorizedJobGrades = {0, 1, 2, 3}--//job grades that can buy this item
                    },
                    {
                        name = "burger_bun",--//item spawn name
                        price = 0,--//item price
                        amount = 10,--//item amount
                        info = {},--//item metadata
                        type = "item",--//item type
                        slot = 2,--//item slot where it will be placed on the inventory
                        authorizedJobGrades = {0, 1, 2, 3,}--//job grades that can buy this item
                    }
                    {
                        name = "burger-raw",--//item spawn name
                        price = 0,--//item price
                        amount = 10,--//item amount
                        info = {},--//item metadata
                        type = "item",--//item type
                        slot = 3,--//item slot where it will be placed on the inventory
                        authorizedJobGrades = {0, 1, 2, 3,}--//job grades that can buy this item
                    }
                    {
                        name = "veggie",--//item spawn name
                        price = 0,--//item price
                        amount = 10,--//item amount
                        info = {},--//item metadata
                        type = "item",--//item type
                        slot = 4,--//item slot where it will be placed on the inventory
                        authorizedJobGrades = {0, 1, 2, 3,}--//job grades that can buy this item
                    }
                    {
                        name = "salad",--//item spawn name
                        price = 0,--//item price
                        amount = 10,--//item amount
                        info = {},--//item metadata
                        type = "item",--//item type
                        slot = 5,--//item slot where it will be placed on the inventory
                        authorizedJobGrades = {0, 1, 2, 3,}--//job grades that can buy this item
                    }
                    {
                        name = "wrap",--//item spawn name
                        price = 0,--//item price
                        amount = 10,--//item amount
                        info = {},--//item metadata
                        type = "item",--//item type
                        slot = 6,--//item slot where it will be placed on the inventory
                        authorizedJobGrades = {0, 1, 2, 3,}--//job grades that can buy this item
                    }
                }
            }
        }
    }
    --//end off default business
}

}
}
And this is the error i get :
[    c-scripting-core] Creating script environments for ren-businesses
[script:ren-businesse] Error parsing script @ren-businesses/config/config.lua in resource ren-businesses: @ren-businesses/config/config.lua:36: '}' expected (to close '{' at line 19) near '['
[    c-scripting-core] Failed to load script config/config.lua.
[ citizen-server-impl] Started resource ren-businesses

You need to add a comma on this line


header ID generated are not compatible with ID generated on Github

Hi,
This is a great project!
For instance, on a README.md hosted on Github:
# Title Example -->
Title Example

Same file but converted with Showdown:
# Title Example -->
Title Example

A dash - replace the space on github but showdow just erase it.
Is there an option for that?
Otherwise we cannot be consistent with url when referring to a header.
Thanks a lot

@veggiemonk thanks! I will be adding an option for this soon.

@tivie check #321 :D

I did

latest version should address this and more.
We're replacing spaces with dashes and removing the following characters: ][&~$!@#*()=:/,;?+'.%\
Can you check if these characters are enough or if there are more that github replaces?

I've grabbed the replaced chars from github's redcarpet. https://github.com/vmg/redcarpet/blob/v3.4.0/ext/redcarpet/html.c#L276
Added < and > so this should cover every character github removes from header ids.

@tivie great job, thanks a lot!


[python] Make create and open into classmethods [WIP / not ready for review / please do not review]

Issue and/or context:
Tracking issue: #638
Currently stacked atop PR #803
Changes:
Notes for Reviewer:
TBW

@thetorpedodog is on this


Hypesquad badges broken

The animation is correctly done, but apparently, the original badge stays in the background while the animation is done.
Doesn't happen with other badges, just these ones.

can you resend the attachment?

¯_(ツ)_/¯ works fine for me, you sure u using the latest version (v1.2.9)?


Create Agent tool

Codecov Report
Patch coverage has no change and project coverage change: -3.07 :warning:

Comparison is base (2628961) 55.09% compared to head (400bdd1) 52.02%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #76      +/-   ##
==========================================
- Coverage   55.09%   52.02%   -3.07%
==========================================
  Files          55       57       +2
  Lines        1697     1799     +102
  Branches      548      597      +49
==========================================
+ Hits          935      936       +1
- Misses        330      432     +102
+ Partials      432      431       -1

Impacted Files
Coverage Δ

tools/agent_tool/src/cpp/main.cpp
0.00% <0.00%> (ø)

...l/src/cpp/user_interface/arguments_configuration.h
0.00% <0.00%> (ø)

... and 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Font Request: Bravura and BravuraText

Font Name
Bravura and BravuraText
Link to font source
https://github.com/steinbergmedia/bravura
Link to font license
https://github.com/steinbergmedia/bravura/blob/master/LICENSE.txt

Should be uploaded to NPM within a couple of hours!


Refactor docGen for extension

What changes are proposed in this pull request?
Extract the logic from main to other function.
Why are the changes needed?
Refactor docGen for extension
Does this PR introduce any user facing changes?
NA

@Xenorith Please take a look

alluxio-bot, merge this please

Port to branch-3.0-preview

alluxio-bot, cherry-pick this to branch-3.0-preview please


feat(data): Rename "origin" parent folder to "colors"

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


403.error outdated

Description of bug
Key "403.Error" in file \App_GlobalResources\GlobalResources.resx contains outdated technical details and needs to be updated
Steps to reproduce
List the precise steps to reproduce the bug:

Go to PB > Site Settings > Languages
Enter language editor and choose file \App_GlobalResources\GlobalResources.resx
Scroll to '403.Error'
See the text, referring to Windows XP and Windows Server 2003

Current behavior
displays outdated details.
Expected behavior
should be uo2date
Affected version

[ ] 10.0.0 alpha build
[ ] 9.5.0 alpha build
[xxx] 9.4.4 latest supported release

Affected browser

[x] any

I'll submit a PR to fix thix

It no longer refers to XP or Server 2003 in Dnn 9.6.2, closing the issue...


Added MongoDB installation instructions

README.md - Added directions for install
.gitignore - excluded the database data directory
connected.js - added a script to verify database connectivity

The conflict is in README.md
I already rolled everything back with a hard reset twice to rebase in the changes from upstream but each time another minor change (ex typo fix, amended commit) landed before I could finish.

Already fix the conflict should I merge this branch with develop? @ericdouglas @evanplaice

@jdinartejesus :+1:


Bug Report

There are a couple of issues I encountered when I used this library:
1. Breaks on empty lists
{
    "test": []
}

Error Message: [djson] Error: Expected token: }, obtained: ] [l: 2 | c: 13]
{
    "test": [""]
}

Error Message: Assertion failed: quote(sub.peek()), file ..\..\..\libs\djson\src\detail\lexer.cpp, line 122
2. Breaks on nested Quotes
{
    "test": "That's splendid!"
}

Error Message: [djson] Error: Expected token: }, obtained: ] [l: 2 | c: 18]
The reverse is also true (though not confirming with JSON specs):
{
    "test": 'That"s splendid!'
}

Thanks for the detailed report, @hentai-chan! I'll be submitting a patch soon; if you could test that branch on some sample code, that would be amazing.

Here's the PR: https://github.com/karnkaul/djson/pull/2
On your end just run git fetch && git checkout issue-1-fix to test.

@karnkaul looking good, I tested all the edge cases mentioned in this PR and have no complaints so far


Add private key argument

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: mkumatag
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


HDDS-9198. Changed snapshot purge to single purge instead of batch purge

What changes were proposed in this pull request?
We found two race conditions issues HDDS-10524 and HDDS-10590 which are fixed in PR #6443 and PR #6456 respectively.
There is still an issue with the existing way batch snapshot purge is processed.
As part of the snapshot purge, the deep clean flag of the next active snapshot, and the global and path previous of the next global and path level snapshots get updated. For this, updatedSnapInfos and updatedPathPreviousAndGlobalSnapshots maps are maintained in OMSnapshotPurgeRequest, and then these maps are flushed sequentially in OMSnapshotPurgeResponse. There is a problem with that and can cause chain corruption.
For example, let's assume as part of deep clean info update, snapshots are updated as {E -> E', F -> F', B' -> B'', G -> G'} and kept in updatedSnapInfos: [E', F', B'', G'] and previous snapshots are updated as {A - > A', B -> B', C -> C', D -> D'} and kept in updatedPathPreviousAndGlobalSnapshots: [A', B', C', D'].
After the purge final snapshot list should be [A', B'', C', D', E', F', G'] but because these maps are added to the batch sequentially [A', B', C', D', E', F', G'] or [A', B'', C', D', E', F', G'] depending on which one is added to the batch first code. The problem can still exist even if you fix the order of maps flush.
Ideally, these should be flushed in the same order the purge batch is processed.
This change is to fix the issue by changing the snapshot purge to take one snapshot at a time rather than the list of snapshots. For backward compatibility when Ratis transaction contains a list of snapshots, a new object is introduced to maintain the order of transaction and flush in the same order, they were updated in OMSnapshotPurgeRequest.
What is the link to the Apache JIRA
HDDS-9198
How was this patch tested?
Added and updated unit tests.

@swamirishi could you please take a look?

@hemantk-12 Can't we just lookup the object in the maps updatedPathPreviousAndGlobalSnapshots & updatedSnapInfos instead of just getting a fresh copy of
Can't we have a single map like updateSnapshotInfoMap which has all the keys that have been updated?
SnapshotInfo updatedSnapshotInfo = omMetadataManager.getSnapshotInfoTable().get(snapInfo.getTableKey()); & SnapshotInfo nextPathSnapInfo =
        nextPathSnapshotKey != null ? metadataManager.getSnapshotInfoTable().get(nextPathSnapshotKey) : null;

    SnapshotInfo nextGlobalSnapInfo =
        nextGlobalSnapshotKey != null ? metadataManager.getSnapshotInfoTable().get(nextGlobalSnapshotKey) : null;
``` in  the functions updateSnapshotInfoAndCache & updateSnapshotChainAndCache instead of this we could have a function like:
`private SnapshotInfo getLatestSnapshotInfo(String key, Map<String, SnapshotInfo> updatedMap) {
     if (updatedMap.containsKey(key)) {
           return updatedMap.get(key);
     }
    return metadataManager.getSnapshotInfoTable().get(nextPathSnapshotKey);
}`

@hemantk-12 Can't we just lookup the object in the maps updatedPathPreviousAndGlobalSnapshots & updatedSnapInfos instead of just getting a fresh copy of the snapshotInfo from the table over and over again Can't we have a single map like updateSnapshotInfoMap which has all the keys that have been updated?

I think we can have a local map to OMSnapshotPurgeRequest. I'll address this as part of HDDS-11137. We have locks right now, and I'm uncomfortable replacing it with Map as suggested.

As per @swamirishi's suggestion, we can maintain a Map that will work as a local cache to OMSnapshotPurgeRequest and returns update snapshotInfo all the time.
Currently, the problem is that we maintain two maps updatedPathPreviousAndGlobalSnapshots and updatedSnapInfos which creates an issue with batch processing because order matters. If we replace these maps with one map, it would solve the problem and we can still keep the batch purge operation.
Closing this PR since we can keep batch purge of snapshots. Will change it to the local cache in HDDS-11137/#7018.


Trained for 17K iters on COCO2014, OpenImages and OpenAI's Blog Images

In case you haven't read my usual disclaimer: this dataset's not great. Just having fun. Try not to evaluate this as representative of dalle-pytorch's current capabilities. If anything, that it's able to give some interesting output on such a poor dataset might be a good indicator!

Hey everyone. @lucidrains got the the new, lighter pretrained VAE from the taming-transformers group recently. It uses substantially less memory and compute. I decided to take all the datasets ive collected thus far, put them in a single folder on an A100, and train dalle-pytorch for several hours.
Here are the results:
https://wandb.ai/afiaka87/OpenImagesV6/reports/Training-on-COCO-OpenImage-Blogpost--Vmlldzo1NDE3NjU
I'm exhausted so that's all for now, but please click the link and have a look at the thousands of reconstructions it made (and the horrible captions from the "Localized Narratives" dataset I got from Google). I'll be updating this post with more info throughout the day.

so mostly it doesn't work very well?
I guess a better dataset / training for longer is needed?

so mostly it doesn't work very well?
I guess a better dataset / training for longer is needed?

Who knows what would happen after a full 17k iters * 20 epochs. This dataset is dogshit. Seriously, go read some of the prompts from the labelled annotations. They very often dont make sense. They have mouse position as well though and it's more of a dataset for finding good masking techniques, I now realize.
The largest portion of the dataset is generated images containing lots of mistakes. Apparently training even the top 32 of 512 generations from DALL-E proper will just produce something totally incorrect. Garbage in, garbage out.
Having said that, yeah we still need a bigger dataset. OpenAI used an extremely large dataset. This doesnt get anywhere close to that. They also used a higher quality VaE and a batch size of 512... These thing aren't going to be possible without mesh-dalle. Hopefully we can continue to find techniques that get better results out of smaller datasets as well.
But yeah, please dont take this as some sort of scientific baseline for "how good dalle-pytorch is". It's a bad dataset with bad captions flooded with images that are likely to make CLIP very happy as they were partially generated using the very same CLIP.  The only reasonable data in here is the COCO2014 set and it's only 200k images out of ~1.6 million.

you see garbage, i see abstract art :^)

Until we can go through and really clean the hell out of the prompts, I'd advise staying away from OpenImages for this. The phrasing is too verbose, too distracted and wandering, and contains enough mistakes that I see gibberish about 5% of the time, potentially coherent 95 percent of time... It's...pretty bad. At least compared to the claims they make on the front page for the project. Was really annoying to download all 100 GiB's of that to find out it was incredibly poorly labeled.
So I started two training sessions last night as well that are still running, but only on COCO and the blog post images. I'll post the results later today.  Didn't they release the weights for it?
Also, I don't agree with your assessment of localized narratives captions. They are decent. They at least mention the most important objects. Importantly, they are made for this dataset, with training in mind. The "wild" captions scraped from the internet, which OpenAI used, are much worse, because they are made by people with no intention to describe the picture accurately.

@sorrge they are released, and you can even start training with them in this repo!

Thanks. Is there a reason to believe that the OpenAI VaE is better than Taming Transformers one that @afiaka87 used? Besides the token values range. Did somebody compare their reconstructions?

@sorrge https://github.com/lucidrains/DALLE-pytorch/issues/86#issue-832121328 yea, the mannequins look quite good, at least

You said OpenAI used a higher quality VaE. Didn't they release the weights for it?

Yes, they did. You can train DALLE-pytorch with it. It's something of a VRAM hog though and the taming-transformers VaE shows decent accuracy for a much lower runtime/memory cost because it only uses 1024 tokens. It's impressive work. There are documented issues with not picking up certain details in reconstructions as well as OpenAI's VAE can. So it's not perfect, but it helps quite a bit in terms of being able to actually train DALLE-pytorch.

Also, I don't agree with your assessment of localized narratives captions. They are decent. They at least mention the most important objects. Importantly, they are made for this dataset, with training in mind. The "wild" captions scraped from the internet, which OpenAI used, are much worse, because they are made by people with no intention to describe the picture accurately.

That's totally fair. Dealing with some of this stuff and getting a bad result can be frustrating and may color my opinions unfortunately. I have to say though, I've been messing with CLIP for quite awhile and it's just never been well-suited to these types of prompts even when they are accurate. It tries its best to maximize the features in context, but sometimes it just doesnt know enough about that many tokens in that order to really get anything other than a few words relayed.
I think you'd need to train a custom CLIP on this data to get it to work the way you're thinking (where it fills in every little detail in the prompt). Which is a fantastic idea actually!

@sorrge @lucidrains So that dataset is pretty cool in that it has mouse positions from the labeler. They were required to highlight the region they were talking about as they described the word vocally which then gets transcribed with timing information they can use to lookup "where" each word in the image is meant to generally go. This has obvious implications for segmentation (which they mention as their motivation). But is there any way we could train on that information in dalle-pytorch's transformer? It's essentially a mapping to the relevant region in the image for each token in the "Localized Narrative"
I could think of some prompt engineering tricks but that would require...prompt engineering.

@afiaka87 Their CLIP is trained on a gigantic dataset (400M image-captions IIRC). Surely there was a lot of garbage there. It may be confused by the format "in this image we can see", because that's not how people usually annotate their pictures. But it doesn't matter for DALL-E, does it? For post-filtering it will still work, because you would use the "normal" prompts for generation, which CLIP can understand.

@afiaka87 Their CLIP is trained on a gigantic dataset (400M image-captions IIRC). Surely there was a lot of garbage there. It may be confused by the format "in this image we can see", because that's not how people usually annotate their pictures. But it doesn't matter for DALL-E, does it? For post-filtering it will still work, because you would use the "normal" prompts for generation, which CLIP can understand.

Yeah I'm out of my depth on this one. @lucidrains ?

DALL-E will probably just learn to ignore the "In this image we can see" beginning and use the list of things that goes afterwards as the clues for what should be included.

If that's the case, do you think it's just a matter of needing to scale up the batch size and size of dataset? I'm getting okay-ish representations on these simpler datasets, but this one seemed like it wasn't going to converge anytime soon.

Yes, the size of the dataset and the depth of the model are the keys, per OpenAI's paper. That was the main point, as in their other notable works: how far can the model be pushed. So, if we want quality, we need to match the amount of effort.
In this attempt that you made here, the repetition in the captions (from the blog post) likely caused some overfitting. For example, the mannequins are relatively similar in both captions and images, and it learned them the best. To train a powerful model, we need more diversity in the data.

Yes, the size of the dataset and the depth of the model are the keys, per OpenAI's paper. That was the main point, as in their other notable works: how far can the model be pushed. So, if we want quality, we need to match the effort.
In this attempt that you made here, the repetition in the captions (from the blog post) likely caused some overfitting. For example, the mannequins are relatively similar in both captions and images, and it learned them the best. To train a powerful model, we need more diversity in the data.

Thanks that's helpful. I guess the main issues with that is the obvious lack of compute. Without finding potential optimizations  (such as the 1024 token model) we're looking at some year-long training times. Anyway, that's always been obvious.
As for the depth - I continue to shoot for 64 (which surprisingly fits in RAM at a batch_size of <12 on the 1024 vae). It does indeed produce a higher quality image. Do you think training on this same dataset with a depth of 64 is worthwhile?

I'd at least wait for the WIT data, which should come out in a few days. That's ~11M images with +-good captions from Wikipedia. It will be a dramatic jump forward from the current dataset.

Yep, can't wait.

I'm still waiting for my Rig to get shipped, until then I will only be able to comment on "metadata". But I think you do a really good job @afiaka87 ! Even with the "bad" dataset, the results seem promising, and the tamed transformer speeds things up!
Things to look forward to:

20th of March with the release of wikipedia image-text files as @sorrge says
I've found another repo which was used to train the original DALL-E: https://pypi.org/project/yfcc100m/

Please check the discussions tab for information on my training efforts:
https://github.com/lucidrains/DALLE-pytorch/discussions/106


_sent_notifications needs to be initialized for enchanced=False

with Frame'd notifications, self._sent_notifications is referenced/used, yet it's not initialized, so multiple notifications fail
I initialized it myself, yet I'm not sure whether it was the right way to do it

AFAICT this is resolved here https://github.com/djacobs/PyAPNs/commit/1842c40d8b9586643097c9ad142c5e447408d14f


Node extension from precompiled .so file

Reapply "Upgrade PackageCompiler.jl"
call increment function from c file
successfully call julia function from c
update c library
wip

This has been merged into main via another branch.


@Bind View in NavigationView is null when upgraded support-design lib to 23.1.0

Hi, after I upgraded the lib : com.android.support:design to version 23.1.0, the @Bind can't find View in NavigationView, there are any solution to bind it ?
PS. by google, I find out maybe is this problem : https://code.google.com/p/android/issues/detail?id=190226

If findViewById doesn't work then Butter Knife can't work. You'll have to wait until they fix it or provide the getter method as the issue says.

Mb we should leave this issue opened and mark this as a FEATURE. Is there a way to bind butterknife view in other way? For example:
ButterKnife.bind(this, navigationView.getHeaderView(0));
But also we also can't use few binds in a single view. I mean if I need Views from both layout and navigation butterknife wouldn't know which one to wire.


[HUDI-6959] Bulk insert V2 do not rollback failed instant on abort

Change Logs
TestInsertTable#Test Bulk Insert Into Consistent Hashing Bucket Index Table failed continuously in #9776, I enabled it again and reproduced it locally.
The test will cause the write job to abort, and when org.apache.hudi.spark3.internal.HoodieDataSourceInternalBatchWrite#abort is called, all the subtasks may not have already been canceled. So if we roll back the current instant immediately, new files may still be written after rollback scheduled, which will cause dirty data.  This bug exists before #9776,  but only after  #9776 the test will fail.
We don't need to rollback the failed instant immediately, so to avoid this problem, I remove the line that rollback the instant in org.apache.hudi.spark3.internal.HoodieDataSourceInternalBatchWrite#abort .
Impact
Bulk insert as row do not rollback failed instant on abort
Risk level (write none, low medium or high below)
none
Documentation Update
none
Contributor's checklist

[x] Read through contributor's guide
[x] Change Logs and Impact were stated clearly
[x] Adequate tests were added if applicable
[ ] CI passed

@nsivabalan @danny0405 Could you help reivew this PR? Thanks ~

This bug exists before https://github.com/apache/hudi/pull/9776, but only after https://github.com/apache/hudi/pull/9776 the test will fail

Makes sense, because in https://github.com/apache/hudi/pull/9776, we changed the basic rollback logic for log files, all the log files are rolled back the same style with base files.

Makes sense, because in #9776, we changed the basic rollback logic for log files, all the log files are rolled back the same style with base files.

The dirty data left is parquet, and what caused the test to fail is that: the dirty parquet file is counted as the base file for the successfully committed log file, and the file slice for the log will be treated as uncommitted after #9776. I don't really understand the new file-slicing mechanism, maybe we need to dive into that part. This PR only solves the dirty data issue.

So the data in the log file is actually lost

No, the timeline in FileGroup actually contants uncommitted instants.

@danny0405 As we discussed offline, the reason for the test failures after #9776 is that after we changed the file-slicing algorithm,  the existing bug made the test fail. This pr only solves the existing bulk insert bug, could we merge this first and tract the file-slicing issue in other prs?

could we merge this first and tract the file-slicing issue in other prs

Do we have conclusion that the data source V2 drop has no guarantee for recycling existing stray tasks?

@stream2000 in the test I don't see explicit failure injection.  How is the abort called and is it deterministically triggered in the test?

in the test I don't see explicit failure injection. How is the abort called and is it deterministically triggered in the test?

          // We can only upsert to existing consistent hashing bucket index table
          checkExceptionContain(insertStatement)("Consistent Hashing bulk_insert only support write to new file group")

@yihua  We don't allow bulk insert into consistent hashing index table that already have parquet files because bulk insert v2  only support write parquet now. So bulk insert into the table will cause a  exception and it is deterministically.

so in such case, files are always created already?

@boneanxs We are still checking the source code of Spark to confirm the mechanism.  However, in my local test, we did find out that new files were written after the rollback was scheduled. You can add a breakpoint at the abort method and run the test to reproduce it locally.

so in such case, files are always created already?

I added some logs to track one of the write tasks(task 62.0)  and get the following result:
31398 [dispatcher-event-loop-0] INFO  org.apache.spark.executor.Executor [] - Executor is trying to kill task 62.0 in stage 38.0 (TID 845), reason: Stage cancelled
33673 [ScalaTest-run-running-TestInsertTable] ERROR org.apache.hudi.internal.DataSourceInternalWriterHelper [] - Commit<PHONE_NUMBER>2325400 aborted
33720 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] INFO  org.apache.hudi.table.marker.TimelineServerBasedWriteMarkers [] - [timeline-server-based] Created marker file dt=2021-01-05/bb4c8ba7-475a-3e8f-b2ad-5ed55bee188f-0_62-845-0_20231024112325400.parquet.marker.CREATE in 2390 ms
33725 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] INFO  org.apache.hudi.io.storage.row.HoodieRowParquetWriteSupport [] - Initialized Parquet WriteSupport with Catalyst schema:
33749 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] ERROR org.apache.spark.util.Utils [] - Aborting task
33753 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] ERROR
33753 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] ERROR org.apache.spark.sql.execution.datasources.v2.DataWritingSparkTask [] - Aborting commit for partition 62 (task 845, attempt 0, stage 38.0)
33753 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] WARN  org.apache.hudi.spark3.internal.HoodieBulkInsertDataInternalWriter [] - Task Aborted
org.apache.spark.sql.execution.datasources.v2.DataWritingSparkTask [] - Aborted commit for partition 62 (task 845, attempt 0, stage 38.0)
33753 [Executor task launch worker for task 62.0 in stage 38.0 (TID 845)] WARN  org.apache.hudi.spark3.internal.HoodieBulkInsertDataInternalWriter [] - Task Closed

The event sequence is:
driver try to cancel task 62 -> driver aborted -> task 62 create marker -> task 62 write parquet -> task 62 aborted -> task 62 closed.

Do we have conclusion that the data source V2 drop has no guarantee for recycling existing stray tasks?

@danny0405  As offline discussion with @boneanxs , we can confirm that datasource v2 won't waiting for all subtasks to be canceled before calling org.apache.hudi.table.action.commit.BulkInsertDataInternalWriterHelper#abort?. And it's safe and reasonable to use lazy rollback strategy instead of rollback the instant immediately in the abort method.

we can confirm that datasource v2 won't waiting for all subtasks to be canceled before calling org.apache.hudi.table.action.commit.BulkInsertDataInternalWriterHelper#abort

should be org.apache.hudi.spark3.internal.HoodieDataSourceInternalBatchWrite#abort instead of org.apache.hudi.table.action.commit.BulkInsertDataInternalWriterHelper#abort

@stream2000 @boneanxs Merge it first because it looks like a bug fix. Can you finalize it with following up PRs with more tests or probable the correct fix with #abort.


Comparison with prior art

Since this package was created well after similar packages, it would be nice to mention in the README the reasons for authoring it, and to guide users in choosing the right package for their situation.
When I'm comparing solutions, the ones that mention other projects and how they differentiate, win.
That's because those authors show awareness of existing alternatives, and likely have learned from their mistakes. Also as a user, I can better decide which tool is best for the job, and I appreciate the author's thoughtfulness in comparing the solutions in the space.

This wasn't close by accident. Docs contains explicit library features description, and I see no reason do do any comparison with other libraries, as long as each library has it's own way of development and I have no will to  maintain up-to-date comparison with any of them.


provider: pricing support

provider: pricing support

* validation: handle pricing
* x/deployment: add price to events
* x/market: add price to events
* x/market: un-export event parsing helpers.
* provider: re-enable bounded, randomized pricing

TODO: tests

@boz the dependency issue is resolved, can this be merged?


[Python] Expose Run-End Encoded arrays in PyArrow

The initial bindings for Run-End Encoded arrays (the array and type classes) landed in https://github.com/apache/arrow/pull/34570. Some follow-ups:

[x] https://github.com/apache/arrow/pull/34570
[x] https://github.com/apache/arrow/issues/34686
[ ] Support construction in pa.array(..)
[ ] Conversion pyarrow<->numpy/pandas

RunEndEncoded is one of the types listed here as "NotImplemented". No specific reason, just a matter of taking the time to write and test the implementation.
https://github.com/apache/arrow/blob/main/python/pyarrow/src/arrow/python/arrow_to_pandas.cc#L1348
The list of things to implement for a new format is huge and this is one of the things that I didn't have time to complete yet.

Closing this issue as all subtasks are completed.


bower support

I need a bower file so I can get the main property via bower list --paths.
The bower file itself should not need any maintenance once merged.

i was to lazy to add it :D. Thank you!


Missing items: Handwraps of Surrendered Hope

Links to WOTLK Wowhead for each item:
https://www.wowhead.com/wotlk/item=47230/handwraps-of-surrendered-hope
I think it's better than my current ones,  but the item level is lower, so please, let me sim it :). Thanks!

They are already in the sim, check if you don't have Phase 3 selected or you have some filter active.

I am sorry! I mistook them for wrists, but they are hands, and yes, they are allready there. Thank you and have a nice day!


Consume Xabaril Middleware from Javascript Sample and Add FromTo Core Activator to out of the box registered services

1 - While creating a sample to consume Xabaril Middleware from javascript I realized FromTo activator is not registered automatically. It makes sense it is registered out of the box like the others belonging to the same core namespace.
2- Added Xabaril middleware consumption sample from Javascript

Thanks Carlos


vcpkg install boost-compute doesnt work on linux

Hi , i have tried to used boost-compute on linux.
cmake cant find the library even i install on linux with command :
vcpkg install boost-compute
but same library works on windows nice.
There is some configuration problem on linux i think.
I had to manually install boost-compute with github to solve the issue on linux.

@eix128, I checked that boost-compute only extract the source and install the headers to share folder in vcpkg, so there is no library on windows and Linux.

so how to use it on linux ?
it works fine on windows

@eix128, would you like to give an example that how you used on windows, since there is only headers for this librariy, I'm curious about that. I think you might manually install boost-compute with github to solve this issue temporarily.

@eix128, please provide us above information if it still be a problem for you.


Unable to match results of the paper

Thank you for your paper and code.
When using the provided code for data preprocessing and model training, I am unable to match the results of the paper. My results are worse than the baseline numbers (random init) reported in the paper. Could the authors comment on how to replicate results? Perhaps hyperparameter settings need to be refined, or maybe there is a bug in the codebase?

It seems that the pre-training model is not loaded inside the fine-tuned model：I don't see the parameter config.load_model in the SegExperiment python file

I have a question tha:i am not sure that the percent of labeled data to use in ablation experiments in table 1 is pionted in  step 2 (pixel contrast in supervised learing)  ,or step 3(fine tune).


CDN file for new CSS Grid. Where is it?

Prerequisites

[X] I have searched for duplicate or closed feature requests
[X] I have read the contributing guidelines

Proposal
Where is the new Bootstrap 5.x CSS Grid actual CSS file? Please tell me someone didn't make it available only through SASS. Where is the source? I've searched all CDNs.
Motivation and context
Because you got a manual page for code that can't just be looked at.

Duplicates #35450.
As explained in the docs, it's experimental and needs to be enabled through Sass.

So I have to learn SASS to compile CSS that is disabled by default to look at the CSS that could just be store in a text file.css
Got it.

So I have to learn SASS to compile CSS that is disabled by default to look at the CSS that could just be store in a text file.css
Got it.

Your sarcasm aside, yes! We built something experimental and shipped it to get feedback. We're still not done with testing and iterating, as the note in our docs and blog post announcing the feature clearly indicate.
Instead of being annoyed we haven't yet done what you want and need, please consider that our time is limited, our focus sometimes elsewhere, and that PRs are always welcome. So if you want to play around with it—either in our docs or yes, with Sass—please don't hesitate! Otherwise, we will get to it in a future release :).

I'm done looking for your elusive grid update. No one knows where it is, or what it is but it's provocative! Gets people going!
How in God's name did you think something that can't even be accessed, something that you want people to try and post feedback on, should be first introduce to people in the most difficult way possible?
I'll go ahead and put my time to better use and learn Tailwind's Grid by just visiting the Grid page.

Feel free to fork Bootstrap by clicking the fork button, then tweak your Sass options and publish on npm.


Add 0.16.0 migration guide

Closes #819
Introduced changes

Added a migration guide for changes introduced in version 0.16.0 (also related to Starknet 0.11.0)

[ ] This PR contains breaking changes

Docs are failing. Could you resolve that?

Docs are failing. Could you resolve that?

Should be working now.


feat: refactored notificaiton functionality

Signed-off-by: wadeking98<EMAIL_ADDRESS>Summary of Changes
Previosly the notifications hook was being loaded from useConfig, it's now been moved to tsyringe. Refactored some of the notification logic and made it more reactive.
Related Issues
N/A
Please reference here any issue #'s that are relevant to this PR, or simply enter "N/A" if this PR does not relate to any existing issues.
Pull Request Checklist
Tick all boxes below to demonstrate that you have completed the respective task. If the item does not apply to your this PR check it anyway to make it apparent that there's nothing to do.

[ ] All commits contain a DCO Signed-off-by line (we use the DCO GitHub app to enforce this);
[ ] Updated LICENSE-3RD-PARTY.md for any added dependencies or vendored components;
[ ] Updated documentation as needed for changed code and new or modified features;
[ ] Added sufficient tests so that overall code coverage is not reduced.

If you have any questions to any of the points above, just submit and ask! This checklist is here to help you, not to deter you from contributing!
Pro Tip 🤓

Read our contribution guide at least once; it will save you a few review cycles!
Your PR will likely not be reviewed until all the above boxes are checked and all automated tests have passed.

PR template adapted from the Python attrs project.

Can we work towards lowering the 13 new Sonarcloud issues?


The "args" property in launch.json assigns null to file pointer

Type: Bug

Arguments are passed to the desired target, the program executes, passes the needed number of arguments (argc) check, but assigns NULL to file pointer when trying to open the file passed as an argument.
The program is executes normally without any issues on bash with the provided command line argument.
Application executes normally in bash via ./Application testcases/singlefailure.conf command

Platform and versions:
Operating System: Ubuntu
VSCode Version: 1.94.0
Compiler/Toolchain: GCC 11.4.0
C/C++ Runner v 9.4.9
Launch.json
{   "version": "0.2.0",   "configurations": [     {       "name": "C/C++ Runner: Debug Session",       "type": "cppdbg",       "request": "launch",       "args": [         "testcases/singlefailure.conf"       ],       "stopAtEntry": false,       "externalConsole": false,       "cwd": "/home/katiyabrk/my-gossip-protocol/testcases",       "program": "/home/katiyabrk/my-gossip-protocol/Application",       "MIMode": "gdb",       "miDebuggerPath": "gdb",       "setupCommands": [         {           "description": "Enable pretty-printing for gdb",           "text": "-enable-pretty-printing",           "ignoreFailures": true         }       ]     }   ] }
P.S. I had problems with passing the arguments when the argc wasn't correct, as i.ve searched it was an issue https://github.com/microsoft/vscode-cmake-tools/issues/1594, but i managed it by installing the C/C++ runner which seems to accept the arguments but the file pointer is assigned NULL. Could this be related to the issue described in the link above?
 I just want to see what's inside the argv

Sorry I meant the full content of argv, that's just the first character.

You should get it by
argv[1],20
In the debug console

Hope that's correct

Yes thanks.
So it seems that the path to the file is correct, isnt it?
So its rather an issue with you code.
For example you are using relative paths that do not match instead of absolute paths.


LYWSD02 Set time

Is it possible to set the time somehow on the LYWSD02 with home assistant?

At the moment, no, this is not possible. I’ll leave the issue open, but I don’t expect this to be implemented soon.

The problem echoes #18.
As I wrote there, the possibility of a direct connection to a device at this stage of component development is not realizable but is taken into account during further development. @Ernst79, maybe close it for now?

Yes, I don’t think we aim to make this happen in the near future. For now, we keep it passive.


Third output of function 'predict_given_factorizations' in mgpr.py

Hi!
I try to read the code, but I can't understand what the third output from  predict_given_factorizations in mgpr.py.
It's noted as inv(s) * input-ouputcovariance, but can you give more explanation about that and why
do we need that.
Thanks!

Hi @jastfkjg,
For a lot of the core functions we are following closely the matlab implementation (found here) so the references to the original research are directly applicable. The most comprehensive is Efficient Reinforcement Learning using Gaussian Processes, the PhD thesis by Marc Deisenroth.
The input - output covariance, cov[x, f(x) | m, S], refers to the covariance between an input to the GP model, x, and the model's output f(x). It's needed for long term predictions, and it's used in our pilco.propagate function, and the corresponding Matlab function ( pred.m and propagate.m). If you want to see the math in more detail, see paragraph 2.3.3 of the thesis I linked above, with the final equation being 2.70.

Hi @jastfkjg,
For a lot of the core functions we are following closely the matlab implementation (found here) so the references to the original research are directly applicable. The most comprehensive is Efficient Reinforcement Learning using Gaussian Processes, the PhD thesis by Marc Deisenroth.
The input - output covariance, cov[x, f(x) | m, S], refers to the covariance between an input to the GP model, x, and the model's output f(x). It's needed for long term predictions, and it's used in our pilco.propagate function, and the corresponding Matlab function ( pred.m and propagate.m). If you want to see the math in more detail, see paragraph 2.3.3 of the thesis I linked above, with the final equation being 2.70.


added inaccuracy factor

@wtfil they are still failing in Chrome Mobile with weird numbers, look plz when you'll back and feel free to use this branch.

@tyv thx! working on this

fixed at #70e9a9910d035ed63d71be84f56dbcb62e6817bb


Twitter max video size has changed

According to https://developer.twitter.com/en/docs/media/upload-media/uploading-media/media-best-practices, it seems like Twitter now supports video up to 512 MB(!). I suppose downstream users might limit earlier, but granary source still references a 15 MB limit.
https://github.com/snarfed/granary/blob/64df34a644a967cf0d76067b907aa5c07a7b53a1/granary/twitter.py#L100

thanks for filing! fixed, and deployed to bridgy. (untested. :trollface:)

also ideally twitter would publish this number in https://developer.twitter.com/en/docs/developer-utilities/configuration/api-reference/get-help-configuration and keep it updated there, so i could load it dynamically and not have to maintain it as a constant in my own code. they already have a photo_size_limit value there. sadly it seems like that API endpoint hasn't been updated in years, so i'm not holding my breath.


Create a Light Table Developers Guide

To make it way more approachable for people to get started developing plugins or contributing to the core of Light Table we should create a Developers Guide.
I've initiated the work by creating a GitBook. Currently it's just a a draft of some ideas.
I'll comment on this issue when I feel it would be fruitful for others to pitch in !
Obviously this work needs to be coordinated with the User Guide issue
Setup:

I've created a github repo under the Light Table organisation: https://github.com/LightTable/developer-guide
The Gitbook at https://www.gitbook.com/book/lighttable/light-table-developers-guide/details is set up to sync from the github repo automatically through the use of a web hook.

I'm really looking forward to this guide @rundis!
LT is awesome but we need more people to chime in :)


Unique

Trying to work through travis compile issues by folding more of the upstream changes into my unique branch.

Hello @jc-healy! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file umap/tests/test_umap.py:

Line 118:1: E266 too many leading '#' for block comment
Line 119:1: E265 block comment should start with '# '
Line 120:32: E231 missing whitespace after ','
Line 120:34: E231 missing whitespace after ','
Line 120:36: E231 missing whitespace after ','
Line 120:39: E231 missing whitespace after ','
Line 120:42: E231 missing whitespace after ','
Line 120:44: E231 missing whitespace after ','
Line 120:46: E231 missing whitespace after ','
Line 120:49: E231 missing whitespace after ','
Line 120:52: E231 missing whitespace after ','
Line 120:54: E231 missing whitespace after ','
Line 120:56: E231 missing whitespace after ','
Line 120:63: E231 missing whitespace after ','
Line 120:65: E231 missing whitespace after ','
Line 120:67: E231 missing whitespace after ','
Line 120:70: E231 missing whitespace after ','
Line 120:73: E231 missing whitespace after ','
Line 120:75: E231 missing whitespace after ','
Line 120:77: E231 missing whitespace after ','
Line 120:80: E231 missing whitespace after ','
Line 120:80: E501 line too long (123 > 79 characters)
Line 120:83: E231 missing whitespace after ','
Line 120:85: E231 missing whitespace after ','
Line 120:87: E231 missing whitespace after ','
Line 120:90: E231 missing whitespace after ','
Line 120:93: E231 missing whitespace after ','
Line 120:95: E231 missing whitespace after ','
Line 120:97: E231 missing whitespace after ','
Line 120:104: E231 missing whitespace after ','
Line 120:106: E231 missing whitespace after ','
Line 120:108: E231 missing whitespace after ','
Line 120:115: E231 missing whitespace after ','
Line 120:117: E231 missing whitespace after ','
Line 120:119: E231 missing whitespace after ','
Line 122:1: E265 block comment should start with '# '
Line 124:80: E501 line too long (83 > 79 characters)
Line 125:80: E501 line too long (86 > 79 characters)
Line 127:80: E501 line too long (95 > 79 characters)
Line 128:80: E501 line too long (86 > 79 characters)
Line 129:80: E501 line too long (81 > 79 characters)
Line 132:1: E266 too many leading '#' for block comment
Line 133:1: E265 block comment should start with '# '
Line 133:80: E501 line too long (100 > 79 characters)
Line 134:1: E302 expected 2 blank lines, found 1
Line 135:80: E501 line too long (113 > 79 characters)
Line 136:67: E231 missing whitespace after ','
Line 138:1: E302 expected 2 blank lines, found 1
Line 140:67: E231 missing whitespace after ','
Line 142:1: E265 block comment should start with '# '
Line 142:80: E501 line too long (100 > 79 characters)
Line 143:1: E302 expected 2 blank lines, found 1
Line 144:80: E501 line too long (101 > 79 characters)
Line 145:67: E231 missing whitespace after ','
Line 147:1: E302 expected 2 blank lines, found 1
Line 149:67: E231 missing whitespace after ','
Line 151:1: E266 too many leading '#' for block comment
Line 152:1: E265 block comment should start with '# '
Line 152:80: E501 line too long (100 > 79 characters)
Line 153:1: E302 expected 2 blank lines, found 1
Line 154:80: E501 line too long (112 > 79 characters)
Line 155:67: E231 missing whitespace after ','
Line 157:1: E302 expected 2 blank lines, found 1
Line 159:67: E231 missing whitespace after ','
Line 161:1: E265 block comment should start with '# '
Line 161:80: E501 line too long (100 > 79 characters)
Line 162:1: E302 expected 2 blank lines, found 1
Line 163:80: E501 line too long (100 > 79 characters)
Line 164:67: E231 missing whitespace after ','
Line 166:1: E302 expected 2 blank lines, found 1
Line 168:5: E265 block comment should start with '# '
Line 169:67: E231 missing whitespace after ','
Line 171:80: E501 line too long (87 > 79 characters)
Line 172:1: E265 block comment should start with '# '
Line 172:80: E501 line too long (102 > 79 characters)
Line 174:1: E302 expected 2 blank lines, found 1

In the file umap/umap_.py:

Line 33:80: E501 line too long (93 > 79 characters)
Line 1435:24: E225 missing whitespace around operator
Line 1435:24: E712 comparison to True should be 'if cond is True:' or 'if cond:'
Line 1436:80: E501 line too long (80 > 79 characters)
Line 1494:9: E265 block comment should start with '# '
Line 1495:9: E265 block comment should start with '# '
Line 1496:9: E265 block comment should start with '# '
Line 1498:13: E265 block comment should start with '# '
Line 1500:17: E265 block comment should start with '# '
Line 1503:80: E501 line too long (126 > 79 characters)
Line 1505:75: E231 missing whitespace after ','
Line 1505:80: E501 line too long (111 > 79 characters)
Line 1505:86: E231 missing whitespace after ','
Line 1505:93: E231 missing whitespace after ','
Line 1507:80: E501 line too long (111 > 79 characters)
Line 1508:9: E265 block comment should start with '# '
Line 1509:9: E265 block comment should start with '# '
Line 1530:8: E114 indentation is not a multiple of four (comment)
Line 1530:8: E265 block comment should start with '# '
Line 1531:8: E114 indentation is not a multiple of four (comment)
Line 1531:8: E265 block comment should start with '# '
Line 1548:80: E501 line too long (92 > 79 characters)
Line 1551:80: E501 line too long (95 > 79 characters)
Line 1553:80: E501 line too long (85 > 79 characters)
Line 1633:9: E265 block comment should start with '# '
Line 1634:9: E265 block comment should start with '# '
Line 1735:37: E262 inline comment should start with '# '

In the file umap/utils.py:

Line 566:1: E265 block comment should start with '# '
Line 566:80: E501 line too long (100 > 79 characters)
Line 567:1: E302 expected 2 blank lines, found 1
Line 567:80: E501 line too long (83 > 79 characters)
Line 569:80: E501 line too long (96 > 79 characters)
Line 579:80: E501 line too long (101 > 79 characters)
Line 581:80: E501 line too long (81 > 79 characters)
Line 590:22: E231 missing whitespace after ','
Line 591:34: E225 missing whitespace around operator
Line 591:50: E225 missing whitespace around operator
Line 592:80: E501 line too long (134 > 79 characters)
Line 593:1: W391 blank line at end of file