Handle errors returned from Stripe during tokenization #trivial

This PR addresses https://artsyproduct.atlassian.net/browse/PURCHASE-195 by explicitly catching errors from Stripe's API.
Note that we are not charging the cards that we tokenize (so most of the potential checks won't surface at this stage), and Stripe will successfully tokenize any card that passes the same validations that are implemented for free in the form element we're using. Therefore, the errors that we're catching are more likely to do with us being unable to access stripe's API at all and as such there's not really a need to clear the credit card form when this happens.
Here's a helpful stackoverflow answer that discusses the types of validations Stripe does while tokenizing (same as what the form implements): https://stackoverflow.com/a/50878951
Already discussed this behavior with @briansw in slack!
The behavior addressed by this PR is:

When you are on the CreditCardForm, you will already see validation errors as you enter your card information. If Stripe's API returns an error (like I said, this won't be due to any kind of extra validation on the card), we display an error message asking you to try again. This should also handle network errors and things like that. There's a video of this below.
When you are on the ConfirmBid screen or the Registration screen and something happens when we try to access Stripe's API, we show the generic error screen for that flow.

Also, would the stripe.createTokenWithCard raise an error when it can't tokenize the card due to network errors or it just returns an error object?

@yuki24 I tested by turning off my wifi and an error was raised (taking us to the error state).

As per the conversation in slack, I think this should be good to go, and based on what we want as far as helpful error messages from gravity's API, we can follow up with a separate story. 😄


[Graph, Shape of Node] How to get the shape of each node?

Hi,
I've located that the two parts of a NNVM graph:

The computation graph structure
The attribute map

For each node of the graph, I could get the filter information through the 'attrs' member of Node, including filter size, number of channels, etc. I could also get the input shapes of all nodes from the attribute map mentioned above. However, how could I get the shape for a given node, like the way I get the filter information (have a connection of the attribute map with nodes in a graph)?
Thanks,
troore

Not sure I understood correctly..
NNVM graph definition is JSON file which contains shape of each node.
Can you give context for this ?
I think this could move to discussion forum.
discuss.tvmlang.org

@srkreddy1238 Thanks for your reminding. Let me explain my scenario before move it to the forum. The shape I mean is actually the input image shape, say, during image classification.


Refactoring in ConfigurationManager class (config_manager.py)

Checklist
GitHub

[X] I've given this PR a concise, self-descriptive, and meaningful title
[ ] I've linked relevant issues in the PR body
[ ] I've applied the relevant labels to this PR
[ ] I've assigned a reviewer

PR contents

[X] I've consulted ivadomed's internal developer documentation to ensure my contribution is in line with any relevant design decisions
[ ] I've added relevant tests for my contribution
[X] I've updated the relevant documentation for my changes, including argparse descriptions, docstrings, and ReadTheDocs tutorial pages

Description

Added function comments to ALL functions within the class.
Replaced all single letter variables with more meaningful name within the class.
Added type hinting to ALL objects/variables within the class.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

33 of 33 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.02%) to 69.055%

Files with Coverage Reduction
New Missed Lines
%

ivadomed/config_manager.py
1
77.42%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
4240

Relevant Lines:
6140

💛  - Coveralls


Updated the editions relation in documents controller

Added an ascending sort order on created_at and id. This needs to be investigated a bit more to see why the test test/unit/tasks/data_hygiene/change_note_remover_test.rb:67 is failing.
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠

@jyoung-gds the tests should pass on this now.
See 9ba336d892774d13097624b7cf2d02bcc8612865 for the fix. It turns out the test setup wasn't setting the correct created_at timestamps.
I've also added a test for the sort order on Edition#documents just to make it really clear that this is expected behaviour. We want something really obvious to break if that sort is ever removed.


feat(REST API): Add new endpoint to binding the app (AEROGEAR-8913)

Motivation

What

Why

How

Verification Steps

Checklist:

[ ] Code has been tested locally by PR requester
[ ] Changes have been successfully verified by another team member

Progress

[ ] Finished task
[ ] TODO

Additional Notes

Coverage decreased (-0.1%) to 93.377% when pulling e223aa8bd63b998d27700f71ecc0b3a334e41079 on camilamacedo86:AEROGEAR-8913 into 3d5a1efbf97c2791b732dd9bdf8b70bf4aba81b2 on aerogear:master.


[Automation] Generate Fluent Lite from cpim#

[Automation] Generate Fluent Lite from cpim#

/azp run prepare-pipelines

/azp run java - azureadexternalidentities - ci

@weidongxu-microsoft what automation is submitting these PR's with the azure-sdk bot?

@weshaggard
https://dev.azure.com/azure-sdk/internal/_build?definitionId=2238


chore(main): release 0.19.2

:robot: I have created a release beep boop
0.19.2 (2023-08-11)
Documentation

improve admonitions (#286) (956d923)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/rickstaa/stable-gym/releases/tag/v0.19.2 :sunflower:


[VS Code] Unable to start WinPTY terminal process: CreateProcess failed (2)

#cannot share a terminal

@heng19970427 Could you share which version of Windows you’re running? We haven’t seen this error before, so I’d love to make sure we have the right repro. Thanks!

FWIW I'm also seeing this and I'm on Windows 7.

@diminutivesloop Thanks for confirming! And you’re also using VS Code? Do you get this error the moment you try to share a new terminal?
If possible, could you run the “Live Share: Export Logs” command in VS Code and attach the resulting zip to this thread?

@heng19970427, @diminutivesloop also, what version of VSCode and Windows are you using? Logs from "Live Share: Export Logs" can help investigate the issue.

I'm using VSCode 1.23.0
live-share-logs.zip

@diminutivesloop The logs show that you most likely have this user setting:
"terminal.integrated.shell.windows": "Cmd.exe"
Live Share doesn't use %PATH% to search for the terminal shell and cannot find Cmd.exe.
To fix the issue, you need to specify the full path, e.g.
"terminal.integrated.shell.windows": "C:\\Windows\\system32\\cmd.exe"
Or you can remove terminal.integrated.shell.windows setting from the user settings, VSCode by default uses the full path.
On an unrelated note, please note that ANSI ESC sequences are not yet supported on Windows prior to Windows 10.

@IlyaBiryukov I see the same problem when using the WSL prompt even with a full path.     "terminal.integrated.shell.windows": "C:\WINDOWS\System32\bash.exe"

@LongJohnCoder Please double check you have C:\WINDOWS\System32\bash.exe file. It's not there in default Windows 7 install (build 7601, SP1).
Does it work if you change it to "C:\\Windows\\system32\\cmd.exe" ?
Please also note double \\ are used to escape '\' chars in VSCode settings json.

OS:　10.0.17133
VS code：　1.23.1 Stable
logs.zip

I set "terminal.integrated.shell.windows": "C:\Windows\system32\cmd.exe",
it does work for me

@heng19970427 please use double \\ in the VSCode settings file, and ensure the path is correct and cmd.exe exists at that path.
"terminal.integrated.shell.windows": "C:\\Windows\\system32\\cmd.exe"

Using the full path worked for me. However it would be nice if the default configuration for either Live Share or VSCode "just worked".

@diminutivesloop Agreed! It's a bug that we don't "just work", so we'll use this issue to track that improvement.

This issue has been resolved with the 0.3.198 release that went out this afternoon. If folks could update to that, and let us know if they're still experiencing issues, that would be great. Thanks again for reporting this issue!


Additional glyphs feature does not take into account the analysis setting "Annotations on board"

fixed in 2.0.23


fix: make 0007_alter_accessattempt_unique_together.py migration backwards compatible

What does this PR do?
This PR applies fix suggested by @kostrom and fixes #1191

Thank you, looks good!


Chapter5 - Opening and Roshan sections update

Add power rune rangers to opening section!
Add Roshan to opening section
Move Roshan management to state
Add new step for handling multiple move commands

Todo:

add voice lines for power rune rangers and possibly for the Sniper NPC that is killed by the DD ranger

Looks good. Played it and didn't notice any bugs. Some things that we can improve later like camera pans and so on.


Announcement: I created 'addon-p2000_rtlsdr'

I have created a hassio-addon so you can run the P2000 receiver on your Home-Assistant Blue, or Yellow or...
It's an initial release.
I cleaned the code up, rewritten parts of it, so I could have introduced bugs, or fixed them without knowing it ;-)
You can find it here:
https://github.com/cyberjunky/addon-p2000_rtlsdr

will try it!


Dude you ROCK!

where can I donate??!!
Seriously I've been head banging for weeks... trying to get a working USB-UART bridge, given that CH340g board seems to have electrical problems thus garbling all its TX, and replacement FT2232 is a long way from arriving.
I've tried other projects, only to find that the buffers overrun after 30 bytes. I tried myself, but gave up short of figuring out how to read the dtr/rts pins from USB (which is the whole point). Then I finally got your binary flashed. It didn't work the first time, so I lost several days, until I realized my stm32f103c8t6 boards (11 in total), were a mix of various clones. 5 were secretely stm32f103c6, and 3 were 128kb variants, and almost every one had its own set of codes printed on the MCU chip itself. I finally figured out which was vanilla, and now it works like charm!
Technically, so satisfy the category of "issues" (so nobody bites my head off), I'd like to mention its important to disconnect the ST-Link before testing the board, otherwise the LED will blink, but still no communication will happen. That one almost made me give up at the last breath.

Thank you for the nice words, you've made my day! :) I appreciate your feedback a lot. I'm really glad you figured out how to get this thing up and running on your hardware and didn't give up :)
I also use stm32f103c8t6 MCUs, which I believe are clones. I bought them on AliExpress. They have 128k flash, but the firmware ignores this fact and occupies the first 64k only. I think the flash size should not be a problem. The most common problem with the blue pill boards is the wrong USB D+ resistor value. I'm not sure if it applies to your situation, but just in case, please see Fixing USB on Blue Pill Boards for more info. It would be great if you could share more details on 128k MCUs that didn't work. Board pictures, hardware IDs, all that stuff would be helpful. We'll see if we can make them work, or at least I can improve the documentation.
The issue with ST-Link is also a little bit surprising. The thing is, I always have my ST-Link v2 (again, I believe it's a clone) connected to the board while developing and debugging the firmware. Sometimes it is needed to perform a hardware reset or cycle the power after flashing. It usually happens when I reflash the board, which is already flashed and connected to USB. But then it works just fine. It would help if you could share some more info on that (the board you use, your ST-Link version, the way these two guys are connected, etc.).
Last but not least, I've never thought of collecting donations before, but since you asked, I've added a Buymeacoffee button to README.md :)

I just tried flashing an esp8266 on linux... Unfortunately it didn't work... The chip isn't being properly set into the boot mode. Do you perhaps have insight into the issue? I didn't check the RTS/DTR Pins with a multimeter/oscilloscope yet, but intend to soon... I'm using Fedora 34. It would be awesome to be able to program/printf-debug several mcus at once with the bluepill, being independent of more expensive usb-to-serial converters.
I would also like to upload pictures of the various stm32 boards I have... in case they are useful to others who face problems... but don't know how to do this in Github? I'll upload them as files into my own repo i a while...

Hi, unfortunately I don't have any experience with esp8266. I guess we should wait until you can check RTS/DTR with a scope. Please keep in mind that you can invert them using the configuration shell (see README.md) in case it is needed for esp programming.
I am looking forward to seeing those board pictures. I guess I can use them to improve documentation a little bit.
As for ST-Link, mine comes from AliExpress. And yes, there is an stm32f103c8t6 inside. I only connect SWCLK, SWDIO, GND, and 3.3V lines. I don't use RST and maybe this is the reason why it works in my case. Cannot check it right away.

I uploaded 2 pictures of stm32 just now... but I realized it's too difficult to get legible quality with my camera, so I stopped. One is a 64kb version, the other 32.

Esp8266 isn't specifically necessary. Have you ever successfully tried automatic flashing to another bluepill using the monster? Does it work on linux? Either way, I intend soon to study your source code, if I can't get it to work... I'll try the pin flipping if necessary. Uptil now I haven't been able to get any prompt. The led used to flash when I hooked PB5 to ground, but recently it stopped. Unfortunately, I'm busy at the moment getting esp8266 programmable using pymakr over wifi. I just uploaded a script that I recently finished. I'm working on expanding its features right now, since it allows remote automatic flashing if successful.

I did flash another blue pill via serial port with bluepill-serial-monster. It worked just fine, but I was on mac. I tested bluepill on Linux as well, but I did not flash other bluepills on Linux.

I just tested the configuration shell with the last version of firmware on macOS and Ubuntu 20.10. Everything works OK. Also I tried flashing a blue pill board via the serial port using bluepill-serial-monster and stm32flash on Ubuntu. That also worked. Flashing stm32 via the serial port does not require using anything except for RX/TX pins, so RTS/DTR were not involved.

ok then i'll do more thorough testing on my part, and report what i find,
thx
On Wed, 9 Jun 2021, 17:56 Kirill Kotyagin @.***> wrote:

I just tested the configuration shell with the last version of firmware on
macOS and Ubuntu 20.10. Everything works OK. Also I tried flashing a blue
pill board via the serial port using bluepill-serial-monster and stm32flash
on Ubuntu. That also worked. Flashing stm32 via the serial port does not
require using anything except for RX/TX pins, so RTS/DTR were not involved.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/r2axz/bluepill-serial-monster/issues/30#issuecomment-857826492,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJL6CHF5M45BN2ZEKRIJKQTTR6FI7ANCNFSM46EUO4ZQ
.

stm32 and esp are programmed similarly, except dtr has to be low for esp.
usually i need to add a Script to hook into and launch before
stm32cubeprogrammer to toggle dtr/rts... how do you do it?
On Wed, 9 Jun 2021, 17:56 Kirill Kotyagin @.***> wrote:

I just tested the configuration shell with the last version of firmware on
macOS and Ubuntu 20.10. Everything works OK. Also I tried flashing a blue
pill board via the serial port using bluepill-serial-monster and stm32flash
on Ubuntu. That also worked. Flashing stm32 via the serial port does not
require using anything except for RX/TX pins, so RTS/DTR were not involved.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/r2axz/bluepill-serial-monster/issues/30#issuecomment-857826492,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJL6CHF5M45BN2ZEKRIJKQTTR6FI7ANCNFSM46EUO4ZQ
.

I'm not sure I get the question. With stm32 I don't have to do anything with DTR in order to get it programmed, so I don't have this issue. But then again, my programming scenarios are fairly simple. If I were to do this and the programming software wasn't capable of controlling DTR/RTS itself, I would probably write a python script or a small C program to set the control lines the way I want.

usually stm32 needs setting boot0 pin to high followed my a reset to enter
flashing mode. the general Trend is to connect dtr to boot0 pin and rts to
rst pin to toggle these automatically, without pressing any buttons on the
board
On Wed, 9 Jun 2021, 18:16 Kirill Kotyagin @.***> wrote:

I'm not sure I get the question. With stm32 I don't have to do anything
with DTR in order to get it programmed, so I don't have this issue. But
then again, my programming scenarios are fairly simple. If I were to do
this and the programming software wasn't capable of controlling DTR/RTS
itself, I would probably write a python script or a small C program to set
the control lines the way I want.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/r2axz/bluepill-serial-monster/issues/30#issuecomment-857841399,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJL6CHBTRIOBKW35CO6P2UTTR6HVPANCNFSM46EUO4ZQ
.

and PlatformIO & arduino use stm32cubeprogrammer as a flashing tool. to my
knowledge, it doesn't automatically toggle those pins. so i replace it with
a Script by the same name, and the script does the toggling before/after
calling the programmer
On Wed, 9 Jun 2021, 18:16 Kirill Kotyagin @.***> wrote:

I'm not sure I get the question. With stm32 I don't have to do anything
with DTR in order to get it programmed, so I don't have this issue. But
then again, my programming scenarios are fairly simple. If I were to do
this and the programming software wasn't capable of controlling DTR/RTS
itself, I would probably write a python script or a small C program to set
the control lines the way I want.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/r2axz/bluepill-serial-monster/issues/30#issuecomment-857841399,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJL6CHBTRIOBKW35CO6P2UTTR6HVPANCNFSM46EUO4ZQ
.

OK, I see. I usually flash stm32 with st-link, which I also use for debugging, so I don't normally have to deal with boot jumpers. As far as I know boot 0 and 1 are active high signals, while RTS/DTR are active low by default. So setting them to high will actually set boot 0 or 1 to low.

Ok.... So I did further testing.... The board is working as advertised :P Automatic uploading to esp boards seems to fail 1/3 of the attempts at the beginning of the connection, but that is either due to long cables, or noise in my setup. The success rate is high enough (just wastes 2-3 seconds to try again), and I'm reaching 1100Kb/s. The transfers always complete fully once started, indicating the issue is most likely reset pulse timing issues, which is not related to this project. Thx for the great work!
It does hurt a bit though that on UART1, only DTR is available (but works). Is there no way to remap RTS to another pin, even if done in software?

In fact, RTS pins are software controlled on all ports. The way RTS is implemented in stm32f103c8t6 does not work really well with the concept of DMA and large buffers. Initially, I did not implemented RTS on UART1 because there is no CTS pin available (it conflicts with something else and there's no meaningful remap). So I thought if I don't have CTS, I drop RTS as well to keep things simple. The concept where UART1 did not have flow control lines at all seemed more straightforward than having just RTS but no CTS. That may be wrong. On the other hand, I have a pretty busy pin map. I am not sure if I have any available pins for that. Please let me double-check this.

OK, I guess I can enable UART1 RTS on PA15. I believe your use case justifies doing that and dropping my original concept :) Would you be willing to test this?

yes sure! whenever it's ready... I have plenty of esp's waiting to do something... but on a side note... I just broke out a 128kb blue pill to test PB5... On the 64KB (I only tried 1 board), can't seem to get the help prompt working.  PC13 sometimes blinks when I ground PB5, but either way... nothing.... I'll respond once I test this one... any clues on this?

oooooh ok.... Just a hint to anybody facing the same problem... the help console is on the USB side of UART1, not the serial side.

Btw, I'm surprised this project is mentioned everywhere.

Is mentioned or is not mentioned everywhere? Initially, when I released the project, I tried to post about it wherever I could so people can find it, but I believe there is still a room for improvement regarding the project publicity. I would appreciate if you could help with that.

If USB-to-SPI and I2C support were added to it, it would fully replace ft4232 too!

I should think about this. Probably in a context of a different project. Just to keep the scope of this one as focused as possible.

ah i see... thx for the info... no rush.... oss should stay fun
On Fri, 11 Jun 2021, 19:00 Kirill Kotyagin @.***> wrote:

In fact, RTS pins are software controlled on all ports. The way RTS is
implemented in stm32f103c8t6 does not work really well with the concept of
DMA and large buffers. Initially, I did not implemented RTS on UART1
because there is no CTS pin available (it conflicts with something else and
there's no meaningful remap). So I thought if I don't have CTS, I drop RTS
as well to keep things simple. The concept where UART1 did not have flow
control lines at all seemed more straightforward than having just RTS but
no CTS. That may be wrong. On the other hand, I have a pretty busy pin map.
I am not sure if I have any available pins for that. Please let me
double-check this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/r2axz/bluepill-serial-monster/issues/30#issuecomment-859718101,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJL6CHD3SU3IEJNKZBIGQQDTSI6KFANCNFSM46EUO4ZQ
.

i just realized you updated rts on uart1 a week ago. i will test it tomorrow... thx in advance
btw... i found instructions online on how to flash st-link v2 firmware onto any standard bluepill, i'll post a link later. it means in addition to the automatic serial programming using bluepill-monster, it is also possible to turn any number of available blue pills into st-link v2 programmers/debuggers, making it easy & cheap to concurrently debug any number of communicating stm32 boards.

just tested UART1.... it works perfectly, as if hardware dtr/rts.... With a little glue code, it's even possible to connect a monster to a PC over USB, and have instant access to 6 GPIO pins. Since only 4 are needed to bitbang SPI, one can then program an AVR/PIC using a blue pill. This modification wasn't even necessary to make that possible. thx for the great work!

Thank you very much for testing. I will merge #32 and create a new release.


[Draft] One hierarchical view is all you need

It's still a draft, but it's a better abstraction.
Let's see what the View in this PR can do.
from tinygrad.shape.view2 import View

a = View.create((10,10)); print(a); print(a.render());
# View(shape=(10, 10), strides=(10, 1), continuous=True)
# ((idx0*10)+idx1)

a = a.permute((1,0)); print(a); print(a.render());
# View(shape=(10, 10), strides=(1, 10), continuous=False)
# ((idx1*10)+idx0)

a = a.reshape((5,2,5,2)); print(a); print(a.render());
# View(shape=(5, 2, 5, 2), strides=(2, 1, 20, 10), continuous=False)
# ((idx0*2)+(idx2*20)+(idx3*10)+idx1)

a = a.reshape((100,)); print(a); print(a.render());
# View(shape=((10, 10),), strides=((1, 10),), continuous=False)
# (((idx0%10)*10)+(idx0//10))

a = a.permute((1,0)); print(a); print(a.render());
# View(shape=(10, 10), strides=(10, 1), continuous=True)
# ((idx0*10)+idx1

assert a.continuous == True

This means that using symbolic to track indices in multiple views is redundant. A view records all information about the data layout.
I will add conceptual explanations later (need to go to sleep).
This PR currently has not modified any source code, it's just an addition, because the source code of ShapeTracker is spaghetti.

I'll believe this is real when you have all the tests passing with the new View class

It is real. I will post the mathematics behind this with flawless logic.
As for passing all tests, it's a bit tricky. Because the source code may contain "In order to achieve A we implemented B and added tests for B". If I directly solve A, then there is no need for B, identifying B can be time-consuming.

Going to close this PR. No need to pass the view specific tests, but all models and training should work. Feel free to reopen when they do.

I'll be moving the day after tomorrow and might not have access to a computer for a while. I'm posting the underlying principles here so that anyone interested can take a look or help accelerate the refactoring.
First glance
Hierarchical views are a strictly super set of normal views. For example, it is impossible for a normal view to represent the following data layout:
0 4 1 5
2 6 3 7

But can be represented with a hierarchical view:
shape:   (2, (2, 2))
strides: (2, (1, 4))

The second dimension has two dimensions folded into it, if we slice along the second dimension we get
shape:  (2, 2)
strides: (1, 4)

which is
0 4
1 5

aka the first row of the original data layout.
Coordinate lists
In the following text, I will use the term "int tuple" to represent a nested tuple of integers.
We say two int tuples are compatible if they have the same hierarchical structure. For example, ((2,3), 4) is compatible with ((5,6), 8).
A coordinate list is a lexicographically ordered list of integers or compatible int tuples. For example,
{
 (0, 0), (0, 1), (0, 2), (0, 3)
 (1, 0), (1, 1), (1, 2), (1，3)
}

{
 (0, (0, 0)), (0, (0, 1)), (0, (1, 0)), (0, (1, 1))
 (1, (0, 0)), (1, (0, 1)), (1, (1, 0)), (1, (1, 1))
}

This kind of order reflects the row-major memory layout.
I will use the notation $C_{(2,4)}$ for the first coordinate list above and $C_{(2,(2,2))}$ for the second one. The meaning of this notation is self-evident.
We can then define a partial order of the coordinate lists themselves by prime factorization. For example, $C_{(2,4)}\leq C_{(2,(2,2))}$ since 4 can be factored into 2 by 2. And
$$
C_{36}\leq C_{(6,6)} \leq C_{((2,3), 6)}\leq C_{((2,3), (2,3))}
$$
$$
C_{36}\leq C_{(4,9)} \leq C_{(4, (3,3))}\leq C_{(2,2),(3,3)}
$$
Shape
A view contains a shape and a strides (I hate using the plural). They are both int tuples.
We can think of a view as a function that maps valid coordinates to a offset in memory.
The function is defined by taking the (nested) inner product of a coordinate and the strides.
For example,
shape:   (2, (2, 2))
strides: (2, (1, 4))
coordinate: (1, (1, 0))
offset: <(1, (1, 0)), (2, (1, 4))> -> 3

But we should also be able to use a linear coordinate to index into a view.
0 4 1 5
2 6 3 7

We know that 3 is the 7th element, so if we pass in a linear coordinate 7 into the view (as a function) we should also get 3 for the output.
More interestingly, if we treat the view as a 2D tensor, we know that the coordinate (1,3) will also lead us to 3.
Now we introduce the following definition:
A coordinate family generated by a shape $S$ is a set of coordinate lists defined by
$$
G(S)={C_P|\ C_P\leq C_S}
$$
For example,
$$
S=(2,(2,2)), \quad G(S)={C_{8},C_{(2,4)}, C_{(2,(2,2))}}
$$
Observations: $C_S\in G(S)$ and $C_{|S|}\in G(S)$.
A coordinate $c$ of a shape $S$ is an element of an element $C_P \in G(S)$.
Therefore, (1, (1, 0)), (1, 3) and 7 are all valid coordinates of the shape (2,(2,2)).
It turns out the is a bijective map between any two coordinate lists in $G(S)$.
It suffices to show that there is a bijective map between $C_{|S|}$ and any $C_P\in G(S)$, then
$$
C_{P_1}\leftrightarrow C_{S} \leftrightarrow C_{P_2}
$$
for any $C_{P_1}\leftrightarrow C_{P_2}$.
The proof was provided by presenting a specific algorithm. crd2idx takes you from $C_{P_1}$ to $C_{|S|}$  and idx2crd takes you from $C_{|S|}$ to $C_{P_2}$.
For example,
crd2idx((1,(1,0)), (2, (2,2))) = 7
idx2crd(7, (2, 4)) = (1, 3)

Reshape
Given a view $v$ with shape $S_1$ and stride $D_1$, reshaping it to a new shape $S_2$ means for a coordinate $crd\in C(S_2)$, we do
idx = crd2idx(crd, S2)
new_crd = idx2crd(idx, S1)
offset = v(new_crd)

If we have multiple reshape operations, we simply repeat this process.
From my understanding, this is the reason you need to maintain multiple views, and additionally, a symbolic coordinate is required to record the final expression.
The purpose of this PR is to completely discard this complexity.
We consider reshape as function composition.
$$
v\circ v_2(\text{crd})=v(v_2(crd))=\text{offset}
$$
Here $v_2$ is defined to be a continuous view with shape $S_2$. Then, the computation process of this composition is completely consistent with the above algorithm.
The trick is to find a new view, namely $v\circ v_2$, then we can simply maintain the new view and discard $v$ and $v_2$.

How would you handle masks and offsets?

@neverix  I'm not sure about the context of the use of  masks and offsets. Could you provide some examples?

@neverix  I'm not sure about the context of the use of  masks and offsets. Could you provide some examples?

Masks and offsets as in this document. Basically, something that lets it support slices


Could not find generator 'devise_token_auth:install'

rails g devise_token_auth:install User auth
Running via Spring preloader in process 57673
Could not find generator 'devise_token_auth:install'. Maybe you meant 'rspec:install', 'integration_test' or 'test_unit:model'
Run rails generate --help for more options.
I'm having this problem now. Database pg. Adapter postgis.
Using rails <IP_ADDRESS>
Using devise 4.2.0
Using devise_token_auth 0.1.39
Using omniauth 1.3.1

This issue is resolved by restarting the computer. Closing.

@lukeipanda the mystery of why this wasn't closed shall haunt me

This is currently happening with me:
Using rails 5.1.4
Using devise 4.3.0
Using devise_token_auth 0.1.42

rails g devise_token_auth:install User auth
Running via Spring preloader in process 4008
Could not find generator 'devise_token_auth:install'. Maybe you meant 'devise:install', 'responders:install' or 'devise:controllers'
Run `rails generate --help` for more options.

Can we re-open this?

@luispcosta did you try restarting your computer?

@luispcosta I was able to resolve this issue by stopping spring. 😄

I was also able to do this by stopping and removing spring, which is a pretty high barrier to entry. Perhaps the README should include instructions explaining that you will have to remove spring or restart your computer as a prerequisite to proceeding past bundle install?

@samnissen how about a patch that makes this lib play nice with spring :)? We'd also take a PR to the README if you have limited time!


How do I create an SSL binding when the certificate is already installed?

I have a wildcard certificate installed in the webapp. How do I create an SSL Binding to a certificate which is already installed? I was expecting to specify the thumbprint but it looks like I have to upload the cert every time I create a binding.
app1 = app1.Update()
                                .WithManagedHostnameBindings(domain, app1Name)
                                .DefineSslBinding()
                                    .ForHostname(app1Name + "." + domainName)
                                    .WithPfxCertificateToUpload("Asset/" + pfxPath, CertificatePassword)
                                    .WithSniBasedSsl()
                                    .Attach()
                                .Apply();

Thanks
Andrew

I'll add support for this in the next release.

This is supported in v1.1.0.

How do we use this? I tried the following:
           _webApp.Update()
                .WithClientCertEnabled(true)
                .DefineHostnameBinding()
                .WithThirdPartyDomain(domain)
                .WithSubDomain(subDomain)
                .WithDnsRecordType(CustomHostNameDnsRecordType.CName)
                .Attach()
                .Apply();

ALL CERTIFICATES stop working in the site including site.azurewebsites.net. The browser presents a 'Select a Certificate' dialog with 403 error saying the site is stopped when in fact it isn't:

The Azure portal shows everything working normally even though the certs are broken.
The WebApp needs deleting and recreating to fix it.

@jianghaolu please followup with the sample link.

I had to fix the site this happened on. Can you tell me what you want which will help?

This is easily reproducible:

Create a web app (I used a basic app service plan)
Add a CName record in your DNS to point to myapp.azurewebsites.net
Execute the following:

	webApp.Update()
				.WithClientCertEnabled(true)
				.DefineHostnameBinding()
				.WithThirdPartyDomain("mydomain.com")
				.WithSubDomain("test1")
				.WithDnsRecordType(CustomHostNameDnsRecordType.CName)
				.Attach()
				.Apply();

The site now returns HTTP 403 forbidden.

@j055 To add a certificate binding to an existing web app i used:
await azure.WebApps.Inner
       .CreateOrUpdateHostNameBindingAsync(
                RESOURCE_GROUP_NAME,
                WEB_APP_NAME,
                EXISTING_BINDED_TO_WEB_APP_HOSTNAME,
                new HostNameBindingInner(
                      azureResourceType: AzureResourceType.Website,
                      hostNameType: HostNameType.Verified,
                      customHostNameDnsRecordType: CustomHostNameDnsRecordType.CName // or A depends on the type of hostname,
                      sslState: SslState.SniEnabled,
                      thumbprint: CERTIFICATE_THUMBPRINT));

@Dona278. Thanks. in v1.3 CreateOrUpdateHostNameBindingAsync changed to CreateOrUpdateHostNameBindingWithHttpMessagesAsync
await azure
    .WebApps
    .Inner
    .CreateOrUpdateHostNameBindingWithHttpMessagesAsync(
        resourceGroupName,
        webAppName,
        domain,
		new HostNameBindingInner(
                    azureResourceType: AzureResourceType.Website,
                    hostNameType: HostNameType.Verified,
                    customHostNameDnsRecordType: CustomHostNameDnsRecordType.CName,
                    sslState: SslState.SniEnabled,
                    thumbprint: thumbprint));

This issue was moved to Azure/azure-libraries-for-net#61


Miss the previous feature- resize Pane horizontally

Previously, the pane can be resized horizontally layout (2 pane in horizontal view), but looks like now it became only allow you do vertically layout. really miss that capability, wonder if there's a way to get it back

Sadly, it was lost: https://github.com/jsbin/jsbin/issues/2021
I wanted to keep it, but users didn't :cry:

I wish I could keep it as well!

This was the best feature.

I think saving was the best feature.
On Tue, 20 Oct 2015 21:28 Nijiko Yonskai<EMAIL_ADDRESS>wrote:

This was the best feature.
—
Reply to this email directly or view it on GitHub
https://github.com/jsbin/jsbin/issues/2237#issuecomment-149692588.


Group chat - App crashes when navigating to group details page after creating the group

[ ] If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.7-4
Reproducible in staging?: Y
Reproducible in production?: N
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Go to staging.new.expensify.com
Go offline.
Go to FAB > Start chat > Chat.
Select a few users.
Create a group chat.
Click on the report header.
Click Name.
Go online.

Expected Result:
App will not crash.
Actual Result:
App crashes.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
https://github.com/user-attachments/assets/e1eaed2f-6b4e-49d1-8b15-26a75b957deb
Bug6543532_1721111757091!staging.new.expensify.com-1721111532581.txt

View all open jobs on GitHub

We think this issue might be related to the #vip-vsb

Proposal
Please re-state the problem that we are trying to solve in this issue.
App crashes.
What is the root cause of that problem?
When we create a group chat, the parentReportID is an empty string and then after we go back online BE returns parentReportID of the report as null. The app crashes because the key is changed from collection key to collection member key
https://github.com/Expensify/App/blob/1465a9294f5ff357fb30f55c1e90df791c73cd29/src/pages/ReportDetailsPage.tsx#L90
What changes do you think we should make in order to solve the problem?
Use || instead of ?? here
https://github.com/Expensify/App/blob/1465a9294f5ff357fb30f55c1e90df791c73cd29/src/pages/ReportDetailsPage.tsx#L89-L90
What alternative solutions did you explore? (Optional)
Or when we create the optimistic data for the chat, add parentReportID field as null instead of empty string,

@nkdengineer do you know what PR introduced this issue?

@puneetlath  I think it comes from https://github.com/Expensify/App/pull/45330.

Ok gotcha. @srikarparsi do you see any issues with @nkdengineer's proposed fix?

I personally think the alternate solution is better. I think we should do that regardless of whether or not we implement the main solution. @nkdengineer is there a reason you prefer the main solution over the alternate, and is there a reason you would still want to implement the main solution on top of the alternate?

Removing deployblocker label from this blocker since I'm pretty sure the issue here is related to web-E.

Ok let's go with @nkdengineer's alternate proposal. Can you raise a PR ASAP @nkdengineer?

I raised the PR but we will still compensate you @nkdengineer

@puneetlath able to reproduce
https://github.com/user-attachments/assets/95768cfa-232e-435b-af63-f077998bb82c

I can take a look at this

Hmm, I tested this on staging before kicking off the deploy but I must have not followed the steps correctly - my bad, but it should be okay if we can get another fix CPed before the next deploy since this has to do with offline flows

Yup, on it. It'll take me like 10-15 minutes probably if that's okay?

Ok let's go with @nkdengineer's alternate proposal. Can you raise a PR ASAP @nkdengineer?

It's too late in my time zone.

I raised the PR but we will still compensate you @nkdengineer

@puneetlath Thanks. Can you please assign me here for payment?

@nkdengineer sent you an offer. Ping me here when you've accepted. https://www.upwork.com/nx/wm/offer/103157107

@puneetlath I accepted, thanks 🙇

Paid thanks!


VS2019

Docs Build status updates of commit 8e812ad:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows-iotcore/Downloads.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Interfaces RFC: Register

Interface
https://github.com/composablesys/compoventuals/blob/master/client/src/crdt/register/interfaces.ts
Planned implementations (already complete)

AggregateRegister<T>: a wrapper around a multi-value register that applies a given "aggregation" function to the set of conflicting (causally maximal) values, in order to return the actual value.  The aggregation is allowed to look at the values as well as metadata for each value, namely, its sender, the sender's vector clock entry, and the real-world time it was set.

E.g., in the whiteboard, we could choose to aggregate conflicting colors by averaging them, instead of picking one.

LwwRegister<T>: a standard LWW register.  It is an AggregateRegister where the aggregation function chooses the value with the greatest real-world time.
FwwRegister<T>: same, but the first writer wins instead of the last.

Questions

Should MultiValueRegister be exported?  I have left it out so far because it wouldn't actually implement the Register interface.  In principle, it is not needed because you can use a LwwRegister and use the conflicts() method to see all conflicting values.
Should FwwRegister be included by default, or is it not useful enough?  (A user who really wants it can easily implement it using AggregateRegister.)
AggregateRegister metadata: currently, it is fixed to (sender, sender's vector clock entry, time).  In principle, someone might want to add more metadata, or omit the time as an optimization; should this be supported?
More implementations?  E.g., a register where there is a total order on values, the value can only increase under this order, and in case of conflicts, you pick the greatest element.  (This should be doable with a subclass of AggregateRegister.)

Fine as-is, but perhaps the name should be changed (now CRegister).  "Register" suggests a low-level processor register, and is probably just historical at this point.  Perhaps CValue or CVariable?

Implementations: move the MVR implementation within AggregateRegister.

Done by https://github.com/composablesys/compoventuals/pull/138


Broken for a while now

How can the issue be reproduced
No TOC is generated anymore.
Sublime Text 4152
What was expected
What actually occurred
What was the version of the involved component

I just tried this on Sublime Text 4169 and it seems to be working for me (at least for manually inserting/updating the TOC)
Potentially related:

https://github.com/naokazuterada/MarkdownTOC/issues/157
https://github.com/naokazuterada/MarkdownTOC/issues/165

Seems to be working fine now , Build 4180


Update tfjs-converter to 1.0.3.

Remove the google rollup config since we don't need it anymore (no custom protobufjs config inside Google).

This change is

Travis fails. Seems broken at head?

Yep, looks like the same failure at head: https://travis-ci.org/tensorflow/tfjs-converter/jobs/511086689
@pyu10055 @caisq test is failing here about weights manifest, maybe from a new TF version (would be good to pin it somehow)? https://github.com/tensorflow/tfjs-converter/blob/4b82afd82dc80f202a944908e94de1b5194e6e50/python/tensorflowjs/converters/tf_saved_model_conversion_v2_test.py#L205


chore: add HOME variables for MinIO and Azurite client

Currently, both storage client were not setting a default HOME path for the user, this means that they were using / as the HOME path, this can be considered as a bad practices.
This patch creates an emptyDir volume and mounts it with the name of mc and azurite in / and set the HOME environment variable to that path.
Closes #905
Signed-off-by: Jonathan Gonzalez V<EMAIL_ADDRESS>

/ready-to-merge


[Bug]: ASB reciever client fails to retrieve the messages recovered from the dead letter queue

Connector Name
module/azure-servicebus (Azure Servicebus)
What happened?
$subject happens with the below error
Relevant log output
{"time":"2023-04-17T15:50:21.642-04:00", "level":"INFO", "module":"oxi_allotment_ballerina_subscriber", "message":"", "integration_tool":"BALLERINA", "integration_type":"SUBSCRIBER", "flow_direction":"JMS_IN_ERROR", "correlation_id":"", "jms_message_id":"", "application_name":"", "jms_destination":"", "object_id":"", "origin":"", "target":"", "jms_delivery_count":-1, "endpoint":"", "backend_url":"", "http_method":"", "non_retry_http_sc":"", "http_sc":-1, "backend_latency":-1, "total_backend_latency":-1, "round_trip_latency":-1, "enqueued_sequence_number":-1, "sequence_number":-1, "enqueued_time":"", "fault_code":"", "fault_message":"Error reading the message: error io.ballerina.runtime.internal.values.ErrorValue (\"ErrorValueerror from ballerinax.asb.3.messageReceiver\",error(\"An error occurred while processing your request.\n\nError Details:\nMessage: {ballerina\/lang.map}InherentTypeViolation\nCause: null\nClass: class io.ballerina.runtime.internal.values.ErrorValue\n\"))"}

4 collapsed messages

https://central.ballerina.io/ballerinax/asb/3.2.2 is released with the fix for this issue

Closing with https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/pull/147


Need some clarification for using jExcel

Hi Team
We have below requirement in my application :
There is one complex form which having input box control first now they want grid like structure for similar thing to improve UI design so i have added one sample table with checkbox/radio/text/dropdown on the spreadsheet .
Now i need below things :
i) How to validate this fields (Some of them are mandatory)
ii)Based on horizontal fields need to add total of 4 columns and display in 5th column in a row how to display that.
iii)I need to save this data and fetch this data (In backend we have java web framework is used)
iv) User can add multiple rows
Can u provide above information or any other sample similar to above and above things are doable or not with jExcel ?

Option 1) Before you save your form you can get the table data by... yourtable.getData(), them you can take the data and perform the validations.
Options 2) You can use onchange event to validate the changes. onbeforechange can be used to intercept what the user has entered and return something filtered.
Option 3) You can use updateTable directive, in the example below, you can perform validations. In the following example the cell color is changed based on cell values.
var data = [
    [ 'Crayons Crayola only (No Rose Art)', 2, '5.01', '=B1*C1' ],
    [ 'Colored Pencils Crayola only', 2, '4.41', '=B2*C2' ],
    [ 'Expo Dry-erase Markers Wide', 4, '3.00', '=B3*C3' ],
    [ 'Index Cards Unlined', 3, '6.00', '=B4*C4' ],
    [ 'Tissues', 10, '1.90', '=B5*C5' ],
    [ 'Ziploc Sandwich-size Bags', 5, '1.00', '=B6*C6' ],
    [ 'Thin Markers Crayola only', 2, '3.00', '=B7*C7' ],
    [ 'Highlighter', 4, '1.20', '=B8*C8' ],
    [ 'Total', '=SUM(B1:B8)', '=ROUND(SUM(C1:C8), 2)', '=SUM(D1:D8)' ],
];

jexcel(document.getElementById('spreadsheet'), {
    data:data,
    columns: [
        { type: 'text', title:'Product', width:'300' },
        { type: 'text', title:'Qtd', width:'80' },
        { type: 'text', title:'Price', width:'100', mask:'#.##,00', decimal:',' },
        { type: 'text', title:'Total', width:'100' },
    ],
    updateTable:function(instance, cell, col, row, val, label, cellName) {
        if (cell.innerHTML == 'Total') {
            cell.parentNode.style.backgroundColor = '#fffaa3';
        }

        if (col == 3) {
            if (parseFloat(label) > 10) {
                cell.style.color = 'red';
            }  else {
                cell.style.color = 'green';
            }
        }
    },
    columnSorting:false,
});


Add the possibility to use another key other than Return

Description
Hello,
this issue probably shouldn't belong here but I didn't know where I should have assigned.
Feel free to close it or move it somewhere else if it's Off-topic.
There is a conflict when using tools like Karabiner that involves re-assigning the Return key on certain conditions.
For example "Using Return as Open and Fn+Return to rename" when Finder is active.
That means that if Finder is active and I call Raycast then Return won't work as it is remapped by Karabiner.
The Karabiner issue is explained here here but it probably won't be fixed.
My question is if it would be possible to assign another key instead of Return for confirming Raycast actions?
If not it would be possible to add this feature or to solve this conflict somehow?
Who will benefit from this feature?
Users using Karabiner and Finder Keys remapping
Anything else?
No response

It's very unlikely that'll do that, Return is just too much of natural key to confirm stuff

@mathieudutour sure thing, I don't want to change that.
I need to make it work anyway, so for example let shift-Return work as if it was a simple Return.
This way I'll get Karabiner work and Raycast won't complain


Feat/support 0.26.0

Fixes https://github.com/syberalexis/puppet-thanos/issues/31

Rename stores to endpoints
Remove old flags receive.connection-pool-size and receive.connection-pool-size-per-host
Allow modifying max_open_files

Thank you for your great quality contribution.
I see Travis CI don’t work anymore, I try to see and fix that this evening and do the review ;)

Thanks for your update, I'm still working on fixing the ci

Can you just execute puppet strings command to generate an updated REFERENCE.MD file with your changes, please.
puppet strings generate --format markdown.

Just pushed it, the diff is pretty huge, tell me if it's ok for you


Add @ as valid character for webroot

Added @ as valid character for webroot. This allows the usage in Coder without a subdomain.
I am currently in the process of setting up a Coder instance and the way you can access apps in a workspace is either via subdomain or via subpath. This change allows the method of subpath.

Sure, here is an example for Adminer<EMAIL_ADDRESS>

That makes sense, thanks for the input!

@DerKnerd I have just released v1.10.3 which includes your PR. Please have a test and let me know if this solves the issue on your end?

Works like a charm


NSGA-3 gat_nadir_point argument inversion

I might be wrong but it seems to me that the two last argument order when calling get_nadir_point in nsga3 is wrong (at least from the api point of view)
The function is defined as follow
def get_nadir_point(extreme_points, ideal_point, worst_point, worst_of_front, worst_of_population):

and called with
get_nadir_point(self.extreme_points, self.ideal_point, self.worst_point, worst_of_population, worst_of_front)

Thanks for letting us know. I will have a look into it and redo the benchmark without the swap to see the difference.
It will be fixed in the next version 0.3.1.
Good catch!


Make tested profiles accessible in submodule

ClimateMachine.jl uses Thermodynamics.jl's tested profiles for primitive-prognostic conversions. This PR makes those profiles available via a submodule in src/.

bors r+

bors r-

bors r+


(debian) Fix DISTRIB variable for release [global-health] (develop)

Description
PLEASE MAKE SURE THAT THE BRANCH PR INCLUDES JIRA TICKET ID (for centreon-internal)
Please include a short resume of the changes and what is the purpose of PR. Any relevant information should be added to help:

QA Team (Quality Assurance) with tests.
reviewers to understand what are the stakes of the pull request.

Fixes # (issue)
Type of change

[ ] Patch fixing an issue (non-breaking change)
[ ] New functionality (non-breaking change)
[ ] Breaking change (patch or feature) that might cause side effects breaking part of the Software

Target serie

[ ] 21.04.x
[ ] 21.10.x
[ ] 22.04.x
[ ] 22.10.x (master)

 How this pull request can be tested ?
Please describe the procedure to verify that the goal of the PR is matched. Provide clear instructions so that it can be correctly tested.
Any relevant details of the configuration to perform the test should be added.
Checklist
Community contributors & Centreon team

[ ] I have followed the coding style guidelines provided by Centreon
[ ] I have commented my code, especially new classes, functions or any legacy code modified. (docblock)
[ ] I have commented my code, especially hard-to-understand areas of the PR.
[ ] I have rebased my development branch on the base branch (master, maintenance).

migrated from https://github.com/centreon/centreon-widget-global-health/pull/60


Disk indicators

This is an great project. I was wondering if you would also consider adding disk indicators in the future?
Here is an example of an MFT search Im using currently
https://github.com/mgreen27/DetectRaptor/blob/master/vql/MFT.yaml#L58-L92
or Application search looking at install key
https://github.com/mgreen27/DetectRaptor/blob/master/vql/Applications.yaml#L41-L90

@mgreen27 , I like the idea of searching against disk/ file/ registry indicators, this would need a new template for both file and registry artifacts


Conductor and MvRx

Hey, Just wondering how crazy it is for me to attempt integratin MvRx with Conductor. I would be more than happy to provide a PR/separate module, but I first need to know how feasible this is.
Is MvRx based on delegation? Haven't check the internals yet to make sure of this nor I've fully tested MvRx myself, but if its delegation based I should be able to use MvRx on Controllers (or any sort of Views) instead of Fragments, right?
Any tips are very much appreciated :)
Thanks!

Hey @gpeal, sorry, I was sleepy AF last night and didn't take enough time to give you some more context 😅 .
To simply put it, Conductor is a library to build View-based Android applications. You don't use Fragments but Controllers (which at the very end are backed up by a Fragment) which have their own specific lifecycle (very similar to the one of Fragment but a bit more predictable/simplified).
My question could be summarize into: If I have a Controller (or any View for what matters) implement MvRxView, should that suffice for that Controller to become the View of MVVM (or of MvRX in this context)? That's what's basically happening under the hood of a BaseMvRxFragment for example.
I know there're a bunch of extensions which I would've to change a bit here and there, but I guess the most important part for this to work is to have a Controller implelent MvRxView, right?
Thanks!

@mradzinski A lot of MvRx just takes a LifecycleOwner as a parameter so if your View implements that, it may just work. Feel free to try it!

Hey @gpeal, Correct me if I'm wrong, but I'm not entirely sure implementing LifecycleOwner will be enough mostly because MvRx is prepared to be used with Fragments and Activities but not with an application made out of something entirely different such as Conductor Controllers. Although I can make a Conductor's Controller (or any View with a life cycle) implement LifecycleOwner and ViewModelStoreOwner pretty much easily, my biggest concern comes from the fact that there's a big dependency between MvRx and Fragments.
For example: as far as I know activityViewModel and fragmentViewModel will simply not work in other scenarios other than what their names suggest. Also passing arguments to the initial state through KEY_ARG will also not work (due to the coupling between MvRxViewModelStore and Activities/Fragments). And I guess there's a big etc.
I don't think any View implementing LifecycleOwner as you mentioned suffice for MvRx to work. I think it takes a bunch more than that to have something working. Again, I might be completely wrong here, so I'm just looking up for a bit of guidance on the internals of MvRx and what would need to be implemented if deviating from the usage of Fragments.
Cheers and thanks again!

@mradzinski To do this correctly might require you to clone the project and start poking around. I'm happy to answer any questions you have though. Just @gpeal me on replies here so I get a notification for it.

I'm already one step ahead and began poking around last Friday @gpeal. I'll be OOO next week, so probably I'll be able to invest some time into this.
I'll let you know in case I have any questions, but so far the advantages of a healthy, well structured codebase are paying off and the process has been very straightforward (thanks for that guys).

We've successfully integrated conductor with viewmodel, primarily utilizing this https://github.com/miquelbeltran/conductor-viewmodel/blob/master/conductor-viewmodel/src/main/java/work/beltran/conductorviewmodel/ControllerLifecycleOwner.java
I'm toying with the idea of forking MvRx and implementing a base Controller class in similar fashion as MvRx but realized that you guys @gpeal are manually saving the viewmodels. Afaik, using the factory with the ViewModelProvider would mean this is done automatically, so I'm wondering what the motivation was behind manually persisting the viewmodels

@wugeorgeq We do use the normal ViewModelProvider but we extend/intercept it so we can properly handle things like process restoration with @PersistState
https://github.com/airbnb/MvRx/wiki#restoration-in-a-new-process

@gpeal Sorry, got quite busy with some projects. Haven't lost interest, though I need to find some spare time to toy with this. I'll keep you guys posted.

@mradzinski I'm going to close this to keep the backlog clean but if you want to write a wiki page on how to use MvRx with conductor or need something else specific, feel free to open a new issue!

@gpeal I've resumed this attempt and found out its not going to be possible given the current project state. Having ViewModelContext() sealed (link) prevents creating a new ViewModelContext which is needed as part of MvRxViewModelProvider.get().
Is there a reason why ViewModelContext needs to be sealed? Just wondering how possible it is to make it open and hence extensible.

@mradzinski Can you use ActivityViewModelContext for conductor?

@gpeal yes, but that wouldn't mean the VM would be scoped to the Activity instead of the Controller? (which acts as a Fragment)

@mradzinski ViewModelProviders from Jetpack actually does the retaining so you might want to look into that.
The ViewModelContext is just created to give you context to use for DI/VM creation. The actual scope of your ViewModel depends on the ViewModelProvider you use.

@gpeal Isn't MvRx using it's own implementation of a ViewModelProvider which takes care of restoring the VM state throughout args and its own VM factory?

@mradzinski it would be great if you shared your hard work as a library

@manueldidonna Like I said, I'll not be sharing it as a library due to how hard it'll be to keep it up to date with MvRx (it would need to be an exact clone of this repo with a few methods here and there).
You can check my implementation here though: https://github.com/mradzinski/MvRx/tree/matias/conductor-integration


ci: merge opae-libs

Automated changes by create-pull-request GitHub action.
Must be use a normal merge (not squash-merge and not rebase-merge)

Coverage increased (+1.5%) to 67.26% when pulling 51998cc17e798c6cd8845a07b3a3d3ae6b34a12b on auto/update-libs into 385fc4991c0fa2223a6cec90aa9389b29c1fa0ce on master.


resolved #103

(copied from issue)
replaced "input_events" with "actions" : 73 occurrences in 8 files
replaced "input_event" with "action" : 78 occurrences in 11 files (ignore alembic)
replaced "InputEvent" with "Action" : 25 occurrences in 11 files
added alembic revision

recording ✅
visualize ✅
replay ✅
pytests ✅

realized I forgot to actually make the PR lol

Thank you @0dm ! Can you please modify the PR title to something more descriptive?

Not quite, I pushed it back because it would interfere with other branches a bit (would require many of them to merge / resolve conflicts) and I'd like to take some time to make sure everything looks consistent. But the current code is fully functional, so if you'd like to merge it now (and further edit later) then there's no issues.


Inventory Viewer transparency option

I'm not sure if it's possible but the option to change (lower/raise) the transparency of the Inventory Viewer could be helpful for those with darker screens, etc myself included.

Use the Overlay Color option in RuneLite's settings. (see the Overlay Settings section)


Synthetic Data

https://github.com/MoritzLaurer/synthetic-data-blog/tree/main
https://huggingface.co/blog/synthetic-data-save-costs#32-compare-the-open-source-model-to-proprietary-models

Related: https://github.com/manisnesan/fastchai/issues/47#issuecomment-1968021707

Related
How to Generate and Use Synthetic Data for Finetuning
https://eugeneyan.com/writing/synthetic/


NEW FAQ - How to participate in a Cere Network Governance Referendum?

Instructions
1. Open Cere Explorer
2. Go to [Democracy Tab](https://explorer.cere.network/#/democracy)
3. Click Vote in the current referenda
4. Select account with CERE tokens. It can be transferrable tokens or staked.
5. Select conviction. Bigger is better.
6. Click Vote Nay
7. Sign the transaction

https://www.notion.so/cere/How-to-participate-in-a-Cere-Network-Governance-Referendum-f7ce4e6f48114b3986e8093ea368a1ba


Fix type import in peripherals

Adds try/except to typing import in peripherals.py.

lgtm 😄

Thanks for catching that!


Settings link gone after adding the first application

Thank you for this nice home page project!
I cannot go to the settings to add apps after the first one is adding with a hyperlink and instead have to manually type in /applications.
Is there a way to preserve a button to reach there quickly after the first one has been added instead of typing it in? Like a gear cog icon?

You can access apps and bookmarks by clicking on the section headlines:

You can access apps and bookmarks by clicking on the section headlines:

Yes indeed, I found out after further messing with the app.

Yes indeed, I found out after further messing with the app.


Fix turtlebot3 dependencies

Trying to catkin build turtlebot3 gives the following error
error: ‘const struct turtlebot3_msgs::SensorState_<std::allocator<void>’ has no member named ‘torque’
if (msg->torque == true)

Which is caused by lack of dependency on turtlebot3_msgs.
Although it builds fine with catkin_make, it should be better to have clear dependencies for each package.

Hi @Affonso-Gui,
I appreciate for your suggestions and help. But the turtlebot3 package is metapackage. I declare it as metapackage in the  tag. The <exec_depend> tag of metapackage describes only the packages belonging to this metapackage. The turtlebot3_msgs package you mentioned is listed for each package in this metapackage.

When you build a package, did you get the error you mentioned?

I got the error above when tried catkin build turtlebot3, even after building for turtlebot3_msgs finished successfully.
However, when I tried on my other PC I was able to build it without errors. I will need to confirm this on the other PC.

Okay. I will close the issue once. Please let us know if you have problems again.
Thank you so much! :)

Tested again on the first PC, and this time it build up without any errors.
Don't really know why the problem happened, but doesn't seem to have anything to do with the package.
Anyways, everything is working fine now!


Add some ts0601_motion devices (with Tuya MCU Cluster approach)

This PR will add support for some ts0601_motion devices.
The new devices will follow the new 'Tuya MCU Cluster' approach to update device attributes.
Fixes: #1236
Reported motion sensor 'NAS-PD07' manufactured by NEO.
Most of the code came from 'herdsman-converters'
Those DPs that have been possible are reported as a new cluster.
Those that I have not found a match for are reported as attributes of the MCU cluster.
Not sure about possible tamper values. Probably there are diferent values >0 with other meanings.

Codecov Report

Merging #1315 (a3c0ac3) into dev (c6837b9) will increase coverage by 0.05%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev    #1315      +/-   ##
==========================================
+ Coverage   80.97%   81.03%   +0.05%
==========================================
  Files         217      217
  Lines        6008     6027      +19
==========================================
+ Hits         4865     4884      +19
  Misses       1143     1143

Impacted Files
Coverage Δ

zhaquirks/tuya/ts0601_motion.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

22 of 22 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 81.035%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
4884

Relevant Lines:
6027

💛  - Coveralls

The tamper attribute looks very OK.
The battery is little tricky then its also having USB powered "mode".
If it was not having it some TRVs is converting battery low warning to 20% battery and no warming 100% (*2 for ZCL compatibility) so i think you have doing the best what can being done.
One way is having the "tuya battery attribute" and also  doing the % converting (then USB = 100% *2) to the normal battery attribute for getting the normal ZHA battery sensor showing "somthing" and the user can getting the real sate from tuya battery attribute if they like that.


MM-46289 : Github action for adding automated tracking of bundle size in CI

Summary
TBW
Ticket Link
https://github.com/mattermost/mattermost-webapp/pull/10970 needs to be merged, before merging this one. As the former adds ability to generate bundle size json file to master. Without that this action in this pr would fail.
Related Pull Requests

Has server changes (please link here)
Has mobile changes (please link here)

Screenshots

Release Note

NONE

E2E tests not automatically triggered, because PR has no approval yet. Please ask a developer to review and then try again to attach the QA label.

/update-branch


When rename filename, an error ...

like this, and use "Collect attachments in current note" may be occurred.

Happens if you use the rename folder feature.

@Ryoga1016 @catacgc Cannot reproduce the issue. Please provide a sample vault and a video with the issue

It's actually fairly easy to reproduce (empty, new vault):

These settings:

Create new file (Untitled)

Paste an image

Rename the file

Fixed in https://github.com/RainCat1998/obsidian-custom-attachment-location/releases/tag/4.6.0


Provide source package on PyPI or precompiled packages for M1 MacBooks

Similar to https://github.com/ethereum/blake2b-py/issues/1, since 0.1.4 does not provide a source package, it cannot be installed on M1 MacBooks currently:
$ pip install 'blake2b-py==1.4.0'
ERROR: Could not find a version that satisfies the requirement blake2b-py==1.4.0
ERROR: No matching distribution found for blake2b-py==1.4.0

This is an issue, since it is a dependency of py-evm (specifically, >=1.4.0)

I was able to fix this by adding
blake2b-py = { git = "https://github.com/ethereum/blake2b-py.git", tag="v0.1.4" }

to my pyproject.toml

@yorhodes Where in pyprojec.toml did you add this line?

@mattslipari Something like this:
[tool.poetry.dev-dependencies]
blake2b-py = { git = "https://github.com/ethereum/blake2b-py.git", tag="v0.1.4" }

@cburgdorf What do you think about uploading a source package?

@cburgdorf seconding the above

This issue is solved no?
Just installed Mythril that used blake2b-py; the only thing needed is to install a nightly version of rust for it to install properly

I only see Wheel pacakges here https://pypi.org/project/blake2b-py/#files
It's not solved. But it would be easy to solve for the maintainer.


implement BridgeStan download and module compilation on Rust

Implement BridgeStan download and module compilation on Rust.
Fixes issue #100

Thank you for taking this on! A few thoughts on what is here so far

okay, all done

You may have to skip some of the compile tests on Windows for Rust, since we never unload libraries (#111) and Windows locks the file of loaded libraries

i see, what about Mac? it seems to give some weird error that is hard to understand.

there also seems to be some toolchain problem on Windows, lack of mingw, so it's unable to compile the example.

We could just have a global Mutex that protects the compilation, but that would still fail if multiple independent processes try to compile models in parallel? (@WardBrian Is this something that has been looked into on the stan side?)

This is an unfortunate consequence of Stan really only supporting in-tree builds. This has been frustrating for other reasons, I don't think this specific one has come up though.
The right thing to do if concurrent builds are requested is to do them all in the same call to make and let make's jobserver do it, but that seems very difficult to expose in a meaningful way. I guess the compile function could take a list of filenames, but that also seems cumbersome.

I guess this is why you had to disable the test, or disable testing in parallel

Not exactly, it was just that i needed to delete the .so file before asking the function to compile the model, otherwise the function would skip compilation as the file already exists.
The problem then arises because other tests expect the .so file to exist in the meantime (they don't try to compile it first), so they will fail if they started after the file was deleted.
However, i think that if two processes tried to compile at the same time, i imagine that at least on Linux these wouldn't be a problem (on Windows, idk, conflict of two process opening the same file?).

We could just have a global Mutex that protects the compilation, but that would still fail if multiple independent processes try to compile models in parallel? (@WardBrian Is this something that has been looked into on the stan side?)

This is an unfortunate consequence of Stan really only supporting in-tree builds. This has been frustrating for other reasons, I don't think this specific one has come up though.
The right thing to do if concurrent builds are requested is to do them all in the same call to make and let make's jobserver do it, but that seems very difficult to expose in a meaningful way. I guess the compile function could take a list of filenames, but that also seems cumbersome.

so right now, if two processes call make at the same time, bad things happen? I haven't tried but imagined that it wouldn't be bad on Linux

I think it would be fine after the initial build? But if nothing has been successfully built yet I think you could definitely get a filesystem race on things like main.o that are built once and then re-used

Maybe we also want to check the downloaded stan version somehow? If we tie it to a specific release we could just use a checksum I guess? Although I'm actually not sure how we'd best do that given that the file we want to download contains the repo, which would have to include the checksum...

Check commit fab21a7c2a6b0355 for a possible solution. The disadvantage is that will be download an outdated version of bridgestan, so not sure if this can cause a chicken and egg issue in the future in case ABI changes edge cases.

The disadvantage is that will be download an outdated version of bridgestan, so not sure if this can cause a chicken and egg issue in the future in case ABI changes edge cases.

I think this would definitely cause problems. Even lacking a major version bump, this would break even during minor version bumps if the new feature required new functions in the C++ layer.
You could instead do what we do for Julia:
We store the SHA of the current version of the source, before updating the Julia code itself in the release action
https://github.com/roualdes/bridgestan/blob/b41f83b61571d4744ba5521a73d98a0c51fdd143/.github/workflows/release.yaml#L61-L65
We could also start creating a tarball that is only the C++ (this is probably a good idea for several reasons) which would make this chicken-egg problem easier

finally managed to fix the build on macos now!

@WardBrian @aseyboldt made the API a little more clear now regarding that bridgestan is being download, and also easier to point to a custom bridgestan dir. I think that the checksum and the lock dir would be better fit as others issues/PRs.


Test 1.9.0-RC4 build

To test and verify the 1.9.0-RC4 build

I am done with Rc4 testing. So closing this issue.


Only validate if string is not empty

[X] I have looked at the documentation here first?
[x] I have looked at the examples provided that may showcase my question here?

Package version eg. v9, v10:
v10
Issue, Question or Enhancement:
I try to validate a config struct using this package
type Config struct {
    ......
    IP string `validate:"ip"`
    Filename string `validate:"file"`
    ......
}

I want to validate that the file exists only if this field is set (so a non empty string).
Is there any way to accomplish this with this library? Currently it always tries to validate with file on the empty string which of course fails.
My usecase is you can specify an optional TLS public and private key in the config and I want to verify the file exists, if the user sets it (without writing some custom validators or using pointers everywhere)
PS: This would also be handy for various other checks like cidr or ip

Ok it’s „omitempty,file“


Document some 'eUTxO patterns' and practices

There are various patterns we could cover in the documentation to give people idea of what to do and what not to do with UTxO.

[ ] Enforcing uniqueness via UTxO consumption
[ ] Distributed set / maps
[ ] State thread tokens
[ ] Actor model
[ ] Double-satisfaction anti-pattern

Can I help you complete this task?


[BUG] Contributing docs link to non-existent part of the repository

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
It seems that the website is no longer available in site subdirectory of this repository but it's still linked in the contribution docs. I was hoping to send a PR for #2713 but I can't find any up-to-date link on how to do so.
Expected Behavior
Contributing guides should include details on how to contribute to the website and docs or the section should be removed
Steps To Reproduce

Go to https://altairgraphql.dev/docs/contributing#documentation-📖
Click on "repo" part of "The content of this site is stored on the repo as well,"

Environment
- OS: Any
- Browser: Any
- Platform: website
- Version: Any

Additional context
No response

Thanks for reporting!


uses kubeConfig from new config file for k8s minor version fact in aws

from issue #271
Will have to update for gke k8s minor version fact as well. Unclear if this should wait until k2recon merges back with master, or just pull it from a file and make changes right now. @coffeepac ?

Can one of the admins verify this patch?

ok to test

@guineveresaenger please file a ticket and make the changes to k2recon.  tags should include k2, k2recon and priority-p1

LGTM


How to setvalue for Autocomplete multiple?

[ ] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

Autocomplete with multiple can't change value
Expected Behavior 🤔

Autocomplete with multiple show value when value change
Steps to Reproduce 🕹

Steps:

Context 🔦

Your Environment 🌎

`npx @material-ui/envinfo`
  npx: installed 2 in 5.479s

  System:
    OS: Windows 10 10.0.19042
  Binaries:
    Node: 14.16.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.5 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 6.14.8 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: Not Found
    Edge: Spartan (44.19041.906.0), Chromium (90.0.818.46)
  npmPackages:
    @emotion/react:  11.1.5
    @material-ui/core: ^4.11.3 => 4.11.3
    @material-ui/icons: ^4.11.2 => 4.11.2
    @material-ui/lab: ^4.0.0-alpha.57 => 4.0.0-alpha.57
    @material-ui/pickers: ^3.3.10 => 3.3.10
    @material-ui/styles:  4.11.3
    @material-ui/system:  4.11.3
    @material-ui/types:  5.1.0
    @material-ui/utils:  4.11.2
    @types/react: ^17.0.0 => 17.0.3
    react: ^17.0.2 => 17.0.2
    react-dom: ^17.0.2 => 17.0.2
    typescript: ^4.1.2 => 4.2.4

I think this is a bug because I can setValue is normal without multipleline attribute


tcti_socket: Move simulator initialization code into the context init…

… function.
This is something that every application has to do to be sure that the
simulator has been initialized. Running these commands multiple time has
no negative effect (AFAIK). Might as well just run this each time we
initialize a connection to the simulator. Save everyone else the
headache.
Signed-off-by: Philip Tricca<EMAIL_ADDRESS>

resolved in 40e926ded61523c1a6c1011939c918a7b827f089


iOS Support

Fixes #107

Running on Godot on this branch, I encountered a few errors. Here are the details along with a video demonstrating them.
https://github.com/user-attachments/assets/4fc46219-0dbc-4e9d-9485-db1b6ad436b6
Here are the errors I got
// CHAT
E 0:00:18:0466   void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver): System.InvalidOperationException: JsonTypeInfo metadata for type 'ChatMessagePacket' was not provided by TypeInfoResolver of type 'JsonSourceGenContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
  <C++ Error>    System.InvalidOperationException
  <C++ Source>   :0 @ void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver)
  <Stack Trace>  :0 @ void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver)
                 :0 @ string System.Text.Json.JsonSerializer.Serialize(object, System.Type, System.Text.Json.Serialization.JsonSerializerContext)
                 PacketSerializer.cs:24 @ string PacketSerializer.ToJSON(object)
                 ChatMessagePacket.cs:14 @ string ChatMessagePacket.ToJSON()
                 Chat.cs:34 @ void Chat.SendMessage(string)
                 Chat.cs:63 @ void Chat.OnChatTextEditChanged()
                 Chat_ScriptMethods.generated.cs:79 @ bool Chat.InvokeGodotClassMethod(Godot.NativeInterop.godot_string_name&, Godot.NativeInterop.NativeVariantPtrArgs, Godot.NativeInterop.godot_variant&)
                 CSharpInstanceBridge.cs:24 @ Godot.NativeInterop.godot_bool Godot.Bridge.CSharpInstanceBridge.Call(nint, Godot.NativeInterop.godot_string_name*, Godot.NativeInterop.godot_variant**, int, Godot.NativeInterop.godot_variant_call_error*, Godot.NativeInterop.godot_variant*)

// GAME
E 0:00:05:0900   void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver): System.InvalidOperationException: JsonTypeInfo metadata for type 'GamePacketPlayer' was not provided by TypeInfoResolver of type 'JsonSourceGenContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
  <C++ Error>    System.InvalidOperationException
  <C++ Source>   :0 @ void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver)
  <Stack Trace>  :0 @ void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver)
                 :0 @ string System.Text.Json.JsonSerializer.Serialize(object, System.Type, System.Text.Json.Serialization.JsonSerializerContext)
                 PacketSerializer.cs:24 @ string PacketSerializer.ToJSON(object)
                 GamePacket.cs:16 @ GamePacket..ctor(GamePacketType, object)
                 Game.cs:205 @ Player Game.spawnPlayer(string, Godot.Vector2)
                 Game.cs:154 @ Player Game.spawnPlayerRandomLocation(string)
                 Game.cs:43 @ void Game+<>c__DisplayClass5_0.<_Ready>b__1(ushort)
                 WebRTCPeer_ScriptSignals.generated.cs:182 @ void WebRTCPeer.RaiseGodotClassSignalCallbacks(Godot.NativeInterop.godot_string_name&, Godot.NativeInterop.NativeVariantPtrArgs)
                 ScriptManagerBridge.cs:455 @ void Godot.Bridge.ScriptManagerBridge.RaiseEventSignal(nint, Godot.NativeInterop.godot_string_name*, Godot.NativeInterop.godot_variant**, int, Godot.NativeInterop.godot_bool*)

E 0:00:05:0937   void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver): System.InvalidOperationException: JsonTypeInfo metadata for type 'GamePacketPlayer' was not provided by TypeInfoResolver of type 'JsonSourceGenContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
  <C++ Error>    System.InvalidOperationException
  <C++ Source>   :0 @ void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver)
  <Stack Trace>  :0 @ void System.Text.Json.ThrowHelper.ThrowInvalidOperationException_NoMetadataForType(System.Type, System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver)
                 :0 @ string System.Text.Json.JsonSerializer.Serialize(object, System.Type, System.Text.Json.Serialization.JsonSerializerContext)
                 PacketSerializer.cs:24 @ string PacketSerializer.ToJSON(object)
                 GamePacket.cs:16 @ GamePacket..ctor(GamePacketType, object)
                 Game.cs:191 @ void Game.<spawnPlayer>b__17_1(string, Godot.Vector2)
                 Player_ScriptSignals.generated.cs:55 @ void Player.RaiseGodotClassSignalCallbacks(Godot.NativeInterop.godot_string_name&, Godot.NativeInterop.NativeVariantPtrArgs)
                 ScriptManagerBridge.cs:455 @ void Godot.Bridge.ScriptManagerBridge.RaiseEventSignal(nint, Godot.NativeInterop.godot_string_name*, Godot.NativeInterop.godot_variant**, int, Godot.NativeInterop.godot_bool*)

// RPC
E 0:00:11:0043   process_simplify_path: Duplicate remote cache ID 1 for peer 1
  <C++ Error>    Condition "peers_info[p_from].recv_nodes.has(id)" is true.
  <C++ Source>   modules/multiplayer/scene_cache_interface.cpp:110 @ process_simplify_path()

iOS Testing:
Unfortunately, due to the bug I mentioned in this comment https://github.com/SakulFlee/Godot-WebRTC-Match-Maker/issues/107#issuecomment-2529404787, I couldn’t properly generate the project for iOS. The build fails with a runtime error indicating that necessary files are not being found. The specific error during the build is:
MSB3030: Could not copy the file "/Users/[username]/.nuget/packages/microsoft.netcore.app.runtime.nativeaot.ios-arm64/9.0.0/runtimes/ios-arm64/native/icudt.dat" because it was not found.
/Users/[username]/.nuget/packages/godot.net.sdk/4.3.0/Sdk/iOSNativeAOT.targets(18,5)

Because of this, I had to revert the project to .NET 8.0. However, when running the project and testing the Ping Pong demo, it still doesn’t work as expected. The console showed the following errors:
[MatchMaker] Own UUID: e88089d1-58d7-4a0e-92cb-9a91102f8a89
[MatchMaker] Host UUID: e88089d1-58d7-4a0e-92cb-9a91102f8a89
[MatchMaker] Is Host: False
[WebRTC] ICE Server: stun.l.google.com:19302 (NO credentials)
[WebRTC] ICE Server: stun1.l.google.com:19302 (NO credentials)
[WebRTC] ICE Server: stun2.l.google.com:19302 (NO credentials)
[WebRTC] ICE Server: stun3.l.google.com:19302 (NO credentials)
[WebRTC] ICE Server: stun4.l.google.com:19302 (NO credentials)
ERROR: System.TypeInitializationException: A type initializer threw an exception. To determine which type, inspect the InnerException's StackTrace property.
 ---> System.TypeInitializationException: A type initializer threw an exception. To determine which type, inspect the InnerException's StackTrace property.
 ---> System.NotSupportedException: 'Org.BouncyCastle.Security.DigestUtilities+DigestAlgorithm[]' is missing native code or metadata. This can happen for code that is not compatible with trimming or AOT. Inspect and fix trimming and AOT related warnings that were generated when the app was published. For more information see https://aka.ms/nativeaot-compatibility
   at System.Reflection.Runtime.General.TypeUnifier.WithVerifiedTypeHandle(RuntimeArrayTypeInfo, RuntimeTypeInfo) + 0xb0
   at System.Reflection.Runtime.General.TypeUnifier.GetArrayTypeWithTypeHandle(RuntimeTypeInfo) + 0x34
   at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.MakeArrayType() + 0x18
   at System.Array.InternalCreate(RuntimeType, Int32, Int32*, Int32*) + 0x108
   at System.Array.CreateInstance(Type, Int32) + 0xa8
   at System.RuntimeType.GetEnumValues() + 0xdc
   at System.Enum.GetValues(Type) + 0x3c
   at Org.BouncyCastle.Utilities.Enums.GetEnumValues(Type) + 0x60
   at Org.BouncyCastle.Utilities.Enums.GetArbitraryValue(Type) + 0x24
   at Org.BouncyCastle.Security.DigestUtilities..cctor() + 0xbc
   at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext*) + 0x15c
   --- End of inner exception stack trace ---
   at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext*) + 0x260
   at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstructionReturnGCStaticBase(StaticClassConstructionContext*, Object) + 0x18
   at Org.BouncyCastle.Security.DigestUtilities.GetDigest(String) + 0x3c
   at Org.BouncyCastle.Security.SecureRandom.CreatePrng(String, Boolean) + 0x2c
   at Org.BouncyCastle.Security.SecureRandom..ctor() + 0x2c
   at Org.BouncyCastle.Math.BigInteger..cctor() + 0x145c
   at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext*) + 0x15c
   --- End of inner exception stack trace ---
   at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext*) + 0x260
   at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstructionReturnNonGCStaticBase(StaticClassConstructionContext*, IntPtr) + 0x18
   at Org.BouncyCastle.Math.BigInteger..ctor(Int32, Byte[]) + 0x30
   at Org.BouncyCastle.Asn1.Sec.SecNamedCurves.FromHex(String) + 0x64
   at Org.BouncyCastle.Asn1.Sec.SecNamedCurves.Secp256r1Holder.CreateParameters() + 0x34
   at Org.BouncyCastle.Asn1.X9.X9ECParametersHolder.get_Parameters() + 0x64
   at Org.BouncyCastle.Asn1.Sec.SecNamedCurves.GetByOid(DerObjectIdentifier) + 0xa8
   at Org.BouncyCastle.Asn1.Sec.SecNamedCurves.GetByName(String) + 0x58
   at Org.BouncyCastle.Asn1.X9.ECNamedCurveTable.GetByName(String) + 0x40
   at SIPSorcery.Net.DtlsUtils.CreateSelfSignedEcdsaCert(String, String) + 0x74
   at SIPSorcery.Net.DtlsUtils.CreateSelfSignedTlsCert(String, String, AsymmetricKeyParameter, Boolean) + 0x48
   at SIPSorcery.Net.DtlsUtils.CreateSelfSignedTlsCert(Boolean) + 0x34
   at SIPSorcery.Net.RTCPeerConnection..ctor(RTCConfiguration, Int32, PortRange, Boolean) + 0x414
   at WebRTCPeer.makePeer(RTCConfiguration config) + 0x84
   at WebRTCPeer.<_Ready>d__30.MoveNext() + 0x90
--- End of stack trace from previous location ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x30
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state) + 0x28
   at Godot.GodotSynchronizationContext.ExecutePendingContinuations() + 0x4c
   at Godot.GodotTaskScheduler.Activate() + 0x30
   at WebRTC Match Maker Godot Project!<BaseAddress>+0xb03b74
at: void Godot.NativeInterop.ExceptionUtils.LogException(System.Exception) (:0)

Running on Godot on this branch, I encountered a few errors. Here are the details along with a video demonstrating them.
Screen.Recording.2024-12-10.at.23.19.34.mp4
Here are the errors I got
(...)

Oh, my bad! I totally forgot to apply those changes also to the custom packages inside Demos.
PingPong should work just fine.
Will fix those in a sec :)

iOS Testing (...)

This will be a problem. Org.BouncyCastle doesn't support AoT at all, and it seems unclear if they ever will, given it's targeted towards older .NET versions and aims for backwards compatibility ... thus it's unlikely they will add support for something new like AoT.
SIPSorcery, the underlying WebRTC library, depends on it.
So it's nothing we can easily change.
I am not sure if I asked this, but is AoT required for iOS to work?
Is there any way to get it done without AoT?

Tested the demos and they seem to work well! Unfortunately, AOT is a must for iOS due to platform restrictions, which are mainly in place for security reasons

😁


⚠ Bofrost.fr has degraded performance

In 47920a1, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1866 ms

Resolved: Bofrost.fr performance has improved in 18ac60a after 8 minutes.


un_network does not exist anymore.

Description
In the course Introduction to Remote Data Science L4 slide 8/10, it is mentioned that there is a un_network. It is not very relevant that the cell crashes but just for consistency I am reporting it here. Maybe if the network won't exist anymore this cell can be omitted.
How to Reproduce

Go to 'L4_NodeMaintenance'
Run the cell
See error

Expected Behavior
No cell output
Screenshots

System Information

OS: macOS
OS Version: 12.1
Language Version: Python 3.9.12, syft 0.6.0
Package Manager Version: Conda 4.10.1

Additional Context
Not very important bug

@fcossio are you able to connect to the opengrid node for now?

I was able to connect yesterday. Although it took quite some time (13min) to "check that the 11 nodes were up"

Then I was able to list the datasets

Hi @fcossio yes we have a bug in our network code for timing out on domain search, its just about to get merged into 0.7.0. We will be redeploying 0.7.0 network nodes and updating the course to run with that version as well. In the mean time, if you want to experiment you can always launch a Network node on your own machine using hagrid launch network to docker:8082 and connect a domain to it to test out how it all works.


Feature: allow the card customization

Hello! :wave:
I'd like to contribute with this PR which allows the users to customize their card by:

Text color
Background color
Border color
Showing/hiding the border

All of these customizations are passed by the query parameters. So a request to
https://readme-quote-api.vercel.app/quote?textColor=800080&hideBorder=false&bgColor=ff0&borderColor=f00 should return the following card:

Thanks Man! Btw Great work ✌


Discord link update - third times a charm - Update README.md

Per last week's release meeting and decision to combine CML and TPI into one channel.  Using Elle's old link even though it's longer, because it has analytic history already.

@jendefig @casperdcl do we have here an agreement?

Pending @shcheklein feedback at https://github.com/iterative/cml.dev/pull/199 :)

resolved upstream :)

🎉


[4.0.0-rc-2] Can't create files. "Access denied or invalid endpoint"

Describe your problem
Every time I go to add content or change a global setting, I get the error message in the title. I am reasonably sure that permissions are not the issue, as the ownership of the directory is all set up properly, as is PHP-FPM, and I extracted the file using the web server user account.
Also, activating plugins seems to work just fine.
I mean... do the permissions look right?

Oh, and here's my Nginx .conf file:
server {
    listen 80;
    listen [::]:80;

    # virtual server name i.e. domain name #
    server_name bludit.server.test;

    # document root #
    root        /home/www/html; # << This root directory works fine because SELinux isn't installed in the LXD containers.

    # log files
    access_log  /var/log/nginx/www_access.log;
    error_log   /var/log/nginx/www_error.log;

    index       index.php index.html;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   <IP_ADDRESS>:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }

    location ^~ /bl-content/databases/ { deny all; }
    location ^~ /bl-content/workspaces/ { deny all; }
    location ^~ /bl-content/pages/ { deny all; }
    location ^~ /bl-kernel/*.php { deny all; }
}

Steps to reproduce the problem

Go to create new page or change global setting.
See error.
Sigh.

Bludit version
4.0.0 Release Candidate 2
Hosting or Webserver name
My own personal test server. Rocky Linux host, with Nginx, PHP-FPM and Bludit running in an Alpine Linux LXD container behind an Nginx reverse proxy.
PHP version
PHP 8
Installed PHP modules include:
php8-cli
php8-common
php8-curl
php8-dom
php8-fpm
php8-gd
php8-gd
php8-intl
php8-json
php8-mbstring
php8-mbstring
php8-mysql
php8-opcache
php8-pgsql
php8-session
php8-sqlite3
php8-xml
php8-zip

PHP logs
Basically only say this:
[01-Apr-2022 18:23:52] NOTICE: configuration file /etc/php8/php-fpm.conf test is successful

[01-Apr-2022 18:23:52] NOTICE: fpm is running, pid 4540
[01-Apr-2022 18:23:52] NOTICE: ready to handle connections

Setting the log level to debug honestly didn't help.
Nginx Error Logs (Sample)
2022/04/01 17:52:14 [error] 2633#2633: *332 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: <IP_ADDRESS>, server: bludit.server.test, request: "GET / HTTP/1.0", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "bludit.server.test"
2022/04/01 17:54:32 [error] 2633#2633: *359 FastCGI sent in stderr: "PHP message: [INFO] [4.0.0] [/api/plugins/pluginSearch] activatePlugin | Plugin installed" while reading response header from upstream, client: <IP_ADDRESS>, server: bludit.server.test, request: "POST /api/plugins/pluginSearch HTTP/1.0", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "bludit.server.test", referrer: "http://bludit.server.test/admin/plugins"
2022/04/01 17:54:35 [error] 2633#2633: *363 FastCGI sent in stderr: "PHP message: [INFO] [4.0.0] [/api/plugins/pluginSearch] configurePlugin | Plugin configured: pluginSearch" while reading response header from upstream, client: <IP_ADDRESS>, server: bludit.server.test, request: "PUT /api/plugins/pluginSearch HTTP/1.0", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "bludit.server.test", referrer: "http://bludit.server.test/admin/plugins-settings/pluginSearch"
2022/04/01 17:54:51 [error] 2633#2633: *371 FastCGI sent in stderr: "PHP message: [INFO] [4.0.0] [/api/plugins/pluginSearch] configurePlugin | Plugin configured: pluginSearch" while reading response header from upstream, client: <IP_ADDRESS>, server: bludit.server.test, request: "PUT /api/plugins/pluginSearch HTTP/1.0", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "bludit.server.test", referrer: "http://bludit.server.test/admin/plugins-settings/pluginSearch"

Nginx Access Logs (Sample)
<IP_ADDRESS> - - [01/Apr/2022:18:12:36 -0600] "GET /admin/content HTTP/1.0" 200 15318 "http://bludit.server.test/admin/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36"
<IP_ADDRESS> - - [01/Apr/2022:18:12:37 -0600] "GET /admin/editor HTTP/1.0" 200 51090 "http://bludit.server.test/admin/content" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36"
<IP_ADDRESS> - - [01/Apr/2022:18:12:37 -0600] "GET /bl-kernel/img/default.svg HTTP/1.0" 304 0 "http://bludit.server.test/admin/editor" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36"
<IP_ADDRESS> - - [01/Apr/2022:18:12:37 -0600] "POST /api/pages HTTP/1.0" 401 48 "http://bludit.server.test/admin/editor" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36"

Oh, and I can change themes and theme settings as well.

I have the same problem.
I have also already checked the permissions and set them cleanly again.
Is there a debug mode in Bludit that could output usable error messages?

I don't understand what the cause was, it seems to work now.
What I did:
I duplicated the folder with Cyberduck via FTP, deleted the original folder and duplicated the copy again to the original name. Now it works, although I can't tell any difference.
I want to suggest that Bludit can check the rights of its installation, so that anyone can solve such a problem without trying by chance.
@EzequielBruni Maybe you could try this and tell if it works?

@kuzmandi I can't speak to your experiences but... I'm closing out this issue as it appears to have been some weird, one-off crap. I woke up today, gave it another try... and it just worked. I hadn't updated any software, made any file or permissions changes since I tried it last. Nothing. It just decided to work.
I'm starting to wonder if my particular setup for Alpine Linux LXD containers, Nginx, and PHP-FPM might just be weird and messed up somehow... though I couldn't possibly tell you what's going on. I've updated my post on the forum as well.

Okay, now this is a little bit frustrating, because I'm still having this problem.

@kuzmandi
Oh, I updated the forum post, but not here. Ummm, I created an extra Alpine Linux container to test with, then I installed EVERY. SINGLE. PHP. MODULE. that happened to be in the repos. I downloaded the zip, extracted it, and it all worked flawlessly. Typemill too.
So I don't kow which PHP module is missing to make everyhting work right, but one of them is. This is uh... complicated, because downloading 4-500 MB of dependencies for every blog does seem like a bit much. Even so, give something like this a try just to see if your environment is having the same problem as mine.

I have installed Bludit on the web space of an Internet service provider. It would be helpful if I could see in a log what exactly the problem is to report it to the support (or to open an issue here). All I can say is, that other PHP code (Wordpress, DokuWiki, Bludit 3.x) worked without problems.