Question

Hello,
I have just found your repository and wanted to ask if your script is working via LAN (no cloud etc. needed?)?
(I also have found this repository: https://github.com/mac-zhou/midea-msmart, I think he tires the same as you. Maybe you can take a look if there is something you can add to your script aswell)

That's right, the script works over a local network, without a cloud, etc.
Thanks for the link to a similar project.
I will definitely look at the capabilities of this project and add the missing features to my project.
Thanks again.

Great to hear! Will try out the script in the next few days!
Do you know the home automation software https://www.openhab.org/ ?
If yes is there any chance that it could be integrated with openhab ?

Yes, I know about the "openhab" project. But I have never used it.
The script for controlling the air conditioner, made it as close as possible to the Unix philosophy.
It is a simple command line interface to the air conditioner and makes it very easy to use it in any other software system.
As far as I understand, to create a binding for an "openhab", I need to do it using the JAVA language?
Unfortunately, I have never used JAVA, but I can try to make a wrapper for an "openhab".

Hi,
Thank you for the quick response!
Yes Openhab bindings are in Java language.
A wrapper for an "openhab" would be great!

I do have one more question would it be possible to automatically check for midea air conditioners in the LAN ?
Basically an "auto discovery" feature?

The only reliable way of "auto discovery", I'm afraid, is by scanning the range of subnet addresses. Maybe I'm wrong. I can add such a function.

That would be great!

I have just had time to test your script for the first time.
I tested this script "ac_nodeps.pl" since I was not sure how to install the missing dependencies on my raspberry pi.
It works like a charm, it does exactly what it should do! Thank you for the great work 🥇 👍
Is it normal that the command is executed delayed on the AC ?
When I send the command it takes about 20-40 seconds before for example the tempature actually gets changed on the AC.

The problem with latency is that "ac_nodeps.pl" uses the "nc" utility, in which you can only specify the timeout, but not the number of bytes received. This timeout value is specified at the beginning of the "ac_nodeps.pl" script itself. It's pretty big just in case. You can change it to your value.
The "ac.pl" script doesn't have this problem, but you need to install several Perl modules.
The problem with latency is that ac_nodeps.pl uses the nc utility, in which you can only specify the timeout, but not the number of bytes received. This timeout is specified at the beginning of the ac_nodeps.pl script itself. It's pretty big just in case. You can change it to your value.
The ac.pl script doesn't have this problem, but you need to install several perl modules.
"ac_nodeps.pl" is itself an experimental script and will be improved in the future.
"ac.pl" is a stable, production quality script.

Great thank you for the quick and detailed response. I already thought something like that might be the case.
Would it be possible that you could let me know what commands I need to use to install the missing dependencies on my raspbian (raspberry pi4) ?
I would really love to be able to test the ac.pl script.

It looks like installing two packages should be enough (if Perl version 5.28):
apt-get install libdigest-crc-perl libcryptx-perl

Added --discover switch to search for compatible devices on the specified network.
The network can take values in the form of:
single IP address: ...--discover --ip <IP_ADDRESS>
network with mask: ...--discover --ip <IP_ADDRESS>/<IP_ADDRESS>
network with mask length: ...--discover --ip <IP_ADDRESS>/24
range of IP addresses: ...--discover --ip <IP_ADDRESS>-<IP_ADDRESS>

Added --discover switch(ac.pl script) to search for compatible devices on the specified network.
The network can take values in the form of:
single IP address: ...--discover --ip <IP_ADDRESS>
network with mask: ...--discover --ip <IP_ADDRESS>/<IP_ADDRESS>
network with mask length: ...--discover --ip <IP_ADDRESS>/24
range of IP addresses: ...--discover --ip <IP_ADDRESS>-<IP_ADDRESS>

This works fantastic! Thank you very much for this.
May I ask one more question (hope me asking so much annoying stuff it still okay)?
This guy here: Midea-MSmart has implemented an auto discovery aswell: "midea-discover", as soon as you run the command it found the device within 1-2 seconds.
Does he use a different method to detect midea devices?

Ask as many questions as necessary. With pleasure, I will try to help.
I looked at how the discovery was done in the "midea-msmart" project and there really was a different approach,
namely sending a broadcast packet and waiting for a response from the devices that detected it.
Unfortunately, my device does not respond to such packets and I was unable to detect it using this method.
It is not clear what can be done about this.
The approach in "ac.pl" script is to check every host that was specified, which is likely to be more reliable.
Also, you can tweak this process a little by changing two values in the script itself.
To do this, you can change two parameters at the beginning of the "ac.pl" script itself: "TIMEOUT" and "SCAN_NPROC_MAX".
The "TIMEOUT" value depends on the quality / reliability / congestion / etc of the network.
The "SCAN_NPROC_MAX" value depends on how many parallel processes you want to use to scan the network.
Of course, the default values are specified as universally as possible and with a margin.
For example, if you specify "TIMEOUT => 1" and "SCAN_NPROC_MAX => 16", then scanning 254 addresses in my network takes 15 seconds.

Thank you for the quick resposne. I have changed the values to the ones you mentioned and now the discovery is also very fast at 15-16 seconds.
On the openhab forum there are hundreds of people who have midea ACs and would love a binding that is why I have thought (since I am not a coder) maybe I can find someone who could create such binding or a rewritten version of this in Java language on a freelancing platform but I was sadly not able to find someone who was able do it.
Do you maybe know some other platforms I could try to find someone who could rewrite a perl script into Java?

Unfortunately, I don’t know of such platforms, as I have never used.
I thought about trying to make the binding myself, as you asked, but I can't say when in time it will be done due to the availability of free time.

Great to hear you want to try to create such a binding. You are amazing. Thank you for all the work you are putting into this.
In my own research on how to create a binding I have found this documentation
https://www.openhab.org/docs/developer/ and asked in the openhab forum for guidance.
They told me while the documentation there is almost completely up to date, only one information is not completely correct anymore. Java 8 (has as far as I understood reach its "End of Life") which is why the recommended version to use now in Java 11.
Furthermore this advice was given to other people asking about creating bindings aswell:

There is a script (in the documentation) that will create a skeleton binding for you to use as a starting point.
Then take a look at a few existing bindings that do something similar to what yours will need to do. For example, if you are accessing a REST API with JSON payloads over HTTP. look for another binding that accesses a REST API using JSON payloads over HTTP. This will save you a lot of time, since everything you need to know is probably not in the docs.
There is an XML file that describes the things and channels that your binding will provide. You may want to think that through before you jump in to the actual binding code.
Furthermore the openhab community is always happy to help if you hit any problems while creating the binding and will assist the best way they can.

Hope this information helps somehow. That was what I was able to find out.
Thank you again for all the time and effort you are putting into this. I really appreciate it.
Is there any way to support you somehow via something like this https://ko-fi.com/ ?

Thanks for the tips. I think it would be logical, for a start, to look at the existing similar bindings.
With regard to material support, there is no need to worry. Thanks a lot for that.
I did it anyway for my own needs. And if it is somehow useful to someone else, I will only be glad.

I just had time to test each function of the script in detail now and there are two commands which do not work: --turbo and --swing. Every other command works exactly as expected/as it should.
Is there anyway that we could find out why those two are not working?

Made minor adjustments. Try to see if this resolves the --swing mode problem.
With the --turbo mode, I still need to do some research.

I also found a solution to the problem with a quick search for devices on the network.
For fast UDP broadcast searches, use the following parameters and their values: ...--discover --ip <IP_ADDRESS>

Thank you for all the changes!
Unfortunately I am not able to test them whatever command I try I always get the following error:
unknown "swing" value: "48" at /midealan/ac.pl line 587.
I was able to test the discovery function and it now takes 2-4 seconds and the ACs are found.

This means that your device has encoded values that do not exist in my device. This is fixable. A little later, I'll make a correction.

Please let me know if I can help in any way to fix it, I will try my best to be as much of assistance as I can be.
If needed I could even probably capture the traffic between app and ac if that is needed to find out correct values or something like that (but I would need guidance on how to do it),
(Please let me know if I ask to much questions or if I am bothering you to much then I will stop with it immediately)

It's okay, don't worry about it.
It's just that I've been too busy for the last week.
I just need some time to finish the started changes. With new changes, such problems should not arise in principle.
I think I can finish the changes on Monday, since I'm not at home right now.

Sorry, a little delayed, but you can test the latest version of the script.

Thank you for your response.
No need to apologize and no need to rush things. Take all the time you need.
I really appreciate your help!
openhab@openhab:~$ /etc/openhab2/scripts/midealan/ac.pl --ip <IP_ADDRESS> --set --swing both swing:both openhab@openhab:~$ /etc/openhab2/scripts/midealan/ac.pl --ip <IP_ADDRESS> --set --turbo on turbo:off openhab@openhab:~$
I just tried your latest changes and now th swing feature is working flawlessly.
The only thing not working for me now is setting the turbo
Above you can see the response when sending turbo on.
Any idea if this is fixable?
Can I help somehow ?

This may be due to a delay in the application of the device operating mode parameters.
Try to set the parameter first:
/etc/scripts/ac.pl --ip <IP_ADDRESS> --set --turbo on
Then, after a few seconds, just read the parameter:
/etc/scripts/ac.pl --ip <IP_ADDRESS> --get --turbo
If the parameter remains unchanged while reading, then we will look further, what could be the problem.

I have just tried as suggested and the value remains unchanged

Updated the script. You can try to see if you have fixed the problem with the turbo mode.
I noticed that turning off the turbo mode on my device occurs with some delay.

I just tested the latest version of the script but unfortunately it still does not work.
What I also just tested was what the --get command shows when I have activated the turbo via the remote.
It still shows the the turbo as off.
Does that information help?
Any suggestions what we could do to get turbo working ?
Do I need to capture the traffic the app sends or something like that so we can find out how to get it working ?

I have just found this: https://github.com/reneklootwijk/node-mideahvac and I asked there how he is setting the turbo mode compared to your script and that guy said something about sending the wrong bit

Thanks for the link. If anything, then I have a manufacturer's application that I can study. Corrected the script again. You can try what happened. Also, I will later add verbose debug output with protocol decode that will make it much easier to fix such problems.

Just tried the latest version but sadly the turbo mode is still not working.

I am not sure your device uses the same protocol version as mine, but I can control turbo mode by (un)setting bit 2 of byte 10 counted from the byte specifying the command (0x40). It is the same byte where you (un)set bit 3 to specify the temperature unit to celcius or fahrenheit.

Hi @ashevchuk, I hope I am not disturbing/annoying you. I just wanted to ask if you maybe already had time to add the verbose debug option with protocol decoding.
Best,
gelsas

Yes, I was able to add an option for debugging. Also, I decided to repeat, one by one, the code for setting and parsing the required bit flags, exactly as in the manufacturer's application. In a couple of days, I will add another script to the repository - this script will be used to debug problems.

Great, thank you for the update on the progress and thank you for helping me out so much!

Hello!
Does this git support devices that use protocol 3 for communication?
I have an midea lice ac.
I have bought EU-SK103X wifi dongle and ac works well through the midea cloud (with app on my phone).
However I can't control it locally.

Hi @ashevchuk , did you already had the time to finish the other script ?
Best,
gelsas

Hi @ashevchuk hope everything is okay with you.
I have found that the turbo mode is set successfully when using msmart (https://github.com/mac-zhou/midea-msmart/blob/9e178befd6ac70b52a4b7e82124db9c9da7aac5b/msmart/command.py)
What do I need to change in your code to match here how the turbo mode is set in msmart?
best,
gelsas

Hi @ashevchuk hope everything is okay with you.
I have found that the turbo mode is set successfully when using msmart (https://github.com/mac-zhou/midea-msmart/blob/9e178befd6ac70b52a4b7e82124db9c9da7aac5b/msmart/command.py)
What do I need to change in your code to match here how the turbo mode is set in msmart?
best,
gelsas


btcec: Change the library used to utreexod instead of btcd

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage increased (+14.0%) to 67.479%

Files with Coverage Reduction
New Missed Lines
%

mempool/mempool.go
1
63.87%

btcec/signature.go
3
92.76%

Totals

Change from base Build<PHONE_NUMBER>:
14.0%

Covered Lines:
23773

Relevant Lines:
35230

💛  - Coveralls


Flow does not catch missing property in empty object literal

Flow version: 0.142.0
Reproducible code:
// @flow strict
function f(o: { x: number }): string {
  return o.x.toString();
}
f({});       // flow: no error
f({ x: 1 }); // flow: no error
f({ y: 1 }); // flow: error: prop-missing

Using an exact object type has the expected behavior:
// @flow strict
function f(o: {| x: number |}): string {
  return o.x.toString();
}
f({});       // flow: error: prop-missing
f({ x: 1 }); // flow: no error
f({ y: 1 }); // flow: error: prop-missing

Expected behavior
f({}); should report a prop-missing error because property x is missing.
Actual behavior
f({}); reports no errors.

Link to Try-Flow or Github repo: https://flow.org/try/#0PTAEAEDMBsHsHdQGcAuAnAlgYxQKEgK4B2OGsRokAFLAFygDeoAHvUQQLYBGApmqAF8AlPVSYiAc0a5QoNDxQE0FWADpmqlLADK6DJKpCA3LgH4qDYUdk3ZISnHhtYoPmlhpzTVqACMg41B7GARnVzR3T2omAE96fysgsBCncMj6AAd3DIBaDgwkJH0JXCA

Version 0.89.0 appears to be the first version that doesn't report an error as expected here.

Version 0.89.0 appears to be the first version that doesn't report an error as expected here.

After some conversation on the discord this doesn't seem to be a bug per se, I just didn't realize I was creating an unsealed object, and what the implications were. I enabled exact_by_default to avoid this cropping up in the future.

After some conversation on the discord this doesn't seem to be a bug per se, I just didn't realize I was creating an unsealed object, and what the implications were. I enabled exact_by_default to avoid this cropping up in the future.


v1.13 Backports 2023-05-02

[x] #24770 (@aditighag)
[x] #25033 (@giorio94)
[x] #25109 (@sayboras)
[x] #24979 (@giorio94)
[x] #25192 (@kaworu)
[x] #25174 (@joestringer)
[ ] #25171 (@ayesha-kr)
[x] #25189 (@brb)

PRs skipped due to conflicts:

#24905 (@gentoo-root)

Once this PR is merged, you can update the PR labels via:
for pr in 24770 25033 25109 24979 25192 25174 25171 25189; do contrib/backporting/set-labels.py $pr done 1.13; done

or with
make add-labels BRANCH=v1.13 ISSUES=24770,25033,25109,24979,25192,25174,25171,25189

@gentoo-root skipped your PR as the egress SNAT tests didn't apply cleanly due to https://github.com/cilium/cilium/pull/24849 being only partially backported. Might be trivial to fix, but wasn't sure. Could you take a look at backporting it separately?

/test-1.20-4.19
test-1.20-4.19 seems to be failing similarly as the previous backport (fix being worked on in https://github.com/cilium/cilium/pull/25199). Rerunning it.

/test-1.20-4.19

/test-1.26-net-next


Background bug

Everytime when i switch windows on my desktop, background in Discord reloads.
https://www.youtube.com/watch?v=1o8K_h1wDSU

I already noticed that myself.
It seems like an issue with urls as CSS variables. They get reloaded everytime you tab out and back in.
I havent found a way to fix without removing the CSS variables it yet, so if you have any ideas, tell me.

I have deleted --background-image: url(); in your style and created the new theme with
.app, .callout-backdrop { background-image: url()!important; }
It helps c:

Yeah it helps for the background, but the problem is, the background image occurs 13x times overall and since I wanna provide customizability, I used CSS variables.
So if you tab out and back in, not only the app bg, but all other occurrencies get reloaded aswell.

This issue will be adressed and fixed with the next release!


Invalid Key Derivation Path when importing on my

I'm trying to import a multisig wallet from my old computer to my new computer ( Intel Mac 12.7.5 to m1 Mac 14.5), these are the methods I tried, all fail for the same reason:

BSMS via file
BSMS via QR Code
Sparrow
Output Descriptor ( File & QR code)
Copied the .db files directly from ~/.sparrow/home/wallets/ to my target computer ( When I try to open I get an error message "Wallet file is not valid" )

The problem I'm having is that when I try to import it the "Derivation" path field of all Keystores is red and I cannot save the wallet. The derivation path of all Keystores m/84'/0'/0'. Sparrow seems to have an issue with the lat '. When I delete it, I could import the wallet, but the path is obviously wrong and I cannot properly sign transactions.
The ' in the middle of the key path are fine. I verified that it is the same character.
Some colleagues of mine already imported that wallet successfully ( also to OSX 14.5, also m1 ).
The same wallet works on my old Mac, with all versions of Sparrow ( tried from 1.8.1. to 1.9.1). I also tried importing and exporting from different versions and different builds:

Export from 1.8.1 - 1.9.1
Import to 1.8.1. - 1.9.1 ( intel build with rosetta and arm build ). I always encounter the same problem.

Any ideas?
https://github.com/user-attachments/assets/25195602-f981-451e-8ece-4acf4d1ac648

You are trying to use the derivation path for a singlesig Native Segwit wallet on a multisig wallet. If you really want to do this, you can disable derivation path validation in the General Preferences. But be aware this practice may lead to key reuse and funds being linked onchain where they would not otherwise be so.

Thank you so much for this quick reply! That totally solved my issue. ( The Wallet was originally created with nunchuck )


image value from yaml gets expanded to fully qualified name, breaking local backend

Component
server
Describe the bug
When parsing the image in a pipeline yaml, the given value is always expanded to a fully qualified docker image name very early:
https://github.com/woodpecker-ci/woodpecker/blob/3f73d5bf5338eacd3e91d937ed07a55e7398538d/pipeline/frontend/yaml/compiler/convert.go#L23
For example, if you have image: alpine, you will get docker.io/library/alpine:latest.
First, it is questionable whether this kind of expansion should be done on the server at all, as the docker or podman on the agent machine could figure this out themselves, as @6543 noted on matrix.
But second, this is a major problem for the local backend where the image value is not interpreted as a docker image, but as the name of the shell to run commands in.
Currently there is this hack in place, which tries to chop off the prefix and suffix again:
https://github.com/woodpecker-ci/woodpecker/blob/3f73d5bf5338eacd3e91d937ed07a55e7398538d/pipeline/backend/local/local.go#L65
So you pass image: bash and proc.Image[18:len(proc.Image)-7] will evaluate to bash. But this of course is only a very fragile workaround. For example it panics and crashes the agent as soon as you pass something like image: /bin/bash, which will not get anything added by the expansion.
This by itself could also be fixed by not reusing the image key for the shell and instead adding an additional one.
System Info
3f73d5b

Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A join our Discord Chat Server or the Matrix room.

:point_up: race condition :laughing:


Fix masked materials

When a material using the MASKED blend mode, we sharpen the alpha channel to avoid banding and unwanted translucency with MSAA. To do this properly however, we must output the sharpened alpha value, and not the original alpha value. This change moves the alpha masking test to right after we initialize the material inputs with the user code so that the rest of our shaders will user the correct alpha value. The line that was causing problems in our case was the last line in evaluateLights() which returns a vec4 containing an alpha computed from the input's alpha instead of the sharpened alpha.
This change has the added benefit of unifying the alpha masking code between lit and unlit shaders, which contained duplicated code for not good reason. Note that moving the call to the applyAlphaMask() function has no effect of when a discard happens in the flow of our shaders.
Before (GL backend, MSAA on):

After:

One more fix needed for unlit


layer.conf: Let the layer share downloads and sstate

In order to speedup build of several machines from one yocto instance
let the layer keep downloads and sstate at common pathes.
Signed-off-by: Andrii Anisov<EMAIL_ADDRESS>

Please note, this should be used as following:
You invoke . poky/oe-init-build-env <DIR_NAME> to setup different machine build directories. Different machines build folders should be placed in common directory, so that ${TOPDIR}/.. points to the same place. (${TOPDIR} is a path of the build directory set by oe-init-build-env)


Unable to Import JSON.txt

The 'IMPORT' button doesn't work and the window will sit idle.  The only thing that has worked was restarting my computer.  Still then, was only able to import one JSON.txt then it quit working again.

Hover over 'IMPORT' on top bar
Click on JSON
Paste in JSON.txt from Notepad
Click 'IMPORT' bottom right corner
Nothing happens

Normally, clicking 'IMPORT' would exit from the JSON Import window and refresh the sim page

Windows 10 Home
FireFox / Chrome
107.0.1 / 107.0.5304.122
Have tried both browsers with the same issue

I have tried refreshing the browser window, exiting FireFox/Chrome completely, and also updating to the newest browser versions.  Have also tried importing using the "UPLOAD FROM FILE" function with same issue.

I'm not sure exactly what this issue is without seeing your input. Feel free to reopen if the above change doesn't fix it.


peacasso ui  --port=8080 does do nothing here but produce an error

I did the PIP install but then it seems not to work.
Whyt could be the reason?
Im using miniconda3 as my python.
Some other webui is working fine...
the error tells peacasso can not be found.
I use copy and past your comamnd from the docu
peacasso ui  --port=8080

The most likely issue is that your python environment is not linked to your path variable … ie pip installed modules are not globally available on the command line. Please try the tips here https://stackoverflow.com/questions/15052206/python-pip-install-module-is-not-found-how-to-link-python-to-pip-location
-V

On Sep 10, 2022, at 4:42 AM, osi1880vr @.***> wrote:

I did the PIP install but then it seems not to work.
Whyt could be the reason?
Im using miniconda3 as my python.
Some other webui is working fine...
the error tells peacasso can not be found.
I use copy and past your comamnd from the docu
peacasso ui --port=8080
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.


Add goreleaser

what/why

Add goreleaser. goreleaser is a utility that make it almost effortless to release new versions of golang projects

/test

/test


feat: implement global config options

TODO

[x] add parsing from CLI
[x] figure out best locations for this config file
[x] add config locations to pixi info

fixes https://github.com/prefix-dev/pixi/issues/899
fixes #327

The way this currently works is the following hierarchy:
global config (~/.pixi/config.toml)
-> local config ($PIXI_PROJECT/.pixi/config.toml)
-> Environment variables (not yet implemented, would be added to CLAP parser)
-> Explicitly given CLI flags
I think that makes sense. We could also look into a few more places for global configuration files.

My two cents about the places of  global config.toml:

check if ~/.config/pixi/config.toml is present and try to load if it exists, don't force creating it there though (XDG_CONFIG_HOME compliance on *nix)
$HOME/.pixi/config.toml may need to check and use $PIXI_HOME if it exists (home_path() in global cli module can be used to support this, it is also good to move relevant code to the config module I guess)

We can definiteyl also look into the $HOME/.config folder, and using $PIXI_HOME also makes a lot of sense!


EF_ACMP_DI wrong/missing views for IP packaging

There are fw and bus_wrapper files, although the json file has a generic bus, which means IPM will overwrite these files
the beh model is incorrectly placed, should be under verify/beh_model
missing cell_count and supply_voltage in the json file
category 2 is undefined, needs to be analog, digital or ams
version 0.9 should be v1.0.0
missing verification tb under verify/utb

Only missing verification TB now.


Log python environments discovered

Required to diagnose user issues

Codecov Report

Merging #11147 (8ff4f3e) into main (335754e) will increase coverage by 0%.
The diff coverage is 100%.

@@          Coverage Diff           @@
##            main   #11147   +/-   ##
======================================
  Coverage     63%      63%
======================================
  Files        482      482
  Lines      34072    34073    +1
  Branches    5558     5558
======================================
+ Hits       21541    21554   +13
+ Misses     10465    10456    -9
+ Partials    2066     2063    -3

Impacted Files
Coverage Δ

src/platform/api/pythonApi.ts
70% <100%> (+<1%)
:arrow_up:

src/kernels/installer/productInstaller.node.ts
78% <0%> (-2%)
:arrow_down:

src/platform/common/utils/decorators.ts
90% <0%> (-1%)
:arrow_down:

src/kernels/kernelProvider.base.ts
95% <0%> (-1%)
:arrow_down:

src/kernels/helpers.ts
60% <0%> (+1%)
:arrow_up:

src/kernels/kernelDependencyService.node.ts
85% <0%> (+1%)
:arrow_up:

src/platform/common/process/baseDaemon.node.ts
54% <0%> (+3%)
:arrow_up:

src/notebooks/outputs/tracebackFormatter.ts
100% <0%> (+6%)
:arrow_up:


[Bump_20.10] Increase max config size cherry-pick

- What I did
Cherrypick 3054 to 20.10 branch
- How I did it
- How to test it
- Description for the changelog

@dperny  Could you review this cherrypick?


vscode.window.showInputBox does not show initial hint

VSCode Version: 1.44.2
OS Version: Windows 8

The vscode.window.showInputBox has the option to add a validation function. This function is called on initial show of the inputBox but a possible hint is not shown.
I have an extension where the user can configure the initial value of the input box, but based on other settings this input might contain an error. I show a preview but nothing happens because of an error in the input. The user has no idea why and has to add and remove a space to see the actual error/hint.
Steps to Reproduce:

Add the following command to an extension

context.subscriptions.push(vscode.commands.registerTextEditorCommand('extensionname.testTest', (editor, edit, args) => {
    function inputChanged(str) {
      return 'Something is wrong';
    }
    vscode.window.showInputBox({
      placeHolder: 'search for',
      value: "start value",
      prompt: 'What do you want to search?',
      validateInput: inputChanged
    });
  }));

Modify package.json to add this command.
Start/Launch the extension
Call the command and you see the prompt instead of the error/hint.
Add a space and you see the hint.

/duplicate

This is by design to avoid having input boxes open with an error message. When you press enter or start typing the error message is shown. /cc devanshj

Well if that's the case then we should relabel this as "*as-designed" and close it because it currently works as you described that is it shows the error message when you press enter or start typing.
Also don't forget to add "@" next time didn't get the notification for this xD, I luckily stumbled upon this via the PR. I think github should also automatically subscribe the PR author to the linked issue.

Closing as designed, thanks.


Split requests into services

Hey first thanks for that nice package.
I’m wondering how to structure the client when we have a lot of requests, it’s a bit cumbersome to have a huge client definition like shown in the examples. It’s hard to navigate.
I looked into the chopper package an they solve it by using the services approach where you have only one client but multiple request definitions that stand for their own.
 void main() async {
  final chopper = ChopperClient(
      baseUrl: "http://my-server:8000",
      services: [
        // Create and pass an instance of the generated service to the client
        TodosListService.create()
      ],
    );

  /// Get a reference to the client-bound service instance...
  final todosService = chopper.getService<TodosListService>();
  /// ... or create a new instance by explicitly binding it to a client.
  final anotherTodosService = TodosListService.create(chopper);
}

Is something like that possible?

I just have multiple Retrofit services, for example UserService, PlaylistService, ... and then inject Dio singleton into them.
Then I simply inject my UserService using GetIt.

Ahh of cause it does use the provided client 😅 looked to me as if Dio gets initialized multiple times but now I get it.
Thanks for the hint. 🙏


Initial stab at form fields

Drafted attempt at implementing FormFieldsPerDocument on SignatureRequest (inc. sample usage code in test app)

(ref #11)

Thank you for this. Apologies for the delay so far, but I will need to find some time to review and consider these changes before merging as they're somewhat extensive. I'll be sure to update you when I do.

@BHSPitMonkey @jordanwallwork This looks reasonable to me. :+1:

@jordanwallwork - Your changes have been merged, but I made some adjustments to get it working and to add support for validation_type. The main issues were

The RestSharp JSON serializer not changing C# property names like apiId to api_id in the JSON as we need, which I "fixed" by changing the property names directly (and breaking convention a little)
The FormFieldType enum values serializing to integers instead of name strings, which I "fixed" by replacing the enum with string constants (losing a little bit of type safety)

These changes will slightly break any code you've written that uses your new APIs, so be sure to review README.md or the test app source code to see what's changed.
Thanks again for the contribution!

Excellent cheers guys. Regarding the enums, wouldn't the StringEnumConverter do what you wanted? You'd simply need to decorate the attribute with [JsonConverter(typeof(StringEnumConverter))]


Allow passing externs files for Closure Compiler

Doesn't look like there's a way to pass externs files to the compiler.

Why do you want to pass it?

To tell the underlying closure compiler what externs do I have. For example if I am relying on a third-party library being loaded on global object.

Mhmm, but that is complicated :)
Property obfuscation is turned off, so most things should compile without an extern.
It would be easy to add, of course, but I wanted to keep options to what is really needed.

I see. Curious is property obfuscation disabled because it can't be done across the output modules or why?

No, works fine. Disabled because it breaks React plugins.
On Dec 12, 2016 9:42 PM, "Mohammad Khatib"<EMAIL_ADDRESS>wrote:

I see. Curious is property obfuscation disabled because it can't be done
across the output modules or why?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cramforce/splittable/issues/42#issuecomment-266650510,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFeT4TlMRctLK-Pk3pKVjGSI8IDl3pqks5rHjBNgaJpZM4LLVwB
.


Restricted User/Group impersonation for actualising an App

Describe the problem/challenge you have
Some Kubernetes applications carry out all interactions with the Kubernetes cluster as the authenticated user (ie. the user who is interacting with the cluster). kubectl is one example and Kubeapps (my context) is another.  This is generally the case for synchronous actions (such as creating or deleting resources synchronously) but is also possible in other scenarios.
Kapp controller, on the other hand, actualises an App into the relevant resources asynchronously. As I understand it, kapp controller enables two methods for authorization of the actual App installation: either a service account or a secret with kubeconfig contents. I assume this means that all interaction with the cluster during an install is done with the specified credential, but it's not possible for that interaction during install to be done with the App author's user or group RBAC.
Describe the solution you'd like
I would like to know if a third model could be considered, where the user creating the App resource (the author) as well as the (potentially filtered) set of groups to which they belong, is recorded when the App CR is created, so that kapp-controller can do the actualization by impersonating the author of the App.
This would have a couple of implications.
Limited User/Group impersonation
The most important implication is that kapp-controller in this mode (which would not be enabled by default) would need to have RBAC to impersonate specific users and/or groups. Note that this does not mean kapp-controller can impersonate cluster-admin (unless the RBAC allows that), since impersonation header RBAC can be configured to restrict impersonation to a limited set of users or groups (see previous link).
Dynamic Admission Controller
To record the username and (filtered) groups of the user creating the App resource, a dynamic admission controller would need to be configured with kapp-controller. Specifically this would be a mutating webhook which updates the request with the username and (filtered) groups of the user creating the App.
I say filtered only because it'd be sane to limit the group impersonation of kapp-controller to some configurable set and so for privacy only store those relevant groups on the App (e.g. team-a-devs, team-b-ops, etc.)
Anything else you would like to add:
The purpose of the stored user/groups would be only for impersonation during the App actualisation and upgrade etc. (ie. any communication kapp-controller initiates with the k8s api server on behalf of that app - exactly where the service account / cluster secret is used today). It is explicitly not some extra auth for those objects.
So, for example, anyone with RBAC to delete the App resource will be able to initiate the deletion. Similarly, anyone with RBAC would be able to update the App resource would be able to do so. We would need to think carefully about a simple yet consistent way to handle this. For example, when updating an app, the admission controller could mutate to overwrite the username (bad) or could mutate to update a separate field with the requesting user which can be used for the impersonation of that action (whether update or delete or whatever). This would need some thought.
So... thoughts? :) (and thanks either way for considering both this and #99 - I realise neither is trivial).

@absoludity i have two concerns:

since App CR represents continuously updating application, what does it mean to use submitting account for long period of time? do all auth methods result in a service account (im not sure, what happens when user auths via third party system, do they have service account?) what happens when multiple actors are interacting with App CR, eg two different users and another controller.

i havent seen anyone else do this in Kubernetes space, which is a little bit concerning. resources in k8s are not tied in any way to their creators through standard k8s apis. it feels like we are not using system the way it was intended to be used.

@absoludity i have two concerns:
* since App CR represents continuously updating application, what does it mean to use submitting account for long period of time? do all auth methods result in a service account (im not sure, what happens when user auths via third party system, do they have service account?)

No, there is no service account. When you interact via kubectl there is no service account, but instead your request is carried out with a TLS client-authentication certificate (more details). If the APIServer recognises the certificate it then trusts the encoded user/groups on the cert and matches those with any matching user RBAC. No service accounts involved.
It works in a similar way when a cluster is setup with OIDC parameters:  in this case your request has an Authorization header with a signed jwt-token as the value which the apiserver can verify as having been issued by an identity provider it trusts (by verifying the signature). Once verified, the API server accepts the user and groups identified by the token and matches those with any matching user RBAC - no service accounts involved, only users/groups. (more details)
This works really well for synchronous requests from a user (and is what many apps, Kubeapps included, use). But you are 100% correct that it is odd for an async task/job/controller running on the cluster after the user interaction has ended, to still use user authentication.

what happens when multiple actors are interacting with App CR, eg two different users

See my "Anything else you would like to add" section in the description - I think that's exactly the case I was identifying there (a different user updating or deleting the app than the user who created it). It does indeed feel awkward though - but your questions have prompted a variation which could fit much more nicely...

and another controller.

Not sure what you mean by another controller?

* i havent seen anyone else do this in Kubernetes space, which is a little bit concerning. resources in k8s are not tied in any way to their creators through standard k8s apis. it feels like we are not using system the way it was intended to be used.

Yes, I felt the same way when proposing it but couldn't see a different/better option for the use-case. It seems clear that user/group authentication is for synchronous requests from an actual user client... any apiserver interaction outside an actual user request lifecycle should use a service account. An obvious example is a k8s Job/CronJob which is created via user authentication, but it must specify a service account that will be used to create the pods asynchronously by the controller - just like kapp-controller.
So why is this coming up (sorry, I've described a solution above rather than describing what I need)? My use-case for kapp-controller is this:

I have an application running on an OIDC-enabled cluster where users login with the configured Identity Provider.
An authenticating user may have never used the cluster before, and for that matter, the cluster RBAC may not have anything matching the authenticating user necessarily, but
the cluster RBAC matches a group to which the auth'd user belongs: tanzu-devs, which enables the sure to create an App CR for kapp-controller.

Now since the user has never used this cluster, even though they have authz to create an App, they know nothing of a service account they should use, nor should they be able to create a service account and bind it to some role or clusterrole of their choosing (that is the role of the cluster operator, not individual users). They shouldn't have to care about creating a service account - they've authenticated as themselves and the cluster knows what they can and cannot do. How can kapp-controller actualize the App on behalf of the user request?
Another solution could be that kapp-controller could be configured to match user/groups to service account names. A cluster operator can create service accounts for different teams, for example, and install a dynamic admission controller which, if enabled, mutates requests to create App resources by matching the user/group info with a configured service account and writing the service account? In fact, the admission controller would not even need to be part of kapp-controller initially.
If that makes more sense to you, I might take a look at that. This would allow users to create App resources such that the service account used is configured by an operator, not the user.
(BTW: if you have a process for feature requests that doesn't involve serial conversations on gh issues, such as a google doc or similar, just let me know :) )

I'm going to close this issue since, after discussion, I agree that original request isn't something to consider. Additionally, given that a namespace always has a default service account and a user who can create a pod in a namespace will, for example, default to using that default service account, it seems this would be a better precedent to follow.
So for my use-case, if a user has authz to create an App in a specific repository, it will by default use the default service account. Furthermore, if the user has access to list serviceaccounts in the namespace, we can enable selecting from these.


Provide musl-based package for Alpine

Also came up here before: https://github.com/vadimcn/vscode-lldb/issues/177#issuecomment-620854665

CodeLLDB uses dynamic linking, so musl is a no-go.

Looks like https://github.com/sgerrand/alpine-pkg-glibc#installing could be a solution.

Some extra keywords to help others find this bug: if you get ENOENT from spawning codelldb it's because of a missing glibc:
$ ldd /home/evmar/.vscode-server/extensions/vadimcn.vscode-lldb-1.6.10/adapter/codelldb
        /lib64/ld-linux-x86-64.so.2 (0x7efda2a85000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7efda2a85000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /home/evmar/.vscode-server/extensions/vadimcn.vscode-lldb-1.6.10/adapter/codelldb)

Running apk add gcompat makes it run but crash:
$ /home/evmar/.vscode-server/extensions/vadimcn.vscode-lldb-1.6.10/adapter/codelldb
memory allocation of<PHONE_NUMBER>8 bytes failed

I briefly investigated trying to build the codelldb adapter on Alpine but:
~/vscode-lldb/adapter$ cargo build --bin codelldb --release
...[build output]...
~/vscode-lldb$ ./build/target/release/codelldb
Error: "\"Dynamic loading not supported\""

Noodled with Alpine build, and looking good so far. Feedback welcome!
On a fresh Alpine dev container, install the extension, wait until sure it's complete, then:
bash<<EOF
<paste snippet>
EOF

using this Build Snippet. Uses a minor Rust change, plus toolchain files for aarch64 & x86_64 Alpine distros. Pull request to come.

Some binary details:
$ du -h codelldb
5.4M    codelldb

$ ldd codelldb
        /lib/ld-musl-aarch64.so.1 (0xffff99c72000)
        libc.musl-aarch64.so.1 => /lib/ld-musl-aarch64.so.1 (0xffff99c72000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xffff99c41000)

$ ./codelldb --liblldb=/usr/lib/liblldb.so # uses local Alpine lldb
Error: "Either --connect or --port must be specified"

The dirty stuff....
Alpine offers some compatibility for glibc compiled software, but Rust appears to optimise down to using internal method calls like __res_init, which won't work for Alpine. Both the adapter & bundled lldb need to be switched out.
Musl is great for static linked binaries like one-shot docker container commands, but Alpine, as a distro, needs to go the dynamic route. This difference in perspective on musl use shows up in a few places.
Rust decided static c runtime would be good for the aarch64-unknown-linux-musl target, but it causes some issues. Rust target version vs Alpine packaged (customised) version:
$ diff -L rustup -U0 <(rustc --print=cfg --target=aarch64-unknown-linux-musl) -L alpine <(/usr/bin/rustc --print=cfg --target=aarch64-unknown-linux-musl)
--- rustup
+++ alpine
@@ -8 +7,0 @@
-target_feature="crt-static"

So the Alpine packaged version for "unknown" brings that target-feature back in line with debian's, which is needed for this extension. Less confusing is the aarch64-alpine-linux-musl target, which additionally sets target_vendor="alpine".
And in general, Alpine wants to be treated in a vendor specific way, to address their dynamic use of musl, and using the packaged version of rust simplifies standardising the target triplet across the various compilers in the overall toolchain:
vscode ➜ /workspace $ clang --version
Alpine clang version 17.0.6
Target: aarch64-alpine-linux-musl
Thread model: posix
InstalledDir: /usr/bin
Configuration file: /etc/clang17/aarch64-alpine-linux-musl.cfg

If you went the rustup route for rust, you'd need to specify alpine vendor specific targets for the c/c++ compilers, switch off crt-static for the cargo toml target etc.


Getting Started with Image Data Pre-processing in Python

Proposed title of article
Getting Started with Image Data Pre-processing in Python
Introduction paragraph (2-3 paragraphs):
In a machine learning project, we always start with data collection followed by data preprocessing or cleaning step
which needs to be gotten right for a better performing model. There are several techniques used to preprocess data (in this case image data). Examples include; image resizing, converting images to grayscale, etc.
In this tutorial, we shall be looking at data pre-processing of images. Image preprocessing involves converting image data into a form that allows machine learning algorithms to solve it. It is often used to reduce the complexity and increase the accuracy of the applied algorithm.
Key takeaways:

Understanding image preprocessing techniques and processes
Data standardization
Geometric and color transformation or converting color to grayscale
Data augmentation

References:
N/A
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

@lalith1403 I opened a new issue I would like you to review as requested.

Yes. This would be a great topic to cover. We encourage authors to come up with articles that contain in-depth code and corresponding explanations. It would be great if you can cover all the concepts with corresponding code written from scratch. For example, explain how data augmentation works. What are the various techniques, and how are they useful?
Topic Approved :)

Closed #3188 via #3306


Closes #3262, NPE in touching edit text drawable area while uploading images

Description (required)
Fixes #3262 App Crashes when clicking on Title Info when uploading images
What changes did you make and why?
Handled the possibility of null drawable on the title edit-text
Tests performed (required)
Tested betaDebug on OnePlus 3T, API 27

Codecov Report

Merging #3263 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #3263      +/-   ##
=========================================
- Coverage    6.54%   6.54%   -0.01%
=========================================
  Files         270     270
  Lines       11613   11617       +4
  Branches      906     908       +2
=========================================
  Hits          760     760
- Misses      10793   10797       +4
  Partials       60      60

Impacted Files
Coverage Δ

...upload/mediaDetails/UploadMediaDetailFragment.java
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Phan fixes

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Fixed issues

It is better to immediately replace phan with psalm. WDYT?

Yeah, it's better.


path/filepath: regression in filepath.VolumeName

What version of Go are you using (go version)?

go version go1.21.4 linux/amd64

Does this issue reproduce with the latest release?
Yes (with the latest stable release).
What operating system and processor architecture are you using (go env)?
I've been cross compiling on Linux and running on my Windows 10 VM. This also fails on Github CI.
What did you do?
I compiled and ran this program
package main

import (
	"fmt"
	"path/filepath"
)

func main() {
	fmt.Println(filepath.VolumeName(`\\?\C:`))
}

What did you expect to see?
I expected it to print \\?\C: like it does under go1.21.3
What did you see instead?
However it prints \\? under go1.21.4
Discussion
I noticed this regression when github CI upgraded from go1.21.3 to go1.21.4
I used git bisect to discover the commit that breaks the tests is this one by @neild
9e933c189ca3a84f12995b3c799364a06abc4376 - path/filepath: fix various issues in parsing Windows paths
I think \\?\C: is not a valid path in Windows, at least I get this under CMD
Z:\>dir \\?\C:
"\\?\C:" is not a recognized device.
The filename, directory name, or volume label syntax is incorrect.

This issue is probably only of academic interest since \\?\C: is not a valid Windows path, but I'm reporting it as a FYI - feel free to close!

Duplicate of #64028


fix error on locale using

Please fix the issue with day_name_en then open new pull request.
Thanks.

Please just fix the issue with day_name_en it should disply the day name in english and I will merge it again.


Game of Life in Java

Congrats on taking the first step to contributing to the Sample Programs in Every Language repository!
For simplicity, please make sure that your pull request includes one and only one sample program and language.
Please Complete the Following

[ ] I would NOT like credit for my contribution in the article (credit will be included otherwise)
[x] I named the pull request using Sample Program in Language format
[x] I tagged the pull request with the sample program name
[x] I created/updated the language README

[x] I added the sample program name to the README
[x] I added fun facts (i.e. debut, developer, typing, etc.)
[x] I added reference link(s) to the README

Notes
Alright, so I'm toying with this idea of writing Game of Life in every language. I have no particular attachment to this program, but I figured it would be a cool way to demonstate different language features. Of course, I can't wait to get roasted for bad style, and all that good stuff.

I've created the pull request, but I want to write up some directions in the Contributions doc. I'm thinking the only requirement will be to create a GUI-based Game of Life simulation which accepts four inputs: grid width, frame rate, total frames, and spawn rate.
Oh, and the grid has to be infinite.


AppImage on kali linux not working

AppImage on kali linux not working

Thank you to report this issue. This is a common problem with AppImage.
For this problem there are 3 solutions:

chown and chmod the file

sudo chown root chrome-sandbox
chmod 4755 chrome-sandbox

you can run it directly with ( Change the label PROGRAMM_NAME )

./PROGRAMM_NAME --no-sandbox arguemnt

enables the user namespaces feature ( This is maybe the best option )

sudo sysctl kernel.unprivileged_userns_clone=1
Use one of them and please try to run the Application again.

Thank you to report this issue. This is a common problem with AppImage.
For this problem there are 3 solutions:

chown and chmod the file

sudo chown root chrome-sandbox
chmod 4755 chrome-sandbox

you can run it directly with ( Change the label PROGRAMM_NAME )

./PROGRAMM_NAME --no-sandbox arguemnt

enables the user namespaces feature ( This is maybe the best option )

sudo sysctl kernel.unprivileged_userns_clone=1
Use one of them and please try to run the Application again.


M1 Mac support

Thanks for your efforts in making this library. I have a M1 mac, and it says CUDA is not available.
Do you support acceleration on Mac with Metal (MPS) etc.?
Thanks!

Hi @raviteja5 , M1 is supported in cpu mode, for distilgpt2_lora model it should work good (~270Mb), you can also use gpt2_lora (~1GB) and gpt2 (~3.5GB)
We are also doing experiments to support M1 gpu mode to get speedup, but it is working only in pytorch dev build

Great


docs: remove example notebooks from this repository.

Description
I'm removing the examples directory as we now have the content in a nicer form on the website. We should direct users there instead.
See

Knowledge articles
pytket-quantinuum section

To my knowledge, there is no example content that is in the github repo that we don't have on the docs.quantinuum.com website. Do you agree @irfankhan10?
I've also updated some links, making sure to link to the quantinuum docs website rather than the github repo.
Maybe we should also come up with a way to still run these example notebooks in the other repo with the latest pytket-quantinuum version to detect issues. We could set up a cronjob or something to do this. Anyway that's for another PR.
Related issues
closes #533
Checklist

[x] I have performed a self-review of my code.
[ ] I have commented hard-to-understand parts of my code.
[ ] I have made corresponding changes to the public API documentation.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have updated the changelog with any user-facing changes.

@cqc-alec and @cqc-melf , I would like to unit tests for the QuantinuumCalendar method, before merging this PR. Should those tests be part of this PR or seperate?

@cqc-alec and @cqc-melf , I would like to unit tests for the QuantinuumCalendar method, before merging this PR. Should those tests be part of this PR or seperate?

I think that should be a separate PR.


Add redacting regex filter

A redacting filter based on regex substitution is added.
This filter modifies msg and args of a log record and is configurable with a custom replacement string and regex.

Thanks a lot for the comments. I switched to a "semi-formatter" implementation, which drops potentially "dangerous" parts from the LogRecord in order to be able to easily handle the otherwise recursive issues.
I am not entirely happy with the tests yet and will add some further ones, but I think the rough implementation should be good by now.


Some optimizations to the validator proofs.

Issue #, if available: None, but related to #30
Description of changes: Some optimizations to the validator proofs. In combination with the overflow validation branch, these were needed to keep the proofs under the limit both at the command line and in VS Code on my system. But they are valid optimizations in their own right.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Note: partially addresses #35


added countryTextStyle and dialCodeTextStyle in the readme

Added countryTextStyle and dialCodeTextStyle in the readMe for developers to be aware of them.

Oh, thanks! Forgot to add those lines.


Block launcher will not load (RCA Maven Pro)

This app will not open... keeps crashing as soon as I try to open it!  Please help...my son's would love to have this app work!  This is on a RCA 11 Maven Pro tablet.
Thank you!
Michelle

Hi michelle my block launcher wont work on my galaxy s5 and wondering if u can fix it

I'm looking for help fixing my own issues with this app from the company...I have no idea how to resolve your issues night killer... Sorry!


fix: Misc developer experience fixes.

Changes

Non zero exit code when upgrade command fails.
Command help message has new line at the end.
Fixed an issue where log.progress would print two empty lines to create a new paragraph.

Command help message after fix

Log progress after fix:

Pre-launch Checklist

[x] I read the Contribute page and followed the process outlined there for submitting PRs.
[x] This update contains only one single feature or bug fix and nothing else. (If you are submitting multiple fixes, please make multiple PRs.)
[x] I read and followed the Dart Style Guide and formatted the code with dart format.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///), and made sure that the documentation follows the same style as other Serverpod documentation. I checked spelling and grammar.
[x] I added new tests to check the change I am making.
[x] All existing and new tests are passing.
[x] Any breaking changes are documented below.

If you need help, consider asking for advice on the discussion board.
Breaking changes
None.

The print fixes might be nice to get into the 1.2 stable branch.


⚠ Bofrost.lu has degraded performance

In 802f9cb, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1434 ms

Resolved: Bofrost.lu performance has improved in 297aacc after 9 minutes.


How to include theme when using py2exe?

I am building my application using py2exe, but my software is unusable as it crashed. The reason for that is that the themes.json file (i renamed it to that) is missing... How do I solve this?

I haven't used py2exe...I'll have to check.  However, what you'll need to do somehow is tell py2exe to include the package resources. In pyinstaller I've shown how to do that https://github.com/israel-dryer/ttkbootstrap/issues/43, but as I said, I'll have to play aroudn with py2exe to figure out what the convention is for that program.

I haven't found out yet to how to do that. If you find anything, please tell me. Also, off topic but do you know any way to use an icon without getting an error (it says it's not defined, tried multiple ways, I'm on windows)
Also for some reason, when testing in Visual Studio Code, the theme is not loaded, but when starting the script manually it's fine.

I never used VS code, but when you run your script from there, it probably changes the working directory, someone had the same issue with my theme. The solution is to use an absolute path instead of relative.

I am building my application using py2exe, but my software is unusable as it crashed. The reason for that is that the themes.json file (i renamed it to that) is missing... How do I solve this?

I am also using py2exe since it is much more comfortable when compiling bigger applications.
I  would also love to see a short step-by-step explanaton for py2exe.
Tried my best to figure out how it could work, but without sucess.
Normally you simpy can add all external files like sound files, images, txt files and so on  pe rdrag-ad-drop after the dist folder was created (after compiling).
But thats not working for the theme .json file it seems.

@WilliamNT, I removed the reliance on Json in the most recent version. I will eventually add back the file reference to a custom theme in a future iteration. However, for now you can import your theme into ttkbootstrap as long as you put it into the required format. There are just a few changes from what you have now I suspect. I've also removed the dependence on the font file, so your package will have no resource setup requirements from ttkbootstrap in 1.0.0+.
https://ttkbootstrap.readthedocs.io/en/latest/themes/themecreator/

closing; json dependence has been removed from version 0.5.x and 1.x


soroban-rpc: Add contract events to simulateTransaction's response

What
Add contract events to simulateTransaction's response. This change modifies libpreflight to return contract events and the simulateTransaction JSONRPC method to include contract events in its response.
Why
Closes https://github.com/stellar/soroban-tools/issues/475
Known limitations
N/A
TODO:

[ ] Update soroban-rpc documentation at https://github.com/stellar/soroban-docs

Closing in favor of #536

My bad, I should had closed https://github.com/stellar/soroban-tools/pull/535


Please make CC0031 a little bit smarter

We are sharing code with some other developers who are still using VS 2013 or earlier, so the ?.Invoke pattern could not be applied.
The following code shall not issue CC0031 since null has been checked:
var button = new MyButton();
var c = button.Click;
if (c != null) { // calls Click event handler
    c (button, new EventArgs());
}

@wmjordan This is already being checked. See on line:
context.RegisterSyntaxNodeAction(LanguageVersion.CSharp6, Analyzer, SyntaxKind.InvocationExpression);

To enable that to work on your VS 2015 you have to change the C# language version you are using. Go to Properties > Build > Advanced and change Language Version to C# 5.
We are aware of the problem for the null check. This will probably work on a merge from CC0031 and CC0016. See #662 for a fup.


[dvf markers as  Leaflet.markercluster's cluster] : Uncaught Error: Invalid LatLng object: (NaN, NaN)

I'm trying to use the new markers (especially "PieChartMarker") provided with DFV as the "markerClusterGroup", and I'm getting this error:
leaflet.js:5 Uncaught Error: Invalid LatLng object: (NaN, NaN)
    at o.LatLng (leaflet.js:5)
    at e._recalculateBounds (leaflet.markercluster.js:6)

Is there something I can do to make it work ?
Thanks for your help!

@lyDevops can you provide a little more info. as to your current setup?  It could definitely be something with PieChartMarker, but it's hard to say offhand without a little more info.

Hi, I am a colleague of @lyDevops .
This problem happens when we add a PieChartMarker to a « L.markerClusterGroup ». This group is from the leaflet MarkerCluster plugin : https://github.com/Leaflet/Leaflet.markercluster
If we add our PieChartMarker to a classic L.featureGroup, this problem doesn't occur.
We are using leaflet-1.0.3, markercluster-1.0.3 and leaflet-dvf-0.3.1.
Thank you again.

Hello,
We can close this issue, the problem was that we were doing some divisions with zero.
Sorry for the inconvenience.

@tmeedend Great!  Thanks for the heads up.


Add missing  header for std::back_inserter

VS2015 is not happy because of missing <iterator> header for std::back_inserter: https://ci.appveyor.com/project/antiagainst/shaderc-rs/branch/master/job/76ym0x4visd0qucg


Strange Animation of Frightened Armadillo

The animation of a frightened armadillo looks like two armadillos overlapping if installing the First-person Model and Sodium together.

Not sure what Firstperson is supposed to have to do with this?
 What the heck. Even seems to be correct that it only happens in combination with Sodium. This is certainly a first(extra stuff rendering on other entities. so far it always has been stuff not rendering).


Add support for Sinatra 2.0

Hi
Is it possible to add Sinatra 2.0 support for fo this wounderfull gem?
Regards

Apologies for the delay, @gonace.
Now that I'm able to maintain my open source projects again, adding Sinatra 2.0 support to sinatra-param is a top priority. I'll have a new release cut by the end of the day.

Alright, sinatra-param 1.5.0 is now released with support for Sinatra 2.0. 🍾
https://rubygems.org/gems/sinatra-param/versions/1.5.0
Thanks to everyone for your patience.


Change social media icons

Is your feature request related to a problem? Please describe. ✍
Enhancement

Describe briefly how you would implement this enhancement.
I will add relevant icons with their authentic colors

Additional context or screenshots
Additional context
Are you contributing for a program?
GSSoC2023
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

Won't look good on our UI.


env & build.env

I'm trying to not leak ouf some API keys using Environment Variable.
Based on the documentation, my KEYS could be exposed in Github because now.json is visible.
This is my approach but seems like it doesn't solve the issue.
"env": {
        "UNSPLASH_KEY": "process.env.MY_KEY"
      },
      "build": {
        "env": {
        "UNSPLASH_KEY": "process.env.MY_KEY"
        }
      }

I try to set it to true just like the documentation, it fails too.
"env": {
        "UNSPLASH_KEY": true
      },
      "build": {
        "env": {
        "UNSPLASH_KEY": true
        }
      }

@zernonia Vercel's documentation may be of help. Also note the new way of setting per-environment secrets.
(Note that this issue is not related to this builder, though I hope that those links are of help.)


angular component + module for embeding altair in web page?

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
It is not clear for me if it is possible to use altair as an embedded component inside an existing Angular web application.
Moreover, my Angular web application is secured using OAuth2 bearer token, so every request to the server need to be authenticated
The doc is not clear for this point., and searching in npmjs give not result:
https://www.npmjs.com/search?q=altair
I would like both 1/ the Altair component to be available on npm repository, and 2/ usable as an Angular module:
`
..
import { AltairModule } from '@altair/module'
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule, FormsModule,  BrowserAnimationsModule, HttpClientModule,
AltairModule,  // or    AltairModule.forRoot(  altairConf,  httpSecurityConf, ...)
],
...
`
Then in one of my Angular components page
<altair-component [apiUrl]="myBackendGraphqlUrl"></altair-component>
Describe alternatives you've considered
I tryed using graphiql as a standalone react web page... but it is not easy / possible(?) to embed it in an existing angular page, secured by OAuth2 token bearer...
The maven webjar packaging (for example via https://search.maven.org/artifact/com.graphql-java/graphiql-spring-boot-starter) for providing the webapp page in a running springboot app is very practical ... when disabling security.
Additional context

I too would be interested in integrating this with my angular app. ie spinning up an altair tab from my application tab and passing it a query. Currently we use the  graphql-playground-react component for this, but it is no longer maintained, doesn't support subscription queries and prevents us from migrating to latest angular versions.

I'm curious, how do you use graphql-playground-react which is a react component in your angular application?
Regarding the ask, I think it would be a big lift to be able to provide altair as an angular component. It currently isn't setup that way and a lot of the logic and dependency usage works with that notion as well.

Going to close this issue as stale. Feel free to comment here if that is not the case.


WIP: ghcjs: Build core libraries with nix

Currently ghcjs-boot installs these libraries, but picks versions we cannot control and may not like. This puts nixpkgs in charge making it easy to select versions (e.g. booting ghcjs for different LTS package sets). Additionally, I tweaked the haskell infrastructure to better support cross-compilers, with ghcjs the guinea pig. Hashes for ghc package sets should be unchanged.
This is unfinished because currently I can only build libraries. Even once I get all the requisite files in place for building executables, the duplication between my wrapper script and ghcjs-boot and the divergence between my fork and upstream are less than ideal. I hope to work with luite to see what here can be upstreamed.
fixes #10147 #10215
cc @k0001 @cstrahan

Ok I built an executable with trivial return [] TH. So this is getting closer / might be ready for others to test.

Thanks for such a piece of work. I haven't paid attention to the implementation details, but I wanted to say that I find this very convenient, at least as a way to reduce compile times for ghcjs-boot (since it would be picking its dependencies from the nix store if available).

This appears to be stalled.

Yes this stuff is mostly waiting on upstream—ehich might as well be waiting on GHC


Add SRGAN implementation

🚀 Feature
How about a SRGAN implementation with PL? There are popular MIT licensed PyTorch ones out there that can serve as the basis (https://github.com/eriklindernoren/PyTorch-GAN/blob/master/implementations/srgan/srgan.py, https://github.com/https-deeplearning-ai/GANs-Public/blob/master/C3W2_SRGAN_(Optional).ipynb).
Motivation
SRGAN is one of the most popular image super-resolution techniques and should not be missed in the bolts library.

@chris-clem Thanks for your suggestion! I'm not familiar with super resolution, but SRGAN seems very popular as I see the number of citations on Google Scholar, so I think it'd be great to have SRGAN.
Let's hear what other maintainers think of this suggestion :]

Hi @chris-clem @akihironitta
I can take this task. Please assign it to me.


APS 827: Remove legacy actions from workflow manager role

Jira APS-827: Reduce scope of interim "v1 Manage" section
We'll be moving to a new role (suggested CRU_TEAM) for actions which live
within the "Manage" section but aren't for AP Staff (*MANAGER roles).
See this table for the roles which are now shown each of the booking actions:
| Action             | Roles                   | notes                                                   |
| ------------------ | ----------------------- | ------------------------------------------------------- |
| move person        | LEGACY_MANAGER, MANAGER | NE users of "v1 manage"                                 |
| change dates       | LEGACY_MANAGER, MANAGER | NE users of "v1 manage"                                 |
| arrived            | MANAGER                 | deprecated feature, will return improved in "v2 manage" |
| not arrived        | MANAGER                 | deprecated feature, will return improved in "v2 manage" |
| departed           | MANAGER                 | deprecated feature, will return improved in "v2 manage" |
| withdraw placement | WORKFLOW_MANAGER        | we'll switch to CRU_TEAM                                |

and the following premises actions:

| Action             | Roles            | notes                                                   |
| ------------------ | ---------------- | ------------------------------------------------------- |
| withdraw placement | WORKFLOW_MANAGER | we'll switch to CRU_TEAM                                |
| create placement   | WORKFLOW_MANAGER | we'll switch to CRU_TEAM                                |
| view calendar      | MANAGER          | deprecated feature, will return improved in "v2 manage" |

We'll re-assign roles so that:

NE CRU staff get the LEGACY_MANAGER role
NE CRU staff lose the MANAGER role to remove deprecated features
CRU staff continues to use WORKFLOW_MANAGER to access  "manage" features which aren't for AP staff. Very soon we'll introduce the new CRU_TEAM role which we'll use to control access to these features as well as to the new "CRU staff view all out-of-service-beds".
internal dev team members can continue to review the deprecated features via the MANAGER role

Tasks

[x] Refactor the premisesActions and bookingActions and their tests, and apply the update rules as per the tables above
[x] Review and adapt the integration tests so that they are run by a user with a Role (or multiple roles) to perform the happy paths
[ ] Review the E2E tests and ensure that the E2E user has the necessary roles

@richpjames I think this is now ready to merge, if you would be good enough to take another look?

@richpjames I've now confirmed that the E2E tests are all passing so if you are happy to approve now I think we can merge this...


Add conversions for FP8 types (F8E5M2 and F8E4M3)

This PR almost doesn't make code any bigger because the existing conversion code was already essentially generic. So at least the F8E5M2 type falls for free. F8E4M3 is a bit trickier due to it not having infinities and reclaiming that encoding space to get extra large finite values.

nice! this will make it even easier to add support to the tooling (parsing/printing/comparison) for these types


Support Debian

It would be useful to support creating Debian clusters as well.
Bootstrap scripts are located here. Beside adding scripts, you will have to code an profile. Profiles are located in the profile package and you can use any existing as the template (e.g. Ubuntu @ Amazon).
If you'd like to learn more about kubicorn project, you can read The Project Walkthrough.
If you have any question, comment on the issue, join us on the #kubicorn channel in the Gophers Slack community or open a PR. We'll always do everything we can to get the PR though.
There's similar issue for Archlinux as well, #221

I will give it a try if this is still up for grab.

                                                                                IIRC somebody is working on this one, but I'm not sure neither I can check it right now

Thx.

hey yea i'm taking a look at this one

This issue is available for work again.

@xmudrii ubuntu's amazon template is now here. link in the description 404s.

Which description? @adnxn

Ubuntu @ Amazon link is broken (the package has been moved). I'll fix this tonight.

Ohhhhh here in the issue. Okay, fixed :)


Typo in https://draculatheme.com/idle

When browsing the dracula theme website, I saw typos in the "Activating Theme" section as follow:

Please fix this issue.

Can you take a look @timescam?

fixed it


Improve how doubles are represented in failures

Supersedes #920 and fixes rspec/rspec-expectations#688.

LGTM


Base image of dart dev container is deprecated

Name of Dev Container Definition with Issue: dart

google/dart is deprecated. The image dart should be used instead.

Updated!  Thanks for letting us know.

@Chuxel Thanks for fixing.


Missing parent for GO:2000725 regulation of cardiac muscle cell differentiation

Hello,
GO:2000725 "regulation of cardiac muscle cell differentiation" does not have the parent GO:0055007 "cardiac muscle cell differentiation". The relation appears to have been removed on 4th June 2016 and a relation added to GO:1905207 "regulation of cardiocyte differentiation". Cardiocyte is a less specific type than cardiac muscle cell.
It looks like this has also happened for other cardiocyte types, e.g. GO:0060947 "cardiac vascular smooth muscle cell differentiation" is a GO:1905207 "regulation of cardiocyte differentiation" but no longer regulates GO:0060947 "cardiac vascular smooth muscle cell differentiation".
Is there a reason for this?
Thanks,
Rachael.

Hi @rachhuntley ,
Hm. I'm going to ask @cmungall if he can help with this one please. GO:1905207 "regulation of cardiocyte differentiation" was created as part of this commit:
r33577 | termgenie | 2016-06-02 20:58:39 +0100 (Thu, 02 Jun 2016) | 4 lines
TermGenie commit for user: bc reviewed by dph
Added GO:1905207 regulation of cardiocyte differentiation
Added GO:1905208 negative regulation of cardiocyte differentiation
Added GO:1905209 positive regulation of cardiocyte differentiation
We've been doing some work on inferences, but that shouldn't have deleted good granular inferences...?

Rather worrying: It looks like around 20 terms have lost their logical definitions completely in the master file including some of the cardiac terms mentioned here.  I can easily add them back, but  we need to look carefully through recent diffs to see if anything else has been lost.
On 17 Jun 2016, at 10:56, paolaroncaglia<EMAIL_ADDRESS>wrote:

Hi @rachhuntley ,
Hm. I'm going to ask @cmungall if he can help with this one please. GO:1905207 "regulation of cardiocyte differentiation" was created as part of this commit:
r33577 | termgenie | 2016-06-02 20:58:39 +0100 (Thu, 02 Jun 2016) | 4 lines
TermGenie commit for user: bc reviewed by dph
Added GO:1905207 regulation of cardiocyte differentiation
Added GO:1905208 negative regulation of cardiocyte differentiation
Added GO:1905209 positive regulation of cardiocyte differentiation
We've been doing some work on inferences, but that shouldn't have deleted good granular inferences...?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Fixed

Thanks @dosumis .


After upgrade to latest 0.12.0 today, feels it take more energy consumption

The m2 macbook feels a little more hot
Describe the bug
feels a little hot
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
before this updete, no feels when using it
Screenshots

Logs
Attach log files by opening OrbStack's Help menu and clicking “Show Logs”, or email them for privacy.
PLEASE ATTACH THE ENTIRE LOG FILE WITHOUT REMOVING ANY LINES. There is usually important context earlier in the log.
Info report

OrbStack info:
  Version: 0.12.0 (120000)
  Commit: 6e3826111e0aedbe7f5b3b8a1a12c969ba087ccd (v0.12.0)

System info:
  macOS: 12.5.1 (21G83)
  CPU: arm64, 8 cores
  CPU model: Apple M2

Additional context
kind v0.18.0 go1.20.2 darwin/arm64

High CPU usage is almost always because you're running more heavy processes than usual. To check what's using the CPU:
docker run -it --rm --pid host alpine sh -c 'apk add htop && htop'

Please share a screenshot of the output as well.

Did you end up checking what was using the CPU?

Did you end up checking what was using the CPU?

It looks like you're running two full-blown Kubernetes clusters, so a fair amount of CPU usage is expected. Try k3s if you want to reduce CPU usage.
There's nothing in v0.12.0 that would make it use more CPU than older versions. Maybe you created a cluster for testing #357 and didn't end up deleting it?

Yeah, I used kind cluster. After deleted cluster, it looks like:


BaseAdapter#isEnabled support

Hey,
I was wandering is it possible to easly use BaseAdapter#isEnabled function. I was looking at the source code of the BindingListViewAdapter however no straight forward solution comes into my mind. Any hints?

Can you give an example of where you are trying to call it? You can just get a reference to the adapter and call it. Or you can subclass the adapter and have access to it that way.

Looked up how that method is used, seems like a reasonable thing to add. In the mean time, subclassing the adapter should work fine.

Added in 1.0.0 see README for details.

Great news. Do you have any plans to add change observer in order to invalidate adapter data if itemEnabled field has changed?

Not sure I understand, could you give an example where the current implementation does not work?

Correct me if I am wrong, because I did not try latest version, i just read the code. If I want to disable one of the items in runtime (eg. result of some validation) I have will change itemEnabled based on some viewmodel property:
adapter.setItemEnabled(new BindingListViewAdapter.ItemEnabled<ProductViewModel>() {
    @Override
    public boolean isEnabled(int position, ProductViewModel product) {
        return product.isInStock
    }
});

Then if isInStock will change after populating a list, will adapter be notified in order to update view state (notifyDataSetChanged)?

Alright, I'll see what you mean. I'm a bit hesitant on forcing a dataSetChange if it might not actually be needed. I'm reopening and I'll investigate this further.

Not your example would not trigger a notifyDataSetChanged since it's only changing the contents of an item.

Thank you for your support. I guess current implementation will be suitable for most cases.
I think it is a good idea to update a documentation with the information when exactly BindingListViewAdapter.ItemEnabled interface will be queried.


hotfix: Query->count() returns value of integer type

As declared in PHPDoc. Might be useful sometimes, if you want to "===" the result.

bumped into this one again. Its odd that a count function does not return and (int). In 99% of the usecases, it will be an (int) so why are we keeping a string as default?
Isnt it possible to add a casting argument to the function that defaults to int?

Why do you need it to be integer type? all PDO data is string by default, it would be inconsistent to cast it here.

It doesnt really rely on whats in the database fields itself. You are are counting something, you would expect an integer, just like in real life or with counting arrays.


Issues when installing using Plug

I've just tried to install this plugin using Plug and I get the following error,
x venn.nvim:
    fatal: invalid reference: master

I thought it's probably pointing to master when the branch is called 'main'. So I installed this plugin using Plug 'jbyuki/venn.nvim', { 'branch': 'main' } and that worked without errors. But now when I invoke :VBox I get 'Not an editor command :VBox'. I tried PlugClean just to make sure nothing was getting left behind when it errors out, but still the same issue. I haven't added your key mappings by the way, but I think the :VBox command should work regardless, isn't it? Thanks for what looks like a really promising drawing plugin for nvim. (Been using mermaidjs in markdown files, but this will mean I can draw in any file - cheers for that)

Hi there,
This might just be that venn.nvim was not installed for some reason. Yes, if the plugin is installed :VBox is automatically enabled. You could try to check if venn is present in :echo stdpath('data'). If not, you might have to install it once again.

Thanks @jbyuki - it's not there but when I PlugInstall again it says it's already installed (- venn.nvim: Already installed ).  I do see it in plugged dir though (~/.config/nvim/plugged/venn.nvim/).

Let's try something, if you type :scriptnames, do you see ../plugged/venn.nvim/plugin/venn.vim being sourced? If the file is there it should be.

Sorry for the delayed response, as I was off for couple of days. I'm on neovim (v0.6.1), I was on an older version earlier - 0.5.x. So, I tried updating neovim and installing the plugin again. It works fine now, I don't think I changed anything other than neovim version. Thanks for looking into this, happy it's working now :)


Recursive -i argument

Quick idea i just wanted to use, but saw it didn't work:
using argument -i <my-path> where the directory  itself doesn't contain any pictures, but the subdirectories of it do.
In this folder I store multiple sets of wallpapers and i'd love to see pywal choosing a random one by having -i searching for images recursively.

Hey, that would be a great feature!
In the mean time, I've written myself this little piece of code:
ocDir="${HOME}/path/to/folder"

ls $ocDir |sort -R |tail -n1 |while read file; do
    # Select one random file from directory
    wal -i ${ocDir}${file}
done

You could also supposedly create an alias to call this script.

Maybe the recursive search should be a separate option. Perhaps -I?
The recursive option could be an unpleasant slowdown for people with funny directory trees.

I already tried something locally to have this functionality, if I can make it work properly I'll make a PR.


Add fallback for Linux for open_in_default_browser

For linux, in this package there's this line:
https://github.com/tlienart/LiveServer.jl/blob/36a7b208d5fc256283cfc484029a268ff2a5d4a6/src/server.jl#L23-L26
On StackOverflow, a user commented with this:

For linux, this works if the user already has xdg-open, but some people do not have it and need to apt install it.

Desktop.jl does this instead:
function browse_url(url::AbstractString)
    if Sys.iswindows()
        # https://github.com/LOLBAS-Project/LOLBAS/blob/master/Archive-Old-Version/OSLibraries/Url.dll.md
        return success(`rundll32.exe url.dll,OpenURL $url`)
    elseif Sys.isapple()
    	# currently requests Safari explicitly, as e.g. Google Chrome
	# (if that's the default browser) fails to open the
	# Julia documentation index.html due to that file
	# commonly being installed with xattr com.apple.quarantine
        # https://github.com/JuliaLang/julia/issues/34275
        return success(`/usr/bin/open -a safari $url`)
    else
        for browser in [
            "/usr/bin/xdg-open",
            "/usr/bin/firefox",
            "/usr/bin/google-chrome",
        ]
            if isfile(browser)
                return success(`$browser $url`)
            end
        end
        @error "Cannot find a web browser to display $url"
    end
end

Specifically for Linux, it checks for other browsers too:
        for browser in [
            "/usr/bin/xdg-open",
            "/usr/bin/firefox",
            "/usr/bin/google-chrome",
        ]
            if isfile(browser)
                return success(`$browser $url`)
            end
        end

What are your thoughts about adding something similar into this package?

This looks like a not so good solution. xdg-open opens a file or URL in the user's preferred application. The list ["/usr/bin/firefox", "/usr/bin/google-chrome"] does not. Furthermore, binary paths are not very standardized across distributions in Linux. For example, firefox is located at /home/<user>/.nix-profile/bin/ at my system. If fallbacks for xdg-open would be implemented, then it would make more sense to check whether a program exists via which <program> than to hardcode full paths. For what it's worth, Pluto also uses xdg-open and I don't see any issues about it there.

Maybe then a warning if xdg-open is not installed? I don't daily drive a Linux machine, and my past experiences have been just ssh-ing into a cluster, so I'm not familiar with any GUI related Linux features.


feat: Create the client pool to rotate RPC clients

Hi @itzmeanjan
When I run ette on my local computer, I faced some problems with RPC clients when I reach the limit exceeded, or sometimes the blockchain nodes are unhealthy.
So I made PR to create the client pool with many ETH clients to rotate between it when any clients are wrong!
Please check my PR and respond to me!

Thanks for the PR, it will take time to review this.

I've stopped maintaining ette, so closing this PR. Thanks.


Response Header(Server)

ASP.NET Beta8
Windows Server 2012 R2 Datacenter
IIS 8.5
Application Pool(.NET CLR version - No Managed Code)
Install HttpPlatformHandler
Http Response OK
Headers
[expected] Server : Microsoft-IIS/8.5
[actual] Server : Kestrel
Is it correct?

It looks correct to me... what do you think, @Tratcher?

That's expected now. IIS is acting as a reverse proxy to Kestrel. If you don't want it to say Kestrel then your app can do httpContext.Response.Headers.Remove("Server");.

@JonghoL Just as an add-on to that. This was recommended to me earlier and works quite well. I place it immediately before the app.UseMvcWithDefaultRoute(); ...
app.Use(next =>
{
    return ctx =>
    {
        ctx.Response.Headers.Remove("Server");
        return next(ctx);
    };
});

app.Use((context, next) =>
{
    context.Response.Headers.Remove("Server");
    return next();
});

Oh, even better. Thanks.


Not sure how to use it

been trying to get this to work but it kept saying "Error: Unable to access jarfile lezhin-comics-downloader-3.1.0.jar" so am not sure what am doing wrong I already downloaded the ChromeDriver, config.ini and the latest lezhin downloader, and Placed them in the same path

Excuse the intrusion, I'm not an expert or similar but maybe I might have an idea. If I see correctly from the screenshots, You placed everything inside a path (folder) named "Leizhin" (correct me if I'm wrong). Therefore, based on my experience with the downloader, Your command line should appear like this:
PS C:\Users\Reina Kardijanto>Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
In the command line You wrote, the indication of the folder in which the OS should find the .jar file is missing.
Hope this solves your issue🍀.

Excuse the intrusion, I'm not an expert or similar but maybe I might have an idea. If I see correctly from the screenshots, You placed everything inside a path (folder) named "Leizhin" (correct me if I'm wrong). Therefore, based on my experience with the downloader, Your command line should appear like this:
PS C:\Users\Reina Kardijanto>Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
In the command line You wrote, the indication of the folder in which the OS should find the .jar file is missing.
Hope this solves Your issue🍀.

Hi, it says this error and and I am still stuck T-T

i dont know how to change PS C:\Users\Reina Kardijanto> to PS C:\Users\Reina Kardijanto>Leizhin>

@REINAKARDIJANTO
You must change the working directory  to path of jar file on cmd.
Use command cd or open the context menu with shift key and then Open powershell on this directory.

 Only tonight I realized I wrote a serious mistake in the command line. If everything is still as before into the path "Leizhin", it should work if You write in cmd:
PS C:\Users\Reina Kardijanto\Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
Hope this solves Your issue.

 Only tonight I realized I wrote a serious mistake in the command line. If everything is still as before into the path "Leizhin", it should work if You write:
PS C:\Users\Reina Kardijanto\Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
Hope this solves Your issue.

 Only tonight I realized I wrote a serious mistake in the command line. If everything is still as before into the path "Leizhin", it should work if You write:
PS C:\Users\Reina Kardijanto\Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
Hope this solves Your issue.

 Only tonight I realized I wrote a serious mistake in the command line. If everything is still as before, into the folder named "Leizhin", it should work if You write:
PS C:\Users\Reina Kardijanto\Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
If it still doesn't work, it means that the path is still incomplete: directly open PowerShell inside Leizhin folder and, from there, enter java -jar lezhin-comics-downloader-3.1.0.jar etc.
Hope this solves Your issue.

 Only tonight I realized I wrote a serious mistake in the command line. If everything is still as before, into the folder named "Leizhin", it should work if You write:
PS C:\Users\Reina Kardijanto\Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
If it still doesn't work, it means that the path is still incomplete: directly open PowerShell inside Leizhin folder and, from there, enter java -jar lezhin-comics-downloader-3.1.0.jar etc.
Hope this solves Your issue.

 Only tonight I realized I wrote a serious mistake in the command line. If everything is still as before, into the folder named "Leizhin", it should work if You write:
PS C:\Users\Reina Kardijanto\Leizhin> java -jar lezhin-comics-downloader-3.1.0.jar -l=ko -n=understand -r=40 -j -s -d
If it still doesn't work, it means that the path is still incomplete: directly open PowerShell inside Leizhin folder and, from there, enter java -jar lezhin-comics-downloader-3.1.0.jar etc.
Hope this solves Your issue.

Hi it works now however there is an issue with the images, its all jumbled up T^T Thank you for the first help tho!!

however there is an issue with the images, its all jumbled up T^T

For the messing up problem, it emerged about a month ago for all us Lezhin customers - refer to #201 and #207.
@ImSejin is already working on the bug ... just be patient.

i m facing a similar issue its showing this,help wd be appreciated!!


Feature request (maybe?)

I'm trying out your package, which looks pretty good, except that I hit a bump, maybe I'm getting it wrong or it may be something worth.
My problem is the select part, my selects are usually extremely detailed and something include things like coalesce(to_char("Payment"."paidDate", 'YYYY-MM-DD HH24:MI:SS'), '') as "paidDate".
I wouldn't want goqu to do this for me, I'm fine with that so, here's the idea, how about if we could somehow provide the select to goku? That way I could make my select as detailed or complex and use goku to build the where
Does it make any sense?

I think  goqu.L should suit your needs, it  allows you to provide raw SQL instead of using the dsl in places.
Let me know if that works.

Here is a link to the docs, https://godoc.org/github.com/doug-martin/goqu#L

Thanks, I'll look into it


Add check for invalid sources

Coverage increased (+0.01%) to 90.426% when pulling c4de840a5eae13941389b49b8a21185c7a580b40 on invalidsource into 14b55845db4957c82cbfab6d79d47058e7cabf8c on master.


feat(analytics): add explore v4 types [MA-2303]

Add types for Explore v4 queries and responses.
Add types for analytics bridge plugin.
Add types for AnalyticsConfig endpoint and the control plane config endpoint.
Move types from enums to string unions backed by arrays.  See how it goes.

Summary

Resources

Creating a package docs

Preview components from this PR in consuming application
In consuming application project install preview versions of shared packages generated by this PR:
@kong-ui-public/analytics-utilities@pr-1129
@kong-ui-public/app-layout@pr-1129
@kong-ui-public/i18n@pr-1129
@kong-ui-public/analytics-chart@pr-1129
@kong-ui-public/analytics-metric-provider@pr-1129
@kong-ui-public/copy-uuid@pr-1129
@kong-ui-public/forms@pr-1129
@kong-ui-public/misc-widgets@pr-1129
@kong-ui-public/document-viewer@pr-1129
@kong-ui-public/spec-renderer@pr-1129
@kong-ui-public/dashboard-renderer@pr-1129
@kong-ui-public/entities-shared@pr-1129
@kong-ui-public/documentation@pr-1129
@kong-ui-public/entities-certificates@pr-1129
@kong-ui-public/entities-consumer-credentials@pr-1129
@kong-ui-public/entities-consumer-groups@pr-1129
@kong-ui-public/entities-consumers@pr-1129
@kong-ui-public/entities-gateway-services@pr-1129
@kong-ui-public/entities-key-sets@pr-1129
@kong-ui-public/entities-keys@pr-1129
@kong-ui-public/entities-routes@pr-1129
@kong-ui-public/entities-snis@pr-1129
@kong-ui-public/entities-upstreams-targets@pr-1129
@kong-ui-public/entities-vaults@pr-1129
@kong-ui-public/entities-plugins@pr-1129

cc @adamdehaven  Is it right for this to be generating all these temp packages? 🤔

Is it right for this to be generating all these temp packages? 🤔

@filipgutica yes, since you added dependencies in a package that impacted the root pnpm-lock.yaml file, we build and regenerate every package since dependencies may be shared/impacted globally.


⚠ Syncthing-KA-BI has degraded performance

In ea56f18, Syncthing-KA-BI ($URL_SYNCTHING_MERZ_NIMBUS_BI) experienced degraded performance:

HTTP code: 200
Response time: 11154 ms

Resolved: Syncthing-KA-BI performance has improved in 9e5115d after 4 minutes.


[Bug] unknown level "all" in php-cs-fixer

Olá pessoas (e outros)!
If we don't configure a level option in php_cs_fixer, the plugin will use an unknown --level=all parameter, unrecognized by php-cs-fixer binary (v1.4.2).
  [InvalidArgumentException]          The level "all" is not defined.

Confirmed, this should be an easy fix. If I don't get a PR within the next few days submitted, please feel free to do so.
PHPCI/Plugin/PhpCsFixer.php should probably read:
    protected $workingDir = '';
    protected $level      = ' --level=psr2';
    protected $verbose    = '';
    protected $diff       = '';
    protected $levels     = array('psr0', 'psr1', 'psr2', 'symfony');

I will update the wiki in the mean time.


feat: store if a recommendation is viewed for new tag

Overview
Addresses ticket #237183
Now shows the "New" tag until a recommendation has actually been viewed by someone in the organisation
Changes
Minor

Adds a viewed column to the submission table that defaults to false
Returns it from the GetSectionStatuses procedure so that the page can show the "New" tag next to a recommendation whenever viewed is false
On page load of recommendations, sets viewed to true

How to review the PR
I've already applied the SQL changes to dev, so it should work as soon as you swap to this branch - you can also use the test database to verify the script works.
Check that:

Completing a topic results in a new tag
On refreshing the page it persists
It stays if you restart but not complete the topic and haven't viewed it yet
As soon as someone in the organisation has clicked on it, New tag is removed
Any unhappy paths you can think of

Checklist

[x] Title uses Angular commit convention
[x] PR targets development branch
[x] Unit tests have been added/updated
[x] E2E tests have been added/updated

This is something I really should have asked when we added the NEW tag, and it's not mentioned on the ticket, and this work seems to complete the ticket perfectly (although I'm still testing just in case), however:
What is a new recommendation? If a user re-completes a subtopic, chooses the exact same answers as last time, and gets the exact same recommendations - they'll still get a new tag until viewed. Won't that be confusing?

Fair question - I'd argue its still new, as its based off their new submission, and I think it might cause more confusion if you've just redone a topic without realising its the same answers and not get a new tag


adding dynamic ENVs / configs

Hey, any plans to merge this?

Would be great to have this merged as well. Trying to use this in prod


"Braloștița" is listed in the drop-down menu

Description:
When user writes "Braloștița" the location appears in the drop-down menu next to the comune and the county witch is a part according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Braloștița"

Expected results
The location appears in the drop-down menu as "Comuna Braloștița, DOLJ"