Incorrect margin-top value for YAML defined bar charts

Incorrect margin-top value for YAML defined bar charts ?

O.k. here we go. I removed the overhead and it seems that it only occuring, if placed in a custom:vertical-stack-in-card
type: custom:vertical-stack-in-card
cards:
  - type: custom:history-explorer-card
    graphs:
      - type: bar
        entities:
          - entity: sensor.hausenergiezahler_energy_counter

But here as well only for yaml-setup. If I add energy sensors in UI, it is working as you are expecting.

Hmm, it's always challenging to make layout work correctly with other custom cards that 'get innthe way', changing your cards CSS in unpredictable ways without telling you. Builtin layouting cards like vertical stack are easier to deal with, because they have a well defined behavior.
While both the YAML defined and dynamically generated graphs will both generate the same DOM subtrees, they do so in different parts of the page loading and rendering process. Depending on where the custom cards hooks into this process, it may get different results.
Not sure if there is a real solution to this. Maybe it's something one has to live with when using combinations of custom cards that all try to access the same layout without coordinating with each other. At least that bug doesn't seem to affect functionality.
What browser are you on ?

Same behavior in all browsers. Vivaldi/Chrome on Windows or Safari/Webkit-HA-App on iOS. I only wonder, why this are element-css-attributes and sometimes in this way written/generated and sometimes the other way.
If it is diplay different in differnet browser, o.k. But here it seems that there is something different/wrong in the different code-paths. BTW There is a difference in the rgba-css as well.

It could also be a breaking change for users that use things like card mod to manually override the layout of the card.

ofc. But I don't think that so many modded this single new intervallselector. 😉
But ofc I can try to card-mod the place on my own as well.

it might modify one element, but not the other.

I think so. It is somehow odd, how the margin got changed to 0 0 0 0 even if you are hardcoding a negative to margin in your own div. But I assume, that the stack card is iterating over it and is changing the margin to 0 0 0 0.

Found it:
Yikes. Well, that explains it.

Not too sure what to do with something like this tbh. Not too keen on starting to modify the cards layouting engine to try to work around another custom cards code brutalizing my styles like that. Who knows what the next custom card is going to do. Sounds like a time consuming endless game of run and chase.
I'd rather concentrate on being compatible with native builtin cards and then let card mod handle the cases where other custom cards are doing things like that vertical stack card does...


Performance issues with large trees

That's a nice plugin but there are serious performance issues by large trees. A node with only 1000 children will take 10-15s to load on Chrome (latest version). 10K nodes will simply crash the window after 1 minute or so of freeze.
Is there anything which could be improved on this side?

I plan to introduce performance support for large trees in the near future.
Did you investigate why it happens?
2 options:

Change detection takes too long - In such case I need to export another
TreeComponent that allow OnPush strategy.
Too many DOM elements - In such case I need to allow virtual scrolling.

I want to eventually introduce both.
--

Adam Klein http://il.linkedin.com/in/adamklein500
CTO @ 500Tech.com http://500tech.com/
AngularJS, ReactJS, NodeJS
Development, consulting, training and public speaking
(+972) 52 747 5633

On Mon, Dec 5, 2016 at 1:42 PM, Christophe Vidal<EMAIL_ADDRESS>wrote:

That's a nice plugin but there are serious performance issues by large
trees. A node with only 1000 children will take 10-15s to load on Chrome
(latest version). 10K nodes will simply crash the window after 1 minute or
so of freeze.
Is there anything which could be improved on this side?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/500tech/angular2-tree-component/issues/121, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA2SSooQI5IqjTgLKZbuxL8zjQrUjNF-ks5rE_iJgaJpZM4LEIZU
.

No sorry, didn't spend time to investigate. I'm not so sure which strategy is the best to be honest. A performant alternative would be to delegate some listener to a document listener, or overall component listener, but that would be quite dirty I think... ( renderer.listen(elementRef.nativeElement, 'click', (event) => {...}))
I dont know how well the more "Angular" method are performing with a massive number of nodes.

Hi,
With 100 elements, the tree takes 40 sec to load.
38 sec for the Event Dom Click.
Someone has a solution ?

+1

@Provson its probably something from your side that is the problem.. I can load a lot of nodes without any problems..

I have the same problem. When I open a node with ~1500 children, it takes about 30 seconds in chrome. I did some profiling and it seems to be the addEventListener method the most time consuming operation.

+1

+1

I have same issue. My tree consists of about 200 2nd level nodes. Each of them has 0-10 children. There are no 4th level nodes.
Collapsing / expanding of the whole tree takes about 5 second. Maybe it would be appropriate in the first time but second and other time it is annoying a bit
Children of 2nd level nodes are loaded dynamically. After the tree data updating I call  this.tree.treeModel.update() and it updates the tree view with 3 second delay despite of small number of new children (usually less that 10)
Any ideas about performance improving? I would appreciate any advice

Maybe the author can explain in brief what was his idea of optimizing it, so I can try and make a pull request? That would really help

Virtual repeat!! Logical

Also it would be nice to have lazy loading mechanism to update/refresh only current node and its children.
getChildren   is not called for me after node expanding and I am forced to update whole tree
options = {
  getChildren: (node:TreeNode) => {
    return request('/api/children/' + node.id);
  }
}

Hey guys,
I was in sickness leave for a long time.
Did anyone check what makes it slow?
--

Adam Klein http://il.linkedin.com/in/adamklein500
CTO @ 500Tech.com http://500tech.com/
AngularJS, ReactJS, NodeJS
Development, consulting, training and public speaking
(+972) 52 747 5633

On Mon, Jan 30, 2017 at 8:40 PM, Aleksey Shishkevich <
<EMAIL_ADDRESS>wrote:

Also it would be nice to have lazy loading mechanism to update/refresh
only current node and its children.
getChildren is not called for me after node expanding and I am forced to
update whole tree
options = {
getChildren: (node:TreeNode) => {
return request('/api/children/' + node.id);
}
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/500tech/angular2-tree-component/issues/121#issuecomment-276150715,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2SSvnM70cAqrk9GLus3fQNPmqGhNuoks5rXi6JgaJpZM4LEIZU
.

I have to mention delays in production version are not such significant. Collapsing / expanding of the tree takes about 1 second. That is acceptable for me
Nevertheless jsTree jquery plugin renders the tree faster a bit and supports lazy loading

Hi Guys,
i just did some profiling with chrome,#

i'm not very good at interpreting this, but it looks like a change detection issue.
The node for the tree are generated with the following function inside onInit.
So The Tree has 10000 toplevel nodes, with 4 Children. This is a realistic size for my app, but it's way to slow.
buildnodes(){
    let newNodes = [];
    for(let i=0;i<10000;i++){
      newNodes.push({
        id: i,
        name: 'root'+i,
        children: [
          { id: 'child-'+(i+1), name: 'child-1-from-' +i},
          { id: 'child-'+(i+2), name: 'child-2-from-' +i},
          { id: 'child-'+(i+3), name: 'child-3-from-' +i},
          { id: 'child-'+(i+4), name: 'child-4-from-' +i}
        ]
      });

    }
    return newNodes;
  }

Hey guys,
I'll work on this during the weekend. I hope I can solve it in a couple of days, I'll keep you posted

looking forward to seeing this one resolved.. great component btw.. thanks for your effort on this one

It's really close to being finished
--

Adam Klein http://il.linkedin.com/in/adamklein500
CTO @ 500Tech.com http://500tech.com/
AngularJS, ReactJS, NodeJS
Development, consulting, training and public speaking
(+972) 52 747 5633

On Sat, Feb 25, 2017 at 3:10 PM, anselpeters<EMAIL_ADDRESS>wrote:

looking forward to seeing this one resolved.. great component btw.. thanks
for your effort on this one
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/500tech/angular2-tree-component/issues/121#issuecomment-282483036,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2SSqsfXvNJv2w8QuLnZmtmpG8fdGEvks5rgCgqgaJpZM4LEIZU
.

It it going to be infinite tree ? :D

Infinite no. But you can load 10,000 nodes and the tree should scroll
smoothly (when you enableProdMode())
--

Adam Klein http://il.linkedin.com/in/adamklein500
CTO @ 500Tech.com http://500tech.com/
AngularJS, ReactJS, NodeJS
Development, consulting, training and public speaking
(+972) 52 747 5633

On Sat, Feb 25, 2017 at 4:59 PM, Denko Manceski<EMAIL_ADDRESS>wrote:

It it going to be infinite tree ? :D
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/500tech/angular2-tree-component/issues/121#issuecomment-282489161,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2SSlYDRgUKSSBAEGB5r4VbsWK62xdCks5rgEHVgaJpZM4LEIZU
.

Do the nodes always stay in the DOM once loaded, or are they "dynamically" removed (from the DOM, but kept in memory) when, for example, a node is collapsed?

They are dynamically destroyed and created.
When a node is collapsed - that's already supported in the tree (I use ngIf
for the children).
The virtual scroll feature will also make sure that only the nodes in the
current viewport are on the DOM, and allow the user to feel a smooth scroll
as if the entire tree is rendered
--

Adam Klein http://il.linkedin.com/in/adamklein500
CTO @ 500Tech.com http://500tech.com/
AngularJS, ReactJS, NodeJS
Development, consulting, training and public speaking
(+972) 52 747 5633

On Sun, Feb 26, 2017 at 3:47 PM, Christophe Vidal<EMAIL_ADDRESS>wrote:

Do the nodes always stay in the DOM once loaded, or are they "dynamically"
removed (from the DOM, but kept in memory) when, for example, a node is
collapsed?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/500tech/angular2-tree-component/issues/121#issuecomment-282557025,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA2SSsJLsFDz1LOLn1CABlTxb9ziKKE3ks5rgYJYgaJpZM4LEIZU
.

Wow that sounds great, I assume then it can support much more than 10k nodes, the limit being actually regarding the memory, so something like way above 100K if not millions .. ?

Well, there will be 3 limits:

browser limit of the viewport height, which will allow for around 0.5 million nodes - depending on their height.
client side memory of holding all of the nodes
heavy client side actions, like filtering or drag and drop / dynamically updating the tree (which forces to recalculate the node positions)

Yesterday, I experimented with version 3.0.2 and virtual scrolling. There is an issue with large node templates (e.g. height 150px). If I start to scroll down slowly from the top of the tree, the content suddenly jumps and a couple of nodes are skipped (disappear from the viewport).
I think it is related to the number of tree nodes that are part of the tree node collection initially. The number of elements in the DOM is not constant at the beginning. It increases as I start scrolling down. My guess is that this results in this odd jump because some property (height?) is recalculated.
Is there a way to fix the number of elements? Once the number of tree nodes is not changing anymore, scrolling works.

Hi @albrechta @Krisa @Provson @anselpeters  @alsh76 ,
can you try with 3.1.0 - it looks like it's stable and solved virtual scrolling.
Use enableProdMode() with many nodes.
Thanks

this plugin not works correctly after all theses changes ! i use 3.1.0 and when open child sometimes  the tree's noeuds are cutted, is there a documentations for this virtual scroll, do I need specify height of each node ? do I need height somewhere ? is there a example to realize this virtual scroll :S
dammage

create 2 directives (draggable and droppable)
Draggable code :
`import { Directive, Input, ElementRef, AfterContentInit, OnDestroy } from '@angular/core';

@Directive({
selector: '[makeDraggable]'
})
export class MakeDraggable implements AfterContentInit, OnDestroy {
//Contient l'objet que l'on veut déplacer
@Input('makeDraggable') data: any;
constructor(private _elementRef: ElementRef) { }

ngAfterContentInit() {
    //On récupère le native element
    let el = this._elementRef.nativeElement;

    // Set the draggable attribute to the element
    el.draggable = 'true';

    el.addEventListener('dragstart', (e) => {
        if (e.stopPropagation) {
            e.stopPropagation();
        }

        el.classList.add('dragStart')
        e.dataTransfer.effectAllowed = 'move';
        e.dataTransfer.setData('text', JSON.stringify(this.data));
    });

    // Remove the drag-src class
    el.addEventListener('dragend', (e) => {
        e.preventDefault();
        el.classList.remove('dragStart')
    });
}

//On supprime les event listener
ngOnDestroy() {
    let el = this._elementRef.nativeElement;

    el.removeEventListener('dragstart');
    el.removeEventListener('dragend');
}

}3) Droppable code :import { Directive, AfterContentInit, ElementRef, Output, EventEmitter, OnDestroy, NgZone } from '@angular/core';
@Directive({
selector: '[makeDroppable]'
})
export class MakeDroppable implements AfterContentInit, OnDestroy {
//Evenement emit lors du drop
@Output() dropped: EventEmitter = new EventEmitter();
constructor(private _elementRef: ElementRef, private ngZone: NgZone) { }

ngAfterContentInit() {
    //On récupère le native element
    let el = this._elementRef.nativeElement;

    this.ngZone.runOutsideAngular(() => {
        //Ajout class over
        el.addEventListener('dragenter', (e) => {
            el.classList.add('over');
        });

        //Suppression class over
        el.addEventListener('dragleave', (e) => {
            el.classList.remove('over');
        });

        //Ajout class move
        el.addEventListener('dragover', (e) => {
            if (e.preventDefault) {
                e.preventDefault();
            }

            e.dataTransfer.dropEffect = 'move';
            return false;
        });
    });

    let self = this;
    //Au drop, on emet un event avec l'objet que l'on drop
    el.addEventListener('drop', (e) => {
        this.ngZone.run(() => {
            if (e.stopPropagation) {
                e.stopPropagation();
            }

            el.classList.remove('over');
            let data: any = JSON.parse(e.dataTransfer.getData('text'));

            self.dropped.emit(data.id);

            return false;
        })
    })
}

//On supprime tous les event listener
ngOnDestroy() {
    let el = this._elementRef.nativeElement;

    el.removeEventListener('dragenter');
    el.removeEventListener('dragleave');
    el.removeEventListener('dragover');
    el.removeEventListener('drop');
}

}`

For html element with need to be draggable :
<button class="btn btn-primary btn-sm" [makeDraggable]="'MyData">Yolo</button>

For html with need to be droppable :
<div makeDroppable (dropped)="onDrop($event)"></div>

The slowness comes from Angular. Iwas obliged to use 'ngZone'.

@adamkleingit Unfortunately, scrolling is still an issue with large nodes (e.g. height of node is 150px). The problem is not performace anymore but the virtual scrolling, which scrolls too fast. If I scroll through a tree, a node changes 2 or three levels as you recalculate the marginTop.

Can you share your code?
Which browser + OS version?
Thanks

@albrechta did you set the nodeHeight property on the options?
You can set it to either a number or a function.
If you have, and there's still a problem - please re-open the issue and paste your code.
Thanks!

Hi All,
Really great component.
Thanks for great effort. I spent last two week learning and working with component.
Is it possible to attach event on virtual scroll to trigger fetching data form server and appending to current node being scrolled?
It basically like infinite scroll per child node.
Thanks!

Hi,
I'm also facing performance issues working with large trees (>5K nodes) when below function is called on the tree.
(click)="tree.treeModel.expandAll()"
The performance is relatively slow at the event of expand() compared to collapse().
I came across plenty of solutions in this thread, issue# 173 & issue# 463 and have tried some of them as well, but still this is not solved.
Please suggest which one is the correct one, specially in terms of performance?
Thanks,
Faizan

Hello, the problem has been resolved, I have a case with 3000 nodes, and it still has slow loading problems


Add a license file for the golang elementum repository

Maybe we can add a license file to golang elementum repository? I mean some good unrestricted license :-)
It will allow to see documentation here https://pkg.go.dev/github.com/elgatito/elementum for example, and in general it is a good idea to have a license, see
https://www.securitylab.ru/news/544428.php
https://blog.opensource.org/the-most-popular-licenses-for-each-language-2023/
also
https://opensource.guide/ru/legal/
https://opensource.guide/legal/

@elgatito или есть какие-то причины по которым файл лицензии не был добавлен?

@elgatito awesome, thanks! i will wait for https://pkg.go.dev/github.com/elgatito/elementum to be updated and then i will close this issue.

docs were updated.


Re-examination and refactoring of trestle internal planning infrastructure.

Issue description / feature objectives
The current trestle 'planning' infrastructure was an early attempt to introduce robust rollback features into trestle. With the current methodology that has been taken over the last 3-4 months on trestle this infrastructure has not been advanced / exploited.
A decision needs to be made to the future state of this infrastructure and then a plan rolled out either to:

Simplify the internals of trestle commands
Remediate outstanding issues and enhance as required.

Completion Criteria
One of the two approaches is chosen and implemented consistently across the codebase.

Duplicate - closing.


Manage Python related .dotfiles (for a user)

There are a handful of Python related dotfiles, which don't seem to have a global option in /etc (or if they do, it's not documented)
In our very old fork of this module, we have a defined type python::dotfiles, which manages:

.pypirc
.pydistutils.cfg
.pip
.pip/pip.conf

The main reason why we need this is because so we can direct our jenkins builds against our internal PyPy repository.
Is there any interest for such an extension to this module?

i have now solved this issue with a private (general) defined type (in a profile)
define profile::python::dotfile (
  $ensure   = 'present',
  $filename = $title,
  $owner    = 'root',
  $group    = 'root',
  $mode     = '0644',
  $config   = {},
) {
  $parent_dir = dirname($filename)

  exec { "create ${title}'s parent dir":
    command => "install -o ${owner} -g ${group} -d ${parent_dir}",
    creates => $parent_dir,
  }

  file { $filename:
    ensure  => $ensure,
    owner   => $owner,
    group   => $group,
    content => template("${module_name}/inifile.erb"),
    require => Exec["create ${title}'s parent dir"],
  }
}

the template is simply:
# this file is managed by puppet
<%- @config.map do |section,conf| -%>
[<%= section -%>]
<%-   conf.map do |key,value| -%>
<%= key %> = <%= value %>

<%-   end -%>
<%- end -%>

@igalic it will be better if you submit the Pull Request xD

okay!


max-navigation on arrows

Describe the bug
Dunno if its a bug or intended. But if I've max-navigation set, I am not able to go to max dates I select using the months, years, BUT if I click on the arrows I am able to navigate and see the calendar onwards. Shouldnt block the arrow too?
Using last version

You can use prevent-min-max-navigation prop.

I am using it... But as I said, doesn't apply to the arrows...

@DMOAbove Can you show me what props are you using?

Sure, @Jasenkoo
      ref="dp"
      v-model="date"
      @update:modelValue="handleDate"
      range
      :preset-ranges="presetRanges"
      :enableTimePicker="true"
      :format-locale="locale"
      format="P"
      locale="en"
      :placeholder="$translate('PlaceholderText')"
      monthNameFormat="long"
      hideInputIcon
      :cancelText="$translate('CancelButton')"
      :selectText="$translate('AcceptButton')"
      multi-calendars
      :markers="markers"
      :day-names="weekDays"
      :max-date="futureDate"
      prevent-max-navigation

@DMOAbove The prop is called prevent-min-max-navigation (basically works on both ways) instead of prevent-max-navigation, updated your sandbox

Facepalm -.- And I look into it more then once.
Thanks for pointing the obvious. Appreciated. All good :)


[Style] Improving UI Design and Navigation with Balanced Color Scheme

What's the style idea?
The current UI design lacks coherence and balance in color scheme, particularly noticeable in the navigation bar. Additionally, the chatbot's appearance lacks responsiveness and the chat window doesn't close properly. To address these issues, the chatbot assistance should be redesigned to function as a pop-up feature for improved user interaction.
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[x] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Thankyou so much, would like to work on it!

Any update on this @Leorasaharia

Any update on this or should I close @Leorasaharia

I'll make the changes in a while. @Rakesh9100

What would you like to address through this issue as issue is already opened before for fixing the closing of the chatbot @Leorasaharia

Which changes you will make, first provide your reply to this @Leorasaharia

@Rakesh9100 I've already designed the navigation layout and color scheme in the previous PR. Now, I'll focus on enhancing the navbar's color scheme, ensuring it stands out prominently in dark mode. This update aims to improve visibility and user experience by making the navbar area more vibrant.


Error: !err Error creating pixel buffer: -6661 / handtrackinggpu

Checking the sample project for hand tracking makes it easier to generate errors under certain conditions (title errors).
Is there a solution?
[Device]
iPhoneX OS:12.0
iPhoneXR OS:12.1.4
[Build target project]
MediaPipe's hand tracking sample project
 / mediapipe / examples / ios / handtrackinggpu
[Steps that occurred]
1, Move your hand closer to the camera.
2, If the camera is close to the hand, the application will crash.
When approaching to within 10cm.
[Error Log]
019-10-04 17:24:30.569533+0900 HandTrackingGpuApp[1019:113245] [MC] Reading from public effective user settings. WARNING: Logging before InitGoogleLogging() is written to STDERR I1004 17:24:30.594830<PHONE_NUMBER> gl_context.cc:233] GL version: 3.0 (OpenGL ES 3.0 Metal - 58.3) 2019-10-04 17:24:30.597188+0900 HandTrackingGpuApp[1019:113292] Initialized TensorFlow Lite runtime. 2019-10-04 17:24:30.597769+0900 HandTrackingGpuApp[1019:113292] Created TensorFlow Lite delegate for Metal. W1004 17:24:30.598220<PHONE_NUMBER> tflite_inference_calculator.cc:539] Please ensure input GPU tensor is 4 channels. W1004 17:24:30.694345<PHONE_NUMBER> tflite_inference_calculator.cc:539] Please ensure input GPU tensor is 4 channels. F1004 17:24:35.053661<PHONE_NUMBER> gpu_buffer_multi_pool.cc:82] Check failed: !err Error creating pixel buffer: -6661

Same problem.
Handtrackinggpu, iPhoneX, iOS 13.0
Unstable error. Most often occurs if the hands is leaving or entering the frame
Any solutions?

We'll attempt to reproduce.

We'll attempt to reproduce.

Thank you for confirmation.
We look forward to your response.

Fixed

I had the same problem, but I solved it. My project has integrated mediapipa framework, and then I use tensorflow_ lite.framework That's the mistake. My solution is to use tensorflow in "build phases > link binary with libraries". Put  tensorflow_ lite.framework under the framework related to mediapipa.

same error, I found that the error is from the “startwitherror” method of the MPPGraph object


RFP - SoftHSM

Checklist

[X] The package I am requesting does not already exist on https://chocolatey.org/packages;
[X] There is no open issue for this package;
[X] The issue title starts 'RFP - ';
[X] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL : https://www.opendnssec.org/softhsm/
Direct download URL for the software / installer : https://github.com/disig/SoftHSM2-for-Windows/releases/download/v2.5.0/SoftHSM2-2.5.0.msi
Software summary / short description: SoftHSM is an implementation of a cryptographic store accessible through a PKCS #11 interface. You can use it to explore PKCS #11 without having a Hardware Security Module.

Status: Review
https://chocolatey.org/packages/softhsm
https://chocolatey.org/packages/softhsm.install
https://chocolatey.org/packages/softhsm.portable

Status: Published

https://chocolatey.org/packages/softhsm
https://chocolatey.org/packages/softhsm.install
https://chocolatey.org/packages/softhsm.portable

Can be closed.

Works very well, thank you!


npm install fails

http://registry.npmjs.org/dtslint
The result is {}.

Seems like it's not published to npm.

Sorry for the delay. It's published now.


jellyfin: 10.6.2 -> 10.6.3

Motivation for this change
10.6.2 broke, as Jellyfin apparently depublizes their old releases…
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Turns out upstream's download URL layout has changed, so this has stopped building: #96221 is the fix.


[website] Add templates & design-kits page

Preview

templates: https://deploy-preview-27811--material-ui.netlify.app/branding/templates/
design-kits: https://deploy-preview-27811--material-ui.netlify.app/branding/design-kits/

combine the pages in this PR because they share the same components and layout.

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

"much more" button under "use cases" is not working
Reconsider grouping this into one PR (+7k, -1.8k, 140 files)

I could notice the following:

The flash harms the readability of the icon in light and dark mode, +1 for a lighter background-color

I doubt that the contrast of the icon buttons is correct

same feedback for the testimonal:

The price of the items might be painful to keep up to date, e.g. Flexy at $49 is temporary. How about we remove the prices?
When dragging the carousel, releasing the mouse trigger the navigation.
The color contrast feels KO. Should it be "Go to" and not "Go to"?

This pricing is confusing. It's per editors. Should we only mention Figma?

Would it make sense to make each icon a link as we have on the homepage?

I think that the FAQ's quetions could be h3

The links are broken, it has no href.

Also it could link the design h2 directly /store/#design

Should the healers have leading dots? It's not consistent:

How about we remove them all? e.g in the h1 too

@oliviertassinari

I've been thinking about this... even iterated on not using the flash at all and changing its color for a lighter one, which also makes it seem like there's no flash... So, upon more reflection: is it that much of a big problem?  I personally think not and it adds some character but you could argue that it is design for design sake and does not mean anything (or serve any purpose - if it had to) :sweat_smile: So maybe it is up to taste. If it is bothering you a lot, no problem with removing and moving forward without it!

I guess something happened with these buttons when using this section on these pages. If you look at the home page, it's correct there. I believe it's just a matter of discovering what happened and fix it!

(and 6) Hm... yeah. Then maybe removing the prices might be a good thing, making it simpler.

I'll tweak those! (Color contrast and text)

For consistency sake, maybe... But would it make sense? I mean, that is where the main button Browse templates links the user to (the store page with the three products). I don't really have a strong opinion though, just raising some reflection up.

Agree! I have already removed the periods for some of these sections in the Home page PR and I'll remove the other ones here. Once everything's merged, I believe it will all be without the final period :)

1 I personally have to pause on the icon to understand the shape, it doesn't come naturally. I wouldn't base an update of the design only on my feeling. If it's only me, I think that we should ignore this feedback.
7 I assumed that some people might want to click directly on them. I tried to 😁.

"much more" button under "use cases" is not working
fixed.

Reconsider grouping this into one PR (+7k, -1.8k, 140 files)
custom icons are removed.

7 I assumed that some people might want to click directly on them. I tried to 😁.

updated.

It looks good. Not related to these changes, but I think we should fix a problem I saw with the nav menu on small screens.

When I can't see the whole menu and try to scroll down, only the background scrolls.

It looks good. Not related to these changes, but I think we should fix a problem I saw with the nav menu on small screens.

When I can't see the whole menu and try to scroll down, only the background scrolls.

added to refinement todo.

Merge this since all the suggestions have been fixed.


Switch alias_method_chain to Module#prepend

Fixes #65
Not sure how I could DRY the two variants of the code without making it less easy to understand. Suggestions welcome. Maybe dropping Ruby 1.9 support in future is an option.

Can we please get this merged? Kinda annoying having dep warnings :P Thanks <3.
:shipit:

The master branch has not been updated in two and a half years, so chances are this won't be merged in anytime soon. For now, I put this in my Gemfile to get rid of the deprecation warnings.
gem 'gretel', github: 'craig1410/gretel', branch: 'dep_alias_method_chain'

Thanks @WilHall


Export Data.Attoparsec.ByteString from X.Data.Attoparsec.ByteString

Just like X.Data.Attoparsec.Text does it.
Then if a project needs only Data.Attoparsec.ByteString it will not need to explicitly depend on locked attoparsec but can depend on x-attoparsec only.
/cc @olorin

Will be some churn here but I agree with it

:100: in :green_apple:

:+1:


[Fix] Hotfix 4.1.2 exploding fragment NPE

Se perdía la referencia del exploding fragment cuando el pago se realizaba en background

Codecov Report

Merging #1330 into hotfix/4.1.2 will decrease coverage by <.01%.
The diff coverage is 0%.

@@                Coverage Diff                @@
##             hotfix/4.1.2   #1330      +/-   ##
=================================================
- Coverage            2.51%    2.5%   -0.01%
  Complexity            125     125
=================================================
  Files                 380     380
  Lines               15417   15432      +15
  Branches             1325    1327       +2
=================================================
  Hits                  387     387
- Misses              15005   15020      +15
  Partials               25      25

Impacted Files
Coverage Δ
Complexity Δ

...id/px/internal/features/onetap/OneTapFragment.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...s/review_and_confirm/ReviewAndConfirmActivity.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

.../review_and_confirm/ReviewAndConfirmPresenter.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...x/internal/features/explode/ExplodingFragment.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...d/px/internal/features/onetap/OneTapPresenter.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3c754a7...f5cc1b5. Read the comment docs.


Add report name to vuln report fixes #129

Name added to VulnerabilityReport, this allows for subsequent queries to Clair via GetAncestry without needing to re-send the layers.

thanks!!


solr-0 restart intermittently

Hello,
our solr engine restarts intermittently.
is there any way to find the root cause?
adding some info below. ===================>
Events:
Type     Reason     Age                      From     Message

Normal   Killing    34m (x43 over 6d4h)      kubelet  Container solr failed liveness probe, will be restarted
Warning  Unhealthy  9m55s (x324 over 6d13h)  kubelet  Liveness probe failed: Get "http://<IP_ADDRESS>:8983/solr/admin/info/system": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
Warning  Unhealthy  9m50s (x891 over 6d13h)  kubelet  Readiness probe failed: Get "http://<IP_ADDRESS>:8983/solr/admin/info/system": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[root@mae1deuj1 ~]# helm list
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
ckan-r  ckan-r          1               2022-10-17 09:40:13.2771763 -0400 -0400 deployed        ckan-1.0.2      2.9.2
[root@mae1deuj1 ~]# k get pods
NAME                                      READY   STATUS      RESTARTS       AGE
ckan-678bd8db47-9hhpw                     1/1     Running     5 (7d4h ago)   7d4h
ckan-email-notifications-28155975-vfvkv   0/1     Completed   0              36m
ckan-email-notifications-28155990-hk7rt   0/1     Completed   0              21m
ckan-email-notifications-28156005-p9rrm   0/1     Completed   0              6m20s
ckan-r-zookeeper-0                        1/1     Running     0              7d4h
datapusher-6b8d458cbd-xl2bk               1/1     Running     0              7d4h
postgres-0                                1/1     Running     0              7d4h
redis-master-0                            1/1     Running     0              7d4h
solr-0                                    1/1     Running     43 (35m ago)   7d4h

Can you please provide kubectl logs @danseo-reisys

when solr resarts. log restart as well.   most recent restart was 7 hrs ago.
header
2023-07-24 05:14:31.096 INFO  (main) [   ] o.e.j.s.Server jetty-9.3.14.v20161028
2023-07-24 05:14:31.290 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter  ___      _       Welcome to Apache Solr™ version 6.6.6
2023-07-24 05:14:31.293 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter / | | | _   Starting in cloud mode on port 8983
2023-07-24 05:14:31.293 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter _ / _ \ | '|  Install dir: /opt/solr
2023-07-24 05:14:31.301 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter |/__/||    Start time: 2023-07-24T05:14:31.293Z
2023-07-24 05:14:31.301 INFO  (main) [   ] o.a.s.s.StartupLoggingUtils Log level override, property solr.log.level=INFO
2023-07-24 05:14:31.309 INFO  (main) [   ] o.a.s.c.SolrResourceLoader Using system property solr.solr.home: /opt/solr/server/home
2023-07-24 05:14:31.359 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter Loading solr.xml from SolrHome (not found in ZooKeeper)
2023-07-24 05:14:31.360 INFO  (main) [   ] o.a.s.c.SolrXmlConfig Loading container configuration from /opt/solr/server/home/solr.xml
2023-07-24 05:14:31.428 INFO  (main) [   ] o.a.s.h.c.HttpShardHandlerFactory Host whitelist initialized: WhitelistHostChecker [whitel
istHosts=null, whitelistHostCheckingEnabled=true]
2023-07-24 05:14:31.528 INFO  (main) [   ] o.a.s.u.UpdateShardHandler Creating UpdateShardHandler HTTP client with params: socketTime
out=600000&connTimeout=60000&retry=true
2023-07-24 05:14:31.535 INFO  (main) [   ] o.a.s.c.ZkContainer Zookeeper client=ckan-r-zookeeper-headless:2181
2023-07-24 05:14:31.619 INFO  (main) [   ] o.a.s.c.Overseer Overseer (id=null) closing
2023-07-24 05:14:31.623 INFO  (main) [   ] o.a.s.c.OverseerElectionContext I am going to be the leader solr-0.solr-headless.ckan-r:89
83_solr
2023-07-24 05:14:31.630 INFO  (main) [   ] o.a.s.c.Overseer Overseer (id=72057598439653622-solr-0.solr-headless.ckan-r:8983_solr-n_00
00000145) starting
2023-07-24 05:14:31.703 INFO  (main) [   ] o.a.s.c.ZkController Register node as live in ZooKeeper:/live_nodes/solr-0.solr-headless.c
kan-r:8983_solr
2023-07-24 05:14:31.713 INFO  (OverseerStateUpdate-72057598439653622-solr-0.solr-headless.ckan-r:8983_solr-n_0000000145) [   ] o.a.s.
c.c.ZkStateReader Updated live nodes from ZooKeeper... (0) -> (1)
2023-07-24 05:14:31.861 INFO  (main) [   ] o.a.s.c.CorePropertiesLocator Found 2 core definitions underneath /opt/solr/server/home
2023-07-24 05:14:31.862 INFO  (main) [   ] o.a.s.c.CorePropertiesLocator Cores are: [ckancollection_shard2_replica1, ckancollection_s
hard1_replica1]
2023-07-24 05:14:31.869 INFO  (coreLoadExecutor-8-thread-1-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [   ] o.a.s.c.Transien
tSolrCoreCacheDefault Allocating transient cache for<PHONE_NUMBER> transient cores
2023-07-24 05:14:31.898 INFO  (main) [   ] o.e.j.s.Server Started @1077ms
2023-07-24 05:14:31.922 INFO  (coreLoadExecutor-8-thread-2-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard2 r:core_node2 x:ckancollection_shard2_replica1] o.a.s.u.SolrIndexConfig IndexWriter infoStream solr logging is enabled
2023-07-24 05:14:31.925 INFO  (coreLoadExecutor-8-thread-1-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard1 r:core_node1 x:ckancollection_shard1_replica1] o.a.s.u.SolrIndexConfig IndexWriter infoStream solr logging is enabled
2023-07-24 05:14:31.925 INFO  (coreLoadExecutor-8-thread-2-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard2 r:core_node2 x:ckancollection_shard2_replica1] o.a.s.c.SolrConfig Using Lucene MatchVersion: 5.3.1
2023-07-24 05:14:31.927 INFO  (coreLoadExecutor-8-thread-1-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard1 r:core_node1 x:ckancollection_shard1_replica1] o.a.s.c.SolrConfig Using Lucene MatchVersion: 5.3.1
2023-07-24 05:14:31.996 INFO  (coreLoadExecutor-8-thread-2-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard2 r:core_node2 x:ckancollection_shard2_replica1] o.a.s.s.IndexSchema [ckancollection_shard2_replica1] Schema name=ckan
2023-07-24 05:14:32.000 INFO  (coreLoadExecutor-8-thread-1-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard1 r:core_node1 x:ckancollection_shard1_replica1] o.a.s.s.IndexSchema [ckancollection_shard1_replica1] Schema name=ckan
2023-07-24 05:14:32.000 INFO  (zkCallback-4-thread-1-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [   ] o.a.s.c.c.ZkStateReade
r A cluster state change: [WatchedEvent state:SyncConnected type:NodeDataChanged path:/collections/ckancollection/state.json] for col
lection [ckancollection] has occurred - updating... (live nodes size: [1])
2023-07-24 05:14:32.053 WARN  (coreLoadExecutor-8-thread-2-processing-n:solr-0.solr-headless.ckan-r:8983_solr) [c:ckancollection s:sh
ard2 r:core_node2 x:ckancollection_shard2_replica1] o.a.s.s.FieldTypePluginLoader TokenizerFactory is using deprecated 5.3.1 emulatio
[root@mae1deuj1 ~]#
tail end of log
2023-07-24 12:55:20.099 INFO  (qtp1282788025-70) [   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={} status=0 QTime=4
2023-07-24 12:55:20.099 INFO  (qtp1282788025-13) [   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={} status=0 QTime=4
2023-07-24 12:55:25.098 INFO  (qtp1282788025-70) [   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={} status=0 QTime=3
2023-07-24 12:55:30.098 INFO  (qtp1282788025-12) [   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={} status=0 QTime=3
2023-07-24 12:55:30.099 INFO  (qtp1282788025-16) [   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={} status=0 QTime=4
2023-07-24 12:55:35.099 INFO  (qtp1282788025-19) [   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={} status=0 QTime=4
live probe fails and it restarts.

@danseo-reisys Can you please try to use ckan chart version v3.3.0 or you must use this chart version ?

we will try either in place upgrade or new setup and migration.  thanks.

we have built a new ckan image with additional config changes.  not sure if inplace helm upgrade will work.

@danseo-reisys Which version of ckan are you using now?

closing due to inactivity

have v3.2.0.  seems more stable.  last restart 97 days ago.  thx


Inherit DataType from the template without hardcoding on specific DataTemplate implementation

What is the current behavior?
CompiledBindings inherit only DataType from DataTemplate class. TreeDataTemplate or any custom data template implementation is ignored, and developer needs to duplicate "DataType" and "x:DataType".
What is the updated/expected behavior with this PR?
CompiledBindings look ups for a DataType property by attribute.
How was the solution implemented (if it's not obvious)?
One important detail, that DataTypeAttribute can be used on any type, not only data templates.
Checklist

[x] Added unit tests (if possible)?
[x] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Fixed issues
Fixes https://github.com/AvaloniaUI/Avalonia/issues/5726

You can test this PR using the following package version. 0.10.999-cibuild0020677-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 0.10.999-cibuild0020703-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]

You can test this PR using the following package version. 0.10.999-cibuild0020712-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


New "contact" extension

An extension to send e-mails, pass phone calls, use Skype...

I'm pretty sure this would be a no.

I'm pretty sure this would be a no.

At least, it definitely wouldn't belong on the gallery home page.

Oooo this extension is a definite security risk, but a very cool idea though. I like it but just won't see it come to light...

Ok, thanks.

I added another extension.
A "Chat GPT" extension. Based on : Donutask's "AI" extension
I will not give the API KEY for the moment but it works.
You can get your own on OpenIA's website.

Ok, two things, one, the chatgpt extension should've been a sperate PR for review. Two, as discussed prior, have a chatgpt extension is great but a massive security issue for those adding their private key to a project, and that private key being found and abused. It has been discussed in other chatgpt extension PRs.

Ok.

...as discussed prior, have a chatgpt extension is great but a massive security issue for those adding their private key to a project, and that private key being found and abused. It has been discussed in other chatgpt extension PRs.

The person using the extension needs his own API Key.

Thats still dangerous

You can do this using IFTTT webhooks using my IFTTT extension: https://kindpump.github.io/extensions/ifttt.js. All you need is an IFTTT account and to set up a webhook and then use your private webhook key. I may further documentation on this extension in the future but it's capable of doing some impressive stuff. I've gotten it to connect to my smart lights and change them. This should avoid the privacy concerns mentioned by other users as it's using a third party webhook service to send texts or emails.

I think I'm gonna give up these extensions

@samuellouf There's no reason to give up. You can still develop these extensions on your own by adding them to your own GitHub site to contain these extensions so that people can still use them if they want. The contact extension is something I would actually use for example. So it would be great if you kept it up on your own.


Missing baseline?

Thanks for your interesting work!
The Reformer uses RevNet in a clever way. They double the dimension of x such that for x1,x2=split(x) both x1 and x2 have the same dimension as the original x. This gives their invertible architecture the "same parameters" as the initial architecture. Let's call this ReformerRevNet.
Question 0. In Table 2, RevNet differs to MomentumNet only in the row "same parameters". I don't see why ReformerRevNet and MomNet would be different in Table 2?
Question 1. Is there any reason this ReformerRevNet baseline was not included?
Apologies for any misunderstanding.

Hi @alexm-gc
Thank you for your questions.
For Question 0.
As opposed to the architectures presented in table 2, the Reformer is dedicated to Transformers.
In addition, note that the Reformer does
Y_1 = X_1 + Attention(X_2) and then Y_2 = Y_1 + FF(Y_1)
Thus, it uses two successive layers (Attention and FF) in its forward rule, which is not the case for the architectures considered in Table 2.
For Question 1. Actually in our paper we do not conduct experiments on Transformers though one can define the momentum counterpart of any Transformer.


After upgrading airflow from 1.10.9->1.10.13, backfill plugin no longer functions

After our upgrade, the backfill plugin no longer functions. It produces no error log and reports that the backfill operation has been queued, but no logging appears and no operation takes place.

@elbamos I am afraid about the compatibility issues with newer Airflow version. Unfortunately, I am not actively maintaining this repository anymore.


Pivot point of multi parts body

Hi
Love the script!
I'm using this script in a custom application, so I don't use the renderer, but just the simulation. Then applies the data from the simulation to my visual objects.
I have a compound body which is made like this:
var body1 = Bodies.rectangle(-75, 0, 50, 50, properties);
var body2 = Bodies.rectangle(-5, 0, 50, 50, properties);
body = Body.create({parts: [body1, body2]});
Body.setPosition(body, { x: 1000, y: 200 });

It is giving me trouble because it seems to centre the pivot point, which means my visual object will be misplaced.
This works fine:
var body1 = Bodies.rectangle(-35, 0, 50, 50, properties);
var body2 = Bodies.rectangle(35, 0, 50, 50, properties);
body = Body.create({parts: [body1, body2]});
Body.setPosition(body, { x: 1000, y: 200 });

... because the the pivot is in the centre on my visual object. Here is an image to give a better overview:

Problem is of course that my pivot point isn't in the centre. Is there a solution for this?
Can I set the pivot of the compound body?
Can I somehow move the body1 and body2 inside the compound body, to make it similar to my visual object?
Let me know if I need to clarify.
Any help is greatly appreciated,
Jakob Wagner

See my reply to #673 for and explanation and possible solution. If you actually want to move the pivot point (therefore centre of mass) then you should move both body.position and body.positionPrev vectors together (so not moving the vertices). Thinking about it this would probably be useful to add as a function!

Thank you for replying. Moving the pivot is what I want, I already tried moving both position and prevPosition, but didn't get it to work. I will try it again, and come back with more info if I still can't get the result.

Got it working now. Using your method. Thanks.


fix(node): mark sleeping nodes as ready immediately on cached restart

fixes: #1657
fixes: #1578

This is a most excellent change.  Thanks!


The counter "Extension page evictions/sec" does not appear to be correct

At least in 2017 Standard Edition, the description of this event and the cntr_value returned for it do not appear to match. The description is that of a calculated rate of change per second. The value returned appears to be an ever increasing counter, presumably the number of pages evicted from the Buffer Pool Extension file since the instance last started.
Assuming that my observation is correct in at least 2017 Standard, then it is necessary to calculate the uptime in seconds and divide this counter by it. Something to the effect of the query below. Be advised that the column sqlserver_start_time was added in 2008 so this should work for anything calculating this counter for BPE since BPE is a feature added after 2008.
SELECT
CAST(dopc.cntr_value * 1.0 / (SELECT DATEDIFF(SECOND, dosi.sqlserver_start_time, SYSDATETIME()) FROM sys.dm_os_sys_info AS dosi) AS DECIMAL(18,2))
FROM
sys.dm_os_performance_counters AS dopc
WHERE
dopc.object_name = 'SQLServer:Buffer Manager'
AND dopc.counter_name = 'Extension page evictions/sec'

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

ID: 20bbd3bb-9820-ed3e-20e5-46708940a9dc
Version Independent ID: 8f62a995-ec15-e038-63d6-fe464bbb6fa5
Content: SQL Server, Buffer Manager Object - SQL Server
Content Source: docs/relational-databases/performance-monitor/sql-server-buffer-manager-object.md
Product: sql
Technology: performance
GitHub Login: @julieMSFT
Microsoft Alias: jrasnick

The above behavior appears to also apply to two other BPE related counters, "Extension page reads/sec" and "Extension page writes/sec"

@FzzyBnny -- thank you for your feedback.
@julieMSFT -- please look into this issue 3598.

@FzzyBnny - Thank you for your feedback. I am researching this issue with the product group.

@FzzyBnny It appears that the counter in question " Extension page evictions/sec" does indeed increment the counter rather than calculate the rate per second. This is not a documentation bug but rather that the counter was not implemented correctly. Please submit a feedback item through https://aka.ms/sqlfeedback to have this addressed. If this is actually causing a business issue, you also have the option of opening a case with CSS and having CSS file a hotfix request if you can provide a business impact statement.
I will proceed with closing this documentation issue but you can still reply using the @ notation and we will reply.

#please-close


Add annotation in tutorial of converting Waymo Open Dataset to avoid confusion

So in the original tutorial you will run this:
python -m pcdet.datasets.waymo.waymo_dataset --func create_waymo_infos \
    --cfg_file tools/cfgs/dataset_configs/waymo_dataset.yaml

And this will cause error:

failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected

Generating the dataset ignoring the error is OK, but I think this is a problem to be solved, as whether the process will succeed without gpu is unknown.
So I tried hard to solve the problem, and finally I found this in OpenPCDet/pcdet/datasets/waymo/waymo_dataset.py line 415:
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

Obviously, the process does not require gpu at all, so the error is not required to be solved.
Note that you cannot use gpu even if you set CUDA_VISIBLE_DEVICES to normal value, because this process uses multi_threads and huge batch_size, which is diffcult for gpu to handle.
So if some annotations could be added to the OpenPCDet/blob/master/docs/GETTING_STARTED.md, like:
python -m pcdet.datasets.waymo.waymo_dataset --func create_waymo_infos \
    --cfg_file tools/cfgs/dataset_configs/waymo_dataset.yaml
# if 'CUDA_ERROR_NO_DEVICE' error occurs, it's OK because this process does not require gpu.

it would be a big help, as I wasted a lot of time in tracking the error.
And if my guess is wrong, please let me know the solution.

Yes, you are correct. We will add a notification in the GETTING_STARTED.md. BTW, this issue has been discussed in #350. If you meet other questions for OpenPCDet, maybe checking previous issues can be a good consideration.


Debounce resize command

Long pressing M-h or other arrow commands continue to resize even when they keys are released.
Seems like the event listener for the key stcks all the keypresses.
Ideally it would stop once the keys are released
This could be implemented using a debounce on the keypress event.
Not sure how feasble it is in lua or with the limitations of the neovim api.

Hi,
thanks for the feedback. Ill look into it after clearing some bugs and enhance logging :D  Do have an idea (a plugin eg. where i could start looking)?
Kind regards


Ticking entity error

https://pastebin.com/9nXsn8NR

This issue came first, yet conversation began in #16, oops


Make Docker Compose setup stable

As a developer
I want the Docker Compose to work always
So that I don't have to try it more then once
Background:
After starting docker compose and going to localhost the login is always shown.
But after the logging OpenSCD not always starts, there are loading errors of all JS and so files.
We need to investigate why this is happening.

It is fine if the offline mode for CoMPAS is disabled.

This issue set the solution of the worker processes 1.
https://github.com/zmartzone/lua-resty-openidc/issues/206


Articles

https://news.ycombinator.com/item?id=11288820

http://danluu.com/programmer-moneyball/

Added


Crash on startup

I was following these instructions: https://gist.github.com/lk86/cff55a960262de9173741c4c49c4e250
When starting the daemon it crashes directly again. I'm on ubuntu 18.04.
crash_report.tar.gz

{"timestamp":"2020-11-09 18:44:42.377378Z","level":"Fatal","source":{"module":"Init__Coda_run","location":"File "src/app/cli/src/init/coda_run.ml", line 575, characters 2-26"},"message":"Unhandled top-level exception: $exn\nGenerating crash report","metadata":{"exn":"(monitor.ml.Error\n  (Failure\n    "Could not read the URS from disk; its format did not match the expected format")\n

removing /tmp/s3_cache_dir directory seems to have fixed the problem. The source of the issue seems to be that I aborted some downloads on the first run of the daemon.

KEYPATH was not exported in my screen path


[ALLUXIO-1735] Upgrades free Miredot license to open-source license.

Dear maintainers of Alluxio,
We noticed you were using a free Miredot license for Alluxio. We thought we'd help you out and upgrade that license to an open-source license.
With this license you get access to all the paying features, free of charge.
I tried building the project myself in order to fully test the license, but was not able to do that on my windows machine. It should be fine though. If you have any questions, problems or feedback, please let us know!
Kind Regards,
Ewout & The Miredot team.
P.S.: It will expire on 28/04/2018, we will send you another pull request with a license update before that happens.
Edit: added what I think was the original JIRA ticket for adding rest docs.
Link: https://alluxio.atlassian.net/browse/ALLUXIO-1735

Can one of the admins verify this patch?

ok to test

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/9474/
Test PASSed.

LGTM

thanks @DenEwout ... any update on when is 2.0 coming out?

No problem at all. Feel free to contact us if you need any extra open source keys.
We've released our second release candidate and we're aiming to do the full release in the next couple of weeks. Using the release candidate will give you some cool extra features such as RAML output and support for multi-module poms (generating single documentation for multiple submodules). It also comes with more extensive framework support. To check it out, simply use version 2.0-RC2 using your open source key (or use our 1 month trial to run it on different projects).
It's not exactly clear yet on our site (with our new online licensing scheme), but we plan on keeping our promise for being free for open-source projects.

@DenEwout after switching to the open source license, we started seeing the following stack trace in our build logs:
...
[INFO] Built.
[INFO] Reading javadoc comments from sourcefiles...
[WARNING] No source files found in /Users/jsimsa/Projects/alluxio-fork/core/server/target/generated-sources/annotations !
[INFO] Read.
[INFO] Merging reflective and javadoc models...
java.lang.NoSuchMethodError: com.sun.tools.doclets.formats.html.ConfigurationImpl.getInstance()Lcom/sun/tools/doclets/formats/html/ConfigurationImpl;
	at com.qmino.miredot.construction.javadoc.TagFormatter.fixLinks(TagFormatter.java:230)
	at com.qmino.miredot.construction.javadoc.TagFormatter.tagToString(TagFormatter.java:122)
	at com.qmino.miredot.construction.javadoc.TagFormatter.tagsToString(TagFormatter.java:152)
	at com.qmino.miredot.construction.javadoc.UserTypeEnhancer.extractFullComment(UserTypeEnhancer.java:201)
	at com.qmino.miredot.construction.javadoc.UserTypeEnhancer.collectComments(UserTypeEnhancer.java:85)
	at com.qmino.miredot.construction.javadoc.UserTypeEnhancer.execute(UserTypeEnhancer.java:41)
	at com.qmino.miredot.construction.javadoc.RestModelEnhancer.execute(RestModelEnhancer.java:116)
	at com.qmino.miredot.javadoc.Doclet.start(Doclet.java:31)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:310)
	at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:189)
	at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:366)
	at com.sun.tools.javadoc.Start.begin(Start.java:219)
	at com.sun.tools.javadoc.Start.begin(Start.java:205)
	at com.sun.tools.javadoc.Main.execute(Main.java:64)
	at com.qmino.miredot.application.MireDotPlugin.execute(MireDotPlugin.java:176)
	at com.qmino.miredot.maven.Mojo.execute(Mojo.java:177)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[INFO] MireDot: Completed

Any idea what might be causing it and how to get rid of it? Thanks.

Hi,
Sorry for the incredibly late reply, because the request got merged I lost sight of it. Is it still an issue?
If so, please create a support request on<EMAIL_ADDRESS>and provide us with the output of:
mvn package -X > output.log
Kind regards,
Ewout.


Avoid wrapping ballerina values in Handle values in interop

Purpose

This is already merged to 1.x branch through PR https://github.com/ballerina-platform/ballerina-lang/pull/19436

Fixes #19100
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #19507 into next-release will not change coverage.
The diff coverage is n/a.

@@              Coverage Diff              @@
##           next-release   #19507   +/-   ##
=============================================
  Coverage         15.73%   15.73%
=============================================
  Files                47       47
  Lines              1265     1265
  Branches            197      197
=============================================
  Hits                199      199
  Misses             1053     1053
  Partials             13       13

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1ff35c2...a34aa3d. Read the comment docs.


Missing NVv5 VM size for recommended Azure virtual machine size

The VM size NVv5 is missing from this page and needs rectification as the customer is not able to know if this VM size is supported or not for AVD.

https://learn.microsoft.com/en-us/azure/virtual-machines/nva10v5-series
Please add the necessary details to avoid customer confusion.

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

ID: 1d3e1c81-42fd-8a46-b816-9dcce9e6b3f3
Version Independent ID: 06ab7ec2-2a39-c4de-8d9e-5e33a523b284
Content: Configure GPU for Azure Virtual Desktop - Azure
Content Source: articles/virtual-desktop/enable-gpu-acceleration.md
Service: virtual-desktop
GitHub Login: @femila
Microsoft Alias: femila

@prasannanayak21
Thanks for your feedback! We will investigate and update as appropriate.

@femila
Can you please check and add your comments on this doc update request as applicable.

@prasannanayak21
I'm going to assign this to the document author so they can take a look at it accordingly.

@prasannanayak21 Thanks for the information, I've added it and it should be visible later today.
#please-close


allow IPv6 localhost ::1

Description
Allows the IPv6 localhost ::1 by default
Issues Resolved
[List any existing issues this PR resolves]
Check List

[x] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable

This build failure seems unrelated to the change. Anything I can do to get this to pass the tests?

Yep we have some spec funkiness right now. I'll see what I can do about those and get this released. Thanks


Updates to spontaneous fission data

Updates to the spontaneous fission data within burn-chain.yaml based on data from Table 5.1 of "Application Guide to Neutron Multiplicity Counting", Report Number: LA-13422-M

After reviewing the MCNP6.2 data on spontaneous fission, they provided a report for the spontaneous fission emission spectra data as well as data for the spontaneous fission nu and branching ratios.
I went through this report and updated some of our numbers to align with the values. To calculate the branching ratios, I took the total half-life and divided by the half-life reported for the spontaneous fission event. For this calculation I used the total half-lives that already existed in the burn-chain.yaml file. Additionally, based on reviewing the ENDF data, it appears that nu for Pu-239 should be 2.32 rather than 2.16 reported on this table (see: https://www.nndc.bnl.gov/sigma/getInterpreted.jsp?evalid=19424&mf=1&mt=452 from the Sigma database on https://www.nndc.bnl.gov/sigma/).
https://permalink.lanl.gov/object/tr?what=info:lanl-repo/lareport/LA-13422-M

@ntouran  - Please see the comparison.


FAI-884: Add SHAP background generators to bindings

test will fail until https://github.com/trustyai-explainability/trustyai-explainability/pull/47 is merged into exp-core

test will fail until trustyai-explainability/trustyai-explainability#47 is merged into exp-core

PR is merged, tests pass


Change links to GitLab

Next time there is a new version, we should take the opportunity to update the home and dev_url links in meta.yaml to point to GitLab instead of GitHub.
Creating this issue as a reminder :-)

Oops!
You are 100% right.
Can we just change them without witing for a new version? (I mention it because I also enabled automerge in #4, and I guess that means that the next version will be merged without intervention...)

I'll make a PR for that


do you have a pytorch versions

I am surprised by your extraordinary work. I am more familiar with pytorch, do you plan to release a pytorch version in the future?

Hi,
I am actually familiar with Tensorflow. I know only the basics of PyTorch. There are other people in my research team who are experts in PyTorch but they do not share codes. You can try to understand my codes and convert them into PyTorch, I did the opposite for many of my models, I converted PyTorch models into Tensorflow for flexible End2End 1D and 2D classification, regression, and segmentation pipelines (I only shared a few in GitHub, the rest are confidential for our research team, will share slowly after we get some publications on them).


manifest: remove theme related projects which are not required

We are using OMS & we dont require these CMTE projects.

We aren't ditching this yet


add stories page explainer

Who was this for?
People who do not know what our stories section is about.
What is it doing for them?
Telling them what our stories section is about.
Checklist

[x] Demoed to the relevant people?
[x] Simple as it can be?
[x] Tested?

As a point - this content is editable in Prismic (Search for type Curated List, there's only one).
It's not a great execution of it, but will help us move forward with the other pages, and useful for now.


Command to run nfnets experiment.py

I'm new to jaxline and I am having trouble figuring out the command to run experiment.py in nfnets.
I have been trying to use -
 python3 -m nfnets.experiment --config=nfnets/experiment.py

What should I pass into the command line to run experiment.py?
Thank you!

This jaxline issue explains why running the experiment was misbehaving.
The recommended solution to that issue worked for me as well.
from absl import app

#changing the last line to
app.run(functools.partial(platform.main, Experiment))


Added a .env.example file that lists the environment variables necessary to run the project

This should make contributing more accessible for other developers

This is actually amazing, thanks!
Sorry for nitpicking but can you edit the commit from fea: to chore or docs? Semantic release would trigger a release a new minor version if merged as is

Now it should be good to go :)

Changing the first commit from feat(environment): add .env.example file … to chore(environment): add .env.example file … is the last needed piece to merge this PR 👍


Add New Tools (Adno, Universal Viewer) and Update About Page Content

We need to enhance our toolset by adding two new tools and update the content on the About page.
Tasks:

Add New Tools:
Add two new tools, Adno and Universal Viewer, into the existing set of tools.
Reference information for the tools can be found in official websites:
Adno
Universal Viewer

Update About Page:
Add information about RERUM playground (what it does, why it is needed), JSON vs JSON LD and Manifests to the About section of the website.
Use the JSON vs. JSON-LD README for information of them.
For information about JSON Manifests (reference on what a manifest might look like), visit: IIIF Cookbook.

https://github.com/IIIF/awesome-iiif is a great list to research for other low-hanging fruit. Viewers and annotation tools are the things to look at.


samples: spi: bitbang: Fix missing pass conditions

The sample did not have defined pass condition and was failing
due to a timeout. Add harness: consol and an explicit regex matching
the sample's output so it can pass on a hw. In addition, a requirement
for a gpio_loopback fixture was added to the sample.yaml.
Signed-off-by: Maciej Perkowski<EMAIL_ADDRESS>

@marc-cpdesign I couldn't add you to the review, can you have a look at this?

I updated the fix and description. Now it requires gpio_loopback and rx matching tx. ^^ @anangl

@carlescufi @anangl Do you know who else should review this so we can get it merged?


Consider detecting and reporting invalid arguments to bigtable::Filter::* when the filter is created.

This is a post-MVP enhancement, instead of creating filters that we know are invalid and will be rejected by the server (e.g., bigtable::Filter::Latest(-7)) report the errors early.

For what is worth, I think we should never validate on the client side, too hard to keep in sync with the server-side validation.  Add a thumbs up if you agree, thumbs down if you disagree.

I think there is no debate around this anymore.  Closing.


Mixed Reality Collaboration question

Have a couple of questions.  First, trying to build a remote collaboration capability and wondering how to access the data channel in Unity in order to send not only the Hololens spatial mesh but also allow sending holograms/annotations to devices.  Second, is there a way to use a Websockets signalling server instead of the http server?

I don't know about the data channels, but websocket signalling is both possible and works quite nice. You would have to create your own signaller class, and probably modify PeerConnection and Local/Remote Video/Audio Source scripts. Depends on how much you want to re-use.

Hi @astaikos316,
Yes as @eirikhollis explained you can use any signaling solution by deriving from the Unity Signaler abstract base component and implementing the various bits of the interface, and most notably the ISignaler interface. You can look at the NodeDssSignaler for an example.
About the data channels, these are just raw streams of bytes so I couldn't see a good use for a Unity component. Instead you can directly access the underlying C# PeerConnection object from the Unity component's Peer property and use methods like AddDataChannelAsync() to create a new data channel.

Note: you must create data channels after the PeerConnection is initialized, so the underlying native object is created, but you must also create at least one data channel before the connection is established, because otherwise the SCTP handshake is not performed and data channels cannot be added later. This is a limitation of the underlying implementation, possibly even of the standard itself (not sure). Other data channels can be added later after the connection is established.

Hi @djee-ms , any chance to create a short example about how to do that for sending a simple string of text between the clients? It would be very useful to understand how to do it correctly.
Thanks a lot.

@pablomarcos > You can look at how it's done in the TestAppUWP sample, which does exactly that (uses a data channel for sending text between the peers to simulate a text chat):
https://github.com/microsoft/MixedReality-WebRTC/blob/5d70abde752f8ec38645eac6a0106ac97d8e27b7/examples/TestAppUwp/MainPage.xaml.cs#L398-L416

@astaikos316 did you get the answers to all your questions? Can I close this issue?

Been having some trouble wrapping it into the Unity example as we are trying to develop collaborative mixed reality application.  Trying to trace through the xaml file you pointed out running into trouble on how to expand it into the unity example

Maybe I am misunderstanding what you are trying to do and it is more complex than what I imagine. But I would assume that if you need a data channel to send custom data like spatial mesh, you can:

Take your WebRTC.Unity.PeerConnection Unity component, and access its Peer property, which gives you a WebRTC.PeerConnection C# object from the underlying .NET library.

Call when needed PeerConnection.AddDataChannelAsync(). If you know in advance that you need a data channel (and you seem to do), you might as well do that call just after the OnInitialized event fired, when the PeerConnection is ready for use but the connection has not yet started (CreateOffer() not called). This ensures that DTLS will perform its handshake and data channel work.

Send and receive data through that channel with the SendMessage() method and MessageReceived event.

There's not much more to data channels. It's just a raw stream of bytes, with 2 actions (send and receive). Or did I misunderstood your use case?

In my case I have the following problem: sending a string of text from HoloLens to Unity editor is working correctly. Sending a string from Unity Editor to HoloLens makes the Holo app crash without a clear error message. It just crash after receiving the message and deserialize the byte array. I need to dig more into the problem...

This is the error I'm getting:
_CRT_ERROR caught: '''(0) : Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
Please follow the link for the full Log from HoloLens:
https://pastebin.com/z49zsbV1

@pablomarcos that's a P/Invoke function call failing, where the C# and C++ sides have different conventions. MixedReality-WebRTC uses __stdcall because Unity forces that convention when transpiling with IL2CPP.
I would bet on a stale library on the HoloLens. The fact that the callstack seem to have recursive calls to mrsMemCpyStride is very suspicious, because this function is not recursive, so it looks like a corrupted callstack. Although that could also be a bug to be honest, since the stack corruption is likely the result and not the cause.
I would try to log the string immediately after receiving it, to make sure it's not garbage. Beyond that, identifying which function exactly is failing will greatly help debugging.

@djee-ms thanks for your help. I can deserialize the message and it's correct. It contains the correct string I have sent from Desktop to the HoloLens but after do it is when the HoloLens crash. That's the reason it is so strange...because the message is received correctly, but for some reason after some seconds it crash. I'm not sure how to continue debugging the problem, so any help from your side would be highly appreciated.

@djee-ms After debugging the app with VS debugger I got this method as the cause of the crash (image attached)

@pablomarcos this function is never called from C#, it was added as a possible optimization while trying to do video rendering, but was not used in the end. If Unity is trying to call it, there is something seriously wrong. Do you have a full callstack? Something went wrong earlier I think.

Ok my bad I just saw MemCpy is called from DataChannel.OnMessageReceived() and is passing a C# ulong (64-bits), whereas the C/C++ signature uses size_t which is 32-bit on HoloLens. Logged #63, will fix now.

@pablomarcos > Fixed in fb4a230ab39cf943f581b8caa4592d0f8029401a, can you try again with that commit please? I am pretty sure that was it.

@pablomarcos - can you provide some insight on how you managed to set things up in unity to get the data channel and send text? I have built a chat window in unity and trying to send things over the data channel, but I can’t seem to figure out how to set things up like djee-ms described earlier

@pablomarcos > Fixed in fb4a230, can you try again with that commit please? I am pretty sure that was it.

Gonna try and I will tell you. Thanks a lot!

@pablomarcos - can you provide some insight on how you managed to set things up in unity to get the data channel and send text? I have built a chat window in unity and trying to send things over the data channel, but I can’t seem to figure out how to set things up like djee-ms described earlier

Sure let me get into the office and I will write you some lines about how we did it.

@djee-ms I'm getting the following errors when building the libraries from the VS 2019 project on the root folder. (It appears to be the last changes from 'size_t' to 'uint64_t').
Despite the errors the libraries are generated and copied into Unity's folder.

Ah this is an error in the unit test, will fix, thanks!

Fixed with 5b4956f7c163d2cdd55e637caa097ee210cc8e79.

@djee-ms I have been trying to follow your process flow in the unity sample, but I am having trouble based on the documentation.  I have set up a chat box in the sample to test the data channel messaging but cannot get it to work at all.  @pablomarcos if you have a chance to provide some insight on how you implemented your test case it would be greatly appreciated.

What is the problem @astaikos316? Can you describe what you are doing, or do you have some sample code we can look at? What do you mean by "not working at all", what piece is not working?

@djee-ms I am starting with the Video Chat Demo Unity Scene.  I have set up a Chat Window to try and send and receive data. I built an Empty Chat Manager game object and attached a script to it where I try  to add the data channel on the peer connection oninitialized() event, but I cannot figure out how to verify the data channel state.  Then I try to call sendmessage() and get object reference not set to an instance of an object error.  I am just trying to understand a simple unity setup to accomplish this type of task.

@astaikos316 Sorry I was out of the office for several days. So following @djee-ms advice this is what I did...
First thing is to add the new data channel we will use for sending our text messages (or wathever thing you want). I'm doing this on the PeerConnection.cs script, exactly on method OnPostInitialize() after the line OnInitialized.Invoke();
And this is the code I'm using for creating the data channel:
_nativePeer.AddDataChannelAsync(ChatChannelID, "chat", true, true).ContinueWith((prevTask) => {
            if (prevTask.Exception != null)
            {
                throw prevTask.Exception;
            }
            var newDataChannel = prevTask.Result;

            _mainThreadWorkQueue.Enqueue(() =>
            {
                _chatDataChannel = newDataChannel;
                _chatDataChannel.MessageReceived += ChatMessageReceived;
                Debug.Log("DataChannel for CHAT created successfully.");
            });
        });

Note that ChatMessageReceived must run on the main thread so the first idea was to use the queue that already exists.
The problem here is that after all it seems not to be running on the main thread so when I try to update my UI on my ChatMessageReceived function the app is crashing.
So for solving this I have to be sure that I'm modifying the UI from the main thread. I did this storing the message received on a temporal variable and checking on the Update() method if this variable has a new value, then I write it on my UI.
private void ChatMessageReceived(byte[] message) {       string text = System.Text.Encoding.UTF8.GetString(message);     textToProcess = text; }
And as you can imagine on my Update function:
if (textToProcess != String.Empty) {     textReceivedMesh.text = textToProcess;     textToProcess = String.Empty; }
@djee-ms Could you give us some advice about how to correctly address this problem of updating the UI on Unity after receiving the message? Am I doing it wrong with the MainThreadQueue that you already have on the Unity Example?

@pablomarcos > Fixed in fb4a230, can you try again with that commit please? I am pretty sure that was it.

And for this issue I can confirm you that now the messages are received on the HoloLens without any problem. Bi-directional communication now without problems. Thanks!

@pablomarcos that code looks good.
On the threading question, assigning on one thread a handler to the MessageReceived event does not give any guarantee on which thread the event will be fired. This is standard C#. In the case of the C# library, for performance reason the event is fired on whatever thread the underlying C++ callback is invoked, which is never the UI thread. If you have some extra requirements on threading, you need to handle that yourself, like you did by deferring the work to the UI thread. And yes the purpose of OnPostInitialize is to do work on the UI thread after the PeerConnection is initialized.

@pablomarcos, @djee-ms Thank you for all the help getting the data channel to work.  I am now able to get messages flowing between apps.

@djee-ms  I have been battling the next challenge here with the data channels.  With the way the data channel receive is setup now in OnPostInitialize(), I cannot receive the meshes because unity throws this exception: UnityException: Internal_Create can only be called from the main thread, and hard crashes Unity.

General background
At the moment the events from MixedReality-WebRTC objects are not always invoked from the main UI thread. This is a decision that I may review and change, but this is currently like this to avoid the cost of asynchronous deferring when not needed. This means that many things cannot be done directly in the handler (delegate) you attach to the event. In particular, Unity requires that all calls to GameObject etc. be done exclusively on the main UI thread. So you have to defer your work to the Update() method for example.
Example
PeerConnection.cs has an example of doing this thing using its _mainThreadWorkQueue. For example, when the _nativePeer.InitializeAsync() call completes its task, the continuation is done on an undefined thread; at that point the code enqueue inside _mainThreadWorkQueue an action to invoke the OnPostInitialize() method.
https://github.com/microsoft/MixedReality-WebRTC/blob/1d4bd2fee5ebe0daddf0b1e2be772809fd057410/libs/Microsoft.MixedReality.WebRTC.Unity/Assets/Microsoft.MixedReality.WebRTC.Unity/Scripts/PeerConnection.cs#L442-L462
Then in its Update() method this action is dequeued and executed, therefore OnPostInitalize() is always called on the main UI thread and can safely access the Unity objects.
https://github.com/microsoft/MixedReality-WebRTC/blob/1d4bd2fee5ebe0daddf0b1e2be772809fd057410/libs/Microsoft.MixedReality.WebRTC.Unity/Assets/Microsoft.MixedReality.WebRTC.Unity/Scripts/PeerConnection.cs#L356-L363
Data channel messages
In general for other events you want to do the same if you access Unity objects. And remember that just because you register a handler for an event in a thread does not mean that your handler will be invoked in that thread. Registration and invoking are separate things. If your register a handler for the DataChannel.MessageReceived event, then that handler is likely to be called in an unspecified thread, so you cannot use Unity objects inside it. You need to use the same kind of work deferring as mentioned above.
I would do something like:
// This event may be fired from any thread, cannot use Unity objects directly
dataChannel.MessageReceived += (byte[] msg) => {
  // Enqueue an action for the main UI thread
  _mainThreadWorkQueue.Enqueue(() => {
    OnDataChannelMessageReceived(dataChannel, msg);
  });
});

Then copy the Update() method of PeerConnection.cs, and also write your handler from above:
/// Always called on main UI thread.
public OnDataChannelMessageReceived(DataChannel dataChannel, byte[] msg) {
  var go = new GameObject();
  // etc.
}

Thanks for the great explanation Jerome. That’s very useful.
On mié, sept 25, 2019 a las 08:11, Jerome Humbert<EMAIL_ADDRESS>escribió:

General background
At the moment the events from MixedReality-WebRTC objects are not always invoked from the main UI thread. This is a decision that I may review and change, but this is currently like this to avoid the cost of asynchronous deferring when not needed. This means that many things cannot be done directly in the handler (delegate) you attach to the event. In particular, Unity requires that all calls to GameObject etc. be done exclusively on the main UI thread. So you have to defer your work to the Update() method for example.
Example
PeerConnection.cs has an example of doing this thing using its _mainThreadWorkQueue. For example, when the _nativePeer.InitializeAsync() call completes its task, the continuation is done on an undefined thread; at that point the code enqueue inside _mainThreadWorkQueue an action to invoke the OnPostInitialize() method.
https://github.com/microsoft/MixedReality-WebRTC/blob/1d4bd2fee5ebe0daddf0b1e2be772809fd057410/libs/Microsoft.MixedReality.WebRTC.Unity/Assets/Microsoft.MixedReality.WebRTC.Unity/Scripts/PeerConnection.cs#L442-L462
Then in its Update() method this action is dequeued and executed, therefore OnPostInitalize() is always called on the main UI thread and can safely access the Unity objects.
https://github.com/microsoft/MixedReality-WebRTC/blob/1d4bd2fee5ebe0daddf0b1e2be772809fd057410/libs/Microsoft.MixedReality.WebRTC.Unity/Assets/Microsoft.MixedReality.WebRTC.Unity/Scripts/PeerConnection.cs#L356-L363
Data channel messages
In general for other events you want to do the same if you access Unity objects. And remember that just because you register a handler for an event in a thread does not mean that your handler will be invoked in that thread. Registration and invoking are separate things. If your register a handler for the DataChannel.MessageReceived event, then that handler is likely to be called in an unspecified thread, so you cannot use Unity objects inside it. You need to use the same kind of work deferring as mentioned above.
I would do something like:
//
This event may be fired from any thread, cannot use Unity objects directly
dataChannel
.
MessageReceived
+=
(
byte
[]
msg
)
=>
{
//
Enqueue an action for the main UI thread
_mainThreadWorkQueue
.
Enqueue
(()
=>
{
OnDataChannelMessageReceived
(
dataChannel
,
msg
);
});
});
Then copy the Update() method of PeerConnection.cs, and also write your handler from above:
///
Always called on main UI thread.
public
OnDataChannelMessageReceived
(
DataChannel
dataChannel
,
byte
[]
msg
) {
var
go
=
new
GameObject
();
//
etc.
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@astaikos316 / @pablomarcos > Closing this one as I believe all questions were answered and there was no activity for quite a while. If there is anything else then please feel free to reopen.

@astaikos316 Sorry I was out of the office for several days. So following @djee-ms advice this is what I did...
First thing is to add the new data channel we will use for sending our text messages (or wathever thing you want). I'm doing this on the PeerConnection.cs script, exactly on method OnPostInitialize() after the line OnInitialized.Invoke();
And this is the code I'm using for creating the data channel:
_nativePeer.AddDataChannelAsync(ChatChannelID, "chat", true, true).ContinueWith((prevTask) =>
{
    if (prevTask.Exception != null)
    {
        throw prevTask.Exception;
    }
    var newDataChannel = prevTask.Result;

    _mainThreadWorkQueue.Enqueue(() =>
    {
        _chatDataChannel = newDataChannel;
        _chatDataChannel.MessageReceived += ChatMessageReceived;
        Debug.Log("DataChannel for CHAT created successfully.");
    });
});

Note that ChatMessageReceived must run on the main thread so the first idea was to use the queue that already exists.
The problem here is that after all it seems not to be running on the main thread so when I try to update my UI on my ChatMessageReceived function the app is crashing.
So for solving this I have to be sure that I'm modifying the UI from the main thread. I did this storing the message received on a temporal variable and checking on the Update() method if this variable has a new value, then I write it on my UI.
private void ChatMessageReceived(byte[] message) { string text = System.Text.Encoding.UTF8.GetString(message); textToProcess = text; }
And as you can imagine on my Update function:
if (textToProcess != String.Empty) { textReceivedMesh.text = textToProcess; textToProcess = String.Empty; }
@djee-ms Could you give us some advice about how to correctly address this problem of updating the UI on Unity after receiving the message? Am I doing it wrong with the MainThreadQueue that you already have on the Unity Example?
NOTE: I just noticed that OnPostInitialize is already called from the Main Thread Queue so it's not necessary to do it again when declaring the listener for the MessageReceived  function.
So at the end I only use it on my ChatMessageReceived function like this:
_mainThreadWorkQueue.Enqueue(() => { textReceivedMesh.text = text; });
So it is no more necessary to use the temporal variable on the Update method.

Thank you very much for sharing the code, which solved my problem ！