MSBuild integration

Essentially, making this work: https://github.com/adamralph/min-ver#quick-start

Hate to say it but I think you need an msbuild task here. https://github.com/natemcmaster/Yarn.MSBuild might be an inspiration

@adamralph There are two main ways you can integrate the logic into MSBuild:

Ship a command-line tool of some sort that gets called from an MSBuild target via an Exec task.
Create an MSBuild task that can be called from a target

Option 1 means you have to output all the needed values to the console and them parse them back out in your MSBuild targets, which can be messy.
Option 2 still means you could also ship a separate command-line tool if you want (for example as a .NET Core global tool), but the actual logic would be invoked directly as a task, and then you can get all the needed values back as regular properties.
Option 2 might seem like the best option, but there is a caveat here as well. Because you're using LibGit2Sharp, getting an MSBuild task working fully cross-platform is non-trivial. There are platform-specific native binaries that you have to deal with. MSBuild offers no assistance in making sure the correct one is loaded, so you have to handle all of that yourself. At the moment, that would involve some level of RID analysis to choose the correct binary. There are LibGit2Sharp changes coming "soon" that will make all of this more palatable, though.
Invoking a command-line tool instead could leverage .NET Core's ability to load the correct binary for you, so that's one reason that might be better. This is likely to be slower though, and this something needs to be invoked every time you build.

I think option 2) is the the most viable. Publish a dotnet cli tool e.g. dotnet min-ver. Then, using the technique described here: https://natemcmaster.com/blog/2017/07/05/msbuild-task-in-nuget/ you could get that to invoke via dotnet build.
Also, I don't think slowness is an issue here... normally you would invoke this as part of your CI process, not on your dev machine.

I think option 2) is the the most viable. Publish a dotnet cli tool e.g. dotnet min-ver. Then, using the technique described here: https://natemcmaster.com/blog/2017/07/05/msbuild-task-in-nuget/ you could get that to invoke via dotnet build.

You seem to be mixing things a bit. Option 1 would be the "invoke a command-line" approach, but you wouldn't really be able to tie that to a .NET Core global tool, since there would be no way to ensure the tool was installed.
The link you posted is detailing what I called Option 2, but that doesn't address any of the difficulties around the native libraries.

Also, I don't think slowness is an issue here... normally you would invoke this as part of your CI process, not on your dev machine.

I disagree. This is something you'll have installed in your project, and it will run as part of your build.

Sorry if I wasn't more clear. What I am suggesting is that you can slip in an <Exec /> task via obj/$(MSBuildProject).nuget.g.props into BeforeBuild when the nuget package installs the cli tool. And of course this would require Lib2SharpGit to get updated.

I'd like to avoid building an MSBuild task if possible, so right now I'm favouring option 1. I'm hoping it can be as simple as having an executable sitting next to the targets file.
I've pushed my initial naive attempt to https://github.com/adamralph/min-ver-sandbox. (All the MinVer*.* artifacts are the binaries which result from building this repo.)
If you run build.cmd, you can see that MinVer is getting invoked, and it's calculating the version as 0.0.0-alpha.0, but I've no idea where to go from there.
One obvious problem is that <Exec ... ConsoleToMsBuild="true"> is picking up both stdout and stderr, even though the docs say that it should only contain look at stdout. All the lines which start with MinVer:  are actually in stderr, and only the version number itself is in stdout.
Another thing I've observed is, if I set <VersionPrefix> in a <PropertyGroup> in the MinVer target, it has no effect on the package version, so I guess the target needs to be injected somewhere in the pipeline other than BeforeTargets="BeforeBuild".
The idea is that MinVer will indeed run on every build, not just on a CI server. I'm hoping performance won't be a problem.

I'd like to avoid building an MSBuild task if possible, so right now I'm favouring option 1. I'm hoping it can be as simple as having an executable sitting next to the targets file.

Are you okay with requiring the .NET Core SDK to be installed? If not, you'll need to ship two different executables and choose which one to run, either .NET Core or .NET Framework.

I've pushed my initial naive attempt to https://github.com/adamralph/min-ver-sandbox. (All the MinVer*.* artifacts are the binaries which result from building this repo.)

You'll need to package the dotnet publish output when/if you make this work for real. The sandbox repo doesn't have the dependencies.

One obvious problem is that <Exec ... ConsoleToMsBuild="true"> is picking up both stdout and stderr, even though the docs say that it should only contain stdout. All the lines which start with MinVer: are actually in stderr, and only the version number itself is in stdout.

Take a look at https://docs.microsoft.com/en-us/visualstudio/msbuild/exec-task?view=vs-2017. It says both standard error and standard output will be captured.

Another thing I've observed is, if I set  in a  in the MinVer target, it has no effect on the package version, so I guess the target needs to be injected somewhere in the pipeline other than BeforeTargets="BeforeBuild".

You'll also want to set PackageVersion property. Instead of VersionPrefix, it's also probably better to just use Version. It could also make sense to set some of the other assembly version properties, if you have different things you might want to have in there.

Yes, I believe that's an acceptable pre-requisite.

You'll need to package the dotnet publish output...

Thanks. FWIW, I switched the sandbox to that output in https://github.com/adamralph/min-ver-sandbox/commit/27df9e8bf4aa6f7ebbff28431ca6bae03326255d

Instead of VersionPrefix, it's also probably better to just use Version.

If possible, I'd still like to allow the use of VersionSuffix to set build metadata, as described in the quick start, so that's why I was favouring VersionPrefix. If that's not possible, then it's not the end of the world.

You'll also want to set PackageVersion property.

I was hoping to avoid having to set PackageVersion explicitly, since I don't set that anywhere currently. I was hoping that VersionPrefix could be set at the right time for it, and VersionSuffix, to flow into PackageVersion automatically, as they currently do.

It could also make sense to set some of the other assembly version properties, if you have different things you might want to have in there.

Right now I'm hoping to just replace the setting of VersionPrefix and nothing else, since that will pick up the major, minor, patch, and pre-release identifiers, and VersionSuffix can continue to be used for build metadata via environment variables set on the CI server. I guess the other thing that could be interesting is the commit ID, but currently SourceLink is doing that for me, and tacking it onto the end of what is coming out of VersionPrefix and VersionSuffix and putting that into AssemblyInformationalVersion.

You should also change your for BeforTargets to BeforeTargets="CoreCompile;GenerateNuspec"

Thanks. I've changed it to that in https://github.com/adamralph/min-ver-sandbox/commit/d08d4dbfc7ae2a0e2f8b3283d798137efe8d0567
So I guess the thing I'm still stuck on is working out which MSBuild incantations I need to get the version number out of stdout and into VersionPrefix, at the right time, so that everything else, i.e. putting it together with VersionSuffix, getting that into PackageVersion, allowing SourceLink to add the commit ID for AssemblyInformationalVersion, etc. all "just works". Whether this is achievable or not, I still don't know...

Sadly it looks like VersionSuffix can't be used in the way I was hoping. It can't just contain build metadata, since MSBuild adds a hyphen between VersionPrefix and VersionSuffix when constructing Version. So I guess setting Version is indeed the right thing to do.

I'm also not sure you'll be able to avoid setting PackageVersion since Version is being calculated.
It is set here: https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.targets#L28
But since that is in a top-level PropertyGroup, that means it's evaluated before you have a chance to set any version values in targets.

can continue to be used for build metadata via environment variables set on the CI server.

Since MSBuild takes all environment variables and turns them into properties, you could still do this by appending that property when you set Version.

But since that is in a top-level PropertyGroup, that means it's evaluated before you have a chance to set any version values in targets.

Aha, that explains it, thanks! Indeed, if I set PackageVersion in my custom target, that is used for the package. And if I inspect the assembly itself, the Version which I set in my custom target is being used for assembly version.

Since MSBuild takes all environment variables and turns them into properties, you could still do this by appending that property when you set Version.

I'd like to avoid giving MinVer knowledge of specific CI environments, but I guess this could be done the other way round: MinVer could look for an environment variable named MINVER_BUILD_METADATA.

Woot! I've got it working, but in a very hacky way. It's using a file to capture stdout: https://github.com/adamralph/min-ver-sandbox/commit/3b38e968e6c2cb049a25625ee0fe2d4eb4418b0d
I also threw SourceLink in there just to see how it behaves.
Another thing I've realised now is that Version cannot be set to the full version, with the pre-release identifiers. It has to be just the major.minor.patch, so the CLI tool will indeed have to output something richer than just a single version string.

Another thing I've realised now is that Version cannot be set to the full version, with the pre-release identifiers.

Why is that? When I was testing it earlier, I was able to do that just fine.

Try loading the assembly into ILSpy. It blows up. 😄
I guess ILSpy is making an assumption about the AssemblyVersion being of the form n.n.n.n, which may  not be a CLR-enforced thing, but I think it's still better to play by the conventions.

When I do that, everything looks fine. AssemblyVersion  is just the numerical portion, as I would expect.

Yeah, on closer inspection, the ILSpy exception stack trace suggests it might just be some other bug:
System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   at System.IO.Path.Combine(String path1, String path2, String path3, String path4)
   at ICSharpCode.Decompiler.DotNetCorePathFinder..ctor(String parentAssemblyFileName, String targetFrameworkId, String version, ReferenceLoadInfo loadInfo)
   at ICSharpCode.Decompiler.UniversalAssemblyResolver.FindAssemblyFile(AssemblyNameReference name)
   at ICSharpCode.ILSpy.LoadedAssembly.LookupReferencedAssemblyInternal(AssemblyNameReference fullName, Boolean isWinRT)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at ICSharpCode.ILSpy.LoadedAssembly.LookupReferencedAssembly(AssemblyNameReference name)
   at ICSharpCode.ILSpy.LoadedAssembly.MyAssemblyResolver.Resolve(AssemblyNameReference name)
   at ICSharpCode.Decompiler.TypeSystem.DecompilerTypeSystem..ctor(ModuleDefinition moduleDefinition, DecompilerSettings settings)
   at ICSharpCode.ILSpy.CSharpLanguage.DecompileAssembly(LoadedAssembly assembly, ITextOutput output, DecompilationOptions options)
   at ICSharpCode.ILSpy.TreeNodes.AssemblyTreeNode.Decompile(Language language, ITextOutput output, DecompilationOptions options)
   at ICSharpCode.ILSpy.TextView.DecompilerTextView.DecompileNodes(DecompilationContext context, ITextOutput textOutput)
   at ICSharpCode.ILSpy.TextView.DecompilerTextView.<>c__DisplayClass33_0.<DecompileAsync>b__0()

How are you seeing AssemblyVersion?

I'm using dotPeek.

OK, I just loaded it into ildasm and you're right, it is just the numeric part. Which makes sense, since you can also set a Version with pre-release identifiers, and the AssemblyVersion comes out correctly.
So I guess the next step is to find a less hacky way than piping stdout to a file and reading it back in.
Also I think this isn't going to work:

If your tags get into a mess and you can't find a way out, you can temporarily switch off MinVer and switch back to the old way of doing things by simply adding a Version element (or VersionPrefix and VersionSuffix elements) to your project. When you've figured out the problem, remove the element and MinVer will resume active duty.

I think MinVer will have to look for a specific property as an override, e.g. MinVerVersion.

I'd quite like the ability to have some MinVer log messages in the output, e.g.
  MinVer: Detected { Version: 1.0.0, Commit: 27df9e8bf4aa6f7ebbff28431ca6bae03326255d, Height: 3 }.
  MinVer: 4 commits checked.
  MinVer: Using { Version: 1.0.0, Commit: 27df9e8bf4aa6f7ebbff28431ca6bae03326255d, Height: 3 }.
  MinVer: Calculated 1.1.0-alpha.0.3.

But until now, no actual parsing is required. I'm only using the file because I can't isolate stdout in the Exec task. All the above log messages go to stderr.

FTR I found the bug in ILSpy. It didn't like when AssemblyInformationalVersion had spaces in it. It had spaces in it because MinVer.Cli.exe is doing a WriteLine() to stdout which results in a CRLF. Trimming the output fixed it.

This is what I currently have as a candidate for the package build folder: https://github.com/adamralph/min-ver-sandbox/blob/bc083585d4d9b8477b50065c7bd61743d905049d/min-ver-sandbox.csproj#L20-L43
It appears to be fully functional, and it matches the spec implied by the (updated) quick start and FAQ in the README. The only remaining ugliness I'm aware of is the piping of stdout through a file.

Oh, and I tested it on Linux and it worked perfectly.

The only remaining ugliness I'm aware of is the piping of stdout through a file.

Yeah, you'll definitely want to fix that up before shipping it!
Overall that is looking good. There are a couple other things that you'll need in there once you actually split it out into it's own targets file, but I can open a PR for those later as needed.

@bording I've pushed an alpha package which seems to be fully functional.
Putting aside the ugly stdout hack for a moment, do you know if there's anything else it needs?

props/targets files should add themselves to MSBuildAllProjects, to ensure any changes to them result in a new build. However, an upcoming change in MSBuild 16 makes this something you no longer want to do. That means you could add something like Microsoft/msbuild#1299 (comment) to both of the targets files.

That sounds like a good idea. Would you like to send a PR?

Since you aren't currently emitting a type that contains version information (to be able to access those values at runtime) you could consider conditioning the targets to not run as part of a design-time build.

What exactly do you mean by a "design-time build"?

That sounds like a good idea. Would you like to send a PR?

I should be able to do that.

What exactly do you mean by a "design-time build"?

Visual Studio runs a build behind the scenes for various reasons. When it does this it doesn't actually compile the code, but it does figure out what the inputs to csc would be. These are known as design-time builds. It's important to keep this as minimal as possible to avoid causing problems inside VS. If the targets you're adding don't actually have an impact on the compiler input, then you can condition them to be skipped in a design-time build.
Since these targets are only changing version properties, I would think it would be safe to skip them.

Putting aside the ugly stdout hack for a moment, do you know if there's anything else it needs?

Take a look at #45 which should solve this.

Thanks @bording, it sounds like suppressing the target for a design-time build is a good idea. Assuming you know how that's done, would you like to send a PR?

@adamralph I do and I will! 😄

FWIW I've added a checklist to the description of this issue.

One last thing, are you sure https://github.com/adamralph/min-ver/blob/master/MinVer/MinVer.targets#L24 is needed? It seems like that line could be removed and nothing would change. At that point either MinVerVersion has the correct value, or it needs the build metadata appended. It shouldn't need to be set again.

@bording thanks for looking into the design time build stuff. In that case, let's leave that for now. If you find out more then we can always re-open this issue or open a new one.
You're correct about that line in the targets. I think this was a badly edited copy-paste. I've fixed it in #54.

In the end I decided to spin off the design time build suppression into https://github.com/adamralph/min-ver/issues/55.

Full implementation (#55 notwithstanding) released in alpha 7.
Thanks @bording for all your help with this. It was invaluable!


Cannot disable master Jenkins node

In our org, we are running a Jenkins cluster where jobs run exclusively on the executor nodes and the master node just runs the web interface and schedules jobs on the executors.  We are trying to Chef-ify this setup.  However, there doesn't appear to be any supported way of disabling the master node.  Here's what I've tried so far:

jenkins_slave 'master' do
  action :offline
end

Result: nothing appears to change. Jobs can still be scheduled on the master node.

jenkins_slave 'master' do
  action :delete
end

Result: nothing appears to change. The master node still appears in the nodes list and jobs can still be scheduled on it.

jenkins_slave 'master' do
  action :disconnect
end

Result: nothing appears to change.  The master node is still online and jobs can still be scheduled on it.

jenkins_slave 'master' do
  executors 0
end

Result:
================================================================================
Error executing action `create` on resource 'jenkins_slave[master]'
================================================================================

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of "/usr/lib/jvm/java/bin/java" -jar "/tmp/kitchen/cache/jenkins-cli.jar" -s http://localhost:8080 -"remoting" -i "/tmp/kitchen/cache/jenkins-key" groovy /tmp/groovy20170516-18605-6b9iac ----
STDOUT:
STDERR: ERROR: Unexpected exception occurred while performing groovy command.
hudson.model.Descriptor$FormException: Invalid agent configuration for master. Invalid # of executors.
        at hudson.model.Slave.<init>(Slave.java:206)
        at hudson.model.Slave.<init>(Slave.java:155)
        at hudson.slaves.DumbSlave.<init>(DumbSlave.java:60)
        [rest of stack trace snipped]

Cookbook Trace:
---------------
/tmp/kitchen/cache/cookbooks/jenkins/libraries/_executor.rb:87:in `execute!'
/tmp/kitchen/cache/cookbooks/jenkins/libraries/_executor.rb:140:in `groovy!'
/tmp/kitchen/cache/cookbooks/jenkins/libraries/slave.rb:158:in `block in do_create'
/tmp/kitchen/cache/cookbooks/jenkins/libraries/slave.rb:157:in `do_create'
/tmp/kitchen/cache/cookbooks/jenkins/libraries/slave.rb:150:in `block in <class:JenkinsSlave>'

Resource Declaration:
---------------------
# In /tmp/kitchen/cache/cookbooks/cub_policy_sis_jenkins_master/recipes/default.rb

 11: jenkins_slave 'master' do
 12:   executors 0
 13: end
 14:

Compiled Resource:
------------------
# Declared in /tmp/kitchen/cache/cookbooks/cub_policy_sis_jenkins_master/recipes/default.rb:11:in `from_file'

jenkins_slave("master") do
  action [:create]
  retries 0
  retry_delay 2
  default_guard_interpreter :default
  declared_type :jenkins_slave
  cookbook_name "cub_policy_sis_jenkins_master"
  recipe_name "default"
  executors 0
  slave_name "master"
  usage_mode "normal"
  description "Jenkins slave master"
  remote_fs "/home/jenkins"
end

jenkins_slave 'master' do
  usage_mode 'exclusive'
end

Result: a new slave is created called "master" which appears separately from the real master node in the nodes list.

The following workaround seems to do the trick:
# resources/master_node.rb

property :config_path, String, default: '/var/lib/jenkins/config.xml'
property :executors, Integer, default: 2
property :executors_xpath, String, default: '//numExecutors'
property :name, String, name_property: true

load_current_value do
  require 'nokogiri'
  xml = Nokogiri::XML(::File.open(config_path))
  executors xml.at_xpath(executors_xpath).content.to_i
end

action :update do
  converge_if_changed do
    require 'nokogiri'
    xml = Nokogiri::XML(::File.open(config_path))
    xml.at_xpath(executors_xpath).content = executors
    ::File.open(config_path, 'w') { |f| f.write(xml.to_xml) }
  end
end

# recipes/default.rb

my_cookbook_master_node 'master' do
  executors 0
  notifies :restart, 'service[jenkins]', :delayed
end

@Poohblah It is possible to set the number of executors to 0 or you can set the master to "EXCLUSIVE" mode aka only specific labels will run on it (which can be useful for "flyweight" jobs that don't actually require resources and are just for tracking the state of a set of downstream jobs). In our case we use Groovy to call the methods rather than hacking at the config.xml with Ruby, this is much safer and you get warnings if you call the wrong method or use an incorrect/invalid value.
If you would like an example ping me and I'll see about digging it out of our code.

@espoelstra thanks.  When I created this issue a year ago, I was new to Jenkins and unfamiliar with its Groovy/Java API.  Now I am much more familiar with it and I have learned that the master node can be easily disabled with a one-liner Groovy script:
Jenkins.instance.setNumExecutors(0)

I just happen to come from Unix/Linux administration land where almost everything is configured via text files and not APIs, so that was the approach I was most familiar with :)


unable to pull images

Hi, hopping the team is safe under the codiv-19 pandemic, i would like to report that i am unable to pull any image from
dockerhub.azk8s.cn
or
gcr.azk8s.cn
for a while now, the error is:
Error response from daemon: error parsing HTTP 403 response body: invalid character '<' looking for beginning of value: "\r\n403 Forbidden\r\n<body bgcolor="white">\r\n403 Forbidden\r\nnginx/1.14.0 (Ubuntu)\r\n\r\n\r\n"
Best regards.

Sorry, currently *.azk8s.cn could only be accessed by Azure China IP, we don't provide public outside access any more. If you have such requirement to whitelist your IP, please contact<EMAIL_ADDRESS>provide your IP address, we will decide whether to whitelist your IP per your reasonable requirement, thanks for understanding.


Resolution of images in training

Hi,
I saw your code resizes the input images to 3:2. Can I use images with different resolution ratio to train the model? Do I need to revise some code?
Thanks

Hi, yeah you definitely can use another resolution but must be 32*n since there are downsampling operations in the feature extraction


MUMMNG-1667: Fix font on Help page from Font Awesome to Helvetica

Good catch @keirserrie. Removed font style so the Help page takes Helvetica, not FontAwesome.

heh :+1:

looks good :+1:

What, no comic sans? :+1:

sweet :+1:


Unable to checkout version tags?

Hello, apologies if this question is somewhat dumb as I am new to buildkite. I am trying to use this ecr plugin, and for some reason it is unable to git checkout any of the version tags. The error I am getting is as follows:
# Plugin "github.com/buildkite-plugins/ecr-buildkite-plugin" will be checked out to "/var/lib/buildkite-agent/plugins/github-com-buildkite-plugins-ecr-buildkite-plugin-2-6-0"
--
# Switching to the temporary plugin directory
$ cd /var/lib/buildkite-agent/plugins/github-com-buildkite-plugins-ecr-buildkite-plugin-2-6-03887800207
$ git clone -v --recursive -- https://github.com/buildkite-plugins/ecr-buildkite-plugin .
Cloning into '.'...
POST git-upload-pack (175 bytes)
POST git-upload-pack (gzip 1402 to 662 bytes)
remote: Enumerating objects: 653, done.
  | remote: Counting objects: 100% (99/99), done.
  | remote: Compressing objects: 100% (57/57), done.
  | remote: Total 653 (delta 43), reused 74 (delta 32), pack-reused 554
  | Receiving objects: 100% (653/653), 161.76 KiB \| 12.44 MiB/s, done.
  | Resolving deltas: 100% (296/296), done.:   0% (0/296)
# Checking out `2.6.0`
$ git checkout -f 2.6.0
error: pathspec '2.6.0' did not match any file(s) known to git

My buildkite steps are written as follows:
steps:
  - label: "build-and-push-ECR"
    command: "build_and_push.sh"
    plugins:
      - ecr#2.6.0:
          login: true
          account-ids:
            - "public.ecr.aws"

I've tried both #2.6.0 and #2.7.0, but both fail to git checkout.

Hi @onlywei! sorry that it took us so long to respond 🙇🏻♀ In case you didn't fix the issue (and for future travellers), when referring to the plugin by using only the name you need to specify the exact version name. So in this case (using the latest version) it will be:
steps:
  - label: "build-and-push-ECR"
    command: "build_and_push.sh"
    plugins:
      - ecr#v2.8.0:
          login: true
          account-ids:
            - "public.ecr.aws"

Note the v before the version number 🙂
Cheers,


Large simulation results are not being stored

Example:

COMBINE archive: lorenz.zip
Results: 61b29b45c882fd4f8accfb1b / lorenz.sedml / report

Initial observation: our results endpoint in our API returns all zeros
Further investigation

The generated h5 results file is 3.3 MB
Our API stores and retrieves the generated h5 file correctly
hsget returns all zeros
This, hsload must not be working as expected
The log for 61b29b45c882fd4f8accfb1b contains these messagesERROR 2021-12-09 19:12:58,475 utillib.py:531 ERROR : failed to copy dataset data : Request Entity Too Large

...ERROR : failed to copy dataset data : Request Entity Too Large

Evidently, hsload is failed, but no error was raised
I requested better error handling by hsload in HDFGroup/h5pyd#111

Source of the issue

The HSDS max_request_size appears to be 100 MB. https://github.com/biosimulations/deployment/blob/main/config/dev/hsds/config.yaml#L48
The nginx client_max_body_size also appears to be 100MB. This appears to be set at  https://github.com/HDFGroup/hsds/blob/master/nginx.tmpl#L384

Either these values are too low, or they aren't being set.

@bilalshaikh42 the configuration for the HSDS appears to need to be changed to enable large results

I'll investigate this
On Fri, Dec 10, 2021, 11:15 AM Jonathan Karr @.***>
wrote:

@bilalshaikh42 https://github.com/bilalshaikh42 the configuration for
the HSDS appears to need to be changed to enable large results
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/biosimulations/biosimulations/issues/3784#issuecomment-991103608,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHX4FIEEAFO4BTJ3URY656TUQIRSFANCNFSM5JZMYAOA
.

Looks good


How to write a stick bottom bar under page (not BottomBar like Android tab)?

I know this is a my problem, but I really can not found the suitable method to do something like this:

How to do this bottombar in flutter anyway?

not BottomBar like Android tab

Why not?

the bottombar view are limited to some stack consist of a icon and a text, however I wanna custom the layout inside bottombar, I want only text which center horizontal and vertical direction.

You can let the bottom bar have any UI pattern you want if you just create a Stack where your topmost item is just Aligned to the bottom. You can have a SizedBox inside that then has any arbitrary child.


Typings Typings Typings

Would be amazing to have more verbose typings for this library due to Restangular's unique method chaining as well as other things.

Hi @dreadbeard, completely agree. Typings are already included into the list of ng2-restangular improvements.


ReadMode usage ?

since we can't use UseOutdated anymore.

It looks like I have completely misunderstood how the ReadMode flag worked and implemented incorrectly. I will add the TableOpts struct.
Thanks for pointing out the issue.

ReadMode can be used like this, I have removed the incorrect options in RunOpts and ExecOpts:
cursor, err := r.Table("test", r.TableOpts{
	ReadMode: "outdated",
}).Run(session)


Bump versions further

For compatibility with other snaplets

Thanks. Released as https://hackage.haskell.org/package/snaplet-sass-<IP_ADDRESS>


Disable sound

Hi,
There is any way to disable sound please ? Caus' i'm doing other things while the bot is running and I don't think it's important to have the sound when the bot buy something..
Thanks
Regards

just mute the tab in chrome. right-click the tab and mute.

just mute the tab in chrome. right-click the tab and mute site.

Uh, good idea mb.

comment line


Support Decimal for Sqlite backend

As far as I can see, sqlx cannot currently handle the Decimal type together with the sqlite backend.
Would it be acceptable to support this via a string representation of Decimal? I am willing to send a PR if that helps :)

Also interested in this, a string representation would also fit the decimal representation of the official decimal extensions.


Bootcamp2021 Faisal Rahman Todo Project 1

Project 1: Todo List - From Adam Freeman's Essential TypeScript 4
Bootcamp 2021
Syed Faisal ur Rahman

Good Work, keep it up. One improvement you need is always use .gitignore and Readme in your projects

Thanks for the review and useful advice.
Jazak Allah


Container_name not populated for system stuff in GKE endpoint

cc: @a-robinson @piosz @fgrzadkowski

fixed by #1023

ref #997


1.21 support

Is your feature request related to a problem? Please describe.
So I wanted to play Minecraft Java 1.21 with my friends on the same PC. So far I got multiple instances with their own Microsoft account and a server, but I need controller support.
Describe the solution you'd like
I would like to have a 1.21 version of Midnight Controls.
Describe alternatives you've considered
Using the Controlify mod. It has 1.21 support but there are two main issues:
•Right stick doesn't work when window is out of focus.
•Only language supported right now is English.
Additional context
I think that TeamMidnightDust is already working on it and this is just a reminder.

agreed, we need 1.21 support

Thanks!


Add user mx

Username: mx
GitHub ID: KevinMX
Need more fire power!

Seems someone changed his username and caused CI to fail xD

Seems someone changed his username and caused CI to fail xD

indeed. never mind. I'll fix.


Automated Package Upgrade

:tada: This PR is included in version 9.0.48 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


merge from arlac77/template-github-action,arlac77/template-kronos-component

package.json

chore(deps): add ^13.0.2 remove ^13.0.1 (devDependencies.documentation)

Codecov Report

Merging #799 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #799   +/-   ##
=======================================
  Coverage   28.94%   28.94%
=======================================
  Files           1        1
  Lines          76       76
  Branches        1        1
=======================================
  Hits           22       22
  Misses         54       54

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 353c246...f0a5548. Read the comment docs.


[5438] Update HESA IDs for Roehampton trainee records

Context
https://trello.com/c/jmJIX9el/5438-update-hesaids-for-roehampton-trainee-records
Changes proposed in this pull request

Data migration to change the HESA ID for 54 trainees

Guidance to review

Tested locally - no issues

Important business

[ ] Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?
[ ] Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?
[ ] Do we need to send any updates to DQT as part of the work in this PR?
[ ] Does this PR need an ADR?

NB: Please notify the #twd_data_insights team and ask for a review if new fields are being added to analytics.yml

 Update HESAIDs for Roehampton trainee records


FIX: build warning - cast from pointer to integer of different size

See PR #92

Thanks! Unfortunately this may be more complicated than originally assumed. <stdint.h> isn't available until C99, and this library is targeting ANSI C, meaning that header won't always be available on all supported systems. Some other PRs are adjusting which headers are included in which places as well, such as #109, so perhaps once that change is merged it will be safe to rebase this and merge it.

Note that the library already includes header <inttypes.h>  if json_int_t is not defined:
#ifndef json_int_t
   #ifndef _MSC_VER
      #include <inttypes.h>

and <stdint.h> on Windows:
#ifdef _MSC_VER
   #ifndef _CRT_SECURE_NO_WARNINGS
      #define _CRT_SECURE_NO_WARNINGS
   #endif
   #include <stdint.h>

Both headers are C99, not ANSI-C. But yes, it's quite possible to define json_int_t outside the library, so I agree the library is still ANSI C, except for a couple platform-dependent portability tricks.

Note that function json_alloc expects unsigned long anyway:
static void * json_alloc (json_state * state, unsigned long size, int zero)

Eventually you shall cast to unsigned long.
This tells me something's wrong here. I might be missing something here, but why would the size of the allocation be a multiple of the value of a pointer?
            values_size = sizeof (*value->u.object.values) * value->u.object.length;

            if (! (value->u.object.values = (json_object_entry *) json_alloc
                  (state, values_size + ((unsigned long) value->u.object.values), 0)) )

It should be a multiple of the size of a pointer! For example, for array we simply have:
            if (! (value->u.array.values = (json_value **) json_alloc
               (state, value->u.array.length * sizeof (json_value *), 0)) )

It's because there is something hacky in there. In the first pass, the values pointer field is used as an integer to store the length of all of the object names together. You can see this on line 423:
                 if (state.first_pass)
                    (*(json_char **) &top->u.object.values) += string_length + 1;
                 else
                 {
                    top->u.object.values [top->u.object.length].name
                       = (json_char *) top->_reserved.object_mem;

                    top->u.object.values [top->u.object.length].name_length
                       = string_length;

                    (*(json_char **) &top->_reserved.object_mem) += string_length + 1;
                 }

Weirdly it casts it to a json_char* to add to it rather than an unsigned long or a size_t. I guess that's just a mistake. Then, in the second pass, it interprets it as an unsigned long to allocate enough space for all of the names together, in the fragment of code you found:
        values_size = sizeof (*value->u.object.values) * value->u.object.length;

        if (! (value->u.object.values = (json_object_entry *) json_alloc

              (state, values_size ///// <-- enough memory for the json_value objects

                 +

             ((unsigned long) value->u.object.values ///// <-- enough memory for the names of the objects

          ), 0)) )

The explicit way to describe what is happening would be with a union:
union {
    json_object_entry *values;
    size_t _reserved_names_len;
}

I guess I didn't do that because in ANSI C unions have to be named, so json->u.object.values would have to become json->u.object.u.values or something.
So to fix this I think the options would be:

Make it a union in json_value - makes the public API ugly
Add another reserved field to json_value for the names length. This would increase the size of every json_value by 1 pointer.
Make a json_value_internal defined in json.c which is binary compatible with the public json_value, but with the union.
Create a macro for reinterpreting the pointer field as a size
Keep the kludge and fix the casting somehow

I think option 3 is the cleanest? But any suggestions welcome.

Thanks for the explanation. It's probably difficult to totally remove the warning when retrieving an integer from a larger pointer, unless a union is used to store the different types.

I do not find 1 that bad, especially since you have been using the very neat (short) name u for unions. But it does expose a field that is used only internally, if I understand you correctly.
Option 4 probably won't help, a macro cannot remove a warning that existing code cannot remove.
Option 5 looks good, but I have no clue how to achieve it.
If the fields of json_value are not used at the same time, option 2 will use extra space for no reason.
If I understand you correctly, option 3 is similar to 1, except the extra union will not be visible in the API. json_value_internal * will be cast to json_value * and back. Best option indeed.

As a temporary workaround for v1.1.1 we could suppress the warning by using the uintptr_t cast as long as __STDC_VERSION__ is defined and high enough, and leave the original code otherwise, then in v1.2.0 we can try one of the other approaches. Thoughts?

I'm certain approach 3 is the good one, but yes, such a change suits version 1.2.0, not a patch version such as 1.1.1.

And of course, it's OK to use uintptr_t and <stdint.h> if __STDC_VERSION__ >= 199409.

@ChromaticIsobar How to reproduce the compiler warning?
I do not see this warning on a 64-bit Ubuntu 18.04 machine, even with -pendaticor-Wall,:
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Do I need a 32-bit machine?

@ChromaticIsobar Does #133 help fix the issue you're trying to fix?

@DimitriPapadopoulos I'll be away from work for a week, so I won't be able to answer before the 6th of September

How to reproduce the compiler warning?
I do not see this warning on a 64-bit Ubuntu 18.04 machine, even with -pendatic or -Wall:
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Do I need a 32-bit machine?

The warning only occurs when compiling for 64-bit architectures (either x86_64 or ARM64) when unsigned long is 32-bits instead of 64-bits. So, typically you would encounter this warning when targeting Windows. For example, MSVC has C4311 enabled by default: https://gcc.godbolt.org/z/8Yo4Pjc3f
warning C4311: 'type cast': pointer truncation from 'void *' to 'unsigned long'

To get a similar warning for clang or gcc you would have to target Windows 64-bit as that is what causes unsigned long to be 32-bits, and you may have to explicitly enable -Wshorten-64-to-32.

I confirm what @LB-- said: this warning occurs when targeting 64-bit Windows.
I can reproduce the warning on my Ubuntu 16.04 machine using the x86_64-w64-mingw32-gcc compiler (version 5.3.1)

Thank you @ChromaticIsobar. I won't have time to cross-compile to test that in the near future, could you perhaps check whether #133 helps in your case?

It does. It took a little because those changes caused stdlib.h not to be included and I had to add it in all sources that needed it.
But now it does compile!

Do I get it right that <stdlib.h> is required by your own sources, not by json-parser itself?

And actually this change has not removed <stdlib.h>, has it?

Do I get it right that <stdlib.h> is required by your own sources, not by json-parser itself?

That's correct
Before #133 I included json.h, which in turn included stdlib.h
Now, json.h doesn't include stdlib.h anymore (but it includes stddef.h)
https://github.com/DimitriPapadopoulos/json-parser/blame/5a1fc1442a01ac5f4471931a59b8bee799f30c32/json.h#L47
So, I had to add the #include in my sources

Right, while you should always include <stdlib.h> yourself if you use definitions from that header, that's sort of a regression. Yet I am in favour of that regression, because the typical use is programmers including json.c and json.h directly in their projects, so that's something they should be able to handle, liek you.

I totally agree

Do you want me to close this PR in favour of #133 ?

My plan currently is this:

For v1.1.1, I will merge this PR with slight changes so that uintptr_t is only used if it's available, and otherwise the original code remains.
For v1.2.0, this will be obsoleted by #133

The goal is to at least silence the warning for most people ASAP before engaging in a more drastic change for the sake of silencing the warning in C89. Any objections to this plan?

Oops. Well, the PR is a bit of a mess now, but the relevant changes can be seen in b10ff617523f0cabf27ec7278c3bfb4bf265fe6f - I guess now it just handles the edge case where size_t and uintptr_t aren't the same size...


path_mapping change to support plotly (and other HTML content)

I wanted to find a way to get a plotly chart into the application.  So I did a hack to taipy/gui/server.py that works as follows:

In the path_mapping argument to Gui, instead of mapping a path to a directory, you can map a path to a callable.  The callable should have the signature my_callable(state: State, path: str) -> BytesIO`
The callable can return any HTML content in an open BytesIO object  that is dynamically generated, including content that has Javascript inside.
You can then create an HTML iframe that references the path prefix, and it should have as its last component the ID of the state (obtained via get_state_id().  If you want the content to be truly dynamic, the src URL in <iframe> needs to change (otherwise the browser caches it), so you can use a partial that returns the iframe with an updated src URL.

Obviously, this technique would need to be documented, or maybe you want to use it as a starting point to support Plotly (or other dynamic HTML) content.  I have no idea what kind of tests should be used to test this feature.
I should note that I couldn't figure out how to just convert the HTML from plotly into XHTML, because the plotly HTML has Javascript inside, and that can't be parsed due to the presence of things like "<" and "&" (and maybe other characters)
I'm open to discussion if there are other things you'd like me to do to this.  Or maybe you have an alternate solution.  And I might be missing something with respect to whether this would work in a mutli-session context.
Here is an example that you can run using this PR (expand the details):

from datetime import timedelta
from datetime import datetime as dt
import time
from io import BytesIO

from taipy.gui import Gui, Html, State, get_state_id
import plotly.express as px
from plotly.io import to_html

# This will contain the string of HTML that will be the source included in the
# iframe
html_out = "placeholder"

# This is the default height.  It's also possible to parse the height out of the
# generated HTML using BeautifulSoup (or can get it from the plotly figure)
DEFAULT_HEIGHT = "500px"

# We will illustrate that changing this value changes the plot
curval = 3

# This is the last time that an update was done
last_update = dt.now()

# This indicates whether the first graph has appeared.
initialized = False

def dynamic_file_name(state: State) -> str:
    # This is the name of the source referenced in the iframe.
    # The prefix "plotly" is used in the path_mapper
    # Note that the URL has to have a "." in it due to how taipy works
    # The URL has the current date/time to force the browser to not cache
    # The final segment of the URL is the ID of the state
    return (
        "plotly/plotly.htm/"
        + dt.now().strftime("%Y%m%d%H%M%S%f")
        + "/"
        + f"{get_state_id(state)}"
    )

def get_fig_html(curval: int) -> str:
    # This can be any Plotly graph.  Note that the parameters
    fig = px.line(x=["a", "b", "c"], y=[1, curval, 2], title=f"sample figure {curval}")
    # The parameters `include_plotlyjs="cdn"` tell Plotly to have a reference in the
    # HTML to download the plotly javascript.  The `full_html=False` tells plotly that we
    # just need a "<div>" to embed - not a full page, since it will go in an <iframe>
    html_plotly = to_html(fig, include_plotlyjs="cdn", full_html=False, default_height=DEFAULT_HEIGHT)  # type: ignore
    return html_plotly

def update_fig(state: State, vname: str, value: int):
    state.curval = value

    state.html_out = get_fig_html(value)

    # There is a timing issue, so if we were asked to update the figure within 0.5 seconds
    # we wait to do the update
    curtime = dt.now()
    difftime: timedelta = curtime - state.last_update
    if difftime < timedelta(seconds=0.5):
        time.sleep(0.5)

    filename = dynamic_file_name(state)

    height = DEFAULT_HEIGHT

    # Here is where we create the iframe that taipy will insert, with our dynamically
    # created filename
    html_string = f'<iframe src="/{filename}" height="{height}" width="100%" style="border:none;" scrolling="no"></iframe>'

    state.last_update = curtime
    state.partial.update_content(state, html_string)

def get_fig_fp(state: State, path: str) -> BytesIO:

    # This simple function just has to put the content into `BytesIO` .  The
    # server will call this function, passing the state so that a reference to
    # the dynamic content can be passed back to the server
    output = BytesIO()
    output.write(bytes(state.html_out, "utf-8"))

    return output

def on_navigate(state: State, page_name: str) -> str:
    # This is needed so the initial graph appears, but just once, since
    # on_navigate gets called multiple times.
    if not state.initialized:
        update_fig(state, "curval", state.curval)
    state.initialized = True
    return page_name

# The page will have a slider the user can change, a text field showing the value
# and the chart

page = """## Test

<|{curval}|slider|min=0|max=100|on_change=update_fig|>

Current Value: <|{curval}|>

<|part|partial={partial}|>

"""

# Note the use of `path_mapping` here to map any URL with "plotly" as the directory
# to our function to be called to provide that content.
gui = Gui(path_mapping={"plotly": get_fig_fp})
gui.add_page("main", page)
partial = gui.add_partial(Html("placeholder"))

gui.run(
    async_mode="threading",
    title="pathmap Demo",
    debug=True,
    use_reloader=True,
)

Here's the resulting display:

Thank you, Irv! It is certainly a very interesting PR to talk about!

@Dr-Irv We created a new issue to handle your request #669 .


wyoming (1.1.0 -> 1.2.0), wyoming-piper (1.2.0 -> 1.3.2), webrtc-noise-gain (init), wyoming-openwakeword (init)

Description of changes
The openwakeword component is new, need to research it and write a module. Integration happening here: https://github.com/home-assistant/addons/pull/3228

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Managed to run wyoming-openwakeword and connect it to home-assistant using the wyoming integration.

Failing builds are due to jax tests segfaulting the python interpreter. Trying to address this in #258122.


feat(userdb): Add metadata per user via DB drivers

Local BBolt impl sets for each user gets one bucket identified by userid
Signed-off-by: Bogdan BIVOLARU<EMAIL_ADDRESS>
What type of PR is this?

Which issue does this PR fix:
What does this PR do / Why do we need it:
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:

Automation added to e2e:

Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Superseded by https://github.com/project-zot/zot/pull/1317.


suggestion: link to advanced search near simple search box

I am always surprised how many people say they dont use the advanced search. Maybe they cant find it?
should we have a link to the advanced search near the simple search?

I think this is a good idea....
I also still don't think this is really a "search" though.
Labelling it as an "advanced search" is part of the problem.
You can use it to retrieve entries, but it's primary purpose is not to find things, and I don't know anyone who would use it to locate a specific entry.
It's primary function is to combine lists (OK, you need to find the list first, but that's indirectly upstream of the   function of the tool)
As a user, as it is currently Iabeled I would never go to it instead of the "simple search" if I found what I wanted, because the way it is curently labeled gives me no clue that I can use it to build complex queries to mine the data.

Adding "advanced search" button  close  to the search box would be good though.
Maybe a mouse over could say
"retrieve, upload and combine lists" or some indication what you can do.

Should we add another link to the 'advanced search" ?

Should we add another link to the 'advanced search" ?

I think an extra link will make things more cluttered.

OK we can try to make it more prominent next time the front page is rearranged


[ENH] Very inspired first federation prototype

All in a day's work!

:rocket: PR was released in v0.1.0 :rocket:


Also handle different libvirt service name

On Debian/Ubuntu, for reasons that are unclear, libvirt has been
split into two services, libvirt-bin and libvirt-guests. Add support
by checking for libvirt-bin when starting the daemon inside mkcloud
by looking for the service file.

@s-t-e-v-e-n-k you should install openSUSE :)

+1 though it would be nice if there was a way to tell systemd that "libvirt" is an alias for "libvirt-bin" so that it applies in all places instead of patching every individual script interacting with systemd/libvirt.

+1 though it would be nice if there was a way to tell systemd that "libvirt" is an alias for "libvirt-bin" so that it applies in all places instead of patching every individual script interacting with systemd/libvirt.

there is: https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Alias=

+1

@toabctl Ahh, excellent. I'm happy to close this PR, and just change the libvirt-bin service to add an alias like you've pointed out.

The Alias=libvirtd.service works great, closing this PR.


Received status code 403 from server: Forbidden

I have followed the instructions and added wavebeans into my gradle project.
val wavebeans_version = "<IP_ADDRESS>"

repositories {
    mavenCentral()
    maven {
        name = "Bintray WaveBeans"
        url = uri("https://dl.bintray.com/wavebeans/wavebeans")
    }

}

dependencies {
    implementation ("io.wavebeans:exe:$wavebeans_version")
    implementation ("io.wavebeans:lib:$wavebeans_version")
    implementation ("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}

However, building gradle fails with the following message:
Could not GET 'https://dl.bintray.com/wavebeans/wavebeans/io/wavebeans/exe/<IP_ADDRESS>/exe-<IP_ADDRESS>.pom'. Received status code 403 from server: Forbidden

Hi @Josef-Vonasek,
Yes, the bintray stopped operating as a whole, I need to migrate to another Maven repository. What version specifically you intended to use? <IP_ADDRESS> or you are fine with the latest one 0.3.0? I would need to publish certain ones.

Actually, 0.3 is fine. I thought <IP_ADDRESS> was the latest, as it was the version of the packages.

The most recent version is now 0.3.1, but functionally it is no different from 0.3.0. Both versions are in Maven Central now.


epoch and training accuracy are always 0

I have a strange problem when I run python train_nets.py --class_number=85742 ,the epoch and training accuracy are always 0,only the reg_loss is decreasing,but accuracy on lfw is incresing.Is there someone tell me how to solve it?Thank you very much!
Do you have solve this problem? thanks!

i use https://pan.baidu.com/s/1S6LJZGdqcZRle1vlcMzHOQ#list/path=%2F  dataset to train and validate, will this problem caused by different dataset?

i use https://pan.baidu.com/s/1S6LJZGdqcZRle1vlcMzHOQ#list/path=%2F , listed in README, dataset to train and validate, will this problem caused by different dataset?

keep running and epoch will change, but accuracy is still always 0 and I don't konw why. Maybe there is something wrong with code.

epoch 0, total_step 5850, total loss is 22.87 , inference loss is 22.83, reg_loss is 0.04, training accuracy is 0.000000
epoch 0, total_step 5900, total loss is 24.14 , inference loss is 24.10, reg_loss is 0.04, training accuracy is 0.000000
epoch 0, total_step 5950, total loss is 24.09 , inference loss is 24.05, reg_loss is 0.04, training accuracy is 0.000000
epoch 0, total_step 6000, total loss is 23.81 , inference loss is 23.77, reg_loss is 0.04, training accuracy is 0.000000
Iteration 6000 testing...
thresholds max: 0.12 <=> min: 0.07
Accuracy: 0.853+-0.020
Validation rate: 0.15367+-0.01683 @ FAR=0.00100
fpr and tpr: 0.965 0.986
thresholds max: 0.12 <=> min: 0.07
Accuracy: 0.825+-0.012
Validation rate: 0.09743+-0.02178 @ FAR=0.00114
fpr and tpr: 0.969 0.987
thresholds max: 0.12 <=> min: 0.07
Accuracy: 0.628+-0.011
Validation rate: 0.00486+-0.00339 @ FAR=0.00114
fpr and tpr: 0.966 0.973
thresholds max: 0.12 <=> min: 0.07
Accuracy: 0.667+-0.010
Validation rate: 0.01267+-0.00879 @ FAR=0.00100
fpr and tpr: 0.969 0.978
epoch 0, total_step 6050, total loss is 24.41 , inference loss is 24.37, reg_loss is 0.04, training accuracy is 0.000000
epoch 0, total_step 6100, total loss is 23.74 , inference loss is 23.70, reg_loss is 0.04, training accuracy is 0.000000
this is my current result, because my server crushed twice, so my epoch is 0 and total loss is about 24 rather than a bigger one, e.g. 60.
As you see, the accuracy is incresing and loss is decresing while keep running, so maybe there are problem with the evalation of training accuracy.
As long as the validation accuracy is incresing, i think we do not need worry too much.
But if the training accuracy can back to normal, i will pleasure to fix it.

At the beginning, accuracy is 0 that is normal, for the class number is so large and loss is still so big that lease network hardly classify correctly. With the test validation rate increase to bigger than 0.6 you will find that trainning acc will not be aways 0.

At the beginning, accuracy is 0 that is normal, for the class number is so large and loss is still so big that lease network hardly classify correctly. With the test validation rate increase to bigger than 0.6 you will find that trainning acc will not be aways 0.

What is the final training acc you got? I could only get around 20% for around 25 epoch

@siyiding1216  my problem too, did you fix it?


Outdated screenshots

The screenshots in https://cap.cloud.sap/docs/plugins/#attachments and the git repo itself are outdated.
As the UI control doesn't have the icon anymore, it looks different now

@muskansethi1 : Is this done already?

@RamIndia It is completed.
@DanSchlachter Thank you!
Closing this issue now.


Bug Report : Unable to create policy for custom landing zone

I've tried to assign one custom policy to a customs landing zone, i've followed this guide Enforce-RG-Tags. When i run terraform plan i obtain this error:
╷ │ Error: reading Policy Definition "Enforce-RG-Tags": policy.DefinitionsClient#GetAtManagementGroup: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code="PolicyDefinitionNotFound" Message="The policy definition 'Enforce-RG-Tags' could not be found." │ │   with module.enterprise_scale.data.azurerm_policy_definition.external_lookup["/providers/Microsoft.Management/managementGroups/ROOT/providers/Microsoft.Authorization/policyDefinitions/Enforce-RG-Tags"], │   on .terraform/modules/enterprise_scale/locals.policy_assignments.tf line 167, in data "azurerm_policy_definition" "external_lookup": │  167: data "azurerm_policy_definition" "external_lookup" { │ ╵
Seems that the module try to search the policy in the Root Mgmt group.

Can you replace the policy definition id in the assignment with the correct one?

It is as below
       "policyDefinitionId": "${root_scope_resource_id}/providers/Microsoft.Authorization/policyDefinitions/Enforce-RG-Tags",
@matt-FFFFFF

So replace that with the correct resource id for the definition that you want to apply

Below is my project setup, I am not sure what exactly the resource id should be that policy assigns to all the custom landing zones ?

Hi,
Is there a common parent management group in which you can place the policy definition?
You'll need an archetype that just contains the definition.
Then you'll need another archetype that contains the assignment that references said definition.

I have refactored everything and post the issue at https://github.com/Azure/terraform-azurerm-caf-enterprise-scale/issues/998


Added Classplus

Congratulations on making a pull request!
Please make sure you check all the items.

[x] The numbering of the company that you added starts with 1.
[x] You have increased the Total Companies Added count.

Fixed issue - Add classplus #183

Hey @Kaustubh-Natuskar , Checkout this PR .


Limit the number of addresses announced.

This matches the Bitcoin Core commit https://github.com/bitcoin/bitcoin/commit/12a49cac0a561ada277e93549cae26a3123a6023

Package names should be all lowercase per effective Go guidelines.  Also, please rebase this to the latest master.
After that, looks good.


 The rest of my schedules from prior semesters are still present. I found the schedule link in my history, but going to the page returns "Invalid Schedule ID".

Hey @Mehvix! Unfortunately, we ran into some issues recently which might have caused data from the past 2 months to be lost. We are working to try and get this data back, but we apologize for the inconvenience in the meantime! Please reach out to us on Discord for more information.


Installing an extension that defines extra types results in types not being found

I have the following configuration to install postgis for me:
options.Storage.ExtendedSchemaObjects.Add(new Extension("postgis"));

And the database is created with the extension just fine with this:
await store.Storage.ApplyAllConfiguredChangesToDatabaseAsync();

However, in order to use the types that the extension provides, I'm need to manually do the following:
using (var conn = store.Storage.Database.CreateConnection())
{
    conn.Open();
    conn.ReloadTypes();
    conn.Close();
}

or I get the error:
The NpgsqlDbType 'Geometry' isn't present in your database. You may need to install an extension or upgrade to a newer version.

This is a little clunky, it would be nice if Marten did this for me.
Additionally, if I've set up multi-tenancy via
options.MultiTenantedWithSingleServer(masterConnectionString);

Then the extension is never created - it looks like SingleServerMultiTenancy is never applying any of the extended schema objects defined earlier.
I've worked around this with my own implementation of ITenancy which adds the following to buildDatabase, but it's pretty clunky as well (I'm sure I can use the migrator in here somehow, but this gets me out of the weeds):
    protected override MartenDatabase buildDatabase(string databaseName, string connectionString)
    {
        var connectionFactory = new ConnectionFactory(connectionString);
        var martenDatabase = new MartenDatabase(_options, connectionFactory, databaseName);

        // TODO: We can probably use the migrator here or something
        using var conn = martenDatabase.CreateConnection();
        conn.Open();
        conn.Execute("CREATE EXTENSION IF NOT EXISTS \"postgis\";");
        conn.ReloadTypes();
        conn.Close();

        return martenDatabase;
    }

I have put a gist up with this scenario here: https://gist.github.com/xwipeoutx/39e55935e36361095e5e2dc32b711c06
Proposed solution:

Make sure any schema changes that could cause a change to the ADO types call connection.ReloadTypes()
Have new databases created via SingleServerMultiTenancy have the extended schema objects applied to them, including reloading the types above

@xwipeoutx that sounds fair to me. Would you be open to contributing to add that? We could try to guide you.

@xwipeoutx, regarding

Have new databases created via SingleServerMultiTenancy have the extended schema objects applied to them, including reloading the types above

See the PR: https://github.com/JasperFx/marten/pull/2637
Regarding ReloadTypes scenario, I need to do more investigation.


DOCS-8198-CONN-scripting-examples-kt

scripting-module-examples.adoc

Closing as new PR https://github.com/mulesoft/docs-connectors/pull/812


Update setup.py

rename ADXE* to AXIS*

@aismann you do same job as @DelinWorks #730, right?

I belive.  ;) Iwill delete it


mysql数据库，distrubted by关键字支持duplicate函数解析

适配mysql数据库场景下，建表语句包含distrubuted by duplicate()。写法类似hash函数。
String sql = "CREATE TABLE `test_user`\n" +
                "(\n" +
                "    `id`          int(11)     NOT NULL AUTO_INCREMENT,\n" +
                "    `account`     varchar(70) NOT NULL COMMENT '账号',\n" +
                "    `user_name`   varchar(60) NOT NULL COMMENT '姓名',\n" +
                ") DISTRIBUTED BY DUPLICATE(g1,g2);";

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.zhanglu08 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

请补充TESTCASE并且签署SLA

请补充TESTCASE并且签署SLA

提交代码使用错了邮箱git配置，关闭后会再重新提交，会带上TESTCASE。谢谢。


Carthage compatibility

RB should allow to build using Carthage

Need to create first version release, Release tag is required

Carthage is supported on master branch.


Unterminated String in JSON becoming more common than not

I am the unterminator. Come with me, if you wan---
Although there are a few new ones I'm discovering that are pretty great - AI Commander has always been the BEST AI integration Obsidian had to offer - I thought. So much so that it was my 1st and foremost tool for interacting with OpenAI.
I even paid for Prompt Perfect for awhile, just to be a completionist haha.
Anyway, occasionally an output would fail with the unterminated string error you see above. It was infrequent though.
In the last month however, its increased to a point whereby the plugin is nearly unusable for generating content :(
I'm going to try and reinstall it on my end (though I've done so already) and if that helps I will update this issue.
If it doesn't I'll return and complain further!
Hope someone can just point out my stupidity somewhere and I can get this plugin back to working order - because I love working with it and don't want to have to teach a new plugin how to do what this one already does--or did--so smoothly right out of the gate.

@JonZhuang Thanks for reporting. I have pushed a new version to fix that error.


Warnings: State attribute definition missing for : n with value : Links

Actualy I have installed 0.6.7 of WLED Adapter and everything works fine.
In the ioBroker protocol I have 2 warnings:
State attribute definition missing for : n with value : Links
State attribute definition missing for : n with value : Rechts
For me it seams as if this are parameters from old versions.
Is there a possabilty to fix this?

Which WLED Firmware Version von do you use?

Got the same messages since FW update to 0.13.3.

Same problem, debug log:
`

wled.0
2022-08-30 16:43:29.092
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-08-30 16:43:29.092
debug
Create_state called for : a848facea728._info.liveseg with value : -1

wled.0
2022-08-30 16:43:29.092
debug
State created : liveseg : -1

`

Any progress? Still got my LOG flooted by this kind of warnings.

Same Problem

wled.0
2022-09-21 12:05:34.283
warn
State attribute definition missing for : n with value : Regal oben

wled.0
2022-09-21 12:05:34.260
warn
State attribute definition missing for : n with value : Regal Mitte

wled.0
2022-09-21 12:05:34.233
warn
State attribute definition missing for : n with value : Regal unten

wled.0
2022-09-21 12:05:34.210
warn
State attribute definition missing for : n with value : Tisch

wled.0
2022-09-21 12:05:34.120
warn
State attribute definition missing for : liveseg with value : -1

Gleiches Problem hier auch:

WLED version 0.13.3
Adapter Version  0.6.7

Same probem: warning State attribute definition missing for : liveseg with value : -1
iobroker.wled: v0.6.7
WLED 0.13.3 Toki Build 2208222

-- | -- | -- | --
wled.0 | 2022-10-10 19:57:08.339 | debug | Create_state called for : b4e62de93819._info.lm with value :
wled.0 | 2022-10-10 19:57:08.338 | debug | State created : lm : ""
wled.0 | 2022-10-10 19:57:08.333 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-10 19:57:08.332 | debug | Create_state called for : b4e62de93819._info.liveseg with value : -1
wled.0 | 2022-10-10 19:57:08.332 | debug | State created : liveseg : -1
wled.0 | 2022-10-10 19:57:08.328 | debug | Create_state called for : b4e62de93819._info.live with value : false
wled.0 | 2022-10-10 19:57:08.326 | debug | State created : live : false
wled.0 | 2022-10-10 19:57:08.321 | debug | Create_state called for : b4e62de93819._info.udpport with value : 21324
wled.0 | 2022-10-10 19:57:08.320 | debug | State created : udpport : 21324
wled.0 | 2022-10-10 19:57:08.316 | debug | Create_state called for : b4e62de93819._info.name with value : BAD
wled.0 | 2022-10-10 19:57:08.315 | debug | State created : name : "BAD"

Same Problem here
ioBroker.wled v0.6.7
WLED 0.13.3
wled.0 | 2022-10-15 22:16:11.742 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-15 21:40:10.761 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-15 21:40:10.307 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-15 21:40:10.227 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-15 21:40:09.825 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-15 21:40:09.679 | warn | State attribute definition missing for : liveseg with value : -1
wled.0 | 2022-10-15 21:40:09.381 | warn | State attribute definition missing for : liveseg with value : -1

@DutchmanNL Any progress @this Topic?
Pls let me know if further help is needed!

Same thing here. After upgrading to WLED 0.13.3.
Adapterversion 0.6.7

Now we have one month later since last entry.

Hier noch ein LOG Auszug von heute Abend:
`

wled.0
2022-12-16 23:07:44.990
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:06:55.264
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:06:01.837
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:04:43.750
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:04:40.625
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:03:26.782
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:03:21.190
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:03:08.699
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:02:43.959
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:02:40.296
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 23:01:53.277
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:59:12.053
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:56:50.339
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:56:10.186
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:56:08.171
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:55:15.311
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:55:13.312
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:53:56.865
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:52:27.173
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:46:28.732
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:46:26.728
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:45:28.492
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:43:48.983
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:41:04.458
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:36:30.475
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:34:46.688
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:34:44.685
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:33:52.763
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:33:12.048
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:33:10.054
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:27:45.565
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:27:42.234
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:25:44.451
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:25:42.419
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:24:50.959
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:24:48.902
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:22:24.361
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:16:55.452
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:16:53.409
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:14:21.550
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:14:01.403
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:06:57.687
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:06:55.660
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:06:11.307
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:05:30.840
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 22:03:49.759
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:38.823
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:20.056
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:11.639
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:08.931
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:08.287
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:05.268
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:04.885
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:02.258
warn
State attribute definition missing for : liveseg with value : -1

wled.0
2022-12-16 21:53:00.941
warn
State attribute definition missing for : liveseg with value : -1

`
Ich stell jetzt erstmal das Loglevel auf Error.

Wurde im PR 471 gefixt.

Im IOBroker Admin auf Adapter gehen.
Expertenmodus Aktivieren,
Installation von URL aktivieren,
URL zum Github einfügen und installieren.

fix released in v.0.7.0

Since I installed WLED Version 0.14.0-b3 the problem is back ...
ioBroker WLED Version 0.7.0

Since I installed WLED Version 0.14.0-b3 the problem is back ... ioBroker WLED Version 0.7.0
State attribute definition missing for : set with value : 0

ah ok that's a different one, set was not reported, please try to install from git issue should be solved by https://github.com/DrozmotiX/ioBroker.wled/commit/de8bd002b821e311b11d3cf7e94cf55287841afb

Worked! 👍🏼
Thanks!

Worked! 👍🏼
Thanks!

danke, dan nehme ich das mit 0.7.1 mit :)

fixed in 0.7.1, available on latest and PR pending to updated stable : https://github.com/ioBroker/ioBroker.repositories/compare/master...DutchmanNL:ioBroker.repositories:patch-11

Seit der WLED Version 0.14.0-b6 gibt es wieder eine neue Fehlermeldung im ioBroker:
State attribute definition missing for : rgrp with value : 1

Seit der WLED Version 0.14.0-b6 gibt es wieder eine neue Fehlermeldung im ioBroker:
State attribute definition missing for : rgrp with value : 1

Ich habe das mal in die StateAttr.js eingefügt.


Build Icons Error

Hello!
I am having a problem building icons, I am hoping you can help me.
I get this error when running npm run build-icons:

What seems to be happening is that the SVGR package is expected to run in commonjs, aka require() syntax but because the package.json file is set to "type":"module" it errors out. Removing that line or setting it to commonjs allows it to run without errors but then the build-lib script no longer works as it expects module aka import() syntax.
Is there some extra script that needs to be run before building icons?
For now I was able to get around this by setting it to type”commonjs” then back to “module” when building icons.
"build-icons": "npm pkg set 'type'='commonjs' && svgr -d ./src/components/Icons/ node_modules/@nasapds/wds/icons/ && npm pkg set 'type'='module'",
I don't think this was the intention though. Are both build icons and build lib scripts meant to run on type module?
To reproduce:
Follow the instructions in the readme https://github.com/nasa-jpl/react-stellar?tab=readme-ov-file#developing-components exactly the same and then run the build command npm run build-icons
Any help is appreciated. Thank you for your time!

@eddiesarevalo fixed in v1.1.7


Optimization of metric evaluation

Description
Currently metrics are mostly evaluated on CPU using NumPy. Due to Python GIL, they are evaluated in single thread, sequentially, which may become a problem once number of used GPUs is large enough.
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] Changed TopKAccuracy metric implementation from using numpy.argsort to numpy.argpartition, which from my experiments on NDArrays of shape (208,1000) and top_k=5 is ~4x faster
[x] Added global statistics to metrics. We noticed the problem with metrics speed after PR #12182 which introduced computing the metrics twice (once for giving the immediate values for accuracy and once for computing accuracy over the entire epoch). This is wasteful, since the calculations needed are exactly the same in this case. This PR introduces additional fields in EvalMetric class (global_sum_metric and global_num_inst), accessors for them (get_global and get_global_name_values) and function reset_local which performs reset only on non-global versions of statistics. It also modifies all current metrics to be able to use the global statistics. That way, while the code is backward compatible (one can still just use get/get_name_values/reset functions), it also eliminates overhead introduced by calculating statistics twice in fit function.

CC @vandanavk for comments.

@mxnet-label-bot add [Metric, pr-awaiting-review]
Thanks @ptrendx, I'll have a look

I tested train_imagenet.py, tools/parse_log.py and  both auto_reset values for Speedometer.

@ptrendx thanks for the PR. Do you mind elaborating a bit more how this PR avoids GIL/speeds up metric evaluation?

It does not avoid GIL, I just do less work in Python -

topk evaluation using numpy argpartition vs argsort is faster (and you don't need to do full sort to get top k elements)
currently metrics are calculated twice during training to get both local and per-epoch results - this PR makes it so they are evaluated once, and the result is used for both per-batch and per epochs statistics.

Thanks for the contribution @ptrendx !
Adding @sandeep-krishnamurthy to help review and merge.

I made fixes and added test for all metrics. @sandeep-krishnamurthy please review again.


Replaced Outdated with Archived

This change also changes several of the files we can, and have, changed as managers through the console. I can see weird (though textual, so nothing will truly break) merge issues happening if we merge this now. My recommendation would be to remove the textual changes from descriptions (about.md submit.md & deprecated.md).


[9.x] foreignIdFor() with custom column name: use correct table, fixes #42519

Currently, foreignIdFor(App\Models\User::class, 'author_user_id')->constrained() calls create SQL that wrongly tries to guess the table name from the custom column name ('author_user_id' => author_users) instead of using the table name from the model (to get the correct users table in this example).
I explained the problem in a bit more detail in #42519.
This PR adds ForeignIdColumnDefinition::$table that can be set via ForeignIdColumnDefinition::withTabl('users'). This table name is used instead of guessing the table name when present. Also Blueprint::foreignIdFor() was changed to set the table name from the model.
There is one test for each of the 4 SQL grammars included for this usage of foreignIdFor() with a custom column name & subsequent constrained() call.

If this convenience method doesn't work for you then you should use the foreign method to create the foreign key definition - it provides more flexibility.

@taylorotwell It does work for me, but the method arguments currently don't make sense.
If I say foreignIdFor(User::class, 'author_user_id')->constrained() it generates a foreign ID definition that's linking to a non-existing table when it has all the info to link to the correct table.
What is the reason to provide a foreignIdFor() method that takes the class name and a custom column name when I can either have it not-constrained (then I don't need the class name at all) or I have it constrained but need to repeat the table name, even though it's possible to get it from the model?
If you don't want this flexibility in foreignIdFor(), because it's just a convenience method, then what's the point of having the custom column name argument there, if it generates wrong SQL when used with constrained()?


Add a  component

Hey @nick-thompson !
We had a talk with @JoshMarler about the possibility of having a native  component in the react-juce package and your opinion on how to tackle this would be nice.
The options are :

Have a new React Component in the react-juce package with its set of props and a dedicated C++ class to handle the mouse events and the MIDI messages. The rendering would be managed by the user using View components the way he wants.
Have an example app that does all that only using what's already there to showcase the possibilities.
A mix of both :)

The question is mainly if we need the component (we agree with Josh that we do), how much should it do and how much would be the user's responsibility.
What do you think?

In on the fence in regards to whether we should offer something like MIDIKeyboard as a core react-juce component.
I think an example app which creates such a component using react-juce's core view types sounds great.
I wonder if it might be difficult to cover everyone's use-cases with a MIDIKeyboard component?
Be interested to hear what you think to this @nick-thompson and your thoughts around similar such components with a higher level audio specific focus.

In on the fence in regards to whether we should offer something like MIDIKeyboard as a core react-juce component.
I think an example app which creates such a component using react-juce's core view types sounds great.
I wonder if it might be difficult to cover everyone's use-cases with a MIDIKeyboard component?
Be interested to hear what you think to this @nick-thompson and your thoughts around similar such components with a higher level audio specific focus.

I definitely agree that this would make a very cool example, and an example that I think a lot of people would look to for implementing this kind of behavior. But, I think we should be careful about what becomes part of react-juce and what doesn't.
In particular, react-juce is a view layer library, and I think we should be very careful to leave it at that. That is, react-juce doesn't care if you're writing a midi app, an OSC app, or even a completely non-audio online poker app. We want to provide the right view layer abstraction to cover all these cases without imposing details on the end user. So if we introduce a MIDIKeyboard native component, we're now supporting a view layer component that's coupled to the idea of MIDI underneath, which I think is probably outside the bounds of what the library itself should provide.
That said, I think we're all aware that this project aims at the audio niche intentionally :). That's why we have a Slider component in the core library. But the thing about the slider component is that we don't care how you use it or what you link it to underneath: it's purely a view layer abstraction. And if we're careful about what a MIDIKeyboard component should be, we can probably end up somewhere similar.
That is, what's the difference between a MIDIKeyboard and a plain old notion of a Keyboard component? You can compose one from the other. For example, a  component is basically just a set of  components with a particular layout and some alternating background colors. Do we need to get anymore complicated than that?
<Keyboard {...styles.keyboard} numKeys={88} startKey={14} depressedKeys={[60, 64, 68]} />

With a component like that, we can start to see that the idea of a MIDIKeyboard is really just some state management on top of the Keyboard, and we can also see that that leaves the idea of the Keyboard as purely a view layer abstraction.
Then there's the idea of how to implement the MIDI. For that, really, I would use ReactApplicationRoot::dispatchEvent and on the javascript side I would EventBridge.addListener('midi', myCallback);. Right there you could do all your state management and then re-render your .
So far, I think everything we're discussing here makes for a great example project idea, and I'd love to see that project come to life.
Then, there's a follow up question about whether or not this notion of a Keyboard component becomes a core library component.
What do y'all think?

I definitely agree that this would make a very cool example, and an example that I think a lot of people would look to for implementing this kind of behavior. But, I think we should be careful about what becomes part of react-juce and what doesn't.
In particular, react-juce is a view layer library, and I think we should be very careful to leave it at that. That is, react-juce doesn't care if you're writing a midi app, an OSC app, or even a completely non-audio online poker app. We want to provide the right view layer abstraction to cover all these cases without imposing details on the end user. So if we introduce a MIDIKeyboard native component, we're now supporting a view layer component that's coupled to the idea of MIDI underneath, which I think is probably outside the bounds of what the library itself should provide.
That said, I think we're all aware that this project aims at the audio niche intentionally :). That's why we have a Slider component in the core library. But the thing about the slider component is that we don't care how you use it or what you link it to underneath: it's purely a view layer abstraction. And if we're careful about what a MIDIKeyboard component should be, we can probably end up somewhere similar.
That is, what's the difference between a MIDIKeyboard and a plain old notion of a Keyboard component? You can compose one from the other. For example, a  component is basically just a set of  components with a particular layout and some alternating background colors. Do we need to get anymore complicated than that?
<Keyboard {...styles.keyboard} numKeys={88} startKey={14} depressedKeys={[60, 64, 68]} />

With a component like that, we can start to see that the idea of a MIDIKeyboard is really just some state management on top of the Keyboard, and we can also see that that leaves the idea of the Keyboard as purely a view layer abstraction.
Then there's the idea of how to implement the MIDI. For that, really, I would use ReactApplicationRoot::dispatchEvent and on the javascript side I would EventBridge.addListener('midi', myCallback);. Right there you could do all your state management and then re-render your .
So far, I think everything we're discussing here makes for a great example project idea, and I'd love to see that project come to life.
Then, there's a follow up question about whether or not this notion of a Keyboard component becomes a core library component.
What do y'all think?

That could be a long discussion 😃
I totally get your point, and it's a complicated one to decide. For me the main question is to know how much effort we expect from the developer who will use it and implement the feature.
Let's imagine there are 2 people working on the plugin, one on the DSP/processing part and the other on the interface, how much is he expected to dive into the C++ code to have the interface working? In this example, he would need to implement the MIDI callbacks in C++ for his keyboard and maybe it would be out of his scope (I understand that the React part is easily doable without a ready-to-use native component).
It seems hard indeed to decide what should be included and what should not. And for me even more cause I just started to follow and I don't have the project history and all the background philosophy.
But then I think of how Juce works with the modules approach. I'm going out of bounds here but I wonder if the same thing could exist for react-juce, with npm packages for extra components and C++ modules that you can include or not for certain needs. You'd have the core module and then you'd be able to create specific components for this kind of cases. It would also open the way for user-made modules that can be released on npm, without altering the core of the library. In my head it sounds better than having to copy examples when you want to use some "almost generic" component that fits your needs. Again it's just a thought from my naive point of view and there's probably a lot to discuss :)
I'm still up to write an example that implements a MIDI keyboard and see how it goes anyway :)

That could be a long discussion 😃
I totally get your point, and it's a complicated one to decide. For me the main question is to know how much effort we expect from the developer who will use it and implement the feature.
Let's imagine there are 2 people working on the plugin, one on the DSP/processing part and the other on the interface, how much is he expected to dive into the C++ code to have the interface working? In this example, he would need to implement the MIDI callbacks in C++ for his keyboard and maybe it would be out of his scope (I understand that the React part is easily doable without a ready-to-use native component).
It seems hard indeed to decide what should be included and what should not. And for me even more cause I just started to follow and I don't have the project history and all the background philosophy.
But then I think of how Juce works with the modules approach. I'm going out of bounds here but I wonder if the same thing could exist for react-juce, with npm packages for extra components and C++ modules that you can include or not for certain needs. You'd have the core module and then you'd be able to create specific components for this kind of cases. It would also open the way for user-made modules that can be released on npm, without altering the core of the library. In my head it sounds better than having to copy examples when you want to use some "almost generic" component that fits your needs. Again it's just a thought from my naive point of view and there's probably a lot to discuss :)
I'm still up to write an example that implements a MIDI keyboard and see how it goes anyway :)

I think what frontend devs would want is an interface like web midi, so they can use whatever abstractions in npm they're used to.  The backend devs ideally would have little more to do than conditionally (un)patch midi devices to the underlying provider in c++ as they become (un)available.  If react-juce could implement webmidi, maybe the default behaviour would be to pass all midi devices through and / or provide one virtual device owned by ReactApplicationRoot, exposing whatever api makes sense to send/receive note messages and the like to/from javascript.  Easier said than done I guess.

I think what frontend devs would want is an interface like web midi, so they can use whatever abstractions in npm they're used to.  The backend devs ideally would have little more to do than conditionally (un)patch midi devices to the underlying provider in c++ as they become (un)available.  If react-juce could implement webmidi, maybe the default behaviour would be to pass all midi devices through and / or provide one virtual device owned by ReactApplicationRoot, exposing whatever api makes sense to send/receive note messages and the like to/from javascript.  Easier said than done I guess.


Prefetch assets like svgs, images and fonts

What problem does this feature solve?
Hey,
I would like to know if it's possible to create prefetch/preload links for assets ?
I didn't find anything in the documentation related to this feature,
Is it possible in any way ?
Thank you in advance
What does the proposed changes look like?
It could be great to have something like this in the nuxt.config.js:
prefetchLinks: [
  'assets/logo.svg',
  'assets/roboto.woff2'
]

This feature request is available on Nuxt community (#c10088)

Ok I found a way of doing it like that:
  render: {
    bundleRenderer: {
      shouldPreload: (_, type) => {
        return type === 'image'
      }
    }
  }

Too bad it only works in universal mode and when pages are actually generated. We cannot add preload/prefetch if there is no SSR.
Is there a reason of doing it this way ? 🤔


handleImageAdded() file

handleImageAdded() file 上传图片时候 显示为空  请求返回 显示文件未传输

This issue is stale because it has been open for 60 days with no activity.

This issue was closed because it has been inactive for 7 days since being marked as stale.


[Text Server] Fix ellipsis outline drawing

Fixes https://github.com/godotengine/godot/issues/79838

Thanks!


App loading screen

Note: don't put any new brand material live until launch day. If implementing this loading state for v2.augur or demo.augur just remove brand for now.
Desktop:
https://www.figma.com/file/bZh7tOiLm6Ls9Hl4RL6qMC5X/Augur-Redesign?node-id=13096%3A1
Mobile:
https://www.figma.com/file/bZh7tOiLm6Ls9Hl4RL6qMC5X/Augur-Redesign?node-id=13096%3A16

Desktop version Looks broken

Closing as dup for #7052


Animation appears upside down with Babel_TrasnEmb_GeoLoss checkpoint

With python -m sample.double_take --model_path ./save/Babel_TrasnEmb_GeoLoss/model000850000.pt --handshake_size 20 --blend_len 10, the animation is rendered upside down:
https://github.com/priorMDM/priorMDM/assets/4403130/652b989e-2c5b-417c-963d-701bb70022b3
To change this, I removed the negative sign before the 1.3:
https://github.com/priorMDM/priorMDM/blob/c0129a76fc6c3d68bbeab9c36595ef23e1e84232/data_loaders/humanml/utils/plot_script.py#L105-L106
Then, the animation floor is a bit weird (it's not in the background any more) but at least it has the correct orientation:
https://github.com/priorMDM/priorMDM/assets/4403130/7e5bfb6d-2354-43d9-82c2-b2f01ee4623f
The problem does not occur with the my_humanml_trans_enc_512 checkpoint.

Thanks for that,
there was indeed bug with the minus sign.
Fixed and committed

Thank you for 1d2955071769de663c7ca0d7725bcc91fa27eb8c!
But the fact that

the animation floor is a bit weird (it's not in the background any more)

is not solved by that, right? I can check in a while if some local change causes it, but I really think this is the case for the unchanged repo too.
So what I mean is that the floor is "on top of" the stick figure, instead of the figure standing on top of the grey plane. You can see this happening when watching the second video clip.

@priorMDM Do you plan to investigate this?

This should be reopened as it is not fully solved. 🙃


haskellstack.org relative link fix

Link issue someone in irc noticed, using it to learn how to pr

@MarcelineVQ thank you as always :+1: :smiley_cat: :bear:


Multiplicative Integration Recurrent Neural Networks

This is the same PR as #9286(closed) after I

corrected my email address(because of CLA: No)
resolved conflicts
modified init.py

I implemented Multiplicative Integration variants of recurrent neural networks
(RNN, GRU and LSTM) proposed in
Yuhuai Wu, Saizheng Zhang, Ying Zhang, Yoshua Bengio, Ruslan Salakhutdinov,
On Multiplicative Integration with Recurrent Neural Networks. NIPS, 2016.
https://arxiv.org/abs/1606.06630
The RNNs proposed in the paper are implemented as:
MultiplicativeIntegrationRNNCell
MultiplicativeIntegrationGRUCell
MultiplicativeIntegrationLSTMCell
_multiplicative_integration as a helper function

in
tensorflow/contrib/rnn/python/ops/rnn_cell.py
tensorflow/contrib/rnn/init.py
Test codes:
tensorflow/contrib/rnn/python/kernel_tests/rnn_cell_test.py

Can one of the admins verify this patch?

I dont know why CLA is still no. So I close this PR.
Sorry.


INVALID_ARGUMENT: Account<EMAIL_ADDRESS>is of type "user".

In the following tutorial:
Connect your app to Cloud SQL
When I type
gcloud projects add-iam-policy-binding my-awesome-project --member \<EMAIL_ADDRESS>--role roles/cloudsql.client

I'm presented with the following error message:
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Account<EMAIL_ADDRESS>is of type "user". Please set the type prefix to be "user:".

Recommend:
change
gcloud projects add-iam-policy-binding my-awesome-project --member \<EMAIL_ADDRESS>--role roles/cloudsql.client

to
gcloud projects add-iam-policy-binding my-awesome-project --member \<EMAIL_ADDRESS>--role roles/cloudsql.client

This issue can be closed.


Add support For read_json and to_json

Following the same patterns used in read_csv and to_csv, add support for json files.
Add Support For read_json and to_json

I'll pick this one up

@fwalsh-pl assigning to you!


🔨 Added Tests for POT and NNCF Compression Types

📝 Description
-This PR addresses the missing tests for the POT (Post-Training Optimization Tool) and NNCF (Neural Network Compression Framework) features in Engine.export. This PR adds unit tests to verify the export functionality with these compression types.

Ensures compression_type is used only with OPENVINO export type, raising an error if violated in Engine.export

Added tests in 'test_cli' to cover all compression type combinations.

attributes POT (Post-Training Optimization) and NNCF (Neural Network Compression Framework) to the 'CompressionType'

🛠 Fixes #2273

✨ Changes
Select what type of change your PR is:

[ ] 🐞 Bug fix (non-breaking change which fixes an issue)
[x] 🔨 Refactor (non-breaking change which refactors the code base)
[ ] 🚀 New feature (non-breaking change which adds functionality)
[ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] 📚 Documentation update
[ ] 🔒 Security update

✅ Checklist
Before you submit your pull request, please make sure you have completed the following steps:

[ ] 📋 I have summarized my changes in the CHANGELOG and followed the guidelines for my type of change (skip for minor changes, documentation updates, and test enhancements).
[ ] 📚 I have made the necessary updates to the documentation (if applicable).
[ ] 🧪 I have written tests that support my changes and prove that my fix is effective or my feature works (if applicable).

For more information about code review checklists, see the Code Review Checklist.

@ashwinvaidya17, will you be able to review this?