redundant activation functions in lipread_mouth.py

hi, thank you for such a nice repo.
I noticed that in your code you are used slim library and custom PReLU activation after every conv layer.
the problem is that after slim.conv2d (that actually performs 3d convolutions in this case) tensor already passed through activation, because default parameter 'activation_fn' is relu.
So, your PReLU alphas don't learn, because instead of negative values you get all zeros.
In order to fix that: net = slim.conv2d(inputs,...., activation_fn=None)

@jurastm Thank you so much for the important point. Yes, I believe that is an issue in the last version available on GitHub. It used to be the correct case in previous versions.
Can you please propose these changes via a pull request?
I greatly appreciate it.


Include missing files in sdist

Include missing files in sdist for #8
Tested with
++ mktemp -d
+ D=/tmp/tmp.5A2QvfStc0
+ trap 'rm -rf /tmp/tmp.5A2QvfStc0' EXIT
+ python -m venv /tmp/tmp.5A2QvfStc0
+ python setup.py sdist -d /tmp/tmp.5A2QvfStc0
running sdist
running egg_info
writing sota_extractor.egg-info/PKG-INFO
writing dependency_links to sota_extractor.egg-info/dependency_links.txt
writing entry points to sota_extractor.egg-info/entry_points.txt
writing requirements to sota_extractor.egg-info/requires.txt
writing top-level names to sota_extractor.egg-info/top_level.txt
reading manifest file 'sota_extractor.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'sota_extractor.egg-info/SOURCES.txt'
running check
creating sota-extractor-0.0.10
creating sota-extractor-0.0.10/sota_extractor
creating sota-extractor-0.0.10/sota_extractor.egg-info
creating sota-extractor-0.0.10/sota_extractor/commands
creating sota-extractor-0.0.10/sota_extractor/scrapers
creating sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
creating sota-extractor-0.0.10/sota_extractor/taskdb
creating sota-extractor-0.0.10/sota_extractor/taskdb/v01
creating sota-extractor-0.0.10/sota_extractor/tests
copying files to sota-extractor-0.0.10...
copying MANIFEST.in -> sota-extractor-0.0.10
copying README.md -> sota-extractor-0.0.10
copying requirements-dev.txt -> sota-extractor-0.0.10
copying requirements.txt -> sota-extractor-0.0.10
copying setup.cfg -> sota-extractor-0.0.10
copying setup.py -> sota-extractor-0.0.10
copying sota_extractor/__init__.py -> sota-extractor-0.0.10/sota_extractor
copying sota_extractor/__main__.py -> sota-extractor-0.0.10/sota_extractor
copying sota_extractor/consts.py -> sota-extractor-0.0.10/sota_extractor
copying sota_extractor/errors.py -> sota-extractor-0.0.10/sota_extractor
copying sota_extractor/serialization.py -> sota-extractor-0.0.10/sota_extractor
copying sota_extractor.egg-info/PKG-INFO -> sota-extractor-0.0.10/sota_extractor.egg-info
copying sota_extractor.egg-info/SOURCES.txt -> sota-extractor-0.0.10/sota_extractor.egg-info
copying sota_extractor.egg-info/dependency_links.txt -> sota-extractor-0.0.10/sota_extractor.egg-info
copying sota_extractor.egg-info/entry_points.txt -> sota-extractor-0.0.10/sota_extractor.egg-info
copying sota_extractor.egg-info/requires.txt -> sota-extractor-0.0.10/sota_extractor.egg-info
copying sota_extractor.egg-info/top_level.txt -> sota-extractor-0.0.10/sota_extractor.egg-info
copying sota_extractor/commands/__init__.py -> sota-extractor-0.0.10/sota_extractor/commands
copying sota_extractor/commands/cli.py -> sota-extractor-0.0.10/sota_extractor/commands
copying sota_extractor/commands/evaluate.py -> sota-extractor-0.0.10/sota_extractor/commands
copying sota_extractor/commands/scrapers.py -> sota-extractor-0.0.10/sota_extractor/commands
copying sota_extractor/scrapers/__init__.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/cityscapes.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/eff.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/nlp_progress.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/reddit.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/snli.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/squad.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/utils.py -> sota-extractor-0.0.10/sota_extractor/scrapers
copying sota_extractor/scrapers/nlp_progress/__init__.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/scrapers/nlp_progress/__main__.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/scrapers/nlp_progress/fixer.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/scrapers/nlp_progress/main.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/scrapers/nlp_progress/markdown.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/scrapers/nlp_progress/parsers.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/scrapers/nlp_progress/printer.py -> sota-extractor-0.0.10/sota_extractor/scrapers/nlp_progress
copying sota_extractor/taskdb/__init__.py -> sota-extractor-0.0.10/sota_extractor/taskdb
copying sota_extractor/taskdb/v01/__init__.py -> sota-extractor-0.0.10/sota_extractor/taskdb/v01
copying sota_extractor/taskdb/v01/models.py -> sota-extractor-0.0.10/sota_extractor/taskdb/v01
copying sota_extractor/taskdb/v01/schemas.py -> sota-extractor-0.0.10/sota_extractor/taskdb/v01
copying sota_extractor/taskdb/v01/taskdb.py -> sota-extractor-0.0.10/sota_extractor/taskdb/v01
copying sota_extractor/tests/__init__.py -> sota-extractor-0.0.10/sota_extractor/tests
copying sota_extractor/tests/test_load_save.py -> sota-extractor-0.0.10/sota_extractor/tests
Writing sota-extractor-0.0.10/setup.cfg
Creating tar archive
removing 'sota-extractor-0.0.10' (and everything under it)
+ cd /
+ /tmp/tmp.5A2QvfStc0/bin/pip install /tmp/tmp.5A2QvfStc0/sota-extractor-0.0.10.tar.gz
Processing /tmp/tmp.5A2QvfStc0/sota-extractor-0.0.10.tar.gz
Collecting beautifulsoup4==4.9.0 (from sota-extractor==0.0.10)
  Downloading https://files.pythonhosted.org/packages/e8/b5/7bb03a696f2c9b7af792a8f51b82974e51c268f15e925fc834876a4efa0b/beautifulsoup4-4.9.0-py3-none-any.whl (109kB)
Collecting click==7.1.1 (from sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/dd/c0/4d8f43a9b16e289f36478422031b8a63b54b6ac3b1ba605d602f10dd54d6/click-7.1.1-py2.py3-none-any.whl
Collecting dataclasses==0.6 (from sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/26/2f/1095cdc2868052dd1e64520f7c0d5c8c550ad297e944e641dbf1ffbb9a5d/dataclasses-0.6-py3-none-any.whl
Collecting lxml==4.5.0 (from sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/c0/a9/1fdadc1332a17a66f9074eccd364d548a5d5b6d7b624d683aadb45ed8b1b/lxml-4.5.0-cp38-cp38-manylinux1_x86_64.whl
Collecting markdown==3.2.1 (from sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/ab/c4/ba46d44855e6eb1770a12edace5a165a0c6de13349f592b9036257f3c3d3/Markdown-3.2.1-py2.py3-none-any.whl
Collecting marshmallow==3.5.1 (from sota-extractor==0.0.10)
  Downloading https://files.pythonhosted.org/packages/d8/0b/bb43d7610e71d87e8537025841c248471dbf938c676d32b8f94c82148c04/marshmallow-3.5.1-py2.py3-none-any.whl (45kB)
Collecting nltk==3.4.5 (from sota-extractor==0.0.10)
  Downloading https://files.pythonhosted.org/packages/f6/1d/d925cfb4f324ede997f6d47bea4d9babba51b49e87a767c170b77005889d/nltk-3.4.5.zip (1.5MB)
Collecting pandas==1.0.3 (from sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/f5/10/40688389f5e234bde06aa84e6f3ccf5beea6269f57e2bef67866d3b43268/pandas-1.0.3-cp38-cp38-manylinux1_x86_64.whl
Collecting requests==2.23.0 (from sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/1a/70/1935c770cb3be6e3a8b78ced23d7e0f3b187f5cbfab4749523ed65d7c9b1/requests-2.23.0-py2.py3-none-any.whl
Collecting soupsieve==2.0 (from sota-extractor==0.0.10)
  Downloading https://files.pythonhosted.org/packages/05/cf/ea245e52f55823f19992447b008bcbb7f78efc5960d77f6c34b5b45b36dd/soupsieve-2.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools>=36 in /tmp/tmp.5A2QvfStc0/lib/python3.8/site-packages (from markdown==3.2.1->sota-extractor==0.0.10) (41.2.0)
Collecting six (from nltk==3.4.5->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Collecting python-dateutil>=2.6.1 (from pandas==1.0.3->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl
Collecting numpy>=1.13.3 (from pandas==1.0.3->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/cf/5d/e8198f11dd73a91f7bde15ca88a2b78913fa2b416ae2dc2a6aeafcf4c63d/numpy-1.18.4-cp38-cp38-manylinux1_x86_64.whl
Collecting pytz>=2017.2 (from pandas==1.0.3->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests==2.23.0->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/57/2b/26e37a4b034800c960a00c4e1b3d9ca5d7014e983e6e729e33ea2f36426c/certifi-2<IP_ADDRESS>-py2.py3-none-any.whl
Collecting chardet<4,>=3.0.2 (from requests==2.23.0->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting idna<3,>=2.5 (from requests==2.23.0->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/89/e3/afebe61c546d18fb1709a61bee788254b40e736cff7271c7de5de2dc4128/idna-2.9-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests==2.23.0->sota-extractor==0.0.10)
  Using cached https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl
Installing collected packages: soupsieve, beautifulsoup4, click, dataclasses, lxml, markdown, marshmallow, six, nltk, python-dateutil, numpy, pytz, pandas, certifi, chardet, idna, urllib3, requests, sota-extractor
  Running setup.py install for nltk: started
    Running setup.py install for nltk: finished with status 'done'
  Running setup.py install for sota-extractor: started
    Running setup.py install for sota-extractor: finished with status 'done'
Successfully installed beautifulsoup4-4.9.0 certifi-2<IP_ADDRESS> chardet-3.0.4 click-7.1.1 dataclasses-0.6 idna-2.9 lxml-4.5.0 markdown-3.2.1 marshmallow-3.5.1 nltk-3.4.5 numpy-1.18.4 pandas-1.0.3 python-dateutil-2.8.1 pytz-2020.1 requests-2.23.0 six-1.15.0 sota-extractor-0.0.10 soupsieve-2.0 urllib3-1.25.9
WARNING: You are using pip version 19.2.3, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
+ echo Success
Success
++ rm -rf /tmp/tmp.5A2QvfStc0

Thanks!


Imputation function in IDEAS

Hi!
After I solve the NAs in the output files of S3V2 packages, I found another question when I run the IDEAS. I remember the IDEAS can impute missing data when lacking a few markers' data. But according to the log file, the program seems to close the impute function. But to my surprise, the IDEAS still output the genome segmentation result.
So my question is,

How much of an effect does the presence or absence of imputation have on the result?
How to open the imputation function in IDEAS?
What is the difference in setting between specify which marks to be imputed or All or None?

Yes, this is correct. The imputation function is not used for running IDEAS
Personally, I haven't used the imputation function. But you can change the following parameter in the *.parafile
impute= None            #specify which marks to be imputed; or All or None

Thank you for your patient and quick response!


Add support for locus types in Elasticsearch mapping

Currently, an Elasticsearch mapping can not be generated for a table that contains a locus field.
For example, this code throws a NotImplementedError.
import hail as hl
from hail_scripts.v02.utils.elasticsearch_utils import elasticsearch_schema_for_table

ds = hl.utils.range_table(10)
ds = ds.annotate(locus=hl.locus("1", ds.idx))

mapping = elasticsearch_schema_for_table(ds)
print(mapping)

This change adds support for the locus type. With this change, that example code outputs:
{'idx': {'type': 'integer'}, 'locus': {'type': 'object', 'properties': {'contig': {'type': 'keyword'}, 'position': {'type': 'integer'}}}}

For gnomAD, I started storing the locus field instead of extracting contig and pos into separate fields and then dropping locus.
Yes, alleles are supported already since they are arrays of strings.


Request additional information for paper replication

I'd like to proceed with this paper as a term project.
Please upload additional data and code used to write the paper.

test data sets used in the paper
(unmanipulated 50ea + maniputated 50ea)
=> Comparison of results after evaluation of the same data usage as the paper

Photoshop-enabled scripts used to create a manipulated dataset
=> Generate additional images using scripts other than the validation data you provided

2AFC calculation logic(code) among the global classification evaluation items in the paper

EPE, IOU-3 calculation logic(code) among the local evaluation items in the paper

Please give me a positive reply.
Thank you..!!

https://drive.google.com/file/d/1mzNxCyrUTBF7-lQGPLYT0HuUODvVvtsb/view
Training set and validation set will not be released due to licensing issue
https://github.com/PeterWang512/FALdetector/issues/3
For each paired real and fake image, compare the model output of the two images. If the model's output indicates the fake image is more fake than the real one, then this serves as a correct count for 2AFC. You can then take (total correct count) / (total pairs) to get 2AFC
EPE: for each pixel, take the Euclidean distance between the GT and predicted flows, and average across the pixels to get EPE for a single sample. Then, average across samples to get the metric.
IOU-3: take the magnitude of the flow for each pixel, then generate a binary mask using 3 as the threshold. Calculate IOU between the mask version of GT and predicted flow for each sample, and average the IOUs across samples.

Hope this helps, and for more information please see the paper: https://arxiv.org/pdf/1906.05856.pdf

Thank you for your quicky reply..^^


[Event Request] Codeunit 5763 Whse.-Post Shipment - OnBeforeWhseShptHeaderParamModify

Hi Team,
In codeunit 5763 we need possibility to replace and avoid using standard code. Having event in procedure PostUpdateWhseDocuments, would be a perfect solution :

[IntegrationEvent(false, false)]
local procedure OnBeforeWhseShptHeaderParamModify(var WhseShptHeader: Record "Warehouse Shipment Header"; var WhseShptHeaderParam: Record "Warehouse Shipment Header")

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Use common lib for AE class whitelisting

see #781 - This is another piece of removing the old SDK. I am continuing to break that issue into smaller reviewable pieces.
The common library now includes a class, AppEngineJreWhiteList, which checks if a fully qualified classname is whitelisted for AE.
Previously, the whitelist class was reflectively loaded from the appcfg jar which required some parsing and caching to make the check efficient. The previous logic was removed with a simple direct call to the common lib AppEngineJreWhiteList#contains().
In future PRs related to #781, AppEngineSdk (which was brought in from the old plugin) will be removed completely and merged into our new CloudSdkService.

@patflynn / @joaoandremartins / @aslo

Are there already unit tests for the new whitelist mechanism? If not, could you add some?

The new whitelist mechanism is really just calling AppEngineJreWhiteList#contains() (part of the common-lib which itself is already unit tested). Unless you had something else in mind?

Yep, if it's already unit tested, then LGTM.

:+1: This looks a whole let simpler. I guess we've tested it in action?
I'm wondering what the performance characteristics of the new common lib mechanism are.

I think it will be faster than the old implementation:
The common lib just exposes a HashSet. So contains operations are constant time. Previously, they were parsing the file manually, caching it and then doing the lookup - we no longer have to load any files up manually.

how does the common lib produce the hashset? Is it a static map?
On Wed, Aug 10, 2016 at 5:33 PM, Etan Shaul<EMAIL_ADDRESS>wrote:

I think it will be faster than the old implementation:
The common lib just exposes a HashSet. So contains operations are constant
time. Previously, they were parsing the file manually, caching it and then
doing the lookup - we no longer have to load any files up manually.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/815#issuecomment-239011514,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5HRMaZ0xE-uaiKhez3zbeSDD1OaOaks5qekOQgaJpZM4JhXTb
.

yes, a static Set

:ship:


chore: Remove otps patch

The OTPs case correction patch does not appear to be necessary any more for metal-java.  Removing it had no impact on the generated code.

I'm surprised that this doesn't create SDK changes. I checked the action log and it confers. Again, I'm going to assume the code generator changed in some way that has addressed this.
Git status:
On branch remove-otps-patch Your branch is up to date with 'origin/remove-otps-patch'. nothing to commit, working tree clean

Somethings that jump out at me in the build:
[main] WARN  o.o.codegen.DefaultCodegen - allOf with multiple schemas defined. Using only the first one: FacilityInput
[main] WARN  o.o.codegen.DefaultCodegen - allOf with multiple schemas defined. Using only the first one: MetroInput
[main] WARN  o.o.codegen.DefaultCodegen - allOf with multiple schemas defined. Using only the first one: VirtualCircuitList

We may want to make MetroInput first in whichever allOf found FacilityInput first.
[main] WARN  o.o.codegen.DefaultCodegen - Empty operationId found for path: get /bgp-dynamic-neighbors/{id}. Renamed to auto-generated operationId: bgp_dynamic_neighborsIdGet

I thought upstream linters caught unnamed operation ids. We'll want to get a conventional name upstream.

The warnings appear to be a generator bug: https://github.com/OpenAPITools/openapi-generator/issues/11841
In this case, the 3 warnings are coming from the 3 top-level allOf schemas in the patched spec:

https://github.com/equinix-labs/metal-java/blob/main/spec/oas3.patched/openapi/public/components/schemas/InterconnectionPort.yaml
https://github.com/equinix-labs/metal-java/blob/main/spec/oas3.patched/openapi/public/components/schemas/DeviceCreateInFacilityInput.yaml
https://github.com/equinix-labs/metal-java/blob/main/spec/oas3.patched/openapi/public/components/schemas/DeviceCreateInMetroInput.yaml

The generator is claiming that it will use the name of the first schema as the name of the allOf model, but we can see that this is not the case by looking at the code.  As expected, the generated models use the filename as the model name for each of those component schema files:

https://github.com/equinix-labs/metal-java/blob/main/equinix-openapi-metal/src/main/java/com/equinix/openapi/metal/v1/model/InterconnectionPort.java


Do not work with SimpleBlog

I can't include articles in sitemap, I'm using SimpleBlog module. Any hint?

Yo can't include pages in sitemap from other modules. This module is only for prestashop native pages...

@marionf It should be possible for a non-native module to include itself. The module will become visible in the configuration and should be unchecked to be included in the sitemap. I think the SimpleBlog maybe has an issue. Maybe this should stay open for a while?
@astagi Can you send a screenshot of your configuration?

Hi @marionf this is my configuration:

I tried to search something related to SimpleBlog exportation but I didn't find anything

@astagi Can you please contact SimpleBlog? I think they may have an issue.

Not a PrestaShop issue. I asked the develop of SimpleBlog to look into this. Please close this PR :-)


Equalizer and web fonts causing layout issues in Safari

Hi all,
Is it possible to re-open #10005 as I cannot get the problem resolved, i have left a new comment in that issue but not sure if it will be seen...
Need some urgent help if anyone can help, the issue is too advanced for my head,
and new updates/deployment is waiting on a resolution to this...
Thanks, Kieran.

I reopened that, closing this one...


Allow different types of interplation along different dimensions

This implements #41

Amazing work, as usual (both this, and your other PRs in this batch).
I'd like to take them for a spin before I merge them - and I also have a hunch about a few refactorings that could be possible, and might simplify the code a little. I'll have to test them out myself, though, before I know if it works, so I'll get back to you with specifics :)
But seriously, it's kind of amazing that Julias type system is expressive enough for these changes to be so relatively minor, despite the fact that the functionality they provide is awesome.

I will be quite interested to see what you come up with. Thanks for taking the time to review.


Add proper meshkit sytle error logging for ClearLine function

Notes for Reviewers
This PR fixes #10343

Define error for clear command line
Add proper meshkit sytle error logging for ClearLine function

Signed commits

[x] Yes, I signed my commits.

LGTM.

@Aijeyomah Merge conflicts.

@Aijeyomah Merge conflicts.

Done

@Aijeyomah merge conflicts! Resolve them and we're good 👍

@RipulHandoo @alphaX86 @MUzairS15 @leecalcote Can we merge this PR?


dj-rest-auth tries to serialize the token model, even when it's None

After some discussion on tfranzel/drf-spectacular#1005 (which I recommend the reading of), we have discovered that dj-rest-auth tries to serialize the token model, even when it's None.
Setting REST_AUTH = {"TOKEN_MODEL": None} is supported by the docs to fully disable token authentication.
However, as @tfranzel points out, if JWT is not also enabled, this causes a serialization attempt to be performed anyway.

@ruilvo try setting TOKEN_SERIALIZER to None like this:
# settings.py
REST_AUTH = {
	'SESSION_LOGIN': True,
	'USE_JWT': False,
	'TOKEN_MODEL': None,
	'TOKEN_SERIALIZER': None,
}


Code workflow

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: trichorus sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Favicon support | Control over index.html

Steps to reproduce

I'm getting an error while using the dist into a browser.
The error is related to the absense of favicon.ico file
If I put the file into the dist folder the issue solves
If I rebuild the build the favicon.ico went deleted and the issue went reopened

Failed to load resource: the server responded with a status of 403 (denied)
http://data.oscdn.any.sky.it/favicon.ico

More generally this issue addresses to the need of have more control over the features of the HTML document.

Favicon support has been added in the latest version of the SDK (see https://github.com/WebPlatformForEmbedded/Lightning-SDK/issues/33).
Please be aware that favicons are only relevant during development in the browser.


(IAC-1548) Release version v7.0.2

Request for a review

Centos8 timeout issues
https://tickets.puppetlabs.com/browse/IAC-1136


[TEST] Test issue 1 for 191398

Do not mind this issue, this is a test for https://github.com/Expensify/Expensify/issues/191398

Sorry for the pings @rushatgabhane, I am testing one QA related to linking issues to PRs.

QA has passed, closing.


[#1] A basic REPL for BTAGSIL

This PR adds a basic read-eval print loop to the game. The very first thing to exist.

Basically the only thing this adds is the ability to read a line of user input in a loop and to split the input by what will be called "tags" in the future (for now it's just words). This is all for later use.


chore: skip configure and generate goals conditionally

vaadin-maven-plugin has all hilla-maven-plugin goals. Flow applications without Hilla endpoints shouldn't run configure or generate goals. this change skips these goals (if run anyway) based on EndpointRequestUtil.isHillaAvailable() and logs a warning.
Related-to: vaadin/flow/issues/18567

Waiting for Flow snapshot with https://github.com/vaadin/flow/pull/18659 to finalize this.


Use Func

Now that you've fixed the tests, how is the new runtime comparing against the old in your runs?

Its mostly improved and not improved; but variable between runs. I think concurrency + randomness makes it tricky to measure 😄
I did a memory allocation profile for both plaintext and our app and all the queue segment allocations are gone - these tests try to eliminate GC as a factor as much as they can; so reduced GC won't show.
Also merged the two task PRs and the Task tests are improved across the board.

The QUWI outlier regressions (which change between runs) are much worse in the previous; and there are less of them in the new.

So all in all, better than before (and in some cases significantly), right?

Yes and more consistent; doing more analysis though.

A lot of time in Enqueue spinning

You could try removing the spinning and see how it affects things. There are two cases that result in spinning here: I expect one is very reasonable to remove the spinning from (when the race on the compare exchange is lost)... the other I'd be a bit more hesitant about, but should also be more rare. Regardless, we'd want to try on multiple sized machines before removing it. But give it a go.

Hmm... something else weird, end up with 500+ threads

6 threadpool that execute code
1 Main, mostly waiting
1 Finalizer, not doing anything
500+ "Clr Worker" threads that just seem to be asleep and don't execute anything

High thread count was happening before the changes

What's the call stack? You're sure they're not coming from the dedicated thread scheduler I added to your tests?

Ahh... yes, that's the cause 😄
Did you mean this SpinWait? https://github.com/benaadams/coreclr/commit/53a290f5566bd58039cc16ce80a3adb4ea79ef00
Also having good success with the additional padding in the commit; don't think having poor cache coherence between the items matters vs executing an item between them. (Different than the general use case of corefx's ConcurrentQueue)

Did you mean this SpinWait?

Yes, but that is hit in two cases.  I was suggesting I think it could make sense to avoid the spinning entirely if you get the implicit else here https://github.com/benaadams/coreclr/commit/53a290f5566bd58039cc16ce80a3adb4ea79ef00#diff-a993dee28477af368dddfd4ac55437afR1079, but still have the spinning with SpinWait in case you hit the implicit else here:
https://github.com/benaadams/coreclr/commit/53a290f5566bd58039cc16ce80a3adb4ea79ef00#diff-a993dee28477af368dddfd4ac55437afR1089

Also having good success with the additional padding in the commit; don't think having poor cache coherence between the items matters vs executing an item between them. (Different than the general use case of corefx's ConcurrentQueue)

Still makes me nervous.  For this to really matter, seems like you'd need to commonly have four or fewer items in the queue (on 64-bit).  I don't know how often that actually occurs in non-microbenchmarks.  And adding this will cause all cases to need to load at least 4x more memory (and consume 4x more memory).  This is one where I'd really want to see a measurable and consistent impact on a real consumer, like the techempower benchmark, and not just in microbenchmarks, as I'm not convinced we have an accurate set of benchmarks to reflect real-world usage.

For this to really matter, seems like you'd need to commonly have four or fewer items in the queue

So head and tail clash? Wouldn't you also get clashes with simulations enqueues and dequeues? The double write will clash with the next 4 item's enqueue if they are happening cross core
_slots[slotsIndex].Item = x
Volatile.Write(ref _slots[slotsIndex].SequenceNumber

_slots[slotsIndex + 1].Item = x // same cache line
_slots[slotsIndex + 2].Item = x // same cache line
_slots[slotsIndex + 3].Item = x // same cache line

The double write will clash with the next 4 item's enqueue if they are happening cross core

My point was that you would have already had a clash between, for example, producers in trying to read/update the head index, so I'm not sure you'll end up with significantly more contention in then writing the item.  It's of course possible, I just hypothesized it wouldn't be nearly as much.  If I'm wrong, happy to be proven as such.

K, 16 Core (32 HT) the changes are definitely an improvement - but the global queue contention is huge vs less procs. Tasks using local queues switch behaviour with global.
4 cores
QUWI No Queues (TP)             10.139 M     9.482 M     6.468 M     8.071 M    10.455 M
- Depth    2                     6.965 M     7.025 M     6.108 M     7.065 M     7.073 M
- Depth   16                     7.879 M     7.221 M     8.144 M     8.202 M     8.576 M
- Depth   64                     8.255 M     7.913 M     8.516 M     8.652 M     8.784 M
- Depth  512                     8.939 M     8.693 M     8.928 M     8.687 M     8.921 M

SubTask Chain Return (TP)      662.611 k     1.590 M     4.638 M     4.565 M     4.663 M
- Depth    2                   707.060 k     1.841 M     4.354 M     4.567 M     4.762 M
- Depth   16                   991.552 k     2.385 M     5.080 M     5.205 M     5.352 M
- Depth   64                   674.003 k     2.517 M     5.172 M     5.136 M     5.365 M
- Depth  512                   942.504 k     2.488 M     4.981 M     5.269 M     5.463 M

SubTask Chain Return           670.382 k     1.656 M     4.379 M     4.261 M     2.486 M
- Depth    2                   711.646 k     1.910 M     4.438 M     4.526 M     3.071 M
- Depth   16                   916.746 k     2.362 M     4.951 M     5.035 M     3.034 M
- Depth   64                   649.490 k     2.460 M     4.959 M     5.181 M     3.254 M
- Depth  512                   904.034 k     2.411 M     4.842 M     4.978 M     3.259 M

16  (32 HT)
QUWI No Queues (TP)            413.808 k   410.068 k     1.694 M     1.792 M     1.789 M
- Depth    2                   729.126 k     1.649 M     1.534 M     1.636 M     1.666 M
- Depth   16                   588.991 k   795.239 k     1.296 M     1.384 M     1.538 M
- Depth   64                     1.129 M     1.234 M     1.553 M     1.517 M     1.573 M
- Depth  512                     1.583 M     1.568 M     1.524 M     1.526 M     1.593 M

SubTask Chain Return (TP)      394.676 k   423.496 k     3.637 M    10.421 M    13.722 M
- Depth    2                   393.058 k   427.897 k     4.403 M    10.525 M    14.634 M
- Depth   16                   369.727 k   419.207 k     3.822 M    12.007 M    14.301 M
- Depth   64                   356.568 k   415.433 k     4.904 M    13.153 M    13.640 M
- Depth  512                   350.689 k   415.466 k     4.198 M    13.380 M    15.013 M

SubTask Chain Return           394.268 k   424.518 k     3.062 M     7.122 M     5.964 M
- Depth    2                   391.377 k   428.171 k     2.516 M     7.237 M     3.311 M
- Depth   16                   368.727 k   417.539 k     4.668 M     8.497 M     2.065 M
- Depth   64                   360.350 k   414.291 k     3.272 M     7.798 M     2.320 M
- Depth  512                   349.105 k   407.087 k     3.448 M     8.855 M     2.469 M

16 Core (32 HT) the changes are definitely an improvement

Not sure how to read these results:

these were run with what set of changes?
what do I compare them against?
is it valid to compare the results across the machines? e.g. same kind/speed of processor, size/speed of caches, etc.?

16 Core (32 HT) the changes are definitely an improvement

these were run with what set of changes?

Old vs new (current coreclr); so ignoring those as they are a clear win.
The results I'm showing are current coreclr on two different machines; 2.9 GHz 4 core vs 2.4 GHz 16(32) core
For example changing to QUWI to ThreadPoolGlobals.workQueue.Enqueue(tpcallBack, forceGlobal: false);
                                  Serial          2x         16x         64x        512x
QUWI No Queues (TP)            382.748 k   383.552 k    15.992 M    16.817 M    16.972 M
- Depth    2                   402.615 k   633.205 k    17.383 M    17.203 M    17.181 M
- Depth   16                    11.077 M    14.795 M    17.630 M    17.280 M    17.632 M
- Depth   64                    12.036 M    16.831 M    17.020 M    17.037 M    17.802 M
- Depth  512                    11.747 M    14.991 M    16.254 M    15.765 M    16.490 M

QUWI No Queues                 382.986 k   400.529 k     1.138 M     1.101 M     1.063 M
- Depth    2                   402.698 k   577.917 k     2.169 M     2.178 M     1.257 M
- Depth   16                    12.349 M    14.903 M    14.462 M    11.391 M     1.044 M
- Depth   64                    12.674 M    14.961 M    14.265 M    14.417 M     1.560 M
- Depth  512                    12.793 M    13.610 M    14.237 M    14.300 M     5.326 M

SubTask Chain Return (TP)      392.281 k   418.430 k     4.346 M    10.874 M    13.394 M
- Depth    2                   390.732 k   423.373 k     4.005 M    11.624 M    13.795 M
- Depth   16                   368.232 k   412.879 k     5.987 M    12.419 M    14.313 M
- Depth   64                   359.371 k   411.998 k     5.129 M    12.772 M    14.654 M
- Depth  512                   348.127 k   405.058 k     5.201 M    11.147 M    15.121 M

SubTask Chain Return           390.009 k   416.183 k     2.556 M     7.865 M     1.307 M
- Depth    2                   390.034 k   421.502 k     3.464 M     8.186 M     4.046 M
- Depth   16                   368.276 k   410.153 k     2.576 M     6.183 M     2.653 M
- Depth   64                   360.104 k   409.409 k     4.545 M     8.583 M     2.059 M
- Depth  512                   349.370 k   405.387 k     4.887 M     8.927 M     2.654 M

Though it only makes a difference if queuing from a threadpool thread.
Haven't tested with padding or spinning changes; seeing if can see hot spots first.

Wonder if changing that from true to false for non-UnsafeQUWI would be a terrible thing to do? Probably niche areas where it would apply, but on 4 Cores:
Force global: false
                                  Serial          2x         16x         64x        512x
QUWI No Queues (TP)              4.883 M    11.497 M    20.644 M    21.607 M    21.529 M
- Depth    2                     8.404 M    12.549 M    20.430 M    21.256 M    21.119 M
- Depth   16                    15.982 M    17.698 M    21.033 M    21.035 M    20.424 M
- Depth   64                    19.005 M    19.891 M    23.452 M    23.664 M    22.362 M
- Depth  512                    20.067 M    20.794 M    23.221 M    22.786 M    22.965 M

QUWI No Queues                   9.797 M    10.171 M    10.457 M    10.197 M     5.997 M
- Depth    2                    16.026 M    16.246 M    15.948 M    13.223 M     6.084 M
- Depth   16                    19.289 M    19.402 M    18.444 M    15.533 M     5.919 M
- Depth   64                    19.666 M    19.260 M    18.904 M    16.192 M     6.020 M
- Depth  512                    20.191 M    20.251 M    18.962 M    16.067 M     5.859 M

Force global: true
                                  Serial          2x         16x         64x        512x
QUWI No Queues (TP)             10.137 M    10.634 M    10.653 M    10.273 M    10.327 M
- Depth    2                     8.058 M     8.047 M     8.066 M     8.078 M     8.011 M
- Depth   16                     8.603 M     8.559 M     8.600 M     8.556 M     8.563 M
- Depth   64                     8.611 M     8.729 M     8.688 M     8.657 M     8.692 M
- Depth  512                     8.813 M     8.662 M     8.744 M     8.751 M     8.628 M

QUWI No Queues                  10.270 M    10.666 M    10.540 M    10.563 M     6.587 M
- Depth    2                     8.184 M     8.043 M     7.726 M     7.912 M     4.755 M
- Depth   16                     8.756 M     8.528 M     8.974 M     8.244 M     4.280 M
- Depth   64                     9.172 M     9.237 M     9.073 M     8.441 M     4.595 M
- Depth  512                     9.202 M     9.331 M     9.052 M     9.362 M     5.367 M

Will look more into the global queue contention, specifically.

Currently is using 50% of the CPU with kernel time; so I'd guess its in spin sleeps; but its also too chaotic to measure.
// Run 1
Testing 2,621,440 calls, with GCs after 262,144 calls.
Operations per second on 32 Cores
                                                                             Parallelism
                                  Serial          2x         16x         64x        512x
QUWI No Queues (TP)            415.462 k   499.604 k     2.170 M     2.507 M     2.441 M
- Depth    2                   614.530 k     2.092 M     1.798 M     1.787 M     2.117 M
- Depth   16                   668.259 k   818.005 k     1.301 M     1.755 M     1.823 M
- Depth   64                     1.082 M     1.062 M     1.664 M     1.805 M     1.806 M
- Depth  512                     1.817 M     1.823 M     1.818 M     1.819 M     1.837 M

// Run 2
QUWI No Queues (TP)            396.551 k   413.562 k     1.386 M     1.433 M     1.457 M
- Depth    2                   851.811 k     1.298 M     1.419 M     1.417 M     1.401 M
- Depth   16                     1.376 M     1.234 M     1.334 M     1.374 M     1.374 M
- Depth   64                     1.353 M     1.331 M     1.364 M     1.347 M     1.336 M
- Depth  512                     1.327 M     1.343 M     1.314 M     1.321 M     1.304 M

// Run 3
QUWI No Queues (TP)            395.859 k   441.895 k     1.867 M     1.887 M     1.882 M
- Depth    2                   890.309 k     1.649 M     1.747 M     1.750 M     1.736 M
- Depth   16                     1.592 M     1.478 M     1.617 M     1.581 M     1.582 M
- Depth   64                     1.580 M     1.546 M     1.529 M     1.504 M     1.501 M
- Depth  512                     1.578 M     1.515 M     1.483 M     1.472 M     1.446 M

// Run 4
QUWI No Queues (TP)            391.724 k   410.759 k     1.758 M     1.875 M     1.875 M
- Depth    2                   963.735 k     1.467 M     1.645 M     1.661 M     1.643 M
- Depth   16                     1.525 M     1.509 M     1.438 M     1.513 M     1.495 M
- Depth   64                     1.497 M     1.445 M     1.465 M     1.440 M     1.434 M
- Depth  512                     1.494 M     1.454 M     1.415 M     1.413 M     1.392 M

K, backed out specifically all the TP changes (including ConcurrentQueue, Spin.TryEnter) and kept everything else (so latest coreclr i.e removing finaly with empty try etc).
Uses 100% CPU
// Run 1
Testing 2,621,440 calls, with GCs after 262,144 calls.
Operations per second on 32 Cores
                                                                             Parallelism
                                  Serial          2x         16x         64x        512x
QUWI No Queues (TP)            387.874 k   413.791 k     1.462 M     2.048 M     2.833 M
- Depth    2                   427.150 k   500.186 k     2.347 M     2.605 M     2.607 M
- Depth   16                     2.410 M     2.408 M     2.438 M     2.494 M     2.519 M
- Depth   64                     2.408 M     2.408 M     2.525 M     2.392 M     2.470 M
- Depth  512                     2.317 M     2.307 M     2.473 M     2.489 M     2.577 M

// Run 2
QUWI No Queues (TP)            400.696 k   412.435 k     1.268 M     2.011 M     2.854 M
- Depth    2                   431.678 k   457.733 k     2.242 M     2.558 M     2.590 M
- Depth   16                     2.355 M     2.396 M     2.378 M     2.486 M     2.486 M
- Depth   64                     2.424 M     2.511 M     2.565 M     2.574 M     2.580 M
- Depth  512                     2.381 M     2.335 M     2.431 M     2.464 M     2.468 M

// Run 3
QUWI No Queues (TP)            400.769 k   410.686 k     1.595 M     2.025 M     2.636 M
- Depth    2                   431.062 k   446.927 k     2.505 M     2.620 M     2.735 M
- Depth   16                     2.508 M     2.525 M     2.515 M     2.631 M     2.655 M
- Depth   64                     2.533 M     2.602 M     2.553 M     2.672 M     2.815 M
- Depth  512                     2.641 M     2.570 M     2.648 M     2.611 M     2.636 M

// Run 4
QUWI No Queues (TP)            393.389 k   404.282 k     1.598 M     2.063 M     3.049 M
- Depth    2                   432.420 k   449.234 k     2.565 M     2.699 M     2.766 M
- Depth   16                     2.441 M     2.517 M     2.607 M     2.577 M     2.681 M
- Depth   64                     2.538 M     2.504 M     2.639 M     2.585 M     2.551 M
- Depth  512                     2.412 M     2.411 M     2.530 M     2.527 M     2.647 M

Again, chaotic, but more 2M numbers, and even a 3M.
I added the spin skip; and that takes it to 100% cpu and is an improvement, but am not convinced I'm doing it right. Added spin skip + the padding, and that was worse. Used a item struct wrapper for ConcurrentQueue to make it a concrete type, was a little better nothing huge.
Was doing a lot of before, after, before, after etc which is where I noticed the results weren't making sense. So went to recheck against the current coreclr as a baseline, only running the first set.
So not sure now, is difficult to compare when can't get consistent results.
Known definites: Currently only uses 50% of 16/32 core machine. Previously used 100% (for most of the runs not all). Adding the spin skip takes it to 100% cpu for those ones also.
Will see what removing random does across runs; will start with them all hitting the first queue rather than anything fancy - just looking to see if its possible to stabilise the results rather than any fairness.

Looking at the flip side... is a gain of 50% of cpu for much less than half loss in throughput 😛

No removing random, didn't help, might need to get the actions to do some work rather than just being empty.

Though either way the spin skip will probably help; if there is less contention from doing more work, then it doesn't come into play; if there is more contention it sleeps less.

Recheck assumptions part 2; not sure I trust the tests... Making sure they don't have cache conflicts themselves.

Fixed the tests some. The multi-core deterioration bothers me more than the raw throughput

Fixed the tests some. The multi-core deterioration at this point bothers me more than the raw throughput.
I understand why its happening; but as a user you'd expect to add more cores and get higher throughput rather than lower throughput.

but as a user you'd expect to add more cores and get higher throughput rather than lower throughput.

The tests are doing close to 0 work, so more cores doesn't help, it just adds contention and makes the existing effectively serialized operation slower.  More cores would help if there was any actual work being performed per work item.

True. Will add work...

Yeah, I think its a victim of its own success, its faster which means it has more contention, which means slower

Yeah, I think its a victim of its own success, its faster which means it has more contention, which means slower (for very low work items)

Is significantly faster on a real world test; haven't managed to capture it well in a benchmark though 😞

I think its a victim of its own success, its faster which means it has more contention, which means slower

This is also why the SpinOnce calls are there.  If there's no contention, SpinOnce won't be used.  If there is, it's called to help each thread back off a bit.  SpinOnce itself increases what it does as a backoff the more times it's called, with a mix of Thread.SpinWait, Thread.Yield, Thread.Sleep(0), and Thread.Sleep(1).

haven't managed to capture it well in a benchmark though

Have you tried out the various ASP.NET benchmarks to see what kind of impact the new corelib has with the checked-in thread pool updates?

Have you tried out the various ASP.NET benchmarks to see what kind of impact the new corelib has with the checked-in thread pool updates?

I did a cursory local test on 4 cores; and was about at 7% gain, also not really valid test. Setting some servers up to do a proper multicore network test later today.

Have you tried out the various ASP.NET benchmarks to see what kind of impact the new corelib has with the checked-in thread pool updates?

I did a cursory local test on 4 cores; and was about at 7% gain, also not really valid test. Setting some servers up to do a proper multicore network test later today.
Also want to try SslStream etc with it; though need to work through how to combine corefx and coreclr in a happy way - a lot is in flux.

Setting some servers up to do a proper multicore network test later today.

Cool, thanks!  Waiting with bated breath... :)

I'm getting dreadful results 😞 However they aren't good before or after (my before version https://github.com/benaadams/coreclr/tree/orig-tp)
Before - 16 threads and 256 connections (16 Piplined)
Requests/sec: 146634.07
Requests/sec: 148249.06
Requests/sec: 148670.75
Requests/sec: 147744.71
Requests/sec: 146830.95

After
Requests/sec: 149823.42
Requests/sec: 148628.71
Requests/sec: 143656.47
Requests/sec: 159852.75
Requests/sec: 150972.37

Before - 16 threads and 256 connections
Requests/sec:  86273.51
Requests/sec:  84529.18
Requests/sec:  85615.19
Requests/sec:  82796.65
Requests/sec:  87153.29
Requests/sec:  82744.33

After
Requests/sec:  81118.31
Requests/sec:  85218.90
Requests/sec:  85501.99
Requests/sec:  76305.53
Requests/sec:  75538.75
Requests/sec:  83900.66

The CPU is under half utilised; its a factor of 10 out than what I was expecting; there's no real Kernel time use so no sleeps kicking in.

Eurgh... just realised what's wrong. Didn't change it to Server GC 😱
Will try again in the morning.

Sadly tore it all down before I realised I'd seen this before and knew exactly what it was...

Something is wacked somewhere...
20 threads and 1000 connections, pipelined 16
Kestrel 1.1.0; Microsoft.NETCore.App 1.1.0 (Nuget)
Requests/sec: 1,935,042.62

Kestrel 1.2.0, netcoreapp2.0, coreclr old TP (Coreclr build, Myget corefx dotnetdiv, Myget Kestrel aspnet)
Requests/sec: 453,174.77

Kestrel 1.2.0, netcoreapp2.0, coreclr new TP (Coreclr build, Myget corefx dotnetdiv, Myget Kestrel aspnet)
Requests/sec: 464,816.65

Using Kestrel and corefx from mygets (coreclr from build); but somethings off, might have got a checked jit in or a debug build somewhere.
So ignore all the results so far; and I'm going to have to build everything from source all the way to the end to see if there really is a problem or something slow crept in... Might take a while 😭

Isn't my coreclr build, fresh release still has issue and get slow down just with feeds. Building corefx + tests in release mode.

Still regression with coreclr and corefx from source. Building Kestrel then will get the profilers out...

Copy paste issue; from picking up new config changes 😢

Damn its fast

Omg, looks like its the threadpool... Will post the results in the coreclr PR... 😉

Hmm... its inconsistent; though always on par; so I've had up to 2,559,988 rps for 100% cpu; but also 1,9024,439 at 80%
Players looks like sleep and GC

Sleep chain is

The top own times in coreclr are

Probably going to leave this alone for a while; its been a rollacoster...

Thank you for testing it out.  All in all, looks like a good improvement :)

My copypasterror was switching on logging; which caused it all to go to hell 😆

My copypasterror was switching on logging; which caused it all to go to hell 😆

Hehe, yeah, that would do it. :smile:

As an aside, in your trace, can you see where those EventSource.Write calls are coming from?  I wouldn't expect to see those show up in a trace like this, unless this tool turn on ETW?

Already made a PR for them :) https://github.com/aspnet/Hosting/pull/931

You're way ahead of me then :)

There's a whole bunch of little things, ArraySegment .ctor doesn't inline which I'm going to look at.
I can share the trace if its helpful?

Sure, thanks

Has all the dlls and pdbs https://aoa.blob.core.windows.net/aspnet/RawBuild.zip (105MB)
Trace is HttpTest.dtp for dotTrace https://www.jetbrains.com/profiler/ (10 day trial if you don't have it; wouldn't install the VS integration stuff, only standalone; can do it on VM if you want to keep it clean for an uninstall as I think it also installs a service for profiling)

Actual code, though it isn't terribly exciting https://aoa.blob.core.windows.net/aspnet/HttpTest.zip

SpinWait->SpinOnce->NextSpinWillYield->PlatformHelper.IsSingleProcessor->ProcessorCount == 1
Processor count could maybe be cached in the SpinWait? Though its fiddling at the edges :)

Processor count could maybe be cached in the SpinWait?

Potentially.  You could play with it.  Keep in mind, though, that the purpose of SpinWait is to burn time, so decreasing the work it does may actually be harmful to its usage.

Trace is the HttpTest.dtp

Thanks, Ben. I grabbed the trace.


Usage | TenFootInterface

Upon looking through the code of the PromptPurchaseScript2:
https://github.com/ROBLOX/Core-Scripts/blob/master/CoreScriptsRoot/CoreScripts/PurchasePromptScript2.lua
I realized that it required a module script by the name of the TenFootInterface. When I looked through Roblox's modules, I found it:
https://github.com/ROBLOX/Core-Scripts/blob/master/CoreScriptsRoot/Modules/TenFootInterface.lua
However, when I plugged the two scripts together, I received an issue.
In the PromptPurchaseScript2:
local TenFootInterface = require(RobloxGui.Modules.TenFootInterface)

13:02:32.266 - Requested module experienced an error while loading

In the TenFootInterface:
local CoreGui = game:GetService("CoreGui")
local RobloxGui = CoreGui:WaitForChild("RobloxGui")

13:02:32.268 - An error occurred

I believe the issue is that you cannot access the CoreGui > RobloxGui without using a CoreScript, which normal users do not have access to. I am not certain this is the issue, but it is my best guess. Is there a way I can use Roblox's PromptPurchaseScript for my own purposes, to provide an ingame purchasing gui, for my own currency? I have seen multiple people achieve this, but I do not understand how they do it.

The PromptPurchaseScript uses a lot of (protected) HTTP stuff.
You're maybe better off writing a totally new script, while looking here now and then for ideas.

Yes, I realized that when talking to jmargh. I pretty much have a solid idea how to replicate it for my own use now. Thanks though!


FR: Recognize Application Plug-Ins/Extensions/Add-Ons/Add-Ins

I'm not sure if this might break the mold a bit, but it would be interesting for BCU to recognize Extensions of at least the most common Browsers, Text Editors, IDEs and maybe Office.

Browser plug-ins are already planned, check #144
By their nature Internet explorer and Office plugins are mostly detected already.
Is there any relatively standardized way of getting add-ons for some other applications? Obviously unless that application is very popular and plugins are often uninstalled the time commitment will be low.


The map infographic on the recently redesigned site is missing the San Jose Girl Develop Chapter, 46 cities then?

Description
The map infographic (and chapters section) is missing the San Jose Chapter for some strange reason on the recently redesigned site.
Todo

[ ] If the San Jose Chapter is indeed active, the homepage's SVG map infographic should reflect that by adding an additional map pointer to the appropriate region of California that points to San Jose.
[ ] Assuming this was geocoded and normalized to match the coordinates of the map SVG, common for this sorts of thing described in task 1,  a new instance pointing to the San Jose chapter may be necessary.
[ ] 45 cities becomes 46 cities on the headline above the SVG map infographic
[ ] The chapters section should have its California section updated to include San Jose

@lozandier thanks for posting this issue! Would you mind re-formatting it to follow the following template here #83?

@juliaelman Understood; my issue has been updated to comply with the guidelines your link refers to that I understood.

@lozandier thanks for making us aware of this! I am emailing Ghaida now to get her chapter set up. :smile:

@juliaelman No problem; I suggest referencing the issue template (#83 ) in the readme.md in an appropriately named new section regarding issues.

@lozandier agreed! We have have our docs setup with contribution guidelines here: http://gdi-new-site.readthedocs.org/en/latest/sources/contribution/ Feel free to open another issue (or even better, a pull request!) :+1:

the San Jose Chapter needs to be added to the locs2.yml file. it should have been listed on between line 2015 and 2016. I think the best way to do it is to add all the information into the database and rake the database. I would have done it but I couldn't find all the information using solely using the MeetupAPI.

@therufs, @ChetCorey please correct me if I am not right about this, but I think the way it's set up, chapters only need to be added to the database thru the Active Admin console; there shouldn't be any need to change the seed data. The seed data was hard coded in development to give us stuff to work with (and it may be in use now to drive the tests that have since been added). Once the chapter is added to the database, the map should plot that geolocated city point without reference to the seed data. Wanted to point that out if it might be helpful, but if any contributors know any reason why updated seed data is needed, please feel free to chime in!

That's correct. Maybe it would be helpful to reduce the seed data somewhat
to make it clear that it's just for testing? (And improve the docs, of
course)
On Sun, Mar 1, 2015 at 1:57 PM, Amy Gori<EMAIL_ADDRESS>wrote:

@therufs https://github.com/therufs, @ChetCorey
https://github.com/ChetCorey please correct me if I am not right about
this, but I think the way it's set up, chapters only need to be added to
the database thru the Active Admin console; there shouldn't be any need to
change the seed data. The seed data was hard coded in development to give
us stuff to work with (and it may be in use now to drive the tests that
have since been added). Once the chapter is added to the database, the map
should plot that geolocated city point without reference to the seed data.
Wanted to point that out if it might be helpful, but if any contributors
know any reason why updated seed data is needed, please feel free to chime
in!
—
Reply to this email directly or view it on GitHub
https://github.com/girldevelopit/gdi-new-site/issues/240#issuecomment-76624039
.

San Diego is up on the main page; the seed data is only for testing.


ESP32 Support

I did a proof of concept for connecting an ESP32 with an Arducam.
(https://github.com/H-LK/ESP32_Arducam_Port)
I had to replace some functions which aren't available in the Espressif ESP32 SDK like cbi() and sdi().
Do you plan to add support for the ESP32 in the future? When yes, will there be an own repository like for the ESP8266?

Just got two ESP32s and I'm really interested in using my Arducam Mini with it. Any chance it will happen?

@H-LK
Hi, yes, we are developing some demos about arducam with esp32.

Hi,
Can you tell me what you amended.  I can't see any changes in the above code. I assume it should be in ArduCam.h


README refactoring

Description
This PR proposes a new structure for the README.

LGTM, Mattia. For me we can merge.

/merge


Codify expectations around mutability of 'model' for HoistComponent

There is an implicit assumption for (most/all?) of our components that the model will not be changed during the lifetime of a component.
Components (and especially components like grid model) set up observations on their model in their constructors, and don't observe the model reference itself.  This obviously makes implementations of components like grid much simpler.
If the model is changed -- we need to be sure to unmount the component and create a new one.  We now have two important client apps that are doing that
We need to decide whether we want to continue with this assumption (I think we should), and if so do some combination of :

Provide some kind of warning/exception when model is swapped out under a component, effectively freezing the result of the model getter.
Provide some built-in support for automatically remounting a component when model property changes.

Alternatively, we could ask components to handle changes to their underlying model, and update our components accordingly.

Fixed as discussed in:
https://github.com/exhi/hoist-react/commit/bc43dc53e5caf
We chose to quietly ignore any changes to the config object as model property, rather than the shallow  compare.  We can revisit this for sure.


How to observe changes in data source to scroll to position

Hi,
my name is Jochen and I'm new to Rx and RxDataSources in general. My goal is to have UICollectionView as a Chat with messages like in the standard iOS Messages App.
I have a working binding between my model and the collection view using RxCollectionViewSectionedAnimatedDataSource.
The issue I have:
I would like to scroll to the last message if there is new one. As it is code of the view I would like to observe an insertion event to call scrollToItemAtIndexPath. Maybe I'm blind or don't know what to observe but till now I didn't find a solution in RxDataSources or in the rx-ified Collection view.
Thanks for your help!
Kind regards,
Jochen

Hi @jochenschoellig ,
the usual way how that's being handled is to set transformation on your table view to scale(1, -1) to invert it vertically and also to set transformation scale(1, -1) on each cell.
Doing that + reversing ordering of your data source should give you what you want (vertically inverted table view appropriate for chat).

Hi @kzaher,
thank you for your comment. I have done this already but there is still the problem when the view is not scrolled to the last message. For example if the user is reading some old messages and there is a new one incoming then I would like to scroll to the new message.
Maybe there is no visible way to do it?
The only way in my mind is to observe onNext before the binding with RxDataSource and scroll if there is a new message!?
Would be great to hear your opinion!
Kind regards,
Jochen

I wouldn't suggest interrupting user intention to browse history from purely UX standpoint.
It would be better to just add some kind of banner (you have new message) or do something similar.
If you want to do that, you can use the same observable sequence, debounce for animation duration and then scroll to bottom.

Hello @kzaher,
I know what you mean, but i wanted to implement some kind of "Lazy Loading" WhatsApp have. Therefore I wrote now my own collection view layout which is completely working with RxDataSources.
You can find it here:
https://gist.github.com/jochenschoellig/04ffb26d38ae305fa81aeb711d043068
I hope it helps others, too!
Kind regards,
Jochen

Hi @jochenschoellig ,
I'm glad you've managed to work it out :)


Adding AR timestamps via command plugin

Hi,
I tried to implement support of AR timespamp fields (updated_at + created_at) via command plugin:
module CommandPlugins
  module ActiveRecordTimestamps
    def insert(tuples)
      now = Time.zone.now
      tuples_with_timestamps = tuples.map do |tuple|
        tuple.merge(created_at: now, updated_at: now)
      end

      super(tuples_with_timestamps)
    end

    def update(tuple)
      super(tuple.merge(updated_at: Time.zone.now))
    end
  end
end

ROM.plugins do
  adapter :sql do
    register :timestamps, CommandPlugins::ActiveRecordTimestamps, type: :command
  end
end

But I use Postgresql and therefore my plugin methods were overridden by DB-specific extension:
https://github.com/rom-rb/rom-sql/blob/e499585c293f640c300a2b62ffb210a6633d92eb/lib/rom/sql/commands_ext/postgres.rb
Should such extensions be implemented via plugin API? Should inheritance chain be manageable (like rack's middlewares)? Or should I just overload #execute method?

For me it should be set in input part of Command

Like that?
module CommandPlugins
  module ActiveRecordTimestamps
    class HashWithTimestamps
      def self.[](*args)
        tuple = Hash[*args]

        now = Time.zone.now

        if tuple[:created_at]
          tuple.merge(updated_at: now)
        else
          tuple.merge(created_at: now, updated_at: now)
        end
      end
    end

    def self.included(base)
      super

      base.input HashWithTimestamps
    end
  end
end

Yes if you insist on plugin. But probably input from command will overwrite it.

Ok, I'll keep it in mind. Also my implementation changes behavior of input#[] so it's not a pure function anymore.
Thank you!

In rom-rails we just added it to ROM::Model::Attributes extension that works nicely with commands. You could do the same as @gotar suggests.

Wow, right in time (=


multiple promptreplace

Unless I am doing something wrong, when I have 2+ valid promptreplace options, it only uses 1. I tried #18 which worked fine with 1 valid prompt, but when I have 2 or more, it stops processing after the last. I have a promptreplace axis setting a character, another setting a scene, with a second optional promptreplace if valid based on the first. only the second optional is used if both are valid. this was done with both using promptreplace instead of different spellings, but I do see 4 valid spelling options. does that affect it?

If you use promptreplace: twice in a single axis value, YAML can't parse that, which is why there's the trick to change the capitalization or the spaces.
PromptReplace, Prompt replace, etc. anything with different capitals or different spaces are all valid.

what about yaml arrays?
promptreplace:     - foliage=trees     - color=green     - backdrop=mountains
or to better keep backwards compatibility, add promptreplacearray


Replace hardcoded class with dunder class attribute

Small suggestion as this was something I heard in Raymond Hettinger's talk at PyCon 2015

Btw if this is accepted, i can do it for the other modules/python files...in that way i can also read some of the requests code :stuck_out_tongue:

I certainly want the change in super removed: as pointed out in the diff comment by @jmoldow, that isn't valid. Otherwise, I suspect it makes the class somewhat more subclass-friendly, which I don't object to.

i am not sure why this is considered invalid. can you elaborate?

There is a reason that super() requires two arguments. It's because the first argument can't be deduced from self, because the first argument isn't (in general) self.__class__.
If you have a method-resolution order C -> B -> A -> object, C.__init__ is going to call super(C, self).__init__, which will call B.__init__, which will call super(B, self).__init__, which will call A.__init__. The only call where the first argument is self.__class__ is the first one, but you don't know in advance what will even be the first one.
The first argument needs to be the hard-coded class name, in order for super to figure out what the super object should refer to.

Actually __class__ and self.__class__ are a whole different level of magic that will thoroughly break this for any subclass. Sorry @ueg1990 this is not something I will allow in requests.

lol i do not have any objection to that. learnt something new in python :)
onto the next pull request


feat: ExportHistoryToParquet Cron Job

we need to bump the charts.yaml version in /charts/operator-wandb

Could you also let me know how you tested this?

I tested this on my test instance https://ramit-pq.wandb.ml end-to-end to ensure parquet backfills were working with the image with the glue execute backfiller enabled


A problem with the new Windows update 11

Error: (0x80004002) No such interface supported
----
026: this.MoveWindowToDesktop := this._vtable(this.IVirtualDesktopManager.Ptr, 5)
027: this.IServiceProvider := ComObject("{C2F03A33-21F5-47FA-B4BB-156362A2F239}", "{6D5140C1-7436-11CE-8034-00AA006009FA}")

▶	028: this.IVirtualDesktopManagerInternal := ComObjQuery(this.IServiceProvider.Ptr, "{C5E0CDCA-7B6E-41B2-9FC4-D93975CC467B}", IID_IVirtualDesktopManagerInternal_)
029: this.MoveViewToDesktop := this._vtable(this.IVirtualDesktopManagerInternal.Ptr, 4)
030: this.CanViewMoveDesktops := this._vtable(this.IVirtualDesktopManagerInternal.Ptr, 5)

I encountered the same issue. VD.ahk can't be used anymore.

I encountered the same issue. 😭

I'm having the same issue!

Same issue, Also looks like VirtualDesktop.cs has a newer version. I tried replacing that but it seems the UUID have changed

Has worked perfectly until latest Windows updates (KB5031217) and (KB5030219) installed last night
Now receive error message when I attempt to switch desktops:

Error: This value of type "Class" has no property named "GetDesktops".
---- D:\Data\AutoHotkey2\VD2\VD.ah2
084: {
085: IObjectArray := 0

▶	086: DllCall(this.GetDesktops, "UPtr", this.IVirtualDesktopManagerInternal.Ptr, "Ptr", 0, "UPtr*", &IObjectArray := 0)
087: Return IObjectArray
088: }
Any solution would be greatly appreciated.

I ran into the same issue.
I ran into the same issue and was able to resolve issues for my personal workflows.  you can see my changes here.
I didn't post an MR for a couple of reasons:

the changes aren't specific to build 22621.2215.  they generically target win11 build 22621.  I don't know enough to isolate >= 2215 patch.
I only tested VD.ah2 methods that I use personally (namely getCurrentDesktopNum, getCount, goToDesktopNum and MoveWindowToDesktopNum).  Further changes are likely required to support all methods.
I only made changes to the v2_port branch

It was a headache tracking down the updated interface id's. @MScholtes Virtual Desktop project is an amazing reference.  thanks to him and @FuPeiJiang for their contributions to open source.  hopefully my commit is useful for others. ❤

@mac-s-g  Thank you so much!  That fixed things for my use case (MoveWindowToDesktopNum, goToDesktopNum). Really appreciate your work and taking the time to share.

@mac-s-g  Many many thanks and for finding a solution so quickly.  Your changes work perfectly with Windows build 22621.2283.  Having just programmed a Stream Deck keyboard to enable me to switch desktops and move apps with a single keystroke I was distraught that it was no longer working.  Anyway, you have saved the day - at least until the next Windows update!

@RalfReddings i ported my changes over to the class_VD branch (AHK v1).
here's the diff
fyi -
I noticed while porting changes over that FindDesktop and RemoveDesktop point to the same method.  I'm guessing I broke RemoveDesktop, but none of my automations reference it so I never encountered the problem.

@RalfReddings i ported my changes over to the class_VD branch (AHK v1). here's the diff
hope this helps.
fyi - I noticed while porting changes over that FindDesktop and RemoveDesktop point to the same method. I'm guessing I broke RemoveDesktop, but none of my automations reference it so I never encountered the problem.

Thanks so much for this fix!

My scripts based on _VD.ahk also stopped working, waiting for a solution.
The solution from @mac-s-g seems temp and modifies a file with a different name.

Thanks @mac-s-g . I had to further modify VD.ah2 to get it to work on my windows 11 build 22621.
Lines 65 and 66 changed to:
this.Ptr_CreateDesktop := this._vtable(this.IVirtualDesktopManagerInternal.Ptr, 10)
this.Ptr_RemoveDesktop := this._vtable(this.IVirtualDesktopManagerInternal.Ptr, 12)

thanks for the fix @daveM246!  i committed the change to my v2_port branch and it resolved an error that cropped up recently.

I copied the first 92 lines into my current VD.ah2 and now it works. Thanks @daveM246  and @mac-s-g !
https://github.com/FuPeiJiang/VD.ahk/compare/v2_port...mac-s-g:VD.ahk:v2_port

If you've been hanging out with a forked or locally modified version of VD.ahk, I recommend giving the latest version here a try; it looks to me like the issues have recently been fixed but that just wasn't communicated at the time.

@Viqsi Thanks for dropping the note! Things are now working as normal in my AHK V1 script. (I updated the _VD.ahk from this repo, and used VirtualDesktopAccessor.dll from this other repo.)


feat: Remove all vertical padding on video share overlay (BDS-495)

Jira
http://vjira2:8080/browse/BDS-495
http://vjira2:8080/browse/WWWD-2367
Summary
Prevent scrollbar from appearing on video overlay unless absolutely necessary.
Details
Stakeholders were pretty adamant about not seeing scrollbars in the video overlay.  This takes previous measures a step further still without hindering usability.
Specifically, this removes the top and bottom padding from the overlay.  It's vertically centered anyway, so this only affects cases where the content is slightly too large to fit vertically.  In those cases, the share content now presses closer to the top and bottom of the video player without activating the scrollbar.  However, the scrollbar still activates if the content would actually be cropped.
How to test

Go to the videos page pattern-lab/?p=viewall-components-video
Make the browser width as small as possible in pattern lab
Play a video, then press the share button icon to pull up the share overlay.
Attempt to scroll up or down in the video
Previous behavior: the overlay would scroll up and down, even though no content was hidden
New behavior: the overlay does not scroll unless content is actually cropped.

The overall font-size and spacing are tighten up. Content only overflows if the video goes below 220px wide, at that point, the brightcove player ui is breaking, too. So a video shouldn't get any smaller than that anyway, otherwise the user wouldn't even be able to interact with it.

Thanks again @mikemai2awesome for the more thorough solution.  Looks great.


NonStop port updates for 3.0.0.

HPE NonStop Port Changes for 3.0.0  Includes unthreaded, PUT, and SPT for OSS.
The port changes include wrapping where necessary for FLOSS and
appropriate configuration changes to support that. Two tests
are excluded as being inappropriate for the platform.
The changes are:

Added /usr/local/include to nonstop-nsx_spt_floss to load floss.h
Added SPT Floss variant for NonStop
Wrapped FLOSS definitions in OPENSSL_TANDEM_FLOSS to allow selective enablement.
SPT build configuration for NonStop
Skip tests not relevant for NonStop
PUT configuration changes required for NonStop platforms
Configurations/50-nonstop.conf: updates for TNS/X platform.
FLOSS instrumentation for HPE NonStop TNS/X and TNS/E platforms.
Configurations/50-nonstop.conf: modifications for non-PUT TNS/E platform b
Fix use of DELAY in ssltestlib.c for HPNS.
Fixed commit merge issues and added floss to http_server.c

CLA: Permission is granted by the author to the OpenSSL team to use these modifications.
Fixes #5087.
Signed-off-by: Randall S. Becker<EMAIL_ADDRESS>Checklist

[X] documentation is added or updated
[X] tests are added or updated

CLA should be on file - it was submitted months ago. This PR can be kept open until needed/approved. It is for reference for the NonStop community.

CLA issue should be fixed now. Close/reopen to kick CLA bot.

Port is updated based on comments above.

Other than my comments, I don't have much to say.  This is much cleaner than I expected!

I might need a little help on why the Travis CI build failed. Something about the nssgetpid symbol isn't being liked on Mac/OS but it should not even be there for that build.

I might need a little help on why the Travis CI build failed. Something about the nssgetpid symbol isn't being liked on Mac/OS but it should not even be there for that build.

It looks like nssgetpid() is missing from util/libcrypto.num. Without understanding the meaning of this, and because this procedure is only for the NonStop port, I do not feel comfortable modifying the contents. May I request some help here?

The main blocker for getting this approved is the added code in include/openssl/e_os2.h, which really seem to be internal only.  Please remove it.
If other (non-OpenSSL) applications need nssgetpid() as well, they should really do the same trick themselves...  or someone might come up with an emulation library that does this and that everyone can depend on.

Running build/test with the e_os2.h changes

Running build/test with the e_os2.h changes

Pushed what I could.

If Travis doesn't complain, I'll approve

If Travis doesn't complain, I'll approve

I'm monitoring it now. Note that I'll might be AFK for a bit (unsuccessfully trying my best to be on vacation for a week, whatever that means in today's weirdness).

(unsuccessfully trying my best to be on vacation for a week, whatever that means in today's weirdness).

Oh boy do I know the feeling

(unsuccessfully trying my best to be on vacation for a week, whatever that means in today's weirdness).

Oh boy do I know the feeling

At this rate, Travis won't be done until I'm back ;)

Review changes requested by @slontis have been pushed as commit 83de323fc5.

Apologies for the NITS..

NITS are fine. My inexperience (and being the "front person" for this).

I don't think the Travis build failure was a result of my changes. This looks like a VM update issue. Please advise. Note: I am having connectivity issues (in back woods on walkabout).

I don't think the Travis build failure was a result of my changes.

Confirmed

Note: I intend to follow up in this with a PR that streamlines this contribution, with @rsbecker's assistance.
For the moment, the primary interest is to get this in at all before beta 1 is released.

Would you like me to open the "Streamline NonStop Configuration" PR as a defect/enhancement? It's certainly not a nit.

Would you like me to open the "Streamline NonStop Configuration" PR as a defect/enhancement? It's certainly not a nit.

Enhancement.

Would you like me to open the "Streamline NonStop Configuration" PR as a defect/enhancement? It's certainly not a nit.

Enhancement.

Created issue #12858 for this effort. It can be assigned to me.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

I merged all the commits together into one.  Merged
08073700cc50bcd0df5c0ee68c100e300a320d03 NonStop port updates for 3.0.0.

@rsbeckerca, git commit has a couple of cool options that make intentions very clear, --fixup and --squash.  I'd suggest you read about them, they provide clarity of intention with different commits.  It wasn't terribly hard in this case, but the clearer the better, yeah?

@rsbeckerca, git commit has a couple of cool options that make intentions very clear, --fixup and --squash. I'd suggest you read about them, they provide clarity of intention with different commits. It wasn't terribly hard in this case, but the clearer the better, yeah?

Fun factoid @levitte: I'm actually the platform maintainer for git on NonStop, which is how and why I got into the OpenSSL world. For this PR, the original pull was of a squashed commit of a boat-load of commits rolled into a package. I'm usually prefer to know what's in my sausages, but not for PRs in Open Source contributions. What I missed was how this team modifies pull requests with post-PR commits and then reissues a squash when things get too far down the chain. I'll know for next time, thanks. Git's contribution procedure is at the other end of the spectrum, where each file in a contribution has its own commit (!) - for historical reasons. It's possible that git does not want to depend on a meta-git process to avoid falling into a recursive dependency hole.

Fun factoid @levitte: I'm actually the platform maintainer for git on NonStop

Oh!

What I missed was how this team modifies pull requests with post-PR commits and then reissues a squash when things get too far down the chain.

O don’t think @levitte meant to say that we do cross-pr-squashes (which we don‘t do).


How to catch the initialization exception?

I want to tell user a friendly message to replace not catched excetpion.

Hello @kelicto , thank you for getting in touch. This channel serves for issues related to the published PostSharp samples in this repository. For general questions, please use either https://stackoverflow.com/ , where you mark your question with the PostSharp tag or, if you are a commercial customer, you may also use our support forum at https://support.postsharp.net/. In either case, please specify the kind of your app (WPF/WinForms/Console/Razor/...), what exactly you mean by "initialization exception" in the context of the platform, and the required form of the message shown to the user. (Message-box/...)

Thanks!


python311Packages.pyformlang: 1.0.6 -> 1.0.7

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.pyformlang is: A python framework for formal grammars
meta.homepage for python311Packages.pyformlang is: https://pypi.org/project/pyformlang/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.0.7 with grep in /nix/store/4d983jm169w230sls5abfr9g6dzz18lv-python3.11-pyformlang-1.0.7
found 1.0.7 in filename of file in /nix/store/4d983jm169w230sls5abfr9g6dzz18lv-python3.11-pyformlang-1.0.7

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
python311Packages.guidance
python311Packages.pyformlang
python312Packages.pyformlang

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/4d983jm169w230sls5abfr9g6dzz18lv-python3.11-pyformlang-1.0.7 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python311Packages.pyformlang https://github.com/r-ryantm/nixpkgs/archive/5f1b1a60c49f4ea6b5637ad34b9d5b6ef2971d04.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/5f1b1a60c49f4ea6b5637ad34b9d5b6ef2971d04#python311Packages.pyformlang

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/4d983jm169w230sls5abfr9g6dzz18lv-python3.11-pyformlang-1.0.7
ls -la /nix/store/4d983jm169w230sls5abfr9g6dzz18lv-python3.11-pyformlang-1.0.7/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package failed to build:

python311Packages.guidance

2 packages built:

python311Packages.pyformlang
python312Packages.pyformlang

Maintainer pings
cc @natsukium for testing.

@ofborg build python311Packages.guidance

Result of nixpkgs-review pr 289167 at 5f1b1a60 run on aarch64-darwin 1

1 package marked as broken and skipped:

python312Packages.guidance

3 packages built successfully:

python311Packages.guidance
python311Packages.pyformlang
python312Packages.pyformlang


(GA) jitter_FWHM option when LO is off

I added the option to define in the telescope section of the parameters a jitter_FWHM parameter that is used to define a Gaussian kernel that will be convolved with the HO PSF when LO part is not defined.
TODO: add this info to the documentation.

I found a few bugs.


Extraction behavior seems a bit off

From the HTTP/3 spec.
If the certificate is not acceptable with regard to the new origin
for any reason, the connection MUST NOT be reused and a new
connection SHOULD be established for the new origin.

There are two keywords of different requirement levels, and it results in a single entry of spec requirement.
[[spec]]
level = "MUST"
quote = '''
If the certificate is not acceptable with regard to the new origin
for any reason, the connection MUST NOT be reused and a new
connection SHOULD be established for the new origin.
'''

Each code of the format 0x1f * N + 0x21 for non-negative integer
values of N (that is, 0x21, 0x40, ..., through 0x3ffffffffffffffe)
MUST NOT be assigned by IANA and MUST NOT appear in the listing of
assigned values.

This one contains two keywords of the same requirement level, yet it results in two entries of spec requirements. A bit surprising.
[[spec]]
level = "MUST"
quote = '''
Each code of the format 0x1f * N + 0x21 for non-negative integer
values of N (that is, 0x21, 0x40, ..., through 0x3ffffffffffffffe)
MUST NOT be assigned by IANA and MUST NOT appear in the listing of
assigned values.
'''

[[spec]]
level = "MUST"
quote = '''
Each code of the format 0x1f * N + 0x21 for non-negative integer
values of N (that is, 0x21, 0x40, ..., through 0x3ffffffffffffffe)
MUST NOT be assigned by IANA and MUST NOT appear in the listing of
assigned values.
'''

For the first one, the extract logic isn't sophisticated enough to split on conjunctions. So, instead, if multiple requirements are specified in a single sentence then it takes the highest level.
For the second one that seems like a bug.

Yeah, the first one was kinda expected. And based on the assumption of which, the second just seemed off.


Add invisible banner if profile is invisible

Site-wide banner indicating your profile is invisible https://github.com/joemasilotti/railsdevs.com/issues/504

[x] Add a banner to every page indicating such linking to edit your profile (if your developer profile is invisible).

Pull request checklist

[x] My code contains tests covering the code I modified
[x] I linted and tested the project with bin/check
[x] I added significant changes and product updates to the changelog

Something like a Developers::BannerComponent could help, where it knows to render one of the three banners based on if each banner renders.

Something like a Developers::BannerComponent could help, where it knows to render one of the three banners based on if each banner renders.

Thanks for the feedback. What are the rules as to which banner should be shown when more than one can be rendered?
For eg. if NewFieldsComponent and InvisibleBannerComponent are both enabled, then should we just show the NewFieldsComponent?

What are the rules as to which banner should be shown when more than one can be rendered?

Great question! Here's the priority. If one is visible then the others should not be shown.

Developers::UnseededWarningComponent
Developers::InvisibleBannerComponent
Developers::NewFieldsComponent

What are the rules as to which banner should be shown when more than one can be rendered?

Great question! Here's the priority. If one is visible then the others should not be shown.

Developers::UnseededWarningComponent
Developers::InvisibleBannerComponent
Developers::NewFieldsComponent

Okay, if this is the case, then do we really need the Developers::BannerComponent to decide which component to render?
What I'm saying is, correct me if I'm wrong here, the Developers::UnseededWarningComponent would never be shown together with either of those two because it needs unseeded data. Only possibility is for Developers::InvisibleBannerComponent to be shown together with Developers::NewFieldsComponent. We can avoid this by having a check in the render? method of the Developers::NewFieldsComponent to only show when the profile is visible. Am I missing anything here?
Will this suffice or do you still think it's better design-wise to have a Developers::BannerComponent which decides which component to show?

Thinking about this some more, I think we want a single banner component that takes an array of child components.
Then, it can render the first one that responds to render?, in the order they are passed in.
Does that make sense?

Thinking about this some more, I think we want a single banner component that takes an array of child components.
Then, it can render the first one that responds to render?, in the order they are passed in.
Does that make sense?

Yes, I think I mostly get it. I'll take a stab at it and get back to you.

Thinking about this some more, I think we want a single banner component that takes an array of child components.
Then, it can render the first one that responds to render?, in the order they are passed in.
Does that make sense?

Hi @joemasilotti, So I've added a BannerComponent that takes an array of child components and used the render? method to decide which component to render in an FCFS manner. This is the first time I've used this type of a pattern so please let me know if anything can be done in a different / better way.

Ohh what's FCFS? I've never heard of that before.

Ohh what's FCFS? I've never heard of that before.

Sorry for using jargons. FCFS(First-come first-served) just means that the child components will be processed according to their order in the array. It's just a fancy word for queue or FIFO (First-In First-Out).

Got it - very cool!

Thanks for reviewing the code. I've addressed the suggested changes.

Awesome! Looks great – thanks for the contribution.


Add Python solutions to 10 questions

Add solutions to following questions (all from Array topic) -

Reverse the Array
Find the maximum and minimum element in an array
Find the 'K-th' max and min elements of an array
Sort array consisting of [0, 1, 2]
Move all negative elements to one side of array
Union and Intersection of 2 Sorted Arrays
Cyclically rotate an array by one element
Largest sum of contiguous subarray
Merge Intervals
Factorial of a number

Solution links point to files of my fork of this repo. Will fix in a future PR.
@mrpkdeveloper


⚠ Bofrost.de has degraded performance

In 5f72c5e, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1307 ms

Resolved: Bofrost.de performance has improved in 0fb5f43 after 31 minutes.


Update jsoniter-scala-core, ... to 2.13.23

Updates

com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core
com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-macros

from 2.13.17 to 2.13.23.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.plokhotnyuk.jsoniter-scala" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequest = { frequency = "@monthly" },
  dependency = { groupId = "com.github.plokhotnyuk.jsoniter-scala" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #289.


Arrow Head disappears

Hi, thanks for the repo,
When I run the demo arrow heads are there,
but when I import css and js into our project arrow heads are gone, everything else works fine,
all help appreciated,

Hello !
I've got the same issue.
I've only a line between my element and the label description..
Did I forget something?
Thanks you !

Still open, thanks

"Still open", but.. why did you closed so ?
It's a duplicate issue with the #9 ?

Had the same issue and in my case it was due to using the base tag. The arrow head is rendered using a SVG marker and the url reference it uses will have issues when you use a base tag e.g. see here. So you can either remove the base tag, update the code to correctly reference the marker uri or update the code to render the arrow as another path instead of a marker like what is done with the line.


Send notifications on user group subscription updates + RealmAuditLog

Related issue #8222

This is ready for a review.

@rishig the code looks good.  I wanted to get your review on a couple quick things:
(1) These strings, which I think we should probably tag for translation (@hackerkid I'd just do this in a new commit at the end) but also deserve a look:
+    if action == "add_members":
+        message_template = """Hi there! We thought you'd like to know that {} ({}) \
+added you to the user group **{}**."""
+    elif action == "remove_members":
+        message_template = """Hi there! We thought you'd like to know that {} ({}) \
+removed you from the user group **{}**."""
+    elif action == "delete_group":
+        message_template = """Hi there! We thought you'd like to know that {} ({}) \
+deleted the user group **{}**."""

(2) I'm not 100% sure I love the event type names for RealmAuditLog here.  Do you think it's worth doing some work on standardizing them?

For RealmAuditLog: we have a reasonably consistent style, though I see two event_types in our current code that break it. I think the main tricky ones with this PR are "users added to group" and "users deleted from group"; the others look like our standard style?
Another RealmAuditLog question: I imagined we'd want to support things like "find all the events pertaining to user X". That suggests not having bulk events in RealmAuditLog, but having one for each user (in that case, noting that we should use the same event_time for all of them, not timezone_now() inside a loop).

@rishig

Possibly we should have one entry for each user added?

I don't understand what you meant by this
In the current implementation, I am creating one entry for each user added.
    for member in members:
        RealmAuditLog.objects.create(realm=member.realm, acting_user=acting_user,
                                     modified_user=member, event_time=event_time,
                                     extra_data=extra_data, event_type=event_type)

Also what do you mean by this?

A last comment is: I haven't looked at the code or tried it out, but just checking that we inform the user that doing actions on the user groups page will generate notifications.

I have took care of the other feedback. Please take a look :)

In the current implementation, I am creating one entry for each user added.

Got it. I'd be tempted to in-line these functions, so it better matches the rest of the code in actions.py.

I haven't looked at the code or tried it out, but just checking that we inform the user that doing actions on the user groups page will generate notifications.

I think my default expectation if I were creating a user group would not be that the members of the group would be informed as I created the group. E.g. I might add a couple of people, then remove one, then add them back, etc as I waffled on who exactly should be in the group.
But I wouldn't do that if I knew notifications were being sent to the users as soon as I added or removed them.
Not sure exactly how this should be implemented though, especially since we're considering doing auto-saving as soon as we add or remove a pill.

Closing this PR because we are not sure whether this is the right way to do this and the PR is very old.


Why is the accuracy I achieved using the KiTS 23 dataset not as good as that reported in the paper?

Prepare your data: Arrange the images and masks in the same folder, structured as follows:：
${SvANet_ROOT}
|-- dataset
-- |-- KiTS23     -- |--- train
|--- case_00000_132.jpg
|--- case_00000_203.jpg
|--- ...
|--- case_00272_247.jpg
|--- ...
|--- val
|--- case_00009_28.jpg
|--- case_00009_37.jpg
|--- ...
|--- case_00514_441.jpg
|--- ...
|--- mask
|--- case_00000_132.png
|--- case_00000_203.png
|--- ...
|--- case_00514_441.png
|--- ...
       Is there code available to generate this structure? I'm using my own method to generate data, which is slightly different from this. Could this be the reason why my accuracy is not as good as mentioned in the paper?

The results I obtained from running the experiment based on the paper still show a significant gap compared to the results reported in the paper.

Hello, when I run niftiFileExtractor.py to process KiTS23, ColourCode = COLOUR_CODES['kits23'] error occurs. Could you share the colourPlatte.py you wrote? Thank you very much!

您好，当我运行 niftiFileExtractor.py 来处理 KiTS23 时，出现 ColourCode = COLOUR_CODES['kits23'] 错误。您能分享一下您写的 colourPlatte.py 吗？谢谢！

COLOUR_CODES = {
'twoclasses': [
[0, 0, 0], # background
[255, 255, 255]
],
**dict.fromkeys(
[
'default',
'semspermna', 'semspermnav1', 'semspermnav2',
'atlas', 'fives',
'kits23'  # 添加 'kits23'
],
list(map(list, imgviz.label_colormap(256)))
),
}

Brother, can you give me a copy of your code? The author has updated the code. Now there is a problem with the new code and it cannot be trained. However, my old code has been deleted.