Validate if a rewrite in TS has any performance penalty

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal
Maintaining types is hard and error-prone. I opened this issue to make an experiment if a rewrite of this module in TS has any performance penalty. If this experiment succeeds, we can simplify contributions and don't have to maintain TS types separately.

[ ] Rewrite in TS without breaking changes
[ ] Validate the performance of JS and TS versions.

@kibertoad

we can simplify contributions and don't have to maintain TS types separately.

is this the truth?
I'm not a blocker here, but I want to say that I'm out of all the packages written in TS

There is a use case for everything. I dont see typescript here as having any benefit. Its like a project on purpose uses hand crafted assembler to ensure high performance and somebody suggests C++ because it is more modern.
I am personally a big fan of typescript and use it in projects regularly. But I am openly against using typescript in any of our packages. And tbh. I am not convinced, that the overhead of controlling if the output of our code is what we wanted in the first place is worth it. Also after an update of typescript, we would need to check again if the code changed in a significant way.
And I am not convinced that rewriting fastify-plugin will solve the original issue in #217 . You have still the same issue because you have to do the same work.

Let's allow the experiment to take place before labeling it as a failure. No long-term decision was made here. @kibertoad wants to give it a shot.

I asked kibertoad regarding your assignment of this task to him and your claim that he wanted to "give it a shot". Actually i asked him, if there is maybe a misunderstanding, because he just wrote that he would test and benchmark if there is a solution in typescript.
I will remove the assignment of kibertoad to this task, because i think it is a misunderstanding. Also i want to avoid the impression, that if he doesnt supply a PR or a fork with the desired typescript implementation that you think we kind of block this feature request from being assessed.
You are free to assign this issue to yourself and implement a typescript rewrite so that kibertoad and others can review it.
Also kibertoad is of course free to pick this task if he wants to do the heavy lifting.

I am happy to write benchmark for this task, but not sure when I'll find time for it

I believe it may not be worthwhile to pursue further investigation if the majority is opposed to it. My rationale for assigning @kibertoad to this issue was based on their comment in https://github.com/fastify/fastify-plugin/issues/217#issuecomment-1637087416. However, it is possible that I misunderstood their perspective. My motivation has waned, and I will close this issue.

I believe it may not be worthwhile to pursue further investigation if the majority is opposed to it.

I must say that a fastify-plugin-ts could make everyone happy:

the experimentation will take place
the data and users' feedback will show if it works better

This package is quite feature-complete, so it does not change so often (the last feature is almost 1 year old)

I on the other hand expect alot of ts-ignore.... :D

For the sake of the experiment I would like to give it a shot to this with a fastify-plugin-ts

Hey! I made a fork with my attempt on migrating the plugin to typescript (still a wip) if you would like to give it a review would be great.
@StarpTech  @kibertoad

Based on the experiment (great work @andersonjoseph btw 🚀 ) I do not foresee too many performance regressions, but I'm still curious. Did you have the chance to run any benchmarks?
For this, I'm really curious about the DX experience 😅

How do you want to benchmark something which is basically run a limitted amount of times at startup

I was thinking something simpler as just loading X arbitrary plugins to fastify apps, and compare (not necessarily statistically valid).
e.g. I did this just as a quick experiment:
const fp = require('fastify-plugin')
const fpts = require('fastify-plugin-ts')
const Benchmark = require('benchmark')
const fastify = require('fastify')

const suite = new Benchmark.Suite()

suite
  .add(
    'Fastify Plugin',
    async function () {
      const app = fastify()

      for (let i; i < 10; ++i) {
        app.register(
          fp((instnace, opts, done) => done(), {
            name: i
          })
        )
      }

      await app.ready()
      await app.close()
    },
    {
      minSamples: 100
    }
  )
  .add(
    'Fastify Plugin TS',
    async function () {
      const app = fastify()

      for (let i; i < 10; ++i) {
        app.register(
          fpts((instnace, opts, done) => done(), {
            name: i
          })
        )
      }

      await app.ready()
      await app.close()
    },
    {
      minSamples: 100
    }
  )
  .on('cycle', function (event) {
    console.log(String(event.target))
  })
  .on('complete', function () {
    console.log('Fastest is ' + this.filter('fastest').map('name'))
  })
  .run({
    async: true
  })

Too much room for improvement, for sure. We are interested in the ready being called, but sadly we need to pay the bill for the close one due to a memory leak in http module from Node.
So far, the numbers looks similar:
Fastify Plugin x 26,146 ops/sec ±1.57% (185 runs sampled)
Fastify Plugin TS x 26,015 ops/sec ±1.67% (185 runs sampled)

But the script is really naive, so optimizations can be done to fully target what we want to really measure

Did you have the chance to run any benchmarks

I haven’t run any benchmarks yet, but I was thinking of doing something similar to your script, @metcoder95. But I wasn't sure if that’s the best way to measure performance

If you do async true then set delay 0

But I wasn't sure if that’s the best way to measure performance

It should test what we are looking for, which is the internals of the fastify-plugin, which are constituted of mostly the callback part. That's why app.ready is the key one here.
Although, the script can be optimized, especially finding a way to reset the app so a new app and its plugins are loaded so the suite just waits for the app to be ready with app.ready.
Please feel free to adapt it and play with it as you need 👍

The comparison should consider the fp's options imho:

check fastify version
check required dependancies
check required decorators

I added some benchmarks to the repo, I tried to optimize the script to only measure app.ready and also added benchmarks for fp's options. Here are the results on my machine:
Benchmark for simple case
Fastify Plugin x 98,947 ops/sec ±2.54% (79 runs sampled)
Fastify Plugin Typescript x 98,539 ops/sec ±1.91% (85 runs sampled)

Benchmark for fastify version checking
Fastify Plugin x 96,928 ops/sec ±2.53% (78 runs sampled)
Fastify Plugin Typescript x 97,231 ops/sec ±1.88% (82 runs sampled)

Benchmark for fastify dependencies checking
Fastify Plugin x 100,273 ops/sec ±1.89% (80 runs sampled)
Fastify Plugin Typescript x 99,840 ops/sec ±1.68% (83 runs sampled)

Benchmark for fastify decorators checking
Fastify Plugin x 98,176 ops/sec ±2.01% (80 runs sampled)
Fastify Plugin Typescript x 99,913 ops/sec ±1.75% (84 runs sampled)

here's the PR: fastify-plugin-ts/#2

So from the benchmarks, i'd say there's minimal improvement for all the extra complexity?

@Fdawgs isn't that the other way around? if TS doesn't cause perf regression, it should be the way to go due to the increased simplicity of the maintenance?

due to the increased simplicity of the maintenance?

Uh, what?

@jsumners

You don't need to remember to manually sync types, they are always perfectly accurate;
You catch more stuff at compilation/linting time

Assuming that TS types already exist and need to be maintained, writing in TS is less effort than writing just the types by hand

Even on risking to sound too harsh: I dont see any performance gain.

@Uzlopak Should there be any?
See the original description: Maintaining types is hard and error-prone. I opened this issue to make an experiment if a rewrite of this module in TS has any performance penalty

To be honest:
There shouldnt be any performance difference because the generated code should be close to our current code. So to be honest when i reviewed this PR few months ago, I double checked the code for being congruent to the code base.
But regarding the aspect of introducing typescript... I would prefer javascript. When we use typescript we need also to review if the generated code is still what we expect and dont introduce a regression by simply updating typescript.
To achieve this we need to check in the generated files. So if typescript modifies those files we can track it and see what effectively got changed.
And that is some overhead.

See the original description: Maintaining types is hard and error-prone. I opened this issue to make an experiment if a rewrite of this module in TS has any performance penalty

My opinion is that it is unnecessary effort.  It's primarily documentation and house keeping updates. This module very rarely needs a code change, and that's usually just to bump some version checks. I don't see any concrete reason to complicate the development of this module simply because someone likes TypeScript instead of JavaScript.

@jsumners

You don't need to remember to manually sync types, they are always perfectly accurate;
You catch more stuff at compilation/linting time

Assuming that TS types already exist and need to be maintained, writing in TS is less effort than writing just the types by hand

Maybe those things are true. But I doubt the effort being described is much of anything given my above statement.

To put my position plainly: I have no intention of ever learning TypeScript unless someone pays me to do it as my full time job. If that ever does happen, two things will be true: 1. I will still not be interested in dealing with TypeScript in my personal time (which is what I use for my OSS contributions) and 2. I would be actively looking for new employment that does not use the language.

To achieve this we need to check in the generated files. So if typescript modifies those files we can track it and see what effectively got changed.

To be fair, if you do not target to old version of ECMAScript. Most of the code would remain the same after compile.
It just serve like stripping the types.

This module very rarely needs a code change, and that's usually just to bump some version checks.

Yes, most of the plugins are on the same situation.
If anyone would like to start the refactoring, it should be start with the core first.
There is not much to do on plugins because

Plugins is always constraints by the core
Plugins is mostly few lines of codes (not much difference in JS and TS)

One can argue it is better to start with the simple first, but once the core is refactored.
It highly possible we need to update all plugins again.

I would rather not refactor the core to typescript


look for a better make system

for big projects with a lot of different build options and different build directory for the current working file

have done some commits on this topic, nearly done.
Options:

Look for Dispatch.vim
Add function, which gets the correct build file based on the current file, if you call a update function with some certain key

Done.


AttributeError: 'function' object has no attribute 'completion'

Confirm this is an issue with the Python library and not an underlying OpenAI API

[X] This is an issue with the Python library

Describe the bug

client = OpenAI(api_key = "API-KEY")
chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "Say this is a test",
        }
    ],
    model="gpt-3.5-turbo",
)

Gives an Error on Colab
`---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
 in <cell line: 1>()
----> 1 chat_completion = client.chat.completions.create(
2     messages=[
3         {
4             "role": "user",
5             "content": "Say this is a test",
AttributeError: 'function' object has no attribute 'completions'
`
Version: openai 1.12.0
To Reproduce
client = OpenAI(api_key = "API-KEY")
chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "Say this is a test",
        }
    ],
    model="gpt-3.5-turbo",
)

Code snippets
Already Attached

OS
linux
Python version
Python 3.11
Library version
openai v1.12.0

i have same issue now
might be define class some error
i solved
direct import module
import openai

messages_pompt = []
messages_pompt += [{"role":"user", "content": promt}]
response = openai.chat.completions.create(
        messages = messages_pompt,
        model="gpt-3.5-turbo-0613",
        temperature=0,
        max_tokens=500,
    )


⚠ Jenkins Plugins Artifactory has degraded performance

In 591f0d5, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1349 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 4994fd4 after 12 minutes.


Error: Building package tiff:x64-windows failed with: BUILD_FAILED

Package: tiff:x64-windows
Vcpkg version: 2019.09.12-nohash
Error: Building package tiff:x64-windows failed with: BUILD_FAILED

Hi @Luna19950606, I can't reproduce this issue locally. Can you provide your build log?

Lily Thank you so much for replying me! But I already find a solution. I just mannually downloaded the required installing files and then run the script agian and it worked.

Thanks for posting this issue. This issue has been fixed. So I am closing this issue for now.


Cow: Watch cooperslawyers.com.au

Cow requests the watch of the watch_keyword cooperslawyers\.com\.au. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

cooperslawyers\.com\.au has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


form field issue

I am using ModelForm with TaggableManager field as tags. Now the problem is whenever i use {{ form.tags }} in the template, and if we are editing that form, the value of that field is displayed as [<tagged item 1>, <tagged item 2> ...] instead of comma separated tag names like 'tag1, tag2, ...'. What could be the issue ?

{% for tag in tags %} {{ tag }} {% endfor %} is what you're looking for


Switch Elasticsearch trace id to keywords

In support of future versions of elasticsearch, I think we should add an additional field to hold the lower 64-bits of a trace id, for use in aggregations.
In #1353, we tokenize the traceId string into a 128-bit and a 64-bit id. These tokens are used in aggregations and query. In Elasticsearch 5, we have to choose whether to make fields "text" or "keyword".
The latter is highly advised vs the former when doing equals matching and aggregation. Implicitly, keywords are not broken down, rather, they are used exactly as they are written. This means that when if we traceId to a keyword, you wouldn't be able to look up a 128-bit trace by its 64-bit ID.
I've looked through various options on how to solve this. For example, if we try to tokenize traceId and also use it in aggregations, we'd need to mark it as field data. This isn't good as it has a memory implication in the ES cluster related to the cardinality of trace IDs which could be high. Also, aggregations still need to consider only to the lower 64 bits for now, as otherwise looking up a mixed trace will only return those reported with 64 bit trace ids. If tokenizing is bad for aggregation, we need to find another way to access traceId.lo.
My suggestion is that we write an internal field when a trace id is 128-bit, ex. _traceId_lo. When we aggregate, we use that along with the traceId field. This would cost another network call per query, and that call could be disabled in the future. We could write this field directly, as opposed to via a pipeline task (as that would be presumably more expensive).

cc @openzipkin/elasticsearch

I started working on this and found it became a bit of a mess to implement. In efforts to manually tokenize, we have much more complex queries as we double the aggregations needed to do searching. Moreover, even search by id queries are complex. It would be a more sustainable option to go with how we are doing this today.
If later we get complaints about memory usage or other knock-on effects, we can recommend those sites to keep the transition period between 64 and 128bit ids to a minimum. Once traces are 128-bit, there's no need for any tokenization anymore and at that point, normal keywords would work. Alternatively, such a site could choose to only store 64bit ids, which would have the same effect of not requiring mixed lookups (and by extension tokenization to support them)


fitting discrete distributions

Actually we can use scipy.stats.rv_continuous.fit method to extract the parameters for a theoretical continuous distribution from empirical data, however, it is not implemented for discrete distributions e.g. negative binomial and Poisson... may it be implemented in a near future?

I agree this would be quite nice to have for the discrete distributions in scipy.stats.rv_discrete, and I would be happy to work on a PR if people think it's worthwhile. For a number of the current distributions (e.g. Poisson obviously), there are closed form solutions to the maximum likelihood estimates, others need optimizers / iterative algorithms, e.g. beta-binomial.

@WarrenWeckesser thought you should be included here.
I'd be happy to help review the discrete fit method PRs. Note that there is currently a lot of work in progress on the continuous side of things. gh-11695 adds method of moments, and @swallan has been looking into which distributions have closed form solutions for MLE and MM fits in gh-11782.  Would someone be willing to help review gh-11695?

On Apr 27, 2020, at 8:36 PM, Matt Haberland<EMAIL_ADDRESS>wrote:

@WarrenWeckesser thought you should be included here.
I'd be happy to help review the discrete fit method PRs.

Note some distributions have some fairly complicated procedures and constraints. For example, a binomial distribution with a known success probability but unknown n parameter is non standard and I’m not sure how to handle the case if both p and n are not specified, there is probably a paper somewhere on that case though.
I’m not opposed to the idea but it would be nice to see some research h into which discrete distributions we have that have closed form estimators, which require a root finding, and which are (currently) unknown.
IIRC there are currently 14 or so discrete distributions so shouldn’t be too excessive to research.
If we agree to support we’d want to make sure we could support the list we have for discrete.
If others agree that support for discrete distribution fits should be supported then I’d recommend open a tracking issue with distributions listed and pursue one distribution per PR, e.g. one distribution at a time.

Note that there is currently a lot of work in progress on the continuous side of things. gh-11695 adds method of moments, and @swallan has been looking into which distributions have closed form solutions for MLE and MM fits in gh-11782.

@mdhaber

Would someone be willing to help review gh-11695?

If I have time this weekend on Sunday I’ll take another look at 11695.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

discrete distributions taken from here:
https://github.com/scipy/scipy/blob/master/scipy/stats/_distr_params.py#L115

dist name
mle
mme

bernoulli
sample mean
.

betabinom

mme

binom

n + p only p only n*

boltzmann
see note
.

dlaplace
mle^2
.

geom
mle
.

hypergeom
.
.

logser

.

nbinom
mle^1
.

planck

.

poisson
mle

randint
mle for upper bound
.

skellam
mle^3
.

zipf

.

yulesimon
mle
only if >1

note there are several proposals for the 'only n' case.
^1 note the UMVUE dominates the MLE, and MLE is biased, and is not the MME
^2 MLE \hat{p}= \frac{T}{1+\sqrt{1+T}} where T=\sum_{i=1}^n | x_i| eqn (32) in linked paper and immediately afterwards they state that MLE = MME and they also give a distributional result.
^3 the MLE for Skellam is a special case of the root finding problem considered in section 3.2 of that paper, corresponds to COM-Poisson with the \nu_i =1 for i =1,2

Boltzmann note: Boltzmann is a truncated geometric distribution. An MLE for the probability of a geometric exists, so incorporation of a truncation point should be straightfoward. Estimation of truncation point is not known (to me) but also straightforward to work out. Joint estimation of truncation point and probability would need to be worked out. Unclear to me at this time if there are technical difficulties in this joint case.
Note: the remaining distributions: logseries, hypergeometric, planck, zipf, may exist but I was unable to find references.
Existence of estimators in discrete case is better than I expected but note that if a fit method is added this could preclude inclusion of some distributions. For example, there is an open PR with a poisson-binomial distribution, AFAIK there is no known MLE for poisson-binomial.
After doing the research I've gone from a -0.0 on this to a +0.3 on adding the fit. I'd recommend to open a discussion thread on the topic on the  scipy-dev list. You'll reach more people there than here and get better opinions than mine. :)

Hey @rlucas7 / @mdhaber / @jmmanley -  I assume there is no functionality to use ".fit" for fitting data to discrete distributions yet. Is there any other alternative that's available?

There is not. If you send data and a distribution, i might be able to throw something together that uses one of the global optimizers, though.

In the meantime:
import numpy as np
from scipy.optimize import brute, differential_evolution
from scipy.stats import binom
import warnings

def func(free_params, *args):
    dist, x = args
    # negative log-likelihood function
    a = -np.log(dist.pmf(x, *free_params)).sum()
    if np.isnan(a):
        a = np.inf
    return a

def fit_discrete(dist, x, bounds, optimizer=brute):
    with warnings.catch_warnings():
        warnings.simplefilter("ignore")
        return optimizer(func, bounds, args=(dist, x))

n, p = 5, 0.4
x = binom.rvs(n, p, size=10000)

bounds = [(0, 100), (0, 1)]
u2, s2 = fit_discrete(binom, x, bounds)
res = fit_discrete(binom, x, bounds, optimizer=differential_evolution)
print(u2, s2)
print(res.x)

@mdhaber - unfortunately, I cannot share the data. But, I'll try to run the above code and check how it works.
Thanks again!

I support the idea of a generic fitting approach.
What I did in the past for my own discret custom scipy distributions is to use a differential_evolution minimization on the negative log likelihood function as the most generic case (just the sum of the log of the pmf). That is basically @mdhaber's approach.
However, in some cases the analytical log likelihood function can be optimized quite a bit for a significant speedup. That may be achieved by applying some math and clever numpy usage.
Take Poisson for example:
logL = sum(log(mu**k / k! * exp(-mu))) = sum( k*log(mu) - log(k!)) -N*mu
So instead of computing multiple powers and divisions using poisson.pmf() to compute the likelihood of the data we can compute it much quicker:
import math
import numpy as np
from scipy.special import gammaln, gamma

k = np.random.randint(100, size=1000)
mu = 50.

print(sum([math.log(mu**k_ / math.factorial(k_) * math.exp(-mu)) for k_ in k]))
print(sum(np.log(mu**k / gamma(k+1) * math.exp(-mu))))
print(sum(k*math.log(mu) - gammaln(k+1)) - len(k)*mu)
# --> prints three times the same value as expected

# And now let's check the timing:
%timeit sum([math.log(mu**k_ / math.factorial(k_) * math.exp(-mu)) for k_ in k])
%timeit sum(np.log(mu**k / gamma(k+1) * math.exp(-mu)))
%timeit sum(k*math.log(mu) - gammaln(k+1)) - len(k)*mu

As expected the last form needs least computational ressources due to lower number of operations:
7.2 ms ± 74.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
224 µs ± 6.11 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
140 µs ± 3.03 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

Obviously the MLE for Poisson is even faster as it is just computing the mean of the data ones.
In many other cases the analytical MLE exists and therefore should definetively be provided as well if possible!
But for fair comparisons of fit results of different distributions you may want to keep the fitting functionality even when an analytical solution exists.
In general, for any fitting of complex distributions the bounds of the parameters need to be specified and be checked via the _argcheck method.

Cool. Thanks @casibus!
The other update here is the possibility of adding biteopt to SciPy (gh-14750, gh-15298), which could work well for integer constrained variables. I planned to come back to this topic as soon as we get "official" support for MIP in one of the global optimizers.

To be fair, I just compared sum(np.log(poisson.pmf(k, mu)) which I forgot earlier and it is actually not too slow:
7.3 ms ± 418 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) - raw python
300 µs ± 9.88 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) - sum(log(poisson.pmf())
239 µs ± 18.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) - first numpy simplification
145 µs ± 1.71 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each) - further simplification + numpy

Mixed-Integer Programming sounds like a good idea!! Looking forward.

My suggestion here would be to only support fit for fixed support.
Those are the most common use cases for most discrete distributions.
For example I cannot remember a usecase where standard count distributions don't start at zero, unless they are left truncated distributions. Even then, the truncation point is in almost all cases assumed to be known.
Similarly, the number of trials in binom and betabinom is usually known from the experimental design.

I just submitted gh-15389 to add integrality constraints to brute. Combined with the iterative refinement idea above, it works really well for fitting discrete (and continuous) distributions to data. (Remember that most distributions have only a few parameters, so the curse of dimensionality doesn't hit very hard here, and with the iterative refinement idea, we never need brute to have a very fine grid to get accurate results, as long as the initial bounds are reasonable.)
What do you think about a function, scipy.stats.fit(dist, data, shape_bounds, optimizer=None) where:

dist is an rv_continuous or rv_discrete distribution
data is the data to be fit
shape_bounds (name up for discussion) are the lower and upper bounds for each shape parameter (probably should add support for loc and scale somehow)
optimizer (optional) uses the iterative brute idea by default or accepts another callable that satisfies some prescribed interface, giving the user complete control over the optimization

We'd add information about which shapes must be integral to all the distributions so the user doesn't have to.
The reason I'd rather create a new function than add a method to the rv_discrete class is that it would also be useful to have this function when rv_continuous.fit is having trouble, but it would be a bit of a headache to work this into rv_continuous.fit. In a SciPy 2.0, we can work this into the fit methods of overhauled rv_continuous and rv_discrete distributions.

Cool! I like the suggestion and I think it is a great idea!
I would rather call the function something like fit_dist as in the context of a statistical package you could fit many other things as well (like statistical models).
Also the proposed "fine graining" may lead to problems whenever the likelihood function is not concave (or the negative likehood convex). In other words if the likelihood landscape is like a mountain range: Whenever the global maximum is one small spiky local optimum that lies in between the grid points it will often not be found. In practice, however, it may not an issue with the standard distributions (maybe negbin and few others) but should be mentioned in the docstring. In such cases the user may just switch to another optimizer.
I would also allow to pass the workers and the Ns argument from fit_dist to the optimizer via **kwds as that can make a huge difference:
def fit_discrete(
        dist: Optional[scipy.stats.rv_discrete, scipy.stats.rv_continuous],
        x: Iterable[float],
        bounds: List[Tuple],
        optimizer: Callable = brute,
        **kwds,
):
        with warnings.catch_warnings():
            warnings.simplefilter("ignore")
            return optimizer(func, bounds, args=(dist, x), **kwds )

Certainly this optimizer will not work for all problems. This would just be the default because brute will likely be the first to support integrality constraints.
We can discuss whether to accept kwds and pass them to the optimizer, but I'd suggest that we just not deal with that. The user will likely need to wrap the optimizer in a very simple function (e.g. lambda) to get the format of the output to match the interface ( e.g. brute doesn't return an OptimizeResult, others do), so they can take that opportunity to pass other arguments into the optimizer, too.

See #15392 for inclusion of integrality constraints into differential_evolution.

so I think I can draft fit/fit_dist this weekend.

Looking forward to it! Being able to fit discrete distributions will be a very useful feature! I am +1 on a function to do it. But, in long term, it will be nice to also have a .fit method.

Would be a very useful feature. Thanks for the ping, now I got the integrality PRs 😅

I checked the suitability of adding integrality constraints to direct by wrapping it to adjust bounds and round decision variables (as we did for differential_evolution). The results are OK, but perhaps the algorithm is not well-suited to this, because with the integrality constraints it's quite a bit slower than differential_evolution and literature brute.

Use this wrapper to add integrality constraints to a (continuous variable) global optimizer:
def _integral_wrapper(optimizer):
def wrapped_optimizer(func, bounds, *args, integrality=None, **kwds):
if not np.any(integrality):
return optimizer(func, bounds, *args, **kwds)
    lb, ub = np.array(bounds, copy=True).T
    n_vars = lb.size
    integrality = np.broadcast_to(integrality, (n_vars,)).astype(bool)
    lb = np.ceil(lb)
    ub = np.floor(ub)
    if not (lb[integrality] <= ub[integrality]).all():
        message = ("No integers exist within the bounds of an integral "
                   "decision variable.")
        raise ValueError(message)
    nlb = np.nextafter(lb[integrality] - 0.5, np.inf)
    nub = np.nextafter(ub[integrality] + 0.5, -np.inf)
    lb[integrality] = nlb
    ub[integrality] = nub
    bounds = np.asarray([lb, ub]).T.tolist()

    def wrapped_func(x, *args):
        x = x.copy()
        x[integrality] = np.round(x[integrality])
        return func(x, *args)

    res = optimizer(wrapped_func, bounds, *args, **kwds)
    res.x[integrality] = np.round(res.x[integrality])
    return res
return wrapped_optimizer

Here are the results of the test above with optimizer = _integral_wrapper(direct).

I checked the suitability of adding integrality constraints to direct (gh-14300) by wrapping it to adjust bounds and round decision variables (as we did for differential_evolution). The results are OK, but perhaps the algorithm is not well-suited to this, because with the integrality constraints it's quite a bit slower than differential_evolution and literature brute.
Use this wrapper to add integrality constraints to a (continuous variable) global optimizer:
def _integral_wrapper(optimizer): def wrapped_optimizer(func, bounds, *args, integrality=None, **kwds): if not np.any(integrality): return optimizer(func, bounds, *args, **kwds)
    lb, ub = np.array(bounds, copy=True).T
    n_vars = lb.size
    integrality = np.broadcast_to(integrality, (n_vars,)).astype(bool)
    lb = np.ceil(lb)
    ub = np.floor(ub)
    if not (lb[integrality] <= ub[integrality]).all():
        message = ("No integers exist within the bounds of an integral "
                   "decision variable.")
        raise ValueError(message)
    nlb = np.nextafter(lb[integrality] - 0.5, np.inf)
    nub = np.nextafter(ub[integrality] + 0.5, -np.inf)
    lb[integrality] = nlb
    ub[integrality] = nub
    bounds = np.asarray([lb, ub]).T.tolist()

    def wrapped_func(x, *args):
        x = x.copy()
        x[integrality] = np.round(x[integrality])
        return func(x, *args)

    res = optimizer(wrapped_func, bounds, *args, **kwds)
    res.x[integrality] = np.round(res.x[integrality])
    return res
return wrapped_optimizer

Here are the results of the test above with optimizer = _integral_wrapper(direct).

Nice. I guess DIRECT takes longer because of the very tight default tolerances. Could be incoroporated into DIRECT in a follow-up PR.

In the meantime:
import numpy as np
from scipy.optimize import brute, differential_evolution
from scipy.stats import binom
import warnings

def func(free_params, *args):
    dist, x = args
    # negative log-likelihood function
    ll = -np.log(dist.pmf(x, *free_params)).sum()
    if np.isnan(ll):  # occurs when x is outside of support
        ll = np.inf   # we don't want that
    return ll

def fit_discrete(dist, x, bounds, optimizer=brute):
    with warnings.catch_warnings():
        warnings.simplefilter("ignore")
        return optimizer(func, bounds, args=(dist, x))

n, p = 5, 0.4
x = binom.rvs(n, p, size=10000)

bounds = [(0, 100), (0, 1)]
u2, s2 = fit_discrete(binom, x, bounds)
res = fit_discrete(binom, x, bounds, optimizer=differential_evolution)
print(u2, s2)
print(res.x)

5.000011549883961 0.3978198921753501
[5.01158844 0.39695459]

I am curious how well something so simple works, so if you try it out, let me know how it goes.

Hi everybody,
I've been playing around with the fitting of discrete distributions in my code. Since I am required to use scipy's version <1.8.x because another dependency, I am using the code similar to the one quoted before to fit a set of discrete distributions.
I tried to use this code to fit discrete distribution with 1.9.1 version of scipy and the fitted parameters do not converge.
I also tried to use this same code to fit discrete distribution with the most recent version of scipy, and the same thing happens:
In [...]: print(u2, s2); print(res.x)
105.0 0.01906476201195455
[12.28294017  0.5646521 ]

Since I am really not well versed in scipy.optimize module, does anybody have any idea why is this the case? Why does the new version of scipy won't converge and the one before scipy.stats.fit was added converges to pretty accurate values?
Thank you!

Can you share the code that reproduces the issue?

Unfortunately, I cannot share the code I am using.
I can maybe cook another example, but the code snippet at the beginning of my question above gives these strange values by using the version 1.7.3 of scipy.
scipy.stats.fit works great.

binom.pmf changed and now seems to return inf when evaluated at non-integral n.
I added  free_params[0] = np.round(free_params[0]) into func and it works (but of course returns non-integral n, which you'll need to round).
I'll fix binom.

Thank you for the clarification!
It really does work now.


Add handleCompletePromise helper function

We had some code repetition around handling a completed durable promise. The repetition was fine, how ever this pattern will come to callbacks and tasks and we will have it in atleast 4 more places, having to write that code that many times is error prone and verbose.
This change also fixes a bug made evident by this helper funciton where we were returning the value computed by the function directly instead of the value stored in the completed durable promise.

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

Project coverage is 81.09%. Comparing base (86725f3) to head (f4e5d84).
Report is 1 commits behind head on main.

Files with missing lines
Patch %
Lines

lib/core/promises/types.ts
84.61%
2 Missing :warning:

lib/resonate.ts
83.33%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #143      +/-   ##
==========================================
+ Coverage   79.94%   81.09%   +1.15%
==========================================
  Files          17       17
  Lines        1107     1095      -12
  Branches      300      314      +14
==========================================
+ Hits          885      888       +3
+ Misses        222      195      -27
- Partials        0       12      +12

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


feat(bspwm): Add support for psuedo tiled nodes

With this addition, adding
label-psuedotiled = P
will display P whenever a bspwm node is set to psuedo-tiled (the default keybind is Super+Shift+T).
Should be a trivial addition, but I compiled & tested on my computer nevertheless.
If approved, I'll edit the wiki to include the option.

I misspelled "psuedo". Correcting that now. I'll close this one.


createVectorIndex  has unwanted restrictions on the source model name

This is on the options for create index
      @Nullable
          @Size(min = 1, max = 48)
          @Pattern(regexp = "[a-zA-Z][a-zA-Z0-9_]*")
          @Schema(description = "Model name used to generate the embeddings.")
          @JsonInclude(JsonInclude.Include.NON_NULL)
          String sourceModel) {}

Why does it limit the characters and the length ?
it looks like this has been copy - pasted into many places:
        @Size(min = 1, max = 48)
        @Pattern(regexp = "[a-zA-Z][a-zA-Z0-9_]*")

This ticket should also check all the places this is present to see if it should be there.

we can remove it from the sourceModel param, and check other places where this size and reg exp pattern are used . Remove any we obviously know should not be there.


chore(deps): upgrade jenkins-x/jx3-pipeline-catalog to version 3.2.304

from: https://github.com/jenkins-x/jx

/close


[BUG] Action menu does not render properly with shortcuts

Has this bug been raised before?

[X] I have checked "open" AND "closed" issues and this is not a duplicate

Description
After entering "h1" after the "/", if you press backspace to change it to "h2," it doesn't work correctly. The same issue occurs if I enter "heading1" and then backspace to change it to another block; the action menu doesn't render properly.
Steps to Reproduce
No response
Screenshots
https://github.com/user-attachments/assets/1dffe6d0-7ec0-4524-93b1-1025c234322d
Do you want to work on this issue?
Yes
If "yes" to above, please explain how you would technically implement this
No response

Thanks for reporting
It seems it already fixed in https://github.com/Darginec05/Yoopta-Editor/issues/362

I'll release patch version today

Fixed in v4.9.1
Reopen issue If bug still appears


🐞 After upgrading to 4.2.2 I can no longer render encounter-table

Check for existing bug reports before submitting.

[X] I searched for existing Bug Reports and found no similar reports.

Expected Behavior
A block starting with ```encounter-table and filled with enemies following the recommended format should render into an actual encounter table.
Current behaviour
The tables stop rendering. I just see the markup (minus the leading ```)
Reproduction
I just upgraded to the versions listed below and now things don't work. I tried disabling every single plugin, including this one and then reenabling it but the encounter table markdown no longer works.
Which Operating Systems are you using?

[ ] Android
[ ] iPhone/iPad
[ ] Linux
[ ] macOS
[X] Windows

Obsidian Version Check
1.6.3
Plugin Version
4.2.2
Confirmation

[X] I have disabled all other plugins and the issue still persists.

Possible solution
No response

Apologies, I just realized I think this issue should actually be created against the initiative-tracker codebase.

User error, please disregard this issue.


How to send a Cairo 1.0 class  transactions

With tag v0.5.0 it is possible to send Cairo 0 class transactions successfully, as soon as the account is upgraded to Cairo 1, the transaction fails!

Is your account version V1 or V2?
It should work if you set the account version to 2, but if your account is actually V1 let me know.
For example, the following transaction was generated successfully by starknet.go, and uses a V2 account.

I understand, but as soon as my wallet is upgraded to cairo1 the code below fails to execute, if I keep my account unupgraded the cario version is 0 and the code succeeds. Is there something wrong with my code?
       // maxfee, err := utils.HexToFelt("0x9184e72a000")
	invokeTx := rpc.InvokeTxnV1{
		// MaxFee:        maxfee,
		MaxFee:        new(felt.Felt).SetUint64(0),
		Version:       rpc.TransactionV1,
		Nonce:         nonce,
		Type:          rpc.TransactionType_Invoke,
		SenderAddress: s.account.AccountAddress,
	}

	// Build the Calldata
	if invokeTx.Calldata, err = s.account.FmtCalldata(fnCalls); err != nil {
		panic(err.Error())
	}

	// Sign the transaction
	if err = s.account.SignInvokeTransaction(ctx, &invokeTx); err != nil {
		panic(err.Error())
	}

        // 1.setting account_cairo_version = 2 and my account Class Version is actually Cairo 2 ; output err: Invalid params
        // 2.setting account_cairo_version = 0 and my account Class Version is actually Cairo 0 ; success
	fees, err := s.account.EstimateFee(ctx, []rpc.BroadcastTxn{invokeTx}, []rpc.SimulationFlag{}, latestBlock)
	if err != nil {
		panic(err.Error())  //output err: Invalid params  (when Class Version = Cairo 2)
	}


Track and expose via JMX detailed network stats

Add tracking of bytes and messages received and sent through HTTP and PostgreSQL wire protocol, with the use of Inbound/Outbound channel adapters.

Modify Connections MBean to MXBean to expose this detailed information (previously only open & total connections where exposed) for all protocols (HTTP, Psql, Transport).

Add connections['transport']['total'] column to the sys.nodes` table.

Use ConnectionStats throughout the stack and also as the composite object to return the stats in JMX.

I'm planning to add a query to sys.nodes in https://github.com/crate/crate-qa to verify that the streaming works correctly.


Feature: Support for comment syntax?

Will there be support for comments on the .md files?
For example, I've got quite a lot of stuff listed on index.md which includes individual .md files.  However, I want to disable a lot of the stuff listed without having to delete it.  Sure I could remove them then roll the file back, but I'm wondering if there will be proper support for comments?
And yeah I tried compiling with these.
<!-- comments here -->
[comment] : # (comments here)

Not sure what you mean by proper support for comments? <!-- comment here --> seems to work fine for me. What is [comment] : # (comments here)?

Sorry, I was googling for the comment syntax markdown and found that that latter format was accepted for some compilers.
Regarding my issue: my bad  .I was trying to comment out an entire list item (including the bullet point), which produced errors.
<!-- - list item --> doesn't work.
- <!-- list item --> works.
I couldn't find any mention of comments on the Slate Syntax page so I thought it wasn't implemented somehow.  Maybe it should be added?  Eitherway, this ticket can be closed.

Ah, gotcha, yea, we don't actually have our own Markdown processor, we use Redcarpet.


regarding installation of framework

the developer guide for the installation of the framework is confusing so if you could provide a document with step by step procedure on how to install the framework. i am having issues regarding installation of the mininet.

Hi Dhanz,
For the installation of mininet I highly recomend following their own guide to install as it is kept upto date.
http://mininet.org/download/
This is also the case if you want to install ONOS. Follow their developer's guide. Though I only recomend working from versions between 1.08-1.11 as these have been tested and I am aware of some architectual changes in ONOS which might affect this.


Link in config file

hi there, just a minor thing.
The link you provide in the constructionwand-client.toml file (where to look up the key codes) doesn't exist anymore.
I suppose this is where you want to go:  https://www.glfw.org/docs/latest/group__keys.html
Nice mod, btw... cheers!
Edit: I just saw I'm not playing with the latest version. Sorry if this is alreay fixed.

I have just tested the link from the config file and it works: https://www.glfw.org/docs/3.3/group__keys.html
https://github.com/Theta-Dev/ConstructionWand/blob/aeb0e32af4454bd2b30620bdce156080d5a8edfa/src/main/java/thetadev/constructionwand/basics/ConfigClient.java#L22
Maybe there was a temporary issue with the site or something.


ignore_for_block, ignore_for_class

It would be nice to have something like ignore_for_class: unused_element, where all unused element within the class (or block like an if or a method) are not linted.
My use case is that we are creating a builder on abstract classes that all properties are in the fake constructor for the builder to read and generate the final class.
The problem it is that generates lots of unused_element lints and suppressing the whole file is not a good option because there are methods there that should have the lints on.

We may also considering adding an 'ignore' annotation, which would allow us to use scoping rules a bit more (statement level ignores, method level, class level, library level, ...).

We can't currently use an annotation at the statement level, which means that it wouldn't work for blocks [1], but if we had the annotation then the need for ignore_for_class would be subsumed by it.
[1] There's been some discussion, but I haven't seen a concrete proposal for allowing annotations anywhere that they aren't currently allowed.


poly(A) tail shortening vs deadenylation

Hi,
I'd like to create a new ontology term for ncRNA poly(A) deadenylation, but noticed that the analogous term names for mRNAs refer to poly(A) tail shortening with deadenylation terms as related synonyms.  See, for example, GO:0000289, nuclear transcribed mRNA, poly(A) tail shortening.
Note that GO:0000289 also has an is_a child term of:
GO:0098806 deadenylation involved in gene silencing by miRNA
I think it might be easier for curators and users to search for and find a 'deadenylation' term, similar to what we have, say, for things like acetylation/deacetyltation or methylation/demethylation, but wanted to make sure the original meaning of GO:0000289 was not meant to include processes other than deadenylation.  If so, maybe we should make separate BP terms?
@krchristie what do you think?
Thanks,
--Kimberly

Hi @vanaukenk
I think that the shortening names might be a little better than the deadenylation names since it better describes what is happening, i.e. that the tail is shortened, while deadenylation might imply that it is completely gone. So, I'd probably go with the shortening names with the deadenylation names as some sort of synonym.
-Karen

Thanks, @krchristie
For the new term that I'm adding, I think I will go with the deadenylation term, though, as I believe it describes the process for the PARN enzyme (for which the term is needed) most accurately.
I still find this a confusing area of the literature/ontology, though, as sometimes it seems that authors use deadenylation synonymously with shortening and/or trimming.

"Deadenylation" appears to be the more common nomenclature: 844 hits in PubMed versus 189 for "poly(A) tail shortening", so I think curators are more likely to search for deadenylation terms.
I don't think shortening includes anything other than deadenylation, e.g. http://genesdev.cshlp.org/content/21/23/3135.full states "The poly(A) tail-shortening process, referred to as deadenylation, is the first and rate-limiting step, and is also the most efficient step in controlling mRNA decay (Decker and Parker 1993)." and PMID:21957022 says "average tail length results from the balance between polyadenylation and deadenylation."
As long as all terms relating to this have the synonyms, then either should be fine. I created the miRNA related one and chose to use deadenylation as this was how it's referred to in the literature.
Rachael.

Sorry Kimberly @vanaukenk, didn't see you had closed this as have had the tab open for a day!

@rachhuntley - no worries; I appreciate your comments.
One possibility might be to create parent RNA deadenylation terms and then make specific child terms to refer to the different contexts of deadenylation, for example the trimming catalyzed by the Pan2/Pan3 complex or the complete, or nearly complete, deadenylation catalyzed by the CCR4-Not complex.  These terms might then be siblings to the miRNA-related term that you created, GO:0098806, deadenylation involved in gene silencing by miRNA.

I also think "deadenylation" would be better in the primary term names as the most common biological usage. Issue came up for PomBase this week too.
https://github.com/pombase/fypo/issues/2996#issuecomment-293919255
Its odd that the current synonyms are related rather than exact.

I don't think we should create this term bow.
We would annotate to
deadenylase + specific process

checnged 'closed type'


Add responsive audio width to player

Adds ability to set width and height for audio player along with 100% width... Addressing issue #283. Thanks for your work on this!

FYI: next time you do a commit, make sure to work on the files in the /src/ directory, not the /build/ folder.


"Policy members must be of the form ":" error returned when calling "SetIAmPolicy"

Hi,
When I try using the service.projects().setIamPolicy(...) function  I get the error above and I haven't been able to find any other resources that could help.
This is my first time leaving a bug report so please be excuse me if I forget any relevant information, I'm trying to give as many details as possible that doesn't disclose any sensitive information.
Environment details

OS: macOS Mojave
Python version: 3.7.4
pip version: pip 19.3.1
google-api-python-client version: 1.7.4

I have the same code as in the Google Cloud documentation example for this function (
code here) except I of course have the resource set to the value that I need and I am filling out the set_iam_policy_request_body.
The structure of my set_iam_policy_request_body is of the following form:
set_iam_policy_request_body ={
    "policy":{
        "bindings":[{
            "role":"roles/resourcemanager.organizationAdmin",
<EMAIL_ADDRESS>
        }],
        "etag":"BwWXuH/Zgpc=",
        "version":1
    }
}

Executing the request gives me this full error:
---------------------------------------------------------------------------
HttpError                                 Traceback (most recent call last)
<ipython-input-72-b287313a569d> in <module>
     18 request = service.projects().setIamPolicy(resource=resource, body=
     19                                                set_iam_policy_request_body)
---> 20 response = request.execute()
     21 print(response)

~/.local/share/virtualenvs/local_dev-a5dmjvDN/lib/python3.7/site-packages/googleapiclient/_helpers.py in positional_wrapper(*args, **kwargs)
    128                 elif positional_parameters_enforcement == POSITIONAL_WARNING:
    129                     logger.warning(message)
--> 130             return wrapped(*args, **kwargs)
    131         return positional_wrapper
    132

~/.local/share/virtualenvs/local_dev-a5dmjvDN/lib/python3.7/site-packages/googleapiclient/http.py in execute(self, http, num_retries)
    840       callback(resp)
    841     if resp.status >= 300:
--> 842       raise HttpError(resp, content, uri=self.uri)
    843     return self.postproc(resp, content)
    844

HttpError: <HttpError 400 when requesting https://cloudresourcemanager.googleapis.com/v1/projects/resource:setIamPolicy?alt=json returned "Policy members must be of the form "<type>:<value>".">

When I run getIAMPolicy I get a successful request, and when I run try running the setIamPolicy function in the "Try This API" pane on its documentation page (with the same information of course), I don't get a 400 error.
Any help on this issue would be appreciated.
Thanks!

Hi @qxh5696.
It looks like you need to specify a type for each member.
See the JSON example below (from https://cloud.google.com/resource-manager/reference/rest/Shared.Types/Policy)
{
  "bindings": [
    {
      "role": "roles/resourcemanager.organizationAdmin",
      "members": [
<EMAIL_ADDRESS><EMAIL_ADDRESS>        "domain:google.com",
<EMAIL_ADDRESS>      ]
    },
    {
      "role": "roles/resourcemanager.organizationViewer",
      "members"<EMAIL_ADDRESS>      "condition": {
        "title": "expirable access",
        "description": "Does not grant access after Sep 2020",
        "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
      }
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}


Week11/property status enums

Codecov Report

Merging #100 (81580a4) into master (582a509) will increase coverage by 0.17%.
The diff coverage is 68.51%.

@@             Coverage Diff              @@
##             master     #100      +/-   ##
============================================
+ Coverage     60.04%   60.21%   +0.17%
- Complexity      543      549       +6
============================================
  Files           110      112       +2
  Lines          1987     2031      +44
  Branches        238      241       +3
============================================
+ Hits           1193     1223      +30
- Misses          707      720      +13
- Partials         87       88       +1

Impacted Files
Coverage Δ

...in/java/seedu/condonery/commons/core/Messages.java
0.00% <ø> (ø)

...ava/seedu/condonery/model/util/SampleDataUtil.java
15.00% <0.00%> (ø)

src/main/java/seedu/condonery/ui/PropertyCard.java
0.00% <0.00%> (ø)

...gic/parser/property/EditPropertyCommandParser.java
70.96% <14.28%> (-17.04%)
:arrow_down:

...y/logic/commands/property/EditPropertyCommand.java
95.71% <100.00%> (+0.40%)
:arrow_up:

...n/java/seedu/condonery/logic/parser/CliSyntax.java
88.88% <100.00%> (+1.38%)
:arrow_up:

.../java/seedu/condonery/logic/parser/ParserUtil.java
85.71% <100.00%> (+0.86%)
:arrow_up:

...ogic/parser/property/AddPropertyCommandParser.java
88.88% <100.00%> (+2.22%)
:arrow_up:

.../java/seedu/condonery/model/property/Property.java
61.40% <100.00%> (+2.14%)
:arrow_up:

.../seedu/condonery/model/tag/PropertyStatusEnum.java
100.00% <100.00%> (ø)

... and 2 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


[video plugin] add support for custom headers

Hi, I'm using video plugin, but the resource where the video is located needs authentification. I cannot find where to set headers, so It would be nice to have this. Thanks

Dupe of https://github.com/flutter/flutter/issues/16466
There's a pull request outstanding but it hasn't been accepted because of question on iOS and a private command.

Yes, so I'll close as duplicate


Notes on data access

Needs checking and extending, but the Getting Started notes now have a section on data access on the LSP system. Not yet ready to merge, the paths are still uncertain.

OK, paths look correct - certainly I see the Twinkles data in /project/shared/data:
[pjm43@jld-lab-pjm43-r150 DMStackClub]$ ls /project/shared/data
COSMOS_catalogs  Twinkles_subset  gaia_dr2  gaia_dr2_1am  hsc

Merging this now.

@drphilmarshall  It looks like there are still typos in the data set path in the markdown cell.


Installation taslk error

I am running spree 3-1-0 (have to)
in Gemfile:
gem 'spree_address_book', github: 'spree-contrib/spree_address_book', branch: 'master'
Running:
bundle exec rails g spree_address_book:install
I get the following error:
/Users/pantoniotti/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/inject_into_file.rb:98:in binread': No such file or directory @ rb_sysopen - /Users/pantoniotti/O2Web/Sources/skedio_site/vendor/assets/javascripts/spree/frontend/all.js (Errno::ENOENT)         from /Users/pantoniotti/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/actions/inject_into_file.rb:98:in replace!'

Seems your script only supports all.js and I have all.js.coffee.
Creating all.js manually fixes the issue


add new ci job for examples to bors

followup on https://github.com/bevyengine/bevy/pull/1826#issuecomment-819874735: adding the new job to Bors

bors r+


Checking if the DownloadManager is released

The ThinDownloadManager needs to be checked if it has already been released.

+1

Thanks @blipinsk


TypeError: Cannot read properties of undefined (reading 'push')

Reproduction
I have used the library to mock the vue router behaviour in my test and followed the steps in readme file, in general everything starts working pretty well, I managed to check the wrapper.router object functions, but when I run the test I got this bug that says Cannot read properties of undefined (reading 'push') in this line of my code
router.push('/dashboard').
Steps to reproduce the behavior

run the test

Additional information

You are probably missing some of the installation steps but I cannot check with a boiled down reproduction


Update ember-mocha and cleanup test

This project uses semver, please check the scope of this pr:

[x] #patch# - backwards-compatible bug fix
[ ] #minor# - adding functionality in a backwards-compatible manner
[ ] #major# - incompatible API change

CHANGELOG

Upgraded ember-cli-mocha which pulls in a newer ember-mocha and deprecates describeComponent (PR coming in the next couple days to refactor our tests accordingly)
Fixed CssMixin test to test against a real component defined in the dummy app so that we catch when the toString() format changes.

Changes Unknown when pulling d599ae39a99bc7af177338d5e5541edee8197b37 on job13er:add-frost-component into ** on ciena-frost:master**.

Changes Unknown when pulling d599ae39a99bc7af177338d5e5541edee8197b37 on job13er:add-frost-component into ** on ciena-frost:master**.

Approved - thanks!


Release Google.Cloud.Config.V1 version 1.3.0

Changes in this release:
New features

Infrastructure Manager supports the deployment of infrastructure from Terraform configurations in a private Git repository (commit 647e24d)
Infrastructure Manager can validate and enforce quota limits, preventing infrastructure that exceeds quota limits from being deployed (commit 647e24d)
Infrastructure manager supports the following versions of Terraform when creating a deployment: Terraform version 1.2.3, 1.3.10, 1.4.7, 1.5.7 (commit 647e24d)

Documentation improvements

A comment for field page_size in message .google.cloud.config.v1.ListDeploymentsRequest is changed (commit 647e24d)
A comment for field page_size in message .google.cloud.config.v1.ListRevisionsRequest is changed (commit 647e24d)
A comment for field page_size in message .google.cloud.config.v1.ListResourcesRequest is changed (commit 647e24d)
A comment for field service_account in message .google.cloud.config.v1.Preview is changed (commit 647e24d)
A comment for field page_size in message .google.cloud.config.v1.ListPreviewsRequest is changed (commit 647e24d)

Created release for Google.Cloud.Config.V1-1.3.0


Icon Configuration for Languages

This patch allows users to specify icons for languages selectors displayed in the subtitle editor. Users have to specify the selectable languages anyway and the algorithm used before guessed wrong for popular languages like English.
If no icon is specified for a language, the selector will simply omit the icon and display just the label.
This fixes #825

One more comment: Since the "icons" can now be very long, it might make sense to update the icon css a bit, although I hope we can trust people who are allowed to set the config to choose sensible values :)

it might make sense to update the icon css a bit,

I kind of feel like saying that if people want to be stupid, let them be stupid ;-)
But you were thinking about something like overflow: hidden?

it might make sense to update the icon css a bit,

I kind of feel like saying that if people want to be stupid, let them be stupid ;-) But you were thinking about something like overflow: hidden?

Yes, thinking about exactly that. Wouldn't spent any major on time this though if overflow: hidden for some reason does not work as expected or is not enough. Not like admins will intentionally configure the editor to look terrible, right?

Updated the style. If you now try adding hundreds of flags, you will end up with something like this:


can't get Qubes (debian) VM to boot

guest-debian-8.txt
guest-debian-8.txt
boot log of a newly downloaded, vanilla d8 template updated to include everything in jessie 'stable'.  Full log attached. Shuts down very quickly after being turned on, kernel panic:
(Sidenote: fedora template had the exact same issue.)
[    0.395074] BUG: unable to handle kernel paging request at ffff87ff95a17dc0
[    0.395083] IP: [] delay_mwaitx+0x4c/0xa0
[    0.395095] PGD 0
[    0.395100] Oops: 0000 [#1] SMP
[    0.395105] Modules linked in:
[    0.395112] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.8.13-coldkernel-grsec-1 #1
[    0.395120] task: ffff8800136beb00 task.stack: ffffc90000e38000
[    0.395125] RIP: e030:[]  [] delay_mwaitx+0x4c/0xa0
[    0.395134] RSP: e02b:ffffc90000e3be18  EFLAGS: 00010087
[    0.395138] RAX: ffff87ff95a17dc0 RBX:<PHONE_NUMBER>000001 RCX:<PHONE_NUMBER>000000
[    0.395143] RDX:<PHONE_NUMBER>000000 RSI:<PHONE_NUMBER>0010d1 RDI:<PHONE_NUMBER>02a4e2
[    0.395150] RBP:<PHONE_NUMBER>000002 R08:<PHONE_NUMBER>00009d R09: 000118da0845672d
[    0.395155] R10: 00000000ffffffff R11:<PHONE_NUMBER>000000 R12:<PHONE_NUMBER>00000f
[    0.395160] R13: ffffffff81c17dc0 R14: ffffffff8240e348 R15: eb3fc768391a4828
[    0.395168] FS:<PHONE_NUMBER>000000(0000) GS:ffff880013e00000(0000) knlGS:0000000000000000
[    0.395175] CS:  e033 DS: 0000 ES: 0000 CR0:<PHONE_NUMBER>050033
[    0.395180] CR2: ffff87ff95a17dc0 CR3:<PHONE_NUMBER>0c5000 CR4:<PHONE_NUMBER>040660
[    0.395186] Stack:
[    0.395189]<PHONE_NUMBER>000001 ffffc90000e3bea7<PHONE_NUMBER>001000<PHONE_NUMBER>0010d1
[    0.395200]  ffffffff81497e35 ffffc90000e3bea7 ffffffff814985cc ffffc90000e3bea7
[    0.395208]  0d6ca04707cf02b1<PHONE_NUMBER>0010d1 c20b8d236db4ea02 ffffffff8240e348
[    0.395217] Call Trace:
[    0.395226]  [] ? i8042_wait_write+0x25/0x70
[    0.395232]  [] ? __i8042_command+0x2c/0x1f0
[    0.395238]  [] ? i8042_command+0x24/0x60
[    0.395245]  [] ? i8042_init+0x616/0x719
[    0.395251]  [] ? i8042_toggle_aux+0xf4/0xf4
[    0.395258]  [] ? do_one_initcall+0x4d/0x170
[    0.395265]  [] ? kernel_init_freeable+0x22b/0x32b
[    0.395273]  [] ? kernel_init+0x5/0x118
[    0.395279]  [] ? ret_from_fork+0x1e/0x40
[    0.395284]  [] ? rest_init+0x88/0x88
[    0.395289] Code: 00 41 ba ff ff ff ff 49 89 d1 bd 02 00 00 00 eb 09 49 29 f1 4c 01 cf 49 89 f1 4c 89 e8 65 48 03 05 22 f6 ce 7e 4c 89 d9 4c 89 da <0f> 01 fa 4c 39 d7 4c 89 d3 4c 89 e0 48 0f 46 df 48 89 e9 0f 01
[    0.395342] RIP  [] delay_mwaitx+0x4c/0xa0
[    0.395348]  RSP
[    0.395352] CR2: ffff87ff95a17dc0
[    0.395360] ---[ end trace 126031bb29b82b76 ]---
[    0.395367] Kernel panic - not syncing: grsec: halting the system due to suspicious kernel crash caused by root
[    0.395380] Kernel Offset: disabled

still encountering the same problem, fresh d8 template, ck 4.9.20
guest-debian-8, ck 4.9.20.txt

A common theme I'm seeing with the "unable to handle kernel paging request" error is bad RAM. Try running MemTest on your machine (real, not virtual) to see if it finds anything.

I could give that a go in the next few days, but how likely is that when my PC is otherwise stable as a rock (going months between reboots), and it never boots properly using this kernel? Faulty ram would seem to me to primarily lead to instability, not to a system consistently not booting, but also never crashing.

It's one thing you can test to at least rule it out. Googling "unable to handle kernel paging request" brings up hardware problems (either bad RAM or overclocking) as a common cause. Another one is poorly written code, but considering grsecurity kernels run properly on a variety of hardware, it's doubtful to me that is the problem in this case unless there really is some kind of hardware compatibility problem out there. Which is why you should be listing your hardware specs, the BIOS you're running (ex. are you running your manufacturer's BIOS or something like coreboot?) and whether or not you overclock your machine as well, to see if there really is some kind of consistency out there in terms of hardware incompatibility for anyone else that may be encountering this issue. These logs aren't much to go on.

AMD x4 845
Biostar TA70U3-LSP, most recent bios
Corsair Vengeance LP CML16GX3M2A1600C10
asus gtx950, default (non-nvidia) drivers.
Everything running at stock speeds, voltages.

Thanks. I was curious to see if it was an AMD processor or not. I'd like to know if other people running AMD machines are encountering the same issue. Curious: Does your motherboard support ECC RAM?

it's not mentioned in the manual or spec sheet, so I would guess not.

Did 3 passes to check for ram issues; 0 errors.

You need to run it like 15-20 times to be really confident of the results, and activate all tests too. It's the sort of thing one should run overnight. But it could be an AMD thing rather than a RAM thing. It'd be nice to hear how other people with AMD hardware are faring with coldkernel.


Remove --recursive from instructions

I was getting the error Unknown options: --recursive when running lines 67 and 68 of the readme with aws-cli/2.1.15.
When the --recursive option is removed, the command works.
Issue #, if available:

Description of changes:

Checklist

[ ] :wave: I have run the unit tests, and all unit tests have passed.
[ ] :warning: This pull request might incur a breaking change.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@makoncline Thanks for your feedback. We'll update README.md in the next release.

@makoncline Thanks for your feedback. We'll update README.md in the next release.

yes - I had to skip this step. Otherwise smooth.
There's no mention of crafting the url eg
/200x200/image.jpg
I came here from another repo - I was sure it did it - now I can't find the instructions anywhere.
https://github.com/sagidM/s3-resizer/pull/21
Let's say we have some shared image in S3, for example:
https://example.com/images/pretty_photo.jpg
to resize on fly this image to, say, 150x150, we can make a request like this:
https://example.com/images/150x150/pretty_photo.jpg

yes - I had to skip this step. Otherwise smooth.
There's no mention of crafting the url eg
/200x200/image.jpg
I came here from another repo - I was sure it did it - now I can't find the instructions anywhere.
https://github.com/sagidM/s3-resizer/pull/21
Let's say we have some shared image in S3, for example:
https://example.com/images/pretty_photo.jpg
to resize on fly this image to, say, 150x150, we can make a request like this:
https://example.com/images/150x150/pretty_photo.jpg

We have updated README.md in v5.2.0.

We have updated README.md in v5.2.0.

Thanks for your contribution, and this was added in the current version.
Because of our internal policy, we couldn't merge the PR directly so we put your name as a contributor in https://github.com/aws-solutions/serverless-image-handler#external-contributors.
Once again, thanks for your contribution.


Add "attach files" in Compose-message-view

DnD is very good, but intuitive is not understandable if page supports it.. and where drop area is located...
Quick ui-Fix:
-add label "Drop files to this area for attach" or
-button "Attach file(s)"

Fixed in scope of #276


WIP: Deflake metrics e2e test

What type of PR is this?
/kind failing-test
What this PR does / why we need it:
The metrics test seems still a bit flaky, which should be improved now.
Which issue(s) this PR fixes:
None
Does this PR have test?
None
Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

Codecov Report

Merging #514 (7d91319) into master (cd71f46) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #514   +/-   ##
=======================================
  Coverage   44.25%   44.25%
=======================================
  Files          24       24
  Lines        1236     1236
=======================================
  Hits          547      547
  Misses        652      652
  Partials       37       37


corrected typo and changed link quickstart for issue #81 #1

Changed the link to https://github.com/keploy/keploy#quickstart
Pull Request Template
Description
Under the Installation section the spelling is currently QuickStar/Installation guide in the place of `QuickStart/Installation guide'. So corrected this.
Also, changed the link to directly point to https://github.com/keploy/keploy#quickstart in place of https://github.com/keploy/keploy.git
Fixes # (issue) #81
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue).

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have made corresponding changes to the documentation.
[x] I have added corresponding tests.
[x] Any dependent changes have been merged and published in downstream modules.

@nehagup May I ask if this can be merged. Thanks.

@ompiepy can you please sign the DCO?


Kill route helpers, longer pause in smoketest [WIP]

Trying to avoid race condition occurring in smoketest of #16 by adding more pause time to allow for completion of loading before testing client render.
[Awaiting CircleCI results, will close if unsuccessful]

Sorry, I messed up this PR by cloning a new fork. Need to open another PR.


replace obsolete exists function with blazing new access

https://twitter.com/IAmTrySound/status/1334520595376181250?s=20

Thank you @jeetiss , the sync version still contains the fs.existsSync call, do you mind addressing it in your PR also? 🙂

This change has been released in v2.0.2


SDK has to be implemented for newly added clusters.

SDK has to be implemented for below mentioned clusters in all-clusters-app:

[ ] RVC Run Mode Select Cluster.
[ ] RVC Clean Mode Select Cluster.
[ ] Laundry Mode Select Cluster.
[ ] Washer Controls Cluster.
[ ] Refrigerator and Temperature Controlled Cabinet Cluster.
[ ] Smoke and CO Alarm Cluster
[ ] Temperature control server cluster
[ ] Dishwasher Mode Select Cluster
[ ] Operational state cluster
[ ] Refrigerator Alarm Cluster

Verified using master commit : 40fb7c246671e9d37ca8bb2cfbf37f81c1509334

Raise separate issues for each cluster. Therefore, closeing this issue.


Deselect fragments when using multiselect

Description 📝
Like the title says it would be nice to be able to deselect fragments when they are already selected when using the multiselect feature.
Suggested solution 💡
I would assume the best solution would be to add a check in the highlight() method inside the highlighter class, where you use the selected fragment from the raycaster and search for it inside the highlighter.selection.select set... If found, you can remove it from the set.
Alternative ⛕
No response
Additional context ☝
No response
Validations ✅

[X] Read the docs.
[X] Check that there isn't already an issue that requests the same feature to avoid creating a duplicate.

In addition to that, it would be nice that clicking on no element (void) while having multiselect active (removePrevious false) results in keeping the highlighter.selection.select set instead of loosing it as it is right now (tested on the thatopen/components-front version 2.0.9)

Available from<EMAIL_ADDRESS>https://github.com/user-attachments/assets/00102ce5-7136-4ce4-af34-b018ee829117


go-tools: 2020.2.1 -> 2020.2.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/dominikh/go-tools/releases.
meta.description for go-tools is: "A collection of tools and libraries for working with Go code, including linters and static analysis"
meta.homepage for go-tools is: "https://staticcheck.io"
meta.changelog for go-tools is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2020.2.2 with grep in /nix/store/rp7ywpsgks98slgd50115g0ljwinv8y9-go-tools-2020.2.2

directory tree listing: https://gist.github.com/82da31385d79adfa69a613d8569be1a4

du listing: https://gist.github.com/6b742188ad99df7f8b267eec578c9fed

Rebuild report (if merged into master) (click to expand)

5 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
go-tools
vimPlugins.vim-go

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rp7ywpsgks98slgd50115g0ljwinv8y9-go-tools-2020.2.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A go-tools https://github.com/r-ryantm/nixpkgs/archive/cf01dc5cbd325e278f16fabc98143b6c12df3e2e.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rp7ywpsgks98slgd50115g0ljwinv8y9-go-tools-2020.2.2
ls -la /nix/store/rp7ywpsgks98slgd50115g0ljwinv8y9-go-tools-2020.2.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

go-tools
vimPlugins.vim-go

Maintainer pings
cc @rvolosatovs @kalbasit @kalbasit for testing.

Result of nixpkgs-review pr 113836 at cf01dc5c run on aarch64-linux 1

1 package built:

go-tools

addressed by https://github.com/NixOS/nixpkgs/pull/114059


Problem with AttributeError: 'NoneType' object has no attribute 'shape'

Hi.
I have a problem. I generate a labels.csv
E:/George/images/02.jpg,501,315,705,837,person
but everytime i run python train_rpn.py --network mobilenetv2 -o simple -p E:/George/images/labels.csv
then I get
: 0000:01:00.0, compute capability: 7.5) Parsing annotation files filename Traceback (most recent call last):   File "train_rpn.py", line 130, in <module>     all_imgs, classes_count, class_mapping = get_data(options.train_path)   File "E:\George\keras_frcnn\simple_parser.py", line 39, in get_data     (rows, cols) = img.shape[:2] AttributeError: 'NoneType' object has no attribute 'shape'
I try to change my labels.csv like /images/02.jpg or just 02.jpg but no sense can you please help me why that simple_parser.py cannot work?

label file should be a .txt file, as in the original VOC.
can you fix that and try again?

My apologies. I made a mistake with my xml_to_csv. He generates the first row with column prefix like filename,x1,y2...
E:\images\01.jpg ....
csv or txt that does matter. Work with both.

My label file is annotate.txt where the rows are like this drive/My Drive/Colab Notebooks/frcnn/dataset/1.jpg",251,161,598,335,pothole
When I run this command
!python 'drive/My Drive/Colab Notebooks/frcnn/frcnn-from-scratch-with-keras/train_rpn.py' --network resnet50 -o simple -p 'drive/My Drive/Colab Notebooks/frcnn/dataset/annotate.txt'
I get this error
Parsing annotation files
Traceback (most recent call last):
File "drive/My Drive/Colab Notebooks/frcnn/frcnn-from-scratch-with-keras/train_rpn.py", line 130, in
all_imgs, classes_count, class_mapping = get_data(options.train_path)
File "/content/drive/My Drive/Colab Notebooks/frcnn/frcnn-from-scratch-with-keras/keras_frcnn/simple_parser.py", line 37, in get_data
(rows,cols) = img.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'
I have different solutions but I am unable to resolve

I m also facing the same issue.
get_data not able to read images from path. therefore attribute error..
any solution to that...


JBrowse config file outstanding tasks

Intron branch point data is not showing (was showing in old browser)
Variation track is missing
Wilhelm data is not live (wasn't in ensembl either) I curated the labels
I added some additional columns that we could be showing (at least in the "about this track" section)
I think it would be nice to have a couple of additional filters e.g. "gene" (filter on label called "target_gene" and "allele" (filter on  column headed "allele(s)) - if this is unpopulated then it is sort of like a WT dataset, but there may be background mutations (how could we label those those? @ValWood ), and for the column headed cycle/phase/strand (feel free to relabel these headers by the way, I just came up with some quick grouping term)
SGD label the "annotated sequence features" "canvas features" we could go with that for forward/reverse strand + genome sequence and sticky at the top of the filters? (I can't see those tracks in the config file so maybe belongs to a different ticket..)
"publication date" (year) is probably not a useful filter? study ID, PMID, and first author information should suffice for people to find the right dataset if they come from "that route"

Note, Val requested in old ticket that we "don't show" dbXrefs other than GEO, but we need to because some data was deposited in arrayexpress, etc. I therefore split this into "study_ID" and "DB" eg.
GSE24360 | GEO

Intron branch point data is not showing (was showing in old browser)

Where can I get the file for that data?

Variation track is missing

If that's a VCF file I think JBrowse can display it.  Do you know where the data is?

Wilhelm data is not live (wasn't in ensembl either) I curated the labels

You can change the display_in_jbrowse column in the CSV file to "yes" when you think it's ready.

I added some additional columns that we could be showing

You can add columns by editing the displayColumns section of pombe-embl/website/trackList.json in SVN.

I was looking here. I shift reloaded lots. Am I looking in the wrong place?
http://pombase-dev.bioinformatics.nz/jbrowse/?loc=III%3A713804..733804&tracks=PomBase forward strand features%2CDNA%2CPomBase reverse strand features&highlight=

I think it would be nice to have a couple of additional filters e.g. "gene" (filter on label called "target_gene" and "allele" (filter on  column headed "allele(s)) - if this is unpopulated then it is sort of like a WT dataset, but there may be background mutations (how could we label those those? @ValWood

good idea....not sure what to call it

SGD label the "annotated sequence features" "canvas features" we could go with that for forward/reverse strand + genome sequence and sticky at the top of the filters? (I can't see those tracks in the config file so maybe belongs to a different ticket..)

I'm not keen on "canvas features" I prefer "curated sequence features". Is that too long?

spreadsheet looks great.
for "target gene" is it always a chromatin localized protein?

@kimrutherford

the intron branch point data is here: https://www.ebi.ac.uk/panda/jira/secure/attachment/16497/BranchPointForVal.bed.txt
PB-2080 deals with loading this into ensembl. Mark said "I have had to slightly modify the bed file to be more descriptive, but it now works as a user loaded file. Will modify the config file and place a copy on the FTP" but no more detail

You are right the variation data is a VCF file. I have no idea where it lives. This ticket suggests that the variation data was uploaded to the EBI? https://helpdesk.ebi.ac.uk/Ticket/Display.html?id=132563
I can't find the file though
some detail here:https://helpdesk.ebi.ac.uk/Ticket/Display.html?id=130286

Also found a comment on track labelling for this: Change track labelling from
Jeffares_Indels and Jeffares_SNPs
To
Variation- NGS -Indel -Jeffares (2015)
Variation- NGS -SNP -Jeffares (2015)
@ValWood

""curated sequence features" doesn't work I think because there's genome sequence in addition to for/rev sequence features. -> Sequence and features?

at the moment target_gene is always chromatin localization (maybe there is some assay that I can't think off on top of my head...but basically where a gene product has been physically assayed

Quoth @Antonialock

You are right the variation data is a VCF file. I have no idea where it lives.

I think I may have found the data, deep in the bowels of the ftp-private.ebi.ac.uk site (path upload/pombase/jeffares-diversity-data). I'll email files to @kimrutherford off-ticket to check.

thanks Midori.
I've made some changes which, as long as I haven't broken things..., should update what is displayed in the tarck selector and the "about this track" information.
@kimrutherford

we also wanted forward and reverse strand tracks to display in different colours
can we make a label for the "key" (sequence features and genome sequence) tracks so that they are shown at the top of the track selector (name it genome sequence and features)

curated features?
I think it might be useful to say curated. If not go with "sequence and features"
I think target_genes works unless @mah11  has any ideas?

we also wanted forward and reverse strand tracks to display in different colours

Is that this issue?: #713

Looks like it!

I have deleted some old comments. Three outstanding tasks here (sorry for not making separate tickets from the start, I should have done).
I'll make new tickets.


Impossible to kill bitcoind

Bringing over this Conversation from Discord so it doesn't get lost:
@Fi3:

the hosted (SRI vps) bitcoin node always goes in a state where it is impossible to kill it with ctrl-c. This never happen on the node that I run locally or the ones that I run for demand. @Sjors @gitgab19
Not sure if this is an issue or not, but I wanted to log it

@GitGab19

Can you make sure it's running the latest commit? I never noticed this behaviour

@Fi3

I didn't touch it
just restart it sometimes

I think I've seen this occasionally. There's probably some thread locking order problem in the Template Provider.

I think I've ironed out these issues. Please try the latest release: https://github.com/Sjors/bitcoin/releases/tag/sv2-tp-0.1.4

Much has been refactored since, please open a new issue if it still happens though.


about zoom out limitation.

Compared to 'trading view', 'lightweight chart' has less 'zoom out'.
It's about a quarter.
So I can't see 20 years of data on one screen.
Is there any way to solve these problems?

The minBarSpacing setting for the time scale defines the limit for zooming out. If you make this number smaller (but must not equal zero) then you will be able to zoom out further.
const chart = createChart(container, { timeScale: { minBarSpacing: 0.05 }});

// or
chart.timeScale().applyOptions({
    minBarSpacing: 0.05,
});

The default value is 0.5.

Thank you very much. ^^


Dependency hygiene

Something bad happened in the upstream.  This is new in 3.0.0 (2.2 was OK).

do you have a dependency tree?

I think I hit this today:
javax.servlet:servlet-api:2.5
\--- com.netflix.netflix-commons:netflix-infix:0.3.0
     \--- com.netflix.netflix-commons:netflix-eventbus:0.3.0
          \--- com.netflix.eureka:eureka-client:1.10.11
               +--- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:3.0.2
               |    \--- io.pivotal.spring.cloud:spring-cloud-services-starter-service-registry:3.2.2.BUILD-SNAPSHOT:20210329.130303-8
               |         +--- runtimeClasspath (requested io.pivotal.spring.cloud:spring-cloud-services-starter-service-registry)
               |         \--- io.pivotal.spring.cloud:spring-cloud-services-dependencies:3.2.2.BUILD-SNAPSHOT:20210329.130301-8
               |              \--- runtimeClasspath
               \--- com.netflix.eureka:eureka-core:1.10.11
                    \--- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:3.0.2 (*)

me too, I have exactly the same problem.

你好，邮件已收到！

I believe this has been fixed in the recent versions.


PA now require CE access to change settings

About the PR
Particle Accelerator now requires Chief Engineer access in order to work. (doesn't affect "Scan Parts").
Why / Balance
Particle Accelerator is responsible for very dangerous parts of the station like tesla and singularity. Unqualified station personal might tinker with it, which might lead to eventual doom of the station. Having responsible access of CE to it should not allow such events to happen! At least if someone will not acquire CE id card or use EMAG on PA computer.
Technical details
Added access check on PA computer. If check failed, there would be a popup and sound effect.
Media
https://github.com/space-wizards/space-station-14/assets/23162722/7ae94127-d21a-4c1a-a9cb-3abf66d706ac
PS: if just so happens your CE is dead, added a access wire for you to cut!
https://github.com/space-wizards/space-station-14/assets/23162722/1a087f16-7eda-4254-b549-1b025bf4cb00

[x ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
No public API changed.
Changelog

add: PA control computer now requires Chief Engineer access to change it's settings

If this were to go through, it may be better for it to be command access rather than just the CE (even though the other command shouldn't be touching the PA), just in case there isn't a CE in the first place.

Inexperienced engineers causing a singuloose or teslaloose should not warrant access locking the PA. Every engineer should access to setup a source of power generation. Mistakes will happen,  singulooses and teslalooses will happen, but we shouldn't try to pad players from a source of danger like this.

This does mean that not having a CE will make it really annoying to get power setup

shrimply get a baseball bat

Fair enough. Here a access wire!
Now if just so happens you qualified enough to cut right wire, you will be granted all access you need to start a disaster! =)

Fix the numbers instead so it doesn't take 5 seconds to loose the singulo. This isn't the way to do it.

Well, the idea is here that engineers would be obligated to call for CE before launching a singularity or tesla on their own.
And CE will have full responsibility over launching it!

this also shines some light on how op pa wires are

cut the limit wire to set strength to 4
cut the strength wire to prevent changing it

Why not just setup a warning when a singuloose is about to happen?

For now... I'm only addressing the issue of creating such dangerous objects as singularity or tesla, without a proper inspection of higher command. If such object got loose, it's a round end for all station crew and it will disrupt many peoples game, just because of engineer making a mistake.

All this change is probably going to end up doing is adding 2 more steps to firing off a PA without authorization. The PA controller lives in engineering with the rest of the tools. It's going to slow down people who don't know this change exists and with the wire make it so nothing actually changes regardless when you want to bypass it with a screwdriver and wire cutter.
With respect, I don't see the point of this change.

This isn't the right problem to this solution. Engineers should be able to setup power without a CE, and this doesn't address how quickly the singulo can loose when set to a higher amount.

@LankLTE well.. okay then.
How about changing access to Engineering level then? Emitters have lock on them for engineering, At least it would be ok to PA have the same level of access as emitters.


Is it possible to create an error/warning on a field which is non blocking?

I have a field where a validation is to check if the date is in past. If the date is in past, form and field is still valid but I want to show a non-blocking warning message. Is it possible to do that using valibot?
Thanks,
Ankit

I need more context. Are you using a form library or just custom code? Does validation happen when the form is submitted? Where should the non-blocking warning be displayed?


[Fixes #286] Updates due to the rest of the SandBox

We cannot launch builds on PRs thus let's merge


Test hangs for /winrm

When running make test there's a relatively high chance that the tests for github.com/masterzen/winrm/winrm will hang. We see this manifest as intermittent CI failures in packer .
I suspect there's a race condition in the test code, possibly related to gopkg.in/check.v1. gotip's race detector identifies a ton of things but there was a bit too much noise for me to narrow it down.
Here's a run I aborted at around 90 seconds.
➜  winrm git:(master) make test
==> Installing dependencies
==> Testing Packer...
go test ./...
?   	github.com/masterzen/winrm	[no test files]
ok  	github.com/masterzen/winrm/soap	0.005s
^Cexit status 2
FAIL	github.com/masterzen/winrm/winrm	95.663s
make: *** [test] Error 1

When it passes it takes basically no time at all.
➜  winrm git:(master) make test
==> Installing dependencies
==> Testing Packer...
go test ./...
?   	github.com/masterzen/winrm	[no test files]
ok  	github.com/masterzen/winrm/soap	0.005s
ok  	github.com/masterzen/winrm/winrm	0.022s

I think we solved this around July 2015, feel free to reopen if you still see the problem.


Add _block_refresh() to layers

Description
As per this discussion on the graph layer PR, this PR add a context manager to block refresh() from updating the view slice.
We thought it would be best to separate this from the graph layer PR, so it isn't being snuck in within a larger PR.
Currently, this blocker is not used, however see here for how it will be used in a future PR.
Co-authored with @DragaDoncila

Will merge this now so we can update #4991. Thanks @Czaki


Patch com.snowplowanalytics.sauna.observers/AmazonS3Config/avro/1-0-0

Closes #585 .

Cherry-picked into R77 release branch, closing


Support for writing ndarrays

Just a question, so maybe an Issue is not the right place to ask. Will uproot support the writing of ndarrays in the future? If so is there a timescale on which we can expect this?

I just wrote this up in https://github.com/scikit-hep/uproot4/discussions/249.

I just wrote this up in https://github.com/scikit-hep/uproot4/discussions/249.


The logos when hovered doesn't look good

Current Behavior

When we hover on meshmap docs/ night hawk docs under the tutorial section the icons should also get adjusted as dark.
Expected Behavior

Screenshots/Logs

https://github.com/layer5io/docs/assets/85561967/7357d680-4df5-4bbc-b928-c1b30e454594
Environment

Host OS: Mac Linux Windows
Platform: Docker or Kubernetes
Meshery Server Version: stable-v
Meshery Client Version: stable-v

Contributor Guides and Resources

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Layer5 site in Figma (open invite)
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@iArchitSharma is this issue valid?

@iArchitSharma be sure to triage, please.
@Raj100679, yes, please use the light gray or the white versions of each of the logos in SVG format. See https://layer5.io/brand.

@leecalcote Will work on it tomorrow


Bug fixes in inlining and OP_ChkNewCallFlag

Abort apply inlining if called with 0 argumennts.
Don't check for CallFlags_New in class constructor calls if the ctor was inlined and we're bailing out from it because we wouldn't have inlined it if it was called without the new keyword.

@dotnet-bot test this please

@dotnet-bot test this please

@dotnet-bot test windows please

@dotnet-bot test this please

@dotnet-bot test this please


test -- ignore

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Looks like we broke the callback timing test, but the tests otherwise looked better. I will rerun


geojson lines writer

This works for features but not geometries because it's hard to know when to insert the \n to end the line.

It turns out that passing idx instead of 0 fails the test for the feature, but it also doesn't pass the geometry test. For example, when logging to stdout I see:
failures:

---- geojson::geojson_line_writer::tests::good_geometries stdout ----
a: {"type": "Point", "coordinates": [1.1,1.2]}
b: { "type": "Point", "coordinates": [1.1, 1.2] }
a: ,{"type": "Point", "coordinates": [2.1,2.2]}
b: { "type": "Point", "coordinates": [2.1, 2.2] }
thread 'geojson::geojson_line_writer::tests::good_geometries' panicked at geozero/src/geojson/geojson_line_writer.rs:227:73:
called `Result::unwrap()` on an `Err` value: Error("expected value", line: 1, column: 1)

Because the idx passed into begin_point is >0, a comma gets added here https://github.com/georust/geozero/blob/458f38ccca37f0ac4341593491017220b805ed51/geozero/src/geojson/geojson_writer.rs#L22-L27

I found a workaround and added a comment. Let me know if that solution is ok


Add simplified chinese translation for translator module

I'm closing this PR but I've added your translation to the development branch with some small adjustments with this commit: c65b5df0eef4e9fab12d545e2265653755450be0


Compute Hausdorff distance based on physical distances

The scikit-image implementation uses scipy.spatial's cKDTree for efficient nearest-neighbor lookup. This doesn't present to me an immediate adaptation to resolution specific calculation.
The CREMI repo does not appear to use Hausdorff distance anywhere, so it doesn't present an easy reference implementation.
Any help would be appreciated. :)

Wrote a modified version, which I think should work:

    a_points = np.argwhere(image0)
    b_points = np.argwhere(image1)

    # Handle empty sets properly:
    # - if both sets are empty, return zero
    # - if only one set is empty, return infinity
    if len(a_points) == 0:
        return 0 if len(b_points) == 0 else np.inf
    elif len(b_points) == 0:
        return np.inf

    # Scale the points by the voxel size
    a_points = a_points * np.array(voxel_size)
    b_points = b_points * np.array(voxel_size)

    fwd, bwd = (
        cKDTree(a_points).query(b_points, k=1, distance_upper_bound=max_distance)[0],
        cKDTree(b_points).query(a_points, k=1, distance_upper_bound=max_distance)[0],
    )

    if method == "standard":  # standard Hausdorff distance
        return max(max(fwd), max(bwd))
    elif method == "modified":  # modified Hausdorff distance
        return max(np.mean(fwd), np.mean(bwd))

Completed with https://github.com/janelia-cellmap/cellmap-segmentation-challenge/commit/0b606343af8d7b1e9c7ec4837b0f627b36d490b6