atom | Shell scripting that will knock your socks | Script Programming library
kandi X-RAY | atom Summary
kandi X-RAY | atom Summary
I'm a freshman in college bored in quarantine, and looking for any work. If you enjoy my projects, consider supporting me by buying me a coffee!.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of atom
atom Key Features
atom Examples and Code Snippets
Community Discussions
Trending Discussions on atom
QUESTION
In C++20, we got the capability to sleep on atomic variables, waiting for their value to change.
We do so by using the std::atomic::wait
method.
Unfortunately, while wait
has been standardized, wait_for
and wait_until
are not. Meaning that we cannot sleep on an atomic variable with a timeout.
Sleeping on an atomic variable is anyway implemented behind the scenes with WaitOnAddress on Windows and the futex system call on Linux.
Working around the above problem (no way to sleep on an atomic variable with a timeout), I could pass the memory address of an std::atomic
to WaitOnAddress
on Windows and it will (kinda) work with no UB, as the function gets void*
as a parameter, and it's valid to cast std::atomic
to void*
On Linux, it is unclear whether it's ok to mix std::atomic
with futex
. futex
gets either a uint32_t*
or a int32_t*
(depending which manual you read), and casting std::atomic
to u/int*
is UB. On the other hand, the manual says
The uaddr argument points to the futex word. On all platforms, futexes are four-byte integers that must be aligned on a four- byte boundary. The operation to perform on the futex is specified in the futex_op argument; val is a value whose meaning and purpose depends on futex_op.
Hinting that alignas(4) std::atomic
should work, and it doesn't matter which integer type is it is as long as the type has the size of 4 bytes and the alignment of 4.
Also, I have seen many places where this trick of combining atomics and futexes is implemented, including boost and TBB.
So what is the best way to sleep on an atomic variable with a timeout in a non UB way? Do we have to implement our own atomic class with OS primitives to achieve it correctly?
(Solutions like mixing atomics and condition variables exist, but sub-optimal)
...ANSWER
Answered 2021-Jun-15 at 20:48You shouldn't necessarily have to implement a full custom atomic
API, it should actually be safe to simply pull out a pointer to the underlying data from the atomic
and pass it to the system.
Since std::atomic
does not offer some equivalent of native_handle
like other synchronization primitives offer, you're going to be stuck doing some implementation-specific hacks to try to get it to interface with the native API.
For the most part, it's reasonably safe to assume that first member of these types in implementations will be the same as the T
type -- at least for integral values [1]. This is an assurance that will make it possible to extract out this value.
... and casting
std::atomic
tou/int*
is UB
This isn't actually the case.
std::atomic
is guaranteed by the standard to be Standard-Layout Type. One helpful but often esoteric properties of standard layout types is that it is safe to reinterpret_cast
a T
to a value or reference of the first sub-object (e.g. the first member of the std::atomic
).
As long as we can guarantee that the std::atomic
contains only the u/int
as a member (or at least, as its first member), then it's completely safe to extract out the type in this manner:
QUESTION
I'm writing a Firebase function (Gist) which
Queries a realtime database ref (events) in the following fashion:
await admin.database().ref('/events_geo').once('value').then(snapshots => {
Iterates through all the events
snapshots.forEach(snapshot => {
Events are filtered by a criteria for further processing
Several queries are fired off towards realtime DB to get details related to the event
await database().ref("/ratings").orderByChild('fk_event').equalTo(snapshot.key).once('value').then(snapshots => {
Data is prepared for SendGrid and the processing is finished
All of the data processing works perfectly fine but I can't get the outer await (point 1 in my list) to wait for the inner awaits (queries towards realtime DB) and thus when SendGrid should be called the data is empty. The data arrives a little while later. Example output from Firebase function logs can be seen below:
10:54:12.642 AM Function execution started
10:54:13.945 AM There are no emails to be sent in afterEventHostMailGoodRating
10:54:14.048 AM There are no emails to be sent in afterEventHostMailBadRating
10:54:14.052 AM Function execution took 1412 ms, finished with status: 'ok'
10:54:14.148 AM
Super hyggelig aften :)
super oplevelse, ... long string generated
Gist showing the function in question
I'm probably mixing up my async/awaits because of the awaits inside the await. But I don't see how else the code could be written without splitting it out into many atomic pieces but that would still require stitching a bunch of awaits together and make it harder to read.
So, two questions in total. Can this code work and what would be the ideal way to handle this pattern of making further processing on top of data fetched from Realtime DB?
Best regards, Simon
...ANSWER
Answered 2021-Jun-15 at 11:20Your problem is that you use async
in a foreEach
loop here:
QUESTION
I'm trying to understand how the "fetch" phase of the CPU pipeline interacts with memory.
Let's say I have these instructions:
...ANSWER
Answered 2021-Jun-15 at 16:34It varies between implementations, but generally, this is managed by the cache coherency protocol of the multiprocessor. In simplest terms, what happens is that when CPU1 writes to a memory location, that location will be invalidated in every other cache in the system. So that write will invalidate the line in CPU2's instruction cache as well as any (partially) decoded instructions in CPU2's uop cache (if it has such a thing). So when CPU2 goes to fetch/execute the next instruction, all those caches will miss and it will stall while things are refetched. Depending on the cache coherency protocol, that may involve waiting for the write to get to memory, or may fetch the modified data directly from CPU1's dcache, or things might go via some shared cache.
QUESTION
I have the following piece of code in a shiny app. My goal is to generate the choices for the "cutFamily2" selectInput widget based on what the user chose for the "machine2" selectInput.
If I use corte2()
instead of eval(paste0("corte",2))
on the observerEvent
the app runs properly. The problem is that I want to use the paste0()
because the integer "2" in eval(paste0("corte",2))
will be an argument of a function (function(data,n)
) so I can easily generate corte1
, corte2
and so on.
When I run it using eval(paste0("corte",2))
I am getting the "error in $: $ operator is invalid for atomic vectors" and the app won't even run. I tried to use enframe()
to convert it to a tibble, then the app runs, but I get a "Unknown or uninitialised column: CutFamily
" error and the SelectInput choices will be empty. I also tried [[
instead, but nothing.
Any ideas on how to solve the problem?
...ANSWER
Answered 2021-Jun-15 at 15:12You can try this code -
QUESTION
I have a data frame with the name of the objects, the values of each one, and another column with the type of the object ('A', 'B', 'C'). Something like that (I can't put here my data because the data frame is too large, but this example may help)
NameId Value Type 1 243394 A 2 7494 B 3 243394 C 4 243394 A 5 2437794 B 6 243 C 7 65654 CI want to plot the boxplot of all the objects (this means A, B and C together), and the objects of the type 'A' and 'B'. Three boxplots in total. But doing :
ggplot(data, aes(x=type, y= values))+ geom_boxplot()
I get the boxplots of the types A, B, and C, obviously, but what I want is have a boxplot with all the objects, another with the objects type A and another with the object type B.
And when I try to do it in another way I get the error:
...ANSWER
Answered 2021-Jun-15 at 14:37Using the iris
data set as an example.
Iris contains three Species: setosa versicolor virginica.
To solve your question, we need to use the dataset twice.
First, with the Species name renamed "All Species" using mutate
.
And second, with the Species 'setosa' excluded through filter
.
Then we use union
function to merge the two data sets (the "all data", and the data excluding one group).
QUESTION
I have set a react-native project with the cli. It works, but I have a very anoying eslint error:
Strings must use singlequote.eslint(quotes)
I have tried to write this:
...ANSWER
Answered 2021-Jun-15 at 13:57You can turn off any specific rule like so:
QUESTION
Yet another question about the style and the good practices. The code, that I will show, works and do the functionality. But I'd like to know is it ok as solution or may be it's just too ugly?
As the question is a little bit obscure, I will give some points at the end.
So, the use case.
I have a site with the items. There is a functionality to add the item by user. Now I'd like a functionality to add several items via a csv-file.
How should it works?
- User go to special upload page.
- User choose a csv-file, click upload.
- Then he is redirected to the page that show the content of csv-file (as a table).
- If it's ok for user, he clicks "yes" (button with "confirm_items_upload" value) and the items from file are added to database (if they are ok).
I saw already examples for bulk upload for django, and they seem pretty clear. But I don't find an example with an intermediary "verify-confirm" page. So how I did it :
- in views.py : view for upload csv-file page
ANSWER
Answered 2021-May-28 at 09:27a) Even if obviously it could be better, is this solution is acceptable or not at all ?
I think it has some problems you want to address, but the general idea of using the filesystem and storing just filenames can be acceptable, depending on how many users you need to serve and what guarantees regarding data consistency and concurrent accesses you want to make.
I would consider the uploaded file temporary data that may be lost on system failure. If you want to provide any guarantees of not losing the data, you want to store it in a database instead of on the filesystem.
b) I pass 'uploaded_file' from one view to another using "request.session" is it a good practice? Is there another way to do it without using GET variables?
There are up- and downsides to using request.session.
- attackers can not change the filename and thus retrieve data of other users. This is also the reason why you should not use a GET parameter here: If you used one, attackers could simpy change that parameter and get access to files of other users.
- users can upload a file, go and do other stuff, and later come back to actually import the file, however:
- if users end their session, you lose the filename. Also, users can not upload the file on one device, change to another device, and then go on with the import, since the other device will have a different session.
The last point correlates with the leftover files problem: If you lose your information about which files are still needed, it makes cleaning up harder (although, in theory, you can retrieve which files are still needed from the session store).
If it is a problem that sessions might end or change because users clear their cookies or change devices, you could consider adding the filename to the UserProfile
in the database. This way, it is not bound to sessions.
c) At first my wish was to avoid to save the csv-file. But I could not figure out how to do it? Reading all the file to request.session seems not a good idea for me. Is there some possibility to upload the file into memory in Django?
You want to store state. The go-to ways of storing state are the database or a session store. You could load the whole CSVFile and put it into the database as text. Whether this is acceptable depends on your databases ability to handle large, unstructured data. Traditional databases were not originally built for that, however, most of them can handle small binary files pretty well nowadays. A database could give you advantages like ACID guarantees where concurrent writes to the same file on the file system will likely break the file. See this discussion on the dba stackexchange
Your database likely has documentation on the topic, e.g. there is this page about binary data in postgres.
d) If I have to use the tmp-file. How should I handle the situation if user abandon upload at the middle (for example, he sees the confirmation page, but does not click "yes" and decide to re-write his file). How to remove the tmp-file?
Some ideas:
- Limit the count of uploaded files per user to one by design. Currently, your filename is based on a timestamp. This breaks if two users simultaneously decide to upload a file: They will both get the same timestamp, and the file on disk may be corrupted. If you instead use the user's primary key, this guarantees that you have at most one file per user. If they later upload another file, their old file will be overwritten. If your user count is small enough that you can store one leftover file per user, you don't need additional cleaning. However, if the same user simultaneusly uploads two files, this still breaks.
- Use a unique identifier, like a UUID, and delete the old stored file whenever the user uploads a new file. This requires you to still have the old filename, so session storage can not be used with this. You will still always have the last file of the user in the filesystem.
- Use a unique identifier for the filename and set some arbitrary maximum storage duration. Set up a cronjob or similar that regularly goes through the files and deletes all files that have been stored longer than your specified maximum duration. If a user uploads a file, but does not do the actual import soon enough, their data is deleted, and they would have to do the upload again. Here, your code has to handle the case that the file with the stored filename does not exist anymore (and may even be deleted while you are reading the file).
You probably want to limit your server to one file stored per user so that attackers can not fill your filesystem.
e) Small additional question : what kind of checks there are in Django about uploaded file? For example, how could I check that the file is at least a text-file? Should I do it?
You definitely want to set up some maximum file size for the file, as described e.g. here. You could limit the allowed file extensions, but that would only be a usability thing. Attackers could also give you garbage data with any accepted extension.
Keep in mind: If you only store the csv as text data that you load and parse everytime a certain view is accessed, this can be an easy way for attackers to exhaust your servers, giving them an easy DoS attack.
Overall, it depends on what guarantees you want to make, how many users you have and how trustworthy they are. If users might be malicious, you want to keep all possible kinds of data extraction and resource exhaustion attacks in mind. The filesystem will not scale out (at least not as easily as a database).
I know of a similar setup in a project where only a handful of priviliged users are allowed to upload stuff, and we can tolerate deletion of all temporary files on failure. Users will simply have to reupload their files. This works fine.
QUESTION
var cache atomic.Value
func setResToCache(res *utils.InterfaceMap) error {
resMap := res.ToInterfaceMap()
val := resMap[constant.key] // constant.key is a constant string
val, ok := val.(string)
if !ok {
return errors.New("type assertion failed")
}
someRes := model.someRes{
Title: val,
}
Cache.Store(someRes)
return nil
}
...ANSWER
Answered 2021-Jun-15 at 03:12To pass in a map[interface{}]interface{}
, it will need to be defined as such.
You can convert a map[string]string
to a map[interface{}]interface{}
using something like the following:
QUESTION
I was taking freecodecamp.org course on JavaScript data structures, going through the RegExp chapter. I then came across the following assertion:
"The regular expression /(?=\w{3,6})(?=\D*\d)/
will check whether a password contains between 3 and 6 characters and at least one number".
(Here "check" meaning that regExp.test(password)
returns true)
This seems odd to me. First of all, looking around in Stack Exchange, I found in this post that states that A(?=B) is the definition of positive lookahead, and it makes no mention that A (the preceeding expression in the parenthesis) is optional. So, shouldn't freecodecamp's example have an expression before the first lookahead?
I believe that this another example is quite similar to the previously mentioned, but simpler so I will mention it in case the explanation is simpler, too:
Why does (?=\w)(?=\d)
, when checked against the string "1", returns true?, Shouldn't it look for an alphanumeric character followed by a numeric character?
PS: After a thought, I hypothesized that my first example checks both lookahead patterns independently (i.e. first it checks whether the string is made of three to six characters, returns true, then checks whether there is an alpha numeric character, and finally since both searchings returned true, the whole regexp test returns true). But this doesn't seem to be coherent with the definition mentioned in the post I've linked. Is there a more general definition or algorithm which the computer "internally" uses to deal with lookaheads?
...ANSWER
Answered 2021-Jun-14 at 16:03Lookaround
are similar to word-boundary metacharacters like \b
or the anchors ˆ
and $
in that they don’t match text, but rather match positions within the text.
Positive lookahead
peeks forward in the text to see if its subexpression can match, and is successful as a regex component if it can. Positive lookahead
is specified with the special sequence (?=...)
.
An important thing to understand about lookaround
constructs is that although they go through the motions to see if their subexpression is able to match, they don’t actually “consume” any text.
QUESTION
I am investigating if the header in react-navigation
can be animated similar to the most widely used social applications like Twitter, etc.
For this purpose recently, I encountered coinbase's example which is given here.
My questions are:
- In general, how the react-navigation header can be animated?
- Specifically, how to blend the Coinbase example with the react-navigation?
Similarly, I could not find any clean example for react-navigation usage with react-navigation-collapsible either.
So any atomic example code is appreciated.
...ANSWER
Answered 2021-Jun-11 at 10:30Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install atom
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