Potentially Implement a Tab Order Param?

I have a UI panel for logging onto a server (it's an online game) which has a number of text entry lines. I wanted the user to be able to cycle through them using the TAB key.
In order to do this, I have implemented a list of the relevant text line objects, and applied an itertools cycle to them. When TAB is pressed, it positions this cycle, by cycling until it finds the element which matches manager.focused_element, then shifts focus to the next item, and selects all the text within it.
This required modifying the UITextEntryLine class, in order to add K_TAB to the _process_action_key_event method, merely to prevent the keypress being taken as an input.
This could probably be most neatly handled at the UIManager level, if it's thought that it could add value enough to justify it. Providing a "tab_order" parameter to the text_input_line class (and potentially buttons) could allow this to be implemented, perhaps on a container-wide level.
def tab_cycle(self):
    focused_elem = self.manager.focused_element
    while focused_elem != next(self.focus_cycle):
        continue
    focus_elem = next(self.focus_cycle)
    self.manager.set_focus_element(focus_elem)
    focus_elem.select_range = [0, len(focus_elem.text)]

I definitely do want to do this, or something very like it - and add the enter key as an alternative to a mouse click on focused buttons.
I do suspect there is probably going to be a range of issues with the way it works though. While I can clearly imagine how it would work for simple click interactions, my brain is whispering to me (as it sometimes does) that some things that work smoothly with the mouse (like dragging? ) are going to be less usable with a keyboard or d-pad.
I have a vague plan in my head to figure out:

A good, themable way of showing the focused element to the user. I'm thinking I'll need to expand to having hierarchical shape states so things like buttons can be hovered & focused or selected & focused, but the focus colours will get priority if they exist. That way everything could still work exactly the same as it does now or the drawing code could also know that if a shape is in the focused state it should draw, say the border, in a different colour.

Keyboard only UI Controls, once you can see where the focus currently is (if it's anywhere). You should be able to move it around the 'focus-able' UI elements on the screen (some UI elements are not interact-able by default so don't need focus). I'm thinking tabbing elements normally goes left to right then top to bottom which I can probably work out with some sorting. The enter would become a generic 'interaction' key like it is already on the text entry line.

Followed by console controller only controls as I think they will share a lot of similarities - though a controller is also going to need an onscreen keyboard element for text entry and can maybe do a few things better than a keyboard thanks to analogue sticks.

This issue is related to #76,

I only picked up your library a couple of days ago, and I'm still getting to grips with its intricacies, so forgive me if I demonstrate my unfamiliarity, but please allow me to share my thoughts:

I don't see any reason not to use the 'hovered' behaviours to demonstrate focus; it's normally an indicator that it will be triggered by action, so it seems apt to me. For buttons, to ape the windows behaviour, the focus could additionally involve simply (and optionally) drawing the rect that contains the button text. Drop-down menus and selection lists, I would suggest, could share the behaviour of hover, actuated with the arrow-keys, with the behaviour of clicking the drop-down button triggered also by gaining focus (with its own button simply set_focus_element'ing it).

Thinking back to my dim-and-distant days working with VBA, I recall that the elements within a group (container) could be assigned an integer value to specify the order in which TAB (and Shift + TAB) would cycle through them. Exposing an optional parameter, at the UIElement-level, that defaults to False, but will accept an int could achieve similar. Methods would be required, somewhere, to detect and handle assignment collisions, and perhaps to auto-assign values to elements assigned 'True', without value, as you seem to suggest.

Controller-only text entry certainly leaves room for novel solutions, beyond an on-screen keyboard. I'd consider the latter to be simply a panel of buttons, but moving between them could require the 'tab order' to be a 2D array.

I don't mean to seem like I'm teaching you to suck eggs, so sorry if that;s the case! I've been very impressed with pygame-gui so far, especially for the breadth of documentation and commenting, so am very glad that I came across it, and appreciative for your efforts in maintaining it!
I guess I better go add a Shift+TAB method to my panel!

I think it is completely reasonable that some functionality is only accessible with certain input, e.g. not being able to resize a window with a controller. I can't think of any game that's allowed me to handle that sort of minutiae with a controller. Just being able to interact with the element, without resorting to manipulating the mouse cursor  pixel by pixel, is of huge benefit. Though to confirm, tabbing through elements seems like core functionality that would be beneficial for any input device (maybe not the mouse).
Speaking of manipulating the mouse, one approach to controller/UI interactions that I've seen before is to jump the mouse cursor from element to element in response to controller input. That way no the only controller specific code is basically middle ware between the input and the mouse.  Certainly not advocating that, as I think it's a workaround more than a solution, but its a thought.


Markdown TextUtils bug

From Google Play Store:
java.lang.ArrayIndexOutOfBoundsException: length=4; index=10
at java.util.regex.Matcher.group(Matcher.java:358)
at java.util.regex.Matcher.appendEvaluated(Matcher.java:138)
at java.util.regex.Matcher.appendReplacement(Matcher.java:111)
at org.odk.collect.android.utilities.TextUtils.markdownToHtml(TextUtils.java:49)
at org.odk.collect.android.utilities.TextUtils.textToHtml(TextUtils.java:108)
at org.odk.collect.android.views.HierarchyElementView.setPrimaryText(HierarchyElementView.java:75)
...
This error is due to the inappropriate use of this idiom in TextUtils.markdownToHtml(html):
Xmatcher.appendReplacement(output, createXReplacement(Xmatcher));
The problem is that appendReplacement will examine the string returned by createXReplacement() to find substitution actions like ${1} and attempt to replace those with elements retrieved from the Xmatcher.  See https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)
Either the code needs to be changed so that the return content is a proper replacement substitution string or this code needs to be reworked to not use the appendReplacement() method.

Not sure I get it. Any chance you can whip up a sample form that shows the issue?

Here's an example.  The replacement strings are parsed and interpreted according to the rules described in the link above.
markdown.xml.txt


Close #66: Optional ssh tunnel

Coverage decreased (-0.2%) to 95.666% when pulling ef8f5892d53ef2d691a41b1302eee7be31faacf8 on optional_ssh_tunnel into 622058d44c59b89be6dd0e7616818ef65da5bf3c on master.


Support messages from Semantic Kernel

When tried to use AICentral with client that implements Semantic Kernel I received an error. When client doesn't use Semantic Kernel all is fine. Issue is in AzureOpenAIDetector.cs#42 where messages suppose to have content property. However message from Semantic Kernel looks different.
Here is the same prompt from an app that uses just Azure.OpenAi nuget:
[{"content":"Assistant is a large language model.","role":"system"},{"content":"tell me a joke","role":"user"}]
and here is the same prompt from an app that uses Semantic Kernel:
[{"content":"Assistant is a large language model.","role":"system"},{"content":[{"text":"tell me a joke","type":"text"}],"role":"user"}]
Looks like there missing support for message as array with type. Here is the code that does the trick:
private static string ExtractPromptText(JsonDocument requestContent)
{
    return string.Join('\n', requestContent.RootElement.GetProperty("messages").EnumerateArray().Select(x =>
    {
        var contentElement = x.GetProperty("content");
        if (contentElement.ValueKind == JsonValueKind.String)
        {
            return contentElement.GetString();
        }
        else if (contentElement.ValueKind == JsonValueKind.Array)
        {
            return string.Join("\n", contentElement.EnumerateArray().Select(y => y.GetProperty("text").GetString()));
        }
        return string.Empty;
    }));
}

This method shall be called in AzureOpenAIDetector.cs#42.
I couldn't create a PR since git told me I do not have permissions.

Thanks @LukaszFliegel - first issue which is awesome. I’ll have a look at this today and ensure we have sem kernel compat.

Thanks @LukaszFliegel this is fixed now by #94
https://github.com/microsoft/AICentral/pull/94/files#diff-054dc24196efe772626b404cc0f17f1e6b3f50f44f6d8d254285659061fc516cR52

@LukaszFliegel - thanks for the PR offer - I think you need to fork and create the PR from your own repo back into this one.

Thank you so much!


how to hide directLine secret, user and bot id..

Hi all,
referring to script below:

how to hide such info?
please help
..
thanks

For Direct Line secret, you will need to implement a server solution to exchange the secret into token. That's the only way to make sure the secret does not expose to the client.
For user ID, it is not able to hide. You should sign it to prevent forgery, this is very similar to how we usually handle user ID in HTTP cookies.
For bot ID, I need to double-check. But I think it is not sensitive so you should not need to hide it.

@compulim
Thanks for your reply!..
I am also looking for article how to implement server solution.. can you share it for me? and for the others that might need it..
thanks a lot in advance

You can find some of the token exchange/renewal code here. This repos is a Docker template we use to host both Bot.js and Web Chat on a single server.


Some refactoring

This PR does small refactoring:

Remove $mv_state, $mv_state_const, and CapturePoints.
Remove unused field in QuantifierInfos.
Rename several source  files.
Fix typos.
Move QuantifierInstantiationEngine.cs to VCGeneration project.
Terms now added to labeled pools only upon quantifier skolemization; earlier terms were being added  even upon instantiation.

@RustanLeino :  FYI.


RN 0.76 iOS Javascript Injection Error

Bug description:

Only iOS, below error is appear.
 Error evaluating injectedJavaScript: This is possibly due to an unsupported return type. Try adding true to the end of your injectedJavaScript string. Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=0, WKJavaScriptExceptionMessage=Cannot execute JavaScript in this document, WKJavaScriptExceptionColumnNumber=0, NSLocalizedDescription=A JavaScript exception occurred}

To Reproduce:

const injectedJavaScriptBeforeContentLoaded = `
    window.isWebView = true;
    window.systemLanguage = ${JSON.stringify(RNLocalize.getLocales()[0].languageCode)};
    window.appVersion = ${JSON.stringify(VersionCheck.getCurrentVersion())};
    true;
`;

<WebView
      injectedJavaScriptBeforeContentLoaded={injectedJavaScriptBeforeContentLoaded}
      bounces={false}
      onMessage={onMessageFromWeb}
      onError={errorWebView}
      onNavigationStateChange={(event) => {
        onNavigationStateChange?.(event);
        onChangeUrl(event);
      }}
      onLoadStart={onLoadStart}
      onLoadEnd={onLoadEnd}
      downloadingMessage={undefined}
      javaScriptCanOpenWindowsAutomatically
      allowsBackForwardNavigationGestures={enableSwipe}
      onOpenWindow={onOpenNewWindow}
      onContentProcessDidTerminate={onContentProcessDidTerminate}
      onRenderProcessGone={onRenderProcessGone}
      allowsInlineMediaPlayback
      onShouldStartLoadWithRequest={onShouldStartLoadWithRequest}
      renderToHardwareTextureAndroid
      webviewDebuggingEnabled={!BuildEnv.IS_PRODUCTION}
      sharedCookiesEnabled
      thirdPartyCookiesEnabled
      domStorageEnabled
      cacheEnabled
      javaScriptEnabled
      injectedJavaScriptBeforeContentLoaded={injectedJavaScriptBeforeContentLoaded}
      androidLayerType={'hardware'}
      decelerationRate={0.998}
      mixedContentMode={'compatibility'}
      textZoom={100}
/>

Expected behavior:

Screenshots/Videos:

Environment:

OS:
OS version:
react-native version: 0.76
react-native-webview version: ^13.12.3

+1

Once if migrate to @dr.pogodin/react-native-webview, it should work fine.

+1

+1

+1.

+1

+1

+1

+1

Commenting out the following piece of code in the "apple/RNCWebViewImpl.m" file can solve this problem.
#if !TARGET_OS_OSX
- (void)didMoveToSuperview
{
  if (self.superview != nil && _webView == nil) {
    [self initializeWebView];
  }
}
#endif // !TARGET_OS_OSX

Commenting out the following piece of code in the "apple/RNCWebViewImpl.m" file can solve this problem.
#if !TARGET_OS_OSX
- (void)didMoveToSuperview
{
  if (self.superview != nil && _webView == nil) {
    [self initializeWebView];
  }
}
#endif // !TARGET_OS_OSX

Work perfect 👍

Anyone willing to test a fix for this issue, please try these steps:

replace "react-native-webview": "13.12.4" with "react-native-webview": "github:react-native-webview/react-native-webview#573ce151683296f469de74fb21aa6de8c58d1dce" in your package.json file
install npm dependencies with npm install / yarn install (depending on which package manager you are using)
reinstall pods (pod install in the ios folder) or if you are using expo run npx expo prebuild
rebuild the app (e.g with npx react-native run-ios or if you are using expo with npx expo run:ios; or from Xcode)
check if this issue is fixed

This should be fixed in version 13.12.5 by this PR: https://github.com/react-native-webview/react-native-webview/pull/3615

I am not certain #3615 fixes RN 0.76 compatibility with NewArch. From the tests that we did, there is still Javascript injection issues specifically with RN 0.76 when NewArch is active (by default)
The PR does fix injection issues in previous RN versions though


anchor variance

I see your code, I find that you don't add variance when you encode box

which network?

ssd, refinedet
pos_truth_pbbox_yx = (total_pos_gbbox_yx - total_pos_abbox_yx) / total_pos_abbox_hw
pos_truth_pbbox_hw = tf.log(total_pos_gbbox_hw / total_pos_abbox_hw
soure code:
pos_truth_pbbox_yx = (total_pos_gbbox_yx - total_pos_abbox_yx) / total_pos_abbox_hw / 0.1
pos_truth_pbbox_hw = tf.log(total_pos_gbbox_hw / total_pos_abbox_hw / 0.2

I have never see the source code, only implement network according to paper

👍
| |
陈志明
<EMAIL_ADDRESS>|
签名由 网易邮箱大师 定制
On 05/29/2019 19:09, Stick-To wrote:
I have never see the source code, only implement network according to paper
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Reduce blank space and padding on GUI

At present, a lot of each page is filled with blank space, with actual posts and text taking up a small portion and, crucially, being difficult to read. We should try and eliminate this by reducing padding and increasing the size of the actual information.

couldn't you just Control-Plus a few times on your massive monitor?

or should we just make the size of the objects percent based rather than absolute?


[IN-95][Ember-OSF-Web] Update navbar to fit changes in osf-style

Purpose
To update the format of the navbar to use changes in the latest osf-style
Summary of Changes

Move  the navbar-toggle collapsed button to the right of the other elements in its container
Added secondary-nav-dropdown class to the new-navbar-auth-dropdown component
Changed classes and element tags to match styles needed for long name truncation

Side Effects / Testing Notes
Just check that long names do not break to a new line.  It should truncate based on how much space it has in the navbar.
Ticket
https://openscience.atlassian.net/browse/IN-95
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md

Coverage remained the same at 22.045% when pulling e2d16b8095cbdd1a9b494b97cce1bad37c0287c4 on baylee-d:feature/IN-95-update-navbar-layout-for-new-styles into d573bccfce5fd3fb7f1e577fead6ea071d9cdbac on CenterForOpenScience:develop.


General Improvements

Require Copy for both public and private key and switch to points instead of using PublicKey-like types.
Require Zeroize for both public and private key instead of only using KeGroup::zeroize_sk_on_drop() on the private key.
Fixed some missing checks in the ristretto255 implementation for zero scalars and identity elements during deserialization.
Base the X25519 implementation on curve25519-dalek instead of x25519-dalek to support Zeroize and drop two dependencies.
Use derive_where(ZeroizeOnDrop) instead of hand-implementations.

It would be nice to be able to sync the implementation with the latest draft and its changes (https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-opaque-08.html). I'd be happy to work on that, but want to avoid any potential merge conflicts, since I will be pulling from the main branch. If you think it would be better to land these changes now, let me know and I can merge before starting my work.


Search across multiple tabs

It looks like Find only works for text on the current tab (or page or whatever you call them).
It would be cool if it searched all tabs.

Done


Plugins

I would like to propose a plugin system for Moya.
MoyaProvider can now be initialized with a set of Plugins.  A Plugin receives callbacks to perform side effects wherever a request is sent or received.
For example, a plugin may be used to

log network requests
hide and show a network avtivity indicator
inject additional information into a request

This kind of tackles #144 as well, as the number of additional closures is now much lower and can be initialized with an arbitrary number of plugins
I have also added plugins for the existing CredentialClosure and NetworkActivityClosure to make it easy for everyone to adopt this change. Maybe we should also try to build a plugin from the Logger in #235?
Would love to get some feedback on the idea or how to make this even more generic for everyone to use (I'm not super happy with the subclassing approach). :heart:
Fixes #144.

I really like this approach! Since Moya get´s more and more awesomeness, there should be a consistent way in adding new features without having dozens of specific closures (like the already mentioned credentials, logger, network activity).
It would also reduce the amount of breaking changes if new features were implemented as Plugins whenever possible.

Generally looks great! I was a bit wary of the idea of "plugins", but I really like the implementation.
I have a few pieces of general feedback:

I saw the note about avoiding protocols – let's see if we can think of something besides inheritance? Nothing comes to mind, though ...
Should a plugin be able to distinguish between stubbed requests and real ones?
Maybe the plugin functions should accept the manager as a parameter? I dunno, probably unnecessary but it feels like something that should happen. Thoughts?
Could we call them something other than "plugins"? :stuck_out_tongue:

Thanks again!

Thanks for the feedback. I'll push your remarks asap.

First of, I don't really like the subclassing approach either. I tried a few things with protocols but none of them really seemed to work out. I'd love to discuss alternatives though.
I decided to give the Plugin separate calls for stubbed requests and real ones, because the parameters are a bit different. This could, however, be abstracted into a single method on the plugin that accepts a stubbed/not-stubbed parameter.
Could easily add the manager to the plugin functions, not sure what the plugin would do with it though. Do you have any use cases that come to mind?
I am not too fond on the term plugin either. Maybe mixin? sideeffect? I just named it plugin, because everyone is sort of familiar of this term.

:boom:

Ahhh, sorry I meant the provider parameter (through which, I guess, the manager would be accessible too).
I guess what I'm really saying about the stubbed/not stubbed functions is that I don't think the plugin should even know if the request it's being called with is being stubbed or not.
Nomenclature is hard, let's give it a think :)

Also, I agree with using a logging plugin for this – it looks like we're on board to go forward with this solution, so let's I'm going to close #235. Happy to recreate the logger from there as a plugin, if I could help.

And don't forget about the changelog! :poodle:

Wow :scream:
Great idea and implementation @aschuch :bow: :ok_hand:

Great!

Ok, so I've removed the duplication of methods for stubbed/real requests and added the provider to the callbacks.
I have also put together a version on a different branch that shows how Plugin can be implemented in terms of a protocol. This requires a PluginContainer wrapper in order to keep a reference within MoyaProvider and satisfy the type system.
I also tried to make  PluginContainer conform to ArrayLiteralConvertible to keep the API clean, but could not figure out a way to accept the type constraints.
extension PluginContainer: ArrayLiteralConvertible {
    init<P: Plugin where P.T == T>(arrayLiteral elements: P...) {
        willSendRequestClosures = elements.map { $0.willSendRequest }
        didReceiveResponseClosures = elements.map { $0.didReceiveResponse }
    }
}

Any opinions towards keeping the subclass vs. the protocol approach?

Leaning towards protocols, personally. Will have time to review shortly.

Tricky problem – I think the root of the issue is that we want the plugins to both be able to be used with any type of MoyaTarget, but refer to the specific type that's conforming to that target.
What I mean is, I'm not sure we need to use a typealias'd protocol or a generic class. What about the following?
public protocol Plugin {

    func willSendRequest<Target: MoyaTarget>(request: Alamofire.Request, provider: MoyaProvider<Target>, token: Target) -> Alamofire.Request

    func didReceiveResponse<Target: MoyaTarget>(data: NSData?, statusCode: Int?, response: NSURLResponse?, error: ErrorType?, provider: MoyaProvider<Target>, token: Target)

}

Even if someone wanted a plugin to support a specific target type, they should be able to do that:
class ExamplePlugin: Plugin {

    func willSendRequest<Target: MoyaTarget>(request: Alamofire.Request, provider: MoyaProvider<Target>, token: Target) -> Alamofire.Request {
        return request
    }

    func willSendRequest(request: Alamofire.Request, provider: MoyaProvider<HTTPBin>, token: HTTPBin) -> Alamofire.Request {
        return request
    }

    func didReceiveResponse<Target: MoyaTarget>(data: NSData?, statusCode: Int?, response: NSURLResponse?, error: ErrorType?, provider: MoyaProvider<Target>, token: Target) {

    }
}

@aschuch I'll send a PR over to your fork – looking forward to hearing what you think.

Hmm, wait that might not work. Anyway, I'll play with it.

Nah, this is silly. You have a working solution, let's merge this PR and keep the idea of moving to a non-inheritance approach for another release.

Awesome. Thanks for your input everyone. :heart:


Add RandomFu

This seems in good enough shape to review.  I've added the effect as before.  Added the absorber using the code in MTL.  Added a couple of tests, though I'm open to more interesting or useful examples if anyone has ideas!

Looks great! Happy to merge when you give me the :+1:


Make some imports relative, fixing broken import in python3

I was trying to play around with autodidact and found import broken in python3. This appears to fix it.

To be more precise, here are steps that reproduce the error I got (assumes virtualenv is around):
$ cd /tmp
$ virtualenv -p python3 autodidact
$ cd autodidact
$ source bin/activate
$ git clone https://github.com/mattjj/autodidact
$ cd autodidact
$ pip install numpy
$ python -c 'import autograd'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/autodidact/autodidact/autograd/__init__.py", line 1, in <module>
    from .differential_operators import make_vjp, grad
  File "/tmp/autodidact/autodidact/autograd/differential_operators.py", line 5, in <module>
    from .core import make_vjp
  File "/tmp/autodidact/autodidact/autograd/core.py", line 5, in <module>
    from tracer import trace, Node
ImportError: No module named 'tracer'

I tried this and got: (With tanh.py in the autodidact folder instead of examples)
(autodidact) ➜  autodidact git:(master) ✗ python tanh.py
Traceback (most recent call last):
  File "tanh.py", line 10, in <module>
    print(grad(tanh)(1.0))
  File "/private/tmp/autodidact/autodidact/autograd/differential_operators.py", line 12, in gradfun
    return vjp(np.ones_like(ans))
  File "/private/tmp/autodidact/autodidact/autograd/core.py", line 14, in vjp
    def vjp(g): return backward_pass(g, end_node)
  File "/private/tmp/autodidact/autodidact/autograd/core.py", line 23, in backward_pass
    vjp = primitive_vjps[fun][argnum]
KeyError: 0

If I do this and run tanh.py in the autodidact directory (instead of from within examples) I get:
(autodidact) ➜  autodidact git:(master) ✗ python tanh.py
Traceback (most recent call last):
  File "tanh.py", line 10, in <module>
    print(grad(tanh)(1.0))
  File "/private/tmp/autodidact/autodidact/autograd/differential_operators.py", line 12, in gradfun
    return vjp(np.ones_like(ans))
  File "/private/tmp/autodidact/autodidact/autograd/core.py", line 14, in vjp
    def vjp(g): return backward_pass(g, end_node)
  File "/private/tmp/autodidact/autodidact/autograd/core.py", line 23, in backward_pass
    vjp = primitive_vjps[fun][argnum]
KeyError: 0

Seems you can fix this with: https://github.com/quaffpotion/autodidact/commit/82c808c5300674833f44d010959a96e930ec6ec3

Sorry, somehow I missed this PR. I think the change is included in #6 (which I happened to merge first), so I'm going to close this one, but thanks for the fix!


Use assertEqual for Testing - [Enhancement]

Describe the enhancement request
Replace the assertIn with assertEqual for the unit tests.
Currently
self.assertIn(b'"auth": true', response.content)
self.assertIn(b'"success_msg": "Successful Login"', response.content)

Better Version
self.assertEqual(True, response.json()['auth'])
self.assertEqual('Successful Login', response.json()['success_msg'])

The reason I will not do this issue because I want to verify that I match against the JavaScript's boolean value which is true and false. The reason I do not want to compare to Python's boolean value because its values are True and False. This issue is not necessary.


Implicit Cofibration Proofs

(emoji needed)
This PR makes functions out of cofibration proofs implicit. So to inhabit [ϕ] -> A we can simply write down an element of A and it will be elaborated to a function. Similarly, if we have f :  [ϕ] -> A, it will be elaborated to f *.
The main thing this is lacking is nice printing. We still print( functions out of) and (applications to) cofibration proofs, because we do not have types when printing. Not printing applications to * is straightforward, but conditionally not printing lambdas is more difficult. We may need to add separate core terms for these constructs.
Regardless of printing, I think having these proofs clutter only the core is superior to having them clutter both the surface language and the core.

@mmcqd Wow cool! I will try to have a look at this within the next 48 hours. I think it is fair to say that having the output of cooltt be valid cooltt code is not currently one of the invariants that we satisfy, so I would not hold up the PR for the sake of that.


Cant setup Daemon

i tried to open the app after the first install and got te same issue as #24 i tried to follow the same solution but when i try to run the setup i get
$ sudo power-daemon-mgr setup

(process:3910): Gtk-WARNING **: 19:41:38.507: Locale not supported by C library.
        Using the fallback 'C' locale.
ERROR ==> [power_daemon::sysfs::rapl]: Unexpected intel rapl interface. Expected package-0, core or uncore

im using arch and installed power-options-gtk from aur using yay
my cpu  11th Gen Intel(R) Core(TM) i5-11260H @ 2.60GHz

Check if the daemon actually fails to finish the setup process. This is technically more of a warning than an error and should just leave the default rapl options unchecked.

how could i check if the daemon fails to finish the setup process sorry if that's a stupid question

At least the systemd file needs to exist. Try to start it sudo systemctl start power-options and then check the logs to see if it fails journalctl -u power-options

it fails
Oct 18 20:01:00 Archie systemd[1]: power-options.service: Main process exited, code=exited, status=101/n/a
Oct 18 20:01:00 Archie systemd[1]: power-options.service: Failed with result 'exit-code'.

here is the logs
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying profile: Performance
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying Sleep settings on ThreadId(22)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying ASPM settings on ThreadId(17)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying Kernel settings on ThreadId(17)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying RAPL settings on ThreadId(17)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying CPU settings on ThreadId(14)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying USB settings on ThreadId(23)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying Radio settings on ThreadId(21)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying Screen settings on ThreadId(18)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying Network settings on ThreadId(15)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying PCI PM settings on ThreadId(16)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: ERROR ==> [power_daemon::sysfs::rapl]: Unexpected intel rapl interface. Expected package-0, core or uncore
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying SATA settings on ThreadId(20)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: ERROR ==> [power_daemon::profile]: ifconfig is not present in the system, ignoring ethernet settings...
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: INFO ==> [power_daemon::profile]: Applying CPU core settings on ThreadId(14)
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: WARN ==> [power_daemon::sysfs::writing]: Attempted to write 1 to CPU sysfs path /sys/devices/system/cpu/cpu0/online, but that path does not exist!
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: thread '<unnamed>' panicked at crates/power-daemon/src/helpers/commands.rs:22:10:
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: Could not spawn command: Os { code: 2, kind: NotFound, message: "No such file or directory" }
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Oct 18 20:00:59 Archie power-daemon-mgr[4427]: ERROR ==> [power_daemon::profile]: Attempted to set suspend time when xautolock is not installed
Oct 18 20:01:00 Archie systemd[1]: power-options.service: Main process exited, code=exited, status=101/n/a
Oct 18 20:01:00 Archie systemd[1]: power-options.service: Failed with result 'exit-code'.

Could it be that your system does not have ifconfig? Its not a requirement but a bug was fixed recently related to systems without it so you might need to install the git version.

i think its working
$ sudo systemctl status power-options
● power-options.service - power-options daemon
     Loaded: loaded (/usr/lib/systemd/system/power-options.service; enabled; preset: disabled)
     Active: active (running) since Fri 2024-10-18 20:12:26 +03; 2min 19s ago
 Invocation: 288a1901602244e88bb98a84b75c660a
   Main PID: 12469 (power-daemon)
      Tasks: 27 (limit: 18704)
     Memory: 3.2M (peak: 5.1M)
        CPU: 125ms
     CGroup: /system.slice/power-options.service
             └─12469 /usr/bin/power-daemon-mgr daemon

Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying Sleep settings on ThreadId(14)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying Radio settings on ThreadId(15)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying RAPL settings on ThreadId(23)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying Network settings on ThreadId(21)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying PCI PM settings on ThreadId(19)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying Kernel settings on ThreadId(25)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: INFO ==> [power_daemon::profile]: Applying CPU core settings on ThreadId(16)
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: WARN ==> [power_daemon::sysfs::writing]: Attempted to write 1 to CPU sysfs path /sys/devices/system/cpu/cpu0/online, but that path does not exist!
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: ERROR ==> [power_daemon::sysfs::rapl]: Unexpected intel rapl interface. Expected package-0, core or uncore
Oct 18 20:12:26 Archie power-daemon-mgr[12469]: ERROR ==> [power_daemon::profile]: Attempted to set suspend time when xautolock is not installed

thank you


allow typed_per_filter_config to refer to "custom" HTTP filter names

Use case: We'd like to use multiple ext_authz filters configured with different gRPC servers, and would like to be able to toggle them separately via route config. This means we can't just use the canonical filter name, but need to be able to refer to custom names.
https://github.com/envoyproxy/envoy/pull/9618 made Envoy able to infer most extension types from the type URL of the config, which frees up users to use the name field to make filter names more descriptive (particularly useful for distinguishing multiple instances of the same filter).
It looks like typed_per_filter_config doesn't yet have this capability and requires that the canonical filter name is used.
I'm not super familiar with the code or filter registration system, but it seems like this could be done by either:

keeping a map of filter name to type, and looking up the supplied name in that map to figure out the filter config type
use the type URL of the config to infer the filter type
both (with a precedence order for applying 1 and 2).

Probably just 1) makes sense? that would ensure that there can't be multiple configs that map to the same filter.
It also might require a config option somewhere backwards compatible? There could be a working config today where a filter has a custom name but the typed_per_filter_config is using the old name.

To be consistent with #9618, I think 2 is the way to go, if the config isn't typed (i.e. google.protobuf.Struct), then it should be inferred from name.

Looking at this more closely, I think I misunderstood what needs to happen in my original comment.
It looks like the issue is that the individual HTTP filters (ext_authz used here as an example) get their per route config like this;
          HttpFilterNames::get().ExtAuthorization, route);

It's using the well-known name there. Knowing this, I think the solution should be to make each filter know its user-specified name from the http_filters list in HCM. Then the filter can try to resolve config using this name instead.
I'm not sure how to handle backwards compatibility for this, since users may have started using user supplied filter names but continue to rely on per route config using the well known filter names, I'm open to suggestions. I'd love to do something like "try to resolve with the user supplied name, and if that is a miss then use the canonical name", but I think that could have strange behavior because for some routes you might hit on one name, and on other routes you might hit on the other.

Agree with the above, we should use the opaque filter name in the HTTP filter chain as the key to join with the per-route overrides. I think this makes most sense. @fuqianggao @markdroth

Agree with the above, we should use the opaque filter name in the HTTP filter chain as the key to join with the per-route overrides. I think this makes most sense. @fuqianggao @markdroth

+1. In this case, should Envoy reject a config that has filters with the same filter name and filter type?

+1. In this case, should Envoy reject a config that has filters with the same filter name and filter type?

I think that would make sense, but it could break a bunch of existing users (maybe?). Would be worth adding a check and runtime enabling for rollout.

I think that would make sense, but it could break a bunch of existing users (maybe?). Would be worth adding a check and runtime enabling for rollout.

To be clear, I think it should be reject duplicate filter names, not duplicate types -- it's totally fine to have two instances of the same filter under different names.

To be clear, I think it should be reject duplicate filter names, not duplicate types -- it's totally fine to have two instances of the same filter under different names.

Note that when validating the RDS response, we won't necessarily know which LDS response to use to validate the filter instance names, since there could be a new LDS response that has recently been received but has not yet been swapped in.  So we probably won't be able to validate that the names in the per-route overrides actually exist in the HCM filter list, but we can still validate that the protobuf types in the values of the typed_per_filter_config fields do map to known filter types.

Since gRPC will be adding support for HTTP filters in the near future, it would be good to get this implemented in Envoy, so that the semantics are the same between the two xDS clients.

Bumped to priority/high.

Hi team, just wondering what the progress of this is?

@kev1n11 yes, still priority, PRs welcome!

Hi @mpuncel! Finally, could you find some workaround? I have a similar case. Thanks! :)

cc @markdroth Does the gRPC introduced new API for the semantic?

No, gRPC has no new API for this.  The typed_per_filter_config key is always the custom name from the HttpFilter.name field in the HCM's list of filters.
I suspect the easiest path for backward compatibility here will be to first try to find a custom name match and then fall back to using the old canonical names.

The default compatibility approach is essentially the same thing that was done in https://github.com/envoyproxy/envoy/pull/9618 to change the meaning of the existing filter name field in the HCM config.  If it worked for that, I'm not sure why it wouldn't work here as well.
I really don't think it makes sense to require gRPC to support a new field when we already have the desired functionality here.  I think Envoy just needs to change its behavior to work the same way.

As long as we don't break existing users I'm OK with a fallback approach. If we are going to break existing users we will have to add some type of new config. There are too many people that would be effected by a breaking change here.

Yeah, agreed.  I don't think this should be a breaking change.
Unless I'm missing something, the only case in which this would be a breaking change is if there is a conflict where someone is using one of the canonical names as the custom name for a different filter impl (e.g., using "envoy.filters.http.ext_authz" as the name for a fault injection filter instead of an ext_authz filter), which seems exceedingly unlikely.  Such a config would not have worked at all with Envoy prior to https://github.com/envoyproxy/envoy/pull/9618, and I'm not sure why anyone would have switched to that config since then.
If we do need an explicit way to make this configurable, though, then I think we can do it in a way that doesn't break the existing behavior for gRPC.  We can use the same approach that was introduced in #14982: we can wrap the value of the typed_per_extension_config entry in a FilterConfig proto, and we can add a new bool key_is_custom_name field to the FilterConfig proto.  gRPC will not add support for this field, because we always use the custom names, but Envoy can look at that field to decide what name to match on.

I'm not sure why it wouldn't work here as well.

It works. Explicit configuration just my personal preference.
I hope the behavior can be controlled by the users and provides some extendibility here.
Any way, we can make the fallback a default behavior to reduce work of grpc.


Added my profile information in users.json

What does this PR do?

Fixes #29

Type of change

New feature (non-breaking change which adds functionality)

Make sure to drop a ⭐ Star to the repository


moved docs about music service plugins and added doc about getTrackInfo

I have moved the docs about the music service plugins into a separate file and added docu about the different types like folders, songs, ... and added docu about the getTrackInfo introduced in PR volumio/volumio-plugins#101 and volumio/Volumio2#1355

Thanks!


[AutoPR monitor/resource-manager] Fix bugs (typos) in the swagger

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/2787

(message created by the CI based on PR content)

Codecov Report

Merging #2316 into restapi_auto_monitor/resource-manager will not change coverage.
The diff coverage is 100%.

@@                          Coverage Diff                           @@
##           restapi_auto_monitor/resource-manager    #2316   +/-   ##
======================================================================
  Coverage                                     53%      53%
======================================================================
  Files                                       4829     4829
  Lines                                     120481   120481
======================================================================
  Hits                                       63855    63855
  Misses                                     56626    56626

Impacted Files
Coverage Δ

...gmt/monitor/operations/metric_alerts_operations.py
18.46% <100%> (ø)
:arrow_up:

...itor/operations/metric_alerts_status_operations.py
30.61% <100%> (ø)
:arrow_up:

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 c65611a...a9f9bda. Read the comment docs.

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/2226


Make Players behave as a Group

... even when there is no Group typeclass in base. Mainly to experiment with the idea of removing players abstractly.
Not sure if worth keeping, but implementing it was fun and not too hard actually.

This is not gonna fly.


Another setting missing from ADMX

The settings DisableNucleusSync is missing from the current ADMX included with the latest OneDrive client 22.099.0508.0001.
Please confirm if this will also be added to the ADMX? For now we will set via registry.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 04ad2f16-c861-7a1b-5c1d-e4601e8f3855
Version Independent ID: c47df4cd-f706-d807-5eac-172fba1e500f
Content: Use OneDrive policies to control sync settings - OneDrive
Content Source: OneDrive/use-group-policy.md
Service: one-drive
GitHub Login: @adeejoseph
Microsoft Alias: adjoseph

Hello @benhbom I am looking into this

In the ADMX included with 22.121.0605.0002, DisableNucleusSync is now there, but the policy name is shown at DisableListSync with valuename DisableNucleusSync.

<policy name="DisableListSync" class="Machine" displayName="$(string.DisableListSync)" explainText="$(string.DisableListSync_help)" key="SOFTWARE\Policies\Microsoft\OneDrive" valueName="DisableNucleusSync">

Great find @benhbom thanks for sharing

@scanum


Fix incorrect MAPQ and and add test that ensures unchanged SAM output

We previously tested only whether the file contains 200 records.
I’m adding this because I noticed that merging #45 changes output (MAPQ is set to 0 for many records).

I’ve added a commit that fixes the incorrect MAPQ values.


Correct blog typos in 2.1 announcement EN

This PR corrects some typos in the English language announcement of CWA 2.1 on https://www.coronawarn.app/en/blog/2021-05-02-corona-warn-app-version-2-1/

"A positive test results" => "A positive test result", since "A" specifies singular, then "result" must agree.
"...the Corona-Warn-App doesn’t safe personal data in accordance the decentralized approach." => "...the Corona-Warn-App doesn’t save personal data in accordance with the decentralized approach."
-- See https://dictionary.cambridge.org/dictionary/english/save (meaning A2) not https://dictionary.cambridge.org/dictionary/english/safe
-- See https://dictionary.cambridge.org/dictionary/english/accordance (in accordance with)
"In case of a positive PCR test, users should share this test result, too." removed comma before "too".
Otherwise it is a very stilted form of sentence. The comma is not necessary to convey the correct meaning.

This PR, which attempts to correct some typos, follows on from the PR "added files for new cwa blog version 2_1" https://github.com/corona-warn-app/cwa-website/pull/1184 from @hschepp1965 and merged by @christianneu.

Thanks @MikeMcC399 !


Fix some routes giving an error back for no reason

Discord have some routes that returns a 204 No Content
when it is correct, as some of them used the request
method they would fail when they tried to deserialize
a empty body into a (), this commit changes all the
routes that return a 204 No Content to use the
verify method instead of request.
Signed-off-by: Valdemar Erk<EMAIL_ADDRESS>

Should actually work now


Flow button in SharePoint list stops working after the first click

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
Declarative list formatting
Developer environment
No response
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

any modern browser

Describe the bug / error
Flow button in SharePoint list stops working after the first click.
I have added a flow button to a SharePoint list using column formatting (JSON). Using any standard view i.e. All Items, the first click of the button in a row works absolutely fine and the panel to run the flow is shown.  This is repeatable for each and every row in the SharePoint list with the link in the row being killed after the first click.
Interestingly if you append the URL with the search view i.e. /AllItems.aspx?view=7, it works fine.
Steps to reproduce

Create a list and Create an instant cloud flow for a selected SharePoint item
Add a column and JSON formatting with customRowAction to execute the flow
Click on the flow button in the list view
The flow panel is shown
Click 'Cancel' in the flow panel
Click on that same flow button again and nothing happens.

Expected behavior
I would expect the flow button to trigger the opening of the flow panel each time the flow button is clicked. It only works once and you have to refresh to page to get it to work again.

@DavidPGrover
We have taken a few fixes in this area over the last few months. Please try now and share if you are still running into this issue.

Fixed in my tests.

For us it still doesn't work, apparently. Did you have to do anything on your existing lists with the problematic custom actions, or the problem did resolve automatically for you?

@CryogenicPotato , after your comment I tested better. For me the fix is working only on the Edge, last version, does not work yet in FF or Chrome.

Weird enough :) for me, it doesn't work in Edge or Chrome either.

Thanks @eduardoj8 and @CryogenicPotato for sharing your findings.
Request you to provide detailed steps, JSON and observations, so we can investigate the issue.

Hello,
today we tried again, and now it looks like it's working in both Edge and Chrome, so the fix probably wasn't release to us yet.
Worth mentioning that the custom action columns are still not doing anything when clicked from a webpart, user needs to See all the entire list in order to get them working, but that's a different story.


[INTEL MKL] Adding padding list in quantized conv2d per channel

Supporting padding list in attribute in Quantized Conv2D per Channel op both in block format and Native format. Changed pb file for api compatibility.

Need to change the PR. Now closing and will re-open after the fix.


Manual commit

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 80.961%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
3066

Relevant Lines:
3787

💛  - Coveralls


design: Part title pages

Font sizes: 44pt and 9pt
Font weight: all bold but the "Autoren und Autorinnen" title (See closeup)
Author names can really pile up so if LaTeX allows they should be positioned relative to the bottom.
(distance from last line to the bottom should always be the same even if there are a lot of authors)
mockup

closeup

Implemented in b8a6279. I used the Serlo light blue (Serlo blue at 15 %) which is way too bright in my opinion.
@elbotho can you please have a look and provide an appropriate color code?

Sorry, missed that.
I used 35% above.

Fixed in  01998fa.
Now it looks enjoyable ;)


how to put the same name to the minions when generating the player

Hello , this is already repeated many times, but I get an error when changing, some hero to help me please

#1161

@Gasvash close issue

I did it and look

sorry, yes but how do I do not copy the same skin

Try doing this:
Go to your AI folder, then go to MinionPlayer.js
After that, replace the first block of code with the second block.
MinionPlayer.prototype.checkConnection = function () {
    if (this.socket.isCloseRequest) {
        while (this.cells.length) {
            this.gameServer.removeNode(this.cells[0]);
        }
        this.isRemoved = true;
        return;
    }
    if (!this.cells.length) {
        this.gameServer.gameMode.onPlayerSpawn(this.gameServer, this);
        if (!this.cells.length) this.socket.close();
    }

with
MinionPlayer.prototype.checkConnection = function () {
    if (this.socket.isCloseRequest) {
        while (this.cells.length) {
            this.gameServer.removeNode(this.cells[0]);
        }
        this.isRemoved = true;
        return;
    }
    if (this.owner.cells.length) {
    this.gameServer.gameMode.onPlayerSpawn(this.gameServer, this.owner._name, true)
    if (!this.cells.length) this.socket.close();
}

@AlexHGaming  yes, try it, and look

Close please k thx


feat: improve grafana deployment

The commit improves Grafana deployment on OpenShift by

Adapting to the changes introduced by the refactor commmit
Making backup of CMO config for later restoration
Providing key information about the deployment

Additionally, common bash utilities have been moved to hack/utils.bash
Fixes: https://github.com/sustainable-computing-io/kepler-operator/issues/122
Signed-off-by: Sunil Thaha<EMAIL_ADDRESS>

@vprashar2929 Could you please help verify if this works for you?
cc: @husky-parul

cc: @vimalk78

/lgtm


Max Storage not updating properly.

When you add a resource booster next to the warehouse, it does not increase the max storage for that specific resource. However if you upgrade the warehouse or add a new one (anywhere in city) the max storage upgrades properly.

Fixed


CommandBar Icons don't show up on Windows 10

Same once you go in the model page.
Looks like this font isn't included in Win10 by default: https://docs.microsoft.com/en-us/windows/apps/design/style/segoe-fluent-icons-font#how-do-i-get-this-font
Not sure what that means for app developers?

Resolved by using {ThemeResource SymbolThemeFontFamily} for icon FontFamily.


(SERVER-1160) Update execution.rb for complex commands

Previously, Puppet Server failed to correctly parse more complex commands
(such as those with lots of string escaping) passed to it by Puppet for execution.
This PR fixes that problem by updating execution.rb such that when an
array is passed it no longer concatenates that array to be a string, but
instead the first argument is passed to ShellUtils/executeCommand as a
string and the rest are passed as an array.

The changes so far on this look good to me.
Seemed to do everything I expected it to in functional testing.  I tried this both with the user's original python command line and some custom ones.  As it seems that when using the generate function in a Puppet manifest, the command argument passed into the stub is always an array, I just used a handrolled approach to test shell executions where command is a string.  From a Clojure Puppet Server REPL, I did:
(-> (jruby-pool)
    first
    (:scripting-container)
    (.runScriptlet
     "Puppet::Util::Execution.execute(\"/Users/myuser/myscript.sh\")"))

The script was executed fine for this case too.
So, I'm :+1: on this being merged, pending the addition of some corresponding tests.

@camlow325 and anyone else who may have already looked at this, I rebased and force-pushed new commits, but the code in the first commit is unchanged from what was previously here; the only change to that commit is the message.

I'm :+1: on this, although we talked about re-targeting this PR at the stable branch so that we can get it into the Puppet Server 2.3.0 release so I'll hold off on merging this.  There was a Travis failure on one cell:
ERROR in (environment-classes-integration-cache-enabled-test) (HttpAsyncRequestExecutor.java:341)

Uncaught exception, not in assertion.
expected: nil

  actual: org.apache.http.ConnectionClosedException: Connection closed
 at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput (HttpAsyncRequestExecutor.java:341)
    org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput (DefaultNHttpClientConnection.java:263)
    org.apache.http.impl.nio.client.InternalIODispatch.onInputReady (InternalIODispatch.java:81)
    org.apache.http.impl.nio.client.InternalIODispatch.onInputReady (InternalIODispatch.java:39)
    org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady (AbstractIODispatch.java:123)
    org.apache.http.impl.nio.reactor.BaseIOReactor.readable (BaseIOReactor.java:164)
    org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent (AbstractIOReactor.java:339)
    org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents (AbstractIOReactor.java:317)
    org.apache.http.impl.nio.reactor.AbstractIOReactor.execute (AbstractIOReactor.java:278)
    org.apache.http.impl.nio.reactor.BaseIOReactor.execute (BaseIOReactor.java:106)
    org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run (AbstractMultiworkerIOReactor.java:590)
    java.lang.Thread.run (Thread.java:745)
~~~

I don't think this failure is failed to the work in this PR, though.  It came up at least one other time in a recent Travis PR run.  I'll submit a separate ticket for that later today.

Closing, re-targeted at stable in #954

Submitted SERVER-1196 to investigate the environment-classes-integration-cache-enabled-test failure.


Plugins/ratelimiting async

Allow to increase the counter asynchronously. Also closes #912 because if the counter is being increased asynchronously, and the DB is down, the request will fail in the timer and the request can be still be processed.

Closing and reopening against next.


Shortcut Assistant gets stuck when locking the screen

Hi,
when I use Windows-Key + L to lock the screen and log back in, the assigned keys stay turned on.
In v 0.6.0b it seems it goes away once I just press the Windows key once. But I also had that it would not go away until Aurora was restarted.
In the dev version 0.6.1-dev4 the windows-key shortcut assistant simply stops working after logging back in. The keys are not lighting up anymore when the Windows key is pressed.
I use Windows 10 Build 1703 and a Corsair K70 RGB LUX keyboard.
Might be related to #929 but I don't think so.

In 0.6.1-dev4 I am experiencing a similar issue. I am also using two separate Corsair K70 RGB LUX keyboards on both Windows 10 Enterprise and Professional and am running Aurora with administrator privileges.
I have run into two different scenarios on both computers:

A shortcut key is detected in the opposite state (pressed vs. unpressed). No combination of key presses has been able to correct Aurora's shortcut key state detection. Restarting Aurora resolves the problem.

The shortcut assistants just appears to no longer detect keys, no combination of key presses seem to be able to trigger the lighting hints for any of the assistants. Restarting Aurora resolves the problem. This could be the same as the first scenario, and I just did not detect the proper key combination that was being falsely detected.

@simon-wh The build in the link you provided is causing problems for me. Upon opening 0.6.1-dev4-319, I received a configuration error and had to go through the setup process again. After completing that, my keyboard lighting shuts off entirely, and if I try to stop and start the device through the application's device manager, the application crashes. Within the application, the virtual keyboard lighting is behaving as expected, while my physical keyboard's lighting does not.
Reverting back to 0.6.1-dev4 from the web installer, I received the same configuration error and went through the setup process again. After completing that, the keyboard functions as expected.
I should also note that using the web installer build (0.6.1-dev4) is no longer giving me issues at home (Windows 10 Pro) with the windows+L combination.

@travis-teitsch Could you post your log file?


New Plugin: Browser Check

This is currently a work in progress.
This plugin will record a variety of information about the browser in the data and allow the developer to specify a set of inclusion criteria.

I know this is generally frowned upon in favor of feature detection, but I think running scientific experiments is a case where userAgent sniffing is justified. The plugin can do feature detection too.

Good one, I've been manually doing this a lot in my experiments. I've also often logged the result of vsync-estimate in an initial trial. Worth including something like that as well?

@bjoluc where can we set config options for the testing environment that are specific to the plugin package?

Simply in jest.config.cjs: makePackageConfig() returns a standard jest config object that you can modify arbitrarily before exporting it (e.g. myConfig.testEnvironmentOptions.userAgent = "foo";). But if you'd like to set the user agent on a describe-block level (or even multiple times in individual tests), something like
beforeAll(() => {
  jest.spyOn(navigator, "userAgent", "get").mockReturnValue("foo");
});

may be a good alternative.

Note to self: add mic check, webcam check (just in terms of whether they can be accessed at all).

Linking to this discussion post by @amunn about browser detection, in case it's useful: #1984

I was just being lazy, but I've updated and merged. Not sure why the .changeset folder wasn't pulled from the remote version.


postgres smiles into mols warning

RDKit Version: 2019.03.4
Operating system: ubuntu18
Python version (if relevant): 3.7
Are you using conda? yes
If you are using conda, which channel did you install the rdkit from? conda-forge
If you are not using conda: how did you install the RDKit? conda install -c conda-forge rdkit

Description:

when transform smiles into mols ,there are many waring :
'''
WARNING:  could not create molecule from SMILES 'CCCC/C(=C
1cncn1)c1ccc(Cl)cc1Cl'
WARNING:  could not create molecule from SMILES 'C=C/C=C(C=C
1c(=O)n(-c2cccc(N3/C(=C/C=CCC)CN(C(=C)/C=CC=C(/C)c4cccc(-n5c6ccccc6c6ccccc65)c4)C3O)c2)c2ccccc21)c1cccc(-n2c(/C=CC)c(C=C)c3ccccc32)c1'
WARNING:  could not create molecule from SMILES 'CC(C)=C/C(=C
1ncc(C(=O)c2cc3cc(OC4CCOCC4)c(Br)cc3n2C(=O)OC(C)(C)C)c1N(C(=O)OC(C)(C)C)C(=O)OC(C)(C)C)Oc1ccccc1F'
WARNING:  could not create molecule from SMILES 'CCCCC(C)N/C1=C(C2=CC=C/C=CC=C/C=C/C=C)/C=CC=CC(/C2=C/C=CC=C/C=CC=CC=C/2)=C/1N'
'''
is it an encoding problem?
what should I do?

Hi, I have found a solution to it by replacing all '' to '\' in every line of the file.But are there some easier ideas?or could it be checked in function   mol_from_smiles(smiles::cstring)?


Bad alias for reinstall

Scope
repo
Environment
deno
What is happening?
https://github.com/lowlighter/mizu/blob/9efbb438952a8c8903c457d3c6f3f2f5d8d4d2fc/deno.jsonc#L119-L126
The reinstall task is missing a dependencies: ["reinstall:deno"]
Minimal reproduction example
N/A

I have searched for existing issues
Yes

Done in 12ccce2090771e29bac56c788adc5e11a5b65bf3 (bad issue number in the commit message)


[ENH] Improve trigger classes and remove software triggers in preparation of deprecation of StreamRecorder

Improve how the trigger classes work.
Remove the externals module and the optional PsychoPy dependency.
Remove the software triggers via LSL timestamp + file.

Codecov Report

Merging #72 (c32497e) into main (bb6c0bd) will decrease coverage by 0.15%.
The diff coverage is 23.61%.

@@            Coverage Diff             @@
##             main      #72      +/-   ##
==========================================
- Coverage   62.10%   61.95%   -0.16%
==========================================
  Files          46       43       -3
  Lines        3428     3346      -82
  Branches      446      440       -6
==========================================
- Hits         2129     2073      -56
+ Misses       1193     1170      -23
+ Partials      106      103       -3

Flag
Coverage Δ

unittests
61.95% <23.61%> (-0.16%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

bsl/triggers/io/_dlportio.py
0.00% <0.00%> (ø)

bsl/triggers/io/_inpout.py
0.00% <0.00%> (ø)

bsl/triggers/io/_linux.py
0.00% <0.00%> (ø)

bsl/triggers/parallel.py
27.90% <13.33%> (+1.24%)
:arrow_up:

bsl/triggers/lsl.py
56.25% <50.00%> (+11.01%)
:arrow_up:

bsl/triggers/_base.py
76.92% <70.00%> (-23.08%)
:arrow_down:

bsl/triggers/mock.py
100.00% <100.00%> (+5.88%)
:arrow_up:

bsl/lsl/functions.py
90.47% <0.00%> (+11.90%)
:arrow_up:

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


Apply Black to all Python files

Since this is just an auto-format, I will just merge this PR to save time.


Active Menu Items not Highlighting

The active page is not being highlighted in the mega menu.

Not sure when this was fixed, but it seems to work now.


Is jpegli enabled and how to enable if not?

Hello, I was wondering if jpegli is enabled in the pre-compiled WASM build.  For example, Makefile.encode does reference jpegli.cmake and has DJPEGXL_ENABLE_JPEGLI=0 and DJPEGXL_ENABLE_JPEGLI_LIBJPEG=0 so I would assume jpegli is not on by default.
When I set DJPEGXL_ENABLE_JPEGLI=1 and DJPEGXL_ENABLE_JPEGLI_LIBJPEG=1 the code compiles and it seems to do something with jpegli but the size of the resulting encode.wasm is the same so I am wondering if it really gets compiled in. Is there a way to tell how?
Thanks for the effort with making this code available.

I just tested with building a .wasm file with both configurations and encoding an image with that. The resulting file sizes were exactly the same so I think using these options does not make a difference.
@gen2brain Maybe you have some insight on this?

Not sure, but I think that jpegli is used only when encoding, and only with JxlEncoderAddJPEGFrame, i.e. see https://github.com/libjxl/libjxl/blob/main/lib/include/jxl/encode.h#L628, as this is not used here it is disabled. cjxl use it when you want to directly encode jpeg to jxl.
If you are only interested in jpegli I have a repo here https://github.com/gen2brain/jpegli, and it does make a difference in file size.

Btw. the size of the binary encode.wasm is the same probably because it is not used, if/when C code would use JxlEncoderAddJPEGFrame the size would be larger.
I thought about adding a new function, something like EncodeJPEG, then to check if the data passed is a JPEG, etc., and use JxlEncoderAddJPEGFrame and JxlEncoderStoreJPEGMetadata to losslessly reconstruct the JPEG codestream, but I don't have the time and I lost interest, and kinda disappointed that jxl will not be included in browsers.

Thanks for the quick and detailed response!
I am sure I found your jpegli repo a few days ago and briefly took a look. Then when I actually started working on it I only found this one and thought I might have confused something😅 Weird how google is not ranking these repos very well.
Thanks for linking the other repo. I will continue with that.


Support for VK_KHR_mir_surface should be removed

See also: https://github.com/KhronosGroup/Vulkan-Docs/issues/814

We use generator to create the bindings, so once it is removed from the vk.xml it will be removed automatically.


⚠ Samsung has degraded performance

In 726fd6f, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2283 ms

Resolved: Samsung performance has improved in 1bed27e.


Crashed when I went to place a sieve next to another sieve during rain

Here is the report:
http://pastebin.com/4mB6Zjum
Also could I get a sample of how the json syntax should be in order to add Apetite (for example to sieving sand) I keep getting weird unexpected character errors when I've copied, pasted and edited the sieve registry and I am new enough to the modded that an individual entry done correctly would surely help. Also, I really appreciate the work you've done on this!

Updated the mod, and it seems to have fixed the issue! Thanks!


Adding curl (some systems does not have it installed in minimal version)

Adding curl (some systems does not have it installed in minimal version).

/approve
/lgtm


Logging improvements

@ronmamo Can straitforward PR's like this one be merged?

.

and @ge0ffrey if you have time and will, would be nice to assist in merging pr's once in a while, wdyt?

@ronmamo Yes, sounds good.


Hotfix: swap tool / tx differences

Bug task: https://app.clickup.com/t/860qprp75
When the user clicks "swap" all the pools involved are refreshed, and we re-calculate the swap with updated pool values. A benefit of this approach is the tx is most up to date with chain state, and therefore most likely to succeed. However, this can be misleading as, especially with multihop swaps, large pool activity could occur between inputting into the swap tool and clicking swap. Some users have clicked swap, and signed transactions that were, in some more rare cases, quite a bit less favorable. Instead of refreshing, we should maintain the values the users see and let the tx fail on chain instead.
Again, it seem pretty rare for there to be large movements in the pool between the user inputting and opening the dialog, but twice now (many months ago, and now) we've had very vocal users respond angrily with the unfavorable tx that was signed and sent to the chain.

@JoseRFelix  As far as I know the token_out_min_amount on Keplr singing messages that is created when click the swap button on the UI will not be the same as thefront-end minimum received as it's constantly updating when the page refreshed.
I try to screen shot this as fast as possible before the front-end minimum received gets updated and the number is quite close

@arispech I thought the purpose of this PR was to use the same data displayed in the FE

@JoseRFelix I use the same formula now for the out-amount-less-slippage as is used in the message creation math. That's why it was slightly different. I know it's not the cleanest for this fix, but I've already cleaned up our swap logic quite a bit for the CL release. Also, for CL I'm planning on not re-simulating the swaps in the makeMsg functions and instead just trusting the router and passing those values directly to the message creation. This should reduce the amount of code and thus complexity.
@arispech the minOutAmount value in keplr should be the same and should stay the same when you view the tool and click swap.

@jonator Have we run this by @syed8rahman to get his thoughts?
Looking at this from the outside, it seems like this is just as much a UX/messaging issue as anything else.
The code as been like this for a long time correct? And this is the first real complaint we have had? If the fix we are applying solves this issue, but potentially could make another issue more prevalent, I would think that we should have a deeper discussion before deploying this. Again, it may just be we need to build a better UX or have more clear messaging.
Just my two cents from what I can understand so far.

@jonator Have we run this by @syed8rahman to get his thoughts?
Looking at this from the outside, it seems like this is just as much a UX/messaging issue as anything else.
The code as been like this for a long time correct? And this is the first real complaint we have had? If the fix we are applying solves this issue, but potentially could make another issue more prevalent, I would think that we should have a deeper discussion before deploying this. Again, it may just be we need to build a better UX or have more clear messaging.
Just my two cents from what I can understand so far.

We encountered this many months ago as well. It should remain just as rare, except with this instead of the user accidentally signing an unfavorable trade (if they didn't inspect the tx sign popup) the trade just fails. That would result in a less misleading UX that doesn't seem like a bug or we're taking advantage of users. For most retail trades, they should be able to swap within their slippage tolerance.
With the CL release, I'm thinking that I'll refresh the relevant pools more often if the user has >0 input in the swap tool. This should lessen the chance of slippage failures while at the same time having the quotes match in the swap tool and popup.


file upload x- to not add json true to headers

Adds x-isAttachmentUpload - then mustache template won't add json: true for file uploading functions so the image data can be serialized correctly

@SerKnight - I'll merge this - once you confirm you like this approach - we'll need to update all attachment operations


entities_subset in evaluate_performance for large graphs

It looks like in large graph mode evaluate_performance doesn't use entities_subset. Is that true?

@kalinin-sanja entities_subset should work in large graph mode as well. Let me know if there are any issues with this

@kalinin-sanja entities_subset should work in large graph mode as well. Let me know if there are any issues with this

I've reproduced this problem on the public dataset:
import numpy as np
from ampligraph.datasets import load_wn18
from ampligraph.latent_features import ComplEx, set_entity_threshold
from ampligraph.evaluation import evaluate_performance, mrr_score, hits_at_n_score, mr_score

X = load_wn18()

model = ComplEx(batches_count=10, seed=0, epochs=2, k=150, eta=10,
                optimizer='adam', optimizer_params={'lr': 1e-3},
                loss='pairwise', loss_params={'margin': 0.5},
                regularizer='LP', regularizer_params={'p': 2, 'lambda': 1e-5},
                verbose=True)

model.fit(X['train'])

_filter = np.concatenate((X['train'], X['valid'], X['test']))

all_nodes = set()
for split in ['train', 'valid', 'test']:
    all_nodes = set.union(all_nodes, set(X[split][:, 0]), set(X[split][:, 2]))
print(f'Total count of nodes: {len(all_nodes):,}')

# We will corrupt tails of specific relation with fix set of entities.
entities_subset = np.random.choice(list(all_nodes), 100, replace=False)
selected_triples = X['test'][X['test'][:, 1] == '_hyponym']
selected_nodes = set.union(set(selected_triples[:, 0]), set(selected_triples[:, 2]))

print(f'Evaluating on {len(selected_triples):,} triples, which contain {len(selected_nodes):,} entities...')
print(f'Use {len(entities_subset):,} entities for corruption of tails.')

set_entity_threshold(1)

ranks = evaluate_performance(selected_triples,
                             model=model,
                             filter_triples=_filter,
                             corrupt_side='o',
                             use_default_protocol=False,
                             entities_subset=entities_subset,
                             verbose=True)
n = 10
print(f'Ranks of first {n} triples: ', ranks[0:n])
print(f'MR: {mr_score(ranks)}')
print(f'MRR: {mrr_score(ranks)}')
print(f'Hit@1: {hits_at_n_score(ranks, n=1)}')
print(f'Hit@3: {hits_at_n_score(ranks, n=3)}')
print(f'Hit@10: {hits_at_n_score(ranks, n=10)}')

Output:
2021-04-21 19:08:00.479004: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2021-04-21 19:08:00.488780: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2021-04-21 19:08:00.492982: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x558633b457d0 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2021-04-21 19:08:00.493027: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2021-04-21 19:08:00.497597: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2021-04-21 19:08:00.789989: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x5586341f3130 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:
2021-04-21 19:08:00.790048: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Tesla P100-SXM2-16GB, Compute Capability 6.0
2021-04-21 19:08:00.790065: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (1): Tesla P100-SXM2-16GB, Compute Capability 6.0
2021-04-21 19:08:00.793114: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Found device 0 with properties:
name: Tesla P100-SXM2-16GB major: 6 minor: 0 memoryClockRate(GHz): 1.4805
pciBusID: 0000:06:00.0
2021-04-21 19:08:00.795267: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Found device 1 with properties:
name: Tesla P100-SXM2-16GB major: 6 minor: 0 memoryClockRate(GHz): 1.4805
pciBusID: 0000:85:00.0
2021-04-21 19:08:00.796446: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
2021-04-21 19:08:00.799503: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2021-04-21 19:08:00.802094: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10.0
2021-04-21 19:08:00.803314: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10.0
2021-04-21 19:08:00.806997: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10.0
2021-04-21 19:08:00.809727: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10.0
2021-04-21 19:08:00.817278: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2021-04-21 19:08:00.825673: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1767] Adding visible gpu devices: 0, 1
2021-04-21 19:08:00.825752: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
2021-04-21 19:08:00.830249: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1180] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-04-21 19:08:00.830281: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1186]      0 1
2021-04-21 19:08:00.830308: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1199] 0:   N Y
2021-04-21 19:08:00.830320: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1199] 1:   Y N
2021-04-21 19:08:00.836586: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1325] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 14081 MB memory) -> physical GPU (device: 0, name: Tesla P100-SXM2-16GB, pci bus id: 0000:06:00.0, compute capability: 6.0)
2021-04-21 19:08:00.839196: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1325] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 9483 MB memory) -> physical GPU (device: 1, name: Tesla P100-SXM2-16GB, pci bus id: 0000:85:00.0, compute capability: 6.0)
Average Loss:   0.499194: 100%|████████████████| 2/2 [00:01<00:00,  1.10epoch/s]
Total count of nodes: 40,943
Evaluating on 1,153 triples, which contain 2,033 entities...
Use 100 entities for corruption of tails.
WARNING - Your graph has a large number of distinct entities. Found 40943 distinct entities
WARNING - Changing the variable loading strategy to use lazy loading of variables...
WARNING - Evaluation would take longer than usual.
***/anaconda3/envs/tf1_cuda/lib/python3.6/site-packages/ampligraph/latent_features/models/EmbeddingModel.py:1140: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  if corruption_entities == 'all':
2021-04-21 19:08:07.566083: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Found device 0 with properties:
name: Tesla P100-SXM2-16GB major: 6 minor: 0 memoryClockRate(GHz): 1.4805
pciBusID: 0000:06:00.0
2021-04-21 19:08:07.567303: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1639] Found device 1 with properties:
name: Tesla P100-SXM2-16GB major: 6 minor: 0 memoryClockRate(GHz): 1.4805
pciBusID: 0000:85:00.0
2021-04-21 19:08:07.567397: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
2021-04-21 19:08:07.567420: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10.0
2021-04-21 19:08:07.567439: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10.0
2021-04-21 19:08:07.567461: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10.0
2021-04-21 19:08:07.567480: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10.0
2021-04-21 19:08:07.567498: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10.0
2021-04-21 19:08:07.567519: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2021-04-21 19:08:07.572063: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1767] Adding visible gpu devices: 0, 1
2021-04-21 19:08:07.572127: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1180] Device interconnect StreamExecutor with strength 1 edge matrix:
2021-04-21 19:08:07.572139: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1186]      0 1
2021-04-21 19:08:07.572147: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1199] 0:   N Y
2021-04-21 19:08:07.572155: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1199] 1:   Y N
2021-04-21 19:08:07.575811: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1325] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 14081 MB memory) -> physical GPU (device: 0, name: Tesla P100-SXM2-16GB, pci bus id: 0000:06:00.0, compute capability: 6.0)
2021-04-21 19:08:07.576977: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1325] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 9483 MB memory) -> physical GPU (device: 1, name: Tesla P100-SXM2-16GB, pci bus id: 0000:85:00.0, compute capability: 6.0)
  0%|                                                  | 0/1153 [00:00<?, ?it/s]
***/anaconda3/envs/tf1_cuda/lib/python3.6/site-packages/ampligraph/latent_features/models/EmbeddingModel.py:1091: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  if corruption_entities == 'all':
100%|███████████████████████████████████████| 1153/1153 [06:16<00:00,  3.06it/s]
Ranks of first 10 triples:  [40907 40927    13     6 40916     6    14 40912    31     1]
MR: 3238.659150043365
MRR: 0.3486335751733688
Hit@1: 0.212489158716392
Hit@3: 0.4006938421509107
Hit@10: 0.6183868169991327

One can note a strange warning:
/anaconda3/envs/tf1_cuda/lib/python3.6/site-packages/ampligraph/latent_features/models/EmbeddingModel.py:1091: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  if corruption_entities == 'all':

tensorflow-gpu==1.15.3

Skimming reading:

you can ignore the warning, it is because the corruption_entities  is now a numpy array. Consider the example below:
import numpy as np
x = np.array([1,2,3], dtype=np.float32)
# x = 'all'
if x == 'all':
    print(x)
elif isinstance(x, np.ndarray):
    print('x is an array')
else:
    print('else')

We will make sure that, in the future, this warning doesn't appear.
However, in your case, the entities subset works correctly and you can see the resulting mrr and ranks.

Maybe I misunderstood the meaning of entities_subset. Let's assume we want to predict a movie of actor, i.e., <ACTOR, ACT_IN, ?>. We have a subset of movies: [A, B, C, D, E]. So, we want to generate five corruptions for every test triple. Obviously, rank could not be more than len(entities_subset) + 1 , could it?

Okay now I understand what you mean. I guess there is some bug. I will have a look at it.
yeah entities_subset is supposed to corrupt only from the set you specify and give a rank between [1, len(entities_subset) + 1].
Thanks for identifying this issue. I will take up this issue on priority.

Fixed on feature/231

merged with develop

merged with develop

So, when we should wait for the new release? Will it use TF2?

By next week we will push it to master, until then you can pip install from the develop branch. It will still be using tf 1.x.
We are working on a tf 2.x release, and it will be out soon.


urdf2graspit for my own hand

Hi, Jenny.
Bother you again.
I use your urdf2graspit to convert my own hand( Made by our lab)--named eagle_shoal.
I used other software to generate the eagle_shoal.urdf. And there are no problem when I use
1:  check my urdf
roslaunch urdf_tutorial display.launch model:=<my-eagle_shoal.urdf-path>.All the DOF is OK.
2:  generate the graspit file
roslaunch urdf2graspit example_urdf2graspit_eagleshoal.launch.
the example_urdf2graspit_eagleshoal.launch :
<launch>
    <arg name="urdf_file" default="$(find eagle_shoal)/urdf/eagle_shoal.urdf"/>
    <arg name="output_directory" default="$(find eagle_shoal)/urdf2graspit/"/>
    <arg name="hand_root_link" default="p_b"/>
    <arg name="finger_joint_names" default="f_3_0_j f_3_1_j f_2_0_m_j"/>
    <arg name="scale_factor" default="1000"/>
    <arg name="output_material" default="plastic"/>
    <include file="$(find urdf2graspit)/launch/urdf2graspit.launch">
        <arg name="urdf_file" value="$(arg urdf_file)"/>
        <arg name="output_directory" value="$(arg output_directory)"/>
        <arg name="hand_root_link" value="$(arg hand_root_link)"/>
        <arg name="finger_joint_names" value="$(arg finger_joint_names)"/>
        <arg name="scale_factor" value="$(arg scale_factor)"/>
        <arg name="output_material" value="$(arg output_material)"/>
        <arg name="negate_joint_movement" value="false"/>
    </include>
</launch>

It work well too . And the output info in the terminal is:
`
roslaunch urdf2graspit example_urdf2graspit_eagleshoal.launch
[ INFO] [1497340512.333904413]: URDF file: /home/dex_hand/catkin_ws/src/eagle_shoal/urdf/eagle_shoal.urdf
[ INFO] [1497340512.333968639]: Output dir: /home/dex_hand/catkin_ws/src/eagle_shoal/urdf2graspit/
[ INFO] [1497340512.333983845]: Hand root: p_b
[ INFO] [1497340512.334009260]: Joint: f_3_0_j
[ INFO] [1497340512.334024797]: Joint: f_3_1_j
[ INFO] [1497340512.334036268]: Joint: f_2_0_m_j
[ INFO] [1497340512.335545647]: output_material:
[ INFO] [1497340512.336926511]: scale_factor: <1000.000000>
[ INFO] [1497340512.338362626]: negate_joint_movement: <0>
[ INFO] [1497340512.344182770]: Starting model conversion...
[ INFO] [1497340512.344287567]: ### Loading from URDF file /home/dex_hand/catkin_ws/src/eagle_shoal/urdf/eagle_shoal.urdf...
[ INFO] [1497340512.344772620]: Setting base model directory to /home/dex_hand/catkin_ws/src/eagle_shoal/urdf
[ INFO] [1497340512.346564948]: ### Converting files starting from link p_b
[ INFO] [1497340512.346593622]: ### Preparing for DH conversion...
[ INFO] [1497340512.346607012]: ### Joining fixed links..
[ INFO] [1497340512.346629277]: ############### Joining fixed links
[ INFO] [1497340512.346648887]: Start from root link: p_b
[ INFO] [1497340512.346842479]: Joining fixed joint (f_0_0_b_j) between f_0_0_m and f_0_0_b
[ INFO] [1497340512.347805164]: Joining fixed joint (f_0_0_f_j) between f_0_0_m and f_0_0_f
[ INFO] [1497340512.348078035]: Joining fixed joint (f_0_1_f_j) between f_0_1_b and f_0_1_f
[ INFO] [1497340512.348323037]: Joining fixed joint (f_b_0_j) between f_3_0 and f_b_0
[ INFO] [1497340512.348742767]: Joining fixed joint (f_1_0_b_j) between f_1_0_m and f_1_0_b
[ INFO] [1497340512.348983842]: Joining fixed joint (f_1_0_f_j) between f_1_0_m and f_1_0_f
[ INFO] [1497340512.349227939]: Joining fixed joint (f_1_1_f_j) between f_1_1_b and f_1_1_f
[ INFO] [1497340512.349464231]: Joining fixed joint (f_b_1_j) between f_3_1 and f_b_1
[ INFO] [1497340512.349805628]: Joining fixed joint (f_2_0_b_j) between f_2_0_m and f_2_0_b
[ INFO] [1497340512.350045724]: Joining fixed joint (f_2_0_f_j) between f_2_0_m and f_2_0_f
[ INFO] [1497340512.350290110]: Joining fixed joint (f_2_1_f_j) between f_2_1_b and f_2_1_f
[ INFO] [1497340512.350526686]: Joining fixed joint (f_b_2_j) between f_3_2 and f_b_2
[ INFO] [1497340512.350857867]: Joining fixed joint (f_3_2_j) between p_b and f_3_2
[ INFO] [1497340512.351379913]: ### Transforming rotation axes to z...
[ INFO] [1497340512.351422572]: ############### Aligning rotation axis to [0, 0, 1]
[ INFO] [1497340512.351568438]: ### Converting files...
[ INFO] [1497340512.351617982]: ### Urdf2GraspIt::pretConvert for robot eagle_shoal
[ INFO] [1497340512.351689125]: ##### Computing DH parameters out of model
[ INFO] [1497340512.351706596]: ############### Getting DH params
[ INFO] [1497340512.351756756]: ### Starting DH conversion from link p_b
[ INFO] [1497340512.351782302]: ======== Transforming joint f_3_0_j to DH parameters.
[ INFO] [1497340512.351817594]: ======== Transforming joint f_0_0_m_j to DH parameters.
[ INFO] [1497340512.352224200]: ======== Transforming joint f_0_1_b_j to DH parameters.
[ INFO] [1497340512.352426168]: DEBUG-INFO DHParam: Parallel case for getCommonNormal
[ INFO] [1497340512.352453907]: DEBUG-INFO DHParam: Parallel case for getAlpha
[ INFO] [1497340512.352565090]: ======== Transforming joint f_3_1_j to DH parameters.
[ INFO] [1497340512.352604487]: ======== Transforming joint f_1_0_m_j to DH parameters.
[ INFO] [1497340512.352792246]: DEBUG-INFO DHParams: Correcting alpha (is 1.5708): [0, 1, -3.55271e-15], [0, -1, -3.49148e-15]
[ INFO] [1497340512.352829618]: DEBUG-INFO: Translation along z parallel to z, but not equal, so d is negative
[ INFO] [1497340512.352922502]: ======== Transforming joint f_1_1_b_j to DH parameters.
[ INFO] [1497340512.353095625]: DEBUG-INFO DHParam: Parallel case for getCommonNormal
[ INFO] [1497340512.353121561]: DEBUG-INFO DHParam: Parallel case for getAlpha
[ INFO] [1497340512.353229833]: ======== Transforming joint f_2_0_m_j to DH parameters.
[ INFO] [1497340512.353268261]: ======== Transforming joint f_2_1_b_j to DH parameters.
[ INFO] [1497340512.353425184]: DEBUG-INFO DHParam: Parallel case for getCommonNormal
[ INFO] [1497340512.353450086]: DEBUG-INFO DHParam: Parallel case for getAlpha
[ INFO] [1497340512.353561152]: ############### Transform links to DH reference frames
[ INFO] [1497340512.357831351]: --- DH Parameters: ---
[ INFO] [1497340512.357863410]: f_3_0_j: d=0.02985, r=0.049, theta=0, alpha=1.5708, dof_idx=0
[ INFO] [1497340512.357879095]: f_0_0_m_j: d=0, r=0.0570041, theta=1.5708, alpha=0, dof_idx=1
[ INFO] [1497340512.357893010]: f_0_1_b_j: d=0, r=0, theta=0, alpha=0, dof_idx=2
[ INFO] [1497340512.357908934]: f_3_1_j: d=-0.02985, r=0.049, theta=0, alpha=-1.5708, dof_idx=3
[ INFO] [1497340512.357924369]: f_1_0_m_j: d=0, r=0.0570041, theta=1.5708, alpha=0, dof_idx=4
[ INFO] [1497340512.357939607]: f_1_1_b_j: d=0, r=0, theta=0, alpha=0, dof_idx=5
[ INFO] [1497340512.357973652]: f_2_0_m_j: d=0, r=0.0570041, theta=1.5708, alpha=0, dof_idx=6
[ INFO] [1497340512.357988412]: f_2_1_b_j: d=0, r=0, theta=0, alpha=0, dof_idx=7
[ INFO] [1497340512.358001468]: ##### Scaling DH parameters
[ INFO] [1497340512.358030202]: ############### Scaling model
[ INFO] [1497340512.363748709]: ############### Converting meshes
[ INFO] [1497340512.363819653]: Convert mesh for link 'p_b'
[ INFO] [1497340512.422547776]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/p_b.stl with factor 1000
[ INFO] [1497340512.424849174]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/p_b.stl with factor 1000
[ INFO] [1497340512.426860987]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_3_2.stl with factor 1000
[ INFO] [1497340512.427210720]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_3_2.stl with factor 1000
[ INFO] [1497340512.427522288]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_b_2.stl with factor 1000
[ INFO] [1497340512.427976723]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_b_2.stl with factor 1000
[ INFO] [1497340512.579489333]: Convert mesh for link 'f_3_0'
[ INFO] [1497340512.579696412]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_3_0.stl with factor 1000
[ INFO] [1497340512.580286934]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_3_0.stl with factor 1000
[ INFO] [1497340512.580915802]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_b_0.stl with factor 1000
[ INFO] [1497340512.581412490]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_b_0.stl with factor 1000
[ INFO] [1497340512.653214075]: Convert mesh for link 'f_0_0_m'
[ INFO] [1497340512.653375112]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_0_m.stl with factor 1000
[ INFO] [1497340512.654031127]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_0_m.stl with factor 1000
[ INFO] [1497340512.654714492]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_0_b.stl with factor 1000
[ INFO] [1497340512.654911829]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_0_b.stl with factor 1000
[ INFO] [1497340512.655184432]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_0_f.stl with factor 1000
[ INFO] [1497340512.655455718]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_0_f.stl with factor 1000
[ INFO] [1497340512.734435922]: Convert mesh for link 'f_0_1_b'
[ INFO] [1497340512.734607132]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_1_b.stl with factor 1000
[ INFO] [1497340512.735466058]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_1_b.stl with factor 1000
[ INFO] [1497340512.736327401]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_1_f.stl with factor 1000
[ INFO] [1497340512.736609961]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_0_1_f.stl with factor 1000
[ INFO] [1497340512.828802225]: Convert mesh for link 'f_3_1'
[ INFO] [1497340512.829014922]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_3_1.stl with factor 1000
[ INFO] [1497340512.829592966]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_3_1.stl with factor 1000
[ INFO] [1497340512.830171831]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_b_1.stl with factor 1000
[ INFO] [1497340512.830657284]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_b_1.stl with factor 1000
[ INFO] [1497340512.903366484]: Convert mesh for link 'f_1_0_m'
[ INFO] [1497340512.903522302]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_0_m.stl with factor 1000
[ INFO] [1497340512.904186382]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_0_m.stl with factor 1000
[ INFO] [1497340512.904861970]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_0_b.stl with factor 1000
[ INFO] [1497340512.905067369]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_0_b.stl with factor 1000
[ INFO] [1497340512.905342371]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_0_f.stl with factor 1000
[ INFO] [1497340512.905612384]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_0_f.stl with factor 1000
[ INFO] [1497340512.982826482]: Convert mesh for link 'f_1_1_b'
[ INFO] [1497340512.983001200]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_1_b.stl with factor 1000
[ INFO] [1497340512.983873353]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_1_b.stl with factor 1000
[ INFO] [1497340512.984744323]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_1_f.stl with factor 1000
[ INFO] [1497340512.985027506]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_1_1_f.stl with factor 1000
[ INFO] [1497340513.074468761]: Convert mesh for link 'f_2_0_m'
[ INFO] [1497340513.074650907]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_0_m.stl with factor 1000
[ INFO] [1497340513.075332634]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_0_m.stl with factor 1000
[ INFO] [1497340513.075985096]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_0_b.stl with factor 1000
[ INFO] [1497340513.076172020]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_0_b.stl with factor 1000
[ INFO] [1497340513.076428883]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_0_f.stl with factor 1000
[ INFO] [1497340513.076685156]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_0_f.stl with factor 1000
[ INFO] [1497340513.149028906]: Convert mesh for link 'f_2_1_b'
[ INFO] [1497340513.149168207]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_1_b.stl with factor 1000
[ INFO] [1497340513.149981570]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_1_b.stl with factor 1000
[ INFO] [1497340513.150777306]: Converting mesh file /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_1_f.stl with factor 1000
[ INFO] [1497340513.151040903]: Scaling the mesh /home/dex_hand/catkin_ws/src/eagle_shoal/meshes/f_2_1_f.stl with factor 1000
[ INFO] [1497340513.236713815]: ### Urdf2GraspIt::postConvert for robot eagle_shoal
[ INFO] [1497340513.236875004]: ############### Getting XML
[ INFO] [1497340513.237560075]: Conversion done.
[ INFO] [1497340513.237735750]: urdf2inventor::FileIO::writeMeshFiles into /home/dex_hand/catkin_ws/src/eagle_shoal/urdf2graspit/
[ INFO] [1497340513.252261488]: Cleaning up...
[ INFO] [1497340513.252291655]: Done.
[urdf2graspit_node-1] process has finished cleanly
log file: /home/dex_hand/.ros/log/93297868-4fe3-11e7-8673-38d5472591a7/urdf2graspit_node-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done
`
But When I input the world/robot file, There are nothing at all.
Can you help me?

What do you mean, there is nothing at all? You can't find the generated world files? Or when you open it in graspit simulator, it doesn't show anything?

I'm guessing this was resolved?


Avoid calling project.getRootProject().getAllprojects() in each project

If SpdxSbomPlugin calls  project.getRootProject().getAllprojects()  for every project the plugin is applied to. In a large codebase that means a N number of calls for N number of projects. This is very costly, for example in AndroidX project, we spend 1.5s just calling getAllProjects().
A screenshot from a trace:

It would be much better if all this work was moved to a Shared Build Service so it can be computed once and then reused between projects.

Good idea - thanks for finding this!

So I this is probably not going to be allowed anyway in the future with project isolation. But we can convert to a shared build service for now?

Hopefully we can actually just use the ProjectComponentIdentifier to do this, but we need an update at gradle to make it so: https://github.com/gradle/gradle/issues/26737

fixed by #60


update file sql-errors.data and dependent rules<PHONE_NUMBER>60

There is no information on where this list comes from. We need to get some sources and update the list.
Also, the file is used first as a pmFromFile, but then each part is checked per database in rules<PHONE_NUMBER>60. All those rules should be updated also, and moved to .ra files.

Thanks @azurit! We moved this one to the next milestone after V4. You can keep working on it if you want :)