Besselj and Bessely for large and small arguments

Here is an implementation for besselj and bessely for large arguments based on https://www.math.ucdavis.edu/~bremer/papers/bessel8.pdf. Technically, this approach works for any argument in the Fresnel regime (x>nu) though based on the results in the paper it is quite slowly converging when x<2nu.
This is just a draft as getting these coefficients right was tricky but they can produce very accurate results depending on the argument.
julia> dnu = big"4"
4
julia> x = big"20.0"
20.0
julia> 1 -  besselj(dnu, x) / besselj_large_argument(dnu, x)
-3.071266864290228855849154260328918009213010091795647051576856584355915252396212e-16
julia> x = big"200.0"
200.0

julia> 1 -  besselj(dnu, x) / besselj_large_argument(dnu, x)
-3.65422644136090656921668723356207962364326830807318559819150864916674755951513e-36

The advantage is this will work for integer and non-integer orders and complex orders. It will also produce both bessely and besselj in essentially the same time.
I plan to build these implementations piecewise and fit them together. There will have to be several algorithms to cover all the ranges and testing. I have not yet optimized this approach as I'm just focusing on getting this working for now.
Edit: and for bessely we just return sin isntead of cos

Codecov Report

Merging #20 (d929007) into master (ded7c2d) will decrease coverage by 2.58%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
- Coverage   99.55%   96.97%   -2.59%
==========================================
  Files          13       13
  Lines         676      694      +18
==========================================
  Hits          673      673
- Misses          3       21      +18

Impacted Files
Coverage Δ

src/besselj.jl
82.69% <0.00%> (-17.31%)
:arrow_down:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

We'll have to scale the values we don't want to compute mu^8 here but probably (mu/x)^8 to avoid overflow. The key for these asymptotic expansions is to avoid loss of precision when using Float64. In practice we will have to balance when we want to employ this approach. Like for when x>5nu or something larger. The larger x is than nu the less terms (s0, s1, s2...) you will need. Probably 4 is sufficient if x>15nu but will have to balance this depending on how fast the other methods are for when  x~nu

I've added two more coefficients s11 and s12. This improved the accuracy of previous examples to
julia> x = big"20.0"
20.0
julia> 1 -  besselj(dnu, x) / besselj_large_argument(dnu, x)
-1.617685474657480344179524558783495937072544030980921933922201321722990788375528e-17

julia> x = big"200.0"
200.0

julia> 1 -  besselj(dnu, x) / besselj_large_argument(dnu, x)
-2.726926944584588714318390650413623099583163111074598679578561149580182018603696e-41

This does improve the accuracy, however two more coefficients only gave 1-2 more digits of accuracy for smaller x whereas it gave over 5 digits more of accuracy for large x. This suggests that although the method works for x>nu it requires a lot of terms for small x and will probably want to employ this only when x is some multiple of nu (x>5nu). We will want to choose this cutoff well and compare the speed to other methods when x~nu.... Though, for x>>nu this is a viable solution for quadruple precision.

I'm going to also slow add the small argument approximation using the power series. This has some current roundoff error that needs to be dealt with...
julia> besselj_small_arguments_orders(20.0, 0.1)
3.919437720858622e-45
julia> Float64(besselj_small_arguments_orders(big"20.0", big"0.1"))
3.9194377208586175e-45

But will converge quickly for small values of x. I will need another version using the logarithms for large orders though.
There is a bit of a hiccup in performance though.
julia> @btime besselj_small_arguments_orders(20, 0.1)
  42.634 ns (0 allocations: 0 bytes)
3.919437720858622e-45

julia> @btime besselj_small_arguments_orders(20.0, 0.1)
  276.144 ns (0 allocations: 0 bytes)
3.919437720858622e-45

The issue seems to be from the factorial function. I'm assuming if nu is an integer it uses a lookup table and if it's a float it doesn't...
julia> @btime factorial(20)
  2.125 ns (0 allocations: 0 bytes)
2432902008176640000

julia> @btime factorial(20.0)
  211.650 ns (0 allocations: 0 bytes)
2.43290200817664e18

Also, does this method require an exact gamma computation? If it is iterative and will recover the error, you could get a very fast rough approximation (especially if you have bounds on v).

factorial in Julia is only defined for ::Integer. Do you want gamma?

Yes - I originally had gamma(v + one(T)) there and then I can use the loggamma version. Was avoiding the SpecialFunctions dependency but should just go ahead using gamma here because we use it in several functions

I'm not exact sure on the accuracy yet but we will definitely need a much faster version as gamma takes the majority of the runtime right now. This routine can produce very accurate results so I'm assuming we'll need a fairly accurate version.
julia> @benchmark besselj_small_arguments_orders(100.0, 1.5)
BenchmarkTools.Trial: 10000 samples with 346 evaluations.
 Range (min … max):  260.237 ns … 603.081 ns  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     262.523 ns               ┊ GC (median):    0.00%
 Time  (mean ± σ):   263.805 ns ±   7.834 ns  ┊ GC (mean ± σ):  0.00% ± 0.00%

  ▂▆▆▇██▄▂         ▁▁▃▃▂▂▁                                      ▂
  █████████▆▆▆▆▆▆▆▇███████▇▆▆▆▇▇▇▆▆▅▅▅▄▆▅▆▆▅▆▅▅▅▅▄▄▄▁▃▁▄▁▃▅▃▃▄▄ █
  260 ns        Histogram: log(frequency) by time        291 ns <

 Memory estimate: 0 bytes, allocs estimate: 0.

julia> @benchmark gamma(100.0)
BenchmarkTools.Trial: 10000 samples with 535 evaluations.
 Range (min … max):  211.604 ns … 380.062 ns  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     212.228 ns               ┊ GC (median):    0.00%
 Time  (mean ± σ):   213.337 ns ±   4.939 ns  ┊ GC (mean ± σ):  0.00% ± 0.00%

  ▅█▆▄▆▅          ▂▃▁ ▂                                         ▂
  ██████▇▆▆▅▅▇▆▆▆▅███▇█▇▆▇▇▆▇█▇▆▅▆▄▄▄▅▄▄▅▃▃▄▄▄▄▄▅▄▅▃▄▅▃▄▅▅▁▄▃▄▃ █
  212 ns        Histogram: log(frequency) by time        231 ns <

 Memory estimate: 0 bytes, allocs estimate: 0.

function mygamma(x)
    if x<.5
        return pi/(sinpi(x)*mygamma(1-x))
    end
    if x<11
        # innaccurate
        return mygamma(x+1)/x
    end
    x-=1
    if x<20.5
        poly = evalpoly(inv(x), (1., 0.08333333333650161, 0.003472221906979175, -0.002681313976042538, -0.00022977090009804665, 0.0007879538510356031, 4.1092075095252335e-5, -0.0004988424489412549))
    else
        poly = evalpoly(inv(x), (1.0,0.08333333333346536, 0.003472222180925872, -0.002681322445355217, -0.000229731127876239, 0.0007914216474948752, -3.547263379392065e-5))
    end
    s2pi = sqrt(2*pi*x)
    logxhi,logxlo = Base.Math._log_ext(reinterpret(UInt64, x))
    xyhi, xylo = Base.Math.two_mul(logxhi-1,x)
    xylo = muladd(logxlo, x, xylo)
    hi = xyhi+xylo
    exp_term = Base.Math.exp_impl(hi, xylo-(hi-xyhi), Val(:ℯ))
    return s2pi*exp_term*poly
end

This is within 3 ULP for x>11 (I need a good branch for x<11, and runs in 12ns.

Quick question. I am getting an error for Base.Math._log_ext...
ERROR: MethodError: no method matching _log_ext(::UInt64)
Closest candidates are:
  _log_ext(::Float64) at ...

Is this defined on later versions or am I just making mistake?

I changed _log_ext in 1.9, so this is only valid on a somewhat recent version of master. If you want this to work for generic Julia versions, you would need to copy the implementation probably.

For the gamma function for smaller arguments we should probably employ range reductions or increases for that range. Do you have a good polynomial approximation say for the interval (1,2)? If not here is a version that uses an exact polynomial approximation for x>5 and the increases the range of smaller arguments to compute over the whole range.
function g(x)
    p = (1.0, 0.08333333333333333333333333333333333, 0.00069444444444444444444444444444444, 0.00065861992945326278659611992945326, −0.00053287817827748383303938859494415, 0.00079278588700608376534302460228386, −0.00184758189322033028400606295961969, 0.00625067824784941846328836824623616, −0.02901710246301150993444701506844402, 0.17718457242491308890302832366796470, −1.37747681703993534399676348903067470, 13.286928409862371, -155.73220540533757, 2180.0409025624585, -35926.11177910434)#,<PHONE_NUMBER>042856)#, -1.5180622383127486e7, 3.8163135467193574e8)
    c = 1.0
    while x < 5.0
        c /= x
        x += 1.0
    end

    xinv = inv(x)^2
    q = evalpoly(xinv, p)
    a = (x/Base.MathConstants.e * q)^x * sqrt(2*pi/x)
    return a*c
end

I believe we can improve this substantially. It has a max ULP of 9 from 0 to 11 but only because I'm losing precision. When done in BigFloat it has a max ULP of 0.09 in that window. I think we should combine these approaches? And then honestly this method should be used in SpecialFunctions?

The hard part here is that compensating the arithmetic here will likely be fairly slow.

Sounds good! For what it's worth I also tried using numerical integrals on Talbot contours following "COMPUTING THE GAMMA FUNCTION USING CONTOUR INTEGRALS AND RATIONAL APPROXIMATIONS". I couldn't get it to be accurate or fast enough for our interest (need complex numbers and several evaluations)

that's unfortunate. I think integration might only be useful for arbitrary precision.

This now "works" for values of x and nu between 0 and 100. It now also supports non-integer orders. This is still very rough so will piece this better and am still doing this in big floats so probably going to lose precision elsewhere. SpecialFunctions.jl doesn't provide higher precision for noninteger arguments and they only give about relative errors of 1e-13 for non-integer orders so it is difficult to test against that library. Should probably switch to Arb for our testing at this point.
So again this is broken up in several branches. But for nu < 100

x < 20.0: power series. For large orders use log of power series.
x > 1.85*nu: use asymptotic phase expansion.
2.5*x< nu: use debye expansion (not a uniform expansion so need the 2.5 factor buffer)
x <= nu: Shift order up and debye expansion and then use downward recurrsion
x > nu: Shift order down and use asymptotic expansion and upward recurssion (forward recursion is stable here)

At this point, we have to figure out the best way to handle large orders. The good thing is that the debye expansion is more accurate here so for x < nu we can use that. Though these aren't uniform so the transition region x~nu is always going to be difficult. Numerical integration here is brutal for higher orders as the integrand oscillates more. For large arguments we can also use the asymptotic expansions though there will be a lot of numerical errors for very large orders (v > 10^6).
For large orders, the recursive based techniques become much slower especially if they depend on some multiplier to get in the proper range for the asymptotic expansions to work. Though it will depend on how accurate the debye expansions will be for x < nu at very large nu. The large argument asymptotic expansions I don't think will be feasible here as they always depend on some multiplier of 1.75x to be accurate.
With that comes the uniform asymptotic expansions for large orders that have been recently presented https://www.sciencedirect.com/science/article/pii/S0010465511003729. The difficulty is they now depend on the airy functions which are pretty slow provided by SpecialFunctions.... so we will have to rewrite those functions as well. I plan to implement this. But will take some more time.....

We also need a better way to select how many terms to use in _α_αp_asymptotic as well as the u-polynomials. Right now I was planning on just adding more branches but seems like a hack to do it that way.
I'm wondering too how far to push these approximations by increasing the number of terms... for recurrence we need two evaluations and then recurrence. Unsure if it would be more efficient just to derive more terms in the asymptotic expansions since it very slowly converging when x~nu... though depending on how well the uniform asymptotic expansions work that might be mute.

Just to summarize a bit where we currently are.
There are three main algorithms:

Power series for small x
Debye expansion for x<nu
asymptotic expansion for x>nu

All of these approaches for their designated regions will produce relative errors less than 1e-16 using BigFloat arithmetic. However, all of them struggle a little bit when using Float64 in the whole routine.

The power series can be inaccurate when x>10. For large nu the log of the power series needs to be used
The asymptotic expansion also suffer from cancellation. They produce about 9e-15 relative errors for modest sized arguments and about 1e-13 for large arguments.
I haven't tested the debye expansion but I think that will be easiest to get accurate.

For all other ranges for now I have filled using recurrence in the transition region x~v. For besselj downward recurrence is always stable. So when x<=nu I shift the order up and calculate using debye expansions and then use downward recurrence. When x>nu I will shift the order down and use the asymptotic expansion to compute then use forward recurrence which is stable when nu<=x. This method doesn't scale well for large orders because it relies on a simple multiplication factor for when the asymptotic are valid. On the other hand, the debye method is more uniform where simply shifting by a constant factor will allow for accurate results. This will allow for more comparable runtimes independent of order.

I've fixed most of the tests here. An update on the algorithm

For x < 4.0 the power series can be used without numerical cancellation.
For x > 1.8*nu the asymptotic expansion can be used (given that x > 20.0)
For 2*x < nu the debye expansion can be used for moderate orders (50-1000) for very large orders it is accurate roughly with just a single shift (x < nu - 500)

For all other regions (4.0 < x < 20.0 and x ~ nu) it is best to shift the order upwards and use downward recurrence using starting values with the debye expansion. Downward is always stable for besselj.
Now given that this is kind of messy right now so need to go through and make sure all the branches are better defined.

I think last issue to get sorted out is how to best select number of terms in the asymptotic expansion.

function _α_αp_asymptotic(v, x::Float64)
    xinv = inv(x)^2
    μ = 4 * v^2
    xnu = x / v

    N = 11#ceil(Int, 27.7479 / xnu + 22.3588 / xnu^2 + 4.5) # formula to determine number of terms needed
    d = -muladd(2, N, -3)

    s = evalpoly.(μ, _α_αp_POLYS(Float64)[1:N])

    αp = s[end]
    α = αp / d
    for i in N-1:-1:1
        d += 2
        αp = muladd(xinv, αp, s[i])
        α = muladd(xinv, α, s[i]/d)
    end

    return α*x, αp
end

const _α_αp_POLYS(::Type{Float64}) = (
    (1.0, 0.0),
    (0.125, -0.125),
    (-0.1953125, 0.203125, -0.0078125),
    (1.0478515625, -1.1591796875, 0.1123046875, -0.0009765625),
    (-11.466461181640625, 13.1358642578125, -1.71624755859375, 0.0469970703125, -0.000152587890625),
<PHONE_NUMBER>4975586, -246.8455924987793, 37.067405700683594, -1.5151596069335938, 0.017223358154296875, -2.6702880859375e-5),
    (-5892.0457146167755, 6965.548173427582, -1128.6143367290497, 56.11658954620361, -1.0105445384979248, 0.005837917327880859, -5.0067901611328125e-6),
<PHONE_NUMBER>563172, -276225.9131319225, 46889.68168082833, -2607.1347218453884, 59.29277476668358, -0.5644365847110748, 0.0018794238567352295, -9.834766387939453e-7),
    (-1.225106763286615e7, 1.4670878180751745e7, -2.5692206274838205e6,<PHONE_NUMBER>0451812, -4001.4928083932027, 49.41718461737037, -0.2788656409829855, 0.0005833245813846588, -1.9976869225502014e-7),
    (8.369564497799761e8, -1.0061560971482614e9, 1.80175839935865e8, -1.1293844119552301e7,<PHONE_NUMBER>258663, -4655.44006793818, 34.77845393284224, -0.12591543863527477, 0.0001761710154823959, -4.1618477553129196e-8),
    (-7.181611223268327e10, 8.659091218989731e10, -1.576853447634526e10, 1.0243675365394899e9, -3.1127612822052997e7,<PHONE_NUMBER>6756154, -4427.281508191307, 21.557856538012857, -0.053067848184582544, 5.209072696743533e-5, -8.843926480039954e-9),
    (7.562132599676877e12, -9.139342212003133e12, 1.686263984004851e12, -1.1257747938365613e11, 3.584384568770644e9, -6.188986771037158e7,<PHONE_NUMBER>690447, -3609.808395761912, 12.103919447801218, -0.021179858537379914, 1.5144118606258417e-5, -1.909484126372263e-9),
    (-9.588236853265692e14, 1.161016591203577e15, -2.164822377227822e14, 1.4768015151140877e13, -4.8748767898914606e11, 8.900147704533855e9, -9.641151011038888e7,<PHONE_NUMBER>983711, -2606.385824929625, 6.277422845836725, -0.008087900592073538, 4.342405588886322e-6, -4.176996526439325e-10),
    (1.4409993748135704e17, -1.747635582560889e17, 3.286944341694018e16, -2.2818860422499875e15, 7.75248528894739e13, -1.4783938404512664e12, 1.7064572063331423e10, -1.2415577730993801e8,<PHONE_NUMBER>168271, -1705.2186748496474, 3.0504712266430722, -0.0029777336087200013, 1.2309086638850886e-6, -9.237588471933122e-11),
    (-2.5330554576498356e19, 3.0761765051109855e19, -5.827690025164462e18, 4.1047854971841363e17, -1.4277576770556304e16, 2.819724813029272e14, -3.4214400566025547e12, 2.670056925037507e10, -1.3717353508462998e8,<PHONE_NUMBER>849346, -1028.1881576107903, 1.4039031226739573, -0.0010631539871280848, 3.4554354377824836e-7, -2.061961712485072e-11),
    (5.149237018485509e21, -6.260437088008504e21, 1.1933270317945127e21, -8.508441473311652e19, 3.0180281284560543e18, -6.1344355915029736e16, 7.750474619361342e14, -6.393706192980096e12, 3.543452904857713e10, -1.3358182185805681e8,<PHONE_NUMBER>099866, -578.7806110577233, 0.6169921485050097, -0.00036976968916281605, 9.619824624385043e-8, -4.639413853091412e-12),
    (-1.1986350446061028e24, 1.458736721654471e24, -2.795293505867967e23, 2.0139038975089457e22, -7.262922096794037e20, 1.5122633519520676e19, -1.975555191650512e17, 1.7050149800082885e15, -1.0037673890747877e13, 4.1025284625807785e10, -1.1700278886842367e8,<PHONE_NUMBER>4718135, -307.22947128726474, 0.260626935759175, -0.0001257334987819726, 2.658906071879852e-8, -1.051117201091023e-12),
    (3.167717078292175e26, -3.8584266638650446e26, 7.4277307068246446e25, -5.399729057323595e24, 1.9752248974202056e23, -4.197842582814349e21, 5.640147455618286e19, -5.0538188484912346e17, 3.1258357574848365e15, -1.3629748027461303e13, 4.233000035928751e10, -9.36296364559977e7,<PHONE_NUMBER>3885347, -155.01792293897955, 0.10637041031529318, -4.191933776256961e-5, 7.303030923530292e-9, -2.3959289142515966e-13),
    (-9.432675683095812e28, 1.1498154949132059e29, -2.2224123014148547e28, 1.6283472309548362e27, -6.03034763221407e25, 1.3043849059659297e24, -1.7950710383376238e22, 1.6602291470434327e20, -1.0700309670904285e18, 4.92026735148727e15, -1.6365119263912514e13, 3.957355516860315e10, -6.930551343828379e7, 86599.59532013819, -74.82883257079231, 0.042123857348712865, -1.3735762526818516e-5, 1.994760566671595e-9, -5.490670428493242e-14),
    (3.1436617397720927e31, -3.8346121964186915e31, 7.438172213027661e30, -5.487658176284203e29, 2.0543110479331377e28, -4.512190593153004e26, 6.33949148154985e24, -6.024489803885022e22, 4.020727203383251e20, -1.9328978639294188e18, 6.802550072768408e15, -1.767751414955178e13, 3.3964900375451138e10, -4.792703592867111e7, 48822.71795456563, -34.73905348751307, 0.01624286720956346, -4.43222001918643e-6, 5.421693881235296e-10, -1.2642991118241018e-14),
    (-1.1655823449858069e34, 1.4226232333293694e34, -2.7683048917097874e33, 2.0549175959945544e32, -7.766193794571668e30, 1.7289192571208397e29, -2.473355129610242e27, 2.406335820680262e25, -1.6548511836241395e23, 8.261988206301513e20, -3.048956971903377e18, 8.409146358453666e15, -1.7416884938569994e13, 2.7048317602344254e10, -3.1216507081066556e7, 26272.21159305084, -15.578788452840763, 0.0061163849392160095, -1.4107081622121022e-6, 1.4671084930995856e-10, -2.9236916960932355e-15),
    (4.7820456670665866e36, -5.839767806978455e36, 1.139609569657776e36, -8.505736729879162e34, 3.241923388548771e33, -7.303696541971675e31, 1.061598557628623e30, -1.0542835823932327e28, 7.4416439961740466e25, -3.8383112218012e23, 1.4749530840065974e21, -4.277160387520148e18, 9.428034079487212e15, -1.582775791680076e13, 2.0161618573658318e10, -1.9279964972155876e7, 13562.78784549061, -6.773533616718505, 0.0022547380647248, -4.4351435924730097e-7, 3.9542564728199e-11, -6.787141437359297e-16),
    (-2.1603839510459968e39, 2.639521237493071e39, -5.164169654060501e38, 3.873385769490781e37, -1.4875551809791352e36, 3.3870740530372218e34, -4.993086633044377e32, 5.049452384590897e30, -3.646484825050138e28, 1.934929035289944e26, -7.699788293506606e23, 2.3306500988206443e21, -5.414879939834449e18, 9.69892178268169e15, -1.3389590376401615e13, 1.4169012254830626e10, -1.1355350548005087e7, 6745.941285011119, -2.8643019266046954, 0.0008154154591207295, -1.3789599324701242e-7, 1.061958568923219e-11, -1.5810954484757452e-16),
    (1.0699708275991454e42, -1.3078533633276038e42, 2.5647480608865752e41, -1.9322501955238208e40, 7.471528599453178e38, -1.7175047656287374e37, 2.56398527252613e35, -2.6350896428114214e33, 1.9417708082703794e31, -1.0563755426904998e29, 4.333903992576568e26, -1.3614388053852227e24, 3.3089693719445074e21, -6.261128573879847e18, 9.243346554045246e15, -1.0625592945166727e13, 9.4457596395905e9, -6.4083469576330995e6, 3244.624388704194, -1.1811472686414501, 0.0002898188382446864, -4.2443950630387665e-8, 2.84271079789386e-12, -3.694951319807448e-17),
    (-5.786059033524315e44, 7.075318200534661e44, -1.3904375539321083e44, 1.051770598467428e43, -4.0921342782576984e41, 9.487906954286141e39, -1.4325415965940442e38, 1.493677625028016e36, -1.1206631946323043e34, 6.2329465039514265e31, -2.626782977025989e29, 8.52403241555426e26, -2.1544180262833415e24, 4.273241060880315e21, -6.678193343397941e18, 8.226793217207085e15, -7.9615210223039795e12, 6.004451011853662e9, -3.4795218728555855e6, 1513.831326319914, -0.4760701870709445, 0.00010139500470517733, -1.2944568154864108e-8, 7.586889731852131e-13, -8.660042155798706e-18),
    (3.4037481878842518e47, -4.163722422572948e47, 8.198385202264364e46, -6.22435990386475e45, 2.4353618503436353e44, -5.690731110001809e42, 8.680616408346572e40, -9.169497515863974e38, 6.991529767882026e36, -3.9660440566717967e34, 1.7117897755074633e32, -5.716342746132164e29, 1.495186253411991e27, -3.089698915505606e24, 5.071094031947313e21, -6.62564031827467e18, 6.884682491993269e15, -5.663687113496129e12, 3.6558083666029415e9, -1.8241160174217927e6,<PHONE_NUMBER>018984, -0.1879264018835715, 3.496541491784091e-5, -3.914759734732158e-9, 2.0193378048364477e-13, -2.035109906612696e-18),
    (-2.170796074547977e50, 2.6563886780963143e50, -5.239744551853566e49, 3.9915243203539826e48, -1.5697710844957169e47, 3.694226454576932e45, -5.687790414754595e43, 6.07923257088654e41, -4.703231744077508e39, 2.715669597352839e37, -1.1973880447446774e35, 4.101798034247621e32, -1.1059082744278117e30, 2.3689970250205793e27, -4.057770223206878e24, 5.577674944614657e21, -6.157880219725851e18, 5.448993990587677e15, -3.8435237604702446e12, 2.1401262084993436e9, -926134.0995426074,<PHONE_NUMBER>922326, -0.07278018905169194, 1.1898982367956518e-5, -1.1748038677566303e-9, 5.361217221358988e-14, -4.794249299231832e-19),
    (1.4962552090981924e53, -1.8315342344152888e53, 3.6186332587139524e52, -2.7651411770117913e51, 1.092593756883467e50, -2.5880088398643682e48, 4.0185482602383215e46, -4.341325948517365e44, 3.40330197791503e42, -1.996788871925338e40, 8.974814912978575e37, -3.1454308144632116e35, 8.712781142577153e32, -1.926817207371682e30, 3.4266421642703216e27, -4.923376108039163e24, 5.727723667496557e21, -5.393876507549732e18, 4.099268265682976e15, -2.498492707776039e12, 1.2086394541382809e9, -456609.83322422515,<PHONE_NUMBER>9348385, -0.027695807224792045, 4.000233368100494e-6, -3.500503095889607e-10, 1.4200746208673407e-14, -1.1319755289852937e-19),
    (-1.1113660587118494e56, 1.360796163396552e56, -2.692648562464633e55, 2.0634410442908336e54, -8.188692555802185e52, 1.9512412867297912e51, -3.0534326199740573e49, 3.3310997303957132e47, -2.6429272553053182e45, 1.573358131379098e43, -7.195503085038196e40, 2.5742410447166102e38, -7.305470671594484e35, 1.6621868613473995e33, -3.056128428896728e30, 4.5656808004766417e27, -5.560280477035352e24, 5.525982611412455e21, -4.4762143769251487e18, 2.944057191090032e15, -1.561376913130651e12, 6.60436019199837e8, -219122.78889988337, 55.602561558610454, -0.010370022987617815, 1.3297453832052619e-6, -1.0361746982713131e-10, 3.753418608703549e-15, -2.6783349569741323e-20),
    (8.871640240590993e58, -1.0865691207568645e59, 2.153044379065757e58, -1.654292598675498e57, 6.591312178536168e55, -1.5792626981209235e54, 2.4890507915218916e52, -2.7398535977577976e50, 2.1978557435213864e48, -1.3258581553903244e46, 6.160064953128667e43, -2.24525395106052e41, 6.512651083776791e38, -1.520126754804397e36, 2.879357904563898e33, -4.453253892004961e30, 5.646779978807957e27, -5.882834513685185e24, 5.036061410449725e21, -3.535410901341911e18, 2.0262400502486065e15, -9.410029770358712e11, 3.500781492364049e8, -102565.9203518178, 23.065519747567176, -0.003825019881917803, 4.374396753566091e-7, -3.048458029283708e-11, 9.900967356259312e-16, -6.3495009755852275e-21),
    (-7.592029625744128e61, 9.300807898884993e61, -1.8453653700408117e61, 1.4213662513968141e60, -5.684267643368571e58, 1.3688721521734006e57, -2.1717210753568686e55, 2.410362055956752e53, -1.953160895382593e51, 1.1926329508677187e49, -5.621526725185766e46, 2.084010993835956e44, -6.16598654084696e41, 1.472798231204338e39, -2.8653790379578294e36, 4.5711759648399396e33, -6.008229949414824e30, 6.525582948238488e27, -5.863525845645105e24, 4.3559252317865593e21, -2.6682229171870643e18, 1.3409000748848645e15, -5.4845348768282446e11, 1.8042426705573353e8, -46913.0207873715, 9.39407807634952, -0.0013913710768178739, 1.4251320396079487e-7, -8.917800204478063e-12, 2.6068908049173686e-16, -1.5080064817014915e-21)
)

This function does what I want but it's type unstable. I think I have to set up _α_αp_POLYS differently as they are storing different size NTuples and then the type of s depends on N. Ideally, N could be determined by the formula I've given but can't get it to work. If N<=10 this function is type stable but for N>10 it is not.
@oscardssmith if you have any ideas on best to set this function up that would be helpful

Ok I have now hopefully worked through all the edge cases where we must use recursion. There are a few places where accuracy could be improved that I've noted above. Mainly the asymptotic expansion could be computed more accurately and the power series has some larger errors when the order is large.
Overall, this approach can be significantly faster (especially for large orders). A particularly egregious example is...
julia> @benchmark SpecialFunctions.besselj(1.0e7, x) setup=(x=rand()+9990000.0)
BenchmarkTools.Trial: 95 samples with 1 evaluation.
 Range (min … max):  52.244 ms …  53.992 ms  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     53.110 ms               ┊ GC (median):    0.00%
 Time  (mean ± σ):   53.103 ms ± 346.777 μs  ┊ GC (mean ± σ):  0.00% ± 0.00%

                     ▂▅▂  ▂ ██▂██▅ ▂▅▅▂▂  █
  ▅▁▁▅▅▅▁█▁▁▁▁▅██▅▁█▁███▁▁████████▅█████▁███▁▁▅▅▅▅██▅▁▁▁▁▅▁▁▁▅ ▁
  52.2 ms         Histogram: frequency by time           54 ms <

 Memory estimate: 0 bytes, allocs estimate: 0.

julia> @benchmark Bessels._besselj(1.0e7, x) setup=(x=rand()+9990000.0)
BenchmarkTools.Trial: 10000 samples with 737 evaluations.
 Range (min … max):  171.924 ns … 223.822 ns  ┊ GC (min … max): 0.00% … 0.00%
 Time  (median):     172.863 ns               ┊ GC (median):    0.00%
 Time  (mean ± σ):   173.829 ns ±   3.753 ns  ┊ GC (mean ± σ):  0.00% ± 0.00%

   ▄▆██▆▄▂    ▃▃▂▁ ▁▂▂▁                                         ▂
  ████████▆▅▆██████████████████▇▆▅▇▇▆▄▅▅▄▆▅▅▇▇▇▇▅▄▂▄▇▇▆▄▆▆▄▅▃▄▄ █
  172 ns        Histogram: log(frequency) by time        185 ns <

 Memory estimate: 0 bytes, allocs estimate: 0.

julia> Bessels._besselj(1.0e7, 9990000.0)
1.7206853104017583e-133

julia> SpecialFunctions.besselj(1.0e7, 9990000.0)
1.7206853100053732e-133

That is roughly 300,000x faster....... For small orders the difference is less but still significant
julia> @btime SpecialFunctions.besselj(1.0e2, x) setup=(x=9990.0)
  310.601 ns (0 allocations: 0 bytes)
0.006807635943512029

julia> @btime Bessels._besselj(1.0e2, x) setup=(x=9990.0)
  54.115 ns (0 allocations: 0 bytes)
0.006807635943512404

I'm going to merge this as it provides accurate results. I have several other optimizations I'd like to consider but feel this thread is getting fairly long. I will leave _besselj unexported for now as I have a few other changes to the algorithm. Essentially the debye and asymptotic expansion can give both besselj and bessely in the same time which will be important for the hankel functions.


BUG: [TF-1095]: TouchFree now reconnects to the DiagnosticAPI if disconnected

Summary
Addresses the issues that can arise when TouchFree loses a connection to the Diagnostic API and doesn't attempt to reconnect
Closes TF-1095
Tests Added
Test that DiagnosticAPI features recover from Tracking Service Restarting
Test that the Diagnostic API connects on install
Contributor Tasks
These tasks are for the pull request creator to tick off.

[ ] PO review (optional depending on work type)
[ ] XDR review (optional depending on work type)
[ ] QA review (or another developer if no QA is available)
[x] Ensure documentation requirements are met e.g., public API is commented
[x] Relevant changelogs have been updated with user-visible changes

[x] TouchFree Windows
[x] TouchFree BrightSign
[ ] TouchFree Web Tooling

[ ] Consider any licensing/other legal implications e.g., notices required

If there is an associated JIRA issue:

[x] Include a link to the JIRA issue in the summary above
[x] Make sure the fix version on the issue is set correctly

Reviewer Tasks
Add any instructions or tasks for the reviewer such as specific test considerations before this can be merged.

[ ] Developer testing
[ ] Code reviewed
[ ] Non-code assets reviewed
[ ] Documentation reviewed - includes checking documentation requirements are met and not missing e.g., public API is commented

Closing this as we've discovered the bug is elsewhere.
DAPI requests already have functionality to reconnect when performing a request without an open websocket connection.


carina delete should delete the stored credentials

When deleting, we should assume the credentials on disk should be deleted too.

Closed in #65.


Error when calling method on UWP & Windows Phone 8.1

Hi Guys,
I have a Xamarin Forms prject which works fine on Android & iOS when using Refit 2.4.1 but I am getting errors when trying to use the same on UWP & WinPhone 8.1.
I get the below error on UWP
  The API 'System.Array.get_LongLength()' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information.
& the one below on Windows Phone 8.1
The API 'System.Array.get_SyncRoot()' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information.
I have tried with the platform types x86, x64 & AnyCPU but the result is the same. The output from the debug window shows InvalidOperationException & the last assemblies loaded are the Serialization ones.
..\System.Net.Primitives.dll'. Module was built without symbols.
..\System.Runtime.Serialization.Primitives.dll'. Module was built without symbols.

Exception thrown: 'System.InvalidOperationException' in mscorlib.dll
Exception thrown: 'System.InvalidOperationException' in mscorlib.dll

This leads me to assume that Refit is having problems with Serialization. Can someone help me out as to how I can get round this.
Many Thanks

@tribalboy Can you try Refit 3.0.1? 2.4.1 is very old and likely has issues with UWP.

Hi @onovotny , thanks for the reply. I tried with 3.0.1 for UWP to no avail. I get the same issue

Do you have a stack trace?

Sorry I should have included that earlier
{"The API 'System.Array.get_LongLength()' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information."}

 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
   at Refit.FormValueDictionary..ctor(Object source)
   at Refit.RequestBuilderImplementation.<>c__DisplayClass6_0.<buildRequestFactoryForMethod>b__0(Object[] paramList)
   at Refit.RequestBuilderImplementation.<>c__DisplayClass12_0`1.```
<<buildCancellableTaskFuncForMethod>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Service.<Login>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at  PageModel.<OnRegister>d__15.MoveNext()

Also, any kind of minimal repro?

Are you trying to pass an array directly as a parameter into something?
I'm guessing that https://github.com/onovotny/refit/blob/a83949533f8a4f981264f5099c92406555ad7d5f/Refit/RequestBuilderImplementation.cs#L755 doesn't work with UWP/Wpa81 correctly as reflection is turning up types that aren't actually available at runtime.

Yes I am trying to do the following
api.PostLogin(authorisationHeader, Encoding.UTF8.GetBytes("XXX"));
Its supposed to return a string value

Given the current way the code uses reflection, you won't be able to directly post an array as a UrlEncoded body.
If that's what you need to do, then I'd suggest making it a string parameter, putting the Body attribute on it and doing your own encoding of what you want from the array. Reflection does not appear to be stripping out the not supported members currently.

Thanks a lot @onovotny, I am now passing a string and it seems to go through fine


Network issue : Internet Not connected

Visual Studio Code Version : 1.9.1
Code Settings Sync Version : 2.4.4
Operating System : Windows 7
Occurs On: Upload / Download
Proxy Enabled: Yes
GIst Id: 1724e7e7fd3ffa943db37d6c8a5fd4d3bc3caa02
My proxy settings are OK (I can download new vscode extensions) but when I want to upload or download my settings I get this message :

Log message:

I don't understand what happens.

I wont be able to reproduce this error due to proxy environment settings.
Previously users sent me pull request to solve the proxy issues.
If you have time, you can download the code by placing the commands written here and send me pull request, i will accept that and hopefully extension will be more compatible with proxy environments.
https://github.com/shanalikhan/code-settings-sync#through-code

as this was coming from github API.
can you try for this extension for code insiders i have updated the Github API and v2.6.0 that is available for insiders at the moment.


Include architecture information in docker push

Tell us about your request
Include architecture information in docker push.
Which service(s) is this request for?
Docker CLI
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Docker push currently omits information about an image's architecture. This can be confusing when transferring images from one registry to another while using a machine with a different architecture. Basically it makes life difficult for users of M1 Macbooks.
I ran into this when trying to move images between Dockerhub and a private GCR registry using an M1 Macbook. Docker automatically downloaded arm64 images to my machine but during the push the architecture information was lost. This caused my Kubernetes cluster to download the image and only fail during the container startup process.
Are you currently working around the issue?
I used an intel-based VM to transfer the images. Also got this piece of advice to use skopeo: https://twitter.com/justincormack/status/1400428767810658306

Thanks for submitting your issue and sorry for the delayed reply. We're not working on this right now but we might in future.


Some characters are not rendered or not correct.

Attach (recommended) or Link to PDF file here: V01.SSC.N.20230908.2023090801-40010201.pdf
Configuration:

Web browser and its version: Chrome version 116.0.5845.188
Operating system and its version: window 11 .   Version	10.0.22621 Build 22621
PDF.js version: 3.9.54, (It also occur in https://mozilla.github.io/pdf.js/web/viewer.html)

Steps to reproduce the problem:

use the attached pdf file

What went wrong? (add screenshot)
the result: some text in header are not rendered or not correct

It should be like this:

WFM, using PDF.js 3.11.42 [cf7efdb04] in Firefox Nightly 119.0a1 on Windows 11. (Please keep in mind that the built-in Firefox PDF Viewer is the primary development target for this library.)


chore(upgrade): Upgrade kops to 1.5.3

I ran into x.509 errors with kops 1.5.1 that are fixed in 1.5.3. 👍

Thanks @mboersma and @bacongobbler


FIX: Turbo stream link setting the src of a turbo frame container

Bug Overview
This PR addresses a specific issue that arises when using a Turbo Stream link within a Turbo Frame in a Rails 7 application. Clicking on such a link currently sets the src attribute of the Turbo Frame element. Although Turbo saves this state for browser history navigation, it fails to fetch the content correctly. This is because the src attribute is intended to be used for Turbo Stream responses, leading to unexpected behavior.
Steps to Reproduce

Create a new Rails 7 application.
Add a Turbo Stream link inside a Turbo Frame.
Click the Turbo Stream link.
Observe that the src attribute of the Turbo Frame element is set.
Navigate the browser history.
Turbo fails to fetch the content.

Visual Reference

Proposed Solution
This PR adds a conditional check for the data-turbo-stream attribute. If the attribute exists, the src attribute of the Turbo Frame element will not be modified, thus preserving the expected behavior.
By implementing this check, the PR aims to make the behavior of Turbo Stream links within Turbo Frames more predictable and consistent with user expectations.

I have rebased this PR after the Typescript changes and would love some feedback. This bug has been a pain in our production app for some time now.

Might need a rerun on this. My tests are green.

@afcapel I have made the suggested changes, good catch.
What I am unsure about is the tests. I checked out the main branch and the tests are failing locally for me. Checked out the last couple of commits. The latest commit on which all test are green is https://github.com/hotwired/turbo/commit/4c006dc35e552f8b8feb2fb950ec8139c04ea781

@afcapel I have made the suggested changes, good catch.
What I am unsure about is the tests. I checked out the main branch and the tests are failing locally for me. Checked out the last couple of commits. The latest commit on which all test are green is 4c006dc

Nevermind 😅, the tests passed 🤷♀


[Artist Bio] Add blurb

Fixes #31.
For now we strip markdown, as rendering it would probably cause some surprise gotchas. See #42 for future work.

👍


show recent needs in your region on landingpage

One use case is that I may only realize that I can help someone or discuss something when I see that there is the need to do so. The simplest approach to this is showing a recent needs list that the user can influence by time and region.

This is a feature that would be good on the startpage for non-logged-in users, but also something that a logged-in user may be interested in.  By definition, such a view is at first glance independent of owned needs, however, the owner app could save your preferences for this view, and it may also integrate data from your needs in order to sort/filter.

we "implemented" this via the "what's around"-button in the create need view, therefore i will mark this issue as done


Add test covering the return value of validate() method

This change is

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


add awesome_feature

This feature is so awesome, anyone would want it.

This feature seems a bit incomplete. Write whole sentences at least.


feat: update preview images and some styling

Proposed Changes

Added official preview error image to browser preview component
Added prop to be able to insert specific image node for empty state
Reduced image size
Added class for preview content and overflow:auto

Potential Breaking Changes
None
Acceptance Criteria

[x] The proposed changes are covered by unit tests
[x] The potential breaking changes are clearly identified
[x] README.md is adjusted to reflect the proposed changes (if relevant)

Is the first column supposed to be blank?

Look at all that green! 🟢
I can't merge it though... 🔒
Could one of you do it?


Use a better command to add /usr/local/bin to the path

Previously when /usr/local/bin was already on the path the command
would return an error status because the initial command was not
successful. With the new command a success status will be returned
in both cases.
This was failing the container builds because source /etc/default/evm
was exiting with 1
This was introduced in https://github.com/ManageIQ/manageiq-appliance/pull/159

/cc @simaishi


TLS >=1.2 won't work on Windows in client mode when the client is authenticated (CAPI engine)

Hi,
This issue is a summary of my understanding of why TLS 1.2 and higher won't work on Windows when a server requires client authentication, and the Windows (the TLS client) uses the CAPI engine (loads certs/keys from the Windows Certificate Store).
(This is a duplicate of quite a few issues that are listed below.)
In OpenSSL 1.0, mutually authenticated TLS 1.2 failed with the following error:
CAPI_RSA_SIGN:cant create hash object

#2521 says:

the capi ENGINE in OpenSSL 1.0.2 and earlier uses the CSP
attached to the key for cryptographic operations. Unfortunately this means
that SHA2 algorithms are not supported for client authentication.

OpenSSL 1.1.0 adds a workaround for this issue. If you disable TLS 1.2 in
earlier versions of OpenSSL it will not use SHA2 for client auth so that will
also work.

After upgrading to OpenSSL 1.1.1, something else has come to the fore:
capi_rsa_priv_enc:function not supported

capi_rsa_priv_enc is not implemented in OpenSSL 1.1.1:
https://github.com/openssl/openssl/blob/0e60ce6334c86d271df5342029639048a635fefa/engines/e_capi.c#L817-L820
Reproduction steps can be found in #5847: https://github.com/openssl/openssl/issues/5847#issuecomment-469248292.
It appears that RSA-PSS became mandatory in TLS 1.3, but TLS 1.2 started to use it as well since OpenSSL 1.1.
Currently, there is no option in OpenSSL>=1.1 to disable RSA-PSS. #8872
Also in #7968:

TLS 1.3 added mandatory support for RSASSA-PSS, and it says that TLS 1.2 must support it too.

It seems that PSS is not even possible using the old CAPI engine, so the only way to make TLS >=1.2 work in this scenario (except for disabling RSA-PSS) is using the "next-generation" Windows crypto API: CNG.
#7341: https://github.com/openssl/openssl/issues/7341#issuecomment-429992941

There is a pull request from 2017 that adds a CNG-based engine (#3481, #6338).
It's flagged as "post 1.1.1", so I guess it's not going to happen, maybe in OpenSSL 3.0.

My understanding is that using TLS 1.2 in the mentioned environment (CAPI engine, client mode, mutual authentication) is not possible unless an option is added for disabling RSA-PSS. One would still not be able to use TLS 1.3, the real solution would be finishing and merging the CNG engine.
Am I right in these assumptions?

Good summary.

the real solution would be finishing and merging the CNG engine.

Engines are deprecated in OpenSSL 3.0 and I would not encourage anyone to write a new one for use in a 3.0 context. The replacement is "providers". So, if someone wants to write a CNG provider, that would probably be the best approach. Note there is no reason why such a provider would need to be merged into the OpenSSL mainline. It can entirely exist as an independent project.

an option is added for disabling RSA-PSS

I am unsure why you believe that this functionality is not already available; the signature algorithms are configurable and are negotiated between TLS peers.  If you only have an RSA key you won't be able to use the same configuration to talk to both TLS 1.2 and TLS 1.3 servers, but you can definitely disable PSS signatures by setting the sigalgs list appropriately.

Good summary.

the real solution would be finishing and merging the CNG engine.

Engines are deprecated in OpenSSL 3.0 and I would not encourage anyone to write a new one for use in a 3.0 context. The replacement is "providers". So, if someone wants to write a CNG provider, that would probably be the best approach. Note there is no reason why such a provider would need to be merged into the OpenSSL mainline. It can entirely exist as an independent project.

Is someone working actively on the CNG provider? I'm planning to start with one soon and I would like to know if there is already code available (on top of the pull requests #3481 and #6338).

Good summary.

the real solution would be finishing and merging the CNG engine.

Engines are deprecated in OpenSSL 3.0 and I would not encourage anyone to write a new one for use in a 3.0 context. The replacement is "providers". So, if someone wants to write a CNG provider, that would probably be the best approach. Note there is no reason why such a provider would need to be merged into the OpenSSL mainline. It can entirely exist as an independent project.

Is someone working actively on the CNG provider? I'm planning to start with one soon and I would like to know if there is already code available (on top of the pull requests #3481 and #6338).

Is someone working actively on the CNG provider?

Not that I'm aware of.

Is someone working actively on the CNG provider?

Not that I'm aware of.

@jaakkomoller wrote:

Is someone working actively on the CNG provider? I'm planning to start with one soon and I would like to know if there is already code available (on top of the pull requests #3481 and #6338).

Although only tested with libcrypto-level APIs (not libssl), you might be interested in this CNG Engine project.

Is there any progress on this issue? I'd like to get rid of TLS 1.1 that one still needs ATM when using client-certificates on Windows using CAPI interface.
TIA!

If you only have an RSA key you won't be able to use the same configuration to talk to both TLS 1.2 and TLS 1.3 servers, but you can definitely disable PSS signatures by setting the sigalgs list appropriately.

Could you elaborate how one would do it please?
For now I see that this code change is causing the issue: https://github.com/openssl/openssl/commit/ad4b3d0a658a2f5e4028714109d347c2b105dae4
So we need to make ctx->pmeth->pkey_id == EVP_PKEY_RSA
I don't fully get the connection between the sigalgs and the PMETH_CTX here.

As noted in https://datatracker.ietf.org/doc/html/rfc8446#section-1.3, TLS 1.3 requires that RSA signatures use RSASSA-
PSS, and offering those signature algorithms in a ClientHello that offers TLS 1.2 as well as TLS 1.3 requires that the client accept the PSS signatures even if TLS 1.2 is negotiated.  So openssl has added the PSS signature algorithms to the default list sent by the client, as part of adding TLS 1.3 support.
If you can't do PSS signatures, you can't use RSA keys with TLS 1.3 at all.  If you want to limit to just TLS 1.2 and non-PSS signatures, you use APIs like SSL_CTX_set_max_proto_version(., TLS1_2_VERSION) and SSL_CTX_set1_sigalgs_list() (or in this case, probably SSL_CTX_set1_client_sigalgs_list() if you're running into issues with client authentication as the original post was describing).  (The description of the string names for the signature algorithms is in SSL_CONF_cmd(3), and there are non-_list variants of the APIs that take numerical algorithm identifiers.)

Engines are deprecated in OpenSSL 3.0 and I would not encourage anyone to write a new one for use in a 3.0 context. The replacement is "providers". So, if someone wants to write a CNG provider, that would probably be the best approach. Note there is no reason why such a provider would need to be merged into the OpenSSL mainline. It can entirely exist as an independent project.

Is someone else working on the new CAPI provider cause we already know the issue https://github.com/openssl/openssl/issues/8872 here?

This issue seems completed.  By my read
Marking as inactive, to be closed at the end of 3.4 dev, barring further input


How to combine Raphael.js with Sketch.js?

I want to use the drawing properties of sketch.js together with raphael. However Raphael takes over the canvas and disallows using sketch. How can I overcome this problem. I was thinking of saving the SVG in a js variable and then using the svg as a background image in sketch. Is this the way to go or can this be done in a simpler fashion.

Maybe you'd be better posting this in SO, as I'm not familiar with Sketch.js.
Closing it as no one responded in almost 2 years.
Thanks


Notification - User didn't receive a notification in the main testing device from the #Admin Room in OldDot

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v1.4.44-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4343116
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://staging.new.expensify.com/
Login with a new Gmail account in New Expensify in the testing device , validate it and stay logged in
Navigate to another tab and leave the New Expensify tab in the background
Navigate to OldDot https://staging.expensify.com/
and login with the same Gmail account

Expected Result:
User receive a notification in the main testing device from the #Admin Room in OldDot
Actual Result:
User didn't receive a notification in the main testing device from the #Admin Room in OldDot
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/4d7e771b-e89e-486b-8f75-e007ece5e3c8
View all open jobs on GitHub

@sakluger I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

@kbecciv - I don't understand the issue fully. What specific notification were you expecting from the admins room that you didn't receive?

@sakluger It should be Guide message when user create a Control or Collect policy in Olddot.
It was caught during regression testing https://expensify.testrail.io/index.php?/tests/view/4343116

I'm not familiar with this message - I'm going to look into this more on Monday.

Ahh sorry haven't had time to prioritize this, I'll review tomorrow for real.

We are in the process of revamping our system message notifications which will likely change this behavior. For that reason, I'm going to close this for now.


[AERIE-1882] Remove old constraints pipeline

Tickets addressed: AERIE-1882
Review: By commit
Merge strategy: Merge (no squash)

Description

Commit 1: removes the pipeline switch and enables the constraints eDSL compilation by default.
Commits 2-5: removes unneeded or redundant code that was being kept around to keep the old pipeline functional.
Commits 6-9: renames nodes of the expression tree to be less suggestive of boolean operations.

Currently a constraint can be envisioned as either a list of set operations that transform profiles into violation windows, or as a function from profile values to booleans. However, once we start adding operations like #186, the function-of-values-to-booleans mindset will break down. So I'm trying to make the API suggest the set operations mindset to avoid confusion.

Commit 10: This fixes an oversight from my last PR. Real profiles technically have a schema of { initial: REAL, rate: REAL } instead of just REAL, so they were not being recognized.

Verification
Tests for the new pipeline are updated. Tests for the old pipeline are removed.
Documentation
API documentation is updated. Wiki documentation is not yet. I will update the Wiki after this is approved, but before it is merged.
Future work

Currently a constraint can be envisioned as either a list of set operations that transform profiles into violation windows, or as a function from profile values to booleans. However, once we start adding operations like #186, the function-of-values-to-booleans mindset will break down. So I'm trying to make the API suggest the set operations mindset to avoid confusion.

FWIW, at the time we started designing constraints, the conceptual foundation was that a constraint was a time-indexed proposition. Rather than simply being true or false, it takes on boolean valuations at individual times. (There was some idea that propositions should be continuous as functions from the real line to the booleans, to avoid certain pathological behavior, but I don't think that's important here.)
More to the point, all logical operators behave point-wise in this sense. NOT P is true at a time t if P is false at time t, and vice versa. P AND Q is true whenever both P and Q are true. And so on.
If you think of "expand" as satisfying use-cases like "within 5 minutes before or after P is true", I don't think it's in conflict with the idea of time-indexed boolean propositions. It's not an operator of classical logic, but that's what modal logic is for.

Looks like the test failures have to do with struct order non-determinism again...
One thing we could do is change this line:
https://github.com/NASA-AMMOS/aerie/blob/ba4febe6f5802220b852b9ed21c83b91665b324f/constraints/src/main/java/gov/nasa/jpl/aerie/constraints/TypescriptCodeGenerationService.java#L211
to:
        for (final var member: values.keySet().stream().sorted().toList()) {

Updated wiki


Top enclosure handle to be rounded over

What has to be done
Top handle of the enclosure needs to be rounded over so as to be safer.
How do you know it has to be done
The top handle made of bent sheet metal appears to be a physical injury safety hazard because of the sharp corners.
This was noted by the India team.
TODO: link notes
Code pointers
TODO
Don't forget

[x] Put the issue in a milestone
[x] Assign it to one of the projects
[x] Add appropriate labels
[x] Mention dependent/blocked issues if any

The top handle is gone and the top front and back edges are rounded over.
These changes are checked in the branch addressing #957


fix restartability bug for upper layer

if it is not first-time-boot, the uuid of HO is saved in metaservice. so we need to get the uuid after metaservice is started, otherwise we will get a new default uuid

This suggests we are wrong in https://github.com/eBay/HomeStore/pull/284/files
for restart,  the _our_id in HO is set by homestore_metablk_callback,  which will be called after meta svc started in https://github.com/eBay/HomeStore/blob/master/src/lib/homestore.cpp#L210
In the #284 we move the initialization of  GenericReplService from start to do_start.
I think we either
a.  move https://github.com/eBay/HomeStore/blob/master/src/lib/homestore.cpp#L198 down below L210
or
b. move L198 back to start() , remove wrong comments and  take the change in this PR to get uuid in GenericReplService::start() in L217

@xiaoxichen
for a, we can not make this change,  since the register_handler happens in the constructor of RaftReplService
https://github.com/eBay/HomeStore/blob/67cca17a715f08975ab7f28f211cdfe34963fbeb/src/lib/replication/service/raft_repl_service.cpp#L64
if we put L198 down below L210, then the handler can not be registered before metaservice#start, which will lead to a missing raft config.
well, b is acceptable, will do this!

Codecov Report
Attention: Patch coverage is 0% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 47.70%. Comparing base (2f5f94d) to head (4d5bebf).

Files
Patch %
Lines

src/lib/homestore.cpp
0.00%
1 Missing :warning:

src/lib/replication/service/generic_repl_svc.cpp
0.00%
1 Missing :warning:

src/lib/replication/service/raft_repl_service.cpp
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #333   +/-   ##
=======================================
  Coverage   47.70%   47.70%
=======================================
  Files         107      107
  Lines        9305     9307    +2
  Branches     1209     1209
=======================================
+ Hits         4439     4440    +1
+ Misses       4393     4392    -1
- Partials      473      475    +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

lgtm
Though we had seen an initialized uuid default value for m_repl_app->get_my_repl_id() and do not know the reason, but maybe  RELEASE_ASSERT(!m_my_uuid.value().is_nil(), "Uninitialized RaftReplService UUID");

ok, will add it in the later coming PR


Create LaunchingVitess.md

@alainjobart @enisoc
This is the initial draft. Some sections still need to be filled out, but there's enough here to get started.

This change is

LGTM after one formatting comment addressed.


Allow feature cache to be updated

No point in pooling if you can't actually update stuff; allows for a saving of 959KB per 4k requests
See: https://github.com/aspnet/benchmarks/pull/34/files#diff-a48f9d66e0bc9b9c9ec15dae230d8e50R167
in https://github.com/aspnet/benchmarks/pull/34 for specific usage
Resolves #502
Allocation details when pooling (in benchmarks repo), usual stuff, 4k requests, 16 pipelined, using FF
Pre-allocations for DefaultContext 1.12MB

Post-allocations for DefaultContext 160KB

Almost all of which is logging scope

Restore on is having issues

@benaadams We need some tests for this to make sure all of our features properly update and nothing is cached (unexpectedly).

... and nothing is cached (unexpectedly).

Thinking future proofing... reflection to discover interfaces and make sure they are null?

Looking good, but yes it still needs some tests.

Added test; with it, found some areas where it wasn't actually caching and some where it was over clearing, so fixed those too.

Changes made

Rebased and merged.

w00p! :+1:


The BigQuery emulator doesn't support CREATE TABLE AS SELECT with column definition list

What happened?
I tried to run a query CREATE TABLE AS SELECT with the BigQuery emulator and it failed with the error:
Failed to create compacted log: 500 failed to analyze: INVALID_ARGUMENT: CREATE TABLE AS SELECT with column definition list is unsupported [at 2:1]; message: failed to analyze: INVALID_ARGUMENT: CREATE TABLE AS SELECT with column definition list is unsupported [at 2:1], reason: jobInternalError

What did you expect to happen?
The BigQuery emulator should be able to support queries CREATE TABLE AS SELECT that include column definition lists.
How can we reproduce it (as minimally and precisely as possible)?
You can reproduce this error by running a query like this one:
CREATE TABLE IF NOT EXISTS {{project}}.{{dataset}}.table2
(
  field_x STRING NOT NULL,
  field_y STRING,
  field_z STRING
)
AS (
SELECT
  field_a,
  field_b,
  field_c
FROM
  `{{project}}.{{dataset}}.table1`
)

Anything else we need to know?
I think this is a limitation with SQLite and not an error with the codebase of the BigQuery emulator, after reading the docs https://www.sqlite.org/lang_createtable.html I think it is not possible to pass the column definitions (see points 2 and 3.1).
I still think the BigQuery emulator should take care of this because the emulator's purpose is to convert BigQuery compatible SQL to a SQLite compatible version that produces the same outcome.
One solution can be split the CREATE TABLE AS SELECT into two queries, one that creates the table, and the other one that runs a INSERT INTO [table] SELECT (I tested the last one and it works).
Having this feature CREATE TABLE AS SELECT is important because it allows to define the name of the column and if it allows null values.
Thank you for your work and for setting this BigQuery emulator, it is an excellent project!

Yes, we should update go-zetasqlite to format the query correctly.
The ZetaSQL AST includes ResolvedCreateTableAsSelectStmt.output_column_list() which should give us what we need to format it into SQLite.
https://github.com/google/zetasql/blob/589026c410c42de9aa8ee92ad16f745977140041/docs/resolved_ast.md#resolvedcreatetableasselectstmt
Here's the function that is currently responsible for create table formatting
https://github.com/goccy/go-zetasqlite/blob/main/internal/spec.go#L130

We'll also need to enable the language feature in analyzer.go
https://github.com/goccy/go-zetasql/blob/d769c5827652fccc561d80ad3292d54782c7cbfd/enum.go#L173-L177


Uncaught ReferenceError: process is not defined

Version
<EMAIL_ADDRESS>Other relevant version information:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Reproduction
Hi, I was trying to look for a way to share how to reproduce the issue but I don't really know how to given my set-up.
The issue seems to be related to supports-color dependency. It fails at index.js:2: var argv = process.argv; with the mentioned in title error message: Uncaught ReferenceError: process is not defined.
Is there any more information I can share with you that could help with this?

 Something like import foo from 'styled-components/bar'.

No, just import styled from 'styled-components';

Could you try if it's working when you replace styled-components with styled-components/dist/styled-components.js

:O hey that works!

You can temporary alias styled-components with styled-components/dist/styled-components.js.

Will do. Thanks for your help!

I'm getting this error, and when I try the workaround I get:
Could not find a declaration file for module 'styled-components/dist/styled-components.js'. 'c:/Users/Paul Dejean/Documents/timeburn/node_modules/styled-components/dist/styled-components.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/styled-components` if it exists or add a new declaration (.d.ts) file containing `declare module 'styled-components/dist/styled-components.js';`ts(7016)


fix: disabled input hover & icon color

Summary
Fixed the disabled form input styles so the border color doesn't change on hover, and the text input icon uses the disabled text color.

:tada: This PR is included in version 1.46.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0-next.20 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ARTEMIS-4218 Support console smoke tests from remote servers

@gemmellr thanks for your feedback, I figured out an alternative solution to support connections from remote servers preserving the default restrictions


Suggest a potential valid name for the flutter project when using flutter create

Fixes https://github.com/flutter/flutter/issues/109775
If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Still LGTM. I've also restarted some checks that appeared to fail due to infra issues.


bug: block replay from witness results in a different root hash

tested using the feat/zero branch of erigon on the sepolia testnet.
successful rpc call:
curl $RPC_URL \
-X POST \
-H "Content-Type: application/json" \
--data '{"method":"debug_traceBlockByNumber","params":["0x4c4b3f", {"tracer": "callTracer"}],"id":1,"jsonrpc":"2.0"}'

failed rpc call:
curl $RPC_URL \
-X POST \
-H "Content-Type: application/json" \
--data '{"method":"debug_traceBlockByNumber","params":["0x4c4b3f", {"tracer": "zeroTracer"}],"id":1,"jsonrpc":"2.0"}'

error:
{"block_witness":null,"error":{"code":-32000,"message":"final root: 356dcc4eeda2a07cb4c76ada19d4d1f14463e0463ef7b5b87710611150b2b22b, expected: f31367edbdcafeeb723d5b749ce1999a07a6da6411065f66b5e3e295358f2b23"}}

Will re-open if this sporadic error ever happens again on eth mainnet.


feat: add support for custom device hostname

Describe your changes
Adds support for --hostname (or -n) flag to be passed during netbird up, allowing users to set up a custom hostname for devices. Particularly helpful in cases where the device automatically logs into netbird on spawn, or in other cases for orchestration.
fixes https://github.com/netbirdio/netbird/issues/623
Issue ticket number and link
Checklist

[ ] Is it a bug fix
[ ] Is a typo/documentation fix
[ ] Is a feature enhancement
[ ] It is a refactor
[ ] Created tests that fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

i really like to add this feature

Yeah, that makes much more sense. I've made my changes and pushed to this PR to add support for all systems. Let me know if it's fine by you.


Ensure threads aren't forked in withTransaction

SqlBackend is not thread safe, so one should not use the same SqlBackend in multiple threads (ref). This means that the following program will have problems:
withTransaction $ do
  -- forkIO from UnliftIO.Concurrent
  forkIO $ insert $ ...
  insert $ ...

Make sure this can't happen

I'm not sure how we'd be able to enforce this at the type level, so maybe we should just store myThreadId in the environment and check in runQueryRep that the current thread ID is the same? That way, we can deterministically fail if someone tries to fork within withTransaction rather than having a race condition.


Error codes

Can we add error codes to the major Shaka errors so that they are easy to map? We are in a position where we want to funnel Shaka errors through our own application error pipeline so that we can have a consistent error interface. But it's difficult to map to our own error codes because the errors only contain messages which might change.

This is a great idea.  We'll be sure to add this to the design for v2.0.

Finished in 6231488.  All reported errors in v2.0 are shaka.util.Error type.  They have a category (network, media, drm, etc.) and a specific error code, both of which are numerical and fully-documented.

This great. The hard work is much appreciated.

Now that I'm looking at this more closely I do have a quick question. You mention a DRM category in your comment but there isn't a DRM category in the Error.Category object. Is there a plan to add error codes for this in the future? One of the problems that we have had is recognizing DRM errors because no codes are provided and error messages seem to be changing often. Do you have any thoughts on this?

The new DrmEngine is still a work-in-progress and hang been published yet.  But we will have a DRM error category and specific codes for various errors.
There are not standard error codes for CDMs in the EME spec, but we will try to divine as much as we can when we can.  For the rest, we will include error strings from the CDM.  Hopefully, we can get the important stuff.
What situations are important to you?

Okay, great.
The lack of standard error codes is something we have been trying to determine how to handle.
We are interested in stuff like:

DRM is disabled
License is expired
License can’t be installed

But I'm not even sure if these are all possible to recognize or if error messages are the best we will get.
Do you have an idea about what the cross browser support will be for these? Is it possible to determine these things consistently across browsers?

I'm not sure we can know from JS that DRM is disabled.  At most, we could know that none of the application's requested key system configurations are available.  (Unavailable may mean disallowed by the user in the case of persistent licenses, but we won't know the difference.)
License expiration is easy and cross-browser.
What does it mean that a license "can't be installed"?  Malformed data or something otherwise rejected by the CDM?

Yeah, basically, you get something back from the license server but it's rejected by the CDM.

That should be trivial and cross-platform.  The Promise returned by update() would be rejected in that case.


nil while unwrapping an Optional value

hi,
everything was working fine and then this error appeared again
I would like to know how to fix it and know what it is
all my view do have differents files for the class but they are all the same code apart from the webview that is extra in that view
here are some screenshots of my project

Ok, your menuBarButton is surely nil. Check the connection with storyboard.

im might be stupud but cannot find it ,
here are all my connections:

In the fourth screenshot (PlayListViewController) you can see that menuBarButton is not connected. So click on the + button and drag it to Menu item on the view.

it worked , thx a lot !


Issue with Shell Scripting

Environment
Windows Build 19042.868
Ubuntu version 20210222
WSL 2
Windows build number: [run `cmd.exe /c ver`]
Your Distribution version: [On Debian or Ubuntu run `lsb_release -r` in WSL]
Whether the issue is on WSL 2 and/or WSL 1: [run `cat /proc/version` in WSL]

Steps to reproduce

Open notepad copy paste the following code
echo To get Area and perimeter
echo enter radius
read x
p=expr 2 \* 22 / 7 \* $x;
echo perimeter $p
a=expr 22 / 7 \* $x \* $x
echo area is $a
Save it as .sh file
Open Ubuntu in windows terminal direct to the directory in which the file is saved.
Run using any shell command i.e. sh bash zsh etc
sh filename.sh

WSL logs: https://aka.ms/AAbnxa8
Expected behavior

Actual behavior

This is an issue with Windows-style line endings (CRLF).  You have two options:

Change notepad to use unix-style line endings.
Run "dos2unix" on your script after saving in notepad.


Run on CPU

Is it possible to run this model for evaluate on CPU?

Hi, yes, you can run it on CPU.

Hi, yes, you can run it on CPU.

But apex not builds on my system. By running :
pip uninstall apex;
git clone https://github.com/NVIDIA/apex.git;
cd apex;
python setup.py install --cuda_ext --cpp_ext
system:
ubuntu 18.04
Intel Cascade Lake

Skip the Apex installation. Apex is the library for half-precision computation on NVIDIA GPUs. It makes things run faster on GPUs, but you don't need it.


Happy to close straight away

Hi! Just a quick message (sorry to raise an issue).
I'm not much of a coder so take this with a grain of salt but...
You work is some of the best Powershell I've ever seen including the open source stuff from Microsoft.
Easy To Understand, Explicit, Easy To Follow
Just want to say thank you for your work and please keep it up!

Thank you very much for your support :) Really appreciated


fix(autoware_tracking_object_merger): fix unusedFunction

Description
This is a fix based on cppcheck unusedFunction warnings.
perception/autoware_tracking_object_merger/src/utils/utils.cpp:301:0: style: The function 'objectsYawIsReverted' is never used. [unusedFunction]
bool objectsYawIsReverted(const TrackedObject & main_obj, const TrackedObject & sub_obj)
^

perception/autoware_tracking_object_merger/src/utils/utils.cpp:413:0: style: The function 'probabilityMerger' is never used. [unusedFunction]
float probabilityMerger(const float main_prob, const float sub_prob, const MergePolicy policy)
^

perception/autoware_tracking_object_merger/src/utils/utils.cpp:428:0: style: The function 'shapeMerger' is never used. [unusedFunction]
autoware_perception_msgs::msg::Shape shapeMerger(
^

Related links
Parent Issue:

Link

How was this PR tested?
Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

For my point of view, those functions provide additional functionalities for Autoware users. Even it is not used in current Autoware, someone can use those.
@YoshiRi @yukkysaito
Do you think those unused functions should be removed?

@technolojin
As you say I intended to use those function in the future development.
But this is trivial, so I think we can remove this.
Ref:  https://star4.slack.com/archives/C4P0NSMB5/p1724040335846959


Windows 7 Pro Issues with KBFS Mounted Drive

Hey,
I keep having issues with my K Drive staying mounted. Repairs used to work, but don't any longer. Each time I reboot, I can access it for a few seconds before it disconnects and I get the following error. Thoughts?

Logs: 76c6efc5c92054c1d280861c
--Brian

New set of logs: 1d207d9d584ee3881d2d5f1c

Same: https://github.com/keybase/client/issues/10954

Mine's never worked TBH.

@MediaAlchemist Not sure but these errors suggest Keybase was installed under a different account, or with different permissions (@taruti ? @strib ?)
5935 2018-03-21T12:15:28.326516-07:00 - [DEBU kbfs fs.go:298] 1fc FS Open: ["team"] [tags:DID=Qi0hbXornTbRFBMlKKFkMg]
5936 2018-03-21T12:15:28.326516-07:00 - [DEBU kbfs folderlist.go:71] 1fd FL Lookup []string{} type=singleTeam upper=false [tags:DID=Qi0hbXornTbRFBMlKKFkMg]
5937 2018-03-21T12:15:28.326516-07:00 - [DEBU kbfs fs.go:290] 1fe FS Open failed dokan.CreateData{DesiredAccess:0x100080, FileAttributes:0x0, ShareAccess:0x7, CreateDisposition:0x1, CreateOptions:0x200060} with: NTSTATUS=c00000ba [tags:DID=Qi0hbXornTbRFBMlKKFk
5938 2018-03-21T12:16:13.201551-07:00 - [ERRO kbfs fs.go:274] 1ff FS CreateFile - Refusing real access: SID match error [tags:DID=68AfeF9wmAThRcZqWCEFvg]
5939 2018-03-21T12:16:13.201551-07:00 - [DEBU kbfs fakeroot.go:18] 203 openFakeRoot "\\" [tags:DID=68AfeF9wmAThRcZqWCEFvg]```

I ended up changing my Keybase Handle this morning and posted that second Log above. This was done for reasons, but to "fix" this issue though. The issue still persists.

Does the driver load? Do you have SecureBoot on?

I have a single instance of  "kbfsdokan.exe" running and six instances of "keybase.exe" running. I assume that first is the Driver?
And SecureBoot is off as far as I know.
--Brian

The driver is loaded and kbfs thinks it is mounting the filesystem correctly. kbfsdokan.exe is the Windows kbfs service, lower-case keybase.exe is the service and its watchdog (restarter) process, upper-case Keybase.exe are GUI processes. There also is upd.exe, our updater.
The most suspicious thing I see in the logs is the SID mismatch error, which again suggests a different account was used to install Keybase. Have there been any changes in which Windows user is logged in or anything?

A different account was used to install it and I logged out of the account and signed in with the new one so I'm surprised that's still a thing.
And nope, no changes. About all I've done is some reboots. I can reinstall Keybase, but I'd be really surprised if that fixed the problem since the issue was on going even before the name change.
--Brian


Fix #175 - failing unit tests after big PR

Fixes #175.

Here's the errors:
ERROR util/test/test_calcrewards_approvedtokens.py::test_stakesToUsd_unapprovedtoken
ERROR util/test/test_calcrewards_approvedtokens.py::test_stakesToUsd_one_approved_one_unapproved
ERROR util/test/test_calcrewards_approvedtokens.py::test_poolvolsToUsd_unapprovedtoken
ERROR util/test/test_calcrewards_approvedtokens.py::test_poolvolsToUsd_one_approved_one_unapproved
============ 111 passed, 24 warnings, 4 errors in 318.27s (0:05:18) ============

Full log:
https://github.com/oceanprotocol/df-py/runs/7021929827?check_suite_focus=true

Report from Berkay:
On my first test run I got the identical error
No approved tokens found in the chain 8996
On my second run, all tests pass
I guess the approved tokens array is empty on the first run

The fix: simply delete util/test/test_calcrewards_approvedtokens.py
We can get away with this because I'd already put the key test functionality - see if unapproved token gets filtered out - into the main test_calcrewards.py file.


I'm getting this issue please see

Please try to upgrade to pysnmp 4.4.6 - there is a relevant fix there. If that does not help - a short reproducer would be helpful.
Thanks!


Update Screen change analytics tracking for expo

The proposed google GoogleAnalyticsTracker will not work for expo based application, where developer needs to edit native modules. With this way developer can use 'expo-analytics' package to track screen.

hi! Thanks for the PR. I believe that it would be equally beneficial to just mention the options people can use with expo - that would be https://github.com/react-native-community/react-native-google-analytics and https://github.com/ryanvanderpol/expo-analytics#readme (possibly more) and just link to their readme for users to see how to actually use the libraries.
The important part of how to detect a screen transition is already covered here and then users can use the readme of the linked libraries to see how to actually implement the tracking.
Linking to the library readmes instead of giving explicit code examples means less maintenance burden for us, since the library apis may change in the future and also less confusion for users when that happens. It also scales better in case more analytics solutions are available. What do you think about this? Thanks!

ok, that make sense. i will update it

Thanks again for the PR @ltsharma, we discussed this PR with @brentvatne and concluded that react-navigation docs are not the right place to document different analytics libraries that work (or do not work) with Expo - this is something that perhaps might be covered in Expo docs, but is out of scope for the react-navigation docs. With this, I'm going to close this PR. Thanks again!

we need a guide about analytics libraries on the expo docs :)


Could not build repo not all dependencies resolved

See:
./gradlew build
Download http://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/0.9.0/plugin-publish-plugin-0.9.0.pom

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'j2objc-gradle'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not resolve commons-io:commons-io:1.4.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve commons-io:commons-io:1.4.
         > Could not get resource 'http://plugins.gradle.org/m2/commons-io/commons-io/1.4/commons-io-1.4.pom'.
            > Could not HEAD 'http://plugins.gradle.org/m2/commons-io/commons-io/1.4/commons-io-1.4.pom'.
               > peer not authenticated
   > Could not resolve com.google.guava:guava:18.0.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve com.google.guava:guava:18.0.
         > Could not get resource 'http://plugins.gradle.org/m2/com/google/guava/guava/18.0/guava-18.0.pom'.
            > Could not HEAD 'http://plugins.gradle.org/m2/com/google/guava/guava/18.0/guava-18.0.pom'.
               > peer not authenticated
   > Could not resolve oauth.signpost:oauth-signpost:<IP_ADDRESS>.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve oauth.signpost:oauth-signpost:<IP_ADDRESS>.
         > Could not get resource 'http://plugins.gradle.org/m2/oauth/signpost/oauth-signpost/<IP_ADDRESS>/oauth-signpost-<IP_ADDRESS>.pom'.
            > Could not GET 'http://plugins.gradle.org/m2/oauth/signpost/oauth-signpost/<IP_ADDRESS>/oauth-signpost-<IP_ADDRESS>.pom'.
               > peer not authenticated
   > Could not resolve oauth.signpost:signpost-commonshttp4:<IP_ADDRESS>.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve oauth.signpost:signpost-commonshttp4:<IP_ADDRESS>.
         > Could not get resource 'http://plugins.gradle.org/m2/oauth/signpost/signpost-commonshttp4/<IP_ADDRESS>/signpost-commonshttp4-<IP_ADDRESS>.pom'.
            > Could not GET 'http://plugins.gradle.org/m2/oauth/signpost/signpost-commonshttp4/<IP_ADDRESS>/signpost-commonshttp4-<IP_ADDRESS>.pom'.
               > peer not authenticated
   > Could not resolve org.apache.httpcomponents:httpcore:4.2.2.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve org.apache.httpcomponents:httpcore:4.2.2.
         > Could not get resource 'http://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.2.2/httpcore-4.2.2.pom'.
            > Could not HEAD 'http://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.2.2/httpcore-4.2.2.pom'.
               > peer not authenticated
   > Could not resolve org.apache.httpcomponents:httpclient:4.2.2.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve org.apache.httpcomponents:httpclient:4.2.2.
         > Could not get resource 'http://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2.pom'.
            > Could not GET 'http://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.2.2/httpclient-4.2.2.pom'.
               > peer not authenticated
   > Could not resolve com.google.code.gson:gson:2.2.4.
     Required by:
         :j2objc-gradle:unspecified > com.gradle.publish:plugin-publish-plugin:0.9.0
      > Could not resolve com.google.code.gson:gson:2.2.4.
         > Could not get resource 'http://plugins.gradle.org/m2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom'.
            > Could not HEAD 'http://plugins.gradle.org/m2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom'.
               > peer not authenticated

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

@advayDev1 This is critical if this is not working I cannot work on my other issues.

@brunobowden  should look into this.  this is from the change to the community plugin publish syntax.

@confile, are you sure your computer is able to reach plugins.gradle.org:
Could not HEAD 'http://plugins.gradle.org/m2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom'.
               > peer not authenticated

means something is up with your computer and/or internet and/or DNS and/or SSL certs.

I checked out the latest master now its gone. thanks @advayDev1

I had a look around online and it looked like some kind of connectivity or
authentication issue.
@confile - can you try cleaning and build it again, search around for "Could
not resolve all dependencies for configuration ':classpath'." - there's
lots of difference causes for build problems like this.
On Thu, Jun 11, 2015 at 4:44 PM Advay Mengle<EMAIL_ADDRESS>wrote:

@confile https://github.com/confile, are you sure your computer is able
to reach plugins.gradle.org:
Could not HEAD 'http://plugins.gradle.org/m2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom'.
> peer not authenticated
means something is up with your computer and/or internet and/or DNS and/or
SSL certs.
—
Reply to this email directly or view it on GitHub
https://github.com/j2objc-contrib/j2objc-gradle/issues/147#issuecomment-111307866
.

Great
On Thu, Jun 11, 2015, 4:46 PM Michael Gorski<EMAIL_ADDRESS>wrote:

I checked out the latest master now its gone. thanks @advayDev1
https://github.com/advayDev1
—
Reply to this email directly or view it on GitHub
https://github.com/j2objc-contrib/j2objc-gradle/issues/147#issuecomment-111308067
.

@confile - if this happens again, try:
curl -I http://plugins.gradle.org/m2/com/google/code/gson/gson/2.2.4/gson-2.2.4.pom

@advayDev1 What does this do?

It performs an HTTP 'head' against the url of the component gradle is
trying to use.
On Thu, Jun 11, 2015, 5:23 PM Michael Gorski<EMAIL_ADDRESS>wrote:

@advayDev1 https://github.com/advayDev1 What does this do?
—
Reply to this email directly or view it on GitHub
https://github.com/j2objc-contrib/j2objc-gradle/issues/147#issuecomment-111313443
.


Coordinate Scope Review and Prioritization

Team will work to Coordinate Scope Review and manage the Prioritization c/o Fluid report, Unit Conversion, Messages, etc.....
Scope discussion TBD to cover the scope and priority.

@cherrera2001  and Mike (don't see his @ in GitHub) lets be sure to cover this item in order to have an update for the client team.

@cherrera2001 this is one of the things we said we would cover also

@Mike-d-s this is one of the things we said we would cover also

@cherrera2001 @Mike-d-s can you see this msx?
this is one of the things we said we would cover also

Yes prioritize fluids report

On Apr 8, 2019, at 5:38 PM, niaalex<EMAIL_ADDRESS>wrote:
@cherrera2001 https://github.com/cherrera2001 @Mike-d-s https://github.com/Mike-d-s can you see this msx?
this is one of the things we said we would cover also
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/hashmapinc/Drillflow/issues/371#issuecomment-481033851, or mute the thread https://github.com/notifications/unsubscribe-auth/AFphD0Cyp_SE9UDbJTIpo_m07Oy8qgf8ks5ve8TpgaJpZM4cY1IA.

The ask from their side was to prioritize fluidsreport and units conversion after log.  Though they didn't specify which of those was the first priority.  I suggested fluidsreport since its a static object, but that depends on their API implementation being ready, so based on their timing, units conversion might be first anyway.  The need here is for the team to create the necessary cards and structure to represent thess objects in the project and then coordinate their planning as part of sprint planning.

Complete


Site is down

From Haxe.org repo:

Hi, I just wanted to test some haxe code, but it seems like try.haxe.org is not working. There is my screenshot with error in console:

Seems to work here, can you double check what happened?

Hey,
I'm currently working out some server issues, it should be back in a few minutes.
Best,
Clément

maybe we should have some more robust error handling (like a nice message when the client receives such errors)

it's back up, sorry for the inconvenience :)


[Bug] Stats show undefined

Stats show undefined before loading the stats.

Hello, it seems that I opened up the Pull request first, sorry 😁 feel free to assign this if you like the quick fix and want to merge it to restore the natural order of things :)

Thanks for the pr!


[chakracore] Avoid race condition on generated headers.

This build race was observed in attempting to do the November VM update: https://dev.azure.com/vcpkg/public/_build/results?buildId=80997
Filed upstream as https://github.com/chakra-core/ChakraCore/pull/6862

You have modified or added at least one portfile where deprecated functions are used.
If you feel able to do so, please consider migrating them to the new functions: vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake) vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake) vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake) vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config) vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive vcpkg_build_msbuild -> vcpkg_install_msbuild vcpkg_copy_tool_dependencies -> vcpkg_copy_tools vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())
In the ports that use the new function, you have to add the corresponding dependencies:
{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

ports/chakracore/portfile.cmake

You have modified or added at least one vcpkg.json where you should check the license field.
If you feel able to do so, please consider adding a "license" field to the following files:

ports/chakracore/vcpkg.json

Valid values for the license field can be found in the documentation

Thanks for your fix. Please add the license in vcpkg.json and fix the deprecated function in portfile.cmake for this port.


PP: meet with brand team to review hero image for What's On

Problem to be solved
We need to get images for the next two exhibitions to go into Prismic.

Met with Lindsay and Chloe from the brand team and reviewed the latest hero image treatment.

They agreed to create multiple exhibition images to be used for hero and promo spots. This provides them creative control over how images are displayed.
Chloe is working on Ayurvedic Man and plans to explore different treatments once the lead object is selected. She mentioned the campaign will be object driven and it will fit nicely with the current design treatment. However, she wanted to find out how it will scale for mobile experience.

Next Steps: Meet with David/James on following questions.

Could we apply different hero image for the mobile?
Could we fix the max width of the hero image for desktop to allow for creative control?
Could the brand team assign focal point for the image?
Could the template support to display video and a background image in the hero spot?
Could the brand team assign color scheme per exhibition?

I followed up with David and here’s the latest update.
Assigning a focal point on the image won't be part of the scope. Therefore, he suggests following options:
• The new template can support separate hero images for desktop and mobile. This allows for creative control on how the image is positioned in the layout per device.
• We can fix the max width of the hero image for the desktop if desired. We may want to look at the design and see if this is something we want to explore.
Also, we can support video, and a background image in the hero spot and ability to chose a colour scheme from a fixed set of options.


added obp_evaluation

Added OBP evaluation for cold start models from RePlay. Docs and tests are available but will be further improved. Evaluation is done using class RePlayOfflinePolicyLearner with methods fit, predict and optimize with similar logic as in RePlay. Also script file and config are available for easy run and evaluation of RePlay models on OpenBanditDataset.
To run, for example, UCB algorithm on bts policy you can follow this:
python run_real.py --config=config.py:ucb --config.behavior_policy=bts

I suggest following changes in naming:

obp_evaluation -> obp_wrapper. Code in this folder is more general from OBP evaluation. OBP is used more for training wrapper and hyperparameter optimization. And evaluation is running separately, directly from OBP.
RePlayOfflinePolicyLearner  -> OBPOffPolicyLearner. RePlay is a base framework name, functionality is added from OBP. Off/Offline - to discuss on call

Please sync this PR with main to check ci. There was poetry conflict during installation

On gitlab CI there is a building docs error docs/pages/modules/obp_wrapper.rst:document isn't included in any toctree.


Updating nodes in the index with a vector store storage context

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
I have an index created with the Milvus vector store as the storage context where the embeddings are stored. The index was created by loading HTML documents and parsing them into nodes using HTMLNodeParser() like this index = VectorStoreIndex(nodes, storage_context=storage_context) I have updated versions of the raw HTML files and trying to find a way to update the index with the updated content as well as insert new content into the Index. Based on what I am reading in the docs and forums, the update_ref_docs and refresh_ref_docs functions seem to take a sequence Document object as inputs for updating existing documents in the index but don't see a way to update the relevant nodes for the already existing documents

No the provided thread does not answer my question and is not relevant to the question I asked above

@logan-markewich Thanks for your response! Yes I have changed the ingestion and updating the metadata to use a consistent document id. I do not have an external docstore created and I am not sure if we will be able to stand up one due to the cost involved. I am assuming I have to persist the docstore on a disk and use it? Also, because I did not create a docstore for the already existing index, I am assuming that I won't be able to update the previously indexed documents/nodes?


Improved option checking for tuples

Description
Fixes #3303
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[ ] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[x] No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[x] All tests pass: $ python -m pytest (or $ nox -s tests)
[ ] The documentation builds: $ python -m pytest --doctest-plus src (or $ nox -s doctests)

You can run integration tests, unit tests, and doctests together at once, using $ nox -s quick.
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

I have implemented better option checking by creating an ensure_tuple method. This method automatically converts any string-based options into tuples, ensuring consistent handling of options.

Would it be wrong to assume that all options passed can be expressed in two ways:
If a single value is passed for an option, it would look like this:
options = {
    "working electrode": "both",
}

If multiple values are passed, it would be structured like this:
options = {
    "SEI": ("none", "constant"),
}

Are these the only two possibilities?
or should we consider some different input formats as well?


Add AdminUserGlobalSignOut

Summary | Résumé
Add AdminUserGlobalSignOut for use with deactivate feature
Related PR
https://github.com/cds-snc/platform-forms-client/pull/2372

Test instructions | Instructions pour tester la modification

Closing as this is not the route we'll be taking at this time.


issue #82 add literal mapping capability to tooling core and runtime

Need to update this after John's most recent push.


[Index] Ignore internal conformances in serialized modules

The index should not output any internal conformances from a serialized
module. Ideally these wouldn't be returned at all, but that can be
addressed in a later patch.
Resolves rdar://95460636.

I spent a little while trying to simplify a reproducer, but they all completely skip the decl that contains the conformance if the cross reference is missing when recovery is enabled (so unsure how this case can ever occur) and crashes with or without this patch when disabled (which is what I'd expect). It definitely does happen though so... 🤷

@swift-ci please test