Add support for field aliases to properties

In order to avoid breaking changes in JS (see https://github.com/realm/realm-js/issues/2266), we need to have support for re-mapping fields in the JS schema. This feature is already present in Java, Cocoa and the core query engine, so this PR just adds the tempory data to the schema objects in Object Store similar to computed properties.
Usage in bindings
Bindings are responsible for setting and using the alias field.
Reading/Writing fields are supported by overriding the Object::value_for_property method in the Object Accessor.
Queries support this by creating a specific KeyPathMapping with the alias fields.
Performance considerations:
A few comments about performance impact:
We don't currently check if properties are in the schema twice. This PR fixes this. It has currently not been a problem because most (all?) bindings use maps/dictionaries to store properties which effectively makes this impossible. But it is possible to get into this situation using the C++ API's.
With this PR we now validate that no duplicate names, aliases or conflicts between the two exists. Unfortunately, this runs in (O(n*log(n) + n) + (O(n*log(n) + n) + O(n^2) in order to avoid duplicated properties being reported multiple times. This is similar to how duplicated types  are reported in schema.cpp
This runtime penalty is a bit heavy, so I'm not 100% sure we want to keep this behaviour. Some alternatives could  be:

Remove the check for duplicated names and document it since all bindings already handle this by using appropriate dictionary types.  This will remove a (O(n*log(n) + n) check.

Remove the check for conflicts between names and aliases. Nothing prevents us from supporting this expect perhaps users being confused by reported names mapping to different things. Removing this would remove an O(n^2)

We could combine all 3 checks into one O(n^2) run, the downside would be that duplicated names and aliases are reported multiple times, once for each duplicate.

The minimal check we would need is checking for duplicated aliases which are not caught by using dictionaries in bindings. Only having this would run in (O(n*log(n) + n).

For now, I have opted for the most user-friendly approach, but thoughts on the above are appreciated.

There seems to be a MacOS CI configuration failure somewhere, but since the rest of the tests parses this PR should be ready for review.

What is this actually going to be used for? The linked issues all just say that it's needed for subscription updating and it's not at all obvious to me why it would be, or even why it'd be useful for that considering that in JS Subscription objects aren't managed objects.

WRT the performance of duplicate detection, we can take advantage of that performance only matters in the case where there are no duplicates. This means that you can just do something like dump all the names/aliases into a vector, sort it, check for dupes, and then only do slower things that let you usefully report what the errors are if there are any.

Ready for final review.
See example of usage here: https://github.com/realm/realm-js/pull/2306/files#diff-40fa1bcc04a39e465f1572b1178dfcfbR377


chore(package): update @types/node to version 8.0.31

Codecov Report

Merging #71 into develop will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop      #71   +/-   ##
========================================
  Coverage    57.04%   57.04%
========================================
  Files           21       21
  Lines         2223     2223
  Branches       446      446
========================================
  Hits          1268     1268
  Misses         953      953
  Partials         2        2


Large overhead using @batch

When I try to use @batch to improve the performance with multithreading, I found it has a large overhead which is similar to Threads.@threads.
Here is the code I tested which is the task of applying the X-gate on the first qubit in quantum simulation. And the functions serial_X1, batch_X1,  and threads_X1 are single-thread, multi-thread with @batch, and multi-threads with Threads.@threads version of X-gate on the first qubit respectly.
using Polyester
using BenchmarkTools

@inline function scheduler(L::Integer, tid, nthreads)
    N = L ÷ 2
    bsize = N ÷ nthreads
    tid < nthreads && return (tid-1)*bsize*2:2:tid*bsize*2-2
    return (tid-1)*bsize*2:2:N*2-2
end

@inline function kernel_vec(x, iter)
    for i in iter
        @inbounds begin
            temp = x[i+1]
            x[i+1] = x[i+2]
            x[i+2] = temp
        end
    end
    return x
end

@inline function kernel_mat(x, iter)
    bs = size(x, 1)
    for i in iter
        for b in 1:bs
            @inbounds begin
                temp = x[b, i+1]
                x[b, i+1] = x[b, i+2]
                x[b, i+2] = temp
            end
        end
    end
    return x
end

function seriel_X1(x::Vector{T}) where T
    for i in 0:2:length(x)-2
        @inbounds begin
            temp = x[i+1]
            x[i+1] = x[i+2]
            x[i+2] = temp
        end
    end
    return x
end
function batch_X1(x::Vector{T}) where T
    nthreads = Threads.nthreads()
    N = length(x)
    ranges = [scheduler(N, tid, nthreads) for tid = 1:nthreads]
    @batch per=thread for tid = 1:nthreads
        kernel_vec(x, ranges[tid])
    end
    return x
end
function threads_X1(x::Vector{T}) where T
    nthreads = Threads.nthreads()
    N = length(x)
    Threads.@threads for tid = 1:nthreads
        kernel_vec(x, scheduler(N, tid, nthreads))
    end
    return x
end
function seriel_X1(x::Matrix{T}) where T
    batch_size, state_size = size(x)
    for i in 0:2:state_size-2
        @inbounds for b in 1:batch_size
            temp = x[b, i+1]
            x[b, i+1] = x[b, i+2]
            x[b, i+2] = temp
        end
    end
    return x
end
function batch_X1(x::Matrix{T}) where T
    nthreads = Threads.nthreads()
    batch_size, state_size = size(x)
    @batch per=thread for tid in 1:nthreads
        kernel_mat(x, scheduler(state_size, tid, nthreads))
    end
    return x
end
function threads_X1(x::Matrix{T}) where T
    nthreads = Threads.nthreads()
    batch_size, state_size = size(x)
    Threads.@threads for tid in 1:nthreads
        kernel_mat(x, scheduler(state_size, tid, nthreads))
    end
    return x
end

N = 26
M = 8
B = 1<<M
T = ComplexF64
nthreads = Threads.nthreads()

begin
    b0_vec = @benchmark seriel_X1(x) setup=(x=rand(T, 1<<N))
    bb_vec = @benchmark batch_X1(x) setup=(x=rand(T, 1<<N))
    bt_vec = @benchmark threads_X1(x) setup=(x=rand(T, 1<<N))
    kt_vec = @benchmark kernel_vec(x, scheduler(1<<N, rand(1:nthreads), nthreads)) setup=(x=rand(T, 1<<N))
    println("nthreads = $(nthreads), N = $N, B = $B, T = $T\nvector")
    println("\ttime: single: $(mean(b0_vec).time/1e6) ms, @batch: $(mean(bb_vec).time/1e6) ms, @threads: $(mean(bt_vec).time/1e6) ms, kernel: $(mean(kt_vec).time/1e6) ms")
    println("\tspeedups: @batch = $(mean(b0_vec).time/mean(bb_vec).time), @threads = $(mean(b0_vec).time/mean(bt_vec).time)")
end
begin
    b0_mat = @benchmark seriel_X1(x) setup=(x=rand(T, B, 1<<(N-M)))
    bb_mat = @benchmark batch_X1(x) setup=(x=rand(T, B, 1<<(N-M)))
    bt_mat = @benchmark threads_X1(x) setup=(x=rand(T, B, 1<<(N-M)))
    kt_mat = @benchmark kernel_mat(x, scheduler(1<<(N-M), rand(1:nthreads), nthreads)) setup=(x=rand(T, B, 1<<(N-M)))
    println("matrix\n\ttime: single: $(mean(b0_mat).time/1e6) ms, @batch: $(mean(bb_mat).time/1e6) ms, @threads: $(mean(bt_mat).time/1e6) ms, kernel: $(mean(kt_mat).time/1e6) ms")
    println("\tspeedups: @batch = $(mean(b0_mat).time/mean(bb_mat).time), @threads = $(mean(b0_mat).time/mean(bt_mat).time)")
end

And here are the benchmarking results I got on an Intel Xeon server with 36 cores. The scaling of multi-threading performance is weird.
nthreads = 2, N = 29, B = 256, T = ComplexF64
vector
        time: single: 758.948844 ms, @batch: 427.72366 ms, @threads: 380.410896 ms, kernel: 340.503834 ms
        speedups: @batch = 1.7743906053735723, @threads = 1.995076513265803
matrix
        time: single: 701.143214 ms, @batch: 400.370238 ms, @threads: 423.890585 ms, kernel: 345.450667 ms
        speedups: @batch = 1.751237098697631, @threads = 1.6540664945412742
nthreads = 3, N = 29, B = 256, T = ComplexF64
vector
        time: single: 774.086713 ms, @batch: 440.598266 ms, @threads: 395.602408 ms, kernel: 228.738447 ms
        speedups: @batch = 1.7568991363211584, @threads = 1.9567290222358809
matrix
        time: single: 707.916779 ms, @batch: 375.911029 ms, @threads: 326.691795 ms, kernel: 230.162201 ms
        speedups: @batch = 1.883203003868237, @threads = 2.1669254931854045
nthreads = 4, N = 29, B = 256, T = ComplexF64
vector
        time: single: 669.029929 ms, @batch: 327.990488 ms, @threads: 287.821502 ms, kernel: 166.750851 ms
        speedups: @batch = 2.039784547044547, @threads = 2.3244612523771764
matrix
        time: single: 805.944257 ms, @batch: 276.879919 ms, @threads: 295.451252 ms, kernel: 176.909151 ms
        speedups: @batch = 2.910807905141001, @threads = 2.7278417388463123
nthreads = 5, N = 29, B = 256, T = ComplexF64
vector
        time: single: 811.823538 ms, @batch: 499.356784 ms, @threads: 313.638338 ms, kernel: 135.188897 ms
        speedups: @batch = 1.6257384780017328, @threads = 2.5884065805756182
matrix
        time: single: 714.276448 ms, @batch: 278.286876 ms, @threads: 286.340169 ms, kernel: 136.124786 ms
        speedups: @batch = 2.5666911004455706, @threads = 2.494503130645285
nthreads = 6, N = 29, B = 256, T = ComplexF64
vector
        time: single: 668.352429 ms, @batch: 277.517347 ms, @threads: 275.808225 ms, kernel: 115.903315 ms
        speedups: @batch = 2.4083266729989314, @threads = 2.423250535766292
matrix
        time: single: 685.491621 ms, @batch: 218.34573 ms, @threads: 299.880532 ms, kernel: 115.708221 ms
        speedups: @batch = 3.139478024140889, @threads = 2.285882369316325
nthreads = 7, N = 29, B = 256, T = ComplexF64
vector
        time: single: 659.121349 ms, @batch: 309.260986 ms, @threads: 369.67255 ms, kernel: 95.736375 ms
        speedups: @batch = 2.1312786896437044, @threads = 1.7829869948417862
matrix
        time: single: 697.684233 ms, @batch: 348.150284 ms, @threads: 335.357419 ms, kernel: 99.306742 ms
        speedups: @batch = 2.003974332532786, @threads = 2.080419854972703
nthreads = 8, N = 29, B = 256, T = ComplexF64
vector
        time: single: 730.27713 ms, @batch: 591.467167 ms, @threads: 373.561413 ms, kernel: 88.229665 ms
        speedups: @batch = 1.234687520702227, @threads = 1.954905149692214
matrix
        time: single: 716.827122 ms, @batch: 391.814804 ms, @threads: 343.247666 ms, kernel: 119.122699 ms
        speedups: @batch = 1.829504946423617, @threads = 2.088367068459542
nthreads = 9, N = 29, B = 256, T = ComplexF64
vector
        time: single: 747.910207 ms, @batch: 296.184118 ms, @threads: 402.676153 ms, kernel: 77.234656 ms
        speedups: @batch = 2.5251529759607165, @threads = 1.857349141308599
matrix
        time: single: 710.844421 ms, @batch: 343.033078 ms, @threads: 338.07297 ms, kernel: 75.754215 ms
        speedups: @batch = 2.0722328737055498, @threads = 2.1026360699585065
nthreads = 10, N = 29, B = 256, T = ComplexF64
vector
        time: single: 748.423444 ms, @batch: 425.088183 ms, @threads: 333.194189 ms, kernel: 66.774203 ms
        speedups: @batch = 1.7606310265275005, @threads = 2.246207973332932
matrix
        time: single: 690.749288 ms, @batch: 1022.177578 ms, @threads: 327.080302 ms, kernel: 68.250646 ms
        speedups: @batch = 0.6757625121767248, @threads = 2.1118645292188827
nthreads = 11, N = 29, B = 256, T = ComplexF64
vector
        time: single: 697.302823 ms, @batch: 321.932681 ms, @threads: 321.686354 ms, kernel: 65.325055 ms
        speedups: @batch = 2.16598955046754, @threads = 2.167648127840698
matrix
        time: single: 706.656784 ms, @batch: 312.188245 ms, @threads: 266.225318 ms, kernel: 62.370552 ms
        speedups: @batch = 2.26355987234561, @threads = 2.6543560518913534
nthreads = 12, N = 29, B = 256, T = ComplexF64
vector
        time: single: 781.198529 ms, @batch: 267.114262 ms, @threads: 394.873738 ms, kernel: 57.76933 ms
        speedups: @batch = 2.924585617970485, @threads = 1.9783501758225308
matrix
        time: single: 687.501855 ms, @batch: 287.455688 ms, @threads: 316.850428 ms, kernel: 57.841534 ms
        speedups: @batch = 2.391679426430414, @threads = 2.1697993571907057
nthreads = 13, N = 29, B = 256, T = ComplexF64
vector
        time: single: 777.750496 ms, @batch: 585.038665 ms, @threads: 314.500428 ms, kernel: 53.187863 ms
        speedups: @batch = 1.3294001619533984, @threads = 2.4729711846369886
matrix
        time: single: 687.835125 ms, @batch: 304.654148 ms, @threads: 266.961579 ms, kernel: 53.604497 ms
        speedups: @batch = 2.2577572946750095, @threads = 2.576532276953606
nthreads = 14, N = 29, B = 256, T = ComplexF64
vector
        time: single: 705.870263 ms, @batch: 278.763078 ms, @threads: 297.819495 ms, kernel: 48.62953 ms
        speedups: @batch = 2.532151201889082, @threads = 2.3701277950256414
matrix
        time: single: 697.629396 ms, @batch: 297.495934 ms, @threads: 258.19076 ms, kernel: 50.496978 ms
        speedups: @batch = 2.3450048093766553, @threads = 2.7019921084704968
nthreads = 15, N = 29, B = 256, T = ComplexF64
vector
        time: single: 738.90586 ms, @batch: 261.42902 ms, @threads: 293.810003 ms, kernel: 44.562994 ms
        speedups: @batch = 2.8264110082346634, @threads = 2.5149104947253957
matrix
        time: single: 796.007575 ms, @batch: 284.122042 ms, @threads: 260.419643 ms, kernel: 45.889936 ms
        speedups: @batch = 2.8016396383635733, @threads = 3.056634153361465
nthreads = 16, N = 29, B = 256, T = ComplexF64
vector
        time: single: 709.144846 ms, @batch: 292.776133 ms, @threads: 294.045452 ms, kernel: 43.102211 ms
        speedups: @batch = 2.4221402159171217, @threads = 2.4116844561840054
matrix
        time: single: 707.602967 ms, @batch: 273.216199 ms, @threads: 274.358148 ms, kernel: 42.87096 ms
        speedups: @batch = 2.5899012195832505, @threads = 2.5791213862545828
nthreads = 17, N = 29, B = 256, T = ComplexF64
vector
        time: single: 665.487425 ms, @batch: 250.386347 ms, @threads: 256.360359 ms, kernel: 39.127386 ms
        speedups: @batch = 2.657842302399979, @threads = 2.5959061205714726
matrix
        time: single: 693.565923 ms, @batch: 260.139034 ms, @threads: 262.635451 ms, kernel: 39.772669 ms
        speedups: @batch = 2.6661355365838717, @threads = 2.640793237772002
nthreads = 18, N = 29, B = 256, T = ComplexF64
vector
        time: single: 743.776624 ms, @batch: 838.389326 ms, @threads: 678.32539 ms, kernel: 38.927632 ms
        speedups: @batch = 0.887149443503292, @threads = 1.0964894355495083
matrix
        time: single: 787.243313 ms, @batch: 982.976386 ms, @threads: 286.746328 ms, kernel: 96.303057 ms
        speedups: @batch = 0.8008771362285808, @threads = 2.7454346791147053
nthreads = 19, N = 29, B = 256, T = ComplexF64
vector
        time: single: 741.951064 ms, @batch: 271.133155 ms, @threads: 276.87823 ms, kernel: 35.899063 ms
        speedups: @batch = 2.7364822424612734, @threads = 2.67970170135803
matrix
        time: single: 685.204285 ms, @batch: 273.751373 ms, @threads: 277.134742 ms, kernel: 37.132847 ms
        speedups: @batch = 2.503016797654564, @threads = 2.4724589925286233
nthreads = 20, N = 29, B = 256, T = ComplexF64
vector
        time: single: 702.165858 ms, @batch: 254.476731 ms, @threads: 293.005002 ms, kernel: 34.01893 ms
        speedups: @batch = 2.7592536859489916, @threads = 2.3964295940586027
matrix
        time: single: 682.399841 ms, @batch: 263.685864 ms, @threads: 269.513592 ms, kernel: 35.727563 ms
        speedups: @batch = 2.587927280773762, @threads = 2.5319681873409934
nthreads = 21, N = 29, B = 256, T = ComplexF64
vector
        time: single: 666.356674 ms, @batch: 380.749845 ms, @threads: 358.705724 ms, kernel: 32.354834 ms
        speedups: @batch = 1.7501167308420047, @threads = 1.8576694750485776
matrix
        time: single: 1411.334044 ms, @batch: 285.669809 ms, @threads: 282.373323 ms, kernel: 32.929529 ms
        speedups: @batch = 4.940438224607767, @threads = 4.9981139471875675
nthreads = 22, N = 29, B = 256, T = ComplexF64
vector
        time: single: 656.312092 ms, @batch: 254.669337 ms, @threads: 258.073944 ms, kernel: 31.951392 ms
        speedups: @batch = 2.5771146999137944, @threads = 2.5431164488267752
matrix
        time: single: 713.862002 ms, @batch: 265.696419 ms, @threads: 272.050217 ms, kernel: 31.883237 ms
        speedups: @batch = 2.6867580853620763, @threads = 2.6240082065437207
nthreads = 23, N = 29, B = 256, T = ComplexF64
vector
        time: single: 664.87585 ms, @batch: 260.759646 ms, @threads: 263.628083 ms, kernel: 29.967598 ms
        speedups: @batch = 2.549765119714881, @threads = 2.522022094285001
matrix
        time: single: 700.647975 ms, @batch: 272.431587 ms, @threads: 270.844119 ms, kernel: 30.488807 ms
        speedups: @batch = 2.5718309052026336, @threads = 2.5869048867920963
nthreads = 24, N = 29, B = 256, T = ComplexF64
vector
        time: single: 665.329581 ms, @batch: 267.937814 ms, @threads: 276.118359 ms, kernel: 28.745043 ms
        speedups: @batch = 2.483149246712896, @threads = 2.409581106484846
matrix
        time: single: 699.343092 ms, @batch: 254.186002 ms, @threads: 258.328945 ms, kernel: 28.99127 ms
        speedups: @batch = 2.7513045033848873, @threads = 2.7071805368151836
nthreads = 25, N = 29, B = 256, T = ComplexF64
vector
        time: single: 745.157716 ms, @batch: 256.145497 ms, @threads: 256.815567 ms, kernel: 27.833451 ms
        speedups: @batch = 2.9091189371952924, @threads = 2.90152861333363
matrix
        time: single: 700.003726 ms, @batch: 258.74734 ms, @threads: 258.908896 ms, kernel: 27.296501 ms
        speedups: @batch = 2.7053562212465643, @threads = 2.703668111890601
nthreads = 26, N = 29, B = 256, T = ComplexF64
vector
        time: single: 780.257185 ms, @batch: 730.540519 ms, @threads: 536.136618 ms, kernel: 26.440887 ms
        speedups: @batch = 1.0680546317513704, @threads = 1.4553327618446685
matrix
        time: single: 808.8797 ms, @batch: 251.729896 ms, @threads: 256.998632 ms, kernel: 27.376422 ms
        speedups: @batch = 3.213284209993079, @threads = 3.147408582314944
nthreads = 27, N = 29, B = 256, T = ComplexF64
vector
        time: single: 746.587495 ms, @batch: 255.195441 ms, @threads: 252.101746 ms, kernel: 25.166156 ms
        speedups: @batch = 2.9255518518451904, @threads = 2.9614530912451515
matrix
        time: single: 690.409756 ms, @batch: 258.808263 ms, @threads: 263.915633 ms, kernel: 24.704785 ms
        speedups: @batch = 2.6676495873704003, @threads = 2.6160244777921133
nthreads = 28, N = 29, B = 256, T = ComplexF64
vector
        time: single: 779.558091 ms, @batch: 381.597038 ms, @threads: 381.095923 ms, kernel: 23.894243 ms
        speedups: @batch = 2.042882971748853, @threads = 2.0455692227387066
matrix
        time: single: 686.203753 ms, @batch: 315.508825 ms, @threads: 316.898484 ms, kernel: 24.971503 ms
        speedups: @batch = 2.1749114402742933, @threads = 2.165374047671367
nthreads = 29, N = 29, B = 256, T = ComplexF64
vector
        time: single: 703.406898 ms, @batch: 271.447526 ms, @threads: 260.400939 ms, kernel: 23.125941 ms
        speedups: @batch = 2.5913181393298093, @threads = 2.701245627996756
matrix
        time: single: 680.774669 ms, @batch: 260.758882 ms, @threads: 260.677492 ms, kernel: 23.557653 ms
        speedups: @batch = 2.6107439323965194, @threads = 2.611559071620959
nthreads = 30, N = 29, B = 256, T = ComplexF64
vector
        time: single: 754.182646 ms, @batch: 391.590996 ms, @threads: 467.459933 ms, kernel: 23.180966 ms
        speedups: @batch = 1.9259448090067934, @threads = 1.6133631842196836
matrix
        time: single: 720.521694 ms, @batch: 333.620961 ms, @threads: 326.061575 ms, kernel: 22.574419 ms
        speedups: @batch = 2.1597015122799794, @threads = 2.2097718628759
nthreads = 31, N = 29, B = 256, T = ComplexF64
vector
        time: single: 744.230423 ms, @batch: 288.013513 ms, @threads: 363.069175 ms, kernel: 22.316519 ms
        speedups: @batch = 2.5840121709844914, @threads = 2.0498309254703324
matrix
        time: single: 829.604388 ms, @batch: 328.160693 ms, @threads: 329.372495 ms, kernel: 22.252045 ms
        speedups: @batch = 2.5280431376953487, @threads = 2.518742155443186
nthreads = 32, N = 29, B = 256, T = ComplexF64
vector
        time: single: 675.725126 ms, @batch: 287.47809 ms, @threads: 278.195054 ms, kernel: 21.702331 ms
        speedups: @batch = 2.3505273949746917, @threads = 2.4289616809650396
matrix
        time: single: 853.652639 ms, @batch: 383.030903 ms, @threads: 274.777271 ms, kernel: 22.01894 ms
        speedups: @batch = 2.22867824061705, @threads = 3.1067076104704454
nthreads = 33, N = 29, B = 256, T = ComplexF64
vector
        time: single: 665.421467 ms, @batch: 504.189368 ms, @threads: 271.266777 ms, kernel: 21.319316 ms
        speedups: @batch = 1.3197848055375891, @threads = 2.453014977945493
matrix
        time: single: 847.276458 ms, @batch: 443.406448 ms, @threads: 278.649562 ms, kernel: 20.902656 ms
        speedups: @batch = 1.9108347698182324, @threads = 3.0406523947810835
nthreads = 34, N = 29, B = 256, T = ComplexF64
vector
        time: single: 788.361148 ms, @batch: 251.922923 ms, @threads: 418.121858 ms, kernel: 20.730752 ms
        speedups: @batch = 3.1293744079017376, @threads = 1.8854817869866063
matrix
        time: single: 708.964377 ms, @batch: 951.793269 ms, @threads: 329.609682 ms, kernel: 20.166765 ms
        speedups: @batch = 0.744872232333469, @threads = 2.1509209702159175
nthreads = 35, N = 29, B = 256, T = ComplexF64
vector
        time: single: 744.039471 ms, @batch: 275.860489 ms, @threads: 254.037394 ms, kernel: 19.749214 ms
        speedups: @batch = 2.697158530013336, @threads = 2.928858068037023
matrix
        time: single: 691.423121 ms, @batch: 216.359901 ms, @threads: 298.365148 ms, kernel: 19.367871 ms
        speedups: @batch = 3.1957082518724205, @threads = 2.317372272313789
nthreads = 36, N = 29, B = 256, T = ComplexF64
vector
        time: single: 677.28587 ms, @batch: 406.072883 ms, @threads: 526.884894 ms, kernel: 19.296215 ms
        speedups: @batch = 1.6678923866974884, @threads = 1.2854531942606804
matrix
        time: single: 717.661213 ms, @batch: 336.283309 ms, @threads: 318.689037 ms, kernel: 18.729176 ms
        speedups: @batch = 2.1340970360203038, @threads = 2.2519168521005635

The version of Polyester is v0.6.4. And versioninfo() in Julia is
Julia Version 1.7.2
Commit bf53498635 (2022-02-06 15:21 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, cascadelake)

If you want to talk overhead:
julia> @benchmark batch_X1(x) setup=(x=rand(T, 1<<15))
BenchmarkTools.Trial: 8178 samples with 10 evaluations.
 Range (min … max):  2.569 μs …   7.902 μs  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     3.983 μs               ┊ GC (median):    0.00%
 Time  (mean ± σ):   3.997 μs ± 241.912 ns  ┊ GC (mean ± σ):  0.00% ± 0.00%

                           ▂▅▇███▆▄▂▂▁                        ▂
  ▇▇▇▆▇▅▃▃▃▁▃▁▁▁▁▁▃▁▁▁▁▁▃▄▆████████████▇▆▅▄▁▁▄▄▄▁▃▁▁▃▁▁▁▃▃▁▅▅ █
  2.57 μs      Histogram: log(frequency) by time      5.41 μs <

 Memory estimate: 32 bytes, allocs estimate: 1.

julia> @benchmark threads_X1(x) setup=(x=rand(T, 1<<15))
BenchmarkTools.Trial: 6341 samples with 1 evaluation.
 Range (min … max):  133.604 μs …   2.691 ms  ┊ GC (min … max): 0.00% … 46.51%
 Time  (median):     466.104 μs               ┊ GC (median):    0.00%
 Time  (mean ± σ):   617.906 μs ± 447.765 μs  ┊ GC (mean ± σ):  0.82% ±  4.65%

   ▂█▅▇▃▃▂▂▂ ▁
  ▃█████████▇█▇█▆▇▆▅▅▄▅▄▅▄▄▃▄▃▃▃▃▃▃▃▂▂▂▂▂▂▂▂▂▂▂▂▁▂▂▁▁▂▂▂▁▁▁▂▃▃▃ ▃
  134 μs           Histogram: frequency by time         1.95 ms <

 Memory estimate: 15.14 KiB, allocs estimate: 169.

When N is large, this code is bottlenecked by memory, and throwing more cores at it doesn't really help.


Allow HTTP security options to be set via device settings

Description
As a: flow creator
I want to: secure http end points served by the device agent
So that: they are secured to the same standard as hosted-instances

We can easily provide the basic auth option as that is hardcoded into the settings file. Provided FF Team auth is trickier as it requires oauth bounce to the platform and all the bits that entails. Need to think about how to achieve that securely when the device is running outside the security boundary of the platform
Acceptance Criteria

Able to secure dashboard/http end points served by the device

Requested By

https://app-eu1.hubspot.com/contacts/26586079/record/0-1/8936601

As a first iteration, just being able to do this via the settings file would be valuable.
This has just been requested by - https://app-eu1.hubspot.com/contacts/26586079/record/0-2/12971827644

We don't expose the settings file for the user to edit.
One quick iteration would be to allow those settings to be set via the device.yml file - the only file we let the user edit.
The bigger iteration is providing a more consistent UX in the platform UI for modifying these settings.

Using the device.yml would work in this case @knolleary

Duplication of: https://github.com/FlowFuse/flowfuse/issues/4204

@joepavitt can you clarify the task in this iteration pls?
Nick states:

One quick iteration would be to allow those settings to be set via the device.yml file - the only file we let the user edit.

and

The bigger iteration is providing a more consistent UX in the platform UI for modifying these settings.

The iterations are as stated:

First iteration (this milestone) is allowing the auth settings to be set via the device.yml file. This should be fairly self-contained and unlocks the capability quickly.
Second iteration (which we can scope and schedule for a future milestone) will be to have an appropriate settings UI.

Using the device.yml would work in this (https://app-eu1.hubspot.com/contacts/26586079/record/0-2/12971827644) customer's case

Rob, that link has no details about the request (it seems to lead only to the customer details). Can you let me know what they asked for?
I ask because from my understanding, this 1st iteration proposed would only permit setting single basic auth user in httpNodeAuth and that would then add basic security to not only the dashboard but also all HTTP Endpoints that the devices flows create via http-in ~ http-response nodes.

@knolleary to clarify 1st iteration.
As this will permit user to set httpNodeAuth via device yaml, do you have thoughts on whether should this be raw or curated.
e.g. raw - take what the user enters (requires knowledge of yaml object formatting)
deviceId: xxxxxxxxxxxx
forgeURL: http://xxxxxxxxxxxxxx:3000
token: ffd_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
credentialSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
brokerURL: ws://[::1]:9884
brokerUsername: device:xxxxxxxx:xxxxxxxxxxxx
brokerPassword: ffbd_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
httpNodeAuth:
  user: admin
  pass: $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

e.g. curated - specific props, not nested, forgoes yaml formatting knowledge (i.e. simplified but not an exact translation of Node-RED docs  https://nodered.org/docs/user-guide/runtime/securing-node-red)
deviceId: xxxxxxxxxxxx
forgeURL: http://xxxxxxxxxxxxxx:3000
token: ffd_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
credentialSecret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
brokerURL: ws://[::1]:9884
brokerUsername: device:xxxxxxxx:xxxxxxxxxxxx
brokerPassword: ffbd_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
httpNodeAuth.user: admin
httpNodeAuth.pass: $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Either way, I would recommend we sanity check the values and return a valid/not valid result when parsing the yaml file (as we do currently for missing values when provisioning etc)

Option 1 gets my vote. Will check to see what you've put in the PR :)
httpNodeAuth:
  user: admin
  pass: $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Machine Learning ML

Add python based Docker instance for ML processing of the Audio utilizing this library: https://github.com/tyiannak/pyAudioAnalysis
Since the application is written in C# develop models and ML with https://github.com/dotnet/machinelearning

This would be super cool to have. I've long wanted to get into machine learning. Looking forward to seeing this come together.

I have created docker image that now the pyAudioAnalysis library can be tested against
https://hub.docker.com/r/kdcllc/python-ml/


Have Long Track names overflow similiar to track group names

What it does
When TrackNames are very long we no longer shrink the title to super small font size.  We also prioritize the first line of the text since the whole text can be seen in the tooltip or resized to see more.

Ronnie noticed this today.  @dfriederich


Plasma: systemsettings5 crashes when selecting display settings

Issue description
Selecting "Displays and Monitor" or "Displays" results in a segmentation fault.
I've opened an issue upstream as well:
https://bugs.kde.org/show_bug.cgi?id=394756
Technical details
$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 4.14.43, NixOS, 18.03.132507.5f2da7f837e (Impala)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.0.2`
 - channels(root): `"nixos-18.03"`
 - channels(freddy): `"nixpkgs-unstable"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs`

@peterhoeg reported something similar. Does gdb does give you a backtrace with bt?

Yep, I've been seeing the the same thing since 5.12.3 or .4. I did not however, report it upstream... :blush:

With latest unstable (and plasma 5.13, kde-frameworks 5.47, kde-apps 18.04.2, qt 5.11), systemsettings no longer crash for me.

I have not tested as I run stable.

Switched to unstable, and I don't have the issue there.


stopped requiring type property for Columns

Comment: Not totally happy with the modifications, but it's the best solution I have to make it work. Definitely open for a better solution.
Modifications:

Removed [JsonRequired] from AdaptiveTypedElement.cs since it already has Required = Required.Always in the line above and [JsonRequired] seems to block children to overriding it
Overriding Required in AdaptiveColumn
Added a special case in AdaptiveTypedElementConverter.cs. If we want to do something similar for other elements in the future, we'll also need to add corresponding special cases.

@khouzam Not very elegant but that is the only way (supported in .NET 1.3) I can find for

Determining if Type is required
Get the correct TypeName to use when Type is not required


only runs from syncarr folder

Describe the bug
i have to cd to syncarr folder to run index.py,
Version
1.9.1
Config
[radarrA]
url = http://ip:port/radarr
key = api
[radarrB]
url = http://ip:port/radarr4k
key = api
profile_id = 8
path = /mnt/Media/Movies/4k
[general]
sync_bidirectionally = 0
log_level = 20
Debug logs
not working:
python3 path/to/syncarr/index.py
2020-07-02 10:54:17,623 [MainThread  ] [INFO ]  log level 20
2020-07-02 10:54:17,623 [MainThread  ] [ERROR]  missing URL for instance A
working:
cd path/to/syncarr
python3 index.py
2020-07-02 11:02:52,075 [MainThread  ] [INFO ]  log level 20
2020-07-02 11:02:53,949 [MainThread  ] [INFO ]  syncing content from instance A to instance B
2020-07-02 11:02:53,949 [MainThread  ] [INFO ]  0 contents synced successfully
Additional context
is this expected behavior?

fixed in v1.9.1


[weex] Support to compile v-on into the weex native directive

Finish #6622. Generate the binding params of the event handler.
Only effect the Weex platform within the <recycle-list> component.

The ci:test-ssr-weex is failed because the version of weex-js-runtime is mismatch. It has already been fixed in the dev branch. (https://github.com/vuejs/vue/commit/f38d44e23bc9f3eda950a9436205f42be006abfc)

The test-ssr-weex is failed because the version of weex-js-runtime is mismatch with the weex-vue-framework.
It has already been fixed in the dev branch. (https://github.com/vuejs/vue/commit/f38d44e23bc9f3eda950a9436205f42be006abfc)


QRView disposal causes random delays on iOS

Describe the bug
When the leaving "Search" page on my iOS device, I sometimes experience a UI freeze for roughly 10 seconds. I could not reproduce the same on my Android device.
To Reproduce
Steps to reproduce the behavior:

Open the app
Tap on the "History" button
Tap on the "Search" button
Repeat steps 2-3 until observing a UI freeze

Expected behavior
There should be no UI freezes.
Smartphone:

Device: iPhone 12 Pro
OS: iOS 14.7.1

Blocks

[x] #441

I'm able to reproduce this on my iPhone 7 running iOS 14.7 fairly consistently.  I'll try to take a look at what's causing it.
https://user-images.githubusercontent.com/389558/132907350-1aa35d0a-f7a2-4e4f-9876-9708d617efb4.mp4

There is a frequent error in the logs when switching to the history page.

  I've filed a bug with Flutter: https://github.com/flutter/flutter/issues/89995
My next step is to confirm whether or not this error is related to the app freezing.

https://github.com/flutter/flutter/issues/89995 has been fixed and the error is gone from Smoothie (when running on Flutter's master channel), however, the freeze still happens, and there is a new error:
AnimationController methods should not be used after calling dispose.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:47:61)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
#2      AnimationController.forward (package:flutter/src/animation/animation_controller.dart:455:7)
#3      _SmoothRevealAnimationState.initState.<anonymous closure> (package:smooth_ui_library/animations/smooth_reveal_animation.dart:41:28)
#4      _rootRun (dart:async/zone.dart:1420:47)
#5      _CustomZone.run (dart:async/zone.dart:1328:19)
#6      _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
#7      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
#8      _rootRun (dart:async/zone.dart:1428:13)
#9      _CustomZone.run (dart:async/zone.dart:1328:19)
#10     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1260:23)
#11     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
#12     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:395:19)
#13     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:426:5)
#14     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

I've fixed the new error in https://github.com/openfoodfacts/smooth-app/pull/588, but the freezing still happens...

This is a bug in the qr_code_scanner package.  I've reproduced it in a very simple app outside of Smoothie.  I filed an issue (https://github.com/juliuscanute/qr_code_scanner/issues/425) on that repo and will follow up with anyone that chimes in there.
In the meantime I'm unassigning myself until we get word on whether it's fixable in that package.

The problem may not even exist now, since we do not longer dispose the QRView but pause the camera.
cf: https://github.com/openfoodfacts/smooth-app/pull/730

We don't dispose the qr_code_scanner anymore, just pause. In addition it's not our main scanner anymore.

Good news, thanks!


Vertical positioning of flexible connected overlay on mobile

Bug, feature request, or proposal:
Bug
What is the expected behavior?
Flexible connected overlays are positioned correct even if the user is scrolling
What is the current behavior?
Scrolling affects the vertical positioning of the overlay. The overlay is positioned to low.
What are the steps to reproduce?
Scroll down a page on a mobile device (not to the end of the page, but somewhere in the middle) and then open the flexible connected overlay. The overlay seems to be positioned to low.
Example desktop:

Example mobile:

Configuration of the overlay:
const positionStrategy = this.overlay
      .position()
      .flexibleConnectedTo(this.elementRef) // <-- elementRef is the icon element from the screenshot
      .withPositions([
        { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },
        { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' }
      ])
      .withPush(false);
    this.overlay.create({
      positionStrategy,
      scrollStrategy: this.overlay.scrollStrategies.reposition()
    });

Which versions of Angular, Material, OS, TypeScript, browsers are affected?
@angular/core: 6.1.0
@angular/material: 6.4.7
@angular/cdk: 7.0.0-rc.1
typescript: 2.7.2

Can you provide a reproduction in StackBlitz.  This will help us to investigate the issue you are seeing.

https://stackblitz.com/edit/angular-jh76xz You have to open the example on a real mobile device. You will find three touchable elements on the page. The first and the last element work as expected, but hen you touch the second element you will see that the position of the opened overlay is not correct

Is there any progress?

Anything happened here?

Bug still exists. Is there any progress on this Bug?

We are having the exact same issue. Curious to know if there is a workaround or solution in sight?

Hello! I proposed a solution to this problem here https://github.com/angular/components/pull/28425

@crisbeto @andrewseguin could you look at mine PR https://github.com/angular/components/pull/28425 ?


redisearch

Hi, I am getting "ReplyError: Invalid rule type". I am using redisearch 2.0.15. Is it possible to list the dependency of what version of @node-redis/search needs what version of redisearch module?
const { createClient, SchemaFieldTypes, AggregateGroupByReducers, AggregateSteps } = require('redis');
const users_schema = async (client) => {
try {
await client.ft.create('idx:users', {
'$.user_id': {
type: SchemaFieldTypes.TAG,
AS: 'user_id'
},
}, {
ON: 'JSON',
PREFIX: 'users'
});
} catch (e) {
if (e.message === 'Index already exists') {
console.log('Index exists already, skipped creation.');
} else {
// Something went wrong, perhaps RediSearch isn't installed...
console.error(users_schema: ${e});
process.exit(1);
}
}
}

Do you have RedisJSON installed? (MODULE LIST)

Yes. I do have RedisJSON installed. I ran client.info() using node-redis.
The following is a partial output:
'# Modules\r\n' +
'module:name=search,ver=20015,api=1,filters=0,usedby=[],using=[],options=[]\r\n'
+
'module:name=ReJSON,ver=20006,api=1,filters=0,usedby=[],using=[],options=[handle-io-errors]\r\n'
+
'\r\n' +
On Mon, Mar 28, 2022 at 5:38 PM Leibale Eidelman @.***>
wrote:

Do you have RedisJSON installed? (MODULE LIST
https://redis.io/commands/module-list/)
—
Reply to this email directly, view it on GitHub
https://github.com/redis/node-redis/issues/2056#issuecomment-1081221901,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADL6IMHD3LKLAH67FPLKGPLVCIYGXANCNFSM5RY4PYUA
.
You are receiving this because you authored the thread.Message ID:
@.***>

After updating to redisearch-2.2.5, I don't have this problem anymore.
On Tue, Mar 29, 2022 at 1:25 PM Beddhu Murali @.***> wrote:

Yes. I do have RedisJSON installed. I ran client.info() using node-redis.
The following is a partial output:
'# Modules\r\n' +
'module:name=search,ver=20015,api=1,filters=0,usedby=[],using=[],options=[]\r\n'
+
'module:name=ReJSON,ver=20006,api=1,filters=0,usedby=[],using=[],options=[handle-io-errors]\r\n'
+
'\r\n' +
On Mon, Mar 28, 2022 at 5:38 PM Leibale Eidelman @.***>
wrote:

Do you have RedisJSON installed? (MODULE LIST
https://redis.io/commands/module-list/)
—
Reply to this email directly, view it on GitHub
https://github.com/redis/node-redis/issues/2056#issuecomment-1081221901,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADL6IMHD3LKLAH67FPLKGPLVCIYGXANCNFSM5RY4PYUA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Use new env vars

That's the reason why our deploy-preview step always fails...
@anbraten @6543 After merging this, please release a new version and update the version on ci.woodpecker-ci.org.

thanks


Please add the line number when the SQL returns the error information, and the error prompt is detailed to each line

When executing SQL, if there is an error message, please print and mark the wrong line number. If there is no line number, it is very troublesome to find the problem.

Hello @zhaozhilong999
What DBeaver version do you use?
And what database do you use?

Excuse me, can I join this issue please? I have the same problem.
What DBeaver version do you use?
Community edition, version <IP_ADDRESS>203181646
And what database do you use?
PostgreSQL

你好@zhaozhilong999
您使用的是哪个 DBeaver 版本？您使用什么数据库？

个 DBeaver Version   <IP_ADDRESS>204041542

Hello @zhaozhilong999
What DBeaver version do you use? And what database do you use?
DBeaver version <IP_ADDRESS>204041542
database is Oracle

Display line number when there is an error message


[Feature]velaux does not support create applications with multiple Components

Is your feature request related to a problem? Please describe.
Now in vela v1.2.0-beta.2, when I use the velaux dashboard to manage applications, I found that I can only create application with one components. But almost every application we need to delivery has more than 2 components, like rds, redis, or other requirements in the company. We now use the vela-cli to delivery them through one app desc file with all components and traits together

Describe the solution you'd like
I hope that one application can be created with several components
Describe alternatives you've considered

Additional context

typical  scenario for the application composed of  micro-services arch.  suggest considering the issue solved align with multi-svc best practices.

hi @andy-ruc it's supported in https://github.com/oam-dev/kubevela/releases/tag/v1.3.0-beta.2 please have a try


expose animationStep

expose animationStep (but somehow privately?) so you can port this to other frameworks (deku comes to mind)

This clashes with #108 which I might prioritize. animationLoop retains some values that we might need access to in the future. I'm sure we can still pull out big parts of this in the future, but right now I'm more concerned with enabling the rest of the APIs we're thinking about (e.g. exposing currVelocity) before doing the modularization.

What animationStep?
=)
Thanks a lot for the PR btw. The current status is that I've rolled back the animation loop into the respective components, as I've found out that there's actually not that much to be abstracted from them. We've previously done this but this has just caused a few more layers of indirections and perf cost without the benefit of abstracting away as much code as we've hoped.
But we should try this again some day!


why need to initialize read vector and memory?

Dear author:
I found you initialize read vector and memory as :
		self.register_buffer('mem_bias', torch.Tensor(N, M))

		# Initialize memory bias
		stdev = 1 / (np.sqrt(N + M))
		nn.init.uniform_(self.mem_bias, -stdev, stdev)

and
init_r_bias = torch.randn(1, M).to('cuda') * 0.01
# the initial value of read vector is not optimized.
self.register_buffer("read{}_bias".format(self.num_read_heads), init_r_bias)

I wonder whether the initialization scheme will make a big difference,
or I can just all initialized to torch.zeros()??

Since the memory is content addressable, it must be initialized to some bias value. This ensures that all/some cells can be addressed specifically, if needed...


How can I accept filtered friends? Please can you help me?

Hello, I have this code to accept to the pending list
api.getThreadList(0, 7, 'pending', function(err, data) {
						if (err) return console.log(err)
						for (var i = 0; i < data.length; i++) {
							var datos = data[i].threadID;
							api.handleMessageRequest(datos, true, function(err, data) {
								if (err) return console.log(err)

							});
							api.sendMessage("Hola , Haz Sido Aceptado, Bienvenido a SudoAPP! Para Ver la lista de Comandos Solo Escribe AQUI \n sudo ayuda", datos);
							visitor.event("Aceptado", "Imprimiendo").send()
						}
					});

**But I also want to accept the filtered list How do I do it? ** @bobland1 @Schmavery

You gotta give us a little more to go on here. What's the issue?

@Theblood what do you mean by "filtered friends"

@Schmavery
Are the requests that are in this url : https://www.facebook.com/messages/filtered

Would it be enough to just let getThreadList accept "filtered" instead of "pending"?

@Schmavery  @bobland1  this error :C
ERR! listen { error: 'type can only be one of the following: inbox, pending, archived, other' }
{ error: 'type can only be one of the following: inbox, pending, archived, other' }

Right, can you tweak getThreadList to accept "filtered" to check if it works?

wow, sorry after reading error
find my solution ! is other == filtered!

Great! So this works when using "other"?

@TheBlood, has that fixed your issue are we able to close this

@Theblood Closing since it seems like it's working.


Remove pre-commit

This change does a few things:

Moves black to run from an Earthfile target, part of all lint checks
Replaces flake8 and isort with ruff, which has a ton of advantages.  This change also runs ruff as part of all lint checks.
Fix some flake8 errors that were apparently not triggering before.
Removes pre-commit, including the dependency test we needed because of it.

pre-commit used to run these tools in autofix mode, whereas this explicitly disables autofix. Intentional? I like them being in autofix mode, at least for the pre-commit hook use case, because all I have to do is git add the fixes and try again. If you want to keep the non-autofix mode around, a separate +lint-fix target that applies the fixes would be appreciated.

The downside is that it'd fix it in the container, not locally, so it wouldn't actually help.  I've mostly got vscode extensions configured that do the formatting for me on save, so it's not typically a problem.  In fact, to verify this stuff was working, I had to edit files with vim to break them.

BTW, are you planning to run this in a pre-commit hook still? (The pre-commit docs point out that git has a template feature that can be used to auto-install hooks on newly-cloned repos.)

No, I was hoping to just get rid of pre-commit.  Keeping the versions of the checks in-line with what we install for development (which editors like vscode will use) is a bit of a pain.


Using async calls in hubot scripts

I'm trying to add a nice little script so Hubot can show us inventory of some assets. While the general case makes sense, I can't seem to leverage async/await correctly:
bot-scripts/aws.mjs: SyntaxError: Unexpected reserved word\n  at ESMLoader.moduleStrategy (node:internal/modules/esm/translators:119:18)\n  at ESMLoader.moduleProvider (node:internal/modules/esm/loader:468:14)\n  at link (node:internal/modules/esm/module_job:68:21)\n"}
file:///Users/johnseekins/gitroot/hubot/custom-hubot-scripts/aws.mjs:41
      const response = await ecsClient.send(command);
                       ^^^^^

[SyntaxError: Unexpected reserved word
  at ESMLoader.moduleStrategy (node:internal/modules/esm/translators:119:18)
  at ESMLoader.moduleProvider (node:internal/modules/esm/loader:468:14)
  at link (node:internal/modules/esm/module_job:68:21)
]

Node.js v18.18.0

Any tips on how to properly use an async function in Hubot?

It's hard to tell without seeing all of the code, but the one thought that comes to mind is that const response = await ecsClient.send(command); is not within an async function, it's "just out in the main script".
What I mean is I would expect the code to look something like the following:
export default async robot => {
  robot.respond(/ecs command (.*)/, async res => {
    ....
    const response await ecsClient.send(command);
  })
}

See how the robot.respond 2nd argument is an async function and the await call is being done inside that scope? Where is ecsClient.send(command) being executed in the scope of the script? Is the top level scope? or inside the scope of an async function?

What you showed me solved my problem. I frequently struggle with JS syntax. Thanks for the help!


Use WildFly Glow when testing

This would allow to get ridoff the provisioning information contained in tests.

@jfdenise The integration testing in this project is the execution of a TCK that is accessed as a maven artifact. Can Glow analyze a zipped testsuite archive, as opposed to unzipped test source?

You can. for example:

Here we define the depednecy to scan in surefire-plugin : https://github.com/wildfly/wildfly/blob/main/testsuite/integration/microprofile-tck/fault-tolerance/pom.xml#L75
Glow as a configuration point: https://github.com/wildfly/wildfly/blob/main/testsuite/integration/microprofile-tck/pom.xml#L124

That is advertised in glow doc: http://docs.wildfly.org/wildfly-glow/#_retrieving_the_test_classes_from_maven_dependencies
Let me know if that answer this case.
Thank-you.


Added command: respondToScriptDialog

Hey, this has brought in a bunch of unrelated stuff. Please rebase:
(Assuming you have this repository added as a remote called 'upstream')
git fetch --all
git rebase -i upstream/master
The only commit which should be rebased is  Added command: respondToScriptDialog 11102fc

Please use camelCase for parameters rather than PascalCase.  Also, I think we don't need ButtonLabel as a parameter since we can get it from event.Buttons[buttonIndex] -  make it as easy as possible to use :)


Create dynamic GitHub Actions matrix to test against PyBaMM

Description
This PR adds a helper script that is invoked in the GitHub Actions workflows for the scheduled tests. This will extract the last four versions of PyBaMM from PyPI and test PyBOP against them according to the set CRON schedule.
This PR is currently a work-in-progress:

[x] Create matrix with PyBaMM versions as variables:

I have tested this and the script is working: https://github.com/agriyakhetarpal/PyBOP/actions/runs/7863984356
For 3 operating systems, 4 Python versions, and 4 versions of PyBaMM; this shall generate 48 individual jobs. The JSON output is as follows:
Output from running script – displayed as prettified and formatted JSON:

{
  "include": [
    {
      "os": "ubuntu-latest",
      "python_version": "3.8",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.8",
      "pybamm_version": "23.5"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.8",
      "pybamm_version": "23.9"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.8",
      "pybamm_version": "24.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.8",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.8",
      "pybamm_version": "23.5"
    },
    {
      "os": "windows-latest",
      "python_version": "3.8",
      "pybamm_version": "23.9"
    },
    {
      "os": "windows-latest",
      "python_version": "3.8",
      "pybamm_version": "24.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.8",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.8",
      "pybamm_version": "23.5"
    },
    {
      "os": "macos-latest",
      "python_version": "3.8",
      "pybamm_version": "23.9"
    },
    {
      "os": "macos-latest",
      "python_version": "3.8",
      "pybamm_version": "24.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.9",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.9",
      "pybamm_version": "23.5"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.9",
      "pybamm_version": "23.9"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.9",
      "pybamm_version": "24.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.9",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.9",
      "pybamm_version": "23.5"
    },
    {
      "os": "windows-latest",
      "python_version": "3.9",
      "pybamm_version": "23.9"
    },
    {
      "os": "windows-latest",
      "python_version": "3.9",
      "pybamm_version": "24.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.9",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.9",
      "pybamm_version": "23.5"
    },
    {
      "os": "macos-latest",
      "python_version": "3.9",
      "pybamm_version": "23.9"
    },
    {
      "os": "macos-latest",
      "python_version": "3.9",
      "pybamm_version": "24.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.10",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.10",
      "pybamm_version": "23.5"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.10",
      "pybamm_version": "23.9"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.10",
      "pybamm_version": "24.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.10",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.10",
      "pybamm_version": "23.5"
    },
    {
      "os": "windows-latest",
      "python_version": "3.10",
      "pybamm_version": "23.9"
    },
    {
      "os": "windows-latest",
      "python_version": "3.10",
      "pybamm_version": "24.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.10",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.10",
      "pybamm_version": "23.5"
    },
    {
      "os": "macos-latest",
      "python_version": "3.10",
      "pybamm_version": "23.9"
    },
    {
      "os": "macos-latest",
      "python_version": "3.10",
      "pybamm_version": "24.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.11",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.11",
      "pybamm_version": "23.5"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.11",
      "pybamm_version": "23.9"
    },
    {
      "os": "ubuntu-latest",
      "python_version": "3.11",
      "pybamm_version": "24.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.11",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "windows-latest",
      "python_version": "3.11",
      "pybamm_version": "23.5"
    },
    {
      "os": "windows-latest",
      "python_version": "3.11",
      "pybamm_version": "23.9"
    },
    {
      "os": "windows-latest",
      "python_version": "3.11",
      "pybamm_version": "24.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.11",
      "pybamm_version": "23.4.1"
    },
    {
      "os": "macos-latest",
      "python_version": "3.11",
      "pybamm_version": "23.5"
    },
    {
      "os": "macos-latest",
      "python_version": "3.11",
      "pybamm_version": "23.9"
    },
    {
      "os": "macos-latest",
      "python_version": "3.11",
      "pybamm_version": "24.1"
    }
  ]
}

[ ] Figure out a way to install PyBaMM with the specified version in the matrix via the nox configuration in noxfile.py
[ ] Ensure that all tests pass for all generated jobs

Closes #123

Hi, @BradyPlanden – I would appreciate a review even though this is a work-in-progress PR before I add further changes – I am noticing that we have a lower bound on the PyBaMM version in setup.py as pybamm>=23.5, should that be relaxed or should we be testing against release candidates? In my opinion, it would be better to test against stable versions and go forward with the former. Alternatively, we can run against the last three PyBaMM versions instead of four so that the 23.5 lower bound isn't broken and we can test against 23.5, 23.9, and 24.1. This shall reduce the generated jobs from 48 to 36.
I am currently figuring out a method to include the PyBaMM version in noxfile.py so as to download the PyBaMM version specified in the matrix; one way to do this is with environment variables, i.e., let nox detect something like PYBOP_SCHEDULED that can be set in the workflows and then add some custom logic – this is going to be a hacky way but it should work. Otherwise, I can pass something like PYBAMM_VERSION as an environment variable set to matrix.pybamm_version that nox can have access and perform the PyBaMM installation in the said context. But this doesn't alter the fact that pip will always download the latest version of PyBaMM available on PyPI, so we will have to add an explicit session.install("pybamm==PYBAMM_VERSION") step in each nox session after PyBOP has been installed in order to overwrite the installation of PyBaMM that comes with it (only for these scheduled tests, this can be skipped in the PR tests).

I see that #187 is changing up some of the configuration to add GitHub Actions' M1 runners, so I am happy to either wait till that is complete or complete this earlier.
Also, PyBaMM 24.1 brings Python 3.12 support, does the PyBOP team have plans to add that soon? I ask this because it would limit the matrix configuration here by a bit later on – PyBaMM versions earlier than 24.1 would have to be excluded from the jobs for Python 3.12 in that case owing to the lack of support.

In the last three commits, I have done exactly what I suggested above, i.e., setting PYBOP_SCHEDULED and PYBAMM_VERSION which seems to work both locally and in CI – where it installs the correct PyBaMM version set in the matrix and runs tests against it, uninstalling the earlier rendition that came from setup.py. It should be up to you to decide on what should be the best scenario to go forward with.
The workflow run on my fork can be accessed here: https://github.com/agriyakhetarpal/PyBOP/actions/runs/7874163448. PyBaMM 23.5, 23.9, and 24.1 are being tested on Linux, macOS, and Windows – with Python versions 3.8–3.11.

Excellent, thanks for the additions @agriyakhetarpal. This looks great.
We will need to sort out our failing tests for varying PyBaMM versions, but I think the right move is to pull the three most recent PyBaMM versions to test against. Any more than that and it becomes quite the challenge to maintain.

Also, PyBaMM 24.1 brings Python 3.12 support, does the PyBOP team have plans to add that soon?

Yes, I think with PyBaMM supporting 3.12, we should now be able to start testing against 3.12.
@martinjrobins, mind taking a look at this one before it's merged?

Thanks for the review, @BradyPlanden! Does this require a CHANGELOG entry? Also, I'm happy to rebase the changes here depending on if #187 gets merged first

Yes, please add a changelog entry. Thanks!

I just glanced at the failing tests for PyBaMM 23.5, here: https://github.com/agriyakhetarpal/PyBOP/actions/runs/7889580638.
I think it is coming from the fact that PyBOP tries to load a parameter set as a JSON object from PyBaMM.ParameterValues, but PyBaMM v23.5 did not have the following check for a non-existent parameter set in the parameter set dictionary (it exists in v24.1):
# Check if values is a named parameter set
if isinstance(values, str) and values in pybamm.parameter_sets.keys():
    values = pybamm.parameter_sets[values]
    values.pop("chemistry", None)
    self.update(values, check_already_exists=False)
else:
    raise ValueError("Invalid Parameter Value")

and therefore PyBaMM 23.5 just ends up the following physical constants, without raising a ValueError:
{
    "Ideal gas constant [J.K-1.mol-1]": pybamm.constants.R.value,
    "Faraday constant [C.mol-1]": pybamm.constants.F.value,
    "Boltzmann constant [J.K-1]": pybamm.constants.k_b.value,
    "Electron charge [C]": pybamm.constants.q_e.value,
}

My recommendation to fix this test would be to implement this check in the PyBOP codebase itself too, since PyBaMM does not provide a public method for this for its dependents like PyBOP to use. This isn't the best approach, but should be safe to add since all it does is load the parameter set entry points that setuptools provides. This check can be added in the pybamm classmethod in the ParameterSet class in order to raise the desired ValueError.
I can go ahead and make these changes as required in this PR and add another CHANGELOG entry for this. Please let me know what works!

Thanks for investigating this further @agriyakhetarpal. I believe we had this check implemented previously, but with a pybamm update it became redundant, happy to have it back it to support previous pybamm versions. Let's proceed with adding it to the ParameterSet class.

Thanks for sorting this @agriyakhetarpal!

BTW, I noticed that PyBOP does not use pyproject.toml yet and still relies on setup.py, and the testing infrastructure does not use pytest-xdist, even though it came up in prior conversation in https://github.com/pybop-team/PyBOP/issues/61#issuecomment-1803582754 – adding it should provide some nice speedups. I am happy to contribute further and do both of these things!

Yes, we did use pytest-xdist (locally) for a while, but the addition of our plotly manager caused problems as the tests became order dependent. I haven't seen an easy way to deal with order dependent tests with xdist, I think you can limit threads to single files, but I believe I still ran into issues. Please open an issue on this and we can proceed, it would be great to have it sorted on the github actions.

Furthermore, I'm willing to help on https://github.com/pybop-team/PyBOP/pull/176.

That would be great, it's fallen by the wayside, if you want to take a look at the current issue and try to sort it out that would be great.
I'm going to go ahead and merge this PR, thanks again.

@all-contributors add @agriyakhetarpal to code and infrastructure


New version: ONLYOFFICE.DesktopEditors version <IP_ADDRESS>

Pull request has been created with WinGet Releaser :rocket:
Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree


Fix RedirectSubscriber

Yet another regression related to https://github.com/phly/http/pull/39.
Right now, RedirectSubscriber is broken. If redirect happens, every new Request object has Host header from parent request, so when adapter tries to send it, response will again contain redirect.
It ends up with max retries, but content is never downloaded.

Thanks for your PR! Before merging I would like some feedback from @weierophinney about your question in the related PR.

Is this expected behavior?
$request->getHeaders() === $request->withoutHeader('Host')->getHeaders()

If it is, I will merge it otherwise I would prefer wait a fix in phly/http

Please see the most recent changes to PSR-7. Among them, we decided that if no Host header is present, and the URI is present and has a host segment, then that value will be used to create the host header.

Thanks!


pipe-viewer: init at 0.1.3

Motivation for this change
Use pipe-viewer and gtk-pipe-viewer to watch Youtube.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 136119 at b2acf478 run on x86_64-linux 1

6 packages built successfully:

gtk-pipe-viewer
perl532Packages.LWPUserAgentCached
perl532Packages.TextParsewords
perl534Packages.LWPUserAgentCached
perl534Packages.TextParsewords
pipe-viewer

@zakame, I've applied your suggestions. Thanks.

@GrahamcOfBorg build perlPackages.LWPUserAgentCached perlPackages.TextParsewords

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/585

damned, it suddenly rebuilds a lot :o I guess I'll have to rebase against staging.

My bad, I had mistakenly included a change to support buildFlags in buildPerlModule:
https://github.com/NixOS/nixpkgs/pull/136119/files#diff-b8f33964a93f34e19fdee3d032e64396c384b7b652f1e167a708b21ab79a0ba9L53-R53
It should return back to a more reasonable build now.


WIP: 3-ci-srv-06: [no-test] Update translations from Fedora Zanata

Update translations from Fedora Zanata

[ ] po-refresh

po-refresh in progress on 4-cockpit-9.
Log: https://<IP_ADDRESS>:8493/logs/po-refresh-695-20190607-115959/

po-refresh in progress on 2-ci-srv-05.
Log: https://<IP_ADDRESS>:8493/logs/po-refresh-695-20190607-120707/

po-refresh in progress on 3-ci-srv-06.
Log: https://<IP_ADDRESS>:8493/logs/po-refresh-695-20190607-121313/

po-refresh in progress on 2-ci-srv-06.
Log: https://<IP_ADDRESS>:8493/logs/po-refresh-695-20190607-121313/

po-refresh in progress on 3-cockpit-9.
Log: https://<IP_ADDRESS>:8493/logs/po-refresh-695-20190607-120000/


Cache Block Location to save memory

What changes are proposed in this pull request?
Please outline the changes and how this PR fixes the issue.
Why are the changes needed?
Please clarify why the changes are needed. For instance,

If you propose a new API, clarify the use case for a new API.
If you fix a bug, describe the bug.

Does this PR introduce any user facing changes?
Please list the user-facing changes introduced by your change, including

change in user-facing APIs
addition or removal of property keys
webui

@elega Is this the improvement of https://github.com/Alluxio/alluxio/pull/16763 ? As this is better than my PR, Shall I close #16763 ?

@maobaolong yup thanks

alluxio-bot, merge this please


Graphqelm.Http.send example needs to be updated for 11.2.0

With the type signature change for Graphqelm.Http.send in the last release, the old example needs to be updated to follow suit.
Current signature and example (docs):
send     :  (Result (Error decodesTo) decodesTo -> msg)     -> Request decodesTo     -> Cmd msg
import Graphqelm.OptionalArgument exposing (OptionalArgument(Null, Present))
import RemoteData exposing (RemoteData)

type Msg
    = GotResponse RemoteData Graphqelm.Http.Error Response

makeRequest : Cmd Msg
makeRequest =
    query
        |> Graphqelm.Http.queryRequest "https://graphqelm.herokuapp.com/"
        |> Graphqelm.Http.withHeader "authorization" "Bearer abcdefgh12345678"
        -- If you're not using remote data, it's just
        -- |> Graphqelm.Http.send GotResponse
        -- With remote data, it's as below
        |> Graphqelm.Http.send (RemoteData.fromResult >> GotResponse)

I think the following change should fix it:
type Msg     = GotResponse RemoteData Graphqelm.Http.Error Response
should be
type Msg     = GotResponse RemoteData (Graphqelm.Http.Error Response) Response
Thanks!

Thank you so much for reporting the issue @StoatPower! I've updated the docs, the fix will go out with the next release.


Please add instructions on how to connect to this AI from FlowiseAI

Is it possible to connect to this AI from FlowiseAI? If it is, can you please add some instructions or guidelines on how to do this. I have installed getumbrel/lama-gpt via Docker.
I have tried to use the Chat Model Olama in flowiseai without success.

I guess GPT is not possible to connect to FlowiseAI.


Monster of the Week - Bugfix - Resolving Typo in CSS

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

Character Sheet Info Roll20 Internal Use only.


fix throw error with console warn

The last PR was missing the src changes. Thats why the current npm build is still showing throw error instead of warn

@emanuelgsouza I honestly haven't done anything to prevent the push of package-lock.. I only see that the branch is up to date with origin master. I only build and pushed for PR

Ok, as we talk each other in Discord, I will close this PR and implement only your modifications in src/sb-editable.jsx.


Pin Pekko updates to 1.0.x

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.976%

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
226

Relevant Lines:
254

💛  - Coveralls


How to add multiple TableFilters

I'm using this syntax but it's not working. Any help would be appreciated. Thank you.
The first table works, but not the second. I tried combining the two in a single init() but that didn't seem to work either.
var tf = new TableFilter('resourceTable', {
base_path: 'wp-content/themes/Divi-child-viprs/js/tablefilter/',
  single_filter: {
    css_class: 'form-control',
  },
  alternate_rows: true,
  highlight_keywords: true,
  ignore_diacritics: true,
  no_results_message: false,
  btn_reset: {
    text: 'Clear Results',
  },
  auto_filter: true,
  rows_counter: false,
  watermark: 'Search...',
  loader: true,
  status_bar: true,
  rows_counter: {
    text: 'Results: '
  },

});
tf.init();
var tfs = new TableFilter('resourceTableSpanish', {
base_path: 'wp-content/themes/Divi-child-viprs/js/tablefilter/',
  single_filter: {
    css_class: 'form-control',
  },
  alternate_rows: true,
  highlight_keywords: true,
  ignore_diacritics: true,
  no_results_message: false,
  btn_reset: {
    text: 'Borrar resultados',
  },
  auto_filter: true,
  rows_counter: false,
  watermark: 'Buscar...',
  loader: true,
  status_bar: true,
  rows_counter: {
    text: 'Resultados: ',
  },

});
tfs.init();

I guess this can't work because of Javascript syntax errors. Commas are used to separate elements in arrays or objects, but cannot be used after the last element.
What is your browser console saying?

I'm not 100% sure what I did since it's been so long, but I think I just used one init() and used jQuery to translate the fields that I needed to.
I will say that's an awesome little library. The functionality is great.
https://tvradenver.org/resources/
`var tf = new TableFilter('resourceTable', {
base_path: 'wp-content/themes/Divi-child-viprs/js/tablefilter/',
  single_filter: {
    css_class: 'form-control',
  },
  alternate_rows: true,
  highlight_keywords: true,
  ignore_diacritics: true,
  no_results_message: false,
  btn_reset: {
    text: 'Clear Results'
  },
  auto_filter: true,
  rows_counter: false,
  watermark: 'Search...',
  loader: true,
  status_bar: true,
  rows_counter: {
    text: 'Results: '
  },

});
tf.init();
$('.spanishTable a.reset').text("Borrar resultados");
$('.spanishTable #flt0_resourceTable').attr('placeholder', 'Buscar...');`


Iterator tutorials

I've got questions in the PR message for exactly how to
manage this article in the main branch. Let's discuss those
as we review the content, and then I'll update with everything
ready to merge.
I marked this PR as WIP (work in progress) because writing it generated a few
questions about how we want to grow this section.
First, I believe the language tutorials will need to liberally cross-reference
each other. I'd like to have placeholders for where links should go (I've added
a couple in the above text.) However, that could discourage readers when the links
don't go to articles that don't yet exist.
Second, I'd like feedback on the tone of the article. I'm concerned that the middle
section was too close to a specification, and less of a tutorial. Thoughts?
Third, let's discuss the sample code. I tried to distill the code down to the smallest
possible samples to discuss the concept. That means they are less like a scenario, as
we would find in the other sections. I can update as we see fit.
Finally, I wanted to use a sub-directory for all C# tutorials. That broke
the TOC generator. I"m still ready about docfx, and if I get that right, I'll move
the files back. Also, I'm not sure why the TOC is not showing in the iterators article.

For cross-referencing, I think we should go ahead and stub out any topics that we want to cross-reference. I believe there's boilerplate text to let readers no that they are just stubs for planned content, and it might actually inspire others to contribute.
The tone is generally on target, but I have a few concerns. The introduction could be simplified - we really just want to point out C#'s support for iterators, perhaps listing the relevant methods. Also - would someone coming from another language be familiar with the term "iterators", or do we need to explain.
It would also help to reorganize a bit. Provide the basic examples with simple explanations up front, then add a "deeper dive" section below with the implementation details. For example, your explanation of what the compiler creates is nice to know but isn't necessarily essential for someone wanting a quick intro to the language.
I think the sample code is fine - it illustrates the point without a lot of unnecessary overhead. Simple is good in this case.
I'll let someone else comment on the TOC issue - I don't have a clue.
Some specific edits:
Line 7 - enable, not enagle.
Line 17 - foreach
Line 93 - will the reader understand what a sealed type is? Maybe link to the Types topic?
Line 138 - instead of "I showed distinct yield return statements above...", use "The showed distinct yield return statements shown above..."
Line 171 = use can't instead of cannot.

I added my comments online. Not sure why notification mail wasn't sent automatically.
Sent from Outlookhttp://aka.ms/weboutlook

From: Bill Wagner<EMAIL_ADDRESS>Sent: Wednesday, November 25, 2015 12:19:26 PM
To: dotnet/core-docs
Subject: [core-docs] WIP (Work in Progress): Iterator tutorials (#172)
I've got questions in the PR message for exactly how to
manage this article in the main branch. Let's discuss those
as we review the content, and then I'll update with everything
ready to merge.
I marked this PR as WIP (work in progress) because writing it generated a few
questions about how we want to grow this section.
First, I believe the language tutorials will need to liberally cross-reference
each other. I'd like to have placeholders for where links should go (I've added
a couple in the above text.) However, that could discourage readers when the links
don't go to articles that don't yet exist.
Second, I'd like feedback on the tone of the article. I'm concerned that the middle
section was too close to a specification, and less of a tutorial. Thoughts?
Third, let's discuss the sample code. I tried to distill the code down to the smallest
possible samples to discuss the concept. That means they are less like a scenario, as
we would find in the other sections. I can update as we see fit.
Finally, I wanted to use a sub-directory for all C# tutorials. That broke
the TOC generator. I"m still ready about docfx, and if I get that right, I'll move
the files back. Also, I'm not sure why the TOC is not showing in the iterators article.

You can view, comment on, or merge this pull request online at:
https://github.com/dotnet/core-docs/pull/172
Commit Summary

WIP: Draft of iterators tutorial.

File Changes

M docs/languages/c-sharp.mdhttps://github.com/dotnet/core-docs/pull/172/files#diff-0 (10)
A docs/languages/csharp-iterators.mdhttps://github.com/dotnet/core-docs/pull/172/files#diff-1 (245)

Patch Links:

https://github.com/dotnet/core-docs/pull/172.patch
https://github.com/dotnet/core-docs/pull/172.diff

Reply to this email directly or view it on GitHubhttps://github.com/dotnet/core-docs/pull/172.

I updated the content based on @stevehoag 's comments. I still need to update links to other articles. I'll do that, and rebase once PR #175 is merged. I think that will make it much easier on everyone.

Left some feedback.  I like the way this is going.  I think the overall tone is fine, and the more specification-style tone in the middle is also pretty welcome.  We definitely want to call out certain gotchas with this documentation (such as not allowing yield return and return in the same method body), so I like that it does that.
As for the sample code, @BethMassi called out that we'll want the sample code here to be buildable and runnable.  I wouldn't worry too much about getting the docfx syntax in place for now.  The linq samples we have right now should be a good guideline for how to structure the samples.

@cartermp currently we only support include a whole code sample file using the following markdown extension:
[!code-cssample]
-cs can be changed to other languages.
We're working on supporting line range and a tagging based code snippet in this month, should be available soon

@chenkennt thanks!  I'll keep my ears open for when line ranges are available.

I've responded to all the comments, and updated the samples, and the content.
I believe this is ready.

I'd say it LGTM.
@BethMassi @BillWagner what do you think of adding the author after the title?  We've been doing that for a few articles (e.g. Async and .NET Primer).  I think it would be a good idea just so we can show off community involvement here even more.

Agreed. I think having by lines is a great idea and will encourage more writing contributions. We should put that note in the contributing.md :smile:

@BillWagner by the way the tutorial turned out AWESOME. Should we add an issue to track creating the sample for it?

@BethMassi I checked in the sample code already. It's part of this PR now. I can augment it with more code, if we need to.

+1
Sent from Outlookhttp://aka.ms/weboutlook

From: Beth Massi<EMAIL_ADDRESS>Sent: Thursday, December 3, 2015 11:42:07 AM
To: dotnet/core-docs
Cc: Steve Hoag
Subject: Re: [core-docs] Iterator tutorials (#172)
Agreed. I think having by lines is a great idea and will encourage more writing contributions. We should put that note in the contributing.md [:smile:]

Reply to this email directly or view it on GitHubhttps://github.com/dotnet/core-docs/pull/172#issuecomment-161758553.

Awesome. LGTM!


valheim_1  | standard_init_linux.go:219: exec user process caused: exec format error

When I run the  docker-compose up, an error was shown: valheim_1  | standard_init_linux.go:219: exec user process caused: exec format error.
I'm using a raspberry 4

Duplicate of https://github.com/lloesche/valheim-server-docker/issues/46


Fix for Modal behavior when menu button pressed on Apple TV (Issue #15313)

Motivation
On Apple TV, pressing the menu button destroys the native view that backs the Modal component, causing an app using this component to get into a broken state.  This fix implements onRequestClose for tvOS to have the same behavior as it does for the Android back button.
Test plan
Manually tested this with the ModalExample in the RNTester app.  See also the test code in issue #15313.

@shergin no I don't yet have production tvOS apps of my own.  Other people have shipped them already though (e.g. Unsplash for Apple TV), or they are in the process of building them, and as a result are filing RN issues for me to fix :)

@shergin I've made the changes you requested on this PR.


Decimal128 Support [databricks]

This adds in support for decimal 128 and has been a collaboration with lots of different people.

build

build

build

build

build

Tests are failing because of some issues with changes to SUM in 3.1.0. I am trying to figure out how to make this work with the older versions of Spark.

build

@jlowe @kuhushukla
I added in a basic fix for decimal. It is not great because there is a circular dependency between different files now, and I want to break up AggregateFunctions.scala, but that is too large of a change to make here.

Test failed with hash percentile approximate for decimal.  This is an intermittent failure and is still being investigated #4060

build

It failed on 3.3.0 compile even after nothing changed. It might be a Spark change itself.
[2021-11-18T17:32:54.272Z] [ERROR] [Error] /home/jenkins/agent/workspace/jenkins-rapids_premerge-github-3312/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/GpuOrcFileFormat.scala:132: not found: value OrcFileFormat

Yup.  https://github.com/apache/spark/commit/6f6a066dff7e1ceceb80ab5c3809d5e6fb1474e2 removed the Object OrcFileFormat

build

build

Same failure as before :(

build

This time it was test_hash_groupby_approx_percentile_long_repeated_keys. This has a fix that is blocking other things so I am going to just merge it.


PUB-1274 Implement functional tests used by CFT/CRIME/SNL

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/HMIS-1274
Change description
Implement functional tests used by CFT/CRIME/SNL.
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Can we add some successful tests ?

Ticket on backlog to handle this


Comments for GraphQL Union vs. Interface

At Artsy we’ve been moving towards GraphQL for all of our new services. Acknowledging GraphLQ is a relatively new
technology, we faced some challenging questions as we were developing one our most recent services.

Hi, I've read your blog post and trying to implement something similar to the interface example you are sharing. I was wondering if you could share what the QueryType class looks like in the interface example as I'd like to understand what should be the type for the instruments field:
query {
  instruments {
    id
    name
    category
    ... on StringInstrument {
       numberOfStrings
    }
  }
}

@alice-letourneur the type of instruments field should be InstrumentInterface. In an example here we define and OrderInterface which can be any of these types.
When want to expose a field with this type, we will use the interface type like this example. Let me know if you have any questions.

@alice-letourneur the type of instruments field should be InstrumentInterface. In an example here we define and OrderInterface which can be any of these types.
When want to expose a field with this type, we will use the interface type like this example. Let me know if you have any questions.

Thanks a lot for your answer, helped a lot, the issue I was having was actually the same as what you are describing at the end of the post, I just didn't realise it was:

One issue we found after doing the above was, since this way we don’t reference StringInstrument and DrumInstrument types anywhere in our schema, they actually don’t end up showing in the generated schema. For them to show up we have to add them as orphan_types in the interface.

Read more about it here: https://graphql-ruby.org/type_definitions/interfaces#orphan-types and all makes sense now.

Oh yes! I remember that now! Yes, because these types are not directly accessed in our schema, they won't be included in the final schema unless we define them as Orphan Types. Happy that your problem is solved 😍


Adicionar valores aos seletores de Valor Global

Issue resolvida no PR https://github.com/DesignLiquido/FolEs/pull/44


atomic: true by default?

Creating this dedicated issue for visibility. See #471 for more context.

For backward-compatibility reason, this unlikely to happen in shorter term.
Instead, we'd better add helmfile sync --atomic that sets atomic: true to every release.
Or helmfile sync --atomic-by-default to set atomic: true only when the release explicitly set it to atomic: false for more granular control.

Context: https://github.com/roboll/helmfile/issues/256#issuecomment-497218875

I'm removed --atomic from my CI test environments deployments, because it's make too difficult diagnostics: I should redeploy manually and hope for bug reproduce.
Also I add extra logic to workaround Error: UPGRADE FAILED: "xxx" has no deployed releases, because upgrade --install --force don't solve this error with helm3.

I would be super awesome if when I send SIGTERM (or cmd-c in terminal) during upgrade/install of a chart, it would revert it, instead of leaving it hanging out.

Hey @bozaro - could you please shed some more light on what extra logic you've started using to work around the issue?


Does 'jeo-maven-plugin' have any plans to support Java 8?

Does 'jeo-maven-plugin' have any plans to support Java 8?

@guangwang126 We didn't think about it yet, but I think we can add it. I'll put it in the plan. Have you tried to run it on Java 8? If so, did you receive any errors?

@guangwang126 2 puzzles #618, #619 are still not solved.

@rultor release, tag is 0.4.6, title is 0.4.6.

@rultor release, tag is 0.4.6, title is 0.4.6.

@volodya-lombrozo OK, I will release it now. Please check the progress here

@rultor release, tag is 0.4.6, title is 0.4.6.

@volodya-lombrozo Done! FYI, the full log is here (took me 9min)

@guangwang126 the puzzle #619 is still not solved; solved: #618.


Non-square images ?

How to train the model on a non-square images ?
I tried an input of 2200x1700 and this is the error i got:
RuntimeError: shape '[1, 55, 10, 42, 10, 1]' is invalid for input of size 233750

It seems like input needs to be multiple of 320...


⚠ Bofrost.be has degraded performance

In a19c1ef, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2427 ms

Resolved: Bofrost.be performance has improved in 08dc246.


After the network model training is completed, about the problem of testing audio noise reduction

I want to use noisy audio files to test the noise reduction effect of our trained model. How should we operate? I didn't see the relevant description. The source code of 48k is to put the input file before noise reduction and the output file after noise reduction into rnnoise_demo,
.### /examples/rnnoise_demo   < input.raw > output.raw
but the file of rnnoise_demo is not seen in the 16k code. I hope the author can answer it. thank you @YongyuG

I want to use noisy audio files to test the noise reduction effect of our trained model. How should we operate? I didn't see the relevant description. The source code of 48k is to put the input file before noise reduction and the output file after noise reduction into rnnoise_demo,
.### /examples/rnnoise_demo < input.raw > output.raw
but the file of rnnoise_demo is not seen in the 16k code. I hope the author can answer it. thank you @YongyuG

check the CMakeList.txt, the binary file will be generated which can help you to do the denoise things with your new trained models


Broken link to "contribution guidelines" in Readme file.

Description
The current link is navigating to "https://github.com/EddieHubCommunity/LinkFree/blob/main/docs/contributing/CONTRIBUTING.md" which is showing a Page not found 404 page.
Screenshots

Additional information
No response

Broken link removed 👍 thank you


V4 - WIP: Autocomplete suggestions in Editor Ver 2.0

Changes from V3 :

Corrected repeated declaration of variables in code.
Corrected 'getDataType' function declaration.

+1


Firebird database connect is incompatible with Chinese characters

System information:

Operating system (distribution) and version： ubuntu / Mint
DBeaver version : 6.1 ~ 7.2
Additional extensions

Connection specification:

Database name and version firebird
Driver name firebird
Do you use tunnels or proxies (SSH, SOCKS, etc)?

Describe the problem you're observing:
Dbeaver report "Dynamic SQL Error; SQL error code = -104; Token unknown ", when firebird database table name, field name, view has chinese characters.
Steps to reproduce, if exist:
Create a firebird database and has a chinese characters table name, then connect to is using dbeaver.
Include any warning/errors/backtraces from the logs

still actual in 21.2.0

Does it still reproducible in the latest DBeaver version?


Removal of assetClassRow from chain-index DB

The table assetClass consumes a lot of disk space and impacts sync time. All the necessary info to perform query getUtxoSetWithCurrency can be retrieved from unspentOutputRows and query getUtxoutFromRef, i.e., similar to what is actually being performed in query getTxOutSetAtAddress. Hence this PR performs the following modifications:

[x] Removal of the assetClassRow from DbSchema
[x] Rewrite getUtxoSetWithCurrency  to filter txouts obtained by coupling a query to fetch all unspent utxo with getUtxouFromRef.
[x] Optimize getTxOutSetAtAddress to avoid extra loop on List.zip.

Wrong PR created


[BugFix] Avoid limit push down of multi-distinct cases

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #11274
Problem Summary(Required) ：

For multi-distinct cases with group like select sum(distinct(v1)), avg(distinct(v2)) from t3 group by v3 limit 1, limit cannot be push down to the aggregate. But for cases without group by, it can.
Test
And, I'm wondering which plan,with or without cte , is better in the case of limitation.
-- Q1, with low cardinality group by, without non-distinct agg
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)) from lineitem group by L_TAX limit 1;

-- Q2, with high cardinality group by, without non-distinct agg
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)) from lineitem group by L_ORDERKEY limit 1;

-- Q3, with low cardinality group by, with non-distinct agg
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)), sum(L_LINENUMBER), avg(L_QUANTITY) from lineitem group by L_TAX limit 1;

-- Q4, with high cardinality group by, with non-distinct agg
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)), sum(L_LINENUMBER), avg(L_QUANTITY) from lineitem group by L_ORDERKEY limit 1;

-- Q5 without group by, without non-distinct agg
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)) from lineitem limit 1;

-- Q6 without group by, with non-distinct agg
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)), sum(L_LINENUMBER), avg(L_QUANTITY) from lineitem limit 1;

-- Q7
select sum(dis_sum), sum(dis_avg) from (
    select sum(distinct(L_LINENUMBER)) as dis_sum , avg(distinct(L_QUANTITY)) as dis_avg from lineitem group by L_TAX
)a

-- Q8
select sum(dis_sum), sum(dis_avg) from (
    select sum(distinct(L_LINENUMBER)) as dis_sum , avg(distinct(L_QUANTITY)) as dis_avg from lineitem group by L_ORDERKEY
)a

-- Q9
select sum(dis_sum), sum(dis_avg) from (
    select sum(distinct(L_ORDERKEY)) as dis_sum , avg(distinct(L_SUPPKEY)) as dis_avg from lineitem group by L_TAX
)a

-- Q10
select sum(dis_sum), sum(dis_avg) from (
    select sum(distinct(L_ORDERKEY)) as dis_sum , avg(distinct(L_SUPPKEY)) as dis_avg from lineitem group by L_ORDERKEY
)a

Query
with cte(withouth limit push down)
without cte

Q1
5.4s
0.44s

Q2
17.5s
0.82s

Q3
10.0s
0.45s

Q4
15.6s
0.78s

Q5
4.6s
0.27s

Q6
8.8s
0.31s

Q7
5.421s
0.403s

Q8
18.658s
3.659s

Q9
19.580s
12.149s

Q10
15.426s
2.931s

So, better to disable cte if multi-distinct-groupby with or without limitation.
-- Q11 low cardinality distinct without group by
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)) from lineitem;

-- Q12 high cardinality distinct without group by
select sum(distinct(L_ORDERKEY)), avg(distinct(L_SUPPKEY)) from lineitem;

-- Q13, low cardinality distinct with low distinct group by
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)) from lineitem group by L_TAX;

-- Q14, low cardinality distinct with high distinct group by
select sum(distinct(L_LINENUMBER)), avg(distinct(L_QUANTITY)) from lineitem group by L_ORDERKEY;

-- Q15, high cardinality distinct with low distinct group by
select sum(distinct(L_ORDERKEY)), avg(distinct(L_SUPPKEY)) from lineitem group by L_TAX;

-- Q16, high cardinality distinct with low distinct group by
select sum(distinct(L_ORDERKEY)), avg(distinct(L_SUPPKEY)) from lineitem group by L_ORDERKEY;

Query
with cte
without cte

Q11
4.736s
0.314s

Q12
5.746s
15.055s

Q13
5.387s
0.399s

Q14
timeout
timeout

Q15
21.120s
22.926s

Q16
timeout
timeout

CTE optimization for multi-distinct has bad case when cardinality is low, which is beyond the scope of this pr. And it will be solved in another pr later.
Checklist:

[x] I have added test cases for my bug fix or my new feature
[x] I have added user document for my new feature or new function

[FE PR Coverage Check]
:heart_eyes: pass : 87 / 98 (88.78%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/OperatorStrings.java
82
93
88.17%
[95, 96, 101, 102, 103, 108, 109, 114, 206, 209, 210]

:large_blue_circle:
com/starrocks/sql/optimizer/operator/logical/LogicalTreeAnchor.java
2
2
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMultiDistinctByCTERule.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/operator/OperatorVisitor.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/OptExpressionVisitor.java
1
1
100.00%
[]

Why move OperatorStrings? It's only used in test

I want to see how logical tree looks like while debugging.

Why move OperatorStrings? It's only used in test

I want to see how logical tree looks like while debugging.

Explain.java is your want?

lain.java is your want

Why move OperatorStrings? It's only used in test

I want to see how logical tree looks like while debugging.

Explain.java is your want?

Yes, indeed, I'll revert my changes

run starrocks_fe_unittest

Is the test result with limit pushdwon or not ?

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 8 / 8 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMultiDistinctByCTERule.java
8
8
100.00%
[]

So, better to disable cte if multi-distinct with limitation.

should be better to disable cte if multi-distinct with small limit when limit is large, which means no limit.

Is the test result with limit pushdwon or not ?

cte-without limit pushdown vs. without cte

[FE PR Coverage Check]
:heart_eyes: pass : 16 / 16 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMultiDistinctByCTERule.java
8
8
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMultiDistinctRule.java
8
8
100.00%
[]

run starrocks_fe_unittest

[FE PR Coverage Check]
:heart_eyes: pass : 14 / 14 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMultiDistinctByCTERule.java
6
6
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rule/transformation/RewriteMultiDistinctRule.java
8
8
100.00%
[]

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_fe_unittest

branch 2.2/2.3/2.4 do not have this problem

@mergify backport branch-2.4


BatchNorm: manually set runningMean and runningVar

I am porting PyTorch model to Flashlight. But, I found I can't set runningMean and runningVar of BatchNorm manually; so I modified https://github.com/facebookresearch/flashlight/blob/master/flashlight/nn/modules/BatchNorm.cpp#L48 like this:
Variable BatchNorm::forward(const Variable& input) {
  double avg_factor = 0.0;

  if (train_ && trackStats_) {
    ++numBatchesTracked_;
    if (momentum_ < 0) { // cumulative moving average
      avg_factor = 1.0 / numBatchesTracked_;
    } else { // exponential moving average
      avg_factor = momentum_;
    }
  }

  return batchnorm(
      input,
      params_[0],
      params_[1],
      params_[2],
      params_[3],
      featAxes_,
      train_ || (!trackStats_),
      avg_factor,
      epsilon_);
}

void BatchNorm::initialize() {
  Variable wt, bs;
  if (affine_) {
    wt = uniform(featSize_, 0.0, 1.0, af::dtype::f32, true);
    bs = constant(0.0, featSize_, af::dtype::f32, true);
  }
  else {
    wt = Variable();
    bs = Variable();
  }

  if (trackStats_) {
    runningMean_ = constant(0.0, featSize_, af::dtype::f32, false);
    runningVar_ = constant(1.0, featSize_, af::dtype::f32, false);
  }
  params_ = {wt, bs, runningMean_, runningVar_};
}

Now, BatchNorm receives 4 parameters; weight, bias, runningMean, runningVar.
How do you think about this?

I made PR for this: #70.

Closing - we'll continue discussion in the PR.


:package: updated deps

https://blog.cloudflare.com/improving-workers-types/

I made a publish on npm for personal purposes

Thank you for your contribution 🙂

Published with v2.3.1

🫡


Is it possible to support module?

I'm going to launch a web application, which contains two modules, admin panel and user panel, but now I haven't seen any docs yet.

Hey @dcb9, thanks for your interest in Bud! Do you mean two separate apps with different go modules?

No, not that one, what I want is that two frontend modules in a single Bud project. The route of admin panel should be /admin/users, of user center should be / for index and /home for user home.


Q: CTS & RTS pins are the must for UART AT?

Hi，
Does the cts & rts pin must be connected for uart at?
We only connect two pins(tx & rx)...

Is‘s not necessary.
In  / At / uart setting /
[] the uart flow control for AT port, the range is [0, 3]
assign this value to zero, it meanings disable cts/rts pin.

If you do not want to use them, you should set them -1.

Thanks.
I have enable the uart AT without rts & cts pins already.