feat(pcr0tool): Adjustable measurement length to print

To validate PCR0_DATA related measurement I need to see the full PCR0_DATA data.

LGTM


[IE] goog.fx.DragListGroup won't let you drag an item with a link

This issue was imported from Closure Library's previous home at http://closure-library.googlecode.com
The link to the original issue is:
https://code.google.com/p/closure-library/issues/detail?id=404

This issue is being closed as a preparation step before archiving the repository.  See the README for more detail.


Security level should be refactored to allow to use the same DB instance after renaming of user

Guys,
There is the following problem.
Step by step

Login into the OrientDB under someother (let say "myuser")
Rename user to for example "myuser2"
You still can get db from OPartitionedDatabasePool under old username and password and at the same time getMetadata().getSecurity().getUser('myuser'), of course, returns null.

Seem like there is no satisfying solution, I have considered following:

Detect the user name change and throw an exception on acquire. But the user name may be changed in a context of some other connection, so that is not reliable, especially for remote connections. Also, already acquired connections will continue their work like there were no user name change until they returned to the pool and reacquired from it.

We may try to compare the actual remote user name with the user name configured in the pool to overcome the problem with renaming from another connection, but that will give a performance penalty on each acquire call and will not solve the problem with already acquired connections.

We are trying to mix here the connection state management and the database state management, which should be separate. What do you think, @PhantomYdn?

Hi! My vision is that there is only one thing which can't be changed during user's lifecycle. I mean RID of a user. Can we try to make pooling working on RID instead of names? WDYT?

@PhantomYdn @lvca good, but it pooling works on url level not on user level, so when do you mean and @lvca support such change it means that database security level should be seriously refactored. Assign it for @tglman to make such refactoring at has nothing to do with pool, because pool does not store username at  any place merely relies on db security.

Changed name of issue to describe it's new intention.

Hi,
From my point of view we should not allow the user to be renamed, like on any other database engine if you want change the username you create a new user with the new username assigning the same roles, and you drop the old one.
does this point of view make sense to you ?
In case we have just to block the rename of the user makeing the property name readonly.
bye

@tglman , I can't agree with you:

RDBMS do allow to rename users: MySQL, PostgreSQL, Oracle has some troubles with that, but it also possible.
I might agree if OrientDB is simple DB. But fortunately, OrientDB  proposes full stack for developers and quite often OUsers used on application level + OAuth. And unability to change user login name is quite bad story.

the 2.2.x is in maintainence, moving this to 3.x


Delete Packages search does not display search result for package titles

I was trying to delete a specific package on a Support Request. But I could not get any reach result on the admin delete page with the package title.
I had to figure out the package ID from the nuspec (since the gallery UI does not display it) and then get the results.

We don't display "Package Title" anymore.. shouldn't be a problem now.


Add uptime and start-time endpoints for server, broker, minion and controller

Addresses #12298. Add uptime and start-time endpoints for server, broker, minion and controller. Verified all endpoints work as expected.
Following is sample output obtained while testing:
[  7:47PM ]  [ suyash@Suyashs-MacBook-Air:~/Desktop/work/open-source/workspace/pinot(12298-new-api-component-uptime✗) ]
 $ curl http://localhost:8000/uptime
Uptime: 81 seconds%
[  7:47PM ]  [ suyash@Suyashs-MacBook-Air:~/Desktop/work/open-source/workspace/pinot(12298-new-api-component-uptime✗) ]
 $ curl http://localhost:9000/uptime
Uptime: 125 seconds%
[  8:51PM ]  [ suyash@Suyashs-MacBook-Air:~/Desktop/work/open-source/workspace/pinot(12298-new-api-component-uptime✗) ]
 $ curl http://localhost:8000/uptime
Uptime: 127 seconds%
[  8:51PM ]  [ suyash@Suyashs-MacBook-Air:~/Desktop/work/open-source/workspace/pinot(12298-new-api-component-uptime✗) ]
 $ curl http://localhost:6000/uptime
Uptime: 128 seconds%
[  8:51PM ]  [ suyash@Suyashs-MacBook-Air:~/Desktop/work/open-source/workspace/pinot(12298-new-api-component-uptime✗) ]
 $ curl http://localhost:7500/uptime
Uptime: 149 seconds%
[  8:51PM ]  [ suyash@Suyashs-MacBook-Air:~/Desktop/work/open-source/workspace/pinot(12298-new-api-component-uptime✗) ]
 $ curl http://localhost:7500/start-time
Pinot server started at: 2024-02-09T04:49:17.096988Z. Pinot server status is GOOD%

Some remarks:

Had to manually instantiate HealthCheck classes because the DI framework was instantiating these classes every time an exposed endpoint was hit. Now I am creating singletons in order to preserve the start time
The commit might look large but the same type of code changes have been made across components

Closing this PR because the history looks messy. Will create a new one


Scaleout node controller to mater branch

This PR migrate the node-controller changes from PoC branch to master branch.
With the change, the node controller will talk to RP master about nodes & node - lease, while talking to RP master about the other resources.
Verification:
It is verified that this code change is backwards compatible. More verification in the scale-out clusters will be done after the other scale-out changes are migrated to master branch.

/assing @XiaoningDing

/assing @XiaoningDing

/assign @pdgetrf

/assign @pdgetrf

/assign @yb01

/assign @yb01

/assign @vinaykul

/assign @vinaykul

/lgtm

/lgtm

/approve

/approve


editor remaining background should be transparent

In desktop big size, the editor part without data should be transparent

Could you please elaborate or add a screen shot? I'm not really sure I understand.

Does not happen anymore after latest css fixes.


setting Category separator is missing in the configuartion windows

Cura 5.0
Plugin release : 2.0.2
The Settings separator is missing in the configuration Windows.

Working code to solved the problem in the SettingsCategory.qml file (QT6)
`
import QtQuick 2.2
import QtQuick.Controls 2.1
import Cura 1.5 as Cura
import UM 1.5 as UM
import ".."
Cura.CategoryButton
{
id: base;
categoryIcon: definition ? UM.Theme.getIcon(definition.icon) : ""
labelText: definition ? definition.label : ""
expanded: definition ? definition.expanded : false

signal showTooltip(string text)
signal hideTooltip()
signal contextMenuRequested()

onClicked: expanded ? settingDefinitionsModel.collapseRecursive(definition.key) : settingDefinitionsModel.expandRecursive(definition.key)

}
`

SettingCategory.txt

Ah, I appreciate the bug report and the suggested fix. I'll take a look at it and push out an update. Thank you!


Client-side visibility range for z17, z18 features

Tied in with an upcoming tile change, we need to suppress early visibility of the following features that will soon appear in z16 tiles.
WHEN (aeroway_val IN ('gate')
                   OR amenity_val IN (
                 'atm', 'bicycle_rental', 'bicycle_parking', 'bus_stop',
                 'drinking_water', 'emergency_phone',
                 'parking', 'post_box', 'telephone', 'theatre',
                 'toilets')
                   OR highway_val IN ('bus_stop', 'traffic_signals')
                   OR historic_val IN ('memorial')
                   OR leisure_val IN ('playground', 'slipway')
                   OR man_made_val IN ('mast', 'water_tower')
                   OR office_val IN ('accountant', 'administrative', 'advertising_agency',
                'architect', 'association', 'company', 'consulting', 'educational_institution',
                'employment_agency', 'estate_agent', 'financial', 'foundation', 'government',
                'insurance', 'it', 'lawyer', 'newspaper', 'ngo', 'notary', 'physician',
                'political_party', 'religion', 'research', 'tax_advisor', 'telecommunication',
                'therapist', 'travel_agent', 'yes')
                   OR shop_val IN ('bakery', 'bicycle', 'books', 'butcher', 'car', 'car_repair',
                                 'clothes', 'computer', 'convenience',
                                 'doityourself', 'dry_cleaning', 'fashion', 'florist', 'gift',
                                 'greengrocer', 'hairdresser', 'jewelry', 'mobile_phone',
                                 'optician', 'pet')
                   OR tourism_val IN ('bed_and_breakfast', 'chalet', 'guest_house',
                                    'hostel', 'hotel', 'motel')
                   OR railway_val IN ('subway_entrance')) THEN 17
             WHEN (amenity_val IN ('bench', 'waste_basket')) THEN 18

This isn't going into tiles right away on prod, probably end of month.

This also needs to filter fences in the boundaries layer out until z17 (it'll start showing up in data at z16 now).

Done via 91fc3b3951d1ce9a6e1865d17f1403ab56f46e59.
Fences aren't currently included in Eraser Map, but the changes in Skin & Bones include this change, so when it's picked up it'll be right.


Add Agents and logic to tooling

Agents + Meta prompting should be needed
https://arxiv.org/pdf/2401.12954.pdf
https://arxiv.org/pdf/2309.07864.pdf
https://arxiv.org/pdf/2301.13379.pdf

Agent loop is included, meta prompting and advanced details are needed


WIP: Azure test integration

My concerns around Azure DNS testing have been addressed, thanks @mellenburg !
🚢

@spahl @cmaloney This is ready for review
Note: https://github.com/dcos/dcos/pull/388 and https://github.com/dcos/dcos/pull/389 were pulled out of here for simplicity

@cmaloney @spahl This has been rebased on merged dependencies in master and is ready for reivew

:ship:


[Feature Request] Proportion test for varchar columns

Describe the solution you'd like
I would like to have the possibility of a proportion test for varchar type columns. As of right now, the dbt-expectations does not support this kind of test. The test would look as follows:
{% test expect_column_proportion_to_be_between(
    model,
    column_name,
    group_by='1=1',
    where_clause='1=1',
    column_condition=True,
    min_value=0,
    max_value=1
) %}

with column_count as (

    select

        {{ group_by }},
        count(case when {{ column_condition }} then {{ column_name }} end) as numerator,
        count({{ column_name }}) as denominator,
        numerator / denominator as proportion

    from {{ model }}
    where {{ where_clause }}
    group by {{ group_by }}

),

column_comparison as (

    select

        {{ group_by }},
        proportion between {{ min_value }} and {{ max_value }} as is_within_proportion_range

    from column_count

)

select *
from column_comparison
where not is_within_proportion_range

{% endtest %}

If you agree, I'd be willing to put out the PR for this.


Please invite me to the GitHub Community Organization

Name
Nitin
Discord Username (if applicable)
foo()#5609
Additional Context
Hi, I am new to open-source and found this amazing organization with a very active community.

Welcome to EddieHub 🎉🥳 @foo290 We're glad to have you in our community 😊Waiting to welcome you in discord too 😀


Expr.FieldSet mapping not preserving type

Description
Expr.FieldSet is mapped to Expression.Assign, which has the type of the assigned value as opposed to unit.
Repro steps
type ClassWithField =
    val mutable field : int
    new() = { field = 0 }

let c = new ClassWithField()
<@ c.field <- 42 @>.Evaluate()

Expected behavior
Should compile as expected
Actual behavior
Fails with
System.InvalidCastException : Unable to cast object of type 'System.Int32' to type 'Microsoft.FSharp.Core.Unit'

Similar behaviour observed in Expr.VarSet compilation


git ignore venvs

Thanks for submitting this PR. Different people use different virtual environment tools and directory names. It's probably best for them to add their particular directory to the ignore file.


[FEATURE] Extend EKS module to leverage self-managed node groups in local zones

Is your feature request related to a problem? Please describe.
Due to expected regulations in China, there is a need for ADAS customers to run workloads in AWS local zones. The EKS module will need to be extended to support node groups running in local zones, which currently must be self-managed. Ideally these node groups are auto-scaling enabled using something like karpenter.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Looking into it


Refactor setting/config handling

Problem
To handle default value of the setting, v2 API uses pointer to primitive types to represent the field is unset.
https://github.com/pion/webrtc/blob/cd3beeab248d81328ff76eeb575c6e28ce240770/settingengine.go#L18-L28
type SettingEngine struct {
	...
	timeout struct {
		ICEDisconnectedTimeout    *time.Duration

There is a setter
https://github.com/pion/webrtc/blob/cd3beeab248d81328ff76eeb575c6e28ce240770/settingengine.go#L73-L74
func (e *SettingEngine) SetICETimeouts(disconnectedTimeout, failedTimeout, keepAliveInterval time.Duration) {
	e.timeout.ICEDisconnectedTimeout = &disconnectedTimeout

, default value const
https://github.com/pion/ice/blob/3b9a98917766765015c8d34db37db50c80760ef6/agent_config.go#L18
	defaultDisconnectedTimeout = 5 * time.Second

, pointer field in subpackage config struct
https://github.com/pion/ice/blob/3b9a98917766765015c8d34db37db50c80760ef6/agent_config.go#L51-L73
type AgentConfig struct {
	...
	DisconnectedTimeout *time.Duration

and nil check.
https://github.com/pion/ice/blob/3b9a98917766765015c8d34db37db50c80760ef6/agent_config.go#L180-L184
	if config.DisconnectedTimeout == nil {
		a.disconnectedTimeout = defaultDisconnectedTimeout
	} else {
		a.disconnectedTimeout = *config.DisconnectedTimeout
	}

This structure makes default value handling complex.
Solution
One of the possible solution is using the Functional Option Pattern.
In this example, it makes fields of ice.AgentConfig struct non-pointer type and makes default value handling much simpler.
In this case, webrtc.SettingEngine will receive the list of functional options from caller and pass directly to ice.NewAgent.
Related discussions

https://github.com/pion/webrtc/issues/872

@Sean-Der @enobufs Any thoughts?

@at-wat I am in support if you think it is important! I am personally not as passionate about this part of the API, but I am all for you owning it :)
I am pretty focused on fixing PayloadType/SSRC issues with the API. This has been the main issue I have been helping users with. I have had multiple days lost debugging this :(

I think I don't have time to do this soon. This might be a v4 issue unless someone want to take this.

Closing for now.
Changing the API doesn't have any immediate benefit for the user, so pushing out for now. If anyone has data on people not being able to build things or a higher bug rate I would love to dig into this more!


CoreMQTT, MQTT_Init callback context

Is your feature request related to a problem? Please describe.
In function MQTT_Init, it would be useful to add a pointer to a callback context.
Describe the solution you would like.
New parameter called pCallbackContext in MQTT_Init
MQTTStatus_t MQTT_Init( MQTTContext_t * pContext,
const TransportInterface_t * pTransportInterface,
MQTTGetCurrentTimeFunc_t getTimeFunction,
MQTTEventCallback_t userCallback,
const MQTTFixedBuffer_t * pNetworkBuffer,
void * pCallbackContext )
that will be assigned to a new field in MQTTContext_t structure
Thank you!

Hi @AndreaPetrelli, thank you for posting your request for addition of a callback context in the MQTTContext_t structure. Please be aware of the option of creating an issue related to the coreMQTT library directly on the coreMQTT repository.
To make sure we understand the purpose of your request, would you want the callback context to be provided in invocation of the MQTTEventCallback_t type userCallback that you register with the library through the MQTT_Init API?
We will add your feature request to our internal queue, and consider it for adding it in a future release of the coreMQTT
library.

Hi @AndreaPetrelli,
We would also like to know that if there was any specific usecase you were trying to address and found this as a limitation. Please let us know.
Also please let us know if you have any follow up questions.
Thanks

Hi,
i'm wrapping the library in a c++ class.
I would like to pass the instance of the class in pCallbackContext so i can recover in the MQTTEventCallback_t callback through the MQTTContext_t struct.
Thanks

@AndreaPetrelli,
Thanks for the response. So as to understand a bit more about the high level usecase, are you using multiple instances of the class in your application?
Thanks

Not currently
Thanks

@AndreaPetrelli ,
We are closing this issue as we are internally tracking your proposal as a feature request. Please open a new issue if you have any follow up questions.

@AndreaPetrelli ,
We are closing this issue as we are internally tracking your proposal as a feature request. Please open a new issue if you have any follow up questions.


date_updated is not bumped in biblio frontend when the metadata changes

e.g. biblio frontend enriches contributor data, but date_updated remains the value received from librecat
consequence: record doesn't appear in oai changesets
possible solution: the last fix before indexing compares the record with the one in the index and bumps date_updated artificially

ok fixed in biblio frontend


Draft: Add support for GEOSEARCH and GEOSEARCHSTORE

Closes #1511
[WIP] Currently completed basic command parsing. Now working on BYBOX implementations.

[WIP] Completed the BYBOX implementation.
TODO

[ ] Deprecate old code which uses RADIUS-specific functions, instead use by shape alternatives and verify that tests don't break
[ ] Perform a lint.
[ ] Write tests for GeoSearch

[WIP] Bug fixed in the radius section of RADIUS searches.

[ ] Work on GEOSEARCH BYBOX tests
[ ] Find the bug and check if expected implementation work similar to redis search.

@git-hulk @PragmaTwice @infdahai , this MR is ready for review, thanks for your patience :D

@git-hulk @PragmaTwice @infdahai , this MR is ready for review, thanks for your patience :D

Congrats! It seems you need firstly resolve the conflict in geo_test.go.

Sorry for pending so long, will review in a few days.

@uds5501 Could you please run the ./x.py format command to format the code with clang?

@uds5501 PR generally looks good to me, can help to format like what @torwig mentioned.

@git-hulk / @torwig will update this today.

Apologies for the delay, @git-hulk @torwig could you please take a look now?

Rebased branch, @git-hulk / @torwig / @PragmaTwice please take a look whenever you get time, thank you!

@torwig thanks for taking out time to review, I have made changes and replied to a couple of comments, kindly check.

@torwig updated the MR with suggestions, please check.

Thanks all, merging...

@uds5501 Thanks for your support again!


Fix links in docs/gettingstarted.md

docs/gettingstarted.md contains relative links to docs/design.md (lines 22 and 27) that incorrectly translate to "https://github.com/rancher/helm-project-operator/blob/main/docs/docs/design.md" in a web browser. A person clicking either of these links will be taken to a 404 error screen. I changed these links to absolute paths (https://github.com/rancher/helm-project-operator/blob/main/docs/design.md) to correct this issue.

@VltraHeaven thank you for your contribution! There only issue I see is that you've used absolute URLs instead of relative URLs.
I'm closing this PR in favor of https://github.com/rancher/helm-project-operator/pull/25, where I will absorb your fixes and make that change.

See https://github.com/rancher/helm-project-operator/pull/25/commits/fd348362fe5c3ea6a28fef97d542f517fc02d000


The tittle of downloaded videos is wrong

Describe the bug
When I download a movie it names the file with numbers and quality not the movie or episode name
To Reproduce
Steps to reproduce the behavior:
1.Go to any series any episode
2.copy the url
3.put it in the download manager
4.the name isn't convenient
Expected behavior
I expect to see the movie or series name and number of episode
Screenshots

Smartphone (please complete the following information):
It's not related to a specific phone
Additional context
It would be more convenient if you replaced the button copy with share button to be more easy to pass to a download manager

Nothing I can do about this, I don't own or operate the servers which contain the m3u8 files.

Couldn't you add a way to download it with it's title?
When I get the download link from the site and but it in a download manager it gives me the right name, what's the difference here

Your download manager automatically detects the name of the file, what you are trying to download currently is not an mp4 file, it's an m3u8 file basically it has the movie (or episode) you are trying to download in multiple segments, your download manager downloads all these segments and then combine them all into one mp4 file. Downloading such files in the app will be slow, clunky and complex that's why I removed the download button from fasel content. I am working on scraping cimanow which will provide an overall better downloading experience.

I think wecima a good option for downloads.

Wecima lists episodes individually which makes it hard to scrape and organise.


Added api token authentication

I added the ability to authenticate via proxmox' api token.

Thank you :+1:

Thank you :+1:


Broken Link to Documentation

The link for "best practices for tag management" is broken.

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

ID: 45b4a791-aff1-3eba-d55e-111a05dd42ef
Version Independent ID: a5ced6b9-67e5-899f-40b9-5d66e73999ea
Content: Manage tag governance - Azure Policy
Content Source: articles/governance/policy/tutorials/govern-tags.md
Service: azure-policy
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

#assign:DCtheGeek

@Smarker Thanks for spotting this and letting me know. I'll get this fixed right now!
@MicrosoftDocs/azure-cxp-triage Please label 'doc-bug' and #in-progress


Fix the layer tests on node

Fix the issue that headless GL context is not created properly on node

@ibgreen yeah... you are right. It's not needed. The real problem is npm run test-dist runs 'node-dist.js` and it doesn't include './setup-gl.js'

Just tested locally after rebasing on master, looks good. Pushed the rebase up. Merge at will


show flutter app route

Show the route of the current flutter app in the debugger (fix https://github.com/dart-atom/dartlang/issues/954).
@danrubel

LGTM


[SPARK-17767][SQL] Support user-provided ExternalCatalog

What changes were proposed in this pull request?
Currently, Spark supports ExternalCatalog, but the usage is limited to HiveExternalCatalog by using private string variables for class name holder. This PR aims to parameterize those variables as SQL configuration and supports user-provided ExternalCatalog and SessionState classes.
The following is an intended use case and a snippet of test case in this PR.
val session = SparkSession.builder()
  .master("local")
  .config("spark.sql.externalCatalog", "org.apache.spark.sql.MyExternalCatalog")
  .config("spark.sql.externalSessionState", "org.apache.spark.sql.MySessionState")
  .enableProvidedCatalog()
  .getOrCreate()

assert(session.sharedState.externalCatalog.isInstanceOf[MyExternalCatalog])
assert(session.sessionState.isInstanceOf[MySessionState])

How was this patch tested?
Pass the Jenkins test with a new test case.

Test build #66280 has started for PR 15336 at commit d2bf71c.

Test build #66282 has started for PR 15336 at commit d0a1778.

Test build #66280 has finished for PR 15336 at commit d2bf71c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66280/
Test PASSed.

Merged build finished. Test PASSed.

Test build #66282 has finished for PR 15336 at commit d0a1778.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/66282/
Test PASSed.

The issue is closed as 'Later'.


Adding Sierra College in Rocklin, CA

https://www.sierracollege.edu/
https://www.sierracollege.edu/academics/interest-areas/science-technology-engineering-math/computer-science/ https://catalog.sierracollege.edu/courses/csci/

@Kommander28 I am sorry, the domain sierracollege.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Pack at https://education.github.com/discount_requests/application. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Are color previews supposed to work?

I got a bit disappointed when the little squares showing the color preview didn't work.
I'm not sure if that's possible with plugins but it would be nice to have them.

I'm guessing that's IntelliSense for TailwindCSS? I'm not using GUI editors a lot, so I have not noticed this until now, sorry about that.
My guess would be, that the Preview has no idea which colour to show, since it's dependent on the parent classes like mocha or latte.

Just a quick update on this, I asked around the Discord, and color previews are not working at the moment, so it's not an issue on your end.
I reached out on the Tailwind Discord to get some additional input on how I could fix this. 🙂

Oh, okay!
I was gonna do some digging around and see if I can find something. Maybe the plugin requires some specific configuration for the IntelliSense to recognize them?

I would be much obliged if you share any findings, hoping to get this fixed, if possible.

So after reaching out on the Tailwind Discord, I have learned about fallback colours in TailwindCSS.
This Tailwind Play demonstrates the feature: colours with fallbacks get colour previews, while those which solely depend on CSS variables do not.
I guess the question is, if showing the colour of a single flavour, e.g. mocha, is better than not showing any sort of colour preview at all.

In my opinion, it would be better to show mocha colors than not showing any. Although I see how that can be frustrating for some people if they're using another variant as default.

I've played around with this quite a bit over the last days, sadly without making any headway at all.
Here are 4 approaches I've tried, none of them work:

The linked example from the Tailwind Discord (uses hex instead of rgba)
Explicitly adding it to the variable
Rewriting withOpacity to include a fallback variable
Using the new 3.1 Syntax

I'd have preferred to include a fix for this with the next package version, but I'll create a release to fix #3 now.
I'm unsure if we could solve this issue at the moment.


Unsupported notice

If this is library is no longer supported, which it looks like it mightn't be, a notice on the README would be useful. Especially considering this library is recommended by https://github.com/django-money/django-money which is currently supported.
For others reading, issues I ran into trying to get this to work this afternoon in Django 1.10:

Importlib deprecation error in Django >=1.9 as per #11, #16 – I hacked this fixed in my install to see if the library otherwise worked
Migrations aren't included or explained, I had to generate these then copy them into my project out of site-packages
Update rates task doesn't appear to register – I've included the app in INSTALLED_APPS and even chucked the import in, but nada, doesn't seem to show up

I am going to look for alternatives at this point as I'm getting all of the smells that I shouldn't be using this.

Note I got further with https://github.com/panosl/django-currencies – with some minor fixes for Python3 (that may well be merged by the time anyone reads this) – it's relatively trivial to get a table for of currencies with symbols and rates.

@stevelacey We are starting to work at this project again, if you check out master's branch, django-1.10 compatibility issues should be solved. We'll release a new version once we fix all the issues we have pending.

@Psykopear Your message is promising, but it's almost a year old.  Would be great to get a release as the latest is from 2014.

It seems django-money now supports rates directly. I couldn't use this as we are using a newer version of django, and now I wrote an small exchange in requests. docs


[ServiceFabric] Update SF app docs. only support for arm deployed resources

Description

Update the documentation for apps, app types, and services calling out explicitly that the support is only for ARM deployed resources.
Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

ServiceFabric

Network error, retry.

/azp run


HV-1505 Create ConstraintAnnotationDescriptor for typed access to groups() etc.

https://hibernate.atlassian.net/browse/HV-1505

Build triggered. sha1 is merged.

Build started sha1 is merged.

Build finished.

That's something new from Jenkins :smiley:

@marko-bekhta yeah I don't see that as an improvement but we haven't figured out yet where it comes from :)

rebased and applied some changes, let me know what you think :)

Build finished.

@marko-bekhta Looks good. Added a couple of minor comments. I asked a question to Gunnar about the use of the SM, maybe it's not necessary.
Note that if we need it, we would need something like what we do in: https://github.com/hibernate/hibernate-validator/blob/51ca465d2ac88aaf76abc1243a957c71034eb3f1/engine/src/main/java/org/hibernate/validator/internal/metadata/aggregated/FieldCascadable.java#L96 to check for the permission.
We also could probably make the privileged action more generic and used to get a MethodHandle in general, same as what we have with https://github.com/hibernate/hibernate-validator/blob/51ca465d2ac88aaf76abc1243a957c71034eb3f1/engine/src/main/java/org/hibernate/validator/internal/util/privilegedactions/GetDeclaredMethod.java instead of having a very specific privileged action.
But let's wait for Gunnar's feedback before making a move here.
HTH. (I will be mostly off tomorrow, public Holiday here in France)

Build finished.

Build finished.

I've applied the changes and force-pushed the edited commits. I've added a SM check as it was a quick change. As for the action ... I thought about it first but then see how I initialized the method handle in static block so it would not be needed to do this each time the action is called (I thought that such approach should save some time during execution). Waiting for the answer now :)

@marko-bekhta rebased and added 2 more commits.
I discussed the security topic with Gunnar and what I did in my last commit should be safe.

@marko-bekhta waiting for CI and your feedback.
I think it's ready to be merged now.

@gsmet looks good to me :) sorry took me a while to reply

Jenkins, retest this please

Looks like we have an issue with our CI. I'll merge it as soon as I can get a build to finish!

Jenkins, retest this please

And merged, thanks @marko-bekhta !


12.4.0 New Arch destroyWebView causes app to crash

Bug description:
Using RN 0.72.1 New Arch, I am getting a crash when leaving the webview.... it is calling
destroyWebView() and crashing.
To Reproduce:
Open WebView and close it.
#ifdef RCT_NEW_ARCH_ENABLED

(void)destroyWebView;
#endif

might be causing it.
Expected behavior:
No crash
Screenshots/Videos:
N/A
Environment:

OS: IOS
OS version: 16.0
react-native version: 0.72.1
react-native-webview version: 12.4.0

Please share a sample project/snack that repros the issue. I've just been actively working on testing/fixing iOS New Arch issues and didn't see what you're describing.

When using a modal, I am closing the modal and then the error I see it in WebView destroyWebView.
I think to repo it you need a modal wrapping the webview. I did see others complaining about react-native-reanimated and modals, but I don't get error on that.
import CookieManager from '@react-native-cookies/cookies';
import { useFocusEffect } from '@react-navigation/native';
import jwtDecode from 'jwt-decode';
import { useCallback, useMemo, useRef, useState } from 'react';
import { Linking, StyleSheet, TouchableOpacity, useWindowDimensions, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import Icon from 'react-native-vector-icons/MaterialIcons';
import { WebView, WebViewNavigation } from 'react-native-webview';
import { TokenData } from 'types';
import useAsyncEffect from 'use-async-effect';

import { getAuthInfo, setAuthInfo } from '~api/authInfo';
import { getGatewayConfiguration } from '~api/configuration-api';
import { gatewayPostNoBearer } from '~api/gateway-api';
import { genEnv } from '~config/genEnv';
import { log } from '~logging.config';
import { logCustomEvent } from '~utils/common';

import Theme from '../styles/Theme';
import LoadingSpinner from './LoadingSpinner';
import ModalHeaderWebview from './member/modal/ModalHeaderWebview';

const { sourceUrl, cookieDomain } = genEnv();

const componentStyles = (paddingBottom: number) =>
  StyleSheet.create({
    footer: {
      paddingHorizontal: 4,
      paddingBottom,
      flexDirection: 'row',
      justifyContent: 'space-around',
      backgroundColor: Theme.colors.webviewBackground,
    },
  });

const formatURL = (endpoint: string) => {
  let newUrl: string | string[] = endpoint;
  if (endpoint.includes('membercommunity')) {
    const updateUrl = endpoint.split('membercommunity');
    if (updateUrl.length > 0) {
      newUrl = sourceUrl + updateUrl[updateUrl.length - 1];
    }
  }
  return newUrl;
};

const getTokenExp = (token: string) => {
  const decode: { exp: number } = jwtDecode(token);
  return new Date(decode.exp * 1000 + 60 * 60 * 1000).toISOString();
};

type WebviewModalPropsTypes = 'web' | 'thesource' | 'pdf' | 'directsource';

// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
interface WebviewModalProps {
  route: {
    params: {
      endpoint: string;
      type: WebviewModalPropsTypes;
      customEvent?: string;
      title?: string;
    };
  };
}

const fetchConfig = async () => {
  const res = await getGatewayConfiguration();
  return res && res.data ? res.data.communityCookie : null;
};

const setCookieManager = async (itoken: string, url: string) => {
  try {
    if (url.startsWith('https://community')) {
      const communityCookie = await fetchConfig();
      if (communityCookie) {
        await CookieManager.clearAll();
        await CookieManager.set(url, {
          name: communityCookie.name,
          value: communityCookie.content,
          domain: '..domain.com',
          path: '/',
          secure: true,
          expires: getTokenExp(itoken),
        });
      }
    } else {
      await CookieManager.clearAll();
      const config = {
        name: 'newCookie',
        value: itoken,
        domain: cookieDomain,
        path: '/',
        secure: true,
        expires: getTokenExp(itoken),
      };
      log.info(config, url);
      await CookieManager.set(url, config);
    }
  } catch (e) {
    log.error('setCookieManager', e);
  }
};

function isValidHttpUrl(value: string) {
  let url;

  try {
    url = new URL(value);
  } catch (_) {
    return false;
  }

  return url.protocol === 'http:' || url.protocol === 'https:';
}

const WebviewModal = (props: WebviewModalProps): JSX.Element => {
  const { route } = props;
  const { type, endpoint, customEvent, title } = route.params;
  const skipTitle = !!(type === 'directsource');
  const iType = type === 'thesource' || type === 'directsource' ? 'source' : type;
  const iCustomEvent = customEvent;
  const [hasToken, setHasToken] = useState<boolean>(false);
  const [isLoading, setLoading] = useState<boolean>(false);
  const webViewRef = useRef<WebView>(null);
  const [canGoBack, setCanGoBack] = useState<boolean>(false);
  // const [keyBoardDidShow, setKeyBoardDidShow] = useState<boolean>(false);
  const [canGoForward, setCanGoForward] = useState<boolean>(false);
  let rUrl = formatURL(endpoint || sourceUrl);
  if (!rUrl || rUrl.length === 0) {
    log.error(`rUrl cannot be empty as URL for WebviewModal ${type}`);
    rUrl = sourceUrl;
  }
  if (!isValidHttpUrl(rUrl)) {
    log.error(`rUrl not valid as URL for WebviewModal ${type} ${rUrl}`);
  }
  const [currentUrl, setCurrentUrl] = useState<string>(rUrl);

  const { width } = useWindowDimensions();
  const { bottom } = useSafeAreaInsets();
  const bottomIndent = skipTitle ? 0 : bottom;
  const styles = componentStyles(bottomIndent);

  const headerTitle = (): string => {
    if (title && title.length > 0) {
      return title;
    }
    return iType === 'source' ? 'The Source' : `${rUrl}`;
  };

  const render = () => {
    let value = false;
    if (hasToken) {
      value = true;
    }
    return value;
  };

  useAsyncEffect(async () => {
    log.debug('Use Effect Run WebviewModal');
    try {
      if (!hasToken) {
        const auth = getAuthInfo();
        if (auth !== null) {
          const response = await gatewayPostNoBearer<TokenData>('/user/token', {
            ...getAuthInfo(),
            grant: 1,
          });
          if (response.status && response.status === 200 && response.data) {
            const newToken = response.data;
            setAuthInfo(newToken);
            await setCookieManager(newToken.token, rUrl);
            setHasToken(true);
          } else {
            log.info('WebviewModal did not setAuthInfo');
          }
        }
      }
    } catch (e) {
      log.error('WebvieModal Unable to retrieve Token', e);
    }
  }, [rUrl, iType, type, hasToken]);

  useFocusEffect(
    useCallback(() => {
      log.debug('useFocusEffect Run');
      if (iCustomEvent) {
        logCustomEvent(iCustomEvent, {
          type: type || '',
          endpoint: endpoint || '',
          customEvent: customEvent || '',
          title: title || '',
          rUrl: rUrl || '',
          currentUrl: currentUrl || '',
          iType: iType || '',
          hasToken,
        });
      }
      // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [iCustomEvent, endpoint])
  );

  const goBack = () => {
    const enableGoBack = webViewRef && canGoBack && webViewRef.current;
    if (enableGoBack) {
      webViewRef.current?.goBack();
    }
  };

  const goForward = () => {
    const enableGoForward = webViewRef && canGoForward && webViewRef.current;
    if (enableGoForward) {
      webViewRef.current?.goForward();
    }
  };

  const reload = () => {
    const enableReload = webViewRef && webViewRef.current;
    if (enableReload) {
      webViewRef.current?.reload();
    }
  };

  const clickOpenBrowser = async () => {
    try {
      const canOpen = await Linking.canOpenURL(currentUrl);
      if (canOpen) {
        await Linking.openURL(currentUrl);
      }
    } catch (err) {
      log.error(`clickOpenBrowser not valid url ${type} ${currentUrl}`);
    }
  };

  const Footer = () =>
    useMemo(
      () => (
        <View style={styles.footer}>
          <TouchableOpacity onPress={goBack} disabled={!canGoBack}>
            <Icon
              name="chevron-left"
              style={{
                color: Theme.colors.dimGrey,
                fontSize: 40,
              }}
            />
          </TouchableOpacity>
          <TouchableOpacity onPress={goForward} disabled={!canGoForward}>
            <Icon
              name="chevron-right"
              style={{
                color: Theme.colors.dimGrey,
                fontSize: 40,
              }}
            />
          </TouchableOpacity>
          <LoadingSpinner visible={isLoading} centered={false} />
          <TouchableOpacity onPress={reload}>
            <Icon
              name="refresh"
              style={{
                color: Theme.colors.dimGrey,
                fontSize: 40,
              }}
            />
          </TouchableOpacity>
          <TouchableOpacity onPress={clickOpenBrowser}>
            <Icon
              name="open-in-browser"
              style={{
                color: Theme.colors.dimGrey,
                fontSize: 40,
              }}
            />
          </TouchableOpacity>
        </View>
      ),
      // eslint-disable-next-line react-hooks/exhaustive-deps
      [isLoading, currentUrl, canGoBack, canGoForward]
    );

  const handleWebViewNavigationStateChange = (newNavState: WebViewNavigation) => {
    setCanGoBack(newNavState.canGoBack);
    setCanGoForward(newNavState.canGoForward);
    setCurrentUrl(newNavState.url || 'https://thesource.exclusiveresorts.com');
  };

  // do not move the activity indicator out of the box - since it will mess up popups
  return (
    <View
      style={{
        flex: 1,
        marginTop: 0,
        justifyContent: 'space-between',
      }}
    >
      {!skipTitle && <ModalHeaderWebview type={iType} title={headerTitle()} />}
      {render() ? (
        <View style={{ flex: 1 }}>
          <WebView
            nestedScrollEnabled
            source={{ uri: rUrl || 'https://exclusiveresorts.com/' }}
            key={`${rUrl}${new Date().getHours()}`}
            javaScriptEnabled
            onMessage={() => {}}
            sharedCookiesEnabled
            pullToRefreshEnabled
            allowsInlineMediaPlayback
            thirdPartyCookiesEnabled
            ref={webViewRef}
            style={{
              flex: 1,
              width,
            }}
            mixedContentMode="compatibility"
            onNavigationStateChange={handleWebViewNavigationStateChange}
            onLoadStart={() => {
              setLoading(true);
            }}
            onLoadEnd={() => {
              setLoading(false);
            }}
          />
        </View>
      ) : null}
      <Footer />
    </View>
  );
};

export default WebviewModal;

OK If I remove the destroyWebView I don't have the issue anymore!!
// Reproduce the idea from here: https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm#L142
- (void)prepareForRecycle {
    [super prepareForRecycle];
    // [_view destroyWebView];
}

OK this works better and cleans up memory:
// Reproduce the idea from here: https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm#L142
- (void)prepareForRecycle {
    [super prepareForRecycle];
    [_view removeFromSuperview];
}

I am unsure why we have [_view destroyWebView]; when it does not work. I am using use_frameworks!, and new Arch. I am pretty sure everyone will have the same issue.

Actually putting in [_view removeFromSuperview]; makes the next time I call it not work. So it is better to not put it in.

OK see my patch: https://github.com/react-native-webview/react-native-webview/issues/3044

PR: https://github.com/react-native-webview/react-native-webview/pull/3045

Still looking for a repro. That code snippet is not sufficient.
It's likely that some cleanup is still necessary in prepareForRecyle and more investigation would be required to determine exactly which part of destroyWebView is problematic.

It literally cannot find the property ! When I moved it to [_view removeFromSuperview]; it find the function, but clears too much and the next call to WebView does not load.

++

OK If I remove the destroyWebView I don't have the issue anymore!!
// Reproduce the idea from here: https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm#L142
- (void)prepareForRecycle {
    [super prepareForRecycle];
    // [_view destroyWebView];
}

from where ?

same issue is happening with me

OK If I remove the destroyWebView I don't have the issue anymore!!
// Reproduce the idea from here: https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm#L142
- (void)prepareForRecycle {
    [super prepareForRecycle];
    // [_view destroyWebView];
}

from where ?

See my PR/FORK or Patch.
node_modules/react-native-webview/apple/RNCWebView.mm

It literally cannot find the method !

Curious. Perhaps a debugger would reveal if _view is not what's expected (i.e. is it not actually pointing to an instance of RNCWebViewImpl?)...? Does having it call removeFromSuperview actually invoke the relevant function in RNCWebViewImpl (which the #ifdef should have turned into destroyWebView)?

Yep calling removeFromSuperview in the Xcode debugger gets to the function properly. But calling destroyWebView just fails.
You would think that removeFromSuperview would work. But on my next call to WebView it has some bad properties from the removeFromSuperview and it does not actual help calling this. Not sure what part of the code is messing with it though.

Also the #ifdef RCT_NEW_ARCH_ENABLED is still defined, just set to 0.
Shouldn't it just be #if RCT_NEW_ARCH_ENABLED like we have in other places?

Yeah
-#ifdef RCT_NEW_ARCH_ENABLED
+#if RCT_NEW_ARCH_ENABLED

and
-#ifndef RCT_NEW_ARCH_ENABLED
+#if !RCT_NEW_ARCH_ENABLED

The error I get when adding destroyWebView:
Thread 1: "-[RNCWebViewImpl destroyWebView]: unrecognized selector sent to instance 0x7fbf7991be00"

I also have a screen shot, still cannot call destroyWebView.

I also check to see if both are there at that breakpoint:

Shouldn't it just be #if RCT_NEW_ARCH_ENABLED like we have in other places?

What other places? I don't see any instances of that.
However...

the #ifdef RCT_NEW_ARCH_ENABLED is still defined, just set to 0

Perhaps that is indeed related! It's 1 or undefined for me. If you're setting it to 0, it sounds like your intent is not to use the new architecture, but the problem is that you're still getting new architecture code? I'm actually surprised it even compiled in that case...

why do we need to call it destroyWebView?

How is the name relevant? I didn't do the new arch refactor, but I suspect the intent of renaming was to stop the cleanup from happening as part of removeFromSuperview.
In your screenshot of the _view in the debugger, you have the RCTView expanded... if you collapse that, do the fields look like a valid RNCWebViewImpl instance?

Can you change the #ifdef to #if since many people are using RCT_NEW_ARCH_ENABLED=0 and RCT_NEW_ARCH_ENABLED=1 ?
Then I can retest.

I agree that we can just comment use
// Reproduce the idea from here: https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryComponentView.mm#L142
- (void)prepareForRecycle {
    [super prepareForRecycle];
}

And everything works well with USE_FRAMEWORKS.
cd ios && NO_FLIPPER=1 USE_FRAMEWORKS=static RCT_NEW_ARCH_ENABLED=1 pod install --repo-update && cd ..
yarn ios

Maybe we just go with this interim and later look for long term solution ?

many people are using RCT_NEW_ARCH_ENABLED=0

Do you know why? Is that recommended somewhere?
I see React Native's own code also using #ifdef RCT_NEW_ARCH_ENABLED, so it seems like setting it to 0 wasn't intended to be a supported scenario...

Good point, I was looking at a few other packages and they do it that way. #if and #if ! but I will remove the definition in my pod setup.

Shouldn't it just be #if RCT_NEW_ARCH_ENABLED like we have in other places?

What other places? I don't see any instances of that.
However...

the #ifdef RCT_NEW_ARCH_ENABLED is still defined, just set to 0

Perhaps that is indeed related! It's 1 or undefined for me. If you're setting it to 0, it sounds like your intent is not to use the new architecture, but the problem is that you're still getting new architecture code? I'm actually surprised it even compiled in that case...

why do we need to call it destroyWebView?

How is the name relevant? I didn't do the new arch refactor, but I suspect the intent of renaming was to stop the cleanup from happening as part of removeFromSuperview.
In your screenshot of the _view in the debugger, you have the RCTView expanded... if you collapse that, do the fields look like a valid RNCWebViewImpl instance?

Yep! Looks valid to me, but still does not find [_view destroyWebView]; I am trying to see why.


Add SQL schema to introspection

Description
All subgraphs introspection should have the sql schema injected for consistency, even if the node doesn't have SQL enabled.
Are you aware of any blockers that must be resolved before implementing this feature? If so, which? Link to any relevant GitHub issues.
No response
Some information to help us out

[ ] Tick this box if you plan on implementing this feature yourself.
[X] I have searched the issue tracker to make sure this issue is not a duplicate.

This seems to be covered by PR #10


NullPointerException in ObjectOpenHashSet$SetIterator.next

Version 7.2.0 from Maven Central:
Exception in thread "main" java.lang.NullPointerException
        at it.unimi.dsi.fastutil.objects.ObjectOpenHashSet$SetIterator.next(ObjectOpenHashSet.java:518)

That's presumably the pointer to 'wrapped', which is null by default.
It's a puzzle, my process runs for a few hours before producing this error. I don't think we ever remove from the set. We certainly never remove from the iterator. Our calling code for this iterator is just a for (Object o : set)

On 15 Jun 2017, at 21:12, Shevek<EMAIL_ADDRESS>wrote:
Version 7.2.0 from Maven Central:
Exception in thread "main" java.lang.NullPointerException
at it.unimi.dsi.fastutil.objects.ObjectOpenHashSet$SetIterator.next(ObjectOpenHashSet.java:518)
That's presumably the pointer to 'wrapped', which is null by default.
It's a puzzle, my process runs for a few hours before producing this error. I don't think we ever remove from the set. We certainly never remove from the iterator. Our calling code for this iterator is just a for (Object o : set)

Looking at it, looks like you are removing elements from the set after creating the iterator (not using the Iterator.remove()). I'd suggest adding a throw new RuntimeException() in the remove() method. What is happening is that scanning the backing array next() can't find size() elements, so it goes to the wrapped list.
Probably I could add a message to that effect ("you probably modified this set" etc.)
Ciao,
				seba

I would agree with you except I never remove any elements from any of these sets. I have a weak hypothesis that while I add to these sets on many threads, using a lock, I did not raise and lower that lock one last time on the main thread before consuming the set in single-threaded mode, but ... the threads are on an ExecutorService, and that creates a happen-before relationship with the Future.get() on the main thread.

Well of course adding can be a problem, too, if it causes rehashing.
Sent from my Android device with K-9 Mail. Please excuse my brevity.

I suspect this was caused by a lack of a happen-before relationship between our thread-pool and following single-threaded code. Thank you for the help. Closing, and will notify if we ever see it again.


Documentation update for "scripts":{} in package.json with version 0.0.43

Note: for support questions, please use one of these channels:
https://forum.ionicframework.com/
http://ionicworldwide.herokuapp.com/
Short description of the problem:
readme.md says scripts section of package.json should read:
"scripts": {
"build": "ionic-app-scripts build",
"watch": "ionic-app-scripts watch"
},
What behavior are you expecting?
ionic blog post on app-scripts release 0.0.43 states scripts should read:
"scripts" : {
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
}
(current scripts version 0.0.43 working with this.)
Steps to reproduce:

read driftyco/ionic-app-scripts readme.md

insert any relevant code between the above and below backticks

Which @ionic/app-scripts version are you using?
0.0.43
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.7
Ionic App Lib Version: 2.1.4
Ionic App Scripts Version: 0.0.43
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 3.8
Node Version: v6.8.0
Xcode version: Not installed
{
"name": "ionic-hello-world",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "2.1.1",
"@angular/compiler": "2.1.1",
"@angular/compiler-cli": "2.1.1",
"@angular/core": "2.1.1",
"@angular/forms": "2.1.1",
"@angular/http": "2.1.1",
"@angular/platform-browser": "2.1.1",
"@angular/platform-browser-dynamic": "2.1.1",
"@angular/platform-server": "2.1.1",
"@ionic/storage": "1.1.6",
"@types/underscore": "^1.7.33",
"angular2-swing": "^0.10.0",
"firebase": "^3.6.0",
"ionic-angular": "2.0.0-rc.2",
"ionic-native": "2.2.3",
"ionicons": "3.0.0",
"rxjs": "5.0.0-beta.12",
"underscore": "^1.8.3",
"zone.js": "0.6.21"
},
"devDependencies": {
"@ionic/app-scripts": "0.0.43",
"typescript": "2.0.6"
},
"description": "rbf-shop-ionic: An Ionic project",
"cordovaPlugins": [
"cordova-plugin-device",
"cordova-plugin-console",
"cordova-plugin-whitelist",
"cordova-plugin-splashscreen",
"cordova-plugin-statusbar",
"ionic-plugin-keyboard"
],
"cordovaPlatforms": []
}

I opened pull request https://github.com/driftyco/ionic-app-scripts/pull/382 for this

Hello all! I am going to close this issue for now as the above PR was merged to fix this. Thanks!


Initial IO App guide.

resolved #845
DO NOT MERGE.
Ready for initial review!

docs/guide/input-output-app/img/debugging-with-notes.png note:
Maybe have a uniform style for bubbles @amitafr could help design one.

@rajinder-yadav looks good 👍

@rajinder-yadav I have reviewed this and I think it's great. The only thing I that stood out was the low quality text boxes in the screenshots :)
I think later after we add more sections we can identify some more style (wording, etc) things that can be improved across all sections, but for now I think this is really clear and good.

Closing, this branch is now a dup for the augury-documentation repo, feedback has been incorporated.


RS485

Thanks for the video and example code!
In the manual DFRobot mention RS485 support. Is this something you've looked at or figured out?

Sorry can't really help, haven't used RS485 for anything yet.


Question about Patch Guard hooking

Hey,
I've been going through the project since i'm learning about vmx and how to use it (as well as EPT)
and I saw the technique you used in order to make sure patch guard won't bsod the pc when he find the hooks.
However since I saw that ept rule is to act similar to page table just with vmm I was wondering if the protection was working on passing patch guard because it's accessing the virtual addresses of the functions.
Is this mean that if patch guard would do a direct access to the physical memory than it will see the hooks right?
I'm trying to think if there is a way to block another kernel code from messing with the pages, so for example if another kernel driver will scan our driver and find the addresses is that mean he can direct access the memory and find the hooks? is there a way to block this kind of behavior?
Thank you for your help!

Hey,
Thank you for the explanation I think I understand it, one thing I didn't understand is the thing about guest PA to host PA, since this hypervisor is not creating any underlying os the guest PA suppose to be the same as the host PA right?
If the patchguard requesting for example the PA of a VA using for example the function MmGetPhysicalAddress he will get the physical address of what we returning using the EPT (correct me if i'm wrong).
However what about DMA, for example if another software scan our memory and find the real physical memory (running in the kernel of course) she can just do direct memory access and write to it right?
so for example she can change our vmcs for example (if i'm correct).
You really helping me understand this all subject so thank you.

You are right. HyperPlatfrom simply maps a guest PA to the same host PA and do not prevent PatchGuard from detecting kernel modification. DdiMon is an exception, as it can map a guest PA to a different host PA to fake memory contents.
On DMA, you are also right. Even without DMA, one can scan all non-paged pool for EPT entry-looking patterns or any critical data structure used by the VMM and modify it because nothing protects those regions from being accessed from a guest.

Thank you for your answers,
So if i'm wanting to write a hypervisor that runs from the kernel as same as this hypervisor works (without interfering the entire os) is it possible to make it protect itself? I've heard about vt-d which might be able to help the DMA part of protection but what about other hypervisors? what if another hypervisor start running he can interfer with ours?
Is it even possible to run a hypervisor on the host in this way and make sure he still control the system and itself?

You are welcome.
I believe you can write such hypervisor. Off the top of my head, what you would need to do are avoiding execution of any code but hypervisor itself (eg, zero use of API) in VMX-root operation mode, and blocking any access to any physical pages used for hypervisor with EPT. There should be more, and that is going to be challenging to do it proper. I am unfamiliar with VT-d and DMA but believe that VT-d is a solution to issues with DMA.
HyperPlatform is probably not a right place to start with for providing isolation of hypervisor since it is not designed to be/become so. I know Bareflank, other thin-hypervisor that runs like HyperPlatform, explains itself as "Isolated VMM." While I do not know exactly what it means, I would definitely recommend you to look into the project if you have not done yet. You can also ask the authors if Bareflank has a level of isolation you wish; they are very prompt.

Forgot to answer the last two question.
If your hypervisor is loaded first, you are able to notify that other program is going to install hypervisor through VM-exit due to VMX instructions and to block its execution. This will prevent anyone else from installing other hypervisor. As for the last question, yes, I guess. Assuming a system is on trustworthy state at the time hypervisor is installed, then I would be possible to achieve it. That is just my impression though.

Alright really interested

Alright, Interesting stuff I'm going to learn this subject a lot more and I will look into those other projects as well.
I see that really a lot can achieved from this subject and there are so many elements in it.
Thank you for all your help!

You are very welcome. Thank you for your sharp questions. Indeed, this subject is full of learning and potential. I am glad to help you get in to it!


Adds slf4j-api as a transitive runtime dependency of the OCI shaded f…

…ull jar in helidon-integrations-oci-sdk-cdi
Signed-off-by: Laird Nelson<EMAIL_ADDRESS>

Because the OCI shaded full jar must be installed into the user's local Maven repository (cache) by hand, no transitive dependency information is available for it.  The OCI shaded full jar depends on slf4j-api so we need to make sure there's a runtime-scoped dependency for it.


fix(jest-resolve): don't confuse directories with files

Summary
Fixes #8910
This might be an inherited bug from resolve: https://github.com/browserify/resolve/blob/bd3f55188f0f3d1dac1e29c2f9a0eaa0878d4bd0/lib/sync.js#L69 which this code came from in #4315.
EDIT: No, seems like resolve works correctly

Test plan
Test added

Codecov Report

Merging #8912 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #8912      +/-   ##
==========================================
+ Coverage   64.24%   64.25%   +<.01%
==========================================
  Files         275      275
  Lines       11658    11660       +2
  Branches     2846     2847       +1
==========================================
+ Hits         7490     7492       +2
  Misses       3544     3544
  Partials      624      624

Impacted Files
Coverage Δ

packages/jest-resolve/src/defaultResolver.ts
68.91% <100%> (+0.86%)
:arrow_up:

Continue to review full report at Codecov.

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

I looked into this again in light of #9520 - this bug is present in upstream resolve, I must have tested it wrong when I looked into it. Opened up an issue: https://github.com/browserify/resolve/issues/211


Deployable preferences to fix wake issue?

Current Version: 1.8.2
macOS Version: 10.15.4
Machine: MacBook Pro 13" 2019
I am deploying Aerial to all of my users via Jamf (they really love the screen saver as do I). The large majority of us are experiencing the issue that has been addressed previously where the screen saver will not wake to the password query by moving the mouse and pressing the keyboard. The only thing that works is the Wake function (either pressing the power button or sending the computer wake command via ARD). We have been able to fix this by turning off Aerial checking for updates.
What I would like to know, is there a way to make this default prior to deployment via MDM? I cannot find a preference file or any way to make this default.

Hi @jeffk395 !
I assume you are also deploying some firewall ? So far it looks like the hang happens when an app blocks the update check (I assume by interrupting and putting a popup, although the blocking may actually be the thing that hangs ? Never managed to find exactly what happens, I know Little Snitch does provoke the hang).
With that said, yes, the preference file is a bit hidden in a container, it's here :
~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Preferences/ByHost/com.JohnCoates.Aerial.{UUID}.plist
There's another file in the non ByHost folder, one level up, ignore  this (it's Sparkle's).
When it comes to the preference you are looking for, I'd say these two keys :
checkForUpdates, bool, to NO
updateWhileSaverMode, bool to NO
Let me know how that works for you, if it does I'll put it up somewhere in the docs.

Thank you for the quick reply. So, no firewall installed with my MDM
deployment. It’s just the behavior of the screensaver when deployed using
Jamf. Possibly could be a conflict with on of the configuration profiles…
not sure. Or could just be Catalina being, you know, Catalina.
I deploy Aerial in the root Library rather than the User library. Is there
a way to get these prefs deployed so that it applies to ALL users and not
just current user?
On April 2, 2020 at 10:11:05 AM, Guillaume Louel<EMAIL_ADDRESS>wrote:
Hi @jeffk395 https://github.com/jeffk395 !
I assume you are also deploying some firewall ? So far it looks like the
hang happens when an app blocks the update check (I assume by interrupting
and putting a popup, although the blocking may actually be the thing that
hangs ? Never managed to find exactly what happens, I know Little Snitch
does provoke the hang).
With that said, yes, the preference file is a bit hidden in a container,
it's here :
~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Preferences/ByHost/com.JohnCoates.Aerial.{UUID}.plist
There's another file in the non ByHost folder, one level up, ignore this
(it's Sparkle's).
When it comes to the preference you are looking for, I'd say these two keys
:
checkForUpdates, bool, to NO
updateWhileSaverMode, bool to NO
Let me know how that works for you, if it does I'll put it up somewhere in
the docs.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JohnCoates/Aerial/issues/958#issuecomment-607870216,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACSAPM73K4UEW4ZJC7QNHCLRKSMHNANCNFSM4L2OV4CA
.

Thank you for the quick reply. So, no firewall installed with my MDM deployment. It’s just the behavior of the screensaver when deployed using Jamf. Possibly could be a conflict with on of the configuration profiles… not sure. Or could just be Catalina being, you know, Catalina.

Quite probable ! Screen Savers are a mess with Catalina.

I deploy Aerial in the root Library rather than the User library. Is there a way to get these prefs deployed so that it applies to ALL users and not just current user?

As far as I remember, and I may be wrong so you may need to double check this, but my understanding is that the sandbox mechanism is a per user thing in macOS, so you need to do it for each user you deploy. The plist loading is done by macOS itself for the screensaver so not much I can do here.
But of you happen to have machines that are used by multiple users, I would highly recommend moving the cache to /Users/Shared so videos aren't downloaded multiple times. I would do something like this:

Create /Users/Shared/Aerial
Copy the videos when you deploy inside that folder
In the plist, change cacheDirectory to that folder

Now, because Catalina is all about fun, you need to do the deploying yourself in that case. Because the screensaver cannot write outside of it's user's container, Aerial will always download in the container. Aerial can read outside of the container (so in that case /Users/Shared/Aerial but not write to it). To grab the videos from one machine, go to ~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Application Support/Aerialin a machine that has downloaded the video.
Final step, you also need to tell Aerial which video set you are using (4K, HDR, etc). That's done with intVideoFormat, an int, it goes : v1080pH264 = 0, v1080pHEVC = 1, v1080pHDR = 2, v4KHEVC = 3, v4KHDR = 4
This is painful, I know, but it's Catalina !

This is great info - I was able to find the pref file to edit, but I cannot
find a way to defaults -write it with the correct settings. Because it’s
buried so deep, do you know what the best way to script the changes would
be? If I simply defaults -write, it creates a new file in
~/Library/Preferences/ByHost/com.JohnCoates.aerial which does not have any
effect on the module.
On April 2, 2020 at 10:29:56 AM, Guillaume Louel<EMAIL_ADDRESS>wrote:
Thank you for the quick reply. So, no firewall installed with my MDM
deployment. It’s just the behavior of the screensaver when deployed using
Jamf. Possibly could be a conflict with on of the configuration profiles…
not sure. Or could just be Catalina being, you know, Catalina.
Quite probable ! Screen Savers are a mess with Catalina.
I deploy Aerial in the root Library rather than the User library. Is there
a way to get these prefs deployed so that it applies to ALL users and not
just current user?
As far as I remember, and I may be wrong so you may need to double check
this, but my understanding is that the sandbox mechanism is a per user
thing in macOS, so you need to do it for each user you deploy. The plist
loading is done by macOS itself for the screensaver so not much I can do
here.
But of you happen to have machines that are used by multiple users, I would
highly recommend moving the cache to /Users/Shared so videos aren't
downloaded multiple times. I would do something like this:

Create /Users/Shared/Aerial
Copy the videos when you deploy inside that folder
In the plist, change cacheDirectory to that folder

Now, because Catalina is all about fun, you need to do the deploying
yourself in that case. Because the screensaver cannot write outside of it's
user's container, Aerial will always download in the container. Aerial can
read outside of the container (so in that case /Users/Shared/Aerial but
not write to it). To grab the videos from one machine, go to
~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Application
Support/Aerialin a machine that has downloaded the video.
Final step, you also need to tell Aerial which video set you are using (4K,
HDR, etc). That's done with intVideoFormat, an int, it goes : v1080pH264 =
0, v1080pHEVC = 1, v1080pHDR = 2, v4KHEVC = 3, v4KHDR = 4
This is painful, I know, but it's Catalina !
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JohnCoates/Aerial/issues/958#issuecomment-607881030,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACSAPM4WUB27U6BPJEHI7LTRKSOOJANCNFSM4L2OV4CA
.

And I should also say that the computers are only used by one person, not
multiple people, so no need to relocate the Caches.
On April 2, 2020 at 3:40:06 PM, Jeff Kunkel Jr<EMAIL_ADDRESS>wrote:
This is great info - I was able to find the pref file to edit, but I cannot
find a way to defaults -write it with the correct settings. Because it’s
buried so deep, do you know what the best way to script the changes would
be? If I simply defaults -write, it creates a new file in
~/Library/Preferences/ByHost/com.JohnCoates.aerial which does not have any
effect on the module.
On April 2, 2020 at 10:29:56 AM, Guillaume Louel<EMAIL_ADDRESS>wrote:
Thank you for the quick reply. So, no firewall installed with my MDM
deployment. It’s just the behavior of the screensaver when deployed using
Jamf. Possibly could be a conflict with on of the configuration profiles…
not sure. Or could just be Catalina being, you know, Catalina.
Quite probable ! Screen Savers are a mess with Catalina.
I deploy Aerial in the root Library rather than the User library. Is there
a way to get these prefs deployed so that it applies to ALL users and not
just current user?
As far as I remember, and I may be wrong so you may need to double check
this, but my understanding is that the sandbox mechanism is a per user
thing in macOS, so you need to do it for each user you deploy. The plist
loading is done by macOS itself for the screensaver so not much I can do
here.
But of you happen to have machines that are used by multiple users, I would
highly recommend moving the cache to /Users/Shared so videos aren't
downloaded multiple times. I would do something like this:

Create /Users/Shared/Aerial
Copy the videos when you deploy inside that folder
In the plist, change cacheDirectory to that folder

Now, because Catalina is all about fun, you need to do the deploying
yourself in that case. Because the screensaver cannot write outside of it's
user's container, Aerial will always download in the container. Aerial can
read outside of the container (so in that case /Users/Shared/Aerial but
not write to it). To grab the videos from one machine, go to
~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Application
Support/Aerialin a machine that has downloaded the video.
Final step, you also need to tell Aerial which video set you are using (4K,
HDR, etc). That's done with intVideoFormat, an int, it goes : v1080pH264 =
0, v1080pHEVC = 1, v1080pHDR = 2, v4KHEVC = 3, v4KHDR = 4
This is painful, I know, but it's Catalina !
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JohnCoates/Aerial/issues/958#issuecomment-607881030,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACSAPM4WUB27U6BPJEHI7LTRKSOOJANCNFSM4L2OV4CA
.

This is great info - I was able to find the pref file to edit, but I cannot find a way to defaults -write it with the correct settings. Because it’s buried so deep, do you know what the best way to script the changes would be? If I simply defaults -write, it creates a new file in ~/Library/Preferences/ByHost/com.JohnCoates.aerial which does not have any effect on the module.

You need to pass the file without the UUID as a parameter. So :
defaults write ~/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Preferences/ByHost/com.JohnCoates.Aerial.plist checkForUpdates -bool false
Should do the trick. Use defaults read to double check but it seems to work here after a quick test. Do not pass the UUID or it will create a file with the UUID in double :)


Trait override compatibility

Updates a bunch of patches to increase nullRef safety (when other mods patch things from base), adds a patch to support ScenPart, and adds compatibility for the "Tweaks Galore" mod

Helpers

Adds a LogUtil class to wrap Verse.Log so that log messages are prefixed in order to be easier to find

Changes all current references to Verse.Log to be to the new LogUtil

Adds a .gitignore so that VS and dotnet files that shouldn't be committed are ignored

Safety

PawnRelationWorker_Sibling had a few instances where nullRef exceptions were occurring due to mod interactions

There are mods that can override how parents are set, and whether or not it is possible for a pawn to be created as a specific gender. Due to this, calling Pawn.SetMother() or Pawn.SetFather() do not always cause a Pawn.GetMother() or Pawn.GetFather() call to return a non-null value.
For this reason, the calls were changed to check for null before re-using the mother and father pawns.
Note: For some reason the spacing of the curly braces around the if (tryMakeLovers) branch appears to be wrong. It looks normal to me locally, so hopefully it is just a diff whitespace issue.

SettingsUtilities

Similar to the above, some other mods cause GetRelationSettings and GetSexSettings to be called on a null pawn.
To avoid the exception, I added a null-check and defaulting to false which should cause the methods to act as if settings weren't found (which is already a handled case).

New Patches

ScenPart_ForcedTrait

When a scenario forces a trait onto a pawn, it tries to replace a currently existing one. It already checks for a few types of traits that should not be removed, so I hooked into the PawnHasTraitForcedByBackstory method and postfix'd it to also check RomanceUtility.OrientationtTraits

Compatbility for TweaksGalore

This mod has a tweak that changes the number of traits that a pawn should have. One of the things it can do however is remove traits when a pawn has generated over the player-chosen limit
The patch overrides the mod's internal IsSexualityTrait method to reference RomanceUtilities.OrientationTraits instead
This patch is only loaded if the TweaksGalore mod is found at Startup, and I added a ModCompatibility folder for any future patches of this type

Thank you for this, other than the relation worker change which I'm still not sure about I will be merging all of this. I'm in the middle of a rework right now so I won't be able to merge right away, but I do appreciate the work you've done.

I'm not sure why this was closed when I said I was going to use most of it. Could you please reopen it? I don't want to use your suggestions without proper credit.


Breaking down core type is also important

I like to use a big/med/little notation due to Android, but iOS only has big/little (power/efficiency).   But would be useful in your stats to break down the cpu core counts.   For example, A7 through A10 can't really run big and little cores together.  It's an either or, but it was the A11 that can.  Thanks for the great stats.
Otherwise saying A7-A10 have 4 cores is erroneous.  They really are dual core systems, with A11 being the first quad core due to simultaneous use of power + efficiency cores.
These are the stats on CPU
A7-A9 2/0
A10 2/2 (still dual-core, can't use P + E)
A11-A17 2/4
M1 4/4, 6/2, and 8/2, 8/2, 16/4
M2 4/4, 6/4 and 8/4,  8/4, 16/8
M3 4/4, 5/4 and 5/4, 10/4 and 12/4, no Ultra
M4 (iPad) 3/6 and 4/6 (similar MT perf to M3 Pro)
And apologies, but maybe the "Cores" listed are for the GPU?

These are GPU cores. I use the word "core" to refer to both (performance-)CPU and GPU cores. That's because, I discovered some striking similarities at the hardware level. Both Firestorm (performance-)CPU and GPU cores can read 32 bytes per core-cycle from main memory. They also consume a similar amount of area on the silicon die. There's more to it, at a fundamental level they are so similar. It's unfortunate that other vendors call them "SM" or "CU" when their true nature is this way.

Otherwise saying A7-A10 have 4 cores is erroneous. They really are dual core systems, with A11 being the first quad core due to simultaneous use of power + efficiency cores.

Efficiency cores are basically half of a CPU core. Instead of a 512-bit vector execution width, they are 256-bit. Just like how Intel decreases the number of ALUs on their lower-end CPUs, from 2x256-bit (AVX2, 512-bit) to 2x128-bit (SSE, 256-bit)*. Some of the earlier PowerVR core designs would be equivalent to an "efficiency" GPU core with half the ALU count of modern cores. For example, the A10X with 12 "cores" is effectively an M1 chip with 6 GPU cores and the FP32 throughput nerfed by 2x. Run the numbers, and you can predict the A10X's FP32 GFLOPS by dividing 2617 GFLOPS by 2x and then 8/6x.

*Their AVX-512 server Xeon cores are 2x512-bit (actually 1024 bits of throughput per core-cycle, in SIMD vector speak).

Modern GPU cores with 128 32-bit ALUs are 4096-bit. 128 x 32-bit = 4096-bit. But they run at a third of clock speed (GHz) of CPUs with 512-bit width. Instead of 8x the GFLOPS of a CPU core, they are more like 2.67x the GFLOPS. Let's validate this model.

M1 Max CPU: 8 cores, 770 GFLOPS
M1 Max GPU: 32 cores, 770 x (32 / 8) x 2.67 = 8200 GFLOPS

Not bad. Off by less than a factor of 2. The correct answer is 10616 GFLOPS. We can attribute the difference to the model being extremely crude. But it gets the point across.

If you look up the Tachyum Prodigy, it provides another variation of "core". They have chips with 128 cores. Each has 2048-bit vector throughput (2x1024-bit) and 5.7 GHz clock speed.
// Gigainstructions per second
GINSTRS = width * clock speed / number of bits per scalar
51 GINSTRS = 512 bits * 3.2 gigacycles/second / 32 bits per scalar

// Giga floating point operations per second
If an instruction is the FFMA32 instruction, people arbitrarily say
it is "two" operations. I don't like this way of modeling performance.
51 GINSTRS * 2 = 102 GFLOPS

Processor
Width
Clock Speed
GINSTRS (FP32)
GFLOPS (FP32)

Apple Efficiency
256-bit
2.0 GHz
16
32

Apple Power
512-bit
3.2 GHz
51
102

Apple GPU
4096-bit
1.3 GHz
166
332

Intel i3/i5
256-bit
4.0 GHz
32
64

Intel i7/i9
512-bit
5.0 GHz
80
160

Intel Xeon
1024-bit
2.5 GHz
80
160

Intel GPU (Gen9)
2048-bit
1.1 GHz
70
140

Intel GPU (Arc)
4096-bit?

Tachyum
2048-bit
5.7 GHz
365
730

[M1 Max CPU] If you multiply 102 GFLOPS by 8, you get 800 GFLOPS
[M1 Max GPU] If you multiply 332 GFLOPS by 32, you get 10600 GFLOPS.
[Tachyum Prodigy] If you multiply 730 GFLOPS by 128, you get 93440 GFLOPS. This is how a CPU can get ~93 TeraFLOPS of compute power and compete with GPUs.
This model only applies to vector throughput. To understand the Outer Product Engine (Apple AMX), the explanation will get more complex. And the tensor cores on Nvidia GPUs, where I have no idea WTF they are doing (nor do I care).

Apple Icestorm: 4x128-bit = 256 bit
Apple Firestorm: 4x128-bit = 512 bit
Apple GPU: 4x1024-bit = 4096 bit
The Apple GPU can issue an instruction from four SIMDs per core-cycle. Each SIMD has 32 threads, each carrying a 32-bit scalar. 4 x (32 x 32) = 4096. The CPU is similar, but uses out-of-order execution to issue from four NEON units per core-cycle. Except on the nerfed efficiency cores, with two vector units. Each NEON instruction is four 32-bit scalars. 4 x (4 x 32) = 512. The CPU has smaller granularity for divergence (4 threads per SIMD), if you think about it like a GPU. Intel CPUs have coarser granularity (8-wide vectors of IEEE32 on consumer chips). The weakness of GPUs, is you need a lot of elements with very similar control flow, such as stupidly parallel AI models. Otherwise there's a (0.50)^32 = 0.01 chance that they all take the same control flow branch.

Very interesting.  I just find big/little cpu core identification useful for scheduling algorithms in my game titles.  I was really searching for raytracing perf counts, but noted that you don't have M3 yet.  But there seems to be no sources of ray trace perf on the Apple systems.   Apple says A18 is up to 2x more RT than A17, but if one doesn't know the A17 perf then it's all relative to nothing.   Would be good to know where Apple gpus lie with respect to their desktop/power-hungry counterparts.

I don't have any use for hardware-accelerated triangle intersections. I do ray tracing with ray-sphere intersections, which is very different from triangle meshes. Not even NV has hardware support for ray-sphere intersections.

but noted that you don't have M3 yet.

I have an M4 iPad Pro. I was hired to do this, but not out of personal interest. Maybe you'll find more information about the M3+ family in these sources.

https://gist.github.com/philipturner/0dd518be6705544778474c4e9f8fd68d
https://gist.github.com/philipturner/84f613a5cc745460a914d2c6ad226131
https://github.com/philipturner/metal-flash-attention

https://github.com/philipturner/metal-benchmarks/commit/9128e8add2cc186949fdc954a63630fd1b1d8343


helpers in sub-charts override each other

/kind bug report
I have a chart that uses two sub-charts. Both subcharts define _helpers.tpl. These two charts both have an implementation of imagePullSecret which are slightly different:
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}

and
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}, \"bip\": \"<IP_ADDRESS>/16\"}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}

Note the "bip" part. The first definition is in the first (alphabetically sorted) chart.
When I use the {{ template "imagePullSecret" }} in the second chart, it uses the helpers from the first one (without the "bip" part). Workaround: renaming the second one.
My expectation is that the charts define their _helpers.tpl locally, but it seems that they get defined globally. This behaviour seems wrong to me.

Hi @lenalebt
Template helpers are global. It is documented here:

There is one really important detail to keep in mind when naming templates: template names are global. If you declare two templates with the same name, whichever one is loaded last will be the one used. Because templates in subcharts are compiled together with top-level templates, you should be careful to name your templates with chart-specific names.

I do apologize that the docs contain examples that are not following this practice. I opened https://github.com/kubernetes/helm/issues/3487 to update the docs to be more clear.

Hi @jascott1
thanks for the clarification! I think that updated documentation improves the situation, but nevertheless this is a problem if you try to use charts that do not follow these practices. It could even introduce security problems if you do not completely proofread all of the charts sources you're using.
Attack would work as follows:
You create a chart that has 2 subcharts A and B. You do trust B (because it is from a part of your organization), and therefore you give it access to credentials (in your values.yaml).
Chart A is malicious. It defines an imagePullSecret template that not only adds a pull secret, but within the same YAML file a busybox pod that connects to a server, sending out these credentials (simple wget). Since B uses an imagePullSecret, its credentials will be sent to the server, too.
So, although you did not give any credentials to chart A, and although it may not have rights to read the pull secrets in production, it will be able to send that data somewhere. I think this is counter-intuitive and opens an attack vector that could be avoided by not making the helpers global.

Thanks for the input. I agree there is a vector there but any untrusted image would be able to relay sensitive information (some worse than pull secrets) to a third party. If helpers were not global they would have to be redefined repeatedly for each subchart which becomes cumbersome. I think we would consider any remediation that still allows helpers to be re-used across multiple charts so please do share your ideas.


Typechecking with None type in Union not reported properly

Checks

[x ] I added a descriptive title to this issue
[x ] I have searched (google, github) for similar issues and couldn't find anything
[x ] I have read and followed the docs and still think this is a bug

Bug
When I have Union of  None and some other type(s) the reporting will go wrong as the option to use None type is not listed when reporting error.
Code example listed below will produce
1 validation error for NoneOnlyModel
simple_list
  value is not None (type=type_error.not_none) # !!! this is good... I want this to be there !!!
====================
2 validation errors for NoneListDictModel
simple_list
  value is not a valid list (type=type_error.list)
simple_list
  value is not a valid dict (type=type_error.dict) # !!! Now None type it is missing! !!!

Output of python -c "import pydantic.utils; print(pydantic.utils.version_info())":
pydantic version: 1.8.2
            pydantic compiled: True
                 install path: D:\Devel\Exputec\incyght_user\venv_bordel\Lib\site-packages\pydantic
               python version: 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)]
                     platform: Windows-10-10.0.19041-SP0
     optional deps. installed: ['typing-extensions']
...

Example of python code to reproduce the error:
from typing import Union

from pydantic import BaseModel

class NoneOnlyModel(BaseModel):
    simple_list: Union[None] = None

class NoneListDictModel(BaseModel):
    simple_list: Union[None, list, dict] = None

def main():
    try:
        NoneOnlyModel(simple_list='foo')
    except Exception as e:
        print(e)

    print('=' * 20)

    try:
        NoneListDictModel(simple_list='foo')
    except Exception as e:
        print(e)

if __name__ == "__main__":
    main()

Hi!
Try to use Union[Literal[None], list, dict] - it's works fine for me)

Hi! Try to use Union[Literal[None], list, dict] - it's working fine for me)

Yeah, well, the whole project is still running on 3.7, and I don't believe that I could force the transition to 3.8 :)
IMHO, it's still buggy behavior which you won't expect and should be fixed.

project is still running on 3.7

You can import Literal from typing_extension package =) (already in pydantic requirements)

Well that's getting me to another error!
class Test(BaseModel):
    a: Union[Literal[None], int]
    class Config:
        validate_assignment = True

It produces the right error message when passing the string, but...
when trying to instantiate ...
>>> test = Test(a=None)
Traceback (most recent call last):
  File "D:\Devel\Exputec\incyght_user\venv\lib\site-packages\IPython\core\interactiveshell.py", line 3437, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-66-ba82492cfde2>", line 1, in <module>
    test = MBM(a=None)
  File "pydantic\main.py", line 406, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for MBM
a
  none is not an allowed value (type=type_error.none.not_allowed)

Here's the behavior I'm seeing on Pydantic V2:
from typing import Literal, Union

from pydantic import BaseModel

class Test(BaseModel):
    a: Union[Literal[None], int]

Test(a=None)  # ok
Test(a=1)  # ok
Test(a='a')
"""
pydantic_core._pydantic_core.ValidationError: 2 validation errors for Test
a.literal[None]
  Input should be None [type=literal_error, input_value='a', input_type=str]
a.int
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='a', input_type=str]
"""

It is true that there is no None error if you don't use a literal:
from typing import Union

from pydantic import BaseModel

class Test(BaseModel):
    a: Union[None, int]

Test(a=None)
Test(a=1)
Test(a='a')
"""
Traceback (most recent call last):
  File "/Users/adriangarciabadaracco/GitHub/pydantic/test.py", line 12, in <module>
    Test(a='a')
  File "/Users/adriangarciabadaracco/GitHub/pydantic/pydantic/main.py", line 241, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for Test
a
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='a', input_type=str]
"""

That's just how the behavior is. It has to do with the semantic difference between Union[None, T] and nullable T. As far as Python is concerned there is no difference, but there is in jsonschema and other things. I take it that you would prefer that it be treated as a union of none and int instead of a nullable int?


Is there a limit to the number of Users for each Database?

I'm planning to create a Azure Cosmos DB users for each user of a consumer app (the number could be up to millions), here it says "Each database can contain zero or more Azure Cosmos DB users" but I wonder if there is a limit.

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

ID: 6278ead7-854a-a291-89f3-299432737ffb
Version Independent ID: b2b292bb-1beb-aaef-157c-7b70f5c96bdb
Content: Learn how to secure access to data in Azure Cosmos DB
Content Source: articles/cosmos-db/secure-access-to-data.md
Service: cosmos-db
Sub-service: nosql
GitHub Login: @seesharprun
Microsoft Alias: sidandrews

@pmonte
Thanks for your feedback! We will investigate and update as appropriate.

Hi @seesharprun,
Could you please look into this document request, thanks.

@markjbrown, do you know if there's a limit to the number of users in a database? I'm not aware of one, but that's not a declaration that a limit doesn't exist.