Figure cannot be reproduced with jupyter notebook

Hi. I tried to reproduce your figures in the paper and executed the ipynb here.  https://github.com/choderalab/qmlify/blob/master/experiments/free_energy_corrections.ipynb
I got the same plots for the histograms of non-eq work as shown in the notebook, but I cannot reproduce the results of dG and ddG plot like this:

I did not change any cells in the notebook. I'm wondering something wrong with MM data uploaded on github.

@dominicrufa @hannahbrucemacdonald  : Can you look into this and make sure the correct dataset is uploaded?

@TaizoAyase , i cloned the repo locally again (master), reran the notebook, and got the same results as the preprint reports again. I am slightly confused with your results as even the "uncorrected" MM relative and absolute free energies do not match the data in the repo. furthermore, there is a relative calculated error (last plot) with an errorbar of ~0.5 kcal/mol, which is not in the data. could you post a .yml of your conda env so i can troubleshoot from your end? i may have to provide an env.yml with the repo to avoid these problems in the future. thanks for raising the issue.

thank you for quick response!
here is my environment of conda.
name: base
channels:
  - conda-forge
  - omnia
  - defaults
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=1_gnu
  - alabaster=0.7.12=py_0
  - ambermini=16.16.0=7
  - ambertools=18.0=0
  - argon2-cffi=20.1.0=py37h8f50634_1
  - astor=0.8.1=pyh9f0ad1d_0
  - attrs=20.1.0=pyh9f0ad1d_0
  - babel=2.8.0=py_0
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=py_2
  - backports.functools_lru_cache=1.6.1=py_0
  - bleach=3.1.5=pyh9f0ad1d_0
  - blosc=1.20.0=he1b5a44_0
  - bokeh=2.2.0=py37hc8dfbb8_0
  - boost=1.72.0=py37h9de70de_0
  - boost-cpp=1.72.0=h7b93d67_2
  - brotlipy=0.7.0=py37h8f50634_1000
  - bson=0.5.9=py_0
  - bzip2=1.0.8=h516909a_3
  - c-ares=1.16.1=h516909a_3
  - ca-certificates=2020.6.20=hecda079_0
  - cairo=1.16.0=h3fc0475_1005
  - certifi=2020.6.20=py37hc8dfbb8_0
  - cffi=1.14.1=py37h2b28604_0
  - cftime=1.2.1=py37h03ebfcd_0
  - chardet=3.0.4=py37hc8dfbb8_1006
  - click=7.1.2=pyh9f0ad1d_0
  - cloudpickle=1.6.0=py_0
  - codecov=2.1.9=pyh9f0ad1d_0
  - conda=4.8.4=py37hc8dfbb8_2
  - conda-package-handling=1.7.0=py37h8f50634_4
  - coverage=5.2.1=py37h8f50634_0
  - cryptography=3.0=py37hb09aad4_0
  - curl=7.71.1=he644dc0_5
  - cycler=0.10.0=py_2
  - cython=0.29.21=py37h3340039_0
  - cytoolz=0.10.1=py37h516909a_0
  - dask=2.24.0=py_0
  - dask-core=2.24.0=py_0
  - dbus=1.13.6=he372182_0
  - decorator=4.4.2=py_0
  - defusedxml=0.6.0=py_0
  - distributed=2.24.0=py37hc8dfbb8_0
  - docutils=0.16=py37hc8dfbb8_1
  - entrypoints=0.3=py37hc8dfbb8_1001
  - expat=2.2.9=he1b5a44_2
  - fftw3f=3.3.4=2
  - fontconfig=2.13.1=h1056068_1002
  - freetype=2.10.2=he06d7ca_0
  - fsspec=0.8.0=py_0
  - gettext=<IP_ADDRESS>=hc5be6a0_1002
  - glib=2.65.0=h6f030ca_0
  - gst-plugins-base=1.14.5=h0935bb2_2
  - gstreamer=1.14.5=h36ae1b5_2
  - hdf4=4.2.13=hf30be14_1003
  - hdf5=1.10.6=nompi_h3c11f04_101
  - heapdict=1.0.1=py_0
  - icu=67.1=he1b5a44_0
  - idna=2.10=pyh9f0ad1d_0
  - imagesize=1.2.0=py_0
  - importlib-metadata=1.7.0=py37hc8dfbb8_0
  - importlib_metadata=1.7.0=0
  - iniconfig=1.0.1=pyh9f0ad1d_0
  - ipykernel=5.3.4=py37h43977f1_0
  - ipython=7.17.0=py37hc6149b9_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.5.1=py_0
  - jinja2=2.11.2=pyh9f0ad1d_0
  - jpeg=9d=h516909a_0
  - jsonschema=3.2.0=py37hc8dfbb8_1
  - jupyter_client=6.1.7=py_0
  - jupyter_console=6.1.0=py_1
  - jupyter_core=4.6.3=py37hc8dfbb8_1
  - kiwisolver=1.2.0=py37h99015e2_0
  - krb5=1.17.1=hfafb76e_2
  - latexcodec=2.0.1=pyh9f0ad1d_0
  - lcms2=2.11=hbd6801e_0
  - ld_impl_linux-64=2.34=hc38a660_9
  - libblas=3.8.0=17_openblas
  - libcblas=3.8.0=17_openblas
  - libclang=10.0.1=default_hde54327_1
  - libcurl=7.71.1=hcdd3856_5
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h516909a_0
  - libevent=2.1.10=hcdb4288_2
  - libffi=3.2.1=he1b5a44_1007
  - libgcc=7.2.0=h69d50b8_2
  - libgcc-ng=9.3.0=h24d8f2e_16
  - libgfortran-ng=7.5.0=hdf63c60_16
  - libgomp=9.3.0=h24d8f2e_16
  - libiconv=1.16=h516909a_0
  - liblapack=3.8.0=17_openblas
  - libllvm10=10.0.1=he513fc3_2
  - libnetcdf=4.7.4=nompi_h84807e1_105
  - libnghttp2=1.41.0=h8cfc5f6_2
  - libopenblas=0.3.10=pthreads_hb3c22a3_4
  - libpng=1.6.37=hed695b0_2
  - libpq=12.3=h5513abc_0
  - libsodium=1.0.18=h516909a_0
  - libssh2=1.9.0=hab1572f_5
  - libstdcxx-ng=9.3.0=hdf63c60_16
  - libtiff=4.1.0=hc7e4089_6
  - libuuid=2.32.1=h14c3975_1000
  - libwebp-base=1.1.0=h516909a_3
  - libxcb=1.13=h14c3975_1002
  - libxkbcommon=0.10.0=he1b5a44_0
  - libxml2=2.9.10=h68273f3_2
  - libxslt=1.1.33=h572872d_1
  - llvmlite=0.34.0=py37h5202443_0
  - locket=0.2.0=py_2
  - lxml=4.5.2=py37he3881c9_0
  - lz4-c=1.9.2=he1b5a44_3
  - lzo=2.10=h516909a_1000
  - markupsafe=1.1.1=py37h8f50634_1
  - matplotlib-base=3.3.1=py37hd478181_1
  - mdtraj=1.9.4=py37h4112681_0
  - mistune=0.8.4=py37h8f50634_1001
  - mock=4.0.2=py37hc8dfbb8_0
  - more-itertools=8.4.0=py_0
  - msgpack-python=1.0.0=py37h99015e2_1
  - mysql-common=8.0.21=0
  - mysql-libs=8.0.21=hf3661c5_0
  - nbconvert=5.6.1=py37hc8dfbb8_1
  - nbformat=5.0.7=py_0
  - ncurses=6.2=he1b5a44_1
  - networkx=2.5=py_0
  - notebook=6.1.3=py37hc8dfbb8_0
  - nspr=4.28=he1b5a44_0
  - nss=3.56=he751ad9_0
  - numba=0.51.0=py37h9fdb41a_0
  - numexpr=2.7.1=py37h0da4684_1
  - numpy=1.19.1=py37h7ea13bd_2
  - olefile=0.46=py_0
  - openforcefield=0.6.0=py37_1
  - openforcefields=1.2.0=py37_0
  - openmm=7.4.2=py37_cuda101_rc_1
  - openmmforcefields=0.7.4=py_0
  - openssl=1.1.1g=h516909a_1
  - packaging=20.4=pyh9f0ad1d_0
  - pandas=1.1.1=py37h3340039_0
  - pandoc=2.10.1=h516909a_0
  - partd=1.1.0=py_0
  - patsy=0.5.1=py_0
  - pcre=8.44=he1b5a44_0
  - pdbfixer=1.6=py37_0
  - pexpect=4.8.0=py37hc8dfbb8_1
  - pickleshare=0.7.5=py37hc8dfbb8_1001
  - pillow=7.2.0=py37h718be6c_1
  - pip=20.2.2=py_0
  - pixman=0.38.0=h516909a_1003
  - pluggy=0.13.1=py37hc8dfbb8_2
  - progressbar=2.5=py_0
  - prometheus_client=0.8.0=pyh9f0ad1d_0
  - prompt-toolkit=3.0.6=py_0
  - prompt_toolkit=3.0.6=0
  - psutil=5.7.2=py37h8f50634_0
  - pthread-stubs=0.4=h14c3975_1001
  - ptyprocess=0.6.0=py_1001
  - py=1.9.0=pyh9f0ad1d_0
  - pybtex=0.22.2=py37hc8dfbb8_1
  - pybtex-docutils=0.2.2=py37hc8dfbb8_1
  - pycairo=1.19.1=py37h01af8b0_3
  - pycosat=0.6.3=py37h8f50634_1004
  - pycparser=2.20=pyh9f0ad1d_2
  - pygments=2.6.1=py_0
  - pyopenssl=19.1.0=py_1
  - pyparsing=2.4.7=pyh9f0ad1d_0
  - pyqt=5.12.3=py37h8685d9f_3
  - pyrsistent=0.16.0=py37h8f50634_0
  - pysocks=1.7.1=py37hc8dfbb8_1
  - pytables=3.6.1=py37h56451d4_2
  - pytest=6.0.1=py37hc8dfbb8_0
  - pytest-cov=2.10.1=pyh9f0ad1d_0
  - python=3.7.8=h6f2ec95_1_cpython
  - python-dateutil=2.8.1=py_0
  - python_abi=3.7=1_cp37m
  - pytz=2020.1=pyh9f0ad1d_0
  - qt=5.12.6=h0c8506f_0
  - qtconsole=4.7.6=pyh9f0ad1d_0
  - qtpy=1.9.0=py_0
  - rdkit=2020.03.5=py37h3f38cc2_0
  - readline=8.0=he28a2e2_2
  - requests=2.24.0=pyh9f0ad1d_0
  - ruamel_yaml=0.15.80=py37h8f50634_1001
  - scipy=1.5.2=py37hb14ef9d_0
  - seaborn=0.11.0=0
  - seaborn-base=0.11.0=py_0
  - send2trash=1.5.0=py_0
  - setuptools=49.6.0=py37hc8dfbb8_0
  - six=1.15.0=pyh9f0ad1d_0
  - smirnoff99frosst=1.1.0=py37_1
  - snappy=1.1.8=he1b5a44_3
  - snowballstemmer=2.0.0=py_0
  - sortedcontainers=2.2.2=pyh9f0ad1d_0
  - sphinx=3.2.1=py_0
  - sphinxcontrib-applehelp=1.0.2=py_0
  - sphinxcontrib-bibtex=1.0.0=py_0
  - sphinxcontrib-devhelp=1.0.2=py_0
  - sphinxcontrib-htmlhelp=1.0.3=py_0
  - sphinxcontrib-jsmath=1.0.1=py_0
  - sphinxcontrib-qthelp=1.0.3=py_0
  - sphinxcontrib-serializinghtml=1.1.4=py_0
  - sqlite=3.33.0=h4cf870e_0
  - statsmodels=0.12.0=py37h8f50634_0
  - tblib=1.6.0=py_0
  - testpath=0.4.4=py_0
  - tinydb=4.1.1=pyh9f0ad1d_0
  - tk=8.6.10=hed695b0_0
  - toml=0.10.1=pyh9f0ad1d_0
  - toolz=0.10.0=py_0
  - tornado=6.0.4=py37h8f50634_1
  - tqdm=4.48.2=pyh9f0ad1d_0
  - traitlets=4.3.3=py37hc8dfbb8_1
  - typing_extensions=<IP_ADDRESS>=py_0
  - urllib3=1.25.10=py_0
  - wcwidth=0.2.5=pyh9f0ad1d_1
  - wheel=0.35.1=pyh9f0ad1d_0
  - widgetsnbextension=3.5.1=py37hc8dfbb8_1
  - xmltodict=0.12.0=py_0
  - xorg-kbproto=1.0.7=h14c3975_1002
  - xorg-libice=1.0.10=h516909a_0
  - xorg-libsm=1.2.3=h84519dc_1000
  - xorg-libx11=1.6.12=h516909a_0
  - xorg-libxau=1.0.9=h14c3975_0
  - xorg-libxdmcp=1.1.3=h516909a_0
  - xorg-libxext=1.3.4=h516909a_0
  - xorg-libxrender=0.9.10=h516909a_1002
  - xorg-renderproto=0.11.1=h14c3975_1002
  - xorg-xextproto=7.3.0=h14c3975_1002
  - xorg-xproto=7.0.31=h14c3975_1007
  - xz=5.2.5=h516909a_1
  - yaml=0.2.5=h516909a_0
  - zeromq=4.3.2=he1b5a44_3
  - zict=2.0.0=py_0
  - zipp=3.1.0=py_0
  - zlib=1.2.11=h516909a_1007
  - zstd=1.4.5=h6597ccf_2
  - pip:
    - cerberus==1.3.2
    - clusterutils==0.3.1
    - coddiwomple==0+untagged.48.g6e9e2d5
    - docopt==0.6.2
    - future==0.18.2
    - ipython-genutils==0.2.0
    - jedi==0.17.2
    - joblib==0.16.0
    - jupyter==1.0.0
    - lark-parser==0.9.0
    - mpi4py==3.0.3
    - mpiplus==0.0.1+2.ga49d00e
    - netcdf4==1.3.1
    - openmmtools==0.19.0
    - oset==0.1.3
    - pandocfilters==1.4.2
    - parmed==3.2.0
    - parso==0.7.1
    - pymbar==3.0.5
    - pyqt5-sip==4.19.18
    - pyqtchart==5.12
    - pyqtwebengine==5.12.1
    - pyyaml==5.3.1
    - pyzmq==19.0.2
    - scikit-learn==0.23.2
    - sklearn==0.0
    - terminado==0.8.3
    - threadpoolctl==2.1.0
    - torch==1.6.0
    - torchani==2.2
    - torchvision==0.7.0
    - webencodings==0.5.1
prefix: /home/user/.pyenv/versions/miniconda3-4.7.12

arsenic, perses, qmlify package is installed vi pip install -e . , so not listed above:
$ pip freeze
...
-e git+https://github.com/openforcefield/Arsenic.git@0dadc5c5919fdfa8f161abe9763967920ee000b0#egg=arsenic
-e git+https://github.com/choderalab/perses.git@086bd714de51dcd1158f8a6eed2bdc7152d38a68#egg=perses
-e git+https://github.com/choderalab/qmlify.git@3e1d483979d65b947910d31867fc9440513c21b3#egg=qmlify
...

Hi @dominicrufa , I ran into similar difficulties replicating Figure 6 using the Jupyter notebook. I found that changing the order of the simulations loaded into the list all_sims significantly alters the distribution in the graph. I couldn’t figure out if this behavior is expected or in what order the simulations should be loaded into the analyze_mlmm function. What's the order on your system?
This is the order of simulations for me and the resultant plot:
lig5to0
lig14to8
lig10to13
lig15to14
lig14to9
lig3to0
lig11to14
lig1to13
lig4to14
lig6to0
lig14to2
lig4to5
lig10to6
lig3to13
lig0to7
lig4to12
lig2to7
lig8to0
lig4to13
lig15to4
lig0to12
lig1to6
lig11to0
lig4to9

I tried sorting the simulations by filename and by ligands resulting in different plots but none are matching your results.
PS: I used a clean conda environment built using the environment (.yml) file I found in the peruses repository.

@soerenbrandt : This is a great clue! Thanks for the detailed reports!
I suspect we're seeing the effects of this potential bug: https://github.com/openforcefield/openforcefield/issues/723
Once we fix that, @dominicrufa should be able to regenerate the pickles (based on an Ordered Graph) and have the notebook work consistently on other machines.
Thanks for bearing with us, folks, and for the great feedback! This is why we preprint early versions of the work---to get all of this great feedback and help make things more robust and usable before we publish!
@dominicrufa : Can you also check in your environment.yml in the meantime? This might also help us identify future issues that result from package version differences.

@dominicrufa , thanks for the quick reply! I was able to replicate the figures using the jupyter notebook!
I used the fe8724f branch for Arsenic though as you suggested.
I wasn't able to use the environment file you added (I tried but got several packages that couldn't be found). I used the peruses_env.yml file instead (note: plotly and sklearn are not part of that environment and have to be installed separately).
With these modifications, the figures look exactly as in your preprint:

Thank you!

Quick update: @dominicrufa and @hannahbrucemacdonald have found that there is an issue where the ordering of free energies from the https://github.com/openforcefield/Arsenic package can be incorrect that was recently introduced (in a version after the notebook was created), though it was not quite the potential issue I had identified. While @hannahbrucemacdonald is working on that, @dominicrufa is working on freezing the working environment he had used (#7) until we git this fixed. We'll cut a release for arsenic at that time and update the environment.yml at that time.

Whoops, I responded before seeing @dominicrufa's response! Glad you got this working! We'll try to make things easier to reproduce!

Thanks for pointing this out --- also spotting that the order of the results changed the plots --- it was very helpful for figuring out what went wrong.
Now using the latest Arsenic master, with https://github.com/choderalab/qmlify/pull/9 the results are consistent with both order of simulation files.
I accidentally changed arsenic to go from reporting free energies in the order of the ligands, to the order of the nodes (so that you could use a str ligand name), so now there is ambiguity as to what's returned. The experimental values were being assigned based on the order of nodes (which changes when you change the order the edges are added --- when you change the order of simulation results!).
Obviously it's problematic if it's not clear if the calculated values are the order of ligands, or nodes (seeing as I confused myself) so the API for arsenic will change to make this clearer, but I will make sure to change qmlify along with it next time.
Thanks for opening an issue and bearing with us! 👍 :)

@dominicrufa @jchodera @hannahbrucemacdonald
Thank you for your quick reply, and sorry for my late response.
I can also reproduce the exactly same scatter plots in the notebook free_energy_corrections.ipynb .
As @soerenbrandt mentioned above, I cannot create conda environment from the yaml file due to Solving environment: failed error.
But, using Arsenic version fe8724f is enough to reproduce the results.
Thank you very match!
I'll close this issue as the problem is resolved.


[Question]: Can we publish a persistent message?

Hello friend. I am new to rabbit-mq and I was working through their work queue tutorial and discovered the following code where I noticed persistent: true option.
channel.assertQueue(queue, {
  durable: true
});

channel.sendToQueue(queue, Buffer.from(msg), {
  persistent: true
});

I have tried finding parallels with deno-amqp lib and I was not able to find persistent: true option with channel.publish as seen below
const queue = 'task_queue';
await channel.declareQueue({ queue, durable: true });

await channel.publish(
	{ routingKey: queue },
	{ contentType: 'text' },
	new TextEncoder().encode(msg),
);

How can I set persistent: true option? Maybe I am not asking the the right question, any guidance would be appreciated.

I think you are looking for the property "deliveryMode". In amqplib for node.js they have introduced the persistent option, but it's not defined in the spec: https://github.com/amqp-node/amqplib/blob/4791f2dfbe8f3bfbd02bb0907e3c35129ae71c13/lib/api_args.js#L214
await channel.publish(
  { routingKey: queueName },
  { contentType: "application/json", deliveryMode: 2 },
  new TextEncoder().encode(JSON.stringify({ foo: "bar" })),
);

See also: https://www.rabbitmq.com/publishers.html#message-properties

@lenkan that's it! Thank you for working on this lib, I really LOVE it!


Dependency conflict with upgrade to laravel 11

Problem 1
- illuminate/console[v9.0.0-beta.1, ..., 9.x-dev] require symfony/process ^6.0 -> found symfony/process[v6.0.0-BETA1, ..., 6.4.x-dev] but it conflicts with your root composer.json require (^7.0).
- illuminate/console[v10.0.0, ..., 10.x-dev] require symfony/process ^6.2 -> found symfony/process[v6.2.0-BETA1, ..., 6.4.x-dev] but it conflicts with your root composer.json require (^7.0).
- clickbar/laravel-magellan 1.5.0 requires illuminate/console ^9.0|^10.0 -> satisfiable by illuminate/console[v9.0.0-beta.1, ..., 9.x-dev, v10.0.0, ..., 10.x-dev].
- Root composer.json requires clickbar/laravel-magellan ^1.5 -> satisfiable by clickbar/laravel-magellan[1.5.0].

Yes we did not yet release the new version but you can just override the repository in composer to use the main branch

sorry, I don't understand. How do you suggest I resolve this conflict?


Video Autoplays the Up next video no matter what.

i have turned off auto play, but it plays the next video no matter what you do.
also sometimes i have to refresh my screen 5 times to play a video, as the video pauses itself as soon as i press play.

Might I recommend and alternative to YTC. It might fit your needs.
https://github.com/ParticleCore/Particle/

yeah, i need some i dont like it much, i have so many features i need from YTC that particle core just doesn't offer me the options.

Ok. I myself got lucky with YT+(Particle) having all the features I used with YTC.
It seems that YTC is dying since it very rarely gets updated and new problems emerge almost daily. So you might want to start looking for an alternative.


Tensorflow installation in venv results in RuntimeError when importing the library

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 20.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): Using pip
TensorFlow version: Latest (cannot determine version after installation)
Python version: 3.8.10
Installed using virtualenv? pip? conda?: Using pip, inside venv
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

Describe the problem
When trying to install Tensorflow using pip inside a virtual environment, installation completes, but importing the library results in a RuntimeError.
Provide the exact sequence of commands / steps that you executed before running into the problem

python3 -m venv venv
. venv/bin/activate
python3 -m pip install tensorflow
python3 -c "import tensorflow as tf; print(tf.__version__)"

Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
First 3 steps work as expected, 4th step results in the following errors:
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd.
...
ImportError: SystemError: <built-in method __contains__ of dict object at 0x7f47294d6b80> returned a result with an error set

I have tried manually upgrading numpy, but that didn't resolve my issue.

Finally got a solution.
Not sure what I did different, but here are the steps that worked:

python3 -m venv --system-site-packages ./venv
source ./venv/bin/activate
pip install --upgrade pip
pip install --upgrade tensorflow

After that, the previous import step worked.


ludown refresh: optional auto-gen line

Is your feature request related to a problem? Please describe.
We use ludown to export our LUIS apps and we maintain the exported .lu file in git. Most times, the LUIS models don't change at all but git finds a diff because the first line of the ludown refresh output is:
> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Jun 19 2018 08:29:47 GMT-0400 (Eastern Daylight Time)
Ideally, we would have an easy way to not include this line so we could use a toolchain based on git diffs.
Describe the solution you'd like
A command line flag into ludown refresh should be sufficient.
Describe alternatives you've considered
We could write some scripts to remove that first line from the ludown refresh output. Would prefer to keep it native to ludown if possible. Others might find this useful.
Looking forward to your feedback.

Fixed in version 1.0.28.
You can now do ludown refresh -i  -s | --skip_header


forge coverage has problems to compile

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (81896c5 2024-06-11T00:20:18.841715200Z)
What command(s) is the bug in?
forge coverage
Operating System
Windows
Describe the bug
Had a function with stack too deep error, fixed it using internal function and the block scoping approach as UniswapV2Router02 in here https://github.com/Uniswap/v2-periphery/blob/69617118cda519dab608898d62aaa79877a61004/contracts/UniswapV2Router02.sol#L328
The file compiles fine using forge build and forge compile as you can see in the next image

forge test works fine as you can see in the next image

But forge coverage still throw the same error with both aproachs(internal functions or block scoping)

Terminal used: Git Bash

I'm closing it myself as it works with forge coverage --ir-minimum


Question about glm integration

I can see the following in the code:
m_uniforms.viewMatrix = glm::lookAt(vec3(-2.0f, -3.0f, 2.0f), vec3(0.0f), vec3(0, 0, 1));
I wonder why the up vector is (0, 0, 1) instead of (0, 1, 0) ?
(Note that some other examples are using (0, 1, 0) like here)

In fact that works also as exptexted with (0, 1, 0). That was just a choice.
My bad !

There is no consensus about which of the Y (0,1,0) or Z (0,0,1) should be used as the vertical axis, the choice is left to you!
For instance Blender, Unreal Engine and this guide use Z-up, Maya and Unity use Y-up, etc.


Output file not created in macOS

Operating System : MacOS
OS version : 10.13.3
Java version : 1.8.0_131
psql version : 10.2
gradle version : 4.5.1
Software versions in the Let's start section in the README.
Description
An output file should be generated after running the command gradle runExport -Precipe='src/main/resources/executions/examples/reaggregate-traffic-count-to-la.json' but no output file was generated.
There wasn't any error.

Please specify also the output file through the -Poutput option.
Try to run gradle runExport -Precipe='src/main/resources/executions/examples/reaggregate-traffic-count-to-la.json' -Poutput='reaggregate-output.json', but before running it remove the comments in the json recipe src/main/resources/executions/examples/reaggregate-traffic-count-to-la.json.

Still the output file is not generated.
The output of gradle runExport -Precipe='src/main/resources/executions/examples/reaggregate-traffic-count-to-la.json' -Poutput='reaggregate-output.json' is attached below.
_output.txt

@anchal0997 Can you check if this problem still persists for you. We cannot replicate it.

Closing the issue as not reported again back again.


defaultSizes doesn't scale the panes' sizes proportionally

The documentation says:

defaultSizes
An array of initial sizes of the panes. If the sum of the sizes differs from the size of the container then the panes' sizes will be scaled proportionally.

I'd expect defaultSizes={[2, 1]} to scale the panes' sizes in the ratio of 2:1, i.e., if the container is 300px, the sizes would be 200px and 100px. However, it is not the case. The first pane's size is its minSize, which is 50px in my case, and the second pane takes the rest of the space.
Could you please clarify if it's expected behavior and if so, how exactly defaultSizes works?

Closing this as defaultSizes works correctly. It's a combination of defaultSizes, preferredSize, and programmatic control that caused issues


PagedMasonryGridView can't scroll by mouse in desktop web

I am able to scroll by mouse in PagedGridView, but not in PagedMasonryGridView.

hi @siulun234 , can you provide a piece of your code?


CreateMeasurements4 proposal

Use case: simulate new data appearing (for example if a new weather station is built) => test if program handle new key appearing correctly.
Summary: the first 500M lines only have 2500 keys, then the remaining 500M lines have full 10K keys.
/*
 *  Copyright 2023 The original authors
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package dev.morling.onebrc;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.concurrent.ThreadLocalRandom;

public class CreateMeasurements4 {

    public static final int MAX_NAME_LEN = 100;
    public static final int KEYSET_SIZE = 10_000;

    public static void main(String[] args) throws Exception {
        if (args.length != 1) {
            System.out.println("Usage: create_measurements4.sh <number of records to create>");
            System.exit(1);
        }
        int size = 0;
        try {
            size = Integer.parseInt(args[0]);
        }
        catch (NumberFormatException e) {
            System.out.println("Invalid value for <number of records to create>");
            System.out.println("Usage: create_measurements4.sh <number of records to create>");
            System.exit(1);
        }
        final var weatherStations = generateWeatherStations();
        final var start = System.currentTimeMillis();
        final var rnd = ThreadLocalRandom.current();
        try (var out = new BufferedWriter(new FileWriter("measurements.txt"))) {
            int mid = size / 2;
            for (int i = 1; i <= mid; i++) {
                var station = weatherStations.get(rnd.nextInt(KEYSET_SIZE / 4));
                double temp = rnd.nextGaussian(station.avgTemp, 7.0);
                out.write(station.name);
                out.write(';');
                out.write(Double.toString(Math.round(temp * 10.0) / 10.0));
                out.newLine();
                if (i % 50_000_000 == 0) {
                    System.out.printf("Wrote %,d measurements in %,d ms%n", i, System.currentTimeMillis() - start);
                }
            }

            for (int i = mid + 1; i <= size; i++) {
                var station = weatherStations.get(rnd.nextInt(KEYSET_SIZE));
                double temp = rnd.nextGaussian(station.avgTemp, 7.0);
                out.write(station.name);
                out.write(';');
                out.write(Double.toString(Math.round(temp * 10.0) / 10.0));
                out.newLine();
                if (i % 50_000_000 == 0) {
                    System.out.printf("Wrote %,d measurements in %,d ms%n", i, System.currentTimeMillis() - start);
                }
            }
        }
    }

    record WeatherStation(String name, float avgTemp) {
    }

    private static ArrayList<WeatherStation> generateWeatherStations() throws Exception {
        // Use a public list of city names and concatenate them all into a long string,
        // which we'll use as a "source of city name randomness"
        var bigName = new StringBuilder(1 << 20);
        try (var rows = new BufferedReader(new FileReader("data/weather_stations.csv"));) {
            skipComments(rows);
            while (true) {
                var row = rows.readLine();
                if (row == null) {
                    break;
                }
                bigName.append(row, 0, row.indexOf(';'));
            }
        }
        final var weatherStations = new ArrayList<WeatherStation>();
        final var names = new HashSet<String>();
        var minLen = Integer.MAX_VALUE;
        var maxLen = Integer.MIN_VALUE;
        try (var rows = new BufferedReader(new FileReader("data/weather_stations.csv"))) {
            skipComments(rows);
            final var nameSource = new StringReader(bigName.toString());
            final var buf = new char[MAX_NAME_LEN];
            final var rnd = ThreadLocalRandom.current();
            final double yOffset = 4;
            final double factor = 2500;
            final double xOffset = 0.372;
            final double power = 7;
            for (int i = 0; i < KEYSET_SIZE; i++) {
                var row = rows.readLine();
                if (row == null) {
                    break;
                }
                // Use a 7th-order curve to simulate the name length distribution.
                // It gives us mostly short names, but with large outliers.
                var nameLen = (int) (yOffset + factor * Math.pow(rnd.nextDouble() - xOffset, power));
                var count = nameSource.read(buf, 0, nameLen);
                if (count == -1) {
                    throw new Exception("Name source exhausted");
                }
                var nameBuf = new StringBuilder(nameLen);
                nameBuf.append(buf, 0, nameLen);
                if (Character.isWhitespace(nameBuf.charAt(0))) {
                    nameBuf.setCharAt(0, readNonSpace(nameSource));
                }
                if (Character.isWhitespace(nameBuf.charAt(nameBuf.length() - 1))) {
                    nameBuf.setCharAt(nameBuf.length() - 1, readNonSpace(nameSource));
                }
                var name = nameBuf.toString();
                while (names.contains(name)) {
                    nameBuf.setCharAt(rnd.nextInt(nameBuf.length()), readNonSpace(nameSource));
                    name = nameBuf.toString();
                }
                int actualLen;
                while (true) {
                    actualLen = name.getBytes(StandardCharsets.UTF_8).length;
                    if (actualLen <= 100) {
                        break;
                    }
                    nameBuf.deleteCharAt(nameBuf.length() - 1);
                    if (Character.isWhitespace(nameBuf.charAt(nameBuf.length() - 1))) {
                        nameBuf.setCharAt(nameBuf.length() - 1, readNonSpace(nameSource));
                    }
                    name = nameBuf.toString();
                }
                if (name.indexOf(';') != -1) {
                    throw new Exception("Station name contains a semicolon!");
                }
                names.add(name);
                minLen = Integer.min(minLen, actualLen);
                maxLen = Integer.max(maxLen, actualLen);
                var lat = Float.parseFloat(row.substring(row.indexOf(';') + 1));
                // Guesstimate mean temperature using cosine of latitude
                var avgTemp = (float) (30 * Math.cos(Math.toRadians(lat))) - 10;
                weatherStations.add(new WeatherStation(name, avgTemp));
            }
        }
        System.out.format("Generated %,d station names with length from %,d to %,d%n", KEYSET_SIZE, minLen, maxLen);
        return weatherStations;
    }

    private static void skipComments(BufferedReader rows) throws IOException {
        while (rows.readLine().startsWith("#")) {
        }
    }

    private static char readNonSpace(StringReader nameSource) throws IOException {
        while (true) {
            var n = nameSource.read();
            if (n == -1) {
                throw new IOException("Name source exhausted");
            }
            var ch = (char) n;
            if (ch != ' ') {
                return ch;
            }
        }
    }
}

@AlexanderYastrebov could you check please? Thanks!

Please don't take it the wrong way 🥲 I really want to see what creative solutions you come up for hash map, that's why I set it to 500M exactly instead of using rand()

Oh don't worry :)
But if you put it to any kind of fixed number I will exploit it :P For example I could just scan names from the back.
Another idea is to split the input into K chunks, and use each city only in one / a few of the chunks.
Or of course you could make it completely linear, first 1000 lines for city 1, then 1000 lines for city 2, ...

I can do that but the goal isn't to kill creativity 🥳 So I will stick to 500M exactly (please don't read in reverse 😟)

Hey @lehuyduc, no problems with adding this generator, though probably I wouldn't run use it for any "official" run, so as to keep things somewhat focused (two experiments which I do want to do in addition to the original data set is running on all 32 cores / 64 threads of the machine and running with 10K different station names rather than the ~400 of the original example data set). Still this could be a nice tool for experimenting on their own. PR welcome.


DatePicker not working with ng-dialog ?

Hi, I'm using your datePicker in my page and it work well. When I embed the same page in a dialog, datePickers are not working anymore..
Did you heard someone else with this problem ?

I had a similar problem and had to go into the datePicker CSS and raise the z-index value


Publishing server code as Docker image

This PR changes the Dockerfile used by the Django and Celery containers to make it more portable. The same Dockerfile is now used to publish an image on ghcr.io, which is publicly accessible here: https://github.com/orgs/OpenGeoscience/packages?repo_name=uvdat. We can use this server image on other projects where only the client application needs custom code.

@johnkit You made a good point about needing some versioning for the image tag. I added a Python Semantic Version step to the action, which will create a new release. We can use the release tag in the docker image tag. I also removed the clause that triggers this action on a pull request, so we will have to merge to test the behavior.


keepassxc: 2.7.1 -> 2.7.3

Description of changes

https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.2
https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.3

Tested on NixOS with withKeePassX11 both enabled and disabled.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

works for me on x86_64-system, however tests are still broken :(


[Feature Request] Send text captions together with attachments/send multiple attachments in one message

This is most notable when sending an attachment as a reply in the client app together with a text caption, but the text caption does not get included in the reply.

This is already implemented but needs a server side API to actually be usable on the client. If you want, you can open an FR on server side just so zach doesn't forget.


Update to keystone 4

Updated keystone package generated to use keystone 4
Updated most other packages
Updated viewEngine options to include 'pug' when pug was selected
Updated package.json to include keystone-email if email was selected

👍


RE: /installing-airbrake/installing-airbrake-in-a-javascript-application

adding instructions for adding airbrake to a react.js front end application would be great.

We have an example app for React: https://github.com/airbrake/airbrake-js/tree/master/examples/react


Remove Red Hat One in the Showroom title

@erwangranger Would this title be OK:
Red Hat Summit and Ansible Fest - OpenShift AI Unleashed: Transforming Document Processing for Maximum Efficiency!

I'd say "claims" instead of "documents".

please link to Agv Issue so we can see where this lives and how it's done. thanks.

PR submitted: https://github.com/rhpds/agnosticv/pull/14516
However I'm not sure you would have access to this repo

PR merged


java-openliberty: update OpenLiberty stack to use OpenLibertyApplication

Checklist:

[x] Read the Code of Conduct and Contributing Guidelines.

[x] Followed the commit message guidelines.

[x] Stack adheres to Appsody stack structure.

Modifying an existing stack:

[x] Updated the stack version in stack.yaml

Updates the stack to use OpenLibertyApplication kind  (Open Liberty Operator)
Tested with appsody deploy and tekton pipeline.
This will require Open Liberty Operator to be installed before stack is deployed
Related Issues:
#721

OK, @arturdzm if you can just rebase this we can merge.  Thanks

Actually should be bumped up to 0.2.7 now in stack.yaml @arturdzm ..thx.

@arturdzm  I'm going to close this and merge it myself when it's ready so you don't have to wait and rebase.  Will link back here.

Replaced via https://github.com/appsody/stacks/pull/749


cuda support for docker container

i have cuda, my wsl envirnment reconises it , but i suppose the docker container from this project does not yet support cuda?
(there are no cuda toolkit commands available and also epub2tts does not run with cuda)
I entered now the container over bash an running directly /opt/epub2tts.py

Interesting, I have not looked at the docker/cuda/windows combo, apologies for that. I'll try to spend some time this week poking at it.

teh default way for doing this seems to be to derive the image from nvidia/cuda:base

Anyone wanting to run the container with CUDA support will need to NVIDIA Container Toolkit:
WARNING: The NVIDIA Driver was not detected.  GPU functionality will not be available.
   Use the NVIDIA Container Toolkit to start this container with GPU support; see
   https://docs.nvidia.com/datacenter/cloud-native/ .

Need to determine whether the image with CUDA support will run fine in environment without CUDA, or if we need to create a specific GPU/CUDA image and one without GPU support.

There is now a cuda12 container "docker pull ghcr.io/aedocw/epub2tts:release-cuda12", though I tested with the following and it does not detect the GPU:
alias cudaepub='docker run --gpus=all -e COQUI_TOS_AGREED=1 -v "$PWD:$PWD" -v ~/.local/share/tts:/root/.local/share/tts -w "$PWD" ghcr.io/aedocw/epub2tts:release-cuda12'
cudaepub testing.txt --engine xtts --speaker "Damien Black"

I will poke around and see what else I need to install, though at this point I think that container should work properly and support CUDA GPU.


Remove viper config serialization

This  continues work on removing viper from openevec package so that we can create default configuration structure and use it to call openevec functions in golang.
In this PR use EdenSetupArgs default generated config in config add function. That means that we remove configuration generated from templates (so there are no comments or spacing in file, just pure yml, we can, of course add template comments to struct fields in go file)
Also we force cloudPrepare() function to use EdenSetupArgs, because before it fetched variables from viper, which creates unnecessary coupling and forces us to create file and use viper in openevec.
So far I played with default parameters, will try to change configurations.

It looks like something broken: https://github.com/lf-edge/eden/actions/runs/6902762877/job/18780102814#step:11:21. As I can see there are double dist in path there.

Let's try this one :)

Okaay, test cmd fixed, let's see how it runs :crossed_fingers:

That's weird, locally smoke tests are running, in CI/CD tests are green, but I think they didn't run (10 mins is way to less for tests to finish)

log_tests is failing, something is wrong with certificate path, looking into it...

tests are passing, but we are failing on getting logs, checking what's up

superseded by #1037


Add authoring support for @TitleHeading directive

Bug/issue #: #408
Summary
Add support for an @TitleHeading directive that allows for customizing the text of a page-title heading (also known as an eyebrow or kick).
Testing
With a documentation catalog
In a documentation catalog with symbol graph files and documentation extension files:

Preview the documentation for that docc catalog with docc preview /path/to/Example.docc
In the documentation extension file for the module symbol: add a title heading directive. For example:@Metadata {
    @TitleHeading("Release Notes")
}

Navigate to that page in the preview. The custom title heading ("Release Notes") should appear as the title heading for that symbol.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran the ./bin/test script and it succeeded
[x] Updated documentation if necessary

@swift-ci please test

@swift-ci please test

@swift-ci please test


iOS configurator doesn't create when installing the latest iOS feature.

Description:
After executing the following command it doesn't create the <IOTS_HOME>/ios-configurator directory.
mvn clean install -f ios-feature-deployer.xml
Suggested Labels:
Bug
Suggested Assignees:
N/A
Affected Product Version:
3.2.0 RC
OS, DB, other environment details and versions:
N/A
Steps to reproduce:

Follow the iOS feature installing procedure by referring the documentation.
Get the latest iOS feature by building the master branch.
Navigate to the ios-feature-deployer folder and execute the following command to install the iOS feature.
mvn clean install -f ios-feature-deployer.xml
Once the ios-feature-deployer script has finished running, can't see the ios-configurator directory in the <IOTS_HOME> directory.

Related Issues:
N/A

Fixed with https://github.com/wso2/carbon-devicemgt-proprietary-plugins/commit/6f0e31a92be4d223b966d2bbf1484621b7d377b5


Jet Finite Differences Test, WIP primitives and symbolic zeros

I've corrected the test function to use higher order finite differences method. This will now numerically test the jets for terms other than [1,0,0,...] which was the case for the jvp based tests previously. I'm unsure of how to write a jvp based test that does the equivalent.
I am writing some primitives but am stuck since our previous make_derivs required using numpy, e.g. np.sum and np.array. Since these are now going directly into lax.py we cannot import these functions. What is the correct approach here?
The symbolic zeros, ZeroTerm and ZeroSeries are broken. ZeroTerm needs * with float defined. ZeroSeries needs to support iteration. These are two bugs I've run into so far.
The total_zhat_jet test will be to determine how we can use jet to give the "total derivative of f(z(t),t) wrt t" This uses a known z(t) with closed form solution sol(t) to test by simply nesting grad on the closure with just t input. To test we will look at jet on the full f(z_eval,t_eval). However, due to the above bugs I am unable to test the simple function 4 * z / t

I think this PR can be deleted now that we have jet in master.

@duvenaud thanks!


Review nitrogen required for leaf expansion

Originally in: https://github.com/danipilze/dssat-csm/issues/30

[x]  Create varietal coefficient for specific leaf N area (Specific leaf area per unit weight of N).
[ ]  Nitrogen demand by cohort (just growing cohorts).
[x]  Remove the increase of N content after full expansion. The N concentration (as % of weight) changes in the leaves based on the plant age and leaf age
[ ]  Add/verify remobilization of N when the leaf ages

Remove the increase of N content after full expansion done here 6dc1769adcf754c836993180de666186309a7a32

The N demand by cohort is relevant mainly for stems which keep growing but its concentration changes based on the age (lignified vs. no lignified). In contrast, new leaves can have the same N concentration (see below from Howeler chapter 14). When leaves are falling the N concentration is reduced and used for growing tissue (I need to verify if the model is doing it properly).

N in the leaves considered the senescence by cohort but then the N requirements and losses are estimated daily.


cannot import name 'fy3scene' from 'fypy.fy3

import numpy as np
from fypy.fy3 import fy3scene
from fypy.tools import readhdf
l1file = r"F:\DATA\FY\MWRI\20240102\FY3D_MWRIA_GBAL_L1_20240102_0140_010KM_MS.HDF"
mc_pro = fy3scene(l1file)
BT_10to89GHZ = readhdf(l1file, '/Calibration/EARTH_OBSERVE_BT_10_to_89GHz')
BT_10V = np.array(BT_10to89GHZ)[0]
lat = readhdf(l1file, '/Geolocation/Latitude')
lon = readhdf(l1file, '/Geolocation/Longitude')
ds = mc_pro.Reprojection(BT_10V, lat, lon,
resolution=None, vmin=0, vmax=10000, resampleAlg='near')
mc_pro.DS2Tiff(r'test.tif', ds)
File f:\lily\jstars_2\tmp.py:30
from fypy.fy3 import fy3scene
ImportError: cannot import name 'fy3scene' from 'fypy.fy3' (D:\Anaconda\install\envs\cartopy38\lib\site-packages\fypy\fy3_init_.py)

你用附件这个版本试试看呢，对之前版本的库做了大量的重构，接口更简洁，使用更方便
| |
李彬
|
|
@.***
|
---- Replied Message ----
| From | @.> |
| Date | 4/8/2024 15:21 |
| To | @.> |
| Cc | @.***> |
| Subject | [libin033/fypy] cannot import name 'fy3scene' from 'fypy.fy3 (Issue #4) |
import numpy as np
from fypy.fy3 import fy3scene
from fypy.tools import readhdf
l1file = r"F:\DATA\FY\MWRI\20240102\FY3D_MWRIA_GBAL_L1_20240102_0140_010KM_MS.HDF"
mc_pro = fy3scene(l1file)
BT_10to89GHZ = readhdf(l1file, '/Calibration/EARTH_OBSERVE_BT_10_to_89GHz')
BT_10V = np.array(BT_10to89GHZ)[0]
lat = readhdf(l1file, '/Geolocation/Latitude')
lon = readhdf(l1file, '/Geolocation/Longitude')
轨道数据投影
ds = mc_pro.Reprojection(BT_10V, lat, lon,
resolution=None, vmin=0, vmax=10000, resampleAlg='near')
mc_pro.DS2Tiff(r'test.tif', ds)
File f:\lily\jstars_2\tmp.py:30
from fypy.fy3 import fy3scene
ImportError: cannot import name 'fy3scene' from 'fypy.fy3' (D:\Anaconda\install\envs\cartopy38\lib\site-packages\fypy\fy3_init_.py)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

你用附件这个版本试试看呢，对之前版本的库做了大量的重构，接口更简洁，使用更方便 | | 李彬 | | @.*** | ---- Replied Message ---- | From | @.> | | Date | 4/8/2024 15:21 | | To | @.> | | Cc | @.> | | Subject | [libin033/fypy] cannot import name 'fy3scene' from 'fypy.fy3 (Issue #4) | import numpy as np from fypy.fy3 import fy3scene from fypy.tools import readhdf l1file = r"F:\DATA\FY\MWRI\20240102\FY3D_MWRIA_GBAL_L1_20240102_0140_010KM_MS.HDF" mc_pro = fy3scene(l1file) BT_10to89GHZ = readhdf(l1file, '/Calibration/EARTH_OBSERVE_BT_10_to_89GHz') BT_10V = np.array(BT_10to89GHZ)[0] lat = readhdf(l1file, '/Geolocation/Latitude') lon = readhdf(l1file, '/Geolocation/Longitude') 轨道数据投影 ds = mc_pro.Reprojection(BT_10V, lat, lon, resolution=None, vmin=0, vmax=10000, resampleAlg='near') mc_pro.DS2Tiff(r'test.tif', ds) File f:\lily\jstars_2\tmp.py:30 from fypy.fy3 import fy3scene ImportError: cannot import name 'fy3scene' from 'fypy.fy3' (D:\Anaconda\install\envs\cartopy38\lib\site-packages\fypy\fy3_init_.py) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.>

没有附件呀，在哪看附件？


Readme: Wrong links for Sound Classification and Drawing Classification

These two links from the readme file lead to a "Page Not Found":
https://apple.github.io/turicreate/docs/userguide/sound_classifier
https://apple.github.io/turicreate/docs/userguide/drawing_classifier

Thanks for letting us know about this the issue. We updated our README a bit prematurely. Those toolkits are in master but they have not yet been released on PyPI. We will be releasing them soon.
If you're interest you can find the documents here:
Sound Classifier
Drawing Classifier
For now, I've removed those links. We'll add them back once we launch and those sections of the user guide are live.
I'll leave this issue open to make sure we add these links back once they are working.

Perfect, thanks for the explanation Toby!

Thanks, Toby!


3-UI-Q4-18: Increase supported platforms for DDEV-UI

Objective Description
Increase supported platforms for DDEV-UI by adding new support for 2 operating systems and 1 CMS
Team
DDEV-UI
Aligned to Company OKR

@dclear This is another issue that we would like to de-prioritize until after the API is in place and testing has been integrated a bit deeper into the build process.

done: added incubate here and updated the spreadsheet with "deprioritize"


Initial value for word_embeddings

What would be a good value for initializer here:
https://github.com/guillaumegenthial/sequence_tagging/blob/0048d604f7a4e15037875593b331e1268ad6e887/model/ner_model.py#L106-L109
I have seen a tf.random.uniform(...) being used: http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow , but not much more than that.

It seems like a standard way to initialize them with a random_uniform initializer
see also https://keras.io/layers/embeddings/
but I'm not sure about how much better it is supposed to be compared to the standard initializer.
I would go for random_uniform but between smaller values like sqrt(1/300) = 0.05 (so that your vectors have norm 1)

closing the issue.


[BUG]: Mock is not supported on Playwright 1.49+ using MPTS

Describe the bug
After the Playwright update to version 1.49.0 (also tested with 1.49.1), the native Playwright mocking tool (route()) is not working anymore when running using Microsoft Playwright Testing service (MPTS).
The test using a mocked call is failing with the following error:
Error: Socks5 proxy rejected connection - ConnectionRefused
Call log:
  - → POST <undisclosed>
    - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.33 Safari/537.36
    - accept: application/json, text/plain, */*
    - accept-encoding: gzip,deflate,br
    - accept-language: en-US
    - content-type: application/json
    - cookie: <undisclosed>
    - origin: <undisclosed>
    - referer: <undisclosed>
    - sec-ch-ua: "HeadlessChrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"
    - sec-ch-ua-mobile: ?0
    - sec-ch-ua-platform: "Windows"
    - content-length: 93

We suspect the issue might be caused with the recent architecture change related to Chromium headless, that can be found here: https://github.com/microsoft/playwright/issues/33566
To Reproduce
Steps to reproduce the behavior:

Run a test with a mocked call (using route() Playwright's native method)
Observe

Screenshots
N/A
Setup information (please complete the following information):

Session Id: 82601638-f67d-4a8c-95bb-dc2db38b6a2d
Browser on which tests are executed: Chromium
Playwright Version: 1.49+
Client machine OS: Linux
OS requested on Service: Linux

Additional context
The affected test has no issues when running against our Github runners infrastructure. This is a 100% reproducible issue using Microsoft Playwright Testing Service.

Hi,
We couldn't reproduce this issue from our end. Tried with simple test using route() and test has passed.
Could you please provide a sample to repro the issue?

I've implemented a test with similar steps, but the issue is not happening here (sessionId 074d7a6b-906e-4d85-b5f1-5f7109290f31):
  test('generic mock test', async ({ page }) => {
    const searchString = 'hcura-qa';
    const mockedName = 'Mocked Name';

    await page.goto('https://gh-users-search.netlify.app/');
    await page.route(`*/**/users/${searchString}`, async (route) => {
      const response = await route.fetch();
      let body = await response.json();

      body.name = mockedName;

      await route.fulfill({
        status: 200,
        body: JSON.stringify(body),
      });
    });

    await page.getByTestId('search-bar').fill(searchString);
    await page.getByRole('button', { name: 'search' }).click();
    await expect(page.getByRole('heading', { name: mockedName, level: 4 })).toBeVisible();
  });

For us, when running our app using MPT service under CI, the referred failure is happening on line "const response = await route.fetch();".
It is not happening when using our infrastructure (github runners), and it happens when running over MPT service, with Playwright 1.49+, and it is not reproducible locally, that's why we think the issue is likely related to MPT.


Streamline 6.8 doc

This PR simplifies the release process by making the charts README more generic - similar fix was done after the 7.9.2 release

jenkins test this please


set just flags through environment variables

Hello
It seems like some flags/options passed through parameter, such as --command-color, cannot be set by environment variable. It could be good to allow setting parameter also from environment variable (some other tickets refered this subject #1829 and #1702).
I would need the following environment variables:

--dry-run / JUST_DRY_RUN=1
--quiet / JUST_QUIET=1
--verbose / JUST_VERBOSE=1
--color=always / JUST_COLOR=always
--command-color=green / JUST_COMMAND_COLOR=green
--justfile justfile / JUST_JUSTFILE=justfile
--working-directory workdir / JUST_WORKING_DIRECTORY=workdir

For example on Gitlab / Github, colors can be forced enabled by setting environment variable JUST_COLOR=always
Optionally, I would like to have default values for some flags in the justfile itself.
For instance, if the CI variables is defined (in Gitlab), set the JUST_COLOR to alway. And also, always set JUST_COMMAND_COLOR=green no matter the env.

If I get to implement #1829 the way I wish to, this will be fixed that way. I need the clap 4 upgrade in #1865 (I'll resolve the conflicts soon) first though, clap 2 was missing features to work with env variables and defaults


MAINT: special: Move Faddeeva into xsf

This PR migrates all Faddeeva functions to xsf, such as erf, erfi, dawsn, and others. It also removes unnecessary Faddeeva wrappers and turns Faddeeva into a single header file Faddeeva.hh in xsf.

@steppi This is done, ready for review.

Thanks @izaid, looks good. To minimize the diff with what's currently in the xsf repo, can you make it so we only have one new header in xsf, faddeeva.h, which combines what was in _faddeeva.cxx and Faddeeva.hh?  Ideally, there wouldn't be any commits which touch both xsf and something in SciPy outside of xsf here either, but don't worry about that if it would be too much trouble to rewrite history.

Ideally, there wouldn't be any commits which touch both xsf and something in SciPy outside of xsf here either

I did this - merry xmas! 🎄


Relative path contains ".." not work

Path like this: ./../_images not work

Not sure if this is related:
Using .image as the folder name creates the folder but does not create the attachments.
The reason I want to use an unnamed folder is so that it doesn't show in the obsidian file explorer.

".." is not supported.


Check versions of installed apps

Description
When we check prereqs we don't immediately check the versions of those. This is a small edition that does the check directly.

It's worth noting that I haven't run prereqs in forever, have been building successfully locally and running it fails on WARNING: circleci not found, install via: brew install circleci

It's worth noting that I haven't run prereqs in forever, have been building successfully locally and running it fails on WARNING: circleci not found, install via: brew install circleci

pre-commit should only fail for you if you ever modify .circleci/config.yml because it would require you to have installed the circleci tool to validate the change. So yeah, the app will work without it but if you intend to deploy to experimental or modify any build steps you'd hit this problem.
There are certainly things you can not-install and still run/modify the app. That doesn't mean you can still modify the configuration of the app or use all the app tools without the prereqs.


graphql support

its nice to add graphql beside rest api
https://docs.nestjs.com/graphql/quick-start

很高兴在rest api https://docs.nestjs.com/graphql/quick-start旁边添加graphql

Do they coexist? Can you provide PR to implement it in Fastify?

很高兴在rest api https://docs.nestjs.com/graphql/quick-start旁边添加graphql

Do they coexist? Can you provide PR to implement it in Fastify?
Of course, they working independent ,,j
Not different you are using fastly or other

很高兴在rest api https://docs.nestjs.com/graphql/quick-start旁边添加graphql

Do they coexist? Can you provide PR to implement it in Fastify?
Of course, they working independent ,,j
Not different you are using fastly or other

Here's a GraphQL and Microservice framework based on Nest.js https://github.com/notadd/notadd

很高兴在rest api https://docs.nestjs.com/graphql/quick-start旁边添加graphql

Do they coexist? Can you provide PR to implement it in Fastify?
Of course, they working independent ,,j
Not different you are using fastly or other

Here's a GraphQL and Microservice framework based on Nest.js https://github.com/notadd/notadd

no need we upgrade monolithic to microservices just now,
but we can add graphql later if you think

很高兴在rest api https://docs.nestjs.com/graphql/quick-start旁边添加graphql

Do they coexist? Can you provide PR to implement it in Fastify?
Of course, they working independent ,,j
Not different you are using fastly or other

Here's a GraphQL and Microservice framework based on Nest.js https://github.com/notadd/notadd

no need we upgrade monolithic to microservices just now,
but we can add graphql later if you think

I prefer Serverless

很高兴在rest api https://docs.nestjs.com/graphql/quick-start旁边添加graphql

Do they coexist? Can you provide PR to implement it in Fastify?
Of course, they working independent ,,j
Not different you are using fastly or other

Here's a GraphQL and Microservice framework based on Nest.js https://github.com/notadd/notadd

no need we upgrade monolithic to microservices just now,
but we can add graphql later if you think

I prefer Serverless

GraphQL will be supported later, but its priority is not so high now.


Email notifications should have To header set

Currently email alerts don't have a To header, we should set that.

Done in https://github.com/prometheus/alertmanager/pull/32


ENH: Add CI through GitHub actions

Add CI through GitHub actions.
Testing data and script
--
Have you

[X] Added a description of the content of this PR above
[X] Followed proper commit message formatting
[ ] Added data and a script to test this PR
[ ] Made sure that PEP8 issues are resolved
[ ] Tested the code yourself right before pushing
[ ] Added unit tests to test the code you implemented

People this PR concerns
--

I guess this will require multiple iterations, since I do not think I can test this locally due to disk space reasons.

Looks like GitHub did not like amending the commit :shrug:.
I'll close this PR again, open a new one, and I'll leave adding the status badge for a separate PR.
The essential thing about this is that we can see the CI working in the branch, which we actually saw before amending the branch. It is actually working since it has detected a number of PEP8 failures.
So once the new PR is open, I'd advocate for merging it, addressing the PEP8 warnings in a separate PR and adding the status badge also in a separate PR.
Sorry for the noise. Thanks for understanding.

So the new PR is #41. The workflows are doing their job.


Add trigger_hightouch_sync task

Create a task that triggers a Hightouch sync. The task should accept a HightouchCredentials block, a sync ID, and a flag to specify whether or not to do a full resync. The task should return the ID of the triggered sync run.
Link to Hightouch API documentation for the route: https://hightouch.com/docs/api-reference#operation/TriggerRun

I am also going to include https://hightouch.com/docs/api-reference#operation/TriggerRunCustom because I think slugs are easier to remember and use without looking up the ID.


chore: support Kubernetes v1.27.6

Reason for Change:

add k8s v1.27.6

many flags removed in k8s v1.27, will come in subsequent PR

add azure-cloud-controller-manager v1.27.9
add azure-cloud-node-manager v1.27.4
bumped all test workflow k8s versions

Issue Fixed:

Credit Where Due:
Does this change contain code from or inspired by another project?

[x] No
[ ] Yes

If "Yes," did you notify that project's maintainers and provide attribution?

[ ] No
[ ] Yes

Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Notes:

/azp run

/azp run

Validated the new components are reachable/exist by the VHD buddy pipeline: https://msazure.visualstudio.com/One/_build/results?buildId=81025559&view=results
Currently v1.27 clusters fail to deploy because a kubelet flag must be removed. Will make a separate PR to remove flags and feature gates, to go in before this one.

/azp run

/azp run


Reconfigure CI pipelines for PR and merge queue

Summary
This commit refactors the pipeline organisation of our CI to reduce the total number of jobs run on any given PR merge, and to reduce the critical path length of merging.  In particular:

the lint, docs and QPY tests are combined into one job for a single CI worker.  These three jobs individually add up to less than a test run, and moving QPY from the first-stage PR test run to this rebalances the (now) two jobs in the stage to be more equal in runtime.

a new pipeline is added specifically for the merge queue.  Previously this reused the same two-stage PR pipeline.  The two-stage system unnecessarily lengthened the critical path, as when a PR enters the merge queue, it as already passed PR CI, and so is highly likely to pass all jobs.  In addition to flattening to a single stage, one each of the macOS and Windows jobs are removed to lower the amount of VMs needed and reduce the chances of a timeout (these OSes are more likely to get a dodgy VM and time out than Linux).  The only way a new test failure should appear (other than a flaky test) is by a logical merge conflict, which would be quite unlikely to only affect a particular Python version.

To make it easier to run the lint and docs jobs together, and ensure that both run even if there's a failure in one, the full lint configuration is merged back to tox.ini, and that's used to do the linting.  This makes it more consistent for developers, as well.

Details and comments
This should automatically already work with the branch-protection rules, but there's like a 99% chance I've messed something up in the Azure configuration on the first attempt, so let's see if CI passes.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 87.577%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
59470

Relevant Lines:
67906

💛  - Coveralls

Ha, the templating of the merge queue CI is bust - it crashed when added to the queue.

Dunno how I borked that - I'd assumed I'd copy-pasted the condition, but apparently now.

@Mergifyio backport stable/0.46


Allow third party nbextensions on voila

Currently 3rd party extensions work fine on the editing notebook (./run_notebook) but for some reason, I can't get them to work on voila. I've even tried serving voila from the notebook.
Most likely a permissions directory issue in the docker image. Example in branch patch1

Wasn't actually a problem with the nbextensions but with a particular one (qgrid)


Add gas opcode to purity checker

Fixes #66.
Works off of PR #143.

@ralexstokes Can you rebase to master so I can more easily see the changes?

@djrtwo done!

lgtm


Configure continuous deployment for deploy branch

Is your feature request related to a problem? Please describe.
We need to configure continuous deployment for deploy branch.
Describe the solution you'd like
Update the travis script and other necessary files
Describe alternatives you've considered
N/A
Additional context
N/A

Done with #141


Scroll to dynamic elements in an overflow container works wonky at best.

The setup is like this.
Side bar component

Tabs (Scroll.Link)

View component

Scrollable container contains components
-- Components (Scroll.Element)

The components are tables and after mounting will start loading their content. As such, the size of the component constantly changes.
Now the issue is that it scrolls randomly. It will not navigate to the top of a component but rather to the middle.. or 3/4 or...wherever. My guess is that the height is incorrect because the components change it.
p.s. Yes, I am using the dynamic prop on the links but this doesn't do a thing :/

same issue, any fix for this?


npm install jfrog-cli-go installs empty jfrog binary

Describe the bug
When attempting to install jfrog-cli-go via npm (using npm install), an empty jfrog binary (size = 0bytes) is installed at ./node_modules/jfrog-cli-go/bin/jfrog
To Reproduce
%> npm install --loglevel verbose jfrog-cli-go
%> cd ./node_modules/jfrog-cli-go/bin
%> ls -al
At this point you should see that the jfrog binary is zero bytes in size.
Expected behavior
An executable non-empty binary should be installed at ./node_modules/jfrog-cli-go/bin/jfrog
Screenshots
If applicable, add screenshots to help explain your problem.
Versions

JFrog CLI version: Any
JFrog CLI operating system: MacOS 11.4 (20F71) / ubuntu:bionic
Artifactory Version: N/A

Additional context
root@697bf4b05dbe:/jfrog# npm install --loglevel verbose jfrog-cli-go
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli   '/usr/bin/npm',
npm verb cli   'install',
npm verb cli   '--loglevel',
npm verb cli   'verbose',
npm verb cli   'jfrog-cli-go' ]
npm info using<EMAIL_ADDRESS>
npm info using<EMAIL_ADDRESS>
npm verb request uri https://registry.npmjs.org/jfrog-cli-go
npm verb request no auth needed
npm info attempt registry request try #1 at 12:34:47 AM
npm verb request id 94efdc7ab864e839
npm verb etag W/"319705acfffaf98d4d8649b742c5727a"
npm verb lastModified Wed, 23 Jun 2021 22:09:45 GMT
npm http request GET https://registry.npmjs.org/jfrog-cli-go
npm http 304 https://registry.npmjs.org/jfrog-cli-go
npm verb headers { date: 'Tue, 13 Jul 2021 00:34:48 GMT',
npm verb headers   connection: 'keep-alive',
npm verb headers   'cf-ray': '66de6d7868f517cc-MEL',
npm verb headers   'cache-control': 'public, max-age=300',
npm verb headers   etag: '"319705acfffaf98d4d8649b742c5727a"',
npm verb headers   'last-modified': 'Wed, 23 Jun 2021 22:09:45 GMT',
npm verb headers   vary: 'Accept-Encoding',
npm verb headers   'cf-cache-status': 'REVALIDATED',
npm verb headers   'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
npm verb headers   server: 'cloudflare' }
npm verb etag https://registry.npmjs.org/jfrog-cli-go from cache
npm verb get saving jfrog-cli-go to /root/.npm/registry.npmjs.org/jfrog-cli-go/.cache.json
npm verb cache add spec jfrog-cli-go
npm verb addNamed "latest" is being treated as a dist-tag for jfrog-cli-go
npm info addNameTag [ 'jfrog-cli-go', 'latest' ]
npm verb addNameTag registry:https://registry.npmjs.org/jfrog-cli-go not in flight; fetching
npm verb get https://registry.npmjs.org/jfrog-cli-go not expired, no request
npm verb addNamed "1.50.0" is a plain semver version for jfrog-cli-go
npm verb afterAdd /root/.npm/jfrog-cli-go/1.50.0/package/package.json not in flight; writing
npm verb afterAdd /root/.npm/jfrog-cli-go/1.50.0/package/package.json written
npm verb addBundled extract /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpack /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpacking to /tmp/npm-4347-90dbc566/unpack-cfb6be99
npm verb gentlyRm don't care about contents; nuking /tmp/npm-4347-90dbc566/unpack-cfb6be99
npm verb lock using /root/.npm/_locks/staging-9fd6687973f6b40e.lock for /jfrog/node_modules/.staging
npm verb unbuild node_modules/.staging/jfrog-cli-go-2acfc2df
npm verb gentlyRm don't care about contents; nuking /jfrog/node_modules/.staging/jfrog-cli-go-2acfc2df
npm verb tar unpack /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpacking to /jfrog/node_modules/.staging/jfrog-cli-go-2acfc2df
npm verb gentlyRm don't care about contents; nuking /jfrog/node_modules/.staging/jfrog-cli-go-2acfc2df
npm verb gentlyRm don't care about contents; nuking /jfrog/node_modules/.staging/jfrog-cli-go-2acfc2df/node_modules
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm WARN lifecycle<EMAIL_ADDRESS>cannot run in wd %s %s (wd=%s<EMAIL_ADDRESS>node init.js /jfrog/node_modules/.staging/jfrog-cli-go
-2acfc2df
npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb linkMans<EMAIL_ADDRESS>npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb linkMans<EMAIL_ADDRESS>npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb link bins [ { jfrog: './bin/jfrog' }, '/jfrog/node_modules/.bin', false ]
npm verb linkMans<EMAIL_ADDRESS>npm verb gentlyRm don't care about contents; nuking /jfrog/node_modules/.bin/jfrog
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm verb unlock done using /root/.npm/_locks/staging-9fd6687973f6b40e.lock for /jfrog/node_modules/.staging
/jfrog
`--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>
npm WARN enoent ENOENT: no such file or directory, open '/jfrog/package.json'
npm WARN jfrog No description
npm WARN jfrog No repository field.
npm WARN jfrog No README data
npm WARN jfrog No license field.
npm verb exit [ 0, true ]
npm info ok

root@697bf4b05dbe:/jfrog# cd node_modules/
root@697bf4b05dbe:/jfrog/node_modules# ls
jfrog-cli-go
root@697bf4b05dbe:/jfrog/node_modules# cd jfrog-cli-go/
root@697bf4b05dbe:/jfrog/node_modules/jfrog-cli-go# ls
README.md  assets  bin  init.js  node-v8.11.1-linux-x64  node-v8.11.1-linux-x64.tar.xz  node_modules  package.json
root@697bf4b05dbe:/jfrog/node_modules/jfrog-cli-go# cd bin
root@697bf4b05dbe:/jfrog/node_modules/jfrog-cli-go/bin# ls -lart
total 8
-rwxr-xr-x 1 root root    0 Jun 23 22:05 jfrog
drwxr-xr-x 2 root root 4096 Jun 23 22:05 .
drwxr-xr-x 6 root root 4096 Jul 13 00:34 ..

Hi @gsoertsz,
Looks like you're missing the -g option in the install command.
Try this -
npm install -g jfrog-cli-go

Please let us know if this works for you.

Hi @gsoertsz,
Looks like you're missing the -g option in the install command.
Try this -
npm install -g jfrog-cli-go

Please let us know if this works for you.

Hi @eyalbe4, thanks for the quick response. Unfortunately no luck, an empty binary in the /usr/local/lib/node_modules/jfrog-cli-go/bin directory also.
root@20ae6d21a8ed:/jfrog# npm install -g --loglevel verbose jfrog-cli-go
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli   '/usr/bin/npm',
npm verb cli   'install',
npm verb cli   '-g',
npm verb cli   '--loglevel',
npm verb cli   'verbose',
npm verb cli   'jfrog-cli-go' ]
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm verb request uri https://registry.npmjs.org/jfrog-cli-go
npm verb request no auth needed
npm info attempt registry request try #1 at 1:26:00 AM
npm verb request id 23b6f0db1a8c3681
npm http request GET https://registry.npmjs.org/jfrog-cli-go
npm http 200 https://registry.npmjs.org/jfrog-cli-go
npm verb headers { date: 'Tue, 13 Jul 2021 01:26:01 GMT',
npm verb headers   'content-type': 'application/json',
npm verb headers   'transfer-encoding': 'chunked',
npm verb headers   connection: 'keep-alive',
npm verb headers   'cf-ray': '66deb880393f17ca-MEL',
npm verb headers   age: '178',
npm verb headers   'cache-control': 'public, max-age=300',
npm verb headers   etag: 'W/"319705acfffaf98d4d8649b742c5727a"',
npm verb headers   'last-modified': 'Wed, 23 Jun 2021 22:09:45 GMT',
npm verb headers   vary: 'accept-encoding, accept',
npm verb headers   'cf-cache-status': 'HIT',
npm verb headers   'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
npm verb headers   server: 'cloudflare',
npm verb headers   'content-encoding': 'gzip' }
npm verb get saving jfrog-cli-go to /root/.npm/registry.npmjs.org/jfrog-cli-go/.cache.json
npm verb makeDirectory /root/.npm creation not in flight; initializing
npm verb cache add spec jfrog-cli-go
npm verb addNamed "latest" is being treated as a dist-tag for jfrog-cli-go
npm info addNameTag [ 'jfrog-cli-go', 'latest' ]
npm verb addNameTag registry:https://registry.npmjs.org/jfrog-cli-go not in flight; fetching
npm verb get https://registry.npmjs.org/jfrog-cli-go not expired, no request
npm verb addNamed "1.50.0" is a plain semver version for jfrog-cli-go
npm verb addRemoteTarball https://registry.npmjs.org/jfrog-cli-go/-/jfrog-cli-go-1.50.0.tgz not in flight; adding
npm verb addRemoteTarball [ 'https://registry.npmjs.org/jfrog-cli-go/-/jfrog-cli-go-1.50.0.tgz',
npm verb addRemoteTarball   '29426356f93ba29308840f2c0be8bc26f6516b7d' ]
npm info retry fetch attempt 1 at 1:26:00 AM
npm info attempt registry request try #1 at 1:26:00 AM
npm http fetch GET https://registry.npmjs.org/jfrog-cli-go/-/jfrog-cli-go-1.50.0.tgz
npm http fetch 200 https://registry.npmjs.org/jfrog-cli-go/-/jfrog-cli-go-1.50.0.tgz
npm verb addTmpTarball /tmp/npm-4326-215d79ac/registry.npmjs.org/jfrog-cli-go/-/jfrog-cli-go-1.50.0.tgz not in flight; adding
npm verb addTmpTarball already have metadata; skipping unpack for<EMAIL_ADDRESS>npm verb afterAdd /root/.npm/jfrog-cli-go/1.50.0/package/package.json not in flight; writing
npm verb afterAdd /root/.npm/jfrog-cli-go/1.50.0/package/package.json written
npm verb addBundled extract /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpack /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpacking to /tmp/npm-4326-215d79ac/unpack-9f41e8a3
npm verb gentlyRm don't care about contents; nuking /tmp/npm-4326-215d79ac/unpack-9f41e8a3
npm verb makeDirectory /root/.npm/_locks creation not in flight; initializing
npm verb lock using /root/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
npm verb unbuild lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb gentlyRm don't care about contents; nuking /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb tar unpack /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpacking to /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb gentlyRm don't care about contents; nuking /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb gentlyRm don't care about contents; nuking /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed/node_modules
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm WARN lifecycle<EMAIL_ADDRESS>cannot run in wd %s %s (wd=%s<EMAIL_ADDRESS>node init.js /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb linkMans<EMAIL_ADDRESS>npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb linkMans<EMAIL_ADDRESS>npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb link bins [ { jfrog: './bin/jfrog' }, '/usr/local/bin', true ]
npm verb linkMans<EMAIL_ADDRESS>/usr/local/bin/jfrog -> /usr/local/lib/node_modules/jfrog-cli-go/bin/jfrog
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm verb unlock done using /root/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
/usr/local/lib
`--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>
npm verb exit [ 0, true ]
npm info ok

root@20ae6d21a8ed:/jfrog# cd /usr/local/lib/node_modules/jfrog-cli-go/bin

root@20ae6d21a8ed:/usr/local/lib/node_modules/jfrog-cli-go/bin# ls -lart
total 8
-rwxr-xr-x 1 nobody root    0 Jun 23 22:05 jfrog
drwxr-xr-x 2 nobody root 4096 Jun 23 22:05 .
drwxr-xr-x 6 nobody root 4096 Jul 13 01:26 ..

root@20ae6d21a8ed:/usr/local/lib/node_modules/jfrog-cli-go/bin#

I'm not sure about this @gsoertsz, but maybe this is some kind of a permission issue, because I noticed this in your verbose logging -
npm WARN lifecycle<EMAIL_ADDRESS>cannot run in wd %s %s (wd=%s<EMAIL_ADDRESS>node init.js /jfrog/node_modules/.staging/jfrog-cli-go
-2acfc2df

Maybe adding the -unsafe-perm option to the command can help, but I'm not sure...
npm install -g -unsafe-perm jfrog-cli-go

I'm not sure about this @gsoertsz, but maybe this is some kind of a permission issue, because I noticed this in your verbose logging -
npm WARN lifecycle<EMAIL_ADDRESS>cannot run in wd %s %s (wd=%s<EMAIL_ADDRESS>node init.js /jfrog/node_modules/.staging/jfrog-cli-go
-2acfc2df

Maybe adding the -unsafe-perm option to the command can help, but I'm not sure...
npm install -g -unsafe-perm jfrog-cli-go

Hi @eyalbe4, thanks for the suggestion around unsafe-perm... no luck:
root@20ae6d21a8ed:/jfrog# npm install -g --loglevel verbose --usafe-perm jfrog-cli-go
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli   '/usr/bin/npm',
npm verb cli   'install',
npm verb cli   '-g',
npm verb cli   '--loglevel',
npm verb cli   'verbose',
npm verb cli   '--usafe-perm',
npm verb cli   'jfrog-cli-go' ]
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm verb request uri https://registry.npmjs.org/jfrog-cli-go
npm verb request no auth needed
npm info attempt registry request try #1 at 4:04:17 AM
npm verb request id 002e07f96ea1e4c6
npm verb etag W/"319705acfffaf98d4d8649b742c5727a"
npm verb lastModified Wed, 23 Jun 2021 22:09:45 GMT
npm http request GET https://registry.npmjs.org/jfrog-cli-go
npm http 304 https://registry.npmjs.org/jfrog-cli-go
npm verb headers { date: 'Tue, 13 Jul 2021 04:04:18 GMT',
npm verb headers   connection: 'keep-alive',
npm verb headers   'cf-ray': '66dfa05b0d313772-MEL',
npm verb headers   'cache-control': 'public, max-age=300',
npm verb headers   etag: '"319705acfffaf98d4d8649b742c5727a"',
npm verb headers   'last-modified': 'Wed, 23 Jun 2021 22:09:45 GMT',
npm verb headers   vary: 'Accept-Encoding',
npm verb headers   'cf-cache-status': 'REVALIDATED',
npm verb headers   'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
npm verb headers   server: 'cloudflare' }
npm verb etag https://registry.npmjs.org/jfrog-cli-go from cache
npm verb get saving jfrog-cli-go to /root/.npm/registry.npmjs.org/jfrog-cli-go/.cache.json
npm verb cache add spec jfrog-cli-go
npm verb addNamed "latest" is being treated as a dist-tag for jfrog-cli-go
npm info addNameTag [ 'jfrog-cli-go', 'latest' ]
npm verb addNameTag registry:https://registry.npmjs.org/jfrog-cli-go not in flight; fetching
npm verb get https://registry.npmjs.org/jfrog-cli-go not expired, no request
npm verb addNamed "1.50.0" is a plain semver version for jfrog-cli-go
npm verb afterAdd /root/.npm/jfrog-cli-go/1.50.0/package/package.json not in flight; writing
npm verb afterAdd /root/.npm/jfrog-cli-go/1.50.0/package/package.json written
npm verb addBundled extract /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpack /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpacking to /tmp/npm-4361-1b7d9a1b/unpack-71ad462c
npm verb gentlyRm don't care about contents; nuking /tmp/npm-4361-1b7d9a1b/unpack-71ad462c
npm verb lock using /root/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
npm verb unbuild lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb gentlyRm don't care about contents; nuking /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb tar unpack /root/.npm/jfrog-cli-go/1.50.0/package.tgz
npm verb tar unpacking to /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb gentlyRm don't care about contents; nuking /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm verb gentlyRm don't care about contents; nuking /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed/node_modules
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm WARN lifecycle<EMAIL_ADDRESS>cannot run in wd %s %s (wd=%s<EMAIL_ADDRESS>node init.js /usr/local/lib/node_modules/.staging/jfrog-cli-go-5740f9ed
npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb linkMans<EMAIL_ADDRESS>npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb linkMans<EMAIL_ADDRESS>npm info linkStuff<EMAIL_ADDRESS>npm verb linkBins<EMAIL_ADDRESS>npm verb link bins [ { jfrog: './bin/jfrog' }, '/usr/local/bin', true ]
npm verb linkMans<EMAIL_ADDRESS>/usr/local/bin/jfrog -> /usr/local/lib/node_modules/jfrog-cli-go/bin/jfrog
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm verb unlock done using /root/.npm/_locks/staging-3a08f0df5026584d.lock for /usr/local/lib/node_modules/.staging
/usr/local/lib
`--<EMAIL_ADDRESS>  +--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>
npm verb exit [ 0, true ]
npm info ok

root@20ae6d21a8ed:/jfrog# which jfrog
/usr/local/bin/jfrog

root@20ae6d21a8ed:/jfrog# ls -la `which jfrog`
lrwxrwxrwx 1 root root 42 Jul 13 04:04 /usr/local/bin/jfrog -> ../lib/node_modules/jfrog-cli-go/bin/jfrog

root@20ae6d21a8ed:/jfrog# cd /usr/local/lib/node_modules/jfrog-cli-go/

root@20ae6d21a8ed:/usr/local/lib/node_modules/jfrog-cli-go# ls
README.md  assets  bin  init.js  node-v8.11.1-linux-x64  node-v8.11.1-linux-x64.tar.xz  node_modules  package.json

root@20ae6d21a8ed:/usr/local/lib/node_modules/jfrog-cli-go# cd bin

root@20ae6d21a8ed:/usr/local/lib/node_modules/jfrog-cli-go/bin# ls -lart
total 8
-rwxr-xr-x 1 nobody root    0 Jun 23 22:05 jfrog
drwxr-xr-x 2 nobody root 4096 Jun 23 22:05 .
drwxr-xr-x 6 nobody root 4096 Jul 13 04:04 ..

root@20ae6d21a8ed:/usr/local/lib/node_modules/jfrog-cli-go/bin#

Is this the right project against which to raise this issue? Hard to imagine this is widespread, although I discovered it in a CI/CD pipeline, and I've tried this on multiple platforms without luck.
Are you able to try the steps to reproduce and maybe we can compare results?


OK so not an issue but I can't fathom out how to message you :(

Some seriously clever maths in that!
Have you fathomed a way or do you have a source for getting the loadshedding stage for the City of Cape town municipality? They are usually a stage better but that's a bit hit and miss for automation etc.
Thanks!

Hey.
Unfortunately not. This repo is more about getting the table data once you have the stage. I just used EWN as an example.
 I think even Eskom Se Push does everything manually to get the stage since they add custom messages every time. It would be nice if the government made a nice API to check the status reliably but after so many years of that not happening, we're on our own :(

Thought as much ... it would be handy but probably to only a fraction of the population so not on their "to do list" I wouldn't think.
Anyway - that's SA for you. Thanks for responding.

Makes sense. Best of luck anyway 😀


Fixes #25372 (typo in code sample)

Summary
Update the code sample in the doc
Fixes #25372

@BillWagner Thanks!


BIP39 seed import failed for a user. Works in desktop version. Investigate why!

From /u/manufoy on reddit:

Hey, the Electron Cash wallet is working really well, however, there was an issue when I tried to import a BIP39 seed with a passphrase into the Electron Cash iOS app. The seed has a derivation path of m/44'/0'/0'/0, and has a passphrase. The seed and passphrase worked just fine in the Bitcoin.com wallet and in the desktop version of Electron Cash. But no matter what I tried, the iOS version of Electron Cash consistently imported the wrong keys.

Eventually, I managed to get the wallet working by importing the Account Extended Private Key (xprv), using the master key option.

Is there a known issue with importing BIP39 mnemonics in the iOS version of Electron Cash?

I was able to generate another seed to reproduce this issue using a different seed. The same thing happened as I previously described.
Importing the seed and passphrase in the iOS version of Electron Cash results in keys that don't match, when importing the the xprv key results in all the keys matching.
Here is the details of the seed I generated:
Passphrase/Seed Extension:

TestWallet_333###
Seed:
dynamic
among
true
lyrics
region
foster
glimpse
squirrel
news
voyage
render
donor
Derivation path:
m/44'/0'/0'
**xprv key:**

xprv9xurCxqDH8JCWcRzzoVXsc3uxbF1bbeggWjMUu28kBATq7eKy2fwVJN9QHQLJxUABXAtQr3xaAXupzVd6ekZqh2k77AUrdxB9x4zmDcyf6R

Wow.   I was converting it all to lowercase.  bad bad bad!
I ended up removing the lowercase call (which indeed doesn't exist in the Desktop version) and passing the Seed extension (passphrase) "as-is" along the chain.  This did it.
I also am passing the seed itself "as-is" along the chain (for Bip39 seeds -- Electron Cash seeds are always lowercase).
So that did it.  I tested the seed you provided again and sure enough it produces the same addresses now as the desktop wallet and as that xprv key.
Sorry for that! My bad!
A new build has been released to TestFlight (build 212) which fixes this.  Please try it out and let me know if you are satisfied with it, so that I may close this issue.

I just checked. I have no issue with importing seeds now. Everything works great now.

Great!  Thank you my man for following up and for reporting this.  This is definitely one of the best catches as far as app correctness goes.  I'm a bit embarrassed I made this mistake, but stuff happens. :)
Thanks again!!


Issue #39 Show warnings / errors for missing environment variables

Overview
In this pull request I created the check-variables.sh with functions to check if the environment variables exists in the .env file and validate their format.
You can find below how each environment variable is validated in the system before starting the Shardeum Validator node. The validation process ensures that the provided values are correct and prevents unexpected behavior caused by invalid inputs.
The environment variables are validated through a series of checks. These include:

Existence: Ensuring the variable is set.
Password Complexity: Ensuring the password meets security standards.
Positive Integers: Ensuring integer-based variables are valid.
Port Numbers: Ensuring port numbers are within the valid range.
IP Addresses: Ensuring the IP addresses follow the correct format.
The validation functions are stored in a script named check-variables.sh, which is sourced in the main script (e.g., entrypoint.sh).

Check for empty env variables
The first function checks if the variables exist in the .env file:
# Function to check if environment variables are set
check_env_var() {
    var_name=$1
    if [ -z "${!var_name}" ]; then
        echo "Error: $var_name is not set. Please set this variable."
        return 1
    fi
    return 0
}

DASHPASS Validation
I used a pretty similar validation to check if it's a valid password used in the installer.sh
Validation:

Must be at least 8 characters long.
Must contain at least one lowercase letter.
Must contain at least one uppercase letter.
Must contain at least one digit.
Must contain at least one special character from !@#$%^&*()_+$.

# Function to validate the dashboard password (DASHPASS)
validate_password() {
    password=$1
    if [[ ${#password} -lt 8 ]]; then.
        echo "Error: Password must be at least 8 characters long."
        return 1
    fi
    if ! [[ "$password" =~ [a-z] ]]; then
        echo "Error: Password must contain at least one lowercase letter."
        return 1
    fi
    if ! [[ "$password" =~ [A-Z] ]]; then
        echo "Error: Password must contain at least one uppercase letter."
        return 1
    fi
    if ! [[ "$password" =~ [0-9] ]]; then
        echo "Error: Password must contain at least one number."
        return 1
    fi
    if ! [[ "$password" =~ [\!\@\#\$\%\^\&\*\(\)\_\+\$] ]]; then
        echo "Error: Password must contain at least one special character (!@#$%^&*()_+$)."
        return 1
    fi
    return 0
}

DASHPORT
The port number used to access the dashboard.
Validation:

Must be an integer.
Must be between 1025 and 65535.

# Function to validate port numbers (must be between 1025 and 65535)
validate_port() {
    port=$1
    var_name=$2
    if ! [[ "$port" =~ ^[0-9]+$ ]]; then
        echo "Error: $var_name ($port) is not a valid number."
        return 1
    fi
    if [ "$port" -lt 1025 ] || [ "$port" -gt 65535 ]; then
        echo "Error: $var_name ($port) must be between 1025 and 65535."
        return 1
    fi
    return 0
}

SHMEXT and SHMINT
Check if it's and integer between 1025 and 65535 in the same function above `validate_port()
EXT_IP and INT_IP
The external and internal IP address of the node are validating using the validate_ip() below:
Validation:

Must be a valid IPv4 address (format: x.x.x.x).
Each octet must be between 0 and 255.

# Function to validate IP addresses
validate_ip() {
    ip=$1
    var_name=$2
    if ! [[ "$ip" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then
        echo "Error: $var_name ($ip) is not a valid IP address."
        return 1
    fi
    # Check if each octet is between 0 and 255
    for octet in $(echo "$ip" | tr "." "\n"); do
        if [ "$octet" -lt 0 ] || [ "$octet" -gt 255 ]; then
            echo "Error: $var_name ($ip) has an invalid octet ($octet). Each octet must be between 0 and 255."
            return 1
        fi
    done
    return 0
}

minNodes, baselineNodes, and nodesPerConsensusGroup
Those are validated using the validate_positive_integer() below. They must be a positive integer greater than 0.
validate_positive_integer() {
    value=$1
    var_name=$2
    if ! [[ "$value" =~ ^[0-9]+$ ]]; then
        echo "Error: $var_name ($value) is not a valid integer."
        return 1
    fi
    if [ "$value" -le 0 ]; then
        echo "Error: $var_name ($value) must be greater than 0."
        return 1
    fi
    return 0
}

Check function
For each environment variable passed to the function, it checks whether it is defined and not empty. If any variable is missing or empty, the script exits with an error.
# Function to check required environment variables and validate values
check_required_env_vars() {
    for var in "$@"; do
        check_env_var "$var" || exit 1
    done

    # Validate password
    validate_password "$DASHPASS" || exit 1

    # Validate positive integers (minNodes, baselineNodes, nodesPerConsensusGroup)
    validate_positive_integer "$minNodes" "minNodes" || exit 1
    validate_positive_integer "$baselineNodes" "baselineNodes" || exit 1
    validate_positive_integer "$nodesPerConsensusGroup" "nodesPerConsensusGroup" || exit 1

    # Validate port numbers (DASHPORT, SHMEXT, SHMINT)
    validate_port "$DASHPORT" "DASHPORT" || exit 1
    validate_port "$SHMEXT" "SHMEXT" || exit 1
    validate_port "$SHMINT" "SHMINT" || exit 1

    # Validate IP addresses (EXT_IP, INT_IP)
    validate_ip "$EXT_IP" "EXT_IP" || exit 1
    validate_ip "$INT_IP" "INT_IP" || exit 1
}

Usage
The function check_required_env_vars() it's called at the beginning of the entrypoint.sh in order to check whether the variables are properly set.

Thank you for the work on this @HTSagara we'll review and get back to you asap!


feat: allow using multiple style tags for rule updates

First of all, huge thanks for an amazing library.
We've encountered the performance issue caused by a Chrome quirk when maintaining the rules inside single style tag is causing unnecessary style recalculations (comparing to adding and removing many granular style tags). This issue is very noticable on large pages with many nodes.
Hopefully Chrome team would fix an issue some day. But for now it will be great if user would have an option to chose the strategy.

I'd love to actually make this a default since it could fit quite nicely into the existing sheet abstraction with prior code ✌
I suppose it'd be useful to investigate when a performance cliff occurs in the size of the sheet and what the maximum number of rules is so we could tweak this a bit more

@kitten Thank you a lot for taking a look!
I have reopened this PR from our organization account so that other developers from our team would have access to the code. Also, I've added the small screencast that visualizes the problem on youtube:
https://www.youtube.com/watch?v=jxCWDhwG2o0 - here it is.
Closing this one. Please let us know what we should do to help moving this fix forward!


Inventing Double-Opt-In Credit

Challenge Description
In this challenge, we want you to upend the status quo of credit scores and reputation. Challenge the idea that an algorithm is written by a centralized authority in secret and not shared with applicants in spite of the fact that it's used to assess whether or not those applicants are "worthy" of access to money. What if credit checks were a two-way street? What if we could mitigate or challenge the impact of financial outliers? What if anyone, anywhere could get access to credit and use it?
Over the course of this hackathon, we want you to create a different type of system, one that is much more accessible, more broadly owned, and more open to challenge. The algorithm may impact any industry, so long as it has a specific user and use case attached.

Examples: a decentralized arbitration system, algorithms with openings for write-ins by applicants, "accident forgiveness" for credit history outliers, incentivization structures where lenders' reputations matter, etc.

How might we measure credit as a marketable resource?

Examples: credit designed like cash, trading credit, loaning credit to a friend who doesn't have any, etc.

Feel free to ideate on any of the above ideas or create your own.
Submission Requirements
We expect all bounties to be comprised of two distinct parts: product and potential. For the product, we will accept submissions in all formats, including but not limited to wireframes, landing page, prototypes, or production code. For potential, we've outlined information that we expect to see below. It can be delivered in any format, including but not limited to a report, a presentation, or a video. All submissions, including all code, must be open source for future use and reference by the community, and links to external documents must be provided in the Github repo submission.
As these bounties are broad and left up to your own discretion, we expect you to deliver the following items tailored for your specific solution:

A specific industry, user, and use case for which you are solving
Unique insights about the industry gathered through primary or secondary research
Evidence of team-wide entrepreneurial behavior and spirit throughout the Relay
Proof that the market you've identified is primed to be disrupted in the next 6-12 months
Testimonial from an industry Subject Matter Expert (SME) who is serving as an advisor
Proof that blockchain adds significant value to this solution over centralized alternatives

We also are looking for participating teams to articulate both broadly and specifically how their proposed solution affects widespread industry orthodoxies. A team that delivers a specific solution must show us how this solution can be rolled out more broadly to impact the industry (or other industries) at large. Conversely, a team that solves in generalities must describe how they anticipate testing their ideas in specific, measurable experiments.
Submission Deadline
All bounty submissions must be received no later than 11:59 PM EDT on April 30th, 2019 to be considered.
Judging Criteria
We are looking for projects that address a real problem and teams that have shown the progress and entrepreneurial instincts to make something real and get it out in the world.
Judging Date
Projects will be assessed from May 1 to May 15th, 2019, and winners will be announced at the Ethereal Conference in New York.
Bounties
The following prizes will be awarded at the conclusion of the hackathon:

24 ETH awarded to the winner of each of the following bounty tracks:

Developing a Richer Financial Reputation
Inventing Double-Opt-In Credit

12 ETH to the team that receives Community's Choice as voted by the entire hackathon participant group. This award can be won by either Bounty winner, resulting in a top prize of 36 ETH, or may be won by a separate team entirely.
6 ETH awarded to two (2) teams deserving of Honorable Mention as determined by Bounty judges. These prizes may be awarded to teams in either track, but cannot be awarded to the track winners.

hey all! have any questions for this one? feel free to join this channel! https://discord.gg/C7V3kRp

PR https://github.com/aj07/Dcred

hey @aj07 can you go ahead and submit work?

@ryan-shea  I have submitted on gitcoin :)

Hi everyone,
You’ve somehow got an incorrect contact email for your Ryan Pereira.
Please remove<EMAIL_ADDRESS>from your mailing list. Thanks,
Ryan

On 3/05/2019, at 1:05 PM, Ankit Raj<EMAIL_ADDRESS>wrote:
@ryan-shea I have submitted on gitcoin :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@ryanpereira my PR is not merged yet?

Hi everyone, can you please delete<EMAIL_ADDRESS>from your mailing lists? It’s not the right email address for your collaborator Ryan. Thanks.

On 6/05/2019, at 1:24 PM, Ankit Raj<EMAIL_ADDRESS>wrote:
@ryanpereira my PR is not merged yet?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Hey y'all, thanks for emailing me, but don't think you have the right Ryan Shea.


[Spring Integration Support] Make sure all features are included in reference doc

Resolved in pr https://github.com/microsoft/spring-cloud-azure/pull/863


Added powershell script to link to bento

Added a powershell script to link to bento that also sets up the Hyper-V configuration_version and corrects some issues with the Hyper-V build when using the latest Packer.

Thanks!