natural | Natural sorting in Go
kandi X-RAY | natural Summary
kandi X-RAY | natural Summary
Yet another natural sort, with 100% test coverage and a benchmark. It allocates no memory, doesn't depend on package sort and hence doesn't depend on reflect.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Less compares two strings .
- commonPrefix finds the common prefix of two strings .
- num digits returns the number of digits in s .
- Len returns the length of the string slice .
natural Key Features
natural Examples and Code Snippets
Community Discussions
Trending Discussions on natural
QUESTION
For example, given a List of Integer List list = Arrays.asList(5,4,5,2,2)
, how can I get a maxHeap
from this List in O(n)
time complexity?
The naive method:
...ANSWER
Answered 2021-Aug-28 at 15:09According to the java doc of PriorityQueue(PriorityQueue)
Creates a PriorityQueue containing the elements in the specified priority queue. This priority queue will be ordered according to the same ordering as the given priority queue.
So we can extend PriorityQueue
as CustomComparatorPriorityQueue
to hold the desired comparator and the Collection we need to heapify. Then call new PriorityQueue(PriorityQueue)
with an instance of CustomComparatorPriorityQueue
.
Below is tested to work in Java 15.
QUESTION
I'd like to confirm the battery usage of an app I am developing on iOS, specifically on Xcode 13 and iOS 15. (Note: This app previously showed no issues with battery usage on previous versions of iOS.)
Previously, it seems that there were two ways to gather energy usage information:
#1. On the device under Settings > Developer > Logging
- As per Apple's documentation described in the section titled "Log Energy Usage Directly on an iOS Device".
- However, on iOS15, I can't find any options for logging under Developer or anywhere under settings even when searching.
#2. Profiling via Instruments using the "Energy Log" template
- As per the same documentation from Apple described in the section "Use the Energy Diagnostics Profiling Template".
- While it is still available in Xcode 12, this template is missing in Xcode 13. Naturally, it's also not possible to profile an iOS15 device with Xcode 12.
Digging through the Xcode 13 release notes, I found the following:
Instruments no longer includes the Energy template; use metrics reporting in the Xcode Organizer instead. (74161279)
When I access the Organizer in Xcode (12 or 13), select an app and click "Energy" for all versions of the app, it shows the following:
Apple's documentation for "Analyzing the Performance of Your Shipping App" says:
"In some cases the pane shows “Insufficient usage data available,” because there may not be enough anonymized data reported by participating user devices. When this happens, try checking back in a few days."
Well over a year into production and having sufficient install numbers, I have a feeling that waiting a few days might not do much.
I would like to determine if this is a bug in my app or a bug in iOS15. How can energy usage data be gathered using Xcode 13 on iOS 15?
...ANSWER
Answered 2022-Feb-23 at 00:43After contacting Apple Developer Technical Support (DTS) regarding this issue, they provided me with the following guidance.
Regarding "insufficient usage data available" for energy logs accessible via the Xcode organizer:
DTS indicated that they do not publish the thresholds for active users and usage logs would be expected to be present if you have more that a few thousand active users consistently on each version of your app. If your app meets this criteria and still does not show energy logs, DTS recommended opening a bug report with them.
Regarding how to collect energy log data for your app:
DTS recommended using MetricKit to get daily metric payloads. Payloads are delivered to your app every 24 hours and it is then possible to consume them and send them off device.
The instantiation of this is vey basic and can be as simple as:
QUESTION
I am trying to encode a small lambda calculus with algebraic datatypes in Scheme. I want it to use lazy evaluation, for which I tried to use the primitives delay
and force
. However, this has a large negative impact on the performance of evaluation: the execution time on a small test case goes up by a factor of 20x.
While I did not expect laziness to speed up this particular test case, I did not expect a huge slowdown either. My question is thus: What is causing this huge overhead with lazy evaluation, and how can I avoid this problem while still getting lazy evaluation? I would already be happy to get within 2x the execution time of the strict version, but faster is of course always better.
Below are the strict and lazy versions of the test case I used. The test deals with natural numbers in unary notation: it constructs a sequence of 2^24
suc
s followed by a zero
and then destructs the result again. The lazy version was constructed from the strict version by adding delay
and force
in appropriate places, and adding let
-bindings to avoid forcing an argument more than once. (I also tried a version where zero
and suc
were strict but other functions were lazy, but this was even slower than the fully lazy version so I omitted it here.)
I compiled both programs using compile-file
in Chez Scheme 9.5 and executed the resulting .so
files with petite --program
. Execution time (user only) for the strict version was 0.578s, while the lazy version takes 11,891s, which is almost exactly 20x slower.
ANSWER
Answered 2021-Dec-28 at 16:24This sounds very like a problem that crops up in Haskell from time to time. The problem is one of garbage collection.
There are two ways that this can go. Firstly, the lazy list can be consumed as it is used, so that the amount of memory consumed is limited. Or, secondly, the lazy list can be evaluated in a way that it remains in memory all of the time, with one end of the list pinned in place because it is still being used - the garbage collector objects to this and spends a lot of time trying to deal with this situation.
Haskell can be as fast as C, but requires the calculation to be strict for this to be possible.
I don't entirely understand the code, but it appears to be recursively creating a longer and longer list, which is then evaluated. Do you have the tools to measure the amount of memory that the garbage collector is having to deal with, and how much time the garbage collector runs for?
QUESTION
I have observed that GCC's C++ compiler generates the following assembler code:
...ANSWER
Answered 2021-Dec-22 at 18:10Try assembling both and you'll see why.
QUESTION
We've had a working Ansible AWX instance running on v5.0.0 for over a year, and suddenly all jobs stop working -- no output is rendered. They will start "running" but hang indefinitely without printing out any logging.
The AWX instance is running in a docker compose container setup as defined here: https://github.com/ansible/awx/blob/5.0.0/INSTALL.md#docker-compose
ObservationsStandard troubleshooting such as restarting of containers, host OS, etc. hasn't helped. No configuration changes in either environment.
Upon debugging an actual playbook command, we observe that the command to run a playbook from the UI is like the below:
ssh-agent sh -c ssh-add /tmp/awx_11021_0fmwm5uz/artifacts/11021/ssh_key_data && rm -f /tmp/awx_11021_0fmwm5uz/artifacts/11021/ssh_key_data && ansible-playbook -vvvvv -u ubuntu --become --ask-vault-pass -i /tmp/awx_11021_0fmwm5uz/tmppo7rcdqn -e @/tmp/awx_11021_0fmwm5uz/env/extravars playbook.yml
That's broken down into three commands in sequence:
ssh-agent sh -c ssh-add /tmp/awx_11021_0fmwm5uz/artifacts/11021/ssh_key_data
rm -f /tmp/awx_11021_0fmwm5uz/artifacts/11021/ssh_key_data
ansible-playbook -vvvvv -u ubuntu --become --ask-vault-pass -i /tmp/awx_11021_0fmwm5uz/tmppo7rcdqn -e @/tmp/awx_11021_0fmwm5uz/env/extravars playbook.yml
You can see in part 3, the -vvvvv
is the debugging argument -- however, the hang is happening on command #1. Which has nothing to do with ansible or AWX specifically, but it's not going to get us much debugging info.
I tried doing an strace
to see what is going on, but for reasons given below, it is pretty difficult to follow what it is actually hanging on. I can provide this output if it might help.
So one natural question with command #1 -- what is 'ssh_key_data'?
Well it's what we set up to be the Machine credential in AWX (an SSH key) -- it hasn't changed in a while and it works just fine when used in a direct SSH command. It's also apparently being set up by AWX as a file pipe:
prw------- 1 root root 0 Dec 10 08:29 ssh_key_data
Which starts to explain why it could be potentially hanging (if nothing is being read in from the other side of the pipe).
Running a normal ansible-playbook from command line (and supplying the SSH key in a more normal way) works just fine, so we can still deploy, but only via CLI right now -- it's just AWX that is broken.
ConclusionsSo the question then becomes "why now"? And "how to debug"? I have checked the health of awx_postgres, and verified that indeed the Machine credential is present in an expected format (in the main_credential
table). I have also verified that can use ssh-agent on the awx_task container without the use of that pipe keyfile. So it really seems to be this piped file that is the problem -- but I haven't been able to glean from any logs where the other side of the pipe (sender) is supposed to be or why they aren't sending the data.
ANSWER
Answered 2021-Dec-13 at 04:21Had the same issue starting this Friday in the same timeframe as you. Turned out that Crowdstrike (falcon sensor) Agent was the culprit. I'm guessing they pushed a definition update that is breaking or blocking fifo pipes. When we stopped the CS agent, AWX started working correctly again, with no issues. See if you are running a similar security product.
QUESTION
I'm using godbolt to get assembly of the following program:
...ANSWER
Answered 2021-Dec-13 at 06:33You can see the cost of instructions on most mainstream architecture here and there. Based on that and assuming you use for example an Intel Skylake processor, you can see that one 32-bit imul
instruction can be computed per cycle but with a latency of 3 cycles. In the optimized code, 2 lea
instructions (which are very cheap) can be executed per cycle with a 1 cycle latency. The same thing apply for the sal
instruction (2 per cycle and 1 cycle of latency).
This means that the optimized version can be executed with only 2 cycle of latency while the first one takes 3 cycle of latency (not taking into account load/store instructions that are the same). Moreover, the second version can be better pipelined since the two instructions can be executed for two different input data in parallel thanks to a superscalar out-of-order execution. Note that two loads can be executed in parallel too although only one store can be executed in parallel per cycle. This means that the execution is bounded by the throughput of store instructions. Overall, only 1 value can only computed per cycle. AFAIK, recent Intel Icelake processors can do two stores in parallel like new AMD Ryzen processors. The second one is expected to be as fast or possibly faster on the chosen use-case (Intel Skylake processors). It should be significantly faster on very recent x86-64 processors.
Note that the lea
instruction is very fast because the multiply-add is done on a dedicated CPU unit (hard-wired shifters) and it only supports some specific constant for the multiplication (supported factors are 1, 2, 4 and 8, which mean that lea can be used to multiply an integer by the constants 2, 3, 4, 5, 8 and 9). This is why lea
is faster than imul
/mul
.
I can reproduce the slower execution with -O2
using GCC 11.2 (on Linux with a i5-9600KF processor).
The main source of source of slowdown comes from the higher number of micro-operations (uops) to be executed in the -O2
version certainly combined with the saturation of some execution ports certainly due to a bad micro-operation scheduling.
Here is the assembly of the loop with -Os
:
QUESTION
I am trying to find a more efficient solution to a combinatorics problem than the solution I have already found.
Suppose I have a set of N objects (indexed 0..N-1) and wish to consider each subset of size K (0<=K<=N). There are S=C(N,K) (i.e., "N choose K") such subsets. I wish to map (or "encode") each such subset to a unique integer in the range 0..S-1.
Using N=7 (i.e., indexes are 0..6) and K=4 (S=35) as an example, the following mapping is the goal:
0 1 2 3 --> 0
0 1 2 4 --> 1
...
2 4 5 6 --> 33
3 4 5 6 --> 34
N and K were chosen small for the purposes of illustration. However, in my actual application, C(N,K) is far too large to obtain these mappings from a lookup table. They must be computed on-the-fly.
In the code that follows, combinations_table
is a pre-computed two-dimensional array for fast lookup of C(N,K) values.
All code given is compliant with the C++14 standard.
If the objects in a subset are ordered by increasing order of their indexes, the following code will compute that subset's encoding:
...ANSWER
Answered 2021-Oct-21 at 02:18Take a look at the recursive formula for combinations:
Suppose you have a combination space C(n,k)
. You can divide that space into two subspaces:
C(n-1,k-1)
all combinations, where the first element of the original set (of lengthn
) is presentC(n-1, k)
where first element is not preset
If you have an index X that corresponds to a combination from C(n,k)
, you can identify whether the first element of your original set belongs to the subset (which corresponds to X
), if you check whether X
belongs to either subspace:
X < C(n-1, k-1)
: belongsX >= C(n-1, k-1)
: doesn't belong
Then you can recursively apply the same approach for C(n-1, ...)
and so on, until you've found the answer for all n
elements of the original set.
Python code to illustrate this approach:
QUESTION
Consider a program with the following two translation units:
...ANSWER
Answered 2021-Oct-26 at 07:51This program is well-formed and prints 1, as seen. Because S
is defined identically in both translation units with external linkage, it is as if there is one definition of S
([basic.def.odr]/14) and thus only one enumeration type is defined. (In practice it is mangled based on the name S
or S::x
.)
This is just the same phenomenon as static local variables and lambdas being shared among the definitions of an inline function:
QUESTION
I have 4 files all in the same directory: main.rakumod
, infix_ops.rakumod
, prefix_ops.rakumod
and script.raku
:
main
module has a class definition (class A
)*_ops
modules have some operator routine definitions to write, e.g.,$a1 + $a2
in an overloaded way.script.raku
tries to instantaniateA
object(s) and use those user-defined operators.
Why 3 files not 1? Since class definition might be long and separating overloaded operator definitions in files seemed like a good idea for writing tidier code (easier to manage).
e.g.,
...ANSWER
Answered 2021-Sep-15 at 11:14it says
'use lib' may not be pre-compiled
The word "may" is ambiguous. Actually it cannot be precompiled.
The message would be better if it said something to the effect of "Don't put
use lib
in a module."
This has now been fixed per @codesections++'s comment below.
perhaps because of circular dependentness
No. use lib
can only be used by the main program file, the one directly run by Rakudo.
Is there a way I can achieve this?
Here's one way.
We introduce a new file that's use
d by the other packages to eliminate the circularity. So now we have four files (I've rationalized the naming to stick to A
or variants of it for the packages that contribute to the type A
):
A-sawn.rakumod
that's arole
orclass
or similar:
QUESTION
I have a parent SCS View(SingleChildScrollView) and a child SCS View. Inside the child SCS View there is a Data Table, and the Data Table starts at around bottom quarter of the screen.
Now, I want to scroll the parent SCS View when the user scrolls to the top of Data Table inside child SCS View.
This works naturally in web, but does not work in iOS or anroid. I tried using same Scrollcontroller for both parent & child SCS View and played around with ScrollPhysics. But nothing seem to work. Can you please help me with a solution.
Here is the code:
...ANSWER
Answered 2021-Aug-29 at 07:45Edited
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install natural
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