Slider focus issues ?

🐛 Bug
I'm not too sure how to reproduce as I was smashing keys to test the action manager with python examples/nD_volume.py
but it seem like some combinaison of roll/transpose/3d<->2d and Alt-Up/Down can trigger an error:
Traceback (most recent call last):
  File "/Users/mbussonnier/dev/vispy/vispy/app/backends/_qt.py", line 520, in keyPressEvent
    self._keyEvent(self._vispy_canvas.events.key_press, ev)
  File "/Users/mbussonnier/dev/vispy/vispy/app/backends/_qt.py", line 569, in _keyEvent
    func(native=ev, key=key, text=str(ev.text()), modifiers=mod)
  File "/Users/mbussonnier/dev/vispy/vispy/util/event.py", line 454, in __call__
    self._invoke_callback(cb, event)
  File "/Users/mbussonnier/dev/vispy/vispy/util/event.py", line 472, in _invoke_callback
    _handle_exception(self.ignore_callback_errors,
  File "/Users/mbussonnier/dev/vispy/vispy/util/event.py", line 470, in _invoke_callback
    cb(event)
  File "/Users/mbussonnier/dev/napari/napari/utils/key_bindings.py", line 629, in on_key_press
    self.press_key(combo)
  File "/Users/mbussonnier/dev/napari/napari/utils/key_bindings.py", line 585, in press_key
    gen = func()
  File "/Users/mbussonnier/dev/napari/napari/components/_viewer_key_bindings.py", line 66, in focus_axes_up
  File "/Users/mbussonnier/dev/napari/napari/components/dims.py", line 293, in _focus_up
    index = (sliders.index(self.last_used) + 1) % len(sliders)
ValueError: X is not in list

Where X is 0, 3 .. and likely 1 or 2 as well, though I haven't observed those.

I can reproduce this in current main (commit: 9da6d289735e4c7d3abbcd111f03f5c61891d7ff)
use python examples/nD_image.py
Roll the axes twice using button or keyboard shortcut.
Then try alt-up or alt-down to change focus on sliders:
ValueError                                Traceback (most recent call last)
File ~/Dev/napari/napari/_qt/qt_viewer.py:855, in QtViewer.keyPressEvent(self=<napari._qt.qt_viewer.QtViewer object>, event=<PyQt5.QtGui.QKeyEvent object>)
    847 def keyPressEvent(self, event):
    848     """Called whenever a key is pressed.
    849
    850     Parameters
   (...)
    853         Event from the Qt context.
    854     """
--> 855     self.canvas._scene_canvas._backend._keyEvent(
        self.canvas._scene_canvas._backend = <vispy.app.backends._qt.CanvasBackendDesktop object at 0x28a75f7f0>
        self.canvas._scene_canvas = <NapariSceneCanvas (PyQt5) at 0x28a766b60>
        self.canvas = <napari._vispy.canvas.VispyCanvas object at 0x28a7660b0>
        self = <napari._qt.qt_viewer.QtViewer object at 0x28a75c0d0>
        self.canvas._scene_canvas.events.key_press = <vispy.util.event.EventEmitter object at 0x28a76c790>
        event = <PyQt5.QtGui.QKeyEvent object at 0x291e379a0>
        self.canvas._scene_canvas.events = <vispy.util.event.EmitterGroup object at 0x28a76c5e0>
    856         self.canvas._scene_canvas.events.key_press, event
    857     )
    858     event.accept()

File ~/Dev/miniforge3/envs/napari-dev/lib/python3.10/site-packages/vispy/app/backends/_qt.py:622, in QtBaseCanvasBackend._keyEvent(self=<vispy.app.backends._qt.CanvasBackendDesktop object>, func=<vispy.util.event.EventEmitter object>, ev=<PyQt5.QtGui.QKeyEvent object>)
    620     key = None
    621 mod = self._modifiers(ev)
--> 622 func(native=ev, key=key, text=str(ev.text()), modifiers=mod)
        key = <Key 'Up'>
        mod = (<Key 'Alt'>,)
        ev = <PyQt5.QtGui.QKeyEvent object at 0x291e379a0>
        func = <vispy.util.event.EventEmitter object at 0x28a76c790>

File ~/Dev/miniforge3/envs/napari-dev/lib/python3.10/site-packages/vispy/util/event.py:453, in EventEmitter.__call__(self=<vispy.util.event.EventEmitter object>, *args=(), **kwargs={'key': <Key 'Up'>, 'modifiers': (<Key 'Alt'>,), 'native': <PyQt5.QtGui.QKeyEvent object>, 'text': ''})
    450 if self._emitting > 1:
    451     raise RuntimeError('EventEmitter loop detected!')
--> 453 self._invoke_callback(cb, event)
        event = <KeyEvent blocked=False handled=False key=<Key 'Up'> modifiers=(<Key 'Alt'>,) native=<PyQt5.QtGui.QKeyEvent object at 0x291e379a0> source=None sources=[] text= type=key_press>
        self = <vispy.util.event.EventEmitter object at 0x28a76c790>
        cb = <bound method KeymapHandler.on_key_press of <napari.utils.key_bindings.KeymapHandler object at 0x28a741e10>>
    454 if event.blocked:
    455     break

File ~/Dev/miniforge3/envs/napari-dev/lib/python3.10/site-packages/vispy/util/event.py:471, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method KeymapHandler.on_key_press of <napari.utils.key_bindings.KeymapHandler object>>, event=<KeyEvent blocked=False handled=False key=<Key '...9a0> source=None sources=[] text= type=key_press>)
    469     cb(event)
    470 except Exception:
--> 471     _handle_exception(self.ignore_callback_errors,
        self = <vispy.util.event.EventEmitter object at 0x28a76c790>
        cb = <bound method KeymapHandler.on_key_press of <napari.utils.key_bindings.KeymapHandler object at 0x28a741e10>>
        event = <KeyEvent blocked=False handled=False key=<Key 'Up'> modifiers=(<Key 'Alt'>,) native=<PyQt5.QtGui.QKeyEvent object at 0x291e379a0> source=None sources=[] text= type=key_press>
        (cb, event) = (<bound method KeymapHandler.on_key_press of <napari.utils.key_bindings.KeymapHandler object at 0x28a741e10>>, <KeyEvent blocked=False handled=False key=<Key 'Up'> modifiers=(<Key 'Alt'>,) native=<PyQt5.QtGui.QKeyEvent object at 0x291e379a0> source=None sources=[] text= type=key_press>)
    472                       self.print_callback_errors,
    473                       self, cb_event=(cb, event))

File ~/Dev/miniforge3/envs/napari-dev/lib/python3.10/site-packages/vispy/util/event.py:469, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method KeymapHandler.on_key_press of <napari.utils.key_bindings.KeymapHandler object>>, event=<KeyEvent blocked=False handled=False key=<Key '...9a0> source=None sources=[] text= type=key_press>)
    467 def _invoke_callback(self, cb, event):
    468     try:
--> 469         cb(event)
        cb = <bound method KeymapHandler.on_key_press of <napari.utils.key_bindings.KeymapHandler object at 0x28a741e10>>
        event = <KeyEvent blocked=False handled=False key=<Key 'Up'> modifiers=(<Key 'Alt'>,) native=<PyQt5.QtGui.QKeyEvent object at 0x291e379a0> source=None sources=[] text= type=key_press>
    470     except Exception:
    471         _handle_exception(self.ignore_callback_errors,
    472                           self.print_callback_errors,
    473                           self, cb_event=(cb, event))

File ~/Dev/napari/napari/utils/key_bindings.py:504, in KeymapHandler.on_key_press(self=<napari.utils.key_bindings.KeymapHandler object>, event=<KeyEvent blocked=False handled=False key=<Key '...9a0> source=None sources=[] text= type=key_press>)
    494 if (
    495     event.native is not None
    496     and event.native.isAutoRepeat()
   (...)
    500     # unless the combo being held down is one of the autorepeatables or
    501     # one of the navigation keys (helps with scrolling).
    502     return
--> 504 self.press_key(kb)
        kb = <app_model.types._keys._keybindings.KeyBinding object at 0x291e680d0>
        self = <napari.utils.key_bindings.KeymapHandler object at 0x28a741e10>

File ~/Dev/napari/napari/utils/key_bindings.py:426, in KeymapHandler.press_key(self=<napari.utils.key_bindings.KeymapHandler object>, key_bind=<app_model.types._keys._keybindings.KeyBinding object>)
    417 if not callable(func):
    418     raise TypeError(
    419         trans._(
    420             "expected {func} to be callable",
   (...)
    423         )
    424     )
--> 426 generator_or_callback = func()
        func = <bound method focus_axes_up of Viewer(camera=Camera(center=(0.0, 4.5, 63.5), zoom=5.86328125, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(5.0, 64.0, 64.0, 64.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axis_labels=('0', '1', '2', '3'), range=(RangeTuple(start=0.0, stop=10.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0)), margin_left=(0.0, 0.0, 0.0, 0.0), margin_right=(0.0, 0.0, 0.0, 0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'Image' at 0x16d5b0c40>], help='use <2> for transform', status='', tooltip=Tooltip(visible=False, text=''), theme='system', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x14ca04dc0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})>
    428 key = str(key_bind.parts[-1].key)
    430 if inspect.isgeneratorfunction(func):

File ~/Dev/miniforge3/envs/napari-dev/lib/python3.10/site-packages/in_n_out/_store.py:805, in Store.inject.<locals>._inner.<locals>._exec(*args=(Viewer(camera=Camera(center=(0.0, 4.5, 63.5), zo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}),), **kwargs={})
    798 logger.debug(
    799     "  Calling %s with %r (injected %r)",
    800     _fname,
    801     bound.arguments,
    802     _injected_names,
    803 )
    804 try:
--> 805     result = func(**bound.arguments)
        bound = <BoundArguments (viewer=Viewer(camera=Camera(center=(0.0, 4.5, 63.5), zoom=5.86328125, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(5.0, 64.0, 64.0, 64.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axis_labels=('0', '1', '2', '3'), range=(RangeTuple(start=0.0, stop=10.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0)), margin_left=(0.0, 0.0, 0.0, 0.0), margin_right=(0.0, 0.0, 0.0, 0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'Image' at 0x16d5b0c40>], help='use <2> for transform', status='', tooltip=Tooltip(visible=False, text=''), theme='system', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x14ca04dc0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}))>
        func = <function focus_axes_up at 0x16b4d9000>
        bound.arguments = {'viewer': Viewer(camera=Camera(center=(0.0, 4.5, 63.5), zoom=5.86328125, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(5.0, 64.0, 64.0, 64.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axis_labels=('0', '1', '2', '3'), range=(RangeTuple(start=0.0, stop=10.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0)), margin_left=(0.0, 0.0, 0.0, 0.0), margin_right=(0.0, 0.0, 0.0, 0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'Image' at 0x16d5b0c40>], help='use <2> for transform', status='', tooltip=Tooltip(visible=False, text=''), theme='system', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x14ca04dc0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})}
    806 except TypeError as e:
    807     if "missing" not in e.args[0]:

File ~/Dev/napari/napari/components/_viewer_key_bindings.py:96, in focus_axes_up(viewer=Viewer(camera=Camera(center=(0.0, 4.5, 63.5), zo...ouse_drag_gen={}, _mouse_wheel_gen={}, keymap={}))
     94 @register_viewer_action(trans._("Move focus of dimensions slider up."))
     95 def focus_axes_up(viewer: Viewer):
---> 96     viewer.dims._focus_up()
        viewer.dims = Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axis_labels=('0', '1', '2', '3'), range=(RangeTuple(start=0.0, stop=10.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0)), margin_left=(0.0, 0.0, 0.0, 0.0), margin_right=(0.0, 0.0, 0.0, 0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0)
        viewer = Viewer(camera=Camera(center=(0.0, 4.5, 63.5), zoom=5.86328125, angles=(0.0, 0.0, 90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(5.0, 64.0, 64.0, 64.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axis_labels=('0', '1', '2', '3'), range=(RangeTuple(start=0.0, stop=10.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0)), margin_left=(0.0, 0.0, 0.0, 0.0), margin_right=(0.0, 0.0, 0.0, 0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'Image' at 0x16d5b0c40>], help='use <2> for transform', status='', tooltip=Tooltip(visible=False, text=''), theme='system', title='napari', mouse_over_canvas=False, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x14ca04dc0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={})

File ~/Dev/napari/napari/components/dims.py:412, in Dims._focus_up(self=Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axi...0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0))
    409 if len(sliders) == 0:
    410     return
--> 412 index = (sliders.index(self.last_used) + 1) % len(sliders)
        sliders = [2, 3]
        self.last_used = 0
        len(sliders) = 2
        self = Dims(ndim=4, ndisplay=2, order=(2, 3, 0, 1), axis_labels=('0', '1', '2', '3'), range=(RangeTuple(start=0.0, stop=10.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0), RangeTuple(start=0.0, stop=128.0, step=1.0)), margin_left=(0.0, 0.0, 0.0, 0.0), margin_right=(0.0, 0.0, 0.0, 0.0), point=(5.0, 64.0, 64.0, 64.0), last_used=0)
    413 self.last_used = sliders[index]

ValueError: 0 is not in list

If you roll again you will also get the error. If you roll another time, so back to the start, then everything is fine again.

Hi, checking this seems that what is needed is just to capture the exception and fallback the index variable value to a value that will be always available if the sliders list has elements, like for example setting index to 0. It could look something like:
        try:
            index = (sliders.index(self.last_used) + 1) % len(sliders)
        except ValueError:
            # Fallback to a valid value for the slider index in case the
            # dimentions where rolled and the last used dimension is not valid
            # anymore. See napari/napari#2388
            index = 0

This handling will need to be added in the _focus_up and _focus_down methods at
https://github.com/napari/napari/blob/19f83a2195c55518f7b89146f704021017118679/napari/components/dims.py#L408-L424
With the change above I'm able to roll dims and change sliders without issues:

That makes sense to me, but maybe Dims experts @andy-sweet and @brisvag can chime in?

Swallowing the exception is OK as a solution here, but I'd prefer to solve the underlying issue so that the exception doesn't get raised.
I think following example illustrates that underlying issue:
from napari.components import Dims
dims = Dims(ndim=4, ndisplay=2)
dims.last_used = 1 # simulates putting focus from slider 0 to slider 1
dims.ndisplay = 3
dims.last_used # last_used is still 1 which is invalid because dim 1 is displayed now, should be 0 instead

One solution to fix that issue is to add something like this to the root validator to keep the model consistent:
        # If the last used slider is no longer visible, use the first.
        last_used = values['last_used']
        ndisplay = values['ndisplay']
        displayed = order[-ndisplay :]
        if last_used in displayed:
            updated['last_used'] = 0

Qt components also mutate Dims.last_used (in particular see QtDims._update_display), so we may need to think through the order of operations here (i.e. the order or mutations to ndisplay, order, and last_used) to ensure we don't break the focus behavior. But I think the fix above is at least as good as the exception handling in that respect.

Yup, agree on updatding the root validator. That's the source of consistency within the Dims model.

So checked the solution but I had to change a little bit the code snippet above for it to work and it ended up being something like:
        # If the last used slider is no longer visible, use the first available.
        last_used = values['last_used']
        ndisplay = values['ndisplay']
        not_displayed = order[:-ndisplay]
        if len(not_displayed) > 0 and last_used not in not_displayed:
            updated['last_used'] = not_displayed[0]

The change done is to use the not_displayed dims following the logic at the _focus_* methods since seems like those are the ones pointing to sliders (?) and then use them to set last_used to a dim value instead of directly to the 0 index and then get the first dim not being displayed/slider available. Nonetheless, with this change the issue seems fixed and furthermore you can see that a slider always is set as selected when rolling dimentions (in contrast with my initial fix proposal where after rolling the dims you can see that no slider is selected):

However, I was not able to include the check for the dims nsteps which I think is what can help you know if for a dimention a slider is available? 🤔

Following the idea of a private helper function I ended up with something like this:
    @staticmethod
    def _nsteps_from_range(dims_range) -> Tuple[float, ...]:
        return tuple(
            # "or 1" ensures degenerate dimension works
            int((rng.stop - rng.start) / (rng.step or 1)) + 1
            for rng in dims_range
        )

And then the nsteps property ends being something like:
    @property
    def nsteps(self) -> Tuple[float, ...]:
        return self._nsteps_from_range(self.range)

And then the last_used validator logic can have nsteps as part of the validation:
        # If the last used slider is no longer visible, use the first.
        last_used = values['last_used']
        ndisplay = values['ndisplay']
        dims_range = values['range']
        not_displayed = [
            d
            for d in order[:-ndisplay]
            if len(cls._nsteps_from_range(dims_range)) > d
            and cls._nsteps_from_range(dims_range)[d] > 1
        ]
        if len(not_displayed) > 0 and last_used not in not_displayed:
            updated['last_used'] = not_displayed[0]

Here a branch with the changes if you want to play a little bit with the code: https://github.com/dalthviz/napari/tree/issue_2388
If the changes make sense or are a good enough starting point to move forward and submit a PR let me know!

Generally, I think the approach looks good enough for a PR. I might suggest some small changes, but those can come in the PR review.


CA1047 update doc to mention configurability

With PR https://github.com/dotnet/roslyn-analyzers/pull/3457 the documentation needs to be updated to add the api_surface configurability section as it is done for https://docs.microsoft.com/fr-fr/visualstudio/code-quality/ca1000?view=vs-2019#configurability

Updating doc

@Mikejo5000 I can see the ticket closed but I cannot find the associated PR and as far as I can see the doc page is not (yet) updated.

@Evangelink Right, We are required to do PRs on the private repo, so the link to the PR can't be seen. The linked issue gets auto-closed when the PR is merged to master. I see that the change isn't live yet, it should go live by noon today (we publish twice daily). Please let me know if we need any changes.


BUG: stats: improve numerical stability of covariance matrix to fix gh-10205

Reference issue
Closes gh-10205
What does this implement/fix?
Cholesky decomposition in scipy.stats.gaussian_kde fails if the data covariance matrix is not positive definite. This patch adds a small multiple of the identity matrix to the data covariance matrix for numerical stability.
See here for potential justification:

Additional information
I don't know anything about this particular subject, so please check that this fix is justified. I'd also appreciate thoughts on the magnitude of the stabilization.

Closing since we're not really sure how to balance speed/accuracy here. If anyone comes across this and would like to reopen with a suggestion on how to proceed, let me know!


Tidal downloader Login issue

Is not accepting user/key at login

Hello, same here. No longer auto login :(

same, don't work anymore

same here its not showing device code

same here its not showing device code

same here :/

Yep, same here. ;(

Same here

It's obviously a known issue again. Wait until it's resolved, no need to report that it's not working :).

It's obviously a known issue again. Wait until it's resolved, no need to report that it's not working :).

Hopefully the resolved issue will be announced instead of having everyone chasing after solutions.

same here, no devicecode

Tidal probably changed something internally that broke the script, we will just have to wait for @yaronzz to fix it

Following to see what the fix is

Same here, need device code.
hopefully can be solved soon

Has not been working, I hope it can be fixed soon. If not good by tidal lol

same here its not showing device code

any updates on the issue

Has not been working, I hope it can be fixed soon. If not good by tidal lol

Can't agree more, it's the only justification for the cost.. I hope there's light at the end of the tunnel.

tidal changed the api keys. @yaronzz has to approve https://github.com/yaronzz/TidalLib/pull/3 and then update this app with the updated library.
Tidal-dl cli was fixed yesterday

I have updated the API keys provided by 1nikolas and rebuilt the pro version. You can download the updated exe for Windows from here: http://<IP_ADDRESS>/tidal-gui.zip

to me says "device code" on tidal gui
how can i fix this please

I have updated the API keys provided by 1nikolas and rebuilt the pro version. You can download the updated exe for Windows from here: http://<IP_ADDRESS>/tidal-gui.zip
EDIT: feel free to remove this comment once the official version is available

the download link is not working can u share that again

The .zip URL is not connecting?
------ Original Message ------
From: "jetfu3l" @.>
To: "yaronzz/Tidal-Media-Downloader-PRO"
@.>
Cc: "Beaubrummel" @.>; "Author"
@.>
Sent: 1/22/2022 5:27:45 PM
Subject: Re: [yaronzz/Tidal-Media-Downloader-PRO] Tidal downloader Login
issue (Issue #180)

to me says "device code" on tidal gui
how can i fix this please
—
Reply to this email directly, view it on GitHub
https://github.com/yaronzz/Tidal-Media-Downloader-PRO/issues/180#issuecomment-1019369094,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI6Q56N3EHA5EAZ6ZWNIT3LUXMVODANCNFSM5MILAIJQ.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Try to remove usersettings.json, which is usually located in %userprofile%\documents\Tidal-gui\data\ folder
I have uploaded the exe here: https://mega.nz/file/8ZJTWYqB#gkVgO_-lFSuXCYe_OFDJkeJO8gy5y5uXPT3aKeHA4Ws

perfect, thanks to all who support this project
------ Original Message ------
From: "Bokkie" @.>
To: "yaronzz/Tidal-Media-Downloader-PRO"
@.>
Cc: "Beaubrummel" @.>; "Author"
@.>
Sent: 1/22/2022 5:40:47 PM
Subject: Re: [yaronzz/Tidal-Media-Downloader-PRO] Tidal downloader Login
issue (Issue #180)

Try to remove usersettings.json, which is usually located in
%userprofile%\documents\Tidal-gui\data\ folder
I have uploaded the exe here:
https://mega.nz/file/8ZJTWYqB#gkVgO_-lFSuXCYe_OFDJkeJO8gy5y5uXPT3aKeHA4Ws
—
Reply to this email directly, view it on GitHub
https://github.com/yaronzz/Tidal-Media-Downloader-PRO/issues/180#issuecomment-1019370722,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI6Q56MW6WZPCIGPW6MWHPTUXMW67ANCNFSM5MILAIJQ.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Thank you, worked for me. I'm in!!!

Try to remove usersettings.json, which is usually located in %userprofile%\documents\Tidal-gui\data\ folder
I have uploaded the exe here: https://mega.nz/file/8ZJTWYqB#gkVgO_-lFSuXCYe_OFDJkeJO8gy5y5uXPT3aKeHA4Ws

Perfect, Many Thanks!!

Skúste odstrániť usersettings.json, ktorý sa zvyčajne nachádza v %userprofile%\documents\Tidal-gui\data\priečinku
Nahral som exe tu: https://mega.nz/file/8ZJTWYqB#gkVgO_-lFSuXCYe_OFDJkeJO8gy5y5uXPT3aKeHA4Ws

Perfect, Thanks!

There is a new release of the API, should be fixed now :D

There is a new release of the API, should be fixed now :D

That's for the cli, not the gui

fixed

is this fixed for mac too, i cant seem to make it work

is this fixed for mac too, i cant seem to make it work

The issue was fixed, make sure to update to the latest version.


Bad performance in deep nested dynamic nodes

The code below implemented a snippet to help input matrix. It insert 2 spaces when & is detected and insert a new row when \\ is detected.
local function Matrix1()
    --SimpleMatrix
    local generateElm
    generateElm=function()
        return sn(
            nil,{
                t{"  "},
                i(1),
                d(2,
                    function (arg,snip,oldState)
                        local str=arg[1][1]
                        local len=string.len(str)
                        if string.sub(str,len,len)=="&" then
                            return sn(nil,{d(1,generateElm,{})})
                        elseif string.sub(str,len-1,len)=="\\\\" then
                            return sn(nil,{t{"",""},d(1,generateElm,{})})
                        else
                            return sn(nil,{})
                        end
                    end,
                    {1}
                )
            }
        )
    end
    snip(
        s({trig="mat",hidden=true},{
            t{"\\begin{matrix}",""},
            d(1,
                function (arg,snip,oldState)
                    return sn(nil,{d(1,generateElm,{})})
                end
            ),
            t{"","\\end{matrix}"}
        },{condition=mathZone})
    )
end
Matrix1()

The snip function will insert the snippet to the table that will be returned to the loader.
However, as the matrix getting larger the performance decreases dramaticly.

The gif show tht after I typed in the entire row, vim sponse very slow.

Phuh, yeah I haven't given much thought to performance yet, there are probably many points that could be optimized.
But also, try not to nest the snippet as deep 😬😬
Maybe hook & in insertNode up to update the external_update_dynamicnode, and generate all those insertNodes as children of one dynamicNode

Phuh, yeah I haven't given much thought to performance yet, there are probably many points that could be optimized.
But also, try not to nest the snippet that deep 😬😬
Maybe hook & in insertNode up to update the external_update_dynamicnode, and generate all those insertNodes as children of one dynamicNode

Did some work in #852, it's faster now :)


Chart titles do not display filter values correctly

This is an existing issues on all the chart with dynamic title with fitlers. The titles are not displaying the filtered values correctly. Consider these cases:
1. No filter on hour-range:

=> Title should be "... between 0:00 and 24:00"

2.Month-range and Hour-range with one point at either extreme end (Jan/Dec, 0/24). Invert is checked.

=> The Month-Range is [1, 9], inverted should be "... between the months of Oct and Dec"
=> Similarly, Hour-Range is [6, 24], inverted should be "... between the hours of 00:00 and 05:00"

3.Month-range and hour-range with no point at any extreme end. Invert is checked.

=> The Month-Range is [3, 10], inverted should be "... between the months of Nov and Feb"
=> Similarly, Hour-Range is [3, 21], inverted should be "... between the hours of 22:00 and 02:00"
Probable cause
https://github.com/CenterForTheBuiltEnvironment/clima/blob/f116b41fc6fc398dc7c26c506f3414a812a39925/my_project/utils.py#L321-L329

I think I have fixed the first sub-issue now the message is showing the right value, from 0 to 24.
I am not sure about point 2. If the user selects invert it should say which data are included in the analysis not the ones that are excluded. Could you please elaborate a bit more on this?
Could you please also elaborate more on point 3? I think that the two screenshot you took do not match.

Hi Federico, thanks for your question. I just upated the description above

Hi, @phuongdoan13 could you please check if point one is solved? If so could you please remove it from the issue?


Network analytics

With the data saved as a network, it could be interesting to use network analytic tools to produce descriptive statistics of the network. This may include:

Summary higher degree nodes (musicians/bands)
Bands whose members are in many other bands
Band/member distances
Highlight interesting subgraphs

A secondary use of descriptive statistics could be network recommendations: bands, albums or musicians which are highly connected with selected nodes. This would require:

Searching and filtering
Graph distance / degree algorithms

Added searching/filtering


Replace Jason Bouzane with Jon Johnson in image-spec maintainers

Switch approved by Jason Bouzane via email to OCI TOB mailing list: https://groups.google.com/a/opencontainers.org/g/tob/c/Q08hiintwY4/m/tMreB9LgCwAJ
Text:
From: Jason Bouzane<EMAIL_ADDRESS>Date: Thu, 25 Mar 2021 11:34:51 -0600
Message-ID<EMAIL_ADDRESS>Subject: Re: [oci-tob] image-spec maintainer gap
To: Vincent Batts<EMAIL_ADDRESS>Cc: Phil Estes<EMAIL_ADDRESS>Technical Oversight Board<EMAIL_ADDRESS>
I'm on PTO for a few days, so I'm not in a position to make the swap
myself. But I'm fine with this if someone else wants to do it.

This PR must get at least 6 LGTMs before merging:

[ ] Brendan Burns<EMAIL_ADDRESS>(@brendandburns)
[x] Jason Bouzane<EMAIL_ADDRESS>(@jbouzane) (via email)
[ ] John Starks<EMAIL_ADDRESS>(@jstarks)
[ ] Jonathan Boulle<EMAIL_ADDRESS>(@jonboulle)
[ ] Stephen Day<EMAIL_ADDRESS>(@stevvooe)
[x] Vincent Batts<EMAIL_ADDRESS>(@vbatts)
[x] Aleksa Sarai<EMAIL_ADDRESS>(@cyphar)
[ ] Keyang Xie<EMAIL_ADDRESS>(@xiekeyang)

Signed-off-by: Phil Estes<EMAIL_ADDRESS>

I think we want a threshold of approval from current maintainers as well as ack from @jonjohnsonjr (he verbally expressed interest on the weekly call); @vbatts can clarify on any existing TDC process.

ACK from me 👍
On Thu, Mar 25, 2021 at 12:20 PM Phil Estes @.***>
wrote:

I think we want a threshold of approval from current maintainers as well
as ack from @jonjohnsonjr https://github.com/jonjohnsonjr (he verbally
expressed interest on the weekly call); @vbatts
https://github.com/vbatts can clarify on any existing TDC process.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/opencontainers/image-spec/pull/831#issuecomment-807321887,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEIJGZWF6JLH3QPK7RB2ZXDTFOEJPANCNFSM4ZZ7BO2A
.

Giant (non-binding) ack!

LGTM
Phil beat me to it, but I'll scratch out my personal TODO :-D

LGTM, but yeah we'd need to have the usual 6-LGTM threshold if we're going to do it by the book. We can take Jason's email as an LGTM.

LGTM

friendly ping @opencontainers/image-spec-maintainers

LGTM

LGTM
On Thu, Mar 25, 2021, 15:19 Phil Estes @.***> wrote:

Switch approved by Jason Bouzane via email to OCI TOB mailing list:
https://groups.google.com/a/opencontainers.org/g/tob/c/Q08hiintwY4/m/tMreB9LgCwAJ
Text:
From: Jason Bouzane @.>
Date: Thu, 25 Mar 2021 11:34:51 -0600
Message-ID: @.>
Subject: Re: [oci-tob] image-spec maintainer gap
To: Vincent Batts @.>
Cc: Phil Estes @.>, Technical Oversight Board @.***>
I'm on PTO for a few days, so I'm not in a position to make the swap
myself. But I'm fine with this if someone else wants to do it.
Signed-off-by: Phil Estes @.***
You can view, comment on, or merge this pull request online at:
https://github.com/opencontainers/image-spec/pull/831
Commit Summary

Replace Jason B with Jon J in image-spec maintainers

File Changes

M MAINTAINERS
https://github.com/opencontainers/image-spec/pull/831/files#diff-62ce4c793b2bbb7e5cdb691c3987d9aee75f436a74cff574fe3aca10ecc4062f
(2)

Patch Links:

https://github.com/opencontainers/image-spec/pull/831.patch
https://github.com/opencontainers/image-spec/pull/831.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/opencontainers/image-spec/pull/831, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAQL2OMLQNI25HWDOD35R3TFOEF7ANCNFSM4ZZ7BO2A
.

LGTM

6-LGTM threshold reached, merging. Thanks all!


Indexing the movielens dataset seems comparatively very slow

Indexing Movielens is comparatively very slow compared to indexing wikipedia even though it has way less tokens.
is it because it has more fields?
because it has int fast fields?

it seems due to the indexed i64 fields.

Oops ... Apparently there is no "close-segment" condition over the saturation of the hashmap :|

I think we need to dig the problem further before looking into options. From your post in the other thread it's not clear what's the problem. It appears to have a static size, so how do you size this hashmap in advance?

Nevermind, I just saw that you have a PR to fix this https://github.com/tantivy-search/tantivy/pull/146

The user gives a RAM budget to tantivy. This budget is split between indexing thread. Each of them build a memory arena and stores terms and inverted list in this memory arena.
The terms are stored in a hashmap. The table of this hashmap has a fixed size, which is a ratio of the overall memory arena. The rest of the memory arena is used as a heap with a bumping allocator, and receives both the terms themselves, and the inverted lists.
The terms and the beginning of the inverted list associated to them are allocated one after the other so they lie continguously (at least the beginning of the inverted list) in the memory arena.
Depending on the indexing options, we record either

the list of doc ids containing the term
the list of docids and the list of term frequency
the list of doc ids and the positions of the terms.

You can check the recorder in the code to get the detail. In the end, they are all more or less list of u32.
The datastruct is something halfway between unrolled linked list and a Vec.
It is a linked list of blocks with an exponentially increasing size.
After indexing a document, if one of the following two condition is met

the table is saturating (currently 1/3rd of the capacity in master, 1/5th of the capacity in the branch you commented on),
the heap is reaching capacity (full - some kind of margin)

Then the segment is close and flushed to disk. Another one is opened.
This condition can only be checked after each document, so a huge document can actually
exceed capacity of the table or the heap.
There is currently nothing done for the table, and it can be considered a bug.
The heap on the other hand, is in fact a linked list of heap for this problem.

@arthurprs  @kaedroho  @Burntsushi Are you all in a meetup or did you all swing by tantivy's github on the same day by concidence?


Extend ODE Trigger components to support new ODE Heat-Mapper Implementation

New ODE Trigger services to add and remove an ODE Heat-Mapper... at most one per Trigger.
/**
 * @brief Adds a named ODE Heat-Mapper to a named ODE Trigger
 * @param[in] name unique name of the ODE Trigger to update
 * @param[in] heat_mapper unique name of the ODE Heat-Mapper to add
 * @return DSL_RESULT_SUCCESS on successful update,
 * DSL_RESULT_ODE_TRIGGER_RESULT otherwise.
 */
DslReturnType dsl_ode_trigger_heat_mapper_add(const wchar_t* name,
    const wchar_t* heat_mapper);

/**
 * @brief Removes the ODE Heat-Mapper from a named ODE Trigger
 * @param[in] name unique name of the ODE Trigger to update
 * @return DSL_RESULT_SUCCESS on successful update,
 * DSL_RESULT_ODE_TRIGGER_RESULT otherwise.
 */
DslReturnType dsl_ode_trigger_heat_mapper_remove(const wchar_t* name);

complete - merged into v0.24.alpha


Migrate charts to repo apisix-helm-charts

Issue description
The repo apisix-helm-chart contains the charts of APISIX, APISIX Dashboard, we consider to put the chart for apisix-ingress-controller there for the unified maintain.
We should, create a new directory apisix-ingress-controller in apisix-helm-chart's charts directory. Add some documents in this repo to guide people link to apisix-helm-chart.
Environment

your apisix-ingress-controller version (output of apisix-ingress-controller version --long);
your Kubernetes cluster version (output of kubectl version);
if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a).

I can do this.

@Junnplus Thanks for your contribution. Now it's time to close it.


(Editor) Hide mouse in Game Mode.

Issue is closed automatically by CI. Commit: 68ca7266ea5453608f99d54e9deb9f394ed8b66e


Vmdb::Plugins.versions supports symlinked plugins

@bdunne Please review.
cc @chalettu

I can't understand why this error is happening.  It feels like some permission oddity with the temp directory.


Save user project_id attr on first UPP save

Closes #1794. Saves a user's project_id when the UPP is created for the first time so that we know which project was the first that a user contributed to.
Review checklist

[ ] First, the most important one: is this PR small enough that you can actually review it? Feel free to just reject a branch if the changes are hard to review due to the length of the diff.
[ ] If there are any migrations, will they the previous version of the app work correctly after they've been run (e.g. the don't remove columns still known about by ActiveRecord).
[ ] If anything changed with regards to the public API, are those changes also documented in the apiary.apib file?
[ ] Are all the changes covered by tests? Think about any possible edge cases that might be left untested.

Did my most recent commit/comments adequately answer your questions, @camallen, or did I miss what you were suggesting?

Somewhat, any reason why we're still running update with validations, callbacks on the user model (i don't think we need them here)? I'm about a 2/10 on this ;)

Thought I got those! Got 'em now.

LGTM pending specs


Move pre-1.16 Kubernetes assets to a deprecated folder (to later remove)

Tomo mentioned that 1.16 will actually fall out of community support at the 1.19 timeframe. So, I think we should also probably think about moving our pre-1.16 assets into a deprecated folder, and we'll remove those later.

Pull Request Test Coverage Report for Build 8d0cd0544-PR-500

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 73.939%

Totals

Change from base Build b8540e190:
0.0%

Covered Lines:
1098

Relevant Lines:
1485

💛  - Coveralls


[Icons Emijis] Split to multiple DLLs in a single NuGet package

[Icons Emijis] Split to multiple DLLs in a single NuGet package
We need to split the Icons library into several DLLs. Currently, all icons are in a single file and compiled at once. Unfortunately, .NET and C# have a maximum number of strings available in a single C# project. We therefore decided to split .cs files into several DLLs.
To do this, subclasses must be transformed into namespace (with the same name).
It is also necessary to centralize the Icons class (renamed to IconsExtensions) in the Components library used by Icons and Emojis.

Breaking changes

Icons.GetInstance(icon) will be icon.GetInstance() or IconsExtension.GetInstance()
Icons.GetAllIcons() will be IconsExtension.GetAllIcons()
Icons.AllIcons will be IconsExtension.AllIcons

Build process
To build the NuGet package, we need to build each DLLs using commands like
dotnet build -c release -p:ICONS_BUILD=Regular -o ./bin/Regular
dotnet build -c release -p:ICONS_BUILD=Filled  -o ./bin/Filled

Next a package could be creating using a csproj similar to this one.

Duplicated #2990... Closing


fix: make account transaction index private

It's an implementation detail of tx pool

Stack:

#320 ⬅
#318
#317
#316
#315
#314
#313

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.42%. Comparing base (d9fa57e) to head (e3fb777).

Additional details and impacted files
@@                Coverage Diff                 @@
##           spr/main/6878ea49     #320   +/-   ##
==================================================
  Coverage              78.42%   78.42%
==================================================
  Files                     28       28
  Lines                   1372     1372
  Branches                1372     1372
==================================================
  Hits                    1076     1076
  Misses                   242      242
  Partials                  54       54

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Issue with optparse

I'm trying to use virtualenv-tools to clone a virtualenv on our servers during deploy, and ran into an issue while using it as described in the docs.
When attempting to run it like this: virtualenv-tools --update-path=/data/virtualenv/clone6 or this: virtualenv-tools --update-path /data/virtualenv/clone6, I get the following error:
error: . does not refer to a python installation
I added a print statement to debug what options and paths were being set to:
options, paths: {'update_path': '/data/virtualenv/clone6', 'reinitialize': None} []
I ended up running the following command, and it seemed to work:
2013-02-19--17-40-03)[mwarkentin@tide-acct-app-01 site-packages]$ virtualenv-tools --update-path=/data/virtualenv/clone6 /data/virtualenv/clone6
options, paths: {'update_path': '/data/virtualenv/clone6', 'reinitialize': None} ['/data/virtualenv/clone6']
A /data/virtualenv/clone6/bin/activate
A /data/virtualenv/clone6/bin/activate.fish
A /data/virtualenv/clone6/bin/activate.csh
B /data/virtualenv/clone6/lib/python2.7/copy_reg.pyo
B /data/virtualenv/clone6/lib/python2.7/warnings.pyc
B /data/virtualenv/clone6/lib/python2.7/posixpath.pyo
...

Should the docs be updated, or am I doing something wrong here?

I'm having this issue too. I think that's not true. I think it's just a bug in the way we try and get the arguments back from optparse:
    parser = optparse.OptionParser()
    parser.add_option('--reinitialize', action='store_true',
                      help='Updates the python installation '
                      'and reinitializes the virtualenv.')
    parser.add_option('--update-path', help='Update the path for all '
                      'required executables and helper files that are '
                      'supported to the new python prefix.  You can also set '
                      'this to "auto" for autodetection.')
    options, paths = parser.parse_args()
    print options
    print paths

Leads to this print:
{'update_path': '/Users/nicholas/URX/dev/app2bitch/cunt/', 'reinitialize': None}
[]
error: . does not refer to a python installation

So as we see. We want the variable path to contain options['update_path']...  I'm modifying my script and if I have time later I'll make a pull request

I ended up on this page because the docs are wrong here.
To get this working, I had to cd /tmp/build-cache. Should I open a new issue for this?

This thread is a little stale, it may be a good idea.


Location header in response has incorrect uri

Configuration information

EHRbase version: 0.21.1
openEHR_SDK version: 1.19.0
Archie version: 2.0.1
PostgreSQL version: PostgreSQL 13.4
Java Runtime version: Oracle Corporation 11.0.15
Operating System version: Linux amd64 4.18.0

Steps to reproduce

Create EHR by making a post request to https://www.mydomain.com/ehrbase/rest/openehr/v1/ehr/
Check the location header in the response

Note: we get the same behavior when creating EHR with id and when posting compositions.
My theory is that the call to the method getBaseEnvLinkURL on the following line is the issue https://github.com/ehrbase/ehrbase/blob/ef8ed6148cb0a480d92f0b3d88cd5a33e872c9ea/rest-openehr/src/main/java/org/ehrbase/rest/openehr/OpenehrEhrController.java#L139.
The implementation of the method is found here https://github.com/ehrbase/ehrbase/blob/ef8ed6148cb0a480d92f0b3d88cd5a33e872c9ea/rest-openehr/src/main/java/org/ehrbase/rest/BaseController.java#L117.  I believe that this line fetches the whole request uri rather than only the base. The uri is then appended with  "/rest/openehr/v1/ehr/" + ehrId leading to the bug in question.
Actual result
Value is in the format: https://www.mydomain.com/ehrbase/rest/openehr/v1/ehr/de7205e7-fb70-4b5e-bd2d-51cc0ac81f1d//rest/openehr/v1/ehr/de7205e7-fb70-4b5e-bd2d-51cc0ac81f1d
Expected result (Acceptance Criteria)
https://www.mydomain.com/ehrbase/rest/openehr/v1/ehr/de7205e7-fb70-4b5e-bd2d-51cc0ac81f1d
Definition of Done

[ ] The defect is checked by an unit or an integration test (Robot)
[ ] Merge Request approved
[ ] Unit tests passed
[ ] Build without errors
[ ] Release notes prepared
[ ] No additional runtime warnings

Hello @abebehailu,
Checked the location headers and I confirm that the same is reproducible in EHRBase version 0.22.0
Bug reported in JIRA for tracking purposes: https://jira.vitagroup.ag/browse/CDR-481
Will let you know in case of any updates.
CC: @stefanspiska

We've seen the same bug in 0.21.1, although it's not blocking us as the correct UID is returned in the ETag header.
I wanted to highlight that the openEHR API spec examples show all composition endpoints returning the full version UID (8849182c-82ad-4088-a07f-48ead4180515::openEHRSys.example.com::2) rather than the shorter versioned object UID (8849182c-82ad-4088-a07f-48ead4180515).
That makes sense to me as calling GET with the Location header from a POST/PUT/GET should consistently return that specific version, but in this case GETting a composition with the shorter versioned object UID will return a newer version if one exists.
Lastly, in case it helps, we believe EHRBase 0.19 and below returned different Location headers for different endpoints - PUT returned the full version id, but POST always returned just the versioned object id.

Hello @abebehailu ,
Issue was fixed. Ticket https://jira.vitagroup.ag/browse/CDR-704
EHRbase version: 0.24.0-SNAPSHOT
openEHR_SDK version: 1.24.0-SNAPSHOT

Ticket closed.
CC: @vidi42 , @HolgerReiseVSys , @dmitrytulba


Inference on ScanNet25k

Hi, congrats on your great work!
Can you provide more detailed instructions to reproduce inference results on ScanNet25k? For example, how should I organize data and what arguments to set for those inference scripts?
Also, it seems there is on script named retrieval_from_nocs.py

Hi, thanks for being interested at our work!
For inference, it should follow the order of scripts/generate_multi_scale_candidates.py,  scripts/generate_multi_nocs_candidates.py, scripts/alignment_from_nocs.py, and scripts/generate_multi_shape_candidates.py, the last one was mis-noted as retrieval_from_nocs.py  before, sorry for that.
For script arguments, the most important one might be the num_iters which is the number of candidates we sample from the distribution. You can set that number to a higher value, e.g., 20-50, so during evaluation, just randomly pick the number of generated samples you want to evaluate from the samples.
For dataset structure, I think the combination of processed data from Val ScanNet25k and ScanNet25k data should be sufficient -  and jut put them together should be fine I think.

Thanks for your instant response! I will try out your suggestions.
And where can I find the evaluation code on Scan2CAD (including metrics such as alignment accuracy, retrieval similarity, etc)? In the paper, it states that your evaluation setting is different from ROCA, SPARC and Vid2CAD. I think that's why your metric numbers of ROCA are a bit lower.

Yes, we perform per-frame evaluation but do not aggregate predictions and evaluate them per-scene.
We provide the test splits containing the frames for each category where the target object is not heavily occluded and should be eligible for single-view evaluation under the splits directory. The evaluation process is rather similar - we use the same error thresholding following prior works.
I added the evaluation script for alignment accuracy, which I guess is the most critical for benchmarking under the scripts directory, and provided both ROCA and ours' alignment prediction (8 sample predictions) here.

For our method, we use *_nonocc_centroid_maskexist.txt cuz those are the frames that the mask estimator successfully generated the mask for the target object, and for those entries that we don't have a predicted mask, we would consider that as a missing/false prediction when evaluating the accuracy.

Hi, can you provide detailed instructions to run your excellent models on new images in the wild?


rados restructure for basic - needed clusters and tasks

@racpatel pls sign your commits and add appropriate labels.


CC License

Our CC license was listed in the documentation of the v2 page, but Ali and I couldn't find it on the v3 page. Can we list it somewhere (if it isn't posted already)?
Based on our notes from last year, before the transition to v3, place attestations were covered under the CCBY 4.0 non-commercial license.
Thanks!

Related to #200

The licensing page is linked as "WHG Policy" in the download instructions, wherever they appear:

I'm going to split it into modal overlays linked from the page footer as Licence | Terms of Use | Privacy Policy

Job done - will push to production server overnight (US time).


Add note for matching files via CLI

Summary
Starting in this change we've started to ignore matchers for files passed in via the CLI
This PR adds a note that files passed this way will be tested even though they may normally not be included
Closes https://github.com/facebook/jest/issues/5527
Test plan

N/A

Screen

Does this need a changelog entry? @SimenB

I agree with @SimenB. I think we should consider reverting that PR partially. I totally messed up there. Jest should never run tests that are excluded through the config. Is there somebody who'd like to send the revert?

Yeah I'll send it


Failed to send crash report due to a network error: SocketException: OS Error: Operation timed out, errno = 60, address = clients2.google.com, port = 59451

Steps to Reproduce

...
...
...

Logs
flutter_01.log

It seems that https://storage.googleapis.com/flutter_infra/flutter/220ea0e1ec2829064295766f41b768c39eaca643/android-arm-dynamic-release/artifacts.zip
is not available from your machine.
Please check if you can download the uri from browser.
If you're in China, visit https://flutter.io/community/china for more.

I also met。


Provide printable columns on IngressCRD resources

What does this PR do?

Provide printable columns for IngressRoute, IngressRouteTCP, IngressRouteUDP, TLSOption and ServersTransport

Comes from #11005
Motivation
Improve User XP with kubectl when using this provider.
More

[x] Added/updated documentation

Additional Notes
before

after

test yaml used
---
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
  name: mytransport
  namespace: default

spec:
  serverName: example.org
  insecureSkipVerify: true
---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
  name: ingressroutetcpfoo

spec:
  entryPoints:
    - footcp
  routes:
  # Match is the rule corresponding to an underlying router.
  - match: HostSNI(`*`)
    priority: 10
    services:
    - name: foo
      port: 8080
      weight: 10
    - name: bar
      port: 8081
      weight: 10
---
apiVersion: traefik.io/v1alpha1
kind: TLSOption
metadata:
  name: opt
  namespace: default

spec:
  minVersion: VersionTLS12
---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteUDP
metadata:
  name: ingressrouteudpfoo
spec:
  entryPoints:
    - fooudp
  routes:
  - services:
    - name: foo
      port: 8080
      weight: 10

@sdelicata PR is rebased. I tried to update this PR following update on resources since v2.11

As seen together, there is no easy win on this one.
In order to do it correctly, it requires some changes on k8s providers.
We'll see later, closing it FTM.


Flatten doc structure

I've flatten the doc structure a bit and added some missing parts.

@m133225 for your review and merging.
A lot more to be done, but I'll do those as separate PRs.

@m133225 I merged because this is needed for another PR. You can review later and fix any problems in master or as a separate PR.


Kanban board

[ ] Our team is two:

@odaialazzeh
@boo-shehab

[ ] The link to the Kanban board:

https://github.com/users/odaialazzeh/projects/6

Hi @odaialazzeh and @boo-shehab ,
Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

Highlights
📌 You assign tasks to each collaborator ✅
📌 Descriptive Issue✅
📌 Your board has columns To Do, In Progress, In Review and Done✅
Optional suggestions
Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Remove unnecessary the const_fn feature gate

Fixes #320, caused by rust-lang/rust#85109
This exists since https://github.com/rust-lang/packed_simd/commit/1596d1bf28f0e29363c6a98711f393af7625b9a6#diff-b1a35a68f14e696205874893c07fd24fdb88882b47c23cc0e0c80a30c7d53759R2 but now it's unnecessary as all the use here should be stabilized now.

CI failure is unrelated:
error: dereferencing a null pointer
 --> /home/travis/build/rust-lang/packed_simd/examples/target/release/build/aobench-a0b4f4b850beb8cb/out/aobench.rs:5:6095
  |
5 | ... ! ( unsafe { & ( * ( :: std :: ptr :: null :: < __fsid_t > ( ) ) ) . __val as * const _ as usize } , 0usize , concat ! ( "Offset of f...
  |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this code causes undefined behavior when executed
  |
note: the lint level is defined here
 --> aobench/src/lib.rs:5:9
  |
5 | #![deny(warnings, rust_2018_idioms)]
  |         ^^^^^^^^
  = note: `#[deny(deref_nullptr)]` implied by `#[deny(warnings)]`

error: aborting due to previous error

@workingjubilee Usually, do we publish a new version for such a case? Since the feature flag breaks the build, it may be worth doing so.

Yeah, I think so.


F-Droid version over 1 year old?

Hi,
after your policy issue I checked the 8Vim F-Droid version. Are you planing on updating it, too?
Best wishes
Alex

Well... isn't it suppose to get picked up automatically as long as I keep the fastlane folder updated and the tag in line with the versionName?

Well... isn't it suppose to get picked up automatically as long as I keep the fastlane folder updated and the tag in line with the versionName?

I am not sure, but we'll see.
Probably you are right.
Thank you.


retest tabindex change on focusout

Looking at the APG patterns, they leave the tabindex as is when focus leaves the tree. Let's try that as it might help improve UX for revisiting a tree after exploration (cf. https://gitlab.gnome.org/GNOME/orca/-/issues/195#note_1065628).

It doesn't seem to change Orca's behavior; I don't recall how other ATs did - needs more testing.

After more testing, this doesn't seem to help much. Like Orca, NVDA is fine either way (Chrome, FF). JAWS is ok in Chrome but in Firefox, JAWS browse mode visits both the tree's label and active (tabindex=0) treeitem's label; sometimes reads the treeitem twice.
VoiceOver on Mac is a hot mess, I can't remember what it was like the last time but I feel it's about the same; both Safari and Chrome struggle in general and don't improve with the change.

We need clearer test instructions and documentation of results.

For the record, here's the diff of the rough implementation I tested:
diff --git a/lib/navigator.js b/lib/navigator.js
index 21472a0..f61f896 100644
--- a/lib/navigator.js
+++ b/lib/navigator.js
@@ -15,12 +15,10 @@ class navigator {
     this.tree = extractAbstractTree(node);
     this.node.addEventListener('keydown', this.move.bind(this));
     this.node.addEventListener('focusin', () => {
-      this.node.setAttribute('tabindex', '-1');
       this.highlight(true);
     });
     this.node.addEventListener('focusout', () => {
-      this.highlight(false);
-      this.node.setAttribute('tabindex', '0');
+      this.highlight(false, true);
     });
   }

@@ -69,7 +67,7 @@ class navigator {
     node.getAttribute('data-owns').split(' ').forEach(id => this.highlightSubtree(boolean, this.node.querySelector(`[data-owns-id="${id}"]`)));
   }

-  highlight(boolean) {
+  highlight(boolean, focusOut) {
     const activedescendant =
       this.active().name === this.node.getAttribute('data-owns-id')
         ? this.node
@@ -81,7 +79,7 @@ class navigator {
       activedescendant.focus();
     }
     if (boolean === false) {
-      activedescendant.setAttribute('tabindex', '-1');
+      if (!focusOut) activedescendant.setAttribute('tabindex', '-1');
       activedescendant.classList.remove('is-activedescendant');
     }
   }


session stopped abnormally due to 'badarg'

I have a cluster with two nodes ,when I load test with the 8000 clients connected ,from console ,I see session stopped abnormally due to 'badarg' on each node,  at the same time all the cilents lost the connect,what's the problem is?
09:57:11.558 [warning] [<0.3040.0>] session stopped abnormally due to 'badarg'
09:57:11.559 [warning] [<0.2660.0>] session stopped abnormally due to 'badarg'
09:57:11.657 [warning] [<0.6091.0>] session stopped abnormally due to 'badarg'
09:57:12.019 [warning] [<0.4631.0>] session stopped abnormally due to 'badarg'
09:57:12.020 [warning] [<0.6299.0>] session stopped abnormally due to 'badarg'
09:57:12.047 [warning] [<0.5125.0>] session stopped abnormally due to 'badarg'
the vernemq.conf is below
Allow anonymous users to connect, default is 'off'

Default: off

Acceptable values:
- on or off
allow_anonymous = on
Allow operation even when a VerneMQ cluster is inconsistent,
by removing consistency checks while registering new
clients or subscribing/unsubscribing from topics

Default: off

Acceptable values:
- on or off
trade_consistency = on
Allows a client to logon multiple times using the same client id
(non-standard behaviour!).

Default: off

Acceptable values:
- on or off
allow_multiple_sessions = on
Set the time in seconds VerneMQ waits before a retry, in case a (QoS=1 or QoS=2) message
delivery gets no answer.

Default: 20

Acceptable values:
- an integer
retry_interval = 20
Set the maximum size for client IDs. MQTT v3.1 specifies a
limit of 23 characters

Default: 23

Acceptable values:
- an integer
max_client_id_size = 100
This option allows persistent clients ( = clean session set to
false) to be removed if they do not reconnect within 'persistent_client_expiration'.
This is a non-standard option. As far as the MQTT specification is concerned,
persistent clients persist forever.
The expiration period should be an integer followed by one of 'd', 'w', 'm', 'y' for
day, week, month, and year.

Default: never

Acceptable values:
- text
persistent_client_expiration = 1w
The maximum number of QoS 1 or 2 messages that can be in the process of being
transmitted simultaneously. This includes messages currently going through handshakes
and messages that are being retried. Defaults to 20. Set to 0 for no maximum. If set
to 1, this will guarantee in-order delivery of messages.

Default: 20

Acceptable values:
- an integer
max_inflight_messages = 5000
The maximum number of messages to hold in the queue above
those messages that are currently in flight. Defaults to 1000. Set to 0 for
no maximum (not recommended). This option allows to control how a specific
client session can deal with message bursts. As a general rule of thumb set
this number a bit higher than the expected message rate a single consumer is
required to process.

Default: 1000

Acceptable values:
- an integer
max_online_messages = 10000
The maximum number of QoS 1 or 2 messages to hold in the offline queue.
Defaults to 1000. Set to -1 for no maximum (not recommended). Set to 0
if no messages should be stored offline.

Default: 1000

Acceptable values:
- an integer
max_offline_messages = 10000
This option sets the maximum payload size that VerneMQ will allow for publishers.
Messages that exceed this size will not be accepted by VerneMQ. The
default value is 0, which means that all valid MQTT messages are accepted. MQTT
imposes a maximum payload size of 268435455 bytes.

Default: 0

Acceptable values:
- an integer
message_size_limit = 0
If a message is published with a QoS lower than the QoS of the subscription it is
delivered to, VerneMQ can upgrade the outgoing QoS. This is a non-standard option.

Default: off

Acceptable values:
- on or off
upgrade_outgoing_qos = off
listener.max_connections is an integer or 'infinity' defining
the maximum number of concurrent connections. This option can be overridden
on the protocol level by:
- listener.tcp.max_connections
- listener.ssl.max_connections
- listener.ws.max_connections
- listener.wss.max_connections
or on the listener level by:
- listener.tcp.my_tcp_listener.max_connections
- listener.ssl.my_ssl_listener.max_connections
- listener.ws.my_ws_listener.max_connections
- listener.wss.my_wss_listener.max_connections

Default: 10000

Acceptable values:
- an integer
- the text "infinity"
listener.max_connections = 50000
Set the nr of acceptors waiting to concurrently accept new connections.
This can be specified either on the protocol level:
- listener.tcp.nr_of_acceptors
- listener.ssl.nr_of_acceptors
- listener.ws.nr_of_acceptors
- listener.wss.nr_of_acceptors
or on the listener level:
- listener.tcp.my_tcp_listener.nr_of_acceptors
- listener.ssl.my_ssl_listener.nr_of_acceptors
- listener.ws.my_ws_listener.nr_of_acceptors
- listener.wss.my_wss_listener.nr_of_acceptors

Default: 10

Acceptable values:
- an integer
listener.nr_of_acceptors = 500
listener.tcp. is an IP address and TCP port that
the broker will bind to. You can define multiple listeners e.g:
- listener.tcp.default = <IP_ADDRESS>:1883
- listener.tcp.internal = <IP_ADDRESS>:10883
- listener.tcp.my_other_listener = <IP_ADDRESS>:10884
This also works for SSL listeners and WebSocket handlers:
- listener.ssl.default = <IP_ADDRESS>:8883
- listener.ws.default = <IP_ADDRESS>:800
- listener.wss.default = <IP_ADDRESS>:880

Default: <IP_ADDRESS>:1883

Acceptable values:
- an IP/port pair, e.g. <IP_ADDRESS>:10011
listener.tcp.default = <IP_ADDRESS>:1883
listener.vmq.clustering is the IP address and TCP port that
the broker will bind to accept connections from other cluster
nodes e.g:
- listener.vmq.clustering = <IP_ADDRESS>:18883
This also works for SSL listeners:
- listener.vmqs.clustering = <IP_ADDRESS>:18884

Default: <IP_ADDRESS>:44053

Acceptable values:
- an IP/port pair, e.g. <IP_ADDRESS>:10011
listener.vmq.clustering = <IP_ADDRESS>:44053
erlang.distribution.port_range.minimum = 6000
erlang.distribution.port_range.maximum = 7999
Set the mountpoint on the protocol level or on the listener level
- listener.tcp.mountpoint
- listener.ssl.mountpoint
- listener.ws.mountpoint
- listener.wss.mountpoint
listener level:
- listener.tcp.my_tcp_listener.mountpoint
- listener.ssl.my_ssl_listener.mountpoint
- listener.ws.my_ws_listener.mountpoint
- listener.wss.my_wss_listener.mountpoint

Default: off

Acceptable values:
- text
listener.mountpoint = off
The cafile is used to define the path to a file containing
the PEM encoded CA certificates that are trusted. Set the cafile
#L_MAX_ETS_TABLES  level or on the listener level:
- listener.ssl.cafile
- listener.wss.cafile
or on the listener level:
- listener.ssl.my_ssl_listener.cafile
- listener.wss.my_wss_listener.cafile

Default:

Acceptable values:
- the path to a file
listener.ssl.cafile = /etc/vernemq/cacerts.pem
Set the path to the PEM encoded server certificate
on the protocol level or on the listener level:
- listener.ssl.certfile
- listener.wss.certfile
or on the listener level:
- listener.ssl.my_ssl_listener.certfile
- listener.wss.my_wss_listener.certfile

Default:

Acceptable values:
- the path to a file
listener.ssl.certfile = /etc/vernemq/cert.pem
Set the path toERL_MAX_ETS_TABLES y file on the protocol
level or on the listener level:
- listener.ssl.keyfile
- listener.wss.keyfile
or on the listener level:
- listener.ssl.my_ssl_listener.keyfile
- listener.wss.my_wss_listener.keyfile

Default:
ERL_MAX_ETS_TABLES
Acceptable values:
- the path to a file
listener.ssl.keyfile = /etc/vernemq/key.pem
Set the list of allowed ciphers (each separated with a colon),
on the protocol level or on the listener level. Reasonable defaults
are used if nothing is specified:
- listener.ssl.ciphers
- listener.wss.ciphERL_MAX_ETS_TABLES
or on the listener level:
- listener.ssl.my_ssl_listener.ciphers
- listener.wss.my_wss_listener.ciphers

Default:

Acceptable values:
- text
listener.ssl.ciphers =
If you have 'listener.ssl.require_certificate' set to true,
you can create a certificate revocation list file to revoke access
to particular client certificates. If you have done this, use crlfile
to point to the PEM encoded revocation file. This can be done on the
protocol level or on the listener leveERL_MAX_ETS_TABLES
- listener.ssl.crlfile
- listener.wss.crlfile
or on the listener level:
- listener.ssl.my_ssl_listener.crlfile
- listener.wss.my_wss_listener.crlfile

Default:

Acceptable values:
- text
listener.ssl.crlfile =
##ERL_MAX_ETS_TABLES
Enable this option if you want to use SSL client certificates
to authenticate your clients. This can be done on the protocol level
or on the listener level.
- listener.ssl.require_certificate
- listener.wss.require_certificate
or on the listener level:
- listener.ssl.my_ssl_listener.require_certificate
- listener.wss.my_wss_listener.require_certificate

Default: off

Acceptable values:
- on or off
listener.ssl.require_certificate = off
##ERL_MAX_ETS_TABLES
Configure the TLS protocol version (tlsv1, tlsv1.1, or tlsv1.2) to be
used for either all configured SSL listeners or for a specific listener:
- listener.ssl.tls_version
- listener.wss.tls_version
or on the listener level:
- listener.ssl.my_ssl_listener.tls_version
- listener.wss.my_wss_listener.tls_version

Default: tlsv1.2

Acceptable values:
- text
listener.ssl.tls_version = tlsv1.2
If 'listener.sslERL_MAX_ETS_TABLES e' is enabled, you may enable
'listener.ssl.use_identity_as_username' to use the CN value from the client
certificate as a username. If enabled other authentication plugins are not
considered. The option can be specified either for all SSL listeners or for
a specific listener:
- listener.ssl.use_identity_as_username
- listener.wss.use_identity_as_username
or on the listener level:
- listener.ssl.my_ssl_listener.use_identity_as_username
- listener.wss.my_wss_listener.use_ERL_MAX_ETS_TABLES e

Default: off

Acceptable values:
- on or off
listener.ssl.use_identity_as_username = off
Set the path to an access control list file.

Default: /etc/vernemq/vmq.acl

Acceptable values:
- the path to a file
acl_file = /etc/vernemq/vmq.acl
set the acl reload interval in seconds, the value 0 disables the
automatic reloading of the acl file.
ERL_MAX_ETS_TABLES
Default: 10

Acceptable values:
- an integer
acl_reload_interval = 0
Set the path to a password file.

Default: /etc/vernemq/vmq.passwd

Acceptable values:
- the path to a file
password_file = /etc/vernemq/vmq.passwd
set the password reload interval in seconds, the value 0 disables the
automatic reloading of the password file.

Default: 10

Acceptable values:
- an integer
password_reload_interval = 0
Specify the address and port of the bridge to connect to. Several
bridges can configured by using different bridge names (e.g. br0). If the
connection supports SSL encryption bridge.ssl. can be used.

Default: <IP_ADDRESS>:1889

Acceptable values:
- an IP/port pair, e.g. <IP_ADDRESS>:10011
bridge.tcp.br0 = <IP_ADDRESS>:1889
Set the clean session option for the bridge. By default this is disabled,
which means that all subscriptions on the remote broker are kept in case of
the network connection dropping. If enabled, all subscriptions and messages
on the remote broker will be cleaned up if the connection drops.

Default: off

Acceptable values:
- on or off
bridge.tcp.br0.cleansession = off
Set the client id fERL_MAX_ETS_TABLES ection. If not defined, this
defaults to 'name.hostname', where name is the connection name and hostname
is the hostname of this computer.

Default: auto

Acceptable values:
- text
bridge.tcp.br0.client_id = auto
##ERL_MAX_ETS_TABLES
Set the number of seconds after which the bridge should send a ping if
no other traffic has occurred.

Default: 60

Acceptable values:
- an integer
bridge.tcp.br0.keepalive_interval = 60
Configure a username for the bridge. This is used for authentication
purposes when connecting to a broker that support MQTT v3.1 and requires a
username and/or password to connect. See also the password option.

Acceptable values:
- textERL_MAX_ETS_TABLES
bridge.tcp.br0.username = my_remote_user
Configure a password for the bridge. This is used for authentication
purposes when connecting to a broker that support MQTT v3.1 and requires a
username and/or password to connect. This option is only valid if a username
is also supplied.

Acceptable values:
- text
bridge.tcp.br0.password = my_remote_password
Set the amount of time a bridge using the automatic start type will wait
until attempting to reconnect. Defaults to 30 seconds.

Default: 10

Acceptable values:
- an integer
bridge.tcp.br0.restart_timeout = 10
If try_private is enabled, the bridge will attempt to indicate to the
remote broker that it is a bridge not an ordinary client.
Note that loop detection for bridges is not yet implemented.

Default: on

Acceptable values:
- on or off
bridge.tcp.br0.try_private = on
The cafile is used to define the path to a file containing
the PEM encoded CA certificates that are trusted.

Default:

Acceptable values:
- the path to a file
bridge.ssl.sbr0.cafile = /etc/vernemq/cacerts.pem
Define the path to a folder containing
the PEM encoded CA certificates that are trusted.

Default:

Acceptable values:
- the path to a file
bridge.ssl.sbr0.capath = /etc/vernemq/cacerts
Set the path to the PEM encoded server certificate.

Default:

Acceptable values:
- the path to a file
bridge.ssl.sbr0.certfile = /etc/vernemq/cert.pem
Set the path to the PEM encoded key file.

Default:

Acceptable values:
- the path to a file
bridge.ssl.sbr0.keyfile = /etc/vernemq/key.pem
When using certificate based TLS, the bridge will attempt to verify the
hostname provided in the remote certificate matches the host/address being
connected to. This may cause problems in testing scenarios, so this option
may be enabled to disable the hostname verification.
Setting this option to true means that a malicious third party could
potentially inpersonate your server, so it should always be disabled in
production environments.

Default: off

Acceptable values:
- on or off
bridge.ssl.sbr0.insecure = off
Configure the TLS protocol version (tlsv1, tlsv1.1, or tlsv1.2) to be
used for this bridge.

Default: tlsv1.2

Acceptable values:
- text
bridge.ssl.sbr0.tls_version = tlsv1.2
Pre-shared-key encryption provides an alternative to certificate based
encryption. This option specifies the identity used.

Default:

Acceptable values:
- text
bridge.ssl.sbr0.identity =
Pre-shared-key encryption provides an alternative to certificate based
encryption. This option specifies the shared secret used in hexadecimal
format without leading '0x'.

Default:

Acceptable values:
- text
bridge.ssl.sbr0.psk =
The integer number of seconds between updates of the $SYS subscription hierarchy,
which provides status information about the broker. If unset, defaults to 10 seconds.
Set to 0 to disable publishing the $SYS hierarchy completely.

Default: 10

Acceptable values:
- an integer
sys_interval = 10
the interval we push metrics to the graphite server in ms

Default: 15000

Acceptable values:
- an integer
graphite.interval = 15000
the tcp port of the graphite server

Default: 2003

Acceptable values:
- an integer
graphite.port = 2003
the graphite server host name

Default: localhost

Acceptable values:
- text
graphite.host = localhost
set the prefix that is applied to all metrics reported to graphite

Default:

Acceptable values:
- text
graphite.prefix = my-prefix
the graphite server api key, e.g. used by hostedgraphite.com

Default:

Acceptable values:
- text
graphite.api_key = My-Api-Key
Where to emit the default log messages (typically at 'info'
severity):
off: disabled
file: the file specified by log.console.file
console: to standard output (seen when using vmq attach-direct)
both: log.console.file and standard out.

Default: file

Acceptable values:
- one of: off, file, console, both
log.console = both
The severity level of the console log, default is 'info'.

Default: info

Acceptable values:
- one of: debug, info, warning, error
log.console.level = info
When 'log.console' is set to 'file' or 'both', the file where
console messages will be logged.

Default: /var/log/vernemq/console.log

Acceptable values:
- the path to a file
log.console.file = /var/log/vernemq/console.log
The file where error messages will be logged.

Default: /var/log/vernemq/error.log

Acceptable values:
- the path to a file
log.error.file = /var/log/vernemq/error.log
When set to 'on', enables log output to syslog.

Default: off

Acceptable values:
- on or off
log.syslog = off
Whether to enable the crash log.

Default: on

Acceptable values:
- on or off
log.crash = on
If the crash log is enabled, the file where its messages will
be written.

Default: /var/log/vernemq/crash.log

Acceptable values:
- the path to a file
log.crash.file = /var/log/vernemq/crash.log
Maximum size in bytes of individual messages in the crash log

Default: 64KB

Acceptable values:
- a byte size with units, e.g. 10GB
log.crash.maximum_message_size = 64KB
Maximum size of the crash log in bytes, before it is rotated

Default: 10MB

Acceptable values:
- a byte size with units, e.g. 10GB
log.crash.size = 10MB
The schedule on which to rotate the crash log. For more
information see:
https://github.com/basho/lager/blob/master/README.md#internal-log-rotation

Default: $D0

Acceptable values:
- text
log.crash.rotation = $D0
The number of rotated crash logs to keep. When set to
'current', only the current open log file is kept.

Default: 5

Acceptable values:
- an integer
- the text "current"
log.crash.rotation.keep = 5
This parameter defines the percentage of total server memory
to assign to LevelDB. LevelDB will dynamically adjust its internal
cache sizes to stay within this size.  The memory size can
alternately be assigned as a byte count via leveldb.maximum_memory
instead.

Default: 70

Acceptable values:
- an integer
leveldb.maximum_memory.percent = 70
Name of the Erlang node

Default<EMAIL_ADDRESS>
Acceptable values:
- text
nodename =<EMAIL_ADDRESS>Cookie for distributed node communication.  All nodes in the
same cluster should use the same cookie or they will not be able to
communicate.

Default: vmq

Acceptable values:
- text
distributed_cookie = vmq_anjubao
Sets the number of threads in async thread pool, valid range
is 0-1024. If thread support is available, the default is 64.
More information at: http://erlang.org/doc/man/erl.html

Default: 64

Acceptable values:
- an integer
erlang.async_threads = 48
The number of concurrent ports/sockets
Valid range is 1024-134217727

Default: 262144

Acceptable values:
- an integer
erlang.max_ports = 262144
erlang.max_ets_tables=50000
erlang.fullsweep_after= 1000
Set scheduler forced wakeup interval. All run queues will be
scanned each Interval milliseconds. While there are sleeping
schedulers in the system, one scheduler will be woken for each
non-empty run queue found. An Interval of zero disables this
feature, which also is the default.
This feature is a workaround for lengthy executing native code, and
native code that do not bump reductions properly.
More information: http://www.erlang.org/doc/man/erl.html#+sfwi

Acceptable values:
- an integer
erlang.schedulers.force_wakeup_interval = 500
Enable or disable scheduler compaction of load. By default
scheduler compaction of load is enabled. When enabled, load
balancing will strive for a load distribution which causes as many
scheduler threads as possible to be fully loaded (i.e., not run out
of work). This is accomplished by migrating load (e.g. runnable
processes) into a smaller set of schedulers when schedulers
frequently run out of work. When disabled, the frequency with which
schedulers run out of work will not be taken into account by the
load balancing logic.
More information: http://www.erlang.org/doc/man/erl.html#+scl

Acceptable values:
- one of: true, false
erlang.schedulers.compaction_of_load = false
Enable or disable scheduler utilization balancing of load. By
default scheduler utilization balancing is disabled and instead
scheduler compaction of load is enabled which will strive for a
load distribution which causes as many scheduler threads as
possible to be fully loaded (i.e., not run out of work). When
scheduler utilization balancing is enabled the system will instead
try to balance scheduler utilization between schedulers. That is,
strive for equal scheduler utilization on all schedulers.
More information: http://www.erlang.org/doc/man/erl.html#+sub

Acceptable values:
- one of: true, false
erlang.schedulers.utilization_balancing = true

Hi, what is the testing tool and scenario you use?

If this is still an issue, please feel free to reopen it.


🔧 could not build Objective-C module 'vision_camera_code_scanner'

How were you trying to build the app?
yarn install
cd ios
pod install
Full build logs
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "vision-camera-code-scanner-umbrella.h"
        ^
ios/Pods/Headers/Public/vision_camera_code_scanner/vision-camera-code-scanner-umbrella.h:13:9: note: in file included from ios/Pods/Headers/Public/vision_camera_code_scanner/vision-camera-code-scanner-umbrella.h:13:
#import "VisionCameraCodeScanner-Bridging-Header.h"
        ^
node_modules/vision-camera-code-scanner/ios/VisionCameraCodeScanner-Bridging-Header.h:4:9: error: 'VisionCamera/FrameProcessorPlugin.h' file not found
#import <VisionCamera/FrameProcessorPlugin.h>
        ^
<unknown>:0: error: could not build Objective-C module 'vision_camera_code_scanner'

Showing All Messages
/ios/Pods/<module-includes>:1:9: In file included from <module-includes>:1:

/ios/Pods/Headers/Public/vision_camera_code_scanner/vision-camera-code-scanner-umbrella.h:13:9: In file included from /ios/Pods/Headers/Public/vision_camera_code_scanner/vision-camera-code-scanner-umbrella.h:13:

/node_modules/vision-camera-code-scanner/ios/VisionCameraCodeScanner-Bridging-Header.h:4:9: 'VisionCamera/FrameProcessorPlugin.h' file not found

Could not build Objective-C module 'vision_camera_code_scanner'

Project dependencies
"dependencies": {
    "react-native": "0.75.2",
    "react-native-vision-camera": "^4.5.3",
    "vision-camera-code-scanner": "^0.2.0"
  },

VisionCamera Version
4.5.3
Target platforms
iOS
Operating system
MacOS
Can you build the VisionCamera Example app?
I didn't try (⚠ your issue might get ignored & closed if you don't try this)
Additional information

[X] I am using Expo
[ ] I have enabled Frame Processors (react-native-worklets-core)
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar issues in this repository and found none.

This is not a VisionCamera issue. Please stop creating all issues from community plugins here. Create that issue in the community plugin you are using. It even says so in the name.


List of things not working

Responsive Design (literally nothing works properly for mobile devices) if you want to use the site you NEED to be on PC; I plan on working on this soon
Hyper links to each servant's profile that'll show their ascension pictures along with their skill information

got a hyper link to work
Bottom of home page isnt showing properly
bottom of box on servant page isnt showing properly

bottom of the homepage and box on the servant page someitmes wont show properly if you zoom in on the page too much. If the page is at 100% zoom it fits as intented but increasing to 110% now clips the box below the viewable screen which isnt what I want

Zooming out does not work as you'd think it works

going to close this cause there's a alot of unorganized issues for this


Bug: File content being deleted and replaced by "none" when there is no import statement

The problem happens when a file doesn't have an import statement and it tries to do something anyway and end up deleting all the file content.
Steps to reproduce the behavior:

Create a typescript file without an import statment;

Run import-conductor on this file:

File content after:

OS: Windows 11

import conductor version: 2.4.0

As for the why i'm trying to run it on a file without imports? cuz it runs on the lint-staged hook with husky.

Faced the same issue

I have the same issue


Stale Meshtastic nodes not filtered out

The Meshtastic devices keep a persistent list of known nodes, for many days after a node was last seen (even across node reboots - I don't actually know an easy way to take a node off that list).
The firmware does, however, provide a lastSeen timestamp in the NodeInfo object to enable a user to determine a node’s freshness and handle it accordingly.
Currently the atak-forwarder plugin appears to pick up this known nodes list on a wholesale basis and without accounting for freshness. As a result, nodes that have been stale for several days can be displayed side-by-side with online nodes, with no ability to discriminate between these cases, causing information pollution.
Suggestion
Define a freshness limit in software (somewhere between 10-30 minutes) and filter out stale nodes on this basis.

This should fix it: https://github.com/paulmandal/atak-forwarder/pull/69
Sorry I haven't been around much this week, super busy at work. I am going to be working on Play Store assets and getting everything else ready for signing by the TAK Product Center in the next couple of days.

Thanks for fixing, and don't worry about the delays. I hope all is good at work.
I think the fix was successful in filtering the stale node noise, however now I had one case of an active standalone node that didn't get picked up at all! I didn't get a chance to check the source (will do later today), but: are you still querying the node list from the device at all, or are you relying 100% on transition events?
Asking because this may explain my observation - a pre-existent, unmoving node wouldn't generate transition events and would therefore remain completely undetected by the plugin - which is probably not what we want.

Yes, issue confirmed. Static non-TAK nodes are not being picked up at the moment.

This could be just an unfortunate coincidence with a Meshtastic-device issue occurring around the same time.
See https://github.com/meshtastic/Meshtastic-device/issues/506
For now, please disregard my previous comment.

closing - not a real issue

closing - not a real issue


Add main.py to simplify pipeline

main.py would be able to replace much of yaml pipeline with the benefit of a clear launch point.
Using a single main.py may also allow for multi-processing/threading to speed up scrapers.
This suggestion also implies moving all other python scripts to a lower level directory to be called by main.py.

This is a good idea.
Ideally we should have a config to individually switch off different scraper types as this has helped in the past when testing and troubleshooting issues. For example, this is pretty easy to do in the pipeline by just commenting out the relevant line of yaml that calls the python script.
If we were to move to a single entry script I'd also like to see some better error handling/retry logic on the individual scripts, particularly around dealing with web requests that may time out or 404. Although I appreciate it may be worth opening a separate issue to tackle that...

Proposed structure for python files (work in progress):

tests/

pytest tests - tbd

scripts/

main.py
sources.csv
tools/

alive.py
tags.py
export2jkan.py
merge_data,py

scrapers/

processor.py

(needs expanded to include data type handlers / date formatting handler/ licence handling/ etc. should be used for all scrapers web or api)

web-based/

web-parser.py (new - get_headers() replacement + other common web-scraping function functions)
aberdeen, moray, east aryshire, nls... .py

api-based/

arcgis.py
dcat.py
usmart.py

After reviewing PR #119 I am in full support of the above

One thing to also keep in mind is that the CKAN scraper is still C# code so we will need to build a python script for that

One thing to also keep in mind is that the CKAN scraper is still C# code so we will need to build a python script for that

I think that should wait until I've got some of the initial refactoring/restructuring done of the existing ones first.

I've started restructuring in my forked branch https://github.com/gavbarnett/the_od_bods/tree/BR-Restructuring-api-scrapers but I'm holding off even a draft PR until the testing fork gets merged as there are going to be a few minor conflicts to resolve - and the test folder will need moved into the new structure.
I'd suggest we do the restructuring in small steps until we're confident in a new structure. For example my branch is only moving the API related scrapers.


Problem in reading data

Basic information

My operating system and version: Wind
My MZmine version: MZmine 3.9.0

Hi,
I have just started working with MZmin according to your YouTube videos, but there is a problem that I cannot solve. I am sending a screenshot of the error in the attachment. it's about the fact that I can upload data, I can see the chromatograph and the masses, but for some time the window pops up at me. Could you please advise me?

Hi Alena,
Looks like the mzML data you are using dies not have its scans sorted by retention time.
What instrument did you use?
How did you convert the data?
Can you provide this mzML file for testing?
Ansgar

Hi,
I normally used  HILIC/QTOF as a instrument and as for the convert a used
MSConvertGUI. I am from the Michal Holčapek group and few people of this
group worked with old version, but they still do not know.
Best,
Alča
st 3. 1. 2024 v 13:52 odesílatel Ansgar Korf @.***>
napsal:

Hi Alena,
Looks like the mzML data you are using dies not have its scans sorted by
retention time.
What instrument did you use?
How did you convert the data?
Can you provide this mzML file for testing?
Ansgar
—
Reply to this email directly, view it on GitHub
https://github.com/mzmine/mzmine3/issues/1571#issuecomment-1875326913,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFCXIPDV5CXB6V2ZWW5NGHTYMVIBBAVCNFSM6AAAAABBLME732VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZVGMZDMOJRGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hi,
I need a little bit more info on the QTOF, vendor and instrument specification would be good. If you could share the mzML file I can have a look myself.
kind regards,
Ansgar

Where can I share you the file?
A.
st 3. 1. 2024 v 14:07 odesílatel Ansgar Korf @.***>
napsal:

Hi,
I need a little bit more info on the QTOF, vendor and instrument
specification would be good. If you could share the mzML file I can have a
look myself.
kind regards,
Ansgar
—
Reply to this email directly, view it on GitHub
https://github.com/mzmine/mzmine3/issues/1571#issuecomment-1875348310,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFCXIPDMRVJSKJ242YDMVADYMVJ2VAVCNFSM6AAAAABBLME732VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZVGM2DQMZRGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

You can use any data sharing tool you like, e.g. google drive.

Do you see it on google drive?
A.
st 3. 1. 2024 v 14:26 odesílatel Ansgar Korf @.***>
napsal:

You can use any data sharing tool you like, e.g. google drive.
—
Reply to this email directly, view it on GitHub
https://github.com/mzmine/mzmine3/issues/1571#issuecomment-1875370576,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFCXIPE5XRHDQ6U35NUCFVTYMVMAZAVCNFSM6AAAAABBLME732VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZVGM3TANJXGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Sorry, I dont understand. Did you share a google drive link somewhere? You can share the link here or send it to my email:
<EMAIL_ADDRESS>

I send it.
A
st 3. 1. 2024 v 14:49 odesílatel Ansgar Korf @.***>
napsal:

Sorry, I dont understand. Did you share a google drive link somewhere? You
can share the link here or send it to my email:
@.***
—
Reply to this email directly, view it on GitHub
https://github.com/mzmine/mzmine3/issues/1571#issuecomment-1875399977,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFCXIPHK766X3XDGG2JRFO3YMVOX7AVCNFSM6AAAAABBLME732VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZVGM4TSOJXG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

yes, I got it and will have a look at the file

I was able to reproduce the issue and I found some strange scan numbering in the raw file. See screenshot:

Since you didnt clarify the MS vendor yet, I make a wild guess and assume you are using a Waters QTOF. If this is the case please check out our documentation for raw data conversion:
https://mzmine.github.io/mzmine_documentation/data_conversion.html
Waters has recently released a tool to convert into mzML:
https://microapps.on-demand.waters.com/home/showmarkdown/data-as-a-product
I hope this helps.

Dear Alena,
did you have more success with the suggested converter?
kind regards,
Ansgar

Hi,
I apologize for my delayed response. Honestly, I didn't try the converter
as we found an alternative solution for our identification needs. However,
it's likely that we will require MZmine in the future. I want to express my
gratitude for your time, and perhaps, I may reach out to you again in the
future. Following a discussion with Professor Holčapek, I have enrolled in
your April workshop.
Best regards,
Alena
pá 5. 1. 2024 v 6:56 odesílatel Ansgar Korf @.***>
napsal:

Dear Alena,
did you have more success with the suggested converter?
kind regards,
Ansgar
—
Reply to this email directly, view it on GitHub
https://github.com/mzmine/mzmine3/issues/1571#issuecomment-1878165839,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFCXIPFV3OAYVP3ZJC3XBB3YM6IZNAVCNFSM6AAAAABBLME732VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZYGE3DKOBTHE
.
You are receiving this because you authored the thread.Message ID:
@.***>


Keep getting corrupted modlist

I've re-downloaded the modlist like 6 times but every time I get this error. Any workarounds or alternative place to download the .wabbajack file?

Never mind, apparently wabbajack doesn't update itself. I was on v2.4.something, works fine with new version.


[Icon Request] C# / F#

These are fab, thanks so much for doing them.
Are you planning on doing any other languages like

C#

Logo Idea

F#

I'll get these added on Monday! Thanks for supplying them!

@AlexHedley Draft icons below. If you're happy with them, then i'll submit a PR to add them to the repro
Icon design checklist:
ICON NAME GOEs HERE

[x] Create icon in Figma

[x] Export SVG & PNG

[ ] Publish to GitHub

[ ] Update Readme

Draft

These look fab, thanks for sorting them so quickly!


toJson() Dates are incorrect for DateTime type, only accurate to the minute, not the second

The results when you call a toJson() with a SQL DateTime type results in something like:
"time_":"2014-07-18T20:46Z",
...
Which only shows accuracy up to the nearest minute. The real MySql datetime type is accurate to the second.
This is causing me a lot of problems with my project, because I need the results of toJson to be accurate down to seconds.

@tchoulihan, please see comments here: https://github.com/ericbn/activejdbc/commit/4567ad24679348274c3f1f007cce6a8e25d56b56#diff-bb5feb91bffd87864bc8513ff1e5d12bR45
This might affect your project once you update to latest snapshot


Fix api schema mixup in revocation routes

Fixes https://github.com/hyperledger/aries-cloudagent-python/issues/2901.
I somehow mixed up the schema naming between anoncreds revocation and existing revocation modules in a couple places. Shouldn't cause problems but still needs to be fixed.
Also a couple schemas existed in anoncreds that weren't used (copy and paste error)
Note:
This does remind me of something. The clear pending revocations method doesn't exist in the anoncreds implementation currently. Not sure how important that is and if it should be implemented for the upcoming 1.0.0 release ?

Hmm. Got 1 fail aries_cloudagent.anoncreds.revocation.AnonCredsRevocationError: Revocation registry not found. Pretty sure this has happened before when the test von network got out of sync. I did pass before main got merged in.
Going to run it again. This error could be handled better. Shouldn't be a 500.


公开的端口不想谁都可以访问怎么设置？

[server.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" # Token that is used to authenticate the client for the service. Change to a arbitrary value.
bind_addr = "<IP_ADDRESS>:5202" # 5202   这个不想谁都可以访问，现在我用其他机器访问外网ip:5202就连上了

Use your system's iptables/firewall to do that, rathole doesn't care about these kind of things.


How to remvoe local music?

Some time I want to remvoe songs to free some space.
How can I do that?

If you're on Linux, local music's cached in ~/.cache/ytermusic/downloads/

I'm in windows

in the %appdata% or %applocal% folder


add The First Descendant

resolves #1397

We have another game that uses Nexon I believe, please make sure to use the same Anti-Cheat name for consistency

We have another game that uses Nexon I believe, please make sure to use the same Anti-Cheat name for consistency

There's 2 other entries and they also use Nexon Game Seucirty.
    {
        "url": "https://maplestory.nexon.net",
        "name": "MapleStory",
        "logo": "",
        "native": false,
        "status": "Broken",
        "reference": "",
        "anticheats": [
            "Nexon Game Security"
        ],
        "notes": [],
        "updates": [],
        "storeIds": {
            "steam": "216150"
        },
        "slug": "maplestory"
    },
    {
        "url": "https://vindictus.nexon.net/",
        "name": "Vindictus",
        "logo": "",
        "native": false,
        "status": "Broken",
        "reference": "",
        "anticheats": [
            "Nexon Game Security"
        ],
        "notes": [],
        "updates": [],
        "storeIds": {
            "steam": "212160"
        },
        "slug": "vindictus"
    },

We have another game that uses Nexon I believe, please make sure to use the same Anti-Cheat name for consistency

There's 2 other entries and they also use Nexon Game Security.
    {
        "url": "https://maplestory.nexon.net",
        "name": "MapleStory",
        "logo": "",
        "native": false,
        "status": "Broken",
        "reference": "",
        "anticheats": [
            "Nexon Game Security"
        ],
        "notes": [],
        "updates": [],
        "storeIds": {
            "steam": "216150"
        },
        "slug": "maplestory"
    },
    {
        "url": "https://vindictus.nexon.net/",
        "name": "Vindictus",
        "logo": "",
        "native": false,
        "status": "Broken",
        "reference": "",
        "anticheats": [
            "Nexon Game Security"
        ],
        "notes": [],
        "updates": [],
        "storeIds": {
            "steam": "212160"
        },
        "slug": "vindictus"
    },

Ah excellent, sorry I thought we had it as just Nexon - my bad.