More clear instructions

Sorry but it's not really clear in the instructions if i should connect RX cable to RX ESP32 or RX cable to TX on ESP32.
From the color code it seems that the correct RX to RX but i think should be more clear, maybe make it more clear by putting the right connections in the table.
On a side note on the first boot it always reboot and give gibberish values, it's normal?
External temperature when off is 126° (it should be off or unavailable)
Francesco

You're right, I will add that detail to the readme.
The connector description is from the side of the ESP. RX goes to logic level converter goes to GPIO16 (RX).
Do you have an example of the gibberish being logged? Via serial it is certainly possible to receive gibberish during the ESP bootup but over the network it should not happen. It might also be crashing on first boot for some reason and the gibberish you're seeing is the crash dump.
Does your unit support external temperature? I have seen mine report 255 before, but I'm not sure what triggers that behaviour. I might just filter out all values that are not plausible and stop reporting outside temperature if none is available.

I found this too..I had to research some to find out. I can't remember the answer, I just wanted you to know you are not alone in this.On Apr 24, 2021 10:02 PM, War3333 @.***> wrote:
Sorry but it's not really clear in the instructions if i should connect RX cable to RX ESP32 or RX cable to TX on ESP32.
From the color code it seems that the correct RX to RX but i think should be more clear, maybe put it in the table.
On a side note on the first boot it always reboot and give gibberish values, it's normal?
Francesco
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

It has external temperature readings and it's working fine, only when the unit is off show 126°.
I have installed it on a Panasonic Etherea CS-Z25VKEW (not sure of the outside unit)
I want also to install on a Panasonic Etherea CS-Z35VKEW that i have in another room
For the gibberish i will try to log something. For now an image.

@War3333 I added more instructions to the readme and a fix for the invalid temperature readings, can you give it a try?

Not really any changes.
I looked up at the code a bit:
void PanasonicAC::setup()
{
  // Initialize times
  initTime = millis();
  lastPacketSent = millis();

  this->fan_mode = climate::CLIMATE_FAN_OFF;
  this->swing_mode = climate::CLIMATE_SWING_OFF;
  this->target_temperature = (int8_t) 0;
  this->publish_state(); // Post dummy state so Home Assistant doesn't disconnect

  ESP_LOGI(TAG, "Panasonic AC component v%s starting...", ESPPAC_VERSION);
}

publish_state send a dummy report with a NULL, and it works ;)
For the external temperature you added a correction in the last commit but reverted it in the latest, So I copy and pasted and it manually and it works .
Francesco

It shouldn't be necessary to post a dummy state on start, the value will get overwritten by the data from the AC once the next query runs.
If it reverts back to a strange value after a while it might be because the packet format changed and the value I'm reading isn't actually the target temperature.
Can you enable verbose logging and post a debug log with the latest version? Wait until the first query is sent, then change the target temperature from the IR remote and check if that corrects the temperature.
I also added the threshold check to all temperature values now so values over 100 shouldn't be reported anymore.

Is there a way you could provide a link to the bi directional logic converter so i know i buy the right one. When searching i find a ton of different ones.
Also could you add a layout to the tutorial that shows graphically which cable goes to which port on which device.
Thanks allot! I have been searching for this for 6 months now i really hope i get this working! Im using panasonic cloud comfort at the moment from sockless. while it does work great, the problem is that everytime panasonic changes something to the api or the app it stops working.... i need a more stable solution.
Will this ESP solution also let the AC show up as a climate device in Home Assistant?

By the way i have a panasonic cs-tz35tkew does anyone know if this solution works for the wifi module on that unit? I cant see any type numbers on the wifi module.

@sygys Doesn't really matter much as long as it can handle 3.3V and 5V, I used these: https://www.amazon.de/dp/B08Y1GYXP4.

Also could you add a layout to the tutorial that shows graphically which cable goes to which port on which device.

I don't have time right now to add a grahical layout but I clarified the connection table a little bit more so every pin should be clear.

Will this ESP solution also let the AC show up as a climate device in Home Assistant?

Yes, once you add the ESPHome integration in Home Assistant the climate device will automatically show up.

By the way i have a panasonic cs-tz35tkew does anyone know if this solution works for the wifi module on that unit? I cant see any type numbers on the wifi module.

This library only works with the DNSK-P11 that is mounted on the far left side of the unit. It is not compatible with the CZ-TACG1 that is mounted on the top right, which is accessible without disassembly.
If you have a DNSK-P11 it's a drop-in replacement.
If you currently have a CZ-TACG1 installed you will have to look up the service manual on the Panasonic website and check if there's a CN-WLAN connector on your circuit board.
It should look like this:

Just opened up the AC unit and thank god it has the DNSK-P11 module. but its on the bottom right of the AC.
https://photos.app.goo.gl/9ghx5W495yUQ5oPt5
I will let you know if it works. Then you can add the Panasonic cs-tz35tkew to the list of working AC's

@sygys That's strange, never have seen it mounted there. Hopefully the cable is still long enough so you can route it outside like this for easier access.
No matter, the DNSK-P11 definitely works with this library.
Happy tinkering!

Thanks for the help! I dont have that space above to put in the esp board so i have to fix it somewhere else. I guess i will 3d print a case for the espboard with the same size as the wifi module and put it in the same place as it is now.
I ordered the bi directional board from your link and wanted to start programming the ESP board.
In your tutorial you write something about pull the repository. I dont think i have done this before. Normally you only need a single yaml file to write the esp board. Could you tell me where the rest of files go exactly? Is it a custom component? and what should the folder be named?
sorry for all the questions...

@sygys No worries.
This is a custom component for ESPHome so you have to get the repository files in order to build it.  (If you do not have git installed you can also grab the files from the Download button on Github)
That will clone the repo into your current directory in the folder esphome-panasonic-ac. Now copy the ac.yaml in this folder to your config folder (one folder above) and edit it to your liking. If you have multiple units you can copy it multiple times and number them ac01.yaml and so on.
Once that is done you can deploy it on your device with esphome ac.yaml run. That will compile everything and upload it to your ESP32.

So if im correct it should look like this: https://photos.app.goo.gl/EmVFZTSMwf2K6MdA8

Yes, that's correct, the includes is the folder name. So you can change either.

The very last question for today (and then ill be out of your hair)
what does "  use_address: ac01.example.org" do? Do i need to change this? And if so to what.

It's the name of the node in the network, you can remove it entirely if you do not need the node to have a certain name or set it to . or just .

hmmm i get allot of errors while compiling :(
Compiling /data/airco_slaapkamer_esp/.pioenvs/airco_slaapkamer_esp/src/esphome/components/logger/logger.cpp.o src/esphome-panasonic-ac-master/esppac.cpp: In member function 'virtual esphome::climate::ClimateTraits PanasonicAC::traits()': src/esphome-panasonic-ac-master/esppac.cpp:14:10: error: 'class esphome::climate::ClimateTraits' has no member named 'set_supports_heat_cool_mode'    traits.set_supports_heat_cool_mode(true);           ^ src/esphome-panasonic-ac-master/esppac.cpp: In member function 'virtual void PanasonicAC::control(const esphome::climate::ClimateCall&)': src/esphome-panasonic-ac-master/esppac.cpp:126:12: error: 'CLIMATE_MODE_HEAT_COOL' is not a member of 'esphome::climate'        case climate::CLIMATE_MODE_HEAT_COOL:             ^ src/esphome-panasonic-ac-master/esppac.cpp: In member function 'void PanasonicAC::determine_mode(byte)': src/esphome-panasonic-ac-master/esppac.cpp:340:20: error: 'CLIMATE_MODE_HEAT_COOL' is not a member of 'esphome::climate'        this->mode = climate::CLIMATE_MODE_HEAT_COOL;                     ^ src/esphome-panasonic-ac-master/esppac.cpp: In member function 'void PanasonicAC::determine_action()': src/esphome-panasonic-ac-master/esppac.cpp:441:70: error: 'CLIMATE_MODE_HEAT_COOL' is not a member of 'esphome::climate'    else if((this->mode == climate::CLIMATE_MODE_COOL || this->mode == climate::CLIMATE_MODE_HEAT_COOL) && this->current_temperature + ESPPAC_TEMPERATURE_TOLERANCE >= this->target_temperature)                                                                       ^ src/esphome-panasonic-ac-master/esppac.cpp:445:70: error: 'CLIMATE_MODE_HEAT_COOL' is not a member of 'esphome::climate'    else if((this->mode == climate::CLIMATE_MODE_HEAT || this->mode == climate::CLIMATE_MODE_HEAT_COOL) && this->current_temperature - ESPPAC_TEMPERATURE_TOLERANCE <= this->target_temperature)                                                                       ^ Compiling /data/airco_slaapkamer_esp/.pioenvs/airco_slaapkamer_esp/src/esphome/components/ota/ota_component.cpp.o *** [/data/airco_slaapkamer_esp/.pioenvs/airco_slaapkamer_esp/src/esphome-panasonic-ac-master/esppac.cpp.o] Error 1 ========================= [FAILED] Took 12.67 seconds =========================

What's your ESPHome version?

1.18.0

That seemed to fix it

Good to hear, I forgot to update the minimum version to 1.19.1.
Yes, the card will update once it's connected to the AC.

@DomiStyle Could you please verify this is correct before i start connecting this in the near future?

I dont really understand how the ESP board gets power this way

@sygys Connect the 5V from the connector through the HV pin to the 5V/VIN pin on the ESP32.
Other than that it looks fine.

So like this?
Feel free to use this on your page. So it can help more people.
Just opened the wifi module case. The ESP will fit in there so i think ill modify it a bit and put all this in that case.

No, LV stays at 3V3 but VIN goes to HV so it is connected directly to the 5V of the AC.
Thanks, I will update the readme once support for the other wifi module is done.

Could you please verify i did it right this time lol

Looks good. You could switch the ESP ground to the LV side and vice versa since that's nicer but it won't change anything.

Thanks for everything so far! Still waiting for my logic converters to arrive. Cant wait to test this .


crosswalk on v1.2.8 doesn't work

I followed the new xwalk tutorial, and it doesn't work.
I have cordova 5.2.0, and Android API 22 sdk. If I try using https://github.com/wf9a5m75/phonegap-googlemaps-plugin#test, I get the scrollevent error:
import org.apache.cordova.ScrollEvent;
                         ^
  symbol:   class ScrollEvent
  location: package org.apache.cordova
~/HelloMap/platforms/android/src/plugin/google/maps/GoogleMaps.java:138: error: cannot find symbol
    root = (ViewGroup) webView.getParent();```

If I try using the non-test, I get:

``` FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_armv7DebugCompile'.
   > Could not find any version that matches com.google.android.gms:play-services-maps:+. ```

Any suggestions on making this work with crosswalk? Also, I think the run command should now be ```cordova run android``` instead of ```./cordova/run android```.

I didn't have the right android extras installed, it works great if i don't use #test branch. Great job!

#test branch is dead. I just don't have enough rights to delete the old branches. Just use master!

What android extras did you need to install? I'm running into the same problem

Crosswalk works perfectly fine
Just follow the wiki
https://github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Tutorial-for-CrossWalk-Webview-Plugin-(Android)


Error Running PyCript on Macbook Air M1 | command not found

Have you gone through the Documentation or Video Tutorial

Documentation - https://pycript.souravkalal.tech/
Video - https://youtu.be/J8KE5VR8yDk?si=yr4XqqwWh5ms7O6s
[Y/N] - Y

Describe the bug
Documenting it here for reference if someone faces same issue in future. Thank you for the awesome work!
PyCript could not correctly determine path of installed python and node and logged following error on Log tab:
/bin/sh: python: command not found
Workaround for me was to use absolute paths in file ./pycript/execution.py at L8 and L10 as suggested in python doc here
        if selectedlang == "JavaScript":
            command.extend(["/usr/local/bin/node", '"' + path + '"'])  # Surround path with double quotes
        elif selectedlang == "Python":
            command.extend(["/usr/local/bin/python3", '"' + path + '"'])  # Surround path with double quotes

@Anof-cyber maybe determining path at runtime using shutil.which() would help here?
To Reproduce
Steps to reproduce the behavior:

Install PyCript from BAppStore or github
Configure the required options in Config tab
Enable logging in Log tab
Try to encrypt or decrypt values
Error as stated above is displayed

Expected behavior
Pycript should be able to determine installation path of python and node correctly
Screenshots

Desktop (please complete the following information):

OS: MacOS 14.1.2 (Macbook Air M1)
BurpSuite Version: v2<IP_ADDRESS>
PyCript Version: 0.3

Hi @gchib297 why did you close this? having the same issue

@impozzible The issue is not related to PyCript. The documentation mentioned that binaries/language should be accessible from anywhere in the system. The system env should have the path of the langauge binaries to allow using from anywhere in the system terminal.
Make sure the Java/Python/node is in system environment variables and should be accessible from anywhere in terminal.

I did a bit of debugging, and in macOS, the python and node commands running in execution.py end up for whatever reason being run with a barebones env in which PATH=/usr/bin:/bin:/usr/sbin:/sbin. All of those folders are covered by macOS's SIP which means they are not modifiable. So there is no easy way for an end user to remedy this, other than to either hardcode the paths to the binaries (which is obviously not a portable solution) or to find a way of inheriting a normal environment. I've just submitted a pull request to that effect, which calls env under a login shell once at init, and then passes that env to subsequent Popen calls.

For anyone else who has this problem, you can try my patch here https://github.com/YSaxon/PyCript/tree/PATCH

@YSaxon the issue has been fixed with different methods. The new commit https://github.com/Anof-cyber/PyCript/commit/46b8b8ccce79829b14d720b885fcbdba24f7825e allows you to select the executable like python.exe node etc instead of taking langauge binary from system environment.
The additional features which allow you to remove the limit of using just 3 langauge like Python Java and NodeJS. You can keep empty langauge path and use to run encrpytion decryption script as executable, which allows you to write encrpytion decryption script in compiled language like C C++ Rust  or Go etc.


Add : and = to pattern parser recovery

I noticed that malformed let statements result in rather odd trees, namely ones that are missing the pattern like
let = 3;:
<EMAIL_ADDRESS><EMAIL_ADDRESS>"let"
<EMAIL_ADDRESS>" "
<EMAIL_ADDRESS><EMAIL_ADDRESS>"="
<EMAIL_ADDRESS>" "
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>"3"
<EMAIL_ADDRESS>";"

and let : usize;
<EMAIL_ADDRESS><EMAIL_ADDRESS>"let"
<EMAIL_ADDRESS>" "
<EMAIL_ADDRESS><EMAIL_ADDRESS>":"
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>"usize"
<EMAIL_ADDRESS>";"

These errors cause the initializer/type ascription to disconnect.
With this let statements and function parameters recover properly, I don't think this should have any problematic side effects?
I noticed this when trying to enhance the expected_type logic in completions which can't really work with these broken trees to extract out the type info.

I don't think this should have any problematic side effects?

Looks like the fuzzer tests proved me wrong

I think at least = should be ok? : might break for ::, don’t remember how we treat those

Ah ye looks like path's are the problem here, T![:] if p.at(T![::]) => true, is how we check for them. So ye = by itself should be fine at least. Would be nice if we could recover on : as well though for let statements and params.


Strictly typed form row

Hi,
really liking the ease and clarity of most his project :-)
While using protocols is great in principle, in practice a lot of the rows are ConcreteFormRow instances and therefore not super strictly type (for example Action = (AnyObject?) -> Void).
Would you be open to discuss more specific row types?
They would probably just end up being FormRow, but then allow for event stricter code.

Thanks for your interest!
I'm definitely open to revamping the types. I started this project before I really internalized swift's type system the power and purpose of protocols.
The part of this library I like the most is the general shape of the interface, declaratively creating a form, compliance validations... Everything under the hood has a lot of room for improvement.
I erred on the side of more flexibility when I started and that over-complicated things. I think it's time to restrict the interface, make it clean and useful, and maybe reintroduce flexibility as needed.

@tp I'm interested in seeing a brief proposal :eyeglasses: of how you think this should be accomplished.
Or maybe my break-out of TextEntryFormRow :memo:  is the kind of design you mean? In which case, :confetti_ball: :balloon:  I'd be interested in seeing what additional types you'd like to see broken out, or how to improve those interfaces further.

I had a stab yesterday at trying new protocols that would allow for strictly typed rows, but I was not able to define a protocol with generic types, that classes could implement as DecimalRow: FormRow<Double> or EmailRow: FormRow`.
Maybe my thinking was wrong and not aligned with Swift or it is not yet possible in 1.2.
Definitely need to look further into this.

I think the trouble is going to be that it can't be a generic row with heterogenous associated types, while also keeping a strongly-typed collection of those rows :disappointed:
I've considered using an enum with associated types, but then that really cuts down on extensibility from outside the library.
I think we'll need to tinker with possible structures to see if we can come up with anything.


remove rate limited wallet types and methods

related https://github.com/dkackman/chia-dotnet/issues/80


Performing color normalization with local images instead of girder_client

I have my histopathology images stored locally and I would like to perform the color normalization as described in this tutorial without using girder_client, or at the very least, using it as a local structure without uploading anything to a remote server. Is that possible?
Thank you

Yes.  All of the algorithms in the HistomicsTK toolkit work on files.  When run as a docker job by Girder Worker, it will get files from Girder.  If run any other way, the functions just take a file path.


Upgrade map widget library to support react 17

map widget library react-google-maps doesn't seem to support react 17 its SearchBox widget that we use fails to render in react 17, the library last gave an update for react 16 for the same problem. its best if we ditch this library and use a new one its 5 years old and is not active.
Originally posted by @marks0351 in https://github.com/appsmithorg/appsmith/issues/16257#issuecomment-1236882805

@keyurparalkar would you be able to take this up in the current sprint?

https://www.npmjs.com/package/@react-google-maps/api
The above library is a fork of the original react-google-maps, which is very well maintained. I think we can use the above library.

For the map widget library upgrade, we think that once the react 17 changes are in place then from that we can continue towards the upgrade process. We are thinking this approach to be feasiblie since:

Upgrading to to a library like this one is possible but the library itself is maintained by a single maintainer. This in near future will put our widget in risk to re-upgrade to a library that has a good support.

We found that moving to all-together a different library seems to be a better solution here. A good candidate library would be like this one : https://github.com/google-map-react/google-map-react

If we upgrade to the library mentioned in the point one then we would require double regression from QA standpoint. One regression for - When the widget goes live with the upgraded version without react 17 and Second with the react 17

CC: @somangshu @rohitagarwal88 @yaldram

We cannot update your React package because the map library we are currently using does not support React 17. So first we have to update our map library.
You can choose any library that is compatible with the latest version of React and also supports React 17 and our current React 16 versions.

My Rationale behind suggesting this - https://www.npmjs.com/package/@react-google-maps/api library is, it is a forked version of the library we are currently using, so the API will be same for the most part.
Also please check the Gtihub issues here - https://github.com/google-map-react/google-map-react/issues there are some issues with React 18 & node version 16.
Feel free to use whichever library is simple. Also check the issues page for both these libraries, I can see a lot of issues with React 18's StrictMode (dev mode), please check the issues.


Players not losing permissions after being removed from a group

there is an issue where once you are removed from a group you still have that groups permissions I just tested it with the admin group (group that gives all perms)
I set myself as admin tested that I had all commands and perms then removed myself from the admin group and I was no longer in the group but I sill had all the permissions of the group

using Pex sponge for 1.8.9

any idea when this might be fixed?

Unfortunately PermissionsEx is currently unmaintained and no further updates are planned. Because of this, all pull requests are being closed. If you are looking for an actively maintained permissions plugin, take a look at LuckPerms. It is compatible with major server platforms and can import data from PEX.


2 errors detected in the compilation of ctc_entrypoint.cu and Could not find libwarpctc.so in ../build.

I wanted to infer the LGPMA model on my own table dataset.
When I tried to install the setup.sh file, the following error occurred.
Installed /content/drive/MyDrive/davar/DAVAR-Lab-OCR
Processing dependencies for davarocr==0.6.0
Finished processing dependencies for davarocr==0.6.0
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument  value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.
-- cuda found TRUE
-- Building shared library with GPU support
-- Configuring done
-- Generating done
-- Build files have been written to: /content/drive/MyDrive/davar/DAVAR-Lab-OCR/davarocr/davar_rcg/third_party/warp-ctc-pytorch_bindings/build
[-11%] Building NVCC (Device) object CMakeFiles/warpctc.dir/src/warpctc_generated_ctc_entrypoint.cu.o
/content/drive/MyDrive/davar/DAVAR-Lab-OCR/davarocr/davar_rcg/third_party/warp-ctc-pytorch_bindings/src/ctc_entrypoint.cu(1): error: this declaration has no storage class or type specifier
/content/drive/MyDrive/davar/DAVAR-Lab-OCR/davarocr/davar_rcg/third_party/warp-ctc-pytorch_bindings/src/ctc_entrypoint.cu(1): error: expected a ";"
2 errors detected in the compilation of "/content/drive/MyDrive/davar/DAVAR-Lab-OCR/davarocr/davar_rcg/third_party/warp-ctc-pytorch_bindings/src/ctc_entrypoint.cu".
CMake Error at warpctc_generated_ctc_entrypoint.cu.o.cmake:280 (message):
Error generating file
/content/drive/MyDrive/davar/DAVAR-Lab-OCR/davarocr/davar_rcg/third_party/warp-ctc-pytorch_bindings/build/CMakeFiles/warpctc.dir/src/./warpctc_generated_ctc_entrypoint.cu.o
CMakeFiles/warpctc.dir/build.make:394: recipe for target 'CMakeFiles/warpctc.dir/src/warpctc_generated_ctc_entrypoint.cu.o' failed
make[2]: *** [CMakeFiles/warpctc.dir/src/warpctc_generated_ctc_entrypoint.cu.o] Error 1
CMakeFiles/Makefile2:86: recipe for target 'CMakeFiles/warpctc.dir/all' failed
make[1]: *** [CMakeFiles/warpctc.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2
Could not find libwarpctc.so in ../build.
Build warp-ctc and set WARP_CTC_PATH to the location of libwarpctc.so (default is '../build')
Things I have already tried:
-> I followed up on the FAQ but didn't work.
-> I tried to comment the lines 26-31 and 36-68 in setput.sh file but that also did not work.
Please help me.
Thanks in advance

The warpctc is a third-party package that hasn't been maintained for a long time, so it may be more restrictive to the environment.  You can try using the exact same version of our environment.
Nevertheless, if you do not need to train a text recognition model using warpctc, you can simply ignore this error. And then comment the import code "import warpctc" in the corresponding "init.py" file. It would not affect other functions.

The warpctc is a third-party package that hasn't been maintained for a long time, so it may be more restrictive to the environment. You can try using the exact same version of our environment.
Nevertheless, if you do not need to train a text recognition model using warpctc, you can simply ignore this error. And then comment the import code "import warpctc" in the corresponding "init.py" file. It would not affect other functions.

I successfully skipped the install of watpctc but I am facing multiple errors while running test_pub.py to infer LGPMA model. From my understanding, these errors are caused due to incompatible mmcv and mmdet versions. I have tested multiple versions but none of them actually worked.
Can you please specify which PyTorch, MMCV and MMDET versions should I install in order to just infer the LGPMA model using test_pub.py
Thank you

The warpctc is a third-party package that hasn't been maintained for a long time, so it may be more restrictive to the environment. You can try using the exact same version of our environment.
Nevertheless, if you do not need to train a text recognition model using warpctc, you can simply ignore this error. And then comment the import code "import warpctc" in the corresponding "init.py" file. It would not affect other functions.

I successfully skipped the install of watpctc but I am facing multiple errors while running test_pub.py to infer LGPMA model. From my understanding, these errors are caused due to incompatible mmcv and mmdet versions. I have tested multiple versions but none of them actually worked. Can you please specify which PyTorch, MMCV and MMDET versions should I install in order to just infer the LGPMA model using test_pub.py
Thank you

The model was trained based on pytorch==1.3.0 mmcv-full==1.3.4 and mmdet=2.11.0

I have install the mentioned versions on pytorch, mmcv-full and mmdet but still facing this error:
AttributeError: module 'torch.jit' has no attribute '_script_if_tracing'

The warpctc is a third-party package that hasn't been maintained for a long time, so it may be more restrictive to the environment. You can try using the exact same version of our environment.
Nevertheless, if you do not need to train a text recognition model using warpctc, you can simply ignore this error. And then comment the import code "import warpctc" in the corresponding "init.py" file. It would not affect other functions.

I successfully skipped the install of watpctc but I am facing multiple errors while running test_pub.py to infer LGPMA model. From my understanding, these errors are caused due to incompatible mmcv and mmdet versions. I have tested multiple versions but none of them actually worked. Can you please specify which PyTorch, MMCV and MMDET versions should I install in order to just infer the LGPMA model using test_pub.py
Thank you

I have the same question, how did you skip it? Thanks!


Image shown for CA1835 docs are for the wrong fixer

Issue moved from MicrosoftDocs/visualstudio-docs#5926

Please respond to @stephentoub.

From @stephentoub on Monday, September 28, 2020 2:46:00 PM
The docs at https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1835?view=vs-2019 in the "How to fix violations section" show applying the IDE0058 "Use discard" fixer rather than the fixer for CA1835:

A new image should be used that shows actually applying the desired CA1835.
cc: @carlossanlop, @jeffhandley

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

ID: 030f8134-b8ab-5fc3-44dd-50935e50c6d2
Version Independent ID: 856e4342-1385-ed6d-a8dd-1b08d1a93f10
Content: CA1835: Prefer the memory-based overloads of ReadAsync/WriteAsync methods in stream-based classes - Visual Studio
Content Source: docs/code-quality/ca1835.md
Product: visual-studio-windows
Technology: vs-ide-code-analysis
GitHub Login: @carlossanlop
Microsoft Alias: calope

Issue moved from MicrosoftDocs/visualstudio-docs#5926

Please respond to @carlossanlop.

From @carlossanlop on Monday, September 28, 2020 9:52:29 PM
Thanks for letting me know, @WilliamAntonRohm. I was just told by @mavasani that the .NET SDK Roslyn Analyzers have been moved to the dotnet/docs repo, so I think it makes sense to move this issue to that repo, and I'll assign it to myself. Can you please help move the issue to that repo? I don't have permissions.


Matrix

Setup matrix effect on login and register pages

-User can "enter" the Matrix by registering and logging in

Imports lowercase '../components/matrix' in both login and register
should be import Matrix from '../components/Matrix'


Parquet & AWS S3 & Azure Blob support

Parquet File Source and Sink extension
Amazon S3 upload option for Parquet Sink and JSON Sink
Azure Blob upload option for Parquet Sink and JSON Sink

These look like some great additions to have! The mix of storage and file formats has suggested a new architectural change to make it easier to add and maintain these kinds of changes, added as Issue #46 . It will need a little restructuring of this code but should be able to get integrated with that and some other recent changes made to the JSON extension.

Changes to support splitting file formats from storage are now in main. Examples for JSON File can be seen here: https://github.com/AzureCosmosDB/data-migration-desktop-tool/commit/ed664759d17cea1531eac74555e76e28a782fbf1#diff-7e85d00d049fb51d9f347916a88948ac2da5f8272741dd4b5ca5520bafa16d31


Question) operation for delta value.

Hi. I`m rxjs newbie. I have a question. Sometimes, I need some operator for change value.
example)
When Delta value of window.scrollY moved more than 100px,  I need operator like delta.
Observable.fromEvent(window, 'scroll')
	.observeOn(Scheduler.animationFrame)
	.map((item) => {
		return window.scrollY;
	})
	.delta((scrollY, standardScrollY, count) => {
		return Math.abs(scrollY - standardScrollY) >= 100;
	})
	.subscribe((e) => {
		let color = getRandomColor();
		let test = document.getElementById('test');
		test.style.backgroundColor = `${color}`;
	});

I have developed prototype code.
Observable.prototype.delta = function (callback) {
   return Observable.create((observer) => {
   	var idx = 0, standardItem;
   	return this.subscribe(
   		(x) => {
   			var result;
   			try {
   				if(idx === 0){
   					standardItem = x;
   				}
   				result = callback(x, standardItem, idx);
   				idx++;
   			} catch (e) {
   				observer.error(e);
   				return;
   			}
   			if(result){
   				idx = 0;
   				standardItem = x;
   				observer.next(x);
   			}
   		},
   		observer::error(),
   		observer::complete()
   	);
   });
};

Question 1)
How could I make this logic using another operator? I can`t found proper operator.
Question 2)
If RXJS not support similar operator. I think that this operator be useful. What do you think about this operator? If you agree with me. I going to send pr that fit guide  after I transform to ts

What about using scan? Rough code will looks like
Rx.Observable.of(100, 110, 150, 160, 190, 200, 250, 270, 320, 340, 350)
  .scan((acc, val, index) => {
    acc.value = val;
    acc.withinThreshold = Math.abs(val - acc.initial) >= 100;
    if (index === 0 || acc.withinThreshold) {
      acc.initial = val;
    }
    return acc;
  }, {
    initial: 0,
    val: null,
    withinThreshold: false
  })
  .filter(x => x.withinThreshold)
  .subscribe(console.log.bind(console));

and output will be

{ initial: 100, val: null, withinThreshold: true, value: 100 }
{ initial: 200, val: null, withinThreshold: true, value: 200 }
{ initial: 320, val: null, withinThreshold: true, value: 320 }

Thank @kwonoj for your comments. :) I have been seen your idea like reduce...and...filter. I think that This case have low readability for me. but  Many people seems to use this pattern. [1]


need new defined type for managing $JENKINS_HOME/config.xml

A (recursive) review of jenkins/( manifests | lib )/* and README.md reveals nothing suitable for managing the base configuration for a jenkins installation under puppet management.  Perhaps I have missed something obvious, in which case I would certainly appreciate a pointer or guidance.  Otherwise, this strikes me as a big missing.  I would prefer to be able to dynamically manage these settings from a puppet manifest, rather than to have to create some sort of golden image or template deployed from a File[] resource.   Ideally I'd love to feed a node specific complex data structure from hiera to an ensure_resources function call and have it do the right thing.   Has anyone done work in this arena?  Anyone with a similar itch to scratch who would care to pair up to deliver this new functionality?

From what I reported here:
https://groups.google.com/forum/#!topic/jenkinsci-users/LccsaGqIo6k
it seems apparent that the API does not support this and that augeaus, or concat fragments, or a File[] resource or direct ruby xml xpath manipulations will be required to expose this functionality.  Last night I began setting up a test environment to ensure that the regression suite starts out as green before I start hacking to see where I might take this.  When I left the office I was still chasing the Gemfile dependencies, a task I hope to complete this morning.
Again I ask:
Has anyone done work in this arena? Anyone with a similar itch to scratch who would care to pair up to deliver this new functionality?
Even if you do not have time to contribute code or tests to this effort, if you have any insight on architecture or comments on the problem space, your feedback at this time as I begin this project would be appreciated.
Thanks,
-- Hugh

Related post to the jenkins-dev@ list:
Should API support management of $JENKINS_HOME/config.xml ???
https://groups.google.com/forum/?hl=en#!topic/jenkinsci-dev/a-gKzV6Z2Q8

Also, let me ask the core maintainers of this project:
Were we to invest in this new defined type, would there be interest in merging it back into the puppet-jenkins module, or would be left to maintain an in-house fork?
-- Hugh

@hesco Jenkins dynamically updates the primary config.xml based on configuration via it's API.  That's primarily via through the HTML UI but also via RESTish interfaces, uploaded administrative groovy scripts that may interact with the internal API, and/or cli jar commands.  This module already manages a number of settings in config.xml via built in cli jar commands and via a groovy "helper script" that is passed in.  Directly managing that file is difficult for a number of reasons.

The format is both complex and is changed by the presence of plugins.
Its functionally a set of literal API calls rather than a defined configuration format.  I don't believe there is a promise of the format being 100% identical between jenkins revisions and I have seen whitespace changes between versions -- whitespace alone would cause problems with idempotent.  * Jenkins flushes its internal state out when restarted so the only opportunity to modify that file is when jenkins is not running.
Not all "global" configuration is expressed in that file.

It certain would be possible to generate config.xml external to jenkins and copy it into place but at the cost of being able to configure very little via the WWW UI without violating idempotence. Jenkins already has an API for generating that file so that is what the puppet, chef, and ansible modules all use.  The situation is certainly not convenient for configuration management but it's inherent to jenkins design.
I am not a maintainer of this module but my suggestion would be to open issues for state that you want to manage that is not currently exposed via this modules classes and types.

@hesco I have this exact same itch, I want Jenkins to have an API endpoint that openstack-infra/jenkins-job-builder can hit with generated XML to managed Jenkins global configuration. My freenode nick is the same as my github username if you want to discuss via PM.

@waynr: Great to hear.  This project is for my day job where I am locked out of IRC access by the corporate network security folks.  Can you please contact me at hesco at yourmessagedelivered dot com with a phone number or email address where I can contact you during office hours?  I work EST hours.  I rarely monitor that address from the office, so there would be some lag time in getting a response, but once we are in real time communication in a forum which is not publicly archived, I can provide you contact information for reaching me during office hours.
@jhoblitt: can you provide any pointers please to whatever documentation might already exist on the Jenkins API for configuration management?  When a plugin wants to store configuration in config.xml, what is the process for doing so?  I have never hacked on the Jenkins code base and am seeking guidance on where and how to begin this process.
-- Hugh

btw: I have changed the subject of this ticket to reflect that an appropriate architecture here might involve writing a native type with ruby in lib/puppet/, rather than a defined type with puppet DSL in manifests/.

@hesco There is no formal API for managing config.xml.  It is generated by the Xstream library to serialize jenkins' internal state to XML.
#382 adds a number of native types/provides, many of which effect config.xml by interactive with jenkin's internal API via groovy fragments.  The framework is there to build out additional functionality.  Take a look at https://github.com/jenkinsci/puppet-jenkins/blob/master/NATIVE_TYPES_AND_PROVIDERS.md
@waynr You may want to take a look at the new jenkins_job type.  One possible approach would be to create a "job-builder" provider that inherits the existing cli provider
I'm going to close out this issue as it's a bit to generic to be actionable.


one-click-diff-options removes the built-in diff options

Description
I noticed today that the built-in GitHub diff options on the "Files" tab of a pull request were no longer visible when one-click-diff-options was enabled.
I opened a PR that looked like this (some info redacted):

Notice the "book" icon and the [•] icon, these are from the one-click-diff-options feature. But usually there are also a few more options from GitHub itself, such as "Changes from all commits…" (or a specific commit), "File filter…", and "Jump to…". These are now missing.
I used Refined GitHub's "Start process to identify a feature" to pinpoint which feature was causing this issue. I went through all the steps and a pop-up said it was due to one-click-diff-options. When I disabled this feature, the built-in diff options came back.
With the feature disabled, the same page now looks like this, with the expected diff options:

Regardless of whether the feature is enabled, I consistently see an error being logged (twice) in the console on the Files page where I noticed this issue. Both log messages are the same:
refined-github.js:5963 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'textContent')
    at isArchivedRepo (refined-github.js:5963:75)
    at refined-github.js:3941:95
    at Array.every (<anonymous>)
    at refined-github.js:3941:82
    at setupPageLoad (refined-github.js:3942:8)
    at refined-github.js:3987:35

This is preceded by two errors reported by different features (clean-repo-tabs and more-dropdown-links), so I'm not sure it's relevant here but I'm including it just in case.
I tried the "Clear cache" suggestion, but it didn't help. This happened with GitHub Enterprise Server.
How to replicate the issue
I am unable to provide a link, but I tried to reproduce the issue on GitHub.com and was unable to.
Extension version
22.7.11
Browser(s) used
Google Chrome version 104.0.5112.39 (Official Build) beta (x86_64)

@busches sorry, I should have mentioned it. It's 3.1.19.

https://github.com/refined-github/refined-github/blob/749b028ca9591155cdcfce5226fbb615796cc625/source/features/one-click-diff-options.tsx#L100-L101
This is likely the line.
We need a helper to remove textNodes safely instead of just expecting to find them this way, e.g.
removeText(sibling, /^Changes from/);

This would act as a selector. Too bad we never got around to using XPath 🤭

@nicolasff would you be able to use the debugger in your browser to confirm that that line is hiding the elements?
Alternatively, a screenshot of the nearby DOM in the developer tools (without Refined GitHub) would be more useful.

Update: here's an annotated screenshot of what's in originalToggle, which explains why the entire set of built-in options disappears with the class change:

Hello, it’s me, I broke your GHE in https://github.com/refined-github/refined-github/pull/5518 👋 😅

Seeing this one over here on GitHub Enterprise Server 3.3.8 as well!

Closing this issue because the bug was avoided by disabling the feature on every GitHub Enterprise. If anyone with access to GHE 3.3 wants the feature back, please send a PR. We can probably restore it in 3 months anyway.

Thanks for the fix @fregante!


(git action): add checks for mac

Codecov Report

Merging #452 (a76b635) into dev (389a011) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##                dev     #452   +/-   ##
=========================================
  Coverage     14.96%   14.96%
  Complexity      398      398
=========================================
  Files           180      180
  Lines          8087     8087
  Branches        666      666
=========================================
  Hits           1210     1210
  Misses         6790     6790
  Partials         87       87


1.5.1 Estimate project size

Tasks:

[x] Calculate the project size

Done, reviewed by @2202348 and @ivriahtyx as well, check the documentation for info
Duration: 2 days


Column name error

pool_id should be external_pool_id
Looks like it has been renamed :)

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

ID: cb8a97fb-6654-1717-a3c5-b884b3b7b168
Version Independent ID: dfd5ced6-5321-b1d8-39af-2d5944e488a0
Content: sys.resource_governor_external_resource_pools (Transact-SQL) - SQL Server
Content Source: docs/relational-databases/system-catalog-views/sys-resource-governor-external-resource-pools-transact-sql.md
Product: sql
Technology: system-objects
GitHub Login: @stevestein
Microsoft Alias: sstein

@stevestein -- Steve, please review the above-mentioned PR.


Soda SQL not installing when using python 3.9.2

Describe the bug
When I tried to set up soda on my machine, the installation threw errors and failed. I had installed Python 3.9.2. When I uninstalled this version and installed 3.8.6, the installation went fine.
I unfortunately did not capture the exact error messages before installing 3.8.6.
To Reproduce
Steps to reproduce the behavior:

Install python 3.9.2 on a Mac (silicon)
try to install soda

Context
Include your scan.yml or warehouse.yml when relevant
OS: Mac OS Big Sur
Machine: MacBook Pro 13" (Chip: Apple M1)
Python Version: 3.9.2
Soda SQL Version: 2.0.0b24

Being dealt with as part of #52


List<Class<? extends Annotation>> field cannot be hidden even using @ApiModelProperty

Please take the time to search the repository, if your question has already been asked or answered.

[ ] What version of the library are you using? Is it the latest version? The latest released version is

2.9.2 and 3.0.0
What kind of issue is this?

[ x] Question. Is this a question about how to do a certain thing?

I have the following ClientClass that is referenced in a controller method (well, several of them), hence it has no specific annotation on itself:
@FilterEmptyWhereNotAllowed
public class ClientFilter implements DataFilter<Client> {

	private List<Class<? extends Annotation>> bypass = new ArrayList<>();

This is its main controller:
@Api(tags={ "Clients" })
@RestController
@RequestMapping(path="/clients", produces="application/json")
public class ClientController {

	@Autowired
	private ClientService service;

	@Autowired
	private ClientContactService contactService;

	@GetMapping(path="")
	public ApiResponse<List<? extends Client>> getClients(ClientFilter filter) {
		return new ApiResponse<List<? extends Client>>(service.findAll(filter));
	}

I now have the need to add a private List<Class<? extends Annotation>> member field, but the Swagger documentation suddenly grows really long, takes ages to open, and when it finally does is is filled with parameters like the following:
bypass[0].annotatedInterfaces[0].type
ref
(query)
bypass[0].annotatedSuperclass
ref
(query)
bypass[0].annotation
boolean
(query)
bypass[0].anonymousClass
boolean
(query)
bypass[0].arrayboolean
(query)
bypass[0].canonicalName
string
(query)

I tried adding @ApiModelProperty(hidden = true) and even @ApiModel to the class, but the fields are still generated.
@FilterEmptyWhereNotAllowed @ApiModel
public class ClientFilter implements DataFilter<Client> {

	@ApiModelProperty(hidden = true)
	private List<Class<? extends Annotation>> bypass = new ArrayList<>();

Am I missing something?

I've posted this on Stack Overflow too.

@dilipkrish Sorry to call you in on this one, but I need at least a suggestion, this is a blocker for me.


How to change a event of a button successfully?

how can I replace the pre_plot_hooks=[analysis.update_activity](in the pic1) with pre_plot_hooks=[analysis.measure_movelightbar_jty_pref.instance(preference_fn=distribution.DSF_MaxValue())](in pic_2) successfully when I use the example of  gcal.ty.

pic_1

pic_2
I have found the code following:
(1)
pg = create_plotgroup(name='Activity', category='Basic',
doc='Plot the activity for all Sheets.',
auto_refresh=True,
pre_plot_hooks=[analysis.update_activity],
plot_immediately=True)
pg.add_plot('Activity', [('Strength', 'ActivityBuffer')])
(2)
pg = create_plotgroup(name='Orientation Preference', category="Preference Maps",
doc='Measure preference for sine grating orientation.',
pre_plot_hooks=[analysis.measure_sine_pref.instance(
preference_fn=distribution.DSF_MaxValue())])
then I have changed (1) as following:
pg = create_plotgroup(name='Activity', category='Basic',
doc='Plot the activity for all Sheets.',
auto_refresh=True,
pre_plot_hooks=[analysis.measure_sine_pref.instance(
preference_fn=distribution.DSF_MaxValue())],
plot_immediately=True)
pg.add_plot('Activity', [('Strength', 'ActivityBuffer')])
but I found there is something wrong. Then I have read the code in the whole affernoon, and found it seemed a difficult problem.
Thanks.

I'm not sure what the problem is or what you're trying to achieve here, so it's difficult to say what you should do.  Here you're using measure_sine_pref, which is fine, but if it's in the context of an Activity plot, I'm not sure what that's meant to achieve, because measure_sine_pref won't generate plots named Activity, which is what this code is plotting.  measure_sine_pref generates plots named like OrientationPreference and OrientationSelectivity (and similarly for any other features besides orientation that you are varying), and so you'd need to change the add_plot call to plot something that's actually been generated by this call.  Activity plots are generated by the measure_response command.  Basically, you need to make sure that the pre_plot_hooks generate some plots with appropriate names, and then make sure that you have used add_plot to plot those and not some other plots.

I'm not sure what the problem is or what you're trying to achieve here, so it's difficult to say what you should do.  Here you're using measure_sine_pref, which is fine, but if it's in the context of an Activity plot, I'm not sure what that's meant to achieve, because measure_sine_pref won't generate plots named Activity, which is what this code is plotting.  measure_sine_pref generates plots named like OrientationPreference and OrientationSelectivity (and similarly for any other features besides orientation that you are varying), and so you'd need to change the add_plot call to plot something that's actually been generated by this call.  Activity plots are generated by the measure_response command.  Basically, you need to make sure that the pre_plot_hooks generate some plots with appropriate names, and then make sure that you have used add_plot to plot those and not some other plots.

thanks


build_processed_data gets test data from combined_datasets

Background
https://trello.com/c/tQj1yUjh/145-cds-data-source-missing-proper-county-level-data
https://github.com/covid-projections/covid-data-model/pull/438 added tests.
This PR
Changes build_processed_data to get COVID negative/positive test data from combined_datasets instead of directly from the data source classes. It mostly transforms the columns back to their original form to reduce the chance of accidentally breaking code that depends on the current return value.
Please Check

[ ] Are the JSON schemas updated?
[ ] Are the api docs updated?
[ ] Are tests passing?

 CDS Data Source missing proper county level data


Progress Bar or status when creating Bootable Installer

Hi,
I really like this project but though of one idea which could make it slightly better.
When creating a bootable installer usb there is no progress bar or status on what Mist is doing during this process. For example the terminal command to use createinstallmedia tells you the progress in writing, verifying and erasing the disk in percentages.
This would be helpful as this is a long process and it would be helpful to know wether it is taking a while or if the process has failed or gotten stuck on one part of the install.
Thanks

@jml2622 this sounds like a really cool feature!
Under the hood, Mist is using the createinstallmedia binary to create the bootable installer - I'll see what options I have to stream in the output of that command, and to convert that into a progress bar 👍

I just canceled a job because it seems that Mist is stuck, I'm instead using the files that Mist downloaded together with this command sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
now I can see the progress in the console Copying to disk: 0%... 10%... 20%... 30%..., which could be added to the Mist Log.


Beautiful maps checks

Opsss, sorry! Opened a PR by mistake

Pull Request Test Coverage Report for Build 7c195dec8ef06891cb3487c1b29a0a5ae41eeccf-PR-37

31 of 32 (96.88%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.03%) to 90.078%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/recode/task/keys_order.ex
11
12
91.67%

Files with Coverage Reduction
New Missed Lines
%

lib/mix/tasks/recode.gen.config.ex
2
0%

Totals

Change from base Build 780e88c9030928df9b9a3d74a1a21fd06f5f5f6a:
0.03%

Covered Lines:
581

Relevant Lines:
645

💛  - Coveralls


Fix minor spelling and adapt README.md to software behaviour

Fix some very minor spelling.
When calling as suggested per README.md, M2-ISA-R complains: .core_desc file passed as input. This is deprecated behaviour, please change your scripts!. The changes to the README.md should fix that and clear up any confusion.

as everything here is contained within #2, closing.


How to convert identifier into literal string?

I want to use the same string of identifier in #[cfg(feature = "...")]. e.g. I try to generate some mods from the following enum:
#[derive(foo)]
enum Tests {
    a,
    b
}

to
#[cfg(feature = "a")]
mod test_a;
#[cfg(feature = "b")]
mod test_b;

Resolved.

For anyone else who comes here from google — you can do this by doing let foo = format!("{}", ident) outside of the quote! invocation, and then using #foo inside of it as the string literal.

For anyone else who comes here from google — you can do this by doing let foo = format!("{}", ident) outside of the quote! invocation, and then using #foo inside of it as the string literal.

inside of it

Sorry. What does this "it" mean?  Do you mean double quotes?


NX-SM200 does not flash - firmware dump and serial log attached

Recent firmware on NX-SM200 device is incompatible with tuya-convert
bought two of these devices (brand name Slitinto, but these devices appear under several different brand names like Panamalar, OxaOxe, Nanxin...), both did not flash with tuya-convert.
Opened the device and flashed new firmware via serial connection.
Here's what I found about these devices before flashing new software:
The name of the device as printed when the firmware boots is HYS_01_115_02_SOCKET
Pinout
Pins on my devices are similar, but not identical to the devices described on the Compatible devices page.

ESP8266 name
function

GPIO0
control blue LED

GPIO2
pin available but unused (?)

GPIO4
control LED on Tuya ESP module (not visible, i.e. useless)

GPIO5
BL0937 CF

GPIO13
Button

GPIO14
BL0937 CF1

GPIO15
control Relais / red LED

The pins are laid out on the board like this (as seen when opening the housing and looking at the bottom side of the main PCB with the Tuya module pins on the right):

left
right

no pin
GPIO14

GPIO15
GPIO13

GPIO2
GPIO0

GPIO5
GPIO4

Tx
Rx

GND
3V3

boot log of device (tuya-convert not active):
Normal boot:
 ets Jan  8 2013,rst cause:1, boot mode:(3,7)

load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22

2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DOUT
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

OS SDK ver: 2.0.0(e8c5810) compiled @ Jan 25 2019 14:26:04
phy ver: 1055_9, pp ver: 10.7

rf cal sector: 121
idle_task_hdl : 40107a90,prio:0, stack:384
tim_task_hdl : 40107bd8, prio:2,stack:512
[notice]user_main.c:303 SDK version:2.0.0(e8c5810)
[notice]user_main.c:305 tuya sdk version:3.0.1
[notice]user_main.c:310 tuya sdk compiled at Feb 13 2019 11:04:11
[notice]user_main.c:312 BV:5.42 PV:2.2 LPV:3.3
reset reason: 4
epc1=0x00000000, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000,depc=0x00000000
mode : softAP(b6:e6:2d:75:d7:22)
dhcp server start:(ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>)
add if1
bcn 100
[notice]device.c:1800
FW Compiled Time Mar 15 2019 10:46:17

[notice]device.c:1801 fireware info name:HYS_01_115_02_SOCKET version:1.0.0

[notice]device.c:1802 HYS-01-115-02 PID=3intussjrua4r6rx

[notice]device.c:1803 1.≤˙≤‚»»µ„ tuya_mdev_test1

[notice]device.c:1804 2.≤˙≤‚ƒ£ Ω(øÏ…¡)œ¬≥§∞¥∞¥º¸ø…¡Ÿ ±ÕÀ≥ˆ≤˙≤‚Ω¯»Î’˝≥£≈‰Õ¯ƒ£ Ω

[notice]gw_intf.c:405 Authorization success
bcn 0
del if1
usl
sul 0 0
mode : sta(b4:e6:2d:75:d7:22)
add if0
[notice]device.c:1839 ##  AUTH DONE ##

[notice]key.c:73 rst reason:4

[notice]hlw8012.c:818 msf_get coe:{"Kp":9644,"Kv":771,"Ki":14041,"Ke":1001}
[notice]hlw8012.c:883 get_coefficient v:771 I:14041 P:9644 E:1001

[notice]device.c:2084  Smart Config

scandone

Log from device when putting it into pairing mode and trying to flash with tuya-convert:
[err]easy_connect.c:726 Invalid passphrase length
scandone
del if0
usl
sul 0 0
¢@*◊®…+Ö,’l’™◊.ïh◊™±.•˘.•+ß-HÍÖ¢8·Í…*≈,≈,≈,≈*•™Am≈-@Ì˘*≈/%·ná*≈¢»Ë…nA,t[Öır.±^≠ùX.±.©ƒPıT@Ì˘*≈h ná*E¢»Ë…nA,Z[Öır.±^≠ùX+r.©ƒPıT@Ì˘*Âh ná*≈¢»Ë…nA,P[Ö∫v.±^µÅ..≠.•˘.ı™◊ËÒ®°¬Ωñ©’XıZ %.Ë∆jß®°.âZN∏`.â—*’(6&&·F<EMAIL_ADDRESS>¢¸OS SDK ver: 2.0.0(e8c5810) compiled @ Jan 25 2019 14:26:04
phy ver: 1055_9, pp ver: 10.7

rf cal sector: 121
idle_task_hdl : 40107a90,prio:0, stack:384
tim_task_hdl : 40107bd8, prio:2,stack:512
[notice]user_main.c:303 SDK version:2.0.0(e8c5810)
[notice]user_main.c:305 tuya sdk version:3.0.1
[notice]user_main.c:310 tuya sdk compiled at Feb 13 2019 11:04:11
[notice]user_main.c:312 BV:5.42 PV:2.2 LPV:3.3
reset reason: 4
epc1=0x00000000, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000,depc=0x00000000
mode : softAP(b6:e6:2d:75:d7:22)
dhcp server start:(ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>)
add if1
bcn 100
[notice]device.c:1800
FW Compiled Time Mar 15 2019 10:46:17

[notice]device.c:1801 fireware info name:HYS_01_115_02_SOCKET version:1.0.0

[notice]device.c:1802 HYS-01-115-02 PID=3intussjrua4r6rx

[notice]device.c:1803 1.≤˙≤‚»»µ„ tuya_mdev_test1

[notice]device.c:1804 2.≤˙≤‚ƒ£ Ω(øÏ…¡)œ¬≥§∞¥∞¥º¸ø…¡Ÿ ±ÕÀ≥ˆ≤˙≤‚Ω¯»Î’˝≥£≈‰Õ¯ƒ£ Ω

[notice]gw_intf.c:405 Authorization success
bcn 0
del if1
usl
sul 0 0
mode : sta(b4:e6:2d:75:d7:22)
add if0
[notice]device.c:1839 ##  AUTH DONE ##

[notice]key.c:73 rst reason:4

[notice]hlw8012.c:818 msf_get coe:{"Kp":9644,"Kv":771,"Ki":14041,"Ke":1001}
[notice]hlw8012.c:883 get_coefficient v:771 I:14041 P:9644 E:1001

[notice]device.c:2117  STAT_STA_UNCONN

scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
[notice]mqtt_client.c:573 gw wifi stat is:5
state: 3 -> 5 (10)
add 0
aid 2
pm open phy_2,type:2 0 0
cnt

connected with vtrust-flash, channel 1
dhcp client start...
[err]httpc.c:583 tcp connect failed a3.tuyaus.com:443 errno=104
[err]http_inf.c:46 Open session failed: https://a3.tuyaus.com/gw.json?a=s.gw.token.get&et=1&gwId=44436885b4e62d75d722&other={"token":"00000000","region":"US","tlinkStat":{"configure":"smartconfig","time":3,"source":"ap","path":"broadcast"}}&t=14&v=3.0&sign=c36be25f5b1e6ad0016ee234c49b7cc0 (-7)
[err]gw_intf.c:1141 httpc_gw_dev_token err:48
[notice]mqtt_client.c:573 gw wifi stat is:6
[err]httpc.c:583 tcp connect failed a3.tuyaus.com:443 errno=104
[err]http_inf.c:46 Open session failed: https://a3.tuyaus.com/gw.json?a=s.gw.token.get&et=1&gwId=44436885b4e62d75d722&other={"token":"00000000","region":"US","tlinkStat":{"configure":"smartconfig","time":3,"source":"ap","path":"broadcast"}}&t=17&v=3.0&sign=408dad2bb5ba340e22fbe8a80b9656e9 (-7)
[err]gw_intf.c:1141 httpc_gw_dev_token err:48
[notice]mqtt_client.c:573 gw wifi stat is:6
[err]httpc.c:583 tcp connect failed a3.tuyaus.com:443 errno=104
[err]http_inf.c:46 Open session failed: https://a3.tuyaus.com/gw.json?a=s.gw.token.get&et=1&gwId=44436885b4e62d75d722&other={"token":"00000000","region":"US","tlinkStat":{"configure":"smartconfig","time":3,"source":"ap","path":"broadcast"}}&t=20&v=3.0&sign=f3f3ff2116982e7ed2ea2efd603656c2 (-7)
[err]gw_intf.c:1141 httpc_gw_dev_token err:48
[notice]mqtt_client.c:573 gw wifi stat is:6
[err]httpc.c:583 tcp connect failed a3.tuyaus.com:443 errno=104
[err]http_inf.c:46 Open session failed: https://a3.tuyaus.com/gw.json?a=s.gw.token.get&et=1&gwId=44436885b4e62d75d722&other={"token":"00000000","region":"US","tlinkStat":{"configure":"smartconfig","time":3,"source":"ap","path":"broadcast"}}&t=23&v=3.0&sign=f36d34a95388ad1cc6edb702d3d2c704 (-7)
[err]gw_intf.c:1141 httpc_gw_dev_token err:48
[notice]mqtt_client.c:573 gw wifi stat is:6

Of particular interest for people flashing the NX-SM200 with other software like Tasmota or Espurna might be the lines:
[notice]hlw8012.c:818 msf_get coe:{"Kp":9644,"Kv":771,"Ki":14041,"Ke":1001}
[notice]hlw8012.c:883 get_coefficient v:771 I:14041 P:9644 E:1001

for calibrating the power monitor.
A firmware dump of the incompatible Tuya firmware is attached here, in the hope that it might help to reverse-engineer the new Tuya mechanism which prevents Tuya-convert from working.
Without tuya-convert, these devices are useless for flashing with custom firmware. Disassembling requires a lot of work and advanced soldering equipment (don't try without an electric desoldering pump)
And a final note, unrelated to tuya-convert:
After disassembling the Slitinto NX-SM200 plug (or maybe even before, but I cannot tell) the protective earth connection became loose, because it was soldered very badly.
This means the PE pins on the power outlet will no longer protect from electric shock!
As far as I am concerned, I strongly recommend against using these WLAN power sockets for anything that does not have a Euro (non-earthed) plug!
HYS_01_115_02_SOCKET.bin.zip

Happy to share that support for HTTPS firmware is in the works #279


Update gitter address

please update the issue template as well
(and tests/CiIntegrationTest.php)

template added, tests/ci... not available on 1.13


Freeze during indexation

Sometimes Meilisearch 0.22 marks one index with isIndexing = true but there are no updates pending on that index queue. Problem is that when I send updates to that index or others it seems to be unable to process them, probably because it thinks it's already processing an update.
The workaround to this problem is to shut down Meilisearch, delete all updates, processed or not, and restart it.

Hello @esmultivac
Thanks for your report!

Problem is that when I send updates to that index or others it seems to be unable to process them

Can you detail what you mean by "unable to process them". Do you get any errors in the logs, in the updates? Does it freeze? Can you give us step to reproduce your context so that we can fix it? :)

It freezes. Nothing seems to be happening. RAM consumption is lower after we restart, but I don't know if it means something.
I can't help you reproduce the error because it happens in our production environment with LOTS of documents in the indexes. We have four indexes, the two bigger ones having 1 million a 600.000 documents.

Hum, ok! Might be related to this https://github.com/meilisearch/MeiliSearch/issues/1555
I hope 🤞

I know. Just wanted you to be alert. If it helps, I found out that after banning our users from searching with a big offset option, the problem hasn't happened again. I suspect that it happened in the first time because Meilisearch was too busy attending hard and slow queries, but of course you are the ones that know if that makes sense or not.

Thanks @esmultivac
Sorry for the delay, I close this issue in favor of this one: https://github.com/meilisearch/meilisearch/issues/2133


A slightly modified version of EMBLite

Hello @dcolcott. You mention 'a slightly modified version of EMBLite' in the Readme. Can you please describe what changes you made to the EMBlite? I would like to build dependency to the main EMBlite to manage future dependencies if possible.

I just ran a quick test by:

pip installing ebmlite at the current version 3.3.1
Renaming the embedded ebmlite folder to something else
Modifying the two amazon_kinesis_video_consumer_library.ebmlite imports to just ebmlite
Running the sample script with all the sub-sections enabled (un-commenting the MKV saving and JPEG saving)

Haven't dived super-deep on all the metadata yet, but generally the example seems to work just fine with the upstream library (although it doesn't solve broken metadata interfering with some viewers as per #2).
+1 that it'd be great to learn more about what customizations were necessary, and maybe migrate to using upstream ebmlite if practical.

Will be interesting add some information about the diff between mainline and  the 'slightly modified version of EMBLite'


Remove Default Sequence from the model if not being used by any property

Presently, convention set Sequence as default value generator for SqlServer. So convention also adds Default Sequence to model.
If the user sets to use identity on model level then the default sequence is removed from the model.
But if the user sets to use identity on individual properties and even if none of the properties is using the default sequence, it still remains. It should be removed in such case.

With #2175 implemented, above issue doesn't exist anymore.

@smitpatel what happens if you call UseSequence() on the model and UseIdentity() on all individual properties? Just want to make sure we understand and are ok with the behavior.

In that case there will be sequence in the model which is not being used by any property. But since user made explicit call to UseSequence(), I am not sure if we should be removing it.

Agree with @smitpatel that this is an acceptable behavior.

Agreed that sounds acceptable. @ajcvickers @rowanmiller what do you think?

ok :)

I agree... especially when we rename UseSequence to something that reflects it's the HiLo generator pattern.


Error install  requirements.txt : llama_cpp_python == 0.2.78 -C cmake.args="-DLLAMA_BLAS=ON"

Hello Guys,
Congratulations on this excellent book.
Trying to install, I got the following error in the llama_cpp line of the requirements.txt :
(Hands-On-Large-Language-Models-env) c0274@c0274-i7:~/Hands-On-Large-Language-Models$ pip install -r requirements.txt
Usage: pip [options]
ERROR: Invalid requirement: llama_cpp_python == 0.2.78 -C cmake.args="-DLLAMA_BLAS=ON"
pip: error: no such option: -C
Any workaround is very welcome.
Thanks.

Hello @amscosta ,
specify where have you tried installing this exactly..

The arguments cmake.args="-DLLAMA_BLAS=ON" are meant for cmake during the package building process, but pip does not recognize -C as a valid option.

Check out -C, why and where its used.  Link
-C
Pre-load a script to populate the cache. When CMake is first run in an empty build tree, it creates a CMakeCache.txt file and populates it with customizable settings for the project. This option may be used to specify a file from which to load cache entries before the first pass through the project's CMake listfiles. The loaded entries take priority over the project's default values. The given file should be a CMake script containing set() commands that use the CACHE option, not a cache-format file.
try running this locally, this should work for your problem--
`pip install llama_cpp_python==0.2.78 --config-settings cmake-args="-DLLAMA_BLAS=ON"`

I downloaded the requirements.txt, and uploaded it to googlecolab and ran -
%pip install -r requirements.txt
got the output -

Collecting llama_cpp_python==0.2.78 (from -r requirements.txt (line 30))
Downloading llama_cpp_python-0.2.78.tar.gz (50.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.2/50.2 MB 14.8 MB/s eta 0:00:00

Hello,
Still not working. Thanks.

Trick done. Thanks.

cmakeDOTargs

Close the issue if you're satisfied

Thank you all for helping out! Glad to hear that the issue is resolved.

MaartenGr

Hello @MaartenGr, I would really appreciate if you marked my above conversation as --> 'Marked as an answer' because the person who opened the issue have satisfied i think..

@negativenagesh Although I appreciate the help on this, it is not how issues work. You cannot check the conversation as "Marked as an answer". That is something that only applies to discussions. Note that this also relates to the conversation we had previously where the underlying problem was an old installation of pip.

Thank you @MaartenGr for you time and sharing this, I'm new to open source..

@negativenagesh No problem! I'm here to help. If you have any questions regarding the process of doing open source, feel free to reach out.

@MaartenGr
Thank you.. will definitely ask if anything pops up..
I have made changes in pull request https://github.com/HandsOnLLM/Hands-On-Large-Language-Models/pull/8/commits/c58b336297b424da523304963c897ebde8768eec can you please check and review, that would be helpful...


demo / preview

Where is demo / preview?  Unless this project is not supported. After spending 5+ minutes, could not find online demo.
Downloading does not help, because you must have camera or you get only 1 really bad test image (bars). Checking other html files require server...

The camera part even appears to be broken now. Too bad.

I wish this still worked. I wonder why it doesn’t

It once had a demo at seriouslyjs.org


[FLINK-23558][streaming] Ignoring RejectedExecutionException during s…

…ubmitting the throughput calculation

What is the purpose of the change
*This PR fixes result of the race condition between submitting the throughput calculation and finishing the task. *
Brief change log

Ignoring RejectedExecutionException during submitting the throughput calculation

Verifying this change
This change added tests and can be verified as follows:

Test for StreamTask

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

I have a bit concern of this:
this change swallows all "RejectedExecutionException" no matter it is because of task finish or not.
I think the right fix is not to submit mailbox execution after the task finishes?

@flinkbot run azure

@akalash
I've looked through the code again, I think we should probably also keep
        timersFinishedFuture.get();
        systemTimersFinishedFuture.get();

in the task thread for the safety purposes.
I mean we move this two lines of code into the actionExecutor and keep the same copy in its origin place.
I think for normal task, actionExecutor is the same task thread, but there is also some cases (like sources) that they maybe  different

Thanks @akalash for fixing this. Approved with a bit of comments.

Thanks for fixing this @akalash , merged.


refactor(AlgebraicGeometry): Rework Morphisms/Basic to phase away from TFAEs

Previously the contents of Morphism/Baisic were all implementation detail that needed to be copied over to each new morphism class. In this PR we clean up the file and promote it into a proper interface of the API. We also phase away from TFAEs in favor of easier to use iff lemmas. We introduce the following two interfaces:
IsLocalAtTarget

AlgebraicGeometry.IsLocalAtTarget: We say that IsLocalAtTarget P for
P : MorphismProperty Scheme if

P respects isomorphisms.
If P holds for f : X ⟶ Y, then P holds for f ∣_ U for any open U of Y.
If P holds for f ∣_ U for an open cover U of Y, then P holds for f.

For a morphism property P local at the target and f : X ⟶ Y, we provide these API lemmas:

AlgebraicGeometry.IsLocalAtTarget.of_isPullback:
P is preserved under pullback along open immersions.

HasAffineProperty

AlgebraicGeometry.HasAffineProperty:
HasAffineProperty P Q is a type class asserting that P is local at the target,
and over affine schemes, it is equivalent to Q : AffineTargetMorphismProperty.

For HasAffineProperty P Q and f : X ⟶ Y, we provide these API lemmas:

AlgebraicGeometry.HasAffineProperty.of_isPullback:
P is preserved under pullback along open immersions from affine schemes.

Thanks for the swift review!

!bench

Let's wait for the benchmarking to finish. AG is a finicky area currently.
bors r-

Seems minor. I will see if I can track that down later.
bors merge


Unexpected EOL while looking for matching , "

HP Chromebook 14 AMD Careena
Dev mode , ChromeOS version 116.0.5845.210 official
Tried in chronos and terminal with shell
When trying to use the script : receive following error

issue has been fixed


Potential rule: path traversal when extracting zip archives

It would be fairly typical to include the file path from the zip file when extracting it's contents to disk
like in this:
import (
	"archive/zip"
	"io"
	"os"
	"path/filepath"
	"strings"
)

func unzip(archive, target string) error {
	reader, err := zip.OpenReader(archive)
	if err != nil {
		return err
	}

	if err := os.MkdirAll(target, 0755); err != nil {
		return err
	}

	for _, file := range reader.File {
		path := filepath.Join(target, file.Name)
		if file.FileInfo().IsDir() {
			os.MkdirAll(path, file.Mode())
			continue
		}

		fileReader, err := file.Open()
		if err != nil {
			return err
		}
		defer fileReader.Close()

		targetFile, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode())
		if err != nil {
			return err
		}
		defer targetFile.Close()

		if _, err := io.Copy(targetFile, fileReader); err != nil {
			return err
		}
	}

	return nil
}

(original source)
It could be possible to create a zip archive with: ../../../../../some_file to achieve path traversal here.
We should investigate whether this could be detected.  I think if we detect filepath.Join inclusive of zip.File type, without sanitisation, and the use of that identifier in a write operation you could get a fairly high confidence here.

If it can be reasonably detected it's a good idea. The same verification can be applied to archive/tar.


Use of unit ID's is available

Hello Hacker-CB,
I have been testing your modbus package in a LAN where I have a modbus/TCP converter, with two slave devices, so I needed to implement the use of unitID's.  It works fine for me, using an app coded with fllutter.
I prefer to put the unitID as a optional parameter in the functions, so it still work with older versions of the package. If you have any question, don't hesitate to ask it to me. I hope that this code will be useful for you.

Hello @Exquemelin.
Thank you for your work, but seems that it is very complicated to pass unitId as parameter over all methods.
I made more simple solution for you: https://github.com/Hacker-CB/modbus-dart/tree/unit_id
Please try, and I will merge it to master if all is ok.

Hello @Exquemelin.
Thank you for your work, but seems that it is very complicated to pass unitId as parameter over all methods.
I made more simple solution for you: https://github.com/Hacker-CB/modbus-dart/tree/unit_id
Please try, and I will merge it to master if all is ok.

Hello @Hacker-CB ,
I considered using the unitID as part of the conection as you use it. But I prefer to stablish only one conection to send messages to both devices, using an unique conection.
I have been testing your solution and it works properly. Even, if I use two simultaneous conections and petitions. You can merge it to the master. Thank you for your support.

Hello @Hacker-CB ,
I considered using the unitID as part of the conection as you use it. But I prefer to stablish only one conection to send messages to both devices, using an unique conection.
I have been testing your solution and it works properly. Even, if I use two simultaneous conections and petitions. You can merge it to the master. Thank you for your support.

@Exquemelin
You don't need to use multiply connections. Just call client.setUnitId(XXX) between calls.
I added example to README.
Please confirm.
https://github.com/Hacker-CB/modbus-dart/blob/unit_id/README.md

@Exquemelin
You don't need to use multiply connections. Just call client.setUnitId(XXX) between calls.
I added example to README.
Please confirm.
https://github.com/Hacker-CB/modbus-dart/blob/unit_id/README.md

Merged to master 66b35cc0d8ba5c8f3db7b22e5f8673ea6208dce5, in version 0.1.0

Merged to master 66b35cc0d8ba5c8f3db7b22e5f8673ea6208dce5, in version 0.1.0

Ok, I understand what you mean. It's a good solution.

Ok, I understand what you mean. It's a good solution.

Ok, great.
So, you can use it in latest release

Ok, great.
So, you can use it in latest release


Counter example code

Possible code for the counter example:
https://doi.org/10.1016/j.jlamp.2023.100891
def loop(dummy):
  if Client.continue()
    Client[L] ~> Server
    Client.incr() ~> Server.incr_amt
    Server.do_incr() # add incr_amt to a running total
    loop(dummy_val)
  else
    Client.[R] ~> Server
    Server.(running_total) ~> Client.(final_amount)
  end
end

Does it work in Chorex?
EDIT: how to functional update the server's counter value?

Are recursive functions like loop not allowed? I'm getting an error.
Code:
  defmodule TestCounterChor do
    defchor [Client, Server] do
      def loop(dummy) do
        if Client.continue(dummy) do
          Client[L] ~> Server
          Client.incr(2) ~> Server.incr_amt
          Server.do_incr()
          loop(0)
        else
          Client[R] ~> Server
          Server.(running_total) ~> Client.(final_amount)
          Client.(final_amount)
        end
      end

      loop(4)
    end
  end

Error
** (MatchError) no match of right hand side value: 0
    (chorex 0.1.0) lib/chorex.ex:477: Chorex.project/3
    ....

TODO implement as a singleton / genserver proxy once those are in.

  defmodule CounterTest do
    defchor [CounterServer, CounterClient] do
      def loop(CounterServer.(i)) do
        if CounterClient.continue?() do
          CounterClient[L] ~> CounterServer
          CounterClient.bump() ~> CounterServer.(incr_amt)
          loop(CounterServer.(incr_amt + i))
        else
          CounterClient[R] ~> CounterServer
          CounterServer.(i) ~> CounterClient.(final_result)
          CounterClient.(final_result)
        end
      end

      loop(CounterServer.(0))
    end
  end

  defmodule MyCounterServer do
    use CounterTest.Chorex, :counterserver
  end

  defmodule MyCounterClient do
    use CounterTest.Chorex, :counterclient

    def continue?() do
      # Process dictionary black magic!! Do not do! Testing only! Only
      # used to model getting value to continue from external source!
      Process.put(:acc, 1 + Process.get(:acc, 0))
      10 >= Process.get(:acc)
    end

    def bump(), do: Process.get(:acc)
  end

  test "looping increment test" do
    cs = spawn(MyCounterServer, :init, [])
    cc = spawn(MyCounterClient, :init, [])

    config = %{CounterServer => cs, CounterClient => cc, :super => self()}

    send(cs, {:config, config})
    send(cc, {:config, config})

    assert_receive {:chorex_return, CounterClient, 55}
  end

Q. how to functional update the server's counter value?

A. Add a loop variable that is located on the server. Syntax above is def loop(CounterServer.(i)) do ....


WIP: Training Library Usage

This is the implementation of high fidelity training using the new backend library

adds all flags outlined in new training library to ilab model train
The defaults for these flags come from a new _train class in the config. The train class is composed of the exact classes introduced in the training library, I imported them.
I added a --train-profile to ilab init allowing a user to specify a yaml file matching the exact format of the training library args. The two sections in the yaml are train_args and torch_args.
I cleaned up mismatched flags and outdated flags necessary for this new library.

the way to run this is:

if you want to run linux train just run ilab config init and then ilab train --legacy=true
if you want to use the backend code, ilab config init now has a --train-profile flag which takes a valid yaml of the following format:

train_args:
  model_path: instructlab/granite-7b-lab
  data_path: sample-data/train_all_pruned_SDG.jsonl
  ckpt_output_dir: checkpoints
  data_output_dir: output
  max_seq_len: 4096
  max_batch_len: 10000
  num_epochs: 10
  effective_batch_size: 3840
  save_samples: 25000
  learning_rate: 2e-6
  warmup_steps: 800
  is_padding_free: False
  random_seed: 42
torch_args:
  node_rank: 0
  nnodes: 1
  nproc_per_node: 1
  rdzv_id: 123
  rdzv_endpoint: '<IP_ADDRESS>:12345'

These are the exact TrainingArgs and TorchrunArgs from the training repo.
These options then funnel into the flags for ilab train which can be used as overrides but the hope is @RobotSail and team can provide pre-baked training yaml for specific hardware so users will not need to specify ANY flags (this works in testing so far which is really cool)

macos train is detected based off the chip type, and users will auto run that if they are on a mac.

some status here. This PR does the following:

adds all flags outlined in new training library to ilab model train
The defaults for these flags come from a new _train class in the config. The train class is composed of the exact classes introduced in the training library, I imported them.
I added a --train-profile to ilab init allowing a user to specify a yaml file matching the exact format of the training library args. The two sections in the yaml are train_args and torch_args.
I cleaned up mismatched flags and outdated flags necessary for this new library.

the commits might be a bit messy rn. I will clean these up in the morning. Functionally, this is the structure we should go for. Eventually, all of the top level config stuff should live in a profile. The amount of flags being added to training is... quite a lot.

usage:

ilab config init --train-profile /path/to/trainargs.yaml
ilab train (no flags unless you want to override the yaml. use --legacy to use old linux train code.

a train profile takes the following format:
train_args:
  model_path: instructlab/granite-7b-lab
  data_path: sample-data/train_all_pruned_SDG.jsonl
  ckpt_output_dir: checkpoints
  data_output_dir: output
  max_seq_len: 4096
  max_batch_len: 10000
  num_epochs: 10
  effective_batch_size: 3840
  save_samples: 25000
  learning_rate: 2e-6
  warmup_steps: 800
  is_padding_free: False
  random_seed: 42
torch_args:
  node_rank: 0
  nnodes: 1
  nproc_per_node: 1
  rdzv_id: 123
  rdzv_endpoint: <IP_ADDRESS>:12345

thats it :)

@jeremyeder this is the training PR. It should work but the instrutlab-train package isn't published to pypi yet so I have been installing and testing locally.
@RobotSail will be taking over from here weds, thurs, fri, and I will pick up when I am back.
the way to run this is:

if you want to run linux train just run ilab config init and then ilab train --legacy=true
if you want to use the backend, clone the instructlab/training repo and pip install -e . in the same venv then pip install -e . from the instructlab cloned repo. ilab config init ilab train. ilab config init now has a --train-profile which takes a valid yaml of the following format:

train_args:
  model_path: instructlab/granite-7b-lab
  data_path: sample-data/train_all_pruned_SDG.jsonl
  ckpt_output_dir: checkpoints
  data_output_dir: output
  max_seq_len: 4096
  max_batch_len: 10000
  num_epochs: 10
  effective_batch_size: 3840
  save_samples: 25000
  learning_rate: 2e-6
  warmup_steps: 800
  is_padding_free: False
  random_seed: 42
torch_args:
  node_rank: 0
  nnodes: 1
  nproc_per_node: 1
  rdzv_id: 123
  rdzv_endpoint: '<IP_ADDRESS>:12345'

These are the exact TrainingArgs and TorchrunArgs from the training repo.
These options then funnel into the flags for ilab train which can be used as overrides but the hope is @RobotSail and team can provide pre-baked training yaml for specific hardware so users will not need to specify ANY flags (this works in testing so far which is really cool)

macos train is detected based off the chip type, and users will auto run that if they are on a mac.

I added a --train-profile to ilab init allowing a user to specify a yaml file matching the exact format of the training library args. The two sections in the yaml are train_args and torch_args.

Is this just a temporary development capability as a stand in until we get to a config ux? Friday we all talked about how as a step towards profiles we would first map in everything as an option which allow us to have a consistent experience (e.g. everything has a config file setting, a command line argument, and a default (which is provided by the profile)) And then we would have categories etc to hide some of the advance CLI overrides.
The big thing I would be worried about is ending up in a position where it's becomes unclear how you specify something or what the source of truth.(e.g. user has to ask Is it in a config file or an option, or an option to a config file? If it's in a config file, which one holds the setting? If I am a laptop user do I use the config.yaml or the train profile, they both sound like what I need).

@n1hility

The big thing I would be worried about is ending up in a position where it's becomes unclear how you specify something or what the source of truth.(e.g. user has to ask Is it in a config file or an option, or an option to a config file? If it's in a config file, which one holds the setting? If I am a laptop user do I use the config.yaml or the train profile, they both sound like what I need).

--train-profile is an argument to ilab config init. This flag will populate a new portion of the config.yaml called train with the options specified in the user's yaml. I thought this made more sense than forcing them to edit the config.yaml directly OR creating a full config.yaml with the train settings pre-specified.
In my mind, this is a step towards global profiles for all commands that can either live in the config.yaml or as a separate entity. We didn't get enough consensus on where profiles would be represented because folks viewed them as something we should focus on later. However, I was trying to convey that PRs like this will necessitate at least some direction for profiles to be made.
every option in --train-profile can be overridden by a flag in the CLI. And if a user wants to run the old linux train they can specify --legacy, there is no functionality loss here over all.

The big thing in this PR is: The new train library introduces a lot of new code. Much of it is similar theory to what we run, but I don't feel comfortable hot swapping it in for the current linux_train flow within the week.
the --legacy flag enables the old linux_train code and should require minimal additional flags since ilab init sets sane defaults for training now.
The "non-legacy" new workflow is going to have bumps, but overall the design of taking a top level cfg for just training for now and eventually evolving into a profile is the direction I believe we should go in, especially in a time crunch.

after discussing with the team, we are going to be timeboxing the merging of this pr to EOD today EDT or the morning of 6/25 EDT. This, of course, is assuming I get CI passing! I will not be merging a broken PR.

@RobotSail could you do a single batch review instead of separate reviews for each comment? I can show ya how

whoops sorry @JamesKunstle I forgot to pull @russellb changes down :sweat:

@cdoern I have some outstanding comments that were never addressed - I can look at approving once they are

--train-profile is an argument to ilab config init. This flag will populate a new portion of the config.yaml called train with the options specified in the user's yaml. I thought this made more sense than forcing them to edit the config.yaml directly OR creating a full config.yaml with the train settings pre-specified.
In my mind, this is a step towards global profiles for all commands that can either live in the config.yaml or as a separate entity. We didn't get enough consensus on where profiles would be represented because folks viewed them as something we should focus on later. However, I was trying to convey that PRs like this will necessitate at least some direction for profiles to be made.

Thanks for clarifying the override aspect, I previously missed that, and that addresses a lot of my concern! I still feel introducing a secondary config mechanism is a step sidewise from where we want to head. When we introduce profiles I assume we would retire this right away. Would we still support its usage?
Another issue is will we find ourselves applying in several areas. Training profile, generation profile etc, and then finally introduce profiles. IMO the eventual direction we want (or I thought we were heading to in discussions) is that a profile would cross all these domains.
An alternative could have been a generic config merge, where you do ilab config init --include blah.yml. That could have been closer to profiles but it would still have a problem in that profiles would invalidate it.
All that said, I don't want to hold you up, but would be great to chat about where to go from here.

I rebased, and added one more timeout bump.

We're failing one MacOS test. I manually ran the test to see if it's a test problem or a real problem. The manual testing passed.
i.e. if the server is running and we are in a chat window, and we kill the server while chat is emitting, the chat window will exit and let the user know that it's ceasing to emit a response.
I used:
watch -n 1 sudo lsof -iTCP -sTCP:LISTEN -nP
to validate that the serving process that we killed was the one that the chat instance was communicating on.

For future reference, this commit history could have used a bit of squashing cleanup prior to merging.


CI: Actually read in CILIUM_IMAGE when splitting it

As the branch name suggests, I was going to revert this outright but part of the commit is in-use by other code so I corrected the one mistake instead
We added setting the component parts of the image (registry and tag) to
ensure that these are consistent. This is currently only relevant to the
upgrade test but may be needed in the future as we set more of these
variables via the CILIUM_IMAGE variable.
fixes 1b75c08cc5f12758e7d5e92121d04a25da854c0f

test-me-please

test-gke

Coverage increased (+0.02%) to 46.608% when pulling fa8a8aa44886b7dc876f2fc84f02443a54006b0d on raybejjani:ci-revert-getenv into afc48b73b65af521a7a8cb93c766dc28d379ca06 on cilium:master.

test-me-please

test-gke


DSL to JSON mapping not working

I am doing a CFT conversion and figure out the issue while converting the JSOn into DSL format.
Below are the JSOn which I need but my DSL code is failing. I read examples but they are not helpful enough. Can anyone help here?
Desired Output:
"Mappings" : {
"AWSInstanceType2Arch" : {
"t2.nano" : {
"Arch" : "HVM64"
},
"t1.micro" : {
"Arch" : "PV64"
},
"AWSInstanceType2NATArch" : {
"t1.micro1" : {
"Arch" : "NATPV64"
}
}
}
}
My Code:
Mapping(:AWSInstanceType2Arch,
't1.micro': { Arch: "PV64" },
"t2.nano": { "Arch": "HVM64" },
{ AWSInstanceType2NATArch,
"t1.micro1": { "Arch": "NATPV64" } } )

Hi @bksaurabh96 ,
The following worked for me:
  "Mappings": {
    "AWSInstanceType2Arch": {
      "t1.micro": {
        "Arch": "PV64"
      },
      "t2.nano": {
        "Arch": "HVM64"
      }
    },
    "AWSInstanceType2NATArch": {
      "t1.micro1": {
        "Arch": "NATPV64"
      }
    }
  }

Mapping(:AWSInstanceType2Arch,
  't1.micro': { Arch: "PV64" },
  "t2.nano": { "Arch": "HVM64" }
)
Mapping(:AWSInstanceType2NATArch,
  "t1.micro1": { "Arch": "NATPV64" }
)


Support block comments defined only via start and end

For example, block comments in CSS:
/* block
   comment */

This fails to pass with these options:
[*.css]
block_comment_start = /*
block_comment_end = */

Another issue with above block is that it fails the indent_size rule when it is set to 2 or 4, while I think it should be accepted. I'd suggest to disable indent_size checks inside block comments.

try eclint fix **/*.css

/*
 * block
 * comment
 */

We only support c lang style block comment

These extra * are purely stylistic and should be ignored when linting, they are not mandatory in C either.

If you want disable indent_size checks inside block comments, you can try lintspaces

I will work for support this kind of commit (node just disable);
/* block
   comment */

Whould you like to try this PR #87 and do some test?
you can install from npm i jedmao/eclint#non_doc_block_comments

@silverwind The new release destroys some pipeline of projects. I plan to not support for this format in eclint.fix(), just support it in eclint.check().
#96

If you have any way to compatible all of these formats, please submit PRs

Why not keep it simple and ignore indentation in block comments completely (both in fix and check)? You can't really guess what kind of comment style a user uses, unless EditorConfig has an option for it.

As far as I know, eclint is the only linter that supports comments. lintspaces is compatible with .editorconfig, and it have a option to ignore indentation in comments.
Does users need two tools with same features?

Why not keep it simple and ignore indentation in block comments.

Because this feature worked well in each project I was involved in.

/*
 * block
 * comment
 */

Do you hate this comment style? It is support by many IDE and editor.

It might be a good idea to add/parse an option in .editorconfig for block comment indentation style.

And no, I don't hate your style, but I see it as extra typing work that can be avoided. ;)

It might be a good idea to add/parse an option

What is this options look like？

I guess it could use names for the styles, like indent_brace_style does, but in the simple case, strings like aligned for your style, and any other value for ignoring indentation would be fine I guess. You could add support for more styles later. The option could be called block_comment_indent_style.

we should open a new issue for editorconfig/editorconfig

I think stylelint is mach better than eclint for CSS file

Yeah, I actually use both :)


Coolify not starting after install

Hi! I'm tried to install coolify, but after installation I getting an error when loading admin page. docker container list returned this:
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS       NAMES
de4208d382ff   bitnami/mongodb:4.4   "/opt/bitnami/script…"   4 minutes ago   Up 4 minutes   27017/tcp   coollabs-mongodb_mongodb.1.oxxaiewkfp00hf2gww2e80t4x

I tried to manually run coolify with docker run -d -p3000:3000 --name coolify coolify, but in logs I have an error:
><EMAIL_ADDRESS>start /usr/src/app
> NODE_ENV=production node api/server

connection error: MongooseServerSelectionError: getaddrinfo ENOTFOUND coollabs-mongodb
    at NativeConnection.Connection.openUri (/usr/src/app/node_modules/.pnpm/mongoose@5.12.8/node_modules/mongoose/lib/connection.js:846:32)
    at /usr/src/app/node_modules/.pnpm/mongoose@5.12.8/node_modules/mongoose/lib/index.js:351:10
    at /usr/src/app/node_modules/.pnpm/mongoose@5.12.8/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5
    at new Promise (<anonymous>)
    at promiseOrCallback (/usr/src/app/node_modules/.pnpm/mongoose@5.12.8/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
    at Mongoose._promiseOrCallback (/usr/src/app/node_modules/.pnpm/mongoose@5.12.8/node_modules/mongoose/lib/index.js:1149:10)
    at Mongoose.connect (/usr/src/app/node_modules/.pnpm/mongoose@5.12.8/node_modules/mongoose/lib/index.js:350:20)
    at Object.<anonymous> (/usr/src/app/api/server.js:45:12)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  reason: TopologyDescription {
    type: 'Single',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map(1) { 'coollabs-mongodb:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  }
}

Can you help me, please? Thank you for this product!

I'm shocked... The problem was that I was creating a Github Application on my account. When I did this on the organization's account, it worked!
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
c78ebf78017b   traefik:v2.4          "/entrypoint.sh --ap…"   12 seconds ago   Up 11 seconds   <IP_ADDRESS>:80->80/tcp, :::80->80/tcp, <IP_ADDRESS>:443->443/tcp, :::443->443/tcp   coollabs-coolify_proxy.1.bj1jdd38yrbtb0qpdjcld7z46
0622c5f1befe   coolify:latest        "docker-entrypoint.s…"   16 seconds ago   Up 14 seconds   3000/tcp                                                                   coollabs-coolify_coolify.1.x0g6qufdcljepltxnu6x6u8e8
ad1b1c06a14e   bitnami/mongodb:4.4   "/opt/bitnami/script…"   5 minutes ago    Up 5 minutes    27017/tcp                                                                  coollabs-mongodb_mongodb.1.v6fwu1yqlellgwrcxkk1i44qn

The problem was solved. I'm created a Github App with name including ' symbol, that breaks env file.


Added a Monolog handler

Hello,
Logging Symfony error is great.
Adding a Monolog handler in this bundle would be great: in our application, we are using Monolog to log business errors all around, we would like to have those sent to Sentry as well.
Having a config parameter to activate that would be great, as a little bit of bootstrapping code is required.

Need this too

Since Monolog is normally added with the MonologBundle, adding that piece of bootstrapping code could become really complicated, because we would need to check for the MonologBundle precence (and pre-registration!) before adding it.
I would suggest you to use something less complicated, such as https://github.com/facile-it/sentry-psr-log