[Python Install] Cryptic error when trying to install grpcio.

What version of gRPC and what language are you using?
Looks like 1.28.1. Using Python.
error_log.txt
What operating system (Linux, Windows,...) and version?
NAME="Pop!_OS"
VERSION="19.04"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Pop!_OS 19.04"
VERSION_ID="19.04"
HOME_URL="https://system76.com/pop"
SUPPORT_URL="http://support.system76.com"
BUG_REPORT_URL="https://github.com/pop-os/pop/issues"
PRIVACY_POLICY_URL="https://system76.com/privacy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco
LOGO=distributor-logo-pop-os
What runtime / compiler are you using (e.g. python version or version of gcc)
Python 3.7.3
What did you do?
Activated my virtual environment for working with Pulumi's Python SDK for Google Cloud. I did the typical pip3 install -r requirements.txt and received the error attached to this ticket.
What did you expect to see?
I really expected to see the requirements get pip3 installed without a hitch. Unfortunately this happened. This is the first time I've seen this happen.
What did you see instead?
Failure of pip3 to install grpcio in my virtual environment.
Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
See TROUBLESHOOTING.md for how to diagnose problems better.
Anything else we should know about your project / environment?
I'm using Pulumi as my IaC SDK. I've attached stdout and stderror from the install.
error_log.txt

It seems you are trying to compile grpcio from source. Can yo upgrade your pip to >19.0.0 and try again?

This did it! Thank you!


generate_signed_url is horrendously slow

From @dw on July 28, 2017 10:55
Calls to google.cloud.storage.Blob.generate_signed_url() are too slow.
OS type and version
OS X latest / Linux Ubuntu 17.04 / Debian 8
Python version and virtual environment information python --version
2.7.10
google-cloud-python version pip show google-cloud, pip show google-<service> or `pip
audiocapture] pip freeze | grep google
gapic-google-cloud-pubsub-v1==0.15.4
gapic-google-cloud-speech-v1==0.15.3
google-api-python-client==1.6.2
google-auth==1.0.1
google-auth-httplib2==0.0.2
google-cloud-core==0.25.0
google-cloud-language==0.25.0
google-cloud-pubsub==0.26.0
google-cloud-speech==0.25.1
google-cloud-storage==1.1.1
google-cloud-translate==0.24.0
google-gax==0.15.13
google-resumable-media==0.0.2
googleapis-common-protos==1.5.2
grpc-google-iam-v1==0.11.1
proto-google-cloud-pubsub-v1==0.15.4
proto-google-cloud-speech-v1==0.15.3

Stacktrace if available
         316278 function calls (314359 primitive calls) in 10.201 seconds

   Ordered by: cumulative time
   List reduced from 874 to 100 due to restriction <100>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000   10.208   10.208 base.py:61(view)
        1    0.000    0.000   10.208   10.208 mixins.py:53(dispatch)
        1    0.000    0.000   10.208   10.208 base.py:80(dispatch)
        1    0.000    0.000   10.208   10.208 base.py:154(get)
        1    0.000    0.000   10.207   10.207 views.py:166(get_context_data)
    301/1    0.020    0.000    9.927    9.927 serializers.py:479(to_representation)
        1    0.000    0.000    9.926    9.926 serializers.py:648(to_representation)
     1201    0.004    0.000    9.792    0.008 fields.py:1752(to_representation)
      200    0.002    0.000    9.447    0.047 utils.py:15(url_for_blob)
      200    0.003    0.000    9.445    0.047 blob.py:195(generate_signed_url)
      200    0.003    0.000    9.434    0.047 credentials.py:107(generate_signed_url)
      200    0.004    0.000    9.392    0.047 credentials.py:43(_get_signed_query_params)
      200    0.001    0.000    9.384    0.047 service_account.py:314(sign_bytes)
      200    0.001    0.000    9.384    0.047 crypt.py:228(sign)
      200    0.003    0.000    9.382    0.047 pkcs1.py:248(sign)
      200    0.003    0.000    9.346    0.047 key.py:402(blinded_encrypt)
      400    8.601    0.022    8.601    0.022 {pow}
      200    0.002    0.000    8.546    0.043 core.py:33(encrypt_int)
      100    0.000    0.000    4.748    0.047 serializers.py:132(get_raw_video_url)
      100    0.001    0.000    4.747    0.047 utils.py:20(url_for_segment)
      100    0.000    0.000    4.720    0.047 serializers.py:127(get_web_video_url)
      100    0.001    0.000    4.713    0.047 utils.py:26(url_for_encoding)
      200    0.007    0.000    0.711    0.004 key.py:121(unblind)
      200    0.001    0.000    0.704    0.004 common.py:133(inverse)
      200    0.703    0.004    0.703    0.004 common.py:108(extended_gcd)

Steps to reproduce

Create a google.cloud.storage.Client() with an RSA key configured
Create a google.cloud.storage.Bucket() from that Client
Create a google.cloud.storage.Blob() from that Bucket
Call blob.generate_signed_url(86400) in a short (100 iteration) loop
Observe runtime greatly exceeds expectations for any comparative operation implemented in a sensible manner.
Notice rsa pure-Python RSA implementation is in use, even though OpenSSL and suchlike are available

Code example
client = make_client()
blob = client.bucket('foo').blob('bar')
for x in xrange(100):
    blob.generate_signed_url(86400)

Copied from original issue: GoogleCloudPlatform/google-cloud-python#3696

From @dw on July 28, 2017 11:34
The implementation from https://github.com/GoogleCloudPlatform/storage-signedurls-python looks much more competitive, it manages closer to 18ms per URL, vs. 47ish for this package.  I'm still deeply surprised that RSA signing would be so slow, even with the OpenSSL implementation used by storage-signedurls-python

From @arthurdarcet on July 28, 2017 12:4
with the cryptography package:
private_key = '-----BEGIN PRIVATE KEY-----\n…'
backend = cryptography.hazmat.backends.default_backend()
key = cryptography.hazmat.primitives.serialization.load_pem_private_key(
	private_key.encode('utf-8'),
	password=None,
	backend=backend,
)

to_sign = '\n'.join((
	method.upper(),
	content_md5,
	content_type,
	str(expires),
	'/' + path,
))

sign = key.sign(
	to_sign.encode('utf-8'),
	cryptography.hazmat.primitives.asymmetric.padding.PKCS1v15(),
	cryptography.hazmat.primitives.hashes.SHA256(),
)

clocks at 1.2ms per signature on my machine

From @dhermes on July 28, 2017 15:15

Notice rsa pure-Python RSA implementation is in use, even though OpenSSL and suchlike are available

I was going to point this out, but you've already noticed (which is great). We used to support pyOpenSSL and PyCrypto (as well as rsa) in oauth2client, but I'm not sure what the current "state of the art" is in google-auth (will check now).
RE: PyCrypto, that library is no longer maintained, so we won't be adding support for credential signing from it.

From @dw on July 28, 2017 14:57
Thanks for this! I've borrowed it for our application as a temporary measure. I wonder why PyCrypto is so much slower

From @arthurdarcet on July 28, 2017 15:23
PyCrypto was more or less replaced by pyca/cryptography: https://cryptography.io/en/latest/
It would be very nice to be able to use this in oauth2client, but I guess the issue is on the wrong repo

From @dw on July 28, 2017 15:40
@dhermes Note that pyOpenSSL has been on life support under PyCA for the last few years, and before that it had no active maintainer. The PyCA guys recommend the cryptography package for all new code
Whups, confused it with PyCrypto :)

From @dhermes on July 28, 2017 15:28
@arthurdarcet I am currently putting together a "proof-of-concept" signer using pyOpenSSL, so hopefully this will go somewhere. (I've not used pyca/crytography enough to be familiar.)
I'd like to emphatically point out that oauth2client is "dead", and development has moved to google-auth. (So that's where we'd want support for these signers.)

From @dhermes on July 28, 2017 16:12
@jonparrott We definitely need to move this conversation over to google-auth.

From @dhermes on July 28, 2017 16:12
@dw Thanks for the info. Here is the pyOpenSSL example I was working on (though maybe it's not so relevant as you point out):
https://gist.github.com/dhermes/036d4cb068e692a6d6e4a1f6e10e8b29
There isn't a great way in google-auth of getting this in use, here is a super hacky approach.
In [1]: import google.auth

In [2]: from openssl_signer import OpenSSLSigner

In [3]:

In [3]: credentials, _ = google.auth.default()

In [4]: credentials
Out[4]: <google.oauth2.service_account.Credentials at 0x7fe1c8296780>

In [5]: old_signer = credentials._signer

In [6]: old_signer
Out[6]: <google.auth.crypt.RSASigner at 0x7fe1c82492e8>

In [7]: key = old_signer._key.save_pkcs1()

In [8]: key[:30]
Out[8]: b'-----BEGIN RSA PRIVATE KEY----'

In [9]: new_signer = OpenSSLSigner.from_string(
   ...:     key, key_id=old_signer.key_id)
   ...:

In [10]: message = b'sanity check'

In [11]: old_signer.sign(message) == new_signer.sign(message)
Out[11]: True

In [12]:

In [12]: credentials._signer = new_signer

actually comparing these two we see about a 46x speedup:
In [13]: %timeit old_signer.sign(message)
33.1 ms ± 261 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [14]: %timeit old_signer.sign(message)
33.1 ms ± 139 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [15]: %timeit new_signer.sign(message)
712 µs ± 3.53 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [16]: %timeit new_signer.sign(message)
719 µs ± 1.51 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

From @dhermes on July 28, 2017 16:53
I add a cryptography signer to my gist (based on the above from @arthurdarcet):
In [17]: from cryptography_signer import CryptographySigner

In [18]: cryptography_signer = CryptographySigner.from_string(
    ...:     key, key_id=old_signer.key_id)
    ...:

In [19]: old_signer.sign(message) == cryptography_signer.sign(message)
Out[19]: True

In [20]: %timeit cryptography_signer.sign(message)
664 µs ± 5.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [21]: %timeit cryptography_signer.sign(message)
669 µs ± 4.98 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

Post-Script: Though it (cryptography) seems to be marginally faster than pyCrypto pyOpenSSL, it isn't actually. I was playing YouTube videos before so my laptop was working harder. In the more restful state, the previous times became:
In [13]: %timeit old_signer.sign(message)
30.3 ms ± 427 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [14]: %timeit old_signer.sign(message)
30.3 ms ± 323 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [15]: %timeit new_signer.sign(message)
680 µs ± 6.21 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [16]: %timeit new_signer.sign(message)
653 µs ± 14.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

From @jonparrott on July 28, 2017 16:14
Yep, we want to add ECC signers to Google auth so using cryptography for RSA is an option. We'd just need to make it optional.


hw: Rename .kitspace.yaml to kitspace.yaml

To make https://github.com/kitspace/kitspace/pull/310 work. We don't support having a dot infront of the yaml at the moment.

thanks for that ☺


Entity Creation Syntax

(From the main page here.)
As of 0.37.0 this doesn't seem to work.
I have to do something more like:
var e = _context.CreateEntity();
e.AddAsset("ViewPrefab");
e.AddText("Toast");
I'm interested in doing some tutorials / video work for beginners (as i am one, and am finding outdated examples confusing.  (the updated example projects are not outdated, but are somewhat complex and for a Unity user with no ECS experience its not 100% intutive where to look for the code that makes things work!)

These "docs" are currently out of date but these two example projects have been updated:
https://github.com/sschmid/Match-One
https://github.com/sschmid/Entitas-CSharp-Example

I'm working on a video step-by-step tutorial atm.

yep all docs + wiki are not updated yet. Just released 0.37.0 and have to catch up with the docs...


No in_progress flag generated when using the aws-xray-sdk-go to emit trace data

From this doc the in_progress is a required flag. However, when I use go sdk to emit the trace data, there is not in_progress flag when it's false. This may be a bug for go sdk.

I think Go SDK scrap out the in_progress flag if end_time value is set and looks like this is expected behavior so I won't consider it as a bug.


Concept links don't show up in the right rail

Seems to have broken recently. Likely broken by #498 somehow.

beb851190e8d4cb2e38e1d97745c9699c5483017 might somehow be related? earlier bisects are hard to do because of the production data breaking for old versions. But it seems to be before #498.

Make the debug stashed changes be in prod

Broke in 854fcaa62e5befc9f7930dbffd2409fb39ec1d16


Converting NotBlankString to interface

Description
For being able to introduce the new EmailAddress type (discussed in #55), we would like to convert the NotBlankString type to a sealed interface instead of a class. This conversion is motivated by the fact that adding a feature to the NotBlankString should be also available for the EmailAddress type.
This conversion is binary incompatible because the JVM compiler will not replace the NotBlankString type by the String type (able because of the @JvmInline annotation).
Checklist

[ ] Implement.
[ ] Test.
[ ] Refactor.
[ ] Check the generated documentation.
[ ] Check and update the public API binaries.
[ ] Update the Unreleased section in changelog.

The ability to add a feature available for both types seems to be a nice to have but not necessary.
For example, concatenating two NotBlankString make sense while concatenating two EmailAddress doesn't.
In this scenario, it is best to design our API by preferring composition over inheritance.
So this issue will not be resolved.


Feature request: ascii85/base85 support

Summary
Consider adding support for base85/ascii85 encoding/decoding - https://en.wikipedia.org/wiki/Ascii85

I’m currently working on this. Looking in to the various Base85 specs, I plan on including support for Ascii85, Z85, as well as IPv6 encoding.
As of right now, I have encoding for Ascii85 and Z85 working, and decoding for Ascii85 working. It’ll be a few days before I have a chance to work on the rest.


is any english documentation or describe about libary?

not yet.This library is for Baichuan E-commerce SDK.Baichuan E-commerce SDK is from Ali. I think most users are from China. So if anyone who wants English document, I'll try it.


Remove isArray checks for onboarding

Explanation of Change

Fixed Issues

$ https://github.com/Expensify/App/issues/53476
PROPOSAL: https://github.com/Expensify/App/issues/53476#issuecomment-2514984299
Tests

Login with new user
Complete onboarding workflows flow
Verify that: No errors during this flow

[x] Verify that no errors appear in the JS console

Offline tests

same as tests
QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."
same as tests

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/d9b5a031-173b-4a59-911a-f5aaa0561108

Android: mWeb Chrome

https://github.com/user-attachments/assets/3a5d1885-93fb-410f-a03d-d4f94ca4cf92

iOS: Native

iOS: mWeb Safari

https://github.com/user-attachments/assets/908778a9-528f-4a64-84d8-23d623d53e20

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/464caf7e-bf4a-4143-a95b-89ccf7a70311

MacOS: Desktop

https://github.com/user-attachments/assets/9482327c-8314-4f8b-9133-092ffdd9346b

thanks @dominictb, i updated

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Vulkan: StandardMaterial3D's Disable Ambient Light property has no effect

Godot version
4.0.dev (28174d531)
System information
Fedora 34, GeForce GTX 1080 (NVIDIA 470.74)
Issue description
The StandardMaterial3D property Disable Ambient Light has no effect.
Left: Disable Ambient Light disabled, right: Disable Ambient Light enabled:

In comparison, this is how it looks if you disable ambient lighting in the Environment resource:

This is similar to https://github.com/godotengine/godot/issues/28171, but in the Vulkan renderer (although the fix is likely different).
Steps to reproduce

Add a MeshInstance3D node with a PrimitiveMesh and StandardMaterial3D.
Enable Disable Ambient Light in the StandardMaterial3D's properties.

Minimal reproduction project
test_disable_ambient_light.zip

Sorry, I did a preliminary search but didn't run across this.

Fixed by https://github.com/godotengine/godot/pull/66107


docs: add extism to community users

hi @nilslice thank you for this! Could you fix the DCO and then all good to go:)

Done! Thank you, @mathetake :raised_hands:


Add an option to set row header

We want to request a functionality to have an option to set a column to be a row header and render  instead of  for the row header column (please see https://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/H51.html)

Not totally sure I follow. If you're looking to have a specific feature that fundamentally alters the display of the table, you should be able to get most of what you need out of existing custom render functions like customRowRender and customBodyRender. But fundamentally, this library is built on material-ui and the material standards set forth by Google and I don't have any plans to support totally different table formats.

Thank you for the quick response. I can probably use customRowRender as a workaround.


Offline usage?

Can you explain the mechanism that used by this integration? Will it work in local network, when there is no internet connection, or this integration interracts with TP-Link server?

That's a really good question! I want to know that, too.

The integration works for polling the plug locally so it can work without the tplinkcloud and an internet connection. For more information you can see k4czp3r post on it which explains the exact api call and how it all works. Hope this helps :)

The integration works for polling the plug locally so it can work without the tplinkcloud and an internet connection. For more information you can see k4czp3r post on it which explains the exact api call and how it all works. Hope this helps :)

Thank you ! A great explaination !


CPU Usage While Idle on Mac

mssql-server-linux eats CPU + battery while idle on Mac.  I'm not sure if this is normal behavior for SQL Server on Linux to use lots of resources while idle, or if this is specific to the docker image.
System Specs
MacOS: 10.13.3
Model: Late 2016 MacBook Pro
Docker: 18.02.0-ce-rc2-mac50
Reproduce
Run the suggested command to kick it off:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -e 'MSSQL_PID=Express' -p 1433:1433 -d microsoft/mssql-server-linux:latest

Run docker stats
CPU usage never drops below ~4%:
9a0fde2ac3f8        hopeful_bose                 4.98%               628.5MiB / 1.952GiB   31.44%              968B / 0B           160MB / 160MB       141

This problem also persists after a database instance has been created on the image.

Ran docker stats on my machine.  CPU utilization fluctuates between 2.x% and 4.x%.  Probably pretty normal if not ideal.

Experiencing the same issue with mssql container running in Docker on Mac. CPU utilization fluctuates between 5-7%, which seems to be weird given that no applications are using MSSQL during those times.


Drop item into nested lists with some of them empty

I saw all the issues filed regarding this question. Completely understand that it is working as planned with min-height > 0 and enough to have a drop zone for the item inside the empty list.
But here is the issue I am running into. My nested lists looks uniformly clean and without absurd items in between where the nested list is empty. By adding the min-height for all cases, the empty nested lists in this list of items now have awkward looking spaces here and there just to create drop zones.
So, lets say we do want to have the min-height present for even the empty lists, BUT can we make that dynamic so that ONLY after the DRAGSTART event, that min-height is applied to the parent list OR when we are moving the cursor over the PARENT item that contains the nested empty list, the min-height gets applied (for only some time delay). User can drop inside it or just keep going.
Does this make sense? Could this be possible?
Thanks in advance. Great library and excellent work!

That sounds reasonable, but you'd have to build this on your own using the dnd-dragstart callback, since this directive has nothing to do with the CSS.
If the problem is only with child lists, an easier approach might be to conditionally set the min-height depending on the .dndDragover class of the parent.


Where is the code for Chapter 8?

Thanks for bringing this to our attention. I have added in the code that was accidentally removed at some point in time. Sorry for the inconvenience.

thanks a lot for speedy response!


'🦟[Bug Report]

This ticket was escalated from Zendesk by Kerry Washington:
Ticket: #2935
Type: Incident
Priority: -
Requester: Townsrichard
Organization: -
Assignee: -

Describe the bug

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots or GIFs
If applicable, add screenshots or GIFs to help explain your problem.
Mobile device (please complete the following information):

Device: [e.g. Pixel 4]
OS: [e.g. Android 25]
Litewallet Version [e.g. v1.19.3]

Additional context
Add any other context about the problem here.
(created from Zendesk ticket #2935) gz#2935

Test complete

Agent comment from Patrick T Mcdermott in Zendesk ticket #2935:Hello,
Our development team is aware of the issue and is trying to restore this function. Thank you for writing us and making us aware of the issue. We will notify users when the buy tab is up and running.
Patrick
Litecoin Support
°°°


Unity 2020.3 Integration

Hi there, has I had to update my project to Unity 2020 as a requirement for an asset I am using.
Some of the required packages seem to have been removed from the 2020 package manager:
  * Oculus Android (2.38.6)
  * Oculus Desktop (2.38.4)
  * OpenVR Desktop (2.0.5)
  * XR Legacy Input Helpers (1.3.11)

- has this repo been callibrated to work in URP for Unity 2020.3.2f1 ?

Thanks for the heads up. I'll review this ASAP.
On Tue, 6 Apr 2021 at 16:13, Aoost @.***> wrote:

Hi there, has I had to update my project to Unity 2020 as a requirement
for an asset I am using.
Some of the required packages seem to have been removed from the 2020
package manager:

Oculus Android (2.38.6)
Oculus Desktop (2.38.4)
OpenVR Desktop (2.0.5)
XR Legacy Input Helpers (1.3.11)

has this repo been callibrated to work in URP for Unity 2020.3.2f1 ?

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MephestoKhaan/HandPosing/issues/39, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABF7BKUN25HHVT5FHYZ6HPLTHMJIBANCNFSM42O2K53A
.

How is it going? I'd love to try this out in a later version of Unity.

Hey Aoost! I did a small update with other stuff last week and am planning to jump into 2020 support on Monday. See how far I can take it in 5 days. Sorry about the delays, had to attend other more pressing projects.
…

Hi. Even though Aoost ended up just reverting, I’d be interested in using this with the latest version of Unity for some research using advanced hand tracking examples. This would be a super useful resource.

Great! Working on this today. You will need support for the XR Plugin Manager I presume, hope to have some good news during this week

I see the XR Plugin Manager does have a Dependency  on XR Legacy Input Helpers (1.3.11) and imports it automatically.

Thanks a lot for looking into this!


Evaluate usefulness of full screen analysis view panel & ensure it is still working as desired

This issue is probably a moot point given changes in #141 to move the analysis view to the editor/full screen pane.

Full screen is disabled/commented out after - #141. We can either fix it or remove entirely.


Postpone folder expiration (updates) #87

Added folder-related tests to a "folders" subfolder. Did the same for sort folder tests in #121.


Exposes the ClientSDK infos if available

This PR is required for #1946 in order to only provide the Delete op with valid SDK's.

@nlutsenko, @drew-gross recommended that I give that one to you.

Yup, this looks a-ok. Did you test with the latest iOS SDK by any chance?
Is all of the info properly visible?

I checked the code, and that seems to be what's sent out:
https://github.com/ParsePlatform/Parse-SDK-iOS-OSX/blob/a0372136fcc51ba84a5d8f065966ee6fea9b95de/Parse/Internal/Commands/CommandRunner/URLRequestConstructor/PFCommandURLRequestConstructor.m#L137

Sounds good. Merging.


After refreshing, the page is scrolled a bit unwantedly

This is:

Bug

Specifications

OS: Windows 7
Browser: Google Chrome

Expected Behavior
After refreshing, the page should not be scrolled a bit.
Actual Behavior
After refreshing, the page is scrolled a bit unwantedly.
Steps to Reproduce the Problem

Open the page on Google Chrome and then refresh it.

Detailed Description
For comparison, here is an alternative page that does not have AOS. It works normally and is not scrolled a bit after refreshing.

i have same issue here

same problem ;(
anybody happened to solve it?

no solution bro

Same

This appears because of transform property on your section.
You could try to set   data-aos='fade-down'
instead of data-aos='fade-up' on hero section or just  `` data-aos='fade'```.


keep extension activated even with chrome dev tools closed

Seems to deactivate when closing dev tools.

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.


Migrate to Java 8

With the shutdown of Java 7 App Engine standard runtime coming soon, what about upgrading the code base of Cloud Endpoints framework to Java 8?
I'm available to help :-)

Yeah, I will probably work on that. Will also want to bump the Guava version, which actually involves changing the artifact to a new one, as Guava now has different artifacts for Java 7- and Java 8+. At that point I will probably bump the minor version.


Update README.md

Thank you for responding to my project.

Please pull request again because of the confilct


The API titles seem like they might be endpoints

In its current state, it's easily confused with an endpoint.

Addressed by the ensuing redesign.


add parts for developing leg disc [sf#2]

Reported by djs93 on 2013-05-09 10:39 UTC
FBrf0031353 Fig 1 has a fate map for the prothoracic leg disc (pretty much the same for other leg discs).

Updated by djs93 on 2013-05-09 10:48 UTC

Priority:  --> 9

Commented by djs93 on 2013-05-09 10:48 UTC
This is a very long standing request transferred from the old tracker.

Updated by mmc46 on 2014-02-25 20:22 UTC

status: open --> closed


Unable to apply custom js filters on initialize

Hi, a very neat grid, however there is a small issue in mvc-grid.js - on first initialization the custom filters can't be set, because the reload fires before. A work-around is to initialize the grid twice (that's what actually happens in your sample). Just move the reload after setting the filters.

Sorry, a wrong site.


V1.0.27 rc

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: ZhuoZhuoCrayon:x: github-actionsgithub-actions seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix the endless loop caused by the'%%num' parameter

Fix the endless loop caused by the'%%num' parameter.

@MountCloud : Thanks for your contribution! The author(s) have been notified to review your proposed change.

The parameter in the format of '%%num' was extracted from the windows10 security event.

Hi @MountCloud - thanks for your suggestion.


test: add ARM-based linux CI

https://github.com/github/roadmap/issues/970

https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/#get-started-using-arm-hosted-runners-today

We expect to begin offering Arm runners for open source projects by the end of the year.

https://github.blog/changelog/2024-09-03-github-actions-arm64-linux-and-windows-runners-are-now-generally-available/


Can not access service kibana-logging

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT
Environment:

Cloud provider or hardware configuration:
bare metal

OS (printf "$(uname -srm)\n$(cat /etc/os-release)\n"):
CentOS Linux release 7.4.1708

Anything else do we need to know:
I deployed kubernetes cluster with enabled option for EFK: efk_enabled = true
I got this information:
[root@kube-master ~]# kubectl cluster-info
Kubernetes master is running at https://my_ip:6443
Elasticsearch is running at https://my_ip:6443/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy
Kibana is running at https://my_ip:6443/api/v1/namespaces/kube-system/services/kibana-logging/proxy
KubeDNS is running at https://my_ip:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Accessing any of provided urls failed:
{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "services \"elasticsearch-logging\" is forbidden: User \"system:anonymous\" cannot get services/proxy in the namespace \"kube-system\"",
  "reason": "Forbidden",
  "details": {
    "name": "elasticsearch-logging",
    "kind": "services"
  },
  "code": 403
}

Then I made type 'NodePort' for service 'kibana-logging' and tried to access it with nodeport and got this in browser:
{"statusCode":404,"error":"Not Found"}
Every my attempt to access service failed with one of these errors... May be I shoukd configure something else for service? What is the problem with accessing.
BTW, service elasticsearch-logging is accessible via NodePort:
{
  "name" : "Artie",
  "cluster_name" : "kubernetes-logging",
  "cluster_uuid" : "leYHVPq7THqE7BOG39cBXA",
  "version" : {
    "number" : "2.4.1",
    "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",
    "build_timestamp" : "2016-09-27T18:57:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}

I run in that issue too. I am not really sure why access through the API server is not working, maybe a RBAC problem? or just KIBANA_BASE_URL not OK?
Anyway, you can make it work as a NodePort if you change kibana base address. Edit kibana deployment and remove "KIBANA_BASE_URL" environment variable.

Have the same issue, did what roicostas said and works now. Would like to see a clean workaround tho.

Have the same issue. Did anyone manage it some how?

If you want to access services to master_ip:6443 you need to enable: kube_api_anonymous_auth: true
and disable kube_apiserver_insecure_port, and still you will need to pass Bearer Token i think

@Atoms I have the same issue. Disabling of kube_apiserver_insecure_port does not help me (also kube_api_anonymous_auth has value true)

Use this  Cluster Role Binding for test:
cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: open-api
namespace: ""
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:

apiGroup: rbac.authorization.k8s.io
kind: User
name: system:anonymous
EOF

@dommgifer
You was right about the Role-Binding, but i still cannot find the path to UI of Kibana.
That what i got:
Kibana is running at https://<IP_ADDRESS>:6443/api/v1/namespaces/kube-system/services/kibana-logging/proxy
{
"paths": [
"/apis",
"/apis/",
"/apis/apiextensions.k8s.io",
"/apis/apiextensions.k8s.io/v1beta1",
"/healthz",
"/healthz/etcd",
"/healthz/ping",
"/healthz/poststarthook/generic-apiserver-start-informers",
"/healthz/poststarthook/start-apiextensions-controllers",
"/healthz/poststarthook/start-apiextensions-informers",
"/metrics",
"/openapi/v2",
"/swagger-2.0.0.json",
"/swagger-2.0.0.pb-v1",
"/swagger-2.0.0.pb-v1.gz",
"/swagger.json",
"/swaggerapi",
"/version"
]
}

did you had solved it ?
@tedam @vovkats

@roicostas
i do as blow:
i delete - name: SERVER_BASEPATH and it value in kibana-deployment.yaml,i defind type:NodePort and nodePort:30601 in kibana-service.yaml.
it does not work,and it response
"<IP_ADDRESS> 拒绝了我们的连接请求。
请在 Google 中搜索“192<PHONE_NUMBER>1”
ERR_CONNECTION_REFUSED"

@roicostas
sorry, it works now. after some time it works. maybe kibana is initing.

Got the same issue, dommgifer's solution solved my problem.


Typo in readme: send!

Its not sent! Its send!

Please be so kind and open a pull request for this.


Share bar

This uses the custom links for Twitter and LinkedIn (but with the images from the default button implementations) and the default facebook implementation that is not customizable but doesn't require us to sign up for a facebook app id.

The Facebook button is missing a focus style. Can we please add?

The Facebook button is missing a focus style. Can we please add?

It seems like the answer is no. Looks like we'll have to go the route of getting a Facebook App ID. I'll check with Ryan about making that happen.


Request: Arcane Spells addable to Divine Spellbook

My favorite divine caster is oracle. Would love to have the ability to add arcane spells to an oracle spellbook as a revelation.
There are classes which specialize in this: Elf Ancient Lorekeeper can pick 9 wizard spells from the full wizard spellbook along with the oracle divine spellbook plus his mysteries. Until Owlcat fixes the broken Loremaster prestige class I really would rather wait to play my fav class here. Any ideas?
https://www.d20pfsrd.com/races/core-races/elf/ancient-lorekeeper-oracle-elf

While Toybox is not in the business of adding blueprints, prestige classes, or other permanent changes, you can now modify your spellbook to add spells from any caster type to the oracle spell list in the Party Editor.

Much thanks to you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


New VRExperienceHelper Teleportation options

Add option to change the teleportation duration in the VRExperienceHelper class.
The property teleportationTime was added to the vrTeleportationOptions interface.
Add support to teleport the camera at constant speed in the VRExperienceHelper class.
The property teleportationSpeed was added to the vrTeleportationOptions interface.
The property vrTeleportationOptions.teleportationMode is used to change the teleportation mode between constant time (default) and constant speed.
Two public static properties were added to the VRExperienceHelper class:
BABYLON.VRExperienceHelper.TELEPORTATIONMODE_CONSTANTTIME and
BABYLON.VRExperienceHelper.TELEPORTATIONMODE_CONSTANTSPEED

This is really good
Just one question: does it behave the same as before by default?

Yes, it does.
The default teleportation mode is TELEPORTATIONMODE_CONSTANTTIME as before.
The default teleportationTime is 122ms, calculated as round(11/90*1000), where 90 is the FPS and 11 is the end frame used in the original teleportation animations.

Congratulations for making a perfect PR!


Allow individual CSS modules to be imported

For those consuming calcite web that don't have Sass in their stack, would be nice to allow them to import individual components/patterns. The following outlines the desired structure of the CSS folder in dist:
dist/
  css/
    components/
    patterns/
    type/
    grid/
    ...

In this way one could include just the CSS for cards without getting any other CSS even without using a precompiler.

I think this is going to involve re-engineering how we do our Sass imports. Should move to a system where:

There are two files for each component/pattern in the lib. One is pure sass mixins/variables with no outputted CSS. The other imports the pure sass file, checks for the proper include variable (and sets it to true if it's undefined), and outputs CSS.
Each pure sass file should import all mixins and variables it needs individually, so that it's self-sufficient. This would also help with issues we've had in the past due to our imports being mixins and css classes keyed to a Sass variable ($generate-css). We've had trouble with this variable getting set to true and teams accidentally generate extra css.
Each pure-css file should set default values for the include variables that it uses. By setting $include-modals: true !default we can compile this file individually, or import it, overriding the value.

The file tree after these actions would look something like this:
lib/
 sass/
   calcite-web/
     components/
       _action-bar.scss
       _alert.scss
       _animation.scss
       _badges.scss
       _breadcrumbs.scss
       _button.scss
       _card.scss
       _dropdown.scss
       _esri-logo.scss
       _form.scss
       _input-group.scss
       _label.scss
       _loader.scss
       _panel.scss
       _skip-to-content.scss
       _table.scss
       _tooltip.scss
       action-bar.scss
       alert.scss
       animation.scss
       badges.scss
       breadcrumbs.scss
       button.scss
       card.scss
       dropdown.scss
       esri-logo.scss
       form.scss
       input-group.scss
       label.scss
       loader.scss
       panel.scss
       skip-to-content.scss
       table.scss
       tooltip.scss
     patterns/
       ...
     type/
       ...
     grid/
       ...
     ...

I think Sass will complain about having files with the same name which are only differentiated by an underscore, so a different naming scheme might need to be thought of for this to work properly.

This would have the upside of also allowing developers to import self-sufficient patterns directly from the lib, like:
@import 'calcite-web/dist/sass/calcite-web/components/_alert'

Which would give them just the pure sass for the alerts with no sass generated. This could be a useful feature for those that are needing to use sass mixins with no generated styles.


Need a sample for acquiring token from app identity provider for Blazor Webassembly apps.

Hi!
Please add a sample on how to use this approach in a pure Blazor WebAssembly App (not hosted).
I can't get it to work as the referenced libraries cannot be used in a pure WebAssembly App.
Thanks and regards,
Jan

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

ID: 957649d9-8576-a551-716a-e273b9f3dadb
Version Independent ID: af706ddf-6af2-9158-c153-998c6d56cbc5
Content: Tutorial - Web app accesses Microsoft Graph as the user - Azure App Service
Content Source: articles/app-service/scenario-secure-app-access-microsoft-graph-as-user.md
Service: app-service-web
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@DGOIT-Jan Thanks for the feedback.
Assigning @rwike77 for visibility, review and document enhancement consideration as appropriate.

@DGOIT-Jan  Thanks for the suggestion.  At some point I'd like to add a Blazor web assembly sample.  Don't have a timeline for that right now.  I'm closing this issue for now, but will update in the future when we add Blazor samples.
Created internal ADO workitem 1518797 to track this.
#please-close


readBans/saveBans functions may leave file handle open

The code in question is this, from the util.go file:
func saveBans() {
	f, err := os.Create("bans.json")
	if err != nil {
		l.Println(err)
		return
	}
	j := json.NewEncoder(f)
	j.SetIndent("", "   ")
	err = j.Encode(bans)
	if err != nil {
		rooms["#main"].broadcast(devbot, "error saving bans: "+err.Error())
		l.Println(err)
		return
	}
	f.Close()
}

func readBans() {
	f, err := os.Open("bans.json")
	if err != nil && !os.IsNotExist(err) { // if there is an error and it is not a "file does not exist" error
		l.Println(err)
		return
	}
	err = json.NewDecoder(f).Decode(&bans)
	if err != nil {
		rooms["#main"].broadcast(devbot, "error reading bans: "+err.Error())
		l.Println(err)
		return
	}
	f.Close()
}

These should probably have a defer f.Close() call after the file is opened successfully. Currently, the file handle never gets closed if the file exists and Encode/Decode fails.

I’m surprised me or a linter hasn’t found this yet, will be fixed in the next commit 👍
thanks

Not a problem!
Also, I do wonder about readBans(): shouldn't the function return early if the file does not exist? I'm pretty sure f won't be valid in that case anyways. Or is this behavior intentional so that a "file does not exist" broadcast message gets generated?

I forgot to update this issue. Was fixed by https://github.com/quackduck/devzat/commit/bf1a56fb87ca0918c17ce95d6495347375b1f81f


Search bar closes after each search

Describe the bug
The search bar disappears after searching, making it needlessly tedious to add search refinements.
To Reproduce
Search for "hello world"
Note search terms are hidden and "Search" button needs to be clicked to edit them.
Expected behavior
Search bar behaves like every other search bar on the planet and does not auto close.

"One of our team members will get back to you shortly with additional information."
It would sure be valuable to have someone ACTUALLY respond to this issue - instead of just the canned automated response saying someone will.
It is freaking infuriating having to select and copy what I just typed into the search bar just so I can refine my search.  It is mind-boggling that such a simple interface problem can't be resolved (or for that matter, even addressed) by the largest software company in the world within the 9 months since the issue was reported.
Bring Back TECHNET


[improve][broker] Add test to verify authRole cannot change

Motivation
While working on #19409, I noticed we do not have any tests in the ServerCnxTests class verifying the authRole cannot change. This seems like an oversight, and this PR adds tests to assert the existing behavior works as intended.
Modifications

Add new test AuthenticationProvider and AuthenticationState implementations to simplify testing
Add two tests to verify the behavior that a connection is closed when the authRole changes.

Verifying this change
This change is to add tests.
Documentation

[x] doc-not-needed

Matching PR in forked repository
PR in forked repository: Skipping testing in my fork since these are new tests and I got them to pass locally.

Codecov Report

Merging #19430 (3c8ef5e) into master (7449baa) will increase coverage by 0.02%.
The diff coverage is 81.25%.

@@             Coverage Diff              @@
##             master   #19430      +/-   ##
============================================
+ Coverage     62.63%   62.66%   +0.02%
- Complexity    25752    25768      +16
============================================
  Files          1832     1832
  Lines        134053   134067      +14
  Branches      14752    14753       +1
============================================
+ Hits          83967    84014      +47
+ Misses        42346    42340       -6
+ Partials       7740     7713      -27

Flag
Coverage Δ

inttests
24.85% <43.75%> (+0.01%)
:arrow_up:

systests
25.42% <43.75%> (-0.01%)
:arrow_down:

unittests
59.90% <81.25%> (-0.01%)
:arrow_down:

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


Click trigger not working on ubuntu 18.04

Hi,
I'm trying to trigger the click event on the notification in the render file of an electron application.
When the notification appear and i click on it, nothing happen.
Here below my code.
notifier.notify({
            title: "Test",
            message: 'to do personal task!',
            icon: '/electron/images/logo.png',
            wait: true
        });

notifier.on('click', function (obj, options) {
            console.log("click")
        });

Hi,
Any update?
according to this https://github.com/mikaelbr/node-notifier/issues/144#issuecomment-319324058 I installed the application and I added appName on the notify function:
notifier.notify({
            appName: 'com.app.id',
            title: "Test",
            message: 'to do personal task!',
            wait: true
  });

notifier.on('click', function (obj, options) {
            console.log("click")
        });

But still i didn't manage to get it work ! Any suggestion?
this is my main.js:
"devDependencies": {
    "electron": "^2.0.0",
  },
  "dependencies": {
    "electron-store": "^2.0.0",
    "node-notifier": "git+https://github.com/mikaelbr/node-notifier.git",
    "path": "^0.12.7",
    "update-notifier": "^2.5.0"
  }

Hi! I'm afraid notify-send (as implemented) doesn't support on click actions. See supported options on Ubuntu: https://github.com/mikaelbr/node-notifier#usage-notifysend


Define dependency to scala files in using directives

There are a few questions I'm wondering about the new inputs:

are they taken into account when watching files on disk? (IIRC, we only watch things from the initial Inputs instance)

Now it should work, and upon every change, I re-compute actual Inputs instance adding sources from using directives.

do they work fine from BSP? (they should, but I'd add a test for that in BspTestDefinitions just in case)

Yes, It works fine from BSP and I also added one BSP test.

are relative paths computed fine? like what if the using file directive is in a source in a sub-directory, like in src/foo/bar/Something.scala?

I think, it is out of  the scope of this PR, it should be fixed in #1098. Now, it works the same as path resolving for the resourceDir parameter in using directive.


dictionary array transpose not handle null in kernel function TransposeInts

Describe the enhancement requested
Due to some unify dictionary applications not handling the index value corresponding to null, a very large value may randomly occur. As a result, in the final TransposeInts function, src[index] may become a very large value, even exceeding the range of transpose_map, leading to a crash.”
If this is a description of a bug, it suggests that the merge dictionary application should properly handle null indices to avoid generating invalid or out-of-bounds index values, which can cause crashes in later stages of the program
Component(s)
C++

another fix version is implement the version which check the bitmap:
···
template <typename InputInt, typename OutputInt>
void TransposeIntsWithNullBitmap(const InputInt* src, OutputInt* dest, int64_t length,
const int32_t* transpose_map, const uint8_t * null_bitsmap, int64_t null_offset) {
if (null_bitsmap != nullptr) {
int64_t idx = 0;
while (length > 0) {
InputInt tran_idx = bit_util::GetBit(null_bitsmap, (null_offset + idx)) ? *src : 0;
*dest++ = static_cast(transpose_map[tran_idx]);
--length, ++src, ++idx;
}
} else {
TransposeInts(src, dest, length, transpose_map);
}
}
···
···
template
struct TransposeIntsDestWithNullBitmap {
const SrcType* src;
uint8_t* dest;
int64_t dest_offset;
int64_t length;
const int32_t* transpose_map;
const uint8_t* null_bitmap;
int64_t null_offset;
template
enable_if_integer<T, Status> Visit(const T&) {
using DestType = typename T::c_type;
TransposeIntsWithNullBitmap(src, reinterpret_cast<DestType*>(dest) + dest_offset, length,
transpose_map, null_bitmap, null_offset);
return Status::OK();
}
Status Visit(const DataType& type) {
return Status::TypeError("TransposeInts received non-integer dest_type");
}
Status operator()(const DataType& type) { return VisitTypeInline(type, this); }
};
···
···
struct TransposeIntsSrcWithNullBitmap {
const uint8_t* src;
uint8_t* dest;
int64_t src_offset;
int64_t dest_offset;
int64_t length;
const int32_t* transpose_map;
const DataType& dest_type;
const uint8_t *null_bitmap;
template
enable_if_integer<T, Status> Visit(const T&) {
using SrcType = typename T::c_type;
return TransposeIntsDestWithNullBitmap{reinterpret_cast<const SrcType*>(src) + src_offset,
dest, dest_offset, length,
transpose_map, null_bitmap, src_offset}(dest_type);
}
Status Visit(const DataType& type) {
return Status::TypeError("TransposeInts received non-integer dest_type");
}
Status operator()(const DataType& type) { return VisitTypeInline(type, this); }
};
···
···
Status TransposeIntsWithNullBitmap(const DataType& src_type, const DataType& dest_type,
const uint8_t* src, uint8_t* dest, int64_t src_offset,
int64_t dest_offset, int64_t length, const int32_t* transpose_map,
const uint8_t *null_bitmap) {
TransposeIntsSrcWithNullBitmap transposer{src, dest, src_offset, dest_offset,
length, transpose_map, dest_type, null_bitmap};
return transposer(src_type);
}
···

should check the null bitmap in here or handle it in application, make sure the index would not overflow ?

I think TransposeIntsWithNullBitmap is more preferable.

here the src[1] should be null, but here not check, the src[1] is random value, a massive number, so crash

I think the TransposeInts should not cares about this, since it means something like TransposeIntsWithNullBitmap with empty null-bitmap.

I mean, the internal::TransposeInts might not designed for null-inputs, so, the I think TransposeIntsWithNullBitmap is a good way, but perhaps we need to find which caller triggers this problem.
There're TransposeDictIndices and concatenate which calls TransposeInts, so i mean which caller might trigger this problem?

TransposeDictIndices  is the trigger, you can consturct a dictionary array with null value, and its index set to a massive value, the issue may reproduced

I've check the code of CompactTransposeMapVisitor and RecursiveUnifier::Unify, in tuition they didn't generate invalid ranges... I don't know which caller would make this happens 🤔, would you mind show the upper caller of this case, or add a test in this case?

here the test case:

read one group data from database storage and construct a dictionary array
dictionary  ['ab', 'cd']
index [1, 1, 0, 0] => here index is int32 data type, in memory[0x00000001, 0x00000001, 0x00000000, 0x00000000]
nullbitmap nullptr

read another group of data from database storage and construct a dictionary array
dictionary  ['ab', 'ef']
index [1, 1, 0, null] => here index is int32 data type, in memory[0x00000001, 0x00000001, 0x00000000,  random_value]
nullbitmap [0001]

NOTE: the group of data would be unified the dictionary with the ahead dictionary ["ab", "cd"]

the two group of data are unified in the application for purpose get unified dictionary
dictionary ['ab', 'cd', 'ef']
index transpose array for the second group of data [1, 2]
the index [1, 1, 0, null]  after refresh should be [2, 2, 1, null]

here according to the code snippet:
in function `TransposeInts`

 while (length >= 4) {
    dest[0] = static_cast<OutputInt>(transpose_map[src[0]]);
    dest[1] = static_cast<OutputInt>(transpose_map[src[1]]);
    dest[2] = static_cast<OutputInt>(transpose_map[src[2]]);
    dest[3] = static_cast<OutputInt>(transpose_map[src[3]]);
    length -= 4;
    src += 4;
    dest += 4;

NOTE ： src[3] is random value may be a massive number, if so, index overflow, then crash

@chenbaggio I've totally understand this. DictionaryArray::Transpose seems to be regarded as a internal function, the input of it is expected to be handled by DictionaryUnifier, which handles null well...
I think the problem is const int32_t* transpose_map given "non-null" values, which is unexpected. DictionaryUnifier might fixes this?

hello, our application implemented a new dictionary array interface RefreshDictArray,  it call the DictionaryArray::Transpose,
and pass transpose map and src idx,  in the situation DictionaryArray::Transpose is not internal function any more,  so I think
it should be handle in  DictionaryArray::Transpose or handle in TransposeInts
handle in DictionaryArray::Transpose  is a good way, it may keep the performance of TransposeInts

handle in DictionaryArray::Transpose is a good way

I don't catch the issue here, seems that only out-of-range const int32_t* transpose_map would trigger this ( point out if I'm wrong ). So how could we change DictionaryArray::Transpose to make it works?

Ahh, finally I got what you mean, sorry for misunderstand. So:

transpose_map points to a valid range in [0, dictionary_indice->length())
However, the dictionary indices is null, and given an out-of-range invalid position

@pitrou do you think we need a more interface for this or should handle this in Transpose?


debug/browser throws when used in electron preload scripts

As the title says, when logging, the debug/browser file checks here for WebkitAppearance in document.documentElement.style  , but at that time in the page's lifecycle documentElement is not yet defined and I get this
TypeError: Cannot read property 'style' of null.
Guess there could be a check for chromium based apps, where if both document and process exist, you are good to go.
Cheers,
Pupix

I believe this was fixed here.  Closing


Offline Support

Motivation
The motivation for this feature is to extend the existing Apollo Android library to enable performing mutations when server is unreachable.
Client should use a mutation store to support offline mutations. It is used to hold query and mutation requests when the client is offline.

When a client comes online from the offline state, the mutations that are persisted locally will be sent back to the server:

Top-level requirements

Key element of the work will be to build offline queue that will hold and persist offline mutations into sql store.

Offline changes should be retriggered again after restart

Users should be notifie that change was added to offline queue.

Offline data should be always visible even after application restart thanks to optimistic responses

It should be possible to do multiple edits for the same object when offline
It should be possible to create new object and edit it after.

After the offline change is replicated users should get a notification to update UI.

@harshithdwivedi @Lavanyagaur22 I have added more info. We can collaborate on this next week to extend description together as we learn more how this will work.
For the moment we just have top level behavior requirements - let me know if you have any questions about those.


How do I download for Windows?

The readme file says that a pre-compiled version for Windows exists. Yet I can't find it. Where do I download it from? Please help me.

I've found it after almost an hour of searching: https://web.archive.org/web/20130116210242/http://www.digitalforensicssolutions.com/Scalpel/
This is the original website before it was shut down and it contains the exe.

I've found it after almost an hour of searching: https://web.archive.org/web/20130116210242/http://www.digitalforensicssolutions.com/Scalpel/ This is the original website before it was shut down and it contains the exe.

Why did the people who switched to keeping it on Github (instead of a separate website) not also upload their previous EXEs (or at least the EXE of the last version they actually compiled) here too? You know, for people who don't want to take the time to compile it themselves.

And how am I supposed to know that? My guess is that they abandoned the project and just put the source on Github to preserve it for the future.


Mailable::mailer() ignored

Laravel Version: 7.20.0
PHP Version: 7.3.10
Database Driver & Version: n/a

Description:
Mailable has a mailer() method that is supposed to set the mailer that will be used to send the message.
However the default mailer is always used.
Steps To Reproduce:
Create the following Mailable class:
use Illuminate\Mail\Mailable;
use Illuminate\Bus\Queueable;

class TestEmail extends Mailable
{
	use Queueable;

	public function __construct()
	{
	}

	public function build()
	{
<EMAIL_ADDRESS>'Test Sender');
		$this->subject('This is a test');
		$this->html('
This is a test - ignore at your peril

Let me know if you have any questions ...
');
		return $this;
	}
}

Now try to send an email using the default mailer:
Mail::to('test@gmail.com')->queue(new TestEmail);

This works fine, the email is sent via the default emailer.
However if you try sending with a specific mailer:
Mail::mailer('postmark')->to('test@gmail.com')->send(new TestEmail);

it does not send via the "postmark" mailer, it still sends via the default mailer.

Works just fine for me.

Works just fine for me.

Not for me, do you have the same version of Laravel as me? What do you have in your "vendor" directory, do you have SwiftMailer which is the only non-Laravel entity I have that works with any sort of "mailer"?

In case anyone has the same problem and comes here when they do a google search ...
The problem I had was that I originally had Laravel v6 and when I updated to version 7 it left my "config/mail.php" file unchanged.
Unfortunately however, it appears that the "mailer()" function only works if you have the new style "config/mail.php" file - ie your file MUST have 'default' instead of 'driver' and it must also have 'mailers' configuring all the different mailers.


Maintainers updates

Dear all,
I opened a PR to add Telefónica team to the maintainers list as it was agreed on steering committee of CAMARA project.
It's possible that there are more people from other companies that should be included. In that case please proceed.

@monamok Could you please add me for Orange
Thanks.

New Maintainers included.


Wolfram Language Interface

This PR adds a Wolfram Language interface to the Gym HTTP interface.

@catherio: who is responsible for merging new language interfaces?


Predictions floating between black and white image

First,
I set steps_per-epoch to 200 and epochs to 5 and I get the black images.
Then I increased the steps_per_epoch. The accuracy increased to around 97%. But now it is producing completely white images.
I am testing on the same dataset which I have trained on but still not getting the predicted image any close to the annotated ones.
Any idea?

Try to increase the batch size to 8 or see the following discussion


[Bug]: autoscaled nodes have more than 3 DNS entries

Description
This is the error returned by multiple pods on my autoscaler nodes:
Message: Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: <IP_ADDRESS> <IP_ADDRESS> 2a01:4ff:ff00::add:2
Reason: DNSConfigForming
Source: kubelet k3s-01-autoscaler-cax21-nbg1-302f5cae41733fd6
Type: Warning

Apparently k8s only support 3 entries for DNS servers (source #689).
When looking on both worker and autoscaler nodes, here is how the /etc/resolv.conf looks on two servers for comparison.
k3s-01-worker-cax21-nbg1-cet:/ # cat /etc/resolv.conf
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
nameserver 2a01:4ff:ff00::add:1

k3s-01-autoscaler-cax21-nbg1-302f5cae41733fd6:/ # cat /etc/resolv.conf
# Generated by NetworkManager
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
nameserver 2a01:4ff:ff00::add:2
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 2a01:4ff:ff00::add:1

So my initial though is that that there is something missing when booting a autoscaler node that gets bootstraped with cloudinit_config, but what I haven't figured out yet.
Kube.tf file
module "kube-hetzner" {
  source  = "kube-hetzner/kube-hetzner/hcloud"
  version = "2.14.1"

  // provider and hcloud token config
  providers = {
    hcloud = hcloud
  }
  hcloud_token = var.hcloud_token

  // ssh key parameters
  ssh_public_key    = hcloud_ssh_key.tibiadata_ssh_key["tobias_ed25519"].public_key
  ssh_private_key   = null
  hcloud_ssh_key_id = hcloud_ssh_key.tibiadata_ssh_key["tobias_ed25519"].id

  // network parameters
  existing_network_id = [hcloud_network.net.id]
  network_ipv4_cidr   = module.net_k3s.base_cidr_block
  cluster_ipv4_cidr   = module.net_k3s.network_cidr_blocks.cluster
  service_ipv4_cidr   = module.net_k3s.network_cidr_blocks.service
  cluster_dns_ipv4    = cidrhost(module.net_k3s.network_cidr_blocks.service, 10)

  // control plane nodepools
  control_plane_nodepools = [
    for location in ["fsn1", "hel1", "nbg1", ] : {
      name        = "control-plane-${location}",
      server_type = "cax11",
      location    = location,
      labels      = [],
      taints      = [],
      count       = 1
    }
  ]

  agent_nodepools = concat(
    # egress nodepool
    [for location in [for dc in data.hcloud_datacenter.ds : dc.location.name] : {
      // [for location in ["fsn1", "hel1", "nbg1"] : {
      name        = "egress-cax11-${location}",
      server_type = "cax11",
      location    = location,
      labels = [
        "node.kubernetes.io/role=egress"
      ],
      taints = [
        "node.kubernetes.io/role=egress:NoSchedule"
      ],
      floating_ip = true
      count       = 1
    }],

    # worker nodepools (dynamically created)
    [for location in [for dc in data.hcloud_datacenter.ds : dc.location.name] : {
      // [for location in ["fsn1", "hel1", "nbg1"] : {
      name        = "worker-cax21-${location}",
      server_type = "cax21",
      location    = location,
      labels      = [],
      taints      = [],
      count       = 2
    }]
  )

  autoscaler_nodepools = concat(
    [for location in [for dc in data.hcloud_datacenter.ds : dc.location.name] : {
      // [for location in ["fsn1", "hel1", "nbg1"] : {
      name        = "autoscaler-cax21-${location}",
      server_type = "cax21",
      location    = location,
      min_nodes   = 1,
      max_nodes   = 2,
      labels = {
        "node.kubernetes.io/role" : "autoscaler",
      },
      taints = [{
        key : "node.kubernetes.io/role",
        value : "autoscaler",
        effect : "NoSchedule",
      }],
    }]
  )

  # firewall whitelisting (for Kube API and SSH)
  firewall_kube_api_source = [for ip in tolist(var.firewall_whitelisting.kube) : "${ip}/32"]
  firewall_ssh_source      = [for ip in tolist(var.firewall_whitelisting.ssh) : "${ip}/32"]

  # cluster generic
  cluster_name        = "k3s-01"
  additional_tls_sans = ["k3s-01.${var.fqdn_domain}"]
  base_domain         = "k3s-01.${var.fqdn_domain}"
  cni_plugin          = "cilium"
  disable_kube_proxy  = true # kube-proxy is replaced by cilium (set in cilium_values)

  # cilium parameters
  cilium_version = "v1.15.1"
  cilium_values  = <<EOT
ipam:
  mode: kubernetes
k8s:
  requireIPv4PodCIDR: true
kubeProxyReplacement: true
kubeProxyReplacementHealthzBindAddr: "<IP_ADDRESS>:10256"
k8sServiceHost: "<IP_ADDRESS>"
k8sServicePort: "6444"
routingMode: "native"
ipv4NativeRoutingCIDR: "${module.net_k3s.network_cidr_blocks.cluster}"
installNoConntrackIptablesRules: true
endpointRoutes:
  enabled: true
loadBalancer:
  acceleration: native
bpf:
  masquerade: true
encryption:
  enabled: true
  nodeEncryption: true
  type: wireguard
egressGateway:
  enabled: true
MTU: 1450
  EOT

  # Hetzner delete protection
  enable_delete_protection = {
    floating_ip = true
  }

  # various parameters
  ingress_controller   = "none"
  enable_cert_manager  = false
  block_icmp_ping_in   = true
  create_kubeconfig    = false
  create_kustomization = false
}

Screenshots
No response
Platform
Linux

@tobiasehlert Thanks for reporting this. I had no idea on the number of nameservers limitation.
Here are steps to fix it, I will try to address this later, but if you want to shoot a PR, don't hesitate please.

Certainly. Let's recap the solution to your DNS configuration issue with kube-hetzner:

Problem: Your autoscaler nodes have 4 nameserver entries (2 IPv4 + 2 IPv6) in their /etc/resolv.conf, which exceeds Kubernetes' limit of 3 total nameservers.

Solution: Modify the DNS configuration for autoscaler nodes to include only 3 nameserver entries total, combining both IPv4 and IPv6 addresses.

Steps to implement:
a. Review your kube-hetzner configuration, focusing on autoscaler node provisioning.
b. Locate the part of the configuration (likely in cloudinit_config or user-data scripts) that sets up DNS for autoscaler nodes.
c. Modify this configuration to limit nameservers to 3 entries. For example:
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
nameserver 2a01:4ff:ff00::add:2

d. Ensure this modified configuration is applied when new autoscaler nodes are created.
e. After making changes, you may need to recreate existing autoscaler nodes to apply the new configuration.

Expected outcome: Once implemented, your autoscaler nodes should have the same number of nameserver entries as your worker nodes, resolving the "Nameserver limits were exceeded" error.

Verification: After applying changes, check the /etc/resolv.conf on new or recreated autoscaler nodes to confirm it contains only 3 nameserver entries.

Remember, the key is to ensure that your DNS configuration provides adequate resolution for both IPv4 and IPv6 as needed by your cluster, while staying within the 3-nameserver limit imposed by Kubernetes.

hi @mysticaltech,
I've had some progress on the cloud-init stuff, but want to check with you on some things..
It seems like it takes a while and then the autoscaler node actually gets updated and has other DNS settings than right after start. I guess that the K8s stuff start before the networking things are fully settled yet, but I'm not sure on that part.
Anyhow, it looks to me that there is an edit of the /etc/resolv.conf file through cloudinit_write_files_common (in addition to modifying /etc/NetworkManager/conf.d/dns.conf) with this:
write_files:
- content: |
    nameserver <IP_ADDRESS>
    nameserver <IP_ADDRESS>
    nameserver 2a01:4ff:ff00::add:1
  path: /etc/resolv.conf
  permissions: '0644'

I read some in the documentation of cloud-init and even there are some ways forward..

use the resolv-conf module (link to docs)
Comment: maybe not the best, since many distros have moved from manual editing of /etc/resolv.conf, even though it's exactly what we do today.
use the networking-conf option through cloud-init (link to docs)
Comment: makes maybe a little more sense, but that would maybe also include configuration of all network-related things like usage of floating ips (which we slightly different today) so that is probably a larger rewrite I guess.

If using option 1, it would look something like this:
manage_resolv_conf: true
resolv_conf:
  nameservers:
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - 2a01:4ff:ff00::add:1

What would you prefer?
I've changed some things and you can take a look at it and see what you think.. link to my fork:
https://github.com/kube-hetzner/terraform-hcloud-kube-hetzner/compare/master...tobiasehlert:terraform-hcloud-kube-hetzner:fix-dns-configuration-with-cloud-init

@tobiasehlert  Thanks for this and sorry for the late reply. If the second option via resolv_conf works, that would be definitely best. PR welcome!

I previously used https://github.com/vitobotta/hetzner-k3s and encountered the same problem there.
It seems the Hetzner cloud-init gives four dns servers, which is one too much for us.
As a workaround, I added the following two commands to the post_create_commands to remove one of them:
sed -i "/2a01:4ff:ff00::add:2/d" /etc/netplan/50-cloud-init.yaml
netplan apply


Meta issue for checking provider dependencies

This issue is related to #1234, based on the recent discussion we should validate that all of the current cloud providers have their configurations explicitly defined, e.g adding all available information we can arrange for that given resource/provider for example inspecting if AWS has the region defined in all resources/dependencies (even if its an options setting) -- this will then allows us to get better control over the resources/providers settings as well as mitigate future encounters of unexpected behaviors.
Tasks:

Validate region is correctly assigned to all AWS dependencies;
Inspect if there is missing optional values that could have been set to all providers

Ok, even though I recently got an error where Terraform provider was complaining about a required region configuration to be set in the provider settings, the docs says that this is an optional attribute.
[terraform]: 2022-05-05T16:59:18.133-0300 [WARN]  ValidateProviderConfig from "provider[\"registry.terraform.io/hashicorp/aws\"]" changed the config value, but that value is unused
[terraform]: 2022-05-05T16:59:18.136-0300 [INFO]  provider.terraform-provider-aws_v4.12.1_x5: Retrieved credentials from "EnvConfigCredentials": timestamp=2022-05-05T16:59:18.136-0300
[terraform]: 2022-05-05T16:59:18.136-0300 [DEBUG] provider.terraform-provider-aws_v4.12.1_x5: Trying to get account information via sts:GetCallerIdentity: timestamp=2022-05-05T16:59:18.136-0300
[terraform]: ╷
[terraform]: │ Error: Invalid provider configuration
[terraform]: │
[terraform]: │ Provider "registry.terraform.io/hashicorp/aws" requires explicit
[terraform]: │ configuration. Add a provider block to the root module and configure the
[terraform]: │ provider's required arguments as described in the provider documentation.
[terraform]: │
[terraform]: ╵
[terraform]: ╷
[terraform]: │ Error: error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity: operation error STS: GetCallerIdentity, failed to resolve service endpoint, an AWS region is required, but was not found
[terraform]: │
[terraform]: │   with provider["registry.terraform.io/hashicorp/aws"],
[terraform]: │   on <empty> line 0:
[terraform]: │   (source code not available)
[terraform]: │
[terraform]: ╵

I was able to fix the issue with the region by adding the expected configuration to _qhub.tf.json file. I think the problem is to always remember to set this wherever the AWS provider might be used

So the reason we were seeing the dependency over the provider is due to importing 'QHubKubernetesProvider' in each stage. As one of the structures being added in that class is provider dependent (the 'data.aws_eks_cluster' is one)  Terraform will look for AWS provider configuration when reading that state config, but as we're not passing the provider information to that same stage (for example the 04-stage) this leads to terraform attempting to initialize the AWS provider based on schema only (not containing the region):
[terraform]: 2022-05-05T19:48:23.641-0300 [INFO]  provider.terraform-provider-aws_v4.12.1_x5: configuring server automatic mTLS: timestamp=2022-05-05T19:48:23.641-0300
[terraform]: 2022-05-05T19:48:23.676-0300 [DEBUG] provider: using plugin: version=5
[terraform]: 2022-05-05T19:48:23.676-0300 [DEBUG] provider.terraform-provider-aws_v4.12.1_x5: plugin address: address=/tmp/plugin2824800349 network=unix timestamp=2022-05-05T19:48:23.675-0300
[terraform]: 2022-05-05T20:17:12.171-0300 [TRACE] buildProviderConfig for provider["registry.terraform.io/hashicorp/aws"]: no configuration at all
[terraform]: 2022-05-05T20:17:12.171-0300 [TRACE] GRPCProvider: GetProviderSchema

...
[terraform]: 2022-05-05T19:48:24.874-0300 [TRACE] vertex "provider[\"registry.terraform.io/hashicorp/aws\"]": visit complete
[terraform]: 2022-05-05T19:48:24.874-0300 [TRACE] dag/walk: upstream of "data.aws_eks_cluster.default (expand)" errored, so skipping
[terraform]: 2022-05-05T19:48:24.874-0300 [TRACE] dag/walk: upstream of "data.aws_eks_cluster_auth.default (expand)" errored, so skipping
[terraform]: 2022-05-05T19:48:24.874-0300 [TRACE] dag/walk: upstream of "provider[\"registry.terraform.io/hashicorp/aws\"] (close)" errored, so skipping
...
[terraform]: ╷
[terraform]: │ Error: Invalid provider configuration
[terraform]: │
[terraform]: │ Provider "registry.terraform.io/hashicorp/aws" requires explicit
[terraform]: │ configuration. Add a provider block to the root module and configure the
[terraform]: │ provider's required arguments as described in the provider documentation.
[terraform]: │
[terraform]: ╵
[terraform]: ╷
[terraform]: │ Error: error configuring Terraform AWS Provider: error validating provider credentials: error calling sts:GetCallerIdentity: operation error STS: GetCallerIdentity, failed to resolve service endpoint, an AWS region is required, but was not found
[terraform]: │
[terraform]: │   with provider["registry.terraform.io/hashicorp/aws"],
[terraform]: │   on <empty> line 0:
[terraform]: │   (source code not available)
[terraform]: │
[terraform]: ╵

The solution is to pass over the AWS provider settings together with the kubernetes provider object.

We weren't able to catch that previously with integration tests because we were defining the AWS_DEFAULT_REGION var in the environment.


Added big conv example

@David-Durst let me know if you see anything odd about this example. If it looks good I'll send in the other examples.

Just got C simulation running and it passed. I changed the name too. I'll run the other throughputs tonight or tomorrow afternoon.

great, thank you!

@David-Durst so because of size and divisibility issues we cannot do 4 and 8 pixels per clock, (we ran into the same divisibility issues for 64 x 64 inputs).
I have added the 2 pixel per clock example though.

@David-Durst thank you!


"Bădulești", "Crângurile de Jos" are listed in the drop-down menu

Description:
When user writes ”Bădulești” and "Crângurile de Jos" the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Bădulești"

Expected results
The location appears in the drop-down menu as "Sat Bădulești, DÂMBOVIȚA (Crângurile)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Crângurile de Jos"

Expected results
The location appears in the drop-down menu as "Sat Crângurile de Jos, DÂMBOVIȚA (Crângurile)".


Change prefect to use Ray exectuor, it will be awesome.

Modin is awesome. It supports both Dask and Ray.
I want to change another project Prefect to supports both Dask and Ray.
Any ideas?
Prefect
The easiest way to automate your data.
Prefect is the new standard in dataflow automation, trusted to build, run, and monitor millions of data workflows and pipelines.
Prefect workflows are designed to be run at any time, for any reason, with any concurrency. Running a workflow on a schedule is a special case.

https://www.prefect.io/
https://github.com/PrefectHQ/prefect
But Prefect is based on Dask executors
Change Dask to Ray executor, any idea?
https://github.com/PrefectHQ/prefect/issues/3929
https://github.com/ray-project/ray/issues/13327

@ggservice007 thanks for the question. Modin can use either Dask or Ray, so I don't think there's any engineering we can do in Modin to enable prefect, it should just work.
Did you have something specific in mind?

@ggservice007 thanks for the question. Modin can use either Dask or Ray, so I don't think there's any engineering we can do in Modin to enable prefect, it should just work.
Did you have something specific in mind?

I do not want to modify the Modin to enable Prefect.  I want to change Prefect to support Ray.
You have make the Modin to support both the Dask and Ray at the same time.
@devin-petersohn Can you give me some experience or lesson about using Dask or Ray to do same thing? Or provide some documents about the difference between Dask and Ray deeply?

I do not want to modify the Modin to enable Prefect.  I want to change Prefect to support Ray.
You have make the Modin to support both the Dask and Ray at the same time.
@devin-petersohn Can you give me some experience or lesson about using Dask or Ray to do same thing? Or provide some documents about the difference between Dask and Ray deeply?

At a high level, Ray and Dask basically do the same thing, with different sets of features within the broad set of task-parallel schedulers. For some tasks, Ray is faster than Dask, and vice-versa.
In Modin, we created an execution abstraction that allows us to deploy the same Python code to different execution engines. It is possible to extend the internal abstractions for external use and this is something we plan to do eventually.
Prefect is maintained by Dask developers, so even if someone writes the Ray engine I do not know if they would accept it. They would need to maintain it themselves and as Dask users, they aren't familiar with Ray.

At a high level, Ray and Dask basically do the same thing, with different sets of features within the broad set of task-parallel schedulers. For some tasks, Ray is faster than Dask, and vice-versa.
In Modin, we created an execution abstraction that allows us to deploy the same Python code to different execution engines. It is possible to extend the internal abstractions for external use and this is something we plan to do eventually.
Prefect is maintained by Dask developers, so even if someone writes the Ray engine I do not know if they would accept it. They would need to maintain it themselves and as Dask users, they aren't familiar with Ray.

Base exectuor:
src/prefect/executors/base.py
from contextlib import contextmanager
from typing import Any, Callable, Iterator

from prefect.utilities.logging import get_logger

class Executor:
    """
    Base Executor class that all other executors inherit from.
    """

    def __init__(self) -> None:
        self.logger = get_logger(type(self).__name__)

    def __repr__(self) -> str:
        return "<Executor: {}>".format(type(self).__name__)

    @contextmanager
    def start(self) -> Iterator[None]:
        """
        Context manager for initializing execution.

        Any initialization this executor needs to perform should be done in this
        context manager, and torn down after yielding.
        """
        yield

    def submit(
        self, fn: Callable, *args: Any, extra_context: dict = None, **kwargs: Any
    ) -> Any:
        """
        Submit a function to the executor for execution. Returns a future-like object.

        Args:
            - fn (Callable): function that is being submitted for execution
            - *args (Any): arguments to be passed to `fn`
            - extra_context (dict, optional): an optional dictionary with extra information
                about the submitted task
            - **kwargs (Any): keyword arguments to be passed to `fn`

        Returns:
            - Any: a future-like object
        """
        raise NotImplementedError()

    def wait(self, futures: Any) -> Any:
        """
        Resolves futures to their values. Blocks until the future is complete.

        Args:
            - futures (Any): iterable of futures to compute

        Returns:
            - Any: an iterable of resolved futures
        """
        raise NotImplementedError()

Base exectuor:
src/prefect/executors/base.py
from contextlib import contextmanager
from typing import Any, Callable, Iterator

from prefect.utilities.logging import get_logger

class Executor:
    """
    Base Executor class that all other executors inherit from.
    """

    def __init__(self) -> None:
        self.logger = get_logger(type(self).__name__)

    def __repr__(self) -> str:
        return "<Executor: {}>".format(type(self).__name__)

    @contextmanager
    def start(self) -> Iterator[None]:
        """
        Context manager for initializing execution.

        Any initialization this executor needs to perform should be done in this
        context manager, and torn down after yielding.
        """
        yield

    def submit(
        self, fn: Callable, *args: Any, extra_context: dict = None, **kwargs: Any
    ) -> Any:
        """
        Submit a function to the executor for execution. Returns a future-like object.

        Args:
            - fn (Callable): function that is being submitted for execution
            - *args (Any): arguments to be passed to `fn`
            - extra_context (dict, optional): an optional dictionary with extra information
                about the submitted task
            - **kwargs (Any): keyword arguments to be passed to `fn`

        Returns:
            - Any: a future-like object
        """
        raise NotImplementedError()

    def wait(self, futures: Any) -> Any:
        """
        Resolves futures to their values. Blocks until the future is complete.

        Args:
            - futures (Any): iterable of futures to compute

        Returns:
            - Any: an iterable of resolved futures
        """
        raise NotImplementedError()

src/prefect/executors/ray.py
import asyncio
import logging
import uuid
import sys
import weakref
from contextlib import contextmanager
from typing import Any, Callable, Iterator, TYPE_CHECKING, Union, Optional

from prefect import context
from prefect.executors.base import Executor
from prefect.utilities.importtools import import_object

class RayExecutor(Executor):
    def __init__(
        self):
      pass

    @contextmanager
    def start(self) -> Iterator[None]:
        pass

    def wait(self, futures: Any) -> Any:
        pass

src/prefect/executors/ray.py
import asyncio
import logging
import uuid
import sys
import weakref
from contextlib import contextmanager
from typing import Any, Callable, Iterator, TYPE_CHECKING, Union, Optional

from prefect import context
from prefect.executors.base import Executor
from prefect.utilities.importtools import import_object

class RayExecutor(Executor):
    def __init__(
        self):
      pass

    @contextmanager
    def start(self) -> Iterator[None]:
        pass

    def wait(self, futures: Any) -> Any:
        pass

Closing because no action items on our end.


Add notice that theta needs to be calculated after disp-regression.

Add a hint to the README  that theta needs to be calculated after disp-regression.
Add a hint to the command line in script klaas.scripts.apply_disp_regressor.py that theta needs to be calculated after disp-regression.

fix #42

Can't we just calculate theta directly in here?

Why this warning?
If not used with the --yes option, the script asks for confirmation:
https://github.com/fact-project/classifier-tools/blob/1b9030efd34c393b320e0b9b7a9bf6dd1bf2cec5/klaas/scripts/apply_disp_regressor.py#L61-L70

Why this warning?

My intention was to make it clear to the user that he deleted theta and how he can calculate it from the source prediction. Sure cmdline warnings are not the best instrument for this.
However the description of the yes argument "'Do not prompt for overwrites'" did not make it  obvious to me that theta would be gone. Eventhough, now that I know, it is more obvious. I thus suggest to make this a bit more fool proof ;-)

Can't we just calculate theta directly in here?

Since we don't have a variety of methods to swap, I think this would be use full. Even if you want to replace this calculation afterwards, you could simply overwrite theta again in a different program.

As discussed in #42, I want to keep the disp regression source independent

As discussed in #42, I want to keep the disp regression source independent

Does this contradict with what Kai suggested? (If, how?)

I though

directly in here

referred to apply_disp_model

Ahhh, I see,
You mean if we do it here, you would calculate theta for a given source e.g. Crab along with the disp regression, but maybe you also want to calculate theta for a second source in the FOV.
Yes, I agree. It makes sense to separate these tasks.
However, Since theta was there before and might be gone after, I think it makes sense to inform the user and also guide him to a tool that helps him*her.

Yes, but I would move the warning up to the confirm call and maybe list all columns that got removed.
something like logging.warning("Removing columns {}".format(col))


Fix for ActiveStorage::Attached::Many

Thank you for the pull request. Can you add a test for this method?

@rafaelfranca added a test to the commit


BSQL Q28 fails in 2020-10-09 nightly

Looks like an input to the build_features function is somehow None, rather than a dask dataframe.
28
This function has been Deprecated. It is recommended to use ddf.shuffle(on=[colnames])
This function has been Deprecated. It is recommended to use ddf.shuffle(on=[colnames])
Encountered Exception while running query
Traceback (most recent call last):
  File "/raid/nicholasb/new/tpcx-bb/tpcx_bb/xbb_tools/utils.py", line 324, in run_bsql_query
    config=config,
  File "/raid/nicholasb/new/tpcx-bb/tpcx_bb/xbb_tools/utils.py", line 61, in benchmark
    result = func(*args, **kwargs)
  File "queries/q28/tpcx_bb_query_28_sql.py", line 339, in main
    client=client, train_data=train_data, test_data=test_data
  File "queries/q28/tpcx_bb_query_28_sql.py", line 256, in post_etl_processing
    X_train = build_features(train_data)
  File "queries/q28/tpcx_bb_query_28_sql.py", line 67, in build_features
    X = t["pr_review_content"]
TypeError: 'NoneType' object is not subscriptable

With a today's env, (16 GPUs-dgx202) I tried 8 times this query (isolated) and what i got was:
Succeed: 2 times
Crashed: 6 times (all with the same message)
Traceback (most recent call last):
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/xbb_tools/utils.py", line 326, in run_bsql_query
    config=config,
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/xbb_tools/utils.py", line 63, in benchmark
    result = func(*args, **kwargs)
  File "tpcx_bb_query_28_sql.py", line 345, in main
    client=client, train_data=train_data, test_data=test_data
  File "tpcx_bb_query_28_sql.py", line 259, in post_etl_processing
    X_train = build_features(train_data)
  File "tpcx_bb_query_28_sql.py", line 79, in build_features
    X.compute_chunk_sizes()
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/array/core.py", line 1202, in compute_chunk_sizes
    [tuple([int(chunk) for chunk in chunks]) for chunks in compute(tuple(c))[0]]
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/base.py", line 454, in compute
    results = schedule(dsk, keys, **kwargs)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/distributed/client.py", line 2725, in get
    results = self.gather(packed, asynchronous=asynchronous, direct=direct)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/distributed/client.py", line 1992, in gather
    asynchronous=asynchronous,
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/distributed/client.py", line 833, in sync
    self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/distributed/utils.py", line 340, in sync
    raise exc.with_traceback(tb)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/distributed/utils.py", line 324, in f
    result[0] = yield future
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/tornado/gen.py", line 762, in run
    value = future.result()
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/distributed/client.py", line 1851, in _gather
    raise exception.with_traceback(traceback)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/optimization.py", line 963, in __call__
    return core.get(self.dsk, self.outkey, dict(zip(self.inkeys, args)))
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/core.py", line 151, in get
    result = _execute_task(task, cache)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/core.py", line 121, in _execute_task
    return func(*(_execute_task(a, cache) for a in args))
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/utils.py", line 29, in apply
    return func(*args, **kwargs)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/dask/dataframe/core.py", line 5311, in apply_and_enforce
    df = func(*args, **kwargs)
  File "tpcx_bb_query_28_sql.py", line 51, in gpu_hashing_vectorizer
    return vec.fit_transform(x)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/cuml/feature_extraction/_vectorizers.py", line 885, in fit_transform
    return self.fit(X, y).transform(X)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/cuml/feature_extraction/_vectorizers.py", line 907, in transform
    tokenized_df = self._create_tokenized_df(docs)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/cuml/feature_extraction/_vectorizers.py", line 222, in _create_tokenized_df
    tokenized_df = cudf.concat(tokenized_df_ls)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/cudf/core/reshape.py", line 365, in concat
    sort=sort,
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/contextlib.py", line 74, in inner
    return func(*args, **kwds)
  File "/home/christianc/miniconda3/envs/bsql-tpcx/lib/python3.7/site-packages/cudf/core/frame.py", line 357, in _concat
    libcudf.concat.concat_tables(tables, ignore_index=ignore_index)
  File "cudf/_lib/concat.pyx", line 46, in cudf._lib.concat.concat_tables
  File "cudf/_lib/concat.pyx", line 54, in cudf._lib.concat.concat_tables
RuntimeError: cuDF failure at: /opt/conda/envs/rapids/conda-bld/libcudf_1607508461624/work/cpp/src/copying/concatenate.cu:369: Total number of concatenated rows exceeds size_type range


Cert schema change: optional fields and multiple signatures

The schema changes performed here allow the following in v1.2 certificates

optional document.certificate.id
optional document.verify.signer
optional image:signature
image:signature type is one of string (original type) or array, as follows:

"image:signature": [
         {
           "jobTitle": "President",
           "image": "data:image/png;base64,"
         },
         {
           "jobTitle": "Vice-President",
           "image": "data:image/png;base64,"
         }
       ]

image:signature is now optional -- if it's missing, then no signature images will be shown.
image:signature now supports the array of images.


playing DVD IFO files

I'm trying to start playing DVD IFO file with Vlc.Wpf.Sample app. Player is not rendered and I have infinity loop of the following in log:
StateChanged : Opening
StateChanged : Opening
StateChanged : Playing
StateChanged : Ended
StateChanged : Stopped
StateChanged : Opening
StateChanged : Opening
StateChanged : Playing
StateChanged : Ended
StateChanged : Stopped
I can open this .IFO file just fine in Vlc Media Player. Do you know what I'm doing wrong?

Ummm, I need a IFO to test it, do you have one?

I have but I have no static IP to share it. And it's 4GB size.


List supported OS versions in readme

Currently the information about supported OS versions is not easy to find.

Perhaps the Toltec catalogue could also have a column which states the latest supported OS version for each package.

I think this is good to include with #445, say the supported versions (including minimum, as we do technically drop support for older versions).
For toltec packages the big barrier to support as you mentioned is Qt and other library changes. When that happens we have to do a hard cut on support, or introduce new repositories supporting older versions. Luckily that doesn't happen too often.
For the rM2 the barrier for support is rm2fb. Unfortunately rm2fb support seems to lag longer than I'd like. https://github.com/ddvk/remarkable2-framebuffer/pull/79 is still sitting open with 2.10.2 support. Toltec can't technically support new versions until a new version of rm2fb is released, or until we start distributing our own version of the configuration file. This is what causes the most issues for us when an upgrade goes out.

I believe that at this point, the version information on the website, as well as the pending other work on enhancing toltecctl to provide feedback on if it's a supported version or not, is enough to handle what this was asking for. Since we have other issues/PRs open tracking those items, I'm going to close this issue.


Add graph complexity check on page load

Fix for #1721 .
When the page is loaded, the first received topology will trigger a check to see if the graph will be too complex to render. If so, the view will switch to the table view.  The complexity check formula:
(currentTopology.stats.node_count * (2 * currentTopology.stats.edge_count)) > 500
The user can switch to the graph view at any time. This logic only applies at page load. To test with a high node count (on linux):
nc -lk 1122 & for i in $(seq 1 300) ; do nc localhost 1122 & done
@davkal Let me know what you think.

Code looks good.
One more thing: if Scope has been used before, the view mode may be stored in localStorage (see router-utils.js and storage-utils.js). Should we then take those values, or still check for the graph complexity?

@davkal Since the graph could have gotten more complex from one browser session to the next, I think we should switch to the table mode no matter what the URL or localStorage says.

LGTM