Planning: Decide how the workflow of user account creation will work for researchers

Overview
The workflow for how researchers get initial user accounts for Mauro and the SDE must be determined. This needs to happen before a researcher is able to carry out any other SDE workflow request (particularly assignment to an organisation and department), since all SDE requests are tied to a user account. This suggests that the workflow for registering to access the Mauro Data Explorer and SDE is separate to all other SDE requests.
This issue will be used to gather initial notes/requirements and to discuss how to proceed so that concrete implementation tasks can be defined. This is a "living" document and is subject to change.
Breakdown

[x] Identify requirements for what is needed to create/define a user account
[x] Research how SSO identity providers will be used to manage users and authentication
[x] Plan how the SSO identity provider will work in conjunction with Mauro/SDE to create application user accounts for Mauro Data Explorer

Requirements
Based on the description taken from the epic #421, the following requirements for how a researcher gets a user account can be implied:

A researcher needs two user accounts - one for Mauro, one for the SDE.
A researcher will sign in to both user accounts (synchronised) via Single Sign On (SSO).
The SSO identify platform will be assumed to be Microsoft Azure EntraID based on what OUH use.
A researcher must have these user accounts before they can submit any other SDE requests or make Data Specifications.
Before a researcher has these user accounts, they must be able to access some pages in the Mauro Data Explorer anonymously - particularly to start the registration process.
For the Mauro user account, the user must be assigned to the "Explorer Readers" user group to allow permissions to read the root data model.
SSO must allow users outside of the OUH tenant to authenticate via the identity platform (Azure EntraID), most likely using their own organisation email address.
An anonymous user must be able to submit a user registration request to the SDE.
The creation of Mauro/SDE user account records and Azure EntraID (guest) tenant accounts will be separated. In order, Mauro/SDE user accounts will be created first, followed by Azure EntraID account.
Mauro/SDE and EntraID user accounts will share the same email address (username) to work and match user accounts.
A user registration request must allow no user ID to be recorded against it initially. However, once the user account has been created in the SDE, the request must be updated to map the user to the request.
A user registration request cannot be marked as "completed" until the user ID of the new user has been assigned to it.

User Registration
When this happens
It is necessary to submit a user registration request when:

A new user does not have an account yet
They are able to select an existing organisation and department to join.

If they cannot find an existing organisation/department, they must swap to following the organisation registration request workflow - see #430.
Sequence of Actions
Below is the intended workflow of actions to carry out as part of the user registration request:
flowchart
    subgraph explorer
        anonUser[Anonymous user]
        firstTimeSignIn[First time sign-in]
        reviewRequestStatus[Review request status]
        userReadyForSde[Ready for SDE]
    end
    subgraph sde-admin
        pendingRegistration[Pending registration request]
        assignedRegistration[Assigned registration request]
        initialUserChecks[Initial user checks]
        verifyUserOrg[Verify user/organisation]
        createSdeUser[Create Mauro/SDE user records]
        mapUserToRequest[Map user to request]
        newUserReady[New user ready]
        rejectUser[Reject and notify user]
        mapUserToOrg[Map user to organisation]
        mapUserToDept[Map user to department]

        pendingRegistration -- SDE administrator pickup --> assignedRegistration
        assignedRegistration --> initialUserChecks
        initialUserChecks -- Verified --> createSdeUser
        createSdeUser --> mapUserToRequest
        mapUserToRequest --> newUserReady
        initialUserChecks -- Rejected --> rejectUser
        newUserReady --> verifyUserOrg
        verifyUserOrg -- Verified --> mapUserToOrg
        mapUserToOrg --> mapUserToDept
        verifyUserOrg -- Rejected --> rejectUser
    end
    subgraph azure
        addAzureAccount[Add guest account to tenant]
        authenticateUser[Authenticate user]
    end
    anonUser -- Submit registration form --> pendingRegistration
    createSdeUser --> addAzureAccount
    newUserReady -- Notify user --> firstTimeSignIn
    addAzureAccount --> newUserReady
    firstTimeSignIn -- Authenticate --> authenticateUser
    authenticateUser --> reviewRequestStatus
    reviewRequestStatus --> userReadyForSde
    mapUserToDept --> userReadyForSde

Request State Workflow
Below are some changes to the existing SDE request state workflow that will need to be achieved to support the additional request types for user registration:
stateDiagram-v2
    draft : Draft request
    awaitUserCheck : Await user checks
    initialUserCheck : Initial user check
    createUserAccount : Create user account
    awaitApproval : Await Approval
    awaitPickup : Await pickup
    otherSdeStates : Other SDE states...

    draft --> awaitUserCheck : Submit (Researcher)

    awaitUserCheck --> initialUserCheck : Assign (SDE Administrator)
    initialUserCheck --> draft : Rejected (SDE Administrator)
    initialUserCheck --> createUserAccount : Approved (SDE Administrator)
    createUserAccount --> awaitApproval : User ready (SDE Administrator)
    createUserAccount --> initialUserCheck : Pending (SDE Administrator)
    createUserAccount --> awaitUserCheck : Pending (SDE Administrator)

    awaitApproval --> awaitPickup : Approve (Organisation Member)
    awaitApproval --> draft : Returned (Organisation Member)

    awaitPickup --> otherSdeStates : Continue... (SDE Administrator)

The key differences are what happens between "Draft Request" and "Await Approval" or "Await Pickup":

For this kind of request, the status transitions straight from "Draft Request" to "Await User Checks".
Only SDE administrators can manage requests in the "Await User Checks" state.
An SDE administrator must be assigned to the request, moving to the "Initial User Checks" state.
In this state, the SDE administrator must make some initial background checks on the user to ensure they should have a user account. (These are processes to be determined by OUH).
All being well, they move the request to the "Create User Account" state. Here, they will perform the technical actions to setup their user account. Once created, the request can finally be mapped to this new user account.
In the case of a user registering to join an existing organisation, this means they transition to the already available "Await Approval" state. From here onwards, the current request workflow continue as before.

Registration Form
An anonymous user will be able to fill in a registration form in the Mauro Data Explorer, providing the following details:

Name of user - first and last
Email address - their organisation email address
Confirmations - e.g. "I have completed online training", "I accept the terms and conditions** etc
Additional information - ORCID, GMC number, NMC number etc
Organisation - select an existing organisation from a list
Department - select an existing department from a list based on chosen Organisation
Position/job title - for records

If an Organisation or Department cannot be found from the lists, a different registration form must be submitted - the Organisation Registration Form (#430)
Once submitted, the request will not currently be attached to a user ID - because the user does not exist yet. When the user record is available though, it will be assigned to the request for tracking purposes.
SDE Administrator Actions
Once the user registration request is picked up by an SDE administrator, the following actions must happen before the user can at a minimum sign-in to the Mauro Data Explorer and track their request:

Create Mauro/SDE user accounts - the SDE administrators must perform some initial checks to make sure a user account should be created e.g. the request is not spam or a bot. Once verified, some processes can happen to setup accounts. Note that these are no longer automatic, they must be triggered manually through the SDE Admin UI.

Mauro - create a user account with the same email address. Also assign the user to the correct user groups.
SDE - create a user account with the same email address.

Create user in Azure - next, a user account should be added/created in the Azure OUH tenant. This is a step performed by the OUH system administrators (currently not automated).
Notification - the user must be notified (somehow) that they can sign-in to the Mauro Data Explorer.
Verification - the SDE administrators/team must verify the suggested user and make sure they are part of that organisation - "due diligence". These are not necessarily steps that can be automated in the SDE backend.

Note: although the user may sign-in finally and track their request, they must still be prevented from performing any actions until they are added to an Organisation/Department.
Add to Organisation/Department
Whilst the research user is able to access the Mauro Data Explorer, the user registration request can continue to be fulfilled by the SDE administrator. Once verified and approved, the SDE administrator will be able to run the following commands:

Add user to the chosen organisation
Add user to the chosen department within the organisation

Only once these are done can the user registration request be considered "Complete". Now the researcher is able to submit further requests e.g. creating projects.
Identity Management

These notes are provided as an appendix (for reference)

Some research has been carried out to understand Microsoft Azure EntraID and determine how users are managed. Ultimately, this should be handled and business processes decided by OUH - these notes may be useful though.
Note: The below topics refer to Azure EntraID, though I am sure the concepts could apply to any suitable identity platform.
Azure works with tenants, which are dedicated instances of Microsoft EntraID that manage an organisation's resources, including registered apps and a directory of users. For example, OUH would have a tenant that manages all users under the Oxford University Hospital trust organisation, giving each user an @ouh.nhs.uk domain email account for sign in. This is assumed to be a workforce tenant, the default tenant configuration.
Collaboration with guests
It must be assumed that researchers are not solely found within the OUH tenant/organisation though, there are other external organisations (let's say Cambridge University Hospitals (CUH) trust, @cuh.nhs.uk) which will require access so user accounts and authentication must work for these too. Microsoft EntraID therefore provides many powerful capabilities for external "B2B" collaboration. This will allow OUH to invite external business partners as guest accounts within the OUH tenant, or to provide self-service capabilities to let users sign-up themselves.
Further documentation can be found here:

Introduction to Microsoft External Entra External ID
Overview: B2B collaboration with external guests for your workforce
Quickstart: Add a guest user and send an invitation
Identity providers for External ID in workforce tenants
Self-service sign-up

Options for user accounts in Azure
Defining the business processes and workflows for managing all SDE users within Azure EntraID is outside the scope of this project, but would be worth discussing with OUH to understand how researchers could start to get user accounts created in Mauro/SDE. From the research above, some of these options seem viable:

Azure administrators create guest user accounts in the OUH tenant for external users, using their own work email account. This will send the external user an email invitation to accept and validate.
Self-service sign-up could allow external users to add themselves as guests to the tenant, removing the need for OUH administrators to manually administrate guest accounts and send invites.
Identity providers in EntraID can allow external users to authenticate using their own external accounts to complete B2B collaboration invitations or complete sign-up. This is particularly useful for other organisations using EntraID, since this is the default identity provider - so if OUH and CUH both use EntraID, a CUH user can simply use their @cuh.nhs.uk account as usual without any friction. There are also other identity providers available, e.g. Google.

App Registration
Assuming that the OUH tenant contains users (either internal or external), an EntraID App Registration is required to allow Mauro and the SDE to connect to the OUH tenant and authenticate/authorize user accounts to allow further access.
The details of App Registrations can be summarised by this page: Application and service principal objects in Microsoft EntraID. The basics are:

A tenant will have one or more applications registered and integrated. This will be a globally unique instance that lives within the tenant, and will allow other client applications to send authentication requests to be verified by EntraID. These are referred to as the application object.
Each application object also has a service principal. This defines what the app can actually do in the specific tenant, who can access the app and what resources the app can access.

In the Azure Portal or Microsoft EntraID admin centre under your EntraID tenant, these will appear as:

App registrations - the application object, determining Client ID and Secret for client applications to connect to for OpenID Connect to work from Mauro/SDE
Enterprise applications - the service principal, determining which users or groups of users could access the app registration.

Using this knowledge, Mauro and the SDE would have an app registration devoted to SDE researcher users, where Mauro and the SDE researcher API would authenticate to. To further secure this authentication endpoint, the service principal can be managed to a set of users who are only meant to be "researchers" - i.e. SDE administrators or other OUH users not using the SDE can be excluded.
This is still outside of the scope of the Mauro/SDE project. Nonetheless, it will prove as useful background information to understand the user registration and authentication process that must be determined.
SDE Administrators
So far, SDE researchers have been considered. However, SDE administrators will also need a user account for SSO. The difference here is that they will only need one client account for the SDE Admin UI, they do not require a Mauro user account.
Some consideration needs to be given to understand how SDE administrators register or are provided a user account to access the SDE Admin UI.

@jamesrwelch and @NigelPalmer - I have documented what I've understood about Microsoft EntraID and user management above. In order to plan the work for researcher user registration in the SDE, I will need to understand what OUH plan to do with user/identity management. Ultimately, users accounts must somehow be added to Azure EntraID - the question is how? Some of that falls outside of our scope, but we need to understand your (intended) processes so that we can connect up to it.

@jamesrwelch and @NigelPalmer - I have changed the requirements notes for user registration. Please could you review the workflow I've created - this I think will work to split up user account creation and tracking the request, though it does mean that we need a Request object that can initially have a userId of null attached.
This leads me to some questions I'll need clarifying to know that this approach will work (cc @abwilson23):

Do we alter the base Request object to say createdBy (user UUID) is nullable? Or do we create a new special type of anonymous user request? I need to understand the code infrastructure more.
Do we continue using the same request workflow used by all other requests? I need to understand how the state flow works and how actions happen within the workflow.
We need a way of notifying users that they can now sign-in, does the SDE have anything like that yet?
Will the SDE Admin UI now need additional screens/views for proper user management? The user registration request could automate the creation of the user accounts (similar to how the CreateProjectRequest works), but there are currently no controls for viewing/managing the full user list in the SDE.
I've left the question of how SDE administrators get user accounts open - this has not been covered anywhere yet.

I will close this issue as it is now superseded by #445.


Could you please post some text tell the others how to compile node on QNAP NAS

Hi Jbltx, could you please post some text tell the others(of course, include me) how to compile node on QNAP NAS? Thanks.

Yes I'm gonna add it in the README file ;)

Thank you in advance. Since there are lots of request for latest node package in QNAP forum, your effort will help us more.

Unfortunately I tried to build newer version of node without any success. I had a lot of issues with v8 compilation so for the moment I can't give you the exact method. But to give you mainlines, you have to create a toolchain on a Linux host (i.e. Ubuntu 14.04) which has the same configuration as your QNAP machine (same GCC, libgc, binutils and kernel version).
I suggest you to use Crosstool-NG to generate it.
The problem is v8 uses a lot of new features from GCC compiler (like linux atomic library) which are not present in the QNAP's GCC version (really old...).
So after generating the makefile to build node with the command :
./configure --without-snapshot --dest-cpu=arm --dest-os=linux --prefix="/opt/nodejs"

You need to staticaly link missing libraries by extracting them from a newer GCC source code, and add filenames in your makefile...
After that you can build it as usual :
make -j4
make install DESTDIR=/your/custom/path

This is a really tricky method, and doesn't work now with other versions of node. But, you could always try to install a newer version of GCC on your QNAP and build node directly on your NAS. (I don't know if it's possible because kernels are old too, and if you want newer kernel you have to create entirely your linux system, and will loose all QNAP functionalities...)
To resume, if you want the most recent version of node on a QNAP, you need the most recent version of Linux kernel and others dependencies.


Change moment plot on Takeoff to moment_CA + moments of Lift and Drag

Currently only the Moment over the CA is being used on plot, which gives a bad understanding of the phenomens.

The content of this issue is being registered in a list of things to be aware of during the development of ADR2 and the issue is being closed.


Update QASM version string to x.0

Summary of changes
This pull request updates the version numbers in various files to ensure consistency with the QASM 2.0 and 3.0 specifications. The changes span across multiple files and test cases.
Version Updates:

Updated the version number in the _unrolled_ast initialization from "2" to "2.0" and from "3" to "3.0". [1] [2]

Updated the version number in several test cases from "2" to "2.0" and from "3" to "3.0".

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:loudspeaker: Thoughts on this report? Let us know!


getRectangleFromRequest is being too helpful

It tries to ensure a valid command (if things are invalid like left is higher that right), but in these cases, the commands should stop - see test test_DECCRA_invalidSourceRectDoesNothing for example

Fixed


TypeError at /news/

Without login if user try to acces /news/ url then this error occurs :-
TypeError at /news/
int() argument must be a string or a number, not 'SimpleLazyObje

same error for /events/ & /results/ & /schedule/ & /discussions/ urls without login

So U mean we need to redirect the user to login?

Yes we need to redirect the user to the login page if he is not logged in and tries to open one of these pages. This can be done using the login_required decorator. Since we have used Class based views, we would need to override the dispatch method in each of them and add the login required method decorator. That should do the job

@pranav15197  is right. and while writing code we should always use error handlers. means somehow if someone tries to do some hack on website. there should be 404 Error or something else.

Okay, so I should make a 404 Error page and redirect to that page.
Am I right?

@mukeshkharita here use  of login_required decorator is correct. I was talking about a general 404 page to render whenever any error occur on server. means if somehow there is mistake by developer then that 404 page will render. we can do it by error handlers.

@pranav15197 Is there any problem with these commits?


Fix Android storage migration issue related to 1.0.37 release

Resolved with a proper backup solution:
https://github.com/citizenwallet/app/issues/97


Removing depricated libraries

As stated [https://google.github.io/accompanist/systemuicontroller/], Accompanist System UI Controller library is deprecated.

Hello I would like to contribute to this issue. Please mark it as hacktoberfest.

As stated [https://google.github.io/accompanist/systemuicontroller/], Accompanist System UI Controller library is deprecated.

Ohh yeah right.
Thanks for pointing it out @AdityaKumdale

Hey @aritra-tech please check the pr.

Hey @aritra-tech please check the pr I solved the issue.


Paket remove packages verion from folder name

Hi,
When I add ex. Newtonsoft.Json packages from VS is created in packges directory subdirectory with packages name and version name ex. Newtonsoft.Json.6.0.8, but Paket creates only folder with packages name. How I can resolve this problem ?
Pawel

Ask VS team (+ NuGet team) to finally remove the version from the path.
Joking aside. Getting rid of the version number from the path was one of the major design goals. You can read about it in http://fsprojects.github.io/Paket/faq.html#NuGet-puts-the-package-version-into-the-path-Is-Paket-doing-the-same.

Is the big reason fsx files or just a general one version per solution POV?

Actually both. fsx is only one instance of the issue that NuGet file names are not stable. You have the same issue in docs and lots other places. Just think of all the git diffs when you update packages.

https://twitter.com/jeremydmiller/status/593761400511660032

Sure I understand the problems it causes but those problems are more about burning paths into things other things (like the project file), not the folder layout.
IMO there's 2 ways to solve this problem:

Remove versioning from folders that are local to something (solution or project). That enforces a single version per project/solution/{whatever you want to make the unit of version unification}. Benefit is that you don't have to update anything else to understand NuGet.
In NuGet v3, we've been changing different places to understand NuGet instead. The benefit here is that we can do things like store packages globally, but still have (id, version) pointers in each projects, that get resolved to the right place at the right time (build time for example).

Anyways I was just curious. Thanks.

BTW: the desire to remove the version from the path came from the C# community. But of course it fits with all we do in the F# ecosystem.

Benefit is that you don't have to update anything else to understand NuGet.

There are so many things we can't control/change.

That enforces a single version per project/solution

Which is almost always what we want. We want to make conflicts obvious.

@davidfowl given that NuGet is essentially the defacto package management system in the .NET world, there's also been a long-standing request from the F# side to allow referencing NuGet packages rather than individual assemblies e.g. #nuget "Newtonsoft.Json".
This fits with the sorts of things you're talking about, but I don't see this happening any time soon personally.

Yep it's tough changing all the places so I understand. We're still going in his direction though.

FWIW I think its a good thing to do.


Implement FromRow for Option<NonZero*>?

I've got some columns which are never 0, so it would be useful to implement FromRow for Option<NonZero*>, where a zero value returns None. This allows for niche optimizations and other nice things for Option<NonZero*>

For one, it wouldn't be FromRow as we're talking about scalar values here, so it would be implementing Type, Decode and maybe Encode.
Secondly, I don't think we would want just Option<NonZero*> as that begs the question of why isn't NonZero* also supported? But we can't have specialized behavior for both because of the blanket impls for Option<T> which decode NULL as None.
There's also the question of if we do support just Option<NonZero*>, what do we encode None as when binding? NULL or 0? I think it depends entirely on the application.
In general, weird bugs can happen when programs treat NULL and 0 as equivalent, and I'd like to avoid handing out footguns like that.
If we did support this, I would think we should implement Type, Encode and Decode for NonZero* and return error if decoding the value 0. It is a logic error, after all. Then Option<NonZero*> returns None for NULL, behaving as normal.
You'd then choose an appropriate type for your situation:

If the column may never be NULL or 0, use NonZero*.

This would allow the containing type to utilize niche-filling optimizations, e.g. Option<Foo> being the same size as Foo where Foo contains a NonZero*.

If the column can be NULL but not 0, use Option<NonZero*>

This should be the same size as the equivalent integer type but will not enable niche-filling for the containing type as the niche is already being used by that Option.
For sanity, the column should also have a CHECK(foo IS DISTINCT FROM 0) constraint.

If the column can be NULL or 0, just use Option<{i16, i32, i64}>.

Or, use NULLIF(<column>, 0) in your query with Option<NonZero*> as the decoding type so the choice of using NULL instead of 0 is explicit.

Preferring to send NULL over the wire instead of 0 actually saves bandwidth for MSSQL, MySQL and Postgres as NULL values are encoded out-of-line.

Sure, second option sounds best for me, I could probably get some use out of it, just requires NonZero* to implement the relevant traits

Is there any plan about implementing this? I could make a PR for it if nobody else wants to do it, since I personally also want that feature.


Save/Save As dialog, default capture filename in save / save as dialog is not set

Description
Currently when making new capture, name of a capture is set in main window. But after clicking "save"/"save as" this default name isn't set in a dialog, which means every time "save" or "save as" is set, user has to reenter filename. I think it would be better to set this default filename to the one set in main window, so user can modify it or leave it as is and is not forced to reenter filename every time.
Environment

RenderDoc version: 1.10 (official)
Operating System: Windows 10
dx11 (but I think issue will be visible on all api's

)

When a temporary capture is opened the name is an auto-generated internal name only, not a default name. It's there only to indicate that a capture is loaded. I don't want to enter a default name into the save dialog that people then need to delete as I expect it will rarely be the name they want, since it is autogenerated based on the executable filename and date&time and doesn't have any meaning or way to distinguish it.
When there's something a program can do automatically that may or may not be wanted, I personally heavily favour not doing it as I think the annoyance of a program 'automatically' doing something you don't want is greatly higher than a program not automatically doing something that you might want.

Well, I suppose it depends on end user. If I want to save capture I find it annoying to reenter new name each time after capture and this auto generated one is good enough for me.


Revert changes related to "CryptoRng" trait

related to #1296 and #1280
We were able to locate the source of problem for those issues, but the fix is not that straight-forward and requires a bit more analysis.
That is why we decided to roll back all the changes related to CryptoRng trait and ensure_randomness() function

@MabezDev @playfulFence I guess we decided not to move forward with this in this morning's meeting? Should this be closed, or am I mistaken?

@jessebraham yep, this may be dropped I guess


Redocly CLI warns about unused rules when linting asyncAPI with the recommended ruleset

Describe the bug

Running redocly lint <async-api-description> produces this warning:

Expected behavior

Ideally, there should be no warning.
API description
Any async API 2.6/3 description.
Redocly Version(s)
v1.24.0, but it's there since introducing AsyncAPI linting.
Additional context

The reason is inside file packages/core/src/config/recommended.ts. But we cannot simply fix it, because we can lose our extend functionality.
Please,  make sure it works as expected.


Bump pug

Fix for #33
There are no tests, but I was able to
npm i --save happymondayco/webtask-tools#master

and use a0deploy as usual.

Thanks for the merge @shawnmclean, will a new release go out to NPM?


Add Charles

Microsoft Reviewers: Open in CodeFlow

the installer reports that the bundled java installation is broken.   please uninstall and reinstall charles.


[Feature request] Translate audio immediately

Tried to use the app to translate from spoken English to audible Korean, without bluetooth headphones. Samsung Galaxy S10e running Android.

Download https://github.com/niedev/RTranslator/releases/tag/2.1.1
Install RTranslator_2.1.1.apk
Run RTranslator
Install 1GB large language model.

Here, I selected English to Korean.
Expected

RTranslator opens and asks permission to use phone's microphone.
RTranslator receives audio from microphone when I talk.
RTranslator translates audio from phone from English to Korean.

Actual
RTranslator prompts me to insert text. RTranslator requires me to press Translate. This is not how I anticipated the application to behave. I don't want to type, I want to speak using the phone's microphone, then have the text be translated into Korean and spoken over the phone's speaker.
There are other issues, like after clicking Conversation mode and denying access, I can no longer go into Conversation mode ever again. That's not good. It should prompt me for access again when I press Conversation mode.

In WalkieTalkie mode, English speech is translated directly into Korean text. There is no Korean TTS engine installed. If I select Korean as the target language, and there's no suitable TTS engine, is it possible for the software to prompt me to install one?

@DarkTyger The WalkieTalkie mode, as you probably discovered, is accessible by pressing the dedicated button on the main screen.
Also if you deny a permission Android apps cannot ask for it again (it does not depend on me, but on Android), to grant the permission again you have to go to the phone settings -> Applications -> RTranslator -> permissions -> location and allow (the location permission is needed to use Bluetoooth, I do not actually collect your location but Bluetooth could be used for this, for this reason Android requires that permission).
As for TTS here is explained how to install and select the right TTS (Google TTS should support Korean).


Self is undefined when importing precache-manifest file

Library Affected:
workbox-webpack-plugin
Browser & Platform:
all browsers
Issue or Feature Request Description:
When using workbox-webpack-plugin and babel with webpack. In the generated file precache-manifest.XYZ.js self is undefined. And so an error is throw when trying to assign to self.__precacheManifest
WorkboxPlugin config
    new WorkboxPlugin.InjectManifest({
        swSrc: './src/client/serviceWorker/sw.js',
    }),

Console logs
precache-manifest.XYZ.js:1 Uncaught ReferenceError: self is not defined
    at precache-manifest.XYZ.js:1
    at sw.js:1
(anonymous) @ precache-manifest.XYZ.js:1
(anonymous) @ sw.js:1
(index):1 Uncaught (in promise) TypeError: Failed to register a ServiceWorker: ServiceWorker script evaluation failed

self is defined as part of the WorkerGlobalScope, and when used inside of a service worker (or a script imported by a service worker) it should always refer to the current global scope.
So... there's no reason that I'm aware of why self would be undefined when evaluated in a service worker.
I wonder whether webpack is modifying your precache-manifest.js file in some way that's leading to the execution context getting confused. Could you pass along a full copy of your precache-manifest.js file, or a copy with the manifest contents redacted if they're sensitive?

@jeffposnick many thanks for your reply.
The precache-manifest file generated by the webpack plugin seems pretty standard...
self.__precacheManifest = [
  {
    "url": "/app.2d28d9b3ba87d98866a1.js"
  },
  {
    "url": "/_vendor.2d28d9b3ba87d98866a1.js"
  }
];

and the reference injected by the plugin does too
importScripts("/precache-manifest.248484c1df5f586a66f6ce9f8f59fd3d.js", "https://storage.googleapis.com/workbox-cdn/releases/3.0.0-beta.0/workbox-sw.js");

My gut feeling too is that that webpack/babel is somehow interfering but I am at a loss as to where to look.

Gah, I found the issue. Elsewhere in sw.js I had const self = this || {}.  Removing this fixed the issue. Apologies for a confusing issue report!


Template and Resources for generating syntax diagrams in local dev env

It is often useful to visually inspect a grammar syntax diagrams during development
or for documentation purposes.
An example of the railroad diagrams can be found on the chevrotain Playground.
Being able to view the syntax diagrams not only in the playground but also in a developer's local environment will ease the development process of new grammars.

relates to #134

Docs can be found here:
https://github.com/SAP/chevrotain/tree/master/diagrams


Core: modify the knowledge base internally to ensure EDB-IDB separation .

Ensure EDB-IDB separation by modifying the reasoner knowledge base internally.
For each Predicate P appearing in a rule body:

modify the facts predicates by by renaming P  to src_P.
add source-to-target rules src_P -> P .
This way, for any set of rules and facts in a knowledge base, EDB-IDB separation will be ensured automatically, without requiring the user to modify the knowledge base.

Fixed in #83.


feat: Support available credentials providers for AWS blob storage #235

/deploy-review

/deploy-review


ArrayIndexError@source/optimizer.d(309): index [0] exceeds array of length 0

Error:
core.exception.ArrayIndexError@source/optimizer.d(309): index [0] exceeds array of length 0
----------------
??:? _d_arraybounds_indexp [0x10083843d]
source/app.d:324 immutable(char)[] optimizer.RemoveStackOps.getOpcode(immutable(char)[]) [0x1007351d3]
source/app.d:324 void optimizer.RemoveStackOps.run() [0x100734ec0]
source/app.d:324 void optimizer.Optimizer.run() [0x100733ae1]
source/app.d:123 _Dmain [0x100504fcc]

Snippet of my code that seems to be the cause
SUB hires_set(x AS BYTE, y AS BYTE) SHARED STATIC
    ASM
        ldx V_src2.hires_set_byte.x
        ldy V_src2.hires_set_byte.y

        lda V_src2.Y_Table_Hi,y
        sta $fc
        lda V_src2.Y_Table_lo,y
        sta $fb

        ldy V_src2.X_Table,x
        lda V_src2.BitMask,x
            sei
            dec 1
            dec 1
        ora ($fb),y
        sta ($fb),y
            inc 1
            inc 1
            cli
    END ASM
END SUB

It is fixed now, will be merged in master soon. Please see this comment to find out how you can reference variables in ASM blocks much easier.


Some blink servers have expired certificates.

A user of my homebridge plugin noticed that some blink servers have expired certificates which causes API calls to fail using this plugin.  You can see the discussion here. https://github.com/bartdorsey/homebridge-blinkcameras/issues/28#issuecomment-648837001
There’s also a discussion of this over here for homeassistant https://github.com/home-assistant/core/issues/24221

Looks like it might have to do with a change in how the URLs should be constructed. See https://github.com/MattTW/BlinkMonitorProtocol/issues/39#issuecomment-631451271


Correct un-secure image issue #WPT-47

Correct un-secure image issue #WPT-47

Wouldn't it be easier to just update the parsing service specifically for yahoo?
https://github.com/Jasig/WeatherPortlet/blob/d3c9c6ad14acc41aca7ad39f251c8c02ed2add31/src/main/resources/org/jasig/portlet/weather/dao/yahoo/YahooWeatherParsingServiceImpl.groovy#L42

@timlevett Great feedback Tim.  Good attention to detail.

@timlevett Thanks for the advice, I will submit a new pull request.

Closing in favor of #16


[Feature]: Develop Responsive About Page

I'm reaching out to express my interest in contributing to our project by adding an About Page.
An About Page is a crucial component of any project as it provides valuable information about the project's purpose, mission, and the team behind it. By adding an About Page, we can enhance the project's credibility and provide users with a clear understanding of what we aim to achieve.

@subhadeeproy3902 assign this to me

@subhadeeproy3902 assign this to me

Sure... assigned it to ya

I will create a new About page. including information about Blox AI and its Features

@subhadeeproy3902 please increase the level tag to level 3


Using provide on global properties breaks reactivity

Vue version
3.3.8
Link to minimal reproduction
https://codepen.io/samoslag/pen/bGzLyEy
Steps to reproduce
Uncomment line 5 in example.
What is expected?
Provide a computed property that gets value from global properties.
What is actually happening?
Referencing computed in provide breaks it's reactivity.
System Info
No response
Any additional comments?
Can be resolved by
provided: computed(() => this.test)

you provided the return value from the computed property, so yes, that can't be reactive. That's not a bug. It's just like this example in the docs:

Your proposal how to resolve this is actually the documented way to go:
https://vuejs.org/guide/components/provide-inject.html#working-with-reactivity


Log file is not created when output path does not exist

Discovered in 0.3.5
I noticed a minor bug. When using the --log option, if the path (folder) that is supposed to contain the log file does not exist, the following error is output to the console and the log file is not created.
markers-extractor --log /Users/stef/Desktop/me-cli-output/log.txt xyz.fcpxml /Users/stef/Desktop/me-cli-output

Cannot write to log file "log.txt": The operation couldn’t be completed. (markers_extractor.FileHandlerOutputStream.StreamError error 0.)

The extraction works as expected, except the log file is not created.
However, once the /Users/stef/Desktop/me-cli-output/ folder exists, then the log.txt file is created and written to as expected.
Anecdotally: The extraction process creates this folder, but only after attempting to access the log file. So subsequent times that extraction is run, it will succeed.

Fixed. Will be in 0.3.6.


How to efficiently run in parallel

Hey @TomTranter,
I'm trying to run pytrax in parallel. I already put my script body inside a block:
if __name__ == "__main__":
    # Body

However, I don't get significant speed up when changing the num_proc argument. The image I'm running the simulation on is roughly 200^3 voxels and I use 100,000 walkers and 1,000 time steps. Here are the run times for num_proc = [1, 2, 4, 8] (the machine has 8 physical cores):
Elapsed time in seconds: 33.01
Elapsed time in seconds: 33.29
Elapsed time in seconds: 27.83
Elapsed time in seconds: 25.13

1000 time steps isn't very much so there's a bit of overhead to increasing processors and you should see better gains for longer simulations

Indeed, 1000 time steps won't even give you valid results...should be 100,000 or more right?

I guess that's a bit of trial and error but certainly 1000 isn't enough even for a relatively small image. Each step is along one axis only so right away you're down to 333 for each direction and your image is around that size. You can plot the msd and increase steps until it flattens - also be careful of walkers getting stuck at the edges as well as in blind pores as when they leave the image they travel in a reflected copy of the image. You want to make sure you are only probing the largest fully connected cluster of voxels really - bit of a limitation

It doesn't let me to go that far. Here's the output for nw=10,000 and nt=20,000:
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/concurrent/futures/process.py", line 205, in _sendback_result
    exception=exception))
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/multiprocessing/queues.py", line 364, in put
    self._writer.send_bytes(obj)
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/multiprocessing/connection.py", line 393, in _send_bytes
    header = struct.pack("!i", n)
struct.error: 'i' format requires -2147483648 <= number <=<PHONE_NUMBER>
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "effective_prop.py", line 103, in <module>
    tau_rw = calc_tau_rw(im=crop(void, frac=0.1), nt=20000, nw=10000, ax=1, num_proc=nproc)
  File "effective_prop.py", line 20, in calc_tau_rw
    rw.run(nt=nt, nw=nw, same_start=False, stride=1, num_proc=num_proc)
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/site-packages/pytrax/__RandomWalk__.py", line 294, in run
    mapped_coords = list(pool.map(self._run_walk, batches))
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/concurrent/futures/process.py", line 483, in _chain_from_iterable_of_lists
    for element in iterable:
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/concurrent/futures/_base.py", line 598, in result_iterator
    yield fs.pop().result()
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/concurrent/futures/_base.py", line 435, in result
    return self.__get_result()
  File "/opt/anaconda3/envs/pmeal/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
struct.error: 'i' format requires -2147483648 <= number <=<PHONE_NUMBER>

seems like an 'int' overflow issue.  That number is exactly (2^32)/2.

This the best that I could get: nw=10,000 and nt=10,000 (num_procs = [1, 2, 4, 8])
Elapsed time in seconds: 19.82
Elapsed time in seconds: 22.27
Elapsed time in seconds: 21.29
Elapsed time in seconds: 18.77

What about if you increase stride.
On Tue, 28 Apr 2020, 19:08 Amin Sadeghi<EMAIL_ADDRESS>wrote:

This the best that I could get: nw=10,000 and nt=10,000 (num_procs = [1,
2, 4, 8])
Elapsed time in seconds: 19.82
Elapsed time in seconds: 22.27
Elapsed time in seconds: 21.29
Elapsed time in seconds: 18.77
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PMEAL/pytrax/issues/17#issuecomment-620768677, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABV5YRMCAE45ZIP3TSW57ELRO4LRLANCNFSM4MS4AFEA
.

Thanks @TomTranter. It's much better with stride=10 or even stride=100. Here's the result for nt=100,000, nw=10,000, stride=100:
Elapsed time in seconds: 112.59
Elapsed time in seconds: 66.02
Elapsed time in seconds: 48.41
Elapsed time in seconds: 45.39

It's hard to profile multiprocessed code but the fact that stride makes a big difference would suggest that the data transfer is slowing it down not the computation. I have experimented with shared memory arrays in some other code which may solve this problem. Alternatively it may be time to overhaul the multiprocessing backend and look at dask as @jgostick suggests

I haven't looked at this code for a while but I think stride is just for reporting so shouldn't affect accuracy. multiprocessing is a standard python library so you should have it already. There's some set up involved though so doesn't speed up small simulations and parallelizes by walkers not by time so if you are running long simulations with few walkers will make no difference


Sidebar width changes between pages

https://drive.google.com/file/d/1w4ZyGTrrgp-yWfHJ176dCCtbeKMI7s4B/view?usp=sharing
Sidebar, top-left brand icon, search bar positioning change between pages.

@frechette-alex Thank you so much for taking the time to submit this! Also, great find! 👍😄

Any ETA on fixing this and #1 ?

My goal is by the end of this week. 😄

Any ETA?

I apologize for the delay! I've been really caught up lately. I'm afraid that I will have to postpone releasing a fix for a few more days. Thank you so much for your patience so far!


Schedule GH Actions to identify tools dead links

Expected Behaviour

Similar to #607 ; there have been a few occasions where the versioning/naming convention of some tools has changed that breaks our CLI and we are not aware unless we run into it or someone raises an issue regarding it.
Run GitHub actions schedule event to run make test every day or weekly to check if any of the download URL for tools leads to dead links.
Current Behaviour

No identification of dead links for tools supported by arkade.
Are you a GitHub Sponsor (Yes/No?)
Check at https://github.com/sponsors/alexellis

[ ] Yes
[x] No

Possible Solution

Add GitHub Actions schedule event to run cron periodically to check for dead links.
on:
  schedule:
    - cron: '0 0 * * 0'

jobs:
  test_schedule:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
        with:
          fetch-depth: 1

      - name: Install Go
        uses: actions/setup-go@v2

      - name: Run tests
        run: make test

Hey @yankeexe,
#636 closed this right?


targetExtension is checked against 0

I have a build config like the following:
var tree = new Filter(...);
tree.extensions = [ 'js', 'js.tmpl' ];
tree.targetExtension = null;

This causes the filter to output foo.null, bar.null etc instead of foo.js and bar.js.tmpl.
I can see in https://github.com/caitp/cauliflower-filter/blob/master/filter.js#L79 that targetExtension is checked against 0. Setting
tree.targetExtension = 0;

fixes my build. Is this on purpose?

Should be  void 0, probably crept in by accident. Patches welcome

hmm, but it won't work if you want to set it to null, I guess that's an API compat thing


React.Fragment causes errors in the console

I'm submitting a ...
[X ] bug report
[ ] feature request
[ ] support request
If you're reporting a bug, please provide a minimal demonstration of the problem

https://codesandbox.io/s/ll886vz80l
What is the current behavior?
An error stating "TypeError: _this.content is undefined" is printed on each scroll event when returning React.Fragment from the render callback function.
What is the expected or desired behavior?
No error.
Why do you want this? What use case do you have?
A Sticky element containing several elements.
What is your environment?

Version: 6.0.3
Browser: Firefox 63
React: 16.6

Is there anything else I should know?
The error seems to come from src/Sticky.js#L125. findDOMNode seems to return undefined when called with the context of a react fragment, even though it should return the ref to the first child.
While it might not make sense to use Fragments as a child of a Sticky node, some documentation mentioning it would be greatly appreciated. :)
Also, as a heads up, findDOMNode is on its way to deprecation(according to https://github.com/facebook/react/pull/13841, solution here: https://reactjs.org/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage)

Thanks for the issue! Yeah, findDOMNode definitely isn't ideal. I'm not positive we can solve this, as we need to measure the DOM node and Fragments don't create one. If you want to open a PR to the docs for now, I'd be happy to merge it.

React fragment is also responsible for getBoundingClientRect error in console:
Sticky.js:61 Uncaught TypeError: Cannot read property 'getBoundingClientRect' of undefined at Sticky._this.handleContainerEvent.
Changing Fragment to HTML tag fixes this issue.

Yes, this is known behavior.

we need to measure the DOM node and Fragments don't create one.

Open to contributions to improve docs or behavior around this!


[7 beta] ng new error: "new command requires to be run outside of a project, but a project definition was found", doesn't say where the stray file is

Bug Report or Feature Request (mark with an x)
- [X] bug report -> please search issues before submitting
- [ ] feature request

Command (mark with an x)
- [X ] new
- [ ] build
- [ ] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions
Angular CLI: 7.0.0-beta.2
Node: 10.10.0
OS: linux x64
(ng new doesn't have other versions yet)
Repro steps
ng new newProjecct
The log given by the failure

Desired functionality
A new project ;)

same here. Angular CLI: 7.0.0-beta.2 on windows 10

I am unable to replicate this.

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.9.0-beta.2
@angular-devkit/core         0.9.0-beta.2
@angular-devkit/schematics   0.9.0-beta.2
@schematics/angular          0.9.0-beta.2
@schematics/update           0.9.0-beta.2
rxjs                         6.2.2
typescript                   3.0.3

c:\git\cli-repos\test 
λ ng new testNg --next
? Would you like to generate a routing module? (y/N)

Following a convo with @SanderElias, I might be that there is a hidden .angular.json.
Kindly try to check if that's the case by executing  ls -a in a terminal in the directory that you are trying to using the ng new command

I had the same issue but it was a .angular.json in my home directory. So you should walk up the parent directories from the place where you ran ng new and locate/delete that file.
Renaming this to be the thing Hans said he would do to fix.

I can confirm that there was a stray (hidden)  .angular.json  3 level's up the folder tree.
This error would be much more useful if it points to the location + name of the config it detected.

Still getting this error when trying from c:\ with no angular.json

same

Just downloaded the new version 7.1.0 and can confirm this issue still exists. The angular.json file appeared in the directory where I tried to run the ng new command. I could see it by running ls -a as suggested. When I deleted it I was able to run the ng new command again and successfully generate a project.

Can we re-open this?

Angular CLI: 7.0.4
Node: 10.13.0
OS: win32 x64
Angular: 2.4.10
... compiler, compiler-cli, core
Package                      Version
@angular-devkit/architect    0.10.4
@angular-devkit/core         7.0.4
@angular-devkit/schematics   7.0.4
@angular/cdk                 2.0.0-beta.12
@angular/cli                 7.0.4
@angular/tsc-wrapped         0.5.2
@ngtools/json-schema         1.1.0
@ngtools/webpack             1.10.2
@schematics/angular          7.0.4
@schematics/update           0.10.4
rxjs                         6.3.3
typescript                   3.1.6
webpack                      2.2.0


Wrong type of the static variable，missing static

Hi, I used the latest version of joern(v1.1.717) to parse the following code:
void test()
{
static int a,b,c;
}

but the type of a is int,missing static,and other types like const has the same problem
joern> importCode.c.fromString(s"""void test() { static int a = 5; }  """)
...

joern> cpg.local.name("a").typ.referencedTypeDecl.fullName.l
res1: List[String] = List("int")

cpg.local.name("a").typ.referencedTypeDecl.modifier.l
res2: List[Modifier] = List()

The type name is int, yes. But the locals code field will contain static.

Interestingly, the code field doesn't contain static.
joern> cpg.local.l
res1: List[Local] = List(
  Local(
    id -> 9L,
    closureBindingId -> None,
    code -> "int a",
    columnNumber -> None,
    dynamicTypeHintFullName -> ArraySeq(),
    lineNumber -> Some(value = 1),
    name -> "a",
    order -> 1,
    typeFullName -> "int"
  )
)

cpg.all.property[String]("CODE").filter(_.contains("static")).l
res2: List[String] = List()

Anyway, the main thing is that it's documented and on your list.
Thanks @YoungBrady for reporting!

Ah yes, we strip those away here: https://github.com/joernio/joern/blob/2a54c3b2faf41d66f48cd9f2e6bc59b449b274fa/joern-cli/frontends/c2cpg/src/main/scala/io/joern/c2cpg/astcreation/AstCreatorHelper.scala#L146
This is on purpose as we do not want to have static int and int as distinct types floating around. Nevertheless, the modifier should be there.

The code field contains the modifier now.


Add JS static analysis tools to test and build steps

From @kbweaver, it'd be great to add some JS static analysis tools, things like codeclimate so that they run and comment on pull requests, or fail the build for particular rules (eg., 400 line functions).
This would be an awesome improvement!

We already have codeclimate: https://codeclimate.com/github/studentinsights/studentinsights.
We don't have it integrated into the CI so that it runs against pull requests though, that would be a great step!

Still agree this is a good idea. Did a little more looking into CodeClimate. Turns out this is a paid feature:

https://codeclimate.com/pricing

http://blog.codeclimate.com/blog/2013/11/06/code-climate-for-pull-requests/

I think it's something we should add one the next Somerville contract is signed.

We have this!
npm run lint
And it's part of our CI
👍  ⭐


Cleanup last remaining clippy lint issues.

Codecov Report

Merging #10 (ff09265) into main (8e80ffe) will decrease coverage by 3.57%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##             main      #10      +/-   ##
==========================================
- Coverage   65.80%   62.23%   -3.58%
==========================================
  Files          10       10
  Lines        1006      887     -119
  Branches      345      345
==========================================
- Hits          662      552     -110
+ Misses         48       38      -10
- Partials      296      297       +1

Impacted Files
Coverage Δ

src/sys.rs
100.00% <ø> (ø)

src/util.rs
68.26% <75.00%> (-3.07%)
:arrow_down:

src/bin/exacl.rs
54.76% <100.00%> (-1.01%)
:arrow_down:

src/lib.rs
25.71% <0.00%> (-8.50%)
:arrow_down:

src/acl.rs
36.04% <0.00%> (-5.96%)
:arrow_down:

src/failx.rs
83.33% <0.00%> (-4.17%)
:arrow_down:

src/aclentry.rs
52.43% <0.00%> (-4.09%)
:arrow_down:

src/perm.rs
67.64% <0.00%> (-3.79%)
:arrow_down:

src/flag.rs
70.37% <0.00%> (-3.16%)
:arrow_down:

... and 3 more

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 8e80ffe...ff09265. Read the comment docs.


connection pooling in client.Open

// Open opens a connection to the database specified by the driver name and a
// driver-specific data source name, and returns a new client attached to it.
// Optional parameters can be added for configuring the client.
func Open(driverName, dataSourceName string, options ...Option) (*Client, error) {
	switch driverName {

Here the code says that Open just opens one connection. At first I was thinking this is a real connection, but turns out it is not, at least when using mysql dialect.  Internally it calls sql.Open from database/sql package which actually creates a pool of idle DB connections.

// The returned DB is safe for concurrent use by multiple goroutines
// and maintains its own pool of idle connections. Thus, the Open
// function should be called just once. It is rarely necessary to
// close a DB.
func Open(driverName, dataSourceName string) (*DB, error) {

This can lead to people misusing client.Open and call open and close multiple times and cause mysterious problems.  Maybe different database driver use different implementations but I think it's worth updating the comment to tell people what you get is a virtual connection and depends on the driver implementation of whether it pools connections automatically.

Thanks for raising this issue @hongjic.
#514 should solve the problem.


MAINT: don't fail on coverage for individual worklfows

Codecov Report

Merging #97 into master will decrease coverage by 1.35%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##            master      #97      +/-   ##
===========================================
- Coverage   100.00%   98.64%   -1.36%
===========================================
  Files            3        2       -1
  Lines          526      515      -11
===========================================
- Hits           526      508      -18
- Misses           0        7       +7

Impacted Files
Coverage Δ

scikeras/_utils.py
96.35% <0.00%> (-3.65%)
:arrow_down:

scikeras/wrappers.py
99.47% <0.00%> (-0.53%)
:arrow_down:

scikeras/__init__.py

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 a9bf42a...90caa0d. Read the comment docs.


Include offsets in humanized timezones

Description
Closes https://github.com/Shopify/web/issues/52384
Old regex only included word characters (excluded +/-) which caused offset timezones (i.e. GMT+1) to not be matched. These timezones are used in from Intl.DateTimeFormat when there is no timezone abbreviation in that language.
Tophat instructions
note: there are tests for this in the PR

https://regex101.com/
use the pattern from below \s([\w()+\-:.]+$)
make sure it selects the timezone for these cases:

6:00pm EST
10:00am GMT+1
4:30pm UTC-2:30
4:30pm UTC+1.5

Type of change

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

Checklist

[x] I have added a changelog entry, prefixed by the type of change noted above (Documentation fix and Test update does not need a changelog as we do not publish new version)

@qt314 These changed have now been implemented in the new quilt packages release<EMAIL_ADDRESS>


Bug: Device Authorization: Entering the redirect URL is not part of the app creation flow

Preflight Checklist

[X] I could not find a solution in the existing issues, docs, nor discussions
[X] I have joined the ZITADEL chat

Describe your problem
When creating a native app in ZITADEL and if I choose to go ahead with Device Auth, I am not asked to enter the redirect URLs as with the other flows but at the end, the UI shows a warning sign about the missing URLs. Shouldn't this be a part of the initial flow?

Describe your ideal solution
The proposed solution will have a step to include the URL as with other flows. Or else remove the warning if it's not a compulsory step.
Version
No response
Environment
ZITADEL Cloud
Additional Context
No response

Hi @hifabienne I'm taking this one. According to @peintnermax I think that redirect uris are not mandatory for the device code grant type so I'm modifying the backend code like this:
func checkRedirectURIs(compliance *Compliance, grantTypes []OIDCGrantType, appType OIDCApplicationType, redirectUris []string) {
	if len(redirectUris) == 0 && !containsOIDCGrantType(grantTypes, OIDCGrantTypeDeviceCode) {
		compliance.NoneCompliant = true
		compliance.Problems = append([]string{"Application.OIDC.V1.NoRedirectUris"}, compliance.Problems...)
	}

Just one thing I've a question is if the redirect settings menu entry should be available for this kind of application

@dakshitha Why do you need the redirect urls here?
Device Authorization doesn't need any redirect urls.
Hei @doncicuto Thanks for your offer. I am currently not sure why this redirect urls are needed.
As device authorization doesn't need them, I would not shown them in the flow and also not in the menu.
So this is actually not a bug, but intended.

Yes, exactly. If it is not needed, why mention it at all? And as a warning.

ah got it the problem is, that the warning shows that we need a redirect url.
@doncicuto in that case the goal of the issue would be to change the warnings to reflect the device auth

Perfect @hifabienne, I'll remove the warning but if you don't mind I'll also tackle #5820 which is related with this one

perfect. thanks @doncicuto


Log Rotation for http_access logs

Description
Description
Our team is looking to apply log rotation configuration for our WSO2 stack in Production. We would like to limit the size of the files and the quantity based on time. We have applied these configurations for the wso2carbon and the audit logs, I pasted the log4j configs below for reference.
I'd like to request some assistance in getting the log rotation configurations for the http_access logs. I followed the documentation detailed here , but it created a new http_access file independent of the one that already exists.
[log4j-configs]
# CARBON_LOGFILE is set to be a DailyRollingFileAppender using a PatternLayout.
appender.CARBON_LOGFILE.type = RollingFile
appender.CARBON_LOGFILE.name = CARBON_LOGFILE
appender.CARBON_LOGFILE.fileName = /repository/logs/wso2carbon.log
appender.CARBON_LOGFILE.filePattern = /repository/logs/wso2carbon-%d{MM-dd-yyyy}.log
appender.CARBON_LOGFILE.layout.type = PatternLayout
appender.CARBON_LOGFILE.layout.pattern =[%d] %5p {%c} - [%X{dd.trace_id},%X{dd.span_id}]:%m%ex%n
appender.CARBON_LOGFILE.policies.type = Policies
appender.CARBON_LOGFILE.policies.time.type = TimeBasedTriggeringPolicy
appender.CARBON_LOGFILE.policies.time.interval = 1
appender.CARBON_LOGFILE.policies.time.modulate = true
appender.CARBON_LOGFILE.policies.size.type = SizeBasedTriggeringPolicy
appender.CARBON_LOGFILE.policies.size.size=10000MB
appender.CARBON_LOGFILE.strategy.type = DefaultRolloverStrategy
appender.CARBON_LOGFILE.strategy.max = 10
appender.CARBON_LOGFILE.strategy.action.type = Delete
appender.CARBON_LOGFILE.strategy.action.basepath = /repository/logs/
appender.CARBON_LOGFILE.strategy.action.maxdepth = 1
appender.CARBON_LOGFILE.strategy.action.condition.type = IfLastModified
appender.CARBON_LOGFILE.strategy.action.condition.age = 5D
appender.CARBON_LOGFILE.strategy.action.PathConditions.type = IfFileName
appender.CARBON_LOGFILE.strategy.action.PathConditions.glob = wso2carbon-*
appender.CARBON_LOGFILE.filter.threshold.type = ThresholdFilter
appender.CARBON_LOGFILE.filter.threshold.level = DEBUG

# Appender config to AUDIT_LOGFILE
appender.AUDIT_LOGFILE.type = RollingFile
appender.AUDIT_LOGFILE.name = AUDIT_LOGFILE
appender.AUDIT_LOGFILE.fileName = /repository/logs/audit.log
appender.AUDIT_LOGFILE.filePattern = /repository/logs/audit-%d{MM-dd-yyyy}.log
appender.AUDIT_LOGFILE.layout.type = PatternLayout
appender.AUDIT_LOGFILE.layout.pattern = [%d] %5p {%c} - [%X{dd.trace_id},%X{dd.span_id}]:%m%ex%n
appender.AUDIT_LOGFILE.policies.type = Policies
appender.AUDIT_LOGFILE.policies.time.type = TimeBasedTriggeringPolicy
appender.AUDIT_LOGFILE.policies.time.interval = 1
appender.AUDIT_LOGFILE.policies.time.modulate = true
appender.AUDIT_LOGFILE.policies.size.type = SizeBasedTriggeringPolicy
appender.AUDIT_LOGFILE.policies.size.size=10MB
appender.AUDIT_LOGFILE.strategy.type = DefaultRolloverStrategy
appender.AUDIT_LOGFILE.strategy.max = 10
appender.AUDIT_LOGFILE.filter.threshold.type = ThresholdFilter
appender.AUDIT_LOGFILE.filter.threshold.level = INFO

Regards,
Chethan
Steps to Reproduce
Add the similar configuration referring to above for http_access log file.
Affected Component
APIM
Version
apim-3.2.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

Public branch fix is already added via https://github.com/wso2/wso2-synapse/pull/2128


HARP-9926: Fix labels flickering while panning on 2d view.

Some text labels do appear/disappear showing the current solution unstable
even when camera parameters are not changed and user performs top view (2D)
panning.
This problem is caused by labels distance scaling and changes in their
bounds. Because labels closer to screen center becomes bigger they need
more screen space and thus labels' collisions algorithm may drop them out.
The second problem was caused by limiting the number of labels being placed
from now this limit will be applied only to the new labels to be processed.
Signed-off-by: Krystian Kostecki<EMAIL_ADDRESS>Thank you for contributing to harp.gl!
Before requesting a pull request, please remember to check the following documents:

contribution guidelines
coding style

If you are adding new functionality we would highly appreciate if you can describe what is the capability you are adding and even better if you can add some examples. Please also remember to add tests for it.
CI Check
Our bots will check whether your PR can be directly integrated into the mainline. We have some internal integration tests running on the background, our bots will inform you of the next steps and someone from our team will take a look and help if needed!
And please do not forget to sign-off your commit! You can read more about DCO here. But, in short, you just need to use git commit -s or append --signoff when you are committing to the repo.
Happy contributing!

Codecov Report

Merging #1554 into master will increase coverage by 0.29%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1554      +/-   ##
==========================================
+ Coverage   60.34%   60.63%   +0.29%
==========================================
  Files         263      277      +14
  Lines       24295    24578     +283
  Branches     5477     5534      +57
==========================================
+ Hits        14660    14903     +243
- Misses       9635     9675      +40

Impacted Files
Coverage Δ

...here/harp-mapview/lib/text/TextElementsRenderer.ts
69.73% <ø> (+0.49%)
:arrow_up:

@here/harp-mapview/lib/text/Placement.ts
86.33% <100.00%> (+0.37%)
:arrow_up:

@here/harp-materials/lib/IconMaterial.ts
44.44% <0.00%> (-55.56%)
:arrow_down:

@here/harp-map-controls/lib/Utils.ts
46.15% <0.00%> (-20.52%)
:arrow_down:

@here/harp-omv-datasource/lib/OmvTiler.ts
50.00% <0.00%> (-16.67%)
:arrow_down:

@here/harp-utils/lib/Mixins.ts
76.92% <0.00%> (-13.99%)
:arrow_down:

@here/harp-utils/lib/UrlUtils.ts
84.09% <0.00%> (-4.49%)
:arrow_down:

@here/harp-lines/lib/TriangulateLines.ts
11.90% <0.00%> (-2.68%)
:arrow_down:

@here/harp-mapview/lib/ThemeHelpers.ts
6.89% <0.00%> (-2.06%)
:arrow_down:

@here/harp-utils/lib/Logger/ConsoleChannel.ts
69.23% <0.00%> (-0.77%)
:arrow_down:

... and 36 more

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 3c5261e...f4bea77. Read the comment docs.

@harpgl-bot retest this please

@harpgl-bot retest this please

@harpgl-bot retest this please

@harpgl-bot retest this please

@harpgl-bot retest this please

@harpgl-bot retest this please


B.E.N.J.I. not working properly

The assistant is not hearing voice commands. Most of the commands have to be typed out. Secondly, only some commands are working. We need to to look into it.

This issue is'nt yet fixed ? I had created on such assistant . Maybe that could help .
https://github.com/NIteshx2/PyAssistant

If you would like to work on it, I will assign this issue to you.

@the-ethan-hunt  you can close his issue also

Closing it down for now


A secondary Toplevel with a Menubar and no other child window behaves badly

See UI Catalog's TopLevelNoWindowBug for repro. When run, the menu appears, but draws incorrectly and some keystrokes don't work.
using Terminal.Gui;

namespace UICatalog {
	[ScenarioMetadata (Name: "TopLevelNoWindowBug", Description: "Illustrates that not having a Window causes Application.Run to wedge. #")]
	[ScenarioCategory ("Bug Repro")]

	class TopLevelNoWindowBug : Scenario {

		public override void Run ()
		{
			var ntop = new Toplevel (new Rect (0, 0, Application.Driver.Cols, Application.Driver.Rows));

			var menu = new MenuBar (new MenuBarItem [] {
				new MenuBarItem ("_Файл", new MenuItem [] {
					new MenuItem ("_Создать", "Creates new file", null),
					new MenuItem ("_Открыть", "", null),
					new MenuItem ("Со_хранить", "", null),
					new MenuItem ("_Выход", "", () => ntop.Running = false )
				}),
				new MenuBarItem ("_Edit", new MenuItem [] {
					new MenuItem ("_Copy", "", null),
					new MenuItem ("C_ut", "", null),
					new MenuItem ("_Paste", "", null)
				})
			});
			ntop.Add (menu);

			// BUGBUG: This being commmented out causes Application.Run to wedge.
			//var win = new Window ($"Scenario: {GetName ()}") {
			//	X = 0,
			//	Y = 1,
			//	Width = Dim.Fill (),
			//	Height = Dim.Fill ()
			//};
			//ntop.Add (win);

			Application.Run (ntop);
		}
	}
}

Note, because this code is running in UICatalog it is possible this won't reproduce if there is not ANOTHER Toplevel in the mix.

@tig there can be only one top-level top. All top-levels must be built on top of an existing top-level. In this case instead of:
var ntop = new Toplevel (new Rect (0, 0, Application.Driver.Cols, Application.Driver.Rows));
will have to be:
var ntop = Top;

@tig there can be only one top-level top. All top-levels must be built on top of an existing top-level. In this case instead of:
var ntop = new Toplevel (new Rect (0, 0, Application.Driver.Cols, Application.Driver.Rows));
will have to be:
var ntop = Top;

Sorry, but you are incorrect. There may be bugs, but I have no doubt the design is such that multiple Toplevels are supported.
Application.Run calls Application.Begin(Toplevel topLevel) is and creates a RunState with the topLevel and puts it on static Stack<Toplevel> toplevels:
		static public RunState Begin (Toplevel toplevel)
		{
			if (toplevel == null)
				throw new ArgumentNullException (nameof (toplevel));
			var rs = new RunState (toplevel);

			Init ();
			if (toplevel is ISupportInitializeNotification initializableNotification &&
			    !initializableNotification.IsInitialized) {
				initializableNotification.BeginInit();
				initializableNotification.EndInit();
			} else if (toplevel is ISupportInitialize initializable) {
				initializable.BeginInit();
				initializable.EndInit();
			}
			toplevels.Push (toplevel);
    ...

In other places, that stack is navigated to ensure all TopLevels are dealt with. E.g.:
		static void TerminalResized ()
		{
			OnResized?.Invoke ();
			var full = new Rect (0, 0, Driver.Cols, Driver.Rows);
			Driver.Clip = full;
			foreach (var t in toplevels) {
				t.PositionToplevels ();
				t.RelativeLayout (full);
				t.LayoutSubviews ();
			}
			Refresh ();
		}

I built UICatalog this way because it was pretty clear to me that things were coded to support multiple calls to Application.Run.

I have proven that this does not reproduce if the Toplevel in question is the one created Application.Init().
So it's def a bug that only happens when subsequent Toplevels are used.
I've also noted that the (bad) behavior also manifests differently depending. For example a simple app like this doesn't wedge, but things don't work right:
		static void Main (string [] args)
		{
			Application.Init ();
			_top = Toplevel.Create (); // Application.Top;
			var menu = new MenuBar (new MenuBarItem [] {
				new MenuBarItem ("_File", new MenuItem [] {
					new MenuItem ("_Quit", "", () => Application.RequestStop() )
				}),
				new MenuBarItem ("_About...", "About this app", () =>  MessageBox.Query (0, 6, "About UI Catalog", "UI Catalog is a comprehensive sample library for Terminal.Gui", "Ok")),
			});
			_top.Add (menu);
			Application.Run (_top);
		}

The workaround is to add a Window to the Toplevel.

Found the cause of the bug:
in Core.cs:
		public override void Add (View view)
		{
			if (this == Application.Top) {
				if (view is MenuBar)
					HasMenuBar = true;
				if (view is StatusBar)
					HasStatusBar = true;
			}
			base.Add (view);
		}

This code (and other functions that deal with HasMenuBar/HasStatusBar) assumes there can be only one Toplevel and that it is Application.Top.
To fix this, we should do something like this:
		public override void Add (View view)
		{
			if (this is Toplevel) {
				if (view is MenuBar)
					HasMenuBar = true;
				if (view is StatusBar)
					HasStatusBar = true;
			}
			base.Add (view);
		}

I think. Not a critical bug, because there's a work around, and it is a pretty esoteric issue. But this is def. a bug.

FWIW, I've worked around all of this in the latest UI Catalog by refactoring such that each time a Scenario runs I call Application.Init etc... and then when you exit the scenario the main app does another Init. IOW, it's now working such that the toplevel is always Application.Top.
This bug should still be fixed eventually though because there are reasons to have multiple toplevels.

static void Main (string [] args)
		{
			Application.Init ();
			_top = Toplevel.Create (); // Application.Top;

@tig, you are creating a new Top again because the call Application.Init already create a Application.Top. You can create all top-levels you want but you can only have one Application.Top at one time. Even Window is a toplevel, it's derived from Toplevel but it can't be an Application.Top. So why you want to waste resources on having many Toplevels instances if you can use only one? If you could opening all the console windows for each Toplevel it's worths, but you can't. So to maintain low resources is better use always the same Application.Top and rebuild on it.
In each Application.Top there can only be one MenuBar and only one StatusBar. I think this is logic at least for me. I've already submitted a PR #420 to change HasMenuBar and HasStatusBar types to MenuBar and StatusBar respectively. It's like an MDI where wou can have multiple windows but you have only one top-level.

Anywhere where this is compared to Application.Top is a bug related to this.

Window is also a Toplevel. Do you want to compare it to Application.Top? I doubt it.

Dialog is derived from Window. Do you want to compare it to Application.Top? I doubt it.

Note that the documentation is pretty clear that there can be multiple TopLevel windows, each with it's own Menu:

You would use a toplevel Modal view for example to launch an entire new experience in your application, one where you would have a new top-level menu for example. You typically would add a Menu and a Window to your Toplevel, it would look like this:

Yes I know @tig and that was what I said that each Toplevel can have a Menu and a StatusBar, but you can´t work with more than one each time, because they are modal. So you are creating a news Toplevel instances but all is using the same Frame or part of the Frame of the Application.Top. I only wanted to tell that.


Packaging Restructure for Launchers

Description:
In the current packaging structure for the launchers, there are complications when accessing the packages such as HTTP, fs, ws. We need to restructure the current launcher packaging to compatible with the aforementioned.

Closing since the improvements are merged


Add hostPath options for helm chart

This PR tries to add the possibility of using a different path for the hostPath volumes aquasec uses as pointed in issue #503
https://github.com/aquasecurity/aqua-helm/issues/503
For consistency, it moves the "hostRunPath" value to a new place while being backward compatible.
Version of helm is updated and a minor typo is corrected.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Sebastian Greco seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

We are closing this PR accordingly to explanation provided in issue


Fail loudly on invalid query params

:clipboard: Description
In #4273 I argued that the Shields way is to fail loudly when parameters are incorrect, rather than silently ignoring them. Descriptive error messages point the user as directly as possible to the source of the problem rather than leaving them to wonder.
In particular, it seems like a good idea to return descriptive errors for:

Invalid logos
Invalid color overrides
Styles we have never supported
Other query parameters which are of the incorrect type

Though perhaps not, e.g. cacheSeconds which are too low

At an abstract level, I do agree with this. However, there are a few practical things to think about:

We'd need to be careful about renaming/removing params. I wouldn't want a change like https://github.com/badges/shields/pull/3090 (done) or https://github.com/badges/shields/issues/3596 (proposed) to be breaking. We can mitigate this ourselves as long as we think about it.
Simple-icons occasionally remove an icon. Usually this is due to the service going away. For example, the google+ icon was removed when google+ was shut down, but it could also happen for example because a company has complained that a logo has violated their terms of use or something. In the case where the service has shut down, a related badge probably also stopped working by the time they removed the icon, so I wouldn't be too concerned by that case. In the other case, lets say (just for the lolz) GitHub complain that simple-icons are violating their logo policy and they remove the icon, I reckon it would be preferable that  becomes  as opposed to . I'd expect this to be a very uncommon case, but it is worth considering.
I wonder how many badges there are out there in READMEs doing something like https://img.shields.io/github/v/tag/badges/shields?color=cheese which are currently working but would break if we introduced this change. I'd imagine that is the largest category of problem here, but I don't really know. Its also difficult for us to understand the scope of or do much about from our end.

We'd need to be careful about renaming/removing params. I wouldn't want a change like #3090 (done) or #3596 (proposed) to be breaking. We can mitigate this ourselves as long as we think about it.

Agreed 👍

Simple-icons occasionally remove an icon. Usually this is due to the service going away. For example, the google+ icon was removed when google+ was shut down, but it could also happen for example because a company has complained that a logo has violated their terms of use or something. In the case where the service has shut down, a related badge probably also stopped working by the time they removed the icon, so I wouldn't be too concerned by that case. In the other case, lets say (just for the lolz) GitHub complain that simple-icons are violating their logo policy and they remove the icon, I reckon it would be preferable that  becomes  as opposed to . I'd expect this to be a very uncommon case, but it is worth considering.

For a bad named logo, one option would be to display something in place of the logo. Not sure any of these are exactly the right thing, but it gives an idea: ⬜⛔💔😶🙈🕳
Alternatively we could check in a list of formerly used icons. Going forward this could be automatically verified with a unit test. Then we could display something like 💨for deprecated icons and show an error message for completely made-up names. It's too bad we have named and svg logos in the same parameter; it makes it a little harder to know what the intention was when the parameter is neither. Though I suppose any encoded svg logo is going to be longer than a named logo.

I wonder how many badges there are out there in READMEs doing something like https://img.shields.io/github/v/tag/badges/shields?color=cheese which are currently working but would break if we introduced this change. I'd imagine that is the largest category of problem here, but I don't really know. Its also difficult for us to understand the scope of or do much about from our end.

Heh, yea, I can imagine that being a little bit annoying. Though at least there is some upside; when the error badge shows they'll know there is a problem and can fix their URL. I'm sure some people would prefer to just get the default color, though others might prefer to know they have a problem.
We could help this a little by having a transition period when the badge shows with the default color with a little warning on it: ⚠
And then on the website we could display a prominent message about it.


service: provide a way to check permissions in a result item

Currently, in order to apply permissions in a result item we need to do something like result_item._record.access. We should avoid accessing the _record from the presentation layer!
The problem raised from the fact that the permission_policy requires a record to check against but checking for permissions in views is dealing with a result item i.e output of a service action e.g service.read(...).
See

https://github.com/inveniosoftware/invenio-app-rdm/blob/master/invenio_app_rdm/records_ui/views/decorators.py#L140
https://github.com/inveniosoftware/invenio-records-permissions/blob/master/invenio_records_permissions/policies/base.py#L86
https://github.com/inveniosoftware/invenio-rdm-records/blob/master/invenio_rdm_records/services/generators.py#L93

:+1: the record_item (result of service operations) should provide a public interface to the permissions analysis tailored to the originating identity e.g.
>>> record_item.to_dict()
{
  ...,
  "permissions": ["can_read", "can_update", "can_read_files"]
}

went another way :)


face detection model can not work wide angle or CCTV cameras, how can I adjust minimum face size for face detection

path=" cctv names"
cap = VideoStream(src=path).start()
time.sleep(2.0)
with mp_face_detection.FaceDetection(
min_detection_confidence=0.5) as face_detection:
while(True):
while cap.isOpened():
success, image = cap.read()
image = cap.read()
image = imutils.resize(image, width=1000)

if not success:
print("Ignoring empty camera frame.")
# If loading a video, use 'break' instead of 'continue'.
continue
# Flip the image horizontally for a later selfie-view display, and convert
# the BGR image to RGB.

image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
# To improve performance, optionally mark the image as not writeable to
# pass by reference.
image.flags.writeable = False
results = face_detection.process(image)

# Draw the face detection annotations on the image.
image.flags.writeable = True

image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
if results.detections:
  for detection in results.detections:
    mp_drawing.draw_detection(image, detection)
cv2.imshow('MediaPipe Face Detection', image)
if cv2.waitKey(5) & 0xFF == 27:
  break

cap.release()

Hi @bharathCoitor, Can you share us in details,  what trouble are you seeing with wide angle or CCTV cameras.   Thanks !!

@bharathCoitor Could you provide details mentioned in the above comment. Thanks !

Hi @bharathCoitor, Closing this issue, assuming you are resolved. Thanks!


pip-tools is raising dependency conflicts when it shouldn't for apache_beam[gcp]

When we use google-cloud-pubsub==2.13.10 and protobuf==3.20.3 as part of apache_beam[gcp] in the req.in, we get errors about dependency conflicts since google-cloud-pubsub depends on grpcio-status. pip-tools fails emitting this in the error log  protobuf>=4.21.6 (from grpcio-status==1.50.0->google-cloud-pubsub==2.13.10->-r req.txt  but when we include grpcio-status==1.48.2 in the req.in, pip-tools work and produces a list of dependencies. The expectation here is pip-tools should be able to deduct the version of grpcio-status on its own, isn't it?
Environment Versions

OS Type: Linux
Python version: 38
pip version: 22.1.2
pip-tools version: 6.9.0

Steps to replicate

Create a req.in and place apache_beam[gcp] in it.
Run pip tools. It will generate the error

Expected result
No dependency conflict since pip was able to install apache_beam[gcp] without any dependency conflicts but pip-tools fails due to the above description

Can you try with --resolver=backtracking ?

It worked. Thanks.
After going through the change log, I got one question. Shouldn't backtracking be the default value for --resolver?

The plan is to make it default very soon.

I'll close this based on the above. Thanks!


Volt, Ampere and Power Characteristic in Home App displayed as Custom

Checklist

[x] I have read the common issues wiki page
[x] I have checked to make sure the plugin is up to date

Describe the bug
I have a smartplug that monitor the power consumption. I was able to find the dps for watt, current, and volt and get the value.
I want to make an automation that triggered by the power consumption.
When I created automation using shortcut, the home app display "custom" characteristic that is supposed to be Watt or Current or Volt.
To Reproduce

Open Shortcuts App
Create shortcuts
Find "Get the state of My Home" from home app in action list
Choose plug accessory
Choose the characteristic (Which by default "Power State")

Expected behavior
Characteristic that displays as Watt or Current or Volt.
Screenshots

Environment (please complete the following information):

OS: Macbook
iOS version: 14.6
Homehubs: -
Node Version: v16.4.2
Plugin Version: v2.0.1
Accessory Type: Smart plug (Outlet)

Additional context
Add any other context about the problem here.

Looks like the characteristics aren't being labelled, will plan for development soon.


Create page(s) for this awesome awesome repo on the zeef.com

ZEEF: Find information though people
Is it a good idea to create new page(s) for this repo on the zeef.com?

It may be easier to browse.
More interactive/catalogued.

No thanks


Gravatar default watch for changes

Hi,
I am trying to add the gravatar-src with gravatar-default in a ui-select dropdown, the problem is that the gravatar directive renders before the $select.selected object is set, so it ends up not rendering the fallback avatar correctly.
Note: the values are displayed correctly in the dropdown itself but not on the selected object that is retrieved using the $select.selected variable, and I've double checked that the data goes to the function correctly, I just believe it goes late after rendering.
This is the fallback function
    $rootScope.getFallbackGravatar = function(name, email) {
      if (name != 'undefined' && name != undefined && name.length > 0) {
        return "http://placehold.it/70/f1f1f1/2c3e50&text=" + name.substring(0,2).toUpperCase();
      }else if (email != 'undefined' && email != undefined && email.length > 0){
        return "http://placehold.it/70/f1f1f1/2c3e50&text=" + email.substring(0,2).toUpperCase();
      }else{
        return "http://placehold.it/70/f1f1f1/2c3e50&text=NA";
      }
    };

And this is the ui-select code
            <ui-select ng-model="defaultAssignee.selected" theme="select2" search-enabled="false" ng-change="assigneeChange()">
              <ui-select-match placeholder="Select Assignee">

                {{$select.selected.name.name}}
              </ui-select-match>
              <ui-select-choices repeat="assignee in issue.assignee ">

                {{assignee.name.name}}
              </ui-select-choices>
            </ui-select>

Hi! Thanks for reporting.
hmm, seems like a priority issue. Could you try to set a negative priority on the gravatar directive and see if it solves your problem? (https://code.angularjs.org/1.2.27/docs/api/ng/service/$compile). If so, it might be a good idea to lower the default priority.

I've tried to lower the priority to -20 and give the ui-select a much higher priority as well but that doesn't solve the problem

Ok. I'll try to look into this as soon as I get the chance. Would it be possible for you to create a JSFiddle that re-creates the problem?

I'll create one, but the issue appeared in a lot of cases now as am using the directive extensively across the app that am building, the external templates that get called from another directives aren't also working when it comes to the gravatar-default.
Will try to cover all cases in the fiddle

any updates on this issue? I am also facing the similar issue!

Hi @rajkumargithub , thanks for reporting.
Sorry for the delay, but I haven't gotten around to deeper into this issue.
It you could provide a JSFiddle or similar, reproducing the error, it would be of great help
thanks!

i'm having a similar issue. i have in my toolbar at the top of the page the gravatar image.
gravatar-src="currentUser.email" but it seems to sometimes load before that value is set. after my $http post that gets the currentUser object finishes and that currentUser.email value exists, it doesn't seem to update the gravatar.


A solution for displaying a series with two colours #92

Here's a solution that doesn't change the library but requires two series to be produced depending on whether or not the objective is achieved

https://github.com/Orange-OpenSource/ods-charts/pull/168 is merged so this PR should be updated to use title bars probably. Please check the other PRs too for some updates if there are some new pages ;)

A complement : we probably should use colors from libs and not custom colors in this example

https://github.com/Orange-OpenSource/ods-charts/pull/158 has been merged, please apply the same modifications here.


列表索引超出范围 是什么原因呢？

2024-05-22 20:37:12.496906: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due
to floating-point round-off errors from different computation orders. To turn them off, set the environment variable TF_ENABLE_ONEDNN_OPTS=0.
[WARNING 2024-05-22 20:37:15,903 _tfmw_add_deprecation_warning:149] From D:\Program Files\anaconda3\lib\site-packages\keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.
Fix size testing.
training chunk_sizes: [32]
The output will be saved to  D:\Program Files\anaconda3\lib\site-packages\pix2text\doc_xl_layout....\exp\ctdet_subfield\default
heads {'hm': 11, 'cls': 4, 'ftype': 3, 'wh': 8, 'hm_sub': 2, 'wh_sub': 8, 'reg': 2, 'reg_sub': 2}
[WARNING 2024-05-22 20:37:20,113 check_img_size:147] --img-size 699 must be multiple of max stride 32, updating to 704
[WARNING 2024-05-22 20:37:20,221 _showwarnmsg:109] D:\Program Files\anaconda3\lib\site-packages\torch\functional.py:507: UserWarning: torch.meshgrid:
in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ..\aten\src\ATen\native\TensorShape.cpp:3550.)
return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:20,426 check_img_size:147] --img-size 186 must be multiple of max stride 32, updating to 192
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:20,523 check_img_size:147] --img-size 149 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:20,635 check_img_size:147] --img-size 138 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:21,647 check_img_size:147] --img-size 1086 must be multiple of max stride 32, updating to 1088
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:23,684 check_img_size:147] --img-size 78 must be multiple of max stride 32, updating to 96
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:23,852 check_img_size:147] --img-size 159 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:23,950 check_img_size:147] --img-size 112 must be multiple of max stride 32, updating to 128
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,046 check_img_size:147] --img-size 113 must be multiple of max stride 32, updating to 128
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,140 check_img_size:147] --img-size 103 must be multiple of max stride 32, updating to 128
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,216 check_img_size:147] --img-size 154 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,315 check_img_size:147] --img-size 98 must be multiple of max stride 32, updating to 128
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,407 check_img_size:147] --img-size 99 must be multiple of max stride 32, updating to 128
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,513 check_img_size:147] --img-size 166 must be multiple of max stride 32, updating to 192
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,617 check_img_size:147] --img-size 152 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,712 check_img_size:147] --img-size 173 must be multiple of max stride 32, updating to 192
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:24,800 check_img_size:147] --img-size 217 must be multiple of max stride 32, updating to 224
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  5.65it/s]
[WARNING 2024-05-22 20:37:25,087 check_img_size:147] --img-size 132 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,179 check_img_size:147] --img-size 152 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,272 check_img_size:147] --img-size 177 must be multiple of max stride 32, updating to 192
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,363 check_img_size:147] --img-size 177 must be multiple of max stride 32, updating to 192
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,450 check_img_size:147] --img-size 134 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,533 check_img_size:147] --img-size 146 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,621 check_img_size:147] --img-size 142 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:25,701 check_img_size:147] --img-size 154 must be multiple of max stride 32, updating to 160
0it [00:00, ?it/s]
[WARNING 2024-05-22 20:37:26,707 check_img_size:147] --img-size 1086 must be multiple of max stride 32, updating to 1088
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8/8 [00:34<00:00,  4.28s/it]
Traceback (most recent call last):
File "g:\Workspace\code\py_code\text\pdf2md.py", line 24, in
doc = p2t.recognize_pdf(img_fp)
File "D:\Program Files\anaconda3\lib\site-packages\pix2text\pix_to_text.py", line 191, in recognize_pdf
self.recognize_page(
File "D:\Program Files\anaconda3\lib\site-packages\pix2text\pix_to_text.py", line 358, in recognize_page
remaining_blocks = self._parse_remaining(
File "D:\Program Files\anaconda3\lib\site-packages\pix2text\pix_to_text.py", line 410, in _parse_remaining
match_col_number = overlap_vals[0][0]
IndexError: list index out of range

这个 bug 在 v<IP_ADDRESS> 中应该已经修复了，可以更新下 pix2text 版本

这个错误在 v<IP_ADDRESS> 中应该已经修复了，可以更新下一个 pix2text 版本

我就是用的这个版本，并没有修复呢

😅 能贴下你的文件/图片吗？我试试复现下。

😅 能贴下你的文件/图片吗？我试试复现一下。
我添加了一个判断暂时修复了！
 for _box_info in _out:             overlap_vals = []             for col_number, col_info in column_meta.items():                 overlap_val = x_overlap(_box_info, col_info, key='position')                 overlap_vals.append([col_number, overlap_val])             if len(overlap_vals) > 0:                 overlap_vals.sort(key=lambda x: (x[1], x[0]), reverse=True)                 match_col_number = overlap_vals[0][0]             else:                 match_col_number = 0             _box_info['col_number'] = match_col_number
就是overlap_vals列表不能为空，

😅能贴下你的文件/图片吗？我试试复现一下。

我对pix_to_text.py文件第410行代码添加判断条件，暂时修复了！
for _box_info in _out:
            overlap_vals = []
            for col_number, col_info in column_meta.items():
                overlap_val = x_overlap(_box_info, col_info, key='position')
                overlap_vals.append([col_number, overlap_val])
            if len(overlap_vals) > 0:
                overlap_vals.sort(key=lambda x: (x[1], x[0]), reverse=True)
                match_col_number = overlap_vals[0][0]
            else:
                match_col_number = 0
            _box_info['col_number'] = match_col_number

就是overlap_vals不能为空值

😅能贴下你的文件/图片吗？我试试复现一下。

我对pix_to_text.py文件第410行代码添加判断条件，暂时修复了！
for _box_info in _out:
            overlap_vals = []
            for col_number, col_info in column_meta.items():
                overlap_val = x_overlap(_box_info, col_info, key='position')
                overlap_vals.append([col_number, overlap_val])
            if len(overlap_vals) > 0:
                overlap_vals.sort(key=lambda x: (x[1], x[0]), reverse=True)
                match_col_number = overlap_vals[0][0]
            else:
                match_col_number = 0
            _box_info['col_number'] = match_col_number

就是overlap_vals不能为空值

恩恩。好的 感谢大佬