Title for Toggle component

Suggestion / feature request
It would be helpful to have title property for the Toggle component so it would be easier to create label to the left side.

Hi @viktorhajer, a label on the left side sounds easy but is quite tricky from a design system’s point of view. The label length has impact on the x-position of the toggle and in a form layout with multiple rows with toggles you would get a mess of a layout. Furthermore, your label/title requirement is valid for all types of nput contols (radiobutton, checkbox, input, select, ...) not only for the toggle. Therefore, we are currently working on a generic approach to align labels to components in general.
So it will be possible to place labels left from components in future. But this will not be a property of the respective component but most likely a property of a layouting component that will take care of the alignment of label and component.

Hello! Yes, that totally make sense. Thank you, I gonna close this FR.


BUG: nvim-surround not working with timoutlen set

While messing around today I noticed that nvim-surround wasn't working, however, if I have surround-ui installed it works (as does checking the nmap).
The issue for me was the timeoutlen set in sets.nix.
# Reduce which-key timeout to 10ms
timeoutlen = 10;

When I set this timout to around 100ms it starts to work and infact brings up the which-key menu much much faster.
Let me know what you think, I can raise a PR for any changes you fancy. In my configs (based heavily off yours) i have just gone with 100ms and it seems ok from first glance.
Finally: I switched out nvim-surround for mini.surround and found the same issue. This leads me to believe that any two letter shortcut/command will not work when using the timeoutlen of 10ms. Its a pretty crude assumption so anyone has any ideas what is exactly is going on, I would love to be enlightened.

I cannot thank you enought for this, OMG. That's why surround wasn't working for me,  maybe they refactored the plugin to use timeoutlen and I totally missed it. A PR would be great, thank you so much!

On it!

Done ^^ will leave you with it 👍

Just made it into one PR rather than two to hopefully make life easier.


Class-based views support

I see there is PR https://github.com/jsocol/django-waffle/pull/92 adding CBV support but it was closed by the stale bot. Is there any reason why the PR was not merge? Given how CBV are more and more standard way to make views in Django I find it a pitty that waffle does not come with the corresponding mixins. Is there anything I can to to help with getting the PR to merge?

@jsocol Is there any preventing #92 from being merged?

Commented over on the PR, going to close this out as a duplicate of #92.


Zombie villagers path home

Add something so that zombie villagers will try to stay near the village instead of dispersing

implemented in 3.0 beta


fix navbar width

Fixes Issue
Example: Closes #4496
Changes proposed
Make the div(which consists all nav items) inside nav to full width
Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots
Before fix

After fix(change proposed)

Thank you for the contribution, the issue has been closed


It would be nice if it could run under the CPU, I don't have a GPU

It would be nice if it could run under the CPU, I don't have a GPU, is there a way to run tests using the CPU instead? I just wanted to try, how long does it take to generate a model using the CPU? In addition, it seems that the effect generated by the model is not particularly good, the images in multiple directions do not match, if you can have multiple images, the effect of generating the model through pictures in different directions will be better

@libai-lab Hi, sorry that we rely on CUDA extensions which cannot run on CPU only.
Currently we only consider single-view generation for this work, and multi-view fusion may be incorporated with recent works like consistent-1-to-3.


Multiplex what's new

Adding a card for the multiplex update in "What's new" on the static site

this is live on test now!
https://test.simplereport.gov/using-simplereport/whats-new/

Strange — I saw it there yesterday but no longer am either. Can try to redeploy to test (thanks to @fzhao99 showing me how!)

the links currently 404 since the creation of the multiplex page are living in a separate branch. once both of them get merged the links will work


Update tie-in-interceptor.json

Add missing charges to Nash and Vult

Please fix failing checks

Closing due to inactivity


Choose a name for Smashing Template

Some ideas for this Smashing Boxes open source project:

Alloy
Barcart

Please feel free to vote or suggest your own!

Boxcar?

Boxcar in the winner!


update-readme-and-supabase-migration

hey @nkkko , i have made the following changes:
Replaced SQLite setup with Supabase instructions.
Added steps to create the devcontainers table.
Reorganized README: moved configuration before usage.
Updated environment variable setup for Supabase.
/claim https://github.com/daytonaio/devcontainer-generator/issues/36
/closes https://github.com/daytonaio/devcontainer-generator/issues/36
This PR addresses the issue by adding the necessary steps to resolve the problem. We've provided instructions for setting up the devcontainers table with Supabase.Creating table from python code isnt possible with supabase , as much as i have searched so this is the feasible way, @nkkko look into it whenever possible
Please let me know if any changes are needed or if you have any feedback

/claim #36
/closes #36
This PR addresses the issue by adding the necessary steps to resolve the problem. We've provided instructions for setting up the devcontainers table with Supabase.Creating table from python code isnt possible with supabase , as much as i have searched so this is the feasible way, @nkkko look into it whenever possible

hey @madman024 you need to sign your commits (DCO), check errors

@nkkko done , plz check it now.

@madman024 I’ve updated main with some changes that affect this PR. Could you please rebase your branch onto the latest main and resolve any conflicts that come up? Once that’s done, we can review the updated changes and move forward.

@mojafa i have rebased my branch ,there were no conflicts can u check now

@madman024 thank you. on it now

@madman024 please add screenshots in your readme of how those steps look like.

@nkkko @mojafa thank you for merging the pr, but unfortunately, Stripe accounts are invite-only in India and complicated to set up. Could you please send the payment through another method, such as PayPalor direct bank transfer?i would be really thankfull for that.

pls join our slack and send me DM there @madman024


Adds a handful of fixes + enhancements to the module

what

This was a long running branch that I was working on to make this module work with a client project. It includes the following fixes / enhancements:

Fixes an issue with triggers causing a null pointer exception when none passed.
Adds the ability to pass multiple filename triggers for a workspace
Updates context.tf
Adds the ability to pass a terraform_version per workspace
Adds the ability to pass remote_execution_mode to a workspace for workspaces that just need state.
Fixes #4 -- Adds the ability to pass complex types (lists / maps) as vars to a workspace. See issue for full details on this one and variables/main.tf lines 2-8 for the guts of the fix.
Adds the ability to pass vcs_branch to a workspace to override the branch.

why

These fixes / enhancements were made as part of moving over a larger client project with ~12 root modules. I believe they're largely self explanatory, but if not then I'm happy to share more info.

references

#4

Notes

Happy to pull any of these fixes / enhancements to another PR if we want to discuss them individually
If ya'll would like, I can update the example / tests for these new items if / where needed.

Feedback

Root workspaces (the stack file’s workspace) — These feel a bit odd in that they are not currently useful for my project. Still personally working through why they’re necessary. AFAIU, these top level workspaces are created for the stack to trigger changes when top level env vars change. But I find that to be a very rare occurrence on my end, so they then end up creating a bunch of workspaces that are unnecessary and bloat the UI. I would like hear your folks use-case for these and understand what I'm missing here.
Docs — Needs a better README to walk a consumer through the hierarchy. I dug into the src a bunch over an afternoon of hacking on it to figure it out.

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

/test all

@johncblandii @osterman just took a crack at adding tests for this module as the existing tests were the boiler plate. Unfortunately, I believe to get these tests running ya'll will need to setup a fake TFC Org and get a secret tfe_token wired in for this to move forward. Let me know if I can help in anyway!

@johncblandii @osterman just took a crack at adding tests for this module as the existing tests were the boiler plate. Unfortunately, I believe to get these tests running ya'll will need to setup a fake TFC Org and get a secret tfe_token wired in for this to move forward. Let me know if I can help in anyway!

We do have an org up for this specific purpose. I'll check with @osterman to verify the token was added to GH.

We do have an org up for this specific purpose. I'll check with @osterman to verify the token was added to GH.

/test all

One odd thing to point out: pre-commit hooks are failing on tf validate, but even if I run the same locally then it passes successfully. I upgraded pre-commit-terraform as well and they're still not passing. Not sure what is up there. I can make those updates to the types that are failing, but it's odd that I should need to considering they should pass as they stand right now.

I think in a recent upgrade of our actions, the TFE_TOKEN was dropped. (cc: @Nuru)

I think in a recent upgrade of our actions, the TFE_TOKEN was dropped. (cc: @Nuru)

@johncblandii will take a look at the precommit issue

@johncblandii will take a look at the precommit issue

/test all

/test all

@johncblandii will take a look at the precommit issue

I went ahead and fixed this really quick -- looks like we're good to go.

@johncblandii will take a look at the precommit issue

I went ahead and fixed this really quick -- looks like we're good to go.

@Gowiem Awesome work! Everything looks great to me beyond the couple of outstanding items.

@Gowiem Awesome work! Everything looks great to me beyond the couple of outstanding items.

@danjbh Thanks for the help man! Unfortunately, looks like the TFE_TOKEN fix didn't take:

@danjbh Thanks for the help man! Unfortunately, looks like the TFE_TOKEN fix didn't take:

@danjbh Thanks for the help man! Unfortunately, looks like the TFE_TOKEN fix didn't take:

@Gowiem I'll be taking a look at this in a few here. Stay tuned!

@danjbh Thanks for the help man! Unfortunately, looks like the TFE_TOKEN fix didn't take:

@Gowiem I'll be taking a look at this in a few here. Stay tuned!

Hey there @Gowiem , I need to file a PR in our actions repo to support the TFE provider, and I'll try to get that through ASAP. In the meantime, I did a bit of local testing and found an issue that required me to bump the provider version to 0.23.0, if you want to take a look.
Anyhow, we're getting close here -- I'll get back to you as soon as my other PR is merged.

Hey there @Gowiem , I need to file a PR in our actions repo to support the TFE provider, and I'll try to get that through ASAP. In the meantime, I did a bit of local testing and found an issue that required me to bump the provider version to 0.23.0, if you want to take a look.
Anyhow, we're getting close here -- I'll get back to you as soon as my other PR is merged.

/rebuild-readme

/rebuild-readme

/test all

/test all

/test all

/test all

/test all

/test all

Alrighty @Gowiem , I had to make a few tweaks to get the tests to run. Feel free to tweak as you see fit from here, otherwise it's all working!

Alrighty @Gowiem , I had to make a few tweaks to get the tests to run. Feel free to tweak as you see fit from here, otherwise it's all working!

@danjbh ah thank you for the updates and corresponding fixes -- Much appreciated!!
@johncblandii mind taking another pass when you get a moment?

@danjbh ah thank you for the updates and corresponding fixes -- Much appreciated!!
@johncblandii mind taking another pass when you get a moment?

/test all

/test all

Thanks for the help in getting this merged @johncblandii @danjbh @osterman!

Thanks for the help in getting this merged @johncblandii @danjbh @osterman!


feat: Update the ESP32-C61 support status page

Description
There is a request to update the ESP32-C61 support status page.

@ginkgm PTAL


Upgrade LLVM level to 23aa5a744666

Updating LLVM to https://github.com/llvm/llvm-project/commit/23aa5a744666b281af807b1f598f517bf0d597cb causes a number of build issues.
This patch attempts to modify onnx-mlir to use LLVM at https://github.com/llvm/llvm-project/commit/23aa5a744666b281af807b1f598f517bf0d597cb.
This PR replaces uses from the MLIR Standard dialect to the new Func dialect (https://mlir.llvm.org/docs/Dialects/Func/).
We want to upgrade LLVM to https://github.com/llvm/llvm-project/commit/9778ec057cf4214241e4a970f3e764e3cf150181 at the end.
Signed-off-by: Whitney Tsang<EMAIL_ADDRESS>

Jenkins Linux s390x Build #5728 [push] Upgrade LLVM level to 23... started at 13:32

Jenkins Linux ppc64le Build #4850 [push] Upgrade LLVM level to 23... passed after 1 hr 56 min


Invalid DateTime for Reminder

I've tried every format I can think of and nothing is working.  What is the right format for datetime?

If there's anything else to clarify, feel free to reopen :)


A lot of oppened ports...

Hi, i have big problem. I have 6 servers connected to one bungee. On each server and Bungee i have Skungee installed..
Sometimes i cant start minecraft server becouse port is alredy in use (probably by Skungee Receiver)
Here is list of ports: https://pastebin.com/YRc3TSqm
Everythings is ok, but after ~8h all connected servers lost connection with bungee.. Then i cant use any SKUNGEE effects, expressions and events.
Here is error on one of the spigot server connected with bungee: https://pastebin.com/50K2DBhL
PS:
Here is my part of config
https://pastebin.com/Y03wskH4

Had this been fixed in 1.0.10a?

@TheLimeGlass yes, it is fixed but i have another problem.
When i restart "server1" then if i check online status of "server1" on server2 then i have OFFLINE.
I need to restart bungee to "server1" online status back to previous.

Ya i'm aware of that issue, the heartbeat packet isn't responding the way it should be. 1.1.0 fixes that issue, but it also has critical changes to Skungee in which case it's not published public. There is a branch for 1.1.0 for those interested. I have been working on making it stable enough for public release in the upcoming updates.
Relating issue would be #46


Receipt validation may fail with receiptSignatureInvalid with new receipts (SHA256)

Currently receipt validation may fail with receiptSignatureInvalid
For info about the reason, fix and workaround see: https://github.com/IdeasOnCanvas/AppReceiptValidator/issues/89#issuecomment-1695556084

https://github.com/IdeasOnCanvas/AppReceiptValidator/pull/93 should now have official fixed the issues


FormData array parameters are not split correctly

It seems that formData array parameters are not being split correctly in the 1.5.0 release. The issue is not present in 1.4.2.
The string is split on every character instead of each ,. It looks like this issue is related to the changes in  #613
The following parameter definition was used:
    - name: data
      in: formData
      required: true
      type: array
          collectionFormat: csv
          items:
              type: string

Additional info:

python --version: 3.6.5
Connexion version 1.5.0

ah shoot, I'll put up a test and a fix for this ASAP.

Thanks for the bug report @s-knibbs - sorry for any trouble this may have caused.
Please have a look at #638 and see if it fixes the problem for you!


Slow SCF convergence?

It looks like SCF convergence is slower in the current version of PySCF than in previous releases.
For instance, the example calculation on water
from pyscf import gto, scf

mol = gto.Mole()
mol.verbose = 4
mol.atom = '''
O 0 0      0
H 0 -2.757 2.587
H 0  2.757 2.587'''
mol.basis = 'ccpvdz'
mol.symmetry = 1
mol.build()

for guess in ['1e', 'atom', 'minao', 'huckel']:
    mf = scf.RHF(mol)
    mf.init_guess = guess
    mf.kernel()

takes

29 iterations to converge from the core guess
27 iterations to converge from the atom guess
17 iterations to converge from the minao guess
26 iterations to converge from the huckel guess

Water in cc-pVDZ should converge in 6-8 iterations. What's happened?!

I guess you forgot to set the unit to Bohr. But the bond length is still large.

Hey @susilehtola, thanks for bringing this up. What version of PySCF converged faster? (So we can narrow down where the change came from).
Related to @fishjojo's comment, the O-H bonds in the molecule are much longer than their equilibrium bond length so I'm not so surprised that the SCF takes a few iterations. I tried this problem in ORCA 4.2.1 and found that it also took more than 20 iterations to converge using their default SCF settings (i.e. a mixture of level shifting with first order SCF followed by second order SCF without level shifting). So I think PySCF's results are reasonable.
I surveyed a couple of different SCF options (including level shifting since it's used in other programs).
When using your minimum working example as written, almost all options take longer than 20 iterations and the energies often don't agree.

initial_guess
level_shift
max_scf_iter
energy (Ha)
scf converged
stable

1e
0
32
-75.2502
True
False

1e
0.25
46
-75.4201
True
True

1e
0.5
50
-75.4218
False
True

atom
0
27
-75.4218
True
True

atom
0.25
23
-75.4218
True
True

atom
0.5
37
-75.4218
True
True

minao
0
17
-75.2502
True
False

minao
0.25
19
-75.4218
True
True

minao
0.5
24
-75.4201
True
True

huckel
0
26
-75.2502
True
False

huckel
0.25
35
-75.4206
True
True

huckel
0.5
23
-75.4201
True
True

When using the equilibrium water geometry (from the NIST website) I get the data below, which is much more in range with what you suggested as an appropriate number of SCF iterations.

initial_guess
level_shift
max_scf_iter
energy (Ha)
scf converged
stable

1e
0
10
-76.0268
True
True

1e
0.25
12
-76.0268
True
True

1e
0.5
14
-76.0268
True
True

atom
0
8
-76.0268
True
True

atom
0.25
10
-76.0268
True
True

atom
0.5
11
-76.0268
True
True

minao
0
8
-76.0268
True
True

minao
0.25
10
-76.0268
True
True

minao
0.5
11
-76.0268
True
True

huckel
0
8
-76.0268
True
True

huckel
0.25
10
-76.0268
True
True

huckel
0.5
12
-76.0268
True
True

Here's the script I used to generate these in case you want to reproduce any of this data: mwe.py.txt

I guess you forgot to set the unit to Bohr. But the bond length is still large.

I didn't even notice that. The example should be fixed....
https://github.com/pyscf/pyscf/blob/master/examples/scf/01-h2o.py

The same geometry is used in many other examples, as well.
dft/02-gks.py
gto/10-atom_info.py
gto/11-basis_info.py
gto/12-serialization.py
scf/01-h2o.py
scf/02-ghf.py
scf/02-rohf_uhf.py
scf/03-level_shift.py
I'm not sure I'd call it H2O when the OH distance is 3.78 Å(!)

That's a good catch in those other examples, thanks @susilehtola!

The odd thing is that the calculations in #1000 don't work anymore, even though they should work....


Type merging improvement => x & void = x since y & never = never, instead of u & void = illogical constraint

Hi Guys,
I would just like to challenge some of the types engine logic here for the greater good of patterns.
I would like to recommend a change to the logic of how intersections are resolved with regards to void and never, which I see as reciprocal operations.
I would like to suggest think of/working with sets theory, then the type keywords void and never have specially meaning. cumulative, associative, distributive laws come to mind from probability and stats.
This would improve build up of types with recursion, were a default initial condition can be supplied.
Similar to SQL tricks of "1 == 1" + $WereConditional
The following similar explanation I have offered for SQL language comes to mind that I have previously given. Extract
Select rowid From BackColors where col1 not in (Select col_in From table_in where col_in is not null)

Very import in the sub-query the SQL statement in bold, italics, red is the part where the column on which the lookup is to be done, must exclude nulls. Reason a NULL will match anything, thus it will return no records to highlight.

If you imagine null as a set and null means the set is empty (nothing) then what is the not or opposite NULL then? Not of empty is full and the not of nothing is everything. This is the reason why you have to exclude nulls from the subquery as you noting the result which in tern then is everything.

Current Typescript Behavior:
void type identifier
type inter = (number | string) & void;

// impossible logical condition to meet.
const example : inter = ... ;// type must be of form number & void | (string & void), which is an impossible condition to meet.

never type identifier
type nothingEmpty = (number | string ) & never; // = never

const example : nothingEmpty = ...; //type must be of form never, removes item or type.

Suggested Behaviour, perceived improved behaviour
void type identifier
type inter = (number | string) & void;

const example : inter= 34; // Ok, type must be of form number | string
const example : inter= "testst"; // OK, type must be of form number | string

never type identifier
type nothingEmpty = (number | string ) & never; // = never

const example : nothingEmpty = ...; //type must be of form never, removes item or type.

One may also want to introduce boundaries for type simplification/resolution such as intersections and unions,
which will communicate to the compiler, were it should no longer simplify void and never conditions.
Think of using some form of brackets []. This cases below are not practical, however, example of the pattens.
[number & void] & string = number & string

or
 [number & never] & string = string

Looking forward to your feedback.

Hi, WesleyOlis!
I can tell you that you need to update your docs ;-)

Your example is that this will implicitly accidentally select nothing:
select * from myTable where val not in (select 1 union select null)

That is true. But your explanation of why this implicitly selects nothing is problematic.
By describing this as the problem of "a null will match anything" you are implicitly suggesting that this will implicitly select everything:
select * from myTable where val in (select 1 union select null)

...and that is not actually true. (This also implicitly selects nothing.)

Roughly speaking, never is meant to be a "bottom type" that contains no subtypes and no values, and is a subtype of all other types. It is dual to the "top type" of any which has no supertypes and all values, and is a supertype of all other types. The exact problem of how to mentally model never is more or less being tracked at #13803, and note that your problem directly runs into some of those issues.  (The problem in rough outline is that there is usually a bottom value corresponding to infinite loops and exceptions, but here we are talking about a bottom type corresponding to infinite loops and exceptions, and shouldn't that type only contain bottom values? See also the comments to my issue #23971 which were at least enlightening for me.)
Using void to mean any is problematic because in JavaScript void functions actually return undefined, which is the unit type in JavaScript (it has exactly one inhabitant). So if you were to intersect void = {undefined} with the set int = {0, 1, -1, 2, -2, 3, -3, ...} the proper set-intersection is never = {} because undefined is a first-class JavaScript value which happens to not be in that set.

I don't understand what problem the OP solves. Some motivating scenarios would be really useful.

in JavaScript void functions actually return undefined

I just have to correct this wherever I see it - a void-returning in TypeScript can return anything because it might be an alias to another function:
const f: () => void = () => 42; // Legal
console.log(f() === undefined); // FAlse

Oh, that's interesting and I definitely did not realize that.
I would love if at some point we could publish a sort of formal semantics for this thing, as I would not have expected something like "void is secretly an any which does not like return statements."

Well if I stick to the topic!
Their are two perspectives of analysis the types, one is based on looking at things from the perspective of sets and what they can represent, the other is from their implicit operator function that perform when resolving types, intersections and unions of types sets.
A, sets perspective:
If we look at types that can be used in a set then I see the following set of types being used, were void and any are special, I have left never out because it is more-of an operator.
void*, boolean, number, string, object, array, undefined, null, any*

void, is a key word that donates empty set.
any is a key word that donates a full set.

B, Operator perspective, when encounter with an intersected or union in type definition.

never can be used as if it were a type, but it functions as an operator in type resolution.
void, proposal, can be used as a type, but it would also now function as an operator such as in type resolution.

From operator perspective, void and never do the opersite things.
Never, basically aggressively nukes types, that are intersected or union with it.
void, basically would gracefully will morph and become the any type that it is union or intersected with.
With void and never defined with these augmented operator resolution properties for type resolution and merging. On can very easily now achieve most patterns with sets, unions, intersections, when doing recursive type processing.
never, void are consider operators, when used with union and intersection as they modify the behaviours of union and intersection, when encounter with a non-operator type set.
boolean, undefined, null, string, number, object, array, interface..
The best is when you are required to seed any problem, then you seed it with void, when void is intersected with or union with another type it nukes it self, leaving just the type is was merged with.
Their is no breaking behaviour to existing void, it still return undefined, if void has not' been merge
via union or intersection operator, something else, in which just nuke its self from the type definition.
Example, programming with a type system layer, to generate type definitions..
This is really just the basicaly
interface base
{
 type: void; // Seed value...., which will morph into the first type that is unioned with it.
 tackOnTypes() : type : string
}

interface specialisation extends base
{
tackOnArray(value : T) : type : T[]
}

type extractRecusive<T> = ifHasKey<T,'type',extractRecusive<T['type']>, T>

const instance = {....} // which is composed from many specialised instance above.

type myType = extractRecusive<typeof instance>();

Here is a whole bunch hacking around with types and other attempts, before we found very simple way, that can be simplified every more if void, is given operator capabilities when operated on by intersection and unions, when resolving types and merging types.
https://github.com/wesleyolis/tsTypesFromASchemaImplemention
https://github.com/wesleyolis/tsTypesFromASchemaImplemention/blob/master/src/schema-validation/internal/type-helpers.ts

I think this proposal is basically that the set operations of TypeScript should form two monoids:
Type union is already a monoid with never as the identity element. The idea right now is that "x is a valid element of A | B if x is a valid element of A or x is a valid element of B (or both)", and never does not contain any valid elements so never | A always reduces to A. The proposal is that this identity element should instead be void and never should be a zero element, so that never | A = never. I personally think this part is indefensible.
Type intersection is a semigroup with never as a zero element. In the most common case, where one is intersecting objects, object is an identity element, but this is not fully general. The idea is "x is a valid element of A & B if x is both a valid element of A and x is a valid element of B".  The proposal is that this should admit an identity element void and never should continue being its zero element.
I think the latter is weakly defensible on mathematical grounds, now that I know that void is secretly an any type that only enforces special semantics around return statements. I think a stronger statement is that any should be the fully general identity element. This requires that any & x which right now in my VS code (TS 2.9.1) usually reduces to any should instead reduce to x. (Right now any is a pseudo-zero, only distinguishable from the real zero element by seeing that any & never = never & any = never. This does not seem very useful.)
With that modification to any under &, the TypeScript type system has a strong basis in set theory (types can be viewed as sets of members where union and intersection are set operations on them) and in fact forms a semiring.

The have one other reason, that void should have morphing behaviour like in the return statement indicated above would be for type checking reasons.
Currently the Any compound operator, consumes all types and basically results in typing any further with any pointless!! As Any represents a fullset of possible type assignments, which means anything can happen.  Basically is better to use @ts-ignore than an Any type. [A // @ts-ignore comment suppresses all errors that originate on the following line. It is recommended practice to have the remainder of the comment following @ts-ignore explain which error is being suppressed.]
If the Void Compound operator, morphs into the first type is consumes(Basically what current happens for return type function statement assignment), then the type checking engine will still be able to perform type checking downstream, which will results in more of the program being being type checked.

One advantage of Any type have this compound operator behavior of morphing, is that it would allow
the typing engine, to be able to do further type checking, were a function or assignment is many to and any type, which can then further restrict it for more specialized evaluation... Trying to determine the cons to the two main competing narratives presented here at the moment
This is probably not a bad thing to work against: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#3

Ran into a couple of other issues over past couple days and weekend, Sent me round in couple circles, reporting couple more non-bugs, then also then vetted a couple other things with my colleague in this  area were I was wrong, but subtitle improvement can be made why went down that rabbit hole, with what I was wanting. To nights feature request and example, to clear that misconception up.
We have also been debating or opposing interpretation of Any, were it should be morphing or not.
Were I am for void morphing, from the start.
All of this has lead me to have the following understanding of the Any type, which hopefully should help in shorting out why, void should morph and any can't and should never morph.
Any, means we are not prepared to make an assumption about the type, we not for any reasons, prepared to further constrain the type. We can only know the constrained type for absolute certainty after an Any type has been validated at run time to be of a certain type form against which, we were validating, it can then after validation be assumed the type against which we have validated.
If you reading a file from disk, you are assuming it has a certain type and structure, until its has been validate to have that type, form or structure, one is making an assumption. If you wrote the file and read it again, with out validating it, you are making the assumption it is of certain form and are hoping it has been tampered with in between.
Everything that is not compiled in the same compiler instance, can have the potentially to be an assumption of the type you are making. any 3 party, could have cast the type. Any internal cast also mean you making an educated guess and assumption.
Therefore, it is with this enlightenment that Any must always consume, nuke other types, when acting as an operator with Union or Intersection, because an assumption plus anything concrete, is still yet just that an assumption, with a shadow, probability of being right.

You are overthinking this. (x: any) => Foo is a statement that I will take any sort of x and give you a Foo. (x: Bar & Baz) => Foo is a statement that I will take any x which can be described both as a Bar and as a Baz and I will return to you a Foo. It gives you an intersection of two types. From those two statements it follows that if Baz = any then we will find Bar & Baz = Bar: "anything which can be described both as a Bar and as anything" reduces directly to "anything which can be described as a Bar."
So for example if Bar is {toJSON: () => string) then every other instance of Bar & Baz for every other Baz has a toJSON property which takes nothing and returns a string. It makes no sense (more precisely, & becomes highly cognitively complex where it could have been much simpler) if one's ability to infer the existence of this property suddenly fails in the special case where Baz = any.

I hope this gives you some context on the bigger picture that we are looking at, were we current see things are going.
explicit type assignment modifier keyword for function/constructor parameters typically

Here are a couple more reason and examples of the patterns that can be formed, which now having problems with, when it comes to extends and structural typing, in which having a seed void morphing operator, would definitely simplify things as a result in perfectly recursive and simplified extraction methods, with less exceptions, because one can't initialization a property in an interface with any or void, right now, as pattern nukes all recursive intersection.
Typically we are mainly targeting methods and not properties, which means
of class interfaces, are all identical. typically it would be good to have a nominal extends, with introduction of nominal typing.
interface InterA
{
    MethodA() : this & {someTypeMinipulations};
    MethodB() : void;
}

interface InterB
{
    MethodA() : someCastingMinipulation;
    MethodB() : void;
}

interface InterC
{
    MethodA() : void;
    MethodB() : void;
}

type Structure =
{
    [index: string] : InterA | InterB | InterC
}

Basically the extract method which uses the extends key word, is absolutely pointless here,
because it is structural typing and each class is required to have a dummy member.
Typically we have had actually members, which used for recursion, however, they are then required to be seeded, if you want to use it, and seeding with any, means it will always be any.
Here as per this posts request to allow any to be a value, that can morph into the first type it is intersected with or union, would clearly have a benefit, as one would only need a single variable to be added, which also be used in type manipulation. It also simplifies things alot more, because after an extends question then type if true is constrained to that type, which means one knows the member exists.
type Extract<T extends Structure> =
{
    [K in keyof T] :
    T[K] extends InterA ? number :
    T[K] extends InterB ? boolean :
    T[K] extends InterB ? string :
    'Mistake' & T[K]
}

void as a type that can morph, which then also allows, guaranteed perfectly recursive methods to be written with out having to worry about the default initialised cases of the member variables of having to check were this class is of a certain type.
CommonKind identifier, will also not work, because the key doesn't make it structurally unique, so that is out of the question.
interface InterA
{
    MethodA() : void;
    MethodB() : void;

    commonKind : 'InterA'
}

interface InterB
{
    MethodA() : void;
    MethodB() : void;

    commonKind : 'InterB'
}

interface InterC
{
    MethodA() : void;
    MethodB() : void;

    commonKind : 'InterC'
}

At the moment we really on the fact that a method must be called, to assign the first type to __interA.
which means, alot more complicated processing is required for extraction, as the pattern is not perfectly recursive.
interface InterA
{
    MethodA() : void;
    MethodB() : void;

    __interA : void
}

interface InterB
{
    MethodA() : void;
    MethodB() : void;

    __interB : void
}

interface InterC
{
    MethodA() : void;
    MethodB() : void;

    __interC : void
}

type Structure =
{
    [index: string] : InterA | InterB | InterC
}

// Both are now equivalent.
type Extract<T extends Structure> =
{
    [K in keyof T] :
    T[K] extends InterA ? number :
    T[K] extends InterB ? boolean :
    T[K] extends InterB ? string :
    'Mistake' & T[K]
}

type Extract<T extends Structure> =
{
    [K in keyof T] :
    T[K] extends { __interA : any } ? number :
    T[K] extends { __interB : any } ? boolean :
    T[K] extends { __interC : any } ? string :
    'Mistake' & T[K]
}

However this way below more explicitly in communicating what asking, that a certain property existing,
because interface are structural, it looks advertising use interface name, doesn't mean much here.
May it would be good to read for those coming from nominal typing back ground to read, 'structural extends' or 'nominal extends', say as to not make a few times.. when working mainly with interfaces were their typically no members or properties and wanting to do type extraction. It may actually be of benefit here to differentiate the two because unless one is prepare to wrap every single class in a wrapper, one is not able to use decission logic to enhance other models classes simple.
Think of wanting to write a method to extra the AttributesValues = Value1 | Value2 | Value3 | Value4
from amazon type definitions. so that they can be suggested as keys.
RecordOptional<Attributes, string>, but to do this at a global level one wants to write a method along the lines of this, relative give take extends keyword.
type EnhanceAmazonType<T> = {
    [K in keyof T] : T[K] extends {AttributesValues: any, Value: string}
    ? RecordOptional<T[K]['AttributesValues'], string> : extends {} ?
    EnhanceAmazonType<T[K]> : T[K]

}

Target specific class interface name with a nominal type guarantee, that their be no conflict, in structurally writing an incorrect classes type for 3rd party modules, that one would like to recursively re-write definitions for.
type EnhanceAmazonType<T> = {
    [K in keyof T] : T[K] nominally extends ServerType
    ? RecordOptional<T[K]['AttributesValues'], string> : extends {} ?
    EnhanceAmazonType<T{K} : T[K]
}

this could be quite similar to unknown propsal. Mabye need to compare differences pros and cons.
https://github.com/Microsoft/TypeScript/pull/24439

It has also come to light that any from a set perspectives, should NOT include null and undefined, because those keywords are special and used to differential lack key of presents (undefined) and uninitialise contents nulls state. Especially from a patterns perspective when programming with and Any (undefined, null, Any), to be backwards compatible, explicit keyword may need to be used.
https://github.com/Microsoft/TypeScript/issues/25053

There's a lot of text here and even more confusion about what void means. I don't see any actionable change to be made; the intersection and union rules are well-established based on properties we want them to have.


file size is different than expected. download failed

itch-dl --mirror-web --api-key ............................................  https://anttihaavikko.itch.io/coup-ahoo
INFO:root:Found 1 URL(s).
INFO:root:Fetching all download keys...
INFO:root:Downloading page 1 (found 0 keys total)
INFO:root:Fetched 3 download keys.
Games:   0%|                                                                                | 0/1 [00:00<?, ?game/s]INFO:root:Downloading https://anttihaavikko.itch.io/coup-ahoo
/uploads/11449738/download: 100%| 54.5k/54.5k [00:00<00:00, 404kB/s]
https://img.itch.zone/aW1hZ2UvMjk2NTM2MS8xNzczNjAzOS5qcGc=/original/R2BnaA.jpg: 100%|138k/138k [00:00<00:00, 523kB/s]
https://img.itch.zone/aW1hZ2UvMjk2NTM2MS8xNzczNjA1MC5qcGc=/original/nUiKYa.jpg:  71%|                    | 110k/154k [00:00<00:00, 5.66MB/s]
https://img.itch.zone/aW1hZ2UvMjk2NTM2MS8xNzczNjAzOC5qcGc=/original/rSYS19.jpg: 100%|151k/151k [00:00<00:00, 3.08MB/s]
https://img.itch.zone/aW1hZ2UvMjk2NTM2MS8xNzczNjA0MC5qcGc=/original/0UQy5T.jpg: 100%| 170k/170k [00:00<00:00, 1.51MB/s]
https://img.itch.zone/aW1hZ2UvMjk2NTM2MS8xNzczNjA0MS5qcGc=/original/N0Mel8.jpg: 100%| 139k/139k [00:00<00:00, 2.84MB/s]
https://img.itch.zone/aW1nLzE3NzM2MDg2LmdpZg==/original/haGnaJ.gif:  93%|   | 2.27M/2.44M [00:00<00:00, 6.09MB/s]
ERROR:root:Game Coup Ahoo has download errors: ["File size is 55859, expected 193962 for upload {'build_id': 1117012, 'id': 11449738, 'channel_name': 'html5', 'type': 'html', 'size': 193962, 'filename': 'coup-ahoo-html5.zip', 'position': 0, 'created_at': '2024-09-11T15:40:06.000000000Z', 'storage': 'build', 'build': {'id': 1117012, 'created_at': '2024-11-07T07:17:36.000000000Z', 'version': 10, 'parent_build_id': 1116713, 'updated_at': '2024-11-07T07:17:46.000000000Z', 'upload_id': 11449738}, 'game_id': 2965361, 'updated_at': '2024-11-07T07:17:46.000000000Z', 'traits': {}}"]
INFO:root:Finished job https://anttihaavikko.itch.io/coup-ahoo (Coup Ahoo)
Games: 100%|1/1 [00:09<00:00,  9.47s/game]
Download complete!
Download failed for https://anttihaavikko.itch.io/coup-ahoo:

File size is 55859, expected 193962 for upload {'build_id': 1117012, 'id': 11449738, 'channel_name': 'html5', 'type': 'html', 'size': 193962, 'filename': 'coup-ahoo-html5.zip', 'position': 0, 'created_at': '2024-09-11T15:40:06.000000000Z', 'storage': 'build', 'build': {'id': 1117012, 'created_at': '2024-11-07T07:17:36.000000000Z', 'version': 10, 'parent_build_id': 1116713, 'updated_at': '2024-11-07T07:17:46.000000000Z', 'upload_id': 11449738}, 'game_id': 2965361, 'updated_at': '2024-11-07T07:17:46.000000000Z', 'traits': {}}

sudo pip3 install --break-system-packages itch-dl
Collecting itch-dl
Using cached itch_dl-0.4.1-py3-none-any.whl.metadata (3.9 kB)
Requirement already satisfied: beautifulsoup4<5.0.0,>=4.12.3 in /usr/lib/python3/dist-packages (from itch-dl) (4.12.3)
Requirement already satisfied: lxml<6.0.0,>=5.2.1 in /usr/lib/python3/dist-packages (from itch-dl) (5.3.0)
Collecting pydantic<2.0.0,>=1.10.15 (from itch-dl)
Downloading pydantic-1.10.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (152 kB)
Requirement already satisfied: requests<3.0.0,>=2.31.0 in /usr/lib/python3/dist-packages (from itch-dl) (2.32.3)
Collecting tqdm<5.0.0,>=4.66.2 (from itch-dl)
Downloading tqdm-4.67.0-py3-none-any.whl.metadata (57 kB)
Collecting urllib3<2.0.0,>=1.26.18 (from itch-dl)
Using cached urllib3-1.26.20-py2.py3-none-any.whl.metadata (50 kB)
Requirement already satisfied: soupsieve>1.2 in /usr/lib/python3/dist-packages (from beautifulsoup4<5.0.0,>=4.12.3->itch-dl) (2.6)
Requirement already satisfied: typing-extensions>=4.2.0 in /usr/lib/python3/dist-packages (from pydantic<2.0.0,>=1.10.15->itch-dl) (4.12.2)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests<3.0.0,>=2.31.0->itch-dl) (2024.8.30)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/lib/python3/dist-packages (from requests<3.0.0,>=2.31.0->itch-dl) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3.0.0,>=2.31.0->itch-dl) (3.8)
Using cached itch_dl-0.4.1-py3-none-any.whl (17 kB)
Downloading pydantic-1.10.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 4.4 MB/s eta 0:00:00
Downloading tqdm-4.67.0-py3-none-any.whl (78 kB)
Using cached urllib3-1.26.20-py2.py3-none-any.whl (144 kB)
Installing collected packages: urllib3, tqdm, pydantic, itch-dl
Attempting uninstall: urllib3
Found existing installation: urllib3 2.0.7
error: uninstall-no-record-file
× Cannot uninstall urllib3 2.0.7
╰─> The package's contents are unknown: no RECORD file was found for urllib3.
hint: The package was installed by debian. You should check if it can uninstall the package.

It looks like the API returns the file size of the single, uncompressed file within the archive (index.html in it is exactly 194830), while the archive itself is a little smaller. I added a change that tries to detect the archive content size for Zip and Tar archives - your game now downloads correctly without errors, please retry your download with itch-dl 0.4.3 (just published on PyPI). Thanks for the bug report!


Have UI always use TLS

Factor out the engine launching code into a common web_ui module.
Fix the generation of the host certificate to use a key compatible with Chrome (issuer key is unchanged).
Change the Gin engine startup to always run with TLS.

LGTM


netty3 LengthFieldBasedFrameDecoder skip too many

#1798
netty4 fixed, but netty3 not

Netty 3.x is EOL

@okou19900722 when you want to have this pulled in please also provide a unit test. That said netty 3 is EOL and so no new release is expected atm


Search input: missing keywords

When you land on the search results after clicking on one of the tags under 'Feeling curious', the search input field only displays the instruction and doesn't display the keyword. However, if you click on one of the work, the keyword appears.
Expected Behaviour
When users click on a tag, the search input field should display the keywords so they know what the result is about and they can modify the keywords to refine the results.
Search results

Works page

@wellcometrust/experience-devs here's the line that does it

@wellcometrust/experience-devs It might be worth treating the search input field as a component and discuss what it contains and how it scales across Works. I'll bring it up during the planning session.

@Heesoomoon it is a component, it more about how we deal with state across the application (where it comes from and how we retrieve it).
There is a second part of this conversation about storing sensitive state in the URL, and the implications of that (or not doing that) - happy to feed back on that, but probably better in person, or you can read it as part of the draft RPC here.

scale

When you say scale, do you mean visually, or technically? If technical what are your concerns?

@jamesgorrie In terms of scale, it's more to do with the functionality. A few weeks back, we briefly talked about the concept of 'full' and 'compact' mode of the Search component. The full mode will have all the necessary features (input, filters, etc.) and used in search results. And the compact mode will provide quick access and used in other pages where the search isn't the primary purpose of the page.

@davidpmccormick @jamesgorrie I was checking this bug before closing it. However, it's now showing original search keywords rather than the keywords from the tag.
How to reproduce
1 Search for 'Darwin', click on the first result 'Charles Darwin, portrait'.
2 Click on 'Portrait Prints' under Type/Technique. The search input still displays 'Darwin'.
https://wellcomecollection.org/works?query="Portrait prints"

@Heesoomoon I've just followed the steps to reproduce in your last comment and I'm seeing it working as expected ("Portrait prints" in the search box). Can this be closed?


Oculus Quest: VR laser pointer not on when entering VR

This issue occurs intermittently, but it's something we see with a high degree of regularity.

Load a site with a perf intensive VR scene
Enter VR
Controllers will have no laser

If they DO have a laser enabled, exit VR and re-enter VR... And then the laser most likely won't be enabled. (The re-entering VR part repros consistently)

@RaananW is out for the week but he will look at this issue next week

Looking into it. Just making sure - are you using the latest alpha, or is this an issue with 4.0?

@Exolun , is it still happening? What babylon version are you using? Thanks :-)

@RaananW Yep can still repro in a playground with Latest selected - used the playground below.
https://www.babylonjs-playground.com/#TAFSN0#260
We have a workaround on our side to force-enable the lasers by calling _activatePointer after an initial delay on init.  Seems like it may be a timing issue.

we'll take care of this on our side here. should work out of the box :-)

the toggle laser buttons can be used as well (A or X), but  after the PR is merged, it will be on automatically.
The reason (if anyone is interested :-) ) was that the quest fires the gamepad-connected events after entering VR but before being in fullscreen (vr mode). i now check if the VR mode has entered (under the assumption it will not have worked if there was a problem).


self.remove() does not take effect immediately when called within an updater function

Description of bug / unexpected behavior

I noticed that in updater functions, self.remove() does not take effect immediately but only after the self.wait() function has completed or other "code_pause_point". (Testing shows that self.add() takes effect immediately.) Is this a bug or a feature?
Expected behavior

self.remove() will take effect immediately.
How to reproduce the issue

from manim import *

class DelayRemoveTest(Scene):
    def delay_remove(self, *args, delay: float = 0):
        start_time = self.renderer.time
        mob_for_test = Circle(2)

        def update(dt):
            if self.renderer.time - start_time >= delay:
                self.remove(*args)
                self.add(mob_for_test)
                self.remove_updater(update)

        self.add_updater(update)

    def construct(self):
        # time info for test
        whole_time = 7
        n = NumberLine(include_numbers=True, x_range=[0, whole_time]).to_edge(DOWN)
        progress_bar = Line(n.n2p(0), n.n2p(whole_time)).set_stroke(color=YELLOW, opacity=0.5, width=20)
        self.add(n, progress_bar)
        turn_animation_into_updater(Create(progress_bar, run_time=whole_time, rate_func=linear))
        # test code begin
        circle_01 = Circle(0.5).move_to(UP)
        circle_02 = Circle(0.5).move_to(DOWN)
        square = Square(0.5)
        self.add(circle_01, circle_02, square)
        self.delay_remove(circle_01, circle_02, delay=2)
        self.wait(4)
        self.wait(3)

Additional media files

https://github.com/user-attachments/assets/f7e25449-f4c4-488a-a2dc-8ab197634b81
Logs
Terminal output

PASTE HERE OR PROVIDE LINK TO https://pastebin.com/ OR SIMILAR

System specifications
System Details

OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)):
RAM:
Python version (python/py/python3 --version):
Installed modules (provide output from pip list):

PASTE HERE

LaTeX details

LaTeX distribution (e.g. TeX Live 2020):
Installed LaTeX packages:

Additional comments

In every play/wait call, Manim tries to detect which objects might be modified. For those objects that it thinks remain unchanged, it paints them to the background (that is only rendered at the beginning of a call) -- which also makes it look like the object remains there until the end of the wait call.
This only happens when objects do not know that they might be modified, which in this case Manim does not detect. A simple solution is attaching the removal-updater to individual mobjects instead of to the scene; mobjects with attached time-based updaters are never considered static.
It is probably not worth it to invest time into trying to make the detection whether a mobject is static more intelligent as this mechanism does not exist any longer in the reworked renderer, as far as I know.

In every play/wait call, Manim tries to detect which objects might be modified. For those objects that it thinks remain unchanged, it paints them to the background (that is only rendered at the beginning of a call) -- which also makes it look like the object remains there until the end of the wait call.
This only happens when objects do not know that they might be modified, which in this case Manim does not detect. A simple solution is attaching the removal-updater to individual mobjects instead of to the scene; mobjects with attached time-based updaters are never considered static.
It is probably not worth it to invest time into trying to make the detection whether a mobject is static more intelligent as this mechanism does not exist any longer in the reworked renderer, as far as I know.

After testing, placing remove() inside an updater of mobjects still does not make remove() take effect immediately. And this issue occurs regardless of whether Cairo or OpenGL is used.
The code:
from manim import *

class DelayRemoveTest(Scene):
    def construct(self):
        # time info for test
        whole_time = 7
        n = NumberLine(include_numbers=True, x_range=[0, whole_time]).to_edge(DOWN)
        progress_bar = Line(n.n2p(0), n.n2p(whole_time)).set_stroke(color=YELLOW, opacity=0.5, width=20)
        self.add(n, progress_bar)
        turn_animation_into_updater(Create(progress_bar, run_time=whole_time, rate_func=linear))
        # test code begin
        circle_01 = Circle(0.5).move_to(UP)
        circle_02 = Circle(0.5).move_to(DOWN)
        square = Square(0.5)
        self.add(circle_01, circle_02, square)
        start_time = self.renderer.time
        mob_for_test = Circle(2)
        def remove_update(mob, dt):
            if self.renderer.time - start_time >= 2:
                self.remove(mob)
                self.add(mob_for_test)
                mob.remove_updater(remove_update)
        circle_01.add_updater(remove_update)
        self.wait(4)
        self.wait(3)

The output mp4 file:
https://github.com/user-attachments/assets/146b32a3-1c76-490a-afd5-6e629bd4cd1a

In every play/wait call, Manim tries to detect which objects might be modified. For those objects that it thinks remain unchanged, it paints them to the background (that is only rendered at the beginning of a call) -- which also makes it look like the object remains there until the end of the wait call.
This only happens when objects do not know that they might be modified, which in this case Manim does not detect. A simple solution is attaching the removal-updater to individual mobjects instead of to the scene; mobjects with attached time-based updaters are never considered static.
It is probably not worth it to invest time into trying to make the detection whether a mobject is static more intelligent as this mechanism does not exist any longer in the reworked renderer, as far as I know.

After testing, placing remove() inside an updater of mobjects still does not make remove() take effect immediately. And this issue occurs regardless of whether Cairo or OpenGL is used.
The code:
from manim import *

class DelayRemoveTest(Scene):
    def construct(self):
        # time info for test
        whole_time = 7
        n = NumberLine(include_numbers=True, x_range=[0, whole_time]).to_edge(DOWN)
        progress_bar = Line(n.n2p(0), n.n2p(whole_time)).set_stroke(color=YELLOW, opacity=0.5, width=20)
        self.add(n, progress_bar)
        turn_animation_into_updater(Create(progress_bar, run_time=whole_time, rate_func=linear))
        # test code begin
        circle_01 = Circle(0.5).move_to(UP)
        circle_02 = Circle(0.5).move_to(DOWN)
        square = Square(0.5)
        self.add(circle_01, circle_02, square)
        start_time = self.renderer.time
        mob_for_test = Circle(2)
        def remove_update(mob, dt):
            if self.renderer.time - start_time >= 2:
                self.remove(mob)
                self.add(mob_for_test)
                mob.remove_updater(remove_update)
        circle_01.add_updater(remove_update)
        self.wait(4)
        self.wait(3)

The output mp4 file:
https://github.com/user-attachments/assets/146b32a3-1c76-490a-afd5-6e629bd4cd1a

Very interesting, thanks for the thorough investigation! In this case it might be possible that something else is responsible.
It is possible that while remove does remove the mobject immediately from the scene, it is not removed from the list of mobjects that are being processed by the renderer.
As a workaround, you could replace
self.remove(mob)

with
mob.set_fill(opacity=0)
mob.set_stroke(opacity=0)
self.remove(mob)

which should be reflected immediately when rendering.
I actually find it very odd that adding mobjects does seem to work mid-animation then. Something very weird is going on here.


Router container image published

Would it be possible to build a Docker container image alongside the other binaries built during cd for the Apollo Router/plugin?
Perhaps this can be pushed to the Github container registry, with a tag we can pin against (latest, SHA).
If you're open to the idea & need someone else to pick it up, happy to attempt a PR.

Yes, definitely. If you wish to create a Pull Request I would love to merge it! :)

@kamilkisiela I've taken a stab here https://github.com/kamilkisiela/graphql-hive/pull/324 but it likely needs some setup & tweaking from yourself before it's mergeable 🙏🏻

#324

https://github.com/kamilkisiela/graphql-hive/pkgs/container/graphql-hive

💥 Thanks @kamilkisiela


Put cdi-full group on tests that rely on non-empty beans.xml to affect behavior

#334
Signed-off-by: Scott M Stark<EMAIL_ADDRESS>

I did not change the package name of these tests to be under the org.jboss.cdi.tck.tests.full.* package. Is this something that should be done?

In hindsight, I wish we never agreed to move the full-only tests into a full package, it's only made a mess. But we should be consistent, so I'd move these tests too :-)
I didn't look at the tests properly, perhaps some of them could/should be copied/rewritten to not use beans.xml, so that we don't lose coverage of Lite.

They should be moved under full package for consistency.
However, some of these tests seem like they could be just adjusted as they don't really test contents of beans.xml.
I'll look into it and provide a PR.

Closing in favor of https://github.com/eclipse-ee4j/cdi-tck/pull/338


meta/favicon: fixes, enhanced

https://realfavicongenerator.net/favicon_checker?protocol=http&site=app.decenterai.com

[x] - [ ] Couldn't generate: android-chrome-512x512.png with https://realfavicongenerator.net as the logo used was small. @VictorKaycee17 kindly share a bigger logo for favicon.
[ ] Fix: Mac OS X El Capitan Safari @Codebox124
[ ] Fix: iOS Safari @Codebox124
[ ] Fix: Android Chrome  @Codebox124  after @VictorKaycee17 shares a larger input png. Use it to generate the favicons and see if it has android-chrome-512x512.png

@Codebox124 what's the update on this tick. Kindly tick the fixes that has been applied

@Codebox124 use this to generate favicon: https://drive.google.com/file/d/1lc9IqPgCQETJTpNEWU-Vgpwdj4IIFnHv/view?usp=share_link


s.get("https://manage.office.com") fails with _ssl.c:504: EOF occurred in violation of protocol

I am behind a proxy. When I execute sess.get("https://google.com") I get a 200 status_code but when I try the same with sess.get("https://manage.office.com") it fails with _ssl.c:504: EOF occurred in violation of protocol
Also requests is not installed. I have placed it in ./lib/ and import it form there. There is another folder named requests-2.9.1.dist-info. So I guess the requests version is 2.9.1. Let me know if I can provide any other information to debug this.
This is the first time I am submitting an issue on github. Let me know if I have made any mistakes and will rectify it.

[root@xcpnhigas003 office365audit]# python test_proxy
200
Traceback (most recent call last):
File "test_proxy", line 17, in
response = sess.get('https://manage.office.com', proxies=proxies, verify=False)
File "/etc/netwitness/ng/logcollection/content/collection/cmdscript/office365audit/lib/requests/sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
File "/etc/netwitness/ng/logcollection/content/collection/cmdscript/office365audit/lib/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/etc/netwitness/ng/logcollection/content/collection/cmdscript/office365audit/lib/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/etc/netwitness/ng/logcollection/content/collection/cmdscript/office365audit/lib/requests/adapters.py", line 447, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
******************************************************************************8
Python code
import os
os.sys.path.append(os.path.dirname(os.path.abspath('__file__')))
os.sys.path.append(os.path.join(os.path.dirname(os.path.abspath('__file__')), "lib"))
import requests
proxies = {
    'http':'http://xxx:xxx@yyy:8080',
    'https':'http://xxx:xxx@yyy:8080'
}
sess = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=20)
sess.mount('https://', a)
response = sess.get('https://google.com', proxies=proxies, verify=False)
print(response.status_code)
response = sess.get('https://manage.office.com', proxies=proxies, verify=False)
print(response.status_code)

System info:
Python 2.7.5 (default, Jul 10 2014, 16:10:08)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

It’s highly likely that you are having problems with the TLS connection: you are running an ancient operating system and it will lack a bunch of features we need. I strongly, strongly suggest you try a newer distribution to see if your problem reproduces.

Thanks Lukasa for your comment.
I have tried this from a different box with the same os and openssl version and there it works.  This is a production environment where we are trying to run our script and don't have the option to update any software. Is there any workaround I can try.
Also I had a more conceptual question. Since we are using ssl proxy(B), the ssl connection is established between my system(A) and proxy(B), and between B and https://manage.office.com right? So would it be right to say that the actual problem would be with the ssl libraries being used at the proxy and not at A?
I tried wget and that works

[root@xcpnhigas003 office365audit]# wget --no-check-certificate https://manage.office.com
--2017-10-14 11:06:06--  https://manage.office.com/
Resolving proxy.xxx.com... yyy.yyy.yyy.yyy
Connecting to proxy.xxx.com|yyy.yyy.yyy.yyy|:8080... connected.
WARNING: cannot verify manage.office.com's certificate, issued by<EMAIL_ADDRESS>  Self-signed certificate encountered. Proxy request sent, awaiting response... 200 OK Length: 0 Saving to: index.html.2'
[ <=>                                                                                ] 0           --.-K/s   in 0s

2017-10-14 11:06:07 (0.00 B/s) - `index.html.2' saved [0/0]

So is the issue with the python libraries?

I have tried this from a different box with the same os and openssl version and there it works. This is a production environment where we are trying to run our script and don't have the option to update any software. Is there any workaround I can try.

Can you try showing me the output of using curl -v to make a similar request on the box with the problem?

Also I had a more conceptual question. Since we are using ssl proxy(B), the ssl connection is established between my system(A) and proxy(B), and between B and https://manage.office.com right? So would it be right to say that the actual problem would be with the ssl libraries being used at the proxy and not at A?

No, Requests doesn’t support that proxy model. Instead Requests is using CONNECT to tunnel a TCP connection through proxy B and then establishing the TLS handshake, so the proxy is only relevant if it is deliberately intercepting that handshake and trying to perform a MITM attack on the connection.

curl output below. Is this what you wanted

[root@xcpnhigas003 office365audit]# curl -v https://manage.office.com

About to connect() to proxy proxy.xxx.com port 8080 (#0)
Trying yyy.yyy.yyy.yyy... connected
Connected to proxy.xxx.com (yyy.yyy.yyy.yyy) port 8080 (#0)
Establish HTTP proxy tunnel to manage.office.com:443
Proxy auth using Basic with user 'svc_s_siemllbab'

CONNECT manage.office.com:443 HTTP/1.1
Host: manage.office.com:443
Proxy-Authorization: Basic c3ZjX3Nfc2llbXRzYjAxOlh6eUpRNXU2b05BaGRsN0w=
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 Connection established
< Set-Cookie: BIGipServerPool_VIPProxys=1779244972.36895.0000; expires=Sat, 14-Oct-2017 18:01:07 GMT; path=/
<

Proxy replied OK to CONNECT request
Initializing NSS with certpath: sql:/etc/pki/nssdb
warning: ignoring value of ssl.verifyhost
skipping SSL peer certificate verification
SSL connection using TLS_RSA_WITH_AES_256_CBC_SHA
Server certificate:

  subject: CN=manage.office.com,OU=Microsoft Corporation,O=Microsoft Corporation,L=Redmond,ST=WA,C=US

  start date: Feb 14 21:26:10 2017 GMT

  expire date: Mar 14 21:26:10 2018 GMT

  common name: manage.office.com

  issuer: E=0901seguretatinternet@yyy.com,CN=proxybc03.xxx.com,OU=IT,O=some org,L=Sabadell,ST=Barcelona,C=ES

GET / HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Host: manage.office.com
Accept: /

< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Pragma: no-cache
< Expires: -1
< Server: Microsoft-IIS/8.5
< X-AspNet-Version: 4.0.30319
< X-Powered-By: ASP.NET
< Date: Sat, 14 Oct 2017 17:56:08 GMT
< Content-Length: 0
< Proxy-Connection: Keep-Alive
< Connection: Keep-Alive
< Age: 0
<

Connection #0 to host proxy.xxx.com left intact
Closing connection #0

You seem to have authenticated with the proxy here: I wonder if we used netrc for the proxy request with Requests. Mind adding your username and password to the proxy URL in Requests to see if that fixes it? That is: http://proxyusername:proxypassword@proxyhost:proxyport

I had added the proxyusername and  proxypassword in the original request. I just replaced the actual username and password with xxx. Reposting that part of the code.
import os
os.sys.path.append(os.path.dirname(os.path.abspath('__file__')))
os.sys.path.append(os.path.join(os.path.dirname(os.path.abspath('__file__')), "lib"))
import requests
proxies = {
    'http':'http://xxx:xxx@yyy:8080',
    'https':'http://xxx:xxx@yyy:8080'
}
sess = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=20)
sess.mount('https://', a)
response = sess.get('https://google.com', proxies=proxies, verify=False)
print(response.status_code)
response = sess.get('https://manage.office.com', proxies=proxies, verify=False)
print(response.status_code)

Did that work any better for you?

No. same issue. I am able to make a call to https://google.com and https://login.microsoftonline.com but for https://manage.office.com I get the same ssl error.

I don't know anything about your issue with requests, but you can also test ssl connections using openssl to see what it thinks about it:
openssl s_client -connect $HOSTNAME:$PORT -CAfile $PATH_TO_CA_ROOT
That will be a good sanity check.

Thanks @bkreider. This system has an old version of openssl and it does not have the -proxy option so that I can run openssl s_client from behind a ssl proxy.
I no longer have access to the system. We can close this issue. I will reopen it later if required.


Inconsistent coverage report if using jest config.json from sub directory

I don't get the same coverage report depending of the location of my jest config.json.
I made a repository to reproduce the issue https://github.com/Edistra/jest_coverage_report_issue
I've just written a simple function file and its associated test in src folder.
My jest.config.json, at the root of my project, looks like
{
  "roots": [
    "src",
    "node_modules"
  ],
  "collectCoverage": true,
  "collectCoverageFrom": [
    "src/**.js"
  ]
}

I've got another one in a config folder with the appropriate paths
{
  "roots": [
    "../src",
    "../node_modules"
  ],
  "collectCoverage": true,
  "collectCoverageFrom": [
    "../src/**.js"
  ]
}

My npm scripts are simple
  "scripts": {
    "test": "jest --config jest.config.json",
    "test-issue": "jest --config config/jest.config.json"
  }

The first one generates a correct report

The second one seems to consider that my function is not covered

This diff fixes it:
diff --git i/config/jest.config.json w/config/jest.config.json
index 7c9d500..6570050 100644
--- i/config/jest.config.json
+++ w/config/jest.config.json
@@ -1,10 +1,11 @@
 {
+  "rootDir": "../",
   "roots": [
-    "../src",
-    "../node_modules"
+    "src",
+    "node_modules"
   ],
   "collectCoverage": true,
   "collectCoverageFrom": [
-    "../src/**.js"
+    "src/**.js"
   ]
 }

Would probably be fixed by https://github.com/facebook/jest/pull/4587

That diff sort of fixes it but then you have to put <rootDir>/config/ everywhere in it instead of just<rootDir>/


A key to hold the "business unit" for resource tagging in Testing Farm

Description
As of now, the following is needed to propagate an optional business unit tag to Testing Farm, to tag provisioning resources for better accounting granularity:
  tf_extra_params:
    environments:
      - settings:
          provisioning:
            tags:
              BusinessUnit: foo

Can Packit add a key for this value, and take care of propagating it to Testing Farm?
tf-business-unit: foo

Benefit

UX improvement - as a project owner, all I want is to communicate a single piece of information. To do so, I need to add (or copy & paste) 6 lines of YAML, and I need to know the special tag name.
implementation details leaking - the name of the tag, even the fact this information is communicated to TF via a tag, are implementation details of Packit and TF integration. If the tag name changes, all affected projects would need to update their settings. If the channel used to propagate this information changes, all affected projects would need to update their settings.

Importance
Not a blocker, but the current option looks way too much like a workaround.
What is the impacted category (job)?
Testing Farm tests, General
Workaround

[X] There is an existing workaround that can be used until this feature is implemented.

Participation

[ ] I am willing to submit a pull request for this issue. (Packit team is happy to help!)

Hi @happz !
Thanks for creating the issue!
I hope this is the last TF option we need to implement manually... Actually, that's why we've introduced tf_extra_params ...;) But I agree would be easy to do and can simplify this.
(As discussed internally, we can't decide this value automatically. Maybe use a default constructed from the project's URL, but this info is already sent with the payload so it can be used on the TF part.)
Since there is a workaround and it's a one-time action, I don't promise anything but we can guide you to implement that if you want to speed this up.

What's needed:

[ ] Add the option to the schema. Similarly to other options.
[ ] Add the config value to the payload

Oh, and an idea. We can enforce this for people using internal TF, WDYT?

Still relevant but not high priority. If someone wants to give it a look we can help.


request help: How to pass headers from plugin runner to upstream

Issue description
We want to send custom headers from go plugin runner to the upstream. We have tried adding it to both request object and response object in custom plugin filter , but both are not working.
w http.ResponseWriter, r pkgHTTP.Request
r.Header().Set("x-team-info","abc")
w.Header().Add("x-team-info","abc)

Looking for a way to send headers from plugin runner filter to the upstream. We want to append new headers to the upstream.

@RagavMaddali I will check this question later.

@RagavMaddali I have not reproduced the problem in my development environment.
Below is my configuration:
APISIX Route
curl http://<IP_ADDRESS>:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "uri": "/go/runner",
  "plugins": {
    "ext-plugin-pre-req": {
      "conf": [
        { "name": "say", "value":"{\"body\":\"hello\"}"}
      ]
    }
  },
  "upstream": {
        "type": "roundrobin",
        "nodes": {
            "<IP_ADDRESS>:1980": 1
        }
    }
}'

Plugin
func init() {
	err := plugin.RegisterPlugin(&Say{})
	if err != nil {
		log.Fatalf("failed to register plugin say: %s", err)
	}
}

// Say is a demo to show how to return data directly instead of proxying
// it to the upstream.
type Say struct {
}

type SayConf struct {
	Body string `json:"body"`
}

func (p *Say) Name() string {
	return "say"
}

func (p *Say) ParseConf(in []byte) (interface{}, error) {
	conf := SayConf{}
	err := json.Unmarshal(in, &conf)
	return conf, err
}

func (p *Say) Filter(conf interface{}, w http.ResponseWriter, r pkgHTTP.Request) {
	body := conf.(SayConf).Body
	if len(body) == 0 {
		return
	}

	r.Header().Set("X-A6-Runner", "Go")
	r.Header().Set("X-A6-Hello", "World")
}

Request & Response
$ curl http://<IP_ADDRESS>:9080/go/runner
---Headers
x-a6-runner:Go
x-a6-hello:World
host:<IP_ADDRESS>:9080
x-real-ip:<IP_ADDRESS>
x-forwarded-for:<IP_ADDRESS>
x-forwarded-proto:http
x-forwarded-host:<IP_ADDRESS>
x-forwarded-port:9080
user-agent:curl/7.68.0
accept:*/*
---Args
---URI
/go/runner
---Service Node
Ubuntu-DEV-1980

Note: If you want to forward the request headers set in the Runner to the upstream, do not manipulate the http.ResponseWriter object, it will terminate the request.

Tnq for the information. We will update this thread soon.

@shuaijinchao
I have one question, while creating the upstream we are using adding the following attributes :
"pass_host": "rewrite",
"upstream_host": "value",

Will this configuration override the headers being generated on the go plugin ?

I think you can verify this locally.
Also note that the runner plugin has two phases that can be invoked.

Works for me
w http.ResponseWriter, r pkgHTTP.Request
r.Header().Set("x-team-info","abc")


UNMET PEER DEPENDENCY<EMAIL_ADDRESS>

When I try to install laravel-mix via
npm install laravel-mix --save-dev
I always get the following error message:
UNMET PEER DEPENDENCY<EMAIL_ADDRESS>and at the bottom:
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed. npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
I run this in a fresh installation of Homestead and got into the vm via vagrant ssh.

@hebinet try updating your nodejs version

They're warnings, not errors. You can ignore them.

@QWp6t
This is some kind of circular dependency.
I had to fix it like this:
npm install -g<EMAIL_ADDRESS>npm install
npm install<EMAIL_ADDRESS><EMAIL_ADDRESS>
Otherwise, I couldn't use features like HMR because npm install -g webpack web-dev-server gives me webpack version 1.x
Spent like 8 hours trying to understand why HMR was not working and it because laravel-mix doesn't install webpack and it's dependencies correctly. From the user standpoint, I don't want even care about the dependency packages, but without these packages, it's impossible to use the feature properly and I don't understand why it's not actually required.

It installs them correctly, sorta. See also: https://github.com/JeffreyWay/laravel-mix/issues/22#issuecomment-269700938
The issues that you're experiencing indicate that you might be using an older version of node. You should switch to yarn if you want to ensure parity with what jway uses, or at the very least update nodejs and npm to their latest stable versions.
You shouldn't have to install any of these dependencies globally. And running those install commands without specifying a version means that you'll be getting the latest releases (not pre-releases) of them. Laravel Mix uses pre-releases of webpack and webpack-dev-server, which could be another reason you were having issues.

@QWp6t
As far as I'm concerned these are the stable versions of npm and node.
$ npm -v
3.10.8
$ node -v
v6.9.1

Not latest, though. But it shouldn't be the issue. Googling this error gives a ton of links meaning there is an actual problem with webpack and webpack-dev-server packages.
Should I try to install node v7.x and npm v4.x?

Nah, you should be good with those versions afaik. As mentioned above, laravel-mix uses pre-releases of webpack and webpack-dev-server, so mixing those with globally installed releases might also be confusing things.
At this point, I'm somewhat stumped. If it were me, I'd be nuking everything and starting all over. Maybe someone else will weigh in with a better idea?

Yeah, I'd nuke the node_modules directory and try again.

I am also have this same issue....this is a bug or just a warning??????

I got this issue, too, when I install html-webpack-plugin, using 'npm i --save-dev html-webpack-plugin' command.
``-- UNMET PEER DEPENDENCY<EMAIL_ADDRESS>

@cnpengwei Doesn't matter. It should not affect anything much. This is just a warning rather than an error.


Sitemap creation in blog

Do you have any plans to work on sitemap creation in the blog to make it more search engine friendly?

No I'm too busy at the moment.
But it should be straight forward to implement:

Create a controller / endpoint with url /sitemap.xml
Load all blog post urls from database
Create XML structure
Optional: Add output to caching

Thanks for sharing the technical steps to implement the sitemap.


failed to get transactions for block

Bug description
I have setup and started bdjuno to index cosmos-hub (tag: v0.47.x). I followed online documentation from https://docs.bigdipper.live/cosmos-based/parser/setup/
Indexing started, but it looks like block transactions are not downloaded for some blocks. I see this error in logs:
10:42AM ERR re-enqueueing failed block err="failed to get transactions for block: rpc error: code = Unavailable desc = connection error: desc = "error reading server preface: http2: frame too large"" height=19151414
Steps to reproduce
I have used the following setup for RPC and gRPC:
node:
type: remote
config:
rpc:
client_name: juno
address: https://cosmos-rpc.publicnode.com:443
max_connections: 20
grpc:
address: cosmos-grpc.publicnode.com:443
insecure: true
go version go1.22.0 linux/amd64
Expected behavior
Blocks should be downloaded without errors.

Same issue while indexing persistence chain locally.


Add redirect support

Fix for #4.

[x] Add flag to specify config file
[x] Add config option to enable RedirectAllRequestsTo
[x] verify everything still works
[x] update README

@brandonweiss Can you look this over?

Thanks so much for the PR! I really appreciate you putting in the time to actually offer a solution to the problem you have! ❤ (most don't do that)
That said, my latest comment on the issue sums up my thoughts. I decided to add some instructions to the README for now, but will definitely consider automating a redirect at the bucket-level if I see a lot of people experiencing a similar problem.
Thanks again!


:bug: Model not update for mepsLanguage

Because of the change in https://github.com/AndreasSko/go-jwlm/pull/151 the mepsLanguage field in location needs to be updated on the iOS side as well. Currently, the app crashes when it tries to show a mergeConflict, as it fails to parse the location properly.

Submitted to the app store