(WIP) Change restclient from monkey patching

In relation to #14 and #70. _restclient no longer uses requests_cache.install_cache which monkeypatches the requests library. Instead, requests_cache.CachedSession is now used. enable_cache [bool] parameter added to constructor of RestClient
Changes

requests_cache.install_cache is no longer used. Instead requests_cache.CachedSession is now used.
enable_cache [bool] parameter added to constructor of RestClient

Notes

Passes all unittests, however several slow tests for nwis_client are now failing. There appears to be something happening with multiprocessing and the requests_cache.CachedSession module.

Checklist

[x] PR has an informative and human-readable title
[x] PR is well outlined and documented. See #12 for an example
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows project standards (see CONTRIBUTING.md)
[ ] Passes all existing automated tests
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output) using numpy docstring formatting
[x] Placeholder code is flagged / future todos are captured in comments
[x] Reviewers requested with the Reviewers tool :arrow_right:

Just as a quick note, it appears that the requests_cache.CachedSession option is not going to be suitable for usage in nwis_client or any other subpackage that uses multiprocessing to retrieve data. I need to do some searching as to why exactly this is the case, but at a high level it is because each session has to acquire a lock to, I would assume, write to the database. I know that python's sqlite3 library does not support multiprocessing out of the box, so this may be something we will have to address in a cache subpackage as mentioned in #14.

This is a persistent problem I keep running into and one of the reasons I requested a way to disable the cache. Parallel reads are usually not a problem. Parallel writes are almost always a problem. This is why in gcp_client the parallelism is only employed for retrieval and processing. Caching only occurs in the parent process after all the data comes back.

Right (not write). We talked about this offline, but utilizing an async approach or threaded approach will likely be in our best interest. What you described above to implement a caching solution sounds a lot like a "consumer producer" pattern. I think the downfall to that approach is dividing and conquering work after data ingestion.
I did some testing this morning with requests_cache.CachedSession and a concurrent.future.ThreadPoolExecutor just to see if I could break it. In the documentation for requests_cache.CachedSession it notes that the module is not thread safe. I was not able to break it which I initially think is due to sqlite3's implementation of file locks on the backend that python threads are playing well with. This may not be the case though. I quickly compared the ThreadPoolExecutor implementation to using a multiprocessing.pool and just a call to requests.get and to no surprise, the ThreadPoolExecutor was faster (wall clock wise) and had a smaller memory footprint.

Right (not write). We talked about this offline, but utilizing an async approach or threaded approach will likely be in our best interest.

I think this will be package specific. For example, gcp_client employs a process that retrieves and processes individual NetCDF files. The current package was designed so the retrieval/processing step is effectively CPU bound. We could implement an async alternative, but we would have to reimplement the functionality offered by using the google_cloud_storage package and redesign gcp_client to separate the retrieval and processing.
Have said that, for any individual package, if async, threading, or multiprocessing can get us from nothing to DataFrame faster then we should use that solution (and hope variation in host resources is not a huge factor). This might suggest we need a more robust scaling method to compare these options.

This morning ive done a fair amount of playing around with multiprocessing, threading, and async solutions ranging from simple to complex shared memory implementations.
Before mentioning things i've tried, Ill add a little context to the problem: The main issue inhibiting requests_cache.CachedSession from working with multiprocessing is passing a read lock object. Given that on both windows and mac on python 3.8+ the behavior of the multiprocessing library is now to spawn instead of (in the mac case) fork then exec. What this means is a new python instance is started for each worker and is handed a copy of the data needed to complete the task. Meaning a lock object (that cannot be copied) is not passed to jobs as they spawn in the processing pool.
Things ive tried:

Create a new requests_cache.CachedSession spawning a new job. This works, however the overhead needed to do this slows down things when both getting and caching or just retrieving a cached object. I think this could be a work around for some that don't want to implement a more complex solution (ill get to that later). Im not sure that I want to implement this behavior in _restclient as the default as it will hurt performance for all users, not just those using multiprocessing.
Using a concurrent.futures.ThreadPoolExecutor to share a requests_cache.CachedSession session, but perform get calls in their own thread of execution. This works and for the most part and in all cases has a lower memory footprint than any multiprocessing implementation (not surprising), however through repeated get calls (e.g. pool.map(session.get, [<1>, <2>, <3>]) I found that occasionally it would take upwards of 20 seconds wall time to retrieve the data. I verified that I was not being throttled, so I am not exactly sure why this is occurring. I assume this is due to a race condition involving the connection to the db.
Next, I tried using asyncio by wrapping the requests_cache.CachedSession.get call in a loop.run_in_executor call. Having looked in to the implementation of loop.run_in_executor, this is nearly identical to the ThreadPoolExecutor example I mentioned prior. When running in an executor, the work just gets pushed to a ThreadPoolExecutor. As such, I received the same behavior I did above. Sporatic and long execution times that I assume involve writing/reading to/from the db.
Lastly, I looked outside of requests_cache for a purely async solution. This led me to aiohttp and [aiohttp-client-cache[(https://github.com/JWCook/aiohttp-client-cache). I recognized a few of the contributors to aiohttp-client-cache from requests_cache, so that is a good sign. In short, aiohttp-client-cache is to aiohttp as requests_cache is to requests. I setup the same tests i'd been running in the above listings and found that that aiohttp-client-cache is typically faster than multiprocessing and has a much lower memory footprint. The library supports the redis, mongo, sqlite, and dynamo dbs. Personally, at this moment in time, I think switching to both aiohttp and aiohttp-client-cache make sense. So what does that mean? Well it would mean we would want to support async functionality and have wrappers to async functions that act like serial functions. Meaning you could use _restclient in both cases. I think this kind of refactoring is a priority, but ill yield to others input first.

Moving forward, I think it is in our best interest to treat i/o bound work differently from cpu bound work. This means, using async and threads for i/o bound work and multiprocessing when we need it. If for example, data is needed from the web then it is processed (i.e. nwis_client) it makes more sense to consume data from the web using a async approach and then hand off processing to either the main thread or to a process pool (consumer producer semantics). I think we can document this pattern well in some examples along the way to serve as a starting point for ourselves and others trying to accomplish a similar goal.

Moving forward, I think it is in our best interest to treat i/o bound work differently from cpu bound work. This means, using async and threads for i/o bound work and multiprocessing when we need it. If for example, data is needed from the web then it is processed (i.e. nwis_client) it makes more sense to consume data from the web using a async approach and then hand off processing to either the main thread or to a process pool (consumer producer semantics). I think we can document this pattern well in some examples along the way to serve as a starting point for ourselves and others trying to accomplish a similar goal.

In general, I agree.
However, I think this only makes sense if the data retrieved fits in memory. If it does not and we have to write the data to disk for later processing are we still realizing the benefits offered by asyncio? Many of the asynchronous implementations I've seen are handling lots of relatively small payloads. nwis_client and gcp_client may be handling lots of requests for relatively large amounts of data. How do we balance rapid retrieval and limited memory?
The current paradigm implicitly assumes the data are retrieved and quickly pared down and optimized (the CPU bound part). Where do all the data live while waiting to be optimized?

However, I think this only makes sense if the data retrieved fits in memory. If it does not and we have to write the data to disk for later processing are we still realizing the benefits offered by asyncio? Many of the asynchronous implementations I've seen are handling lots of relatively small payloads. nwis_client and gcp_client may be handling lots of requests for relatively large amounts of data. How do we balance rapid retrieval and limited memory?

That's a fair point and I think it depends on how that data that cannot fit in memory is stored. If we use multiprocessing, I think things will become more complicated if we deal with "caching" data to a centralized store (a file db, h5 store etc.). Trading lock objects through shared memory I think will likely get messy and overall bog things down. I could also be very wrong (@hellkite500 / @christophertubbs can you weigh in?). In the case of async, my intuition says it will actually be easier to handle saving to disc along the way if required. A new thread pool executor can be spun up and handle the work while other jobs are still underway. Likewise, async reads may be advantageous of any data that is stored locally, that data can be asynchronously consumed and placed onto a process pool executor for cpu bound work. As for the scalability of async, which is what im taking the latter part of your comment to mean, in tests ive run comparing aiohttp to multiprocessing with requests, aiohttp pretty much always wins and is never drastically slower even as calls grow in size. I just performed an experiment looking at retrieving 10 years of nwis data from 10 sites using both approaches and aiohttp with an enabled cache, still was 5 to 7 seconds faster than requests.  This is still a "small" test, but still its somewhat meaningful.

From our previous meeting, it seems apparent this is the way to go. As a benchmark would you like to test the following request against your async method?
from hydrotools.gcp_client import gcp
from hydrotools.nwis_client.iv import IVDataService
from functools import partial
import timeit

model_service = gcp.NWMDataService()
sites = model_service.crosswalk['usgs_site_code']

data_request = partial(
    IVDataService.get,
    sites=sites,
    startDT='2021-01-01T01:00Z',
    endDT='2021-01-01T18:00Z'
)

t = timeit.timeit(data_request, number=1)
print(t)

# System: 6 cores/6 threads
# First run: 83.5404682229273
# Second run: 13.354135259054601

Additional result:
Python 3.9
System: 24 cores/24 threads
First run:<PHONE_NUMBER>9598955
Second run: 19.547235067002475

I just ran the same test, however just looking at the io time. So this does not include serializing the data into a dataframe.
#!/usr/bin/env python3

from hydrotools.gcp_client import gcp
from hydrotools.nwis_client.iv import IVDataService

async def get_json(session, url):
    async with session.get(url) as resp:
        return await resp.json()

async def mget(urls):
    headers = {"Accept-Encoding": "gzip, compress"}
    async with ClientSession(headers=headers) as session:
        work = [get_json(session, url) for url in urls]
        return await asyncio.gather(*work)

if __name__ == "__main__":
    from functools import partial
    import asyncio
    from aiohttp import ClientSession
    import timeit

    model_service = gcp.NWMDataService()
    sites = model_service.crosswalk["usgs_site_code"].to_list()
    url = "https://waterservices.usgs.gov/nwis/iv/?format=json&sites={}&startDT=2021-01-01T01:00%2b0000&endDT=2021-01-01T18:00%2b0000&parameterCd=00060&siteStatus=all"

    sites = [url.format(",".join(sites[s : s + 50])) for s in range(0, len(sites), 50)]

    loop = asyncio.get_event_loop()
    work = partial(loop.run_until_complete, mget(sites))

    t = timeit.timeit(work, number=1)
    print(t)

System: 4 cores / 4 threads
Download time: 10.84 seconds

In the context of the above findings and the previous discussion, I think this PR is going to die here. I am currently working on extending aiohttp with a cache client and an exponential backoff. I plan to refactor the RestClient to utilize that class and squash this feature in the process. The above conversation is worthy of pointing back to in the future.


If there's no route, tag metrics with URL path

While reviewing the improved metrics from #915 earlier today, I noticed that a lot of external requests have no route, which turns out to be because the static file server doesn't count as a route (or routes). For example, /docs/ will wind up with no route in our metrics.

I tried to remedy the issue somewhat by filling in the requested URL (minus the querystring) when there’s no matched route, but realized that needs some guardrails — every tag value (and combination of tag values) counts as a metric we have to pay for, so if we allow any URL here, our DataDog bill is likely to blow up. I used status code < 300 (success & not a redirect) or status >= 500 (an error on our part, not the client’s) as a signal that the URL is likely legit and worth recording, although it’s certainly possible there might be a way someone could cause a set of random, non-legit URLs to cough up 5xx errors. I don’t think that’s happening or likely, though.
Notably, I excluded 3xx responses from the above, but they might also be worth recording? That said, I think the only real redirect we have is an explicit one (/ → /docs/), and it already gets recorded (and will continue to) as a route.

Anyway, this will start recording routes like /docs/ and /docs/openapi.yaml, but not /favicon.ico.

Going ahead and landing this.


Between 0.42.1 and 0.42.2, SVGs stopped being served properly

On my site, hugo server is serving svgs with a content type that is preventing them from being displayed as images. This regression happened in 0.42.2
0.42.1:
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Content-Length: 64703
< Content-Type: image/svg+xml
< Last-Modified: Thu, 12 Jul 2018 19:38:39 GMT
< Date: Thu, 12 Jul 2018 20:00:49 GMT

0.42.2:
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Content-Length: 64703
< Content-Type: image/svg; charset=utf-8
< Last-Modified: Thu, 12 Jul 2018 19:38:39 GMT
< Date: Thu, 12 Jul 2018 19:56:23 GMT

Duplicate of https://github.com/gohugoio/hugo/issues/4920

Apologies, thanks.


Overlapping SVG issue resolved

#187  As requested I have uploaded the new svg file. Please review and accept the PR or suggest any changes.

@Rajdip019  As requested I had made another pull request to the dev branch

Congrats 🎉, your PR got merged. To be eligible for the swags from iNeuron X ClueLess. Follow this steps.

SignIn / SignUp in [ClueLess Website](https://www.clueless.tech/) .

Go to profile section from the top right hand corner.

Comment your profile URL under this comment tagging the person who merged your PR.

That’s it. Follow the leaderboard!
And don’t forget to share your achievement with your friends.

@Debajyoti14 https://www.clueless.tech/profile/98181871


Minor grammar fix

Since this is a minor grammar change I just made the edit on Github and didn't do any testing. Hope that's okay!

Thanks a lot for your input!


Fix install on system without python already on the system

This commit ensures the Grammar generation (current happening at install
time) can complete no system without python already installed on the system.
It fixes error like the following:
-- Up-to-date: /work/Preview/Slicer-0-build/python-install/include/python2.7/pyconfig.h
/path/to/python-install/bin/python: error while loading shared libraries: libpython2.7.so: cannot open shared object file: No such file or directory
/path/to/python-install/bin/python: error while loading shared libraries: libpython2.7.so: cannot open shared object file: No such file or directory

Merging. Few builds of python came  back green. And also tested locally.


feat: autosettings based on performance

Quality settings will be adjusted automatically based on performance metrics.
It's yet to be defined how or if the user will have input on this. Probably we will merge it with a feature toggle first.
https://docs.google.com/document/d/1OMouC890S_Akw2SKvENE1UZ6qYY8FExic-G64pOTnwM

https://play.decentraland.zone/branch/feat/autosettings_by_performance/index.html?ENV=org&realm=fenrir-amber

Could you explain how it works? I think this may be one of those things worth documenting

Ok, I was able to test the Auto-Settings feature in a very old machine and I found some interesting things:
In this case where I'm using a very low-specs machine, I have noticed that the experience is not improving in a very noticiable way. In some ways this is normal because of the low-specs of the hardware, but I have noticed something that I think we should take into account on this feature:

If I set manually the SHADOWS to OFF, my experience improves a lot.
If I set manually the RENDERING SCALE to 0.5, my experience improves a bit more.

However if I activate the auto-settings mode, these 2 parameters are never being changed, the SHADOWS is always set to ON and the RENDERING SCALE is always set to 0.7.
I think if we make this auto-settings feature takes into account these 2 params, we can improve a lot the experience for a lot of users.

These values are in fact overrode by autosettings, bear in mind that the quality is being adjusted when the average FPS of the last 5 seconds (to have a big enough sample size) are under a threshold. Probably you were just traveling from autosetting to autosetting until the system finds the best one for you.
We can reduce that sample size needed though, but we could face some false positive with hiccups. It needs more fine-tunning.


Java pyramid patterns

@aryashah2k  I have completed all the Pyramid Patterns for Java. There were total 50 unique patterns and code for all has been added. #27

Hey there @trial1user , that's some really amazing work. Thanks a lot for working on this. I have successfully merged the PR. Grateful to have your contributions towards this repository!

Hey there @trial1user , that's some really amazing work. Thanks a lot for working on this. I have successfully merged the PR. Grateful to have your contributions towards this repository!


Update webaudio.js

add check for browser support of AudioContext.close(). This is only supported by Chrome 43+ and FireFox 40+ for now. Edge and other non supported browsers will give an undefined error. #949
https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/close
// check if browser supports AudioContext.close()
if(typeof this.ac.close() !== 'undefined'){
this.ac.close();
}

Also can you not use 'Update filename.js' as title for your PRs but give it a few word title that describes the change better.


131 update api callout to ml ephant

Updating the wording in the blog post to reference our ML-ephant and KittyCAD APIs

Closes #131


Regarding Duration Handling in Activity

I have been trying to find out someway some way to provide some sleep to the activities.
let's say there are three activities, Activity A,B and C. When A is executed successfully, then I want to provide a halt of 30 minutes. Then start the process for B and after completion of B, C will start executing and in between the Activity of C, I want to provide some sleep functionality in C. And lastly C will be completed.
In short, I want to provide sleep/halt functionality in Activity level.
Is it possible anyway? Please suggest something.

closed as duplicate https://github.com/uber/cadence/issues/3431


Update sources for compatibility with NumPy 2

Description of the issue
Let us get our sources compatible with recently released NumPy 2
Ref: https://numpy.org/doc/stable/numpy_2_0_migration_guide.html
Cirq version
1.5.0.dev at d94c457b5e3a6a75941e59cb3f70c7646e61c5cb

Starting some notes.
A find-grep through the Cirq codebase reveals slightly over 500 files containing import numpy or from numpy.
find . ! -path '*/.git/*' \
       ! -path '*/__pycache__/*' \
       ! -path '*/.*_cache/*' \
       ! -name '*.pyc' \
       -type f -print0 \
       | xargs -0 -e egrep -n "import numpy|from numpy"

Doing a find-grep to search for instances of "np." or "numpy." finds a total of approximately 8000 lines. This includes Jupyter notebooks, JSON files, and Markdown files.
In addition to the NumPy migration guide, there is also a separate document with NumPy 2.0-specific advice.
NumPy version 2.1 has some additional changes since the 2.0 release, so we need to look at those too: NumPy 2.1.0 Release Notes.

The primarily goal here is to fix all numpy API calls that were removed or changed in 2.0,
so that cirq does not break for the users if they upgrade to numpy-2.
Per migration guide, this can be done automatically using ruff check --select NPY201 --fix .
The changes should be then checked manually.  I think ruff can also work with ipynb files,
but I am not sure if it needs an extra option or does so by default in ruff check ....
Finally, we should run check/pytest and verify if there are any numpy-related deprecation warnings.
We should perhaps also add ruff to our CI checks following https://numpy.org/doc/stable/numpy_2_0_migration_guide.html#ruff-plugin, to prevent numpy-1 APIs creeping back in.  That should however go to a separate PR.
PS: I have quickly glanced over 2.1.0 release notes and there does not seem much relevant for our code.
At any rate, it should not have any breaking changes as a minor release.

Past related PR: #6693

(Continuing notes.)
Incredibly enough,
ruff check --verbose --select NPY201 --fix .

does not find anything to change. (This was so surprising that I tried a number of variations to make sure ruff was actually checking things!)
The Python requirements file that installs NumPy is cirq-core/requirements.txt. It limits the versions to the 1.x line. Changing the specification to use NumPy 2.1 leads to problems with SciPy; increasing its version specification (to 1.1) on the same requirements file gets us further, and then only two more things lead to installation failures:

cirq-rigetti
cirq-core/cirq/contrib/quimb

Temporarily moving them out of the way (and removing references to them in a couple of places) then allows installation to proceed and check/pytest to be run.
The pytest results are not bad: only about 22 errors that look NumPy-related.

If we temporarily ignore the modules mentioned above, the check/pytest errors that remain are almost all due to a difference in how Numpy 2 prints representations of scalars. It now prints, e.g., "np.int64(3)" instead of "3". This in turn shows up as a difference in how circuit diagrams are printed, which causes tests to fail.
Numpy 2 has a configuration option to control that behavior (https://numpy.org/doc/stable/reference/generated/numpy.set_printoptions.html#numpy-set-printoptions), and setting numpy.set_printoptions(legacy="1.25") makes check/pytest succeed.
We need to change the rendering code for circuits so that it prints these np data values as strings (without setting a global configuration parameter).

A conflict exists in the versions of NumPy needed by second-level dependencies.
Quimb requires Numba, and while Quimb itself is compatible with NumPy 2.1, if you have NumPy 2.1 installed, a pip install of Numba 0.60 (the latest version) results in pip uninstalling Numpy 2.1 and installing 2.0.2 instead. Trying to force NumPy 2.1 seems to result in pip installation errors involving llvm. This makes sense, as the Numba sources don't seem to require NumPy 2.0 per se; I think what's happening is Numba requires something else, and that leads to conflicts.
Now, Cirq tests pass even with NumPy 2.0.x, so one option is to accept NumPy > 2.0 and < 2.1 for now, request Numba to support NumPy 2.1, and update our requirements files later. This would also align with the internal Google codebase, because the upcoming internal transition to NumPy 2 is going to use version 2.0.1.

All tests pass locally for me now, except for cirq-rigetti. Unfortunately, PyQuil (used by cirq-rigetti) limits the version of NumPy to < 2.0, so it is impossible to satisfy the requirement for importing it for cirq-rigetti.
This cirq-rigetti issue is also the reason the CI checks are currently failing for this PR.


[Question] The actual training timesteps don't correspond with the hyper-parameters for Atari

❓ Question
Hi,
As the title says, it seems the issue only occurs in Atari. Here are some commands and images for reference:
Experiment Command:
python train.py --algo ppo --env PongNoFrameskip-v4

Training Plotting Command:
python scripts/plot_train.py -a ppo -e PongNoFrameskip-v4 -f logs

Evaluation Plotting Command:
python scripts/all_plots.py -a ppo -e PongNoFrameskip-v4 -f logs --no-million -max 10000000

We can tell the number of the training timesteps is about 4e7 instead of 1e7 (n_timesteps in the hyper-parameters). The issue doesn't exist in the environments except for Atari based on my experiment results. If you want to reproduce the same issue, you can simply replace the hyper-parameter n_timesteps with a small number like 1e4 and you will find there are much more than 1e4 samples according to the episodic lengths in the logs.
Thank you so much in advance!
Checklist

[X] I have checked that there is no similar issue in the repo
[X] I have read the SB3 documentation
[X] I have read the RL Zoo documentation
[X] If code there is, it is minimal and working
[X] If code there is, it is formatted using the markdown code blocks for both code and stack traces.

Hello,
this is expected because of preprocessing for Atari games (the action repeat, aka frameskip, is set to 4 by default.
Relatee: https://github.com/DLR-RM/stable-baselines3/issues/181

Oh, that totally makes sense. I tried my best to check if there were any details I ignored, but I didn't realize it before. It's all clear now. Thank you so much for your quick reply!


PregroupFromFreeProduct

Should be renamed to PregroupOfFreeProduct and should be able to

Accept a pair of group homomorphisms with equal source to make a free product with amalgamation
Accept a list of pairs of group homomorphisms to make a k-ary free product with almagamation

Actually, for amalgamation we should use a new name PregroupOfFreeProductAmalgamating or PregroupOfFreeProductWithAmalgamation.

I’d prefer PregroupOfFreeProductWithAmalgamation
Colva

On 16 Nov 2016, at 13:53, Markus Pfeiffer<EMAIL_ADDRESS>wrote:
Actually, for amalgamation we should use a new name PregroupOfFreeProductAmalgamating or PregroupOfFreeProductWithAmalgamation.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/gap-packages/anatph","title":"gap-packages/anatph","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/gap-packages/anatph"}},"updates":{"snippets":[{"icon":"PERSON","message":"@markuspf in #8: Actually, for amalgamation we should use a new name PregroupOfFreeProductAmalgamating or PregroupOfFreeProductWithAmalgamation."}],"action":{"name":"View Issue","url":"https://github.com/gap-packages/anatph/issues/8#issuecomment-260951666"}}}


Fix conversion from 1.x to 2.x

As Holly notes in her referee report for our f1000 article:

The biom-conversion-server does not appear to be backwards compatible (I could not upload and convert a BIOM 1.x file to 2.x format) - this one-way conversion functionality is should be clearly indicated in the first paragraph of the “Application” section. In addition, if users try to upload a BIOM 1.0 file they should be presented with an appropriate error message (I didn’t see one - the tool just froze when I attempted to upload a BIOM 1.0 file).

Bik H. Referee Report For: biojs-io-biom, a BioJS component for handling data in Biological Observation Matrix (BIOM) format [version 1; referees: 2 approved with reservations]. F1000Research 2016, 5:2348
(doi: 10.5256/f1000research.10362.r16436)
Related to https://github.com/molbiodiv/biojs-io-biom/issues/26

In general the biom-conversion-server is not limited to one way conversion. In fact I was able to convert the phinch example biom file which is in BIOM 1.0 format to BIOM 2.1 using the web interface. However it took ~10s before the success message for the upload appeared and after clicking on download for version 2 it took nearly 1min before the download was ready. During this time there was no indication on the page that something is happening so it might lead to the conclusion that the server hangs. Also an error message should already appear if there is an error with the provided file.
@hollybik would you mind trying again and waiting a little while? If the problem persists it would help if you could provide your browser and version as well as the biom file that produced the error. Thanks in advance for your help.
In any case the web interface should indicate the background activity in a way that communicates the status to the user (e.g. a spinner). Also error messages can definitely be improved.


Security Patch

Can you patch
Testing /builds/xxx/www/gatsby...
506 Tested 2358 dependencies for known issues, found 1 issue, 6011 vulnerable paths.
507 Patchable issues:
508 Patch available for<EMAIL_ADDRESS>509 ✗ Prototype Pollution (new) [Medium Severity][https://snyk.io/vuln/SNYK-JS-LODASH-567746] in<EMAIL_ADDRESS>510 introduced by<EMAIL_ADDRESS>><EMAIL_ADDRESS>and 6010 other path(s)
Security patch avaliable for loadash
https://snyk.io/vuln/SNYK-JS-LODASH-567746

Should be fixed in recent versions


chore: drop Node 10 support

Let’s drop Node 10 support. As suggested in https://github.com/jest-community/jest-runner-tsd/pull/41#issuecomment-1029809910
All I remember: yarn and typescript were blocked by Node 10. Anything else?

Sorry, I've already landed these changes on main 🙈

Good (;


Apply to other datasets

Excellent work ! P2PNet[1] is a SOTA method of crowd counting and effective method of crowd localization. Have you ever tried to train CPR + P2PNet on counting benchmarks (such as NWPU-Crowd, ShanghaiTech).
Look forward to your reply! Thanks.
[1] Qingyu Song, Changan Wang, Zhengkai Jiang, Yabiao Wang, Ying Tai, ChengjieWang, Jilin Li, Feiyue Huang, and Yang Wu. Rethinking counting and localization in crowds: A purely point-based framework. In ICCV, 2021.

稠密情况下不太好使，撒的点碰撞太严重了。


Registering more than one listener fails

Subject:
org.tuxdevelop.spring.batch.lightmin.service.DefaultAdminService.saveJobConfiguration(JobConfiguration)
When setting the bean name you clear in the scheduler configuration before setting null to it, but not on the listener, it causes the listener always uses the same name, and when registering the beans names they are overriden by the same name, causing to only the first listener to work

I'm also concerned at: org.tuxdevelop.spring.batch.lightmin.admin.listener.AbstractListener.start()
In lines 36 and 37, there is a typo with the integration flow bean name, which is also hard coded, can't that cause an issue when registering more than one listener?

Actually, this is a pretty serious bug since if we register more than one listener they won't work, it would be nice to be fixed in the next release, if possible.

Hi,
the typo was the reason for this issue. I fixed it in the 0.4.x branch and it will be released with 0.4.2.
I also adapted the sample project and which register as second listener.
Can you please test the fix in the 0.4.x branch (local clean install is needed) and give me feedback?
Best Regards,
Marcel

Bug fix released with 0.4.2


Versioned pages

ping @brianjo. This enhancement to the gh-pages branch

moves the documents around to allow versioning
adds an index.html to redirect to stable/index.html
adds a README.md

Todo in future PRS:

add a version selector like on the pytorch site
automate doc building on a merge (to the "master" directory)
automate doc building on a tag (to a numbered directory)
rethink serving the _static content. After this PR, each directory uses its own _static subdirectory, i.e, 0.7/index.html uses 0.7/_static resources for stylesheets and javascript. It would be nice if the content were shared across versions, so that a styling update would be applied to the older versions automatically: 0.7/index.html would use /_static.

It might be difficult to review this PR because of all the changed files. You can see it "live" on

the README after merging this branch to the gh-pages branch on my fork of the repo and
the github pages root, stable, 0.7, and master. They all show the same content, the first will redirect to the second, and the third and fourth differ from the others only in the link in the address bar.

Thanks, it looks good!

the github pages root

I get 404 for this link. Expected?

@mattip Thank you so much!

The website is updated https://pytorch.org/audio .


Multi-card/group effects & properties in a moddable way

Many TCGs have features where "if you have card X and card Y together, it does Z". At the current time, this feature can be supported but all card combinations have to be requested to the Java developers and hard-coded into the game. This is OK for now but in the future this may hinder moddability.
Perhaps a more flexible approach would be to move this to the JavaScript modding currently in development, at some point in the future. The following concept image might be a possible way to create this.

For whilePresent effects, this should be possible using an activeIf property. For afterPlay or onEndOfTurn, it should be possible to accomplish in a similar manner. From an implementation standpoint, it shouldn't be too hard to implement. From a moddability standpoint, the implementation should be quite moddable as well.

Would effects like these be something to consider for #223 Mythos ?

Yes, that would definitely fit with Mythos

Not entirely sure if it will pop up in 0.6, but I'm marking it as such for now

This one could wait for 0.7 IMO, I wouldn't make this more priority over the stuff we do want in 0.6

I've had an idea for this that might work well and be easy to understand, and use a DSL trigger. See this:
ifPresent "Foo", "Bar" zone "Battlefield" {
    // do something
    onCards {
        name "Foo", "Bar"
        owner "you"
        zone "Battlefield"
    }
}

Do you think that would work good?

that could work, yes. A question is where to put it. It can be put either inside both the Foo and Bar cards, or it can be put somewhere else... if it is inside both the cards, we should find a way to reduce the code duplication, such as first defining the ability, and then 'including it' in both the cards.

I guess we could have a sort of pseudo-card entity and define a way to include it, not sure what that implies though but I like the idea of reducing duplicate code


Fixed Global Flag Parsing in CLI

Description
#5882 broke some commands' global flags. This PR brings them back
Also updated dev version in preparation for CLI 1.0.2 release.
Other changes
n/a
Tested
Tested locally on relevant commands; works!
Related issues

Fixes bug mentioned on discord here.

Backwards compatibility
n/a

@yorhodes i also updated dev version in preparation for release just fyi

@yorhodes i also updated dev version in preparation for release just fyi


Some use INFO and some use info

Please answer these questions before submitting your issue. Thanks!
I found some logs use INFO and some use info, also, some use WARN and some use warning.
I was wondering is this what we expected?

What did you do?

run ./pd-server

What I see ?

xiekeyi@ubuntu:~/gopath/src/github.com/pingcap/pd$ ./bin/pd-server
[2019/02/21 14:12:54.150 +08:00] [INFO] [util.go:57] ["Welcome to Placement Driver (PD)"]
[2019/02/21 14:12:54.150 +08:00] [INFO] [util.go:58] [PD] [release-version=v3.0.0-beta-9-g5e81548]
[2019/02/21 14:12:54.151 +08:00] [INFO] [util.go:59] [PD] [git-hash=5e81548c3c1a1adab056d977e7767307a39ecb70]
[2019/02/21 14:12:54.151 +08:00] [INFO] [util.go:60] [PD] [git-branch=master]
[2019/02/21 14:12:54.151 +08:00] [INFO] [util.go:61] [PD] [utc-build-time="2019-02-21 06:09:37"]
[2019/02/21 14:12:54.151 +08:00] [INFO] [metricutil.go:80] ["disable Prometheus push client"]
[2019/02/21 14:12:54.151 +08:00] [INFO] [server.go:110] ["PD Config"] [config="{\"client-urls\":\"http://<IP_ADDRESS>:2379\",\"peer-urls\":\"http://<IP_ADDRESS>:2380\",\"advertise-client-urls\":\"http://<IP_ADDRESS>:2379\",\"advertise-peer-urls\":\"http://<IP_ADDRESS>:2380\",\"name\":\"pd-ubuntu\",\"data-dir\":\"default.pd-ubuntu\",\"initial-cluster\":\"pd-ubuntu=http://<IP_ADDRESS>:2380\",\"initial-cluster-state\":\"new\",\"join\":\"\",\"lease\":3,\"log\":{\"level\":\"\",\"format\":\"text\",\"disable-timestamp\":false,\"file\":{\"filename\":\"\",\"log-rotate\":true,\"max-size\":0,\"max-days\":0,\"max-backups\":0},\"development\":false,\"disable-caller\":false,\"disable-stacktrace\":false,\"sampling\":null},\"log-file\":\"\",\"log-level\":\"\",\"tso-save-interval\":\"3s\",\"metric\":{\"job\":\"pd-ubuntu\",\"address\":\"\",\"interval\":\"0s\"},\"schedule\":{\"max-snapshot-count\":3,\"max-pending-peer-count\":16,\"max-merge-region-size\":20,\"max-merge-region-keys\":200000,\"split-merge-interval\":\"1h0m0s\",\"patrol-region-interval\":\"100ms\",\"max-store-down-time\":\"30m0s\",\"leader-schedule-limit\":4,\"region-schedule-limit\":4,\"replica-schedule-limit\":8,\"merge-schedule-limit\":8,\"hot-region-schedule-limit\":2,\"hot-region-cache-hits-threshold\":3,\"tolerant-size-ratio\":5,\"low-space-ratio\":0.8,\"high-space-ratio\":0.6,\"disable-raft-learner\":\"false\",\"disable-remove-down-replica\":\"false\",\"disable-replace-offline-replica\":\"false\",\"disable-make-up-replica\":\"false\",\"disable-remove-extra-replica\":\"false\",\"disable-location-replacement\":\"false\",\"disable-namespace-relocation\":\"false\",\"schedulers-v2\":[{\"type\":\"balance-region\",\"args\":null,\"disable\":false},{\"type\":\"balance-leader\",\"args\":null,\"disable\":false},{\"type\":\"hot-region\",\"args\":null,\"disable\":false},{\"type\":\"label\",\"args\":null,\"disable\":false}]},\"replication\":{\"max-replicas\":3,\"location-labels\":\"\"},\"namespace\":{},\"pd-server\":{\"use-region-storage\":\"false\"},\"cluster-version\":\"0.0.0\",\"quota-backend-bytes\":\"0 B\",\"auto-compaction-mode\":\"periodic\",\"auto-compaction-retention-v2\":\"1h\",\"TickInterval\":\"500ms\",\"ElectionInterval\":\"3s\",\"PreVote\":true,\"security\":{\"cacert-path\":\"\",\"cert-path\":\"\",\"key-path\":\"\"},\"label-property\":null,\"WarningMsgs\":null,\"namespace-classifier\":\"table\",\"LeaderPriorityCheckInterval\":\"1m0s\"}"]
[2019/02/21 14:12:54.154 +08:00] [INFO] [server.go:145] ["start embed etcd"]
2019/02/21 14:12:54.154 log.go:89: [info] embed: [pprof is enabled under /debug/pprof]
[2019/02/21 14:12:54.154 +08:00] [INFO] [systime_mon.go:25] ["start system time monitor"]
2019/02/21 14:12:54.157 log.go:89: [info] etcdserver: [name = pd-ubuntu]
2019/02/21 14:12:54.157 log.go:89: [info] etcdserver: [data dir = default.pd-ubuntu]
2019/02/21 14:12:54.157 log.go:89: [info] etcdserver: [member dir = default.pd-ubuntu/member]
2019/02/21 14:12:54.157 log.go:89: [info] etcdserver: [heartbeat = 500ms]
2019/02/21 14:12:54.157 log.go:89: [info] etcdserver: [election = 3000ms]
2019/02/21 14:12:54.158 log.go:89: [info] etcdserver: [snapshot count = 100000]
2019/02/21 14:12:54.158 log.go:89: [info] etcdserver: [advertise client URLs = http://<IP_ADDRESS>:2379]
2019/02/21 14:12:54.164 log.go:89: [info] etcdserver: [restarting member b71f75320dc06a6c in cluster 1c45a069f3a1d796 at commit index 1434]
2019/02/21 14:12:54.164 raft.go:656: [info] b71f75320dc06a6c became follower at term 27
2019/02/21 14:12:54.164 raft.go:364: [info] newRaft b71f75320dc06a6c [peers: [], term: 27, commit: 1434, applied: 0, lastindex: 1434, lastterm: 27]
2019/02/21 14:12:54.176 log.go:85: [warning] auth: [simple token is not cryptographically signed]
2019/02/21 14:12:54.178 log.go:89: [info] embed: [b71f75320dc06a6c starting with cors ["*"]]
2019/02/21 14:12:54.178 log.go:89: [info] embed: [b71f75320dc06a6c starting with host whitelist ["*"]]
2019/02/21 14:12:54.178 log.go:89: [info] etcdserver: [starting server... [version: 3.3.0+git, cluster version: to_be_decided]]
2019/02/21 14:12:54.180 log.go:89: [info] etcdserver/membership: [added member b71f75320dc06a6c [http://<IP_ADDRESS>:2380] to cluster 1c45a069f3a1d796]
2019/02/21 14:12:54.181 log.go:87: [info] etcdserver/membership: [set the initial cluster version to 3.3]
2019/02/21 14:12:54.181 log.go:89: [info] etcdserver/api: [enabled capabilities for version 3.3]
2019/02/21 14:12:54.184 log.go:89: [info] embed: [listening for peers on  <IP_ADDRESS>:2380]
2019/02/21 14:12:58.666 raft.go:857: [info] b71f75320dc06a6c is starting a new election at term 27
2019/02/21 14:12:58.666 raft.go:684: [info] b71f75320dc06a6c became pre-candidate at term 27
2019/02/21 14:12:58.666 raft.go:755: [info] b71f75320dc06a6c received MsgPreVoteResp from b71f75320dc06a6c at term 27
2019/02/21 14:12:58.666 raft.go:669: [info] b71f75320dc06a6c became candidate at term 28
2019/02/21 14:12:58.666 raft.go:755: [info] b71f75320dc06a6c received MsgVoteResp from b71f75320dc06a6c at term 28
2019/02/21 14:12:58.666 raft.go:712: [info] b71f75320dc06a6c became leader at term 28
2019/02/21 14:12:58.666 node.go:306: [info] raft.node: b71f75320dc06a6c elected leader b71f75320dc06a6c at term 28
2019/02/21 14:12:58.670 log.go:89: [info] etcdserver: [published {Name:pd-ubuntu ClientURLs:[http://<IP_ADDRESS>:2379]} to cluster 1c45a069f3a1d796]
2019/02/21 14:12:58.670 log.go:89: [info] embed: [ready to serve client requests]
[2019/02/21 14:12:58.670 +08:00] [INFO] [server.go:175] ["create etcd v3 client"] [endpoints="[http://<IP_ADDRESS>:2379]"]
2019/02/21 14:12:58.671 log.go:87: [info] embed: [serving insecure client requests on <IP_ADDRESS>:2379, this is strongly discouraged!]
[2019/02/21 14:12:58.673 +08:00] [INFO] [server.go:214] ["init cluster id"] [cluster-id=6659568247490232490]
[2019/02/21 14:12:58.682 +08:00] [WARN] [history_buffer.go:137] ["load history index failed"] [error="leveldb: not found",errorVerbose="leveldb: not found\ngithub.com/pingcap/pd/server/core.(*leveldbKV).Load\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/core/levedb_kv.go:40\ngithub.com/pingcap/pd/server/region_syncer.(*historyBuffer).reload\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/region_syncer/history_buffer.go:135\ngithub.com/pingcap/pd/server/region_syncer.newHistoryBuffer\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/region_syncer/history_buffer.go:54\ngithub.com/pingcap/pd/server/region_syncer.NewRegionSyncer\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/region_syncer/server.go:87\ngithub.com/pingcap/pd/server.newRaftCluster\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/cluster.go:75\ngithub.com/pingcap/pd/server.(*Server).startServer\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/server.go:230\ngithub.com/pingcap/pd/server.(*Server).Run\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/server/server.go:306\nmain.main\n\t/home/xiekeyi/gopath/src/github.com/pingcap/pd/cmd/pd-server/main.go:110\nruntime.main\n\t/home/xiekeyi/go/go/src/runtime/proc.go:201\nruntime.goexit\n\t/home/xiekeyi/go/go/src/runtime/asm_amd64.s:1333"]
[2019/02/21 14:12:58.683 +08:00] [INFO] [history_buffer.go:145] ["start from history index"] [start-index=0]
[2019/02/21 14:12:58.685 +08:00] [INFO] [namespace_classifier.go:460] ["load namespaces information"] [namespace-count=0] [cost=2.390336ms]
[2019/02/21 14:12:58.686 +08:00] [WARN] [leader.go:95] ["the leader has not changed, delete and campaign again"] [old-leader="name:\"pd-ubuntu\" member_id:13195394291058371180 peer_urls:\"http://<IP_ADDRESS>:2380\" client_urls:\"http://<IP_ADDRESS>:2379\" "]
[2019/02/21 14:12:58.690 +08:00] [INFO] [leader.go:405] ["server disable region storage"]
[2019/02/21 14:12:58.691 +08:00] [INFO] [tso.go:105] ["sync and save timestamp"] [last=2019/02/21 14:12:25.027 +08:00] [save=2019/02/21 14:13:01.690 +08:00] [next=2019/02/21 14:12:58.690 +08:00]
[2019/02/21 14:12:58.691 +08:00] [INFO] [leader.go:267] ["load cluster version"] [cluster-version=0.0.0]
[2019/02/21 14:12:58.691 +08:00] [INFO] [leader.go:268] ["PD cluster leader is ready to serve"] [leader-name=pd-ubuntu]
^C[2019/02/21 14:13:19.675 +08:00] [INFO] [main.go:115] ["Got signal to exit"] [signal=interrupt]
[2019/02/21 14:13:19.675 +08:00] [INFO] [server.go:264] ["closing server"]
[2019/02/21 14:13:19.675 +08:00] [INFO] [leader.go:157] ["server is closed, exit etcd leader loop"]
[2019/02/21 14:13:19.675 +08:00] [INFO] [leader.go:278] ["keep alive channel is closed"]
[2019/02/21 14:13:19.675 +08:00] [INFO] [server.go:344] ["server is closed, exit metrics loop"]
[2019/02/21 14:13:19.675 +08:00] [INFO] [leader.go:75] ["server is closed, return leader loop"]
2019/02/21 14:13:19.675 log.go:89: [info] etcdserver: [skipped leadership transfer for single member cluster]
[2019/02/21 14:13:19.679 +08:00] [INFO] [server.go:283] ["close server"]

What version of PD are you using (pd-server -V)?

xiekeyi@ubuntu:~/gopath/src/github.com/pingcap/pd$ ./bin/pd-server -V
Release Version: v3.0.0-beta-9-g5e81548
Git Commit Hash: 5e81548c3c1a1adab056d977e7767307a39ecb70
Git Branch: master
UTC Build Time:  2019-02-21 06:09:37

Hi @xiekeyi98 , thanks for your report. We are currently in the middle stage of working on refactoring logs, including switch to a new log library. This leads to the inconsistency of the current log format. It should be fixed after all log related PRs are merged. You may also try the stable version now. (branch release-2.1)


Replace hadolint with Trivy

Intentionally omitted to integrate https://github.com/aquasecurity/trivy-action and https://github.com/aquasecurity/trivy-vscode-extension


Initial Release Autoware Camera-LiDAR calibration tool

Status
PRODUCTION / DEVELOPMENT
Description
Autoware Camera Lidar calibration tool. Solves #1129
Todos

[X] Tests
[X] Documentation

Steps to Test or Reproduce

Pull this branch
Follow README.md inside the package

@kitsukawa @jacoblambert if you check and  approve, please don't merge.


Implement Basic Storage Power Actor

A basic storage power actor framework has already been implemented however the defined task below provides additional details of what is required.
Storage Power Actor Definition:

https://filecoin-project.github.io/specs/#storagepoweractor-interface

Lotus implementation:

https://github.com/filecoin-project/lotus/blob/master/chain/actors/actor_storagepower.go

Data structures required:

[ ] StoragePowerActorState
[ ] CreateStorageMinerParams
[ ] PowerTableHAMT
[ ] MinerEventsHAMT

Methods required defined via spec:

_slashPledgeCollateral
_minerNominalPowerMeetsConsensusMinimum
_selectMinersToSurprise
_addClaimedPowerForSector
_deductClaimedPowerForSectorAssert
_updatePowerEntriesFromClaimedPower
_getCurrPledgeForMiner
_getPowerTotalForMiner
_getPledgeSlashForConsensusFault
_setClaimedPowerEntryInternal
_setNominalPowerEntryInternal
_setPowerEntryInternal

Lotus methods defined:

https://github.com/filecoin-project/lotus/blob/master/chain/actors/actor_storagepower.go#L24

https://github.com/filecoin-project/specs-actors/tree/master/actors/builtin/power


[Ubantu 18.04] How to save the visualization result  loaclhost:8080  to .html

I'm using this tool in Ubantu 18.04.
The visualization result is in localhost:8080, the result is execllent.  But I don't know how to save the result as a file.(such as resnet50.html/mlp.html/mobilenet.html...)
Can you help me fix the requirement, thanks very much!

I try to modify server.py to save the  visualization result, but failed...

Duplicate of #162

Thanks very much,  I'm going to use the offline Appimage

The browser version includes these options:

How to use the appImage in command line, can you help me with some example


Some feedback / struggeling without documentation

Hi,
yesterday I started to implement it after it was finally building.
Connection is already working, so the basics were quite straight forward with your sample apps.
I went the route for callbacks for non-kotlin consumers.
As I can't find any documentation, the details get confusing though or seem over complicated some times. Or maybe I am just doing it wrong. :)
Here is some feedback / some issues I currently encounter:
It always starts tor automatically
// Instantiate new TorManager
TorManager manager = TorManager.newInstance(App.getAppContext(), loader);

I didn't find a way to just prepare the tor manager and then later call .start() when I actually need it.
This can be circumvented easily manually of course by keeping track if it was already started etc, but I wonder why it is not supported in the library directly.
TorListener
I can get this to work fine on initial Tor connection (like in the sample app).
But as soon as I try to stop and start the CallbackTorManager no events are triggered anymore.
Note that I used .startQuietly() & .stopQuietly(). Maybe that is the reason. But why isn't there a way to just do a stop, start & restart with the TorListener working without needing to provide anything?
DefaultSettings
I went with the TorConfigProviderAndroid settings you used in your Java Android App sample for now. (https://github.com/05nelsonm/kmp-tor/blob/master/samples/java/android/src/main/java/io/matthewnelson/kmp/tor/sample/java/android/App.java)
It works, but I can also see, that the settings in your kotlin sample app for Android are different. (https://github.com/05nelsonm/kmp-tor/blob/master/samples/kotlin/android/src/main/java/io/matthewnelson/kmp/tor/sample/kotlin/android/SampleApp.kt)
For none Tor experts it is hard to decide what to use, especially if there is no documentation yet.

Love it! Yeah there are some pain points and documentation that is needed which I hope to resolve with 2.0.0. But... It works :partying_face: , lol.

It always starts tor automatically
// Instantiate new TorManager
TorManager manager = TorManager.newInstance(App.getAppContext(), loader);

This should not be the case. Instantiating TorManager (and then wrapping in CallbackTorManager) should do nothing but create the instance(s). The APIs are such that you must call start() or startQuietly(). If tor is already started, those calls do nothing.

I didn't find a way to just prepare the tor manager and then later call .start() when I actually need it. This can be circumvented easily manually of course by keeping track if it was already started etc, but I wonder why it > is not supported in the library directly.

TorManager and CallbackTorManager both implement TorStateManager. So no need to keep track, it does that for you!

But as soon as I try to stop and start the CallbackTorManager no events are triggered anymore.
Note that I used .startQuietly() & .stopQuietly(). Maybe that is the reason.

All events are dispatched to all attached listeners. CallbackTorManager is simply a wrapper which passes through everything to its delegate, TorManager. So, I'm not entirely sure what is happening here as integration tests indicate this is the case. Calling startQuietly() or stopQuietly() operate the same as start() and stop() but w/o the responses.

But why isn't there a way to just do a stop, start & restart with the TorListener working without needing to provide anything?

Could you elaborate? Not sure what is needed to be provided as start, stop, restart take nothing as arguments for TorManager as they are suspend functions, while taking callbacks (for CallbackTorManager). If you do not want to wait for tor to start/stop/restart via suspend function (or conversely by providing callbacks, the *Quietly functions are there for that.

For none Tor experts it is hard to decide what to use, especially if there is no documentation yet.

Agreed! Definitely need to achieve parity between those samples. I created #299 for this!


possible memory leak in soter_rsa_gen_key() [OpenSSL]

in https://github.com/cossacklabs/themis/blob/master/src/soter/openssl/soter_rsa_common.c, in
if (1 > EVP_PKEY_CTX_ctrl(pkey_ctx, -1, -1, EVP_PKEY_CTRL_RSA_KEYGEN_BITS, SOTER_RSA_KEY_LENGTH, NULL)) {
        return SOTER_FAIL;
    }

I think that  BN_free(pub_exp) need to be called in this plase. Please check it out.

yes, agree. we will fix it

but read documentation and think we should not change anything. from documentation of openssl, EVP_PKEY_CTX_ctrl and EVP_PKEY_CTRL_RSA_KEYGEN_BITS the macros for  EVP_PKEY_CTX_set_rsa_keygen_pubexp function call - https://docs.huihoo.com/doxygen/openssl/1.0.1c/crypto_2rsa_2rsa_8h_source.html#l00232
And docs tell next:

The EVP_PKEY_CTX_set_rsa_keygen_pubexp() macro sets the public exponent value for RSA key generation to pubexp. Currently it should be an odd integer. The pubexp pointer is used internally by this function so it should not be modified or freed after the call. If not specified 65537 is used.

So we should not free after call

Ok, then why you call it in https://github.com/cossacklabs/themis/blob/master/src/soter/openssl/soter_rsa_key_pair_gen.c,
https://github.com/cossacklabs/themis/blob/master/src/soter/openssl/soter_rsa_key_pair_gen.c?

hm, you right. not so easy as I thought) thanks very match, I will re-check more carefully usage of these functions and unify across our backends

I have perused OpenSSL's documentation and source code and it seems that the current code in OpenSSL backend is correct:
https://github.com/cossacklabs/themis/blob/da8b52cede8c9279867b758f3b73a02551c552e2/src/soter/openssl/soter_rsa_common.c#L62-L64
We must not free pub_exp after a successful call to EVP_PKEY_CTX_set_rsa_keygen_pubexp() because it transfers ownership over the bignum to EVP_PKEY:
https://github.com/openssl/openssl/blob/70b0b977f73cd70e17538af3095d18e0cf59132e/crypto/rsa/rsa_pmeth.c#L472-L479
We should fix other places instead.

Superseded by #517


menu disappears when browser small

Change your web browser to NOT BE MAXIMIZED. Drag your browser width to be smaller and smaller. At some point the menu/navigation disappears.

@DaleEMoore Hi, can you provide more information? templates or screenshots?
Which menu are you referring to? The login page does not have menu only 2 fields.

Very sorry @rochacbruno for not being more helpful!
Run example/simple_app.py, web browse http://<IP_ADDRESS>:5000/, un-maximize the browser, drag the browser size left and right. You'll notice that when the browser window gets smaller than the navigation bar text:
My Site Home Secret Validated Login

it changes to only "My Site".

Fixes!


Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag

Question / Problem
Hello, I would like to ask on how to override "youtube_button" click listener under DefaultPlayerUiController. I have a YouTubePlayerView inside the adapter. whenever I try to click youTubeButton, it always throws a runtime exception "Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?".

I need to override/remove youtubeButton listener, so that I can set a new onClick listener. and do the intent outside the adapter.
or does the library has an existing method/approach for this?
thaanks!

Why don't you provide the Activity context to the method doing startActivity?

I would love to, but how?. I've tried to override/instance youtubeButton and set a new onClickListener so that I can provide Activity context for the startActivity, but, the one first set inside DefaultPlayerUiController was always being called.

thaanks!

It works now. been thinking what you just said, I just pass activity context into adapter.
I completely forgot about this, been using dagger for a while, I don't normally pass activity context into adapter.
thaanks!

I'm glad you figured it out :)


Radial Menu doesn't appear

Describe the bug
I went into settings, and only added one keybind. The radial menu at cursor location. I press the key, nothing shows up, and if I move my mouse somewhere and let go it rubber bands my cursor back to the original location.
The addon is obviously starting, as I'm able to open the in-game menu and change keybinds. The radial menu just doesn't seem to overlay, so this leads me to believe it's an issue with another addon. I have a couple installed:
GW2TACO
ArcDPS (through addon mngr)
GW2Radial (through addon mngr)
directx 12 mod
System configuration (please fill in):

OS: Windows 11
GPU: Nvidia 2070
Chainloading: Not sure, using above addons through the GW2 Addon Manager.

Additional context
I am almost certain this is an issue with GW2Taco, but searching the internet gives no results for this type of issue. I will try not running Taco and see if that fixes it.

You need to setup all of your mount keybinds in the settings, otherwise there's nothing for the menu to show.

Thanks for the quick reply, I skipped right over the instructions like an average internet know it all and this is what happens.
After reading the directions for 30 seconds I now have a perfectly working menu and it's great! Thank you so much!


Set the ingress default backend to a 404 response

Should additionally resolve loop issues in #487

Coverage decreased (-0.006%) to 25.322% when pulling a77767272a600ec84eb00cdaa85af108473cbd69 on defaultbackend-404 into ddfe2b648554911b490ea8ea2b670a6bdaa7332d on master.

Also resolves #597

/lgtm
/approve

/lgtm
/approve

👍


Read config variables for GCE Launch command

The brkt gce launch command was not reading the brkt config
settings for some of the attributes. This update ensures that
the launch command is on par with the encrypt and update GCE
commands for reading the config settings.

Yay!


Suggest a project

Project
IPOR Protocol
Description
IPOR Protocol provides an index of DeFi lending rate and allows for opening interest rate swaps based on this index. IPOR Protocol since inception has underwritten over 4b USD worth of derivatives.
Please provide the project scope.
Safe Apps
Select a primary category of your project.
DeFi
Select secondary categories of your project.
DeFi
Project logo

Value proposition

Vanilla interest rate swaps on-chain - enabling hedging, speculation, and arbitrage of interest rates with high leverage/capital efficiency (up to 500x) and contract duration of up to 90 days.
Best-in-market risk-adjusted pool APRs comprise real-yield (money market yield, trading fees, swap payoffs) and pwIPOR liquidity mining (with APR boosting).
Interest rate indices printed on chain enabling quick review of the state of DeFi money markets and staking rates, and is referenced by the swaps.

Contact
<EMAIL_ADDRESS>Project URL
app.ipor.io
Github / Dev Docs
docs.ipor.io
Twitter
@ipor_io
Primary integration
Safe Apps SDK
Packages
web3-onboard
Modules / Guards
No response
Smart Accounts
IPOR protocol is a product targeted at fund managers and DAOs to be used as part of structured products. Safe brings convenience and security in dealing with those producs.
Is Safe the only Smart Account provider you are using in your project?
Yes
Networks
Arbitrum, Ethereum
Can you create a Safe via the interface?
None
Can you import an existing Safe via the interface?
None

Hey @wookash-ipor, did you submit the request for being added to Safe Apps following this guide? We can list your project on the Ecosystem page when it's approved by the Wallet team or otherwise if you're integrating Safe{Core} stack - docs.safe.global

@zzuziak is there anything we can do to proceed? We have just launched new product that, we have requests from our clients to add safe support for.
https://app.ipor.io/fusion


Channels: broadcast on chain transactions to participants

Pivotal story
This PR:

introduces new channels tag on_chain_tx for broadcasting transactions that ar going into mempool

refactors WS tests so they're easier to write (most notably tests are auto unsubscribed to channels' events upon a test end)

Will prepare a PR in protocol addressing changes.
@lucafavatella since changes are user visible, do you think it is worth mentioning in release notes?

@lucafavatella since changes are user visible, do you think it is worth mentioning in release notes?

@velzevur I do.

I see 2 confirmations. Once I've posted a PR for the protocol repo, I'll merge this PR.


[stable/airflow] redis.enabled: false does not stop Redis from launching

Describe the bug
Setting the redis.enabled option to false does not disable Redis from being run. Either the documentation is incorrect as to what this flag does or Redis cannot be disabled. There's no need for me to use Redis as I am using a different Broker client.
Version of Helm and Kubernetes:
Helm: 2.14.0
Kubernetes:
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-03-01T23:34:27Z", GoVersion:"go1.12", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.3", GitCommit:"5e53fd6bc17c0dec8434817e69b04a25d8ae0ff0", GitTreeState:"clean", BuildDate:"2019-06-06T01:36:19Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"

Which chart:
stable/airflow
What happened:
Redis templates were created and Redis was installed into k8s.
What you expected to happen:
Airflow chart should launch without Redis being installed into k8s.
How to reproduce it (as minimally and precisely as possible):
In values.yaml:
airflow:
  redis:
    enabled: false```
Run `helm install .` in shell.

Issue was resolved by moving the redis options in values.yaml outside of the airflow block.


Issues with promise values?

I'm trying to use this addon with a select value that is a promise. It seems that the === check here: https://github.com/thefrontside/emberx-select/blob/master/addon/components/x-option.js#L45 will not return true if the select.value is actually a promise object, even though the values are "equal". I've solved this locally by sending over the value.content if there is a content property. This leads to a lot of strange behaviors unfortunately.
Is this a problem others are seeing or am I doing something weird? Happy to put in a PR to fix this if this is an actual issue.

you'll need to use the .content property for both the select value and the option value for this to work. We could also use Ember.isEqual to do the comparison, but you would have to make sure that your promise objects actually implemented that method.

Thanks for the reply. I attempted to use the .content but then when it tries to set back to that value it became an issue.
I also tried going into the source and using isEqualbut it doesn't look like native promises have this function set.
Would a PR that will check for a promise and unpack it make sense?

This issue is a pretty big one...

I originally had the same issue, I solved it using content and action together.
     // controller:
  actions: {
    selectCategory(category) {
      this.get('model').set('category', category);
    }
  },

{{#x-select class="form-control" value=model.category.content action="selectCategory"}}
    <option value="No category"></option>
    {{#each product_categories as |category|}}
        {{#x-option value=category}}{{category.name}}{{/x-option}}
     {{/each}}
{{/x-select}}

@peec's example can be shortened using the new mut and action helper:
{{#x-select value=model.category.content action=(action (mut model.category))}}
    <option value="No category"></option>
    {{#each product_categories as |category|}}
        {{#x-option value=category}}{{category.name}}{{/x-option}}
     {{/each}}
{{/x-select}}

mut returns a mutable object for the passed in property.
the action helper is smart enough to return a function that mutates the passed in mutable object.
This seems to be currently working with Ember Data promises.

Here's what worked for me:
//app/validators/belongstomodel.js
import Ember from 'ember';
import Base from 'ember-validations/validators/base';

export default Base.extend({
  call: function() {
    var propertyName = this.property,
        attributeName = propertyName.replace('model.', '').underscore().replace(/_/g, ' ').capitalize(),
        controller = this.model,
        property = controller.get(property);

    if (property && Ember.isEmpty(property.get('content'))) {
      this.errors.pushObject(attributeName + " cannot be blank");
    }
  }
});

 // Controller
 validations:
    'model.something': {
      belongstomodel: true
    }
  },

  actions: {
    selectSomething(something) {
      this.get('model').set('something', something);
    }
  },

  <!-- Template -->
  {{#x-select value=model.something.content action="selectSomething"}}
    {{#x-option value=""}}
      Select a something
    {{/x-option}}
    {{#each somethings as |something|}}
      {{#x-option value=something}}
        {{something.name}}
      {{/x-option}}
    {{/each}}
  {{/x-select}}

@miguelcobain thanks this solution worked well

Indeed, the solutions proffered by @peec and @miguelcobain are the way DDAU is supposed to work. Thanks guys!

The DDAU example should be added to the documentation.


[Hue] Too many requests were sent in a short time, please try again

Extension
https://www.raycast.com/pindab0ter/hue
Description
On all commands most of the times the extension shows an error Toast with the message 'Too many requests were sent in a short time, please try again'.
Steps To Reproduce

Installed the extension via the store
Connected the bridge by pressing the button on the bridge and 'Enter' in the extension
Tried to use the commands

Current Behaviour
The extension shows an error Toast with the message 'Too many requests were sent in a short time, please try again'.
Expected Behaviour
Showing the lists with items (eg: scenes, groups, ligts).

Hey, this is something that I noticed, too. I currently don't have the time to look into this.
Some things to note, though. The library that is used to interface with Hue does (should) honor rate limiting.
Something that I can think of that could possibly be an issue is multiple calls because a view is rendered multiple times when it should only be rendered once.
If anyone is willing to look into this, that'd be great!

This is a duplicate of #4929.

@raycastbot close this issue


[dif/hmac] Clarify Transaction Semantics

This solves a "two wrongs make a right" issue with the endianness configuration, and moves the endianness configuration to be per-transaction.
It also changes dif_hmac_digest_read to be dif_hmac_finish, to clarify the transactional semantics of this DIF, as suggested in #2920.
Signed-off-by: Sam Elliott<EMAIL_ADDRESS>

@jon-flatley can you have a look if this PR is something we still want, and take over if so? Otherwise please close it.


Updates for Kafka and Pulsar JMS Benchmarks

Here is a summary of all that is in this PR.
Framework pom

Add driver-jms
Update netty-all dependency due to using openjdk11

Benchmark

Add --extra option to allocate more consumer workers than producer workers.

WorkloadGenerator

createProducers before createConsumers
ensureTopicsAreReady is no longer needed for Kafka (?)

DistributedWorkerEnsemble

Optionally create more consumer workers then producer workers
If there is an odd number of workers allocate the extra as a consumer

LocalWorker

Fix typo in variable name

create_charts.py

Add chart types
Update some of the labels

driver-jms

Updated README.md
Some driver yaml file tweaks
Scripts to update the OMB gzip to include a JMS Client
JMSBenchmarkConsumer

Use property for end to end latency.
Simply close the connection.

JMSBenchmarkDriver

create JMSBenchmarkTransactionProducer when requested

JMSBenchmarkProducer

Use property for end to end latency.

JMSBenchmarkTransactionProducer

Added

JMSConfig

sendWithTransactions property

driver-kafka deployments

Upgrade version from 2.3.0 to 2.8.1
Use ASF archive instead of mirror.
Configure driver-jms/kafka- drivers
Use AWS spot instances
Use openjdk11
Update the pom from Kafka 2.4.0 to 2.8.1 (Note pom and deploy.yaml were mismatched)

driver-pulsar deployments

Upgrade version from 2.4.0 to 2.8.1
Use downloads.apache.org as mirrors.cgi is deprecated by ASF.
Configure pulsar transaction mode
Configure driver-jms/pulsar- drivers
Use AWS spot instances
Use openjdk11
pulsar_env.ah template - remove dropped JVM options

driver-pulsar

PulsarBenchmarkDriver

comment out adminClient call to setBacklogQuota

Overall pom file

don't force jdk 1.8 build - provide option
force the version of the netty-all dependency

Additional Workloads

On the first conflict please take the added line which adds a property. The second conflict is whitespace,

FYI - @merlimat @vongosling @eolivelli

@dave2wave Did you run it on your platform? Some conflicts could be resolved:-）

Whether Added --extra option help to improve performance？Have any test data？

@dave2wave Did you run it on your platform? Some conflicts could be resolved:-）

Yes, these changes have been run and tested on AWS instances.
There is one file with two conflicts that can be easily resolved - see my prior comment.

Whether Added --extra option help to improve performance？Have any test data？

It does for our Pulsar JMS testing. It is an option so as not to impact everyone else's testing.

I've rebased these changes and will be submitting new PRs


Add optional attribute to update audyssey settings in main update loop

Hmmm, I don't see a big benefit in this. The same could be reached by
await denon.async_update()
await denon.async_update_audyssey()

Maybe a more generic version like include_appcommand0300_update would make sense, when there are multiple classes using that interface. This would enable caching.

Hmmm, I don't see a big benefit in this. The same could be reached by
await denon.async_update()
await denon.async_update_audyssey()

Maybe a more generic version like include_appcommand0300_update would make sense, when there are multiple classes using that interface. This would enable caching.

Yes this is obsolete as we will use an own service for audyssey updates in home-assistant.


optimize object#range_read

    pub async fn range_read(&self, range: impl RangeBounds<u64>) -> Result<Vec<u8>> {
        let mut bs = Cursor::new(Vec::new());
        io::copy(s, &mut bs).await?;
        Ok(bs.into_inner())
    }

since we know the exactly date size to be read,  we could use Vec::with_capacity( range.len()) to pre-allocate the memory to avoid vector auto growth.

We can't calculate the len() if the end_bound is Unbounded. After that, it's an excellent optimization.
Are you willing to implement this issue?

yes,  I'll add a pr.  besides  the end_bound is Unbounded,  we should add a upper limit to len()?  I think 128M is suitable.

yes, I'll add a pr.

Great!

besides the end_bound is Unbounded, we should add a upper limit to len()? I think 128M is suitable.

128MiB is too large for me.
How about fallback to copy_buf with a 4 MiB capacity if end_bound is Unbounded? (So that our buffer will allocate 4MiB memory every time of writing instead of 8KiB)

How about fallback to copy_buf with a 4 MiB capacity if end_bound is Unbounded?
agree

if user pass a very large data range,  let it crashed with oom ? or allocate a buffer to do the data trans to  see what happens ?   in the inital pr,   I add a protection to limit the pre-allocated buffer size to 128M.

if user pass a very large data range, let it crashed with oom ?

I prefer letting user OOM.


Remove nameof for event name

Based on https://github.com/aspnet/AspNetCore/pull/6420#discussion_r245768445

/azp run

I love it. This is the most Ryan thing ever.

I don't think that the changes have anything to do with failed tests.

@Kahbazi very likely :). We have some flaky tests I'm afraid :(. I'll take a look.

Ah, in this case the macOS build agent just got in to a bad state. Restarted.

@aspnet-hello triage https://dev.azure.com/dnceng/public/_build/results?buildId=200798

This comment was made automatically. If there is a problem contact<EMAIL_ADDRESS>I've triaged the above build. I've created/commented on the following issue(s)
https://github.com/aspnet/AspNetCore-Internal/issues/2619

Helix failure seems unrelated. Merging. Thanks @Kahbazi !


-enc equivalent?

Is it possible to pass base64 encoded powershell commands?
Similar to powershell -ep bypass -nop -enc XXXXXX

Hey, It would be easy to implement but it is not necessary IMO.
Just use something like this:
rundll32 Powershdll.dll,main $a = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("BASE64")); Invoke-Expression $a

Should do the trick.

Thanks, I get your point.


Updated code to add GET /v2/search/saved POST /v2/search/saved PUT /v2…

Hello @verdan , @jpoullet2000 , Sorry for being late in creating this PR for "Implement saved search #81". Please let me know if this looks okay. I'm also open for any suggestions. Thanks..
Added code and usage documentation for below -
GET /v2/search/saved
POST /v2/search/saved
PUT /v2/search/saved
DELETE /v2/search/saved/{guid}
GET /v2/search/saved/{name}
I will create separate PR for below and will add test case as well for
all gradually -
GET /v2/search/saved/execute/{name}
GET /v2/search/saved/execute/guid/{guid}

Pull Request Test Coverage Report for Build 354

11 of 34 (32.35%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.3%) to 72.051%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

atlasclient/models.py
11
34
32.35%

Totals

Change from base Build 347:
-1.3%

Covered Lines:
794

Relevant Lines:
1102

💛  - Coveralls

Pull Request Test Coverage Report for Build 354

11 of 34 (32.35%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.3%) to 72.051%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

atlasclient/models.py
11
34
32.35%

Totals

Change from base Build 347:
-1.3%

Covered Lines:
794

Relevant Lines:
1102

💛  - Coveralls

Hello @verdan , @jpoullet2000 , Please approve the PR if everything looks good to you. Thanks!

thanks @pritampan I will review this PR this week. thanks for the contribution. 👍

No problem @verdan ... I'm very interested in this project.

Thanks a lot again @verdan  for your review, please let me know your view on these.


Incompatibility with Immersive Portals

I am unsure whether or not the issue stems from this mod or the other, however, they do not seem to launch with each other. I have already tested a game without one or the other and they seem to work individually with my pack. So something is definitely going on here.
Attached is a crash report.
crash-2023-08-25_19.32.38-client.txt
Sorry if I got it wrong. Sick mod btw.

mainly saying this so I don't have 2 read through the log again later
The issue is LivingEntityRenderMixin::adjustTickDelta; It expects the 4th argument 2 be a float, which for some reason it isn't
(in other words, yea the issue is on Ultracrafts side)

after thinking about it more, due to a lot of issues that would arise with the mods mechanics, I'm not planning on making the mods compatible


cmd/untap: move module methods back into the cmd

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Follow-up to https://github.com/Homebrew/brew/issues/16814#issuecomment-1996318943
The extra module was their to facilitate testing but now that everything is properly namespaced and each command is an instance we can just move the methods into the command. Since it's an instance now we don't need to be as careful about caching either.

Thanks again @apainintheneck!


An institution account should only be linked to 1 eduID

This issue is imported from pivotal
If an eduID is linked to an institution account, the institution account must not be used to link to an other eduID. When a user tries to create an already linked institution account a message is shown and the link is not created. This applies for both the IdP and SP flow.

Both SP and IdP flow check the uniqueness of EPPN for new linked accounts (Okke Harsta - Feb 1, 2021)


Allow to put month at the bottom

Fixed in https://github.com/hsablonniere/activity-graph/releases/tag/v0.2.0


"Install Another Version..." gives error "Failed to install 'ms-vscode.cmake-tools'"

Looks like I need to manually install the vsix at https://github.com/microsoft/vscode-cmake-tools/releases/download/1.1.3/cmake-tools-1.1.3.vsix ….maybe the user could be directed to that?

How to install the vsix to remote vscode server ?

The publisher id change breaks this functionality in VS Code.  This would be their issue.


Add support for Pocketbase as a router/backend

Required check list:

[x] I didn't find in the repository's issues section a similar bug.
[x] I understand, this is an Open Source and not-for-profit product.
[x] This is not about a third-party project, framework, or technology.

Is your feature request related to a problem? Please describe.
I would like to be able to generate a project using Pocketbase as my router/backend
...
Describe the solution you'd like:
An option to choose Pocketbase along with the other router options
...
Describe alternatives you've considered:
Only other option is to edit generated files by hand.
...
Additional context:
Pocketbase is normally used as a standalone binary but can also be used as a framework (built on top of Echo) with very minimal code.
e.g.
package main

import (
    "log"
    "os"

    "github.com/pocketbase/pocketbase"
    "github.com/pocketbase/pocketbase/apis"
    "github.com/pocketbase/pocketbase/core"
)

func main() {
    app := pocketbase.New()

    // serves static files from the provided public dir (if exists)
    app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
        e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS("./pb_public"), false))
        return nil
    })

    if err := app.Start(); err != nil {
        log.Fatal(err)
    }
}

https://pocketbase.io/docs/go-overview/
...
I would be happy to contribute if there was a list of files needed to make this work currently.

Added in #70


Winget upgrade available for same version of app

Brief description of your issue
winget upgrade return upgrades available for same installed version of skype.
Steps to reproduce
winget upgrade
Expected behavior
Should return nothing for upgrade.
Actual behavior
https://github.com/microsoft/winget-cli/assets/16545063/9798f0af-1b0c-492d-b5c2-3743aa0eed65
Environment
Windows Package Manager v1.6.3482
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22631.3085
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.3482.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                D:\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

Looks like the recent manifest submitted to the repository specifies an incorrect PackageVersion; I'll create a PR to fix this behavior


Crash without LuckPerms

crash-2023-11-13_01.41.50-server.txt
Server crashed when start without luckperms that is mentioned as optional.

I cannot reproduce this issue.
Can you please give steps to exactly reproduce this crash.

Pretty wierd, I cannot reproduce this either, but it did happened as I got the crash report.
I'll re-open this issue when I have more detailed info.


Possible lock in the reactive document service RX chain

When getting a document and performing a dead leaves deletion, we might end-up in the dead-lock (or some other kind of issue) inside the CoreThreads that are used to actually communicate with DSE. This results in timeout error and is shown in the DocumentApiV2Test.testPutReplacingWithArray test.
I managed to grab the thread dump in the middle of the test when we are actually waiting for the result of dead leaves deletion. The full log is here.
As we can see, the log the [CoreThread-4] deletion of the dead leaves. However in the thread dump the thread is parking to wait for  <0x000000073ed5d7b0>. And it stays there until timeout is signaled. Right after we start the leave deletion, the message:
WARN  [GossipStage:1] 2021-07-28 15:38:55,293 StorageService.java:3061 - /<IP_ADDRESS> has the same server ID C0-3C-59-BF-C0-ED, and same DC dc1, but is placed in a different rack r1 - (/<IP_ADDRESS>, dc1, rack1) vs. (/<IP_ADDRESS>, dc1, r1)
Any help is welcome.

I can confirm that this problem existed before the yesterday commit for moving to the Cassandra 4 GA. We just did not hit it in the tests.

I guess the Gossiper messages might be a side effect of having core threads locked up for a while. The Gossiper might have decided the node was dead or something like that.


MAPQ scores

Note to developer:
It is not clear if strobealign has optimal mapq scores for variant calling. For example, having an accurate MAPQ score is crucial for SNP calling. See this tweet thread and this subthread.
For info, a relevant paper about this is found  here.

Link to mentioned paper: A tandem simulation framework for predicting mapping quality
The current MAPQ computation function in StrobeAlign uses the formula from minimap2, see Section 2.3.1 in the paper.

I don't see any section numbers in the linked paper, both links above point to the same one: A tandem simulation framework for predicting mapping quality

I don't see any section numbers in the linked paper

Sorry, I shouldn’t comment so late at night – I have fixed the link now.

@ksahlin sent me this comment by e-mail and asked me to post it here:

Good catch with the min_matches bug! Since our “hits” (pairs of linked seeds) are different to minimap2’s minimizer hits, me should probably not use this formula in the future. The heuristic min(M/10,1) is probably derived by Heng from testing. We will not have the same number of matches for our seeds and long reads, therefore the magic constant 10 may be off.
Just mentioning this for caution.  Again, mimicking what BWA-MEM is doing will probably be better (in case possible). Although I heard that BWA-MEM always tries a second mapping location to compute MAPQ(?). This is probably something we want to avoid for all reads, but use whenever we still have to align twice due to multiple mappings. Or in case WFA alignment is so much faster than SSW that we can “afford it”.

(min_matches bug is fixed in #84).

Copying @PaulPyl’s comment from #79:

I didn't have a lot of time this week to check it more clearly but I was wondering about the current implementation of MAPQ as // MAPQ = 40(1−s2/s1) ·min{1,|M|/10} · log s1 in the get_MAPQ function.
Where did this definition arise? As I understand it we would want to put our best guess for the probability that the alignment is wrong in the MAPQ score. So here we take 1 minus the ratio of best to second-best alignment and scale that to 40, i.e. if the alignments are equally good then we end up with MAPQ 0. Since 0*.
Now here is a fun question, if I have exactly two alignments and they are equally good and not discarded because of bad alignment score, would I assume the probability of a given alignment being wrong as 1, implying a MAPQ of 0, or would I assume the probability is 1/<#equally good alignments> and in this case 0.5 with a resulting MAPQ of around 3?
It seems like there is a bit of an issue with this, in the sense that there are no 'correct' MAPQ scores we can benchmark against, since that really depends on the algorithm and our choices.
For reference: -10*log10(c(0.0001,0.5,0.9999,1.0)) 40 3.01029 0.00043 0

I temporarily changed get_MAPQ to not cap the mapping qualities at 60. With this, we can see what the minimap2 formula outputs. The median score is 2013, so it’s no surprise that nearly all MAPQs are set to 60. I agree with @ksahlin that the minimap2 heuristic just doesn’t work the way in StrobeAlign as it does in minimap2.

Oh, made a mistake when computing the median, it’s actually ~1780. And with the fix in #84 merged, this went down to 378.

After getting more evidence that MAPQ scores are not computed accurately from this benchmark I looked at how I describe the MAPQ score calculation in the paper. It is, in retrospect, obvious that we should not simply compute the MAPQ score from the seed-score ratio of the first and second best hit. We should compute the score from the ratio of the alignment scores whenever possible.
Guiding anecdata: IIRC, strobealign's variant calling sensitivity improved significantly without similar decrease in precision when simply putting all non-zero mapq scores values to highest possible confidence (60?). While this is not a good idea, it could suggest that the mapq values may be too conservative.


Handle teams

Hi @phpsa ,
Is there any option to handle teams with this package (I can't find any things about teams in the documentation)?
thanks for your reply, best regards:
Peter

We have not worked on this with teams as yet,
will be looking into that shortly however if there is demand.

Please add the feature for teams.
Filament Multitenancy for SAAS


Add button to create files + How to use Bonobo

Hi,
I installed Bonobo.Git Server for my teacher and I noticed there's no '+' button like in Git Hub. I find this too bad, this functionality really misses and we didn't understand how to upload files on the server.
I was planning to look for the place of the files and add them manually instead of copy or anything else.
What is the best option for us ? We don't use Git clients and my teacher is not familiarised with git command line tool.
Thank you.

OK...
But can I push my project on the server. I don't understand. I tried on this morning with Git Hub client, but impossible to log in with my Bonobo.Git account as Git Hub Enterprise.

Sorry for this late answer. I'm very busy these days.
What I don't understand is uploading. How am I sensed to upload my repositery/project on the server.
I would prefer to use some IDE and then create a project on the server and edit the files : When I'm done,  I would like to upload.
In what way does Bonobo get used ?

@StEvUgnIn: I think many of your questions can be answered by reading the "official" tutorial on the Git website: http://git-scm.com/docs/gittutorial

Hi there, i know this is an old question, but it costs nothing to ask :)
jakubgarfield:

The edit file functionality is out of scope for this project

Maybe i found 2 usable approaches to implement this feature with (hopefully) less work to do:

Someone implemented this feature in java to show how it can be done (https://github.com/junoyoon/git-online-commit-sample).
There are 6 small classes you could possibly port to c#. (The project uses jgit library. There is a c# port https://github.com/mono/ngit)

First use normal file upload for IIS (https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/working-with-binary-files/uploading-files-cs)
and use somethin like this: http://stackoverflow.com/questions/9670302/commit-directly-to-a-bare-repository
(instead of blob you can use a git hash-object to simplyfy the code...)

Unfurtunatly i never programmed something in c# and for IIS Server so i don't know where to begin with to test/implement it myself...

I gave up and I left the server in the same state.
I don't manage servers these days.
Thank you for clues.


Error after broadcast_timestamp

I followed the steps in the instruction, and got the 4 replicas, the proxy, and the orderer to work. But running  orderer/sample_clients/broadcast_timestamp/broadcast_timestamp --secure --messages 3 gave me an error in the proxy.

What does this mean? Or, what does the last tow commands (deliver_stdout & broadcast_timestamp) do in the first place?

I never stumbled upon this ZMQ exception before, but judging from previous experience with BFT-SMaRt benchmarks, I suspect the cause is that you exceed the limit of open file descriptors. Try doing one, or both of these:
a)  Reduce the number of pooled connections by editing the ./orderer/orderer.yaml file, at the ConnectionPoolSize field in the BFTsmart section.
b) Before launching either the replicas or the proxy, increase the aforementioned file limit by typing ulimit -n 10000 in the command line

I followed the suggestion, then the error in proxy didn't appear but in the order

I'm not sure if this wasn't happening before, though.

try creating this global variable before launching the whole system: export ORDERER_CFG_PATH=<path to the fabric fork>
Also make sure you are invoking the orderer from the main fabric folder, using orderer/orderer

For some reason, the error didn't appear when I tried today.
Setting ORDERER_CFG_PATH gave an error perhaps because it is obsolete? Setting the variable gave me the error described at the bottom of
http://fabric-hlj.readthedocs.io/en/v1.0.0-alpha2/getting_started.html
'Unsupported...'

Strange, I don't get that error, even using the latest HLF codebase. Even without having that variable set, the orderer still goes to the correct folder.


Exiting could be more intuitive

Not sure if that's a Vorpal UX issue instead.
To exit from wat:

Ctrl-C works
exit works
Ctrl-D on an empty line does nothing (I expected exit as in shell-like behaviour)
q or quit do nothing (I tried q as a reflection / habit from vim/less etc)

I can make quit an alias in vorpal - as it's pretty all-around. q will be added as an alias on wat.
I'll check out Ctrl-D. I think I remember some complication with it in Vorpal, but I'll check.

Agreed entirely based upon my first experience. Under the welcome message which prints on the first load of wat tour it would be nice to also see "Exit using _ at any point in time"

@passcod added quit to Vorpal by default. Ctrl+D doesn't seem to have a stable handler in Node across all platforms (https://nodejs.org/api/process.html#process_signal_events), so I'm not going to do anything with it right now.
@dawsonbotsford added this message to the tour.


Disable SSLv3 (POODLE)

We are getting mail from our server host about security checks for POODLE.
Could we disable SSLv3 by default in Umbrella nginx ?
http://disablessl3.com/

Ran SSL Labs tests for our Umbrella instances, 0.11 seems to have this fixed, but 0.8 has this issue, so upgrading probably fixes the issue.

Sorry for the delay in responding. Going to close, since this was fixed in v0.11, and there will be further SSL improvements in the upcoming v0.12 release (https://github.com/NREL/api-umbrella/pull/240).


Switch to storing information about PV snapshots as VolumeSnapshot API objects

during backup, instead of storing snapshot info in backup.status.volumeBackupInfo, create a new VolumeSnapshot API object per snapshot
upload a file containing all VolumeSnapshots' JSON for a backup into the backup's directory in object storage
think about how this scales with large clusters/large # PVs - will we have too many API objects? should these only exist as files in S3?

I'm thinking about how this will work for v0.10 if a user wants to import backups from Cluster A to Cluster B.  Our current design has the VolumeSnapshot object storing the Location (i.e. VSL) as a field. So, on import to Cluster B, the naive approach would require that a VSL with the same name (and same config) exist in Cluster B as in Cluster A.
We're planning to do more sophisticated things in v0.11, that will require changes to the BlockStore plugin interface - but, for v0.10, do folks think that requiring that the VSL be named the same in Cluster A and Cluster B if a user wants to do a cross-cluster import is acceptable?
cc @nrb @carlisia @wwitzel3 @ncdc

think about how this scales with large clusters/large # PVs - will we have too many API objects? should these only exist as files in S3?

s/S3/object storage/ ;)

for v0.10, do folks think that requiring that the VSL be named the same in Cluster A and Cluster B if a user wants to do a cross-cluster import is acceptable?

IMO, yes. As a first pass, I think this is acceptable, especially given we're planning to do some betas. If we receive feedback that it's too limiting, then we can change.

@skriss if this simple strategy works, I'd go with it and fix potential issues if/when we come across it.

Tim thinks it might be a bad idea to use etcd to store this kind of information.  I guess there's no real reason, at least for right now, that these need to be stored as custom resources.  We could exclusively store them as JSON in a file in object storage, and just download them as needed to do restores.
We will need to think about implications for replication, since we were planning to use this CRD for that as well.

I had a feeling he would recommend against etcd. When you have time, could you do a bit more of a walkthrough into how it would have worked with a CRD, and what is missing that we have to rework if it's not?

For v0.10, switching to just storing this info as JSON in object storage is pretty simple.  We weren't actually planning to use the CRD to drive any processing, it was just an in-cluster record of the snapshots that existed, and the JSON representation of them is getting uploaded to object storage anyway.  I think we'd remove the CRD, just define a basic go struct to represent them, then serialize a list of them and upload them.
For v0.11, we were planning to use the VolumeSnapshot CRD as a work queue for snapshots that needed to be replicated due to a ReplicationPolicy.  The way this would work is that we'd have a ReplicationController that was watching for new combinations of ReplicationPolicy + matching Backup that needed to be replicated.  When one was found, if it included PV snapshots, a new VolumeSnapshot CR would be created.  A separate SnapshotReplicationController would be processing these and executing the snapshot copy.  The VolumeSnapshot CR would then also contain the status information about whether a snapshot was replicating, replicated, or in some other state.
We could replace the VolumeSnapshot CR with a SnapshotReplicationRequest or something like that - it would be short-lived, would essentially go away once the snapshot was replicated.  Each backup storage location would then store a JSON file (or files) containing information about all of the snapshot copies that existed for each backup.  That way we'd still have the benefit of a separate CR/controller to handle the copying logic, but wouldn't have the drawback of amassing a large number of these over time.
I think this would be a reasonable approach.  It is slightly more convenient to have an API-based representation of all volume snapshots, but it's not that bad to just store that info in object storage and download it as needed.

Recording what we discussed earlier today for posterity: 👍 to proceed with this approach (don't store volume snapshot data as CRs).

I'm pretty sure this can be closed, right? @skriss


Workers

If I make builds with different max gpu and worker names, will the builds show up under different names? or will they still go to the same worker?

If they have different worker names then yes it will show under their separate worker names on the pool.

thx


Automated cherry pick of #4650: fix: 避免创建rds account, database后未设置exteranl_id

Cherry pick of #4650 on release/2.12.
#4650: fix: 避免创建rds account, database后未设置exteranl_id

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.12@c15e23d). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff               @@
##             release/2.12   #4654   +/-   ##
==============================================
  Coverage                ?   6.86%
==============================================
  Files                   ?     502
  Lines                   ?   85552
  Branches                ?       0
==============================================
  Hits                    ?    5877
  Misses                  ?   79181
  Partials                ?     494

Flag
Coverage Δ

#aFlag
6.86% <ø> (?)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c15e23d...0eadd02. Read the comment docs.

/lgtm

/approve