Extend autoSkipNonRecoverableData to apply to missing Schemas in Bookkeeper

Background
Pulsar uses bookkeeper as the storage mechanism for data/cursors. In #1046 a flag was added by  @rdhabalia : autoSkipNonRecoverableData that allows an admin to tell the broker to disregard missing ledgers and skip ahead. This helps in certain scenarios where the ledger is gone and it is unrecoverable (or not worth recovering.)
This flag helps prevent users from getting stuck with NoSuchEntryException/NoLedgerException when the bookkeeper cluster has suffered data loss.
Is your feature request related to a problem? Please describe.
The autoSkipNonRecoverableData flag does not solve the problem where the topic has a schema attached (stored in bookkeeper) and the ledger containing that schema goes missing. In this situation clients will receive NoSuchEntryException/NoLedgerException exceptions. Even if the admin unloads the topic the problem will still continue to occur until the admin deletes the schema
There are two key problems:
If the admin has never seen this issue before they will probably spend time checking stats-internal to see if the ledger is a cursor or if it contains entries. However the referenced ledger will not appear anywhere in stats-internal.
The autoSkipNonRecoverableData ostensibly exists to prevent users from getting stuck with NoSuchEntryException/NoLedgerException when ledgers go missing but it doesn't apply to missing schemas.
Describe the solution you'd like
Modify BookkeeperSchemaStorage to check autoSkipNonRecoverableData and behave accordingly.
Add additional output to stats-internal to show schema information including the ledgers that are used for schema storage (if the default BookkeeperSchemaStorage implementation is being used.)
Describe alternatives you've considered
Rather than modify BookkeeperSchemaStorage the broker code could be modified to catch the missing ledger exception and hide it if this flag is set.
A different boolean flag could also be used to control this behavior if there is a scenario where the admin wants to skip missing schemas but not missing data (or vice-versa)

Thanks @wmccarley for such a great github issue reporting.
@wmccarley Would you like to contribute a fix for this?

Yes I will work on a fix

Hi @wmccarley is there any update on this ?

Closed as stale. Please create a new issue if it's still relevant to the maintained versions.


Add foreign validation warning for rename actions.

Add missing validation checks for renaming foreign nodes, both regular renames and batch renames. Will prevent disallowed node renaming when using shortcuts.

Updated to put the warning after the selection checks for both actions.

Thanks!


Add docker-compose script

Closes #22
Full credit to @elim0322, just porting his work into this repo

Stopped the CI as there's no code change


Add link to docs page to main github repo page

Can you add a project website link to https://louisdesdoigts.github.io/dLux/ under the About tab on the right in the main GitHub page?
Only Louis has authorization to do this.

Added 👍


Create new export function recs who haven't yet submitted info

Create the ability to export a CSV of recs that have been created, but have not yet been filled out.
Refs #636

@angaither Would it be possible for you to manually pull this for me if the new function isn't done by Thursday? The app closes on the 28th so I want to make sure to blast recommenders one more time.

@lizzydivine I sent this in an email, do you need this done again?

@angaither Yeah, I already sent an email to the contacts you emailed me last week, but I'm hoping to send another reminder to any new recommenders by the end of this week.


Add background file resource loader

This is a proposal based on the many resource loaders in Presto.  The loader details:

Value is always present
Failed loads retain existing value
Initial load is in constructor, which if fails throws directly
Manual reload with refreshNow method
Optional timed loading in background thread
Optional exception handler for background loads (default logs)
Builder syntax for future extensions

It’d be even more useful if it allowed arbitrary actions in the background loader beyond just loading a file. E.g., it could be used to refresh configuration or a list of nodes or other resource that originates from a remote service.

I guess we could allow for any action, but I was thinking that this can be tuned to be smarter about files over time. For example, only call loader when file modified time or size changes.  Additionally, we could hook into the OS file change events.

Failed loads retain existing value

At some point you may want to do something about that.
(rg When you fail to refresh authorization rules 10 times straight, it's not necessarily safe to continue to operate the system.)

cc @kokosing


Use WSL bash for FSL commands if available

All directories and files which are generated from MATLAB on Windows using AA need to be converted to a WSL compatible version of them before they are run by FSL. Due to this I implemented a function which can convert a Windows directory to it's WSL counterpart. Can you please review this function for me? I guess it may cause issues if the command contains ":" in it. Are there any FSL commands which may have that marker in it?
A better approach could have been to use Regex, which I don't know very well, but I can check.
I made it so that the paths in the FSL command are converted, so hopefully it will only be directories in the command.
Additionally, at line 46 the second parameter of the export command is converted to WSL compatible version as people may put a windows path to their user parameter file.

We cannot test the functionality, I am afraid. However, if it passes the CI, then we can merge.

We cannot test the functionality, I am afraid. However, if it passes the CI, then we can merge.

Yes I understand this. I will be extensively using this functionality and will help fixing the bugs when I run into them. No worries.


Breadcrumbs redirection to patient edit consultation form is not working as expected

Describe the bug
from the patient consent record page, when we click on the consultation, in the breadcrumbs, we are taken to a new consultation form,not the existing consultation of the patient
To Reproduce
Steps to reproduce the behavior:

Go to any active consultation
Click on manage patients and click on the consent records
view the breadcrumbs on the left side and click on the consultation
See error

Expected behavior

[ ] When we click on the consultation in the breadcrumbs, it should take the user to the patient's existing consultation page

Screenshots

@nihal467 can u assign this to me

Hi @nihal467 , Can i work on this issue?

@nihal467 is someone working on this?

@nihal467
First of all, these are the breadcrumbs:

and these are the URIs linked to each of the breadcrumb:

As you can see, no matter which page you are on, whenever you click on Consultation from the breadcrumbs, you will always be redirected to Create Consultation page because the URI linked to Consultation corresponds to that page in the routing. However if you click on Admitted on 03:54 PM; 10/12/2023 (which is unclickable from the Patient Consent Records page), you will be redirected to the consultation of the patient because of its URI.
Similar is the case for when you click on Patient from the breadcrumbs, you will be redirected to Create Patient page because the URI linked to Patient corresponds to that page in the routing. But when you click on the name of the patient (Anjali Krishnan in this case), you will be redirected to her page.
So suggest me a solution?
The solution I have in my mind is to remove Admitted on 03:54 PM; 10/12/2023 because it makes no sense to be in the breadcrumb and make its URI as Consultation's URI

@nihal467 ,Working on this issue as the initially assigned person was unable to complete it on time.


Different snapshots on iOS 14.2 and 14.4 simulator

When I create snapshots on an iOS 14.2 simulator, it differs a little bit from the snapshot made on an iOS 14.4 simulator (both iPhone 11, but that shouldn't matter, right?).
Sometimes the difference is much smaller than shown in the example images; sometimes it's only one letter in a paragraph...
Here are the two images and one showing the diff (made in Kaleidoscope):

This is expected. Apple makes small changes to how its UI renders regularly, including very minor adjustments to how fonts render. This means you'll need to re-record snapshots occasionally, and you'll need to maintain a stable environment. From our README:

⚠ Warning: Snapshots must be compared using a simulator with the same OS, device gamut, and scale as the simulator that originally took the reference to avoid discrepancies between images.


add support for composing source maps

Create a script in source_maps that given mappings from file A -> B and B -> C, it creates a direct mapping from A -> C.

This issue has been moved to dart-lang/source_maps#5.


Suggest an official way to use libraries only on the client

Some libraries are designed and compiled to run in the browser and can't work with SSR.
Most of the time (I think) it's sufficient to simply disable that library on the server and just render a spinner instead. Sure, you won't get the benefits of SSR for that specific library, but the rest of your application still gets to reap the benefits of smooth routing, data loading and sweet, sweet streaming rendering.
I'm struggling with this issue with ag-grid. I want to use solid-start for the seamless data loading and streaming rendering. However, on one specific subpage, I want to use ag-grid to display some data. It's more than adequate for me to have this page display a loading spinner until the data and the ag-grid library is loaded.
However, I can't figure out how to completely divorce the ag-grid library from the server side. When I build my project, the server side bundle crashes during build because of ag-grid, even though I lazy load the library.
I'm guessing this is a common enough use case that there should be an official, recommended procedure for including client-only libraries that are not included in the server bundle.
This would be great as a subpage of the docs, perhaps titled "Client-only libraries" or "Disable SSR for specific libraries".

There is a unstable_clientOnly import util that works exactly like lazy but it will only render it on the client.. i've done some work in #744 to make this possible and a tracking issue #739.
here is a example that i used to get the monaco editor working https://stackblitz.com/edit/solid-ssr-vite-bkw6w8?file=package.json,src%2Froutes%2Findex.tsx%3AL10

So isServer isn't cutting it?
Example: useServerContext

I tried to use it like this:
const AgGridSolid = lazy(() => {
  if (isServer) {
    throw "THIS SHOULD NEVER RUN ON THE SERVER";
  } else {
    return import("ag-grid-solid");
  }
});

The server bundle build still fails with the same error:
Error [RollupError]: "template" is not exported by<EMAIL_ADDRESS>imported by<EMAIL_ADDRESS>    at error (file:///home/tomas/node-modules-hub/dollarscope/node_modules/.pnpm/rollup@3.18.0/node_modules/rollup/dist/es/shared/node-entry.js:2105:30)
    at Module.error (file:///home/tomas/node-modules-hub/dollarscope/node_modules/.pnpm/rollup@3.18.0/node_modules/rollup/dist/es/shared/node-entry.js:13174:16)
    at Module.traceVariable (file:///home/tomas/node-modules-hub/dollarscope/node_modules/.pnpm/rollup@3.18.0/node_modules/rollup/dist/es/shared/node-entry.js:13559:29)
    ...

Am I using it in a way that is incompatible with tree-shaking? :thinking: Or does it just not work?

There is a unstable_clientOnly import util that works exactly like lazy but it will only render it on the client

Tried that now:
const AgGridSolid = unstable_clientOnly(() => {
  return import("ag-grid-solid");
});

Server build still fails with the exact same error, unfortunately :thinking:

Am I using it in a way that is incompatible with tree-shaking? thinking Or does it just not work?

The dynamic import may be messing with the tree-shaking.
Rollup has open issues regarding this problem.
The workaround is to create a façade module.

i forgot to add im my previous comment you also need to add ag-grid-solid to your ssr external

That works! That's awesome :slightly_smiling_face:
If I don't use a facade module, the entirety of ag-grid is added to my index.js after build. If I use a facade module, then the facade module gets the entire bulk of ag-grid instead, which is preferable, but I get this warning during build:

"default" is imported from external module "ag-grid-solid" but never used in ".solid/server/assets/AgGridSolid-2ddd4236.js".

I know I can just ignore this, but I don't like getting in the habit of ignoring warnings. Is there any way to get rid of this warning?

AgGridSolid.tsx:
import AgGridSolid from "ag-grid-solid";

export default AgGridSolid;

I know I can just ignore this, but I don't like getting in the habit of ignoring warnings. Is there any way to get rid of this warning?

the best way to do this would be to turn that facade module into a component and use it there.

the best way to do this would be to turn that facade module into a component and use it there.

@Hubro You're going to want to do this anyway.
unstable_clientOnly() essentially means "Client-Only Component" i.e. it does the heavy lifting of replacing the server fallback content that was SSRed with the client-side component in the browser.
So it's a way to use client-only components rather than a way to control client side imports (which would leave you with additional work).

So isServer isn't cutting it?
Example: useServerContext

isServer is highly discouraged because it may cause hydration mismatches.
There's two ways right now to solve this but the safest way would be to use unstable_clientOnly

Yeah this is an area still under design because of things like this. Ideal the dependency graph could be isolated this way.

This is fixed in the new Solid Beta.
In setting up for SolidStarts next Beta Phase built on Nitro and Vinxi we are closing all PRs/Issues that will not be merged due to the system changing. If you feel your issue was closed by mistake. Feel free to re-open it after updating/testing against 0.4.x release. Thank you for your patience.

See https://github.com/solidjs/solid-start/pull/1139 for more details.


Abandoned?

This project seems abandoned, there has been several PRs to address the warnings introduced in Swift 3.1 that has been untouched by the maintainer(s).

Quite unfortunate...

Any alternatives out there?

Same question. Is there any alternative?

Probably too late, but for anyone who visits the thread in the future - you can check on https://developer.apple.com/documentation/uikit/uiview/1622552-animatekeyframes


Updown service

Added optional generic service for component shutdown/power up called UpDown with the following content:
bool power_on # whether the device should be powered on or not
---
bool result # whether the order was successfully carried out or not
string error_message # text message describing issues when carrying out the power on/off order

Feedback on the service naming is appreciated, as:

We already have a Power generic interface (even if it's a message) so something like powering could be even more confusing than UpDown (my opinion)
PowerUp/PowerOff/Shutdown etc. are specific to either setting it on or off

Restructured the generic interfaces' model folders to homogenize with the rest of models.
Separated into a file (generic.xml) containing all generic interfaces for generation and another (base.xml) to group the generic mandatory interfaces (like before).

I don't really like the service name UpDown, it's rather confusing.
I would suggest something like:

turn_on_off
shutdown
power_off

@ibaiape, @carlossvg, @igorrecioh suggestions are wellcome.

I have a doubt, the idea of this service is only for switching the component off or also for turning it on?
If its aim is to switch off, I would choose Shutdown


Update HAL Browser Dependencies with latest JQuery, Toastr

References

Upgrades JQuery to avoid known vulnerability (https://nvd.nist.gov/vuln/detail/CVE-2019-11358) in our local copy of the HAL Browser, reported in https://github.com/mikekelly/hal-browser/pull/99
This PR is loosely based on https://github.com/mikekelly/hal-browser/pull/100 (but updated to use https://www.webjars.org/)

Description
Updates our locally customized HAL Browser to latest version of JQuery and Toastr
Instructions for Reviewers
Test the HAL Browser and especially the login screen.  As long as behavior is unchanged, then this upgrade succeeds.
List of changes in this PR:

Upgrades JQuery to v3.5.1
Upgrades Toastr (used to create the success/failure notification on login page) to v2.1.4
Updates our Server webapp to pull in both of these dependencies via WebJars.org
Also corrects the License headers in the third-party files customized from the HAL Browser

Okay, update to the jQuery v3.5.1 version, download the dependencies well and navigate well in some sections

Merging as this is at +2


Empty string as response causes JSON assertions to pass

From discussion here: https://stackoverflow.com/q/56784911/143475
Example, this passes:
* def response = ''
Then match $.orgId == '#present'

released 0.9.4


Error setting up Harmony platform

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.48
Python release (python3 --version):
3.4.2
Component/platform:
harmony
Description of problem:
After upgrading from 0.47.1 to 0.48, I am seeing the following error in the log.  Restarting HA still shows the same error.  No problems with this in previous releases.
2017-07-02 07:51:52 WARNING (MainThread) [homeassistant.components.remote] Setup of platform harmony is taking over 10 seconds.
2017-07-02 07:53:19 ERROR (MainThread) [homeassistant.components.remote] Error while setting up platform harmony
Traceback (most recent call last):
File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 164, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
File "/usr/lib/python3.4/asyncio/tasks.py", line 372, in wait_for
return fut.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/remote/harmony.py", line 72, in setup_platform
if host and host[1:] in set([h[1:] for h in DEVICES]):
File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/remote/harmony.py", line 72, in
if host and host[1:] in set([h[1:] for h in DEVICES]):
TypeError: 'HarmonyRemote' object is not subscriptable
Expected:
Problem-relevant configuration.yaml entries and steps to reproduce:

Traceback (if applicable):
2017-07-02 07:51:52 WARNING (MainThread) [homeassistant.components.remote] Setup of platform harmony is taking over 10 seconds.
2017-07-02 07:53:19 ERROR (MainThread) [homeassistant.components.remote] Error while setting up platform harmony
Traceback (most recent call last):
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 164, in _async_setup_platform
    SLOW_SETUP_MAX_WAIT, loop=self.hass.loop)
  File "/usr/lib/python3.4/asyncio/tasks.py", line 372, in wait_for
    return fut.result()
  File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
    raise self._exception
  File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/remote/harmony.py", line 72, in setup_platform
    if host and host[1:] in set([h[1:] for h in DEVICES]):
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/remote/harmony.py", line 72, in <listcomp>
    if host and host[1:] in set([h[1:] for h in DEVICES]):
TypeError: 'HarmonyRemote' object is not subscriptable

Additional info:

I have the same error, but if I run an activity from HA, it works and the state is being reflected correctly in my hub state sensors.
Have you actually tried to launch an activity from HA or one form the hub and checked the state?

The one action I have set up is to turn off/on my TV.  It seems to work but the status is a bit flakey.

I'm seeing the same error message.

Looks like this was introduced by the #7741 PR by @tony2nite. May be he can help.

Thanks for jumping on this @balloob


Demo without Node / Yarn?

Hi - this looks like a really excellent library, thank you.
Sorry to ask a basic question - but - I wondered if you might be able to provide a demo page which shows how to use the native emoji button please, linking to the minified JS code here:
<script src="https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>As I have been trying to do that, but when I copy this code from your docs:
import EmojiButton from '@joeattardi/emoji-button';
const button = document.querySelector('#emoji-button');
const picker = new EmojiButton();
picker.on('emoji', emoji => {
document.querySelector('input').value += emoji;
});
button.addEventListener('click', () => {
picker.togglePicker(button);
});
I get errors around the import line, presumably because I am not using node.js
I'd like to be able to use the library on a basic website, without needing to install node.js or yarn or anything else like that, but I wondered if that is possible, or will this only work with one of those installed?
Any advice would be much appreciated.
Thanks!

When you include the script tag, there should be a EmojiButton property in the global scope, which you can use to construct the picker.

Hi, have you had any luck getting this working?

Hi Joe - thanks for your replies - sorry I didn't respond before.
I was able to get it working by saving the HTML from your https://emoji-button.js.org/ site, and from there got it working on my C:\ drive.
If I look at the JS here:
https://emoji-button.js.org/index.js
It is different to the JS here:
https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>The JS in each file is very similar, but - what I was trying to do was work out how to include a link to the CDN JS on a basic HTML page, and display the native style picker, but I cannot work out how to do it.
I can get the picker to work when linking to the JS from emoji-button.js.org, but I would prefer to link to the CDN JS - however, when I do that, I am not sufficiently knowledgeable in the use of JS to be able to work out the syntax to get that to work.
If you have any time to advise please, it'd be very much appreciated.
Thanks
Jim
I was hoping to try and strip out the JS into one single file

Hi Jim,
I put together a quick example on CodePen showing how to get this working using the CDN version:
https://codepen.io/thinksInCode/pen/YzymeoM
Basically, when you use the script tag to load the module, it creates a global variable called EmojiButton that you can just then use to create the picker - see the CodePen example for details.
Hope this helps.

Hi Joe - thank you very much indeed for doing that - I have a clearer idea now of how that works.
I realise I am asking for a lot here - is there any way it can be modified, so that any emoji that is clicked on appears inside a text input field, or is that not really possible, and instead the content has to be loaded into a DIV like in your demo on https://emoji-button.js.org/:

If the only way is to load it into a DIV, and if you have time, please can I ask for your help in showing how the codepen can be modified to use the CDN JS and replicate the functionality from https://emoji-button.js.org/?
Or, if it is possible for the emoji to be loaded into a text input field, and sorry, I realise I am asking you for a lot, would you have time to show that in a codepen please?
Thank you again for your help and patience.
Jim

If you use the native emoji style, you can definitely use a text field instead of a div.
All you have to do is listen for the emoji event on the picker and you can do whatever you want with the emoji that was picked.
If you want you use the twemoji style, then in that case you would need to use a contenteditable div because those are images, which can't be inserted into a text field. The native style uses the native Unicode code points so they are plain text characters that can be inserted into a text field or text area.

Thank you Jo! Your help is much appreciated. I asked for help on Stack Overflow re. how to add the clicked emoji to a text input field, as I am out of my depth, and someone answered it. Thanks for helping me with this issue.

Hi Joe, any possibility of showing how it works without npm/Yarn?
The code pen you posted (https://codepen.io/thinksInCode/pen/YzymeoM) leads to a 404.
Thank you!

Both codepen links are dead.


Added queryAllByHook method

Fixes https://github.com/AmpersandJS/ampersand-view/issues/58

that big green merge button is looking awfully clickable!  &-view may be due for a lead nominee.

published as v7.4.0

Thanks for the bump @cdaringe


Tooltip position wrong just first time

Hi,
I have a jbox tooltip inside a datatables plugin and the first time that the mouse is over the button the tooltip (it's an image) is positioned top-right when it should be center-right, next time it is well positioned. It is happens on all buttons. I use targets,
new jBox('Tooltip', {
attach: _this,
target: _target,
position: {x: "right", y: "center"},
offset: {x: 5, y: 0},
outside: 'x'
});
FIRST TIME -> WRONG POSITION

NEXT TIMES -> PERFECT AWESOME

If you need some test, feel free to contact me.
Regards

I think thats because it takes some time to load the image. When jbox opens and the image is not loaded, the image has height zero and therefore the calculation of the position calculates with a content height of zero.
You can try to give the image an height, that should fix the issue. Other than that, the only option i see would be to reposition jBox when the image is loaded.

Hi, Solved. Thank you very much.
I just set width and height properties to the img -->


Read fails after some time

Hi,
i got two problems.

wait_for_tag is not working for me - it just hangs there waiting. However i can read tags after commenting out the wait_for_tag bit
After like 40 reads in a row ( not a specific number it just happens after some time ) not tags can be read anymore.  It always errors out after rdr.request()

System is a fresh raspian on a raspberry zero w

Hey @zlokomatic,
can you please check whether https://github.com/ondryaso/pi-rc522/pull/49 fixes the issue for you? Thanks!

I ran into a similar problem and the patch from @layereight helped, thanks!
Interestingly enough, the problem does not occur with every RFID tag. I have two different types (tokens and cards). While the tokens work flawlessly without the patch, the cards always result in failing reads when left on the RFID reader. Once the reads start to fail, none of the cards can be read anymore but the tokens can be read. Once a token was read, a card can again be read again (again, resulting in errors when left on the RFID reader for too long).
Anyway, with the patch everything seems to work, thanks again!

same problem. Same fix worked. thank you!

Hm, strange with fix #49  the wait_for_tag() blocks only once i.e. until the first time a tag is read. Afterwards there is no waiting for tag i.e. no blocking increasing the CPU usage to 100%.
However, activating #self.irq.clear() in line 399 again makes it work for me on a Pi Zero.


luci-app-multiwan missing dependency

luci-app-multiwan depends on multiwan, but there's no package named multiwan in package feed. Drop this package should be a good idea. Any thoughts?

@wongsyrone @jow-  Possibly obsoleted by mwan3 and mwan3-luci, both in the packages feed.

better migrate mwan3-luci to this repo.
On May 29, 2015 9:10 AM, "Jonathan Bennett"<EMAIL_ADDRESS>wrote:

@wongsyrone https://github.com/wongsyrone @jow-
https://github.com/jow- Possibly obsoleted by mwan3 and mwan3-luci,
both in the packages feed.
—
Reply to this email directly or view it on GitHub
https://github.com/openwrt/luci/issues/395#issuecomment-106646857.

This general issue has been under consideration. There are arguments to be made for keeping all the luci apps in this repo, as well as for putting the 3rd party luci apps in the packages repo where the underlying packages are. So far, it has not become obvious which will be the best option.


Show CORS Proxy option only when relevant

3-13-23
moved CORS proxy checkbox and URL to the bottom of the data entry form and adjusted the form


Make the search box work if you have a pathPrefix

The search box was hardcoded to redirect to a URL of /(tweetid)/ which is a problem if you're using a pathPrefix. Since tweetback uses the Base plugin to rewrite tweet URLs in accordance with a defined pathPrefix, we should use that. However, the code to do the redirect is in JS, not HTML. So we write out some invisible HTML in a

I like it, thanks!


I apologize, but I don't have access to the actual files in your directory.

Issue
how to i solving it ? I want Aider to help me work on specific files....
I am on Linux Fedora
Aider, read all files in this directory and provide a summary.
I apologize, but I don't have access to the actual files in your directory. As
an AI language model, I can only work with the information you provide to me. If
you want me to analyze or summarize specific files, you would need to share
their contents with me directly in the chat.
If you have specific files you'd like me to look at, please paste their contents
into the chat, and I'll be happy to provide a summary or analysis based on what
you share.
Version and model info
No response

Thanks for trying aider and filing this issue.
When reporting problems, it is very helpful if you can provide:

Aider version
LLM model you are using
Any stack traces or error messages
A description of what you were doing when the error happened.

Including the “announcement” lines that aider prints at startup is an easy way to share some of this helpful info.
Aider v0.37.1-dev
Models: gpt-4o with diff edit format, weak model gpt-3.5-turbo
Git repo: .git with 243 files
Repo-map: using 1024 tokens

I'm going to close this issue for now, but feel free to add a comment here and I will re-open or file a new issue any time.


Fixes issue #367

Fixes issue #367 by checking if System.console() is null before attempting to use it to print. This is recommended by the Android docs.

Hey Chad, will that fix the issue with the camera not working under 6?

It will fill the crash that you guys are seeing. It won't however make it
use the camera2 api. However as long as marshmallow isn't your build target
it will still work with the old camera api.

Cool I'll try that thanks so much!
On Aug 24, 2016 4:05 PM, "Chad Wilken"<EMAIL_ADDRESS>wrote:

It will fill the crash that you guys are seeing. It won't however make it
use the camera2 api. However as long as marshmallow isn't your build target
it will still work with the old camera api.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lwansbrough/react-native-camera/pull/381#issuecomment-242207739,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAUnhndyxqIiWS4x27Pyj3CCGVCdC__Bks5qjLINgaJpZM4Jsa86
.

Why are we using System.console at all? Wouldn't Android's [Log.e](https://developer.android.com/reference/android/util/Log.html#e(java.lang.String, java.lang.String, java.lang.Throwable)) be more appropriate here?


Add code coverage reporter for jscoverage

This is a simple reporter that extends the json reporter output with coverage data generated with jscoverage. Example output would look something like the following:
{
  "instrumentation": "node-jscoverage",
  "sloc": 931,
  "hits": 504,
  "misses": 427,
  "coverage": 54.13533834586466,
  "files": [{
    "filename": "mocha.js",
    "coverage": 100,
    "hits": 10,
    "misses": 0,
    "sloc": 10,
    "source": {
      "1": { "line": "require('covershot');", "coverage": "1" },
      "2": { "line": "require('something-else';", "coverage": "1" }
      } // remaining lines follow
    }
  }]
  // normal json reporter output
}

If no jscoverage instrumented files are found it will output the summary level coverage data with default values (usually zeros). For example, when no instrumented files are present it would extend the normal json reporter output with the following:
{
  "instrumentation": "node-jscoverage",
  "sloc": 0,
  "hits": 0,
  "misses": 0,
  "coverage": 0,
  "files": []
  // normal json reporter output
}

Please note that this reporter doesn't change the existing json reporter in any way. It only uses the same output format as the basis for its output.
This pull request is related to issue #5.

cool man, looks pretty good i'll pull it down in a bit and test it out


Fix broken make target docker-testacc due to missing \

The docker-testacc target was broken by #271 due to a missing ending slash \
The docker-testacc target runs successfully.

Fixed in https://github.com/elastic/terraform-provider-elasticstack/pull/272


Update OCR Setup

Codecov Report

Merging #150 (3c3511c) into v1Fixes (d55c0e7) will decrease coverage by 0.02%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           v1Fixes     #150      +/-   ##
===========================================
- Coverage    11.54%   11.52%   -0.03%
===========================================
  Files           11       11
  Lines         1377     1380       +3
===========================================
  Hits           159      159
- Misses        1202     1205       +3
  Partials        16       16

Impacted Files
Coverage Δ

client/blockchain.go
0.00% <0.00%> (ø)

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 d55c0e7...3c3511c. Read the comment docs.


Launch different phases separately depending on need

A simple implementation that remembers the readings of the states when calling the layout, drawing blocks separately, and then with the help of a global observer checks which states have changed, if those that were read during layout or drawing have changed and composition is not going on now, then we run the layout or drawing phase separately.
Since composition does not occur in case of some changes, therefore, when completed in the MosaicComposition#awaitComplete method, we additionally expect one frame to be rendered, if necessary.
Fixes https://github.com/JakeWharton/mosaic/issues/449.

[ ] CHANGELOG.md's "Unreleased" section has been updated, if applicable.

Will look soon. Been so busy I can barely work on anything myself let alone review.

Is this derived from what Compose UI is doing?

Is this derived from what Compose UI is doing?

It seems that the Compose UI does the same thing in a more advanced way. And also at the level of individual nodes.

Hmm haven't seen this failure before. We've had ID signature clashes, but they were always on the JS target not native (https://github.com/JetBrains/compose-multiplatform/issues/3418).

Okay so we're getting JetBrains' repackaging of collection as well as the AndroidX one now. I tried to use dependency substitution tricks, but with each platform being its own Maven coordinate it's gets annoying really quickly. I'm just going to back out that change for now and we can come back to it once JetBrains updates or Google starting shipping MPP runtime themselves.


Some questions about logger refresh mechanism in the agent startup process.

Why do you submit this issue?
[√] Question or discussion

Question

What do you want to know?

I have some doubts about logger in the agent startup process.
The first step of agent startup process is to load configuration items. Source code shows below:
try {
    SnifferConfigInitializer.initializeCoreConfig(agentArgs);
} catch (Exception e) {
    // try to resolve a new logger, and use the new logger to write the error log here
    LogManager.getLogger(SkyWalkingAgent.class)
            .error(e, "SkyWalking agent initialized failure. Shutting down.");
    return;
} finally {
    // refresh logger again after initialization finishes
    LOGGER = LogManager.getLogger(SkyWalkingAgent.class);
}

What is the reason for resolve a new logger when catch an Exception and why dose it need to refresh logger again after initialization finishes ? I found it dose not need to resolve or refresh logger in earlier version.

Because agent logger init process could fail, then logger could have different implementation. You should know, the community does not take the responsibility to explain codes.


Code Quality: Remove ini-parser-netstandard dependency

Resolved / Related Issues
To prevent extra work, all changes to the Files codebase must link to an approved issue marked as Ready to build. Please insert the issue number following the hashtag with the issue number that this Pull Request resolves.

Closes #15650

Steps used to test these changes
Stability is a top priority for Files and all changes are required to go through testing before being merged into the repo. Please include a list of steps that you used to test this PR.

Open Files app

How come? The same name in different sections seems not to be supported. We might want, but as of now we don't need to go such far.

The same name in different sections seems not to be supported.

That should not be the case. In any case, I think we should define a section to avoid affecting other apps.

Steps used to test these changes

Were these changes tested? I'm trying to test them on my side but it doesn't work.

The same name in different sections seems not to be supported.

That should not be the case. In any case, I think we should define a section to avoid affecting other apps.

@hishitetsu I misunderstood what Wikipedia says and you're right. Now that the PR is ready again.

There seems to be no functional problems. My remaining concern is this. https://github.com/files-community/Files/pull/15654#discussion_r1663302746


New version: Celestia.Celestia version 1.6.3

Pull request has been created with Komac v1.6.0 :rocket:
Microsoft Reviewers: Open in CodeFlow

I'm also unable to connect.

It appears that this publisher doesn't have an SSL certificate on their website.


Add assorted missing core functions

Add the following functions:

SetWindowIcons
SetWindowMaxSize (and modify implementation of SetWindowMinSize
SetWindowOpacity introduced with 4.2
SetWindowFocused
GetRenderWidth
GetRenderHeight
GetWindowScaleDPI introduced with 4.2
IsShaderReady
GetScreenToWorldRay
GetScreenToWorldRayEx
SetRandomSeed (and modify implementation of GetRandomValue
LoadRandomSequence
UnloadRandomSequence
IsKeyPressedRepeat

These changes required the following member variables to be added:

Random rCore.random
Size Window.screenMin
Size Window.screenMax

NOTE: This is untested! (hence Draft status) I haven't been able to successfully build with the new build system. As soon as I am able I will test these changes.
This PR will increase raylib coverage (raylib.h/raymath.h) from 75.29% (at 4c7478e) to 77.65% (2.36% increase)

This PR is now ready for review. I have tested all but the IsShaderReady and GetScreenToWorldRay/Ex using the demo code below. Let me know if you'd rather I just remove those untested functions from this PR.
Note: modifications to GetWindowSize have been cherrypicked from https://github.com/CreedVI/Raylib-J/pull/46 as they were required for GetWindowScaleDPI to work (at least on my Mac)
package helloworld;

import com.raylib.java.Raylib;
import com.raylib.java.core.Color;
import com.raylib.java.core.input.Keyboard;

import static com.raylib.java.Config.ConfigFlag.*;

public class HelloWorld {
    public static void main(String[] args) {
        Raylib rlj = new Raylib();
        rlj.core.InitWindow(800, 600, "Raylib-J Test");
        rlj.core.SetWindowState(FLAG_WINDOW_RESIZABLE);
        rlj.core.SetWindowMinSize(200, 300);
        rlj.core.SetWindowMaxSize(650, 400);

        float timer = 1.1f;
        int randomValue = 0;
        int[] randomSequence = new int[5];
        int iterations = 0;
        int keyPresses = 0;
        int repeatedKeyPresses = 0;
        int keyReleases = 0;
        while (!rlj.core.WindowShouldClose()) {
            rlj.core.BeginDrawing();
            rlj.core.ClearBackground(Color.RAYWHITE);
//            System.out.println("DPI: " + rlj.core.GetWindowScaleDPI().getX() + ", " + rlj.core.GetWindowScaleDPI().getY());
            int renderWidth = rlj.core.GetRenderWidth();
            int renderHeight = rlj.core.GetRenderHeight();
            int screenWidth = rlj.core.GetScreenWidth();
            int screenHeight = rlj.core.GetScreenHeight();
            rlj.text.DrawText(
                "render size: " + renderWidth + "x" + renderHeight,
                (screenWidth / 2) - (rlj.text.MeasureText("render size: " + renderWidth + "x" + renderHeight, 20)) / 2,
                screenHeight / 2 - 10,
                20,
                Color.DARKGRAY
            );
            rlj.text.DrawText(
                "screen size: " + screenWidth + "x" + screenHeight,
                (screenWidth / 2) - (rlj.text.MeasureText("render size: " + screenWidth + "x" + screenHeight, 20)) / 2,
                screenHeight / 2 + 10,
                20,
                Color.DARKGRAY
            );

            if (rlj.core.IsKeyPressed(Keyboard.KEY_R)) {
                keyPresses++;
            }
            if (rlj.core.IsKeyPressedRepeat(Keyboard.KEY_R)) {
                repeatedKeyPresses++;
            }
            if (rlj.core.IsKeyReleased(Keyboard.KEY_R)) {
                keyReleases++;
            }

            long seed = 123;
            rlj.text.DrawText(
                "Random value from seed: " + seed + " is " + randomValue,
                10,
                10,
                20,
                Color.MAROON
            );
            rlj.text.DrawText(
                "Random sequence from seed: " + seed + " is " + randomSequence[0] + ", " + randomSequence[1] + ", " + randomSequence[2] + ", " + randomSequence[3] + ", " + randomSequence[4],
                10,
                40,
                20,
                Color.MAROON
            );
            rlj.text.DrawText(
                "Iterations: " + iterations,
                10,
                70,
                20,
                Color.MAROON
            );
            rlj.text.DrawText(
                "Key presses: " + keyPresses,
                10,
                100,
                20,
                Color.SKYBLUE
            );
            rlj.text.DrawText(
                "Repeated key presses: " + repeatedKeyPresses,
                10,
                130,
                20,
                Color.SKYBLUE
            );
            rlj.text.DrawText(
                "Key releases: " + keyReleases,
                10,
                160,
                20,
                Color.SKYBLUE
            );

            if (timer > 1.0f) {
//                rlj.core.SetWindowFocused();
                rlj.core.SetRandomSeed(seed);

                randomValue = rlj.core.GetRandomValue(0, 100);
                int[] s = rlj.core.LoadRandomSequence(5, 0, 100);
                System.arraycopy(s, 0, randomSequence, 0, 5);
                rlj.core.UnloadRandomSequence(s);

                timer = 0.0f;
                iterations++;
            }

            timer += rlj.core.GetFrameTime();

            rlj.core.EndDrawing();
        }
    }
}


_xclick is not a valid choice

The following error occurs:
(Hidden field cmd) Select a valid choice. _xclick is not one of the available choices.
even when the variable is set manually. _cart shows a similar message.

You will need to explain what you are doing more clearly.

Please see the docs for how to use IPN/PDT:
https://django-paypal.readthedocs.org/en/stable/

@spookylukey There no related information of how to provide cmd value in current version of docs.
@lianhuilui Did you find how to set cmd properly?

Yes, there is. If you read the docs, it links to the PayPal docs (which we are not going to duplicate), which documents the options for cmd. See https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#technical-variables

Ok, created PR #155 to make docs more clear.


Sort approved drugs by year date in tutorial on drug passing or not common medchem filters

Changelogs

Sort approved drugs by year date in tutorial on drug passing or not common medchem filters

Checklist:

[ ] Was this PR discussed in an issue? It is recommended to first discuss a new feature into a GitHub issue before opening a PR.
[ ] Add tests to cover the fixed bug(s) or the new introduced feature(s) (if appropriate).
[ ] Update the API documentation is a new function is added, or an existing one is deleted.
[x] Write concise and explanatory changelogs above.
[x] If possible, assign one of the following labels to the PR: feature, fix or test (or ask a maintainer to do it for you).

discussion related to that PR

@maclandrol it's out and the conda package should be merged either today or tomorrow. I applied the same strategy as for molfeat for the medchem package on invivovai by removing the main label and adding all the packages to the deprecated_medchem label. I will announce it internally on Tuesday. If you need/want to use medchem <2 you must now use mamba install -c "invivoai/label/deprecated_medchem" medchem
xref https://github.com/conda-forge/staged-recipes/pull/24111


domainjoin-cli --ou documentation

Version: <IP_ADDRESS>4
OS/Distro: Ubuntu desktop 16.04 - unity desktop
Issue/Impact: documentation/minor
When using domainjoin-cli with the --ou  flag the ou path needs to be provided as top down "/" separated path.  This seems a little counter intuitive for a unix cli and it took me quite a while to figure it out that it needed to be "/" separated and not "," separated. I read the pbis guides I could find but couldn't find it explicitly stated1. Could your team add documentation for the command or add compatibility for comma separated top down path for the organizational unit?
[1]Guides checked:
https://www.beyondtrust.com/wp-content/uploads/documentation-pbis-linux-administration-guide.pdf?1432664670
https://www.beyondtrust.com/wp-content/uploads/PBIS_Linux_Administration_Guide_8.2.pdf

Thank you for logging this issue. We've been working to improve the usability of the product.
We do have explanation of nested OUs in the PBIS_Installation_Guide and PBIS_Administration_Guide but not the PBIS_Linux_Administration_Guide or domainjoin-cli --help. I'm going to work to clear this up as it should be in the PBIS_Linux_Administration_Guide. I'll also see what I can do about the domainjoin-cli help as we are trying to improve the in product information.


Cursor "disappears" in noice.nvim's popup window

The cursor disappears in noice.nvim's popup window.

It looks the issue is fixed in the latest version, so closing.

Hi @brg1ng. Sorry for not going over this issue. I think someone had already reported a similar issue, but I didn't find anything we could do on our end. I'm glad this was fixed on noice.


Anyway to get the case files updated for the version 3.5

Good day,
Anyway to get the case files updated for the Nyquist 3.5 where each half has two USB-C ports?
Thank you.

Echoing this, what program did oyu use to creat the stl files? Do you think you could export this in another format that woudl work better with fusion 360? Thanks! I want to modify the design a bit.

I don't have a v3.5 nyquist, so I can't update the files. I made the original files in onshape: https://cad.onshape.com/documents/b37387c32fced19f6f087da2/w/91ab7bae02e4e6f2a7885460/e/ba2df90d34c64191ba5562c0?renderMode=0&uiState=63497cbe9ab9b070cffdb441
There is a free subscription if you are not using it for commercial purposes. I would recommend trying that before using the step files, since the changes you want are probably just changing a few numbers in the design.
But here are the step files too. Sorry for the zip, github won't let me attach a step file:
nyquist_step.zip
BTW, I am still using this case every day with my nyquist and I can't think of any way I would improve it. I have some cheap mousepads with builtin wrist rests.

Thank you! No the case looks great! I just want to make the lip a bit higher to hide the switches more and avoid having the keys catch on anything ie a high profile case.

When you're finished, you could submit it as a PR here. I'm sure keebio would accept anything that updates the files for future users.


WebStore - Plugin Edit screen - uploading image does not count as form changed (upload button remains disabled)

In the webstore when updating a plugin, uploading an icon does not count as a change event and the upload button remains in a disabled state.  Current workaround is to modify another field as well and then submit (however, another bug shows no result of upload). Also the Upload button is not disabled when editing a plugin and the plugin is in a valid state (need to add a check for !$dirty so the button will be disabled if the user has not touched anything).

Fixed and deployed to Webstore (will keep issue open til milestone is released)


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit 9b9732c:
:clock10: Pending: waiting for processors (22 builds ahead of you)
:warning: Docs Build is busy, currently there are 22 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 9b9732c:
:clock10: Full build: the average full build time is 7 min(s) 45 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 9b9732c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


🚀 Feature: [NBS] Add support for custom location processing in the Bitbucket Server integration

🔖 Feature description
This feature was suggested by @awanlin (#25535).
The Bitbucket Server integration allowed user to write custom location processing with the previous backend system.
Does this feature need to be supported with the new backend system?
🎤 Context
Migration of the plugin to the new backend system.
✌ Possible Implementation
No response
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
None

@Maetis Which Bitbucker Server Integration? :D

@Maetis Did you get this sorted out, given that you made that docs PR?

Hi @freben, we removed that section from the docs and so I recommended that we at least log an issue for it.
For references this is the part we removed:
Custom location processing
The Bitbucket Server Entity Provider will by default emit a location for each
matching repository. However, it is possible to override this functionality and take full control of how each
matching repository is processed.
BitbucketServerEntityProvider.fromConfig takes an optional parameter
options.parser where you can set your own parser to be used for each matched
repository.
const provider = BitbucketServerEntityProvider.fromConfig(env.config, {
  logger: env.logger,
  schedule: env.scheduler,
  parser: async function* customLocationParser(options: {
    location: LocationSpec;
    client: BitbucketServerClient;
  }) {
    // Custom logic for interpreting the matching repository
    // See defaultBitbucketServerLocationParser for an example
  },
});

Hi @flash-me, what do you suggest we do to make this more clear?

uuuh @awanlin to be fair, we're only looked at the auth part of the bitbucketServer, which was missing and I am planning to contribute. Somehow mixed this up. We are happy with the default Integration.
Sorry for taking your time here

Where has this ended up, is it alright to close? 😅


Swipe up into the drawer

It'd be smoother to swipe up directly into the app drawer, then pin your "favorites" at the top.

To clarify, I think the approach I would like to take here is to keep the 2-pane home screen.  However, instead of having the "Apps" button, just be able to access the whole app drawer by swiping up again from the second pane.

So, as it turns out, things get pretty tricky when trying to do more than 2 scenes with the MotionLayout (especially if you want to access all of them via a serious of "swipe up" actions).  I have spent a considerable amount of time tinkering with this and have not been able to get the UX to work in any sort of satisfactory way for swiping up again from the second pane to access the app drawer.
If I eliminate the original second pane altogether and replace it with the app drawer then everything works smoothly and I can swipe into and out of the app drawer very nicely.  While this was not my original goal, I am pretty happy with the look and feel of swiping directly to the app drawer.  (@TobiTenno and I worked together on some of the UX here and we did increase the max number of apps on the first pane to be 6 instead of 4 since we would be loosing the other 4 pinned apps from the second pane.  Additionally we moved the original "Options" button on the second pane to be a cog icon on the first pane).
We are pretty happy with how things are looking, but I wanted to drop a comment out here and see if anyone else had thoughts/feedback. Below is a recording of the prototype interface. Thanks!

So, as it turns out, things get pretty tricky when trying to do more than 2 scenes with the MotionLayout (especially if you want to access all of them via a serious of "swipe up" actions).  I have spent a considerable amount of time tinkering with this and have not been able to get the UX to work in any sort of satisfactory way for swiping up again from the second pane to access the app drawer.
If I eliminate the original second pane altogether and replace it with the app drawer then everything works smoothly and I can swipe into and out of the app drawer very nicely.  While this was not my original goal, I am pretty happy with the look and feel of swiping directly to the app drawer.  (@TobiTenno and I worked together on some of the UX here and we did increase the max number of apps on the first pane to be 6 instead of 4 since we would be loosing the other 4 pinned apps from the second pane.  Additionally we moved the original "Options" button on the second pane to be a cog icon on the first pane).
We are pretty happy with how things are looking, but I wanted to drop a comment out here and see if anyone else had thoughts/feedback. Below is a recording of the prototype interface. Thanks!


Make carousel work with multiple items displayed

I made this pull request to demonstrate how this can work when multiple items are displayed at once on the carousel. Take a look and let me know if you want me to adjust the pull request or you aren't interested at all.
I'll use my fork for my project regardless, but it would be nice to contribute to this great repo!
Easiest thing to do is take a look at my adjusted demo page (index.html) in your browser.
http://rawgit.com/u982744/angular-carousel/master/index.html

Would you update this to be mergable to master?

Is this merged to master, if so can you please let us what version is it available in and some instruction of how to use it. It would be a very useful feature.

Thanks for the carousel, i want it to stop scrolling from the when it reaches the end item. How to do it please help.

IS THIS GOING TO BE MERGE?

As stated on the readme, this repo is not maintained anymore, sorry. Feel free to fork !


Crash

When it finishes loading it just crashes
It's after the caching loads

I've got this issue too

follow the steps on this github page https://github.com/larsiusprime/polymod/pull/39

follow the steps on this github page larsiusprime/polymod#39

thanks lots!

lemme close this rq-


[WIP] push unit test coverage results to codecov

What this PR does / why we need it: follow up for #2706
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

Codecov Report

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

@@           Coverage Diff            @@
##             master   #2719   +/-   ##
========================================
  Coverage          ?   46.8%
========================================
  Files             ?      86
  Lines             ?   12699
  Branches          ?       0
========================================
  Hits              ?    5944
  Misses            ?    6210
  Partials          ?     545

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 0486276...f61a6a0. Read the comment docs.


API Gateway

I don't know what to do but I want to contribute in open source. That's why I am written this line

Thanks, Kelvin, but we already have a definition for API Gateway. I'll go ahead and close this issue.


Making the relationship API on InternalEntityBuilder to preserve and respect the configuration source

Relationships are uniquely identified by the navigation and foreign key properties, i.e. when configuring a relationship that shares a navigation property or the foreign key property set with an existing one they will be merged into one relationship according to their configuration sources, if same the last one wins.
Part of #213
Fixes #1117, #1123, #1125, #1134

:shipit:


"Windows Protected Your PC"

Got this pop-up when I tried to run MC2GD.bat, what do I do?


Mismatch between code and documentation

In the README.md there is an example on how to configure this plugin.
plugins: [
  new NpmInstallPlugin({
    ...
    cacheMin: 999999  // --cache-min=999999 (prefer NPM cached version)
    registry: "..."   // --registry="..."
    save: true,       // --save
    saveDev: true,    // --save-dev
    saveExact: true,  // --save-exact
    ...
  }),
]

However in the code these options are assumed to be located on a cli property. https://github.com/ericclemmons/npm-install-webpack-plugin/blob/master/src/plugin.js#L33
I assume one is outdated and should be updated. I can create a PR for this but I would first need to know where the change should be done.

Whoops!  Thanks for this.  I changed it at the last minute, but the code still passed O_o.
I can take care of it.


No attribute 'swish' error

I get the following error:
AttributeError: module 'tensorflow.python.ops.nn' has no attribute 'swish'
Tensorflow version: 1.4.0 (GPU, installed before your library)
Keras version: 2.2.4
I have imported the model: from keras_efficientnets import EfficientNetB4
This should import custom_objects too, right?
Any idea of what can be happening? Thanks

Update your tensorflow version. TF.nn.swish was not added in TF 1.4


build from source, error contents.rst not found

hi, i'm trying to build this in Linux but i've got an error.
After a make all or make docs package
`/home/ethanfel/Python-Funscript-Editor/funscript_editor/data/funscript.py:docstring of funscript_editor.data.funscript:5: WARNING: Error in "code-block" directive:
1 argument(s) required, 0 supplied.

.. code-block::

    {
        "version": "1.0",
        "inverted": false,
        "range": 90,
        "actions": [
                {"pos": 0, "at": 100},
                {"pos": 100, "at": 500},
                ...
        ]
    }

Sphinx error:
master file /home/ethanfel/Python-Funscript-Editor/docs/code/contents.rst not found`

got a clue ?

i was able to build it in the end.
I had to create an empty contents.rst myself and after another error i had to move _static myself to the doc folder.


refactor: change nginx.conf to its original version

🔗 Linked issue
fix #418
❓ Type of change

[ ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

See #418 for more details.
This PR may not be merged if the results are not conclusive.
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

The image tag is pr-419


Adding More Models - WIP

WIP - do not merge. See discussion in #86.
TF Slim Models

✅  inception_v1
✅  inception_v2
✅  inception_v3
✅  inception_v4
✅  inception_resnet_v2
❌  resnet_v1_50 (tensorflow/models#4938)
❌  resnet_v1_101 (tensorflow/models#4938)
❌  resnet_v1_152 (tensorflow/models#4938)
✅  resnet_v2_50
✅  resnet_v2_101
✅  resnet_v2_152
❌  vgg_16 (tensorflow/models#4938)
❌  vgg_19 (tensorflow/models#4938)
🏗 mobilenet_v1
🏗 mobilenet_v1_050
🏗 mobilenet_v1_025
🏗 nasnet-a_mobile
🏗 nasnet-a_large
🏗 pnasnet-5_large
🏗 pnasnet-5_mobile

Caffe Models
All these models are or may be using BGR format instead of RGB 😭

⚠  AlexNet
🏗 AlexNet (Places 205)
🏗 AlexNet (Places 365)
🏗 Network In Network?
⚠  InceptionV1
⚠  InceptionV1 (Places 205)
⚠  InceptionV1 (Places 365)
🏗  CaffeNet
⚠  VGG_16
🏗 VGG_16 (Places 205)
🏗 VGG_16 (Places 365)
⚠  VGG_19

@zanarmstrong - If you'd like to try playing around with more models, you can grab the definitions from here! :)

thanks @colah!

I attempted to port all the slim models, but ran into issues. In the end, I was able to import 8 and ran into significant issues with 6:

✅  inception_v1
✅  inception_v2
✅  inception_v3
✅  inception_v4
✅  inception_resnet_v2
❌  resnet_v1_50
❌  resnet_v1_101
❌  resnet_v1_152
✅  resnet_v2_50
✅  resnet_v2_101
✅  resnet_v2_152
❌  vgg_16
❌  vgg_19

I opened an issue (tensorflow/models#4938) to track this. However, the models I failed to import actually originate with caffe, so we should be able to just grab them when I get the caffe workflow fully running.
There were also a number of models my present scripts couldn't automate. I'll take a shot at them another day.

As this nears completion, please take a quick look at what's making the tests fail—you can click on "Details" next to the failing travis build, and then on a Python version and it will take you to the error messages. Atm it looks like there may be a missing numpy import in vision_models?

Pull Request Test Coverage Report for Build 245

87 of 87 (100.0%)  changed or added relevant lines in 1 file are covered.
20 unchanged lines in 1 file lost coverage.
Overall coverage increased (+7.7%) to 71.402%

Files with Coverage Reduction
New Missed Lines
%

lucid/optvis/objectives.py
20
79.25%

Totals

Change from base Build 226:
7.7%

Covered Lines:
1151

Relevant Lines:
1612

💛  - Coveralls

Every model now has a layer list, like so:
  layers = [
     {'type': 'conv', 'name': 'conv2d0', 'size': 64},
     {'type': 'conv', 'name': 'conv2d1', 'size': 64},
     {'type': 'conv', 'name': 'conv2d2', 'size': 192},
     {'type': 'conv', 'name': 'mixed3a', 'size': 256},
     {'type': 'conv', 'name': 'mixed3b', 'size': 480},
     {'type': 'conv', 'name': 'mixed4a', 'size': 508},
     {'type': 'conv', 'name': 'mixed4b', 'size': 512},
     {'type': 'conv', 'name': 'mixed4c', 'size': 512},
     {'type': 'conv', 'name': 'mixed4d', 'size': 528},
     {'type': 'conv', 'name': 'mixed4e', 'size': 832},
     {'type': 'conv', 'name': 'mixed5a', 'size': 832},
     {'type': 'conv', 'name': 'mixed5b', 'size': 1024},
     {'type': 'conv', 'name': 'head0_bottleneck', 'size': 128},
     {'type': 'dense', 'name': 'nn0', 'size': 1024},
     {'type': 'dense', 'name': 'softmax0', 'size': 1008},
     {'type': 'conv', 'name': 'head1_bottleneck', 'size': 128},
     {'type': 'dense', 'name': 'nn1', 'size': 1024},
     {'type': 'dense', 'name': 'softmax1', 'size': 1008},
     {'type': 'dense', 'name': 'softmax2', 'size': 1008},
   ]

I generated this code using a script I checked in under lucid/scratch/scripts/

(An additional enhancement could be to record the output/softmax/probabilities node, too.)

An additional enhancement could be to record the output/softmax/probabilities node, too.

Absolutely! At the moment, I include softmax layers in the layer list, but don't flag them as special.
One thing for us to consider is that the logits (ie. softmax pre-activation) are often more interesting for visualization than the softmax output. May be worth adding them to the layer list as well...

Yeah, we'd likely want  both for different purposes.
Can you add me to the gcloud modelzoo bucket?
The newer Inception architectures need an updated labels file. (As e.g. @girving remarked in #65)

tensorflow/models#4938 was mostly my error! Now worked around. :)

OK -- The present version isn't perfect (see issues mentioned at top), but I suspect it's better to merge things at this point to not diverge too far from master.


Cache incorrectly used when include is changed

Summary of the issue
If you call the same query but only change the include, the cached value is used, ignoring the different include.
Environment
The in-use version: 2.3.0
Operating system: Windows 10
IDE: Visual Studio Code

Example code/Steps to reproduce:
public class LineItem {
	public string Id { get; set; }
	public string OrderId { get; set; }
	public virtual Order Order { get; set; }
}
public class Test {
	public override IEnumerable<LineItem> Get(Expression<Func<LineItem, bool>> filter = null, params Expression<Func<LineItem, object>>[] include)
	{
		IQueryable<LineItem> query = _dbSet;
		query = query.Cacheable(CacheExpirationMode.Absolute, TimeSpan.FromMinutes(5));

		if (filter != null)
			query = query.Where(filter);

		if (include != null)
		{
			foreach (var includeProperty in include.ToList())
				query = query.Include(includeProperty);
		}
		return query.ToList();
	}
	public void Test() {
		var lineItem1 = Get(x => x.Id == "abc");
		var lineItem2 = Get(x => x.Id == "abc", x => x.Order);
		Console.WriteLine(lineItem2.Order.Id);
	}
}

Output:
Exception message: object not set to an instance of an object
lineItem2.Order is null, if you comment out the Cacheable line lineItem2.Order is not null, so it appears a cached value is being returned even through the include has changed between lineItem1 and lineItem2.

Have you tried adding Cacheable() before the ToList() method?

That fixed it perfectly, actually!
Before:
`
public override IEnumerable Get(Expression<Func<LineItem, bool>> filter = null, params Expression<Func<LineItem, object>>[] include)
{
IQueryable query = _dbSet;
query = query.Cacheable(CacheExpirationMode.Absolute, TimeSpan.FromMinutes(5));
	if (filter != null)
		query = query.Where(filter);

	if (include != null)
	{
		foreach (var includeProperty in include.ToList())
			query = query.Include(includeProperty);
	}
	return query.ToList();
}

That didn't work. This worked as expected:
public override IEnumerable Get(Expression<Func<LineItem, bool>> filter = null, params Expression<Func<LineItem, object>>[] include)
{
IQueryable query = _dbSet;
	if (filter != null)
		query = query.Where(filter);

	if (include != null)
	{
		foreach (var includeProperty in include.ToList())
			query = query.Include(includeProperty);
	}
	query = query.Cacheable(CacheExpirationMode.Absolute, TimeSpan.FromMinutes(5));
	return query.ToList();
}

`
The issue can be closed, but I guess I'm not sure why the call need to be done after the rest of it. Without looking in to the code, I would expect that either of the above methods would work the same. Maybe I'll be able to look at it sometime, but is it easy to make it work either way? I would assume the Cacheable call must overwrite the ToList() method if there's a matching cached version. A fix would be to overwrite the ToList() method by default to check the status of some new property like CachedValue. I'm just kind of guessing how it works at this point, tho.


Update entity fetching to match draft-js API changes

As of v0.10.0 draft-js entities are contained within the contentState object rather than a global registry. We now pass the contentState object around so we can fetch its entities as we process blocks.

Released as v2.0.0.


Only one open dialog should be displayed

Current Behaviour (for problems)

Open Data Package zip from URL
Return to menu and Open Comma Separated Value file
Two open dialogs displayed...

Expected Behaviour
Only one open dialog should be displayed at a time
Your Environment

Data Curator version: 0.15.0
Operating System and version:  macOS High Sierra 10.13.4

Problem remains in v0.17.0

Fixed however you can open a open file and save file dialog at the same time - but who would?


IDM need not be bound by default vxlan-id start index

This will allow users to use the full spectrum of vxlan-ids
Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

LGTM

@aboch updated. PTAL.

LGTM


Use Puma

@georgeu2000 :+1: using the default webrick instead of puma will break benchmark suite for ruby ;-)
after each launch, the puma process is killed by the benchmarking tool

would you mind remove the ruby version in  Gemfile (break portability) ?

@tbrand If you need I can propose myself to review / merge PR :stuck_out_tongue_winking_eye:  (especially for ruby / crystal )

@waghanza That's the reason why I added you to this repository as a collaborator. 👍

@waghanza That's the reason why I added you into this repository as a collaborator. :+1:

@tbrand I still see the Contributor flag on my message

@waghanza

using the default webrick instead of puma will break benchmark suite for ruby ;-)
It sure did.

would you mind remove the ruby version in Gemfile (break portability) ?
Done.

@waghanza I already sent an invite email to you. ✉

@tbrand sure ... now I have seen.  The email was drow on my messy inbox :wink:


"Lost connection to MySQL server during query"

Hi,
I just installed a Mariadb server in a Virtual Machine running on CentOS7. I use VMWare 14.1.3 for Linux. I run VMWare with Linux Mint 19.
I installed omnidb-app in my Linux Mint 19. I set up the VM in a bridge connection, I can access it by ssh perfectly, everything is smooth. Once connected by ssh, I can access the database I setup (SQLCOURS) correctly.
Here is the Connection configuration in omnidb-app:

Here is the error message:

I read something about time-out in my mariadb server configuration, but it happens directly when I test the connection. Is my connection misconfigured ? Should I run the omnidb-server in my CentOS7 VM ?
Thanks for your help.

Solved, server mysql was down due to misconfiguration.


Watched field values in "Subeditor"

I builded an application thats using this great editor.
In detail: I forked your code an added some code in the refreshValue Methods of the array and object editor, so I´m getting data in the "jstree" format.
Now I can generate an jstree to navigate through the editor.
You can have a look at the applicaiton at http://s559860669.online.de/ConfEditor/
In fact I got 2 editors.
One is for holding all values and the other is a "subeditor" that only shows up the selected element of the jstree.
All works well, expect one "BIG PROBLEM" :)
Do the following:

Have a look at "Themengruppen". Open with the "+" on the editor
There are 2 entires. "TestGruppe" and "ThemeGruppe2"
These field is watch. When you open "Themen" you see these values "Zuweisung in Themengruppe"

Now:

When you click on "Themen" in the jstree the subeditor will be re-initialised.
Of course the watch field (root.topicgroups) are not present.

My question: Is it somehow possible to "transfer" the values of the dummyEditor to the subeditor?
I got
confeditor.dummyEditor (the hidden editor for storing all) and the
confeditor.subJSONEditor the editor on the right side
I´m trying some things in the
js/confEditor.js at line 350
this.subJSONEditor.on('ready', function () {
            $.each(self.dummyEditor.watchlist, function (e, f) {
                var nase = self.subJSONEditor.getEditor(e);
                if (!nase) {
                    var dumVal = self.dummyEditor.getEditor(e);

                    //console.log(dumVal.watchlist);
                    for (var i = 0; i < self.dummyEditor.watchlist[e].length; i++) {
                        console.log(self.dummyEditor.watchlist[e][i]);
                        //self.dummyEditor.watchlist[e][i]();
                    }
                }
            });
            console.log("dummy", self.dummyEditor);
            console.log("sub", self.subJSONEditor);

            self.subJSONEditor.setValue(subEditor.getValue());
        });

It would be so great, if someone could help me. And of course I could share my code if someone is interested in. :)
THANKS!

Now I got it.
This is my working application! Thank you so much Jeremy :+1:
http://s559860669.online.de/ConfEditor/


[QUESTION]:

Hello,
I am using molpal with docking and it works well. I am using a subset of eMolecules library (~1M compounds) and trying to do a VS against a target. I am using a --init-size 0.005 and --batch-size 0.005.
The only thing I am not able to control is the number of CPUs on which the vina docking works. I am using ray start --head and my VM has 24 cpus and gpus. MolPAl only uses 8 out ot the 24 CPUs.
This problem is not there when I use pyscreener directly and it utilizes all the cpus. Can you please suggest which parameter should I change to make the docking explorations run on all 24 cpus?
Thanks
Sandeep

Hmm odd… the only thing I can imagine that would affect that is the ncpu parameter passed in the pyscreener config. What does your config look like?

Hi David, Thanks. My ini and config file are. It is pretty much default. I am tying to give a ncpu=20 but it still runs on 8 cpus. Not sure why>
Thanks
Sandeep

screen-type = vina
metadata-template = {"software": "vina"}
receptors = [proteinH.pdb]
center = [20.556, -14.266, 1.286]
size = [17, 10, 22]
ncpu = 20
------   And
config file is
[general]
output-dir = molpal_eMols_0.005_rf_ucb
--retrain-from-scratch yes
[pool]
library = libraries/eMols_similarity_unique.smi.gz
no fps file will force MolPAL to write a new HDF5 file with the fingperprints
[encoder]
the default encoder is Atom-pair of length 2048, min_path=1, max_path=3
[model]
by default, we use an RF model
[acquisition]
by default, we acquire inputs greedily
[objective]
there are no default objective values
objective = docking
objective-config = examples/objective/docking_brpf1.ini
--minimize
[stopping]
by default, MolPAl will explore until the fractional difference betewen the
current top-k average and the moving average of the 3 recent top-k averages
is less than 0.01. the default k value is equal to 0.05% of the pool size

Hmm yeah that looks correct. When you use vina by itself with 20 CPUs (by itself and inside pyscreener), do you observe full utilization?

No I do not observe full utilization. It uses only 8 cpus. I cannot understand why?
I like the results though.

just to confirm, you observe underutilization when you run the following command:
vina -r RECEPTOR -l LIGAND --ncpu=20 [...]

closing this due to inactivity


Uncaught ReferenceError: process is not defined

Hey,
I'm working on a Remix app, and trying to add logging using the @logtail/js package as we need to log from the server actions in Node, and directly from the browser.
The server aspect is working perfectly, but as soon as I try to add client-side logging I get the following error in the console:

Remix has a convention of adding a .server.ts suffix to files which should only be included in the server bundles, which is what I've done when using import { Node as Logtail } from '@logtail/js' so I don't believe there is any server specific logic leaking into the client bundle.
The error only appears when I include a React context provider which I've setup for sharing the logger instance to any of my React components in the UI:
import { createContext, useContext, useMemo } from 'react'
import { Browser as Logtail } from '@logtail/js'

type Context = {
	log: Logtail
}

const LogtailContext = createContext<Context | null>(null)

export const useLogtail = () => {
	const context = useContext(LogtailContext)
	if (context == null) throw Error('Use inside LogtailProvider')
	return context
}

type Props = {
	children: React.ReactNode
	sourceToken: string
}

export const LogtailProvider = ({ sourceToken, children }: Props) => {
	const log = useMemo(() => {
		return new Logtail(sourceToken)
	}, [sourceToken])

	return (
		<LogtailContext.Provider
			value={{
				log,
			}}
		>
			{children}
		</LogtailContext.Provider>
	)
}

Any ideas what's happening? We're on v0.3.1 if it helps!
Thanks in advance

Hi @sturatcliffe,
Thank you for your report and your patience.
I don't see an obvious issue in your logger code. But the error does look like some server code is leaking into the bundle.
Could you please double-check?
Could you also share a more complete example? 🙏
It would help us reproduce the issue on our side.
Thanks again for reaching out.


Steep decline in send performance over increasing sizes

This is just a behavior I have noticed and can't get past.
Below 4kb ping/pong between two TCP processes, I get significantly better perf with io_uring - from 30% to 8% where 30% is tiny sends (64 bytes) and 8% is the 4kb send. It gradually loses competitiveness over size.
At 8kb I'm equal or below epoll. I can't explain this, I have really packed send buffers on a huge page so everything is really packed in memory. Can't get it to perform any good for larger sends. the zc send makes the numbers half (bad).
At 16kb I get 43% better perf. with epoll, io_uring for me just completely goes off a cliff.
I have confirmed that in all cases, I do get the full 16kb chunk received in one go, on both ends. So both epoll and io_uring are just handing entire chunks back and forth in the same manner.
Are we expecting any optimizations here? It doesn't matter if I register the send buffers or not.

Can also be said that if I do tiny sends (64 bytes) with a stride as if my send buffer was 16 kb, it get major performance losses. So making the send buffers packed kind of like mipmaps, greatly speeds it up

Okay I kind of understand the problem now:
The benefit of send syscall is that you can have your message in some shared buffer and copy it from there into kernel space very efficiently.
But since prep_send is async, you can't really have the same shared buffer but need to hold many shared buffers at different addresses. Even if they hold the same data.
Simply by providing different addresses to prep_send vs. providing the same address, it goes from 212k messages per second down to 150k. This while epoll is at 197k.
So epoll is fast because you build your message in one spot, giving that one spot to the kernel via copies while prep_send needs one address per socket, which tanks performance in this case.
Knowing whether you are going to send the same content to all sockets is not really possible, so send syscall has a big benefit here unless there is some way to make multiple addresses faster. Registering the whole big sendbuffer (all of them) makes it maybe a sliiiiiiight faster but still significantly below send syscall providing the same address to copy from.

Yep. Confirmed on a different computer with a whole different distro. Passing the same address to prep_send is way faster than passing 1 address per socket, it makes a big difference and I make sure to pre-page fault all involved buffers by filling them with some constant data.
Registering buffers and prep_send_zc_fixed and all those advanced features just makes it slower. The fastest by far is just providing the same very address to all prep_send. As is the same for send syscall. But you can't really do this with prep_send, as mentioned above. So this kind of limits performance for this case, 16kb sends.

A feature to get the FD of a DD would be nice, so that you could grab the FD at accept time then use FD with send syscall in some cases. Sure, you can register your own FDs into DDs but then the _direct functions can't be used. io_uring_get_fixed_file_fd(dd) or something

Alright here is the conclusion:

Proving different user space addresses to send syscall is way slower than providing the same address to send syscall, for 16kb.
The same goes for prep_send, although prep_send is slightly faster than doing this with send syscall.
However, given the nature of io_uring's async submissions, you always have to provide different user space addresses with prep_send, while with send syscall, you can have one shared "factory buffer" that is passed to send syscall faster.

Hopefully, prep_send_zc_fixed can be optimized to outperform the send syscall, regardless if providing different addresses - otherwise it's still better in some cases to just do a send syscall.

For 32kb there is almost a 70% performance win for epoll. So it isn't really viable for anything other than tiny sends. I cannot get it to perform for anything above 8 kb.

Can this be because with send syscall, my source buffer most likely already is in CPU cache? And with io_uring it most definitely is not, since I have so many source buffers with io_uring vs. only 1 single 32kb one that is written to, copied from, written to, copied from, vs. having all these scattered buffers written to (which definitely will not fit in CPU cache) and then read from (which definitely will need fetch).

What I'm doing now is holding a limited pool of send buffers, and when I run out of send buffers, I call io_uring_submit_and_wait(ring, 0) and look for send completions, adding their send buffers back to this pool. This way I seem to be doing better than epoll for mid-sized sends like 16kb. But I need to see if this solution is proper and reliable.
The idea becomes to reduce, but not eliminate syscalls.

You are most likely running into TLB pressure. Have you tried putting your IO buffers in a huge page?

Yep that was the first thing I did. Everything is aligned and densely packed on a huge page

I've looked at the zerocopy send benchmark in examples. It sends one single 2MB huge table source many times - I have the opposite problem: I have 100 connections that receive data and send data all the time, so I have constantly changing source addresses since I need 100 send buffers in order to submit to io_uring.
I can get a bit better performance by calling io_uring_submit_and_wait(ring, 0) every 16th send and then reusing those buffers (reducing the range of my source buffers), but it's still not near send syscall performance.
I tried mixing send syscall for sending with io_uring for receive but that was as far as I saw not as good as only epoll. But for this I disabled direct descriptors so maybe I need to go back to that and only use FD for send syscall.

As for zerocopy, it's probably because of extra wake ups to deliver zc notification CQEs, but slight difference in how it goes through the network stack might affect it as well. I'd need to get profiles for your case to know, but for the former it's getting better at scale, e.g. when you have many connections or streaming instead of ping pong, though the example is not working well with either case. How can we reproduce your results?
I played with zc streaming before but never sent it publicly. The nice thing about zc notifications is that you easily can count in userspace how much is still inflight, i.e. sum of buffer sizes for all expected but not yet delivered notifications, send when there is space in the queue. If you know queue sizes that replaces the readiness model and even finer. We're also looking into having a better control of what the userspace is waiting for.

How can we reproduce your results?

I can ready some triggering examples that can be compiled both for epoll and io_uring.

it's pretty common that you don't assemble it in place but you get already prepared data to send, though the opposite also have place, e.g. if you have in-userspace encryption or any extra copy. And, once you constructed a buffer but cannot send it (i.e. get -EAGAN) you're not going to throw it away, so epoll and send NOWAIT will still need some sort of caching

The winning design (as far as I can figure out) with epoll is to have 1 shared buffer where you assemble responses and then just call send syscall on it, then move on to the next socket, assembling another response in the same buffer, then calling send syscall, etc, etc. This works in 90% of cases as the hot path. EAGAIN is not the hot path, it almost never happens and is a secondary slow path.
The thing with io_uring vs. epoll is that the above hot path does not work, as you must spread out your assembling buffers which makes you fall out of CPU-cache and drop in perf.

Send syscall that can take direct descriptors would be killer, I think

Is there some variant of io_uring_prep_send that queues up a SYNC variant of send? Like io_uring_prep_sync_send where it functions like the send syscall in that, it either succeeds in copying everything to kernel space, or it fails with either fewer bytes than specified, or completely with EAGAIN.
If such an op-code would exist, we could use the same hot path without blowing the CPU-cache limit like so:

Hold a limited set of "hot path buffers", let's say 16 buffers of size 32kb. Assuming they all fit in CPU-cache.
Perform 16 io_uring_prep_sync_send, pointing to respective buffer
Call io_uring_submit (_and_wait?).
Directly reclaim all 16 buffers by walking over the 16 send completions (regardless if they failed or not)
Goto 1, doing it again.

This would allow batching, yet limit it to some small number that fits in CPU-cache. IMO it makes no sense to use ASYNC send calls for small 16kb sends where you're almost 100% going to have space available in kernel socket buffer, and only in the very slow path would you care to do something else.
Async send is more suited for large sends IMO

Ah, but in the case it immediately succeeds (which is the hot path), io_uring_prep_send would be the same as io_uring_prep_sync_send, I'm a moron.

The difference between io_uring_prep_sync_send and io_uring_prep_send would be that with io_uring_prep_sync_send you could do io_uring_submit_and_wait(ring, 16) without ever getting stuck, as those io_uring_prep_sync_send would immediately have a completion.

In other news, I tried the "for-next" branch and for short messages I now have 42% better perf with io_uring. Going from 6.1 to "for-next" was 420k -> 467k per second for me. I just need to figure out this sending part.

Okay I have another, much easier observation:

For small messages io_uring is way faster but over 8kb, and esp. at 16kb, there is significant slowdown in io_uring over epoll, even for passing one single shared address to send.

To trigger, you can do this:

Make sure you have huge pages in your pool
git clone https://github.com/uNetworking/uSockets.git
cd uSockets
git checkout 16kb
make examples

Now you have the epoll examples, run ./tcp_server in one terminal and ./tcp_load_test 100 localhost 3000 64 in another terminal. The 64 argument is bytes to send and can be increased up to 16kb but no more (lol, buffer overflow).
Note down the performance of increasing sizes, say 64 bytes, 512 bytes, 1024 bytes, 8kb, 16kb
Now hit WITH_IO_URING=1 make examples to build the same apps with io_uring
Do the same size varying test.
The idea is that io_uring will perform WAY better for small messages (less than 8kb for me) but will start to dramatically slowdown for 16kb and above (but again, you can't test over 16kb without modifying examples/tcp_server.c and examples/tcp_load_test.c to hold more than 16kb. You see that char req[16kb] thing.
For me, I get 192k msg/sec with epoll at 16kb but only 160k with io_uring, and this is not even passing different send buffers, but one single common one. If I pass one different send buffer for every socket it drops like a stone (but let's take that issue later on).
The fact io_uring is slower with 16kb with the same send buffer should not be an issue of CPU-cache as there are no send buffers involved. Everything is static.

Managed to get this run on two hosts once, now it doesn't seem to want to run again for me. Regardless of whether or not I'm using epoll or io_uring. Just see a lot of:
Client connected
Client connected
[...]

on startup the server side, and the load side does nothing:
sendbufs: 0x7f1391ecb000
Running benchmark now...
Req/sec: 0.000000
Req/sec: 0.000000

when it did run, didn't see any drop offs between io_uring or epoll though for 4k and 16k? But if you can figure out why it's not really working reliably for me, would be happy to take a closer look and run the numbers.
I can run the localhost version too, but I generally prefer using two hosts for any network testing as it's more relevant. The two hosts are connected over a 10g link.

Oh looks like I was indeed missing huge pages on one side... But now the sender segfaults using 16k:
axboe@r7525 ~/gi/uSockets (16kb)> ./tcp_load_test 100 intel 3000 16384         2.009s
sendbufs: 0x7fd1e97ff000
fish: Job 1, './tcp_load_test 100 intel 3000 …' terminated by signal SIGSEGV (Address boundary error)

Yeah I also do Ethernet cable testing when I want better numbers, but so far in this development I've only done localhost. The thing is currently about as stable as a house of cards on a moving donkey. I have a 10 year old mid range Intel CPU with 6mb L3 cache.

You can compile like so if you want:
WITH_ASAN=1 WITH_IO_URING=1 make examples
if you want some hint of what blows up

axboe@r7525 ~/gi/uSockets (16kb)> ./tcp_load_test 100 intel 3000 16384         3.589s
sendbufs: 0x7f13fbdff000
Running benchmark now...
AddressSanitizer:DEADLYSIGNAL
=================================================================
==9868==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x5619490df29e bp 0x604000000b90 sp 0x7ffc2f2fea30 T0)
==9868==The signal is caused by a WRITE memory access.
==9868==Hint: address points to the zero page.
    #0 0x5619490df29e in io_uring_prep_rw /usr/include/liburing.h:382
    #1 0x5619490df29e in io_uring_prep_send /usr/include/liburing.h:751
    #2 0x5619490df29e in us_socket_write_ref_counted src/io_uring/io_socket.c:110
    #3 0x5619490df29e in on_http_socket_data examples/tcp_load_test.c:43
    #4 0x5619490e097e in us_loop_run src/io_uring/io_loop.c:215
    #5 0x5619490e097e in main examples/tcp_load_test.c:133
    #6 0x7f140ea46189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #7 0x7f140ea46244 in __libc_start_main_impl ../csu/libc-start.c:381
    #8 0x5619490e2220 in _start (/home/axboe/git/uSockets/tcp_load_test+0x5220)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /usr/include/liburing.h:382 in io_uring_prep_rw
==9868==ABORTING

That has to be io_uring_get_sqe returning null. But how is that even possible if you have 100 connections. On localhost it sends the entire thing in one go. So you must be getting fractions and sending more and more in a chain reaction. The test doesn't actually wait for 16kb just some data. But that works fine on localhost.
I can make it more strict by only sending when it received the full message

The difference between io_uring_prep_sync_send and io_uring_prep_send would be that with io_uring_prep_sync_send you could do io_uring_submit_and_wait(ring, 16) without ever getting stuck, as those io_uring_prep_sync_send would immediately have a completion.

IMHO, that's what non-wait should have been there for, either -EAGAIN or it completes in the syscall. Sadly, nowait has never been well defined for io_uring.

That has to be io_uring_get_sqe returning null. But how is that even possible if you have 100 connections. On localhost it sends the entire thing in one go. So you must be getting fractions and sending more and more in a chain reaction. The test doesn't actually wait for 16kb just some data. But that works fine on localhost.
I can make it more strict by only sending when it received the full message

Not sure it helps, but if you set MSG_WAITALL io_uring will do recv/send retries for TCP in case of short IO. I think it's still possible to get short IO but that's unlikely

My observation of slowdown is on localhost and on localhost the benchmark provided works stable. It works stable because on localhost send always succeeds since there is always room for 16kb data to be immediately written to kernel socket buffers, at only 100 sockets involved. There is only ever 16kb times 100 messages sent, so the benchmark on localhost is more of a IPC kind of benchmark. So it still has merit in showing CPU overhead of epoll vs. io_uring and it still very clearly for me shows a huge win for io_uring at small sizes, but for me 16kb is way slower with io_uring and that is when both epoll and io_uring performs the same exact task: sending whole chunks of 16kb. There is never any split up on localhost for me, and so the test is entirely 1 to 1, achieving the exact same thing.


Centralice prompt in scaffold-admin to avoid repeated questions

This should be passed to sub command and avoid their questions.

Similar to #103


Warnings for "Cannot find source file '../src/*.ts" in Webpack with source-map-loader

Running Webpack 3 (and possibly older ones) with the source-map-loader plugin causes warnings like
Cannot find source file '../src/index.ts'

to be emitted.
This can be resolved by the user by modifying the module rule for source-map-loader in the webpack config to include
exclude: [path.resolve(__dirname, './node_modules/typesafe-actions')]

This is similar to a bug I found here - it appears their solution was to include the source files in the npm package.
Good package BTW - really helpful :)

Easy to close


Update imports in examples/notebooks

Update examples/notebooks to use from optimum.intel import ... instead of from optimum.intel.openvino import .... This is best practice, and it prevents difficult to debug errors. For example, if accelerate is not installed and you import OVTrainer, you get a friendly error with the new import but not with the old version.
Also

added accelerate to example requirements
updated Ubuntu/Python versions in the workflow files.
fixed running example tests on changing example files

@AlexKoff88 unrelated to this PR, the audio classification example fails with this error:
FAILED examples/openvino/test_examples.py::TestExamples::test_audio_classification - nncf.errors.ValidationError: No match has been found among the model operations for the following ignored/target scope definitions:
 - ignored_scope: ['{re}.*__truediv__.*', '{re}.*matmul_1']
Refer to the original_graph.dot to discover the operations in the model currently visible to NNCF and specify the ignored/target scopes in terms of the names there.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

Can you take a look at the failing test_audio_classification examples before we can merge @helena-intel ?

Can you take a look at the failing test_audio_classification examples before we can merge @helena-intel ?

It looks like the issue is caused by the nncf_compression_config not being used. In https://github.com/huggingface/optimum-intel/blob/main/optimum/intel/openvino/configuration.py#L313 compression is set to None. I changed it to  kwargs.get("compression", None).

thanks a lot for the fix @helena-intel


Dmp 1661 integration tests ats download

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/DMP-1661
Change description
Investigate integration and or functional tests to cover ffmpeg commands
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x ] No

This contains an experiment to see if functional tests for ATS can be done but now that integration tests are possible, this is redundant


[Question] Why do we need ConfigurationExtensions as a separated project?

Do we need to have it like a separated project and install it by a separated NuGet package?
Am I missing something?
I think that ConfigurationBinder.Bind configuration method is most used...

Factoring, we don't want the main options to depend on config unless the binding feature is used.


Login/Register autofill broken

Follow up from: https://github.com/openfoodfacts/smooth-app/issues/1344
Somehow the autocomplete feature in the login and register TextFields don't work anymore

Can still reproduce somehow the autofill isn't picked up by my phone anymore

Just did some further testing but first I'm not using Google/Android autofill but Samsungs solution, (more explicitly Samsung keyboard) but I actually don't know if it's just another skin or if there are differences of who takes care of detecting the text fields, Samsung or Google
My remarks:

It works for you so it's not completely broken

It worked on my device (few months ago when I introduced login) another indicator that it's probably not our fault

I have the credentials linked to both the native android app and smoothie

Android works, so my setup works in theory

When I have no credentials stored for a application there is a "Search for credentials" button instead for linking credentials I already stored for example on my pc. This also doesn't appear in smoothie so it is a error in password, login field detection.

My guess would be that it's a Flutter, Samsung specific error
The interesting part is in the upper line of the keyboard
https://user-images.githubusercontent.com/39344769/162832512-4aac4b75-af8f-45a1-98ff-639d64aabf90.mp4

Doing some further testing next week

Somehow fixed itself