Establish entry point for external force fields

PR Summary:
This is my first stab at setting up foyer to interface with external force fields via entry_points. This works analogously to recipes in mbuild and similarly to a force field distributed by the openforcefield folks. The important point to repeat is that, if it is package is set up the right way, loading in an external force field to foyer does not require further modification to the foyer source code. It follows that external users can build a conda package, upload it to the cloud, and then it's there for anybody who wants to use the force field (again, without adding anything here).
This would look something like this to a user (using https://github.com/mattwthompson/OPLSAA-foyer):
$ conda install -c some-channel oplsaafoyer

>>> import foyer
>>> my_ff = foyer.external_forcefields.get_ff_path()[0] + '/oplsaa.xml'
>>> OPLSAA = foyer.Forcefield(my_ff)
/Users/mwt/software/foyer/foyer/validator.py:132: ValidationWarning: You have empty smart definition(s)
  warn("You have empty smart definition(s)", ValidationWarning)
<foyer.forcefield.Forcefield object at 0x10894d0b8>
# Can proceed from here identically to as if we loaded in the XML from inside foyer ...

There has been a lot of discussion about this sort of feature while writing the grant but I believe the only related discussion here has been #187
What do we think @mosdef-hub/mosdef-contributors?
PR Checklist

[ ] Includes appropriate unit test(s)
[ ] Appropriate docstring(s) are added/updated
[x] Code is (approximately) PEP8 compliant
[ ] Issue(s) raised/addressed?

This is pretty awesome! Just tested out and loading the forcefield and it works.
A couple of questions before I approve this:

So if you try to install multiple external forcefields, would foyer.external_forcefields.__init__ and get_ff_path() be clobbered? Can you only have one external forcefield installed at a time?
Your idea in #187 discussed forcefield versions. Is there a way to access the version listed in setup.py? Should we add a version or a name attribute to foyer forcefields? You could probably do this by actually loading the forcefield as a subclass of Forcefield in oplsfoyer.py (kind of like what we do for mbuild recipes), and then add a version attribute to that subclass.

Good point. I'm not sure how to implement this but the ideal behavior would be for them to each have similar-looking get_something() functions but append paths instead of clobbering them.

I was thinking more along the lines of using conda to manage versions of a force fields - maybe we could also tag the version and/or name but use it only as metadata?

I consider this ready for review; not much needs to be done on the foyer side of thing. There are some decisions to be made on how an external force field "package" should interact with it, see a few examples in https://github.com/mosdef-hub/forcefield_perfluoroethers/pull/4

Just summarizing some discussion with others, maybe some room to re-organize the entry points:
As it stands now, external force field are accessed via foyer.external_forcefields.PFE will return an instance of foyer.Forcefield.
Maybe the entry point should be foyer.forcefields.PFE, foyer.forcefields.OPLSAA, etc. that will return instances of foyer.Forcefield, or functions to return the path-to-XML foyer.forcefields.get_perfluoroether_path(). And if we still include any forcefields/FFXMLs in foyer, store those forcefields in foyer.lib.forcefields, but still accessible via entrypoints in foyer.forcefields.X
The next discussion point, if I recall, was versioning/storing the XMLs. OFF stores all XML versions in the HEAD/latest commit, but tagging commits and Zenodo DOIs as they go. Regardless, you could be on the latest OFF commit, but still access an old XML without checking out a new tag. So you wouldn't have to check out a particular commit/tag/release to access an old XML. The advantage is that you don't have to worry about checking out a commit - all the files are at your disposal. The disadvantage is precisely that, with all the files at your disposal, how does foyer.forcefields.PFE know which PFE-ver.x.y.z.xml to parse?

After the last changes (and my stealthy rebase/amend/force-push maneuver), this is how it looks to the user:
>>> import foyer
/Users/mwt/software/foyer/foyer/validator.py:132: ValidationWarning: You have empty smart definition(s)
  warn("You have empty smart definition(s)", ValidationWarning)
/Users/mwt/software/foyer/foyer/forcefield.py:395: UserWarning: Non-atomistic element type detected. Creating custom element for _CH4
  'Creating custom element for {}'.format(element))
/Users/mwt/software/foyer/foyer/forcefield.py:395: UserWarning: Non-atomistic element type detected. Creating custom element for _CH3
  'Creating custom element for {}'.format(element))
/Users/mwt/software/foyer/foyer/forcefield.py:395: UserWarning: Non-atomistic element type detected. Creating custom element for _CH2
  'Creating custom element for {}'.format(element))
/Users/mwt/software/foyer/foyer/forcefield.py:395: UserWarning: Non-atomistic element type detected. Creating custom element for _HC
  'Creating custom element for {}'.format(element))
>>> foyer.forcefields.OPLSAA
<foyer.forcefield.Forcefield object at 0x11b6aff98>
>>> foyer.forcefields.TRAPPE_UA
<foyer.forcefield.Forcefield object at 0x11b859c18>
>>> foyer.forcefields.PFE
<foyer.forcefield.Forcefield object at 0x11ba466a0>

Note that the last one is an "external" plugin developed in another repo. There are some other functions that return paths to globs or XMLs if a user really wants them, but these capitalized objects are the force fields themselves, loaded into memory. Since foyer/forcefields/ is now a module I moved the XMLs into a new folder so as to separate out the Python files from the data.

Random thought, I wonder if it's dangerous to have foyer.Forcefields.PFE point to a specific instance as opposed to the module/class (that hasn't been instantiated). If I chose to modify some random attribute of foyer.Forcefields.PFE.some_random_attribute, that is going to affect the state of any subsequent calls to foyer.Forcefields.PFE since all these calls are referring to the same object.
I guess the response to such an involved-use of the API should mean the user should use some other API functionality like foyer.Forcefield(foyer.Forcefield.get_perfluoroether_path()), where we are no longer dealing with the same forcefield instance/object, but rather creating a new one every time.

That's an interesting point and something we should consider when we implement versioning and if the forcefield class evolves in the future. However, right now we don't really have any user-facing attributes, I don't think?
Merging for now so we can get external packages rolling. Hopefully the location of the entry point doesn't change and we only add new features to it.


source ipv6 to send a Coap command not correct from BR

I send a get coap to a product and the destination address of answer is not with the ipv6 address of sender
I have a border router with this ipv6:
inet6 fd11:22::bf58:afb5:d0ad:fece  prefixlen 64  scopeid 0x0
inet6 fdbb:ddbd:7576:8ac9:3d9a:4e09:9924:d8ea  prefixlen 64  scopeid 0x0
inet6 fdbb:ddbd:7576:8ac9:0:ff:fe00:5800  prefixlen 64  scopeid 0x0
inet6 fe80::ec6b:a474:33d7:a5  prefixlen 64  scopeid 0x20
and a product with:
fdbb:ddbd:7576:8ac9:0:ff:fe00:b400
fd11:22:0:0:6da3:1b77:caf2:209a
fdbb:ddbd:7576:8ac9:e9ce:3e37:385e:923e
fe80:0:0:0:1c52:147b:5695:3bc5
from Border Router, i send a get Coap command to my product with host address :fdbb:ddbd:7576:8ac9:e9ce:3e37:385e:923e
the BR uses its source address  : fdbb:ddbd:7576:8ac9:0:ff:fe00:5800
and the product answers with
source address :  fdbb:ddbd:7576:8ac9:0:ff:fe00:b400
and destination address : fdbb:ddbd:7576:8ac9:0:ff:fe00:5800
so my client coap says:
( WARNING - Un-Matched incoming response message fdbb:ddbd:7576:8ac9:0:ff:fe00:b400:5683)

I think the BR don't choose the good IPv6, but also there's two address in the same subnet
Is someone can help me to resolve this issue or is it a bug?
Thanks

@nicho2 , how are you generating the CoAP ACK/Response? The APIs allow passing a otMessageInfo struct that should specify both socket and peer addresses. In most cases, this should be the same otMessageInfo struct that was received as part of the request.

For the coap client, I am using CoapThon library.
But indeed, on the product side when creating the response message, the local address is not filled with the address of the sender so the product decides on the source address itself.
Thanks


Add support for GET requests in pghistory middleware

Currently the middleware adds a context for POST, PUT, PATCH and DELETE requests. Updating middleware to add a context for GET requests along with POST, PUT, PATCH and DELETE.
Type: feature
Additional details:
Here's a sample workflow where the context if of importance during GET requests.

When a GET request goes via the auth workflow - a successful login triggers the user_logged_in signal  of the user model.
This signal is used by django to update the last_login_time attribute in the User model

@shivananda-sahu this looks good!
I looked through the code to try to understand why I didn't track GET requests in the first place.  I found https://github.com/Opus10/django-pghistory/blob/b7268ac6e39d2043f8e259ac1830f94670c9b8fb/pghistory/tracking.py#L24, which I believe was an error whenever I turned on history tracking previously during GET requests. But this issue was fixed by ignoring named cursors, and it should be fine in practice.
Let me know if you hit any issues. I think we can consider making the request types configurable too in a later release. There is a tiny overhead to serialize context data for every SQL query, so some people may prefer to turn it off for GET requests.


Scheduled maintenance

We will be performing a maintenance on our division server on May 8th between 14z and 16z.

We will be performing a maintenance on our division server on May 8th between 14z and 16z.


Geometry optimization with symmetry turned on

Hi,
I've been using PySCF and geomeTRIC to do geometry optimization. My initial attempts at this didn't work, with the optimizer usually increasing the energy every iteration. The problem seems to be when symmetry is set True. i.e., taking the water trimer/CCSD case from geometric/examples:
from pyscf import gto, scf, cc
from pyscf.geomopt.geometric_solver import optimize
mol = gto.Mole()
mol.build(
atom = [
['O',(  0.8559100000,   -1.3823600000,    0.3174600000)],
['H',(  1.6752400000,   -1.8477400000,    0.4858000000)],
['H',(  1.1176100000,   -0.4684300000,    0.2057500000)],
['O',( -1.0986300000,   -0.8583700000,    2.1731900000)],
['H',( -0.4031000000,   -1.1460800000,    1.5818400000)],
['H',( -1.0851100000,    0.0968300000,    2.1128200000)],
['O',(  1.8644800000,    1.2201800000,    1.3331100000)],
['H',(  2.0104700000,    1.8829200000,    0.6580600000)],
['H',(  2.6420500000,    0.6632600000,    1.2947900000)], ],
basis = {'O': 'cc-pvdz', 'H': 'cc-pvdz'},
symmetry = True,
)
mycc = cc.CCSD(scf.RHF(mol))
mol1 = optimize(mycc)
This just increases the energy almost every iteration. If I remove the symmetry line then it works. If this is hard to fix, perhaps it could just throw an error for now?
Best,
Nick

Bug fixed in commit 5de2156


Define the NPM organization to store all the new packages

First, analyse what we need to define the organization in NPM. Then, create the org and invite all the initial developers that will contribute to this project (they will also be the owners).

Done, we've created the @spark-ui organization scope in NPM and this is the first package published: https://www.npmjs.com/package/@spark-ui/button


❓ [QUESTION] Training a model to perform Molecular Dynamics simulations on Copper Formate System

Dear nequip developers,
We recently started training a model on a copper formate system. In essence, it was similar to the system you described in the nequip paper (48 Copper atoms and 1 formate molecule), however we used a slightly bigger system comprising 144 copper atoms and 1 formate molecule.
We generated training data similar to the approach you described, we performed nudged elastic band simulations, with 20 images, from which we chose 14 images to perform AIMD of 500 0.5fs steps at 300K. We then started training a model on this, which obtained a low prediction error on both energies and forces on the test set. However, when performing MD simulation (with LAMMPS), the model quickly broke down (we saw the formate molecule entering the copper surface, and the copper surface disintegrate badly).
We figured we needed more frames at higher temperatures to inform the model better, therefore we performed additional MD simulations at 500, 2000 and 4000 Kelvin. Besides the temperature, they were the same as the previous AIMD calculation. So, in total a dataset of 28000 structures were obtained.
These 28k structures were split into 80% training and 20% testing sets. The training set was then also divided in 80% for training and 20% for validation. The reason for this was that smaller training sets did not obtain good MD trajectories.
We used the following configuration of the network (example of yaml file):
root: results/name
run_name: name
seed: 123
dataset_seed: 456
append: true
default_dtype: float32
allow_tf32: false

# network
r_max: 5.0
num_layers: 5

chemical_embedding_irreps_out: 32x0e
feature_irreps_hidden: 32x0o + 32x0e + 32x1o + 32x1e + 32x2o + 32x2e
irreps_edge_sh: 0e + 1o
conv_to_output_hidden_irreps_out: 16x0e

nonlinearity_type: gate
resnet: false

nonlinearity_scalars:
  e: silu
  o: tanh

nonlinearity_gates:
  e: silu
  o: tanh

# radial network basis
num_basis: 8
BesselBasis_trainable: true
PolynomialCutoff_p: 6

# radial network
invariant_layers: 2
invariant_neurons: 64
avg_num_neighbors: null
use_sc: true
compile_model: false

dataset: npz
dataset_file_name: directory_to_dataset.npz
key_mapping:
  z: atomic_numbers
  E: total_energy
  F: forces
  R: pos
npz_fixed_field_keys:
  - atomic_numbers

chemical_symbol_to_type:
  H: 0
  C: 1
  O: 2
  Cu: 3

# logging
wandb: true
wandb_project: project_name
wandb_resume: true
verbose: info
log_batch_freq: 1
log_epoch_freq: 1
save_checkpoint_freq: -1
save_ema_checkpoint_freq: -1

# training
n_train: 18000
n_val: 4400
learning_rate: 0.005
batch_size: 5
max_epochs: 100000
train_val_split: random
shuffle: false #because shuffle data beforehand
metrics_key: validation_loss
use_ema: true
ema_decay: 0.99
ema_use_num_updates: true
report_init_validation: false

early_stopping_patiences:
  validation_loss: 50
early_stopping_delta:
  validation_loss: 0.01
early_stopping_cumulative_delta: false
early_stopping_lower_bounds:
  LR: 1.0e-6
early_stopping_upper_bounds:
  wall: 1.0e+100

# loss function
loss_coeffs:
  forces: 21904 #i.e. N^2 (=148^2)
  total_energy:
    - 1
    - MSELoss

metrics_components:
  - - forces
    - rmse
    - PerSpecies: True
      report_per_component: False
  - - forces
    - mae
    - PerSpecies: True
      report_per_component: False
  - - total_energy
    - mae
    - PerAtom: True
  - - total_energy
    - mae
    - PerAtom: False

# optimizer
optimizer_name: Adam
optimizer_amsgrad: true
optimizer_betas: !!python/tuple
  - 0.9
  - 0.999
optimizer_eps: 1.0e-08
optimizer_weight_decay: 0

max_gradient_norm: null

lr_scheduler_name: ReduceLROnPlateau
lr_scheduler_patience: 100
lr_scheduler_factor: 0.5

per_species_rescale_scales_trainable: false
per_species_rescale_shifts_trainable: false
per_species_rescale_shifts: dataset_per_atom_total_energy_mean

global_rescale_shift: null
global_rescale_scale: dataset_forces_rms
global_rescale_shift_trainable: false
global_rescale_scale_trainable: false

Early stopping was triggered after approximately 1350 epochs and obtained the following errors (eV). These are quite okay, only maybe that E_mae could be better but that is due to the loss function (weight ratio F:E = 148^2:1).
            0_f_rmse =  0.213254
            1_f_rmse =  0.098634
            2_f_rmse =  0.097583
            3_f_rmse =  0.046718
          all_f_rmse =  0.114047
             0_f_mae =  0.075106
             1_f_mae =  0.043834
             2_f_mae =  0.042400
             3_f_mae =  0.025226
           all_f_mae =  0.046642
             e/N_mae =  0.035423
               e_mae =  5.242538

Unfortunately, upon performing MD simulations, the system was again acting in a non-physical way.
Below are some screenshots at start, 50fs and 150fs, respectively:

We used the following MD example configuration in LAMMPS:
units real
newton off
read_data structure.data

pair_style nequip
pair_coeff * * model-deployed.pth C Cu H O
mass  1 12.0107
mass  2 63.546
mass  3 1.00794
mass  4 15.999

# Run MD
timestep 1.0
dump 1 all custom 10 traj_nvt.lammpstrj id type x y z ix iy iz
velocity all create 300.0 4928459

# temp 300K and pressure 1 atm
fix fxnvt all nvt temp 300 300 100.0 tchain 4
fix fxlmom all momentum 10 linear 1 1 1

thermo 10
thermo_style custom step etotal ke temp pe ebond eangle edihed eimp evdwl ecoul elong press vol cella cellb cellc density

run 10000

write_data system_after_nvt.restart
write_data system_after_nvt.data

Do you have any insights into what might be going wrong? Have you tried (and succeeded) to perform MD simulations on "Heterogeneous catalysis of formate dehydrogenation" section of your paper?
Thanks in advance,
Jim Boelrijk and Bart de Mooij

Hi Jim and Bart,
Yes. I did manage to run MD simulations with my formate model. It is quite a tricky thing to tune and it involves one unpublished feature that I'm writing about. If you don't mind, you can contact us via email and we can chat more on that.
One quick observation is that your force error is on the high end. The C, H, and O are all a little bit too high. It may be worth trying to the particular species '0' lower than 0.05 eV/A for MAE.
Best,
Lixin

And I think Simon did upload our Formate+Cu data, the version of used in the paper. Maybe you can try that dataset. @simonbatzner

A few other comments:

you're using a time step of 1 fs, that might be doable but is certainly on the high end for a system containing a C-H bond, I'd  recommend a maximum of 0.5f fs.
I would also try to use a bit more of an aggressive thermostat in the first few ps until the temperature has settled, then switch to a more mild one
regarding thermostats: I think Langevin thermostat is a better fit here for the small molecule
Yes, the data set is public

Hi Lixin and Simon,
Thank you for the quick response. The MD simulation looks considerably better now without the unit mismatch.
Also, we observed a weird spike in the validation and training loss plots (taken from w&b). Maybe you know an explanation for this as it looks quite weird to me?
Training Loss:

Validation Loss:

To speed up future model generation/training, would you mind telling me how large your training, validation and test sets are to obtain an accurate MD simulation? Is there a rule of thumb of how much training data to use as the equivariance reduces the required training data to get a good model?
Best,
Bart

Hi Bart, that's good to hear.
Re the spikes, this can sometimes happen in Deep Learning (and is not particular to NequIP). What happens is that during training the network encounters a bad batch which leads to large gradients which leads to a bad step in weight space, causing the network to blow up. Usually this recovers to the loss value it was at before and keeps improving. In your case, it looks however like the learning rate scheduler kicked in. If there is no improvement for _ epochs, the LR will be reduced. Due to the spike, there was no improvement and the LR dropped.
We are looking into ways of fixing this adaptively, but I think more generally no perfect solution in Deep Learning exists. Until then, one thing that works is to either reduce the LR (0.001 should also work well) or increase the batch size.
Regarding train/val/test set sizes, that is as you can imagine highly system specific. For many bulk systems, 1,000 is a good start. For heterogeneous catalysis, including bond breaking, part of the challenge is that you have a super diverse energy landscape with many different possible states. Reactions are notoriously tricky to get right with FFs. In our case, 2.5k was enough for good diffusion, but @nw13slx will know more details (or feel free to email us).

Hi Simon,
Thank you for your explanation. That makes sense.

Converting this to a discussion. Feel free to reach out via email if you have more questions.


[WIP] Avoid whole memory clone when generating copy steps

Summary

Replace whole memory-clone with combining source data and destination memory to slot bytes. Main logic is implemented in a common function combine_copy_slot_bytes.

Update callop, calldatacopy, codecopy, extcodecopy and returndatacopy in bus-mapping.

still wip or ready for review?

Sorry, still wip. Suppose to also fix calldatacopy, returndatacopy and callop, and merge the code ofCombine the slot bytes into one function.
Could you help review if the current method of Combine the slot bytes is right? Thanks.

Could you help review if the current method of Combine the slot bytes is right?

This looks right. It would be even clearer to work with lengths rather than "ends" as much as possible, but that's just my opinion.

Hi @lispc , @DreamWuGit @lightsing and @naure , I update it for the related opcodes (callop, calldatacopy, codecopy, extcodecopy and returndatacopy), this is ready for review.
please help review when you have time. Thanks.


Fix generator behavior concret inheritance

Hi,
This fix the behavior concret inheritance (generate the right use for PropelQuery)
it fix also some use statments in tests.
There is still some tests failling, issue with parent classes

should be mergeable now ;)


Sending metadata once upload is done

Question
We need to send some custom metatdata once the upload finishes i.e. when final chunk gets uploaded. It can be some custom header as well.
Setup details
Please provide following details, if applicable to your situation:

Operating System: macOS
Used tusd version: v1.0.2
Used tusd data storage: AWS S3
Used tusd configuration: x
Used tus client library: tus-js-client, tus-java-client

tusd does not have such a feature yet. As of right now, it cannot send custom data back to the client. You would have to implement your own endpoint, so the client can fetch this metadata.


Deprecate AssetServlet#getResourceUrl(String)

AssetServlet has getResourceURL() and getResourceUrl(String), which is deemed potentially confusing by Sonar.
getResourceURL() goes back all the way to 2012 in commit 482b9f552ecb1d0a44a11fba7acdfb35843f2723 whereas getResourceUrl(String) is a relative newcomer, added in 2015 in cc20a03a3a297646589ea50c1cd9d8ef5a8c1cc4.
Provide getResourceURL(String) as a preferred replacement for getResourceUrl(String), but delegate to the existing method for now, to give anyone subclassing AssetServlet time to migrate their usage.

The build failures are weird - I'll take a proper look tomorrow

The build failures are weird - I'll take a proper look tomorrow

Error:  /home/runner/work/dropwizard/dropwizard/dropwizard-servlets/src/main/java/io/dropwizard/servlets/assets/AssetServlet.java:[305,4] error: [SuppressWarningsDeprecated] Suppressing "deprecated" is probably a typo for "deprecation"
Error:      (see https://errorprone.info/bugpattern/SuppressWarningsDeprecated)
Error:    Did you mean '@SuppressWarnings("deprecation")'?

Error:  /home/runner/work/dropwizard/dropwizard/dropwizard-servlets/src/main/java/io/dropwizard/servlets/assets/AssetServlet.java:[305,4] error: [SuppressWarningsDeprecated] Suppressing "deprecated" is probably a typo for "deprecation"
Error:      (see https://errorprone.info/bugpattern/SuppressWarningsDeprecated)
Error:    Did you mean '@SuppressWarnings("deprecation")'?

errorprone is my middle name!


Single Node Multiple Iteration Optimization

Uses the cyclades partitioning algorithm to partition sources into non-conflicting batches for multi iter optimization
Target source elbo args share underlying variational parameters, which are updated multiple times in the process_sources function (by multiple threads). This function uses maximize_f to optimize the variational parameters.
Modify one_node_infer and one_node_infer_multi to also return array of objective values
Test case to ensure that cyclades is partitioning updates to non-conflict batches
Test case to ensure that when optimizing sources, multi_iter gets to a higher sum objective values than both multi_iter with fewer iterations, and one_node_infer
Todo: Add more test cases with overlapping sources to make sure multi_iter gets to a higher objective value

Great! I'll fix these up sometime today and update all this

Let's not merge this just yet, I get a seg fault with 8/12 threads for some reason (4 threads seems to work fine... I'll need to check this out later)

Wait hmmm.... Running with 8 threads on the login nodes succeeds... I think it might be the way I'm running the batch script on the regular nodes that might be causing the seg fault... I'll look into that

Hm yeah, not sure why but sometimes with > 4 threads I get a seg fault: http://pastebin.com/eNw3nTxE. Has anything like this been seen before? It seems to be related to the garbage collector.

Do you get that segfault on a single node Max? How repeatable is it?

In the scaling runs two weeks ago we saw a lot of segfaults but they only happened in 64+ node runs as I understand so we were never able to track down the root cause. If you have access to our slack channel take a look at the history for some more context. If you can provide detailed instructions on how to reliably reproduce the segfault with one (or few) nodes that might be of great value in tracking down the problem.

The segfaults seem to happen pretty often when I run with > 4 threads on the joint_infer test case. If you check out the multi_iter branch, and set num threads to be something like 12 ("export JULIA_NUM_THREADS=12") then "julia ./test/runtests.jl joint_infer" it should produce the error after running for like 10-15 minutes I think...

Update: Hmmm 12 threads just finished for me... weird. So it's not super reliable...

I think this is a race condition somewhere in Julia's runtime. And clearly, the particular interleaving that causes a problem doesn't happen frequently; the more the threads, the higher the probability. Good to know there's a single-node case that can produce it though. Please snapshot/tag the commit where you know it happens (and don't delete this branch please).
@tkelman: would you see if you can reproduce this/have Jameson take a look?

@agnusmaximus  That segfault is a nightmare, at least if it turns out the be the same one we were stuck on during the IPDPS submission. @tkelman and @vtjnash are really good at fixing these segfaults if we can given them simple test cases the reliably exhibit the problem. So far we haven't had much luck isolating it though. If you have a single-node test case that might be the closest we've come.

I've pushed bin/batch_joint_infer.sl which just runs the joint_infer method test case on 8, and 12 (piping output to infer_multi_%d_thread). Usually one of these fails. Not sure how helpful this batch script will be in locating the segfault

Also regarding the segfault, I think Kiran is right in that it's some sort of race condition when accessing shared memory from multiple threads. If I remember right, when I used separate data per thread in multiple iteration training via cyclades (so threads did not share data) running on 1,8,12 nodes finished fine.

Thanks for the revisions Max.

For batch_joint_infer.jl to run right, you need to add "const dt_nodeid = 1" on line 26 of ParallelRun.jl. Sorry about this!


Azure DNS IP needs correction

[Enter feedback here]
Hello,
The IP address <IP_ADDRESS> in the text and diagrams needs to be changed to <IP_ADDRESS>.
thank you

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

ID: 7b80899c-6ae7-7bc4-f45a-78d90446b173
Version Independent ID: d2778f69-9c53-02c1-f6cf-d811e6065def
Content: Private endpoints overview - Azure Backup
Content Source: articles/backup/private-endpoints-overview.md
Service: backup
GitHub Login: @v-amallick
Microsoft Alias: v-amallick

@yertaylan67 we'll review your feedback and get back to you shortly. Thanks.

@yertaylan67 - Thanks for your valuable feedback. We have updated the document, and the changes will reflect soon.

@yertaylan67 - The changes are live now. Now, I am proceeding to close this issue. Please get back to us if you have other queries/suggestions; we will be happy to continue our conversation.
@SadiqhAhmed-MSFT - FYI
#please-close


Raise exception when BERT is loaded with HookedTransformer instead of…

Description
When the BERT model is loaded the incorrect way via HookedTransformer instead of HookedEncoder, currently no exception is raised although this is being done for the T5 model family with HookedEncoderDecoder. With the code change in this PR, an error is raised in a similar fashion when the BERT model is loaded with the HookedTransformer class. There is no specific issue addressed by this PR

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have not rewritten tests relating to key interfaces which would affect backward compatibility

Perfect! We are going to end up rolling this into the next major release. The T5 models did not load at all in HookedTransformer, so we weren't going to disrupt anyone with a loud warning. Someone could theoretically still load this model into HookedTransformer, which means that adding the warning in 2.x may mess with someones use.


update def GO:0030122 - AP-2 adaptor complex

Definition: "A heterotetrameric AP-type membrane coat adaptor complex that consists of alpha, beta2, mu2 and sigma2 subunits, and links clathrin to the membrane surface of a vesicle; vesicles with AP-2-containing coats are normally found primarily near the plasma membrane, on endocytic vesicles. In at least humans, the AP-2 complex can be heterogeneric due to the existence of multiple subunit isoforms encoded by different alpha genes (alphaA and alphaC)." [GOC:mah, PMID:10611976, PMID:21097499]
change to
and links clathrin to the membrane surface of a vesicle, and the cargo receptors during receptor/clathrin mediated endocytosis
(Hirst et al., 2011;  http://www.ncbi.nlm.nih.gov/pubmed/22022230
Godlee and Kaksonen, 2013 http://www.ncbi.nlm.nih.gov/pubmed/24322426)
Later papers

Fixed


openal to openalSoft conversion

openalSoft is a drop in replacement for openal from creative labs.
since openalSoft does support backends as pulseaudio and also because it has the more active user/developer base we should make it the default.

# openalSoft is 100% ABI compatible to openalLegacy and should be a default
openal = openalSoft;
openalLegacy = callPackage ../development/libraries/openal { };
openalSoft = callPackage ../development/libraries/openal-soft { };

if programs/libraries still require openal from createive labs, just use:
openalLegacy
i've tested spring/fakenes and scorched3d (won't build but not because of openalSoft). also codehero tested with minetest where it works.

Seems like debian is using this openal-soft.


Test io_uring_prep_link

Need to create basic test for io_uring_prep_link

https://github.com/axboe/liburing/issues/1090


[BUGFIX] interop with newer ember-data

Replaces #428

Left a couple comments, but gonna merge this as is so we can unblock ED


Merge pull request to resolve #73

Changed the definition of the trackException method to have the additional parameter
Changed the definition of the getExceptionData method to consider the measurements parameter
No need to change the Exception Data Contract since it already had a measurements property
Adding tests to verify calls to track exception with properties and calls to track properties and measurements

Not sure how to exclude previous commits out there

I included some commits that were out there, I did not find the option to exclude them from the pull request.

This is for issue #73

:shipit:

Previous commits are showing up because they are only in a master branch and I forgot to merge them back to the develop branch. Let's merge them back to develop.
Thanks!


driver/SignalHound Spectrum analyser refactor to use qcodes parameters

Strips and refactors the signal hound USB SA1243 spectum analyser driver so that it uses parameters for setting setting and for getting traces, removes option for setting any modes other than sweeping and taking averages as I could not see that these were actually being set or working
@jenshnielsen  sorry I though I'd already made this pr, completely feel free to overwrite it, just fyi

I am going to replace this with #1284 which has some additional cleanup on top of this driver


feat(gulp): Add gulp task mkdir:upload to ensure upload directory exi…

…sts.
Related #1175

Also, the scope of the commit message should be gulp, because this is gulp-related, not really "core".

@ilanbiala scope is updated to reflect your feedback

@ilanbiala LGTY?

Closing/Opening to produce clean build.  One node timed out.


string truncate

This leverages string iteration in #17 to truncate a given string to a specified length.
string_truncate() {
  string_length_maximum="$1"
  shift
  string="$*"
  string_length=${#string}
  #
  if [ "$string_length" -le "$string_length_maximum" ]; then
    _debug  "  (not truncating)"
    \echo  "$string"
  else
    __="$string"
    #
    while [ -n "$__" ]; do
      rest="${__#?}"
      first_character="${__%"$rest"}"
      result="$result$first_character"
      __="$rest"
      #
      if [ ${#result} -eq "$string_length_maximum" ]; then
        \echo  "$result"
        break
      fi
    done
  fi
}

string_truncate  3  'string'
# =>
# str

Would you let me know your opinion about this method?
string_truncate() {
    expr "$2" : '\(.\{'"$1"'\}\).*'
}

string_truncate  3  'string'
# =>
# str

I personally wouldn't do things that way, because it's using expr.

I'm sorry for asking so many times.
Are you reluctant to use expr because it's an external command?

"The goal of this book is to document commonly-known and lesser-known methods of doing various tasks using only built-in POSIX sh features."

I came up with an alternative solution that is, simply stacking the match-any-character wildcard ? as many times as the number of characters we want to delete. It works better than expected:
   s='string'
echo ${s%???}
# =>
# str
    a='abcdefg'
echo ${a#?????}
# => fg

trunc() {
	local desired_len="$1" ; shift ; local string="$*"
	local len="${#string}" ques ques_len

	[ "$desired_len" -ge "$len" -o "$((- desired_len))" -ge "$len" -o "$desired_len" = 0 ] \
		&& { echo "$string" ; return 1 ; } #Error: Function has no work to do if desired length is larger or = string length

	if [ "$desired_len" -gt 0 ]; then #test if desired_len is a negative number
		local left_len="$desired_len"
		local right_len="$((len - left_len))"
	else #inverse our desired lengths
		local right_len="$((- desired_len))"
		local left_len="$((len - right_len))"
	fi

	while true; do
		ques="$ques"'?'
		ques_len="${#ques}"
		if [ "$ques_len" = "$right_len" ]; then #delete end to get the truncated string
			truncated="${string%$ques}" #fun fact: this doesn't work in zsh
			break
		fi
		if [ "$ques_len" = "$left_len" ]; then #
			local rest="${string#$ques}" #fun fact: this doesn't work in zsh
			truncated="${string%%$rest}"
			break
		fi
	done
	echo "$truncated"
}

This solution iterates on adding more ???? until it matches the desired length, then trims the string at once. It may be faster than @spiralofhope's solution, which reads $string at least once on every iteration, slowly biting off characters just to be able to delete them.
Demo
trunc 19 'The brown fox jumps over the lazy dog'
# => The brown fox jumps
trunc -1 'The brown fox jumps over the lazy dog' # also added support for truncating counting from the end
# => The brown fox jumps over the lazy do
trunc -17 'The brown fox jumps over the lazy dog'
# => The brown fox jumps

I made a faster and powerful version a week later, but forgot to post it. Down to the syntax, it emulates Bash's substring expansion.
#Usage: substr offset:length "string"

rpt() {
	#repeat string N times
	#$ rpt 50 "foobar"

	#algorithm snatched from: https://stackoverflow.com/questions/202605/repeat-string-javascript/4152613#4152613
	#See also: https://en.wikipedia.org/wiki/Ancient_Egyptian_multiplication
	#basically, it doubles $str at the same rate $count halves, spiraling down synchronously to the asked length.
	#i had the intuition that an algorithm must be faster than just doing 50 iterations to get 50 length.
	#multiplication could save some iterations, but i had to be careful to not overshoot. it wasn't this elegant.

	count="$1" ; shift ; s="$*"

	while [ $count -gt 1 ];do
		[ $((count & 1)) -eq 1 ] && result="$result""$s"
		count=$((count >> 1))
		s="$s""$s"
	done

	#junk below isn't necessary as a standalone function
	repeated="$result""$s"
	unset count s result
}

substr() {
	#Parse
	if [ -z "${1##*:*}" ]; then #result is only empty if there isn't a ':'
		offset="${1%%:*}"
		desired_len="${1##*:}"
	else
		offset="$1"
	fi
	shift; str="$*"

	len="${#str}"

	[ "$offset" -ge "$len" ] || [ "$((-offset))" -ge "$len" ] && return 1 #bad input

	[ "$offset" = 0 ] || {
		#"If offset evaluates to a number less than zero, the value is used as an offset in characters from the end of the value"
		[ "$offset" -lt 0 ] && offset=$((len - -offset))
		rpt "$offset" '?'
		str="${str#$repeated}"
	}

	# Below only gets executed if user specified a length
	[ "$desired_len" ] || { echo "$str" ; return 0 ; }

	[ "$desired_len" -ge "$len" ] || [ "$((- desired_len))" -ge "$len" ] || [ "$desired_len" = 0 ] \
		&& { echo "$str" ; return 1 ; } #Error: Function has no work to do if desired length is > or = str length

	if [ "$desired_len" -gt 0 ]; then #test if desired_len is a negative number
		left_len="$desired_len"
		right_len="$((len - left_len))"
	else #inverse our desired lengths
		right_len="$((- desired_len))"
		left_len="$((len - right_len))"
	fi

	#decide which trimming direction is faster
	if [ "$right_len" -lt "$left_len" ]; then
		rpt "$right_len" '?'
		truncated="${str%$repeated}" #fun fact: this doesn't work in zsh
	elif [ "$left_len" -lt "$right_len" ]; then
		rpt "$left_len" '?'
		rest="${str#$ques}"
		truncated="${str%%$repeated}"
	else #not necessary, but readability, bro.
		rpt "$right_len" '?'
		truncated="${str%$repeated}"
	fi

	echo "$truncated"
}


Localization (placeholder)

Goal
Acceptance criteria

[ ] tdb

Requirements

[ ] Test plan
[ ] Documentation

Issues in Epic

[ ] tbd

Notes
Additional context
Add any other context or screenshots about the epic here.

Opening this as a placeholder epic for the work we will need to do around localization/internationalization. First story will require a spike on the upstream i18n feature.

@jerolimov FYI,  feel free to assign this to yourself.


Change to quay.io in README.md

Docker hub is going to restrict access to its public repositories starting from November.

I don't like the idea of hosting the docker image from someone else's account. I'm removing that, you can remove the image from your account or keep it.
Updated Readme to only build from the source repo and removed the cloning of the image.

@Anon-Exploiter OK, I will keep the repo and create a PR if anything in Dockerfile needed to change.

@aminvakil awesome!


Course About Page: update font and styles

What are the relevant tickets?
Fix https://github.com/mitodl/hq/issues/2618
Fix https://github.com/mitodl/hq/issues/2647
Description (What does it do?)
Following the designs here https://www.figma.com/file/Gs4zIhOFv5gVvafawwl6PF/MITx-Online?type=design&node-id=0%3A1&mode=dev.
Updated the font family for new-design styles.
Screenshots (if appropriate):
Before:

After:

@rachellougee I was also confused about the screenshots in the issue. But those were taken from production old design. And for this fix we are implementing the figma design, which is different.
Thanks for the review!


PP-11714 CSP reporting endpoint

WHAT

added a new endpoint to handle csp violation reports
updated the cardDetailsCSP and worldpayIframeCSP helmet configurations to send reports to new endpoint
added new paramterised middleware functions to handle csp reporting and domain exclusions

hardening measures:

payload size limit
rate limiting
payload shape validation

tests and helper functions

Also report-uri  is now deprecated, so as discussed we should move over to using report-to. Although this can be done separately, as our existing implementation would be affected by this anyway.

@stephencdaly after a brief look there's bit more to report-to than just a straight substitution with report-uri, I'll create a polcat story to look into it as there's some behaviour re iframes that will probably be relevant to us.


Readme is rather opaque in this section

This instruction on readme is completely incomprehensible. Which file is being modified, for example:
Make sure eslint is installed as a peer dependency.  \What does this mean?
Add eslint field to plugin config, the lintCommand is required, it's quite like the lint command of your project. The default root of the command uses Vite's root.
export default {
plugins: [
checker({
eslint: {
lintCommand: 'eslint "./src/**/*.{ts,tsx}"',
},
}),
],
}

Make sure eslint is installed as a peer dependency. \What does this mean?

It means, if you wanna use ESLint checker. You should install eslint to your project as it will be invoked and add eslint filed to the checker config.

it's quite like the lint command of your project.

Yes, it is. It's only an example. You can write your lint command there. It's quite like the lint command in your lint command in packagejson.script.

This is a non-explanatory explanation.


TypeError: Cannot read property 'forEach' of undefined

After sucessfully logging into gitlab CE, I returned to the project in GA and I got the error:
TypeError: Cannot read property 'forEach' of undefined
Where can I find more details to troubleshoot the error?
I made the changes suggested in #117 to use our own gitlab CE instance.

What kind of error are you getting in the console log?
Try logging in and logging out, fixed it for me.

Although my token was set to never expire, creating a new one fixed this for me.

I tried logging out and in, and also refreshing the token
[github assistant] TypeError: Cannot read properties of undefined (reading 'forEach')
Interestingly, I continue to get this message even if I restructure the code  to change the forEach syntax to the
for (i = 0... style syntax.

I find that this error goes away after a few tries...

If anyone has this problem again, it was a github token scope issue for me. You need to allow gist and repo access.


Cache not updated by default on CanvasGetAppSurf() if setting __writeToCache to false

Fix is line 21 of CanvasGetAppSurf function

Fixed in v2.1.0


[Publisher] Overlapping error prompts when updating an API resource get failed

Steps to reproduce:

Log in to publisher using creator or publisher.
On resources page, select an resource.
Click on the security toggle.
Click save.

Fixed in https://github.com/wso2/carbon-apimgt/pull/7601
duplicate https://github.com/wso2/product-apim/issues/5764


Add a retry safeguard for network errors when doing a FAPI request

Type of change

[x] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[ ] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[x] @clerk/clerk-js
[ ] @clerk/clerk-react
[ ] @clerk/nextjs
[ ] @clerk/remix
[ ] @clerk/types
[ ] @clerk/themes
[ ] @clerk/localizations
[ ] @clerk/clerk-expo
[ ] @clerk/backend
[ ] @clerk/backend-core
[ ] @clerk/clerk-sdk-node
[ ] @clerk/edge
[ ] @clerk/shared
[ ] build/tooling/chore

Description

[x] npm test runs as expected.
[x] npm run build runs as expected.

This PR introduces a retry safeguard when the FAPI client does a request and it fails due to network errors. It retries 4 times, with exponential logic, only on GET requests to be extra safe.
However, it handles 4xx/5xx the same way it did before because these error codes are valid responses.
For 5xx errors, it is a good practice to retry if the request is Idempotent. So, we could also retry for GET requests with 5xx errors.
Example:

After some more digging here, we found that some of the errors may never bubble up to the user, which is helpful for when we retry and succeed the second time but may be harmful when something is wrong, and the user does not see any errors.
For example, here in SignInStart.tsx using the attemptToRecoverFromSignInError function we mute the error and user never gets an error message. Maybe we could log it on the FAPI side. This may be happening on other components too.
FYI: Regarding the original TypeError: Failed to fetch error, it may happen because of a CORS issue instead of timeout/offline. See here.

@SokratisVidros I think this is good to go, shall we merge?


Select2 setting value, wrong ui display

When you use Select2 and set the data, the displayed data is the first enum item not the value passed to the editor.
However if you click on the dropdown menu, the correct item is highlighted (also visible in the json editor and gets posted when you submit the form).
I tried adding the following code below line 121 (https://github.com/jdorn/json-editor/blob/master/src/editors/select.js#L121)
window.jQuery(this.input).select2('val', this.value);

which didn't work cause the this.value = the first enum option (this is double weird cause if I log 'this' and I look in the console then this.value = correct but when I console.log(this.value); it shows the first enum option).
Anyway if I use the above code and manually fill in the this.value with a string representing the value of a enum it will correctly select that.
In the attached image you can clearly see that it has project selected but the hmiScreenElement is setted by the editor.set method.

select2 (multiselect) not works for dinamic enums (watch+enumSource+value)
          "attributes":{
              "type": "array",
              "uniqueItems": true,
              "format": "table",
              "items": {
                 "type":"string",
                 "watch": { "fields2": "properties" },
                 "enumSource":["none",{"source": "fields2","value": "{{item.name}}"}]
              }

I've been struggling to make multiselect work with selectize using a comma delimited string as the value of a string property for tags.  The scenario led me to manually instantiate selectize on a string property and populate the options via javascript rather than json schema.

I want the value to be tags: "volunteer,superhero,parent" rather than be an array

The big sticking point is that json-editor isn't catching the change events, as mentioned here previously.  Selectize was updating the input field, and json-editor wasn't noticing it.  What was really strange is that manually doing a editor.setValue() did not work because json-editor seems to know at some level that the value is already set, so it wouldnt update it, but still reports an empty value when doing getValue().
What I needed to do was first setValue with a fake string, and then reset it to the value that selectize had already written to the input field.
Here's my javascript event handler.  I'm finding the form input by the name (expecting it to have tags in it), then using that to find the parent div with the data schema path value (root.includes.0.tags) and then using that to select the json-editor child editor, and then doing the double setValue() on it.

the selectize options is constructed with some ruby interpolation magic you can ignore

  var json_editor_handler = function(event) {

     // this function is called when the page loads, or json-editor changes
    console.log("jseditor change");

     // manually selectize
    $('input.form-control[name*="tags"]').selectize({
      delimiter: ',',
      persist: false,
      options: #{ @customer_current.tags_existing.map{|o| {value: o, text: o}}.to_json},
      create: false

    });

    // listen to change events on the input field from selectize
    $('input.form-control[name*="tags"]').on('change', function() {
      var new_value=$(this).val();

      // find the parent div with the schema path
      var schema_path=$(this).parents('div[data-schemapath*="tags"]').attr('data-schemapath');
        console.log("selectize change ",new_value,schema_path);

       // find the right json-editor child editor, then ram the right value in with excessive force
        jseditor.getEditor(schema_path).setValue("DEADBEEF");
        jseditor.getEditor(schema_path).setValue(new_value);
      })
  };

// set up event handlers
  jseditor.on("change", json_editor_handler);
  $(document).on("page:change", json_editor_handler);

Happy New Year


[WIP] Add owners and license files.

Create OWNERS and LICENSE files.

most of the content got merged via #1 , lets push only the owners and licence file

Hi @mkumatag, rebased against latest main branch.
Ready for review 😄


Pipeline refactoring

Summary
Update pipeline to support code coverage analysis
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] Refactoring (non-breaking change to code and structure)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Testing
N/A
Notes
N/A

@fpindej could you please also look into it. I did some changes to test projects basically switched coverlet.collector for coverlet.msbuild which is required for enabling generation of code coverage reports in opencover format.
I would say documentation in this area is poor and it took mi half of the day to figure this out.
Code coverage is not correctly propagated to sonar cloud.

https://sonarcloud.io/summary/new_code?id=3PillarGlobal-Ostrava_interview-app-api&pullRequest=17


Icon for HELM charts doesn't load

What happened:
Icon doesn't show up. Link needs to be replaced with a link from openebs.io, current links (https://github.com/openebs/chitrakala/blob/master/logo/png/logo-01.png) is not a direct link to the image.
What you expected to happen:
Icon image link to display image file when you provide the link to the browser.
How to reproduce it (as minimally and precisely as possible):
Add HELM chart to stackpointcloud cluster, if link is valid summary page should show OpenEBS logo.
Anything else we need to know?:

The correct link should be : https://raw.githubusercontent.com/openebs/chitrakala/master/logo/png/logo-01.png


🌋 E|F ➾ Improve Analytics to Enable Data-Driven Product Development and Error Reporting

Product Board Link
https://ecadlabs.productboard.com/feature-board/5219572-taqueria-features/features/14718459/detail
🚥 Status

[x] 🔮 Product/Feature Design
[ ] ✍🏻 Architecture/Implementation Planning
[ ] 🏗 Under Construction
[ ] ⛳ Feature Complete
[ ] ⛵ GTM / Release

✅ To Do
No response
📐 Feature Description
Taqueria's in-app analytics should provide enough data to enable granular metrics that can support data-driven product decisions
🚩 Problem or Use Case
Currently, Taqueria sends analytics payloads on each call to taq. The payload for this only contains the entire CLI command, which prevents accurate counts of each task and installation. Additionally, no analytics are send from VsCE and there is no way to measure the number of downloads/installations of Taqueria
⚖ Acceptance Criteria
✨ Features:

[ ] Metrics for individual task executions are available
[ ] The number of installations can be tracked
[ ] Analytics are opt-in by default
[ ] VsCE command pallet tasks are tracked
[ ] Errors are sent as an event which contains the error and any relevant debugging information
[ ] A graphical dashboard provides an overview of relevant metrics

📚 Metrics:

[ ]

Requirements:

[ ] Add a field to the taq_task_executed which has the taskname
[ ] Add a new event type for errors in GA and implement in CLI

Error Schema:

Error type (E_INVALID_CONFIG)
Architecture
OS
Task name
Arguments list
Pass the error message from stdout/stderror

🔭 Scope
🏎 In Scope:

Work on the VsCE
Work on CLI

🙅♂ Out of Scope:

[ ] VsCE events are tracked (sidebar usage, arbitrary clicks)

🔗  Related Issues and Subtasks
No response
🦄 Sizing
10
Code of Conduct

[X] I agree to follow this project's Code of Conduct

The product board link isn't working for me.

We only have a few seats for productboard, I've updated this ticket accordingly


frame internationalization (i18n)

frame i18n is quite straightforward, only need to put all text strings to string.xml the Android way.

include zh-TW translation.

https://github.com/commaai/openpilot/commits/refactor-frame
Refactoring in progress...

https://github.com/commaai/openpilot/commits/refactor-frame
Refactoring in progress...

ouch... never mind, didn't spend much time to come up this lol


Migrate from jcenter

jcenter is at end of life, please migrate it to Maven Central.

Jcenter will continue to work for a read-only repository, but new packages can no longer be uploaded. See their announcement for more information.
The linter in Android Studio 4.2 starts complaining about the usage of jcenter so many people will try to get rid of it the next months:

Fetch is the last project blocking my migration aways from jcenter. I found a mirror over at JitPack but it is missing the okhttp integration.

Hi, Have you published the lib on Maven Central?

@tonyofrancis Hey, are you planning to do this? Otherwise I would think of publishing a fork to Mavencentral myself if thats ok for you..

Have you published the lib on Maven Central?

No, decided to not use a library for our project...

androidx versions are not available on jcenter() - where can I get them?

androidx versions are not available on jcenter() - where can I get them?

What do you mean by androidx versions?
I use AndroidX and this dependency from jitpack works: implementation 'com.github.tonyofrancis.Fetch:xfetch2:3.1.6'

sorry @moisoni97, i meant okhttp

implementation 'com.github.tonyofrancis.Fetch:xfetch2:3.1.6' this dependency don't work for android 14
Error   One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts


Added disjoint

Codecov Report

Merging #175 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #175   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines        1146   1177   +31
=====================================
+ Hits         1146   1177   +31

Impacted Files
Coverage Δ

dist/partial.lenses.cjs.js
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Cheat Sheet?

A "dumb" cheat sheet of all Commands, Syntax & Semantics would help. The ToC of https://github.com/JeffreyBenjaminBrown/digraphs-with-text/blob/master/Hash/the-hash-language.md kind of works as this, but not really. I've tried to write a dump of it here:
Opening an empty UI:
ui empty
M-v - Treat the currently entered text as something to query from the RSLT & view the results
M-a - Treat the currently entered text as something to add to the RSLT, and do so
Esc - Cleanly escape the UI
Semi-reserved symbols:
# - adjacent to an expression indicates that the expression is (one of the labels in) a relationship template. Repeat to increase precedence/force earlier binding. (Alternatively put: Repeat to force further up in the hierarchy.)
( and )  - Encloses multi-word expressions. Useful both for explicitly & for implicitly relating relationship templates
_ - "Blank", Substitute for expressions inside relationship templates (Relationship templates only contain labels)
Reserved words for parsing:
/users integer  "Find all Nodes that link to to the given Node" & return them.
/queries - Returns the query history
/all - Returns all nodes
Reserved words & symbols for querying:
/any - Wildcard, matches any expression
/it - Returns the subexpression that appears where /it appears in the query
& - Intersection operator ("and"). Repeat to decrease precedence/force later binding.
| - Union operator ("either"). Repeat to decrease precedence/force later binding.
\ Difference operator ("except"). Repeat to decrease precedence/force later binding.
/eval  - Forces early evaluation of a subexpression. Useful for sub-queries.
/branch - Recursively evaluate. Must combine with /from and /to
/from
/to
I have no idea yet:
/mb - Similar to /branch, but more flexible - albeit I have no idea how it works because I haven't figured out pRoleMap yet. (Little help here?)
Importing/Exporting data via the GHCi prompt:
See here: https://github.com/JeffreyBenjaminBrown/digraphs-with-text/blob/master/introduction/try-the-ui.md#saving-to-disk-and-reading-from-disk
As it stands, the above cheat sheet almost certainly contains errors & remains incomplete - but I've (for now) run out of time for completing it, and will come back to it later.

Unary relationships one might wish to consider for ones RLST:

maybe _
not _
for every _ (Mentioned in the PDF, but not in the .md)
there exists _ (Mentioned in the PDF, but not in the .md)


ERROR REQUEST - GET https://api.corona-zahlen.org/germany

Hi.
Today I cant consult germany information.
GET https://api.corona-zahlen.org/germany  and I always get error now.
All others information such as: Districts and Filter by day (also for Germany & districts) is working fine.
you can se the error here: www.cesarcabral.com/corona

Im running docker file but also when I try to get all germany information I do have the response:
error:
details: "Invalid HTML: could not find <table>"
message: "An error occurred."
stack: "Error: Invalid HTML: could not find <table>\n    at html_to_sheet (/usr/src/app/node_modul

This started today.

Hi @cabralada,
I cannot reproduce the problems on GET https://api.corona-zahlen.org/germany.
We had this problem last week, but we fixed it 3 days ago.
When you use it on your own server try running docker-compose pull before starting it with docker-compose up.
I am leaving this issue open for now, but please let me know if you were able to resolve the problem.

Hi @marlon360
I did the pull as you recommended:

but still not working.
my project is public, you can test live here:
https://github.com/cabralada/corona

I guess thats not a Error of this API, but of your APP

It was working 2 days before and yesterday when I was about to do a
presentation about api and what I built I found this.
99% that is not my application .
I also did test requesting with axios and fetch and same issue.
Again… only for Germany global, not district.
On Fri 9. Jul 2021 at 21:56, Peter @.***> wrote:

I guess thats not a Error of this API, but of your APP
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/marlon360/rki-covid-api/issues/250#issuecomment-877422654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAONVDOJWY5YXE4WMPYYGULTW5H5RANCNFSM5AAOTCCQ
.

--
[]'s

*César Cabral *// FrontEnd Developer

cesarcabral.com http://www.cesarcabral.com
linkedin.com http://linkedin.com/in/cabralada
xing.com https://www.xing.com/profile/Cesar_Cabral
facebook.com http://facebook.com/cabralada

Personal projects
Recipe website: Comida do Dia
http://comidadodia.comSocial network: Sponnsor
http://sponnsor.com/

Is the docker some update needed?
Beside the Pull?
On Fri 9. Jul 2021 at 22:06, Cesar Cabral @.***>
wrote:

It was working 2 days before and yesterday when I was about to do a
presentation about api and what I built I found this.
99% that is not my application .
I also did test requesting with axios and fetch and same issue.
Again… only for Germany global, not district.
On Fri 9. Jul 2021 at 21:56, Peter @.***> wrote:

I guess thats not a Error of this API, but of your APP
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/marlon360/rki-covid-api/issues/250#issuecomment-877422654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAONVDOJWY5YXE4WMPYYGULTW5H5RANCNFSM5AAOTCCQ
.

--
[]'s

*César Cabral *// FrontEnd Developer

cesarcabral.com http://www.cesarcabral.com
linkedin.com http://linkedin.com/in/cabralada
xing.com https://www.xing.com/profile/Cesar_Cabral
facebook.com http://facebook.com/cabralada

Personal projects
Recipe website: Comida do Dia
http://comidadodia.comSocial network: Sponnsor
http://sponnsor.com/
--

[]'s

*César Cabral *// FrontEnd Developer

cesarcabral.com http://www.cesarcabral.com
linkedin.com http://linkedin.com/in/cabralada
xing.com https://www.xing.com/profile/Cesar_Cabral
facebook.com http://facebook.com/cabralada

Personal projects
Recipe website: Comida do Dia
http://comidadodia.comSocial network: Sponnsor
http://sponnsor.com/

Try docker-compose up -d -V

You are definitely not running the latest version of this API

if you update the docker container for this app on your api server https://api.cesarcabral.com all will went fine

ahhhh .... I c ... you right.
I did local but I forgot to update the URL! Sorry.. my mistake!!!
Friday night! hehehe.. thanks man!
[]'s

*César Cabral *// FrontEnd Developer

cesarcabral.com http://www.cesarcabral.com
linkedin.com http://linkedin.com/in/cabralada
xing.com https://www.xing.com/profile/Cesar_Cabral
facebook.com http://facebook.com/cabralada

Personal projects
Recipe website: Comida do Dia
http://comidadodia.comSocial network: Sponnsor
http://sponnsor.com/
Em sex., 9 de jul. de 2021 às 23:16, Peter @.***>
escreveu:

if you update the docker container for this app on your api server
https://api.cesarcabral.com all will went fine
[image: 03]
https://user-images.githubusercontent.com/6493772/125136672-9247c900-e10b-11eb-987b-d8dc8cbd36b4.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/marlon360/rki-covid-api/issues/250#issuecomment-877460384,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAONVDLUNRHIFWPCUJDOGFTTW5RI7ANCNFSM5AAOTCCQ
.

no problem, close this issue please!

Thanks a lot! =)


support/20220819 CAL update

📝 Description
CAL update
❓ Context

Impacted projects: lld & llm
Linked resource(s): crypto-assets repo

✅ Checklist

[x] Test coverage
[x] Atomic delivery
[x] No breaking changes

📸 Demo
n/a
🚀 Expectations to reach
Pull Requests must pass the CI and be internally validated in order to be merged.

https://github.com/LedgerHQ/ledger-live/pull/1027 must be merged in this PR first ⚠


chown -R /var/lib/ceph slowing down osd startup

I tried to upgrade OSDs running jewel to the latest image but it turns out that a test OSD was starting slowly, chowning everything on start.
I see that create_mandatory_directories run chown on the entire /var/lib/ceph/, which in my case means a few hours (6TB 7200RPM drives with millions of files).
I'm not sure if I'm suppose to have OSD dirs in some other place now and this is my config issue, or is the chown usage too optimistic and assumes it will run quickly. I have 12 volumes in docker with -v /disk/0:/var/lib/ceph/osd/ceph-0 ... right now. Should I mount those volumes in a different location now? How can I avoid doing chow -R on those directories every time osd starts?
Doing find on one disk:
$ time find /disk/data0 > /dev/null

real	16m50.946s
user	0m2.072s
sys	0m15.527s

and there's 12 of those, let's round it down to 15m, 12*15m = 180m = 3h of startup delay

I figured that out yesterday as well, will send a fix to not run on OSD data dir.
Thanks!

@prymitive please review https://github.com/ceph/ceph-docker/pull/742

That should do it in terms of startup speed, but if ceph daemon runs as a non-root user now then I'll need to manually chown -R all OSD disks (which is fine, but might want to warn users).


Failed startup: failed to open NVS namespace WIFI: ESP_OK

After a fresh and successful flash-erase and then flash the startup fails:
[09:15:41.816] tio v2.6
[09:15:41.816] Press ctrl-t q to quit
[09:15:41.817] Connected
I (181) esp_image: segment 1: paddr=00083210 vaddr=3fc9f6c0 size=06c64h ( 27748) load
I (187) esp_image: segment 2: paddr=00089e7c vaddr=40378000 size=0619ch ( 24988) load
I (193) esp_image: segment 3: paddr=00090020 vaddr=42000020 size=148780h (1345408) map
I (437) esp_image: segment 4: paddr=001d87a8 vaddr=4037e19c size=11518h ( 70936) load
I (461) boot: Loaded app from partition at offset 0x30000
I (492) boot: Set actual ota_seq=1 in otadata[0]
I (492) boot: Disabling RNG early entropy source...

I (564) cpu_start: Pro cpu up.
I (568) cpu_start: Starting app cpu, entry point is 0x403796cc
I (0) cpu_start: App cpu up.
I (860) spiram: SPI SRAM memory test OK
I (869) cpu_start: Pro cpu start user code
I (869) cpu_start: cpu freq: 240000000
I (869) cpu_start: Application information:
I (871) cpu_start: Project name:     willow
I (876) cpu_start: App version:      1
I (881) cpu_start: Compile time:     Sep  7 2023 06:53:32
I (887) cpu_start: ELF file SHA256:  c900ff9308aeb52c...
I (893) cpu_start: ESP-IDF:          v4.4.5-dirty
I (898) cpu_start: Min chip rev:     v0.0
I (903) cpu_start: Max chip rev:     v0.99
I (908) cpu_start: Chip rev:         v0.1
I (913) heap_init: Initializing. RAM available for dynamic allocation:
I (920) heap_init: At 3FCAC988 len 0003CD88 (243 KiB): D/IRAM
I (926) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DIRAM
I (933) heap_init: At 600FE000 len 00002000 (8 KiB): RTCRAM
I (939) spiram: Adding pool of 8192K of external SPI memory to heap allocator
I (948) spi_flash: detected chip: gd
I (951) spi_flash: flash io: dio
I (956) sleep: Configure to isolate all GPIO pins in sleep state
I (962) sleep: Enable automatic switching of GPIO sleep configuration
I (969) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (985) spiram: Reserving pool of 16K of internal memory for DMA/internal allocations
I (00:16:20.585) WILLOW/MAIN: Starting up! Please wait...
I (00:16:20.859) WILLOW/MAIN: Waiting on SPIFFS mount...
I (00:16:21.359) WILLOW/MAIN: SPIFFS mounted
I (00:16:21.359) WILLOW/CONFIG: opening /spiffs/user/config/willow.json
E (00:16:21.482) WILLOW/CONFIG: failed to open /spiffs/user/config/willow.json
E (00:16:24.152) WILLOW/MAIN: failed to open NVS namespace WIFI: ESP_OK

Was this flashing via WAS? Or did you just go directly to the flashing website? If in WAS, did you run through all the configs first before flashing?

Your NVS partition does not have an NVS namespace, and you reference commands like erase-flash and flash, so you are most likely not using Willow Web Flash. You should follow the quick start guide.
Alternatively, if you do not want to use Willow Web Flash, you can write the NVS partition manually. Instructions are in commit 36ee1f70bf1d23d2cf654afbd2a95db448e73699 and 021bb7ad08244732167c1099d44399da1b80bda5.

I used the guide described at https://heywillow.io/development/ because this was the way i flashed it the first time (before WAS existed).
Using WAS the flash process worked. Thanks for the help!


Fuzzing integration

Hi guys. What would you think about integrating with a fuzzing service? Proposing here to get it running on Fuzzit. They give free service for open source.
This patch fuzzes Parse() with binary data. It also fuzzes the API by mapping bytes to API calls, so it runs through different sequences of API calls looking for crashes.
If you're interested setup is like this:

Enable the repo in Travis.
In Fuzzit create targets now-parse now-api.
In Fuzzit settings grab an API key. In repo settings in Travis paste it to a new envvar FUZZIT_API_KEY.

Hello @bookmoons
Thank you for your PR, but I don't think it makes sense to have that feature, maybe better as an alone project?
Thank you.


Feature/signal handling

update and add/remove sections as needed
New Features

Add Interface's receiver to scarab's signal_handler.  Closes #129.

Fixes
please list/describe an fixes, including links to related issues
Testing
please describe both unit tests included and any integration tests conducted
Prior to merging for releases:

[ ] update the project's version in the top-level CMakeLists.txt file
[ ] update the appVersion to be the new container image tag version in chart/Chart.yaml

This PR requires the update in driplineorg/dripline-cpp#49 (dripline-cpp branch feature/receive_timeout).

Initial tests suggest these changes seem to fix the problems.


feat(dyn-abi): add validate param to decode methods

Motivation

Solution

PR Checklist

[x] Added Tests
[ ] Added Documentation
[x] Breaking changes

is this blocked by anything or did we just forget about it lol

Closing as I'll clean this up in the future


WebRTC channel does not connect or disconnects after sometime even when the canonical example is used

We are using Azure speech services with Microsoft communication services for webrtc connection in order to use the text to speech avatar in our application; this is our azure link for the talking avatar:
https://speech.microsoft.com/portal/4066aae6c039458c9da1829eecd71f81/talkingavatar
We have a speech resource in WestUs2 which appears to be the only region allowed for avatar, so we use the endpoint https://westus2.api.cognitive.microsoft.com/
We are using ice server from Microsoft communication services with the endpoint turn:relay.communication.microsoft.com:3478.
However, even when we use Microsoft's avatar example here in https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/c648407902b32ce722df681086bf558fb39ba7b3/samples/js/browser/avatar we have lots of connection issues, either as not connecting in the first place, or disconnection after a few minutes.
We use this turn server 'turn:relay.communication.microsoft.com:3478' from Turkey and Argentina, where our developers are located, and they all have the same problems.
Would anyone know if these connection problems are due to the fact that Avatar API is in public preview, or is this a common problem in turn:relay.communication.microsoft.com:3478 connections?
Perhaps worth mentioning that 10 days ago we had much fewer issues, but things seem to be getting worse now unfortunately.
Any ideas or thoughts on how to address these connection issues would be greatly appreciated!!

Thanks for reporting this. We are investigating.
cc @yinhew

Experiencing the same thing but it seems to vary by machine. It runs fine on my primary, however, on others it just never connects.   Firefox seems to be the most reliable and connects the fastest.

Can you ping relay.communication.microsoft.com and see which region is showing?
Like below:
ping relay.communication.microsoft.com
Pinging b-tr-skysc-asse-01.southeastasia.cloudapp.azure.com [<IP_ADDRESS>] with 32 bytes of data
Support the region should be near to your location.


BUG: optimize: fixed issue 17380

See #17380

Reference issue

What does this implement/fix?

Additional information

This looks good except we have linting issues. Please follow along:

scipy/optimize/tests/test_linprog.py:347:1: E302 expected 2 blank lines, found 1
scipy/optimize/tests/test_linprog.py:348:15: E231 missing whitespace after ','
scipy/optimize/tests/test_linprog.py:348:63: E231 missing whitespace after ','

Please fix these, and we can get it merged.

@mdhaber The linting issues should be resolved. Sorry about that! Forgot to run the linting test.

Thanks @nboudrie!


Added Vue project and file templates

Added file templates for Vue projects (TS and JS).
Also added template for Vue Single File Component (TS and JS).
This templates are based on the official vue-cli 3.0 templates, with some small modifications.

Mentioning @bowdenk7 for visibility.


Restore a list scroll state switching between tabs is too slow and memory expensive

Details
I am ready to publish my first flutter app to read news by category. Every category has a list of posts with title, subtitle, FadeInImage and date. A List powered by RefreshIndicator and paging features. The app works perfect on any device. But I have discovered an issue with restoring scroll state switching between tabs if count of items is about 100+.
Memory usage is huge(example from simple app ).

Steps to reproduce

Run an app.
Scroll down to the end of a list of numbers(1k items).
Switch to the next tab and do previous step.
Switch between first and second tabs.
Actual result: Tabs switch with a huge delay.
Expected result: Tabs should switch with no delay with 60fps.

Gist https://gist.github.com/neestell/f2ad6e546610111e68ad418dbc37455c

Master channel + profile with skia video

Observatory dart-timeline-2019-6-22.txt
)

Logs

Analyzing tabs_with_long_scroll_content...
No issues found! (ran in 17.8s)

MacBook-Air-Dmitriy-Ra:tabs_with_long_scroll_content dmitry$ flutter doctor -v
[✓] Flutter (Channel stable, v1.7.8+hotfix.3, on Mac OS X 10.14.5 18F132, locale ru-RU)
    • Flutter version 1.7.8+hotfix.3 at /Volumes/Data/Android/flutter
    • Framework revision b712a172f9 (13 days ago), 2019-07-09 13:14:38 -0700
    • Engine revision 54ad777fd2
    • Dart version 2.4.0

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Volumes/Data/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Volumes/Data/Android/sdk
    • ANDROID_SDK_ROOT = /Volumes/Data/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
    • Xcode at /Volumes/Data/iOS/Xcode.app/Contents/Developer
    • Xcode 10.2.1, Build version 10E1001
    • CocoaPods version 1.7.1

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 37.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] Connected device (1 available)
    • Pixel 2 • HT7AZ1A00828 • android-arm64 • Android 9 (API 28)

• No issues found!

Related to https://github.com/flutter/flutter/issues/24791

code sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      showPerformanceOverlay: true,
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final List<String> itemsData = ['1', '2', '3', '4', '5', '6', '7'];
  final String title;
  final List<String> tabs = [
    'One',
    'Two',
    "Three",
    "Four",
    "Five",
    "Six",
    "Seven"
  ];

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    List<Widget> tabs = widget.tabs.map((tab) => Tab(text: tab)).toList();
    List<Widget> pages = widget.itemsData
        .map((item) => NewsWidget(item, key: PageStorageKey<String>(item)))
        .toList();

    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Center(child: TabsControllerWidget(tabs, pages)),
    );
  }
}

class TabsControllerWidget extends StatefulWidget {
  final List<Widget> tabs;
  final List<Widget> pages;

  TabsControllerWidget(this.tabs, this.pages);

  @override
  State<StatefulWidget> createState() => _TabsControllerWidgetState();
}

class _TabsControllerWidgetState extends State<TabsControllerWidget>
    with TickerProviderStateMixin {
  TabController tabController;

  _TabsControllerWidgetState() : super();

  Widget build(BuildContext context) {
    TabController tabController =
        TabController(length: widget.tabs.length, vsync: this);

    return DefaultTabController(
      length: tabController.length,
      child: Stack(
        children: <Widget>[
          Container(
            margin: EdgeInsets.only(top: kTextTabBarHeight - 1),
            child: TabBarView(
              controller: tabController,
              children: widget.pages,
            ),
          ),
          Container(
            color: Colors.white,
            width: double.infinity,
            child: TabBar(
                indicatorSize: TabBarIndicatorSize.label,
                indicatorWeight: 1,
                isScrollable: true,
                labelStyle: TextStyle(fontWeight: FontWeight.bold),
                labelColor: Colors.green,
                unselectedLabelColor: Colors.black26,
                unselectedLabelStyle: TextStyle(fontWeight: FontWeight.bold),
                controller: tabController,
                tabs: widget.tabs),
          ),
          Container(
            child: Divider(
              height: 1,
              color: Colors.black26,
            ),
          ),
        ],
      ),
    );
  }
}

class NewsWidget extends StatefulWidget {
  final String item;

  const NewsWidget(this.item, {Key key}) : super(key: key);

  @override
  _NewsWidgetState createState() {
    return _NewsWidgetState();
  }
}

class _NewsWidgetState extends State<NewsWidget> {
  final GlobalKey<RefreshIndicatorState> _refreshIndicatorKey =
      new GlobalKey<RefreshIndicatorState>();

  ScrollController _scrollController;

  @override
  void initState() {
    _scrollController = ScrollController();
    super.initState();
  }

  @override
  void dispose() {
    _scrollController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    Widget listView = ListView.separated(
        itemBuilder: (BuildContext context, int index) {
          bool odd = index % 2 == 0;
          return Container(
            height: odd ? 54 : 65,
            child: Text(widget.item),
            color: odd ? Colors.grey : Colors.amberAccent,
          );
        },
        separatorBuilder: (context, index) => Divider(
              color: Colors.black,
              height: 1,
            ),
        controller: _scrollController,
        itemCount: 1000);

    return RefreshIndicator(
        key: _refreshIndicatorKey,
        onRefresh: _handleRefresh,
        backgroundColor: Colors.white,
        child: listView);
  }

  Future<void> _handleRefresh() {
    return null;
  }
}

multiple flutter doctor -v
[✓] Flutter (Channel stable, 1.22.5, on macOS 11.1 20C69 darwin-x64, locale
    en-GB)
    • Flutter version 1.22.5 at /Users/tahatesser/Code/flutter_stable
    • Framework revision<PHONE_NUMBER> (8 days ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.0

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.17.0

[✓] Connected device (2 available)
    • RMX2001 (mobile)     • EUYTFEUSQSRGDA6D          • android-arm64 • Android
      10 (API 29)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E • ios           • iOS
      14.3

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 1.26.0-2.0.pre.84, on macOS 11.1 20C69 darwin-x64,
    locale en-GB)
    • Flutter version 1.26.0-2.0.pre.84 at /Users/tahatesser/Code/flutter_master
    • Framework revision cda1fae6b6 (4 hours ago), 2020-12-18 04:04:02 -0500
    • Engine revision 1be6f414e7
    • Dart version 2.12.0 (build 2.12.0-166.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/tahatesser/Code/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/tahatesser/Code/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[!] Android Studio
    • Android Studio at /Applications/Android/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Android Studio not found at /Applications/Android/Contents
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.17.0

[✓] Connected device (4 available)
    • RMX2001 (mobile)     • EUYTFEUSQSRGDA6D          • android-arm64  •
      Android 10 (API 29)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E • ios            • iOS
      14.3
    • macOS (desktop)      • macos                     • darwin-x64     • macOS
      11.1 20C69 darwin-x64
    • Chrome (web)         • chrome                    • web-javascript • Google
      Chrome 87.0.4280.88

! Doctor found issues in 1 category.

This issue is reproducible on the latest stable and master channels. Verifying on Android device: Samsung Galaxy Tab A7 Lite, Android 12.

Sample code (be compatible with the new flutter version)
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      showPerformanceOverlay: true,
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final List<String> itemsData = ['1', '2', '3', '4', '5', '6', '7'];
  final String title;
  final List<String> tabs = [
    'One',
    'Two',
    "Three",
    "Four",
    "Five",
    "Six",
    "Seven"
  ];

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    List<Widget> tabs = widget.tabs.map((tab) => Tab(text: tab)).toList();
    List<Widget> pages = widget.itemsData
        .map((item) => NewsWidget(item, key: PageStorageKey<String>(item)))
        .toList();

    return Scaffold(
      appBar: AppBar(title: Text(widget.title)),
      body: Center(child: TabsControllerWidget(tabs, pages)),
    );
  }
}

class TabsControllerWidget extends StatefulWidget {
  final List<Widget> tabs;
  final List<Widget> pages;

  TabsControllerWidget(this.tabs, this.pages);

  @override
  State<StatefulWidget> createState() => _TabsControllerWidgetState();
}

class _TabsControllerWidgetState extends State<TabsControllerWidget>
    with TickerProviderStateMixin {

  _TabsControllerWidgetState() : super();

  Widget build(BuildContext context) {
    TabController tabController =
    TabController(length: widget.tabs.length, vsync: this);

    return DefaultTabController(
      length: tabController.length,
      child: Stack(
        children: <Widget>[
          Container(
            margin: EdgeInsets.only(top: kTextTabBarHeight - 1),
            child: TabBarView(
              controller: tabController,
              children: widget.pages,
            ),
          ),
          Container(
            color: Colors.white,
            width: double.infinity,
            child: TabBar(
                indicatorSize: TabBarIndicatorSize.label,
                indicatorWeight: 1,
                isScrollable: true,
                labelStyle: TextStyle(fontWeight: FontWeight.bold),
                labelColor: Colors.green,
                unselectedLabelColor: Colors.black26,
                unselectedLabelStyle: TextStyle(fontWeight: FontWeight.bold),
                controller: tabController,
                tabs: widget.tabs),
          ),
          Container(
            child: Divider(
              height: 1,
              color: Colors.black26,
            ),
          ),
        ],
      ),
    );
  }
}

class NewsWidget extends StatefulWidget {
  final String item;

  const NewsWidget(this.item, {Key? key}) : super(key: key);

  @override
  _NewsWidgetState createState() {
    return _NewsWidgetState();
  }
}

class _NewsWidgetState extends State<NewsWidget> {
  final GlobalKey<RefreshIndicatorState> _refreshIndicatorKey =
  new GlobalKey<RefreshIndicatorState>();

  late ScrollController _scrollController;

  @override
  void initState() {
    _scrollController = ScrollController();
    super.initState();
  }

  @override
  void dispose() {
    _scrollController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    Widget listView = ListView.separated(
        itemBuilder: (BuildContext context, int index) {
          bool odd = index % 2 == 0;
          return Container(
            height: odd ? 54 : 65,
            child: Text(widget.item),
            color: odd ? Colors.grey : Colors.amberAccent,
          );
        },
        separatorBuilder: (context, index) => Divider(
          color: Colors.black,
          height: 1,
        ),
        controller: _scrollController,
        itemCount: 1000);

    return RefreshIndicator(
        key: _refreshIndicatorKey,
        onRefresh: _handleRefresh,
        backgroundColor: Colors.white,
        child: listView);
  }

  Future<void> _handleRefresh() {
    return Future.value(null);
  }
}

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.3.10, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.3.10 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (13 hours ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.54.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 12 (API 31)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 108.0.5359.124

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[!] Flutter (Channel master, 3.7.0-13.0.pre.92, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.7.0-13.0.pre.92 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4e08ebb2bf (2 hours ago), 2022-12-27 19:31:24 -0500
    • Engine revision 8294e2693a
    • Dart version 3.0.0 (build 3.0.0-66.0.dev)
    • DevTools version 2.20.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.74.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.56.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 108.0.5359.124

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Timeline trace JSON file: dart_devtools_2022-12-28_17_03_19.102.json.zip


[WIP] Use flask to run AFQ

We want to wrap AFQ-Browser with a powerful Django-based web server, that will allow for user logins, and for users to upload & visualize AFQ data.
In order to make that happen, we need to:

separate static files from user-generated files
generalize scripts to read from a DATA_URL, that can be defined dynamically.

This is a WIP, to serve the needs of https://github.com/bcipolli/AFQVault while keeping AFQ-Browser as a stand-alone application.

Closed in favor of #129


Grammatical improvements

Changed all instances of "these code" to "this code", and fixed a typo in the word "implementation".

Merged it, thx!


Request: Integration for Transmission

Possible to get an integration for Transmission?
Data would be similar (if not identical) to what the other torrent client integrations pull.
Web: https://transmissionbt.com/
Git: https://github.com/transmission/transmission
[Available to help and/or test if needed.]

Yes, please 🙏

@mvicari @viriatusX @DocDrydenn 👋
I need testers. Please join me on the Notifiarr Discord if you have some spare time to help make this a solid integration. We'll get you setup with a test client that can begin sending payloads to the website so @austinwbest can create a Dashboard output. Then we'll need to make sure it all looks beautiful. 🎨

This isn't going to get merged or into a release until the upstream library accepts my contribution, or provides another route to input a custom http.Client. This feature will remain available in the unstable build for now.


Article should give guidance on encrypting the .bot file using the msbot tool

The article explains how to update settings for a QnA Maker service in your .bot file. It needs to guide the developer to use the msbot tool to update the .bot file when it is encrypted. A developer new to bot development will be blocked unless this is explained.

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

ID: 2963321c-6720-be8f-aba6-225960eba1b3
Version Independent ID: bff968a7-33a8-bc53-b08b-6c17d672c3cd
Content: Use QnA Maker to answer questions - Bot Service
Content Source: articles/v4sdk/bot-builder-howto-qna.md
Service: bot-service
Product: bot-framework
GitHub Login: @ivorb
Microsoft Alias: v-ivorb

We are re-evaluating the role of .bot file and how to manage bot services all up. So, expect to see changes coming in this area of the tools.


add responsiveness to all pages and fix css queries

**Describe the issue that the Pull Request resolves**
This PR solves all the issues related to responsiveness in all the pages of the website

**Describe the changes the Pull Request makes**
The changes files are:
death.html
keep.html
limitless.html
sneak.html
watch.html
difficulty.html
instruction.html
difficultyDefault.html
board_stylesheet.css

**Mention the person responsible for reviewing the proposed changes**
@SubhamKarmakar24

**MAKE SURE THAT THE PULL REQUEST IS TO THE DEV BRANCH AND NOT THE MASTER BRANCH
ANY PULL REQUEST TO MASTER BRANCH WOULD NOT BE MERGED UNLESS THE CHANGES HAVE BEEN TESTED IN THE DEV BRANCH

YOU WILL HAVE TO MAKE ANOTHER PULL REQUEST TO THE DEV BRANCH IF YOU MAKE THE PULL REQUEST TO THE MASTER BRANCH**
@SubhamKarmakar24

Describe the issue that the Pull Request resolves This PR solves all the issues related to responsiveness in all the pages of the website
Describe the changes the Pull Request makes The changes files are: death.html keep.html limitless.html sneak.html watch.html difficulty.html instruction.html difficultyDefault.html board_stylesheet.css
Mention the person responsible for reviewing the proposed changes
@SubhamKarmakar24
**MAKE SURE THAT THE PULL REQUEST IS TO THE DEV BRANCH AND NOT THE MASTER BRANCH ANY PULL REQUEST TO MASTER BRANCH WOULD NOT BE MERGED UNLESS THE CHANGES HAVE BEEN TESTED IN THE DEV BRANCH
YOU WILL HAVE TO MAKE ANOTHER PULL REQUEST TO THE DEV BRANCH IF YOU MAKE THE PULL REQUEST TO THE MASTER BRANCH**
@SubhamKarmakar24

Please make the same PR to the dev branch instead. I will review the changes and merge it by end of today @ampsteric

okay done @SubhamKarmakar24 , please check #30.
Best regards.

okay done @SubhamKarmakar24 , please check #30.
Best regards.

Yeah, great!!