Thermostat DHW control commands not working correctly

Describe the bug
Controlling Thermostat DHW commands is not working correctly (anymore). I am pretty sure it was working correct with earlier releases...
For example:

ems: dhw charge
ems: dhw circulation pump mode
ems: dhw disinfecting
ems: dhw mode
If variable is writen in ioBroker the value change correctly to the new value, but after a few seconds it goes back to the old value and then after many seconds back to the correct new value.
This behavior I see only with thermostat dhw1. All other commands work as expected without this strange toggle behaviour...

** Releated to gateway(s) and/or adapter configuration
B Which version of the ems-esp adapter are you using?
4.7.2
C is this bug related to the ems-esp or km200 gateway? (which gateway hardware are you using?)
D please descripe software versions of the ems-esp firmware and/or km200 gateway
3.7.0-dev.30
E please post screenshot(s) of the adapter config
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

Polling and writing are not synchronized. How fast is your polling cycle?
I understand that writing works .... or?

Yes, finally writing works, but value toggles twice...
Polling 15 sec...
—————————
Ulf Hirsekorn
—————————

Von: Thomas @.>
Gesendet: Samstag, August 17, 2024 5:06 PM
An: tp1de/ioBroker.ems-esp @.>
Cc: UlfHRO @.>; Author @.>
Betreff: Re: [tp1de/ioBroker.ems-esp] Thermostat DHW control commands not working correctly (Issue #103)
Polling and writing are not synchronized. How fast is your polling cycle?
I understand that writing works .... or?
—
Reply to this email directly, view it on GitHubhttps://github.com/tp1de/ioBroker.ems-esp/issues/103#issuecomment-2294885416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BCGDZ75VXJUO574JRTPOI3DZR5RGLAVCNFSM6AAAAABMVPLD26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJUHA4DKNBRGY.
You are receiving this because you authored the thread.Message ID: @.***>

I tested myself. I do have this effect seldom.
It takes a bit time when writing values to the gateway.
It could happen that in the meantime the old values are still processed by parallel read.
Read is per device and then all values of the device are written sequentially.
I can not change this logic.

Hi Thomas, I hear what you are saying, but the behaviour is only for commands in thermostat/dhw and happens always (not sometimes). For all other commands I never saw that toggle at all... It looks that "something" is different with dhw commands and I am pretty confident this was not the case a few weeks ago...
What is your recommended minimum polling time...?
Thanks and have a good evening...

I use 15 seconds as well, and I can't confirm any of your problems.
Dhw entities are the same as others. But normally, you would not change often.
Please test with 60 seconds if there is the same behavior

Hi Thomas,
Same with 60 seconds, but less often...
🤔
Message ID: @.***>

Which model of ems-esp gateway are you using?

S32

Ulf Hirsekorn

Von: Thomas @.>
Gesendet: Saturday, August 17, 2024 8:58:29 PM
An: tp1de/ioBroker.ems-esp @.>
Cc: UlfHRO @.>; Author @.>
Betreff: Re: [tp1de/ioBroker.ems-esp] Thermostat DHW control commands not working correctly (Issue #103)
Which model of ems-esp gateway are you using?
—
Reply to this email directly, view it on GitHubhttps://github.com/tp1de/ioBroker.ems-esp/issues/103#issuecomment-2294943719, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BCGDZ76ILIJJSHWQ3X7Y7GLZR6MNLAVCNFSM6AAAAABMVPLD26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJUHE2DGNZRHE.
You are receiving this because you authored the thread.Message ID: @.***>

Ulf I do not know why you are facing this behavior.
I have done more than 30 changes.
No problems. Using iobroker object browser 1st update is red and after next poll the state is confirmed and turns white.

New day with new insights:
I have done some more tests.
I recognized that while sending an http post/put with changes to the gateway the read with http get is not changed immediately - just when the next telegram with actual data is read.
For the thermostat dhw entities this takes longer than for other entities.
This is not and ioBroker adapter issue. I will open an issue on ems-esp.

Thanks Thomas, appreciated...!
Lets wait for the ems-esp-team...
—————————
Ulf Hirsekorn
—————————

Von: Thomas @.>
Gesendet: Sonntag, August 18, 2024 10:22 AM
An: tp1de/ioBroker.ems-esp @.>
Cc: UlfHRO @.>; Author @.>
Betreff: Re: [tp1de/ioBroker.ems-esp] Thermostat DHW control commands not working correctly (Issue #103)
New day with new insights:
I have done some more tests.
I recognized that while sending an http post/put with changes to the gateway the read with http get is not changed immediately - just when the next telegram with actual data is read.
For the thermostat dhw entities this takes longer than for other entities.
This is not and ioBroker adapter issue. I will open an issue on ems-esp.
—
Reply to this email directly, view it on GitHubhttps://github.com/tp1de/ioBroker.ems-esp/issues/103#issuecomment-2295174608, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BCGDZ7YC3OZF5B6H623WISDZSBKS7AVCNFSM6AAAAABMVPLD26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJVGE3TINRQHA.
You are receiving this because you authored the thread.Message ID: @.***>

Ulf, the latest dev.32 version of ems-esp firmware should work.
Can you confirm please.

Hi Thomas, Will do tomorrow when back home... Will let you know asap...
Thanks...
—————————
Ulf Hirsekorn
—————————

Von: Thomas @.>
Gesendet: Tuesday, August 20, 2024 1:01:29 PM
An: tp1de/ioBroker.ems-esp @.>
Cc: UlfHRO @.>; Author @.>
Betreff: Re: [tp1de/ioBroker.ems-esp] Thermostat DHW control commands not working correctly (Issue #103)
Ulf, the latest dev.32 version of ems-esp firmware should work.
Can you confirm please.
—
Reply to this email directly, view it on GitHubhttps://github.com/tp1de/ioBroker.ems-esp/issues/103#issuecomment-2298579195, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BCGDZ74TA7472JUJTOSTHZTZSMOYTAVCNFSM6AAAAABMVPLD26VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJYGU3TSMJZGU.
You are receiving this because you authored the thread.Message ID: @.***>

Hi Thomas,
Yes, confirmed, it works as expected with 3.7.0-dev.32...!
Thanks a lot!
Regards,
Ulf
Message ID: @.***>


Distance label trafos

Fyi @anwai98 this implements the label transformation for per object distances. I have changed a few names compared to the previous version of this to keep it in line with the other transform. (But it should be easy to adapt the training code to this once you're going back to the instance segmentation.)

Thanks @constantinpape. Once you think is good to go as well, let's merge it to main. (I will take care of the adpatation in the respective PRs)


postcss-loader-before-processing missing

Hi
was postcss-loader-before-processing removed?
I am using a postcss plugin which requires access to the current webpack compiler and used postcss-loader-before-processing to connect both parts.
With the current version it doesn't work anymore.
Thanks :)

Yep, it was removed in postcss-loader >= v2.0.0, because it was widely used and the Loader API accessing the webpack compilation from inside a loader directly is officially deprecated. What is the usecase, could you provide more info? :)

Oh too bad I am using https://github.com/jantimon/iconfont-webpack-plugin and without the postcss-loader-before-processing the iconfont-webpack-plugin doesn't work anymore :/

@michael-ciniawsky the current implementation of the iconfont-webpack-plugin is using the compiler to resolve the filename of url(demo.svg).
According to the official documentation there would be a new api for that which is not deprecated:
https://webpack.js.org/api/loaders/#this-resolve
resolve(context: string, request: string, callback: function(err, result: string))

Can you think of a clean way to pass this from the your loader to a postcss plugin?

@naBausch just released a new version which works with postcss-loader 2.x
I guess this issue can be closed

@jantimon Thx


Investigate GUANO audio metadata standard

Would be good to get a specification and perform a crosswalk

The format is documented here https://github.com/riggsd/guano-spec/blob/master/guano_specification.md

It's all broadly compatible - very easy to map onto AC and DwC, and we might consider whether some of their terms might be adopted (e.g. their "Filter HP" and "Filter LP" seem useful).
Their "time-expansion (TE)" field is somewhat related to ac:mediaSpeed: one is the reciprocal of the other, though note that their TE is constrained to integer values.

Notes from 2024-02-20 working session:

We intend to incorporate "Filter HP" and "Filter LP" into avcore, and will take this forward. See #264
The relation to time-expansion is already documented in the term notes


Change v0.3.0 to mitigate risks on search_path vulnerability to addre…

…ss CVE-2018-1058
BUG: https://phabricator.wikimedia.org/T190240

(For the record, it was me who suggested doing a fix against a kartotherian fork first, then upstreaming.)

(For the record, it was me who suggested doing a fix against a kartotherian fork first, then upstreaming.)

I'd only go for our fork if upstream is unresponsive. While it's quite possible they will be, let's give them a chance.

So, I have to apologize here if I've been giving bad guidance because I had assumed that mitigating this in client code was simply a matter of making implicit pg_catalog references explicit.  It seems there is more needed.  Maybe we need to set the search_path here (something loosely along the lines of https://github.com/zalando/spilo/pull/235/files)?  @pnorman what would you suggest is the right thing to do here?

Sorry about the long reading.

This doesn't mitigate the CVE. The CVE is about search_path problems in pg_dump and the CVE doesn't impact any software except that which comes from PostgreSQL. What we have is the same mistake as the PostgreSQL client software developers made.

Changed the description and title, sorry about that. I think I misinterpreted the documentation at this paragraph:

The purpose of the release was to address CVE-2018-1058, which describes how a user can create like-named objects in different schemas that can change the behavior of other users' queries and cause unexpected or malicious behavior, also known as a "trojan-horse" attack. Most of this release centered around added documentation that described the issue and how to take steps to mitigate the impact on PostgreSQL databases.

You made this PR against the search_path_v0.3.0 branch, normally you'd do it against master. Also, shouldn't this PR be against upstream?

The problem I found with the PR against master is that v0.3.0 is 38 commits behind and the latest version is incompatible backward. That is why I suggested we fork and create v0.3.1 temporarily as a fallback if something goes wrong. My solution would be tag v0.3.1 on the new branch created without changing master. What do you think we should do about it?
I agree that would be better to make a PR to upstream I just started this process with the latest version, this way we would have the most recent code and contribute with the official maintainer, but this will lead to some minor refactoring.
Michael suggested that we should go first with the fork and mitigate the risk on the current version used by osm-bright.tm2source. I agreed and I think that this way we can fulfill the task's goal with minor changes on the code, but I also think that this is temporary and we shouldn't stop here and continue with the upgrade of the library and proper refactoring in the future.
To summarize, I am doing the following steps:

Fork v0.3.0 and fix search_path vulnerabilities on the old version in the fork
Send a PR to fix the latest version in upstream
Upgrade library at osm-bright.tm2source

What do you think about the above strategy?

See also https://github.com/mapbox/postgis-vt-util/pull/21
@stephanebisson, do you have any time to weigh in on this?

The problem I found with the PR against master is that v0.3.0 is 38 commits behind and the latest version is incompatible backward.

Just to note, in general my practice for backports is to create a branch in the upstream repo, e.g. v0.3.x and then push to my repo a feature branch, then do a PR to merge the feature branch into the backport branch.


FBeta score metric

F1 score is a particular case of FBeta score where precision and recall and equivalently weighted by setting beta to 1. It would be easy to implement a FBetaScore in the metric module as the F1Score have been already done. It would be nice to also support different beta values for each different class.

@gbolmier you can do RollingFBetaScore too :)

With pleasure @MaxHalford :+1:


update tip type

depends on backend https://github.com/aeternity/tipping-community-backend/pull/271 but not breaking as post without tip are not used yet

@davidyuk just some changes from backend side


error: conflicting types for 'gettid' - in third_party/grpc/src/src/core/lib/support/log_linux.c:42:13

Problem
I have followed the instructions at
build mod_pagespeed from source
to build pagespeed from source in a Gentoo Linux system. During execution of
make BUILDTYPE=Release mod_pagespeed_test pagespeed_automatic_test
I got the error:
  CC(target) out/Release/obj.target/gpr/third_party/grpc/src/src/core/lib/support/log_linux.o
third_party/grpc/src/src/core/lib/support/log_linux.c:42:13: error: conflicting types for 'gettid'
   42 | static long gettid(void) { return syscall(__NR_gettid); }
      |             ^~~~~~
In file included from /usr/include/unistd.h:1170,
                 from third_party/grpc/src/src/core/lib/support/log_linux.c:40:
/usr/include/bits/unistd_ext.h:34:16: note: previous declaration of 'gettid' was here
   34 | extern __pid_t gettid (void) __THROW;
      |                ^~~~~~
make: *** [third_party/grpc/gpr.target.mk:345: out/Release/obj.target/gpr/third_party/grpc/src/src/core/lib/support/log_linux.o] Error 1

Reason
It seems that the error is related to the version of the compiler used (gcc 9.3.0), as the following patch shows: #18950
Solution
Either incorporate the changes of the mentioned patch, or insert some suggestion about the upper bound of gcc version that can compile your grpc version without errors. It would also be helpful if you could provide some configure script that will search the system for existing libraries and build the Makefiles. For example, grpc IS already installed on my system (version 1.26.0).

Tried with gcc 7.3.0, 7.5.0 and 8.3.0 (in addition to 9.3.0 above) but the error persisted...

Hi
Last time I have compiled the module was 7/1/2020 with gcc 9.3  in a Centos 7 and have no issues.
Maybe the problem come for using files from your local copy of grpc?

This sounds like https://github.com/tensorflow/tensorflow/issues/33758

same problem when I run pecl install grpc-1.6.0 on ubuntu 20.04

httpd-2.4.50-buster bullseye

Pagespeed build failed on httpd-2.4.51-bullseye docker image and above, due to above error,
httpd-2.4.50-buster is the last working docker version

any solution to fix this issue?
aws ec2 running ubuntu 20.04, checkout source code form master branch, build with --devel --psol-from-source
third_party/grpc/src/src/core/lib/support/log_linux.c:42:13: error: conflicting types for ‘gettid’    42 | static long gettid(void) { return syscall(__NR_gettid); }       |             ^~~~~~ In file included from /usr/include/unistd.h:1170,                  from third_party/grpc/src/src/core/lib/support/log_linux.c:40: /usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:16: note: previous declaration of ‘gettid’ was here    34 | extern __pid_t gettid (void) __THROW;       |                ^~~~~~ make[1]: *** [third_party/grpc/gpr.target.mk:345: out/Debug/obj.target/gpr/third_party/grpc/src/src/core/lib/support/log_linux.o] Error 1 make: *** [Makefile:314: apache_debug] Error 2 Error: Failure running 'make apache_debug_psol', exiting.


Problems with running Model with different datasets in Linux668

Hi,
I've encountered an issue while running the STEMMUS_SCOPE model for a new test site, FR-Lgt, as part of my research project.

To provide some context, I have been working on running the model for various flux net sites across Europe. I have prepared the necessary input data in the format required by pystemmusscope and have organized it within the directories ~/input/Plumber2_data/*.nc for the flux data and ~/input/Initial_condition for the initial conditions. I have ensured that the data format aligns with the model's requirements to the best of my knowledge. Additionally, I have adjusted the config_file.txt and the code according to the instructions provided in the STEMMUS_SCOPE documentation, specifically referring to the guide available at https://github.com/EcoExtreML/STEMMUS_SCOPE_Processing/blob/main/docs/notebooks/run_model_with_different_dataset.ipynb.
However, despite successfully running the model for NL-Hor, an existing site listed in PLUMBER2, I have encountered difficulties when attempting to run it for the new test site, FR-Lgt. Although the model successfully creates the input and output directories for FR-Lgt, it encounters an error during the actual model run. Upon comparing the FR-Lgt_2024-02-19-1519_config.txt generated for the FR-Lgt instance with the configuration file created for NL-Hor, I noticed no significant differences apart from the site name and date.
So, could you please help me fix this issues?
Thanks
Prajwal

The error is occuring inside Matlab. Can you run that command in your terminal? The part after Command '[' until ']' returned...
That way you can see the Matlab error which can help find out what's going wrong.

It says no such file or directory, while it is still there. Let me know, if i did it correctly or not.

It says no such file or directory, while it is still there. Let me know, if i did it correctly or not.

Try it without the ' at the start and end

Oh sorry, Thanks . Please check this.

Hm. You might have to run the commands to add the Matlab runtime components to your environment...
https://nl.mathworks.com/help/compiler/mcr-path-settings-for-run-time-deployment.html

Hi,
I will look at this. What i got confused is it works when i change the site to NL-Hor and date while does not work for my new site. So, it Matlab runtime component was missing, it should not be running for NL-Hor too, right? Or, am i getting it wrong?

Thanks

Hi, I will look at this. What i got confused is it works when i change the site to NL-Hor and date while does not work for my new site. So, if Matlab runtime component was missing, it should not be running for NL-Hor too, right? Or, am i getting it wrong?  Thanks

Yes but there you are not running the command in the terminal. You run matlab via the python file, which is adding the components to the PATH.

Hi,
Thanks! got it!
Seems like error in the data type. I will recheck my data format again and get back to you!


fix tab links

the links should be based on the figure tab field (index). this should be done within create_tabs and  handleHashNavigation

resolved; modified create_tabs to get rid of regex and just made tab_id the index; had to modify fetch_tab_info to modify data filter:
all_figure_data = data.filter(figure => Number(figure.figure_tab) === Number(tab_id))


There's a very specific case in here...

... that an example would be beneficial. At least enough to contrast the difference between the MRE and MRES.
Also, "wait times are expected to be very short" is too subjective. Is this < 1ms or < 30 seconds or something else?

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

ID: efe76905-60c0-9fce-5e51-fdc6c7239a9d
Version Independent ID: 1b993777-1e18-50f2-7c0d-b0c3ce004d24
Content: ManualResetEvent and ManualResetEventSlim
Content Source: docs/standard/threading/manualresetevent-and-manualreseteventslim.md
Service: unspecified
Product: dotnet
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

Still looking for what "Very Short" means.

Still looking for what "Very Short" means.

opening and moving to dotnet-api-docs

opening and moving to dotnet-api-docs

Issue moved to dotnet/dotnet-api-docs #5281 via ZenHub

Issue moved to dotnet/dotnet-api-docs #5281 via ZenHub


Mobile Friendly Homepage

@IronRunes I've put desirable because if there's an easier/simpler way of doing this, I'm ok with it.

Now the homepage is displaying strangely on a normal comp:
Firefox:

Chrome:

@IronRunes looks great, apart from the 'register' button at the top, which is a bit too big.

Change text to

Register or Login


Format generated code

The changes format the generate code. So we don't need to explicitly pad the source lines.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


feat: added custom help command

Thanks for the PR!


Microsoft Id , unique across tenants? Can it change?

We  collect information of users using the Graph api, and are storing the azure user objectid in tables for our application. With the tenant id.  What we do not know for certain is if we should make the primary key, just the objectid, or objectid + tenantid. What this article is missing is information about the unique id. It says the id is unique. But is it unique across tenants. Googling this question you will find that many people are asking the same question, but it is impossible to find a straight answer in the Microsoft documentation. I think this article is a good place to actually describe what uniqueness is.
Secondly we are wondering if in Azure a user id can change (the Azure user objectid). Is there any reason this could change. For example if the primary location the user is store changes or similar...could that change the id? (so the UPN remains the same but the id changes).

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

ID: d04afcc4-5062-47da-b4e4-373187050967
Version Independent ID: 00f74595-e525-8725-dfee-afe2246f87e8
Content: Microsoft identity platform accounts & tenant profiles on Android
Content Source: articles/active-directory/develop/accounts-overview.md
Service: active-directory
Sub-service: develop
GitHub Login: @shoatman
Microsoft Alias: shoatman

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

@geedsen User objectId is unique across all tenants and you can consider that as a primary key and also it does not change with any other attribute changes like usage location, display name etc.

Thanks for the quick reply. That is all we needed to know.

Hi, wanted to ask the same question about driveId / subscriptionId.
both of them are registred as : Unique identifier for the subscription. Read-only.
but is it unique across tenants?
thanks!
Amit
https://docs.microsoft.com/en-us/onedrive/developer/rest-api/resources/drive?view=odsp-graph-online
https://docs.microsoft.com/en-us/graph/api/resources/subscription?view=graph-rest-1.0


headers: Make headers buildable in C++ compiler v2

from v1:

Split the fixes in different commits
Use some #define magics to not duplicate code

+1
Please check semaphoreci, but it seems it's just uncrustify not understanding the code... :/


⬆ upgrades reactotron to latest version

We were running on the older beta here.  Let's get this updated to the latest & greatest.

From this branch, created a new project using ignite-ir-boilderplate-bowser after updating reactotron binary via brew update and brew cask reinstall reactotron
Tapped the Demo Reactotron button:


Can not use custom transfom by runCLI

Do you want to request a feature or report a bug?
BUG
What is the current behavior?
can not use transform api like other api do.
jestCli.runCLI(
        {
            transform: {
                '^.+\\.jsx?$': require.resolve('../configs/jest.transform.js')
            },
            transformIgnorePatterns: ['/3333/'],
            testMatch: ['<rootDir>/test/*.js?(x)'],
            slient: false,
            cache: false,
            debug: true
        },
        [cwd],
        function(success) {
            console.log(success);
        }
    );

here's custom transform define.

const babelConfig = require('./babel');
module.exports = require('babel-jest').createTransformer(babelConfig);

when I console the jest debug info there's no key of transform .   And also transform can't work.

What is the expected behavior?
transform
Please provide your exact Jest configuration and mention your Jest, node,
yarn/npm version and operating system.
node 8.9.4  npm 5.6.0   jest-cli  ^22.1.4
thanks for help.

Still the case, even for the latest jest 27.0.0-next.7.

using JSON.stringify(...) is required to pass transform option to runCLI

Apologies for pinging; please, consider to reopen @SimenB

Jest does not have a public programmatic API, you can track #5048.


Write documentation index page.

:tada: This issue has been resolved in version 1.0.1 :tada:
The release is available on:

1.0.1
GitHub release

Your semantic-release bot :package::rocket:


Question

So i tried my best at understanding the code but did not succeed. Yes, maybe its skill issue or something like that but could you explain how do i get recognized string? I need to make a system where user asks something in voice chat and the game does something based on what user said (e.g.: "equip weapon 4 2" - the game equips 2nd weapon from 4th slot).

So uh i actually wrote a lil' bit more of the module so now it totally supports strings, but if there was an easier way around i'd still like to know about it

I suppose I never truly finished this module and it's been too long. From a cursory glance at the speech recognition documentation, it seems you'd need to use CSpEvent on the result of GetEvents.


Fixes NULL resource segments and names

BEFORE this PR gets merged
I was working on a project and I wanted to add a new route to the resource routes like so,
Route::resource('users', UserController::class);
Route::delete('/users/multi_delete', [UserController::class, 'multiDelete'])->name('users.multiDelete');

The result was as shown in the next figure

But I was would like to use the prefix route method to be more clear like so,
Route::prefix('users')->group(function () {
    Route::resource('/', UserController::class);
    Route::delete('/multi_delete', [UserController::class, 'multiDelete'])->name('users.multiDelete');
});

The result was as shown in the next figure

As we noticed, the resource routes with NULL segments and incorrect routes names.
AFTER this PR gets merged

In fact, I tried to use getGroupStack method, but I realized that its a painful way because it returns an array with every middleware, prefix, name...etc in the route file and there is no distinctive key to catch the prefix that I need, so I decide to guess the routes segments and names with the given controller name.

In my opinion, this resource-thing is much broader than just to the prefix function.
Example
Beside the default resource actions, i need some pages for delete, history and rights.
Current setup

Route::prefix('users')->controller(UserController::class)->name('users.')->group(function ()
{
    Route::get('{user}/rights', 'rights')->name('rights');
    Route::get('{user}/history', 'history')->name('history');
    Route::get('{user}/delete', 'delete')->name('delete');
});

Route::resource('users', UserController::class);

Current problems
In the current situation, if i move the resource into the group , the prefix and name are duplicated.
The prefix-issue could be resolved by this PR.

Route::prefix('users')->controller(UserController::class)->name('users.')->group(function ()
{
    Route::resource('users', UserController::class);

    Route::get('{user}/rights', 'rights')->name('rights');
    Route::get('{user}/history', 'history')->name('history');
    Route::get('{user}/delete', 'delete')->name('delete');
});

Ideal situation
Ideally, i want to move the resource into the group and make the $controller parameter optional, since it's redundant.
Route::prefix('users')->controller(UserController::class)->name('users.')->group(function ()
{
    Route::resource('/');

    Route::get('{user}/rights', 'rights')->name('rights');
    Route::get('{user}/history', 'history')->name('history');
    Route::get('{user}/delete', 'delete')->name('delete');
});

In my opinion, this resource-thing is much broader than just to the prefix function.
Example
Beside the default resource actions, i need some pages for delete, history and rights.
Current setup

Route::prefix('users')->controller(UserController::class)->name('users.')->group(function ()
{
    Route::get('{user}/rights', 'rights')->name('rights');
    Route::get('{user}/history', 'history')->name('history');
    Route::get('{user}/delete', 'delete')->name('delete');
});

Route::resource('users', UserController::class);

Current problems
In the current situation, if i move the resource into the group , the prefix and name are duplicated. The prefix-issue could be resolved by this PR.

Route::prefix('users')->controller(UserController::class)->name('users.')->group(function ()
{
    Route::resource('users', UserController::class);

    Route::get('{user}/rights', 'rights')->name('rights');
    Route::get('{user}/history', 'history')->name('history');
    Route::get('{user}/delete', 'delete')->name('delete');
});

Ideal situation
Ideally, i want to move the resource into the group and make the $controller parameter optional, since it's redundant.
Route::prefix('users')->controller(UserController::class)->name('users.')->group(function ()
{
    Route::resource('/');

    Route::get('{user}/rights', 'rights')->name('rights');
    Route::get('{user}/history', 'history')->name('history');
    Route::get('{user}/delete', 'delete')->name('delete');
});

You still had not solved the issue!

I've noticed duplicating path /users value in the URL as you can see in the next figure

The issue has been completely solved now as shown in the next figure 🎉

I don't think we should solve this by reading the controller segments and sticking an "s" after it.


⚠ Bofrost.at has degraded performance

In 8852820, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2588 ms

Resolved: Bofrost.at performance has improved in d16c538.


Update adobe-photoshop-lightroom: remove uninstall_preflight

This is also break when https://github.com/Homebrew/brew/pull/3396 is merged.
As this is a patch installer on top of another Cask it doesn't need an uninstall itself, the app can be removed by uninstalling lightroom600.

>>> brew cask _audit_modified_casks 5c0d832f7d5846170347cc6c573400160379ba5c...a4b7d4a84cd0833500349fcce205256e7f4857ff
==> 1 modified cask: adobe-photoshop-lightroom
audit for adobe-photoshop-lightroom: passed

>>> brew cask style Casks/adobe-photoshop-lightroom.rb
1 file inspected, no offenses detected

Going to leave this as is for now. It won't actually "break" the upgrade, it will just install a clean version and then patch it.


⚒ case insensitive search

PR type

[x] Bugfix

What's new?

[x] PR related with https://github.com/kodadot/rubick/issues/53
[x] fix search case sensitive ex: /rmrk/explore?page=1&search=kitty
[x] remove unused callback

Before submitting Pull Request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[x] I've posted a screenshot of demonstrated change in this PR

Had issue bounty label?

[x] Fill up your KSM address: Payout

Screenshot

pay 75

😍 Perfect, I’ve sent the payout
💵 $75 @ 141.41 USD/KSM ~ 0.53 $KSM
🧗 HguGafrfk8nRP9a4tgJf7hLvSSFie8GtkDjyWFHQ2kDUAMc
🔗 0x7de349fd1a141f71bf85880ba32db050ed963f840285efc5c6b5a1139c209f66
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


docs: fix useActionData/useLoaderData usage

See<EMAIL_ADDRESS>
Closes #4110
Closes #4115
Closes #4609
Just like I did in https://github.com/remix-run/examples/pull/82, https://github.com/remix-run/examples/pull/83, https://github.com/remix-run/examples/pull/84 & https://github.com/remix-run/examples/pull/85

Thanks for the thorough review @pcattori! 🙏
Fixed all the remarks & some minor other things as well, so should be good to be merged now.

Hi @MichaelDeBoey, this PR causes issues (or leaves them unfixed?) at least with docs/guides/data-writes.md where setting defaultValues as per the documentation throws the following type error (see https://remix.run/docs/en/v1/guides/data-writes#graduate-to-form-and-add-pending-ui):
Type 'string | SerializeObject<UndefinedToOptional<File>> | undefined' is not assignable to type 'string | number | readonly string[] | undefined'.
  Type 'SerializeObject<UndefinedToOptional<File>>' is not assignable to type 'string | number | readonly string[] | undefined'.ts(2322)
index.d.ts(1851, 9): The expected type comes from property 'defaultValue' which is declared here on type 'DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>'


Update readme file to help start contributing to this project

Small changes to readme and how-to sections

Updated readme file to contain information about mongodb, env file and steps to start working on own fork of joie bot
added .env.example file

Awesome @Fecony 👍🏼


Updated colors_list to use this.value, rather than substrings

This pull request simplifies colors_list by getting the colors via this.value, rather than substrings. In order to do this, the inputs that actually contain the hex values must have the class of colorpick, not the 's that wrap around them.

I think we could avoid this problem if we had one class for the td, and a different one for the input.

I'm adding in your commits, and I will start working on revising the data model to better fit our needs.


x/website: include release dates in release notes

Release history page already presents the release date for each release.
https://go.dev/doc/devel/release
However, the main release notes don't include the release date info.
e.g https://go.dev/doc/go1.12
It will be convenient if the dates (at least years/months) are present.

also #40488

https://github.com/golang/go/issues/68861

to me the date is the single most important piece of information on the entire page, so the fact that its missing is concerning

Observing that, ironically, we have the expected approximate release date for upcoming major releases (e.g., https://tip.golang.org/doc/go1.24 currently says "Go 1.24 is expected to be released in February 2025."). And then it's deleted right as the exact release date becomes known with certainty, when the release is out. (E.g., the "expected to be released in August 2024" was deleted in today's change that dropped the draft notice).
It could be kept and updated to the exact day instead. Perhaps something like:

The latest Go release, version 1.23, arrives on August 13, 2024, six months after Go 1.22. Most of its changes are in […]


Static Class Properties breaks ie8

Static Class Properties compile down to use of Object.defineProperty which breaks in ie8. I'm happy to do the refactoring work to do things the (unfortunately less pretty) oldschool way.
Let me know if this sounds good - otherwise I'll have to fork :(

Ah, so Babel's loose mode is supposed to account for this, but it looks like since I updated the release script (which builds and publishes the npm package), the .babelrc file is no longer enabled, since the script cds into each package directory.
Long term solution will be to upgrade to Babel 6 and compile down to IE8 compatible code; in the meantime, if you want to submit a PR that either 1) rewrites to the old school way or 2) fixes the release script so that the Babel command is run from the root directory, I will accept.

Here's the line where Babel is run https://github.com/acdlite/recompose/blob/master/scripts/release.js#L88

After looking at Babel's class property transformer it doesn't appear there is any consideration for loose mode: https://github.com/babel/babel/blob/master/packages/babel-plugin-transform-class-properties/src/index.js
Because of this I'll be going down route #1 and refactor to basic old school syntax for these static class props

@acdlite do you want to keep the use of static class properties in tests? Obviously this will have no impact on ie8 compat and it is definitely a little nicer to read

Sure, that's fine

Fixed by https://github.com/acdlite/recompose/pull/69


load checkpoint

感谢您的分享
有个问题我不太明白，想请教
我使用您的的代码，设定
num_residual_blocks =5 （32层）
load  checkpoint  model_110.ckpt-79999
之后继续在在cifar 10的数据集上训练了2000 次
top-1 错误率 为什么会在15%左右？
难道不应该是 7%左右码?

Hi,
As I mentioned in the user's guide, the total layer equals to (6 * num_residual_blocks + 2). The checkpoint_model_110 is trained for ResNet-110, and should be loaded into a model with 18 residual blocks.
If loaded into ResNet-32, you'll only have the lower-level weights of the full model. That's why it does not perform as well as a complete model.
Sorry that I did not reply in Chinese. I just hope that other users who have the same issue could also find a solution here :)

thanks
I want to use this project to perform my own tasks，which the size of image should be 256*256 or larger and the number of final classification categories is 4 .
should  I just  modify a few simple parameters on it,such as, IMG_WIDTH ,IMG_HEIGHT,NUM_CLASS,or that  I need to reset the parameters of almost all network layers ？

In my opinion, you'd better resize the images to 32*32 first and then feed into the network. To modify the number of classes to 4, you need to change line 195 in resnet.py and line 21 in cifar10_input.py. Then it should be good to go. (I hard coded the number of classes, as this tutorial was originally designed merely for cifar10...)
From my experience, the code should somehow work with your images, but maybe not as good as ResNet for ImageNet. You'll lose many features in resizing. Anyway, there is no harm to start with this one.

thanks!


Check buffer length in FNonZeroFiniteDblToStr

For the function Js::NumberUtilities::FNonZeroFiniteDblToStr (in NumberUtilities_strtod.cpp), if the input double value dbl is negative and nDstBufSize is zero, there's a buffer overflow. The buffer length is not checked before the buffer ppsz is written.
This is not currently triggerable, since all callers pass a 256 byte buffer. But I think it's good to check the length here just in case.

Looks like no one has anything else to say about this. I'll run internal tests and merge it if everything is green.

@dotnet-bot test OSX _no_jit_shared_osx_osx_test please


Repo sync for protected CLA branch

The pull request is created from master637595460685009555 to master to fix git push error for protected CLA branch

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


fix: build steps in System-Tests pipeline

Triggered build here: https://jenkins.ops.vega.xyz/job/common/job/system-tests-wrapper/35461/console


No related package on the zip file

I CANNOT found the related  package on the downloaded package

use git clone then


[Proposal] Implement CGO to optimize performance of cryptography

In what area(s)?

/area runtime
Describe the proposal
Now Dapr uses mTLS as default between Dapr sidecars as doc said which cost much CPU and memory.
As design said, Golang does not put the performance in the mind.
There is a great gap between Golang crypto library and OpenSSL library, as https://github.com/golang/go/issues/34037 said, implement CGO with OpenSSL would bring at least 10% acceleration. Go-openssl even said at least 50% acceleration.
Users would get benefit from cryptography acceleration to reduce latency and improve throughput, especially in HPC or AI world.
We can use a build tag like +build cgo to control, as OpenSSL is cross-platform, we can easily build the right CGO version for each platform. Also, since OpenSSL API is relatively stable, we can write templates to generate CGO codes before build, no need to keep two versions of codes.
BTW it improves security too, there is an example about how to use quantum-resistant key encapsulation mechanisms (KEMs) on Linux.

/cc @yaron2 @wcs1only

I am OK to prioritize this work after a performance test is written showing the before and after of CPU and memory utilization. Our existing perf tests has framework to allow that.

I would really prefer to avoid CGO wherever possible.
I'll put an article here from one of the founders of Go for all to read: https://dave.cheney.net/2016/01/18/cgo-is-not-go
I'm not certain the theoretical improvement in performance is worth the cons listed above.

slower build times and complicated builds

As we have build flow by Github Action and Dapr is not an application which need build frequently, it is not a problem.

Cross compilation goes out the window

Since OpenSSL is corss-platform, no need to worry about this.

C calls the shots, not your code

We only call OpenSSL via CGO, do not implement any extra functions by C, and OpenSSL is much strong efficient as it is used wired, we can trust it as a library.

Deployment gets more complicated

For sidecar mode, there is no perception of users, for standalone mode, we can put dependence setup into cli and make it easy for users.
In total, build and deployment are not a big problem, only need to consider them the first time, then we can get the benefit of performance optimization. Besides, we can provide only the pure Go version as default, and provides details about CGO version for users who are performance sensitive.

I know your concerns:

slower build times and complicated builds

As we have build flow by Github Action and Dapr is not an application that need build frequently, it is not a problem.

Cross compilation goes out the window

Since OpenSSL is corss-platform, no need to worry about this.

C calls the shots, not your code

We only call OpenSSL via CGO, do not implement any extra functions by C, and OpenSSL is much strong efficient as it is used wired, we can trust it as a library.

Deployment gets more complicated

For sidecar mode, there is no perception of users, for standalone mode, we can put dependence setup into cli and make it easy for users.
In total, build and deployment are not a big problem, only need to consider them the first time, then we will get the benefit of performance optimization. Besides, we can provide only the pure Go version as default, and provides details about CGO version for users who are performance sensitive.

Building and compilation is not only for GitHub pipelines: it's a repeated step that every Dapr contributor goes through.
Making optional CGO builds may add complexity to our build steps and code.
As said here before, let's first make sure this is actually an issue. To date, we haven't seen any high CPU usage issues from users. If you can run a test to validate the scenarios in which using openSSL makes a big change in perf and provide numbers, we can discuss this further.

Do test at local, CGO swallowed OpenSSL's performance :(


Enh: channel sensitivity ui

Reference issue
https://github.com/mne-tools/mne-qt-browser/pull/230 , https://github.com/mne-tools/mne-qt-browser/pull/212 , https://github.com/mne-tools/mne-qt-browser/pull/208 , https://github.com/mne-tools/mne-python/issues/10888
What does this implement/fix?
Adds widget to settings dialog displaying units of sensor in relation to screen size. Ability to edit widgets will be done in future pull request

Rather than another set of rows with the channel types duplicated it probably makes more sense as a grid layout like

Type
Scaling
Sensitivity

grad (fT/cm)
800 ↕
111 ↕

mag (fT)
2000 ↕
277.5 ↕

eeg (uV)
40 ↕
5.5 ↕

eog (uV)
300 ↕
41.6 ↕

/ mm ⌄

Rather than another set of rows with the channel types duplicated it probably makes more sense as a grid layout like
Type	Scaling	Sensitivity
grad (fT/cm)	800 ↕	111 ↕
mag (fT)	2000 ↕	277.5 ↕
eeg (uV)	40 ↕	5.5 ↕
eog (uV)	300 ↕	41.6 ↕
/ mm ⌄

I like this idea. Just pushed it

I like this idea. Just pushed it

Well not quite... you still have redundant channel type names and units (other than the "per distance") in there, and they don't line up in rows either:

In other words, you did something like this rather than what I suggested:

Scalings

Sensitivities

grad (fT/cm)
800
grad (fT/cm/mm)
93.6

I think my suggestion is more compact / consistent but contains all the same information. Can you see if my suggestion works?
By eye looking at the cm it appeared to be correct, but you'll need to now also connect it to the resize event so that the values update when you resize. (The way I wanted to check the correctness was to resize my window such that the scale bar was very close to 1cm then check that the scale bar matched the Sensitivities value, but the spinbox values didn't update when I changed my window size.)

How does this look now? This is what was is your original suggestion. I'm wondering if the dropdown should be placed elsewhere. And for the next PR we're probably gonna need some toggle button like a checkbox or dropdown to choose which units are displayed on the scalebars

I just did:
mne browse_raw ~/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif

and then opened the settings dialog and pressed "b" to check to see if the values updated properly when butterfly mode was activated (because this changes the scalebar size). Have you checked? I get an error:
$ mne browse_raw ~/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif
Traceback (most recent call last):
  File "/home/larsoner/python/mne-qt-browser/mne_qt_browser/_pg_figure.py", line 5071, in keyPressEvent
    slot()
  File "/home/larsoner/python/mne-qt-browser/mne_qt_browser/_pg_figure.py", line 4903, in _toggle_butterfly
    self._set_butterfly(not self.mne.butterfly)
  File "/home/larsoner/python/mne-qt-browser/mne_qt_browser/_pg_figure.py", line 4856, in _set_butterfly
    self._update_ch_spinbox_values()
  File "/home/larsoner/python/mne-qt-browser/mne_qt_browser/_pg_figure.py", line 4007, in _update_ch_spinbox_values
    self.mne.fig_settings.update_all_spinboxes()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'SettingsDialog' object has no attribute 'update_all_spinboxes'

Assuming you can replicate, once you fix the bug you can to make sure the values update properly when activating/deactivating butterfly mode. But keep in mind https://github.com/mne-tools/mne-qt-browser/issues/276 where I point out that butterfly mode is already perhaps somewhat broken. It might be hard for you even to measure the size of the scale bar given the overlap... but you can at least eyeball the top half of the scale bar for the topmost channel type and go based on that I think.

Thanks for catching that. Just pushed commit

@larsoner every failed test is due to the sensitivity unit test I added. It passes on my computer but I don't know how to make it pass on github. Maybe I should change what the unit test is?

It could be some little precision issue, I think it's okay to use assert_allclose(a, b, atol=0.1) to tolerate the rounded term being different

Just pushed using assert_allclose() for unit test. I set tolerance for 2.

Did you measure to check the values? When I plot set the window size to match the stated sensitivity in inches:

The physical measurement shows closer to 1/4" from the top of the "grad" scale bar to where the "grad" text is, suggesting that its full size is 1/2" for the 800 fT/cm. So I think there's a factor of two error?

From this view, when I hit "b" the plot updates but the spinbox values don't update:

If I trivially resize the window e.g. in the horizontal direction, they do:

So I think the "spin box update when butterfly mode is toggled" still needs to be updated / connected.

I fixed the butterfly toggle.
For the butterfly sensitivity I think it's accurate. It's difficult to tell with overlapping scalebars. I tried measuring it with just one channel type on the screen. Though it could have been due to a prior error.

Now I have a bug where if I do:
$ mne browse_raw ~/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif --clipping None --butterfly

This one looks correct, the distance from the top of the grad bar to the grad ylabel tick is very close to 1/4" so the full bar (assuming it's centered) is 1/2", and the scale bar is labeled as 400 fT/cm in the plot and the spin boxes, suggesting the sensitivity is 400 fT/cm/half-inch, which is the same as 800 fT/cm/inch (i.e., the spin box is correct correct):

But if I do the same command without the --butterfly then interactively do "b" on the keyboard to toggle it, I get the same plot and same spin box values as before except text on the scale bar says 800 fT/cm despite the text in the spin boxes being update:

So I think there's some bug with updating the scale bar values perhaps, but I think we can chalk this up to https://github.com/mne-tools/mne-qt-browser/issues/276. Might be a good one to tackle next if you want @nmarkowitz or you can move on to making the sensitivity boxes interactive (I expect this one might be easy now hopefully)!


Allow working directory to be outside of repo for bindcraft.py

Hello,
Thank you for open sourcing this library! I'm eager to try it out.
Currently the bindcraft.py script expects you to be in the repo directory when you run it. You can instead get the scripts directory from the file variable, enabling the ability to run it from outside the repo directory.
Cheers.

Wouldn't it be better to simply exclude the lines, and add the paths to the advanced_settings.json file instead? I don't quite understand why they're being appended to the dict at runtime instead of being part of the settings. It could be made such that these set the default value, if the setting is not included.

If that's something Martin would like it can be changed. I just tried to make the smallest change possible.

The choice to put them in the main file was so that it is comaptible with the Colab as well as local installation, and the user has to specifiy the minimum amount of settings manually.


Bug when  running the tool

When I  try to logon for the devicelogin step, I get this error:
AADSTS900561: The endpoint only accepts POST requests. Received a GET request.

Hi @TH3xACE,

It seems that this Microsoft error is possibly related to the client used for reaching the logon device URL (https://microsoft.com/devicelogin). If this is not what you meant, please elaborate.
The best way to test this again using a clean browser profile with no extensions and with no prior cache & cookies (or incognito).

Could you please test and update? Alternatively, please provide more details about your browser/client, since it might be affecting the request and generating the error you received.
Please LMK if you have any Qs or if I misunderstood.
Thanks,
Avishai

Closing the issue, since there's been no response. Please let us know if you have any further Qs.
Thanks


Scopes are being changed to lowercase

Please follow the issue template below. Failure to do so will result in a delay in answering your question.

Library

[x]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Important: Please fill in your exact version number above, e.g<EMAIL_ADDRESS>Framework
Description
#1600 seems to have introduced a change that is changing all scopes to lowercase.  This is causing issues with some backends that have case-sensitive audience validation.
Error Message
Receiving a 401 from call to API due to invalid audience.
Security

[ ] Is this issue security related?

Regression

[x] Did this behavior work before?
Version: 1.2.2

MSAL Configuration
this.msalContext = new UserAgentApplication({
	auth: {
		clientId: config.clientId,
		authority: `https://login.microsoftonline.com/${tenant}`,
		redirectUri: config.redirectUri || defaultRedirect,
		postLogoutRedirectUri: config.postLogoutRedirectUri || defaultRedirect,
		validateAuthority: true,
		navigateToLoginRequestUrl: true
	},
	cache: {
		cacheLocation: "sessionStorage",
		storeAuthStateInCookie: this.isEdge() || this.isInternetExplorer()
	},
	framework: {
		protectedResourceMap: new Map(),
		unprotectedResources: []
	}
});

Reproduction steps
const requestParameters: AuthenticationParameters = {
	scopes: ["https://UpperCase.domain.com/.default]
};

Expected behavior
Scopes should be unmodified (other than trimming)
Browsers/Environment

[x] Chrome
[x] Firefox
[x] Edge
[x] Safari
[x] IE
[ ] Other (Please add browser name here)

@dapathy Thanks for the information. This is something we're going to look at and follow up on.


UX: User creates a new page with no title and a block. When hitting save there is no visual indication that the title is required and missing

as admin
go to volto.kitconcept.com
create a new page (without typing in a title)
add a new image block (right sidebar will show the block details)
hit save button
-> nothing happens
-> the user is puzzled
-> you have to switch the sidebar to the "document" tab to see that there is a required field (title)

what should happen:
-> the title field indicates it is required (red border) and Volto shows a message that you have to enter a title in order to save the site
-> the save button should be disabled and show a message that the title is required (on hover)

Refs #1589 and #1454

@tisto Is this still the case. I think we have a toast error now.

At the moment of this writing the problem is gone as the error appears and the tab is changed to the "Document" one so the title is visible that is empty.


Update napari.run, prevent double-blocking, add show(run=False)

Description
This PR makes some more improvements surrounding starting an event loop with napari.run(), and updates or __main__.py file to use it.
It adds two nice little checks to napari.run()

There's a better check for whether IPython %gui qt is in use (the really nice thing here is that this will now let you start without %gui qt, even create the app with napari, and then later switch on gui qt and get the console interactivity back
I also found and now check for app.thread().loopLevel() ... which tells you how many event loops are already running in the main thread (so, it should help root out those last cases where we might possible double-block the UI by calling napari.run() when a loop is already running.

I also moved our current ExceptionHandler hook into napari.run (until now, that was still only active in gui_qt), and that's setup nicely to be replaced by #2205  when that's ready to go
lastly, I added a (run=False) option to viewer.show().  So, if you wanted to, you can now do something like napari.view_path("/some/file.tif").show(run=True), and go from no QApp to a visible viewer in one line.
Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

He does! I agree very much that viewer.show() should be equivalent to napari.run() — especially since all the new run machinery should prevent multiple event loops from happening anyway, right?

the current problem with making viewer.show() be equivalent to viewer.run() is that show=True is the default in the function signature... Which means that you couldn't now create two viewers without blocking on the first one.  So, if we do that, we need to now require everyone to manually call show().
Basically, showing and running need to be two different concepts

... to expand on that.  If  we make .show() automatically start the event loop then this will immediately block the script:
viewer = napari.Viewer()  #blocks immediately because show=True in signature
# can't even set up additional stuff...

if we make show=False in the signature, then we kind of have a breaking API change:
viewer = napari.Viewer()
napari.run()  # NOTHING shows because nobody called viewer.show()

Ah. Got it. That's terrible. I'm kinda thinking we just remove show(run=True) as an option altogether then, given the potential for confusion. I'm pretty happy with napari.run() anyway, it's already a huge improvement over the context manager.

I agree, I'll remove it to avoid confusion.  We shouldn't forget this though... since show=True in the Viewer signature may very well be a pain in our side in the future

Ah. Got it. That's terrible. I'm kinda thinking we just remove show(run=True) as an option altogether then, given the potential for confusion. I'm pretty happy with napari.run() anyway, it's already a huge improvement over the context manager.
...
I agree, I'll remove it to avoid confusion. We shouldn't forget this though... since show=True in the Viewer signature may very well be a pain in our side in the future

Hmm yeah, I agree this is a little more complex than I had thought earlier because of the two viewer case.
I'm not so sure i'd give up on the show=False default. What if we embrace that show really is just an alias for napari.run and show only starts the event loop, and the Window  is always called with show=True. I really don't see a need to have that both show and run control. When you call run everything you've already made should be shown, and when you call show you should get a run.

I really don't see a need to have that both show and run control. When you call run everything you've already made should be shown, and when you call show you should get a run.

we could achieve something like that by differentiating between showing the napari.Viewer object and showing the viewer.window object:
class Viewer(ViewerModel):
    def __init__(..., show=False, show_window=True):
        ...
        self.window = Window(self, show=show_window)
        if show:
            self.show()

    def show(self):
		from . import run
        napari.run()

quick note: while something like that works pretty well, it exposes another issue in the way we link the "lifetime" of the viewer object very tightly to the viewer.window object:
In [1]: import napari

In [2]: viewer = napari.Viewer()

In [3]: viewer.show()   # blocks and runs as expected, nice!

# do stuff... close the viewer

In [4]: viewer  # the `Viewer` object still exists.
Out[4]: <napari.viewer.Viewer at 0x7fe6f09e56a0>

In [5]: viewer.show()  # but the window and everything else has been cleaned up.
/Users/talley/Dropbox (HMS)/Python/forks/napari/napari/_qt/qt_event_loop.py:258: UserWarning: Refusing to run a QApplication with no topLevelWidgets. To run the app anyway, use `run(force=True)`

so, we'd need to fix that

we could achieve something like that by differentiating between showing the napari.Viewer object and showing the viewer.window object:

Yes, I love that. My only question then is if there is really a need to ever have show_window=False anymore. I'm ok providing it if people want, but I'm just trying to imaging the scenario when someone needs to use it.
Ooo, actually I just have another idea! What about something like this where if both show=False and show_window=False then you don't even instantiate the window?
class Viewer(ViewerModel):
    def __init__(..., show=False, show_window=True):
        ...
        self.window = None
        if show_window:
            self.show_window()

        if show:
            self.show()

    def show_window():
        if self.window is None:
            self.window = Window(self, show=True)

    def show(self):
        self.show_window()
	from . import run
        napari.run()

(and actually... we could even delay the creation of viewer.window to viewer.show() ... which makes more sense anyway)

lol.  saying the same things again :)

ok, i think there's good ideas here.  Let's just remove the show(run=False) from this PR and address this in another PR

(and actually... we could even delay the creation of viewer.window to viewer.show() ... which makes more sense anyway)

right we could do the following too - this might be my favourite unless there is a need for the extra flexibility of an independent show_window. I can't see a need right now
class Viewer(ViewerModel):
    def __init__(..., show=False):
        ...
        self.window = None

        if show:
            self.show()

    def show(self):
        if self.window is None:
            self.window = Window(self, show=True)
	from . import run
        napari.run()

ok, removed run=False, and undid the absolute imports. ready again


[UBS] - tariff status

You should create a new field that will display tariff status. It should be "Активно" if all the fields are filled correctly. "Незаповнено" if some information is missing. Or "Девктивовано" if tariff was deactivated. Currently we have status column in tariffs table but it represents location status that is not correct.

Functionality already exists and works as expected. Couriers are not showing correctly on the front-end side.


Add Extension section for pagination, filtering to README.

@Tazrof Here's a section for you for the Readme. Reading through your code, it was fun to see that adding and customizing these would be so easy.

Hello !
Thanks for the tip for future users !
The library was designed to be the as generic and open as possible since everyone has their own touch for the JSON:API, glad to see it works :).


Monitor URL in solutions is pointing to a no data node

Description
Monitor URL in every solution I deploy is just navigating me to an empty node with all of its resources as N/A

While the node monitor url from explorer is working fine

Should be fixed in https://github.com/threefoldtech/tfgrid-sdk-ts/pull/480, please check

Verified, Devnet 82e62b5.
Monitor link is now pointing to the correct node grafana.


Recommended form validation library

What form validation library would you recommend that works well with SvelteUI widgets?
I'm not looking for a schema validation library, like Zod, or Yup, but a form validation library, that e.g. tracks input field touched or dirty state (like svelte-forms).

Have you tried svelte-forms-lib?

@BingeCode, I'm interested in what are the advantages of using this library with SvelteUI widgets? How does it compare to other libraries in terms of integrating with this project?

Svelte-form-libs is a library designed for form management in Svelte applications, offering seamless integration with SvelteUI widgets. It simplifies form management, provides compatibility with Svelte, enables reactive form states, custom validation, and extensibility through plugins. Compare it with other Svelte form libraries like Svelte Forms Lib and Felte based on your project needs.
I'm gonna use it in my own project and will report here when I have some experience using it ;)


fix: dispatch change event for native dropdown

Before (the change)
Change a selection on native dropdown doesn't trigger onChange event
After (the change)

Make sure that you've checked the boxes below before you submit the PR

[x] I have read and followed the setup steps
[x] I have created necessary unit tests
[x] I have tested the functionality in both React and Angular.

Steps needed to test
 onChangeNativeSelect(event: Event) {
    // handle change
    console.log((event as CustomEvent).detail.value);
  }

<goa-form-item label="Basic dropdown">
  <goa-dropdown native name="item" value="" (_change)="onChangeNativeSelect($event)">
    <goa-dropdown-item value="red" label="Red"></goa-dropdown-item>
    <goa-dropdown-item value="green" label="Green"></goa-dropdown-item>
    <goa-dropdown-item value="blue" label="Blue"></goa-dropdown-item>
  </goa-dropdown>
</goa-form-item>

issue is verified for chrome, angular, and firefox, tested for native, non-native, and filterable

:tada: This PR is included in version 1.17.0-alpha.73 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.0.0-alpha.4 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.17.0-alpha.32 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


integration/docker: Fix CPU test

Fix CPU tests according with the new changes introduced in virtcontainers.
Before starting with the tests, a container whithout CPU constraints
is launched to get the default number of vCPUs, this number is used
to calculate the expected number of vCPUs per container in each test.
fixes #936
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

CI CPU tests are still failing.


docs: update maintainer of docusaurus-theme-github-codeblock

I took over maintenance of given package so updating the link to refer to the maintained one.

Pre-flight checklist

[x] I have read the Contributing Guidelines on pull requests.
[ ] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation

Test Plan

Test links

Deploy preview: https://deploy-preview-_____--docusaurus-2.netlify.app/
Related issues/PRs

We'll wait for the resolution of https://github.com/saucelabs/docusaurus-theme-github-codeblock/pull/25. I want to get the saucelab maintainer's approval.


Added headers in scan http calls

Description
Describe the changes made and why they were made instead of how they were made.
Related issues and discussion
#fixes 2032
All header in all the http requests which use scan and barcode.
Screen-shots, if any
Checklist
Make sure you've done all the following (You can delete the checklist before submitting)

[x] Apply the AndroidStyle.xml style template to your code in Android Studio.
[x] Code is well documented
[x] Include unit tests for new functionality
[x] All user-visible strings are made translatable
[x] Code passes Travis builds in your branch
[x] If you have multiple commits please combine them into one commit by squashing them.
[x] Read and understood the contribution guidelines .

@teolemon The scanner uses this method. How to differentiate the headers? We can add "User-Agent" which can tell that API call has been made using the Official Android App. It could be a scan or a search as well.  @stephanegigandet What header can we add to distinguish different API calls from the same User-Agent? We can have the "User-Agent" during scan as "Official Android App xyz Scan" and during search we can change it to "Official Android App xyz Search", where xyz is the version number of the app. Is it a correct way of doing this?

@huzaifaiftikhar  I understood the need to use dynamic headers.
Should I directly pass app name + version as a string ?

@huzaifaiftikhar your solution looks good 👍

@teolemon  Should I do this ?

Make a dynamic header in scanner method as "App Name + verison + Scan", and in other as "Name + version + Search" ?

Should I do this ?

Make a dynamic header in scanner method as "App Name + verison + Scan", and in other as "Name + version + Search" ?

Sounds good to me 👍

@huzaifaiftikhar  Should I add scan in getShortProductByBarcode() as well. I mean is this call also used during Scan, or search ?

@huzaifaiftikhar Should I add scan in getShortProductByBarcode() as well. I mean is this call also used during Scan, or search ?

No this is not used during scan. Refer this for adding dynamic headers.

@huzaifaiftikhar  Can't i set dynamic headers without map :
// Replaces the header with the the value of its target.
@GET("/")
void foo(@Header("Accept-Language") String lang, Callback cb);
I mean just a string eg. "Official android app 2.3 Scan" in lang (Just an example) ?

Also, to get Version, we need context, which I am not able to pass from test classes, but all these network classes are added in test, can you help me with it ?
@huzaifaiftikhar

What if a REST method is used for both searching as well as scanning? Later on we can remove all the methods and just keep a single method for both scanning as well as searching. You might have already observed that both getFullProductByBarcode and getFullProductByBarcodeSingle are exactly the same API calls except that the former uses the Retrofit's default Call and the latter uses RxJava. So at some point of time we could just keep the Rx one and remove the other.
For getting the version name you can simply use the String BuildConfig.VERSION_NAME

@huzaifaiftikhar  I dont really understand how using the HeadersMap can solve the problem you mentioned, because i think the difference in my method and the blog is only about passing the parameters as a map instead of a string.
Sorry I am new to networking, so a bit confused about the stuff.

Yes making the Header as a parameter of the method would fix our problem, no need for a map we can use a String as well since we have to add only a single header at present. Use "User-Agent" and not "Accept-Language"

@huzaifaiftikhar  Made the changes.

Sorry is closed it by mistake.

<IP_ADDRESS> - - [31/Dec/2018:16:04:04 +0100] "GET /api/v0/product/5997523313111.json?fields=image_small_url,vitamins_tags,minerals_tags,amino_acids_tags,other_nutritional_substances_tags,image_front_url,image_ingredients_url,image_nutrition_url,url,code,traces_tags,ingredients_that_may_be_from_palm_oil_tags,additives_tags,allergens_hierarchy,manufacturing_places,nutriments,ingredients_from_palm_oil_tags,brands_tags,traces,categories_tags,ingredients_text,product_name,generic_name,ingredients_from_or_that_may_be_from_palm_oil_n,serving_size,allergens_tags,allergens,origins,stores,nutrition_grade_fr,nutrient_levels,countries,countries_tags,brands,packaging,labels_tags,labels_hierarchy,cities_tags,quantity,ingredients_from_palm_oil_n,image_url,link,emb_codes_tags,states_tags,creator,created_t,last_modified_t,last_modified_by,editors_tags,nova_groups,lang,purchase_places,nutrition_data_per,no_nutrition_data HTTP/2.0" 200 5742 "-" "Official Android App2.9.8Scan"

Spaces between the Name, Scan and Version Number

<IP_ADDRESS> - - [31/Dec/2018:16:07:29 +0100] "GET /api/v0/product/5997523313111.json?fields=image_small_url,vitamins_tags,minerals_tags,amino_acids_tags,other_nutritional_substances_tags,image_front_url,image_ingredients_url,image_nutrition_url,url,code,traces_tags,ingredients_that_may_be_from_palm_oil_tags,additives_tags,allergens_hierarchy,manufacturing_places,nutriments,ingredients_from_palm_oil_tags,brands_tags,traces,categories_tags,ingredients_text,product_name,generic_name,ingredients_from_or_that_may_be_from_palm_oil_n,serving_size,allergens_tags,allergens,origins,stores,nutrition_grade_fr,nutrient_levels,countries,countries_tags,brands,packaging,labels_tags,labels_hierarchy,cities_tags,quantity,ingredients_from_palm_oil_n,image_url,link,emb_codes_tags,states_tags,creator,created_t,last_modified_t,last_modified_by,editors_tags,nova_groups,lang,purchase_places,nutrition_data_per,no_nutrition_data HTTP/2.0" 200 5742 "-" "Official Android App2.9.8Search"

Fixed it @teolemon

Normally that's what it now does. Cf the PR @huzaifaiftikhar

<IP_ADDRESS> - - [31/Dec/2018:16:07:29 +0100] "GET /api/v0/product/5997523313111.json?fields=image_small_url,vitamins_tags,minerals_tags,amino_acids_tags,other_nutritional_substances_tags,image_front_url,image_ingredients_url,image_nutrition_url,url,code,traces_tags,ingredients_that_may_be_from_palm_oil_tags,additives_tags,allergens_hierarchy,manufacturing_places,nutriments,ingredients_from_palm_oil_tags,brands_tags,traces,categories_tags,ingredients_text,product_name,generic_name,ingredients_from_or_that_may_be_from_palm_oil_n,serving_size,allergens_tags,allergens,origins,stores,nutrition_grade_fr,nutrient_levels,countries,countries_tags,brands,packaging,labels_tags,labels_hierarchy,cities_tags,quantity,ingredients_from_palm_oil_n,image_url,link,emb_codes_tags,states_tags,creator,created_t,last_modified_t,last_modified_by,editors_tags,nova_groups,lang,purchase_places,nutrition_data_per,no_nutrition_data HTTP/2.0" 200 5742 "-" "Official Android App2.9.8Search"
<IP_ADDRESS> - - [31/Dec/2018:16:04:04 +0100] "GET /api/v0/product/5997523313111.json?fields=image_small_url,vitamins_tags,minerals_tags,amino_acids_tags,other_nutritional_substances_tags,image_front_url,image_ingredients_url,image_nutrition_url,url,code,traces_tags,ingredients_that_may_be_from_palm_oil_tags,additives_tags,allergens_hierarchy,manufacturing_places,nutriments,ingredients_from_palm_oil_tags,brands_tags,traces,categories_tags,ingredients_text,product_name,generic_name,ingredients_from_or_that_may_be_from_palm_oil_n,serving_size,allergens_tags,allergens,origins,stores,nutrition_grade_fr,nutrient_levels,countries,countries_tags,brands,packaging,labels_tags,labels_hierarchy,cities_tags,quantity,ingredients_from_palm_oil_n,image_url,link,emb_codes_tags,states_tags,creator,created_t,last_modified_t,last_modified_by,editors_tags,nova_groups,lang,purchase_places,nutrition_data_per,no_nutrition_data HTTP/2.0" 200 5742 "-" "Official Android App2.9.8Scan"

@teolemon @huzaifaiftikhar  I dont understand. Is their any problem ?

I was suggesting that for the case when it's neither a Scan nor a Search you have used the text "Unknown user agent". I am saying that we can change that text to "Official Android App x.y.z" without the Scan/Search. This way at least we are sure that the API was used by our official app.

Oh okay, I'll do it @huzaifaiftikhar

ah ok :-) 👍

Fixed it @teolemon  @huzaifaiftikhar

Can we also had the HEADER to the image calls as well as the taxonomies call ?

Merged, thanks @shiv07tiwari


Mail Function

The php mail function appears not to be installed (missing sendmail). As such, I do not get notifications when new tickets are sent etc.
Could you add this to the Dockerfile?

Thanks for your suggestion.
I don't want to add a SMTP service directly into the image as successfully running your own mail server is not trivial. It's relatively easy to get one up and running, it's a bit harder to get one that's secure, rejects the majority of spam and is accepted by all major ISPs. I also don't want to add a SMTP service into the image for the same reason I didn't add MySQL server, it violates the SRP for the image.
However, I agree that support for sending email should be addressed. I will see if I can add support via environmental variables for configuring PHP to use a specified SMTP server. This should allow the use of any smarthost. Alternatively, if there is already a good docker image for handling email then it could link to that - I'll have a look.

Hi Martin
I do agree – adding a full fledged SMTP server is not required here.
I just want to be able to receive emails from the image and, where appropriate, configure osticket to pull emails from a specified IMAP/POP3 account (for creation of new tickets).
Best Regards
Mark
From: Martin Campbell
Sent: Friday, October 09, 2015 9:16 AM
To: CampbellSoftwareSolutions/docker-osticket
Cc: judouk
Subject: Re: [docker-osticket] Mail Function (#3)
Thanks for your suggestion.
I don't want to add a SMTP service directly into the image as successfully running your own mail server is not trivial. It's relatively easy to get one up and running, it's a bit harder to get one that's secure, rejects the majority of spam and is accepted by all major ISPs. I also don't want to add a SMTP service into the image for the same reason I didn't add MySQL server, it violates the SRP for the image.
However, I agree that support for sending email should be addressed. I will see if I can add support via environmental variables for configuring PHP to use a specified SMTP server. This should allow the use of any smarthost. Alternatively, if there is already a good docker image for handling email then it could link to that - I'll have a look.
—
Reply to this email directly or view it on GitHub.
--
To report this message as spam, click here
This message has been scanned for viruses and dangerous content by DFK Systems Limited, and is believed to be clean.
--
This message has been scanned for viruses and dangerous content by DFK Systems Limited, and is believed to be clean.
To report this message as spam, please click on this link -
https://secure.dfk-systems.com/quarantine/spam.php?srv=m2&id=t999pOYr032611

I've updated the image to fully support mail related functionality. All outgoing mail will be sent via a SMTP server you specify and automatic checking of incoming mail using IMAP/POP3 is also supported via a cron job.
See the README for details, this works for me when tested against an external mailbox.

Closing this as the build is now available in the Docker hub. Feel free to re-open this issue if you find an issue.

Hi Martin
There is a problem with the install.php script.
It seems that the SMTP_TLS option is not a boolean (1/0) but a on/off statement.
As a result, all options mean TLS is enabled.
The quick fix is to update install.php (and of course, the documentation).
Best Regards
Mark

The way the default value was specified for SMTP_TLS was overriding the '0' value. I've updated the script to ensure the default is only used where no value is given. Gave that a quick test and all three options (1/0/not present) should now be working as expected. The new build is now on the Docker hub.
No need for the documentation to be updated as inputs should be 0 or 1, it was just the script implementation was incorrect. As ever, feel free to re-open if you hit further issues.

Thanks Martin – will test this later today
From: Martin Campbell
Sent: Tuesday, October 20, 2015 10:48 AM
To: CampbellSoftwareSolutions/docker-osticket
Cc: judouk
Subject: Re: [docker-osticket] Mail Function (#3)
The way the default value was specified for SMTP_TLS was overriding the '0' value. I've updated the script to ensure the default is only used where no value is given. Gave that a quick test and all three options (1/0/not present) should now be working as expected. The new build is now on the Docker hub.
No need for the documentation to be updated as inputs should be 0 or 1, it was just the script implementation was incorrect. As ever, feel free to re-open if you hit further issues.
--
This message has been scanned for viruses and dangerous content by DFK Systems Limited, and is believed to be clean.
To report this message as spam, please click on this link -
https://secure.dfk-systems.com/quarantine/spam.php?srv=m2&id=t9KAUv47026161

Confirmed - now works. Thanks again


yaml error on a file that does not exist

I have been working on a file (secrets.yaml) which I had encrypted but it had some issues so I deleted the file, now when I try to run
helm secrets enc secrets.yaml
it gives the following error:
Error unmarshalling file: Error unmarshaling input YAML: yaml: line 6: found unexpected ':'
Error: plugin "secrets" exited with error
The secrets.yaml file is no longer there, is it being cached somewhere?
-- I figured it out, had the template secrets.yaml in a subfolder and it was also drilling into the subfolder.

Looks like this is closed


Add first class support for json format

JSON is a common format that is used when coding backend apis. Would be good if vim had first class support for formatting JSON so that we don't have to use external tool or website.

On 2022-10-22, Prabir Shrestha wrote:

JSON is a common format that is used when coding backend apis. Would be good if
vim had first class support for formatting JSON so that we don't have to use
external tool or website.

I don't use JSON a lot.  What sort of formatting do you want that
the existing json.vim or jsonc.vim indent plugin doesn't provide?
Regards,
Gary

I have a json http response and need to format so I can inspect it. It could contain sensitive (customer) data and would like to avoid using random external tools to inspect it. Inspecting minified JSON is hard.
I'm looking for an equivalent for this :%!python -m json.tool by :JsonFormat and JSON.stringify() by json_format()  but without me install python (it is pain to use in Windows).
In Javascript this is what one could do.
var obj = { 'name': 'prabir' };
JSON.stringify(obj, null, 4);    // Indented 4 spaces
JSON.stringify(obj, null, "\t"); // Indented with tab

can't you filter your buffer through e.g. jq ?

JSON is a common format that is used when coding backend apis. Would
be good if vim had first class support for formatting JSON so that we
don't have to use external tool or website.

Vim provides plugins for indenting, but formatting (splitting lines at
specific places) is mainly limited to text.  Not only because formatting
is much more work, also because there are many more different ways
formatting can be done (illustrated by the many options we already have
just for plain text).
I'm not against including a few plugins for formatting, but I also don't
want to make a grand collection of language formatters.  It's more
something users with specific interest would find the right formatter
when they need it.  Json should be generic enough to justify including a
formatter for, perhaps there are one or two other generic languages.
But not much more.
Something like "jq" is a binary, that makes it less attractive to
include with Vim.  Could include a plugin that has some mechanism to
find "jq" on a local machine or give hints on how to install it.
If someone wants to create that.
--
hundred-and-one symptoms of being an internet addict:
23. You can't call your mother... she doesn't have VOIP
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Here is proof of concept:
https://asciinema.org/a/OIpGQplEKpjF9xbaxNZB5Bayn
def JSONFormat(line1: number, line2: number)
    var json_src = getline(line1, line2)->join()
    var json = []
    var indent_lvl = 0
    var indent_base = matchstr(getline(line1), '^\s*')
    var indent = &expandtab ? repeat(' ', &shiftwidth) : "\t"
    var json_line = indent_base
    var state = ""
    for char in json_src
        if state == ""
            if char =~ '{\|\['
                json_line ..= char
                json->add(json_line)
                indent_lvl += 1
                json_line = indent_base .. repeat(indent, indent_lvl)
            elseif char =~ '}\|\]'
                json->add(json_line)
                indent_lvl -= 1
                json_line = indent_base .. repeat(indent, indent_lvl)
                json_line ..= char
            elseif char == ':'
                json_line ..= char .. ' '
            elseif char == '"'
                json_line ..= char
                state = 'ATTR'
            elseif char == ','
                json_line ..= char
                json->add(json_line)
                json_line = indent_base .. repeat(indent, indent_lvl)
            elseif char !~ '\s'
                json_line ..= char
            endif
        elseif state == "ATTR"
            json_line ..= char
            if char == '"'
                state = ""
            endif
        else
            json_line ..= char
        endif
    endfor
    if !empty(json_line)
        json->add(json_line)
    endif
    exe $":{line1},{line2}d"
    if line('$') == 1
        setline(line1, json[0])
        append(line1, json[1 : ])
    else
        append(line1 - 1, json)
    endif
enddef
command! -range=% JSONFormat JSONFormat(<line1>, <line2>)

Hmm, I have tried to make it work with 'formatexpr' but failed :(
This is in after/json.vim
import autoload 'json.vim'
setl formatexpr=json.FormatExpr()

In autoload/json.vim I have
vim9script
export def FormatExpr()
    Format(v:lnum, v:lnum + v:count)
enddef

export def Format(line1: number, line2: number)
.... as in previous message

And it formats it into garbage.

Oh, formatexpr can't speak vim9script!
setl formatexpr=json#FormatExpr()

Works!
@brammool I can create a PR if needed.

This is the latest thing I have that works with gq in normal mode.
Unfortunately I couldn't make it work for a {visual}gq.
vim9script

# in after/json.vim
# setl formatexpr=json#FormatExpr()

export def FormatExpr(): number
    Format(v:lnum, v:lnum + v:count - 1)
    return 0
enddef

export def Format(line1: number, line2: number)
    var json_src = getline(line1, line2)->join()
    var json = []
    var indent_lvl = 0
    var indent_base = matchstr(getline(line1), '^\s*')
    var indent = &expandtab ? repeat(' ', &shiftwidth) : "\t"
    var json_line = indent_base
    var state = ""
    for char in json_src
        if state == ""
            if char =~ '{\|\['
                json_line ..= char
                json->add(json_line)
                indent_lvl += 1
                json_line = indent_base .. repeat(indent, indent_lvl)
            elseif char =~ '}\|\]'
                json->add(json_line)
                indent_lvl -= 1
                json_line = indent_base .. repeat(indent, indent_lvl)
                json_line ..= char
            elseif char == ':'
                json_line ..= char .. ' '
            elseif char == '"'
                json_line ..= char
                state = 'ATTR'
            elseif char == ','
                json_line ..= char
                json->add(json_line)
                json_line = indent_base .. repeat(indent, indent_lvl)
            elseif char !~ '\s'
                json_line ..= char
            endif
        elseif state == "ATTR"
            json_line ..= char
            if char == '"'
                state = ""
            endif
        else
            json_line ..= char
        endif
    endfor
    if json_line !~ '^\s*$'
        json->add(json_line)
    endif
    exe $":{line1},{line2}d"
    if line('$') == 1
        setline(line1, json[0])
        append(line1, json[1 : ])
    else
        append(line1 - 1, json)
    endif
enddef

let me close this in favor of #11506


Does the MSC support Hot plugging?

First of all, thank you for your work, EspTinyUSB is a great library!
When I try the MSC example, I found that the current MSC example program doesn't seem to support hot-plugging.
According to my test, when hot-plugging the disk, the usb_host_transfer_submit() function in USBmscDevice::csw() will return the status of ESP_ERR_INVALID_STATE. And then the program will lose the usb_host communication.
Is there any solution?

Sorry, it is not supported yet.
Its because of bugs in esp-idf host code, which is already fixed in master, but im not sure if its backported to v4.4 and arduino-esp32.

Thank you for the work for this great and apparently only resource for this problem.
Any chance for an update regarding USB MSC hotplug read/write?
Would help a great deal. Willing to donate for the cause.


Update headers in 2.11 sources + add myself to AUTHORS

Few things I forgot:

When doing #531, I ran headerCreate without cross-building, so sources specific to 2.11 didn't get updated
I also never added myself to AUTHORS file :)

Thanks @oleg-py


Add a location search for users to find their home or workplace

The fastest way to do this would be to use one of the several Leaflet plugins that adds a "search" control box as an overlay on the map.
Also, remove the "Search" box in the upper-right corner because it's misleading on what it does. (The search box on the left side should remain.)

I think this is pretty easy to do. I can export a layer from qgis2leaf that
includes a location search.
On Tuesday, March 10, 2015, Steven Vance<EMAIL_ADDRESS>wrote:

—
Reply to this email directly or view it on GitHub
https://github.com/zorostang/chicago_bike_equity/issues/24.

--
Eric Sherman
224-402-0004
This e-mail, and any attachments thereto, is intended only for use by
the addressee(s) named herein and may contain legally privileged
and/or confidential information. If you are not the intended recipient
of this e-mail (or the person responsible for delivering this document
to the intended recipient), you are hereby notified that any
dissemination, distribution, printing or copying of this e-mail, and
any attachment thereto, is strictly prohibited. If you have received
this e-mail in error, please respond to the individual sending the
message, and permanently delete the original and any copy of any
e-mail and printout thereof.

@easherma I'm interested in seeing how qgis2leaf (QGIS to Leaflet) works, and I'm a little surprised that it comes with a location search. Is that location search specific to the layer that you export?

@stevevance Top right Search box Removed


Some 1st cleanups in staticmodular

@Jetski5822
Sorry, you was right for Types, it seems that we don't need all features dependencies. The problem was that some dependencies as Orchard.ContentManagement.Display, which was not an ambient project but also not a feature, was defining tag helpers.
So the need to resolve dependencies and then to filter them on mvc references not to have too much types. Then because @sebastienros moved tag helpers to modules, it seems that this is no more necessary. Sorry again, you was closer to the right solution.
But for compilation ReferencesPaths i think i was right ;)
So, i've removed my specific code about assemblies providers and right now in AmbientAssemblyCatalog.cs i just updated the code so that it can be compiled.
But if you still need assemblies providers for Nancy modules, you can re-integrate your code. But for infos when i had tried it the following line was always returning a null value.
var context = DependencyContext.Load(entryPointAssembly);

So, DiscoverAssemblies() was just returning the list of assemblies we was passing to it.
Best.

@sebastienros
In my last commit a suggestion to have a simpler SharedCompilerCacheProvider without having to copy paste the mvc code. Let me know if it is ok.
If i have to revert this, at least i think this line is not usefull.
applicationPartManager.PopulateFeature(feature);

Best.


Topic slug unique with soft delete

I think the "string('slug')->unique()" for the model Topic is misleading in combination wit soft delete. If a topic "Test" is created and deleted it can never be added anymore. In my opinion the id should be the unique key and the validation should handle it.
Create Validation:
'slug' => 'string|required|unique:topics,slug,NULL,id,deleted_at,NULL'
Update Validation:
'slug' => 'string|required|unique:topics,slug,' . $topic->id . ',id,deleted_at,NULL',
What do you think?

Hey @alex1897 , yeah your suggestions make sense. I will work on this. Thank you.


Slow speed loading dashboard

Hi,
I have added some pages to my dashboard and because of that the main javascript files in 'dist' folder have became so large. Because of that loading of pages for the first time (without using browser cache) takes about 30 seconds that is very slow.
Is there any way to speed up loading?

Hello Abo 7meed :)

what exactly did you add? (share code please)
did you try removing un-needed pages / components / 3rd-party libraries?
(I have done that in my project a while ago, the size went down dramatically as the current master project has a LOT of old un-used code (mostly from old blur template))
also remove all un used 3rd-party libraries those are a large proportion of the size


Add PPP support in LwIP

PPP can be enabled in lwipopts.h and when disabled it does not affect the binary size.

obsolete (lwip has been removed from pico-extras in favor of pico_lwip in pico-sdk which includes pico_lwip_ppp)


waypoint: override styles in subsequent css

Challenge Waypoint: Override Styles in Subsequent CSS has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/7.1.7 Safari/537.85.16.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

Hello World!

ok Hello World is still pink wether i put blue first or pink first.  however if I remove the "e" from blue, (<h1 class="blu-text" )  Hello world turns blue. But then the h1 class blue text is (x) like I didnt complete it.

never mind  I found the problem

Ok what was the problem? How did you fix it?

I needed to proof read everything.  .blue-text in the style. i left off the e on blue.

;)


Register User with phone parameter in User Schema

Is your feature request related to a problem? Please describe.
Phone is needed for potential OTP
Describe how to intend to go about adding this feature
Redefine the User Schema to accomodate the new parameters
Additional context
None.

can I work on this

you have till 5:40pm