compromise | modest natural-language processing | Natural Language Processing library
kandi X-RAY | compromise Summary
kandi X-RAY | compromise Summary
modest natural-language processing
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Merge plugin objects
- Merge plugin plugins
- Detect if client side side .
- Parse the first time .
- Snapchat prototype .
- Check if the response is a number .
- Object .
- Checks if the argument is an object .
- Pad a string
- Get the time suffix
compromise Key Features
compromise Examples and Code Snippets
Community Discussions
Trending Discussions on compromise
QUESTION
As per MUI's own doco, and this answer - components using sx
render significantly slower than components using other styling mechanisms.
On the surface, it looks like sx
is just an alternate convenience API for doing the same thing - so I wouldn't expect it to have such a different performance profile.
My question is: Why is the rendering of a component using sx
so much slower - what's it doing so differently? Is it a whole different styling engine or something?
I'm curious about the possibility of optimising it, or coming up with a compromise that retains most of the usability but omits whatever feature is causing the slowdown.
Please note, this question is about "why is the performance so different" - not "why do you think the difference doesn't matter".
...ANSWER
Answered 2022-Mar-31 at 15:56As I started to dig into this, I realized that I needed to measure the performance of different scenarios in order to have any confidence in my understanding of the performance aspects of the sx
prop.
I believe that the performance information in the MUI documentation was gathered using some variation of this repository: https://github.com/mnajdova/react-native-web. The react-native-web repo was used as a starting point because of its "benchmarks" package which contains a useful framework for measuring the performance of different React element rendering/styling approaches.
I created my own version here: https://github.com/ryancogswell/mui-style-benchmarks. You can use this as a starting point to dig into this further. Below are the measurements I made and my conclusions.
My Results for the "Mount deep tree" BenchmarkThis test renders 639 elements with approximately 17 CSS properties each except for the cases ("..._minimal", "..._medium") which reduce the number of CSS properties to show the performance impact.
Styling Implementation Time in ms Implementation Desc inline-styles 22.78 No styling engine, just usestyle
prop
mui_sx_full
36.89
MUI Box sx
prop with 17 CSS properties
mui_sx_medium
24.09
MUI Box sx
prop with 9 CSS properties
mui_sx_minimal
18.15
MUI Box sx
prop with 4 CSS properties
mui_styled_box
22.38
MUI styled
MUI Box
with 17 CSS properties
mui_styled_box_minimal
17.90
MUI styled
MUI Box
with 4 CSS properties
tss_react_makestyles
17.10
makeStyles
from tss-react
with 17 CSS properties
mui_styled
16.93
MUI styled
div
with 17 CSS properties
mui_styled_minimal
13.77
MUI styled
div
with 4 CSS properties
emotion_styled
16.69
Emotion styled
div
with 17 CSS properties
emotion_styled_minimal
12.76
Emotion styled
div
with 4 CSS properties
emotion_css
12.58
Emotion css
div
with 17 CSS properties
Conclusions
- MUI
styled
(e.g.import {styled} from '@mui/material/styles'
) only adds a small amount of overhead to Emotion'sstyled
. - tss-react performs similarly to MUI
styled
. - Emotion
styled
, Emotioncss
, MUIstyled
, and the MUIsx
prop are all more expensive when there are more CSS properties passed to the styling engine. - The performance of the
sx
prop degrades more quickly than thestyled
API as more CSS properties are passed to it. With 17 CSS properties the performance is much worse than thestyled
API (2x). - The
sx
prop performs just fine for a small number (e.g. < 5) of CSS properties. Particularly, if you are already using a MUI component in a given situation, there is no meaningful performance difference between wrapping it withstyled
or using thesx
prop if you are just using a small number of CSS properties.
sx
prop slowness?
Is it a whole different styling engine or something?
It is not a different styling engine. The output of the work done for the sx
prop is fed into the styled
API of the main styling engine (e.g. Emotion or styled-components); so using the sx
prop with the Box
component is guaranteed to be slower than the equivalent styles using styled
on a div
because the sx
prop still uses styled
in the end but does additional work first.
sx
prop?
- The MUI
styled
API calls styleFunctionSx in order to transform the CSS properties in thesx
prop to the form expected by the styling engine. styleFunctionSx
traverses all the CSS properties in thesx
prop- For each CSS property, it checks to see if it has a style function for transforming the prop value. These style functions provide support for shorthand notation for some properties such as padding and margin and support for using theme spacing units instead of pixel values.
- Each of the style functions leverages the style function in https://github.com/mui/material-ui/blob/v5.5.3/packages/mui-system/src/style.js to handle some common transformations of prop values including the support for breakpoint-specific values.
The net effect is that for each CSS property there are a number of lookups and function calls to see if the CSS property needs to be transformed even in the cases where the value passes through without changes.
I'm curious about the possibility of optimising it, or coming up with a compromise that retains most of the usability but omits whatever feature is causing the slowdown.
I'm sure that performance improvements are possible for the sx
prop, but I don't think there is any single silver bullet for easily making it faster. Instead it will probably require a large number of little changes that are each barely measurable, but cumulatively provide decent improvement. The challenge is to make those changes without simultaneously making the code more complex and/or harder to maintain and/or more error prone.
The main compromise that "retains most of the usability" is to use Emotion's css prop directly. It can be used directly on elements in a similar fashion as the sx
prop -- you just lose the shorthand notations and theme lookups that the sx
prop provides. The theme lookups (e.g. for colors or spacing units) are easy to get directly from the theme by using the useTheme hook in the component. The theme.breakpoints API can be used instead of the breakpoint shorthands; though the sx
breakpoint features are much nicer from a DX standpoint.
QUESTION
I'm porting some Jenkins builds into a highly restricted ADO Pipeline environment. When making some CAT files the MakeCAT utility was being used and when verifying INF files the InfVerif tool was being used. In our company's highly restricted ADO environment I can't seem to access tools directly anywhere outside the build directories for the job and was told there wouldn't be a compromise on that.
The best I could figure was directly downloading the files and their dependencies as Secure Files and kluding together tool directories for each required tool. That is a dirty hack and skates around legal grey-areas with tool licensing, so I'm not a fan of that approach. But that said I used DUMPBIN /IMPORTS
to see which each respective tool required:
ANSWER
Answered 2022-Mar-26 at 16:34Generally the point of build agents is that running jobs utilise the capabilities of the agent to create the build.
It would be quite obscure to ask developers to self-package every single dependency into the pipeline and kludge together executables and dll's for common SDK tools.
Presumably these build agents have stuff like .NET SDK's installed for the builds to utilise. This is no different. You should ask the team managing the build agents to install the relevant SDKs and ensure the paths are configured and available for the build agent.
(e.g echo PATH inside build agent should include directories where those SDK's are installed)
Asking developers to check in packaged exe's and dlls is more of a security risk. Who knows where they come from and if they are safe?
QUESTION
If I want to call function foo
on an object thisThing
(in C# jargon, this is called the "receiver", so I'll call it that here too) and pass the argument myStuff
, I'll do it like this:
thisThing.foo(myStuff);
Super simple, nothing surprising going on here.
If I want to change the argument to yourStuff
if a bool value b
is false, I'll do it like this:
thisThing.foo(b ? myStuff : yourStuff);
Also very simple, basic use of the ternary operator.
If I want to change the receiver to otherThing
if b
is false, I'll do it like this:
(b ? thisThing : otherThing).foo(myStuff);
A little bit weirder, you probably don't do this super often, but it's nothing crazy either.
But if I want to change the called function to bar
if b
is false, how do I do that?
I would think something like this:
thisThing.(b ? foo : bar)(myStuff);
But of course, this does not work.
Is there a simple, neat-looking, performant way of doing this, preferrably without redundantly specifying anything?
There will probably have to be some compromises made, but the point is to not have to repeat the receiver and arguments. So the following works:
ANSWER
Answered 2022-Mar-16 at 14:46You can use member function pointers, but you need special syntax to call the function via the pointer:
QUESTION
I'm trying to create a 64 x 64 image dataset for machine learning from a 2D (576 x 768) geographic array.
The array contains nan values in random locations (random i,j) and the extracted 64 x 64 arrays (images) should not contain any nan values. There's also a mask limiting the amount of appropriate arrays.
What I've done for now is generate random pairs of i and j and examined them for nan values and too much overlapping.
What I need help with is figuring out how to check if after x extractions there remains a 64 x 64 are that hasn't been sampled too many times.
For illustration purposes, this task is equivalent for locating
...ANSWER
Answered 2022-Mar-14 at 16:14I think you want to perform a 2d cross-correlation (Here is the scipy cross-correlation documentation)
It returns an array with each value being the similitude between the patern and the image at the coordinates of this value. If it's 1, that means the image is exatly the same as the pattern.
QUESTION
I'm building a web app and I'm using firebase to store data, I'm trying to make the user log out on to all devices when a password change or deny the user from "read" and "write" on firestore rules that are already authenticated on a different device but the user already changed the password.
I want to do this because in case a user account gets compromised and the original user change the password, the Intruder will still have access to read and write on the database if stay logging
Revoke refresh tokens Password resets also revoke a user's existing tokens; however, the Firebase Authentication backend handles the revocation automatically in that case. On revocation, the user is signed out and prompted to reauthenticate.
I didn't understand how to work with tokens, maybe there is a way to check "if firebase token === user client token" to see if a user on another device using the old token and deny write and read after a password change.
this is what my code looks like:
//reset password :
...ANSWER
Answered 2022-Mar-04 at 10:46In some scenarios like deleting the user account or changing the user password, we consider revoking the refresh tokens of the user. In such cases, Firebase automatically handles the token revocation. Once a refresh token has been revoked this way, it cannot be used to obtain new ID tokens. Therefore in time users will be prompted to sign in again, and obtain a new pair of ID and refresh tokens.
Therefore, you can modify the security rules to compare the ID token issue times against the revocation times stored in the database. You may design your security rules by matching the auth.uid variable and the user ID on the requested data in the following manner:
QUESTION
I'm trying to get my two Golang GRPC endpoints to support idempotency keys. My service will store and read keys from Mongo (because I'm already using it for other data) as a unique index in its own Collection.
I'm thinking of two solutions but each has their weaknesses. I know there's more complex stuff like saving request and response and making the logic ACID. However for my first endpoint, the only-once logic
(the endpoint's code which needs to be idempotent) calls a service that sends an email, so it can't be rollbacked. My second endpoint does multiple Inserts in Mongo, which seems can be rollbacked but I'm not sure how and if there's another solution that'd also solve for the first endpoint.
Solution 1
...ANSWER
Answered 2022-Feb-25 at 20:25You should use a document with a state property in MongoDB, with possible values processing
and done
.
When a request comes in, try to insert the document into the database with the given idemKey
and state=processing
. If that fails because the key already exists, then either report success (if state is done
) or that it is still being processed (if state is processing
). Or wait for it to complete and then report success.
If inserting the document succeeds, proceed with executing "only-once logic".
Once the "only-once logic" is done, update the document's state to state=done
. If executing the logic fails, you may delete the document from the database so a subsequent request can try to execute it again.
To protect against a server failure during executing the logic or against a failure to delete the document, you should record the start / creation timestamp too, and define an expiration. Let's say when a new request comes in and the document exists with processing
sate but the document is older than 30 seconds, you could assume it will never be completed and proceed as if the document didn't exist in the database in the first place: set its creation timestamp to the current time and execute the logic, then update the state to done
if logic execution succeeds. MongoDB also supports auto-removal of expired documents, but note that the removal is not timed precisely.
Note that this solution isn't perfect either: if executing the logic succeeds but you can't update the document's state to done
afterwards, after expiration you could end up repeating the execution. What you want is the atomic / transactional execution of your logic and a MongoDB operation, which is not possible.
If your "only-once logic" contains multiple inserts, you could use insertOrUpdate()
to not duplicate the records if the execution fails and you have to repeat it, or you could insert the documents with idemKey
included, so you could identify which documents were previously inserted (and you could remove them first thing, or skip them and just insert the rest).
Also note that starting with MongoDB 5.0, transactions are supported, so you can execute multiple inserts in a single transaction.
See related question: How to synchronize two apps running in two different servers via MongoDB
QUESTION
I have a typical Spring Boot 2.x
application. I'm currently deploying the application using Docker. I'm also using the built-in shell script that a "distribution" provides — when done via Gradle, read: assembleBootDist
, installBootDist
, etc.
The issue is that I have to execute (a) some other shell script before starting the application, (b) insert this shell script somehow the built-in one, (c) or something else that achieves the same.
So I wonder if there is a way to accomplish this in a clean way, without introducing any security concerns, etc. I've been trying to plug into the bootStartScripts
(Gradle) task, but no luck there. I'm aware there is a launchScript
property within bootJar
, but as far as I can tell it replaces altogether the actual built-in script provided by Spring Boot — and I'm avoiding that.
Any other shell-fu would also work, provided nothing around security is compromised.
...ANSWER
Answered 2021-Dec-23 at 15:52This is kind of hack but with spring boot default script customization provided - may be you can use "inlinedConfScript" ( explained here) which basically points to a script meant to provide configuration but since it is a script file technically you can write scripting code as usual.
inlinedConfScript
Reference to a file script that should be inlined in the default launch script. This can be used to set environmental variables such as JAVA_OPTS before any external config files are loaded.
QUESTION
I understand the Oauth code flow which involves the mobile app, app server, auth server, resource server. The app server is registered with auth server using the clientidand secret. The idea being that mobile app calls an endpoint of the app server which triggers the code flow eventually resulting in callback from the auth server to the app server with the auth code. The app server presents the secret and code to auth server to get the access token.
The other legacy option where there is no clientid and secret is the implicit flow wherein the mobile app receives the redirect url with the auth code (assuming redirect url destination is a SPA) which will invoke auth server endpoint to get the access token.
This is insecure because anyone can steal the access code from the url.
The solution to this for clients like mobile app is to use pkce. A random number hash is sent in the initial request which is verified later on when the auth code is passed to retrieve the access token.
This prevents the compromise of the access code from the url if an attacker is snooping because without initial hash the auth code is useless.
However how can the situation where the mobile phone is hacked and the secret and auth code is recorded by an attacker be handled to prevent misuse?
...ANSWER
Answered 2022-Feb-07 at 13:59These are the standard options:
PKCE uses a different code_verifier and code_challenge for every login attempt. If an authorization code is somehow captured from the system browser by an attacker it cannot be exhanged for tokens. No client secret is used, since a mobile app is a public client.
Use HTTPS redirect URIs (based on mobile deep links) so that if an attacker steals your client_id and redirect_uri they cannot receive the response containing the authorization code and will not be able to get tokens.
See this previous answer of mine for some further details, though claimed HTTPS schemes are tricky to implement.
Of course if an attacker has full control over a device, including authentication factors such as autofilled passwords, there may still be attack vectors
QUESTION
I am trying to reduce the memory consumption of a piece of R code I have been working on. I am using the peakRAM()
function to measure the maximum RAM used. It is a long code and there is a simple sapply()
function at the end of it. I figured out that it is the sapply()
part which is consuming the maximum memory. So I have written a small function fun1()
imitating the objects and the sapply()
function from that part of my code, which is as follows :
ANSWER
Answered 2022-Feb-03 at 16:32Here is your function, modified to use vapply
instead of sapply
and .colSums
instead of colSums
:
QUESTION
I have been just wondering if it is possible to somehow combine 'if' and 'as' statements like this:
...ANSWER
Answered 2022-Jan-27 at 23:29This is what the relatively new "walrus" operator is for:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install compromise
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page