Crash on API 27

The library crashes on API 27 (Android 8.1) because of the launched activity requesting orientation with a translucent theme, which is not allowed now.
Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
    at android.app.Activity.onCreate(Activity.java:987)
    at android.support.v4.app.SupportActivity.onCreate(SupportActivity.java:66)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:297)
    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
    at net.alhazmy13.mediapicker.Video.VideoActivity.onCreate(VideoActivity.java:54)

I think he should remove "screenOrientation" in the AndroidManifest.

Hi @ANPez
Can you please confirm if it fixed wit last beta release 2.4.1-beta or not?
Thanks


Task 2.1.1: Break project into activities

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

done. might need further work on new activities


Fetch in component causes hydration to fail if page also has async fetch

Versions

nuxt: 2.15.8
node: v16.13.0

Reproduction
I can not properly reproduce this in codesandbox.io, so here's a link to a Github repo: https://github.com/Grovespaz/nuxt-fetch-hydration-issue.
These are the only changed files:

pages/index.vue

<template>
  <Tutorial />
</template>

<script lang="ts">
import Vue from 'vue'

export default Vue.extend({
  fetchKey: 'root',
  async fetch() {

  },
})
</script>

components/Tutorial.vue

<template>
  <div v-if="content">
    {{content.pageTitle}}
  </div>
</template>

<script lang="ts">
import Vue from 'vue'

export default Vue.extend({
  fetchKey: 'Home',
  async fetch() {
    await new Promise(resolve => setTimeout(resolve, 1000));
    this.page = {
      umbraco: {
        content: {
          byUrl: {
            pageTitle: 'Mocked',
          }
        }
      }
    }
  },
  data() {
      return {
        page: {} as any
      }
  },
  computed: {
    content(): any {
      return this.page?.umbraco?.content?.byUrl
    }
  },
})
</script>

Seems to be related to #8466, #8150, #9167
Steps to reproduce
Create a nuxt application (using Typescript)
Add an empty async fetch function to the default page.
Add an async fetch function to the Tutorial component that sets some state on the component's data.
Start the dev-server and navigate to the new application in a browser.
(Adding fetchKey options to page and component does not fix the issue.)
What is Expected?
The component displays as normal
What is actually happening?
The component displays for a second (the SSR version), then the client-side fetch seems to complete and the display goes blank and the console displays the following error(s):
[Vue warn]: The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing <tbody>. Bailing hydration and performing full client-side render.

The issue is that the root component of your page is the component with fetch. The way fetch is implemented in Nuxt 2, we store a 'key' directly in the HTML on the root element of any component with fetch enabled, to match up the payload data with the component. But in this case both the page (index.vue) and the component (Tutorial.vue) have the same element. That's why the mismatch occurs. To work around it, just add a wrapper element.

I see, that worked. Thanks for investigating and providing feedback. Is this something that's worth documenting or catching? It was very confusing to me as I was setting up a proof-of-concept project to confirm the SSR approach worked before adding the actual markup and design. If I hadn't reported this issue, I would've concluded that Nuxt SSR is just unstable as opposed to knowing this is a very edge-case scenario with a perfectly good workaround.


Expose a CursorPosition resource

What problem does this solve or what need does it fill?
Knowing where your mouse is is useful and should be ergonomic.
What solution would you like?
Store and update a CursorPosition resource, which reads from the Window resource to store an Option<Vec2> representing the physical position of the mouse (or other cursor).
What alternative(s) have you considered?
Compute this manually every time it's needed.
Additional context
This will be impacted by #4530, which will move where this data is stored.
Better APIs to convert between world space and screen space coordinates will make this functionality even more useful; we should add methods on MousePosition to do this once those are established.

We probably want to also record which window the mouse position is associated with, and iterate through all of the windows to check if it's on any of the open windows.

Checking the changelog, this is slightly breaking:

Rename get_each_mut to get_many_mut and align API with the stdlib

right now, such a resource would be equivalent to the resources Windows and getting windows.primary().cursor_position(). I'm not sure it's worth it before #4530

The ergonomics and discoverability of that solution are really poor though.
Every time i need to do these or to teach someone how to do this I need to link to the Cheatbook page.
This solution would also be robust to those changes, which would provide a nicer migration path.

Hi! I was just wondering if this issue has been resolved or not?

Has not been resolved, but Francois's workaround still works :) I'd be happy to review a PR that tackled this before #4530, as that work is shockingly complex.

There was a first attempt in #5079 and people decided to wait for #4530 in it

Ok, so the best option would probably be to wait for #4530 to be resolved. I have never contributed before, but If there is anything that I could possibly try and improve upon then I would like to give it a try.

https://github.com/bevyengine/bevy/issues/4530 has been closed by https://github.com/bevyengine/bevy/pull/5589 . Can this issue also be closed now?

I don't think this can be closed: instead, it's no longer blocked.

right now, such a resource would be equivalent to the resources Windows and getting windows.primary().cursor_position(). I'm not sure it's worth it before #4530

I'm currently implementing "ExtractResource" for a "MousePosition" struct, but given that the "Windows" resource is no longer a resource, I cannot put "Windows" as the associated type of the ExtractResource trait anymore which kind of hurts my feelings.
Thus, a cursorposition resource would be useful, maybe just a really simple and trivial plugin that you can add to the app like "CursorPositionResourcePlugin", as ugly as that might sound :,)


safe_decode_json doesn't catch JSONDecodeError

I believe that's another error that could be raised there.

[ ] Check that JSONDecodeError can be thrown
[ ] Catch it

You can throw a JSONDecodeError here, but the exception is new in Python 3.5.
Here's a minimal example:
import json

json_decoder = json.JSONDecoder()
json_decoder.decode(r'not really json')

When run under Python 2.7:
$ python2.7 safejson.py
Traceback (most recent call last):
  File "safejson.py", line 4, in <module>
    json_decoder.decode(r'not really json')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

and then Python 3.5:
$ python3.5 safejson.py
Traceback (most recent call last):
  File "safejson.py", line 4, in <module>
    json_decoder.decode(r'not really json')
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Earlier versions of Python 3 will also throw a ValueError.

Note additionally that because the exception doesn’t exist in Python 3.4 or earlier, trying to catch it will cause another error.
Example:
# saferjson.py
import json

json_decoder = json.JSONDecoder()
try:
    json_decoder.decode('not really json')
except json.JSONDecodeError:
    print("Something went wrong!")

On Python 2.7:
$ python2.7 caughtjson.py
Traceback (most recent call last):
  File "caughtjson.py", line 6, in <module>
    except json.JSONDecodeError:
AttributeError: 'module' object has no attribute 'JSONDecodeError'

and Python 3.5:
$ python3.5 caughtjson.py
Something went wrong!

(Earlier comments scrubbed because they were only half-thought out.)

You can raise a JSONDecodeError if you pass bad JSON into JSONDecoder.decode(), but the exception is new in Python 3.5.

Since JSONDecodeError subclasses from ValueError, it can be caught with an except ValueError statement. This means that safe_json_decode is already catching the error.

Minimal example:
# unsafejson.py
import json

json_decoder = json.JSONDecoder()
try:
    json_decoder.decode('not really json')
except ValueError:
    print("Something went wrong!")

And run in different versions of Python:
$ python2.7 unsafejson.py
Something went wrong!

$ python3.5 unsafejson.py
Something went wrong!

So I don’t think we need to do anything here.

Thanks for the analysis.  Closing.


fix(button): missing hover

And also updated stylelint to 7.0.3.

[Current coverage][cc-pull] is 100%

Merging [#145][cc-pull] into [master][cc-base-branch] will not change coverage

@@           master   #145   diff @@
====================================
  Files          19     19
  Lines         317    314     -3
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
- Hits          317    314     -3
  Misses          0      0
  Partials        0      0

[][cc-pull]

Powered by Codecov. Last updated by [c103ab4...210c607][cc-compare]
[cc-base-branch]: https://codecov.io/gh/leroy-merlin-br/garden/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/leroy-merlin-br/garden/compare/c103ab4073249c55255820d996e8e6c93260f8b6...210c60723b201d6bdde6e3a5a92d66a0c48768c0?src=pr
[cc-pull]: https://codecov.io/gh/leroy-merlin-br/garden/pull/145?src=pr


userconfig => config

Pulling in fix from PR: https://github.com/autoclouddev/semantic-release-pnpm/
Temporary fork to unblock until maintainer updates main project

oops meant to make this on my own 🤦♀


Python is not enabled in www.vim.org console distribution for Windows

Downloading vim from http://www.vim.org, the console 'vim.exe' program is not compiled with python support. The Win32 program is, oddly enough. I was able to work around this by installing the Cream build, but the 'vim' program that is bundled with the msysget Git distribution also does not have python support.
As such, I recommend bailing in the plugin script if `has('python') is false. This works, albeit silently. Perhaps another solution (and I can submit a PR depending on which you prefer) is to instead not load the python scripts and have each exposed function do a check - raising an error so that the user at least knows why their expected results aren't there.

A PR would be most welome. I don't use this plugin any more.

gVim for Windows now ships with +python/dyn and +python3/dyn


70 Create a GUI entrypoint

Fixes 70
So far only 2d annotator is implemented.

@constantinpape could you check this first version for the 2d annotator?
Once approved I can add the other workflows.

Hi @paulhfu,
the GUI itself looks good, but I have a few other comments and change requests:
Annotator does not start due to import error
For me the 2d annotator does not start because of a vigra import error:
Traceback (most recent call last):
  File "/home/pape/Work/my_projects/micro-sam/micro_sam/gui_entry.py", line 277, in <module>
    from micro_sam.sam_annotator import annotator_2d
  File "/home/pape/Work/my_projects/micro-sam/micro_sam/sam_annotator/__init__.py", line 1, in <module>
    from .annotator_2d import annotator_2d
  File "/home/pape/Work/my_projects/micro-sam/micro_sam/sam_annotator/annotator_2d.py", line 9, in <module>
    from .. import util
  File "/home/pape/Work/my_projects/micro-sam/micro_sam/util.py", line 9, in <module>
    import vigra
  File "/home/pape/software/conda/miniconda3/envs/sam/lib/python3.10/site-packages/vigra/__init__.py", line 118, in <module>
    import vigra.analysis as analysis
ImportError: /lib/x86_64-linux-gnu/libtinfo.so.6: version `NCURSES6_TINFO_6.2.20211010' not found (required by /home/pape/software/conda/miniconda3/envs/sam/lib/python3.10/site-packages/vigra/../../../././libncurses.so.6)
free(): invalid pointer
Aborted (core dumped)

I think this can be avoided by refactoring the GUI as follows:

Move the file gui_entry.py to sam_annotator/annotator.py (the filename itself ofc doesn't matter, but for consistency I'd like to call it annotator).
Use from .sam_annotator_2d import ... instead of the absolute import
Instead of using __main__ as an entrypoint write a main function that serves as entrypoint and expose it via CLI in the setup.py. See the examples for the other entrypoints here: https://github.com/computational-cell-analytics/micro-sam/blob/master/setup.py#L14-L21

Warnings about stylefiles
Also, I get the following warnings when starting the GUI:
WARNING: Cannot open file '/home/pape/Work/my_projects/micro-sam/micro_sam/theme_dark:/drop_down_50.svg', because: No such file or directory
WARNING: Cannot open file '/home/pape/Work/my_projects/micro-sam/micro_sam/theme_dark:/drop_down_50.svg', because: No such file or directory

Linter
Finally: my linter is not so happy when looking at your file ;). It would be great if you could get a PEP8 compatible linter set-up and run it on your files. For referene, I am using flake8.
(This is not so high priority for the next changes, it's fine to do is when we finalize this PR.)

Hi @constantinpape, next time I will clean the code before comitting.
I will also check the source of those warnings. I cannot see them on my system. Is the napari dark theme working for you?
There are some issues with moving the file. I had a hard time separating the magicgui widgets from my QT event loop.
My guess is, that the magicgui widgets are constructed when then decorators are executed, which seems to be at import time.
If the event loop is then startet, the QWidgets will be registered and deleted when the event loop is destructed.
This leads to errors when we try to dock the widgets in napari.
If I put the file into the sam_annotator module, importing it triggers the magicgui decorators which have dependecies to init.py.
I will investigate a bit more, maybe there is a simple solution.

next time I will clean the code before comitting.

Thanks!

There are some issues with moving the file. I had a hard time separating the magicgui widgets from my QT event loop.
My guess is, that the magicgui widgets are constructed when then decorators are executed, which seems to be at import time.
If the event loop is then startet, the QWidgets will be registered and deleted when the event loop is destructed.
This leads to errors when we try to dock the widgets in napari.

Ok. A possible solution would maybe be to do these GUIs in magicgui as well. (It can be used standalone and does not depend on napari).

I will also check the source of those warnings. I cannot see them on my system. Is the napari dark theme working for you?

I think that the dark theme is working. Anyways, the warnings are not so important for now; it's more important to get the GUI itself working first ;) .

Ok. A possible solution would maybe be to do these GUIs in magicgui as well. (It can be used standalone and does not depend on napari).

I tried also a magicgui version and there the examples from the website where just showing black windows without event loop.
I had to start the event loop manually for them to work. Which brings us back to the original issue.
Are the examples working for you? Maybe it is my system, I am getting this
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
warnings. Maybe that is the issue.

Are the examples working for you?

Can you point me to which example you mean exactly?

Thanks for clarifying, I will check it tomorrow morning.

It's not working for me either, see https://github.com/pyapp-kit/magicgui/issues/566 .

Thanks for the clarification here as well @tlambert03 !

Thanks a lot @tlambert03. It is working now.
Using magicgui it would look kind of like this:

Maybe I could add some more refinements. I could not center-align the header.
Would this be ok?

Thanks @paulhfu! This looks ok for now. Let's go ahead with it and see if the whole mechanism works now.
We can look into improving the GUI look a bit later.

Hi @constantinpape,
I made the whole gui with magicgui now. This is not ready to be reviewed or functionally tested.
I will add refinements tomorrow. But if you want to have a look at the structure, please go ahead.
What version of flake8 are you using and do you have a config file for it? I am getting a lot of errors in all files. Mostly "line too long" but also others. I am using v2023.6.0 with the default configs.

What version of flake8 are you using and do you have a config file for it? I am getting a lot of errors in all files. Mostly "line too long" but also others. I am using v2023.6.0 with the default configs.

I am using the default settings, except for --max-line-length=120 (otherwise it's set to 80, which is not quite enough for readable code.)
My env has
flake8                    4.0.1              pyhd8ed1ab_1    conda-forge

Let me know if there's any more significant warnings for you after setting the line length to 120, then I can have another look at this!

@constantinpape thank you for the config. Looks much better now.
I dont know what is evaluated as significant, there is a missing import and an indentation issue.
Here are all the warnings and errors I am seeing after your setting:
[{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E302",
	"severity": 8,
	"message": "expected 2 blank lines, found 1",
	"source": "Flake8",
	"startLineNumber": 319,
	"startColumn": 1,
	"endLineNumber": 319,
	"endColumn": 1
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E501",
	"severity": 8,
	"message": "line too long (125 > 120 characters)",
	"source": "Flake8",
	"startLineNumber": 320,
	"startColumn": 121,
	"endLineNumber": 320,
	"endColumn": 121
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E203",
	"severity": 8,
	"message": "whitespace before ','",
	"source": "Flake8",
	"startLineNumber": 336,
	"startColumn": 43,
	"endLineNumber": 336,
	"endColumn": 43
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E203",
	"severity": 8,
	"message": "whitespace before ','",
	"source": "Flake8",
	"startLineNumber": 337,
	"startColumn": 54,
	"endLineNumber": 337,
	"endColumn": 54
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E203",
	"severity": 8,
	"message": "whitespace before ','",
	"source": "Flake8",
	"startLineNumber": 338,
	"startColumn": 58,
	"endLineNumber": 338,
	"endColumn": 58
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E231",
	"severity": 8,
	"message": "missing whitespace after ','",
	"source": "Flake8",
	"startLineNumber": 338,
	"startColumn": 59,
	"endLineNumber": 338,
	"endColumn": 59
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E203",
	"severity": 8,
	"message": "whitespace before ','",
	"source": "Flake8",
	"startLineNumber": 339,
	"startColumn": 52,
	"endLineNumber": 339,
	"endColumn": 52
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E231",
	"severity": 8,
	"message": "missing whitespace after ','",
	"source": "Flake8",
	"startLineNumber": 339,
	"startColumn": 53,
	"endLineNumber": 339,
	"endColumn": 53
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E501",
	"severity": 8,
	"message": "line too long (134 > 120 characters)",
	"source": "Flake8",
	"startLineNumber": 350,
	"startColumn": 121,
	"endLineNumber": 350,
	"endColumn": 121
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E275",
	"severity": 8,
	"message": "missing whitespace after keyword",
	"source": "Flake8",
	"startLineNumber": 360,
	"startColumn": 15,
	"endLineNumber": 360,
	"endColumn": 15
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E501",
	"severity": 8,
	"message": "line too long (145 > 120 characters)",
	"source": "Flake8",
	"startLineNumber": 362,
	"startColumn": 121,
	"endLineNumber": 362,
	"endColumn": 121
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E111",
	"severity": 8,
	"message": "indentation is not a multiple of 4",
	"source": "Flake8",
	"startLineNumber": 398,
	"startColumn": 20,
	"endLineNumber": 398,
	"endColumn": 20
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "W293",
	"severity": 4,
	"message": "blank line contains whitespace",
	"source": "Flake8",
	"startLineNumber": 325,
	"startColumn": 1,
	"endLineNumber": 325,
	"endColumn": 1
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "W291",
	"severity": 4,
	"message": "trailing whitespace",
	"source": "Flake8",
	"startLineNumber": 348,
	"startColumn": 25,
	"endLineNumber": 348,
	"endColumn": 25
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "W293",
	"severity": 4,
	"message": "blank line contains whitespace",
	"source": "Flake8",
	"startLineNumber": 387,
	"startColumn": 1,
	"endLineNumber": 387,
	"endColumn": 1
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "W293",
	"severity": 4,
	"message": "blank line contains whitespace",
	"source": "Flake8",
	"startLineNumber": 390,
	"startColumn": 1,
	"endLineNumber": 390,
	"endColumn": 1
},{
	"resource": "micro-sam/micro_sam/util.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "W291",
	"severity": 4,
	"message": "trailing whitespace",
	"source": "Flake8",
	"startLineNumber": 398,
	"startColumn": 62,
	"endLineNumber": 398,
	"endColumn": 62
}]

[{
	"resource": "micro-sam/micro_sam/sam_annotator/image_series_annotator.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "F821",
	"severity": 8,
	"message": "undefined name 'warnings'",
	"source": "Flake8",
	"startLineNumber": 131,
	"startColumn": 9,
	"endLineNumber": 131,
	"endColumn": 9
},{
	"resource": "micro-sam/micro_sam/sam_annotator/image_series_annotator.py",
	"owner": "_generated_diagnostic_collection_name_#2",
	"code": {
		"value": "reportUndefinedVariable",
		"target": {
			"$mid": 1,
			"path": "/microsoft/pyright/blob/main/docs/configuration.md",
			"scheme": "https",
			"authority": "github.com",
			"fragment": "reportUndefinedVariable"
		}
	},
	"severity": 4,
	"message": "\"warnings\" is not defined",
	"source": "Pylance",
	"startLineNumber": 131,
	"startColumn": 9,
	"endLineNumber": 131,
	"endColumn": 17
}]

[{
	"resource": "micro-sam/micro_sam/prompt_generators.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E501",
	"severity": 8,
	"message": "line too long (124 > 120 characters)",
	"source": "Flake8",
	"startLineNumber": 33,
	"startColumn": 121,
	"endLineNumber": 33,
	"endColumn": 121
},{
	"resource": "micro-sam/micro_sam/prompt_generators.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E501",
	"severity": 8,
	"message": "line too long (142 > 120 characters)",
	"source": "Flake8",
	"startLineNumber": 54,
	"startColumn": 121,
	"endLineNumber": 54,
	"endColumn": 121
},{
	"resource": "micro-sam/micro_sam/prompt_generators.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "E501",
	"severity": 8,
	"message": "line too long (142 > 120 characters)",
	"source": "Flake8",
	"startLineNumber": 84,
	"startColumn": 121,
	"endLineNumber": 84,
	"endColumn": 121
}]

[{
	"resource": "micro-sam/examples/sam_annotator_3d.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "F841",
	"severity": 8,
	"message": "local variable 'fnames' is assigned to but never used",
	"source": "Flake8",
	"startLineNumber": 26,
	"startColumn": 5,
	"endLineNumber": 26,
	"endColumn": 5
}]

[{
	"resource": "micro-sam/examples/sam_annotator_tracking.py",
	"owner": "_generated_diagnostic_collection_name_#5",
	"code": "F841",
	"severity": 8,
	"message": "local variable 'fnames' is assigned to but never used",
	"source": "Flake8",
	"startLineNumber": 32,
	"startColumn": 5,
	"endLineNumber": 32,
	"endColumn": 5
}]

@paulhfu all of these should be fixed if you merge the current master into this branch.

@constantinpape yes, thank you, I rebased.
Except for the missing import of warnings in image_series_annotator.py it looks good now.
Should I add this import here? Not sure since it it not part of the fixed issue.

Except for the missing import of warnings in image_series_annotator.py it looks good now.
Should I add this import here? Not sure since it it not part of the fixed issue.

You're right, that's still missing.
That must have somehow slipped through in my recent changes!
Please go ahead and add the import here.

@constantinpape, this can now be reviewed. I could not finish all my tests, I will continue later.
I rebased again (in case you have checked out the branch).
Open questions from my side are:

Stylesheet. Use with warnings or not use it? (I could not eliminate the warnings)
Grayscale is disabled for 3D annotation. Why?
Is it ok to open explicit image paths with imageio.imread and whole directories with elf.io.open_file?
Are the dimensions of halo and tile in the gui correct in the 4 annotators?

Open Issues:

2d annotation with one image+segentaionm result ->I can see a warning coming from two simultaneously open QApplications and after that napari closes.

/home/drford/Documents/micro-sam/micro_sam/sam_annotator/annotator_2d.py:243: UserWarning: A QApplication is already running with 1 event loop. To enter *another* event loop, use `run(max_loop_level=2)`
  napari.run()

Thanks @paulhfu ! Looks very good overall.
Before I go through your questions: one more thing I noticed that is missing in the 2d annotator, 3d annotator and tracking_annotator is the (optional) input_key, so that we can also open data from hdf5, zarr or n5.

Stylesheet. Use with warnings or not use it? (I could not eliminate the warnings)

I don't see that particular warning anymore. Let's keep the stylesheet for now, we can look closer into this later if it comes up again.

Grayscale is disabled for 3D annotation. Why?

I am not quite sure what you mean. Can you give an example?

Is it ok to open explicit image paths with imageio.imread and whole directories with elf.io.open_file?

Yes, that's ok. You could also use https://github.com/computational-cell-analytics/micro-sam/blob/master/micro_sam/util.py#L480 . It does the same thing you describe, but you wouldn't need to duplicate that code, and maybe I have time to do something smarter / extend support for more file formats there at some point.

Are the dimensions of halo and tile in the gui correct in the 4 annotators?

No, tiling is always done just in 2d. So it should be just Tile x, Tile y, Halo x, Halo y in all the 4 annotators.

2d annotation with one image+segentaionm result ->I can see a warning coming from two simultaneously open QApplications and after that napari closes.

I also saw that warning pop up once. But for now I would suggest that we do not tackle this in the current PR but rather leave it for follow up work. I want to publish a new release next week, and once you have addressed the two main remaining issues (input_key and tiling / halo) I would merge it so that it can be included in the release; since this is already the most user-friendly way of starting micro_sam :) .

Hi @constantinpape,

I am not quite sure what you mean. Can you give an example?

I got errors which stated something along the lines "Grayscale is not supported for 3D annotation. User RGB"
This is not the case anymore, it is working now. Either it was the Tiling/Halo issue or it was fixed in master.
I applied your suggestions.

I got errors which stated something along the lines "Grayscale is not supported for 3D annotation. User RGB"
This is not the case anymore, it is working now. Either it was the Tiling/Halo issue or it was fixed in master.

Yeah, I think I fixed that on master.


Add LRange command

will add this command after https://github.com/flower-corp/rosedb/issues/148

merged, close it.


Feature: basic route crud with k8s cluster

I would like that you show me how it works  and introduce the code first

Overall, the code looks good to me, and I miss the details. I will investigate more time after you introducing the code

Ops, 6a9ea58 and 5e0ce5a are mine, sorry


Crash in FabricMaterial.cpp when using TilesetClipping.usda from Cesium Omniverse Samples repo

To reproduce:

Open TilesetClipping.usda from the CesiumOmniverseSamples repo
Expand World->Looks->Clipping

Click on a few of the shaders

You should see an Assertion failed error:

Debugging the exception shows the exception is  in line 725 in FabricMaterial.cpp: assert(isrw->attributeExists(srw.getId(), copiedShaderPath, attributeName));

This is on Windows 10.

I actually removed that assert in one of my in-progress branches because there are cases where an attribute won't be created until its value is set.
https://github.com/CesiumGS/cesium-omniverse/compare/main...dynamic-set-index?expand=1#diff-1f67972ff657e7a0bd6c5a8748529903f70ac5c90dc06f8f727ec76073a8c8bdL723
We might be able to remove the assert. Does it still work?

With that assert gone, it's much more difficult to trigger a crash. But I was able to trigger one:


doc: add documentation on naming functions in a Kptfile

This PR documents/clarifies that using name on functions in a Kptfile is important when updating packages with kpt pkg update. The issue was discussed in Slack here: https://kubernetes.slack.com/archives/C0155NSPJSZ/p1689926397556699
The name field was not mentioned in the current version of the book, and since function lists are merged as associative lists, the effect of not specifying a name may result in unpredictable ordering of the function lists.
Specifically, the PR updates section 4.1 of the kpt book on "Declarative Function Execution"
A few considerations for reviewers:

This document https://github.com/GoogleContainerTools/kpt/pull/2623/files deliberately avoids function names with spaces and resorts to names-with-hyphens instead. This PR use an example with spaces in names.
The same document also describe cases where it is possible to do function identification based on the value of image. This PR does not describe this situation since there are multiple requirements for this to be possible. Also, I'm suspecting that this functionality may no longer be active since the example shown in the Slack thread should have merged the updated function list if it had used image as identifier.

/assign

Thanks! Will merge this once the tests finish.


[Uppy Integration] Progress bar reaches 100% instantly

Progress bar instantly reaches 100% usually in local setup when using uppy with tus-php-server. There is a long pause afterwards while the file is being uploaded.

I am also facing this issue, I think in Uppy server they are using socket to show the actual progress

I am also facing this issue but only when uploading many files in parallel.
But when files are processed sequentially (limit: 1 in uppy.tus) then the progress bar is correctly filed.

My operating environment is docker + php7.2 + redis5  and  The client uses uppy.js
My problem is:   When the upload progress bar is less than 100%, the offerkey of tus PHP response is' ', so every time you click pause, it will start from 0. When the upload progress is 100%, the offerkey in redis will change, the file will be merged, and the progress bar of uppy.js is 100%. When the uploaded file is large, the client will have to wait

Apparently, this happens because of fastcgi_request_buffering option in Nginx.
When the buffering is enabled, the entire request body is read from the client before sending the request to a FastCGI server. If you are using Nginx, consider disabling fastcgi_request_buffering for resumable uploads. More info here.


nixos/digital-ocean-image: init (rebase)

Motivation for this change
A fork of the stalled #58464 made at @arianvp's suggestion, containing various fixes and changes that were brought up in review of the original PR (is a merge preferred here or is rebase fine?)
Things done

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

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

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

Notify maintainers
cc @eamsden @Infinisil

Please feel free to squash and rebase your commit to make it tidy.
Also, is it possible to include a test with it?

Also, is it possible to include a test with it?

No idea how to do this, I guess we could build the image - is there somewhere that's appropriate to introduce that? All the services require DO's internal network environment so I imagine testing any other parts would be a pretty involved process.

i dont think a test is needed. I also don't know what to test here in the first place; we're just building an image.    I don't think any of the other images have tests either. If they do, they're probably in the NixOps repo and not the Nixos one

To be fair, there are some valid points to testing here:

Since this all needs to be explicitly imported by path, I'm not sure if there's currently anything that even tests if the files evaluate? It's presumably not checking if they're valid nix expressions let alone valid in the context of a nixos system configuration.
Nixops at some point will probably want a reachable http endpoint to download the image from, so a long-term goal may be to add image generation+hosting to a release.nix at some point?

So I imagine something that builds the image (or at least computing the outPath of one) would be nice. Not sure of the impact of adding a test that depends on an entire nixos base image though, for all I know it may trigger a new build for every new nixpkgs commit and that may be overkill? I'm not familiar with nixos testing strategies.

No worries, was just asking. :)

Very cool PR!

I just merged https://github.com/NixOS/nixpkgs/pull/69186, so you could rebase this PR ontop of master and enable do-agent to get the better monitoring here :)

I just merged #69186, so you could rebase this PR ontop of master and enable do-agent to get the better monitoring here :)

Nice, done, but unfortunately master has been broken for a week due to vm test failures which means this is now semi-broken. Anyone looking to try image generation now will currently need to rebase this onto nixos-unstable instead and cherry-pick the #69186 merge on top of it.

#69302 seems to be relevant in some way, particularly if you want to use networkd for faster droplet boot. I'm not quite sure how or what needs to change though?

Is this ready for testing? How do I build the image?

Yeah it works and can be built with something like:
nix build '(with import <nixpkgs> { }; (nixos { imports = [<nixpkgs/nixos/modules/virtualisation/digital-ocean-image.nix>]; }).digitalOceanImage)'

Then the resulting file can be uploaded as a custom image via the DO web UI and then used to create a droplet. Though beware that if you plan on using the userdata feature to configure the image (or just in general doing a rebuild/switch), you will need to point it to a channel URL that has these changes merged in, otherwise weird and bad things will happen when it tries to use nixpkgs without the DO modules.
I'd recommend managing the resulting droplets with nixops or something that makes it easier to pin the channel, but other than that complication it should work fine.

I tried.

Personally I'd like it if every commit is one that won't trip up anybody when bisecting. So that in all of them eval still succeeds, the manual build successfully and things like that. So I'd do one commit for adding maintainer, one for the *-init.nix module, one for the *-config.nix and one for *-image.nix.

Personally I'd like it if every commit is one that won't trip up anybody when bisecting.

That does kind of just sound like a single commit for the whole thing I guess, though I can't quite make sense of applying that logic here. If someone isn't using the module, it won't trip them up. If they are, they would necessarily start bisecting with a known good commit that's at least from the head of this branch (or point at which this is merged) regardless of whether it's one commit or many, because it wouldn't exist in a state they could have used it otherwise.

So that in all of them eval still succeeds, the manual build successfully and things like that.

To my knowledge they are currently like that, though each commit adds a particular feature (excluding the commits from the prior PR).

So I'd do one commit for adding maintainer, one for the *-init.nix module, one for the *-config.nix and one for *-image.nix.

That does seem simplest, though I'm not very comfortable with messing with someone else's history...

I would honestly just squash everything in one commit; and keep the descriptions of each of the original commits.     I'm also OK getting it merged as is...

Please rebase on latest master, and squash into two commits (one editing maintainer-list, the other one adding the other files).

Thank you for this work! I came across it via this very nice tutorial. What would it take to get this image built on a MacOS device?
I want to spin up a DigitalOcean instance of NixOS so I can use a remote builder to build a Docker image with Nix... and that has landed me here! :D

Feel free to ignore my above question. I found a workaround.
I created an Ubuntu droplet, used nix-infect to convert it into NixOS, then ssh'd into the box and ran this build step to generate the image. Finally I downloaded the image from the box onto my local machine so I can upload it as a custom image to my DO account.


Question: Using clone={true}

Is it possible to RESET the router stack, when using a cloned scene?
I am cloning a scene for a continuous loop of scenes. But when I set the ActionConst to RESET, the cloned scene never transitions to the next scene. I have tried using REPLACE, and POP_AND_REPLACE but the router stack continues to grow larger and larger with those two.
Any ideas?

How and in which use cases clone={true} should be used? I can't find any examples of this in the documentation. API CONFIGURATION page says "see example", but doesn't refer to anything.

@alizbazar You can see in the Examples, EchoView.js (https://github.com/aksonov/react-native-router-flux/blob/master/Example/components/EchoView.js) that is set as clone in Example.js (https://github.com/aksonov/react-native-router-flux/blob/master/Example/Example.js). In the most simplistic terms, a cloned Scene accepts props and is simply cloned each time it is referenced via Actions.sceneName() ...

Actually, I forgot to close this ticket. Because the solution was that the Scene that is being cloned needed to be separate from itself. Meaning, don't clone->clone->clone->clone ... instead, do parentScene->clone->parentScene->clone->parentScene->clone that way the router stack RESETs when setting type: ActionConst.RESET when returning to parentScene, which then clones its child. That sounded a lot more clear in my head... :) Let me know if thats confusing!

I think router-flux makes it extremely easy to do what you want to do. Hit me up  if you run into any issues and I'll do my best to help! Going to close this ticket for now.


magento2.3.0-s3

I just added this to our Magento 2.3 site and it works like a charm!!!
Thank you for creating this!!!

Hey @Kristopher-Mark-Mike
Thanks man! It makes it worthwhile that people are enjoying my plugin. Lots of people just send angry emails because they can't get it to work. 😭
Feel free to post an issue here if you come across anything.
Regards,
Thai


Problem installing in Android project

Hi, I have added via Nuget Xam.Plugin.Media v 3.1.3 to my App solution, selecting all projects. However for the Android project I get the following error - "Package restore failed. Rolling back package changes for '<Android Project Name'."
I am running VS 2017 Community 15.6.7
Any help greatly appreciated.
Cheers John

what is the rest of your error?

This message appears in the Error List window when I install the plugin. If I then run the App it still runs but the Plugin has not been installed against the Android project. So the problem is that I cannot write the required code in the readme section Android Current Activity Setup.

you will need to give me full logs from output.

So sorry James, looks like another plugin may be causing a problem with Android project - will sort that out and try your plugin again - apologies John


Continue your series man

I was really enjoying your series, pls continue.

He'll get to it eventually. He has other stuff to do, be patient.

Why did you delete everything instead of saying this in an issue?


Add debugger

Add a new GCP-specific service, debugger, to assist client<->server debugging. This isn't the complete list from GH-606, but it's a start.
/assign @mikehelmick @gurayAlsac

/retest
failure seems unrelated

@mikehelmick I commented out the flakey test (it was supposed to be a stub for GH-247 anyway) since, and should be a non-issue once GH-599 is in). Can you re-LGTM please?

/lgtm


Redeclaration of block scoped variables in the same scope should throw TypeError

Example from MDN:
switch (x) {
  case 0:
    let foo;
    break;

  case 1:
    let foo; // TypeError for redeclaration.
    break;
}

6to5 compiles this to
"use strict";

switch (x) {
  case 0:
    var foo = undefined;
    break;

  case 1:
    var foo = undefined;
    break;
}

and doesn't throw.

Also I think @alexkuz is right.
While above example shouldn't work, it should work if we wrap each case in a block of its own:
switch (x) {
  case 0:
    { let foo; }
    break;

  case 1:
    { let foo; } // Compiles!
    break;
}

@gaearon @alexkuz's original issue has nothing to do with this. It was about not remapping let variables in different scopes while this is about redefining already declared let variables.

@sebmck well, at least it's related. My original problem was that when I write code like in the last @gaearon example, wrapping cases in blocks, it compiles (as there is no TypeError thrown), but jshint is not happy with the resulting code. If it compiles with different var names though, it would be ok for jshint.

The only thing that's related is that they both apply to block scoped variables.

Closed via ac373a9e1cd0710b21c1714e9d772a7841cfcae2

@alexkuz
In this case I believe the problem is in JSHint, rather than 6to5. In a perfect world, we will lint original code with ES6 rules instead of linting transpiler's output. This will soon be possible when ESLint gets ES6 and JSX support (it's in progress).


Fine-tuned Qwen2.5-Instruct isn't supported as expectation

What is the issue?
Hi, there!
The base model I use is Qwen2.5-Instruct. Firstly, I fine-tuned the base model on my private dataset. Then, I convert it to .gguf format by llama.cpp. Trying to make my model easily supported by ollama.
but it turns out to be:

ollama create my_model -f ./Modelfile
transferring model data 100%
converting model
Error: unsupported architecture

Also, I tried with --quantize and without --quantize argument, both failed with same error as above.
Nevertheless, the qwen2.5 series is supported by newest version of ollama based on ollama.com/library. So is there anyone can help me? thanks a lot
OS
Windows
GPU
AMD
CPU
AMD
Ollama version
0.5.1

And the command of llama.cpp used to convert the format of my fine-tuned model as below:
python convert-hf-to-gguf.py --outfile path/to/outfile  path/to/safetensors
contents of Modelfile as below:
FROM /path/to/gguf_file

aaa

Which fine tuner?

Fullly fine-tune the base model with the tool of LLaMA-Factory

And there is total 4 safetensors, like model-00001-of-00004.safetensors, model-00002-of-00004.safetensors, under the same root path that I used in the command when I was trying to convert the format to gguf by llama.cpp. Every safetensors is a part of the fine-tuned model, all of these safetensors together is the whole model.
And the memory of .gguf file is equal to the sum of the four .safetensors files approximately.

PTAL when you have a chance. Just to make sure you are here.
And thanks for your self-assignment.

Sorry, I meant to comment earlier. The convert logic for Qwen hasn't been added to ollama create yet, but you can still convert the model to GGUF w/ llama.cpp's convert_hf_to_gguf.py script, and then import the resulting GGUF into ollama (again, using ollama create).
I'm not sure when I'll get time to add the convert logic directly, but I am working on some changes for ollama create.

you mean ollama create is not available at present upon Qwen2.5 series both .safetensors and GGUF format. Is it right?

@sunday-hao ollama create can pull in the GGUF model, but not the Safetensors model right now for Qwen 2.5. I'll add the logic for safetensors, but just haven't had time yet.

if my Modelfile that points to the GGUF model under /home/Modelfile and my GGUF model converted from qwen2.5 under /home/downloads/.
So, the command is like ollama create example -f /home/Modelfile.
But, the error occured, unsupported arthitecture.
You mean the convert logic don't support qwen2.5 at present, but the convert logic supports other models?

Make a Modelfile and include a line which looks like:
FROM /path/to/my/gguf/file.gguf

You can then call ollama create -f Modelfile my-model. This is assuming that the GGUF file was created correctly. The vision models are also not (yet) supported.

yeah, I followed the pipeline strictly. And the model I convert is Qwen2.5-Instruct, but the error occurred.
According to your response, the reason is qwen2.5 is not supported at present.


Feature Request: NeverBounce Support

Would be great if the app would also support the email validation service NeverBounce in a future version.

Coming with release 1.4 👍


Sync language grid width for table header and body

Short description

Sync language grid width for table header and body
Proposed changes

The problem is that despite both Element nodes (a-html-tags) in the header and in body of the the table have the same width of 18.67px, as inline-block elements they are followed whitespace Text nodes with different widths (4,08331px and 3,36664px)
So I updated the Elements node width so that both header and body have in total the exact same width of 22,0333px

Resolved issues

Fixes: #1029

Thank you for your review, yes it is hacky at the moment, because I did not found a proper way to sync the width of text node "whitespace". So far I tried by syncing parent nodes font-size, height, etc without success, but I will investigate this topic further in the future. I also updated now the changelog

Can you maybe add the same class in these lists as well?

Alright, I've now applied the changes to all other translatable content types

But alternatively we could also go like this:
{% for language in languages %}<a href="..."><a/>{% endfor %}

Removing the line in front of the a tag and after the closing a tag would remove all these whitespace characters, which are harder to sync by css

Oh, I like that idea! Maybe we could even use the {% spaceless %} template tag for this:

I like the spaceless tag more, too. So I replced all whitespaces with a little fixed sized right margin, which syncs the elements width, too.

The language flags are also used in the lists of archived pages and POIs

Ok, I've added spaceless to archived pages, but in archived pois html this column seems not to exist. Is this intentional?

Ok, I've added spaceless to archived pages, but in archived pois html this column seems not to exist. Is this intentional?

Sorry, my bad, I meant archived events.


No examples showing SQL in Azure Databricks

Please include samples or examples of using the driver from SQL in Azure Databricks and not only in Scala.
In particular: what is the name of the JDBC Driver class?

This connector is Scala-only. Consider evaluating the
Apache Spark Connector for SQL Server and Azure SQL which is a newer connector. It adds support for Python and R bindings, amongst other improvements.


Lightweight Buffer Manager

I propose that we implement a light-weight decentralized buffer manager, similar to LeanStore, but simplified to cater to analytical workloads.
My initial thoughts are that for us the important cases are that we need to support (1) efficient pinning when pages are already pinned, without any global locks; (2) parallel loading (i.e. we need to be able to read multiple pages at the same time), (3) async I/O/prefetching support (i.e. in a sequential scan we know exactly which blocks will be read -> we should take advantage).
To achieve (1) we need to have local locks. The LeanStore solution of storing the locks next to the pointers seems sensible to me, although I would avoid using pointer swizzling/tagging for portability reasons. Rather I would change the buffer pointers to a struct that looks e.g. like:
struct BufferPointer {
        // state, 0 = unloaded, 1 = loaded but unused, 2 = read-locked, 3 = write-locked, 4=being loaded
	int8_t state;
        // amount of concurrent readers
	int32_t readers;
        // pointer to data OR block id
	union {
		data_ptr_t dataptr;
		block_id_t block_id;
	};
};

The disadvantage of this local state is that you can only have a single pointer to a block. This can be a problem when we have pages that have multiple pointers to them, e.g. when we put data from multiple sparse columns on the same page. This restriction can be relaxed by using another layer of indirection, e.g. by using a shared_ptr.
We need to have a list of these buffer pointers somewhere as well to handle unloading when required. Having some centralized structure handle loading/unloading seems fine to me, as long as parallel loading is supported. We have an advantage in that our pages are much bigger than traditional pages (256K vs 4~16K), and loaded/unloaded a lot less randomly because we are not dealing with point queries.
Our eviction strategy should also take into account the access patterns of analytical queries. LRU works well in a B-tree scenario, but not really for table scans of larger-than-memory tables.
Another point is that LeanStore uses a background thread for eviction; we do not want any background threads working in DuckDB to avoid surprising behavior for the user. Hence the threads doing the loading will also need to do potential unloading.
Anyway those are some initial thoughts, more brainstorming required.

It looks like both of these are related to this issue, probably can consolidate.
Significant spin lock on query dominated by scan operation #875
Performance opportunity with BufferManager Pin/UnPin #1018
Simplest use case:
create temporary table d as select mod(range, 100000) g, 42 p from range(1000000000);
pragma threads=16;
select count(*) from d where g = 50000;

These have an impact on a number of TPCH queries at scaling starting with threads=2, and dominating workloads at threads=4 or above.  There are some separate issues with some HT finalize and hash join I am working on detailing.

Above metrics are with merged paragght3 branch.
Curiously, Q6 at sf100 showed better linear scaling last week (~ Oct 15th) .   I apologize, I don't think I have the commit version captured.
| threads=1; | threads=2; | threads=4; | threads=8; | threads=16; | threads=32;
Q6       |     3.031      |      1.814      |        1.469   |      1.12        |       1.192       |       1.266


Jt jds update

@schlosser updating the job descriptions + putting a link at the top of the contact us page to the FAQ.
Please run the contact us one locally if you can to check the styles came out right.

Fixed a thing or two and this LGTM now

Thanks!
On Wed, Apr 29, 2020 at 23:29 Dan Schlosser<EMAIL_ADDRESS>wrote:

Fixed a thing or two and this LGTM now
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/covid-projections/covid-projections/pull/653#issuecomment-621639607,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHIUC4Z6UD5W7P2UFWIMATRPELDTANCNFSM4MVGCTOA
.

--
// sent while mobile


Didnt download so it doesnt worked

It seems something that should not need to by downloaded to work, so i didnt, and it isnt working.
Fix it asap please.

If nothing works/happens/downloads, then it's working as expected.


Different times on dashboards

Good morning, first congratulations on the beautiful project you have developed.
I noticed the following situation https://codetime.datreks.com/
the dashboard returns me a value of 1193hrs 29mins that has not changed.. and if I use its token in the visual code it shows 0sec.
but I noticed this new dashboard
https://codetime.dev/dashboard which shows 928hrs 39mins using token in visual code shows 44hrs.
after all, which token should I use from which platform?
because both are not with correct values.

We're really sorry for the trouble.
If you set the api entry to codetime-api.datreks.com, you should use the token on codetime.datreks.com.
If the api entry is set to api.codetime.dev, you should use the tokens provided in codetime.dev, but they are probably the same.
Neither is accurate, codetime.datreks.com has some duplications, and the server is unstable and sometimes unable to record. codetime.dev is still under development and is expected to provide a more stable service and eliminate the problem of double counting.
In the future, we will move all services and data to codetime.dev. I would recommend you to use it, but unfortunately, due to some server problems, it is currently out of service and will not be restored until the end of this month.
So at this point in time, it's recommended that you use codetime.datreks.com and use codetime-api.datreks.com as api entry. In the future, we will move data from datreks to codetime.dev and eliminate duplicates of data (which will make statistics shorter).

in visual code shows 44hrs.

This could be a bug if extension settings set to display code time for 24 hours. I will address this bug.

Thank you very much for your continued attention and use of our service. I am deeply ashamed that I have not been able to provide stable service.

then you recommend that you use codetime.dev, I will use it. Thanks for the reply and don't feel ashamed, the design is magnificent.

We appreciate your support and would like to inform you that our service has now been fully restored to normal. We acknowledge that we may not have performed up to our best in the past, but moving forward, we will make every effort to ensure the stability of our service.


Tutorial restructured

@LarsAsplund @umarcor
Months ago, Lars added a tutorial. I know that the idea was to have material for this repo, but not sure about the details. I want to contribute. I added the needed to generate docs. Let me know if the following is useful for you and details such as names/paths:

Move tutorial/exercise_0* to tdd/excercise_0x.

tdd assuming there will be ci. I am ok? there will be a tutorial for TDD and another for CI?
I will create original and solution inside each tdd/excercise_0x. src and test are inside original and not needed for separate in a repo.

I will delete instructions.html (will be generated in the sphinx doc) and I will convert instructions.md into tdd_0x.md (one per exercise). I will add docs.yml for CI (where the doc must be deployed @umarcor?).

Sound good?

It sounds very good indeed. Thanks for having a go at this!

Move tutorial/exercise_0* to tdd/excercise_0x.

I'm not sure about this. I think it would be cleaner to keep the exercises in the tutorial subdir for now.
What we might do is move the current src, test and run.py into tdd. So, the root of the repo would have the following:

.github/

...

tdd/

src
test
run.py

tutorial/

...

LICENSE
README.md
test.py

tdd assuming there will be ci. I am ok? there will be a tutorial for TDD and another for CI?

There won't be any specific tutorial about CI, for now. The current workflow is a showcase of CI procedures (https://github.com/VUnit/tdd-intro/blob/master/.github/workflows/tests.yml) and there is content in http://vunit.github.io/blog/2020_08_12_continuous_integration_with_vunit_action_in_10_lines_of_code.html and http://vunit.github.io/ci/intro.html (referenced in the README here). We might enhance that documentation and/or the workflow, but I don't think there are more sources to be added in that regard.

I will create original and solution inside each tdd/excercise_0x. src and test are inside original and not needed for separate in a repo.

Maybe the other way? Just remove the original subdir.

I will delete instructions.html (will be generated in the sphinx doc) and I will convert instructions.md into tdd_0x.md (one per exercise).

Will you move the markdown sources somewhere else or will you keep each one in the corresponding subdir?

I will add docs.yml for CI (where the doc must be deployed @umarcor?).

I think it's good to push to branch gh-pages in this same repo. That will be served in vunit.github.io/tdd-intro, and we can use intersphinx from cross-referencing (that's what we do with VUnit-cosim, ghdl, ghdl-cosim, edaa-org, osvb, etc.).
Actually, you can use the BTD Action for that:

https://github.com/edaa-org/edaa-org.github.io/blob/main/.github/workflows/Doc.yml
https://github.com/VHDL/pyVHDLModel/blob/master/.github/workflows/Pipeline.yml#L289-L309

With regard to the engine, some years ago I wrote a shell script for generating a PDF using pandoc. I pushed that branch some minutes ago: https://github.com/VUnit/tdd-intro/tree/umarcor/tutorial-pdf-pandoc. Nevertheless, I think it is desirable to use Sphinx, as you said. It will provide HTML and PDF outputs, along with better integration with other projects/repos.

Ok @umarcor I will apply your suggestions.
Regarding the current doc under tutorial, My idea is:

Remove the instructions.html files.
Move (to docs), rename (to exercise_0x.rst) and modify the format (from md to rst) the instructions.md files.

Do you prefer to maintain as Markdown? Is ok to move them to docs? (or do you prefer left them as tutorial/exercise_0x/instructions.md?)

With regard to changing from markdown to restructuredtext, I do think that is desirable indeed.
However, I am unsure about moving them. Currently, users can copy one exercise and it contains "everything" (sources, explanation and solution). Therefore, I would add a toctree to the index of the docs, where the rst files are references from each of the subdirs.

@rodrigomelo9 this PR seems to contain a single commit now. Is that correct?

Yes, a single commit. I applied several of your simplest reviews and then, I forced a push.

In this PR I will solve to have the docs generated with BTD in CI.


Can fine tuning for phoneme task?

Has anyone experimented with fine-tuning the phoneme recognition task (English), please share some of your experiments.
Many thanks !

I haven't personally, but would be interested to know if anyone has tried this. Note that the Whisper tokenizer does not contain phoneme tokens, so the model will require a new tokenizer to be trained and subsequently the vocabulary size to be adjusted (c.f. https://huggingface.co/docs/transformers/v4.18.0/en/model_doc/wav2vec2_phoneme#transformers.Wav2Vec2PhonemeCTCTokenizer)


[Feature] Support array functions for nested type DECIMALV3

Search before asking

[X] I had searched in the issues and found no similar issues.

Description
No response
Use case
No response
Related issues
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

I will work on it!


Improve config flow

Following on from #40.
The idea is to let someone select the adapter they're using during the config flow, and then set read sizes and poll rates based on that. We also let the user select between TCP and UDP if relevant, and provide links to adapter-specific documentations.

I'm working on this, but it might take a little while. So far:
Entry page:

Direct LAN connection:

W610:

Waveshare:

Is the entry page the page after you choose USB or IP connection? If not, how do you select a USB adapter?

I haven't put adapters in for that yet, but they'll be in the same list. Along with "Other USB" and "Other Ethernet" or similar

Ok - I've got DSD TECH SH-U10 USB (https://amzn.eu/d/1MDqSip), but I've also seen quite a few other USB and IP adaptors mentioned in the forums (often the AliExpress cheap adapters seen to work as well as the more expensive branded adapters)

Yep, the list isn't complete. And quire honestly there's only really a point in putting adapters where we know the max read size, otherwise we'll just have to apply a blanket slow but safe config

Yeah, I think all the USB adapter's will be similar as the baud rate of the inverter is limited to 9,600 so we only get about 960 characters a second at half duplex.

@iancg Would you mind seeing what size reads you can do with that adapter? https://github.com/nathanmarlor/foxess_modbus/discussions/40#discussioncomment-5591666

Starting point (default 10s/8) with two inverters, I get consistent errors, but suspect it is not related to read size:
grep "custom_components.foxess_modbus" home-assistant.log | grep -B 1 "Modbus Error"
2023-04-12 15:51:02.965 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11008, 8, (247))
2023-04-12 15:51:08.989 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 15:51:12.963 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11008, 8, (247))
2023-04-12 15:51:18.987 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 15:51:22.966 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11008, 8, (247))
2023-04-12 15:51:28.986 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 15:51:33.069 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11008, 8, (246))
2023-04-12 15:51:39.096 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 15:51:42.972 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11008, 8, (247))
2023-04-12 15:51:48.991 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 15:51:52.981 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11008, 8, (247))
2023-04-12 15:51:58.999 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response

Upping to 16 appears to work, but with similar errors, but now on a different register (do some registers need to be read in groups in the same way some need to be written in groups?)
2023-04-12 15:57:14.252 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (11000, 16)
2023-04-12 15:57:14.252 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11000, 16, (247))
2023-04-12 15:57:14.253 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (11000, 16)
2023-04-12 15:57:14.253 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11000, 16, (246))
2023-04-12 15:57:14.349 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (11021, 16)
2023-04-12 15:57:14.349 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11021, 16, (247))
2023-04-12 15:57:20.367 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
2023-04-12 15:57:20.474 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (11037, 13)
2023-04-12 15:57:20.474 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11037, 13, (247))
2023-04-12 15:57:20.571 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (11069, 16)
2023-04-12 15:57:20.571 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11069, 16, (247))
2023-04-12 15:57:20.682 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (11085, 2)
2023-04-12 15:57:20.683 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11085, 2, (247))
2023-04-12 15:57:21.435 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Reading addresses for (41000, 12)
2023-04-12 15:57:21.435 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (41000, 12, (247))
2023-04-12 15:57:21.526 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Refresh complete - notifying sensors: {11009, 11011, 11045, 11014, 11021, 11023, 11024, 11000, 11002, 11003, 11005}

Interesting... That "No response received, expected at least 4 bytes (0 received)" is similar to the W610 when it fails to return enough results.
Odd that it work for larger reads. I think there might be some registers we have to avoid, but I'm pretty sure there are none in that range.
Does it work consistently with small reads, like 1 or 2?

It's also odd that with a read size of 8, it still manages to read the first set of 8 fine then fails on the second.
Presumable the UI is showing lots of unknowns / stale data?

Seems to be very consistent though - same registers for both inverters
2023-04-12 16:06:14.458 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11034, 16, (246))
2023-04-12 16:06:20.477 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 16:06:24.327 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11034, 16, (247))
2023-04-12 16:06:30.342 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)

But fails on one inverter much more often than the other (assuming both are polled at the same frequency)
[core-ssh config]$ grep "custom_components.foxess_modbus" home-assistant.log | grep -B 1 "Modbus Error" | grep -c "(11034, 16, (247))"
46
[core-ssh config]$ grep "custom_components.foxess_modbus" home-assistant.log | grep -B 1 "Modbus Error" | grep -c "(11034, 16, (246))"
7

One register, still errors, but different register again:
--
2023-04-12 16:11:21.022 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (247))
2023-04-12 16:11:27.032 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 16:11:31.330 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11002, 1, (247))
2023-04-12 16:11:37.342 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 16:11:41.037 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (247))
2023-04-12 16:11:47.052 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 16:11:51.082 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (247))
2023-04-12 16:11:57.096 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 16:12:01.096 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (247))
2023-04-12 16:12:07.116 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 16:12:11.037 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (247))
2023-04-12 16:12:17.054 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 16:12:21.132 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (246))
2023-04-12 16:12:27.147 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)

Curious, that time it's failing consistently with the same slave. In previous times, it was switching between them

Are you able to get data into the UI at all? I see a few "notifying sensors" messages in the 32-register reads, but not in the others

Think I just hadn't waited long enough for a full set of results - but it doesn't fail every time by the look.
2023-04-12 16:15:31.804 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (246))
2023-04-12 16:15:37.821 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 16:15:41.018 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11000, 1, (246))
2023-04-12 16:15:44.435 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 4 bytes (0 received)
--
2023-04-12 16:15:51.018 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11000, 1, (246))
2023-04-12 16:15:51.113 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
--
2023-04-12 16:15:51.845 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_client] Reading register: (11001, 1, (247))
2023-04-12 16:15:57.869 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Modbus exception when polling - Modbus Error: [Input/Output] Error reading registers: Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response

I'm not aware of getting any issues when using the HA built in modbus.

Maybe it's not logging... Do you have a delay set in the built in modbus integration? Anything else which might be different?

Yes - I'm getting some data in the UI - even for 11000
2023-04-12 16:19:30.221 DEBUG (MainThread) [custom_components.foxess_modbus.modbus_controller] Refresh complete - notifying sensors: {11008, 11009, 11010, 11011, 11014, 11021, 11023, 11034, 11000, 11002, 11003, 11005}

No delay:
- name: FoxESSInverterModbus
  type: serial
  baudrate: 9600
  bytesize: 8
  method: rtu
  parity: N
  port: /dev/ttyUSB0
  stopbits: 1

I'll switch back and see if I can find the same logging for the built in one, unless there is anything else that I can try now?

Is the logging I'm copying only if all 3 retries fail? Or could I just be catching the failures that then are retried and succeed?

I'm not sure, to be honest.

Are you in a position to be able to manually edit the files which make up this integration? They should be in /config/custom_components/foxess. If you edit modbus_client.py and change the final method to:
    async def _async_pymodbus_call(self, call, *args):
        """Convert async to sync pymodbus call."""
        async with self._lock:
            result = await self._hass.async_add_executor_job(call, *args)
            await asyncio.sleep(30 / 1000)
            return result

... does that improve anything?

If it becomes an issue I may just switch to the PoE version of the waveshare or direct lan.  The main reasons I went for the USB adaptor was that I didn't want another power supply and the firmware update had just blocked the lan route.
Yes - I can edit, will give that a go and report back.

I mean, serial adapters should work (they work with the built-in modbus integration after all), so it would be good to fix them for everyone!
I suspect that delay might be relevant, since it always seems to be the not-first read which fails...
In theory you should be able to get some nice big reliable reads with a serial adapter as well...

Can you test with 50-register reads?

 I'll use that size read then :)
Thanks again for your time!


Update DaMichelLtd.netkan

agency
flags
config

Redundant with #9116.

Oh, you targeted the PR's branch. Sure, that works.

only way it would let me edit it. same goes with other.


Extend decoding error with extra error to pass underlying error

Description
Extends the .decoding error to pass the underlying error.

@pascal-brause Unit tests are failing


The same script for messenger?

Do you think with some modification the script would als work for messenger? the unsend function on messenger also has no timeframe.

@Siebrenyolo Sorry, No plan soon for messenger.

Okay, no problem. Thanks for helping people with the instagram-helper :)


Discuss per default deployment of the Intel Python distribution

We could/should discuss the per default deployment of the Intel Python distribution. There was some material provided during the training course "Introduction to the programming and usage of the supercomputer resources at Jülich" (November 2019) here that links this brief benchmarking blog post. (It might be very instructive to do some short benchmarks on JUWELS/JURECA hardware?)
Official information might be found here with packages being distributed via e.g. an Anaconda channel or as Docker containers!

If I remember correctly, Natalja from AWI had tested / deployed Python from this channel as well.


Makuo12

I've uploaded two additional files that display the rust and zig hello world programs.

Thanks for your contribution!

PR has been merged under Hacktoberfest!

Happy contribution!


message-queue-toolkit update

fakeconsumer throws errors, wonder if we can remove it altogether and replace with the one from toolkit itself

@kibertoad to use the one on the toolkit I think we will need to implement a generic one, if I am not wrong, the one we have there is not generic and couple to the specific test case


AzurePrep: write list of things created to a file

Currently AzurePrep displays things it created (e.g. Stream Analytics policies) to the console and disappears after hitting Enter. Should also write to a text file on user desktop (and advise user of that). After list displayed and file created, should pause on screen with "Hit Enter to close".

Done at AzurePrepUpdates branch.


Add integration tests to each C++ library.

Added integration test build for Desktop and Android. iOS requires adding dependencies manually right now and so does not yet build automatically.
Tested on Mac and Linux for both desktop and Android. Not yet tested on Windows, but will do that in a follow-up after we hook it up to the GHA.
Note that there are a few manual things that have to happen before the integration test can be run:

You must put the google-services.json file into the directory (or GoogleService-Info.plist, for iOS). This should be done via github secrets, but is not included in this CL.
For dynamic_links or messaging, you must edit src/integration_test.cc and replace the string that says "REPLACE_..."

I don't know why all the stuff from the merge ended up in this PR or how to get rid of it...

I had to squash this into a single commit to fix the issue with the merge commit being included. Sorry about that!

It looks like the "/integration_test/src" directories are missing all the *_framework files. In google3 they're symlinks, but it looks like they didn't get included in this PR in any form.

It looks like the "(api)/integration_test/src" directories are missing all the *_framework files. Internally they're symlinks, but it looks like they didn't get included in this PR in any form.
Edit: Looks like other symlinks are missing as well, such as download_googletest.py.

download_googletest.py and the symlinks in src are populated by the setup_integration_tests.py script, which is run by the build process in each mode of building (Podfile, build.gradle, and cmake file) before downloading googletest.

Mainly Copyright police. Some of my copyright comments have ?s -- while the AndroidManifest.xml should have copyrights (if we're following the other google open source projects) I wasn't sure if the strings.xml and main.xml should. I would think so...

No harm in adding copyright to as many files as possible - I added it to all xml, bat, gradlew, and build.gradle files.

Added copyrights and fixed the Info.plist files, PTAL.

It looks like the "(api)/integration_test/src" directories are missing all the *_framework files. Internally they're symlinks, but it looks like they didn't get included in this PR in any form.
Edit: Looks like other symlinks are missing as well, such as download_googletest.py.

download_googletest.py and the symlinks in src are populated by the setup_integration_tests.py script, which is run by the build process in each mode of building (Podfile, build.gradle, and cmake file) before downloading googletest.

Ah, I see why it's not running for me - the testapp builder copies the integration test project to another directory to work clean. The location of the setup script is determined relative to the cmake file in the test project, and only tries to run if found. Could be fixed by looking relative to the SDK/repo directory instead, but I'm not sure how easy it is to get a reference to that in each build file (e.g. from the pod file).
It's not difficult to work around if this is intended behaviour, though - I could change the testapp builder to copy the whole repo instead of just the integration test project, as it's not very large (~50mb).

It looks like the "(api)/integration_test/src" directories are missing all the *_framework files. Internally they're symlinks, but it looks like they didn't get included in this PR in any form.
Edit: Looks like other symlinks are missing as well, such as download_googletest.py.

download_googletest.py and the symlinks in src are populated by the setup_integration_tests.py script, which is run by the build process in each mode of building (Podfile, build.gradle, and cmake file) before downloading googletest.

Ah, I see why it's not running for me - the testapp builder copies the integration test project to another directory to work clean. The location of the setup script is determined relative to the cmake file in the test project, and only tries to run if found. Could be fixed by looking relative to the SDK/repo directory instead, but I'm not sure how easy it is to get a reference to that in each build file (e.g. from the pod file).
It's not difficult to work around if this is intended behaviour, though - I could change the testapp builder to copy the whole repo instead of just the integration test project, as it's not very large (~50mb).

It's intended - I think the best way to do it might be to run the setup script, and then copy the integration tests to a working directory.

(Also that would only be necessary when running the integration tests against a binary SDK. You can run the integration tests against the source SDK directly inside the repo.)

@a-maurice @vimanyu @DellaBitta ping?


Re-installing project with already changed .git/hooks/prepare-commit-msg overrides changed file with default hasky config

Description
Related issue in husky: https://github.com/typicode/husky/issues/323
But I think it should be tracked here too, cause this behaviour I get after using lint-staged.
And if husky will be updated, - lint-staged have to include new version of husky to "fix the problem".
Environment

OS: macOS High Sierra v10.13.6 (17G65)
Node.js: v10.7.0
Npm: v6.2.0
lint-staged: v7.2.0

lint-staged does not include husky and setup of pre-commit hooks using husky is only a recommendation, not a requirement. Closing the issue since it is not relevant to lint-staged.


One Pad To Rule Them All

Hope this is good...

PCB looks good to me!

Hey @scooterthedev!  That's because I'm going to use heat inserts. M3 to be more exact... I got the dimensions for the holes from https://hackpad.hackclub.com/braindump. Thanks for the look over though! Also I just noticed that I put my text upside down lol...
Also thanks @opott !

Awesome @ModernGalahad. Using heat inserts is definitely smart. I approve of this!
PS: My slack handle is Scooter Y
Onboard

Ok updated what was needed.

Awesome job guys! I approve this. You can fill out this form to get your hackpad!
https://forms.hackclub.com/hackpad

Thanks so much!


Add file for uchicago.edu via upload

@Nachiket-Bhanushali I am sorry, the domain uchicago.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Docs: Fix broken links in the README ⚓

I believe that problem was introduced by 717193e, that adding numbering to the headers.
@jaredbeck Thank you for supporting this great gem 🙂

Thanks! :heart:


Add acronym generator

Use x-common to generate Acronym tests

:tada: nice work! I have a few minor issues with the generator but everything else looks really good. Thanks!

@Insti I made requested changes

Thanks a lot @bmulvihill! :heart:


fix: replace broken links

replace broken links to make-source and field-types doc pages

Thanks!


[Bug] Branch in python lambda expression cannot be traversed by Joern

Describe the bug
This issue may be similar to my previous issue https://github.com/joernio/joern/issues/3522.
My subject also contains some python functions and some python functions have lambda expressions. When I am using Joern to analyze the python function, I find that although joern can plot the ast tree of the lambda expression, it cannot identify the branch using the .controls|controlStructure command.
The python function is:
def foo(x, y):
    res = lambda y: y ** 2 if y < 0 else y
    result = res(x)
    return result

To Reproduce
Here is my command lines to reproduce it:
joern> cpg.method.name("<lambda>").dotAst.l
val res131: List[String] = List(
  """digraph "<lambda>" {
"20" [label = <(METHOD,<lambda>)2> ]
"21" [label = <(BLOCK,,)2> ]
"33" [label = <(RETURN,lambda y: y ** 2 if y < 0 else y,lambda y: y ** 2 if y < 0 else y)2> ]
"32" [label = <(<operator>.conditional,y ** 2 if y < 0 else y)2> ]
"30" [label = <(<operator>.lessThan,y < 0)2> ]
"28" [label = <(IDENTIFIER,y,y < 0)2> ]
"29" [label = <(LITERAL,0,y < 0)2> ]
"27" [label = <(<operator>.exponentiation,y ** 2)2> ]
"25" [label = <(IDENTIFIER,y,y ** 2)2> ]
"26" [label = <(LITERAL,2,y ** 2)2> ]
"31" [label = <(IDENTIFIER,y,y ** 2 if y < 0 else y)2> ]
"22" [label = <(MODIFIER,VIRTUAL)> ]
"23" [label = <(PARAM,y)2> ]
"24" [label = <(METHOD_RETURN,ANY)2> ]
  "20" -> "22"
  "20" -> "21"
  "20" -> "23"
  "20" -> "24"
  "21" -> "33"
  "33" -> "32"
  "32" -> "30"
  "32" -> "27"
  "32" -> "31"
  "30" -> "28"
  "30" -> "29"
  "27" -> "25"
  "27" -> "26"
}
"""
)

joern> cpg.method.controls.l
val res132: List[io.shiftleft.codepropertygraph.generated.nodes.CfgNode] = List()

joern> cpg.method.controlStructure.l
val res133:
  List[io.shiftleft.codepropertygraph.generated.nodes.ControlStructure] = List()

joern>

Expected behavior
I expect the cpg.method.controls.l or cpg.method.controlStructure.l commands should list the control flow logics inside the function, including the lambda expression, however, it return empty list.
Desktop (please complete the following information):

OS MacOS
Joern Version 2.0.49
Java version 17

@maybeLee The below works for this snippet.
cpg.method.name("<lambda>").call.controls.l
cpg.method.name("<lambda>").call.controlledBy.l


(maint) Miscellaneous cleanup

see individual commit messages for details

A little curious if there's a downside to the blanket import.

What kind(s) of downside did you have in mind? Is there something I should investigate?
The only things I could think of were like.. something is a little slower or some package is a little bigger?? ¯_(ツ)_/¯ no idea

Those things :) Was mostly curious if e.g. Justin had an opinion off the top of his head.

fwiw, I'm happy to put back the explicit imports if we want, and update my IDE to not do that anymore. but there was already one wildcarded import in there already, so figured there was no explicit decision to not do that.

Yeah, I don't think the wildcards are a best practice, but I don't think we have strong standards around it (and are already doing it). I'd prefer we didn't make what we're loading any less explicit, but it's not a strong preference (since IDEs don't have much of a problem with it).

okay, I can put it back! and I can also make the current wildcarded one more explicit.

okay updated


Uploading Streaming Binary Data using Node Fetch

I have a question on how to go about uploading content to an endpoint that accepts only binary data. I have the file on disk and want to stream the content as binary but am having difficulties using node-fetch. Here is some sample code of what I'm trying to do. Any pointers would help, I don't know if this is an issue with node fetch not being able to support binary streams or my usage of it not being accurate:
  const bodyData = fs.createReadStream(req.file.path) // file stored locally on disk
  return fetch(uploadEndpoint, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': req.file.mimetype
    },
    body: bodyData
  })

Any pointers would help!

This should work, and we even have a test that makes sure POST requests work with body data.
What kind of issues are you seeing?

Do I need to use something like resumer? My problem is that the endpoint reports not receiving binary data. So for example, I'm trying to upload a PDF document that's about 218 KB but the endpoint reports receiving it with the content length of 597 bytes which doesn't make sense since it should be 218882 bytes(~218 KB). Do you think bodyData above is not binary content?

Do I need to use something like resumer?

Nope, just a normal stream.
I think you need to first figure out if you are indeed passing it a stream and if your endpoint supports chunked encoding. If you are doing streaming upload, the content-length shouldn't be set, because we are using transfer-encoding: chunked.

Yes the endpoint does support chunked encoding and I'm not explicitly setting the content-length header. Also, do you think I need to pipe the stream via fetch? I'm not quite sure what that would look like though.

If you can, try a simple example like our test cases first, isolate your problem.

I've tried your test case but I finally ended up using a promisified request since it had streaming built right in and I needed streaming for my use case with an fs.createReadStream

@pianeer, you have to give more details than that to help us debug this issue. Can you please give a test case?

Timed out.


Use Good Looking icons in Calculator

Replace with icons

can i work on this ?

Thanks for showing interest in this Project.

Any update? @Ankita297

Sir is it okay ?
I have used font awesome icons .
If it is okay then i will make a PR .

It is not looking good, divide icon is looking different from others, try to maintain equality.
yes it's fine, but we are using fontawesome for just these 4 icons, but it loads whole file, hence increases loading time. So, I suggest to download icons from flaticons  or any other platform and save it locally in icons folder.
Try to use SVG, instead of PNG icons, because SVG loads faster (if not possible for SVG ,you can go for PNG also)

okay Sir.

Sir on active state sholud i change the whole background color of button

or not ?

I have used svg icons .

Great!
Keep it simple don't change background color

Read

okay sir


added resources

Please don't put the URL for a blog post, instead, put the Home URL of the blog which is highly dedicated to Git or Version Control.


samples/mpu/mem_domain_apis_test/kernel.memory_protection.memory_domains fails to build

On several of the STM32 platforms the test fails:
./scripts/sanitycheck -p 96b_carbon  -s  samples/mpu/mem_domain_apis_test/kernel.memory_protection.memory_domains
This is due to the following change:
"arch: arm: mpu: include CMSIS header in arm_mpu.h"

It is strange this has not been detected by shippable.
Do we know how it happened?


misssing Chinese translation docs:   content/en/blog/_posts/2021-12-17-security-profiles-operator-v0.4.0/index.md

This is a Feature Report
Problem:
misssing Chinese translation docs:
content/en/blog/_posts/2021-12-17-security-profiles-operator-v0.4.0/index.md
URL： https://kubernetes.io/blog/2021/12/17/security-profiles-operator/
Proposed Solution:
add Chinese translation docs in website Kubernetes Blog
Comments
/language zh
/assign

URL is : https://kubernetes.io/blog/2021/12/22/kubernetes-in-kubernetes-and-pxe-bootable-server-farm/

/triage accepted


libpldmresponder: fix an eternal hang in requesting bus name

If oem-ibm is disabled, but system-specific-bios-json option is enabled pldmd fails to start since its timing out waiting to request the bus name. This fix also breaks the dependency between the above two meson options.
Signed-off-by: Pavithra Barithaya<EMAIL_ADDRESS>

Upstream comimit- https://gerrit.openbmc.org/c/openbmc/pldm/+/72632


Update webpack to include CLOUDOT_ENV

Update webpack to include CLOUDOT_ENV for the proxy's env prop. This will ensure we can run against prod-beta, prod-stable, etc. and not just CI environments.
Follow up to https://github.com/project-koku/koku-ui/pull/2005.

Codecov Report

Merging #2006 (96c8d41) into master (c304552) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2006   +/-   ##
=======================================
  Coverage   71.14%   71.14%
=======================================
  Files         386      386
  Lines        7041     7041
  Branches     1511     1512    +1
=======================================
  Hits         5009     5009
  Misses       2006     2006
  Partials       26       26

Continue to review full report at Codecov.

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


Temperature tuning and positional embeddings for DAB-DETR

In the paper, there is a section saying the optimal temperature for positional embedding is 20 in your model. However, this line under gen_sineembed_for_position indicates that a value of 10000 is used for the temperature. Is there any part I missed when I am trying to understand the codes?
Besides, the paper also says that only x and y coordinates are used to generate positional embedding for the cross-attention, but this line, despite commenting as num_queries x batch_size x 2, actually operates on num_queries x batch_size x 4 if printing out the tensor shape. Does this perform better than only using x&y or they are similar in performance?

For the first question, you are right, and it seems a bug in our implementations.
For the second, we only use PE(xy) as positional queries, see this line, which will slice the PE(xywh) to PE(xy).
By the way, we will use projected (PE(xywh)) as pos query for self-attention.

Hi, I was confused about temperature for pos emb.
Thus, is your code available in github different with code of paper?
Or, Did you use temperature of 10000 ?

I think the temp=20 currently is used in the image position encoding only, see main.py and position_encoding.py.
Agree with @YellowPig-zp, this temp=20 should be also applied to the box position in the cross attention, which is also ranged from 0 ~ 1.


What are the functions of "ADcmd" and "FTcmd" in "pipe.sh"?

Thank you for the great work and code sharing. I find that ADcmd and FTcmd in pipe.sh are not explicitly designated and initialized with two empty strings, but they are still part of the commands like:
python3 adapt.py --pickle --dataset ${dataset} --method ${method} $ADcmd

So what are the functions of these two variables? Thank you in advance!

Just for the cases in which you have not formally defined a method in configs/methods.yaml, but want to modify some arguments of a specific method. It's ok to delete Adcmd and FTcmd.

Just for the cases in which you have not formally defined a method in configs/methods.yaml, but want to modify some arguments of a specific method. It's ok to delete Adcmd and FTcmd.

Thanks a lot!


monitor: Always print ObservationSource for DNS events

Printing "Query" doesn't add much information since we already know that
these events correspond to DNS requests/responses. This commit modifies
the monitor output for DNS events to always print DNS.ObservationSource
instead.
Signed-off-by: Michi Mutsuzaki<EMAIL_ADDRESS>monitor: Always print ObservationSource for DNS events

/test

/test


Update volsync policy with official ACM 2.4 image locations

Signed-off-by: Tesshu Flower<EMAIL_ADDRESS>

FYI @jnpacker

/lgtm