[REVIEW][Perf] Remove Redundant string concatenations in dask code-base

While profiling an internal cudf code sample, we found that there are some redundant computations being performed in nested for loops.
Here is a minimal profile:
startTime = datetime.now()
k = 1000
t = str(454768798089)
for i in range(1000):
    y = [ "helloworld" + t
        for i in range(k)
        for j in range(100)
    ]
print("old",(datetime.now() - startTime).total_seconds())

startTime = datetime.now()
k = 1000
x = "helloworld" + str(454768798089)
for i in range(1000):
    ll = [ x
        for i in range(k)
        for j in range(100)
    ]

old 10.286778
new 3.931635

[x] Tests added / passed
[x] Passes black dask / flake8 dask

These look reasonable to me but I am biased here.  I think it would be good to have an additional maintainer review here before merging
It is worth noting these changes are in the graph construction

Do these changes affect performance in real-world workflows?
On Mon, Apr 27, 2020 at 7:10 AM Benjamin Zaitlen<EMAIL_ADDRESS>wrote:

These look reasonable to me but I am biased here. I think it would be good
to have an additional maintainer review here before merging
It is worth noting these changes are in the graph construction
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/6137#issuecomment-620011939, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTCREYSCA7P2QKADKLDROWG5JANCNFSM4MQ2ZTIA
.

Do these changes affect performance in real-world workflows?

This definitely reduces the time needed to build the graph for shuffle operations.  I think we should definitley be sure to predefine (concatenate) all task labels outside python loops in the future.

This definitely reduces the time needed to build the graph for shuffle operations. I think we should definitley be sure to predefine (concatenate) all task labels outside python loops in the future.

Awesome.  I'm glad to hear it.  If you all happen to have a before and after comparison for a large graph, like a dataframe merge, I'd love to see the results.  The microbenchmark in the original post shows that this is a great start here in that it shows that it will make things faster, but it could be made stronger by showing how that speedup affects performance in the broader context of Dask.

Do these changes affect performance in real-world workflows?

Yes, it does. While testing an internal workflow noticed a 0.5 to 0.8s drop in benchmark times.

Can you include a minimal example in the comments of this pull request?
Ideally something not using cudf so that others here can see the effects.
I recommend using dask.datasets.timeseries for this.
On Mon, Apr 27, 2020 at 8:19 AM GALI PREM SAGAR<EMAIL_ADDRESS>wrote:

Do these changes affect performance in real-world workflows?
Yes, it does. While testing an internal workflow noticed a 0.5 to 0.8s
drop in benchmark times.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/6137#issuecomment-620052628, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKZTGGPPAX7P77CCGVJX3ROWPBFANCNFSM4MQ2ZTIA
.

Can you include a minimal example in the comments of this pull request?
Ideally something not using cudf so that others here can see the effects.
I recommend using dask.datasets.timeseries for this.

Here is a simple example that illustrates the performance bump for shuffle-graph creation in dask.dataframe:
from dask.datasets import timeseries
from dask.dataframe.shuffle import shuffle

ddf_d = timeseries(start='2000-01-01', end='2010-01-01', partition_freq='1d')
ddf_h = timeseries(start='2000-01-01', end='2010-01-01', partition_freq='1h')

%timeit ddf_d_2 = shuffle(ddf_d, "id", shuffle="tasks")
%timeit ddf_h_2 = shuffle(ddf_h, "id", shuffle="tasks")

Master:
# "Day" Partitioning
274 ms ± 389 µs per loop (mean ± std. dev. of 7 runs, 1 loop each)

# Hour Partitioning
12.3 s ± 38.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

This PR:
# "Day" Partitioning
217 ms ± 8.01 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

# Hour Partitioning
9.72 s ± 54.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

Note that the benefit is much more significant when the intial dataframe has a large number of partitions (common for ETL on large-scale datasets in the real-world).

Any other concerns with this PR ?  If not, I'd like to merge tomorrow afternoon

Any other concerns with this PR ? If not, I'd like to merge tomorrow afternoon

@quasiben Sure, few more minor tweaks I have to test. If they work I'll push those as well in this PR and this should be ready for merge.

@quasiben This is ready for review.

@galipremsagar can I ask yo to post new number with and without this PR ?

@quasiben Here are the numbers with respect to master and current changes:
from dask.datasets import timeseries
from dask.dataframe.shuffle import shuffle

ddf_d = timeseries(start='2000-01-01', end='2010-01-01', partition_freq='1d')
ddf_h = timeseries(start='2000-01-01', end='2010-01-01', partition_freq='1h')

%timeit ddf_d_2 = shuffle(ddf_d, "id", shuffle="tasks")
%timeit ddf_h_2 = shuffle(ddf_h, "id", shuffle="tasks")

THIS PR:
# "Day" Partitioning
343 ms ± 7.26 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

# Hour Partitioning
13.6 s ± 52.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

MASTER:
# "Day" Partitioning
402 ms ± 3.44 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

# Hour Partitioning
16.9 s ± 95.2 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

@galipremsagar thanks for doing that. I think this is ready to merge but I'd like to give other maintainers time to comment. If there are no more comments I'll plan to merge tonight or tomorrow morning

Thanks @quasiben ! Sounds good to me.

@galipremsagar It would be good to test the performance of these changes against https://github.com/dask/dask/issues/6163#issuecomment-622571290 and report back the changes to the changed functions.

cc @eriknw as a Python micro-optimizer you might enjoy seeing this

@galipremsagar It would be good to test the performance of these changes against #6163 (comment) and report back the changes to the changed functions.

With the code snippet in #6163 (comment)
Here are snakeviz profiles with the current state of changes against Master.
This PR:

Master:

snakeviz files:
snakeviz.zip
However, there are some observations for the recent changes I've made:
Dict update related changes
dict.update can be avoided wherever there is looping to construct a new dictionary and update an existing dictionary with the newly constructed dictionary.
d = {}

for i in range(10000, 15000):
    d[i] = [i]*i

def test_dict_update(d):
    new_dict = {}
    for i in range(100,20000):
        new_dict[i] = [i]*i
    d.update(new_dict)
    return d

def test_dict_element(d):
    for i in range(100,20000):
        d[i] = [i]*i
    return d

%timeit test_dict_update(d)
1.04 s ± 147 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

%timeit test_dict_element(d)
828 ms ± 79.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

It also appears to be slower when we use dict.update:

https://stackoverflow.com/a/15456197
https://stackoverflow.com/a/15456218

List related changes
list.extend is a faster way to append new set of elements to a list rather than doing element wise append or +=(which essentially constructs new list lhs and internally traverses both lhs list and rhs list to create a new list)
def test2(j):  # append
    l = list(range(10000))
    for i in j:
        l.append(i)
    return l

def test1(j):  # + (concat)
    l = list(range(10000))
    for i in j:
        l += [i]
    return l

def test3(j):  # extend
    l = list(range(10000))
    l.extend(j)
    return l

g = list(range(100000))

%timeit test1(g)
11.1 ms ± 79.6 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit test2(g)
8.14 ms ± 21.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

%timeit test3(g)
698 µs ± 328 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)

@galipremsagar Thanks again for the work here.  Do you think this is ready to go now?

@galipremsagar Thanks again for the work here. Do you think this is ready to go now?

Yes, it is except for the hasattr check mentioned here: https://github.com/dask/dask/pull/6137#discussion_r419176923
I'm not sure we can remove the check, do you have any suggestions on that part of code? @rjzamora

Thanks for going through all this @galipremsagar and definitely appreciate the timings and snakeviz along the way.  @TomAugspurger do you think this PR is worth running agains the dask benchmarks to ensure a few things:

we haven't broken anything
we either have improved performance or, at worst, kept performance the same without degradation ?

I am only asking for an opinion, not for you to do this work

A new benchmark at dask-benchmarks demonstrating the performance gain here
would be great to have, to help ensure that we don't regress on this gain.
For testing, you can change the path to dask in dask/asv.conf.json. I
have my layout like
dask/
dask-benchmarks/

so
diff --git a/dask/asv.conf.json b/dask/asv.conf.json
index 147e999..2b3f673 100644
--- a/dask/asv.conf.json
+++ b/dask/asv.conf.json
@@ -11,7 +11,7 @@

     // The URL or local path of the source code repository for the
     // project being benchmarked
-    "repo": "https://github.com/dask/dask.git",
+    "repo": "../../dask",

     // List of branches to benchmark. If not provided, defaults to "master"
     // (for git) or "default" (for mercurial).

then you can compare master against your HEAD to see the improvement.
On Tue, May 5, 2020 at 3:35 PM Benjamin Zaitlen<EMAIL_ADDRESS>wrote:

Thanks for going through all this @galipremsagar
https://github.com/galipremsagar and definitely appreciate the timings
and snakeviz along the way. @TomAugspurger
https://github.com/TomAugspurger do you think this PR is worth running
agains the dask benchmarks https://github.com/dask/dask-benchmarks to
ensure a few things:

we haven't broken anything
we either have improved performance or, at worst, kept performance
the same without degradation ?

I am only asking for an opinion, not for you to do this work
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/6137#issuecomment-624291973, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOIXMVFSK5CT6FHFBPZ3RQB2CFANCNFSM4MQ2ZTIA
.

Here are the asv results against Master & current PR.
Master
[  0.00%] · For dask commit edd92d58:
[  0.00%] ·· Benchmarking conda-py3.7-cloudpickle-distributed-fsspec-numpy-pandas-partd-pip+cityhash-pip+xxhash-pyarrow-pytables-s3fs-scipy-toolz
[  1.09%] ··· Running (array.BlockInfoBlockwise.time_compute--)..........
[ 11.96%] ··· Running (array.Slicing.time_slice_slice_tail--).......
[ 19.57%] ··· Running (dataframe.MemoryDataFrame.time_reduction--).........
[ 29.35%] ··· Running (order.OrderCholesky.time_order_cholesky_lower--)....
[ 33.70%] ··· Running (order.OrderLinalgSolves.time_order_linalg_solve--)...
[ 36.96%] ··· Running (order.OrderManySubgraphs.time_order_many_subgraphs--)..
[ 39.13%] ··· Running (order.OrderRechunkTranspose.time_order_rechunk_transpose--).....
[ 44.57%] ··· Setting up io.py:33                                               ok
[ 44.57%] ··· Running (io.CSV.time_read_csv--)..
[ 46.74%] ··· Setting up io.py:58                                               ok
[ 46.74%] ··· Running (io.HDF5.time_read_hdf5--)..
[ 48.91%] ··· Setting up io.py:85                                               ok
[ 48.91%] ··· Running (io.Parquet.time_optimize_getitem--)..
[ 51.09%] ··· array.BlockInfoBlockwise.time_compute                     3.67±0.02s
[ 52.17%] ··· array.BlockInfoBlockwise.time_optimize                    21.3±0.2ms
[ 53.26%] ··· array.BlockInfoSingleton.time_optimize_singleton             140±4μs
[ 54.35%] ··· array.Blockwise.time_make_blockwise_graph                 2.70±0.02s
[ 55.43%] ··· array.FancyIndexing.time_fancy                            28.8±0.2ms
[ 56.52%] ··· array.Rechunk.time_rechunk                                25.0±0.6ms
[ 57.61%] ··· array.Rechunk.time_rechunk_meta                          10.2±0.03ms
[ 58.70%] ··· array.Slicing.time_slice_int_head                         8.85±0.4ms
[ 59.78%] ··· array.Slicing.time_slice_int_tail                         10.6±0.6ms
[ 60.87%] ··· array.Slicing.time_slice_slice_head                         20.7±1ms
[ 61.96%] ··· array.Slicing.time_slice_slice_tail                         21.0±1ms
[ 63.04%] ··· array.Slicing.time_slices_from_chunks                     1.19±0.01s
[ 64.13%] ··· array.TestSubs.time_subs                                    43.8±1ms
[ 65.22%] ··· array_overlap.MapOverlap.time_map_overlap                         ok
[ 65.22%] ··· ================= ========== ============
                    shape        boundary
              ----------------- ---------- ------------
               (100, 100, 100)   reflect    62.1±0.7ms
               (100, 100, 100)   periodic    61.0±1ms
               (100, 100, 100)   nearest    62.4±0.8ms
               (100, 100, 100)     none     15.5±0.3ms
                (50, 512, 512)   reflect     69.8±2ms
                (50, 512, 512)   periodic    68.5±2ms
                (50, 512, 512)   nearest     71.2±2ms
                (50, 512, 512)     none      21.4±1ms
              ================= ========== ============

[ 66.30%] ··· dataframe.MemoryDataFrame.time_boolean_indexing              126±6ms
[ 67.39%] ··· dataframe.MemoryDataFrame.time_count_values                 39.6±1ms
[ 68.48%] ··· dataframe.MemoryDataFrame.time_groupby                       203±8ms
[ 69.57%] ··· dataframe.MemoryDataFrame.time_reduction                    137±20ms
[ 70.65%] ··· dataframe.MemoryDataFrame.time_scalar_comparison          12.5±0.7ms
[ 71.74%] ··· dataframe.MemoryDataFrame.time_set_index                    324±10ms
[ 72.83%] ··· optimization.Cull.time_cull                                  191±1ms
[ 73.91%] ··· optimization.Fuse.time_fuse                                       ok
[ 73.91%] ··· ========= =========
                param1
              --------- ---------
               diamond   381±6ms
                linear   175±3ms
              ========= =========

[ 75.00%] ··· optimization.Inline.time_inline_constants                 43.2±0.5ms
[ 76.09%] ··· optimization.Inline.time_inline_functions                    259±4ms
[ 77.17%] ··· optimization.Inline.time_inline_keys                         168±4ms
[ 78.26%] ··· order.OrderCholesky.time_order_cholesky                      496±4ms
[ 79.35%] ··· order.OrderCholesky.time_order_cholesky_lower                474±6ms
[ 80.43%] ··· ...r.OrderCholeskyMixed.time_order_cholesky_mixed            384±7ms
[ 81.52%] ··· ...rCholeskyMixed.time_order_cholesky_mixed_lower           354±10ms
[ 82.61%] ··· order.OrderFullLayers.time_order_full_layers                      ok
[ 82.61%] ··· ============ =========
                 param1
              ------------ ---------
               (1, 50000)   513±6ms
               (2, 10000)   383±3ms
               (10, 1000)   372±3ms
               (100, 20)    416±3ms
                (500, 2)    571±6ms
               (9999, 1)    115±2ms
               (50000, 1)   397±2ms
              ============ =========

[ 83.70%] ··· order.OrderLinalgSolves.time_order_linalg_solve              340±6ms
[ 84.78%] ··· order.OrderLinearFull.time_order_linear_full              1.48±0.01s
[ 85.87%] ··· ...rLinearWithDanglers.time_order_linear_danglers                 ok
[ 85.87%] ··· ============ =========
                 param1
              ------------ ---------
               (2, 10000)   191±2ms
               (5, 5000)    265±2ms
              ============ =========

[ 86.96%] ··· ...r.OrderManySubgraphs.time_order_many_subgraphs                 ok
[ 86.96%] ··· =========== =========
                 param1
              ----------- ---------
               (1, 9999)   233±4ms
               (3, 3333)   239±6ms
               (10, 999)   258±4ms
               (30, 303)   255±1ms
               (100, 99)   277±3ms
               (999, 10)   295±6ms
              =========== =========

[ 88.04%] ··· order.OrderMapOverlap.time_order_mapoverlap                       ok
[ 88.04%] ··· =========================================== =========
                                 param1
              ------------------------------------------- ---------
                  ((10000.0, 10000.0), (200, 200), 1)      666±5ms
               ((1000, 1000, 1000), (100, 100, 100), 10)   707±5ms
              =========================================== =========

[ 89.13%] ··· ...rRechunkTranspose.time_order_rechunk_transpose           797±10ms
[ 90.22%] ··· order.OrderSVD.time_order_svd                             83.8±0.2ms
[ 91.30%] ··· tokenize.TokenizeBuiltins.time_tokenize                      197±1ms
[ 92.39%] ··· tokenize.TokenizeNumpy.time_tokenize                              ok
[ 92.39%] ··· ======== =============
               dtype
              -------- -------------
                int       606±3μs
               float      602±10μs
                str     2.43±0.05ms
               bytes      447±9μs
               object     91.8±2ms
              ======== =============

[ 93.48%] ··· tokenize.TokenizePandas.time_tokenize                             ok
[ 93.48%] ··· ===================== ============= =============
              --                             as_series
              --------------------- ---------------------------
                      dtype              True         False
              ===================== ============= =============
                      period           62.7±1μs     29.8±0.7μs
                  datetime64[ns]       59.9±2μs     36.6±0.5μs
               datetime64[ns, CET]    62.0±0.9μs    32.2±0.1μs
                       int           64.9±0.08μs     24.3±1μs
                     category          202±2μs      48.5±0.3μs
                      sparse          68.6±0.2μs   30.3±0.05μs
                       Int           1.23±0.01ms   1.19±0.01ms
                      string           465±4μs       411±6μs
                     boolean           871±10μs      820±1μs
              ===================== ============= =============

[ 94.57%] ··· io.CSV.time_read_csv                                              ok
[ 94.57%] ··· ================= ============
                    param1
              ----------------- ------------
               single-threaded    279±4ms
                  processes      1.96±0.02s
                   threads        306±2ms
              ================= ============

[ 95.65%] ··· io.CSV.time_read_csv_meta                                         ok
[ 95.65%] ··· ================= ============
                    param1
              ----------------- ------------
               single-threaded   28.3±0.1ms
                  processes      29.2±0.4ms
                   threads       28.7±0.3ms
              ================= ============

[ 96.74%] ··· io.HDF5.time_read_hdf5                                            ok
[ 96.74%] ··· ================= =========
                    param1
              ----------------- ---------
               single-threaded   393±3ms
                  processes        n/a
                   threads       409±9ms
              ================= =========

[ 97.83%] ··· io.HDF5.time_read_hdf5_meta                                       ok
[ 97.83%] ··· ================= ===========
                    param1
              ----------------- -----------
               single-threaded   258±0.9ms
                  processes         n/a
                   threads       259±0.6ms
              ================= ===========

[ 98.91%] ··· io.Parquet.time_optimize_getitem                          37.9±0.9ms
[100.00%] ··· io.Parquet.time_read_getitem_projection                     693±20ms

This PR
root@dt07:/cudf/dask-benchmarks/dask# asv run
· Creating environments
· Discovering benchmarks
·· Uninstalling from conda-py3.7-cloudpickle-distributed-fsspec-numpy-pandas-partd-pip+cityhash-pip+xxhash-pyarrow-pytables-s3fs-scipy-toolz.
·· Building 14708abf for conda-py3.7-cloudpickle-distributed-fsspec-numpy-pandas-partd-pip+cityhash-pip+xxhash-pyarrow-pytables-s3fs-scipy-toolz...
·· Installing 14708abf into conda-py3.7-cloudpickle-distributed-fsspec-numpy-pandas-partd-pip+cityhash-pip+xxhash-pyarrow-pytables-s3fs-scipy-toolz..
· Running 46 total benchmarks (1 commits * 1 environments * 46 benchmarks)
[  0.00%] · For dask commit 14708abf:
[  0.00%] ·· Benchmarking conda-py3.7-cloudpickle-distributed-fsspec-numpy-pandas-partd-pip+cityhash-pip+xxhash-pyarrow-pytables-s3fs-scipy-toolz
[  1.09%] ··· Running (array.BlockInfoBlockwise.time_compute--)........
[  9.78%] ··· Running (array.Slicing.time_slice_int_tail--)........
[ 18.48%] ··· Running (dataframe.MemoryDataFrame.time_groupby--)......
[ 25.00%] ··· Running (optimization.Inline.time_inline_constants--)......
[ 31.52%] ··· Running (order.OrderCholeskyMixed.time_order_cholesky_mixed_lower--)...
[ 34.78%] ··· Running (order.OrderLinearFull.time_order_linear_full--)....
[ 39.13%] ··· Running (order.OrderRechunkTranspose.time_order_rechunk_transpose--).....
[ 44.57%] ··· Setting up io.py:33                                               ok
[ 44.57%] ··· Running (io.CSV.time_read_csv--)..
[ 46.74%] ··· Setting up io.py:58                                               ok
[ 46.74%] ··· Running (io.HDF5.time_read_hdf5--)..
[ 48.91%] ··· Setting up io.py:85                                               ok
[ 48.91%] ··· Running (io.Parquet.time_optimize_getitem--)..
[ 51.09%] ··· array.BlockInfoBlockwise.time_compute                     3.62±0.02s
[ 52.17%] ··· array.BlockInfoBlockwise.time_optimize                    21.3±0.7ms
[ 53.26%] ··· array.BlockInfoSingleton.time_optimize_singleton             134±3μs
[ 54.35%] ··· array.Blockwise.time_make_blockwise_graph                 2.63±0.01s
[ 55.43%] ··· array.FancyIndexing.time_fancy                            27.7±0.8ms
[ 56.52%] ··· array.Rechunk.time_rechunk                                26.4±0.9ms
[ 57.61%] ··· array.Rechunk.time_rechunk_meta                           10.2±0.1ms
[ 58.70%] ··· array.Slicing.time_slice_int_head                         10.6±0.5ms
[ 59.78%] ··· array.Slicing.time_slice_int_tail                         10.5±0.6ms
[ 60.87%] ··· array.Slicing.time_slice_slice_head                         20.3±1ms
[ 61.96%] ··· array.Slicing.time_slice_slice_tail                       20.4±0.9ms
[ 63.04%] ··· array.Slicing.time_slices_from_chunks                     1.16±0.01s
[ 64.13%] ··· array.TestSubs.time_subs                                  43.6±0.4ms
[ 65.22%] ··· array_overlap.MapOverlap.time_map_overlap                         ok
[ 65.22%] ··· ================= ========== ============
                    shape        boundary
              ----------------- ---------- ------------
               (100, 100, 100)   reflect    61.5±0.7ms
               (100, 100, 100)   periodic   62.2±0.6ms
               (100, 100, 100)   nearest    62.7±0.6ms
               (100, 100, 100)     none     15.7±0.3ms
                (50, 512, 512)   reflect     69.3±2ms
                (50, 512, 512)   periodic    69.9±2ms
                (50, 512, 512)   nearest     70.6±1ms
                (50, 512, 512)     none      23.1±1ms
              ================= ========== ============

[ 66.30%] ··· dataframe.MemoryDataFrame.time_boolean_indexing              132±9ms
[ 67.39%] ··· dataframe.MemoryDataFrame.time_count_values               41.0±0.8ms
[ 68.48%] ··· dataframe.MemoryDataFrame.time_groupby                       201±9ms
[ 69.57%] ··· dataframe.MemoryDataFrame.time_reduction                     133±4ms
[ 70.65%] ··· dataframe.MemoryDataFrame.time_scalar_comparison          12.4±0.6ms
[ 71.74%] ··· dataframe.MemoryDataFrame.time_set_index                     326±6ms
[ 72.83%] ··· optimization.Cull.time_cull                                  172±1ms
[ 73.91%] ··· optimization.Fuse.time_fuse                                       ok
[ 73.91%] ··· ========= =========
                param1
              --------- ---------
               diamond   372±2ms
                linear   175±2ms
              ========= =========

[ 75.00%] ··· optimization.Inline.time_inline_constants                 42.7±0.6ms
[ 76.09%] ··· optimization.Inline.time_inline_functions                    265±5ms
[ 77.17%] ··· optimization.Inline.time_inline_keys                         171±3ms
[ 78.26%] ··· order.OrderCholesky.time_order_cholesky                      488±9ms
[ 79.35%] ··· order.OrderCholesky.time_order_cholesky_lower                466±3ms
[ 80.43%] ··· ...r.OrderCholeskyMixed.time_order_cholesky_mixed            376±7ms
[ 81.52%] ··· ...rCholeskyMixed.time_order_cholesky_mixed_lower            337±3ms
[ 82.61%] ··· order.OrderFullLayers.time_order_full_layers                      ok
[ 82.61%] ··· ============ =========
                 param1
              ------------ ---------
               (1, 50000)   506±8ms
               (2, 10000)   365±6ms
               (10, 1000)   369±2ms
               (100, 20)    419±3ms
                (500, 2)    575±6ms
               (9999, 1)    119±2ms
               (50000, 1)   400±4ms
              ============ =========

[ 83.70%] ··· order.OrderLinalgSolves.time_order_linalg_solve              334±2ms
[ 84.78%] ··· order.OrderLinearFull.time_order_linear_full              1.44±0.01s
[ 85.87%] ··· ...rLinearWithDanglers.time_order_linear_danglers                 ok
[ 85.87%] ··· ============ ===========
                 param1
              ------------ -----------
               (2, 10000)    189±2ms
               (5, 5000)    268±0.7ms
              ============ ===========

[ 86.96%] ··· ...r.OrderManySubgraphs.time_order_many_subgraphs                 ok
[ 86.96%] ··· =========== =========
                 param1
              ----------- ---------
               (1, 9999)   228±2ms
               (3, 3333)   240±3ms
               (10, 999)   257±7ms
               (30, 303)   252±6ms
               (100, 99)   275±3ms
               (999, 10)   284±2ms
              =========== =========

[ 88.04%] ··· order.OrderMapOverlap.time_order_mapoverlap                       ok
[ 88.04%] ··· =========================================== =========
                                 param1
              ------------------------------------------- ---------
                  ((10000.0, 10000.0), (200, 200), 1)      650±7ms
               ((1000, 1000, 1000), (100, 100, 100), 10)   696±5ms
              =========================================== =========

[ 89.13%] ··· ...rRechunkTranspose.time_order_rechunk_transpose           801±10ms
[ 90.22%] ··· order.OrderSVD.time_order_svd                             84.0±0.5ms
[ 91.30%] ··· tokenize.TokenizeBuiltins.time_tokenize                    192±0.9ms
[ 92.39%] ··· tokenize.TokenizeNumpy.time_tokenize                              ok
[ 92.39%] ··· ======== =============
               dtype
              -------- -------------
                int       589±7μs
               float      580±6μs
                str     2.39±0.05ms
               bytes      429±8μs
               object     89.8±2ms
              ======== =============

[ 93.48%] ··· tokenize.TokenizePandas.time_tokenize                             ok
[ 93.48%] ··· ===================== ============ =============
              --                            as_series
              --------------------- --------------------------
                      dtype             True         False
              ===================== ============ =============
                      period          62.1±1μs    30.4±0.02μs
                  datetime64[ns]      59.6±2μs     36.8±0.9μs
               datetime64[ns, CET]    64.4±2μs      32.8±2μs
                       int           63.2±0.1μs   24.5±0.03μs
                     category         209±7μs       48.6±2μs
                      sparse         69.0±0.2μs    30.3±0.1μs
                       Int            1.23±0ms    1.20±0.02ms
                      string          463±6μs       409±7μs
                     boolean          862±1μs       826±8μs
              ===================== ============ =============

[ 94.57%] ··· io.CSV.time_read_csv                                              ok
[ 94.57%] ··· ================= ============
                    param1
              ----------------- ------------
               single-threaded    280±1ms
                  processes      2.00±0.01s
                   threads        308±2ms
              ================= ============

[ 95.65%] ··· io.CSV.time_read_csv_meta                                         ok
[ 95.65%] ··· ================= =============
                    param1
              ----------------- -------------
               single-threaded    29.0±0.1ms
                  processes       29.1±0.8ms
                   threads       28.3±0.09ms
              ================= =============

[ 96.74%] ··· io.HDF5.time_read_hdf5                                            ok
[ 96.74%] ··· ================= =========
                    param1
              ----------------- ---------
               single-threaded   396±2ms
                  processes        n/a
                   threads       409±4ms
              ================= =========

[ 97.83%] ··· io.HDF5.time_read_hdf5_meta                                       ok
[ 97.83%] ··· ================= =========
                    param1
              ----------------- ---------
               single-threaded   263±4ms
                  processes        n/a
                   threads       265±5ms
              ================= =========

[ 98.91%] ··· io.Parquet.time_optimize_getitem                          37.7±0.3ms
[100.00%] ··· io.Parquet.time_read_getitem_projection                     691±20ms

Except for dataframe.MemoryDataFrame.time_boolean_indexing rest all numbers look improved or reasonable to me.

@galipremsagar is there any chance you could organize the above into a table? I'm struggling to read the ASV output above so I imagine others will as well :).

@galipremsagar is there any chance you could organize the above into a table? I'm struggling to read the ASV output above so I imagine others will as well :).

Test
Master
This PR

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_optimize
Content Cell
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

array.BlockInfoBlockwise.time_compute
3.67±0.02s
Content Cell

Apologies for not organizing it in a table in first-place.

When I scanned through this only 3 items stood out and even then they are fairly close:

Test
Master
This PR

optimization.Cull.time_cull
191±1ms
172±1ms

map_overlap
21.4±1ms
23.1±1ms

order.OrderFullLayers.time_order_full_layers    (2, 10000)
383±3ms
365±6ms

If someone else has time it would be go to recheck if there are any other outliers in the ASV benchmarks.

Just FYI, our ASV's likely aren't sensitive enough to pick up the gains here. For context, in the pandas benchmarks I watch for regressions I ignore any differences smaller than ~30 - 40%.

Thanks @TomAugspurger I think for this PR we are good to merge in.  However, we'd like to pick up adding a mirco-benchmark for graph construction if that's ok with you?

Yeah I think so (haven't looked closely at the latest changes, but what I
saw earlier looked fine).
On Thu, May 7, 2020 at 3:16 PM Benjamin Zaitlen<EMAIL_ADDRESS>wrote:

Thanks @TomAugspurger https://github.com/TomAugspurger I think for this
PR we are good to merge in. However, we'd like to pick up adding a
mirco-benchmark for graph construction if that's ok with you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/6137#issuecomment-625474523, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOIXO6KUSFZQAWKNTNL3RQMJLNANCNFSM4MQ2ZTIA
.

Thanks.  I'll plan to merge tomorrow morning unless anyone else has concerns

Thanks again all.  Merging in


Uncaught TypeError: Cannot read properties of undefined (reading 'handleResize')

TypeError: Cannot read properties of undefined (reading 'handleResize')
at Array.<anonymous> (https:/<REDACTED: user-file-path>@<REDACTED: user-file-path>:1:111586)
at t.IdleTaskQueue._process (https:/<REDACTED: user-file-path>@<REDACTED: user-file-path>:1:197409)

Go to Errors Site

Problem line:
https://github.com/Tyriar/xterm.js/blob/8e015ebf872001352c8f382364f6d58048b7800b/src/browser/services/RenderService.ts#L250


Segmentation fault (presumably) when parsing Main.enso file

Using 2023.2.1-nightly.2023.8.30 I get:
$ ./built-distribution/enso-engine-0.0.0-dev-linux-amd64/enso-0.0.0-dev/bin/enso --run Main.enso
Segmentation fault (core dumped)

Just before everything started to crash there was some external change in metadata and the IDE dropped layout of my nodes. As such my hypothesis is this is a bug in native part of the parser.
Main.enso.gz
Removing the metadata section fixes the problem and my file can be executed again.

An incomplete metadata delimiter causes metadata to be parsed as code.

Feature: Detect the metadata delimiter less strictly.

While parsing the resulting input, the macro resolver overflows the stack, causing a segfault.

Bug: The macro resolver cannot handle arbitrarily large inputs because it is recursive.

A segfault in the parser causes the engine to crash.

Feature: Sandbox the parser.

I'm implementing a solution for (2), then I'll write up (1) & (3).


Failed with Illegal instruction (core dumped)

Describe the issue
when runing  python -m graphrag.index --init --root ./ragtest
Failed with: Illegal instruction (core dumped)
Steps to reproduce
No response
GraphRAG Config Used
No response
Logs and screenshots
No response
Additional Information

GraphRAG Version:v0.1.1
Operating System:ubuntu22.04
Python Version:Python 3.10.12
Related Issues:

So how to fix this?

hello, i have encountered the same problem while trying to build and run a docker image, I wonder how to fix the problem, thanks


nak doesn't set empty content

@Alexgleason removed my mighty pin list.
Now I'm trying to create a new kind 10001 event, and it's all good except for the content field, which uses the default value (hello from the nostr army knife).
I tried first this:
nak event -c '' -e 757f2cad8e4a6e74d7bafc2ec02cbcb5596d3fda4a081cc72a54d4874555c1ad --sec <my-sec> | jq

And then this:
echo '{"content": ""}' | nak event -e 757f2cad8e4a6e74d7bafc2ec02cbcb5596d3fda4a081cc72a54d4874555c1ad --sec <my-sec> | jq

For me personally I would let the content as it is, like a meme, but the NIP says the content must be a private/encrypted event, so in order not to break stuff I prefer to let it empty.
I think the solution would be to create a boolean flag that sets the content to empty?

The default content is only set when you specify --kind 1 (or when you don't specify the kind, as it defaults to 1). If you have used -k 10001 there it would have worked.
But this is also a bug since empty content on kind 1 should be possible.

Indeed, thanks.
Doing the wrong thing (forgetting the kind flag) led me to finding a right thing (bug) accidentally.


Image short code missing alt text for accessibility

Problem or enhancement idea
The markdown native image syntax uses the text in brackets as the alt text for accessibility. The image short code does not have a parameter to provide alt text.
Proposed solution
Add a a new "alt" parameter to the image short code and add provide in the image tag when populated.

Looks like title populates alt.


Significantly improved addFile/changeFile/removeFile performance.

When running karma in watch mode, and multiple files change (triggered for example by this typescript compiler issue), then the total time for the change handlers to complete is VERY slow - 100ms approx, per file on my machine. When all the files in the project are touched this causes a massive delay on the test execution.
The performance issue seems to be related to a getter that takes a long time to run. I think this is only returning things for test purposes ATM, so this PR removes this.

@googlebot - signed it!

Thanks for the PR @jfstephe! The change looks very good 👍
While the return value is not used by karma core, it may still be used by some third-party plugins, so this PR will probably have to wait until we're ready to open master brach for breaking changes before the next major release.
As for the CLA, most likely it is failing because the commit and the signed CLA have different emails.

@devoto13 - CLA corrected, along with the commit message format (I think!) :-).
Question: Can you give me an idea of typical time-scales for this being released? If it's more than a couple of weeks I'll publish this to our private npm locally, if not I'll wait for a while. Thanks!

@jfstephe Thank you for fixing the issues!
I'm afraid it may take more than a couple of weeks before this gets released, so private package is probably the way to go. You should also be able to install your branch directly from GitHub using:
$ npm i jfstephe/karma#fix-file-change-performance

Awesome, thanks!

Is this waiting on me for anything?

@jfstephe No, it's waiting until we have setup the branch for beta releases and then we'll merge. I'll fix the - before merging, so you don't need to bother with it.

@devoto13 - Hi, it's been almost a year on this. Any eta on this being merged?

@jfstephe I don't have permissions to merge, so without somebody from Google, there is nothing I can do. And given the recent karma deprecation announcement, I'm afraid that the most likely eta is never, sorry 😞


Mar ipns curriculum

This work is to follow details layed out in issue #162 for adding IPNS curriculum into Launchpad.

Credits to @lidel @2color @TMoMoreau @TheDiscordian for the reviews

@2color @lidel I think this is really good so far. I am super eager to push this and also having it later posted on docs ipfs page. This will be published to Gitbook automatically, but since we are moving to https://curriculum.pl-launchpad.io/ I will have to push to that branch as well when this is finalized. Any last suggestions or concerns?

Let's merge it! I think this is great.


Use unique AccessPoint name

Relates to https://github.com/brainelectronics/Micropython-ESP-WiFi-Manager/issues/15
In case more than one device uses this lib, it is hard to connect to the desired device as all have the same AccessPoint name.
Create the MyEVSE AccessPoint with a unique name based on the unique ID function of micropython-modules

if all modules are of the same batch they only differ of course in the last digits only. Call function https://github.com/brainelectronics/MyEVSE-Webinterface/blob/7ab6d2ea3e35ae7e2dbfc5930e409de6c9d5b455/myevse_webinterface/webinterface.py#L528 as follows
GenericHelper.get_uuid(-4).decode('ascii'))


Support x86_64

OS: Ubuntu 12.04.3 LTS
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
test.c
#include<stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}

Compile and run
$ gcc test.c -static
$ sudo ./taker ./a.out

I got the message:
Calling   SYS_oldolduname   (id:59  )
Calling   SYS_dup2          (id:63  )
./taker: forbidden operation

This can be fixed by just updating that list to x64 version. I have succeeded.

I met the same problem，what is the final solution?

OK,I solved it by remake qaq


Release service auth 1.0

Bump dependencies
Add usage to readme

part of #102
fixes #661

@aruniverse sorry I missed your comment initially... I would like to complete #151 first and perhaps convert these packages to ES Modules


BUG-7400 Address fields grouped within fieldset and legend

Problem: Initially Address screen was missing fieldset and legend tags as address fields presented to screen reader users as separate fields without grouping. This will help SR users to identify how the page is structured.
Resolved the issue by wrapping address lookup fields in fieldset with additional legend.
src/components/helpers/utils.ts - created an array of screen names which had no grouping within fieldset and legend
src/components/override-sdk/infra/Assignment/Assignment.tsx -  Main wrapper component is the parent component being rendered. So added fieldset and legend tags here with required conditions.

Closing to move to a different solution.


Pages not clear / DKIM broken in Exchange Admin

I am trying to setup DKIM keys in Exchange 365.
The section Steps you need to do to manually set up DKIM is incomplete and not working at all.

Publish two CNAME records for your custom domain in DNS

I have done that: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin-mso_exchon-mso_o365b/no-dkim-keys-saved-for-this-domain/7538665a-c450-4b99-b81f-4f0b72a7e08c?tm=1600971613735

To enable DKIM signing for your custom domain through the admin center

This step is not working, the admin interface doesn't see any keys automatically or let us enable DKIM.

(alternative) To enable DKIM signing for your custom domain by using PowerShell

This step requires Connect to Exchange Online PowerShell..
I tried connecting to Exchange Online using MacOS PowerShell and Windows 10 PowerShell and the instructinos do not work for both.
Either due to Microsoft declaring its own packages broken without alternative or due to errors like New-ExoPSSession : unknown_user_type: Unknown User Type.
Please publish an easy to follow instruction on how to enable DKIM in Microsoft 365 Office 365 Exchange 365.
Consider using a vanilla computer for writing the docs and not a fully setup Microsoft admin computer with all dependencies and workarounds already baked in.
Thanks

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

ID: 6adeef66-5e54-ba2f-37ac-c1898ef942c6
Version Independent ID: f8a6eda6-b300-dc76-4392-9aeb6c532822
Content: Connect to all Microsoft 365 services in a single PowerShell window - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/connect-to-all-microsoft-365-services-in-a-single-windows-powershell-window.md
Service: o365-administration
GitHub Login: @JoeDavies-MSFT
Microsoft Alias: josephd

I got it all figured out after a dozen of exceptions and unexpected problems.
I list some:

You cannot put your own keys, created on your own machine, into Exchange via web interface. This route I expect it to be done but I was completely wrong. A security rule of thumb is: Do not trust keys you have not generated yourself. Microsoft is breaking this security rule.

Keys have to be created using PowerShell on the outlook online machine.

The whole step of enabling DKIM is starting from the wrong way. It should start by making clear how setup works and creating keys. Instead, it currently starts with DNS entries. This should be the last part, not the first.

Even all our data is going through Germany, we cannot use German-Cloud login environment, that's confusing.

OSX support is poor and needs workarounds and dependencies installed which are not part of official docs.

Dependencies need to be installed on the local machine instead of beeing present on the remote machine. This is completely contraire to what I expect and what I'm used to as a unix using person.

@flowl Thank you for your feedback. Sorry that you had to go through a lot before getting this solved. But to answer a few questions and reiterate things that you mentioned above
To Enable DKIM for a Custom domain
1)Add the DNS Entry.
2)Enable DKIM Via EAC or Powershell.
3)Test to Confirm DKIM signing is configured properly for Microsoft 365.
Hope this helps!
Thanks
Sri

Thank you Sri for your reply, tbh, having it setup once, it works like a charm.
This is the most confusing part:

Enable DKIM Via EAC or Powershell

DKIM keys can't be generated through EAC.
The correct way is:

Create keypair using PowerShell
Add CNAME DNS entry (no TXT required)
Enable DKIM in EAC
Test and confirm signing

@flowl Can you add your conclusion above as an issue to the https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide article? The author will investigate and update its content appropriately.
Also, does the https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-all-microsoft-365-services-in-a-single-windows-powershell-window?view=o365-worldwide article need to be updated based on your experiences?
Thanks

Hello @JoeDavies-MSFT,
I couldn't get things to work on OSX and on Windows there is one dependency I had to install:

@flowl Thanks. Please add your conclusion above as an issue to the https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide article? The author will investigate and update its content appropriately. Thanks for letting us know.


Update Downloader to complete with failure if HTTP request was not success

Added a check to URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) to ensure that the updater state only gets success if the HTTP response was also success. Otherwise, send an HTTPRequestFailed error to the updater.
This provides an error to handle if the URL is invalid or if there is a server error
Swift 3 version of earlier PR

Be sure to update the spec version to 0.6.3 and tag the commit as such.


Feature request - Dark Mode

I want to add a dark mode button, upon clicking which the light sections will be converted to dark.
If valid, please assign me this issue under GSSOC '23.

Thanks!


Transferring Effects

There are negative effects in the game, which, in theory, should be used against some entity or player, the plugin is implemented so that we can only apply effects to ourselves. I propose to make it possible to apply an effect that, when interacting with another entity, will transfer the effect to it,
good for poisoning and other negative effects.

Thanks for your suggestion!
We will have a closer look, if we can realize your idea! We will inform you when we have more information!

Hello, your requested feature is available! You can download the latest version on spigot! We are happy about a good review!
If there are any bugs, just inform us!


cache.readQuery returns null

Hello guys,
I am using   graphql_flutter: ^5.0.2-beta.6 this version.
I tried beta.7 but I get build errors so I could not try beta.7.

I have 2 mutations. delete and create for my product review model.
When I run delete, it read from cache and update after execution of the mutation. It runs well and cache being read and rewrites successfully.
when I run create, it tries to get cache but it gets null.
They use exact same code so I think this might be a bug.

Expected behavior
The last line is to return correct cache
  Future<QueryResult<MutationCreateProductReview>> createProductReview({
    required String productName,
    String? desc,
    int? rating,
    List<String?>? images,
  }) async {
    var result = await client.mutateCreateProductReview(
      OptionsMutationCreateProductReview(
        variables: VariablesMutationCreateProductReview(
          productName: productName,
          desc: desc,
          rating: rating,
          images: images,
        ),
        update: (cache, result) {
          final queryResult = cache.readQuery(currentQueryOptions.asRequest); // << this line to return correct cache

I run this in iOS simulator
Other useful/optional fields
This fails. meaning queryResult becomes null
  Future<QueryResult<MutationCreateProductReview>> createProductReview({
    required String productName,
    String? desc,
    int? rating,
    List<String?>? images,
  }) async {
    var result = await client.mutateCreateProductReview(
      OptionsMutationCreateProductReview(
        variables: VariablesMutationCreateProductReview(
          productName: productName,
          desc: desc,
          rating: rating,
          images: images,
        ),
        update: (cache, result) {
          final queryResult = cache.readQuery(currentQueryOptions.asRequest);

While, this works well. queryResult this has cache.
  Future<QueryResult<MutationDeleteProductReview>> deleteProductReview({
    required String id,
  }) async {
    var result = await client.mutateDeleteProductReview(
      OptionsMutationDeleteProductReview(
        variables: VariablesMutationDeleteProductReview(
          id: id,
        ),
        update: (cache, result) {
          final queryResult = cache.readQuery(currentQueryOptions.asRequest);

Sorry I digged in and found that my code has a bug. Sorry!


Implement CanNavigate function

Is it ready to merge now?

@Neptunao yep. Thank you!

btw, do you plan to release soon? It will be convinient for our project to use this function from master branch in your project :)

@Neptunao I already released it last week as version 0.3.0 :) I just haven't drafted the release notes yet.
Here's the commit. The new method is documented on godoc.org.
If you are using something to version/manage dependencies, just update it to use version 0.3.0. If you are just using go get, running go get -u github.com/go-humble/router should do the trick.


"undefined" section is generated

Hi, I use this plugin with the following code:
<!--sec title="Intrudoection" id="section0" show=true ces-->

aaaaa

<!--endsec-->

But it generates an "undefined" section output. See the top section here.
Here is my book.json:
{
	"gitbook": "2.1.0",
    "plugins": [
        "tkcolors",
		"betterchinese",
		"yahei",
		"sectionx"
    ],
    "pluginsConfig": {}
}

When building the book, it gives the following warning message:
warn: Hook 'page 'used by plugin 'gitbook-plugin-sectionx' has been removed or is deprecated

I am not sure whether this warning message has something to do with the "undefined" section.
I don't know how to solve this problem. Would you please tell me how to handle it? Thanks.

I think I had updated the syntax but forgot to update the README, by following the old documentation you are using the old syntax, so it didn't work.
Just add data- in front of every parameters and it should work.
<!--sec data-title="Intrudoection" data-id="section0" data-show=true ces-->

aaaaa

<!--endsec-->

I am sorry for that. Hope that you can get it working.
btw: you can see the markdown for the example page right here for reference.

The error message warn: Hook 'page 'used by plugin 'gitbook-plugin-sectionx' has been removed or is deprecated  can be safely ignored. The 'page' hooks (very useful in this plugin) has been deprecated in GitBook, but it is very likely to not be removed.

Now it works! This plugin is very useful for me. Thanks a lot!


Apply the property naming convention from the IContractResolver when using JsonExtensionDataAttribute

When using the CamelCasePropertyNamesContractResolver,
the additional properties serialized or deserialized into/from the [JsonExtensionData] Dictionary<string, object> do not respect the naming convention.
Maybe useful information: when directly serializing a IDictionary<K,V>, the naming convention is respected (including for nested dictionaries).

Ok, so its not only me at least now i know way i don't get proper named json...
any status on this issue ?
@guillaume86 dide you find any workarounds ?

Fixed with https://github.com/JamesNK/Newtonsoft.Json/issues/1077


changed container name to adapt to blossom-lib refactor [skip ci]

changed container name from docker-build to cpu to adapt to blossom-lib refactor

build

build


3D Room Decorator (Issue #1862)

3D Room Decorator
Issue #1862
https://github.com/user-attachments/assets/ab60db71-eaa2-4aa7-b8eb-4f07bd165175

@shriyadindi resolve the conflict


Getting error related to lcrt0.o library

Hi @mity , I clone the repository and tried running make command on the examples folder you have provided. I got error regarding below:
gcc -I../include  -Wall -static c-example.c -o c-example
ld: library not found for -lcrt0.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [c-example] Error 1

Any help would be appreciated, my current xcode version:
xcode-select version 2343.

I already ran xcode-select --install but still getting the same error.
Thanking You!

Tried removing -static i.e. ${LDFLAGS} and worked perfectly. Getting output like this, sweet 😄
@mity

Seems you are on Mac OS X, right? I don't have any mac around me right now. Could you try to remove -static and try again? If it helps, I'll cook some patch fixing it. I added that option mainly for Windows anyway, in order to not depend on libgcc.dll.

Haha Cool, worked!

Reopening as a reminder to make the patch. I'll get to it later.


CDN redirects for special characters

legacy urls like https://www.elixirsolutions.com/register&login can't be redirected at franklin due to & in the path. need to redirect these at the CDN:

/register&login
/register&login/envisionrx-members
/register&login/group_lookup
/register&login/new-plan-lookup

Completed in the launch then unlaunch, will double check this next launch.


[Loom] Add new extractor

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Bug fix
[ ] Improvement
[x] New extractor
[ ] New feature

Description of your pull request and other information
In response to a site request #27957, this new extractor is written for loom.com.
Closes #27957

This has been already merged ?
I try to download a video here. When I try with the MPD link I can detect, YTDL returns a 403 error.
Are you able to download it ?

This has been already merged ?
I try to download a video here. When I try with the MPD link I can detect, YTDL returns a 403 error.
Are you able to download it ?

This PR has not completed the code reviewing yet. Also, I have yet implemented the *.mpd support yet...🙈

@wongyiuhang can I help here?

@dstftw or @wongyiuhang can I help move this along?

@dstftw or @wongyiuhang can I help move this along?

Yes, of course. I'm sorry for holding the pull request. Is there anything that I need to do? 👀

@wongyiuhang since the PR has not yet been merged I have tried to git clone your repo and checkout to 'loom' branch. Then I have installed with 'pip3 install -e .' but downloading the link above does not work.
I am getting the following error:
ERROR: Unsupported URL: https://www.loom.com/share/384b27b953714dc19aba4768643038bd
This is my youtube-dl -v:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.02.10
[debug] Git HEAD: 360d5f0da
[debug] Python version 3.9.7 (CPython) - Linux-5.15.0-1-MANJARO-x86_64-with-glibc2.33
[debug] exe versions: ffmpeg 4.4, ffprobe 4.4, rtmpdump 2.4
[debug] Proxy map: {}
Usage: youtube-dl [OPTIONS] URL [URL...]

Hey folks, you were almost there!

I suggest an optimisation, which is to use the transcoded_url if it exits, and then the raw_url if not and then do the hls/dash stitching.
Here's how to the *.mpd @wongyiuhang
            if ext == 'mpd':
                credentials = compat_urllib_parse_urlencode(part_credentials)
                mpd_formats = self._extract_mpd_formats(
                    url, video_id)
                for item in mpd_formats:
                    for f in item['fragments']:
                        f['path'] += '?' + credentials
                        self.to_screen(f)
                    item['protocol'] = 'http_dash_segments'
                    item['url'] += '?' + credentials
                    item['ext'] = 'mp4'
                    item['format_id'] = 'dash-' + str(item.get('height', 0))
                for i in range(len(mpd_formats)):
                    formats.insert(
                        (-1, len(formats))[i == len(mpd_formats) - 1],
                        mpd_formats[i])

I'm happy to give a hand, what else is needed to get this one through ? @dstftw
Anyone else that we can tag ?

I checked out @wongyiuhang's code from his loom branch and it doesn't work (anymore). Merely downloads a 4kb mp4. Somebody on Reddit suggests having to download the manifest.
Also, embedded URLs are invalid currently and look like this https://www.loom.com/embed/1ae0b5c204b14f5881f0a826cbc7b3b9

Hello, make sure not to forget about this.

Is anyone available to keep moving this along? Support for loom would be great

Is anyone available to keep moving this along? Support for loom would be great

It works perfectly

https://archive.org/details/Loom-6670e3eba3c84dc09ada8306c7138075

We just need to add a little more metadata from mine and we done

https://github.com/wongyiuhang/youtube-dl/pull/1

The first test for LoomFolderIE is giving 404 on JSON download. The API URL with folders/.../by_name seems not to be supported now. But the folder structure can be traversed with the folders/....


How to change timeout response?

The timeout is working, but I can't log and response the users that way. I need to send a response in my way.
Hou can I do this using the module?

Hi! This module never actually writes a response, only raises an error. You can write your own response by implementing your own Express.js error handler. You can find the guide on error handling at http://expressjs.com/guide/error-handling.html


Status and version

This PR addresses the JobStatus I/O types issue and proposes an api versioning scheme set on specific object.
API versioning should only be set ofData Transfer Objects (DTOs) are any object that we expect to be used to be used by an external API (ie: not-queenbee) to be parsed and computed.
I have opted for a version and maturity flag for API versions (ie: version = v1 and maturity = beta1). This versioning scheme should ideally work like described for the Kubernetes project: https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-groups-and-versioning

Pull Request Test Coverage Report for Build 410997697

4 of 7 (57.14%)  changed or added relevant lines in 5 files are covered.
3 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.02%) to 48.538%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

queenbee/job/job.py
0
1
0.0%

queenbee/job/status.py
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

queenbee/job/job.py
1
0%

queenbee/job/status.py
2
0%

Totals

Change from base Build 409438259:
0.02%

Covered Lines:
1361

Relevant Lines:
2804

💛  - Coveralls


esp32c2 support

Some preliminary findings:

esp32c2 does not support WAPI so libwapi.a is a no-go
I can't find libmesh.a either, and I suspect it is not supported either?
Github does not support LFS file on forks...that's why it looks kinda brutal right now as I will have to fix the file pointers myself for a while

Thanks a lot! In the meanwhile, we added support for WiFi and BLE on ESP32-C2


Add support for custom scalar's specifiedBy directive

As described in the GraphQL spec, this PR add support to parse and emit specifiedBy directive.

@guidomb: Thank you for submitting a pull request! Before we can merge it, you'll need to sign the Apollo Contributor License Agreement here: https://contribute.apollographql.com/


Sort bind mounts

Fixes #1176

Codecov Report

Merging #134 (a2a806c) into master (0811f0f) will increase coverage by 0.62%.
The diff coverage is 92.30%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##           master     #134      +/-   ##
==========================================
+ Coverage   17.88%   18.50%   +0.62%
==========================================
  Files          15       15
  Lines        1577     1589      +12
==========================================
+ Hits          282      294      +12
  Misses       1271     1271
  Partials       24       24

Impacted Files
Coverage Δ

pkg/mount/dag_steps.go
3.99% <0.00%> (ø)

pkg/mount/state.go
38.54% <100.00%> (+4.41%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Backwards deletion of newline plus character fails (e.g. "\nh")

See this Ellie. This issue is also observable in code blocks in the demo. I've injected a bunch of logging statements into the JS to try to understand what's going on, but haven't really made any headway. Any help would be much appreciated!

Actually, it seems to work in Firefox, but not in Safari or Chrome.

I solved this by creating a new inline leaf node that is just an empty span containing a newline ("\n"). Here is an updated Ellie with the solution. This worked for me in Chrome, Firefox, and Safari.
I wonder if it would be better to make RichText.Commands.insertNewline work this way, too? If so, I would be happy to open a PR to do so!
I'll leave this open for the moment in case that would be useful, or else feel to close the issue—my particular problem has been solved.

That's cool that you solved your particular issue 👍 , it seems like different versions of contenteditable handle newline characters in pre elements in different ways. I don't know your exact requirements, but you may also be able to avoid the issue in a similar way line break element instead of using a newline wrapped in a span.
I'll close this ticket for now.  Thanks for reporting the issue!


Post enabling ECM in the dashboard, user should be able to navigate to ECM page

On master-head - latest - commit id: 6d6199121

Login to Dashboard
Go to Apps --> Charts --> Click on Enterpise Cluster Manager --> Click on Create/Finish
ECM is deployed successfully.
Currently user has to navigate to the URL https:?? to access the amber view

Expected:
There should be an Icon/tab where user can click on and be navigated to the amber view

It's in the product dropdown. There may be client and/or server issues with it showing up immediately after installing or until reloading the page.

This is no longer applicable as ECM will always be on.


RTP is not working for Geyser players, and no cooldown is being made in the database

If Geyser players use /RTP, it will work for the first time but after that, they cannot use /RTP anymore, and no player cooldown data is created in the database.
Plugin version: 4.4.2-e86fd41, v4.4.1
Server version:  Folia1.20.1
Geyser version: Geyser version 2.1.2-SNAPSHOT (git-master-872d7e3)
Floodgate prefix: '*'

Probably due to duplicate UUIDs, an issue in 4.4.1.
If you updated from 4.4.1 to 4.4.2 and didn't regenerate your cooldowns table, this will continue to occur as I haven't added a migration there yet. DROP your cooldowns table after updating to 4.4.2/latest

Are you using a MySQL database?

Oh, well, can't quite think what that is, then. UUIDs must be consistent so unless this is the problem I'm not sure
feel free to investigate further yourself, I can't (/won't) have the capacity to test on geyser environments


[Addition]: Cluster of 6 Hotspots in Natural Reserve

Hotspot b58 Addresses
1128B88Y675aW9TgaLi5JNbBvkM774rdVmaDCk3fuKACw7YmqxZR
112JiZJ2rLxzdTgtuuFCD3oFF3Rw5y3cz4Au2uszazegULR457BT
11zAsyDHGZanhZEMK2q7x7RjnSDGftXy2Df3AqtoGvVMbnvL8Lr
11wS9f5im72y5mc9wvQXVKsKNDhppgUke9Zbv73rLazPEki27G2
1127j8pkT7rqXxtG8ePfAY5ABicCyk2EQ8d3cUi7ExY5LPDWvvyF
112bvGbY9bwhjBQ3vMWk9DekyXcAi9MCpz2FMMdKL2bDoe9nRzKZ
Discord Handle
Lomo#7404
Reason(s)
They only witness each other

And now example of real hotspots that are near:

As you can see, real ones get witnesses from sea because radio reflexion in water, but the ones from cluster have 0 of those witness
The supposed location of hotspots is in the middle of a natural reserve between mountains, where there are no buildings and signal would get lost due mountains

I used the explorer to see the witness of the farm:
https://explorer.helium.com/hotspots/11wS9f5im72y5mc9wvQXVKsKNDhppgUke9Zbv73rLazPEki27G2/witnessed

feels a bit familiar #6012

What is the block chain spirit? Really not thinking about what you've done before. If there is a problem, or cheating is also a problem with the official rules. Or use a decentralized solution. Instead of reporting and rejecting lists. True de-centralization is what you should do in the future, no matter what you have done before. Use better systems to solve real problems. Not centralized reporting. There is already a technology to make hard forks, and blacklisted machines can produce other currencies. We'll join in other chains then. Dig another token


Create FMO filtered list for some Resource Models

Some resource models need a list of Contributors that are:

[ ] FMO only
[ ] First Nations only
[ ] Others?

Need to

[ ] identify which resource models / nodes have this requirement (@LeannePyle ?)
[ ] create filtered lists for these nodes (@bferguso)

In IPA Resource Model Communications Log - add First Nations Contact LOV under the Industry Contact
In Research Permit Resource Model Communications Log- add FMO Contact LOV and First Nations Contact LOV

Keep as a checkbox for First Nations but not LOV at this point

@LeannePyle  - Please indicate if there is anything outstanding to do in this ticket. If not, please move to Review/QA or Done.

Decided to use freeform text for External contacts, no LOV needed for First Nations in either Resource Model


Style underbar like other internal variables

@fulldecent @cygaar just noticed rebasing my pr: why _currentindex and not _currentIndex ?

@syffs Thank you, corrected at https://github.com/chiru-labs/ERC721A/pull/88


Corrected,Maintainable modified lev dist

cree_lev_dist.py is now corrected and rewritten.
The previous version would calculate wrong distance in some of the new test cases.
Also It's now super maintainable. @eddieantonio should be able to understand and edit it in munites.
The "custom distance" part is split to three functions: ins_dist sub_dist, and del_dist, in which further rules can be added very easily to further customize.

Codecov Report

Merging #199 into master will decrease coverage by 0.54%.
The diff coverage is 96.77%.

@@            Coverage Diff             @@
##           master     #199      +/-   ##
==========================================
- Coverage   79.89%   79.34%   -0.55%
==========================================
  Files          55       55
  Lines        2019     1966      -53
==========================================
- Hits         1613     1560      -53
  Misses        406      406

Impacted Files
Coverage Δ

...Dictionary/tests/utils_tests/test_cree_lev_dist.py
100% <ø> (ø)
:arrow_up:

CreeDictionary/utils/cree_lev_dist.py
97.5% <96.77%> (-1.36%)
:arrow_down:

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 0209936...cccec33. Read the comment docs.


Add support for file upload using multipart

What about this issue? Any updates?

+1, we wait :).

@warik @MeGaPk there's a first approach in #41. If you need this functionality we encourage you to add the corresponding tests to the current PR and contribute to Goreq so we can all make it a better library


Update packit build in-mock to support monorepos

The command should receive a new optional argument, [PACKAGE...], to define zero or more packages to be built in mock.
If no such argument is present all packages defined in .packit.yaml should be built in mock. When one or more such arguments are present only the packages specified should be built in mock.
The command should fail if any of the PACKAGE argument has no corresponding downstream_package_name in .packit.yaml.
When a PACKAGE argument is used PATH_OR_URL is expected to be explicitly provided. Example:
$ packit build in-mock . backend

This work also includes updating packit.api.run_mock_build() to support specifying and optional list of package names.

We decided to implement this through a decorator so that very few changes should be needed.
The changes will be linked to #1849.
Ideally we could have just one PR which adds support to the monorepo packages in Packit CLI.


[FLINK-29427][table] Fix unstable test LookupJoinITCase by compiling Projection class in advance and run reload task using userCodeClassLoader

What is the purpose of the change

The analysis below was initially made by @SmirAlex in #21365

This pull-request tries to fix unstable test LookupJoinITCase (error was not succeeded to be reproduced locally). An error contains the message 'Trying to access closed classloader'. However, test configured in the way that it loads cache only one time, and we wait until the end of this load in LookupFullCache#open. So LookupFullCache#close shouldn't somehow affect on cache load thread, if we assume that close is called only after open.
During debugging it was found out that in GenericRowDataKeySelector#open, which executes inside separate reload thread, call of Thread.currentThread().getContextClassLoader() returns SubmoduleClassLoader rather than FlinkUserCodeClassLoader, which is being returned from the same method inside main thread. Probably, this ClassLoader should not be there, and this is the core of the problem. Also it closely relates to the problem about classloader leak, described in option CoreOptions#CHECK_LEAKED_CLASSLOADER, to which error points out.
This change prevents from compiling a class in another separate thread, but rather do it just one time in main thread in LookupFullCache#open using provided userCodeClassLoader. Subsequent calls of GeneratedProjection#newInstance will end up with creating an instance from cached Class<Projection> without compilation or another interaction with context classloader. Note, that provided classloader is not stored anywhere, so classloader leak problem can't occur anymore.
Brief change log

Compile Projection Class in main thread in LookupFullCache#open to avoid classloader leak
Set context classloader to UserCodeClassLoader in InputSplitCacheLoadTask

Verifying this change

This change is already covered by existing tests.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

Thanks for the review @leonardBang ! Fixed in the latest push.

@flinkbot run azure

CI failure is caused by known issue FLINK-30881. Merging to master


Is it possible to run a build script before now.json is read

Hey, I need multiple environment variables setup, and read some places there's a supposedly new format for the config using now.js. However I don't see anywhere a time estimate, and is something that I currently need, is there at least a build step that can be ran before now does anything, I know you can configure the build in now.json for a static build but that's after the file is read. I'm looking to on the build step to build the now.json file for the different environments. Please let me know, thanks.

Would now -A dev.now.json work for you?

Closing, as we have not seen a reply in two weeks.


Extra , rendered on all pages

Current Behavior
Something introduced an extra , in one of the core components:

@stefanalund I would like to quickly patch this up

Thanks @Mutugiii -- assigned you!

All done @stefanalund


Added abs documentation and refactored mathematical folder structure.

Description

Type of Change

[ ] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[x] 📝 Documentation
[ ] 🇺🇸 Translation
[ ] 🗑 Chore

Thank you for your collaboration!


Minimal docs on importing rarbg dump

A quick README update recording the process of importing the rarbg dump that's around. I haven't found the tpb dump yet :)

Thank you!


How do I install this on Mac? The releases only include exe files.
Thank you!

The mac version is a WIP, not totally functional and is kind of on the back burner while I work on a native UI version for windows. Unfortunately that means there is no release version. I work on this in my free time, so it's unfortunately slow going.
If/when I get back to the mac version, I will probably make a native UI for that as well.


Enhance dependencies between workflows

In the existing interaction scenario, only interdependence between jobs can be done, and dependencies between workflows are not supported. I hope there is a feature that can support interdependence between workflows and pass parameters.

+1

+1


mysql migration fails

I'm opening this issue to track problems when running migration scripts against a mysql database. If a migration fails half way through it is unable to re-start, leaving the database in an inconsistent state.
I'm partially addressing this in pull request https://github.com/drone/drone/pull/1311 which uses IF NOT EXISTS before creating any database objects. This makes it easier to run a migration script that only partially completed.
The above pull request, however, isn't full proof. Some migration scripts ALTER TABLE ADD COLUMN which does not support IF NOT EXISTS. So we need to understand why a migration script would fail half-way through the process.
note this issue is not meant for people upgrading from 0.3 to 0.4 ... please note the 0.3 database cannot be upgraded to 0.4 due to compatibility issues

@macb a few questions for you:

what version of mysql are you running
are you running mysql in a container? if yes, which image?
are you running mysql on the same host
are you connecting with the IP address?
default configuration? or anything notable changes?

I'd like to try and setup an environment so that I can re-produce

Sure @bradrydzewski:

percona 5.5
No, in this case it's installed locally.
Yep, installed on the same host.
It's connecting via the host's IP address.
Nothing notable aside from being percona. Otherwise the configuration is untouched.

I think I might actually have an idea why this is happening. I'm setting up the host with chef which fetches the image and creates a container using it. I think at some point it's actually killing off the original container (seemingly mid-migration) and starting a new one. The new one comes up but then fails to migrate since some tables exist.

@macb can you share any of the chef script? perhaps we could work through any of the kinks and offer an official chef recipe for people to use

That's interesting. I'll have to see about open sourcing this provider. It's pretty simple since it's really just plugging together the chef-docker provider and some drone configuration:
The important action:
      def action_create
        docker_service 'default' do
          tls false
          action [:create, :start]
        end

        docker_image new_resource.image_path do
          tag new_resource.image_tag
          read_timeout 300
          notifies :redeploy, docker_container_name
        end

        docker_container app_name do
          repo new_resource.image_path
          tag new_resource.image_tag
          port  "#{new_resource.host_port}:8000"

          env drone_env.map { |k,v| "#{k}=#{v}" }
          binds drone_binds.map { |k,v| "#{k}:#{v}" }

          restart_policy 'always'
          action :run_if_missing
        end

        # Without this env, hostport, and volume changes won't trigger a redeploy
        # of the container so we'll cache a representation of the env and when
        # that busts, it will redeploy.
        changes = {
          env: drone_env,
          host_port: new_resource.host_port,
          binds: drone_binds,
        }
        file "#{Chef::Config[:file_cache_path]}/drone.env" do
          content Digest::SHA256.hexdigest(changes.to_json)
          notifies :redeploy, docker_container_name
        end
      end

The 2 redeploy's are the bits causing the issue I believe. On first run both the docker_image and the configuration cache file cause a redeploy. This gets de-duped but still results in a redeploy (which is a stop, remove, run).

@macb does thedocker_container directive is execute a docker run. What happens if instead it performs a docker create? Perhaps then the docker restart will start the container for the first time?

It does this. I thought about having it just create, then letting the redeploy bits handle starting it. Just hadn't had a chance to go down that road yet.

@macb I've considered bootstrapping the application on the first http request. This would solve this sort of problem since the migration wouldn't run until someone tried to access a url. This will involve some refactoring and will probably land in release 0.4.1 or later.
I did some research and in the short term we have to deal with some mysql limitations with rollback:

Some statements cannot be rolled back. In general, these include data definition language (DDL) statements, such as those that create or drop databases, those that create, drop, or alter tables or stored routines.

So what about (and I realize this isn't ideal) adding some sort of sleep to the chef script to give it a buffer so that it doesn't try to stop the container before the migration is complete? Then when the above fix is in place, we should be all set

note we could also try just create as you mentioned and see if that fixes things. I just figured the sleep might give us an immediate hack and then put the ball back in my court for a permanent fix.

Ya I arrived at the same conclusion about mysql rollbacks after investigating for a little bit. I can definitely give just create a try. I think that should solve my immediate problem. Either way it's not a big blocker for us upgrading our systems by any means. Just adds a small manual intervention if it happens to end up in that state (though I think the create table if not exist may solve some of that, haven't had a chance to use the new image).

proposal: instead of initializing the database in the main function of the application I propose we initialize in the middleware, when the first request is received. It would look something like this:
// one-time function to setup and load the store
once.Do(func() {
  store_, err = store.Load(driver, datasource)
})

// if we couldn't load the database
if err != nil {
    c.String(500, "Unable to load database")
}

// add the store to the request context
store.Set(c, store_)

If starting the database fails we can show and error page instead of exiting the application, and perhaps even include a link to the documentation and known database issues. We could do the exact same thing for hooking up a remote repository (like GitHub).
Aside from solving the original issue that was logged here, it let's us display an error page instead of immediately exiting the system, which at present seems to confuse people when they first install Drone.


WIP: TorchScript/Trace

This PR uses torch.jit.trace on the entire step instead of torch.jit.script on small parts of the forward pass, allowing for significantly higher speeds.
The current implementation is roughly 5x as fast:

but its updates get wonky after a short while:

Tracing the optimizer step is not a good idea


fix: fix app_version tracking

Summary
Fixed app_version tracking.
Checklist

[x] Does your PR title have the correct title format?
Does your PR have a breaking change?:  No

Thanks @falconandy. @bgiori also provided a fix in #507. Using his as it includes a test.


Saving more binary size with a stricter ffmpeg configuration.

Hello, I was investigating this build process as part of some research for a Chrome bug:
https://bugs.chromium.org/p/chromium/issues/detail?id=1090959#c4
FFmpeg offers quite a few more flags that you can try disabling to save more binary size:
https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/2240305/1/build-js.sh#16
Depending on your application you can avoid compiling ffmpeg.c too and just use the API methods for the functionality you desire:
https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/2240305/1/mux_demux_methods.cc
Just FYI in case this helps with download size. Apologies for the noise if you're already tried this without effect.

Thanks for raising this feature.
I do have plans for minizing the bundle size and providing only minimal set of features to users, it is still in progress and I will give some update once I have some progress.


Completed Beta Certification (Javascript Algorithms and Data Structures), but Not Seeing Certificate

Claim Your JavaScript Algorithms and Data Structures Certificate
https://beta.freecodecamp.org/en/challenges/claim-your-javascript-algorithms-and-data-structures-certificate/claim-your-javascript-algorithms-and-data-structures-certificate
Issue Description
I'm able to go through all of the steps for claiming my certificate, and then FCC tells me it has been added to my profile page.
But, in looking at my profile page, I'm not able to find the certificate. It might be on my end, but there seems to be no place that it's listed.
Potential issue: I linked my github account after claiming the certificate for the first time.
Browser Information
Chrome: 64.0.3282.140

Browser Name, Version:
Operating System:  Windows 10.0.14393
Mobile, Desktop, or Tablet: Laptop

Your Code

Screenshot

Thanks for reporting this. I have a PR that addresses this issue #16412

I also can't seem to find the certificate for the javascript algorithms and data structures:


Drop apt-key usage from Debian/Ubuntu instructions

As already suggested in
https://github.com/AdoptOpenJDK/openjdk-website/issues/960, this removes the
usage of apt-key from the Debian/Ubuntu instructions, which was lost in the
AdoptOpenJDK to Adoptium move.
This implements a pattern already used by other popular projects like
Kubernetes.

Thanks for your contribution @TobiX. I note that you haven't signed the Eclipse Contributor Agreement yet, Please can you follow the instructions in https://eclipsefdn-adoptium-v2.netlify.app/docs/eca-sign-off and let me know when you've completed them?

@gdams I already signed them, but it seems I can only have one mail address on record with Eclipse, so I now moved my contribution to a dedicated address...

Looking at the kubernetes instructions they also has curl to avoid adding wget as a dependency. Does it make sense to adopt this approach?

Looking at the kubernetes instructions they also has curl to avoid adding wget as a dependency. Does it make sense to adopt this approach?

Ignore that comment, for some reason I thought that curl was installed by default on most linux systems but perhaps it's not

Both, the default Debian 11 container image and a minimal (debootstrap) Debian 11 chroot don't install wget or curl... I wonder if there are some other "minimal" or "server" installation one could look at to decide if curl or wget is the "better" selection...

Both, the default Debian 11 container image and a minimal (debootstrap) Debian 11 chroot don't install wget or curl... I wonder if there are some other "minimal" or "server" installation one could look at to decide if curl or wget is the "better" selection...

I did a quick bit of research, it looks like Ubuntu and Debian don't provide curl as part of the base image although it is included by several cloud vendors in their custom scripts (hence why I thought it was included). On the basis that they are both small packages I'd be tempted to leave it as wget, I'm going to discuss this change (along with the curl/wget bit) on the PMC call today and will get back to you


busyIndicatorDelay in SelectDialog did not work

URL (minimal example if possible): http://plnkr.co/edit/wKapH6?p=preview
Steps to reproduce the problem:

Click "select dialog" button, this._oDialog.getBusyIndicatorDelay() returns 0
But sap.ui.getCore().byId("__dialog0-dialog").getBusyIndicatorDelay() returns 1000
Using UI5 devtools, we can see dialog busyIndicatorDelay is still 1000 (this is a screenshot in our project, not in plnkr demo, UI5 devtools is not supported in plnkr )

What is the expected result?
Expect busyIndicatorDelay of SelectDialog to be 0, no delay when loading data
What happens instead?
Actually busyIndicatorDelay of SelectDialog is 1000, delay can be obvious when loading data from backend.
Compares to table select dialog(expected behavior):

Click "select table dialog" button, this._oDialog2.getBusyIndicatorDelay() returns 0
But sap.ui.getCore().byId("__dialog1-dialog").getBusyIndicatorDelay() returns 0
Using UI5 devtools, we can see table select dialog busyIndicatorDelay is still 0

Hi @TinaC ,
Thanks for the issue. It is tracked internally as<PHONE_NUMBER>. Expect updates on its status.
Regards,
Alex

Hi @TinaC,
The fix will be available with version 1.58 which should be publicly available around week 41.
Best Regards,
Hristo


[HybridApp] Provide notification test cases for hybrid app refactor

Problem
For the Wave 5 detailed implementation we will be refactoring a lot of the native push notification code. This is dangerous as we have a lot of app logic in these classes for iOS and Android.
Solution
Document as many of these flows and cases as possible. Then pass to @staszekscp and QA to ensure we don't break existing flows.

Onyx payload is persisted when notification received and shown in app prior to network call
Sound should play when notification received, if user is not viewing the current chat
Profile images shown in notification
Notification titles set correctly (mostly should match Web LHN)
Thread notifications should include parent message in notification
Android conversation style notifications for groups
Android notification channelID and group should match NewDot
Android notification categories as message for prioritisation
Android visibility private (message not shown when notifications set to hidden on lock screen)
Android notification threading, should be grouped by user name

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0182ead7f1ba4fe0a7
Upwork Job ID:<PHONE_NUMBER>588582400
Last Price Increase: 2024-02-28

I added the cases to the issue description, closing.


Link LLVM initialization functions

rustc-llvm-proxy cannot link llvm_sys::target::LLVM_InitializeAllTargets and other initialization function listed at https://github.com/tari/llvm-sys.rs/blob/36cdcf413a0f452ffb0c7c7ba7dd5954b0a59214/src/target.rs#L169.
LLVM C API defines initialization APIs as , e.g. LLVMInitializeAllTargets as static inline functions, and these symbols does not exist in the shared library. llvm-sys/wrapper/target.c create public ABI of these functions to call from Rust. However, this way cannot be used with this crate because it needs to compile C code (target.c) with the LLVM library.
I re-implement these as rust code.

Thanks for the changes! Published in 0.1.4.


[BUG] The setting for "Alert Threshold Association with Monitors" is invalid.

Is there an existing issue for this?

[x] I have searched the existing issues

Current Behavior

Move the Marquee_DEV_Mysql from the left side of this interface to the right side, confirm, and then reopen it, but it remains on the left side.
Expected Behavior
No response
Steps To Reproduce

Mac OS 13.6.6 (22G630). Docker部署，版本 1.6
重现步骤：

https://github.com/apache/hertzbeat/assets/16717330/2ef24e08-d683-4b05-8f0b-72034a1afa8d
Environment
HertzBeat version(s):v1.6.0

Debug logs
No response
Anything else?
No response

Got it. Maybe this cause by the hibernate -> eclipseLink

Please assign it to me.

fixed


Make createScanner external (fixes #4057)

Hi @adidahiya, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, MSBOT;

forgot to update lib/typescriptServices.d.ts... fix coming

lgtm

@mhegazy shouldn't this trigger API test failures?

we disabled the API baseline as it was too noisy. it will only break now if you change an API that is used by the test in a way that would generate a compilation error in the test.

:+1:


deploy Yosys in nodejs

Hello, these days I plan to deploy Yosys in VScode, but I have encountered some problems. The first is whether Yosys.js can be started and used in native JavaScript?
The following problems are encountered during debugging：

How can I export the functions in Yosys.js and use them in native JavaScript?
I look forward to your clarification.

Since that's a web library, try just requiring it without assigning to anything.
require("./yosysjs");
console.log(YosysJS);

In browser-js, things are declared under global.XXXX or window.XXXX. In case of nodejs it probably goes under global.XXXX which will maps directly as XXXXX.
You can also edit yosys.js file and add to the end:
exports.YosysJS = YosysJS;

Which should make it work like you tried.

First of all, Yosys.js does not contain YosysJS objects. In addition, after that, I tried to use the methods exposed in Yosys.js directly and successfully read the Verilog file and completed some designs. However, I encountered problems in how to export the design.I can't export the designed file.The specific code is as follows:
`
var fs = require("fs");
var yosys   = require("../yosys-no-wasm-0.9/yosys");
console.log(yosys);
// yosys.FS.writeFile("demo.v", fs.readFileSync("./demo.v", "utf-8"), { encoding: 'utf8' });
let demo_text = fs.readFileSync("D:/project/Code/Javascript/yosysjs/demo.v", "utf-8");
yosys.FS_createPath("/","verilog",true,true)
yosys.FS_createDataFile("/verilog","demo.v", demo_text,true,true,false);
yosys.ccall('run', '', ['string'], ["read_verilog /verilog/demo.v"]);
yosys.ccall('run', '', ['string'], ["synth_anlogic -top demo"]);
yosys.ccall('run', '', ['string'], ["write_verilog /verilog/full.v"]);
`
The first problems encountered are as follows：

How can I fix it?
Second, how do I get the contents of the Full.v file if I do it correctly?
Being able to run Yosys on NodeJS is really important for my future work. Looking forward to your reply.


Use pharo constants

This PR removes the constant defined in PolyMath to use the ones in Pharo.

/!\ NEEDS https://github.com/PolyMathOrg/PolyMath/pull/318 BEFORE MERGING


RFC: move TypeConversion Checker into cast_to()

Describe the bug
Current coerce_type mixed with too many functions.
I want to split check type conversion from coerce_type.
such as code
type_coercion.rs:566

// Support the `IsTrue` `IsNotTrue` `IsFalse` `IsNotFalse` type coercion.
// The above op will be rewrite to the binary op when creating the physical op.
fn get_casted_expr_for_bool_op(expr: &Expr, schema: &DFSchemaRef) -> Result<Expr> {
    let left_type = expr.get_type(schema)?;
    let right_type = DataType::Boolean;
    let coerced_type = coerce_types(&left_type, &Operator::IsDistinctFrom, &right_type)?;
    expr.clone().cast_to(&coerced_type, schema)
}

In above code, coerce_types() is just for checking TypeConversion, because we already know coerced_type is  Boolean.

I think we can check TypeConversion in expr.cast_to().
Here is SQLServer Data type conversion Doc.
https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-type-conversion-database-engine?view=sql-server-2017
To Reproduce
No response
Expected behavior
No response
Additional context
No response

cc @mingmwang @alamb @liukun4515 @yjshen

Splitting the "what is the result type of this expression" calculation from "what types should the inputs be coerced to to execute it" is a great idea in my opinion.
I also think it would make the code much easier to reason about if the input arguments were coerced once (during type coercion in the analysis phase) and then never again. Right now I can never quite tell if the inputs to an expr have been coerced or not

Right now I can never quite tell if the inputs to an expr have been coerced or not

Agree with it, because we should get_type() just for expr have been coerced

I think this issue may be fixed


ci: use preinstalled version of bash

Codecov Report

Merging #216 (43d3f60) into main (a92b9e4) will decrease coverage by 0.29%.
The diff coverage is n/a.

:exclamation: Current head 43d3f60 differs from pull request most recent head edb6b37. Consider uploading reports for the commit edb6b37 to get more accurate results

@@            Coverage Diff             @@
##             main     #216      +/-   ##
==========================================
- Coverage   89.81%   89.51%   -0.30%
==========================================
  Files         116      116
  Lines        7478     7478
==========================================
- Hits         6716     6694      -22
- Misses        762      784      +22

Flag
Coverage Δ

e2e.cbl
89.51% <ø> (ø)

unit.cbl
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

packages/cbl/lib/src/support/edition.dart
50.00% <0.00%> (-50.00%)
:arrow_down:

packages/cbl/lib/src/support/streams.dart
82.47% <0.00%> (-13.41%)
:arrow_down:

packages/cbl/lib/src/support/resource.dart
94.23% <0.00%> (-3.85%)
:arrow_down:

packages/cbl/lib/src/support/listener_token.dart
90.24% <0.00%> (-2.44%)
:arrow_down:

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 a92b9e4...edb6b37. Read the comment docs.


Prim's Algorithm

Implement Prim's Algorithm in the following languages:

C
C++
Java
Python

This is the code for Prim's Algorithm in Java
// Prim's Algorithm in Java
import java.util.Arrays;
class PGraph {
public void Prim(int G[][], int V) {
int INF = 9999999;

int no_edge; // number of edge

// create a array to track selected vertex
// selected will become true otherwise false
boolean[] selected = new boolean[V];

// set selected false initially
Arrays.fill(selected, false);

// set number of edge to 0
no_edge = 0;

// the number of egde in minimum spanning tree will be
// always less than (V -1), where V is number of vertices in
// graph

// choose 0th vertex and make it true
selected[0] = true;

// print for edge and weight
System.out.println("Edge : Weight");

while (no_edge < V - 1) {
  // For every vertex in the set S, find the all adjacent vertices
  // , calculate the distance from the vertex selected at step 1.
  // if the vertex is already in the set S, discard it otherwise
  // choose another vertex nearest to selected vertex at step 1.

  int min = INF;
  int x = 0; // row number
  int y = 0; // col number

  for (int i = 0; i < V; i++) {
    if (selected[i] == true) {
      for (int j = 0; j < V; j++) {
        // not in selected and there is an edge
        if (!selected[j] && G[i][j] != 0) {
          if (min > G[i][j]) {
            min = G[i][j];
            x = i;
            y = j;
          }
        }
      }
    }
  }
  System.out.println(x + " - " + y + " :  " + G[x][y]);
  selected[y] = true;
  no_edge++;
}

}
public static void main(String[] args) {
PGraph g = new PGraph();
// number of vertices in grapj
int V = 5;

// create a 2d array of size 5x5
// for adjacency matrix to represent graph
int[][] G = { { 0, 9, 75, 0, 0 }, { 9, 0, 95, 19, 42 }, { 75, 95, 0, 51, 66 }, { 0, 19, 51, 0, 31 },
    { 0, 42, 66, 31, 0 } };

g.Prim(G, V);

}
}

I can add C++ code for it, Please assign this to me.

@contributors Any issue would be assigned after the coding period starts

I want to contribute in c++, please it too me

please assign this task to me for java language

Please assign this task to me for python

Assigned:
@ManavLohia945 : Java
@MaYaNkKashyap681 : C++
@Kpallavi5 : Python

Do you want Code with comments or just code is fine.

Do you want Code with comments or just code is fine.

Code with comment is a must

ok

Implement Prim's Algorithm in the following languages:

Java
Python

This algorithm is also available in C

Hey, @Kumar-laxmi can you assign it to me for the C code?

This algorithm is also available in C

ok.

Hi , I am a SWOC (Social Winter of Code ) contributor . Can you please assign me for Prim's Algorithm in C @Kumar-laxmi

Assigned!
@aradhya-10 : C

As i see no code,
Assign me this issue i will do it in Python

Assigned!
@aradhya-10 : C
@ayushete02 : C++

I am unassigning @Kpallavi5 due to inactivity

@ayushete02 @aradhya-10 What is your status on this issue?

@Kumar-laxmi
Check : https://github.com/Kumar-laxmi/Algorithms/pull/567

Please assign me this issue in C?

Unassigning @aradhya-10 due to inactivity

Assign this issue to me in C++/C or python will do it.

Assigned!
@Abhinavcode13 : C


Update dependencies

Coverage remained the same at 90.054% when pulling e6beb4948b923c2b7da9c9ab340ae8668e9b9727 on rel_branch into 540d280b065d4eba5ff33ca9cc9204eb0d4c354f on master.


Timer

Is there any way we could set timer on or off to the device?

I don't know. I don't have a full api documentation, probably the easiest way is to pass from google home assistant or alexa


Fix performance issue generating service metadata, change logging

See
https://mhus.de/2017/11/02/karaf-maven-tools-performance-issue-in-eclips
e-ide/ for details

SUCCESS
--none--


Add TwoWayBatcher

WIP
TODO:

[x] Unit Tests
[x] Integration Tests
[ ] Natspec

@kbrizzle 9e3f357 contains style fixes for most comments, 9d8c3f3 contains conversion to ERC20
PTAL

couple more nits, but looks very clean 😎