Add support for optionally generating a settings file

Background and Motivation

There are various scenarios where it's useful to be able to launch a project in the "normal way", outside of Aspire launching it, but still have that project be configured with the right Aspire settings in order to connect to Aspire services and the Aspire OpenTelemetry dashboard.
Scenarios include:

MAUI and other .NET Mobile projects (e.g. Uno) where there may not be support initially for an integrated launch experience
MAUI and other .NET Mobile projects (e.g. Uno) when there is support for an integrated launch experience, but users still want the ability to launch outside of Aspire to support the typical inner loop scenario here https://twitter.com/GFlisch4u/status/1811635668327539021, just restarting MAUI app via Shift-F5 / F5 in VS
Client apps that are launched by some other program, a service, with custom CLI args from the command line, etc.
Web apps where the user wishes to set the web app as the startup project and still have that work

This API meets that need, by allowing the settings, normally passed via environment variables, to optionally be written to a settings file (e.g. a JSON file). Writing the settings file can happen in addition to building/launching the project normally, allowing both Aspire integrated and standalone startup to work, or it be the only option, with Aspire configured to not build/launch the project, just generate settings. The API here supports both use cases.
Proposed API
namespace Aspire.Hosting;

public static class ProjectResourceBuilderExtensions
{
+     /// <summary>
+    /// Adds a settings file to the project resource, to optionally persist settings that are normally set via environment variables.
+    /// The settings file can be generated with or without also launching the project.
+    /// </summary>
+    /// <param name="builder">The <see cref="IDistributedApplicationBuilder"/>.</param>
+    /// <param name="settingsFilePath">The path to settings file, absolute or relative to app host directory.</param>
+    /// <param name="settingsFileType">The settings file type, C# code (for use with IConfigurationBuilder.AddInMemoryCollection) or JSON (for use with IConfigurationBuilder.AddJsonFile).</param>
+    /// <param name="onlyGenerateSettings">Indicate whether to skip build/running this resource, only generating settings.</param>
+    public static IResourceBuilder<ProjectResource> WithSettingsFile(this IResourceBuilder<ProjectResource> builder, string settingsFilePath, SettingsFileType settingsFileType, bool onlyGenerateSettings)

+    /// <summary>
+    /// Adds a settings file to the project resource, to optionally persist settings that are normally set via environment variables.
+    /// The settings file can be generated with or without also launching the project.
+    /// </summary>
+    /// <param name="builder">The <see cref="IDistributedApplicationBuilder"/>.</param>
+    /// <param name="settingsFileOptions">The options to use for settings file generation.</param>
+    /// <returns></returns>
+    public static IResourceBuilder<ProjectResource> WithSettingsFile(this IResourceBuilder<ProjectResource> builder, SettingsFileOptions settingsFileOptions)

+    /// <summary>
+    /// Adds a .NET project to the application model, just generating a settings file for the project.
+    /// </summary>
+    /// <param name="builder">The <see cref="IDistributedApplicationBuilder"/>.</param>
+    /// <param name="name">The name of the resource. This name will be used for service discovery when referenced in a dependency.</param>
+    /// <returns>A reference to the <see cref="IResourceBuilder{T}"/>.</returns>
+    /// <remarks>
+    /// <para>
+    /// This overload of the <see cref="AddProject(IDistributedApplicationBuilder, string, string)"/> method adds a project to the application
+    /// model where Aspire only generates a settings file for the project, not otherwise trying to build or run it. This is useful for projects
+    /// that you wish to always launch manually, but have them connect to Aspire services and OTEL.
+    /// </para>
+    public static IResourceBuilder<ProjectResource> AddSettingsOnlyProject(this IDistributedApplicationBuilder builder, string name,
+        string settingsFilePath, SettingsFileType settingsFileType)
}

A draft PR implementing this API is here: https://github.com/dotnet/aspire/pull/5016.

Usage Examples
builder.AddProject<Projects.MyFrontend>("mywebapp")
       .WithSettingsFile("..\\MyWebApp\\obj\\appsettingsAspire.g.json", SettingsFileType.Json, onlyGenerateSettings: false)
       .WithExternalHttpEndpoints()
       .WithReference(basketService)
       .WithReference(catalogService);

builder.AddSettingsOnlyProject("mymauiapp", "..\\MyMauiApp\\obj\\appsettingsAspire.g.cs", SettingsFileType.CSharp)
       .WithExternalHttpEndpoints()
       .WithReference(basketService)
       .WithReference(catalogService);

Alternative Designs
Initially, I considered having a separate project type for projects that generate settings. But allowing settings to optionally be generated for any .NET project, via a settings file IResourceAnnotation, allows more flexibility and emphasizes this is optional functionality in addition to integrated launch. Plus it required less changes to add. It seems like a nicer design all around.

Risks

I think this is unnecessary - Aspire can handle env variables, and this is just adding extra orchestration steps that arent necessary. A whole project for a settings file seems too much too.

At no point does wiring things up from Aspire mean you cant switch to the individual startup project - so you can just always switch around. I have been running frontends separately to test them and it doesn't change anything.

I think this is unnecessary - Aspire can handle env variables, and this is just adding extra orchestration steps that arent necessary. A whole project for a settings file seems too much too.

Just to be clear, the proposal here doesn't (necessarily) add a whole project for the settings file. The settings file is an optional addition to an existing project (via WithSettingsFile).

At no point does wiring things up from Aspire mean you cant switch to the individual startup project - so you can just always switch around. I have been running frontends separately to test them and it doesn't change anything.

Yes, you can do this, but how do those projects get the right settings to use, to connect back to Aspire hosted services or the Aspire dashboard?

I'm not super enthused about this API myself. Seems to me the root of the issue is passing environment variables into mobile apps when you launch them. Android for example has the concept of a Wrap script:
https://developer.android.com/ndk/guides/wrap-script
Maybe there is some prior art here we can lean on which is idiomatic within each target ecosystem?

I'm not super enthused about this API myself. Seems to me the root of the issue is passing environment variables into mobile apps when you launch them. Android for example has the concept of a Wrap script:
https://developer.android.com/ndk/guides/wrap-script
Maybe there is some prior art here we can lean on which is idiomatic within each target ecosystem?

We can't use the Android wrap script because that's embedded into the app at build time. But we have another custom way to pass environment variables at launch time to Android apps, which looks like it should get into 17.12, so I think we'll have Aspire integrated launch support in VS 17.12 for MAUI. All that said, I still see value with this proposal. There are multiple scenarios, especially with mobile, where you want to be able to launch the app the traditional way (not thru AppHost in VS), but still use Aspire and dashboard. I added another one to the bulleted list above - device test tools like Appium, BrowserStack, xharness, etc. want to do the app deploy and launch - that's the way they are built. Tools like Appium will not just do the initial app launch but also relaunch the app for each test (optional) or on crash. All that tooling isn't built to launch through AppHost (especially not thru VS, as it's generally CLI based). But it's still useful to test with Aspire, running in CI or locally. And then there are the other scenarios I mentioned above, like especially faster inner dev loop, but also Rider, CLI, etc.
I just see this proposal as giving users more options & greater compatibility with existing workflows. Integrated launch is nice. But sometimes you want - or need - to launch the traditional way & still use Aspire services/dashboard. It's nice to support both.


Toaster view card position

Is it possible to custom toaster view card position location.

see the docs on toastr and noty


fix(build): do not unwrap modules unconditionally

This happens for protos referencing a different package from their name, i.e. something like foo/v1/bar.proto where bar.proto defines package foo.v1.
Fixes #747

How do I execute them? Just going into the tests subdirectory and run cargo test?

You can try to follow an example like this https://github.com/tokio-rs/prost/blob/master/tests/src/build.rs#L107

I think you need to call cargo test --all from the root of the project maybe?

  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Custom { kind: Other, error: "protoc failed: google/protobuf/timestamp.proto: File not found.\ngoogle/protobuf/type.proto: File not found.\ngoogle/protobuf/any.proto: File not found.\ngoogle/protobuf/field_mask.proto: File not found.\ngoogle/protobuf/api.proto: File not found.\ngoogle/protobuf/descriptor.proto: File not found.\ngoogle/protobuf/wrappers.proto: File not found.\ngoogle/protobuf/source_context.proto: File not found.\ngoogle/protobuf/empty.proto: File not found.\ngoogle/protobuf/struct.proto: File not found.\ngoogle/protobuf/compiler/plugin.proto: File not found.\ngoogle/protobuf/duration.proto: File not found.\nwell_known_types.proto:3:1: Import \"google/protobuf/timestamp.proto\" was not found or had errors.\nwell_known_types.proto:4:1: Import \"google/protobuf/type.proto\" was not found or had errors.\nwell_known_types.proto:5:1: Import \"google/protobuf/any.proto\" was not found or had errors.\nwell_known_types.proto:6:1: Import \"google/protobuf/field_mask.proto\" was not found or had errors.\nwell_known_types.proto:7:1: Import \"google/protobuf/api.proto\" was not found or had errors.\nwell_known_types.proto:8:1: Import \"google/protobuf/descriptor.proto\" was not found or had errors.\nwell_known_types.proto:9:1: Import \"google/protobuf/wrappers.proto\" was not found or had errors.\nwell_known_types.proto:10:1: Import \"google/protobuf/source_context.proto\" was not found or had errors.\nwell_known_types.proto:11:1: Import \"google/protobuf/empty.proto\" was not found or had errors.\nwell_known_types.proto:12:1: Import \"google/protobuf/struct.proto\" was not found or had errors.\nwell_known_types.proto:13:1: Import \"google/protobuf/compiler/plugin.proto\" was not found or had errors.\nwell_known_types.proto:14:1: Import \"google/protobuf/duration.proto\" was not found or had errors.\nwell_known_types.proto:20:5: \"google.protobuf.NullValue\" is not defined.\nwell_known_types.proto:22:5: \"google.protobuf.Timestamp\" is not defined.\nwell_known_types.proto:24:5: \"google.protobuf.DoubleValue\" is not defined.\nwell_known_types.proto:26:5: \"google.protobuf.FloatValue\" is not defined.\nwell_known_types.proto:28:5: \"google.protobuf.Int64Value\" is not defined.\nwell_known_types.proto:30:5: \"google.protobuf.UInt64Value\" is not defined.\nwell_known_types.proto:32:5: \"google.protobuf.Int32Value\" is not defined.\nwell_known_types.proto:34:5: \"google.protobuf.UInt32Value\" is not defined.\nwell_known_types.proto:36:5: \"google.protobuf.BoolValue\" is not defined.\nwell_known_types.proto:38:5: \"google.protobuf.StringValue\" is not defined.\nwell_known_types.proto:40:5: \"google.protobuf.BytesValue\" is not defined.\nwell_known_types.proto:51:5: \"google.protobuf.Empty\" is not defined.\nwell_known_types.proto:52:5: \"google.protobuf.Timestamp\" is not defined.\nwell_known_types.proto:53:5: \"google.protobuf.Option\" is not defined.\nwell_known_types.proto:54:5: \"google.protobuf.Any\" is not defined.\nwell_known_types.proto:55:5: \"google.protobuf.Api\" is not defined.\nwell_known_types.proto:56:5: \"google.protobuf.BoolValue\" is not defined.\nwell_known_types.proto:57:5: \"google.protobuf.BytesValue\" is not defined.\nwell_known_types.proto:58:5: \"google.protobuf.DoubleValue\" is not defined.\nwell_known_types.proto:59:5: \"google.protobuf.Duration\" is not defined.\nwell_known_types.proto:60:5: \"google.protobuf.Empty\" is not defined.\nwell_known_types.proto:61:5: \"google.protobuf.Enum\" is not defined.\nwell_known_types.proto:62:5: \"google.protobuf.EnumValue\" is not defined.\nwell_known_types.proto:63:5: \"google.protobuf.Field\" is not defined.\nwell_known_types.proto:64:5: \"google.protobuf.Int32Value\" is not defined.\nwell_known_types.proto:65:5: \"google.protobuf.ListValue\" is not defined.\nwell_known_types.proto:66:5: \"google.protobuf.Method\" is not defined.\nwell_known_types.proto:67:5: \"google.protobuf.Mixin\" is not defined.\nwell_known_types.proto:68:5: \"google.protobuf.NullValue\" is not defined.\nwell_known_types.proto:69:5: \"google.protobuf.Option\" is not defined.\nwell_known_types.proto:70:5: \"google.protobuf.Struct\" is not defined.\nwell_known_types.proto:71:5: \"google.protobuf.Syntax\" is not defined.\nwell_known_types.proto:72:5: \"google.protobuf.Timestamp\" is not defined.\nwell_known_types.proto:73:5: \"google.protobuf.Type\" is not defined.\nwell_known_types.proto:74:5: \"google.protobuf.Value\" is not defined.\n" }', tests/src/build.rs:110:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

still the same, could it be some protoc incompatibility?

hmm not sure, I just ran cargo test --all with the code in this PR and it worked for me. Can you share more about your system etc? Not sure why you're seeing that failure.

or anything else that I can use to try to reproduce your error.

I am now at home and with Ubuntu 20.04's protoc I get the optional error because protoc is too old (optional back with proto3 …). I then tried:

protoc 3.19.5: same as at work (I can tell you tomorrow which version it is)
protoc 3.18.2: same
protoc 3.17.3: same
protoc 3.16.1: same
protoc 3.15.8: same

Because that led nowhere I checked what else was wrong and after moving the include directory from the proto releases to ~/.local it worked. So, I suspect the tests/src/include/google directory is not used at all.
I will now try to come up with a regression test.

I also think that proto includes those...last I checked, I was able to compile well known types without linking them. And I think that changed with recent version of protoc.

I have a hard time coming up with a test that shows the regression. I suppose it's because we use tonic-build in our proto crate which exports the descriptor data which is then later used by the consuming application together with prost-build.


fix: drop false assets instead of erroring

Description
Updates the endblocker to drop false assets instead of erroring out in the endblocker

Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...

[ ] included the correct type prefix in the PR title
[ ] added ! to the type prefix if API or client breaking change
[ ] added appropriate labels to the PR
[ ] targeted the correct branch
[ ] provided a link to the relevant issue or specification
[ ] added a changelog entry to CHANGELOG.md
[ ] included comments for documenting Go code
[ ] updated the relevant documentation or specification
[ ] reviewed "Files changed" and left comments if necessary
[ ] confirmed all CI checks have passed

Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...

[ ] confirmed the correct type prefix in the PR title
[ ] confirmed all author checklist items have been addressed
[ ] reviewed state machine logic
[ ] reviewed API design and naming
[ ] reviewed documentation is accurate
[ ] reviewed tests and test coverage
[ ] manually tested (if applicable)

I thought about disallowing storage for any votes on garbage prices (rejecting msg AggregateExchangeRateVote), but tbh this would probably be more difficult to manage from the validator side of things. I guess the block height delay helps with this, but for now this seems to be enough

Codecov Report

Merging #133 (3ad68a2) into main (949ce60) will increase coverage by 0.01%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #133      +/-   ##
==========================================
+ Coverage   17.30%   17.32%   +0.01%
==========================================
  Files          41       41
  Lines       11290    11292       +2
==========================================
+ Hits         1954     1956       +2
  Misses       9232     9232
  Partials      104      104

Impacted Files
Coverage Δ

x/oracle/abci.go
78.57% <100.00%> (+0.38%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


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

Describe the bug
I'm encountering an issue where room.participant is undefined when attempting to join a room in my existing project running on Node.js version 16. The same setup works flawlessly on a different project running on Node.js version 18 with Next.js. The error occurs during the join process, and room.participant remains undefined, leading to the following runtime error:
Unhandled Runtime Error
TypeError: Cannot read properties of undefined (reading 'values')
Call Stack
getTrackReferences
<EMAIL_ADDRESS>(1588:0)
trackReferencesObservable
<EMAIL_ADDRESS>(1632:14)
eval
<EMAIL_ADDRESS>(1548:50)
commitHookEffectListMount
node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js (20004:0)
...
Server

Version: 1.8
Environment: Production (running on ubuntu)

Client

SDK: js
Version: 2.5.9
"livekit-client": "^2.5.9",
"@livekit/components-react": "^1.5.3",
"@livekit/components-styles": "^1.0.9",

To Reproduce
Steps to reproduce the behavior:

a client tries to join, but the room.participant is undefined.
Expected behavior
a should successfully join the room and room.participant should not be undefined.

the error occurred when i add

the error occurred when i add <VideoConference/>

you are using incompatible versions of livekit-client and @livekit/components-js (1.x vs 2.x)


Auto-generate a challenge with a random person

[suggestion]
Hey guys, I was wondering there's anything built at the moment to automatically generate a challenge to any random person on slack on a given time. This would be nice to have!

Also https://github.com/dblock/slack-gamebot/issues/33


Widgets or embed dashboards

As in Kibana, is there anyway to embed the dashboard in some 3rd party sites?

There's a standalone mode for individual slices, but not for the dashboard currently. You could try hiding the menu in the dashboard's CSS and "iframing" it as is.

Is the standalone mode for slices documented anywhere?

Its a somewhat obvious button on the explore view.

Is there a way to do this without requiring authentication for viewers?

How about this permission setting for Public role: [datasource access on [main].birth_names, can explore on Caravel] ?

Sorry, worked only on local for some reason. Otherwise it throws AttributeError: 'AnonymousUserMixin' object has no attribute 'username'. Any workaround?

@jwthomp you'd have to allow set the flag to allow public users and add the datasource to the public role. As for embedding the dashboard, you can alter the CSS of the dashboard to hide the Caravel menu.

Hello,
Has there been new changes to use the dashboards standalone since ?
Either as a widget or embeded?

You can embed Dashboard in an iframe, How? for that you have to add a parameter in iframe src URL: "&standalone=true" or if there are no '?' in URL then add ?standalone=true. it will disable menu bar from the dashboard.


Research target

Hi,
I am trying to use your GPT-3.5-turbo for the research purpose, could I use this pre-trained model for the investigation of research problem?
Thanks

Yep, I personally don't care how you use the code, data, or models, just know that the model data was generated by chatgpt, which has some terms associated with it, and the base model is llama, which has a special license from meta.


Misc typo fixes

Signed-off-by: Abhijeet Kasurde<EMAIL_ADDRESS>

@viveksinghggits Thanks for the review and merge.


fixes resize when using maximize

Before this, if you maximized the window, you would sometimes get a weird bug where the ogre render area was a different size than the Qt window, e.g.:

(the sphere should be in the center)

I still have a bug after this fix (Ubuntu 16.04 + GNOME 3).
When maximising the window the render window adjusts fine.
But after unmaximising the render window does not adjust to fit the smaller window.

(again, the sphere should be in the center)

@greimela I have the exact same setup, but I wasn't able to get that behavior. Can you confirm that you're using the fix (you recompiled and everything)? I just tried it again and couldn't get it to fail with the patch, though it could just be a fluke.

Works on my machine (Ubuntu 16.10 + Fvwm 2.6.5)

Also works on my machine (Ubuntu 16.04 + Unity)

Looks like it has something to do with my Ubuntu + Gnome setup.
Let's exclude the problem from this PR for now and I will investigate futher.

Ok, I'll merge this then. @greimela can you open a new issue so we don't lose track of this?

Done, see #25.


zeroconf.watch not working on Android 9

zeroconf.watch('_http._tcp.', 'local.', ({ action, service }) => {
    console.log(service)
    if (action === "resolved") {
      console.log(service)
    } else if (action === "removed") {
      console.log(service)
    }
})

Same code works on iOS. It was working on Android but suddenly it stopped. Any suggestions?
Getting this error in failure callback:
Error: Attempt to invoke interface method 'boolean java.util.Enumeration.hasMoreElements()' on a null object reference

The error line appears to be here: https://github.com/becvert/cordova-plugin-zeroconf/blob/master/src/android/net/becvert/cordova/ZeroConf.java#L555
        Enumeration<String> names = service.getPropertyNames();
        while (names.hasMoreElements()) {

I suppose the service.getPropertyNames() method is returning an unexpected result. A solution might be just to try/catch this call. We should also look at service that gets passed into jsonifyService(ServiceInfo service) too,  it could be that service itself is empty and doesn't have any propertyNames to iterate. The mystery then becomes "what kind of service was returned from registrationManager.register() that is invalid?
Does Android 9 change or update app permission structures?

Does anyone have a clue on how to resolve this? It's also not working on Android 11

Yes, as per my previous comment,  https://github.com/becvert/cordova-plugin-zeroconf/blob/master/src/android/net/becvert/cordova/ZeroConf.java#L555 needs error handling and investigation


Example documentation link shows 404

https://normanderwan.github.io/DocFxForUnity/ linked in README shows 404.

Thank you, it's fixed now!


PR161 + review

This PR contains @jooh's PR (#161), plus the commits of its review. I have tested it both at the RHUL and at the CBSU.
The main modifications are:

Scenarios (parametersets, demo download and execution) have been redesigned considering user without write access to the (centrally installed) aa folder
Parametersets are defined interactively (dialogues instead of questions in the command line)
Demo dataset is now downloaded from OSF.
BIDS demo is also downloaded from OSF.
The examples have been reworked to use segment8. They have been all tested for execution and for results.

If @jooh and others agree, then this PR can be merged instead of #161.
(I am sorry for the confusion! I am sure there must be a more elegant way, but PR to @jooh's repo did not work, because some of my commits were not detected).

Thanks to @jooh, testing of the most basic examples (demo and BIDS) can be run anywhere and with minimal /no writing. @jpeelle and @jones-michael-s, feel free to test it!

Just tested it out. A few small suggestions before I test more:

The XML inheritance functionality is very nice! But it currently overwrites acq_details.root to be ~/matlab. That should not happen since it overwrites the CBU spec (where aap.acq_details.root is set to /imaging/[USER]/aa). And in general, ~/matlab is not a good place for putting analysis results. The clever thing about setting acq_details.root in site-specific parameter sets is that it makes it possible to have the results go into a site-specific drive by default. We shouldn't override anything during seeding of the user parameter file.

You refactored the command window dialogues in aarecipe to become GUI popup windows. Personally, I use Matlab in a terminal over SSH and hate redundant GUIs (I can see the point for complex stuff that's hard to do by text, but to ask a yes/no question?). But I understand that a lot of beginner users find them easier to understand so I am willing to live with this change. However I think you must print something to the command window to alert users to the fact that Matlab is waiting for GUI input. At the moment, Matlab just appears to hang if like me, you are using a remote session and didn't have the VNC window open. Better yet, didn't we use to have an aa option for putting dialogues in gui or on the command line?

After clicking 'ok' on the dialogue that informs you that the new parameter set has been created, the dialogue box remains open and Matlab appears unresponsive, until you go back to the command window and notice that actually, it's started working on the demo... Can we make this window close properly before continuing? It's dangerous to assume that the user is able to see both the GUI and the command window at all times.

aa_downloaddemo prints that it's downloading to /imaging/local/software... But that's surprising since the demo already exists there. It would be better if the download is only attempted if the files don't exist (most users won't be able to write to /imaging/local/software so you may crash if you try). Or if the print message is incorrect, change so that it only prints if it's actually trying to download something.

Thanks for the revision!
Ad 1.: acq_details.root is not hard-coded, but depends on where you save the parameter file. The dialogue title says: "Location of the parameters file and analyses by default".
Ad 2.: My main reason for the GUIs was that it simplified the code (no switch-case blocks). But I like having both options depending on usage, so I will re-implement the command line, and use the aap.options.aaworkerGUI as a switch for both.
Ad 3.: I also hate that MATLAB GUI drawing is not always properly scheduled. (: I close it explicitly.
Ad 4.: The main reason for the downloading the demo is that I changed the specification of the destination, so all demo dataset goes into the folder aa_demo (as hard-coded in DEMODIRBASENAME). So the aa_demo goes into /<DATA{1,2}> (aa_demo/aa_demo), which is different from what you originally use. Next time, it should not download. I did not hard-code BIDS114, because we have no control over the foldername in the archive.
This 'system' allows for specifying a common aa_demo for any user, and all demo data would go into one place.

Ad 2.: I have just realised that there is no aap at that stage. Shall I add an argument (nogui) to aarecipe (GUI is default)?

re acq_details.root - thanks, I didn't notice that you are setting root to the directory where the parameters file is saved. That kind of makes sense to me - I guess parameters and root directories generally go together. Maybe it would be better to initialise the save dialogue in the current aap.acq_details.root rather than in the current Matlab directory though (if it exists), to nudge users toward the right drive.

re acq_details.root again - are you adding this to the Matlab path to ensure the xml can be loaded from there on re-run? You've probably already thought of this.

re gui - I can live with it. Just make sure you print something like 'waiting for user interface input' to the command line when you bring up the dialogue. Actually, it would be best to print exactly what has happened to the work space - 'could not find default aa_user_parameters.xml, initialising new configuration user interface' or similar.

re gui closing - would drawnow or waitfor help?

re the demo download - just be careful that you don't attempt downloads to /imaging/local/software by default because that won't work for most CBU users, who can't write there. I guess there is no problem as long as we make sure the files already exist there.

re bids 114 - you don't mean that bids114 will be re-downloaded every single time you execute a script?

re acq_details.root

I initialise the save dialogue in the current aap.acq_details.root if specified.
I do not add to the path. User can either start from that folder, or specify full path. I do not prefer modifying path just for convenience.

re gui

I have created a function to allow both options.
closing: waifor helped. Thanks!

demo: I have run the tests considering no write access in /imaging/local/software.
bids114: Yes. But it is not the full dataset but bids114_test2 (600 MB). I do not know how to figure out the foldername in an archive stored online. For aa_demo, we know, but it cannot be generalised.

PR updated

re acq_details.root:
I agree that mixing defaults and matlab path is not a good idea, and that is why I prefer fully specified path, because it assumes a more conscious user behaviour.
There are two use cases of custom defaults: On user level and on study level. The former could, in theory, go to aa_parametersets, however, not every user may have write access to it (e.g. in /imaging/local/software/AA). The latter is better located together with the study analysis (i.e. in aap.acq_details.root.)
re bids:
I can modify aa_downloaddemo to take an expected foldername.

PR updated

I have no strong feelings on acq_details.root, and I also like flexibility; so I am happy implement an explicit question on acq_details.root.

PR updated

Ok, great. I will run the CBU tests one last time to make sure we haven't broken anything with these final changes. Fingers crossed...

I do the same (demo and BIDS) here, at the RHUL.

All went well on my end.

Shall we merge, then?

Still running through the tests. I accidentally tested the wrong version so having to rerun a few things.. Stay tuned.

Thanks for the informative discussion! :)
On Mon, Sep 3, 2018 at 3:35 AM Johan Carlin<EMAIL_ADDRESS>wrote:

Still running through the tests. I accidentally tested the wrong version
so having to rerun a few things.. Stay tuned.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rhodricusack/automaticanalysis/pull/163#issuecomment-418042573,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGtPY5HnAScQ6-jrIaVOunEUQiwQ9QGks5uXOnUgaJpZM4WB5Ca
.

I have updated the example script.

aa_init lines 77-79:

clear ft_defaults
clear global ft_default
ft_defaults;

This code worked fine for us under previous versions of Matlab.
Under R2018a, it crashes on line 79.
This feels like a typo. On the other hand, it's related to fieldtrip initialization and we don't use fieldtrip.

Are you sure it is the MATLAB version? I am using 2018a in multiple places without issue.

I'll doublecheck (might be a mac/linux thing)
For my own understanding, what does line 79 (ft_defaults;) do?

https://github.com/spm/spm12/blob/master/external/fieldtrip/ft_defaults.m

But why clear it?

To remove previous (potentially conflicting) settings (e.g. from another version of SPM)

Update: Ok, today it is not crashing.
If it starts crashing again, I will update.

I pushed one more commit (cc2e390e5068e190db9a507038dec14b49238ccf) to the repo - turns out my shell expansion method only works in bash, and the rest of CBU is on tcsh. All fixed now. Sorry not to do another pull request, but this was a hot fix - AA was basically broken for all non-bash users.


Add nvm support

Ok, so after realizing the issue I am having it would be nice to have nvm support. Or at least an option to specify the node location so we can map the proper node install for the project.
Something like: -n --nodePath to keep consistant with the already available -p --foreverPath

Never mind, I misunderstood how this worked. By passing option into forever I can get this working how I need.
sudo forever-service install portal --script /var/www/vhosts/domain/public_html/build/bundle/main.js -f " -c /usr/local/nvm/v0.10.43/bin/node"

Thanks


added nearest_target function for comments

Added binary search to find node closest to comment, added test for it
TODO

Add logic for more node types for deeper traversal (to improve location accuracy)
Add attachment logic

I'm generally okay with the direction, but can you talk a little about the motivation here?


Install yarn using apt, upgrade node, add workaround

Current coverage is 58.84% (diff: 100%)

Merging #797 into master will decrease coverage by 0.01%

@@             master       #797   diff @@
==========================================
  Files           110        110
  Lines          5844       5844
  Methods           0          0
  Messages          0          0
  Branches        713        713
==========================================
- Hits           3440       3439     -1
  Misses         2266       2266
- Partials        138        139     +1

Powered by Codecov. Last update cc47996...27243c6


error in sending GELF messages to logstash

Hi, I am using gelfj module in my application log4j.xml file to sending application logs to logstash which are in turn getting indexed in Elasticsearch.
I have observed that at times when my application starts, I see below error in catalina.out. If I restart my application, GELF initializes and i don't see the error. This is happening randomly. Could you help me in figuring out what could be the issue?
We are using gelf-1.1.7.jar and sending logs to remote logstash server.
Error:
log4j:ERROR Could not send GELF message

Hi, could anyone respond to the query? I have been facing this issue randomly.
I observed that the error occurs when I stop the logstash instance. But, when I start it back the application doesn't seem to resume sending logs.
Thanks
Swetha

Hello Swetha,
Apologies for delay. Could you please share you log4j xml?
I can try and enable more logging around "Could not send GELF message" so we can try and debug. Are you willing to update gelf 1.1.7 to newer version and test that?
A.

Hi Anton,
Here is the Gelf appender related config in log4j.xml
I am fine to update to the new version, but before that can we enable more
logging so that we can figure out what is causing the issue randomly?
Thanks
Swetha

On Tue, Apr 21, 2015 at 1:44 AM, Anton Yakimov<EMAIL_ADDRESS>wrote:

Hello Swetha,
Apologies for delay. Could you please share you log4j xml?
I can try and enable more logging around "Could not send GELF message" so
we can try and debug. Are you willing to update gelf 1.1.7 to newer version
and test that?
A.
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-94557477.

Hi Anton,
This issue is happening in production and we cannot afford to restart the production applications. Could you help in enabling more logging to figure out the root cause of the issue?
Thanks

Hi Swetha,
At the moment no logging is available thats why I propsed new version where
it will be.
I will be able to publish new version around 20:00 gmt today.
Anton
On 23 Apr 2015 13:49, "swethagaddam"<EMAIL_ADDRESS>wrote:

Hi Anton,
This issue is happening in production and we cannot afford to restart the
production applications. Could you help in enabling more logging to figure
out the root cause of the issue?
Thanks
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-95537569.

Thanks Anton. Let me know when you publish the new version so that I can update the jar in my environment to troubleshoot further.

Hi,
I've published version 1.1.11 to maven central. It should be available shortly.
Please update your pom.xml dependencies:
 <dependency>
    <groupId>org.graylog2</groupId>
    <artifactId>gelfj</artifactId>
    <version>1.1.11</version>
    <scope>compile</scope>
  </dependency>

Try to repeat your test case. This time more info should be available in catalina log.
A.

Hey Swetha,
Have you tried new version?
You can also can try to switch from udp to tcp by changing graylogHost to {{tcp:log1}}. You will also need to enable source on the server.
<appender name="ELK_APPENDER" class="org.graylog2.log.GelfAppender">
        <param name="graylogHost" value="tcp:log1" />
        <param name="graylogPort" value="5521" />
        <param name="facility" value="${catalina.base}" />
        <param name="extractStacktrace" value="true" />
        <param name="additionalFields"
value="{'customer':'${machine.customer}',
'stability':'${machine.stability}','appname':'${machine.appname}'}" />
        <param name="Threshold" value="INFO" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[ %d [%t] %x
%C{2}.%M():%L %-5p]: %m%n" />
        </layout>
    </appender>

Hi Anton,
I have used the new version of gelfj.jar in some of our applications and it is working fine. I will update you if we face the issue again.
w.r.t tcp, how will the application work if the remote host is not responding? Will it queue the logs or will it crash the application?
Thanks
Sweth

At the moment TCP doesn't retry failed call. This means you will lose log lines that cannot be send. Only AMQP transport resends message configurable amount of time. I would recommend you use AMQP transport for production critical application to ensure log delivery.

Hi Anton,
I tried the new gelfj.jar (v1.1.11) to send the logs to our ELK cluster.
After restarting the application, it could send logs to ELK for first 45 min before it died.
Could you help in debugging this further?
The error message logged in catalina.out is below:
log4j:ERROR Error during sending GELF message. Error code: -1.
java.nio.channels.ClosedChannelException
at sun.nio.ch.DatagramChannelImpl.ensureOpen(DatagramChannelImpl.java:335)
at sun.nio.ch.DatagramChannelImpl.write(DatagramChannelImpl.java:609)
at org.graylog2.GelfUDPSender.sendDatagrams(GelfUDPSender.java:51)
at org.graylog2.GelfUDPSender.sendMessage(GelfUDPSender.java:40)
at org.graylog2.log.GelfAppender.append(GelfAppender.java:224)
at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
at org.apache.log4j.Category.callAppenders(Category.java:206)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.log(Category.java:856)
at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:176)
at deshaw.moss.service.dao.infra.DatabaseConnectionInterceptor.invoke(DatabaseConnectionInterceptor.java:206)
at sun.reflect.GeneratedMethodAccessor251.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)

Hi Sweth,
I think I found bug and fixed @ 15842b8b7d0950cbf2d67dbe028fe2e4fb328122.
Could you please use v1.1.12 and test?
Anton

Hi Anton,
Could you let me know what was the bug and the fix?
Thanks
Swetha
On Tue, May 5, 2015 at 5:18 PM, Anton Yakimov<EMAIL_ADDRESS>wrote:

Hi Sweth,
I think I found bug and fixed @ 15842b8
https://github.com/t0xa/gelfj/commit/15842b8b7d0950cbf2d67dbe028fe2e4fb328122.
Could you please use v1.1.12 and test?
Anton
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99056533.

Hi Anton,
Thanks for the fix.
I would like to know what caused the issue here. Could you help in
understanding the issue?
Thanks
Swetha
On Tue, May 5, 2015 at 5:18 PM, Anton Yakimov<EMAIL_ADDRESS>wrote:

Hi Sweth,
I think I found bug and fixed @ 15842b8
https://github.com/t0xa/gelfj/commit/15842b8b7d0950cbf2d67dbe028fe2e4fb328122.
Could you please use v1.1.12 and test?
Anton
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99056533.

Looking at exception UDP Datagram channel got somehow closed. I assume this
happened due to your server restart. The fix is simple, before sending the
message it checks if channel is open if not it tries to reopen it.
See test
https://github.com/t0xa/gelfj/blob/15842b8b7d0950cbf2d67dbe028fe2e4fb328122/src/test/java/org/graylog2/GelfUDPSenderTest.java
On Tue, May 5, 2015 at 2:59 PM, swethagaddam<EMAIL_ADDRESS>wrote:

Hi Anton,
Thanks for the fix.
I would like to know what caused the issue here. Could you help in
understanding the issue?
Thanks
Swetha
On Tue, May 5, 2015 at 5:18 PM, Anton Yakimov<EMAIL_ADDRESS>wrote:

Hi Sweth,
I think I found bug and fixed @ 15842b8
<
https://github.com/t0xa/gelfj/commit/15842b8b7d0950cbf2d67dbe028fe2e4fb328122
.
Could you please use v1.1.12 and test?
Anton
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99056533.

—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99059286.

--
Vriendelijke groeten,
Anton Yakimov

Thanks Anton.
Could you let me know the location of the new jar with the fix? It would be
great if you could upload it to any maven repository.
Thanks
Swetha
On May 5, 2015 5:34 PM, "Anton Yakimov"<EMAIL_ADDRESS>wrote:

Looking at exception UDP Datagram channel got somehow closed. I assume this
happened due to your server restart. The fix is simple, before sending the
message it checks if channel is open if not it tries to reopen it.
See test
https://github.com/t0xa/gelfj/blob/15842b8b7d0950cbf2d67dbe028fe2e4fb328122/src/test/java/org/graylog2/GelfUDPSenderTest.java
On Tue, May 5, 2015 at 2:59 PM, swethagaddam<EMAIL_ADDRESS>wrote:

Hi Anton,
Thanks for the fix.
I would like to know what caused the issue here. Could you help in
understanding the issue?
Thanks
Swetha
On Tue, May 5, 2015 at 5:18 PM, Anton Yakimov<EMAIL_ADDRESS>wrote:

Hi Sweth,
I think I found bug and fixed @ 15842b8
<

https://github.com/t0xa/gelfj/commit/15842b8b7d0950cbf2d67dbe028fe2e4fb328122

.
Could you please use v1.1.12 and test?
Anton
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99056533.

—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99059286.

--
Vriendelijke groeten,
Anton Yakimov
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99060182.

Its already done. You need to wait around 1 hr before it is synced to
central maven. Version name is 1.1.12.
On 5 May 2015 15:12, "swethagaddam"<EMAIL_ADDRESS>wrote:

Thanks Anton.
Could you let me know the location of the new jar with the fix? It would be
great if you could upload it to any maven repository.
Thanks
Swetha
On May 5, 2015 5:34 PM, "Anton Yakimov"<EMAIL_ADDRESS>wrote:

Looking at exception UDP Datagram channel got somehow closed. I assume
this
happened due to your server restart. The fix is simple, before sending
the
message it checks if channel is open if not it tries to reopen it.
See test

https://github.com/t0xa/gelfj/blob/15842b8b7d0950cbf2d67dbe028fe2e4fb328122/src/test/java/org/graylog2/GelfUDPSenderTest.java

On Tue, May 5, 2015 at 2:59 PM, swethagaddam<EMAIL_ADDRESS>wrote:

Hi Anton,
Thanks for the fix.
I would like to know what caused the issue here. Could you help in
understanding the issue?
Thanks
Swetha
On Tue, May 5, 2015 at 5:18 PM, Anton Yakimov <
<EMAIL_ADDRESS>wrote:

Hi Sweth,
I think I found bug and fixed @ 15842b8
<

https://github.com/t0xa/gelfj/commit/15842b8b7d0950cbf2d67dbe028fe2e4fb328122

.
Could you please use v1.1.12 and test?
Anton
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99056533.

—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99059286.

--
Vriendelijke groeten,
Anton Yakimov
—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99060182.

—
Reply to this email directly or view it on GitHub
https://github.com/t0xa/gelfj/issues/87#issuecomment-99063049.

Thanks a lot Anton. Will let you know how this works!

Hi. Any updates?


User-reported unhelpful error message

Program: https://code.world/#PWgdtxnncIsNHoDsURBzYgg
Message:
program.hs:4:1-7: error:
    Multiple declarations of program
    Declared at: program.hs:1:1
                 program.hs:4:1

I'm not sure we can do any better here. A student who expects this to work has a deeper misunderstanding that can't be addressed in an error message.


Agregando PreguntaGroupChoice Junto Con Pruebas

feat: se agregó la Construcción de la clase GroupChoice
test: Agregando Pruebas Group
Co-authored-by: @AmayaSantos @ferburs

Codecov Report

Merging #36 into V1.0 will increase coverage by 0.44%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##               V1.0      #36      +/-   ##
============================================
+ Coverage     92.22%   92.67%   +0.44%
- Complexity       66       69       +3
============================================
  Files            16       16
  Lines           180      191      +11
  Branches          8        8
============================================
+ Hits            166      177      +11
  Misses           14       14

Impacted Files
Coverage Δ
Complexity Δ

.../fiuba/algo3/modelo/Pregunta/FabricaPreguntas.java
87.71% <100.00%> (+1.44%)
9.00 <1.00> (+1.00)

...va/edu/fiuba/algo3/modelo/Respuesta/Respuesta.java
80.00% <100.00%> (+6.66%)
6.00 <2.00> (+2.00)

Continue to review full report at Codecov.

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


WIP: Visualizer

Hi,
Please take a look to the initial draft Visualizer class in _visualizer_tools.py. This visualizer iterates over a list elements of AbstractDrawer that draw the required object with the function draw_at_t(t). I included the time as a parameter as I thought the properties of the object to draw are functions of time, so we need the specific point of time to draw it.
Each child class of AbstractDrawer should contain the object to draw and additional properties to draw it, i.e. the color of the ball.
However, I haven't been able to run the test because of type conflicts, still working on it. What do you think of this approach?

ping me directly if you want me to take a look, otherwise i don't see it: either do @knyazer, or request me as a reviewer
give me a sec to take a look

Overall quite a decent work. However, there are few suggestions about design:
firstly, we can make a drawer that would work independent of a particular body: any body must provide shape: UniversalShape and any UniversalShape have a bunch of parts that are AbstractConvexShapes, from which you can use get_support to figure out a point on the surface of the shape. Then you can draw anything via simply connecting a bunch of points on the surface of every convex shape. I agree that it requires a bit more work, but this also reduce the connectedness of the source code, hence it is much easier to support: once written, we can zero-shot support any shape

But I am not going to accept a PR that fails tests: for obvious reasons, failing tests mean that something is clearly wrong.

And somehow even after pre-commit hook you have issues with formatting: are you sure that you have followed CONTRIBUTING.md?

draw_at_t(t). I included the time as a parameter as I thought the properties of the object to draw are functions of time, so we need the specific point of time to draw it.

I don't precisely understand what you mean: while the thing we draw is indeed a function of time, we never have a dependency on it. We simply plot the current state of the system while it evolves through time.

draw_at_t(t). I included the time as a parameter as I thought the properties of the object to draw are functions of time, so we need the specific point of time to draw it.

I don't precisely understand what you mean: while the thing we draw is indeed a function of time, we never have a dependency on it. We simply plot the current state of the system while it evolves through time.

So can we take the values of position, velocity, etc as they are in the object? Will these values be changed in other places of the code to simulate in continous time?

And somehow even after pre-commit hook you have issues with formatting: are you sure that you have followed CONTRIBUTING.md?

Fixed! I was not using pre-commit as it was intended

But I am not going to accept a PR that fails tests: for obvious reasons, failing tests mean that something is clearly wrong.

I was not expecting otherwise, that is why this is marked as a Draft for now :)
Thanks for the feedback! I'll remove the t parameter of the drawing function and tweak the code to make it pass the tests first

Overall quite a decent work. However, there are few suggestions about design:
firstly, we can make a drawer that would work independent of a particular body: any body must provide shape: UniversalShape and any UniversalShape have a bunch of parts that are AbstractConvexShapes, from which you can use get_support to figure out a point on the surface of the shape. Then you can draw anything via simply connecting a bunch of points on the surface of every convex shape. I agree that it requires a bit more work, but this also reduce the connectedness of the source code, hence it is much easier to support: once written, we can zero-shot support any shape

Even if we can make an independent drawer based on the shape, I think we can also have more properties to take into account when drawing than the shape of the object. For example, for a robot, we can add a number id on top of it to visualize the agent or a change of color when driving with the goal.
Basically, it would be useful to have a general shape drawing tool, but we will need to add more things on top of it depending on the object to draw.

Almost LGTM: can you please replace BallDrawer with some sort of Drawer that would work on any AbstractBody? Sample a lot of point in the circle for every convex component of abstract body shape, and draw these things according to the body transformation matrix. Feel free to introduce a getter for such a transformation matrix into AbstractBody

Closing since completed with #52


OGD-169: Move hub-specific code from verify-utils-libs into verify-hub

The eventsink package in verify-utils-libs has been moved here, as the hub is the only place that uses it.
It also breaks the dependency in verify-utils-libs on verify-event-emitter, as the hub already pulls this dependency in.
First commit creates a new subproject (:hub:shared) for shared components.
Second commit replaces imports from verify-utils-libs with the local library.

There's now 2 EventSinkHubEvent.java in verify-hub. There's one in Policy and one in shared. The one in Policy should probably be removed and whatever is using it should use the shared class?

@JHjava the EventSinkHubEvent in policy seems to be a deliberate duplicate, as the SessionId it references is also from the policy module.
In order to remove it from policy and use the one in shared, you'd need to move SessionId too else you end up with a circular dependency shared -> policy -> shared ...
We can:
(a) Rename the EventSinkHubEvent in policy to make it clear it's specific to that implementation of SessionId
(b) Move SessionId into shared too, to break the circular dependency.
(c) Use the SessionId in verify-utils-libs everywhere in verify-hub and remove the instance in policy, although they are very slightly different (the one in verify-utils-libs has @JsonValue(true) on its .toString()
IMO, (c) feels the better option, it's getting rid of duplicated code between libs and hub.

Good spot, Alex. Let's do that in a separate PR.

We're reading the sessionId query param into SessionId objects in the code - as long as the implementations are the same, I think it should be okay? Happy to take a second opinion on this.
I agree, separate PR.


Composite keys in MongoDB

Does composite key concept using Kundera is also supported in MongoDB ? I have designed an entity for Cassandra taking composite key concept in mind, means using @Embedded annotation. It work fines for Cassandra. However, if I run the same code for MongoDB, I get an exception (can't serialize class)
com.impetus.kundera.KunderaException: java.lang.IllegalArgumentException: can't serialize class com.PartitionKey
at com.impetus.kundera.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:180)
at com.leuven.distrinet.encryption.crypto.AbstractCryptoEntityManager.persist(AbstractCryptoEntityManager.java:57)
at com.leuven.distrinet.encryption.service.DataStorageService.persit(DataStorageService.java:14)
at com.leuven.distrinet.encryption.driver.EncryptionDriver.main(EncryptionDriver.java:16)
Caused by: java.lang.IllegalArgumentException: can't serialize class com.leuven.distrinet.encryption.crypto.PartitionKey
at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:299)
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194)
at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255)
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:175)
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:136)
at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:36)
at com.mongodb.OutMessage.putObject(OutMessage.java:289)
at com.mongodb.DBCollectionImpl.insertWithWriteProtocol(DBCollectionImpl.java:556)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:195)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:167)
at com.mongodb.DBCollection.insert(DBCollection.java:93)
at com.impetus.client.mongodb.MongoDBClient.onFlushCollection(MongoDBClient.java:1091)
at com.impetus.client.mongodb.MongoDBClient.onPersist(MongoDBClient.java:834)
at com.impetus.kundera.client.ClientBase.persist(ClientBase.java:114)
at com.impetus.kundera.lifecycle.states.ManagedState.handleFlush(ManagedState.java:197)
at com.impetus.kundera.graph.Node.flush(Node.java:531)
at com.impetus.kundera.persistence.PersistenceDelegator.flush(PersistenceDelegator.java:403)
at com.impetus.kundera.persistence.PersistenceDelegator.persist(PersistenceDelegator.java:145)
at com.impetus.kundera.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:174)
... 3 more

@ansarrafique
Composite key is supported in MongoDB.
Check this test case for details.
-Dev

@devender-yadav
The data model is bit different in my case. I have a partition key too. Please see below:
Entity
public class EncryptedData{
@EmbeddedId
private Key key;
@Column
private String name;
@Column
private int score;
}
@Embeddable
public class Key{
@Embedded
private PartitionKey partitionKey;
@Column
private String columname;
}
@Embeddable
public class PartitionKey{
@Column
private String classname;
@Column
private String id;
}
It works fine for Cassandra, but get an exception for MongoDB. Anything wrong here?

Do I need to change the entity model for the MongoDB to make it work? This dosen't seems to work with the  MongoDB. Any suggestions? Thanks

@ansarrafique
@Embedded annotation is supported in Kundera-MongoDB (test case shared in previous comment). Also, Composite key is supported in Kundera-MongoDB using @EmbeddedId.
In your case, you are using nested composite key (embeddable within embeddable), we are looking into this and will get back to you.
-Dev

Indeed, I have designed the entities taking Cassandra data model into account (e.g., partition key, cluster key).
I was hoping this should have worked.

hi @ansarrafique
In MongoDB, there is nothing like partition key & cluster key as in Cassandra. So, the composite key in Kundera-MongoDB is not supported in the same way as in Kundera-Cassandra. You can't have Embedded fields in your EmbeddedId entity in case of  Kundera-MongoDB.
So, you need to change your data model in the case of MongoDB.
-Dev

Yup, that's what I was wondering. I was actually looking at if we can used @Embedded  annotation inside the @EmbeddedId entity. Is this not internally supported by the MongoDB? How does MongoDB stores data then based on the compound/composite keys? For example, in Cassandra, the data for the same partition key will always be stored on ONE node in a cluster. How the compound keys would work in MongoDB then for the data distribution?

composite key in MongoDB is not used for data distribution and all. It's just to make primary key more complex and unique. There are other options also like creating unique index or unique compound index to achieve unique primary keys.
Users generally  don't design primary key in such a way that included nested embedded objects in MongoDB. That's why it's not supported by Kundera.
-Dev


Setting the font size with a span element inside a custom script?

i have this span element:

and i was wondering if i could set the font size here as well without using the style.css file

here's an example from my config 󰍛 {used} GiB
the font property is self explanatory .
the rise property will add bottom padding to whatever is inside the span if it's value is positive, vice versa if it's negative.
here's the docs for the pango markup. You might need to scroll down a tiny bit

here's an example from my config 󰍛 {used} GiB
the font property is self explanatory .
the rise property will add bottom padding to whatever is inside the span if it's value is positive, vice versa if it's negative.
here's the docs for the pango markup. You might need to scroll down a tiny bit

Thanks man! I'll check it out later today (it's 2:30 am) but I was wondering: what does rise do?

Thanks man! I'll check it out later today

By the way, I reccomend marking this as complete If your issue is solved (not that I wanna tell you how to run your life but just saying ¯\ (ツ) /¯)


Node-gyp rebuild breaking on new setup

I am trying to get aqua up and running for the first time, but when I run npm install,  node-gyp rebuild is not working.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
\
><EMAIL_ADDRESS>install C:\Users\ted\Documents\nodejs\app\aqua\node_modules\bcrypt
> node-gyp rebuild

C:\Users\ted\Documents\nodejs\app\aqua\node_modules\bcrypt>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
gyp ERR! configure error
gyp ERR! stack Error: Python executable "C:\Python34\python.EXE" is v3.4.1, which is not supported by gyp.
gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.
gyp ERR! stack     at failPythonVersion (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:406:14)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:395:9
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:204:7)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at maybeClose (internal/child_process.js:827:16)
gyp ERR! stack     at Socket.<anonymous> (internal/child_process.js:319:11)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! stack     at Socket.emit (events.js:169:7)
gyp ERR! stack     at Pipe._onclose (net.js:477:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\ted\Documents\nodejs\app\aqua\node_modules\bcrypt
gyp ERR! node -v v4.4.5
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v4.4.5
npm ERR! npm  v2.15.5
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\ted\Documents\nodejs\app\aqua\npm-debug.log

My fault. I should have looked at the docs that talk about bcrypt before doing anything else. Thank you.


[CMake][assimp] target "assimp::assimp" not found

OS: Archlinux x86-64
I use assimp in my CMakeLists.txt as follow:
find_package(assimp REQUIRED)
......
message("assimp: ${ASSIMP_LIBRARIES}")
......
target_link_libraries(Ex0 PRIVATE assimp::assimp)

And CMake find assimp library successfully:
assimp: optimized;/home/rasp/git/vcpkg/installed/x64-linux/lib/libassimp.a;/home/rasp/git/vcpkg/installed/x64-linux/lib/libIrrXML.a;/home/rasp/git/vcpkg/installed/x64-linux/lib/libz.a;debug;/home/rasp/git/vcpkg/installed/x64-linux/lib/../debug/lib/libassimpd.a;/home/rasp/git/vcpkg/installed/x64-linux/lib/../debug/lib/libIrrXMLd.a;/home/rasp/git/vcpkg/installed/x64-linux/lib/../debug/lib/libz.a

But failed to find assimp::assimp:
CMake Error at /home/rasp/git/vcpkg/scripts/buildsystems/vcpkg.cmake:169 (_add_executable):
  Target "Ex0" links to target "assimp::assimp" but the target was not found.
  Perhaps a find_package() call is missing for an IMPORTED target, or an
  ALIAS target is missing?

Is it a bug? Or is there anything wrong with my CMakeLists.txt file?
Thanks in advance!

After this pr, cmake works with ${ASSIMP_LIBRARIES}, but still couldn't find assimp::assimp

INSTALL(TARGET) command in source\code\CMakeLists.txt:

INSTALL( TARGETS assimp
LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR}
FRAMEWORK DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
COMPONENT ${LIBASSIMP_COMPONENT})

This port does not declare any [EXPORT ], so we can't use it.

I find the usage of assimp::assimp in issue #3062, which says we should use assimp::assimp instead of ${ASSIMP_LIBRARIES}.
Anyway, thanks for your time. I will close this issue, but I think it will be better to add a usage file to assimp, just like some other packages, e.g., glew does~


Update index.html

Updated the index.html file with the following changes:

Created a nav bar using the  tag
Used  tags to create links to the following:

Introduction
Content
Extra information

Made sure each link moves user to the mentioned part

These additions were made due to an issue i pulled from the main repository at this link: https://github.com/HYF-Class21/agile-development-group1-all-about-trees/issues/13

General Checks

[ ] the branch is up to date with main/master
[ ] the code works when pulled and run locally
[ ] All CI checks pass
[ ] all conflicts are resolved (if any)
[ ] PR has a descriptive title
[ ] PR has appropriate labels and milestones for easy identification
[ ] PR it is assigned to the owner
[ ] reviewers are assigned
[ ] the PR contributes only one focused change
[ ] It is in the appropriate column in the project board (if necessary)
[ ] has short and clear description
[ ] is linked to an issue (if it is related)
[ ] feedback is addressed (if any and if it is appropriate feedback.)

Markdown

[ ] the markdown source is formatted
[ ] spelling and grammar is correct in all text
[ ] The markdown looks correct when you preview the file
[ ] all links and images work

HTML

[ ] pages besides /index.html are stored in /pages
[ ] the code is well-formatted
[ ] the HTML is valid
[ ] there are no inline styles (example: style='color: red;')
[ ] there are no <style> tags with CSS, all styles are hrefs
[ ] there is no inline JavaScript (example: onclick='doSomething()')
[ ] there are no <script> tags with JS, all JS is in an separate file
[ ] ids are used for JavaScript only, not for CSS
[ ] semantic tags are used
[ ] spelling and grammar is correct in all site content

CSS

[ ] the code is well-formatted
[ ] passes all the linting checks

We thank you for your help to our project. Be sure to run format and lint check so we can merge it without issue 💯
@jay-lenz


Very small formatting typo

Here, there is a double space before the comment (after the semi-colon).
Nothing scandalous but caught it while trying to match-replace the data.
By the way, this project is awesome and very handy. I'm currently transforming the data to create a Java enum, here are the regexp values I'm using in case somebody else is interested:

match .*(?:String +)([_A-Z\d]+) *= *(?:")(.*)(?:");(?: *(?:\/\/)(.*))?
replace $1("$2"), // $3

which will yield results of the following format (example with FULL_MOON):
FULL_MOON("🌕"), // https://www.emojibase.com/emoji/1f315/fullmoonsymbol
EDIT: modified the 'match' string to take into account the typo and eventual other erratic spacings.

fixed.
BTW this project already contains java enums here 😉

Are you serious it took me hours to get the result I wanted when it was in an adjacent folder. Anyway, I learned a few tricks I suppose :) Thanks!

You should have check the java folder first 😃
One advice, if you developing for Android check this, Android official docs don't recommend enums.

Thanks for the info, I didn't know that. The problem is that I need to be
able to get a  list of all the emojis easily.
Wluld you still recommend using the final static fields and manually
creating calling each of them?
On Sun, Feb 12, 2017, 18:08 Shayan Rais<EMAIL_ADDRESS>wrote:

You should have check the java folder first 😃
One advice, if you developing for Android check this
https://github.com/shanraisshan/EmojiCodeSheet/wiki/Android-usage,
Android official docs don't recommend enums.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/shanraisshan/EmojiCodeSheet/issues/1#issuecomment-279232337,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADkBZP7A7xhntLtLRPWB2S3TZfTVd4Gkks5rbzx3gaJpZM4L-Wfo
.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/shanraisshan/EmojiCodeSheet","title":"shanraisshan/EmojiCodeSheet","subtitle":"GitHub
repository","main_image_url":"
https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png
","avatar_image_url":"
https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open
in GitHub","url":"https://github.com/shanraisshan/EmojiCodeSheet"}},"updates":{"snippets":[{"icon":"PERSON","message":"@shanraisshan
in #1: You should have check the java folder first 😃 \r\nOne advice, if
you developing for Android check this,
Android official docs don't recommend enums."}],"action":{"name":"View
Issue","url":"
https://github.com/shanraisshan/EmojiCodeSheet/issues/1#issuecomment-279232337
"}}}


Rename Tests to match the component they are testing

Coverage remained the same at 49.01% when pulling ef1b1cc484c3935eff1339157659249fad23959f on renametests into cb9311cdb2675eb87d7bf12986c0aaf2e6e3b39f on master.


remote SVG cannot be animated

when using the following from the examples along with a dynamic seed value, the resultant svg does not animate
      <SVG
        src="https://cdn.svgporn.com/logos/react.svg"
        width={256}
        height="auto"
        title="React"
      />

react-inlinesvg only calls getElement when title or description changes:
https://github.com/gilbarbara/react-inlinesvg/blob/14ddfe33ead89c90a0c9b9727ec78455fdddf6ac/src/index.tsx#L199-L201
If you want to create an animated remote SVG, you might need to add a dynamic key to the SVG:
<SVG
  src="https://cdn.svgporn.com/logos/react.svg"
  width={256}
  height="auto"
  title="React"
  key={seed}
/>


feat(admin): identify external plugins

Description
As a user of RHDH, I want to know which third party plugins are installed so that I know that there could be unsupported plugins running in my RHDH installation.
Which issue(s) does this PR fix

Fixes RHIDP-1854: Identify externally installed plugins in the dynamic-plugins-info table

PR acceptance criteria
Please make sure that the following steps are complete:

[ ] GitHub Actions are completed and successful
[x] Unit Tests are updated and passing
[x] E2E Tests are updated and passing
[ ] Documentation is updated if necessary (requirement for new features)
[x] Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer
Screenshot(updated 5/1)

Note: for internal packages that are not enabled, Version and Role values are left empty in table.

Passed e2e tests
➜  e2e-tests git:(rhidp-1854-identify-externally-installed-plugins) ✗ yarn showcase dynamic-plugins-info.spec
yarn run v1.22.19
$ playwright test --project=showcase dynamic-plugins-info.spec

Running 1 test using 1 worker

  ✓  1 … e2e/plugins/dynamic-plugins-info/dynamic-plugins-info.spec.ts:19:3 › dynamic-plugins-info UI tests › it should show a table, and the table should contain techdocs plugins (5.2s)
Dialog message: Failed to sign in as a guest using the auth backend. Do you want to fallback to the legacy guest token?

  1 passed (9.5s)
✨  Done in 10.39s.

I thought we had discussed that this information could, for 1.2, be hard-coded on the client side ?
cc @durandom
I'm of course not against making something more automated, but I'm not  a fan of the code depending on the content of the dynamic-plugins.default.yaml.
Another point to consider is the following; the fact that a plugin is mentioned in the dynamic-plugins.default.yaml file does not mean that it is supported, it only means that the plugin is embedded inside the RHDH container image and pre-configured. In other words it tells whether the plugin is external or not.
cc @nickboldt

Hi @davidfestal , thanks for the review. I also felt that package value in dynamic-plugins.default.yaml isn't very reliable for deciding if a plugin is external or rhdh embedded while working on it. Do we have a list of rhdh embedded plugin I can use as hard coded value for now?

cc @gashcrumb as the related EPIC owner.

Hi @gashcrumb The mapping component seems not passing the SonarCloud duplication check. Did I misunderstand the mapping from our discussion?

Hi @gashcrumb The mapping component seems not passing the SonarCloud duplication check. Did I misunderstand the mapping from our discussion?

Just took a quick glance (will look closer tomorrow) and I think this is along the lines of what we've discussed.  We may have to add an exception in SonarCloud for this (I need to learn how to do this for my own PR too), probably also worth adding a comment if there isn't one already explaining what the mapping is for.

@ciiay Probably this line will need updating for the e2e tests.  This particular e2e test should be runnable locally without too much hassle, let me know if I can help you set that up.

Awesome work BTW, swapped this into my existing setup:

Not sure I'm a fan of the Total Plugins wording, even though I don't know what could replace it.
Is there an ability to filter the enabled / disabled ones ? Maybe a Button, something visual that would make it clear what is the list we're seeing ?

Not sure I'm a fan of the Total Plugins wording, even though I don't know what could replace it.

Maybe just Plugins?

Is there an ability to filter the enabled / disabled ones ? Maybe a Button, something visual that would make it clear what is the list we're seeing ?

The sorting can be used to get an idea but I agree it does feel like a quick filter of some variety would be nicer.  I think the filter widget that's used on other catalog pages is probably too much for this purpose.  @ShiranHi I wonder if there's other quick filter options we could use here?

Not sure I'm a fan of the Total Plugins wording, even though I don't know what could replace it.
In the Support pop up, it uses All of the installed plugins. How about Installed plugins or simply Available plugins?

cc @gashcrumb

I think we should probably update the support popup to say "All of the plugins" and I still think maybe just simplifying the page title to just "Plugins" would be best here, as now the table shows all of this.  I was thinking this more generic title fits if we also have simple filter control perhaps in the toolbar area for quickly filtering out disabled plugins as @davidfestal suggests.

There's this filtered table option we could try out.

Is there an ability to filter the enabled / disabled ones ? Maybe a Button, something visual that would make it clear what is the list we're seeing ?

The sorting can be used to get an idea but I agree it does feel like a quick filter of some variety would be nicer. I think the filter widget that's used on other catalog pages is probably too much for this purpose. @ShiranHi I wonder if there's other quick filter options we could use here?

I think we don't need to add a filter bar to this page. The columns are sortable, and users can use the search bar if they need to find something specific.

I think we should probably update the support popup to say "All of the plugins" and I still think maybe just simplifying the page title to just "Plugins" would be best here, as now the table shows all of this. I was thinking this more generic title fits if we also have simple filter control perhaps in the toolbar area for quickly filtering out disabled plugins as @davidfestal suggests.

We decided against displaying any links in the UI. This is because the page is hardcoded, meaning any changes would require users to wait for a new release. Additionally, this approach wouldn't function in air-gapped environments. So I don't think we need to add this support button.
I have 3 questions:

I noticed in the table that there's a "Role" column. Could we simply specify whether it's "Backend" or "Frontend"? The current text there seems repetitive. Can we change the column name to be "Type"?
What does it mean if a plugin is pre-installed but not enabled?
Should we include the source, indicating whether this is a Red Hat plugin or a community plugin?

BTW we did try the filtered table, however it introduces some layout issues and the actual filter panel doesn't seem to work, which will require additional investigation.  I propose we hold off introducing any additional filtering into this PR, we can always do this as an enhancement later.

What about the question of "Installed Plugins" vs "Total Plugins" vs "Plugins" for the table title?

Right, I missed that. Only "Plugins" should work imo

Huh, didn't realize that would add both labels, a 2nd look by someone else would be good too :smile:

Or would have been, I guess it was on the merge queue already even though I removed the label manually.  @kadel wonder why both labels were applied at once, was it the :+1: in my comment when I used the approve button?

@gashcrumb I can raise a separate PR to address any further comments for this PR.
@davidfestal @ShiranHi Let me know if this PR needs more work. Thank you.


feat: add wildcard components ({msg}-*)

This extends further from #145 by adding a listener for all components on a message as a wildcard - the component used can be determined by ctx.custom_id.

[x] Method Docs / Descriptions

Added

MessageInteractionContext#registerWildcardComponent(message_id, callback, expiration, onExpired)
MessageInteractionContext#unregisterWildcardComponent(message_id)

Wildcard components use the invoking message ID with an asterisk (*) to prevent possible conflicts with existing registered components.
For context sake, this was implemented with eda121e (Gist Component) with a specific use for ephemeral components (and having it unregister itself immediately before invoking the callback).

I could have also added a predicate return on the register method, which would have ended up looking like...
class MessageInteractionContext {
  // ...
  registerWildcardComponent(message_id: string, /* ... */) {
    // ...
    return () => this.unregisterWildcardComponent(message_id);
  }
}

It is already so far against the existing style of the library, but I figured it'd be useful - similar to how I handled it in the demo.
const unref = this.registerWildcardComponent('0123456789', ctx => {
  // check interaction
  unref(); // remove after pre-conditions pass
  // continue
});

@sudojunior Sounds good, would have to change the other functions to match.


Landscape issue on Windows 10 Mobile

This is on a Lumia 950. In both landscape orientations, there's a blank area.
Blank white area on the left:

Blank white area on the right:

I have the same issue even in Portrait (Lumia 830, Template10 1.1.11) :

If I put my phone in Light mode I can see the status bar

Duplicate of #710

it is indeed a duplicate.... just have to set the background opacity.

Thanks!


MineClone 2

Project description
An open source Minecraft clone based on the Minetest engine.
Metadata

homepage URL: https://git.minetest.land/Wuzzy/MineClone2.git
source URL: https://git.minetest.land/Wuzzy/MineClone2/archive/0.59.2.zip
license: LGPL2
platforms: Windows, macOS, GNU/Linux, FreeBSD, OpenBSD, DragonFly BSD, and Android

It's probably a good idea to modify the minetest derivation (https://github.com/NixOS/nixpkgs/blob/3a3ccb106e0b96c568e0cc41edb90095de767c80/pkgs/games/minetest/default.nix) to support installing different mods/games.

Still relevant

#194749 should do it :)


[BUG] gateways metrics

Describe the bug
A clear and concise description of what the bug is.
The grafana dashboard is using metric for "gateways" like opnsense_gateways_loss_percentage available in row Gateways
Host operating system: output of uname -a
Versions
- OPNsense version: OPNsense 24.1.10_8-amd64
- OPNsense exporter version: docker latest
- Prometheus version: 2.54.1

Configuration of the exporter
docker run -d --name=opnsense_exporter_prometheus -p 8080:8080 ghcr.io/athennamind/opnsense-exporter:latest --log.level=debug --log.format=json --opnsense.protocol=http --opnsense.address=<IP_ADDRESS>  --opnsense.api-key=1234  --opnsense.api-secret=1234 --exporter.instance-label=instance1 --web.listen-address=:8080
Provide the configuration of the exporter in flags or in ENV variables.
???
Steps to reproduce
Search for metrics in metric_builder in grafana. Only one metric available with string gateway in it : opnsense_gateways_status
Expected behavior
See metrics that the visualisations use in row Gateway :

opnsense_gateways_loss_percentage
opnsense_gateways_rttd_milliseconds
opnsense_gateways_rtt_milliseconds

Screenshots
If applicable, add screenshots to help explain your problem.

And thanks for this nice work :)

Using current main branch of opnsense-exporter and OPNsense 24.7.4_1-amd64 I am also getting failures to parse rtt/rtt loss/rttd/rttd loss values.
ts=2024-09-22T21:23:50.658Z caller=utils.go:47 level=warn msg="parsing rtt: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.658Z caller=utils.go:47 level=warn msg="parsing rttd: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.658Z caller=utils.go:47 level=warn msg="parsing loss: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.659Z caller=utils.go:47 level=warn msg="parsing rtt: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.659Z caller=utils.go:47 level=warn msg="parsing rttd: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.659Z caller=utils.go:47 level=warn msg="parsing loss: '~' to float64 failed. Pattern matching failed."

Using current main branch of opnsense-exporter and OPNsense 24.7.4_1-amd64 I am also getting failures to parse rtt/rtt loss/rttd/rttd loss values.
ts=2024-09-22T21:23:50.658Z caller=utils.go:47 level=warn msg="parsing rtt: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.658Z caller=utils.go:47 level=warn msg="parsing rttd: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.658Z caller=utils.go:47 level=warn msg="parsing loss: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.659Z caller=utils.go:47 level=warn msg="parsing rtt: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.659Z caller=utils.go:47 level=warn msg="parsing rttd: '~' to float64 failed. Pattern matching failed."
ts=2024-09-22T21:23:50.659Z caller=utils.go:47 level=warn msg="parsing loss: '~' to float64 failed. Pattern matching failed."

This means that the OPNSense API returns '~' as the value for those metrics. Nothing we can do on the exporter side.

@kripskroll Without logs there is nothing I can do

I resolved issue #12 by investigating why the data was missing and documenting steps to restore it, and I don't even work here. Seems to me that something changed with the most current OPNsense and the exporter should track the change or what's the point.

SOLUTION: This can be resolved on OPNsense by going to System -> Gateways -> [WAN interface], click the edit button, uncheck 'Disable Gateway Monitoring'.

This can be resolved on OPNsense by going to System -> Gateways -> [WAN interface], click the edit button, uncheck 'Disable Gateway Monitoring'.

This is not a solution. This way you disable the Gateway Monitoring on the WAN Interface. Some people need this, you know when they wanna monitor they WAN gateways status 🥇 .

Seems to me that something changed with the most current OPNsense and the exporter should track the change or what's the point.

If you consider that there is a change and and the exporter should track the change, or WHAT's the point you need to prove it and later propose implementation of it, otherwise you are talking nonsense for a second time that has no real value.
Let me try to explain again ( hope you get it this time or what is the point ):
The logs that you showed are telling you that OPNsense reports the gateway status as this string: '~'. And if you go dive into their source code, you will find that they do this, when they can't collect the metrics for the gateway via the gateway monitoring daemon. There are many reasons that can lead to this. For example not every WAN gateway type can report these metrics

This is not a solution. This way you disable the Gateway Monitoring on the WAN Interface. Some people need this, you know when they wanna monitor their WAN gateways status 🥇 .

In current OPNsense it defaults checked (disabled). I recommended unchecking (enabling) monitoring, in order to get the monitoring.🥇

Hey @ihatemodels, I'm also getting the same error(?). If this is to be expected, all good - but if you think this is worth chasing down, just let me know what logs you need and I would be more than happy to provide them.

Hey @ihatemodels, I'm also getting the same error(?). If this is to be expected, all good - but if you think this is worth chasing down, just let me know what logs you need and I would be more than happy to provide them.

Turn on gateway monitoring to get those stats. I detailed earlier on this thread.

As @matthudsonatx said - if your gateway monitoring daemons are disabled this is expected. The api will report '~' in this case. If you see any other values or warnings logs please provide it here


Install the jwt package inside the module itself

Hi,
I want to create an Auth module using Lumen that can be implemented by JWT, and I want to install the JWT package inside the Auth module itself, not inside the project root. Is this possible? . How?

@nWidart Do you have any comments?

You can do that, install jwt in your module and install your module on your project


AttributeError

It does not allow the installation of the plugin, it throws an error

Does anyone know how to fix it?

no, I haven't found a solution to fix it


Update README.md

As it is compatible with OSX without external tools

This is great! Thank you, @pollosp!

There is a reason we had preferred using watch over the -w option. The -w option starts with the current state and then starts showing ONLY incremental changes which will confuse folks especially when a pod is initializing at start and then it switches to running state, for instance, when it will show 2 entries for the same pod. watch on the other hand refreshes the entire view.

@girishrangnathan makes sense. It seems like we should reincorporate the ‘watch’ command, providing both options.


Fix getAttesterDuties for next epoch

Motivation

When getting attester duties for current epoch, we have notWhileSyncing() check and it's good but not enough when validator ask for next epoch
For example in https://github.com/ChainSafe/lodestar/issues/3211#issuecomment-926320834, head epoch is at 41250 while validator asked for attester duties at epoch 41252, node should throw error instead of returning unreliable duties

Description

Check requested epoch vs headEpoch (instead of currentEpoch), it should be <=1
Closes #3211

just to mention @wemeetagain 's comment on the lodestar-testnet-alerts channel which might be relevant:

You may wonder, why even allow getting duties if we're not fully synced? Well it's not always clear whether you're fully synced or not.
In normal network conditions, yes, its easy to determine that your node is synced. Your clock ticks to the next slot, you receive and process that slot's block via gossip, your node determines that the new block is the new head of the chain.
However when the network is degraded, for example during a long chain of skip slots, being synced looks just like being unsynced. So a node always needs to be able to handle this unsure area and ensure that their validators will be able to progress the chain even in these conditions.

in case of skipped slots, this will cause the node to freeze and not move forward at all (I guess)
duties reorg with throwing of the double vote error behavior is a valid behavior and is harmless.

I think that if the validator tracks the head event with dependant root this issue will be fixed much cleanly since the validator would realize in time when the re-org happens

I think that if the validator tracks the head event with dependant root this issue will be fixed much cleanly since the validator would realize in time when the re-org happens

true, as long as validators dont double vote, duties reorg is much preferred behavior

need to implement/consume previousDutyDependentRoot and currentDutyDependentRoot in https://ethereum.github.io/beacon-APIs/#/Events/eventstream

Update:

handle attester duties reorg due to the node is syncing
(new) handle attester duties reorg due to the head is reorg


Use transaction page should be cleaned up. Unused methods and old code.

Closing in lieu of https://github.com/fractal-framework/fractal-interface/issues/33


Create production configuration in flusk

We have dev, staging configuration in flask config. We need a dedicated config for production.

FIXED


Investigate E2E test timeouts and other failures

A lot of our E2E test runs are failing. These might be false negatives that we can fix with better retries within the test suite. They might be real bugs. If there's a quick fix, solve it in the context of this ticket. If investigation uncovers a bigger issue, cut a new ticket(s) for it.
Misc thoughts and places to look
It looks like we wait forever and timeout on pipeline execution. That can hang on initial container download but stopping and retrying can get it to work.
Assumptions:

Acceptance Criteria
Given..., when..., then...

I wrote this ticket in a mindset that we were moving to stabilize our offering and start supporting our users end to end from authoring -> publication -> search -> inference. We're now gearing up to make big changes and replace some of the plumbing. Closing this as WONTFIX/superseded. We'll be reworking the tests in tandem as we go.


limitation of conversion

can we increase limitation of conversion?

Could you please elaborate more?
What's the problem you want to solve?


Why I'm getting a *.tar file

Hi, I'm trying to integrate this plugin into an Angular2 application, and it generates a *.tar instead of a JPG. What do you think I'm doing wrong?
http://plnkr.co/edit/fxF8bwtN0RjBFVwqBiwQ
(Hit on Run, main source is in src/app.ts

Inside the tar file are all the jpg or png files

If I double click on the tar file I get a *.cpgz, so I guess the file is corrupted?

I've never really used CCapture to capture just one frame.
Do you want to capture just one frame? there's easier ways to do that

Yes, I know it's possible to render it in a different way. I was trying to render a video using fabricjs and I had no success, that's why I started with a single frame to discard any error.
Althought, since it supports JPG formats, it shouldn't be able to export just one frame?

Hi @spite, this is the use case I was talking about. Could you tell me why isn't working please?
// Creates a HTML5 video tag
var canvas = new fabric.Canvas('canvas', {});

var videoElement = document.createElement('video');
videoElement.width = 600;
videoElement.height = 337;
videoElement.src = 'comp1.mp4';

video = new fabric.Image(videoElement, {
  left: 310,
  top: 200,
  originX: 'center',
  originY: 'center',
});

canvas.add(video);
video.getElement().play();
video.getElement().muted= true;
canvas.setActiveObject(video).renderAll();

function renderVideo() {
  var capturer = new CCapture( { format: 'webm', verbose: true } );

  var request;
  var render = function() {

    canvas.renderAll();
    capturer.capture( canvas.getElement() );
    request = fabric.util.requestAnimFrame(render);

  	var current_time = video.getElement().currentTime;
  	if(current_time >= 5) {
    	video.getElement().pause();
      window.cancelAnimationFrame(request);
      capturer.stop();
      capturer.save();
  	}
    console.log(current_time);
  };

  video.getElement().play();
  capturer.start();
  fabric.util.requestAnimFrame(render);
}

HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>

  </head>
  <body>
    <canvas id="canvas" width="800" height="450"></canvas>
    <button onclick="renderVideo()">Render Video</button>
  </body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.9/fabric.min.js"></script>
  <script src="./CCapture.all.min.js"></script>
  <script src="./app.js"></script>
</html>

source file and video: https://www.dropbox.com/s/mcrcpg7b1elig51/test.zip?dl=0

Same issue, tried many different configurations and never able to get a valid archive.


I can't get dependences, what's the problem?

I add
[dependencies]
time = "*"

in my Cargo.toml and try cargo build, it gives me
Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading libc v0.1.1
Unable to get packages from source

To learn more, run the command again with --verbose.

Then i use cargo build --verbose, it shows
Downloading libc v0.1.1
Unable to get packages from source

Caused by:
  Failed to download package `libc v0.1.1` from https://crates.io/api/v1/crates/libc/0.1.1/download

Caused by:
  Timeout was reached

What's wrong?

If you run curl -OL https://crates.io/api/v1/crates/libc/0.1.1/download how long does the download normally take for you?

Oh, i get it. Now i use proxy, everything is ok.
I'm pretty sure it is because the terrible GWF in China.
Thinks.


BSEuropeanBinaryOption.gamma returns nan

from pfhedge.instruments import EuropeanBinaryOption
from pfhedge.nn import BSEuropeanBinaryOption
from pfhedge.instruments import BrownianStock
from pfhedge.instruments import EuropeanOption
from pfhedge.nn import BSEuropeanOption

derivative = EuropeanBinaryOption(BrownianStock())
m = BSEuropeanBinaryOption.from_derivative(derivative)

torch.manual_seed(42)
derivative.simulate(n_paths=1)

m.gamma(derivative.log_moneyness(), derivative.time_to_maturity(), derivative.underlier.volatility,)
# tensor([[  -3.5248,  -44.2232,  -66.3963,  -13.1013,  -38.5988,  -75.9209,
#           -98.5359, -103.0389, -101.6409, -122.1414, -140.5751, -146.6521,
#         -182.5579, -207.5661, -243.5686, -227.4299, -280.6607, -374.9843,
#         -143.4726, -121.1908,       nan]])

# c.f.)
derivative2 = EuropeanOption(BrownianStock())
m2 = BSEuropeanOption.from_derivative(derivative)

m2.gamma(derivative.log_moneyness(), derivative.time_to_maturity(), derivative.underlier.volatility,)
tensor([[7.0495, 6.6380, 6.0732, 7.5931, 7.5346, 6.8515, 6.0366, 3.7168, 3.1474,
         4.0439, 4.8103, 4.2532, 6.5935, 6.4921, 7.2021, 4.2133, 4.5933, 5.3033,
         1.0448, 0.5398, 0.0000]])

Is it correctly working?
Returning tensor including nan seems a little bit harmful. (But, I haven't face this issue and have noticed when I make additional tests.)

m.gamma(torch.tensor(1.0), torch.tensor(0.0), torch.tensor(0.1))
# tensor(nan)
m.gamma(torch.tensor(1.0), torch.tensor(1e-7), torch.tensor(0.1))
# tensor(-0.)

I think it should be 0

It seems error of autogreek
m.delta(log_moneyness=torch.tensor(1.0), time_to_maturity=torch.tensor(0), volatility=torch.tensor(0.0))
# tensor(0.)

from pfhedge.autogreek import delta
delta(m.price, log_moneyness=torch.tensor(1.0), time_to_maturity=torch.tensor(0), volatility=torch.tensor(0.0))
# tensor(nan)

Update: This is due to the anomalous gradient of normal cdf and/or d2.
The BS European binary price is given by ncdf(d2):
https://github.com/pfnet-research/pfhedge/blob/e19efce73c54cc34cffcfc3ab1fd5903233304d5/pfhedge/nn/functional.py#L798-L813
Gradient of d2 returns inf and gradient of ncdf(d2) returns nan.
import torch
from pfhedge.nn.functional import ncdf
from pfhedge.nn.functional import d2
from pfhedge.nn.functional import bs_european_binary_price
import pfhedge.autogreek as autogreek

s = torch.tensor(1.0)
t = torch.tensor(0.0)
v = torch.tensor(1.0)

price = bs_european_binary_price(s, t, v)
print(price)
# tensor(1.)

d2_grad = autogreek.delta(
    d2,
    strike=1.0,
    log_moneyness=s,
    time_to_maturity=t,
    volatility=v,
)
print(d2_grad)
# tensor(inf)

delta = autogreek.delta(
    bs_european_binary_price,
    strike=1.0,
    log_moneyness=s,
    time_to_maturity=t,
    volatility=v,
)
print(delta)
# tensor(nan)

d2_grag = inf seems to be correct behavior: grad d2 at t=0 is indeed d(logS) / 0=+inf.
The problem boils down to computing grad ncdf for inf (supposed to be 0)

Now I see the cause.
The pricing function is ncdf(d2(s, t=0)) and we want its gradient wrt s (Technically wrt exp(s) but does not really matter).
The gradient is given by npdf(d2) * d2' = 0 * inf = nan.

Thus the grad of ncdf(d2(s, t=0)) being nan is a "correct" consequence of computing grad at d2=inf.
Similar problems would continue to pop up as long as we allow x/0 = inf to sneak in d1/d2.
There are two ways to take care of this:

Keep x/0 = inf: Pro is that this is "mathematically correct", con is that we would get nan
"Regularize" so that x/0 -> x / epsilon = (large but finite number): Not mathematically correct but no nan anymore.

I'm not sure which is better. Any thoughts? @masanorihirano

According to the design concept of ＃494, I think

Keep x/0 = inf: Pro is that this is "mathematically correct", con is that we would get nan

is coherent.
If the gradient for them is important, it should be reconsidered.
But, the situation occurring inf is very extreme and it is inappropriate to take gradient and learn.
Moreover, the large but finite numbers can cause another issue: lnf/inf could be a non-large finite number even when it should be inf (for example, lim_{x->inf} x^2/x).
Thus, I think mathematical correctness is primary and we should make other workarounds for avoiding nan in each modules.


Include latest version of operator-sdk

Resolves: #99

It has been confirmed that scorecard issue will be fixed in v1.29. I will keep the PR open to track to that version when it is available.


[cmake] Always add local swift compilation jobs to the local job pool.

Compiling swift modules are always compiled local... so put them in the local
job pool.

@swift-ci clean smoke test


Unknown device version number: '8'

Trying to use your plugin to auto detect the LED-controllers but both of them keep giving me an error, here is part of the log file:
[16/01/2021, 17:43:31] [homebridge-magichome-dynamic-platform] Attempting to assign controller to new device: UniqueId: 'F4CFA23EA40E'  IpAddress '<IP_ADDRESS>'  Model: 'AK001-ZJ2104' Hardware Version: '8'  Device Type: '1'
Is there anything I can do to resolve this issue?

Hi,
I will need some more information before I can begin solving this issue.  Could you please follow the bug report template and I will be able to help you further.

Hi,
I will need some more information before I can begin solving this issue.  Could you please follow the bug report template and I will be able to help you further.


Fix URxvt borders not respecting background opacity

This PR fixes URxvt borders not respecting the alpha channel. After using wal --theme "mytheme.json" -a 75 -n, I get a 75% alpha background, but a fully-opaque border:

BeforeAfter

This happens when you use URxvt.internalBorder to add padding around terminals, like so:
URxvt.internalBorder: 16
URxvt.externalBorder: 0

This bug only affects v3.2.1. It was introduced in this recent change:
https://github.com/dylanaraps/pywal/commit/da0e2ff05a885422dfc61fc87ae3c68ec713751b#diff-a5ddda4dbc7ee44dc1b6cc691ac053cbR57

By the way, thank you so much for creating Pywal! It's one of the reasons why I love my Linux desktop. I spend so much time customizing it to make it look as aesthetic as I want it to, and I have Pywal to thank for a lot of that.
:tada:

Hey there, happy new year! :wave: Would really love to have this fixed and merged in!


Issue for supporting Google Colab Jupyter Notebook under sframe.explore

This PR resolves #2484
Issue for supporting Google Colab Jupyter Notebook under sframe.explore() function

@znation  Can you merge and close this issue?