Fix: The code was messy and some parts were not working.

🛠 Fixes Issue: ""
👨💻 Changes proposed:
the code base was messy and a lot of things were showing error. Now it has been resolved.
📝 Additional Notes
Discord username
.tulsiyanaditya
📷 Screenshots
N/A
✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.
[x] I am a participant of GSSOC23

hey @adity2911 you have some conflicts in app.jsx, feed.jsx and videocard.jsx file, please resolve them.

@Fenrir-04 kindly review it now


Allow newline differences between expected answer and program output

In this pull request, I changed tester.py so that

The tester accepts newline code difference between answer and output.

This is accomplished by Python's universal newline feature which replaces all newline code (\n, \r, \r\n) into \n.

The tester accepts one newline difference at the end of answer/output.

This is accomplished by removing a newline at the end of answer and output.

@blue-jam Thanks for your contribution again. I totally agree on the statement about "\r\n". The difference should be considered.

The tester accepts one newline difference at the end of answer/output.
This is accomplished by removing a newline at the end of answer and output.
I'm kind of conservative about the current behavior which doesn't allow users to skip the last new line.
That's because I remember some of the AtCoder judges don't allow skipping, particularly if they are unofficial contests.

Although I know the real judges are tolerent of the difference, I'd like the tester to be strict with submitting because WA has a penalty.
What do you think?

It totally makes sense to be strict to a last newline if there exists a contest which strictly check a last newline. I didn't know there are such contests.
I'll revert the commit.

thx. merged


Dependencies with top level Kotlin functions indicated as unnecessary

Plugin version
1.0.0-rc01
Gradle version
7.3.3
(Optional) Android Gradle Plugin (AGP) version
7.1.1
Describe the bug
The plugin detects libraries exposing top-level Kotlin functions as unused, e.g. mockito-kotlin. E.g. when you use given from mockito-kotlin in your tests then it still indicates that mockito-kotlin is not necessary.
To Reproduce
Steps to reproduce the behavior:

Create a new Android Project.
Add a dependency on mockito-kotlin.
Use the given function from mockito-kotlin in the example unit test.
Run the dependency analysis. It will say that mockito-kotlin is unnecessary.

Expected behavior
mockito-kotlin shouldn't be indicated as unnecessary.

Thanks for the issue. There's a regression test for this behavior, so I'm a little confused what's going on, but I will check!

I cannot reproduce this with rc02. I have
testImplementation "org.mockito.kotlin:mockito-kotlin:4.0.0"

and
import org.junit.Test
import org.mockito.kotlin.given

class SampleTest {

  @Test fun test() {
    given {  }
  }
}

And when I run ./gradlew app:projectHealth, the only advice I see is
Transitively used dependencies that should be declared directly as indicated:
  testImplementation("org.mockito:mockito-core:4.0.0")

Am I missing something?

Sorry for the trouble. Apparently it does work for the application module, but fails for library modules. Create a new Android library module, add a mockito-kotlin dependency there and create your SampleTest. The plugin will indicate mockito-kotlin as unused.

Indeed the issue was specifically with Android library analysis of test source sets.


adds support for creating new workspaces

The following adds support for creating new workspaces via the following yaml configuration.
- task: TerraformCLI@0
  displayName: new workspace foo
  inputs:
    workingDirectory: $(terraform_templates_dir)
    command: workspace
    workspaceSubCommand: new
    workspaceName: foo

I'm running the Terraform CLI in the lastest Version (0.6.27) and I am not able to create a new workspace. When I am clicking on the workspace sub command button I am not able to select new. Only the select option is there. Is there anything what I am doing wrong or is there a quick fix to solve this?

@moritzxbe I would suggest creating an issue in the future to report something like this.  Once PR's are closed they are rarely revisited. While reviewing #216, I noticed this as well and will be fixed with #217.


Setup sbt-ci-release

@milessabin I think all that is left should be to setup GPG:
https://github.com/olafurpg/sbt-ci-release#gpg

Will need to follow up with a downgrade to openjdk8.

It looks like this is only publishing for 2.11 ...


snmpset for gauge32 type on snmp v3 ?

Hi.
I'm trying to inject Gauge32 data in MIB using snmpget action of snmpsim but I don't know if it is possible, or what's the type I should use.
I've read it is performed used unsigned type (u) but in v3 I think it is not possible (at least it does not work).
How should I proceed.
Thanks a lot,
    Carlos.

Are you asking how to simulate Gauge32 SNMP data type? That should work with all SNMP versions.

You are right, my fault is I was defining it with incorrect type value (65 instead of 66) in snmprec.
Thanks a lot!


[-] MO: 1-click upgrade fails miserably on sockets

1-click upgrade will cause a mysql error and will fail miserably to even start any upgrades, if something else than host:port is being used in settings.inc.php. However, other strings are also valid connection strings, as example: localhost:/var/run/mysql/mysqld.sock. This fix supports them.

Hi,
Thank you for your PR. What is strange here is that it should not work miserably neither in the solution.
https://github.com/PrestaShop/PrestaShop/blob/1.6/classes/db/DbMySQLi.php
Can you please add line feeds on if statements and replacing the spaces by a tabulation on line 37.
Thank you in advance. Regards

Sorry, that happens I guess when copy-pasting from the console instead of using the IDE and being up all night :)
What do you mean it should not work neither? Not sure I understand.

Hi,
Don't be, that's just a detail. How can you use localhost:/var/run/mysql/mysqld.sock with the core DbMySQLi.php if it is the same code ?
Regards

Ok this is the last time I'm using Github for editing... what a mess! :D

Well, localhost:/path/to/socket has been working with the core perfectly. Just "/path/to/socket" isn't however. I think the core used DbPDO though and not DbMysqli on the server I had that issue.

Hi,
No don't close it, i'll try to check that and core too.
Rgerads

I wasn't aware I did close that? Oh, maybe it was the one syncing I did that delete and recreated the patch done it automatically. Don't worry, I will resubmit, I was checking anyway the core and wanted to change both.


Fixing Issue 63

Fixing Issue #63

Hi @anubmat, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Anubha Mathur). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

Please add tests to the PR. In the tests consider the following cases:

< and > used as "larger than" and "smaller than" signs
< and > used as opening and closing brackets for generic types

There was a discussion about these two cases before at the Sublime repo. And Bill has provided some test cases in his comment.

Can you add a test with type literal syntax like so?
^type ^^Foo<^^T> = ^{
    ^foo: ^T,
    ^bar: ^number
^}

:+1:


Added pathplanner & misc util functions docs

No need for syntax highlighting in function name subheadings

After that will Aprove @Superbro525Alt

doing it now

done

i am finished


SSL Error  with pusher and reverb

Reverb Version
beta4
Laravel Version
11.0.7
PHP Version
8.3.4 ubuntu 22.04
Description
I Have a bug :
cURL error 56: OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0 (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
Error in : pusher-php-server/src/Pusher.php(776) post ok but error trigered !
PHP curl :
Libcurl : 7.81.0
OpenSSL : 3.0.2
I see similar problem , tried to changer curl config but nothing work.
I connect in websocket with wss + letsencrypt cert, pusherphpserver connect on https.
If my job $tries=3 it push the event 3 times ! So have to stay with 1 try, because the event is pushed, but the Job fail.
Tried a workaround : use http for pusher with <IP_ADDRESS> and wss + hostname for websocket.
Is is possible to have a wss server + http ?
Or any defaut config to change to fix this ssl problem ?
No problem with soketi and can't upgrade curl on ubuntu 22 LTS.
Steps To Reproduce
Use ubuntu server with letsencrypt cert + php 8.3 ondrej ppa + apache + redis + horizon
Error on every broadcast request

Hey there,
Can you first please try one of the support channels below? If you can actually identify this as a bug, feel free to open up a new issue with a link to the original one and we'll gladly help you out.

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

Thanks!

Also try looking at some of the other issues on this repo.

not really same issue, tried many things and many support channel, nothing worked, it's a but with reverb but can be related to libcurl and openssl, maybe can be fixed with another default config.


Correct the method name MediaLibrayServiceExtensions

This should fix #7679

@chanond-w,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla2.dotnetfoundation.org.
It will cover your contributions to all .NET Foundation-managed open source projects.
Thanks,
.NET Foundation Pull Request Bot

@chanond-w, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, .NET Foundation Pull Request Bot


FFVIII Original Copy Not Booting With FreePSXBoot Memory Card in Slot 2

I happened upon an odd issue which I have not experienced with any other game. With version 2.0, I tend to keep my FreePSXBoot memory card plugged into slot 2 at all times. However, whenever I try to boot up an original copy of FFVIII, the game boots to a black screen. When I remove the FreePSXBoot memory card, the game boots up with no problems at all.

I just tested a retail disc of FFVIII with 6a0e22a0 on a SCPH-101 and 8d8cb7e4 on a SCPH-5501. No issues booting the game.

I was just going to post something about this as well, so I'll tag onto this one.  Haven't tested a bunch of games yet, but Crash Bandicoot 1 and Spyro the Dragon 1 exhibit the same behavior; won't boot with the Memory Card in Slot 2 but boot just fine without the Memory Card inserted.

@ParagonAlex @whitezombie2000 @SephirothFan I believe I have found the source of the problem. Some games can't handle memory cards returning unexpected values (which is what the freepsxboot BIOS patch simulates) and hang.
I have prepared a new patch which instead makes it look like a timeout. It should behave exactly as if no card was inserted.
Here's already an image for  SCPH-5501 (remember to unzip it first, Github won't let me attach a mcd file directly).
freepsxboot-unirom-fastload-20220318-bios-3.0-1996-11-18-A-8d8cb7e4-slot2.zip
.

I tried Tomb Raider II on a NTSC SCPH-5501 with the file you provided, in slot 2 on a MemCard PRO, it still hangs.

@ParagonAlex @whitezombie2000 @SephirothFan I believe I have found the source of the problem. Some games can't handle memory cards returning unexpected values (which is what the freepsxboot BIOS patch simulates) and hang.
I have prepared a new patch which instead makes it look like a timeout. It should behave exactly as if no card was inserted.
Here's already an image for SCPH-5501 (remember to unzip it first, Github won't let me attach a mcd file directly).
freepsxboot-unirom-fastload-20220318-bios-3.0-1996-11-18-A-8d8cb7e4-slot2.zip .

Awesome!  I will load this onto my Memory Card and test it soon!  I also have a SCPH-7001 that I can test as well for more data points if you want.

Awesome! I will load this onto my Memory Card and test it soon! I also have a SCPH-7001 that I can test as well for more data points if you want.

Sure, here's the 7001 version.
freepsxboot-unirom-fastload-20220318-bios-4.1-1997-12-16-A-502224b6-slot2.zip

I tried Tomb Raider II and Crash Team Racing on a NTSC SCPH-5501 with the file you provided, in slot 2 on a MemCard PRO, it still hangs.

This seems weird, I have tried them on my 9002 and none of them hangs. Although I used a normal memory card, but it shouldn't change anything. Could you detail your exact setup and the steps to reproduce the issue?

PS1 model NTSC SCPH-5501, put in the memory card in slot 2, put the CD in the PS1, close the LID, hit the power button, games hang, just like in the second post. What other information would you like?

PS1 model NTSC SCPH-5501, put in the memory card in slot 2, put the CD in the PS1, close the LID, hit the power button, games hang, just like in the second post. What other information would you like?

So you are running the game with the freepsxboot memcard in slot 2, but without triggering the exploit first? Then that's expected.
If you don't trigger the exploit by entering the memory card manager of the PS1 BIOS, then most games will likely hang or crash when they read the memory card, since the exploit will trigger at that moment but in different conditions.
So if you want to keep the memory card in slot 2, you'll need to trigger the exploit even with original games to avoid issues.

I believe that is why the OP opened this issue to begin with. They insert the card in slot 2, launch a retail disc, then some games hang. If that is the expected behavior then it should closed.

Ok, I will close it then, feedback is still welcome for the new images on games that used to hang after the exploit was triggered on slot 2.


Folding with higher folding factors than 2

As mentioned in #564, a higher folding factor can lead to a reduction in the number of cycles if combined with special instructions to offload all or most of the heavy parts during FRI verification. This issue aims at:

Finding the most suitable formulas to do folding for factors 4 and 8 with regards to Miden assembly.
Based on the above, decide on the parameter configuration that allows us to achieve the biggest savings for the smallest number, if any, of new instructions.
The above points should take into account the procedure for computing the folded position in the exponent from the value in the previous layer. Integrating this procedure into a potential folding instruction(s) might make sense.

Introduction
During the FRI commit phase, the prover (in the interactive version) of the protocol computes a sequence of polynomials in response to a sequence of random challenges provided by the verifier. After each computation done by the prover, the latter gives oracle access to the evaluation of the computed polynomial over a domain that is larger by a given factor (called the blow-up factor) than the degree of the polynomial.
More precisely, the protocol starts with the evaluations over a certain domain $D_0$ of a polynomial $P_0(X)$ that the prover claims to be of degree $deg(P_0) < \delta_0$. In each round of the commit phase, the prover does the following:

Provide oracle access to the evaluation of the polynomial $P_{i-1}(X)$ of degree $deg(P_{i-1})< \delta_{i-1}$ over an evaluation domain $D_{i-1}$ of size $\delta_{i-1}/\rho$ where $\rho$ is what is called the rate.
Receive a random challenge $\alpha$ from the verifier.
Decompose the previous polynomial $P_{i-1}(X)$ of degree $deg(P_{i-1})< \delta_{i-1}$ into the following decomposition $$P_{i-1}(X) =  X^0 P_{i-1}^{0}(X^{r_i}) + X^1 P_{i-1}^{1}(X^{r_i}) \cdots + X^{r_i -1}P_{i-1}^{r_i - 1}(X^{r_i})$$ where $r_i$ is the folding factor for the the current step and $deg(P_{i-1}^j) < \frac{\delta_{i-1}}{r_i} := \delta_{i}$.
Compute the following polynomial $$P_{i}(Y) =  \alpha^0 P_{i-1}^{0}(Y) + \alpha^1 P_{i-1}^{1}(Y) \cdots + \alpha^{r_i -1}P_{i-1}^{r_i - 1}(Y)$$ which is of degree $\delta_i$ given the previous point.

In fact the above steps are compressed, in practice, such that the prover computes, given $\alpha$, the evaluations of $P_i$ on $D_i$ from those of $P_{i-1}$ on $D_{i-1}$ directly.
The evaluation domain $D_0$ is chosen to be a subgroup of the multiplicative subgroup of the base field. The subsequent domains are generated via the recursive relationship $$D_i :=  \{ x^{r_i} : x\in D_{i-1} \}$$
For each of the maps $(\cdot)^{r_i}: D_{i-1} \to D_{i}$ we can define its kernel which is a cyclic group generated by a primitive $r_i$-th root of unity, call it $\tau$.
This issue is concerned with a verifier who, given $P_{i}(y),P_{i-1}(x_0),\cdots,P_{i-1}(x_{r_i-1})$ would like to ensure that the prover performed the folding step correctly. The naive approach is straightforward, solve the linear system of $r_i$ equations in $r_i$ variables, compute the linear combination using the challenge $\alpha$ and then accept if the values agree. In what follows, we investigate better methods that use the inherent algebraic structure of the folded polynomials.
Recursive approach
The $fold_2$ function:
To make the explanation clearer, let's consider the case where the folding factor is fixed and is equal to $2$. In this case, the kernel is just $\{1,\tau\}$ where $\tau = -1$ modulo $M$ the size of the base field. In this case, we have the following system of equations:
$$
\begin{cases}
P_{i-1}(x) &=  P_{i-1}^{0}(x^{2}) + x P_{i-1}^{1}(x^{2}) \
P_{i-1}(x\tau) &=  P_{i-1}^{0}(x^{2}) + x\tau P_{i-1}^{1}(x^{2})
\end{cases}
$$
Thus we can write it also in the following way
$$
\begin{cases}
P_{i-1}(x) &=  P_{i-1}^{0}(x^{2}) + x P_{i-1}^{1}(x^{2}) \
P_{i-1}(x\tau) &=  P_{i-1}^{0}(x^{2}) - x P_{i-1}^{1}(x^{2})
\end{cases}
$$
This gives
$$
\begin{cases}
P_{i-1}^{0}(x^{2}) &=  (P_{i-1}(x) + P_{i-1}(x\tau))/2 \
P_{i-1}^{1}(x^{2})  &=  (P_{i-1}(x) - P_{i-1}(x\tau))/2x
\end{cases}
$$
and our assertion becomes
$$P_{i}(y) = \frac{1}{2} (P_{i-1}(x) + P_{i-1}(x\tau) + \frac{\alpha}{x} (P_{i-1}(x) - P_{i-1}(x\tau)))$$
The above is in fact nothing but the $2$-point iFFT of $(P_{i-1}(x), P_{i-1}(x\tau))$, evaluated at $\frac{\alpha}{x}$. We can define this combined operation as:
$$ fold_2(\frac{\alpha}{x}; P_{i-1}(x), P_{i-1}(x\tau)) := \frac{1}{2} (P_{i-1}(x) + P_{i-1}(x\tau) + \frac{\alpha}{x} (P_{i-1}(x) - P_{i-1}(x\tau)))$$
Formula for $fold_4$
In the case of a folding factor equal to $4$, we have the following system of equations:
$$
\begin{cases}
P_{i-1}(x) &=  P_{i-1}^{0}(x^{4}) + x P_{i-1}^{1}(x^{4}) + x^2 P_{i-1}^{2}(x^{4}) + x^3 P_{i-1}^{3}(x^{4}) \
P_{i-1}(x\tau) &=  P_{i-1}^{0}(x^{4}) + x\tau P_{i-1}^{1}(x^{4}) + x^2\tau^2 P_{i-1}^{2}(x^{4}) + x^3\tau^3 P_{i-1}^{3}(x^{4}) \
P_{i-1}(x\tau^2) &=  P_{i-1}^{0}(x^{4}) + x\tau^2 P_{i-1}^{1}(x^{4}) + x^2\tau^4 P_{i-1}^{2}(x^{4}) + x^3\tau^6 P_{i-1}^{3}(x^{4}) \
P_{i-1}(x\tau^3) &=  P_{i-1}^{0}(x^{4}) + x\tau^3 P_{i-1}^{1}(x^{4}) + x^2\tau^6 P_{i-1}^{2}(x^{4}) + x^3\tau^9 P_{i-1}^{3}(x^{4})
\end{cases}
$$
Again, this gives us that $P_i(y)$ is nothing but the iFFT of $(P_{i-1}(x), P_{i-1}(x\tau), P_{i-1}(x\tau^2), P_{i-1}(x\tau^3))$ evaluated at $\frac{\alpha}{x}$. Using the fact that the $4$-points iFFT can be constructed from $2\times 2$-points iFFT, we can combine the iFFT and the evaluation, using the $fold_2$ procedure to get:
$$
\begin{align*}
P_i(y) &:=  fold_4(\frac{\alpha}{x}; P_{i-1}(x), P_{i-1}(x\tau), P_{i-1}(x\tau^2), P_{i-1}(x\tau^3)) \
&=  fold_2(\frac{\alpha^2}{x^2}; v_0, v_1)
\end{align*}
$$
where
$$
\begin{align*}
v_0 &:= fold_2(\frac{\alpha}{x};P_{i-1}(x), P_{i-1}(x\tau^2)) \
v_1 &:= fold_2(\frac{\alpha}{x}\tau;P_{i-1}(x\tau), P_{i-1}(x\tau^3))
\end{align*}
$$
Note  the bit-reversed ordering of $(P_{i-1}(x), P_{i-1}(x\tau), P_{i-1}(x\tau^2), P_{i-1}(x\tau^3))$.
Formula for $fold_8$
Similarly we get, for $(u_0,\cdots,u_7)$ the bit-reversed ordering of $(P_{i-1}(x),\cdots,P_{i-1}(x\tau^7))$, that:
$$
\begin{align*}
P_i(y) &:=  fold_8(\frac{\alpha}{x}; P_{i-1}(x),\cdots, P_{i-1}(x\tau^7)) \
&=  fold_2(\frac{\alpha^4}{x^4}; v_0, v_1)
\end{align*}
$$
where
$$
\begin{align*}
v_0 &:= fold_4(\frac{\alpha}{x};v_0,\cdots,v_3) \
v_1 &:= fold_4(\frac{\alpha}{x}\tau;v_4,\cdots,v_7)
\end{align*}
$$
Formula for $fold_{16}$
for $(u_0,\cdots,u_{15})$ the bit-reversed ordering of $(P_{i-1}(x),\cdots,P_{i-1}(x\tau^{15}))$, that:
$$
\begin{align*}
P_i(y) &:=  fold_{16}(\frac{\alpha}{x}; P_{i-1}(x),\cdots, P_{i-1}(x\tau^{16})) \
&=  fold_2(\frac{\alpha^8}{x^8}; v_0, v_1)
\end{align*}
$$
where
$$
\begin{align*}
v_0 &:= fold_8(\frac{\alpha}{x};v_0,\cdots,v_7) \
v_1 &:= fold_8(\frac{\alpha}{x}\tau;v_8,\cdots,v_{15})
\end{align*}
$$
The direct approach
Note that the previous method combines in an efficient way the two operations of:

Interpolation over the set $(P_{i-1}(x),\cdots,P_{i-1}(x\tau^{r_i -1}))$.
Evaluation of the resulting polynomial at $\frac{\alpha}{x}$.

So the ultimate goal is to evaluate a polynomial at a point, given only its evaluation over a given set of points. The barycentric formula is the appropriate tool to achieve this goal.
More precisely, for a polynomial given by its evaluations  $(y_0,\cdots,y_{r -1}))$ over the interpolation set $(x,x\tau,\cdots,x\tau^{r-1})$, its evaluation at a point $\frac{\alpha}{x}$ outside of its interpolation set, is given by:
$$\frac{1}{r}\left(\left(\frac{\alpha}{x}\right)^r - 1 \right)\sum\limits_{i=0}^{r -1}\frac{y_j\tau^j}{\frac{\alpha}{x}-\tau^j}$$
or equivalently
$$\frac{1}{r}\left(\left(\frac{\alpha}{x}\right)^r - 1 \right)\sum\limits_{i=0}^{r -1}\frac{y_j}{\frac{\alpha}{x\tau^j}-1}$$
Discussion of the costs
For the recursive approach, the approximate cost estimate is $$(r-1)*(2A_e + M_e) + (log_2(r) - 1)*M_e + (\frac{r}{2} - 1)*M$$ for a constant folding factor $r$ where

$A_e$ and $M_e$ are the costs of an addition and a multiplication in the extension field, respectively.
$M$ is the cost of a multiplication in the base field.

For the direct approach, assuming non-determinism is used for efficient inversion, we have the approximate cost of $$r*(2M + A + M_e) + (log_2(r) - 1)*M_e + M + A$$
where, in addition to the notation from before, $A$ is an addition in the base field. The companion Rust code illustrates how the above strategies are implemented.
A new Miden VM instruction
In the case of Miden, the two above approaches are very close from a cost perspective, in theory. In practice, the recursive approach has the advantage that an instruction to do $fold_4$, for example, can be introduced in the VM and hence make it the most competitive approach.
In the case of extension degree $2$, the inputs to the $fold_4$ Miden instruction would be $4$ extension field elements i.e. 8 base field elements, and the evaluation point in the extension field $\frac{\alpha}{x}$ which is $2$ base field elements. This means that the inputs on the stack to the $fold_4$ instruction are going to be the top $10$ stack elements.
In the case of extension degree $3$, we have $5$ extension field elements using the same reasoning as above. This means that, in the case of extension degree $3$, the top $15$ elements are going to be the input to the $fold_4$ instruction.
We can do still better. Assume that the current position index is $p$ and current domain size is $d$ and $poe = g^{p}$ where g is the current domain generator (assuming the offset is the identity element). Let $(q,res) := (p/(d/r), p \% (d/r))$ where the division is integer division.
In the current implementation we see that the verify_query_layer procedure does essentially two things:

Get the Merkle leaf for the folded position and unhash it to get the values $y_0,...,y_{r-1}$ in the extension field.
Check that the previous evaluation $e_{old}$ is equal to $y_i$ where $i = q$.
Compute the new evaluation $e_{new}$ using $y_0,...,y_r$, $\alpha$, $poe$ and $res$. $res$ is used to compute $x$, which is used to compute the evaluation point for the folding procedure, $\frac{\alpha}{x}$, as $x = poe/\tau^{res}$

This means that we can have an instruction that takes $(y_0,...,y_{r-1}, res, e_{old}, poe, \alpha)$ and produces $(e_{new}, poe^r)$ so as to include the computation done by the next_pos_exp into the folding instruction.
Thus in Miden assembly we would have, in the case of folding factor $2$, something like
# Input:  [d_size, p, C, t_depth, e1, e0, poe, a1, a0, ...]
# Output: [t_depth-1, e1_new, e0_new, p%d_size/2, d_size/2, poe^2, ...]
export.verify_query_layer.1
    exec.check_hash         #[v3, v2, v1, v0, ?, e1_old, e0_old, poe, a1, a0, p%d_size/2, d_size/2, t_depth,...]
    exec.fold_2             #[e1_new, e0_new, poe^2, p%d_size/2, d_size/2, t_depth,...]
    exec.post_ops           #[t_depth-1, e1_new, e0_new, p%d_size/2, d_size/2, poe^2, ...]
end

and in the case of folding factor equal to $4$
# Input:  [d_size, p, C, t_depth, e1_old, e0_old, poe, a1, a0, ...]
# Output: [t_depth-1, e1_new, e0_new, p%d_size/4, d_size/4, poe^4, ...]
export.verify_query_layer.1
    exec.check_hash         #[v7, v6, v5, v4, v3, v2, v1, v0, ?, e1_old, e0_old, poe, a1, a0, p%d_size/4, d_size/4, t_depth,...]
    exec.fold_4             #[e1_new, e0_new, poe^4, p%d_size/4, d_size/4, t_depth,...]
    exec.post_ops           #[t_depth-1, e1_new, e0_new, p%d_size/4, d_size/4, poe^4, ...]
end

where the comment to the right of the executed procedure represents its resulting stack configuration and where check_hash and post_ops are two procedures introduced in order to improve readability.
Thus the $fold_4$ VM instruction will have as input the first $14$ elements of the stack and will output $3$ elements at the top of the stack, in the case of extension degree 2.

This is awesome! And the code is super helpful.
As a next step, I think we need to understand a bit deeper how we will implement fold4 procedure in a single VM instruction. I'm specifically thinking about whether we can reduce the degree of the instruction to only 2.
Looking at how we perform folding here, I see that we have the following operations:

let evaluation_point = alpha.mul_base(x.inv()) - here the degree of evaluation_point would be 2.
evaluation_point.mul_base(tau.inv()) - here, the degree of the resulting expression would be 2 because tau is a constant (correct?).
evaluation_point * evaluation_point - here the degree of resulting expression would be 4.

Thus, we'd exceed our desired degree 2 as soon as we use any of these in an expression. A solution would be to use helper registers (we have 6 of them available) to put results of these expressions there. For example:

Helper registers h0 and h1 would hold the result of alpha.mul_base(x.inv()).
Helper registers h2 and h3 would hold the result of evaluation_point * evaluation_point.
It doesn't seem like we need to do anything for evaluation_point.mul_base(tau.inv()) because we can values in h0 and h1 to compute it on they fly without increasing the degree.

Next, fold2 procedure requires a multiplication and thus also raises the degree of the result. For example, if all inputs are of degree 1, the output would be of degree 2. Thus, we again need to apply degree reduction technique to values tepm0 and temp1 so that they are of degree 1 by the time we call last fold2. This would require 4 more registers to hold intermediate values - we can use some of stack registers for that.
Lastly, we need to compute inverse of x. We can do this non-deterministically, but this also requires one helper register. We can use h4 for this.
Transition diagram just for this operation (not including other things like poe computation) could look like this:

Where:

d0 ... d7 encode 4 points in the original domain.
a0, a1 is the $\alpha$.
ev0, ev1 is the result of alpha.mul_base(x.inv()).
es0, es1 is the result of evaluation_point * evaluation_point computed using values in ev0 and ev1.
t0, t1 encodes the result off the first invocation of fold2 (basically, the value of tmp0).
s0, s1 encodes the result off the second invocation of fold2 (basically, the value of tmp1).
en0, e1 encodes a point in the folded domain.

Does this sound about right?

...because tau is a constant (correct?).

That is indeed the case.

Does this sound about right?

Yes, it makes a lot of sense and I don't see any flaws in the reasoning above. Do you think that there is a possibility of including the poe related computations as well?

Do you think that there is a possibility of including the poe related computations as well?

I think so. This was just my attempt to start with a single thing. Now we can add poe to this.

The next thing I'm thinking about is how to get x onto the stack. The formula for computing x is here. I think we should be able to roll this into the FRIFOLD4 operation.
First, we need to compute current_pos / trarget_domain_size (and we actually need to perform similar computations here and here). Since both values are guaranteed to be 32-bit integers, we can use u32unchecked_divmod instruction:
# stack: [t_domain_size, current_pos]
u32unchecked_divmod
# stack: [f_pos, d_seg]

Where d_seg is the "domain segment" computed as current_pos / target_domain_size. Its value can be 0, 1, 2, or 3. f_pos is the value of the folded position.
The next question is how to get the required power of tau onto the stack. We can do that using exp.u2 instruction, that that'll probably take 10 - 12 cycles. Another approach is allow the prover to provide binary decomposition of d_seg value non-deterministically, then then use these values in the FRIFOLD4 operation.
Let's call first and second bits of d_seg ds0 and ds1respectively. Then, a fullFRIFOLD4` operation could look like so:

Most of the things above are either self-explanatory or have been covered previously in this thread, but a couple deserve additional explanation.

The reason why we compute poe^2 is to reduce degree for poe^4 computation. Basically, we use one of the registers in the next state of the stack to hold the intermediate value of poe^2 and thus, reduce the degree of related transition constraints to 2.
As mentioned above, ds0 and ds1 is the binary decomposition of d_seg provided by the prover non-deterministically. The constraints we'll need to impose to make sure this is correct are:

Both ds0 and ds1 are binary.
ds0 + 2 * ds1 = d_seg

We can use ds0 and ds1 to compute the required power of tau as follows: f_tau = (1-ds0) * (1-ds1) + tau * ds0 * (1-ds1) + tau^2 * (1-ds0) * ds1 + tau^3 * ds0 * ds1. Since tau is a constraint for this computation would be of degree 2.
We can use f_tau to compute x as x = pow / f_tau

After FRIFOLD4 operation is done, we don't really care about values one the stack beyond poe^4. So, these could be treated as "garbage" by the subsequent operation.

This is great! Also, the idea of using the remaining "output slots" to reduce the degree is cool.

I think the last piece left here is figuring out how to handle checking of previous evaluation efficiently (i.e., these lines). We have all query values on the stack (v0, ..., v7), but selecting the right one based on the value of d_seg will take quite a few cycles. Thus, it would be good to do this check as a part of FRIFOLD4 as well.
One issue is that in my previous proposal we don't have the value of previous evaluation on the stack. Another issue is that to compute selector flags for d_seg we need to multiply ds0 and ds1 together, and this is already a degree 2 constraint (and thus, we can't use it to select non-constant values). Here is another proposal which should address these.
Stack transition for this new proposal could look like so:

In the above pe0 and pe1encode the value of previous evaluation. Also, we decomposed_seginto 4 mutually exclusive binary flags:ds0, ..., ds3`. These flags are set as follows:

ds0 = 1 when d_seg = 0.
ds1 = 1 when d_seg = 1.
ds2 = 1 when d_seg = 2.
ds3 = 1 when d_seg = 3.

Otherwise, these flags equal to 0.
Then, to check that previous evaluation is equal to the correct query value, we can enforce the following constraints:
(v0 - pe0) * ds0 + (v2 - pe0) * ds1 + (v4 - pe0) * ds2 + (v6 - pe0) * ds3 = 0
(v1 - pe1) * ds0 + (v3 - pe1) * ds1 + (v5 - pe1) * ds2 + (v7 - pe1) * ds3 = 0

We'll also need to re-write how f_tau is computed. But the new formula is even simpler:
f_tau = ds0 + tau * ds1 + tau^2 * ds2 + tau^3 * ds3

And enforcing that d_seg and ds values are consistent, would need to be done like so:
d_seg = (ds0 + ds1 * 2 + ds2 * 3 + ds3 * 4) - 1

One last thing to note: I removed d_size and t_depth from the stack. As far as I can tell, they are not required for the FRIFOLD4 operation (but we do need them earlier). My thinking here is that we can pre-compute them for each layer and store them next to $\alpha$ values. Specifically, for each layer, we'd store a word in memory which could look something like this: [d_size, t_depth, a0, a1]. Then, when we start processing a new layer, we can read this word from memory and we'll have all the values that we need.
@Al-Kindi-0 - am I missing anything here?

Looks great to me!
The introduction of the exclusive flag indicating the segment simplifies things a lot.

One last thing to note: I removed d_size and t_depth from the stack. As far as I can tell, they are not required for the FRIFOLD4 operation (but we do need them earlier). My thinking here is that we can pre-compute them for each layer and store them next to values. Specifically, for each layer, we'd store a word in memory which could look something like this: [d_size, t_depth, a0, a1]. Then, when we start processing a new layer, we can read this word from memory and we'll have all the values that we need.

It seems to me that even with the costs of precomputations and memory management required to compute d_size and t_depth, comparing evaluations as part of FRIFOLD4 will be cheaper. So I think this solution makes sense.

Now that we have a good idea of how FRIFOLD4 should look like, it would be great to decide on the best configuration of its input and output stack-states. To do so, we can summarize the context around FRIFOLD4 in the following incomplete pseudo-code:
# Input: [num_iter, pos, poe, pe1, pe0, ...] where pos is the query, poe is offset * initial_domain_generator^pos,
# pe1 and pe0 are the evaluations.
# Output: [...] the final evaluations i.e. remainder[f_pos] where f_pos is pos % remainder_size
proc.verify_query
    push.1
    while.true
        exec.verify_query_layer
        dup
        neq.0
    end
    exec.verify_remainder
end

# Input: [num_iter, pos, poe, pe1, pe0, ...]

    # TODO: Apply FRIFOLD4 and some post-processing
    # [num_iter - 1, f_pos, poe^4, ne1, ne0, ...]
end

verify_remainder fetches the remainder[f_pos] and asserts that it is equal to (ne0, ne1).
It seems that it might make sense to include the number of iterations in FRIFOLD4 as there is still one free slot available, is this accurate @bobbinth ? There is also the possibility that there is a cleaner way to do the above with better reference management.

Looks great! Thank you! A few comments:
I'm imagining the memory to be laid out like this:

Where r0, ..., r2 represent a root of a Merkle tree for a given layer.
In this case, instead of passing num_iter we could just pass layer_ref which would be pointer to the $n$-th layer. And then we just need to increment the pointer by $2$ in every iteration.
Next, I don't think we can use loc_loadw instructions here because for these instructions the index must be specified statically. Instead, we can use mem_loadw which could read the layer pointer off the top of the stack.
Lastly, it might be possible to get rid of at least one push.0.0.0.. We have a lot of slots with "garbage" values after FRIFOLD4 and maybe we can just overwrite these values when loading from memory. Figuring out how to do this cleanly might be more complicated than it is worth though.

In case we do away with num_iter, how do we keep track of the layer we are currently at?
One solution is to test whether poe^4 is the 64th primitive root of unity, but maybe there's a better way.

In case we do away with num_iter, how do we keep track of the layer we are currently at?

We need this only in verify_query for loop exit condition, right? If so, we could have another variable there something like last_layer_ref and then instead of doing neq.0 we'd compare last_layer_ref with the layer_ref currently on the top of the stack. This will probably add 5 extra cycles or so to each iteration of the loop, but it might be more efficient than trying to compute memory offsets based on num_iter.

To summarize the discussion so far, this is what we have:

Input stack + helper registers:
[v7, v6, v5, v4, v3, v2, v1, v0, a1, a0, poe, f_pos, d_seg, pe1, pe0, ...] + [ev0, ev1, es0, es1, x, x_inv]

Output stack + helper registers:
[en1, en0, f_pos, poe^4, poe^2, t1, t0, s1, s0, ds3, ds2, ds1, ds0, f_tau, ...] + [...]

Folding formulas:

fold2(a, b, e) := ((a + b) + (a - b) * e)/2 or (r0, r1) == fold2(a, b, e) if and only if (2*r0, 2*r1) = a + b + e* (a - b)

(t0, t1) := fold2(qv0, qv2, ev) where qv0 := (v0, v1); qv2 := (v4, v5); ev:= (ev0, ev1)

(s0, s1) := fold2(qv1, qv3, ev * tau_inv) where qv1 := (v2, v3); qv3 := (v6, v7); es:= (es0, es1)

(en0, en1) := fold2((t0, t1), (s0, s1), (es0, es1))

Eval point

alpha := (a0, a1)
(ev0, ev1) := alpha * x_inv
(es0, es1) := (ev0, ev1) * (ev0, ev1)

x:

x = (poe/f_tau) * domain_offset
f_tau = ds0 + tau * ds1 + tau^2 * ds2 + tau^3 * ds3
ds0 = 1 if and only if d_seg = 0
ds1 = 1 if and only if d_seg = 1
ds2 = 1 if and only if d_seg = 2
ds3 = 1 if and only if d_seg = 3

correct d_seg decompostion:

d_seg = (ds0 + 2 * ds1 + 3 * ds2 + 4 * ds3) - 1

Check previous evaluation:

(v0 - pe0) * ds0 + (v2 - pe0) * ds1 + (v4 - pe0) * ds2 + (v6 - pe0) * ds3 = 0
(v1 - pe1) * ds0 + (v3 - pe1) * ds1 + (v5 - pe1) * ds2 + (v7 - pe1) * ds3 = 0

poe^4 as poe^2 * poe^2:

poe^4 = poe^2 * poe^2

Closed by #706.


https://docs.microsoft.com/en-us/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms

https://docs.microsoft.com/en-us/skypeforbusiness/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms
does this tool work say if im moving from a subdomain skype to a primary domain skype system with different meet urls?

@SquirrelAssassin thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

Deflection == Lame@Microsoft_Staff


fjeature: Use prettier api

Relates SAP/cloud-sdk-backlog#736.
Use the prettier API to format .ts and other files. Source files like .js are excluded because this could break the source maps. In the past we created the map files before formating .ts which was wrong. Now it is correct.
Hence there are many changes in the generated clients files.

I like the new create options and I don't see any major blockers. I wasn't sure if I got it right: When do we run the prettier? before transpilation or after? or both?

Now we run it before the .ts files are written so before the transpilation to .js. Which is correct. Before we did it after the transpilation simply on all files which would break the source maps.

I like the new create options and I don't see any major blockers. I wasn't sure if I got it right: When do we run the prettier? before transpilation or after? or both?

Now we run it before the .ts files are written so before the transpilation to .js. Which is correct. Before we did it after the transpilation simply on all files which would break the source maps.

But we also run it on the .d.ts files, so we run it twice?


How about moving explanatory files to the wiki?

This is something I've always been puzzled about on GitHub.
Why don't we move all explanatory Markdown files (such as TRANSLATING.md or CONTRIBUTING.md) to the supported wiki pages? Why don't we use the wiki at all?
I think these files shouldn't really belong to the projects directory, but rather as an addition to the repository.
For instance the CONTRIBUTING.md mostly explains how to work with Git and this project in general. If you would move Sass-Guidelines from GitHub (or even Git) away to another version control system, the file would loose it's context.
Maybe I'm really overthinking this, but what do you think?

Well, that may be true, but on the other hand:
if you clone the repository for a purpose of translating guidelines to some language, you should be able to read important files such as TRANSLATING.md or CONTRIBUTING.md, don't you?
Or can I take look to the wiki inside of git (w/o opening a browser), somehow?

Because I dislike GitHub wikis, and I know for a fact that I'm not the only one. Usability is really not great, finding access is terrible, and basically everything is just fine in either one or two correctly named Markdown files in the repository if there is not much content, or a dedicated site if there is a lot.
If you have a good reason to enforce the use of GitHub wikis @morkro, please tell but until then that's a no go for me. I hope you don't mind.
PS: I am not going to move this project on SVN or Mercurial anytime soon by the way. Not gonna happen. ;)


python-gpiozero should depend on python-pkg-resources

Importing Button from gpiozero fails if python-pkg-resources is not installed:
    from gpiozero import Button
  File "/usr/lib/python2.7/dist-packages/gpiozero/__init__.py", line 58, in <module>
    from .devices import (
  File "/usr/lib/python2.7/dist-packages/gpiozero/devices.py", line 18, in <module>
    import pkg_resources
ImportError: No module named pkg_resources

So I guess a dependency should probably be added.

I'm getting this as well on python and python3

You need to install python-dev and/or python3-dev:
sudo apt install python-dev python3-dev

...or you can just install python-pkg-resources and/or python3-pkg-resources :
sudo apt-get install python-pkg-resources python3-pkg-resources

(see https://github.com/RPi-Distro/python-gpiozero/issues/538#issuecomment-283366919 )


Can't run tests on local machine

On my machine, I can't run the unit tests.
When I do poetry run pytest, or when the tests are ran through the push hook, it raises
_______________________________________ ERROR collecting tests/networking/test_validator.py ________________________________________
ImportError while importing test module 'C:\Users\Public\codg\forks\tiny-web-crawler\tests\networking\test_validator.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
C:\Users\Tiago Charrão\AppData\Local\Programs\Python\Python312\Lib\importlib\__init__.py:90: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests\networking\test_validator.py:1: in <module>
    from tiny_web_crawler.networking.validator import is_valid_url
E   ModuleNotFoundError: No module named 'tiny_web_crawler'

For every test file.
Steps to reproduce

Create a virtual environment with py -m venv .
Install the dependencies with poetry install --with dev
Install the pre-commit hooks with pre-commit install pre-commit install --hook-type pre-push
Run poetry run pytest

Additional info
The tests still run fine on the ci.
I was able to run them by replacing
from tiny_web_crawler.etc...
with
from src.tiny_web_crawler.etc...

Fixed: I had to run poetry install --with dev again


dbeaver/pro#1636 do not use default schema/catalog from the script in…

… case of data editor changing
Please check:

[x] - script opening after DBeaver reopening (script must be the same). Use default for connection and non-default schemas/databases
[x] - case from the ticket

Verified


"Property name is not a function" when trying to run yo hubot:script

I get the following when trying to run yo hubot:script
$ yo hubot:script

/usr/local/lib/node_modules/generator-hubot/generators/script/index.js:64
      var userName = this.user.git.name();
                                   ^
TypeError: Property 'name' of object #<Object> is not a function
    at Base.yeoman.generators.Base.extend.prompting.askFor (/usr/local/lib/node_modules/generator-hubot/generators/script/index.js:64:36)
    at /usr/local/lib/node_modules/generator-hubot/node_modules/yeoman-generator/lib/base.js:381:14
    at processImmediate [as _immediateCallback] (timers.js:345:15)

I'm not aware of any extra config I may need to do, but git is configured with a name:
$ git config --list
user.name=Andrew Khoury

I installed the generator via npm install -g yo generator-hubot on OSX.

It would appear that using yo hubot-script works, however it's not clear (to me) why the README.md suggests one over the other, or why two exist.

What version of yo do you have installed, ie yo --version? I think I have seen this before, but can't be sure.

It would appear that using yo hubot-script works, however it's not clear (to me) why the README.md suggests one over the other, or why two exist.

They are different packages. yo hubot:script is the official one.

I suspec this may be related to the version of yo installed. If anyone else sees this, can you report the output of yo --version, and try upgrading.


不加proxies参数提示报错

使用仓库中提供的例子安装后运行直接保存，报错截图如下

希望解决一下

The issue can be fixed by installing older httpx version. I have version 0.16.1 installed. You can do this by running the following command:
pip install httpx==0.16.1

This is a temporary fix until the developer updates the code to work with the latest httpx.

使用仓库中提供的例子安装后运行直接保存，报错截图如下  希望解决一下

The issue can be fixed by installing an older httpx version. I have version 0.16.1 installed. You can do this by running the following command:
pip install httpx==0.16.1

This is a temporary fix until the developer updates the code to work with the latest httpx.

It workes!

Thank you for your answer


refac: playground renamed to domain-test

Databricks keys in keyvault are renamed, version bump

Codecov Report

Merging #265 (faf90e0) into main (2c216c7) will decrease coverage by 6.28%.
The diff coverage is 100.00%.

:exclamation: Current head faf90e0 differs from pull request most recent head 7082388. Consider uploading reports for the commit 7082388 to get more accurate results

@@            Coverage Diff             @@
##             main     #265      +/-   ##
==========================================
- Coverage   76.92%   70.64%   -6.28%
==========================================
  Files          34      219     +185
  Lines         624     3938    +3314
  Branches       63      466     +403
==========================================
+ Hits          480     2782    +2302
- Misses        120      995     +875
- Partials       24      161     +137

Flag
Coverage Δ

testcommon
73.72% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

...mmon/Configuration/IntegrationTestConfiguration.cs
100.00% <100.00%> (ø)

... and 184 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Remove focal area not working

Issue Summary
Removal of focal area not possible.
Click on "Remove focal area " when editing an image raises: Uncaught TypeError: Cannot read properties of undefined (reading 'destroy').

Steps to Reproduce

Start a new project with wagtail start myproject
Upload image
Add focal point
Click "Remove focal area"

Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: yes

Technical details

Python version: 3.11
Django version: 4.2.7
Wagtail version: 5.2.1
Browser version: chrome  119.0.6045.159

Can confirm this issue exists. Thanks for raising @g10f

Looks like this broke in 1a951631388c0b56f026f5db684e8c543f3654c4 & #10739 - We will need to back port this fix to the 5.2 branch.


Improve NPM searchability

Right now, when searching for "react tree" on NPM, aspen-tree-model and aspen-decorations don't show up until page 5. However, react-aspen is still nowhere to be found until page 28!
This must have been the reason why I couldn't find it weeks and weeks ago when I searched heavily for a tree view package and could not find one for the life of me - aspen doesn't show up for tens of pages! Clearly this is not a great situation to be in, especially since it seems like an incredibly useful and performant library.
I was only able to find out about aspen after begging for a tree view library in the Reactiflux Discord server. Perhaps making it easier to search up will allow others to discover it more easily as well?

Thanks for actively opening an issue around this. I'm aware of this problem but I'm not aware of a solution.
I'm just not very knowledgeable when it comes to SEO. I do have set up the obvious keywords one might imagine, including react and tree, and more. I even have the word React and trees in the package.json's description field. I even mention the word "tree" multiple times in the readme, I even cross-reference react-virtualized-tree in there. NPM's "page rank" is just playing games here.
I would truly appreciate some help with making this package more visible. I worked really hard on making this library, and it's sad if when people need it, they can't even find it, when it is out in the open.

I would truly appreciate some help with making this package more visible. I worked really hard on making this library, and it's sad if when people need it, they can't even find it, when it is out in the open.

I feel you. It is very sad knowing that I probably would've never found this library if not for that blessed soul in the Reactiflux server. I'm also at a loss trying to figure out how your search ranking could be this bad, especially because of the quality of the library.


Dependencies reference nonexistent parent node

Trying to upgrade from 0.5.3 to 3.0.5 i get the following error on migrations:
django.db.migrations.exceptions.NodeNotFoundError: Migration aadiscordbot.0003_authbotconfiguration dependencies reference nonexistent parent node ('discord', '0003_big_overhaul')

Issue was that i did not have discord service on in current dev box...


Merge flutter refresh and flutter start

[ ] Track all the dependencies and their timestamps when building the snapshot, FLX, and APK, as well as the identity of the connected device(s)
[ ] On start, for each device, figure out the minimum amount of work required to get the device into an up to date state.
[ ] Add a --force argument to force a full refresh.

cc @devoncarew, @jason-simmons since they were just talking about this

This has been superseded by hot reload and hot refresh - and flutter refresh has been removed.


ExecutionEngineException upon accessing Mat element in a thread

Summary of your issue
I have encounter a similar issue to https://github.com/shimat/opencvsharp/issues/726
I am trying to run DNN face detection algorithm in a thread. If I use algorithm in the UI Thread, it works just fine. However any attempt to put it in a thread results in an exception System.ExecutionEngineException upon accessing a Mat element. What is interesting - it only happens for a certain Mat variable, when I try to access other's Mat element, it works fine even inside a thread. There is no problem with Mat boundaries.
Environment
Win 10, Visual studio 2017, .NET Standard 2.0
Example code:
string modelFile = "Classifiers\\opencv_face_detector_uint8.pb";
string configFile = "Classifiers\\opencv_face_detector.pbtxt";

Net _net = CvDnn.ReadNetFromTensorflow(modelFile, configFile);

Mat frame = new Mat(path_to_jpeg_file);
Mat frameResized = new Mat();
Cv2.Resize(frame, frameResized, new Size(300, 300));
Mat blob = CvDnn.BlobFromImage(frameResized, 1.0, new Size(300, 300), new Scalar(104, 177, 123));
_net.SetInput(blob, "data");
Mat results = _net.Forward("detection_out");
Mat resultMat = new Mat(results.Size(2), results.Size(3), MatType.CV_32F, results.Ptr());

double confidence = resultMat.At<float>(0, 2);

Output:
When trying to access `resultMat` element in the last line of code, an exception System.ExecutionEngineException is being thrown.

What did you intend to be?
All I want this christmas is no exception System.ExecutionEngineException being thrown ;)

:thinking:
The result may have been disposed before retrieving a value from the resultMat. If result is disposed by .NET GC, result.Ptr() becomes invalid.
Please try using using statement or using GC.KeepAlive to specify the lifetime of Mat.
// All Mats and Nets above should be also wrapped with using
using (Mat results = _net.Forward("detection_out"))
using (Mat resultMat = new Mat(results.Size(2), results.Size(3), MatType.CV_32F, results.Ptr()))
{
    double confidence = resultMat.At<float>(0, 2);
}

Happy New Year!
Unfortunately your soultion does not work either, I am receiving the same exception as before.


Currently found to be unavailable in Facebook messenger

Hello developer, thank you very much for your selfless dedication.
At present, it is found that it is impossible to enter content in the messenger interface, but if you increase the input, it will prompt "could not dispaly composer". Please upgrade and solve it as soon as possible. This extension is really valuable.

I can enter in a message, but if I try to edit it, the message popup window just disappears.


⚠ Bofrost.lu has degraded performance

In 238e09c, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 899 ms

Resolved: Bofrost.lu performance has improved in eb625b8 after 8 minutes.


How to get the cluster_provider to work

Hi Alessio Dionisi,
Great that you made a K0s provider in TF. I use TF a lot and work with K0s daily, but I'm lacking go skills.. ;-(
Can you document and/or tell me how to get the k0s_cluster provider working (including how to deal with go).
I have go installed but it rains errors as per my lack of knowledge....
[ec2-user@ip-172-31-24-202 cluster_resource]$ vi cluster_resource.go
[ec2-user@ip-172-31-24-202 cluster_resource]$ go build
cluster_resource.go:7:2: cannot find package "github.com/hashicorp/terraform-plugin-framework/diag" in any of:
/usr/lib/golang/src/github.com/hashicorp/terraform-plugin-framework/diag (from $GOROOT)
/home/ec2-user/go/src/github.com/hashicorp/terraform-plugin-framework/diag (from $GOPATH)
cluster_resource.go:8:2: cannot find package "github.com/hashicorp/terraform-plugin-framework/tfsdk" in any of:
/usr/lib/golang/src/github.com/hashicorp/terraform-plugin-framework/tfsdk (from $GOROOT)
/home/ec2-user/go/src/github.com/hashicorp/terraform-plugin-framework/tfsdk (from $GOPATH)
cluster_resource.go:9:2: cannot find package "github.com/hashicorp/terraform-plugin-framework/types" in any of:
/usr/lib/golang/src/github.com/hashicorp/terraform-plugin-framework/types (from $GOROOT)
/home/ec2-user/go/src/github.com/hashicorp/terraform-plugin-framework/types (from $GOPATH)
cluster_resource.go:10:2: cannot find package "github.com/hashicorp/terraform-plugin-go/tftypes" in any of:
/usr/lib/golang/src/github.com/hashicorp/terraform-plugin-go/tftypes (from $GOROOT)
/home/ec2-user/go/src/github.com/hashicorp/terraform-plugin-go/tftypes (from $GOPATH)
cluster_resource.go:11:2: cannot find package "github.com/k0sproject/dig" in any of:
/usr/lib/golang/src/github.com/k0sproject/dig (from $GOROOT)
/home/ec2-user/go/src/github.com/k0sproject/dig (from $GOPATH)
cluster_resource.go:12:2: cannot find package "github.com/k0sproject/k0sctl/phase" in any of:
/usr/lib/golang/src/github.com/k0sproject/k0sctl/phase (from $GOROOT)
/home/ec2-user/go/src/github.com/k0sproject/k0sctl/phase (from $GOPATH)
cluster_resource.go:13:2: cannot find package "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1" in any of:
/usr/lib/golang/src/github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1 (from $GOROOT)
/home/ec2-user/go/src/github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1 (from $GOPATH)
cluster_resource.go:14:2: cannot find package "github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster" in any of:
/usr/lib/golang/src/github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster (from $GOROOT)
/home/ec2-user/go/src/github.com/k0sproject/k0sctl/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster (from $GOPATH)
cluster_resource.go:15:2: cannot find package "github.com/k0sproject/rig" in any of:
/usr/lib/golang/src/github.com/k0sproject/rig (from $GOROOT)
/home/ec2-user/go/src/github.com/k0sproject/rig (from $GOPATH)
cluster_resource.go:16:2: cannot find package "gopkg.in/yaml.v2" in any of:
/usr/lib/golang/src/gopkg.in/yaml.v2 (from $GOROOT)
/home/ec2-user/go/src/gopkg.in/yaml.v2 (from $GOPATH)

It seems that you have not correctly specified the provider in the required_providers block.
You should do like this:
terraform {
  required_providers {
    k0s = {
      source = "alessiodionisi/k0s"
      version = "0.1.0"
    }
  }
}

Hi Alessio,
Thanks that helped me, but I have hit the next challenge...
k0s_cluster.MyK0sCluster: Creating...
╷
│ Error: k0sctl Error
│
│   with k0s_cluster.MyK0sCluster,
│   on main.tf line 212, in resource "k0s_cluster" "MyK0sCluster":
│  212: resource "k0s_cluster" "MyK0sCluster" {
│
│ Unable to create cluster, got error: failed on 3 hosts:
│  - [SSH] <IP_ADDRESS>: not connected: client connect: can't connect: create config: can't connect: no usable authentication method found
│  - [SSH] <IP_ADDRESS>: not connected: client connect: can't connect: create config: can't connect: no usable authentication method found
│  - [SSH] <IP_ADDRESS>: not connected: client connect: can't connect: create config: can't connect: no usable authentication method found
[ec2-user@ip-172-31-26-150 K0s_provider]$ ssh<EMAIL_ADDRESS>-i /home/ec2-user/.ssh/roha_account2.pem
The authenticity of host '<IP_ADDRESS> (<IP_ADDRESS>)' can't be established.
ECDSA key fingerprint is SHA256:UXOakZLxLxzUeouVBbiUBcAmzQP9/8t086sHssoC55w.
ECDSA key fingerprint is MD5:71:cd:eb:2e:c7:ac:e1:b5:b6:36:17:11:e6:c7:66:0e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1038-aws x86_64)
Connection is not a problem. But it needs a fingerprint (that should be a problem hopefully...?).
resource "k0s_cluster" "MyK0sCluster" {
name    = "RoHaCluster"
version = "1.23.8+k0s.0"
hosts = [
{
role = "controller+worker"
  ssh = {
    address  = aws_instance.server1.public_ip
    port     = 22
    user     = "ubuntu"
    key_path = "/home/ec2-user/.ssh/roha_account2.pem"
  }
},
{
  role = "worker"

  ssh = {
    address  = aws_instance.server2.public_ip
    port     = 22
    user     = "ubuntu"
    key_path = "/home/ec2-user/.ssh/roha_account2.pem"
  }
},
{
  role = "worker"

  ssh = {
    address  = aws_instance.server3.public_ip
    port     = 22
    user     = "ubuntu"
    key_path = "/home/ec2-user/.ssh/roha_account2.pem"
  }
} ]

depends_on = [time_sleep.wait_30_seconds]
}
As you can tell, I have already introduced a 60 (says 30) second time to build the EC2 instance and be ready for connections.
Any ideas, where I messed up?

Hi,
Looking at https://github.com/alessiodionisi/terraform-provider-k0s/blob/main/internal/provider/cluster_resource.go#L358
it appears that key_path isn't honored. In your paste above you supply one though. So it defaults to whatever is the default key for your installation.

Closed as stale


Convert depending libraries to the new github target

@agentk - I'm currently wrapping up work before christmas - so I will fix this myself tomorrow evening.
But if you have time to do this before me, please don't hesitate to fix them.
Also regarding the naming - i've but it up as a suggestion. Let me know what you think. Then lets rename all libraries to keep things consistent.
I'll also review and test your pull request tomorrow and merge everything in when I finish my work sprint.
Once again - welcome aboard @agentk - you've done great work.

https://twitter.com/codinghorror/status/506010907021828096
True. Now is also the ideal time to do any renaming. I don't have a good answer. Thinking out loud:
I like the idea of *Kit, ie, MaterialKit, MotionKit, PromiseKit, ReactiveKit.
Or perhaps *.swift, like js libraries, angular.js.
I feels less weird (to my aussie brain) to use Swift as a prefix than a suffix, like SwiftBond, SwiftLint, notable exception where it sounds better as a suffix: RxSwift.
Having Swift/Kit in the org name should make it pretty clear. The org name will also be visible in forks too. I don't think it would be necessary to use Swift in every project name, perhaps just the core project if you decide to.
Choices (alpha sorted):

Redux
Redux.swift
ReduxKit
ReduxSwift
reduxSwift
SwiftRedux

I've asked Siri and she doesn't have a good answer either. I'll let you take lead on this one. Just let me know the format and I can fix them all up. I had my last day of work today. I'll be spending a bit of time simplifying / re-architecting an iOS project with redux over the next couple of weeks.

I think ReduxKit sounds great.

ReduxKit it is
Thanks a bunch!


Debugger exited with COR_E_EXECUTIONENGINE on netcoreapp2.0 with special code

Issue Title
Debugger exited with COR_E_EXECUTIONENGINE on netcoreapp2.0 with special code
General
Provide details on the problem you are experiencing including the .NET Core version, operating system version and anything else that is relevant.
Test on

Win10x64(17046/16299), debug with VS2017 15.6p1 or VSCode_x64 1.18.1/1.20.0-insider(with C# plugin 1.13.1).

Crash with System.ExecutionEngineException on net471.
Crash with COR_E_EXECUTIONENGINE on netcoreapp2.0 and 2.1(preview).
Works well with netcoreapp1.1.
Please provide a code sample for your issue if it is relevant, either inline, link to a gist (or similar) or add it as a zipped attachment.
using System;
class Program
{
    public abstract class T1
    {
        public byte data = 1;
        public virtual byte Data => data;
        public virtual void Test()
        {
            Console.WriteLine("T1");
            //Not happen after uncomment this
            //Console.WriteLine(Environment.StackTrace);
        }
    }
    public class T2 : T1
    {
        public override void Test()
        {
            //new csproj format, and TargetFramework: net461 or netcoreapp2.0
            //1. Set an breakpoint here, disable `Just My Code`, and debug with Release build(Debug works well)
            //2.1 Expand `this` or wath `this.Data`, `this.ToString()` or some others
            //2.2 Or type `this.Data`/`this.GetType().Name` in immediately window(System.ExecutionEngineException, exit after continue, but if you don't contine and type again, you can get the result).
            base.Test();
            //Not happen after uncomment this
            //Console.WriteLine("T2");
        }
    }
    private static T1 t1 = new T2();
    private static void Main(string[] args)
    {
        try {
            t1.Test();
        }catch(Exception e){
            Console.Error.WriteLine(e);
        }
        Console.ReadLine();
    }
}

Change configuration from Debug to Release
Disable JustMyCode
Set an breakpoint at base.Test()
Start Debug
Add watch to this.Data or this.ToString() or just expand this
6.1 See debuger exit with COR_E_EXECUTIONENGINE(0x80131506) on netcoreapp2.0
6.2 On net471, an System.ExecutionEngineException is get instead.
6.3 On VS2017's immediately window and net471, if not click continue after expection, and watch again, it can get the result.
6.4 When set another breakpoint at t1.Test(), and watch t1.Data first and continue to next breakpoint, it works well.

Already post an issue at https://developercommunity.visualstudio.com/content/problem/166880/debugger-crash-with-systemexecutionengineexception.html , but found the same thing also happen with vscode, so also report it here. Is it an issue with framework?

This not happen with JetBrains Rider nor dnspy, maybe only an bug with VS's debugger.


go mod incompatibility

Trying to use this module in other a go mod enabled repo of us is causing issues with some of the unused dependencies (particularly delve). Running go mod tidy fixes these issues.

Current Behavior
The gotenberg module is marked as incompatible.
Possible Solution
run go mod tidy
Context
We are unable to use the go module for talking to the gotenberg service in our k8s cluster.
 Wanted to raise an issue first, happy to raise PR if accepted.

Yes please feel free to open a PR 👍
I'll tag a new version (4.2.1).

As a slight aside to this, I noticed the release tags changed from vX.X.X to X.X.X, go mod to my understanding defaults to looking for vX.X.X releases, meaning without looking into the repo to specifically grab the latest, we're going to be getting for v2.0.0. Im unsure on the change to strip the v, nor the consequences of going back to vX.X.X. Further reading; https://github.com/golang/go/wiki/Modules#can-a-module-consume-a-v2-package-that-has-not-opted-into-modules-what-does-incompatible-mean .
My understanding on this might be wrong though.
I'll make the PR now. Cheers

@trelore does the 4.2.1 tag resolve your issue?
Also, I'm not sure to understand the issue with go mod. I've never used vX.X.X as tags but X.X.X. 🤔

Looks like it fails silently. Modules is still a bit of a dark art for me, but the following happens;
Running GO111MODULE=on go get -u github.com/thecodingmachine/gotenberg or GO111MODULE=on go get -u<EMAIL_ADDRESS>Creates the entry github.com/thecodingmachine/gotenberg v2.0.0+incompatible // indirect in go.mod.
Running GO111MODULE=on go mod download & GO111MODULE=on go mod vendor then doesn't add the repo to our vendor dir
Running  GO111MODULE=on go get -u github.com/thecodingmachine/gotenberg/pkg
Fails outright
Running GO111MODULE=on go get -u<EMAIL_ADDRESS>Updates go mod file with github.com/thecodingmachine/gotenberg v0.0.0-20190313095320-ab78559710f4 (note version is set to 0.0.0, because the version is 2 or higher, in my understanding this is part of a compatibility thing)
Running GO111MODULE=on go mod download & GO111MODULE=on go mod vendor then brings the v4.2.1 pkg codebase into our repo. Which is the intended goal, however as gotenberg updates, we need to manually update our dependency.
To my understanding tagging vX.X.X would mean the second attempt would work, but I'm not 100% confident.

Modules is still a bit of a dark art for me

Same here! I'm a bit lost. I'll come back to you as soon as I've find a correct solution (as you said, tagging vX.X.X may work but I want to understand whats going on 😄).

Ok I'm lost for good : https://github.com/golang/go/issues/27009
So the last version of Gotenberg without go.mod was v2.0.0:
Code written before the semantic import versioning convention
was introduced may use major versions v2 and later to describe
the same set of unversioned import paths as used in v0 and v1.
To accommodate such code, if a source code repository has a
v2.0.0 or later tag for a file tree with no go.mod, the version is
considered to be part of the v1 module's available versions
and is given an +incompatible suffix when converted to a module
version, as in v2.0.0+incompatible. The +incompatible tag is also
applied to pseudo-versions derived from such versions, as in
v2.0.1-0.yyyymmddhhmmss-abcdefabcdef+incompatible.

I've removed it (there was no library for this version) and was expecting go mod to be able to retrieve the latest version, but alas it's not working:
$ go clean --modcache
$ go list -m -versions -f '{{join .Versions "\n"}}' github.com/thecodingmachine/gotenberg
go<EMAIL_ADDRESS>unknown revision v2.0.0

Not sure what to do next.

It was a cache issue. Now running go get -u github.com/thecodingmachine/gotenberg creates the entry github.com/thecodingmachine/gotenberg v0.0.0-20190313095320-ab78559710f4 // indirect.

@trelore I think the best option would be to create a separate repository for the Go library.
Something like:
module github.com/thecodingmachine/gotenberg-go-client/v4

And when Gotenberg 5.0.0 is released:
module github.com/thecodingmachine/gotenberg-go-client/v5

Yeah, I was thinking about that. From a third party perspective they seem like 2 distinct offerings. Bundling them together gives tight coupling when it comes to releasing fixes for one or the other.

@trelore the new client is now available at https://github.com/thecodingmachine/gotenberg-go-client! 😄

@trelore does this resolve your issue?

Apologies, looked at this last night and forgot about it.
Works perfectly fine, happy for this to be closed 👍

Np 😄 Great to hear 👍


Correction for raw affiliation UMR LISAH,, INRA-IRD-SupAgro,, Tunis, , Tunisia

Correction needed for raw affiliation UMR LISAH,, INRA-IRD-SupAgro,, Tunis, , Tunisia
raw_affiliation_name: UMR LISAH,, INRA-IRD-SupAgro,, Tunis, , Tunisia
new_rors: 052wtvs60;05deqk823
previous_rors: 052wtvs60
works_examples: W2139856800
contact: 7444c85c90ec28ffa3f7059d3987a6c4:516c9d977211ca31a772168f17e0b802426b @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-18. The new affiliations should be visible within the next 7 days.


Make default timeout project dependent

Change it instead of having only one global timeout that is predefined for all projects, make the timeout dependent on the project
For example:
libft - 3
get_net_line - 15
(And think about which are the good ones for every project)

As far as I know, 42 system uses 10s by default. But some cases like gnl your 42 is less exigent than your test (I think). Thanks Paco!


Push notifications doesn't work

Summary
Push notifications doesn't work with Android or IOS apps.
There are no messages (absolutely) in the DEBUG log about any PUSH actions.
Steps to reproduce
Using docker-compose ymls.
Mattermost Version: 7.8.0
Database Schema Version: 101
Database: postgres
Enable TPNS https://docs.mattermost.com/deploy/mobile-hpns.html
Enable Push in user profile settings.

I am having a similar issue: new sessions created with the Android app version 2.1 do not get a "deviceid" and do not receive push notifications. I have users with version 2.0.1 for whom push notifications still work, but that could also be because their sessions were created with earlier versions of the app. I am therefore not yet sure if this issue exists only since 2.1.
I will have more time to investigate this on my end in the coming days, but wanted to report that gintonic80 is not the only one with this problem.

Update on why this was not working for me: Apparently the way that device ids (Tokens) were retrieved has changed in some way recently (on Google's side), which some ad block firewalls were still blocking.
The React Native Notifications code that retrieves tokens is here: when the Mattermost app is built in debug mode, then the problem is written out to the android log and can be seen with logcat | grep ReactNativeNotifs.
It would be useful if the app could give an indication about the fact that notifications are not working. Maybe by checking if there is no device id / token after a certain amount of time after calling Notifications.registerRemoteNotifications()?
Sorry @gintonic80 , my issue is probably unrelated to yours.

I have a similar problemI have a similar problem that the app (v 2.1, Android) is not registering for notifications and not getting the deviceToken. But this doesn't happen on all devices: some devices work fine on the same build. So far no dependency has been detected. As soon as we analyze devices with this problem - I'll come back with information.  that the app (version 2.1) does not register for notifications and does not receive a DeviceToken.

I know almost nothing about react native, notifications, or the mattermost mobile code base, but maybe the following is helpful for someone who does:
If others still have problems, maybe it is related to this change. Before the change, Notifications.registerRemoteNotifications() was always called during startup (unless the app was not logged in), which runs the code that generates the token / deviceid for Android. Since this change, registerRemoteNotifications() only runs when Notifications.isRegisteredForRemoteNotifications() is false. However, as I understand it, isRegisteredForRemoteNofications() only checks whether notification permissions were granted, not whether a token is present. So maybe there are cases where notification permissions were granted but retrieving a token failed on the first try for some reason? Then, as I understand this, the app never tries to get a new tokenm unless the user logs out and logs back in again or something like this.

I have a similar problemI have a similar problem that the app (v 2.1, Android) is not registering for notifications and not getting the deviceToken. But this doesn't happen on all devices: some devices work fine on the same build. So far no dependency has been detected. As soon as we analyze devices with this problem - I'll come back with information.

I have went and downloaded an older version of the app v 2.0.x it seems like it has to do with android version rather than the app version? because my old phone which is on an older version of android has no problem receiving push notification

Try deleting 'v2' from the device token settings. The token on the server and the token on the phone may have different values. I deleted v2 and checked that it works fine. The code after modification is 'storeDeviceToken(${prefix}:${deviceToken});'

Try deleting 'v2' from the device token settings. The server and the phone may have different token values. I deleted v2 and checked that it works fine. The code after modification is 'storeDeviceToken(${prefix}:${deviceToken});'

For example, my devices with v2 mobile app (Android) can't register deviceid and i have nothing to change. There is no problem with iOS v2 or Andriod v1.55.1 apps.

Just went back to the google playstore, there seems to be a mattermost - beta version availible. push notification seems to be working on that one for my phone. I am on Android 12

I keep seeing this message on iOS devices, but I do get notifications and badges for new messages! The notifications are slow on arrival but it works.. How to get rid of the error message?

I updated to the most recent version on android a few weeks ago, it seems to be working for me on Android now

Are you receiving push notifications?

It is working now! I reinstalled the mobile apps on my iOS devices and logged in and now it is working, no more error message.👍

Are you receiving push notifications?

It is working now! I reinstalled the mobile apps on my iOS devices and logged in and now it is working, no more error message.👍

Congratulations 💯

This seems to be fixed, so I will close it. Feel free to comment if anyone is still seeing issues.

Hello,
We got stability problems with push notifications on mobile devices, using Mattermost Server Team Edition v9.3.0.
We have notifications in some cases so it doesn't seem to be the same issue.
We were able to understand what follows :
Configuration :

Phone is iPhone 8 with Mattermost Client v2.11.0, push notifications enabled for all messages, when online, away or offline. OS allows notifications, sound is on.
Computer has Mattermost Client v5.6.0 app running.
Another user sends me messages on a private conversation A (1 to 1).
We consider the push notification is working if it shows a message on the screen with a sound.

Those tests are OK :
If I am out of conversation A on computer and phone app is closed, I receive notifications on phone and computer.
If I display conversation A on any device, I don’t receive notifications on any device.
This causes us trouble :
If on the phone I use the upper-left arrow to get out of the conversation, I don’t receive notifications on phone or computer, even if I left the app in background, or if I lock the phone.
it seems to works as if I still was displaying the conversation.

Two ways we found to avoid this is to select another conversation on the mobile app, or to kill the app in the background. Doing this, we systematically had the notifications.
We will explain this to the users, but it is not very practical to do.
Would that be possible to fix this ?
Feel free to test if you have the same behavior.
Note that on one of our Android devices, there also is a back button on the system on bottom of screen, and if used, it behave differently, really gets out of conversation A and we have notifications. This is not possible on iPhone :

Regards,


Issue Running gpt-4 model

Hi @pablocastro @jongio
My team is working on the demo. We have approval and access to gpt-4. However, when we try to deploy we get the following error:
{"code":"InvalidTemplateDeployment","message":"The` template deployment 'openai' is not valid according to the validation procedure. The tracking id is '74716484-7b27-4f86-a216-52e5a1843bc4'. See inner errors for details.","details":[{"code":"DeploymentModelNotSupported","message":"The model 'Format: OpenAI, Name: gpt-4, Version: 1, Source: ' of account deployment is not supported."}]}
We are using gpt-4 (0314) version 1. Is there anything we’re missing?
Here are the relevant parameters in our .bicep file:
param gptDeploymentCapacity int = 20
param gptModelName string = 'gpt-4'
param chatGptDeploymentName string = 'chat'
param chatGptDeploymentCapacity int = 20
param chatGptModelName string = 'gpt-4'```

```module openAi 'core/ai/cognitiveservices.bicep' = {
  name: 'openai'
  scope: openAiResourceGroup
  params: {
    name: !empty(openAiServiceName) ? openAiServiceName : '${abbrs.cognitiveServicesAccounts}${resourceToken}'
    location: openAiResourceGroupLocation
    tags: tags
    sku: {
      name: openAiSkuName
    }
    deployments: [
      {
        name: gptDeploymentName
        model: {
          format: 'OpenAI'
          name: gptModelName
          version: '1'
        }
        capacity: gptDeploymentCapacity
      }
      {
        name: chatGptDeploymentName
        model: {
          format: 'OpenAI'
          name: chatGptModelName
          version: '0314'
        }
        capacity: chatGptDeploymentCapacity
      }
    ]
  }
}```

The version there is still 0314, can you try changing that to 0613? (We probably need to parameterize that as well, to make it obvious that both have to change at the same time).

Still getting error after changing the version
DeploymentModelNotSupported: The model 'Format: OpenAI, Name: gpt-4, Version: 2, Source: ' of account deployment is not supported.

@yeggan Can you share if the change worked for you? Trying to find a Bicep that will work for @venkateshkumar - thanks!

I changed my code as follow (based on my available quota) and was able to implement the code.
It works for now.
Issue #408 can be closed now.
param gptDeploymentCapacity int = 10
param gptModelName string = 'gpt-4-32k'
param chatGptDeploymentName string // Set in main.parameters.json
param chatGptDeploymentCapacity int = 10
param chatGptModelName string = 'gpt-4-32k'
param embeddingDeploymentName string = 'embedding'
param embeddingDeploymentCapacity int = 10
param embeddingModelName string = 'text-embedding-ada-002'

  name: 'openai'
  scope: openAiResourceGroup
  params: {
    name: !empty(openAiServiceName) ? openAiServiceName : '${abbrs.cognitiveServicesAccounts}${resourceToken}'
    location: openAiResourceGroupLocation
    tags: tags
    sku: {
      name: openAiSkuName
    }
    deployments: [
      {
        name: gptDeploymentName
        model: {
          format: 'OpenAI'
          name: gptModelName
          version: '0314'
        }
        sku: {
          name: 'Standard'
          capacity: gptDeploymentCapacity
        }
      }
      {
        name: chatGptDeploymentName
        model: {
          format: 'OpenAI'
          name: chatGptModelName
          version: '0314'
        }
        sku: {
          name: 'Standard'
          capacity: chatGptDeploymentCapacity
        }
      }
      {
        name: embeddingDeploymentName
        model: {
          format: 'OpenAI'
          name: embeddingModelName
          version: '2'
        }
        capacity: embeddingDeploymentCapacity
      }
    ]
  }
}```

Thanks for the response, Now we are getting different embedding error.
Deployment Error Details:
InvalidTemplateDeployment: The template deployment 'openai' is not valid according to the validation procedure.
DeploymentModelNotSupported: The model Format: OpenAI, Name: text-embedding-ada-002, Version: 2, Source:  is not supported in current region.
Any work around for this

You need to check your quota first.
As mentioned before, I defined the parameters based on my available quota.
From the error, I think you don't have Name: text-embedding-ada-002, Version: 2, in your avaible quota in the region that you are deploying your code.
Send the request to MS to increase your quota or select another model "param embeddingModelName string"


transformEntries({ from: ['id'],... }) yields error rather than usable id

Expected Behavior
I expect to be able to use the entry 'id' when I leveragetransformEntries. For example:
  const migrationFunction = (migration) => {
    migration.transformEntries({
      contentType: 'myContentType',
      from: ['id'],
      to: ['fieldToTransform'],
      transformEntryForLocale(fromFields, currentLocale) {
        // Do stuff to update 'fieldToTransform'
      },
    });
  };

Actual Behavior
I get an error in return:
You cannot transform entries for content type "myContentType" because "id" can't be found on it.
I have tried id, entryId, entry_id, contentfulId, contentful_id, _id, and sys.id. None of them worked.
Possible Solution
Ensure the field 'id' can also be used, just like the other fields; or improve documentation if it's already possible.
Context
I have a list of article entries I want to assign to pre-defined categories. { [articleId: string]: string }. I can't do that unless I can obtain the id from the fromFields variable.
Environment

Node Version: v18.12.1
Package Manager Version: v8.19.2
Operating System: #64~20.04.1-Ubuntu
Package Version: ?

Anyone?

@VanDoornP I think it's a duplicate of my issue here: #1029
I opened a PR. you won't be able to access it as of now, just so you know.

This has bee implemented: https://github.com/contentful/contentful-migration/releases/tag/v4.13.0


[CT-3122] [spike] explore testing command options to understand technical complexities and determine best option

Housekeeping

[X] I am a maintainer of dbt-core

Short description
As discussed in this issue, as we expand our test coverage we need to rethink our testing commands to ensure clarity and usability. We will have 2 types of tests in dbt:

dbt "data" tests: Test your data outputs (dbt models, snapshots, seeds, etc.) and inputs (dbt sources) in your warehouse to ensure your data is valid given your defined assertions. This is the type of testing we currently support.
dbt "unit" tests: Test your modeling logic using a small set of static inputs to validate that your code is working as expected. This is the new type of testing we're building as part of this initiative.

We have a few options for the associated commands:

dbt test —-unit and dbt test —-data
dbt test unit and dbt test data
dbt unit-test and dbt data-test
dbt test --select test_type:unit and dbt test --select test_type:data

We would also need to decide what happens to the legacy dbt test and dbt build commands:
Options for dbt test:

dbt test runs all of your tests (both unit and data)
dbt test is an alias for dbt test —-data (or whichever option we go with above); only runs data tests

Options for dbt build:

dbt build runs all of your tests (both unit and data), and we provide a way to just run one type of test like dbt build --unit and dbt build --data
dbt build only runs data tests

While 2 might more accurately maintain legacy dbt test/build behavior, this wouldn't actually be behavior change right away, because no one will have unit tests defined in their projects.
1, on the other hand, would be simpler to explain and makes it clear that these things are both "tests".
We would recommend as a Best Practice that you should exclude unit tests from production runs, sorta like how we recommend that you exclude unchanged views: https://docs.getdbt.com/docs/cloud/billing#build-only-changed-views.
This may impact the "test type" and "test name" selection methods. I'd be inclined to get rid of the test_type selection method, as they aren't actually "types" more just methods of implementing data tests (there are also other ways to achieve this selection whether via tags or file_path).
There may be technical complexities with each of these options, so we should spike investigating them as options to decide the best past forward.
From @MichelleArk

In order to support:
dbt test --data
dbt test --unit
we'd likely to the if/else routing for task setup somewhere here, which would make it difficult with our current click setup to differentiate between which options are supported for which subcommand (--unit or --data).
But on the flip side, defining these as click subcommands (dbt test unit, dbt test data) would make it difficult to preserve backwards compatibility with the previous dbt test command.

Acceptance criteria
We understand the complexities of each of the command options and have determined the best path forward. See expanded acceptance criteria in comment below.
Impact to Other Teams
None
Will backports be required?
None
Context
No response

Considerations from estimation:

(3) is cleanest for reflecting that these are separate commands, including in --help text

Why not pursue (3)?

We don't think there are use cases for running both types of tests in the same workflow
So dbt test would become a legacy alias for dbt data-test (current behavior)

Scope of this issue:

Technical complexity of each option above (1-3)
While maintaining previous behavior

Preference is for option (3)

Acceptance criteria:
dbt test

dbt test runs all of your tests (both unit tests and data tests)
we provide a simple mechanism to the dbt test command to specify which types of tests to run (unit tests and/or data tests)

dbt build

dbt build runs all of your tests (both unit and data)
we provide a simple mechanism to the dbt build command to specify which types of tests to run (unit tests and/or data tests)

Note: If we one day added a 3rd type of tests, the mechanism should be flexible enough to select exactly the test types you want to be executed (only a, only b, only c, a and b, b and c, a and c, a and b and c).
The question here is ... what is the mechanism.
What to do about the test_type methods

this is actually just "how was the data test implemented" (yml or in sql)
there's a work-around (just add a tag "singular_tests" to your tests/singular folder and select via tag; select via path path:method tests/singular/)
this is not a very popular selection method

I believe our two "test types" are unit tests and data tests.
I believe two ways to implement data tests are "singular" and "generic".
We could:
a) get rid of this selector (to avoid confusion)
b) we could add to this selector (test_type can be unit, data, generic, and singular)

The simple mechanism could be:

a flag
an environment variable
something else?

Notes from refinement:

2 is incredibly tricky to do

Option 2 dbt test unit and dbt test data will not work because it is incredibly hard to do a subcommand under an existing command. Tried that with deps and didn't workout well

@aranke How would users select that they want only unit tests or data tests to run? Via --select?

the unit testing squad had a great discussion today on “what should the mechanism be to select only unit tests or only data test to run” and have narrowed it down to 2 main options:

option 1 - unit tests and data tests are different resource types (like models vs. seeds) that have their own unique commands dbt unit-test and dbt data-test and can be selected via --select resource_type:unit-test or --select resource_type:data-test for dbt build
option 2 - unit tests and data tests are types of tests that can be selected using --select test_type:unit or --select test_type:data for dbt build and dbt test

Example scenarios:
“i need to run my unit tests” - likely in development
option 1: dbt unit-test
option 2: dbt test -s test_type:unit
“i need to run all of my tests” - likely in development & CI
option 1: dbt unit-test && dbt data-test
option 2: dbt test
“i need to run just my data tests” - likely in production
option 1: dbt data-test
option 2: dbt test -s test_type:data
“i need to build everything except my unit tests” - likely in production
option 1: dbt build -e resource_type:unit-test
option 2: dbt build -e test_type:unit
“i need to build everything” - likely in CI
option 1: dbt build
option 2: dbt build
some additional considerations
for option 1:

dbt test dies eventually, but for now is an alias for dbt data-test
we kill%20get%20rid%20of%20this%20selector%20(to%20avoid%20confusion)) the test_type method

for option 2:

dbt test executes all test types by default
dbt test -s test_type:generic and dbt test -s test_type:singular still work as documented (they’re just sub-selections of test_type:data)

After some discussion with dbt users - we're going to move forward with option 2: unit tests and data tests are types of tests that can be selected using --select test_type:unit or --select test_type:data for dbt build and dbt test. Some main considerations:

We are compelled by "These are all kinds of tests." - They all involve hitting the DWH, actually running real queries (even if it's with fixture inputs). So a command like dbt test just makes sense if you want to run all of the tests.
We like the idea that dbt build -s my_model does everything for that model, and you could use standard-fare selection syntax (including even a default yaml selector) to pare it down if desired.
Option 2 has "less new things" / better for backwards-compatibility
We like the clarity of explicitly excluding unit tests from when desired (like in production runs) in a way that it can be seen in the command, i.e. dbt build --exclude test_type:unit

Thanks for weighing in here! I'll go ahead and close this out and open up some implementation ticket(s)!


Fewer than expected results were retrieved during querying the index

Hi,
I'm trying to use voyager library instead of annoy but encountered with the following problem. Even though there are 25130 elements (see the num_elements attribute of the index below) in the Voyager Index, I'm unable to query since it can't find all of the indexes somehow.

@sametdumankaya sorry about the delayed response here!  Can you provide some more information on your use case?  Are you attempting to query for N neighbors where N is the number of elements in the index?

@sametdumankaya sorry about the delayed response here! Can you provide some more information on your use case? Are you attempting to query for N neighbors where N is the number of elements in the index?
Also can you check to ensure that there are no NaN's in your item set?

Hey again,
There's basically 25310 elements in the set and I'm trying to get similarity scores for all of them using a random embedding. I confirm that there's no NaN's in the item set. Somehow, 4 of the items were not included in the index and there are 25306 items in the index instead of 25310.

Hello. This is a recall issue that technically isn't a bug. It can happen during probabilistic construction of a Voyager index depending on the characteristics of the data. You can increase the M value to increase recall. See https://github.com/spotify/voyager/pull/88 for more details.
Please feel free to reopen if this problem persists.


Python script to set initial pose for pure-localization via rviz

Maybe you want to add this to the Cartographer 'scripts' folder. It's a simple Python script that allows to run 'start_trajectory' service calls simply with the pose clicked via ROS rviz '2D Pose Estimate' button. I think it's a good start for users and it does not touch any Cartographer code.
setinitpose.zip

Hello, I used your script, but my robot does not have the same prompt as yours. I use the pure positioning of the cartographer here. I don't know how your lua file is set.