Add Wavelet Operator

Wavelet Operator for wavelet-reco
For wavelet transforms we use The PyTorch Wavelet Toolbox (ptwt), which extends PyWavelets (pywt). It provides GPU and gradient support via a PyTorch backend.

I get the following error:
worker 'gw3' crashed while running 'tests/data/test_movedatamixin.py::test_movedatamixin_convert[True-dtype1-single]'
As I did not change anything there, I was wondering if @fzimmermann89 has any ideas what this could be about?

Out of curiosity: pytorch wavelet toolbox changed some type hints as we suggested (on their current GitHub version)
I don't remember why we cared - does this help?
Or will this now cause issues with the current waveletop code?

Out of curiosity: pytorch wavelet toolbox changed some type hints as we suggested (on their current GitHub version)
I don't remember why we cared - does this help?
Or will this now cause issues with the current waveletop code?

As far as I can see this fits to your typehinting in the code so it should not be a problem.

For testing the implementation we used some real scanner data already. Should we create an example script / notebook from our test case and directly include it in this PR?

Should we create an example script / notebook from our test case and directly include it in this PR?

The example we had during the hackathon was already for a FISTA + Wavelet reconstruction. I would therefore suggest to add this example to the FISTA PR.

@CodiumAI-Agent /review
--pr_reviewer.extra_instructions="
In the possible issues section, emphasize the following:

Is the code logic efficient?
Is it idiopathic pytorch code?
Are all variable und function names clear and descriptive?
Are additional comments required to understand the logic?
Check the docstrings for completeness
"
--pr_reviewer.inline_code_comments=true
--pr_reviewer.require_score_review=true
--pr_reviewer.num_code_suggestions="8"

Persistent review updated to latest commit https://github.com/PTB-MR/mrpro/commit/058e475b9be42cdd66ed0c50b6e22e5d743bb014


Page for submit new masjid/place

Currently the page still redirect to the default one: https://kawalmasj.id/user/notes/new

After login, the site header Add button can be changed to /user/places/new

The mvp is already there


VSCode and Android Studio installed apps get stuck on the splash screen

Steps to reproduce
This is the example app (flutter create example), it gets stuck on the splash screen if launched from VSCode or Android in the following configuration:

macOS or Windows
Debugging on Honor MagicPad 2 connected through Wireless Debugging (cable connection works fine)

Expected results
The app should have a successful initialization of course.
Actual results
It gets stuck on the splash screen.
Code sample
This occurs with the example app, no modifications made
flutter create example

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
VSCode run logcat output
Android Studio run logcat output
CLI run logcat output
Flutter Doctor output
Doctor output
flutter doctor -v
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0.1 24A348 darwin-arm64, locale en-ES)
    • Flutter version 3.24.3 on channel stable at /Users/Tomas/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (4 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/Tomas/Library/Android/sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = /Users/Tomas/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] VS Code (version 1.94.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.98.0

[✓] Connected device (4 available)
    • ROD2 W09 (mobile)               • adb-AFAGBB4911000563-m2gQ0K._adb-tls-connect._tcp. • android-arm64  • Android 14 (API 34)
    • macOS (desktop)                 • macos                                              • darwin-arm64   • macOS 15.0.1 24A348 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad                              • darwin         • macOS 15.0.1 24A348 darwin-arm64
    • Chrome (web)                    • chrome                                             • web-javascript • Google Chrome 129.0.6668.90
    ! Error: Browsing on the local area network for iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)

[✓] Network resources
    • All expected network resources are available.

• No issues found!

After running again in VSCode with the flag --verbose (see logs here), I think this is a duplicate of #144999

Hi @tomassasovsky, on the issue you mentioned above https://github.com/flutter/flutter/issues/144999, I see one report for Honor device there. This seems to only occur on some specific devices.
I will close this to concentrate on that one since that issue gets attention already. Please follow the steps at https://github.com/flutter/flutter/issues/144999#issuecomment-2108690105 that will help team have more info to debug the issue further. Thank you!

Sounds good, thank you!


Schedule is invalid

https://github.com/fluxcd/community/actions/runs/8467767683
Invalid workflow file
`schedule` accepts a list of one or more maps with the `cron` key set

(This should fix it)

@kingdonb do we need this at all anymore or is the plan to update for the next kubecon?

Yes, it worked great, I want to keep the workflow around until next Kubecon, or until we can find a better home for it. If we decide to manage kubecon.md manually it would maybe work just as well, but I think it's more inclusive for community maintainers to have the Google Sites wysiwyg interface, even if it's a bit clunky.

Re: future plans, see notes in:

https://github.com/fluxcd/website/pull/1879

@stefanprodan 🍹
Hope you guys are having a nice trip!


Remove deprecated ipconfigRAND32

Description
The macro's ipconfigRAND32() and configRAND32() are not in use anymore. In TCP V2.2.1 releases the ipconfigRAND32 macro was replaced by xApplicationGetRandomNumber().
Removing the instances of ipconfigRAND32 from the code.
Test Steps
Jenkins run
Checklist:

[NA] I have tested my changes. No regression in existing tests.
[NA] I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue
PR 782
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run formatting

/bot run uncrustify

/bot run uncrustify


fix padding, line spacing of  and  on program, project, and opp detail pages

https://github.com/BCDevExchange/devex/commit/f4fcc1aa803cae7b476bbc554379aaa2067a6474


"NDBC" commit introduced an eventTime string bug?

I'm guessing the recent, latest release of sensorml2iso is now being used to generate iso metadata records for NOS-COOPS, based on tests starting yesterday (8/20). It looks like my "NDBC" PR actually introduced a bug in the GetObservation eventTime string for non-NDBC service endpoints!
This is what a current NOS-COOPS GetObservation link looks like, taken from the IOOS Catalog:
http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?eventTime=2018-08-19T16:12:49None/2018-08-19T18:12:49None&request=GetObservation&version=1.0.0&responseFormat=text/csv&offering=urn:ioos:station:NOAA.NOS.CO-OPS:9087096&service=SOS&observedProperty=http://mmisw.org/ont/cf/parameter/sea_water_temperature

The eventTime arguments have an aberrant "None" string at the end of each datetime:  2018-08-19T16:12:49None/2018-08-19T18:12:49None. Previously there was no timezone suffix after the datetime, and this argument would've looked like this: 2018-08-19T16:12:49/2018-08-19T18:12:49.
I think the fix is simple, and involves changing this line:
utc_code = 'Z' if self.sos_type.lower() == 'ndbc' else None

to
utc_code = 'Z' if self.sos_type.lower() == 'ndbc' else ''

But I haven't tested it, and won't have time at least till mid Wednesday.

Resolved by #29.


Spyder fails to start

From<EMAIL_ADDRESS>on 2009-10-22T06:21:09Z
Once I installed spyder successfully. Then I upgraded My KDE to 4.3.2 and
removed all obsolete package. Then spyder failed to start. I attached the
terminal result.
So I downgraded my system. But still spyder fails to start
the terminal out put is
sooraj@sooraj-laptop:~$ spyder
Segmentation fault
sooraj@sooraj-laptop:~$
How can I solve this problem.
Attachment: error report spyder
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=95

From<EMAIL_ADDRESS>on 2009-10-23T10:03:38Z
I reported this problem to one of my friend. He said the problem is because I by
passed the package manager by using "python setup.py install". He also said in order
to solve this problem I should convert into debian package and should install using
package manager.

From pierre.raybaut on 2009-10-25T08:02:19Z
I think that you may upgrade again to KDE 4.3.2. The only thing is that one package
were missing (QScintilla) -- on debian:
$ sudo apt-get install python-qscintilla2

From<EMAIL_ADDRESS>on 2009-11-15T12:07:15Z
I tried to install Spyder in opensuse 11.1, 64 bits, 4.3.3 (KDE 4.3.3, release 179;
this is a Factory version), and I got a segmentation fault.
I've found some users also having problems running the Eric python IDE, we get a
segmentation fault. The possibly interesting thing concerns some common dependencies:

PyQt4 4.x (x>=3 ; recommended x>=4)
QScintilla2 2.x (x>=1) (PyQt4 extension)
I've read in forums and bug mailing lists several users are having this problem with
Eric after some upgrade from repositories as early as of July of this year.
Another user reported no trouble until he/she made an upgrade of qt or pyqt, seemingly.

From<EMAIL_ADDRESS>on 2009-10-29T01:42:09Z
python-qscintilla2 is already installed in it. Now I'm learning to make a deb package
for this program. Other wise package manager will not consider its dependencies.

From<EMAIL_ADDRESS>on 2009-12-10T11:25:22Z
I'm having the same problem here. Both spyder and eric are refusing to start in
opensuse 11.1 x86 (with qt4 packages updated from opensuse 11.1 stable/kde4
repository)

From<EMAIL_ADDRESS>on 2009-12-01T10:39:09Z
I have the same problem on Fedora 11/12, running kde 4.3.3-4. In contrast to comment
4, my eric ide is running without segmentation faults. I checkt the PyQT and
qscintilla versions and they seem to meet the stated requirements.
I can run spyder, as long as I don't load the editor plugin. The normal startup with
the debug option activated gives me the following error message:
=======================================================
[andput@AFCC-1696-FED ~]$ spyder -d --profile
Start of MainWindow constructor
Initializing...
End of MainWindow constructor
*** Start of MainWindow setup ***
Loading workspace...
Loading editor plugin...
Segmentation fault (core dumped)
====================================================

From<EMAIL_ADDRESS>on 2009-12-10T11:49:30Z
I have to correct my own words from previous comment #6.
After removing python-qt4, python-sip,... and refreshing them from the opensuse 11.1
stable/kde4 repository both eric and spyder seem to work

From<EMAIL_ADDRESS>on 2009-12-10T22:46:14Z
I tried your solution, de0a100, but it didn't work for me.
I will be moving to Opensuse 11.2 and KDE 4.3 stable in a week or so, I will check then.

From pierre.raybaut on 2010-04-10T05:00:16Z
Status: Done


[NEW ICON] Elysia

Skill Name
Elysia
Why?
Elysia uses typescript with End-to-End Type Safety, unified type system and outstanding developer experience. It is powered by the emerging tool Bun with [uWebSockets ](https://github.com/uNetworking/uWebSockets] and reaches incredibly low response lantency.
I think that bun will grow up to be big and sow will Elysia in the future.
Reference Image

Added in e67133b!


with me.button() fails as button does not return a compatible object.

The quick start docs show a button component being combined with a 'with' statement but the button component does not return a compatible object.
The supporting linked code example does not match the documentation as there is no 'with' combined with a button as mentioned in the QuickStart.
Quickstart: https://github.com/google/mesop/blob/main/docs/getting_started/quickstart.md
with me.button(on_click=button_click):
  me.text("Increment")

Linked mismatched example: https://github.com/google/mesop/blob/main/mesop/examples/docs/counter.py
me.button("Increment", on_click=button_click)

Thanks for reporting this! I've fixed it.


v2: updating borderWidth or pointStyle does not redraw

Hi guys,
I have a line chart with
<LineChart data={chartData} options={chartOptions} width="1000" height="600" redraw />
When I change the borderWidth in chartData (in a dataset), the chart isn't redrawn. Even with redraw-option this has no effect.

@Jareechang any idea when this will be merged??


Fix - Chat - Compose box stays in the middle when reduced with a several lines message

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/49541
PROPOSAL: https://github.com/Expensify/App/issues/49541#issuecomment-2364519871
Tests

Open the staging.new.expensify.com website.
Open any chat.
On compose box, start writing a message adding new lines until a scrollbar can be seen.
Tap on the "Expand" button.
Keep adding lines to the message until a scrollbar can also be seen with the compose box expanded.
Reduce the compose box size.
Verify that the compose is scrolled to the bottom

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

Same as above

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/1f8475f0-de18-4738-a494-240b77954f81

Android: mWeb Chrome

https://github.com/user-attachments/assets/3f3b74bc-edc4-428e-ab99-65f6aff38c00

iOS: Native

https://github.com/user-attachments/assets/ed71eb80-89fa-4034-9721-05f1acea4489

iOS: mWeb Safari

https://github.com/user-attachments/assets/f7de09d7-c248-4be5-8f2d-0112c8174029

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/37f6d1ff-12fd-4a8d-b283-c27ef8694a70

MacOS: Desktop

https://github.com/user-attachments/assets/f6d095d2-d2ff-4037-a227-9e0654acb3d9

still working on native behaviour 👍

@rayane-djouah, I am having difficulty scrolling the text input imperatively on native, unlike the web case. There is neither scrollTo function nor scrollTop prop to set on the ref. Do you have any suggestions?

But @rayane-djouah I am seeing the same problem as the OP in IOS, for instance,
https://github.com/user-attachments/assets/53147903-31c3-4e61-9cad-cc5b108a1105

@rayane-djouah Tests fixed

Fixed I suspect it is related with regression caused by the bridge less pr solved it by giving some delay
https://github.com/user-attachments/assets/30f30213-504f-4d00-b332-67fe08608d58

Hey @rayane-djouah I have been exploring how to programmatically scroll text inputs on natives and I found that we need to add scroll view for android, for instance, here

So I think there couldn't be any other workaround in react native and experimented the possibility of it but as you take the scrolling ability of the text input to the the scroll view you lose the auto grow behaviour of the text input and also there could be other side effects. Moreover, it wouldn't make sense to apply this kind of workaround considering the importance of the original bug.
It looks like I am running out of ideas now but fortunately, the problem only exists on IOS (assuming Android scrolls to the cursor by default) so I hand it to you for any decision on how to move forward. Thx!

@rayane-djouah resolved

It feels a little teeny tiny bit weird to me, but I think I still prefer it over losing visibility of my cursor. Keen for the other designers to weigh in.

Yup, I agree with that. Feels like an improvement for sure though!

Agree with you both

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


[Feature Request] Add option to download best format for all audio languages

Checklist

[x] I'm reporting a feature request
[x] I've verified that I'm running yt-dlp version 2021.09.25
[x] I've searched the bugtracker for similar feature requests including closed ones

Description

Add option to download best format for all audio languages (ofc it's assumed language code is present)
afaik --audio-multistreams will download all audios
so say -F is as follows
dash-audio en
dash-audio en high bitrate
hls-audio en
dash audio hi
dash audio hi high bitrate

I want to download best possible format for each lang so in this case it will be hls-audio en and dash audio hi high bitrate
The option can be ba[lang=all]
or --all-audio-langs

What is the way to select the best streams for a set of specific languages (e.g. the best ones for English, German and Russian), I didn't manage to find a way either from the issues here or the man page.

What is the way to select the best streams for a set of specific languages (e.g. the best ones for English, German and Russian), I didn't manage to find a way either from the issues here or the man page.

Your question has nothing to do with this issue.
--audio-multistreams -f "ba[language=en]+ba[language=de]+..."

i likely what you want. If you have further questions, open a new issue.

@pukkandan It kinda does, at least as a stop-gap measure, but the application refuses to download anything, if it gets asked for a non-existing language track that way (even if some of the language tracks are available), is there a way around this?.

This is a bad shell script I wrote that outputs all the audio formats. I’ll probably incrementally improve it later.
https://gist.github.com/6f3090b5fe9797202d6e03c1c1727f5b

If and when this feature is added, it should also ensure that the video file’s default track is the original track.

I see audio language filters could be implemented in similar way as subs. From a user perspective it would be the easiest to handle both this and #6755


[gn] Make xwalk_runtime depend on xwalk_resources

We need to depend on xwalk_resources, not generate_xwalk_resources:
the former copies certain headers produced by the latter to the location
xwalk_resources expects.
Without this dependency, the build can fail like this:
../../xwalk/runtime/browser/ui/desktop/exclusive_access_bubble.cc:12:10: fatal error: 'xwalk/grit/xwalk_resources.h' file not found
#include "xwalk/grit/xwalk_resources.h"

BUG=XWALK-7180

lgtm

@heke123 fyi

Yes, I found this problem when build crosswalk-android too. Thanks to correct this.


Houston custom link to / without IronRouter is broken.

Houston custom link to / without IronRouter is broken.
1.Grab repo at https://github.com/AlexeyMK/repro-houston-bugs,
2. Run it (you'll need to create a Facebook app to work on localhost, sorry) - log in with FB.
3. Ensure that the non-admin stuff works (IE, you can move your character around)
4. Go to http://localhost:3000/admin/ and claim admin.
5. Click on 'Back to Game' link.
Expected: Sends us back to '/'
Actual: IronRouter error and nothing happens.
Speculation: need to define a default root to '/' for the IronRouter-less case.

The CSS also does not get loaded. The best way for me is the window.location hack.

Window.location.replace('/') works better and enables the "back" button. http://stackoverflow.com/a/8969975/2486953


Move EndpointIndex logic to common area, use in ConfigGenTest

This makes no change in prod code, and almost no change in test code. It
is a dependency for https://github.com/istio/istio/pull/46329, though.
Once that lands, we need a proper XDSUpdater keeping the EndpointIndex
in sync for all cases; today the tets under v1alpha3/ do not use a
DiscoveryServer (can cannot - looping deps), but they need an
EndpointIndex. This prepares them to use one.

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
eabdad3485e1a723c578f27a5ffed3650e65195a
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio
7a995ed675d61cba02c75ef35c0821519765f24c
link
unknown
/test integ-security-multicluster

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


mask for detector

Hi,
I am using find_object_2d for a single object detection and manipulation task with a robot arm.The object is well known so I can detect it even with a single RGB camera. I need precious and robust result that seems to be reached with SIFT detector and description however I'm sure that I can do something better with a color based mask in order to filter out all the keypoints that can be similar but belong to a region with different color. So how can I impose a mask for detector?
Thanks

The function here: https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/MainWindow.cpp#L1318 can use a mask as parameter. You may create a mask from the input depth image topic like this.

It seems that findObject::detect doesn't accept directly a mask.
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/FindObject.cpp#L1423
However it uses the class ExtractFeaturesThread
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/FindObject.cpp#L1447
in which the mask seems just initialized
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/FindObject.cpp#L749-L756
If I've understood fine you are suggesting to replace the initialization of the mask with its 4th channel. Of course I have to give as input a 4 channel image. Is it right?
I've tried to change the code in the following way
std::vector<cv::Mat> channels;
cv::split(image_, channels);
computeFeatures( 	detector_, 	extractor_, 	image_, 	channels[3], 	keypoints_, 	descriptors_, 	timeDetection_, 	timeExtraction_);
but it doens't work can you give me some suggestion please?
Thaks

It seems that findObject::detect doesn't accept directly a mask.
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/FindObject.cpp#L1423
However it uses the class ExtractFeaturesThread
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/FindObject.cpp#L1447
in which the mask seems just initialized
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/FindObject.cpp#L749-L756
If I've understood fine you are suggesting to replace the initialization of the mask with a variable mask  that is the 4th channel. Of course I have to give as input a 4 channel image. Is it right?
Thanks

If you are using ROS, we can make rtabmap subscribe to a depth image (single channel 16bits unsigned short, or CV_16UC1). The depth image is passed here before FindObject::detect() gets called:
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/MainWindow.cpp#L1296
As I said, you can add a new parameter to the function FindObject::detect(..., const cv::Mat & mask), and you can convert the depth to a mask matrix (CV_8UC1) using the conversion code I linked to pass the mask to that function. The mask can be then redirected to ExtractFeaturesThread.
Regards,
Mathieu

I've tried what you suggested and it works fine. Thanks
Is there any way in order to avoid the tf publishing? (it is wrong because the depth channel is fake)

You could set if(0) here:
https://github.com/introlab/find-object/blob/fd9270a5617f31087bc61c3fae919961a2240b78/src/ros/FindObjectROS.cpp#L61


Failed adding user: Captcha: after entering captcha response + click enter, nothing happens in terminal

Install using binary bundle (kobodl-macos-latest)
Describe the issue
Failed adding new user.
./kobodl-macos-latest user add
To Reproduce
Steps to reproduce the behavior:

Navigated to directory where kobodl-macos-latest is located in terminal
In terminal, typed ./kobodl-macos-latest user add
Entered my kobo login email on prompt
Entered my kobo passcode on prompt
Opened chrome incognito window, opened developer mode, click Console Tab
Cut and pasted code into Console tab as per instructions
clicked the check box
cut the captcha response
pasted the captcha response in terminal
clicked enter

Nothing happens.
repeated three times now.
Checked no user added as suspected, typing in terminal ./kobodl-macos-latest user list
Email    UserKey    DeviceId

xx@xx-MacBook-Air mackobo %
Expected behavior
A new user to be added to kobodl

Desktop (please complete the following information):

OS: [10.15.6]
binary bundle for mac, python 3.8
Kobodl Version [assuming latest]

Thankyou for any assistance.

Try not pasting it. The captcha response should be read from your clipboard without having to paste.  The "paste it here" instruction is outdated.
Just copy it, come back, and press enter.

Thankyou, that worked.
Do I need to only do the captcha hack, each time I login to kobodl or once in for period of time?
Does kobodl support being on a VPN ?

You only have to log in once.  You shoudln't need to do that again.
If you have a VPN active, all connections, including Kobodl, will use it.


Evaluate an LLM reranker after finetuning

Hello, is there a way to evaluate an LLM reranker after I finetune it on my own training dataset? Also, how should the test be structured? Same as the training data (e,.g. toy_finetune_data.jsonl)? Thank you

Hi, @majdabd ,  currently, there is no simple script for evaluating the reranker model. You can use reranker model to compute scores for pairs, and then sort them, finally compute the metric which can refer to the evaluation script of the embedding model: https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/baai_general_embedding/finetune/eval_msmarco.py#L250-L260 .
We plan to add an evaluation script in the future.


chore(docs): add stormkit to deployment guide

Description
Add Stormkit to guides
Additional context
https://www.stormkit.io
What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[x] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

@patak-dev / @bluwy can you please review this PR?

How are the deployments counted in the free version @svedova? It says 15 deployments, other services we listed like https://render.com/pricing doesn't have this restriction. I'm a bit worried also about keep adding more to this page, I think we are reaching the point where we should link to the docs of the products instead of maintaining the guides ourselves. I'll bring this addition to a team meeting to discuss (but to set the expectations correctly, we have quite a bit of a backlog after the holidays)

How are the deployments counted in the free version @svedova?

@patak-dev thanks for looking into this! Free users can deploy up to 15 times each month. At the beginning of the next month, the counter is re-set. Render may have a different pricing strategy, but I'm sure they also have limitations on the free accounts :)

I think we are reaching the point where we should link to the docs of the products instead of maintaining the guides ourselves.

I'm the co-founder so I'm happy to keep an eye on this. Linking to docs is also another possible option. Nuxt for instance has a built-in preset for Stormkit so they have a page dedicated to Stormkit in their documentation. I update the docs whenever there are significant changes.

@patak-dev any news with this one?


Package not found PX4_Controller, Image_Pub, Caffe_ROS

I followed the Wiki pretty closely, I am able to get gazbeo running with QGround Control linked in.  I did use the nvidia docker image but when I try to run the controller node, image and caffe it says package not found for any of them.  I see the folders (although they are showing archived red?)  for each of those packages inside the ws in docker.

Our Docker build script creates symbolic links to redtail source code rather than pulling the sources directly into the container. Please check the target for those symlinks and make sure they point to the right place (i.e. redtail source code directory).

Thanks Alexey,
I will try checking the symlinks to make sure they are pointing to the right spot.

Hey Alexey,
Just wanted to say thanks that did the trick, I was not pointing at the correct directories.


WIP: Fiberplane Auth integration

PR is WIP.

The basic flow/components are:

Deploy auth service (fp-services), which:

Has credentials of GitHub OAuth application
Can create JWTs for users who log in with GitHub
Can forward JWTs to local studio
Has authenticated routes for AI request generation

Configure Studio to run a tiny local auth server in the background, which gives us a predictable port to communicate with the auth service mentioned above

Modify Studio UI and API to allow users to log in

Modify Studio settings page for AI Request Generation to include details about using FP as the "model"

TODO

[ ] Implement AI calls agains FP service
[ ] Show remaining requests in UI
[ ] Propagate expiry

Worth noting: Auth does not work universally if you have multiple instances of Studio running — since it is using a predefined port.


build: reduce the image size using build stage

Reduced the overall image size using the build stage for libraries installed using craft.
Reduced the logs output in the terminal
Made squishrunner command more configurable for testsuite path - now we can specify testsuite while running the test

Size:

Size
Previous
Now

Compressed
~2.22 GB
~1.1 GB

Extracted
~5.76GB
~2.67GB

Off-topic but I guess the qt5 part can be removed

Do you mean qt512 folder from the repo?

Off-topic but I guess the qt5 part can be removed

Do you mean qt512 folder from the repo?

yes I've seen it in the ci run

yes I've seen it in the ci run

I will open a ticket for removing it and then we can do it later on.
Could you merge this PR. I don't have enough rights to merge it.

I will open a ticket for removing it and then we can do it later on.

here it is https://github.com/owncloud-ci/squish/issues/59

Thx


The number can be anything positive or negative to produce the same results.

>Normal text blah blah blah, blah blah blahblah blah blahblah blah blahblah blah blahblah blah blahblah blah blahblah blah blah
___

>Normal text after a paragraph break that acts as you would expect it to and formats with normal font and normal line spacing to match the rest of the document.

>Normal text blah blah blah, blah blah blahblah blah blahblah blah blahblah blah blahblah blah blahblah blah blahblah blah blah
___

>Normal text after a condensing Div break that squishes up the spacing and makes the font slightly smaller. In the note box it's a lot more noticable.

The markdown parser is not surroundig the text immediately following your
 with a
 tag, which does not apply the appropriate styling.
Try adding a newline after each closing
 -- that will produce better HTML and apply the necessary styles.

Closing because this appears to be solved.


EMPIAR ID link is not working

Steps to Reproduce

Go to Browse All page
Click on an EMPIAR ID link

Expected Results
Empiar page should be displayed
Actual Results
Service Unavailable page is opened

@lauramarcos we can close this since this is outside of our website :)


Regular Expression Data Annotation breaks Create()

I recently got an error creating an Object with AutoFixture. The error was 'cannot convert type string to integer'. The property in question was an integer and I had set the RegularExpression DataAnnotation to '\d\d:\d\d'.
The idea  was that the input for the property would take hours and minutes seperated by a semicolon. The value would translate (via a custom Json Converter) into an integer variable (the total minutes).
Looking back at the problem at hand it is obvious that AutoFixture tried to create a string that fits the regex and stuff it into an integer property. Which should not work of course.
The lack of a more detailed exception message did force me to debug the issue for quite some time though. Maybe some more information in the message would have prevented that from happening. I would have loved to see the property on which the creation failed and maybe event the value that was created by AutoFixture for that property.

The value would translate (via a custom Json Converter)

If you need a custom Json Converter to translate your value, you should customize AutoFixture first so that it's able to use the converter.
Though, moving from primitive obsession to domain modelling could be a better option.

You're absolutely right. I did solve the issue by using a better datatype for the property (Timespan). I just wanted to point out that maybe the exception handling by AutoFixture could have been better.
As to the domain modelling point:
The validation and json conversion was already a part of the model. Nevertheless thanks for linking the post ! I like the idea of wrapping validation and constraints into the datatypes themselves.

I just wanted to point out that maybe the exception handling by AutoFixture could have been better.

Should we discuss this on a separate issue? If so, could we close this one? :smiley:

Oh sure, no problem!


[New WTFBin]: NetBIOS over TCP

Ductape and Dreams:
NetBIOS over TCP
Listens on random high ports and has machines all over the network connect at odd times.
https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NBTE/[MS-NBTE].pdf

Completed with 0db326742d9ea11532cc8b7c763797272e89a1ef


@import throws fatal error

sample code
@import "bootstrap/mixins";

Output
$ sass-lint --verbose
Output successfully written to ./linters/sass-lint.html
/usr/local/lib/node_modules/sass-lint/index.js:294
    throw new Error(errorCount.count + ' errors were detected in \n- ' + errorCount.files.join('\n- '));
    ^

Error: 1 errors were detected in
- contents/assets/css/_bootstrap.sass
    at Function.sassLint.failOnError (/usr/local/lib/node_modules/sass-lint/index.js:294:11)
    at detectPattern (/usr/local/lib/node_modules/sass-lint/bin/sass-lint.js:33:10)
    at Object.<anonymous> (/usr/local/lib/node_modules/sass-lint/bin/sass-lint.js:94:3)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.runMain (module.js:590:10)
    at run (bootstrap_node.js:394:7)

What version of Sass Lint are you using?
1.9.1

Please include any relevant parts of your configuration
Config taken from README link, adjusted include / exclude paths

What did you do? Please include the actual source code causing the issue.
above

What did you expect to happen?
Not fatal, display lint errors

What actually happened? Please include any error messages given to you by Sass Lint.
fatal, error above

If you're using a IDE plugin have you tried the CLI too?
n/a

You need to re read the CLI documentation and the Readme. You've probably got a rule set to severity 2 but haven't passed the -q or the --no-exit flag when you've run it from the command line. Please see here.
If there's something else that's not working please let us know.


Homematic IP

I have issues setting up Homematic IP BROLL and BBL as shutter (Jalousie).
iQontrol seems to require a dedicated up and down signal whereas the devices only give the current shutter (and slats for BBL) state.
The bar also seems to display a value from 0 to 100 whereas the device works with values between 0 and 1.
Is there any possibility to support this? For example configure min and max shutter level and setting the shutter level directly instead of working with up and down signals?

Hi,
iQontrol should accept a level as setpoint - you can, but you dont have to define dedicated buttons with up and down.
Also the min and max of the datapoint is used to set the borders of the bar. If they are not correctly defined in the datapoint of the homematic ip device, you can modify them via the wrench-symbol of the datapoint. Go to the iqontrol tab and set your custom min and max to 0 and 1.
If you have further problems, please post a screenshot of device's datapoints and the raw of the level-(or state?)-datapoint. Maybe you could also post screenshots of your iqontrol-configuration.
Best luck,
Sebastian

Hi Sebastian,
thank you for your answer! I figured out the main problem was that the device was set to readonly which caused the bar to display incorrectly as well as not being editable. After removing the checkbox setting the shutter level works fine. However i didn't find how to set the slats accordingly. The only other datapoint which i thought could be responsible is "direction". But this does not seem to work.
Is there a possibility to control shutter ans slats or just the shutter?

Hi could you please post a screenshot, wich datapoints the homematic device offers?

Hi,
0.1.14 will provide a higher resolution for level-sliders, if the range is small. Please report if this solves the problem with the slider?
I will also add slatsState soon, but, for now it is not possible to set the slats.
Greetings, Sebastian

Thank you Sebastian,
i will await the next update!

Slats are now available in 0.2.0.


Make it cool

Wassap bro, i got a suggestion for u try to separate the HTML and style contents by make an external CSS file linked with HTML 😉

I don't know how to. Must be complicated

Just if you haven't understood this concept, you can Google it easily!


If service returns HTML, get MobileServicePushFailedException with status Complete and no error

Updated by @lindydonna
If the server returns an HTML page for some reason (server misconfiguration, transient gateway error), the SDK tries to deserialize the HTML and fails. Then, it returns a MobileServicePushFailedException with no errors. The SDK should treat this case as if it were a 500.

Hi there,
First of all thanks for this amazing library!
I am using SQLiteStore and the managed version of the framework on a PCL project (then used by Xamarin on Android, iOS and WP).
Often I experience a MobileServicePushFailedException having the status « Complete » and absolutely no error (exception.PushResult.Errors) during the synchronization.
I have trouble understanding why and knowing if there is anything I can do about it.
Has anyone ever seen this? Could it be a bug?
Note: I do not know if it could impact the result but for full transparency I am using a workaround for 409 errors as seen here.

Hi Paul,
Could you possibly share your code that you are using?

I've just experienced a bug similar to this with xamarin. We have a large amount of data being sent with the verbs PATCH and PUT ~70KB. The mono system.net.http library handled sending the request but failed half the time reading the response and would eventually cause HttpClient to timeout.
This only occurred when we were expecting a 412, precondition failed. In this scenario, the response content would have been similar in size to the request and it seems this is where HttpWebResponse has the issues.
We were advised to try the Xamarin Alpha channel for updates to get the latest mono libraries. This resolved our issue. It might be worth investigating this for your scenario depending what version of mono you're on.

Sorry for the late answer.
I am afraid you are going to be a bit more specific, the project itself cannot be shared. What would you wish to have?
I will try with Xamarin Alpha versions if this fixes the problem that would be awesome.

Closing since it sounds like a Mono issue. Please comment if you have more questions.

We had this issue where our server was returning a 500 error in the form of an HTML yellow screen of death. Azure Mobile Services saved this HTML page into the __errors table and when it tried to deserialize it as if it were JSON it threw a serialization exception (since '<', the first character in the HTML page, was not valid JSON), which was then wrapped in a MobileServicePushFailedException like the one you describe. The end result was a confusing MobileServicePushFailedException that was marked as complete with no push result errors.

@seanfisher Interesting--we'll try to repro. Are you using MVC controllers in your server, and is that why it returned HTML rather than a JSON response?

We're using controllers inherited from TableController, and they do typically return JSON error messages. I can't remember why in this instance we got an HTML response, if it happens again I'll post more details.
Thanks for the workaround suggestion - that's a great idea, especially since we have a custom delegating handler that does custom auth and logging for us anyway. What is the expected JSON error format?

For a 500 error, any additional fields would typically just be used by logging code, so there's no need to customize.
Based on my research, you can get an HTML page if your site is misconfigured, such as missing an assembly or a typo in web.config.

@lindydonna I figured out one time when it happened. We're hosting our API on Azure, which has a load balancer and some backing instances. When the instances go out for any reason, be it an Azure outage, an app that eats up too much memory and crashes the instance, etc, the load balancer returns a 502 gateway error (in HTML). Since this could be out of the developer's control, what do you think about having the Azure Mobile Apps client handle this issue gracefully by checking the response before inserting the data into the __errors table?

@seanfisher Agreed--I'll file a bug for this. Just out of curiosity, what Azure service are you using to host?

@lindydonna We're using Azure App Services, with our main API using the Mobile flavor.

@seanfisher Good choice--that's the service our team runs. :)  I hadn't seen the 502 error before, but I don't have any big workloads running.

Could you confirm that the operation being performed is allowed on the table it's being performed on? I just experienced this same issue and it was because I was trying to update an entry which had it's update permission set to disabled on the server (there wasn't a clear error message but this very vague message)

@zezioen What error code do you get back for this case?

None, just this vague error message as described above, it did not throw a 403 permission denied error

@zezioen Right, but what was the actual HTTP error?  I.e., if you do a request in Postman or look at the traffic in Fiddler, what is the response code?

In Postman it returned a proper 405 Method not allowed with the content "Method update is not allowed", The Azure library in Xamarin.Forms doesn't relay this error properly it seems

@lindydonna

it sounds like a Mono issue

I think it is an issue with default HttpClientHandler from mono/Xamarin.Android. AndroidClientHandler works fine on Android 5+ devices, but not on Android 4.4 and lower.
Using ModernHttpClient is a workaround for me.

@PaulARoy Thanks for using Azure Mobile Apps. This issue was opened more than a year back. Please read the Readme section on this repo which talks about the future of Azure Mobile Apps.
I'll close this issue for now, but feel free to ask us questions if you have any. Thanks!


Firmware screen changes depending on the model you choose

The firmware screen is not always arduino/python/nodejs it changes depending on what model the user chose. Exceptions are Photon, and esps.

Addressed in 223e183


[Feature] Create Sponsors section

Sponsors are tiered (Gold, Silver, Bronze) based on their contribution
Create the section so that:
[ ] Gold tier sponsors display the biggest (relative to other sponsors)
[ ] Silver tier sponsors display bigger (relative to other sponsors)
[ ] Bronze tier sponsors display the smallest (relative to other sponsors)
[ ] Each sponsor is an image that is clickable and links to their company page
[ ] Each tier is on a different row
[ ] Add an on hover effect with the sponsor's name (see https://2022.hawkhacks.ca/#sponsors)

PR merged #71


Added guidance links

Added guidance links to markdown guidance section on right hand side of the Edit screen.
Links should open in a new tab or window.

Had a quick look at this with Ben.
The YAML can be corrected by using the pipe character for the multiline selections. Though once this is done the markdown is not rendered as these sections do not render govspeak.

@benhazell the code needed a bit of tweaking here to render the guidance body as govspeak. This should become more obvious when we do https://trello.com/c/AiMKvMd2/424-update-naming-of-html-and-govspeak-fields-in-locale-and-config-files.


Update submodules to the latest revisions

This is for 0.9.1
For libpainter, empty files AUTHORS, ChangeLog, NEWS and README would not be created by bootstrap. Those files are distributed if found. Distributing empty README would by not nice to the users.
For librfxcodec, it compiles with C++ now, so it brings the code to the level that we ask the contributors to follow. The compilation would also stops complaining of the unknown NASM tag.

+1


[Docs] Monitoring guide has not working img/gif paths

https://rubrix.readthedocs.io/en/stable/guides/monitoring.html
This fix is quite urgent, as we've shared this link publicly this morning.

@leireropl @dcfidalgo I'm tackling this

Closed by #1033


"setCurrent is not a function" for @xstate/react immediate: true + initial state transient transition

Description
Given a machine whose initial state (ex. bootstrapping) contains a transient transition (i.e. immediate null event transition), if the immediate: true option is specified for useMachine(), a runtime error will occur.
Expected Result
The machine starts without incident.
Actual Result
The following error is thrown when useMachine() attempts to start the machine:
TypeError: setCurrent is not a function.

because the onTransition() handler (triggered by the transient transition during startup) registered a few lines earlier references setCurrent() from a useState() call that has not yet occurred.
Reproduction
Admittedly a contrived example, but the goal here was strip the problem down to its essence:

CodeSandbox

NOTE:

Commenting immediate: true in the useMachine() call's options will resolve the runtime error but reveal the warning triggered when an event is sent by a descendant component before the service starts.
Commenting out the useMachine import from @xstate/react and uncommenting the import for the local useMachine implementation will allow you to try out the proposed fix in the PR linked to this issue.

Additional context
Encountered in: XState 4.7.0rc5
Why am I enabling immediate: true anyway? Because the real machine in question (several of which are instantiated at a time) receives events dispatched by descendent components before the useEffect() inside useMachine() starts the machine, which results in tons of warnings like this in the dev console:
Warning: Event "FOO" was sent to uninitialized service "foo" and is deferred. Make sure .start() is called for this service.

Generally, I'd probably be fine with deferring these events, but the noisy dev console is problematic.

fixed by https://github.com/davidkpiano/xstate/pull/756


Hot keys should be edge triggered

I haven’t put the scope on it yet but holding multiple keys looks like it’s doing PWM on the outputs

Oh I meant to fix that. But all the same given the BSRR write should match the existing pins settings, I'm surprised the output pins oscillate?

I can't repro unstable output pins, is that due to other changes in your tree?

Oh hang on I see what you mean: Multiple hot keys simultaneously? Why would you do that...

Never underestimate the stupidity, or creativity, of explorative testers

Haha, now fixed anyway :) Maybe not worth a new release in itself, as requires user to build the firmware themselves anyway, to see the problem.
My current minor annoyance is my first display of the OSD box is glitching again. That means the first time after power on, or OSD reset, that the OSD box appears (eg. Ctrl-Alt-Return) I see an instantaneous screen glitch. It does not happen again until next full reinitialisation. Can you repro that? It's very weird and I have no idea why it happens!


client

does anyone have a recommendation for a windows client to work with bonobo.  I have stuff setup on closed networks and most of the windows clients want to point to github.   I have a lot of client doing no code development with various tools so i need a way to version control their stuff.

Any Git client should work - just because they have easy setup for Github doesn't mean they wouldn't work with Bonobo.  Personally I use the ordinary command line client a little and Git Extensions a lot.  Some of my colleagues use Sourcetree instead.    GitKraken also works OK.


we need a /dcat feed out of this main website

envri-fair, (lifewatch-eric?), eosc-future
we should talk to

envri-fair TF1 person how they do it
eosc-future onboarding peeps
and hope both mechanisms can be aligned

mainly we should get a mechanism that allows to grab the /dcat in stead of the very specific gitlab publishing currently
(worst case we could copy over ourselves, or have a script to automate that)
content-wise, this /dcat should contain

list of children / crates (from yml)
and maybe upcoming future added fragmentations

introduce _data/dcat.yaml listing the (currently 3 repositories)  -- add all needed stuff in the yaml about them
provide _include templates for (a) generation of the html representation (b) generation of the json/ld (or turtle)
change the current indexpage stuff to include the generated html an jsonld

strongly connected to #1

FYI I have contacted several times TO NO AVAIL to ask how to onboard on EOSC Future.
I supect that one onboards to the actual EOSC Portal, and if that is the case then the instructions should be findable via  https://eosc-portal.eu/for-providers. I have asked yet someone else at LW to confirm this or give me a new URL for instructions


RAPIDS updates

This PR:

removes the nvdashboard installation from the startup script (https://app.clickup.com/t/1250339/DATA-498 ) since it's now in the base image
rewords some of the notebooks to make them aligned with current best practices
fixes an error with JupyterLab and Jupyter Server being out of sync by using a newer version of saturnbase gpu 11.2

I suspect the builds will fail because the new RAPIDS image doesn't exist yet


CLOUD-528 ability to start/stop by sending requests in a row

@lpuskas or @keyki please take a look and review it!

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/975/

lgtm @lpuskas please take a look

lgtm


typo To access a Kafka cluster with PLAIN authentication enabled

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Example 10.FSDP does not work for llama2-70b

Llama2-70b causes GPU OOM.
0:     main(args)
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/./train.py", line 247, in main
0:     train(model,
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/./train.py", line 92, in train
0:     optimizer.step()
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/pt_fsdp_haha/lib/python3.10/site-packages/torch/optim/optimizer.py", line 385, in wrapper
0:     out = func(*args, **kwargs)
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/pt_fsdp_haha/lib/python3.10/site-packages/torch/optim/optimizer.py", line 76, in _use_grad
0:     ret = func(self, *args, **kwargs)
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/pt_fsdp_haha/lib/python3.10/site-packages/torch/optim/adamw.py", line 187, in step
0:     adamw(
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/pt_fsdp_haha/lib/python3.10/site-packages/torch/optim/adamw.py", line 339, in adamw
0:     func(
0:   File "/fsx/marcverd/awsome-distributed-training/3.test_cases/10.FSDP/pt_fsdp_haha/lib/python3.10/site-packages/torch/optim/adamw.py", line 608, in _multi_tensor_adamw
0:     exp_avg_sq_sqrt = torch._foreach_sqrt(device_exp_avg_sqs)
0: torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 202.00 MiB. GPU 6 has a total capacity of 79.15 GiB of which 187.25 MiB is free. Including non-PyTorch memory, this process has 78.96 GiB memory in use. Of the allocated memory 75.63 GiBis allocated by PyTorch, and 1.63 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation.  See documentation for Memory Management  (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)

https://github.com/aws-samples/awsome-distributed-training/pull/230 should fix this by changing default sharding to full rather than hybrid.


Update strings.xml

Translated additional strings & few fixes

Few translation updates for app

Thank you very much.


Added Rust initialisation of Python-allocated bytes

Adds new_with<F: Fn(&mut [u8])>(py: Python<'_>, len: usize, init: F) -> &PyBytes as suggested by @davidhewitt in #617. This allows initialising new PyBytes in Rust like such:
let py_bytes = PyBytes::new_with(py, 10, |b: &mut [u8]| {
    b.copy_from_slice(b"Hello Rust");
});

Currently, it follows the semantics of PyBytes::new in that it panics if a memory error occurs in Python. Maybe my implementation of that could be improved.

I have also implemented a more specialised variant
new_with_and_truncate<F: Fn(&mut [u8]) -> usize>(
    py: Python<'_>,
    len: usize,
    init_and_truncate: F,
) -> &PyBytes

where the closure returns the truncated length of the final PyBytes. I think this might be too specific of a use case for this PR, but I can add it as well if you would be interested. This change can be viewed at https://github.com/PyO3/pyo3/compare/master...MoritzLangenstein:py_bytes_new_with_and_truncate.

With this function, we can get uninitialized PyBytes by
fn do_nothing(_bytes: &mut [u8]) {}
let py_bytes = PyBytes::new_with(py, 10, do_nothing);

So I think simply we should expose unsafe fn uninitialized or so

With this function, we can get uninitialized PyBytes

Ah, this is a very good point. Is it actually UB if we allow that? Might need to consult cpython docs further. What if we make this function unsafe, or alternatively always zero-initialise the bytes object before calling init?

With this function, we can get uninitialized PyBytes by
fn do_nothing(_bytes: &mut [u8]) {}
let py_bytes = PyBytes::new_with(py, 10, do_nothing);

So I think simply we should expose unsafe fn uninitialized or so

Would it be possible to use MaybeUninit here? I’ve never tried wrapping an existing value in it (and it will unfortunately take until tonight before I get back to my computer), but maybe we could pass the bytes explicitly uninitialised into the closure and return an initialised slice with the same lifetime from the closure? One problem I could see with that, though, would be that you could then return subslices ... On second thought, default-initialising the bytes or making the function unsafe might be easier.

Would it be possible to use MaybeUninit here?

It's basically union {(), T} so not applicable here directly.

On second thought, default-initialising the bytes or making the function unsafe might be easier.
What if we make this function unsafe, or alternatively always zero-initialise the bytes object before calling init?

Both of them are OK, but maybe zero-initialization is better?

Ok, let’s go with zero-initialisation then? In that case, should we explicitly add support for a zero- and / or an unsafe uninitialised constructor (neither of which would require a closure)? Personally, I can’t think of a use-case for that in Rust code right now, but maybe you might have some ideas.

How about new_with zero-initializes first, and unsafe new_with_uninit which has a # Safety note pointing out two things:

the slice should not be read, because it's uninitialised
the entire slice must be written, so that code which follows does not read uninitialised memory

I'm also happy only exposing the safe API if it's simpler. An extra write to the whole array can't be that bad, can it? :)

Regarding the truncate form, if you have examples of uses which are common enough then I'd be happy to consider it.

I initially came across #617 after having implemented pickling for my wrapper class as suggested in https://gist.github.com/ethanhs/fd4123487974c91c7e5960acc9aa2a77. The data structure I am serialising to bytes is large enough that the copying from Vec to PyBytes can lead to OutOfMemory errors. Therefore, I have a small compacting algorithm which reduces the size of the serde + bincode output. For this algorithm I have an allocation upper bound, which allows me to do the compaction in place. Afterwards, I can then usually truncate the buffer. For me, pushing the allocation of the buffer to Python and being able to truncate it after its initialisation would make the entire serialisation zero-copy. This is probably a very specific use-case.

* Can you check if any other objects should support the same API? For example maybe `PyString::new_with` or `PyTuple::new_with`. I haven't thought about this too hard, so it might not make sense for them. If it does, would be great to support a uniform API across the whole library!

@davidhewitt I have looked through the native types and think that only str, bytes and bytearray should share this API, as only they have the Py..._FromStringAndSize constructor methods (tuples unfortunately do not, see https://docs.python.org/3/c-api/tuple.html).
For the PyString, there still exists PyUnicode_FromStringAndSize(const char *u, Py_ssize_t size) but setting u to NULL
has been deprecated in favour of PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar). However, to use the latter we would have to know the largest char value, i.e. does it fit into 1-4 bytes, up front. How should we go about this - should we just expose maxchar as a required parameter as well?

Many thanks, will give this all a thorough read through in the morning!
For the example, you can just add an # Example section to the docstring of the method in question. e.g. like this: https://github.com/PyO3/pyo3/blob/51171f7475cdc671693c5c6f48350569e6dfac62/src/python.rs#L56

For the PyString, there still exists PyUnicode_FromStringAndSize(const char *u, Py_ssize_t size) but setting u to NULL
has been deprecated in favour of PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar). However, to use the latter we would have to know the largest char value, i.e. does it fit into 1-4 bytes, up front. How should we go about this - should we just expose maxchar as a required parameter as well?

I don't think we need PyString::new_with

Technically, even making a &mut [u8] that points to uninitialized bytes is potentially undefined behavior even if you don't read from it (assuming Rust decides that uninitialized integers are undefined behavior, they still haven't decided but it's better to be safe than sorry).
I think you may want to use either *mut u8 or &mut [MaybeUninit<u8>], since they are specifically designed to handle pointing to uninitialized data.

Thank you for the change. Let's make it simpler and add #Example as David says.

I have attempted to implement all of your suggestions. One everyone is satisfied with the current API, I would then implement it for PyByteArray as well.

I don't think we need PyString::new_with

PyString would be the only other remaining candidate I could think of, but it probably does not usually transport as much data around as PyBytes. I'll follow your recommendations here.

Why do we need new_with_uninit?

On an unrelated note, could you mention cargo clippy --tests and cargo test --doc (and any other checks made by your CI pipeline) in Contributing.md? Personally, I was, unfortunately, not aware that I had to invoke these explicitly in order to catch all the errors your pipeline does.

Why do we need new_with_uninit?

We could also remove it entirely - I just included it so we could see what an interface using MaybeUninit would look like.

On an unrelated note, could you mention cargo clippy --tests and cargo test --doc (and any other checks made by your CI pipeline) in Contributing.md?

Agreed that clippy --tests should be mentioned, but I think cargo test runs all doc tests by default

We could also remove it entirely - I just included it so we could see what an interface using MaybeUninit would look like.

If you don't have any use case, I think it's better to remove it.

could you mention cargo clippy --tests and cargo test --doc (and any other checks made by your CI pipeline) in Contributing.md?

Good suggestion, see #1075 - I also plan to extend CONTRIBUTING.md later today.

We could also remove it entirely - I just included it so we could see what an interface using MaybeUninit would look like.

Yeah I was thinking when it was essentially new_with but without the zero-intialisation it made more sense. Now, I think most users will choose to use new_with anyway. OTOH, it shows how complicated it is to get this API well-defined, so maybe it still serves some use? I don't have a strong opinion either way.

Also, on assessment I agree PyString::new_with is probably not so useful (and also I'm not sure it's easy to implement safely; the Python representation of unicode data has lots of representations for different platforms / optimisations).
For PyByteArray::new_with - I agree this can work. It's not documented, but it looks like PyByteArray_FromStringAndSize also returns an uninitialized object if the first argument is null: https://github.com/python/cpython/blob/8963a7f1f84a05412178b56629508b660d38861b/Objects/bytearrayobject.c#L145
Many thanks for your continued revisions to this PR - it's looking really really good 👍

Agreed that clippy --tests should be mentioned, but I think cargo test runs all doc tests by default

Mhm, maybe I was doing something wrong then. But I checked the docs and you are completely right that cargo test should run documentation tests by default.

Read through the code, LGTM!

I've thought about PyBytes::new_with_uninit and using it seemed to much of a hastle that I think most people would stick with the safe version anyway (and zeroing memory should be extremely well optimised anyway) - so as per @kngwyu's suggestion I've removed the method. I've integrated @davidhewitt's suggestion to use std::ptr::write_bytes for the zeroing. Finally, I've added PyByteArray::new_with which is a functional clone just with differently named API calls.

Does anyone know what went wrong with the tests there? I don't think this PR should have affected the iterator type - maybe we just came across a probabilistic bug?

I think looks like a probabilistic bug to me. As it looks quite hard to isolate and unrelated to this PR, I'm going to re-run CI and see what happens. (Any test which accesses the None singleton could be the cause of that.)

As CI is green, I'm going to proceed to merge. Thanks very much for your work on this ❤

Thank you very much to @davidhewitt, @kngwyu and @programmerjake for all your feedback and assistance in getting the idea into a great (and merged) PR! It has been an absolute joy to collaborate with you ❤

👍 glad to hear! If you feel like joining in for any more - please feel free to claim any issue you want to work on, or contribute to any design discussion, or write improved docs / examples, or even just hang out on Gitter and help others to use pyo3. (I'm going to write a more extensive CONTRIBUTING.md soon 😄)

I am sorry that I have to follow up on this discussion, but I came accross an interesting problem. (How) Can we support failure inside the init closure? Right now, we are implicitly assuming that nothing inside it can fail, which might not be the case. One way to resolve this might be to accept a Result<R, E> as a return type of init and to return Result<(&PyBytes, R), E> from new_with. What do you think?

Ah, great question! We could perhaps modify the return type of init to be PyResult<()>?
Note that because F: FnOnce it's possible to mutate references to other data outside the closure, so I don't think that we need to support an arbitrary return type R.
Im also happy to leave the API it as-is, and let users who need error handling use a similar trick as suggested above for other return values. It'd be less ergonomic, so it depends if we expect users of this API to typically be doing fallible operations inside init.
I guess we the answer is yes, because if they already had the data materialised then PyBytes::new would already be sufficient.

In fact, reflecting on the original truncate case further, perhaps the return type for init should be PyResult<Option<usize>>, where:

if the return value is Ok(Some(x)) then the bytes are truncated to length x
if the return value is Ok(None), this is equivalent to the current behaviour
if the return value is Err(e) then the bytes are deallocates immediately and the error is returned.

Also, if we change this function to be fallible, I think we should also remove the panic for out-of-memory from this API and related functions.
Does the above seem reasonable?

I also tried out the approach of mutating an outside variable - it just felt very un-Rusty to mutate a result variable inside a closure so it can be read outside. But for just returning some value, I think mutating an outside variable could be fine.

In fact, reflecting on the original truncate case further, perhaps the return type for init should be PyResult<Option<usize>>, where:
* if the return value is `Ok(Some(x))` then the bytes are truncated to length x

* if the return value is `Ok(None)`, this is equivalent to the current behaviour

* if the return value is `Err(e)` then the bytes are deallocated immediately and the error is returned.

Also, if we change this function to be fallible, I think we should also remove the panic for out-of-memory from this API and related functions.
Does the above seem reasonable?

That sounds like a very reasonable approach. Should we change the general new such that it returns a result as well?

Should we change the general new such that it returns a result as well?

Yes please :)
I think when the allocation fails a MemoryError should actually already be already be set by the underlying c apis?

I don't see why PyO3 should go out of its way not panicking for out-of-memory while the standard library does.

After fiddling around with the required changes to the API, I agree that returning PyResult from all constructors for PyBytes and PyByteArray makes the code more cumbersome and will just lead to a lot of unwrap()s. We could either remain at not catching any OutOfMemory errors or just catching them when we already return a result (though that semantic inconsistency might then become confusing as well). At the same time, I think forcing the user to think about those error cases also has advantages -- especially if they can forward them.

If the init closure returns an error, do we need to free the allocated bytes in some way?

If the init closure returns an error, do we need to free the allocated bytes in some way?

I think you would just need to call Py_DECREF on the pointer instead of py.from_owned_ptr.

I don't see why PyO3 should go out of its way not panicking for out-of-memory while the standard library does.

That's a reasonable opinion, and I'm happy to leave this as-is if you feel strongly about so. My motivation was that the equivalent Python just raises MemoryError exception, and usually for APIs where we have a Python exception possibly being raised, we return PyResult.
>>> bytearray(10**11)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError

From a quick check, at the moment it looks like our only constructors which return PyResult are for PySet / PyFrozenSet and the datetime bindings.

And Py::new, unfortunately.

And Py::new, unfortunately.

Yeah, that's a tricky one. While MemoryError is likely to be the error there, it's also possible for arbitrary user code to run e.g. from the tp_alloc slot.
Have you got examples where Py::new returning PyResult is not ergonomic? My general perception is that because #[pyfunction] and #[pymethods] can return PyResult, it's easy to handle APIs that return PyResult with ? unwrapping.

I think if we wanted to change the API such that out-of-memory panics are caught, it would have to be updated everywhere and would be a significant and breaking change. Allowing the initialisation of PyBytes and PyByteArray to fail is a separate issue. Should I add the error handling (and truncation) to new_with? If so, should new_with still panic on out-of-memory errors or already report them as Err? Since new_with would presumably be most useful in memory-constrained scenaries, I think reporting memory errors would be helpful here.

Agreed, it's a big change, so let's leave existing constructors as-is for now. Perhaps at some point we can review them across the library including the Py::new case.
Regarding new_with - I'm happy if you open a PR to add the error handling and truncation to it, I think it's useful in memory-constrained situations. And I agree that new_with should return PyErr on out-of-memory - this matches the behaviour of our other fallible constructors as well as being potentially helpful, as you say.

Yeah, that's a tricky one. While MemoryError is likely to be the error there, it's also possible for arbitrary user code to run e.g. from the tp_alloc slot.

Right, although I would have expected that for the types that are allowed there no fancy tp_alloc is possible.

Have you got examples where Py::new returning PyResult is not ergonomic?

I was using some closure heavy code where it can be a pain to thread the Results through to the toplevel. But I don't think it's a big issue.

Right, although I would have expected that for the types that are allowed there no fancy tp_alloc is possible.

This is true and I agree, though we might need to refactor some internals. I'll open an issue to discuss.

One issue I have come across is that testing for a memory error is quite difficult cross-platform. On my machine, the OOM kicks in instead (because the virtual address space allows the allocation) and just kills the program instead. Should we just do a best effort error handling (i.e. if we are lucky enough to encounter the error in Rust we will return an Err, but it might just kill your program as well) or just go back to the "it will panic/abort in some way" semantic? Is there a way to test this behaviour?

In the test for a failing initialisation (i.e. init returns Err), I would like to assert that the execution has not leaked any objects. Is there a way to do so in the Rust testsuite?

On my machine, the OOM kicks in instead (because the virtual address space allows the allocation) and just kills the program instead. Should we just do a best effort error handling (i.e. if we are lucky enough to encounter the error in Rust we will return an Err, but it might just kill your program as well) or just go back to the "it will panic/abort in some way" semantic? Is there a way to test this behaviour?

Ah, that's a fair point. I think when we're hitting limits of the machine like this it's hard to guarantee particular execution, so I'm happy to just leave it as "we'll try to give you an error if possible". I'm willing to accept that there probably can't be a test written for this case.

In the test for a failing initialisation (i.e. init returns Err), I would like to assert that the execution has not leaked any objects. Is there a way to do so in the Rust testsuite?

Good question. I'm actually not aware of any C API for this. I wonder if you can call into Python's tracemalloc module to get what you need?
If writing such a test is massively complicated, again I'm willing to forgo a test as long as the implementation is appropriately commented (e.g. // XXX: Make sure to deallocate here or bytes will be leaked!)

I have found two different ways of calling into tracemalloc:

Using https://docs.python.org/3/c-api/memory.html#tracemalloc-c-api (I have not tried that yet as the relevant ffi is incomplete in pyo3)
Using Python::run: this results in the following import error for tracemalloc: .pyenv/versions/3.8.3/lib/python3.8/lib-dynload/_struct.cpython-38-x86_64-linux-gnu.so: undefined symbol: PyFloat_Type

One slightly unrelated note: when I call Py_REFCNT inside init (which is now called before py.from_owned_ptr(pyptr)), the refcount is 0. Is that the expected behaviour?

Using Python::run: this results in the following import error for tracemalloc: .pyenv/versions/3.8.3/lib/python3.8/lib-dynload/_struct.cpython-38-x86_64-linux-gnu.so: undefined symbol: PyFloat_Type

Looks like you're using pyenv, so this discussion might be the cause of that: #763

One slightly unrelated note: when I call Py_REFCNT inside init (which is now called before py.from_owned_ptr(pyptr)), the refcount is 0. Is that the expected behaviour?

That's surprising to me, I thought it would be 1. Will need to check the cpython source to figure that out.

Looks like you're using pyenv, so this discussion might be the cause of that: #763

Thank you for the suggestion - in the end setting config.shared to true seemed to fix it. But from the discussion it was not clear to me where the config was so I had to grep for it. Should that information be included in the README as well or is that a developer-only fix?

One slightly unrelated note: when I call Py_REFCNT inside init (which is now called before py.from_owned_ptr(pyptr)), the refcount is 0. Is that the expected behaviour?

That's surprising to me, I thought it would be 1. Will need to check the cpython source to figure that out.

Maybe I was just measuring it wrong - anyways, I am now able to produce the behaviour where an allocation of 1MB bytestring without ffi::Py_DECREF has a memory difference >1MB whereas an allocation with ffi::Py_DECREF has a memory difference of >10kB. That should suffice to create a leak test.


To use meilisearch-vue in a demo project

Hi
I tried to use meilisearch-vue in a demo project
https://github.com/anborg/vue3-demo/blob/master/src/components/MeiliSearch.vue
However, the search box is not visible. Perhaps I'm missing something? Help is much appreciated.

The meilisearch component was imported to App.vue.

Hello !
I tried running your example but the following error was thrown:

This dependency was not found:

* @meilisearch/instant-meilisearch in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader-v16/dist??ref--0-1!./src/components/MeiliSearch.vue?vue&type=script&lang=js

To install it, you can run: npm install --save @meilisearch/instant-meilisearch

The other problem is that instantMeiliSearch is a default export so you should import it like this:
import instantMeiliSearch from '@meilisearch/instant-meilisearch';

After all this, It indeed does not work.
It seems that vue-instantsearch - on which we depend - is not compatible with vue 3 as they use slots.

Thank you for trying.
Is there a way to "undepend" on vue-instantsearch -- e.g removing that 'instant' functionality in melisearch-vue for a vue3 branch?

Unfortunately no, we heavely depend on it. We are a wrapper arround that library. Could you maybe open an issue on their repository to ask for a working exemple without slots because of vue 3 ?


Disconnect from the update_last_login signal so we skip the autoupdate after login

At the moment, when a user logs in, his field "last_login" is updated. Therefore save() is called and therefore inform_changed_data. But at the moment last_login is not part of the user serializer and therefore no change is send to the client.
But to update the last_login field is a problem, when a lot of users login at the same time.

Ok.
@emanuelschuetze Be sure that you do not want to deploy the information when a user logs in to the clients. If you want to trigger this (may be in an extended user table that the admin can see when someone logs in) we have to look for another solution.

@normanjaeckel Good point. What I want to implement later are the following two features:
a) Which users are currently logged in (to observe the load of concurrent users).
b) The number of users/accounts who has logged in (just for statistic that you can calculate the percentage of participants who uses OpenSlides)
I don't need the information WHEN a user has logged in last time. Is (a) and (b) possible after merging this pull request?

a) Which users are currently logged in (to observe the load of concurrent users).
Currently this can be done with this function: https://github.com/OpenSlides/OpenSlides/blob/master/openslides/utils/autoupdate.py#L18

But this function will be removed with #2794. After the merge of this pull request, it is still possible. For example you can use utils.cache.websocket_user_cache.get_all().keys() to get a list of all user ids, that have opened a websocket connection. (There can be false-positive in that list, when a websocket connection has be closed without notice.)

b) The number of users/accounts who has logged in (just for statistic that you can calculate the percentage of participants who uses OpenSlides)
This will not work any more. If we want to have this feature, I think the best way would be, if we copied the signal, that I disabled in this pull request, to our sourcecode, so we can call user.save(informed_changed_data=False). At least for the case, that the user had been logged in before.

I propose the following way: We do not disconnect the signal here but override the receiver and set user.save(informed_changed_data=False) without any difference. The advantage is that the last login timestamp is in the database and can be extracted via REST API if someone wants this to do. If @emanuelschuetze later wants to add the described features he can add some logic to send the data in some cases.
Other possibility: We disconnect the signal if DEBUG is True or better if a special env var oder settings var is set so @ostcar can use this var for his tests to disconnect the signal if he needs to do so.

I don't like the second possibility. I don't want to test a fake version.
I see two options. Either merge this right now (this will not break nothing) before you code your new feature, or keep this unneeded signal receiver until you build you feature. In the second case: please do it fast.

We do it via #2831 as discussed.


Work CI-CD

Description

Add/update github actions.
Migrate tools version and target framework.
Add packages lock file.
Fix readme and nuspec.

Motivation and Context

Addresses  nanoFramework/Home#1163.
Addresses  nanoFramework/Home#1162.

How Has This Been Tested?

Screenshots
Types of changes

[ ] Improvement (non-breaking change that improves a feature, code or algorithm)
[ ] Bug fix (non-breaking change which fixes an issue with code or algorithm)
[ ] New feature (non-breaking change which adds functionality to code)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Config and build (change in the configuration and build system, has no impact on code or features)
[ ] Dependencies (update dependencies and changes associated, has no impact on code or features)
[ ] Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
[x] Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

[ ] My code follows the code style of this project (only if there are changes in source code).
[ ] My changes require an update to the documentation (there are changes that require the docs website to be updated).
[ ] I have updated the documentation accordingly (the changes require an update on the docs in this repo).
[ ] I have read the CONTRIBUTING document.
[ ] I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
[ ] I have added new tests to cover my changes.

Ignoring PR check with latest version. Will be fixed on next action run.

@nfbot updatedependencies


Add UIImageViewExtensionsTests + Fix infinite recursive call

Checklist

[X] I checked the Contributing Guidelines before creating this request.
[X] I have only one commit in this pull request.
[] New extensions support iOS 8 or later.
[] New extensions are written in Swift 3.
[] I have added tests for new extensions, and they passed.
[X] Pull request was created to master head branch.
[] All extensions have a clear comments explaining their functionality, all parameters and return type in English.
[] All comments headers have the word SwifterSwift: before description.

Summary of Pull Request:

Adds complete testing for UIImageViewExtensions

Fixes endless recursive call in blurred() method

Something we may want to consider here is combining the blur() and blurred() methods and just giving it a discardable result. I didn't implement this since I was not the one who originally created the extension.

Note for the blur() method I did not like that I could not test if the applied UIVisualEffectView has the correct style due to UIBlurEffect having no accessible properties.

Alright looks like my download testing needs some work.

Codecov Report

Merging #123 into master will increase coverage by 0.56%.
The diff coverage is 86.84%.

@@            Coverage Diff             @@
##           master     #123      +/-   ##
==========================================
+ Coverage   85.55%   86.12%   +0.56%
==========================================
  Files          70       71       +1
  Lines        4070     4107      +37
==========================================
+ Hits         3482     3537      +55
+ Misses        588      570      -18

Impacted Files
Coverage Δ

...ource/Extensions/UIKit/UIImageViewExtensions.swift
88.88% <100%> (+88.88%)
:white_check_mark:

...itExtensionsTests/UIImageViewExtensionsTests.swift
86.11% <86.11%> (ø)

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 796df32...03fd6d5. Read the comment docs.

@omaralbeik before merging this I would like to address the fact that in both cases where completion is called the error is nil

@SD10 Trying to make things simpler, I removed the error completely, I assumed user wants to download the image only, if more advanced error handling is required, he'd be using something like Alamofire or Kingfisher

@omaralbeik I agree. Sorry to have you make trivial changes. I prefer getting others opinions on changes to code that wasn't written by me originally. If you'd prefer that I just take care of these things on my own in the future let me know.
I'm going to continue testing UIKit and then also try to work on the UIKit docs. I see that some of the docs have already been roughly outlined, but I'd like to see the UIKit classes all have tables of contents + more information such as the types on properties.
Thanks for taking care of this.

@SD10 You're doing a great job, thank you!


Str::pluralStudly with 0

Laravel Version: 8.33.1
PHP Version: 7.4.9

Description:
Hi everybody,
When i use Str::pluralStudly('command', 0);, the result is commands. There should be no "s" when there is 0 or 1 command.
Steps To Reproduce:
Str::pluralStudly('command', 0); --> commands
Str::pluralStudly('command', 1); --> command
Str::pluralStudly('command', 2); --> commands

0 commands is correct
https://english.stackexchange.com/questions/38293/why-is-zero-followed-by-a-plural-noun

In English, every number that is not 1 is considered plural. In your example, "0 commands" is correct English.


Adding note about RODBC and temp tables

@garyericson : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Migrate to ESLint flat config

Migrate to ESLint flat config
Flat config is the new config system used by ESLint 9. To make the migration easier, they also added flat config support to ESLint 8.
This commit migrates the various ESLint configs in the repository to use the new system, **without** upgrading to ESLint 9 yet.

You can see that the right files are being linted with DEBUG=eslint:flat-eslint npx gulp lint. I tried playing around in various files and it seems like the right rules are being applied.
Ref https://github.com/mozilla/pdf.js/issues/17928

Nice work; thank you @nicolo-ribaudo!


Add ns predicate strategy

Coverage increased (+1.0%) to 30.532% when pulling 0d826a5b3d40abd0c114f814399d4e62723ac63e on add_nsPredicate_strategy into 83767fd3b34a0ed77b88b327ae544d9a41cbce73 on master.

Coverage increased (+1.0%) to 30.532% when pulling faba2c9898a5c24db9966545902ed1e50eea2b07 on add_nsPredicate_strategy into 83767fd3b34a0ed77b88b327ae544d9a41cbce73 on master.


API Doesn't return message

Hi,
Firstly, this sounds like an excellent project that would be very very useful so thankyou!
I'm having a problem with the basic functionality though, I've got the Host up and running and its accepting calls to the correct endpoint (all on my local machine).
The problem is that the JSON that the API is returning isn't what is in the .json file that is create in C:\Temp. Instead I'm just getting what looks like some kind of identifier "97d5fa15-a27c-4355-800d-c34555859d6b"
To re-produce:
-Download the v0.9.0-develop build that is available.
-Run the host: DynamicPowerShellApi.Host.exe --console
-Browse to: http://localhost:9000/api/Example/GetMessage?message=hello
-JSON is: "97d5fa15-a27c-4355-800d-c34555859d6b"
Expected Results:
-JSON should return the .json file in C:\Temp such as below:
{
"message": "hello"
}
Thanks again

The AsJob argument is for long-running tasks. It will give you a task ID back, you can then fetch the status of the job and later on, the results.
If you want to run them synchronously, set that value to False


Implement Scoreboards

Scoreboard of kills. Player is removed from scoreboard once they die.

Some work needs to be done. Ensure players are on the board when the game starts, and remove them when the game ends

I confirmed this works


Update to Ruby 2.2.3

@joelQ, does updating the version of Ruby we do development against have an effect on the packaging for Homebrew/apt?

It shouldn't affect the distribution since we package traveling ruby directly with code. We don't include the .ruby-version in the packages (see https://github.com/thoughtbot/parity/blob/master/Rakefile#L58-L66) so it probably only affects development of Parity.
That being said, it's probably a good idea to update the Ruby version shipped with traveling ruby as well. That way we are developing and testing against the same version that will be used in "production".
The traveling ruby version used for the packages is set here: https://github.com/thoughtbot/parity/blob/master/Rakefile#L10

Travelling Ruby is at 2.2.2, I'm going to update to get them both in sync.

:+1:


When trying to use 3.2 pod it fails here

[!] Unable to satisfy the following requirements:

Overcoat (= 3.2) required by Podfile

however, 3.1.1 works.

pod 'Overcoat', '3.2'
pod 'Overcoat/CoreData/Mantle1', '3.2'
pod 'Overcoat/PromiseKit', '3.2'
is our podfile.

If your Mantle models still dependent on Mantle v1, I think this is the main bottleneck for you.
Overcoat v3.x supports Mantle v2.0 by default.
So if you want Mantle v2.x with Overcoat v3.2  with Core Data, I think you just want this:
pod 'Overcoat', :subspecs => ['CoreData', 'PromiseKit'], '~> 3.2'


3d-tiles: use simpler change to o3dgc.js

@mramato

@mramato Fixed that.

Is this ready to merge?


Hashing strategy for the fields such as password in creation of a new row

I was wondering if there would be a possibility to enforce a hashing strategy before adding a new row to a model such as the User and a specific field like the password.
Here's my admin user model:
class UserAdmin(ModelView, model=models.User):
    column_list = [
        models.User.id,
        models.User.role,
        models.User.email,
        models.User.username,
    ]

    can_delete = False

When I want to create a new user via sqladmin, the password field will be as a plain password instead of a hashed one. Therefore, I am looking for a feature to enforce the admin to apply a hashing method for a specific field such as password as follows:
def get_hashed_password(password: str) -> str:
    return pwd_context.hash(password)

class UserAdmin(ModelView, model=models.User):
    apply_magic_method_on_field(method=get_hashed_password, field=password)  # something like this

[X] There are no similar issues or pull requests for this yet.

I guess the events can do this: https://aminalaee.dev/sqladmin/configurations/#events

great thanks. it works well:
class UserAdmin(ModelView, model=models.User):
    column_list = [
        models.User.id,
        models.User.role,
        models.User.email,
        models.User.username,
    ]
    async def on_model_change(self, data, model, is_created, request):
        data["password"] = utils.get_hashed_password(data["password"])