Feature request: Per app option for spare docker containers

We have a couple of application that take a while to launch. It would be great to have a configuration option to have a couple of docker containers waiting for users. This would greatly reduce the time before the user can use the application.
I am open for hints on how to tackle the problem and willing to help out.

Hi Willem,
I think it's a good idea to think about how these loading times can be reduced or eliminated.
Here are some of my thoughts about this:

Setting up a 'generic' container pool is problematic, because each container is specific to one app and one user (some variables are injected, such as the SHINYPROXY_USERNAME env var)

Instead, it might be safer to spawn one or several containers when the user logs in. E.g. for a 'heavy' app that you expect the user will access after login.

However in this case there is less time between the user logging in and accessing the app.

There must be some way to ensure these pre-launched containers do not get killed by the heartbeat mechanism, that automatically shuts down idle containers.

Hi Frederick,
We should be able inject those using docker exec at a later time point as well.
In that way, we could have unassigned container waiting for users. Because I think spawning containers after a user has logged in is already too late.
Then there is the issue of the heartbeat. We could have a process that will perform a heart beat as long as the user value is not yet set. In this way, as soon as the user is assigned, the normal heartbeat mechanism is activated.

Hi,
we have the same issue. Loading some containers at login would be already quite an improvement. Is there already a way how to do this? Can we do something to help make this possible?
Cheers,
Martin

Since the Shiny environment is mostly designed for Analytical purposes, the developers are supposed to have a relatively slow number of Applications here. Lets say there are 20 Apps and 1000 users out there.
A potential solution to shrink the loading time would be that when a user logs in, then in a single container 20 applications should be launched immediately in the backgroud and exposed to 20 different ports within this single image. Once the user chooses the appropriate application, the port shold be forwarded. In case the ShinyProxy environment is designed for a large number of Applications, then there should be an option what Apps should be launched whenever a user logs in. When the user logs out / no user activity recorded in an App then the container can be shut down.
The reason why it would be crucial to specify what application should not be started immediately is that there are many cases when a DB query runs for a longer period of time. However, in all other cases, when you read small datasets from some in-memory Database, it should be superfast. And the Developers of any Shiny Application should be aware of how much it takes to load an App. And if there are DB connections, then we should be able to configure our DB - how many connections can be set up at once.
I think this poses

Hi all,
We are using a Kubernetes backend and managed to reach a 5-10 second start time. Fortunately the application was build on top of ShinyProxy from an early stage so we have a relatively optimal setup (I think). What is the minimum one should be able to reach @fmichielssen? Also, should one expect a significant difference in load times between setting proxy.kubernetes.image-pull-policy to Always or IfNotPresent?
We received a few internal comments stating that the initial start time can be a bit lengthy at times, it is fine at the moment though, but being able to initialise containers in order to reach a 1-2 second start time would be great as it further diminishes differences between web applications written with R Shiny and other frameworks!

We are facing the similar issue - average 5-10 second startup time for users and when users reload the app they get a blank page because the app is being restarted (i.e. the pod receives 'Completed' status, and then restarts), and has to wait until the pod is restarted before being able to access the app.

Hi, this is now part of ShinyProxy 3.1.0, which we released today. We hope you enjoy this feature!


support hive in flyway

Which version and edition of Flyway are you using?
8.5.10
If this is not the latest version, can you reproduce the issue with the latest one as well? (Many bugs are fixed in newer releases and upgrading will often resolve the issue)
yes
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
Java API
Which database are you using? (Type & version)
Hive
Which operating system are you using?
What did you do? (Please include the content causing the issue, any relevant configuration settings, the SQL statement(s) that failed (if any), and the command you ran)
I want to use flyway for the hive, however, it looks like it's not supported natively, I only see one old PR: https://github.com/flyway/flyway/pull/1322, the PR is so old and seems can't work in the latest version of the flyway for master branch
What did you expect to see?
I hope flyway support hive too
What did you see instead?
flyway don't support hive

Closing as duplicate of https://github.com/flyway/flyway/issues/142


mouseover event

How can i get the feature of a marker in this event. I try e.layer.feature, but always return the last feature in the geojson. No seems to update to the feature highlighted.
Thanks.

@danzel  I think this is still a bug,
markerLayer = L.markerClusterGroup();
for (var i = 0; i < data.length; i++) {
    var entry = data[i];
    var marker = L.marker(new L.LatLng(entry.properties.center.coordinates[1], entry.properties.center.coordinates[0]));
                            markerData[entry.properties.location_id] = marker;
                            markerLayer.addLayer(marker);
                        }

                        markerLayer.on('mouseover', function(e){
                            debugger;
                        });

I don't think e.target inside the mouseover event handler refers to the marker.

Should you be using e.layer instead?


React tutorial update

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

Docs Build status updates of commit c419ea0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

tutorials/react.yml
:white_check_mark:Succeeded

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


Nil reference error when adding a new provider

Nil reference error when testing a new email provider
I am using the casdoor docker image v1.326.0

@oyamo real error can be shown with this commit: https://github.com/casdoor/casdoor/commit/e0d2bc3dc90c8109dc38331f4afcd4be1a70ca8a


Fixed updatePluginXmlVersion.sh to make it works on MAC

Motivation
The script didn't work on mac because sed -i on mac requires an additional parameter, not needed on GNU sed

Good pick. Tried and tested on old bash.
@ziccardi by default mac is using ancient version of bash shell. Ideally if you use shell on daily basis it will be recommended to use something more modern like oh-my-zsh :)


Children not loading before hot reload was triggered

hi there,
first off: nice project! thanks!
I have only one problem: my contents in {this.props.children} are not loaded initially. First when I make a change to a file to trigger a hot reload I will see the contents.
My first thought was that it had to do with react-router but every bug related to that was fixed before.
That's the code of my main.jsx:
export default class AppComponent extends React.Component {
  render() {
    return (
        <main id="page">
          {this.props.children}
        </main>
    );
  }
}

ReactDOM.render(<AppComponent />, document.getElementById('app'));

ReactDOM.render((
  <Router history={browserHistory}>
    <Route path="/" component={AppComponent}>
      <IndexRoute component={Home} />
      <Route path="*" component={NoMatch}/>
    </Route>
  </Router>
), document.querySelector('#app'));

Do you have any idea?

just found out by myself: I placed the Router in Main.js but it has to be placed in index.js


testing: go vet fails with nested sub-modules

#1151 surfaced a problem with how go vet handles nested sub-modules.
Fails:
➜  go vet ./cloudsql/...
go: warning: "./cloudsql/..." matched no packages
no packages to vet

➜  go vet ./cloudsql/mysql/database-sql/...
go: directory cloudsql/mysql/database-sql is outside main module

Succeeds:
➜  cd ./cloudsql/mysql/database-sql
➜  go vet ./...

This is reproducible in the /run directory by creating a structure like this:
run/
├── editor
│   ├── editor
│   │   ├── Dockerfile
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── ...
│   ├── sentiment
│   │   ├── Dockerfile
│   │   ├── go.mod
│   │   └── main.go
│   ├── spellcheck
│   │   ├── Dockerfile
│   │   ├── go.mod
│   │   └── main.go

Possible Solutions:

Adjust our script to descend into every sub-module before running go vet ./....
Detect "matched no packages" and suppress error (go vet uses the same error code for a failed test as a failed execution, so this requires string matching stderr)
Denylist on certain directories
Fix go tool? Not clear what that would mean so probably would take too long.

I am experiencing a similar problem with go test ./... -- tests in submodules are not being run!


Support for 05xxT MAST2 version

Hey guys!
FIrst of all thank you for a great work providing such a powerful tool! I'm absolutely new to MIB but wanted to ask you and understand whether it's possible to prepare a version for 05xxT SW Train. From what I read mib2 toolbox is not working with SW Train > 04xxx but I don't know whether it's an issue with the missing offsets in config file or maybe there are some other mechanism which are making "hacking" the SW impossible. I have the MST2_EU_SE_ZR_P0514T version in my beautiful Seat Leon and would love to have fun with the mib2 toolbox there :D
Thanks again and looking forward for the reply!

hey @olli991 thanks for explanation! And just to understand, why isn't it possible to add this version to SD card update method? Backdoor was fixed with this version or is it something else? Thanks!

We're using a messed up official update with signatures and stuff which opens this backdoor. This "update" don't have those variants because it's old. We can't just add those new variants because we can't create new signatures. So the easy Methode is only possible for the included variants.


Correctness tests

Please add some correctness tests. One simple idea to do so would be to compute Kendall's Tau between Lucene and the other engines.
@JMMackenzie @elshize any other ideas?

Kendall's tau has some problems when the lists aren't conjoint, I would suggest computing Rank Biased Overlap (RBO) - see here: http://codalism.com/research/papers/wmz10_tois.pdf
To make the comparison more fair, we could also try to get a CIFF ingestor for each of the systems (https://github.com/osirrc/ciff) - PISA already has this but perhaps Tantivy could try it too?

Adding it for tantivy is a 1 day job. If I follow you correctly, it would help with comparing results by :

ensuring there are no tokenization discrepancy.
ensuring the doc ordering is the same.

is not really an issue as it is not related with the verification itself. We can give non-ambiguous corpus (lowercase, no punctuation, no apostrophes, no one letter word) and guidelines (no stemming).  I prefer keeping natural language there, the reader of the results can have a rough idea of the underlying statistics. (correlation & docfreq), and can craft his own query.

For the second part, that would indeed really help. Another way to deal with this is to use a document id and have engine return the list of doc ids. Or (Score, DocIds).

About the metric to use here... You guys are the expert, I am open to any idea, but I am stretched very thin, so I will not be able to help on this.


Expression parser error: mismatched input '' expecting '('

This task is automatically imported from the old Task Issue Board and it was originally created by jaroslavtulach.
Original issue is here.

While working on advent of code day 7 I found an error in the expression parser:
Execution finished with an error: mismatched input '<EOF>' expecting '('
        at <java> org.enso.table.expressions.ExpressionVisitorImpl$ThrowOnErrorListener.syntaxError(ExpressionVisitorImpl.java:39)
        at <java> org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
        at <java> org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:543)
        at <java> org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
        at <java> org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
        at <java> org.enso.table.expressions.ExpressionParser.expr(ExpressionParser.java:950)
        at <java> org.enso.table.expressions.ExpressionParser.prog(ExpressionParser.java:137)
        at <java> org.enso.table.expressions.ExpressionVisitorImpl.evaluate(ExpressionVisitorImpl.java:83)

Comments:
My git repository at bug1 branch. It should be enough to:
$ unzip Advent7.zip
$ enso --run Advent7

to reproduce the error. (jaroslavtulach - Dec 7, 2022)

**James Dunkerley** reports a new **STANDUP** for today (2022-12-07):
Progress: Investigating some issues in the IDE uncovered by the AoC work. Expression error by Jaroslav couldn't be reproduced will try a little more tomorrow. Investigated issue with visualising a List and found a problem with getting Constructors from Meta object. Fixing this resolved the to_json issue and hence the viz issue. Additionally, put a fix up for Date, Time_Of_Day and Date_Time in the Table viz. While this will be replaced by the lazy viz work of Michael this fixes the current table view. It should be finished by 2022-12-12.
Next Day: Next day I will be working on the #183933832 task. Continue the expression debugging. Finish the prototype for Data.fetch as discussed with Ned and Sylwia. (Enso Bot - Dec 7, 2022)

Expression parser errors can be a little unclear but will live with them as is for now.


role create glossaryTerm doesn't work for the first level

Affected module
UI
Describe the bug
if a person is given a role that has a policy to create glossaryTerm, they don't have the option to ADD Term immediately in the glossary, but do have an option to create glossaryTerm under the parent term.
This is a bug
To Reproduce

Expected behavior
has Add Term
Version:
newest 1.4
Additional context
Add any other context about the problem here.

@karanh37 please provide update for this bug

@DovileKr we have priorities with other features. We will get to this issue.

Fixed with https://github.com/open-metadata/OpenMetadata/pull/16874


Sdk-146 Java SDK: Create test coverage for the class utils.SymMessageParser

Ticket
146
Coverage

Indeed there is already 90% coverage in SymMessageParser


Multimodule generate features called twice on error

When you add webProfile-7.0 to server.xml you expect to see message #1. Generate Features is called twice and the error message appears twice. Details below.
[INFO] Running liberty:generate-features
[ERROR] A working set of features could not be generated due to conflicts between configured features and the application's API usage: [cdi-2.0, mpHealth-3.1, batch-1.0, webProfile-7.0]. Review and update your server configuration and application to ensure they are not using conflicting features and APIs from different levels of MicroProfile, Java EE, or Jakarta EE. Refer to the following set of suggested features for guidance: [cdi-2.0, mpHealth-3.1, batch-1.0, webProfile-8.0].
To disable the automatic generation of features, type 'g' and press Enter.
[INFO] Copied file: /home/ibmadmin/guide-maven-multimodules/finish/ear/src/main/liberty/config/server.xml to: /home/ibmadmin/guide-maven-multimodules/finish/ear/target/liberty/wlp/usr/servers/defaultServer/server.xml
[INFO] Running liberty:generate-features
[INFO] [AUDIT   ] CWWKG0016I: Starting server configuration update.
[INFO] [AUDIT   ] CWWKG0093A: Processing configuration drop-ins resource: /home/ibmadmin/guide-maven-multimodules/finish/ear/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/generated-features.xml
[INFO] [AUDIT   ] CWWKG0093A: Processing configuration drop-ins resource: /home/ibmadmin/guide-maven-multimodules/finish/ear/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/liberty-plugin-variable-config.xml
[INFO] [ERROR   ] CWWKF0001E: A feature definition could not be found for webprofile-7.0
[INFO] [AUDIT   ] CWWKG0017I: The server configuration was successfully updated in 0.309 seconds.
[INFO] [AUDIT   ] CWWKF0008I: Feature update completed in 0.277 seconds.
[ERROR] A working set of features could not be generated due to conflicts between configured features and the application's API usage: [cdi-2.0, mpHealth-3.1, batch-1.0, webProfile-7.0]. Review and update your server configuration and application to ensure they are not using conflicting features and APIs from different levels of MicroProfile, Java EE, or Jakarta EE. Refer to the following set of suggested features for guidance: [cdi-2.0, mpHealth-3.1, batch-1.0, webProfile-8.0].
To disable the automatic generation of features, type 'g' and press Enter.
[INFO] Copied file: /home/ibmadmin/guide-maven-multimodules/finish/ear/src/main/liberty/config/server.xml to: /home/ibmadmin/guide-maven-multimodules/finish/ear/target/liberty/wlp/usr/servers/defaultServer/server.xml

Using guide-maven-multimodules project run dev mode. Edit ear/src/main/liberty/config/server.xml and add <feature>webProfile-7.0</feature> to the feature manger section. Examine the dev mode output and see the error message appear twice.
Using Linux, Java 11, dev mode 3.6-SNAPSHOT On branch generateFeatures-GA

Possibly related: if I remove a dependency from pom.xml such that a Java file fails to compile then dev mode runs the compile task twice and the compilation error appears twice in the dev mode output.

This issue is also seen on Windows.


Terminal output is truncated

Issue Type: Bug
Please have a look at this screenshot

The program is supposed to print a lot of lines (all letter combinations from a to z).
Bug: The terminal output gets truncated randomly, about one time out of five.
4 times out of 5, there is no problem, I can see the last line, in this case the one with z z z.
Here is another screenshot.

I added this in tasks.json so it is normal not to have the Terminal will be reused by tasks, press any key to close it. at the end.
    "presentation": {
        "showReuseMessage": false
    }

To prove it is a display or buffering problem, and not my task getting stopped, I have changed the code so that it writes text to a file at the very end of the program.
When I took the screenshot, the file tmp/vscode-bug-demo.txt existed and had the text inside it.
Here is the content of tasks.json:
{
	// See https://go.microsoft.com/fwlink/?LinkId=733558
	// for the documentation about the tasks.json format
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Bug demo",
			"type": "shell",
			"command": "python3 print-a-lot-of-lines.py",
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	],
    "presentation": {
        "showReuseMessage": false
    }
}

(btw your template is not a valid JSON file because of the comments)
Here is the Python 3 code if you want to try to reproduce:
#!/usr/bin/python3

for x in range(ord('a'), ord('z')+1):
	for y in range(ord('a'), ord('z')+1):
		for z in range(ord('a'), ord('z')+1):
			print("Bad combination: " + chr(x) + ' ' + chr(y) + ' ' + chr(z))

# Prove that the task has not been interrupted
with open("/tmp/vscode-bug-demo.txt", "a") as myfile:
    myfile.write("Task has run until the end")

I have another program in Go, that does the same thing (printing all combinations of three letters from a to z). The terminal output is truncated most of the time which makes the terminal output, and consequently the task system, useless. I wrote the python example in order to reproduce the bug with a simple program.
Steps to Reproduce:

Have a program that prints a lot of lines (17576 in my case and if often stops near the end)
Have a task so that the program output goes in Terminal output
Play the build shortcut several times (wait until previous task is done before launching again)
Observe as the terminal output gets truncated

VS Code version: Code 1.35.0 (553cfb2c2205db5f15f3ee8395bbd5cf066d357d, 2019-06-04T01:13:26.790Z)
OS version: Linux x64 4.15.0-51-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz (8 x 3900)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: enabled_onvideo_decode: unavailable_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
7.64GB (2.64GB free)

Process Argv
--unity-launch

Screen Reader
no

VM
0%

Extensions: none

/duplicate https://github.com/microsoft/vscode/issues/38137


Can not remove created HotSpot

when we have a hotspot configuration, we can not create another or configure it or delete if after stop HotSpot ...
thanks
with the best regards.

can you please provide code snippets what exactly you're doing?

hi, i want to do something like Zapy do ...  create a template HotSpot and Activate it ... then Delete it and restore Last Hot Spot Configuration ...
i am trying to get last known hotspot configuration and store them ... then after done my works reconfigure it to last ... or null hotspot ... but i can't ...
with the best regards ...
Hadi Khazaee Asl

then please post your code. Maybe you're using the API not correctly. It's hard to help without any code snippet


Infinite loop of "The TypeScript language service died unexpectedly" (2)

VSCode Version:1.11.0-insider (also happens in 1.10.1)
OS Version: Linux Mint 18

This is essentially the same as #9215.
I am able to work normally using "typescript.tsdk": "/home/andy/.nvm/versions/node/v7.7.1/lib/node_modules/typescript/lib", but when I try using vscode's built-in typescript compiler I get errors.
Steps to Reproduce:

Navigate to an empty directory.
code-insiders .
Create a new file a.ts.
In addition to a warning Version mismatch! global tsc (2.3.0-dev.20170303) != VS Code's language service (2.2.1). Inconsistent compile errors might occur, I repeatedly get an error The TypeScript language service died unexpectedly 5 times in the last 5 Minutes..

To help investigate, please enable "typescript.tsserver.trace": "verbose",and share the output fromTypeScript` in the output panel
Thanks

I set "typescript.tsserver.trace": "verbose" in my user settings, but I just see this over and over:
[Error - 12:52:25 PM] TSServer exited with code: 1
[Info  - 12:52:25 PM] Using tsserver from location: /usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js
[Error - 12:52:25 PM] TSServer exited with code: 1
[Info  - 12:52:25 PM] Using tsserver from location: /usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js

Can you check the TSS_LOG as well please?

Sorry, where is that?

See this comment for enabling logging on the tsserver: https://github.com/Microsoft/vscode/issues/21442#issuecomment-282903822

Running export TSS_LOG="-level verbose -file /home/andy/tsserver.log" made the problem disappear!
Running export TSS_LOG="-level verbose" (which it seems it was set to before) makes the language service start crashing again.
May be crashing in the code that parses TSS_LOG? But I wonder why setting "typescript.tsdk" made the error go away.

We don't parse the TSS_LOG file on the VSCode side. typescript.tsdk only logs our communications with the TSServer. It may be a timing issue of some sort. I suspect this is a TypeScript issue, but after debugging the TS, you believe that VSCode is doing something wrong, please let me know

@andy-ms Please let me know if you believe there is an issue on the VSCode side here.
One possible cause of the crashing is an invalid TSS_LOG environment variable: https://github.com/Microsoft/TypeScript/issues/14528 . That may explain why running export TSS_LOG=... fixed things
Thanks


The instance of entity type 'X' cannot be tracked because another instance of this type with the same key is already being tracked

I am receiving the above mentioned error in my HttpPost when attempting to SaveChanges after adding a new entitity. The entity will have a default Id of 0 since it is an int and is unset, but it appears that it is being set to 1 after being added and an entity with this key already exists.
I have tried to strip down the example so that there is less code to look through.
I am using EF Core and an InMemoryDatabase, configured as such:
services.AddDbContext<ApplicationDbContext>(options =>
    options.UseInMemoryDatabase());

I am seeding the database as follows:
public class ApplicationDbContextSeedData
    {
        private BlobUtility utility;
        private ApplicationDbContext context;
        private RoleManager<IdentityRole> roleManager;
        private UserManager<ApplicationUser> userManager;

        public ApplicationDbContextSeedData(
            ApplicationDbContext context,
            UserManager<ApplicationUser> userManager,
            RoleManager<IdentityRole> roleManager,
            BlobUtility utility)
        {
            this.context = context;
            this.userManager = userManager;
            this.roleManager = roleManager;
            this.utility = utility;
        }

        public async Task EnsureDataSeeded()
        {
            while (this.context.SiteImages.Any())
            {
                this.context.SiteImages.Remove(this.context.SiteImages.First());
                this.context.SaveChanges();
            }

            context.SaveChanges();

            while (this.context.Projects.Any())
            {
                this.context.Projects.Remove(this.context.Projects.First());
                this.context.SaveChanges();
            }

            var user = await this.userManager.FindByNameAsync("client");

            var project1 = await this.CreateProjectAsync(user);
            context.Projects.Add(project1);

            context.SaveChanges();
        }

        private async Task<Project> CreateProjectAsync(ApplicationUser user)
        {
            var siteImages = new List<SiteImage>();

            int i = 1;

            foreach (var img in await utility.GetAllAsync("intetech"))
            {
                siteImages.Add(new SiteImage
                {
                    Id = i,
                    ImageUrl = img,
                    Name = img.Split('/').Last().Split('.').First()
                });

                i++;
            }

            return new Project
            {
                Id = 1,
                Description = "Thornton Science Park",
                SiteImages = siteImages
            };
        }
    }

Here is the project class:
    public class Project
    {
        public Project()
        {
            this.SiteImages = new Collection<SiteImage>();
        }

        public int Id { get; set; }
        public string Description { get; set; }
        public ICollection<SiteImage> SiteImages { get; set; }
    }

and here is the SiteImage class:
    public class SiteImage
    {
        public int Id { get; set; }

        public string Name { get; set; }
    }

The context is injected to the controller:
public HomeController(
            ApplicationDbContext context,
            UserManager<ApplicationUser> userManager,
            BlobUtility utility)
        {
            this.context = context;
            this.userManager = userManager;
            this.utility = utility;
        }

and here are the controller actions that are giving me the issue:
 [HttpGet]
        public ActionResult CreateSiteImage(int projectId)
        {
            var userId = this.userManager.GetUserId(User);

            var vm = new CreateSiteImageViewModel
            {
                UserId = userId,
                ProjectId = projectId
            };

            return View(vm);
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult CreateSiteImage(CreateSiteImageViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                context.Projects.Include(p => p.SiteImages).FirstOrDefault().SiteImages.Add(new SiteImage());

                context.SaveChanges();

                return RedirectToAction("Index");
            }

            return View(viewModel);
        }

I am new to EF but this seems to be pretty basic operation so I am thinking I am missing something fundamental and would appreciate any guidance.
Thanks

If it helps I have stripped back the solution and attached it here:
WG360.zip

I have uploaded a stripped down version of the solution in case that makes it easier than looking at the above description
WG360.zip

@dannythomas13 EF uses a convention that integer primary keys are setup to have automatically generated values by default. This kicks in when the value of the key is zero. Since you are explicitly setting key values in your seed method it looks like you don't want to use generated values. You can tell EF not to generate values by adding something like this in an override of OnModelCreating on your DbContext class:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder
        .Entity<SiteImage>()
        .Property(e => e.Id)
        .ValueGeneratedNever();
}

Thank you @ajcvickers The only reason I set id's in the seed in the first place is because I was getting errors at the time of seeding unless they were set but I took your advice removed all of the id's and it works as you said, it is good to know that once I start setting them I lose the ability to have them created for me

@dannythomas13 It's not that you lose the ability to have them created, it's that:

You can't have an ID of zero. If you need to use zero as a valid ID, then use a nullable int property.
You need to make sure that any explicitly specified IDs do not collide with any auto-generated IDs.

@ajcvickers you do lose the ability to have them created for you.
I had the same situation in a test setup.  Seeding a set with an object with id 1.
Then in my test adding new object with id 0 - expecting it to auto generate (and this indeed worked on version 1.x) but it just failed saying it couldn't duplicate the key.

@hisuwh Please file a new issue with a complete code listing or project that exhibits the issue you are seeing. It may be related to this issue, but it sounds like a different scenario.


Fix for RFC 1214

Hi!
This PR contains fixes for breakage due to RFC 1214. These changes
will hit stable Rust in version 1.7, released on March 3. This patch
should be compatible with both 1.7 and 1.6. Your crate was identified
as being broken by the upcoming release in a recent crater regression
test. For more details about how we're responding to this breakage
see this previous announcement. To reduce the impact to your
downstream users I suggest publishing a new revision containing this
patch prior to the 1.7 release.

fixed in #11


Doing a point fix for backup since select box has impact on other fea…

This PR ports the fix for #14649 (second part)  - has been approved
(the bug got closed by mistake from Main PR)
PR for Main https://github.com/microsoft/azuredatastudio/pull/15415

Pull Request Test Coverage Report for Build 839706466

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.002%) to 43.523%

Totals

Change from base Build 839698650:
-0.002%

Covered Lines:
26500

Relevant Lines:
55408

💛  - Coveralls


Add chainerx.nonzero

Takeover #7550.

How about adding Python docs?

Jenkins, test this please

Jenkins CI test (for commit 12cbbed2830669c05134c948d36afc06c206230f, target branch master) failed with status FAILURE.

Jenkins, test this please

Jenkins CI test (for commit 12cbbed2830669c05134c948d36afc06c206230f, target branch master) failed with status FAILURE.

Jenkins, test this please

Jenkins CI test (for commit 12cbbed2830669c05134c948d36afc06c206230f, target branch master) succeeded!


device stuck at 0,0,0.0002625

but get in status form multible stations

config
# MQTT Connection, if empty will query and use hassio provided mqtt
mqtt:
  host:
  port: 1883
  ssl: false
  username:
  password:

# Bounds (x,y,z) of map in  meters
bounds: [[-1, -1, -1], [30, 30, 5]]
# How long before device considered stale
timeout: 30
# How long before device is considered away
away_timeout: 120

# Floors w/ the points to draw it in meters
floors:
  - name: First Floor
    z: 1 # Elevation in meters
    rooms:
      - name: Schlafen
        points:
          - [8.4, 9.80]
          - [8.4, 13.75]
          - [12.3, 13.75]
          - [12.3, 10.25]
          - [14.1, 10.25]
          - [14.1, 7.7]
      - name: Bad_Hinten
        points:
          - [14.2, 7.65]
          - [19.2, 5]
          - [19.2, 10]
          - [14.2, 10]
      - name: Buero
        points:
          - [15.6, 10.40]
          - [19.2, 10.40]
          - [19.2, 13.55]
          - [15.6, 13.55]
      - name: Gang_hinten
        points:
          - [12.5, 10.45]
          - [15.45, 10.45]
          - [15.45, 13.55]
          - [12.5, 13.55]
      - name: Wohnzimmer
        points:
          - [9.6, 14]
          - [14, 14]
          - [14, 23.15]
          - [9.6, 23.15]
      - name: Bad_Vorne
        points:
          - [14.25, 14.15]
          - [16.20, 14.15]
          - [16.20, 16.5]
          - [14.25, 16.5]
      - name: Gang
        points:
          - [14.25, 16.7]
          - [16.20, 16.7]
          - [16.20, 20.2]
          - [14.25, 20.2]
      - name: Kueche
        points:
          - [16.5, 14.15]
          - [20.20, 14.15]
          - [20.20, 18.4]
          - [16.5, 18.4]
      - name: Henne
        points:
          - [16.5, 18.6]
          - [20.20, 18.6]
          - [20.20, 23]
          - [16.5, 23]
# Locations of espresense nodes in meters
nodes:
  - name: henne
    point: [20, 22.75, 1.87]
  - name: wohnzimmer2
    point: [13.98, 22.8, 0.2]
  - name: wohnzimmer
    point: [10.2, 14.51, 0.4]
  - name: gang
    point: [16.14, 18.3, 0.5]
  - name: bad_vorne
    point: [14.34, 15, 2]
  - name: kueche
    point: [16.55, 14.22, 2.3]
  - name: buero
    point: [18.75, 10.425, 0.1]

# Devices to track
devices:
  - name: "Henne_Handy_hps"
    id: irk:fb153e4e80d2d1a51bc91a8162e9fa71

version 0.1.11 and 0.1.10

answer to the get request
[
   {
      "id":"irk:c52ab7dc6ff2a929bdfdc7b892f0ffc4",
      "name":null,
      "location":{
         "x":0,
         "y":0,
         "z":0.0003038765625
      },
      "reportedLocation":{
         "x":0,
         "y":0,
         "z":0
      },
      "nodes":{

      },
      "scale":1
   },
   {
      "id":"irk:9e2708b69fae70c7ccefff7512d09b4a",
      "name":null,
      "location":{
         "x":0,
         "y":0,
         "z":0.000545718647095484
      },
      "reportedLocation":{
         "x":0,
         "y":0,
         "z":0
      },
      "nodes":{

      },
      "scale":1
   },
   {
      "id":"irk:fb153e4e80d2d1a51bc91a8162e9fa71",
      "name":null,
      "location":{
         "x":0,
         "y":0,
         "z":0.0003693638609472656
      },
      "reportedLocation":{
         "x":0,
         "y":0,
         "z":0
      },
      "nodes":{

      },
      "scale":1
   }
]

If you click on the black dot the nodes will show circles based on the distance to that device.  Can you show that pic?

Nevermind, somehow you've never matched a node.  I'll add some logging for that.

Did logging help you find the issue?

version 1.1.13 sadly nothing special in the logs
[13:02:15 INF] Loading /config/espresense/config.yaml
[13:02:15 WRN] Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
[13:02:15 WRN] No XML encryptor configured. Key {8329cc39-da40-4ecd-90e2-ff90e7d2ae17} may be persisted to storage in unencrypted form.
[13:02:15 INF] Now listening on: http://[::]:8267
[13:02:15 INF] Application started. Press Ctrl+C to shut down.
[13:02:15 INF] Hosting environment: Production
[13:02:15 INF] Content root path: /App
[13:02:15 INF] Connecting to mqtt server at core-mosquitto:1883...

Ok, well I guess I need a "stats" page or something like that to see if you're getting any messages at all.
Do you see "espresense/companion/status", "online" in mqtt explorer?
Can you verify subscribing to espresense/devices/# works?

espresense/companion/status was "offline" but after a restart its now "Online"

how can i verify subscribing to espresense/devices/# works ?

and now after some time the z cordinate in espresense/ips/apple:1005:9-4 is climing exponential to the sky curently 10000 after ca 20 sekonds 40000

you can subscribe to just that via mqtt explorer

i testet it it subscribing works
but devices are still stuck at 0,0
even after updating the addon and updating the config

Version 0.2.5 same problem
giving devices to Track an id dosent help
sadly i dont know what to do anymore
my config:
# MQTT Connection, if empty will query and use hassio provided mqtt
mqtt:
  host:
  port: 1883
  ssl: false
  username:
  password:

# How long before device considered stale
timeout: 30
# How long before device is considered away
away_timeout: 120

# Floors w/ the points to draw it in meters
floors:
  - id: first
    name: First Floor
  # Bounds (x,y,z) of map in  meters
    bounds: [[-1, -1, 0], [30, 30, 5]]
    rooms:
      - name: Schlafen
        points:
          - [8.4, 9.80]
          - [8.4, 13.75]
          - [12.3, 13.75]
          - [12.3, 10.25]
          - [14.1, 10.25]
          - [14.1, 7.7]
      - name: Bad_Hinten
        points:
          - [14.2, 7.65]
          - [19.2, 5]
          - [19.2, 10]
          - [14.2, 10]
      - name: Buero
        points:
          - [15.6, 10.40]
          - [19.2, 10.40]
          - [19.2, 13.55]
          - [15.6, 13.55]
      - name: Gang_hinten
        points:
          - [12.5, 10.45]
          - [15.45, 10.45]
          - [15.45, 13.55]
          - [12.5, 13.55]
      - name: Wohnzimmer
        points:
          - [9.6, 14]
          - [14, 14]
          - [14, 23.15]
          - [9.6, 23.15]
      - name: Bad_Vorne
        points:
          - [14.25, 14.15]
          - [16.20, 14.15]
          - [16.20, 16.5]
          - [14.25, 16.5]
      - name: Gang
        points:
          - [14.25, 16.7]
          - [16.20, 16.7]
          - [16.20, 20.2]
          - [14.25, 20.2]
      - name: Kueche
        points:
          - [16.5, 14.15]
          - [20.20, 14.15]
          - [20.20, 18.4]
          - [16.5, 18.4]
      - name: Henne
        points:
          - [16.5, 18.6]
          - [20.20, 18.6]
          - [20.20, 23]
          - [16.5, 23]
      - name: Family
        points:
          - [0, 0]
          - [0, 5.5]
          - [5.2, 5.5]
          - [5.2, 0]
          - [0, 0]

# Locations of espresense nodes in meters

nodes:
  - name: henne
    point: [20, 22.75, 1.87]
    floors: ["first"]
  - name: wohnzimmer2
    point: [13.98, 22.8, 0.2]
    floors: ["first"]
  - name: wohnzimmer
    point: [10.2, 14.51, 0.4]
    floors: ["first"]
  - name: gang
    point: [16.14, 18.3, 0.5]
    floors: ["first"]
  - name: bad_vorne
    point: [14.34, 15, 2]
    floors: ["first"]
  - name: kueche
    point: [16.55, 14.22, 2.3]
    floors: ["first"]
  - name: buero
    point: [18.75, 10.42, 0.1]
    floors: ["first"]

# Devices to track
devices:
  - name: Henne_Handy_hps
    id: Henne_Handy
  - name: Henne_apple_watch
    id: Henne_Watch

We should join on the discord and talk through it.

sounds good

I seem to be having the exact same issue:

X=0, Y=0 and Z is almost 0.
Nothing in the logs
mqtt explorer reports companion is online

When you hover over the dot do you see at least 4 fixes?  Do the distances make sense?

Ok, I think I understand the issue.  My old code started from 0,0,0 every time.  But your floorplan is so far away from 0,0,0 that it would give up before finding a possible position.  The code now starts at the closest node and then tries to find the best position.  Please give 0.2.9 a try!

Thanks! I just updated to 0.2.9, but am away from home for a couple of days. Hope to report back in a couple of days.

updated but still dosent work for me now devices are stuck at exactly 0,0,0
thank you for taking the time to help us

I don't seem to see any devices anymore on the map.
nothing in the logs:
[09:53:00 INF] Loading /config/espresense/config.yaml [09:53:02 WRN] Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. [09:53:02 INF] Connecting to mqtt server at <IP_ADDRESS>:1883... [09:53:02 INF] Connecting to mqtt server at <IP_ADDRESS>:1883... [09:53:02 WRN] No XML encryptor configured. Key {cc07b0e8-4a9f-4422-8c87-f3e5e23b374b} may be persisted to storage in unencrypted form. [09:53:02 INF] Now listening on: http://[::]:8267 [09:53:02 INF] Application started. Press Ctrl+C to shut down. [09:53:02 INF] Hosting environment: Production [09:53:02 INF] Content root path: /App [10:34:28 WRN] HTTP GET /api/state/config responded 200 in 511.9461 ms

Well I think that's a good thing since it really shouldn't show anything on the map if there is no real positions calculated.  I'm going to implement some periodic summary logging that may help me figure out what is going on for you.

I might have same problem. I do not get to see any devices on devices list. I tried with wildcard and by specifying ID-s. Device is being tracked nicely by Home Assistant mqtt_room sensor when I configure by ID. Also I see devices updating on MQTT espresense/devices/#
I have the following config.

MQTT Connection, if empty will query and use hassio provided mqtt
mqtt:
How long before device considered stale
timeout: 30
How long before device is considered away
away_timeout: 120
Floors w/ the points to draw it in meters
floors:

id: first
name: First Floor

Bounds (x,y,z) of map in meters
bounds: [[-20, -20, -20], [20, 20,20]]
rooms:
  - name: Labor
    points:
      - [0, 0]
      - [13.983, 0]
      - [13.983, 4.974]
      - [0,4.974]

Locations of espresense nodes in meters
nodes:

name: pre2
point: [13.983, 4.974, 2.6]
floors: ["first"]
name: pre1
point: [0, 4.974, 2.6]
floors: ["first"]
name: pre3
point: [13.983, 0, 2.2]
floors: ["first"]

Devices to track
devices:

id: "*"
id: "f6affb4f354f"
name: "Beacon1"

I believe the latest version finally fixes this issue!  It was a timezone bug that only manifested if you were +UTC.

Now working thx !


Lambda Sprint Challenge 1

First Commit with all answers.md filled out and some of the html index page complete

What looks great:

MVP tasks completed
Good formatting of code
Helpful comments
Good amount of commits

What could be improved:

Per our 1:1, look for opportunities to resolve spacing that may throw your design off target
Look for the opportunities to consolidate code to accomplish similar tasks with one instance

Overall, a great job Henry! Keep up the stellar work and keeping building that confidence.


Add description

We should add a description to this project.
As follow.

Flow Launcher supports Python by JSON RPC.

I have no right to do this.

Done :)


Use node-wget vs. wget

Closes https://github.com/nteract/zmq-prebuilt/issues/60

Since we actually know what we're downloading, I was really hoping we would do it ourselves in node and have less dependencies.

Would you just prefer a Node script that we call from build_libzmq.sh?

Would you just prefer a Node script that we call from build_libzmq.sh?

Yup.

Since this script is only used on *nix, we can pipe to tar -xz. If you like.
However, I see at least one of the issues. Redirects need to be followed:
> var x = https.get('https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz', (resp) => { res = resp; console.log(resp.statusCode) })
302

Oh no way!! 🙄

This is looking pretty good, not sure where the failure is at. Perhaps it's time to figure out a better way for us to report these errors when it's running through node-gyp.

Sorry, I didn't mean to close it and I can't reopen it.

Here we go: #64
Github didn't like my push to @gnestor branch and closed it.


NLog file to be picked from datafolder

More info here
https://github.com/stratisproject/StratisBitcoinFullNode/issues/1307

It is from a user experience most users know where the data folder is and its easy to just drop a file there (our other config files are there already) ok I will create an issue.

Yes, but this is exactly what we don't need because logs configuration is not use a feature, it is for developers only

But okay if we want to do that regardless of motivation, we need to make sure that we loaded is the 1st thing in the node, so that the whole initialisation of the node can be logged

Ok I guess its not high priority but the settings are anyway loaded before any DI is injected (in the settings Load method).


fixes #654 - Give style editor position to enable z-index

The editor had a z-index but it wasn't being respected because it wasn't positioned.  Given a position it can now be placed over the other elements of the page.  fixes #654

Thanks for the fix!


[api] Remove rack-test as dependency of api specs

Mixing request specs with rack-test made things a bit confusing -
e.g. knowing whether to use response or last_response,
etc.. Removing rack-test helped clear this up.

@miq-bot add-label api, refactoring, test

@Fryguy @chrisarcand would you care to review this one?

@Fryguy should still check this out as I haven't poked around this spec helper much at all, but this looks excellent to me :+1:


List gometalinter checks which can run continuously

Description
As described in #1287, we'd like to run gometalinter in CI. We need to identify which checks we can run automatically that won't generate false positives. We'll list these checks here and create breakout tickets for each of them to (a) fix all the issues identified by the check and (b) add the check to CI.
Success criteria (What criteria will consider this ticket closeable?)
We'll close this ticket at the same time as #1287 once all checks are identified and in CI.

The following linters have errors (annotated with number of errors):

deadcode: 16
dupl: 619
errcheck: 99
gas: 34
gochecknoglobals: 48
gochecknoinits: 20
goconst: 19
gocyclo: 178
gofmt: 8
goimports: 1
golint: 195
gosimple: 0
ineffassign: 8
interfacer: 3
lll: 1856
maligned: 7
megacheck: 76
misspell: 4
nakedret: 14
staticcheck: 0
structcheck: 3
unconvert: 60
unparam: 52
unused: 83
varcheck: 4
vet: 53
vetshadow: 46

Note that megacheck combines the following linters into one:

gosimple
unused
staticcheck

This is not applicable:

safesql

These linters pass:

gotype
gotypex

There are still a few remaining metalinter tickets, but most of the linters are now in CI and enabled. See #1504 and tickets with label metalinter.


Fixes encoding issue in translator servlet

Only thing I would say is to resolve the conflict for the merge!


How to create a shortcut to turn volume up and down on pc?

Description of the new feature / enhancement
I used to have a keyboard that had dedicated keys to turn volume up, down, and mute. My new keyboard doesn't have these keys. I hope you can help.
Scenario when this would be used?
I'd like to turn volume up/down when watching say YouTube or a video on my PC by just pressing a key on the keyboard, without using the mouse.
Supporting information
I tried using this shortcut %windir%\System32\SndVol.exe -f 49825268 but it didn't work. I also tried "powershell -c (New-Object -ComObject WScript.Shell).SendKeys([char]0xAF)" but it didn't work properly.

This could probably be done via Keyboard Manager. Have a look at the dropdown menu and see if VolUp and VolDown keys are there. It might depend on your keyboard layout. /needinfo

It worked!!!
Thank you so much, man. You are awesome!

Happy to help! /helped


Use torch.linalg.lstsq in InverseMelScale

To address https://github.com/pytorch/audio/issues/2643

Curious what the numerical difference looks like?

The numerical difference is significant. So besides the API BC-breaking, it is also numerical BC-breaking.

This looks like a pretty significant BC-breaking change (or would this be considered bug-fix?) that would break existing implementations using any of the removed parameters. Do you think it makes sense to maintain BC, by adding an option to choose which underlying implementation to use, with the old version being the default to avoid BC-breaking? Also normally for BC-breaking changes we will first issue a warning in a release before formally modifying it in the following release -- we could consider something like that if we are certain this approach is better/correct. Curious what the numerical difference looks like?
cc @mthrok

Since the change is motivated by the improvement of numerical result, first we need to validate the improvement. Passing existing tests are not sufficient for this. Then we can think of a better way to handle interface breakage. If the new implementation should yield perfect inversion, then interface breakage is minor issue.
Firstly, per the following comment, the current implementation runs the optimizer, which generates blur result, and we cannot gauge the element-level differences.
https://github.com/pytorch/audio/blob/72404de901cdb47049d8f0383a4dc51a1b739317/test/torchaudio_unittest/transforms/transforms_test_impl.py#L17-L26
So the current test looks at the distribution of relative difference. We need to re-assess the numerical property of the new implementation and revise this to make sure that the change is improvement.
https://github.com/pytorch/audio/blob/72404de901cdb47049d8f0383a4dc51a1b739317/test/torchaudio_unittest/transforms/transforms_test_impl.py#L49-L53
Second issue is the possibility of the numerical instability. I do not know enough of the underlying math, but we need to test the new implementation on variety of configuration on different real/synthetic audio. We should be able to answer questions like, "is it reliably stable on common audios?", "if the input mel-spectrogram meets some conditions that make lstsq unstable, can we do something about it?"

I doubt the numerical improvement would be marginal, stft -> mel is a lossy computation, hence both torchaudio and librosa use optimization method to estimate stft from mel spectrogram. The change in this PR mainly solves two issues: running speed and running in inference mode.
The unit test in librosa only compares the difference between mel and mel_bank * stft, where stft is the estimated one.
def test_mel_to_stft(power, dtype, n_fft):
    srand()

    # Make a random mel spectrum, 4 frames
    mel_basis = librosa.filters.mel(sr=22050, n_fft=n_fft, n_mels=128, dtype=dtype)

    stft_orig = np.random.randn(n_fft // 2 + 1, 4) ** power
    mels = mel_basis.dot(stft_orig.astype(dtype))

    stft = librosa.feature.inverse.mel_to_stft(mels, power=power, n_fft=n_fft)

    # Check precision
    assert stft.dtype == dtype

    # Check for non-negative spectrum
    assert np.all(stft >= 0)

    # Check that the shape is good
    assert stft.shape[0] == 1 + n_fft // 2

    # Check that the approximation is good in RMSE terms
    assert np.sqrt(np.mean((mel_basis.dot(stft ** power) - mels) ** 2)) <= 5e-2

When comparing stft and stft_orig in librosa, the element-wise difference is also significant.

Close it as torch.linalg.lstsq could return negative values in the output. We can still make it non-negative by using torch.clamp, but the result is not globally optimal.


Linting issue with chained functions in "Return Largest Numbers"?

Challenge Return Largest Numbers in Arrays has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

function largestOfFour(arr) {
  var array0 = arr[0].sort(function(a, b){return a-b}).pop();
  ...so forth and so on...
  return [array0, ...];

  }

The above code works fine, and passes the challenge, but the IDE X's out the chaining of pop from sort using the above method, complaining about "missing semicolon."
If I remove the sort condition and just chain pop from sort(), the IDE doesn't seem to mind but of course that doesn't work out the correct solution in arrays with numbers containing only 1s and 0s.

It looks like it is expecting a semi-colon on the following to not give a syntax error in the editor.
return a-b;

Yep, that's what it underlines.  So the question is, is chaining pop() after that bad for some reason or is it an ide error?  The code works (in Chrome, at least).

Come join us in https://gitter.im/FreeCodeCamp/Help for some help and discussion as this is for issues with the site :)
However, to answer- It's just very strict sometimes with ; placement, but it is perfectly acceptable to chain the methods like that (and inline) and I would encourage it in this circumstance for code readability!

By the looks of it could be a way we are parsing the code. Is this the full code that you have shared in the description?
Also, can you help with the console logs in the DevTools if any errors can be seen?
Pro tip: add //# sourceURL=myCode.js on the top of the code, and check in the DevTools sources window, there should be a file myCode.js
What are its contents?

No, this is a synopsis.
console log...
;
function largestOfFour(arr) {
var array = [];
;loopProtect.protect({ line: 7, reset: true }); for (var i = 0; i < arr.length; i++) {;
if (loopProtect.protect({ line: 7 })) break;
array[i] = arr[i].sort(function(a, b){return a-b}).pop();

}
return array;
}
largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
/**/

@RNCTX thanks, I have updated your comment for some formatting, we will look into this and get back soon.
/cc @FreeCodeCamp/moderators

Please refer to this
comment.
Perhaps we could have a wiki article about disabling rules for the linter?
On Sunday, 8 January 2017, mrugesh mohapatra<EMAIL_ADDRESS>wrote:

[image: image]
https://cloud.githubusercontent.com/assets/1884376/21751744/2fe41774-d5f2-11e6-9ac5-581b481eeb36.png
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12427#issuecomment-271163627,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARtk5qgIgIRKuyroJIwnKQSd0RG8E9YJks5rQRbUgaJpZM4Ldl5-
.

In light of the fact that it technically was an error in my code, I would say a wiki article on the tolerance for missing semicolons in relation to the error would be more applicable.
I can see the logic for errors in the IDE not preventing submission of the code, since every little IDE error would then halt progress for everyone, but a link to some further context on the error would be nice.

I created a wiki post for this https://forum.freecodecamp.com/t/semicolons-in-javascript/80595
Edits are welcome! Every user on the forum that has been around for a few minutes gets "Basic" status and should be able to edit the wiki article.
I'm closing this issue as resolved. Thanks for reporting and investigating everybody!


TFA is slow and runs out of memory when precompiling Analyzer

Repro:
pkg/vm/tool/precompiler2 pkg/analyzer_cli/bin/analyzer.dart analyzer.snapshot

gen_kernel hangs for a while in TFA and eventually runs out of memory.

TFA slows down on Analyzer AST nodes and visitors (subtypes of AstNode and AstVisitor).
It looks like there is a combinatorial explosion of variants of certain invocations.
Number of AnnotatedNodeImpl::visitChildren invocations with different arguments reaches 50,000 and rapidly grows. Number of NormalFormalParameterImpl::visitChildren and SimpleIdentifierImpl::accept invocations reaches 10,000 and grows.


Fixes Android Share Extension

With the deps update the Android Share extension broke, this PR fixes it.
There is no ticket for this.

Building app in separate branch.

Successfully building:
https://circleci.com/gh/mattermost/mattermost-mobile/6070
https://circleci.com/gh/mattermost/mattermost-mobile/6069

Artifact links:
https://6070-70265724-gh.circle-artifacts.com/0/~/mattermost-mobile/Mattermost_Beta.ipa
https://6069-70265724-gh.circle-artifacts.com/0/~/mattermost-mobile/Mattermost_Beta.apk

@enahum Please check if this needs cherry-picking. Release branch was created around the time this was merged.

/cherry-pick release-1.32

Looks like you dont have permissions to trigger this command.
Only available for Org members

@metanerd ☝ ????

/cherry-pick release-1.32


controller-manager never deploys due to operator forcing a DS update

xref https://github.com/openshift/installer/issues/438
@rphillips @deads2k
What I'm seeing is that the controller-manager Daemonset in the openshift-controller-manager Project is having its operator.openshift.io/force annotation periodically changed causing the pod to never stay up long.  controller-manager Pod are always being created, then terminated.  The generation on the Daemonset increases rapidly.
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  annotations:
    operator.openshift.io/force: 2c6fa783-cc12-11e8-b0e5-0a580a020105
  creationTimestamp: 2018-10-09T19:42:26Z
  generation: 492

Doing a watch -n3 -d oc get ds controller-manager -o yaml, one can see the operator.openshift.io/force change, resulting in a bump of the generation and the termination of any pods.

There is also one of these for every pod that attempts to start as part of the DS
41s       41s       1         controller-manager-qvdbz.155c1142df5d31fe   Pod                 Warning   FailedCreatePodSandBox   kubelet, dev-master-0   Failed create pod sandbox: rpc error: code = Unknown desc = failed to get network status for pod sandbox k8s_controller-manager-qvdbz_openshift-controller-manager_b61ae9d5-cc12-11e8-a5a2-3e220e6b2b82_0(cc429ec0b037f2eb596192c248b90d4bbb7deffe21395fdbf0d6de2d4a045b7a): Unexpected command output nsenter: cannot open /proc/23300/ns/net: No such file or directory

Not sure what that is all about

this seems to be fixed now

The failed create pod sandbox event looks similar to a crio flake I had been looking at with @mrunal


Nested WHERE Query on GORM

Your Question
Hi, I want to make a nested where query like this  SELECT * FROM table_a WHERE (table_a.name LIKE '%Jack%' OR table_a.tags LIKE '%Human%') AND table_a.published = 1 how can I produce this kind of query using GORM? I already search that in https://gorm.io/ and http://v2.gorm.io but I can't get what I want, even in some comment they said right now GORM is not able to produce this kind of query, is that right?
Expected answer
I want to know, is GORM can create that kind of query? if yes please explain to me, if can't, can you make some update to produce it in the future?
Best Regards,

http://v2.gorm.io/docs/advanced_query.html#Group-Conditions


Karenchen/enable draftv2

This is an extension for DraftV2. We have created a new feature branch as Marcus is away for the rest of the week
DraftV2 Repo
DraftV2 Design Dock
This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

AKS

AKS

Could you add some tests for these new features?
If you want to release a new version to release these features, please update HISTORY.rst and setup.py at the same time

In addition, is this PR still in the draft status? If so, please convert it to a draft PR

💡 Hope this helps: seems like there is a cassette file which is missing which is causing this I guess, here is the guidance for it: https://dev.azure.com/msazure/CloudNativeCompute/_wiki/wikis/CloudNativeCompute.wiki/156735/AZCLI-AKS-Live-Unit-Test-Pipeline?anchor=create-cassette-file(s)-for-newly-added-test-case(s) we could reach out to @FumingZhang if more help is in need.
cc: @karenychen 🙏☕

@FumingZhang ready for you to merge when you can 😀

Queued another pipeline to verify test cases. All test cases passed.


Removed offending package lock downgrading npde-fetch to 1.7.3

This PR removes the package lock files for qna maker that were causing the build to downgrade node-fetch to 1.7.3 which is old and does not follow the DOM standards for fetch.
The fetchRemote command was failing on the nightlies with 'arrayBuffer is not a function` when clearly it is, just not on node-fetch v1.7.3

Looks good to me. Going to test out a built version off the branch and then approve once I confirm the fix.

Coverage remained the same at 57.232% when pulling 55eb5f6b65b1b51cda895f0478792a7eea808bd7 on jwilaby/fix-fetch-issues into e0793418bf73b2f856e56ce7c49969ed33c4327f on master.


Add User Definable Variable Substitution

This PR resolves #649
I have documented and added a user definable way to add new variable substitutions. A simple API for defining regex based variable matching. Here is a simple example usage.
def sub_days_plus_one(days: str) -> int:
    """Strings like '$sub_days_plus_one_4' will be replaced with the
    final number incremented by one. In this case 5.
    $sub_days_plus_one_4 -> 5
    $sub_days_plus_one_10 -> 11"""
    return int(days) + 1

variable_substitution_map.add_variable_substitution(
    r"\$sub_days_plus_one_(\d+)", sub_days_plus_one
)
variable_substitution_map["$sub_days_plus_one_1"] # -> 2

Think this works for me, good idea to have sample functions in there that would be in effect for a deployment. Yeah same question about what helm setup would be

I am going with Emilano's idea for now. I will setup the project with an empty python file that will be loaded allowing the users to extend it as they please


USHIFT-499: Replace k8s pause image with openshift pod image

Related to USHIFT-499

/retitle USHIFT-499: Replace k8s pause image with openshift pod image

This is LGTM for me.
Before merging, I'd like to see other reviewers' comments about the pause pod name in release.go files.

This is good. I was thinking of templating out the config file when we build the RPM, but doing it this way makes it easier to run from source, so that's good.
/lgtm

/retest

/retest

/retest

/retest-required


[SungdaySadang] 대상 소스 선정

Candidates
초급

[x] https://github.com/avjinder/Minimal-Todo
[x] https://github.com/ganadist/AndroidApiDemo
[x] https://github.com/firebase/quickstart-android

중급

[x] https://github.com/googlesamples/android-architecture/tree/dev-todo-mvvm-live

고급

[ ] https://github.com/afollestad/photo-affix
[ ] https://github.com/airbnb/lottie-android
[ ] https://github.com/googlesamples/android-architecture
[ ] https://github.com/androidannotations/androidannotations
[ ] https://github.com/LeeKangUk/AndroidDialer
[ ] https://github.com/sockeqwe/AdapterDelegates
[ ] https://github.com/JakeWharton/RxBinding
[ ] https://github.com/ReactiveX/RxJava
[ ] https://github.com/google/dagger
[ ] https://github.com/google/iosched
[ ] https://github.com/greenrobot/EventBus

https://github.com/ganadist/AndroidApiDemo

https://github.com/jungilhan/awesome-blogs-android

https://github.com/googlesamples/android-testing

Android Google Sample 중 아무거나 : https://github.com/googlesamples?utf8=✓&q=android&type=&language=

https://github.com/iammert/Android-MVVM-Architecture

https://github.com/googlesamples/android-topeka/tree/master/app/src/main/java/com/google/samples/apps/topeka

https://github.com/frogermcs/InstaMaterial

https://github.com/yanzhenjie/Album

https://github.com/iammert/AndroidArchitecture

대상 소스 등은 위와 같이 선정되어 fork해두었습니다.

https://github.com/kotlin-korea/android-testing


md-menu doesn't scale up with CSS media queries' 2k (& higher) resolution font-size increase

Bug, feature request, or proposal:
Bug. When scaling up the font size with css media queries for higher resolutions (2k & above), md-menu's dimensions get messed up.
What is the expected behavior?
md-menu's button, panel & panel contents should accommodate the higher font sizes.
What is the current behavior?
md-menu's panel becomes too tiny cutting its contents.
What are the steps to reproduce?
Use a simple md-menu. Increase its font size in a CSS media query for 3000px width & above. Watch its behavior in chrome's responsive 3000px width. Plunker: http://plnkr.co/edit/MU26bzR2qHwnB4FFof7n?p=preview . Instructions to reproduce included in the plunk.
Providing a Plunker (or similar) is the best way to get the team to see your issue.
Plunker template: https://goo.gl/DlHd6U
http://plnkr.co/edit/MU26bzR2qHwnB4FFof7n?p=preview
What is the use-case or motivation for changing an existing behavior?
Scaling UI for higher resolution devices
Which versions of Angular, Material, OS, browsers are affected?
Angular 2/4, Material 2.0.0-beta.3, Chrome / Firefox, All OS's
Is there anything else we should know?
I don't think so.

Any updates on this? I think most of the components are not designed for font-size scale-up. Since I am designing for larger screens (now considered normal), it's important to have the components adjust to larger font size media queries.

@mmalerba any updates on this?


Update docs related to migration tool update (#1675)

Removed note about splatting

upgraded target Az version to 5.3

Module version set to 5.2.0

Changed Az version to 5.2

Docs Build status updates of commit f184660:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azps-5.2.0/quickstart-migrate-azurerm-to-az-automatically.md
:white_check_mark:Succeeded
View (azps-5.2.0)

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

Docs Build status updates of commit f184660:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azps-5.2.0/quickstart-migrate-azurerm-to-az-automatically.md
:white_check_mark:Succeeded
View (azps-5.2.0)

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


Giscus not working

Hey there! I found the RSC article interesting and well written, thanks for creating it.
I'm not sure if I'm missing anything, but it looks to me like the giscus integration is not working.

I see similar errors on your hello world post as well.
Let me know if I can help any further, thanks!

Hey thanks for the heads up. I'll investigate why this happens.


RFE: Add some ability to override the textwrap of error output

This will help in CI due to unknown terminal widths

Should this be applicable only for error outputs or all of them? I was thinking if this can be clubbed with --no-ansi.


migrate aws-sdk-go v1 to v2

While working on https://github.com/diggerhq/digger/pull/1346, I noticed that the v1 version of the go sdk were in use.
This pull request migrates to the v2 sdk.
https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-go-v1-on-july-31-2025/

@motatoes thanks! Sorry for the large change here.
I added a seperate PR with e2e test for dynamodb. I ran the changes compared to develop in a fresh account without any issues.
I think we should merge this now, and address some more changes like https://github.com/diggerhq/digger/commit/b9bb260427824fd9ab64f4eaa0fd80f345ea55f4 in seperate PRs if you are happy with that.

@larhauga Perfect! Thanks for the good work here


Resolve Rails 5 deprecation warning for Mime::HTML

Changes Mime::HTML to Mime[:html] to avoid a dep warning. Fixes #312.

Thanks!


Delete src/base-debian directory

Looks like this was created by accident, closing. If needed, feel free to reopen with more details, thank you!


Add batching status to VSB/VSR printer columns

well that did not unassign anything.
/unassign @kaovilai

/cherry-pick oadp-1.2

/cherry-pick oadp-1.2


[Feature Request]: Better experience with reproducing results

First of all, I want to thank you for this repository with well-written documentation. But trying to reproduce your results, wanted to share some feedback on how it could be even better.

Setting up an environment is very slow:

Downloading all required files from http://lixirong.net/ is very slow and regularly fails due to network errors. For example, it takes a few days to download word2vec.tar.gz

Is it possible to host files on some well-supported file-sharing system such as Google Drive and redirect requests from your site to it? Or store them directly in git with Git Large File Storage
Ideally, is to have everything accessible from an online-container with code&data without the need to download anything at all, such as Kaggle

Since support for python 2 is about to end, it might be a good idea to migrate this repo to python 3 as well. I already did it so that it works in my environment, will try to attach diff if everything works properly.

README does a great job explaining details of the project and how to reproduce it locally. Although, an area of specific content/structure of some data files wasn't clear for me. So I'm currently in the process of exploring your paper and the source code to figure it out.  It would have been a great addition to the guide if dataset and word2vec were more verbosely covered.

One more time, that's just my subjective feedback on how to make this repository even better, if you have the possibility to maintain it. Thank you again for putting a lot of work in organizing code and README here, that helped a lot!
Thanks,
Oleh

Hi Oleh,
Thanks for the concern. Can I know the Tensorflow and the cuda version you used for the py2 model.

Hi @RakeshRadarapu. Tensorflow version is 1.15, while CUDA is V10.0.130. You can also check this and other environment details in interactive python prompt via the link to Kaggle, which I provided above.


Add support for parallel 2D simulations on static, uniform mesh

Corresponds to WP1 in #159.

@ranocha After I shut down Zoom for a while, I started to get consistent timings for executing
time -p julia --project=. -e 'using Trixi; Trixi.run("examples/2d/parameters.toml")'

with the different implementations. Here's what I got on my laptop:

Code version
Time (julia)
Time (TimerOutputs)
Time (rhs!)
Memory (TimerOutputs)
Memory (rhs!)

master
74.4s
22.6s
26.4ms
8.89 GiB
1.36 MiB

msl/mpi_parallel @ a0bb098
79.8s
24.3s
26.9ms
9.79 GiB
1.36 MiB

msl/mpi_parallel @ 3566b47
:exclamation: 101.6s
32.3s
27.4ms
:exclamation: 19.1 GiB
1.36 MiB

master:

msl/mpi_parallel @ a0bb098:

msl/mpi_parallel @ 3566b47:

Thus it seems that our change in the implementation, which mostly comes down to adding the MeshType to the Dg2D struct in a fancy way, increased the total time by >25%, and almost doubled the memory use. The runtime (and memory usage during the run) seems virtually unchanged, though, so I think this is not so much an issue of run time performance but of compile time performance. While I usually would discard this as something that shouldn't matter too much, the jump is just large enough that I do not feel comfortable with using the current version.

Just for comparison, here are the numbers for the corresponding setup in 3D, i.e.,
time -p julia --project=. -e 'using Trixi; Trixi.run("examples/3d/parameters.toml")'

Code version
Time (julia)
Time (TimerOutputs)
Time (rhs!)

Hmm, interesting. I can't determine the reason and a good solution - we would have to dig in and start debugging... But you're definitely right, that's a severe performance regression.

Hmm, interesting. I can't determine the reason and a good solution - we would have to dig in and start debugging... But you're definitely right, that's a severe performance regression.

I just added new numbers for the latest commit to https://github.com/trixi-framework/Trixi.jl/pull/167#issuecomment-689554207. Could you please check if you can reproduce the memory usage values for the two latest commits compared? Just to be sure that this is not something weird from my machine...

Could you please check if you can reproduce the memory usage values for the two latest commits compared?

I get similar memory reports and relative run times.

Could you please check if you can reproduce the memory usage values for the two latest commits compared?

I get similar memory reports and relative run times.

OK, thanks for checking. Then I am happy to report that the build times and memory consumption will get a lot better once we merge this :-)

@ranocha, does this kind of code make sense from a Julian point of view (ignoring whether it makes sense for us in the current setup):
https://github.com/trixi-framework/Trixi.jl/pull/167/files#diff-7669adb55bec39ee9d25007cf557c534R63-R80
Here I'm call MPI.Init() already from the module __init__() method to ensure that it is always initialized no matter how Trixi is started. Also, I store important global MPI state in constants (that I create as Refs to change their value from __init__(). Also, I am using evil eval to create some sort of "global trait" to allow dispatching on whether the global number of MPI domains is greater than one or not. Here's an example of the mpi_parallel() trait in use:
https://github.com/trixi-framework/Trixi.jl/pull/167/files#diff-003b06adb00885473daf39cd2a67cc59R16-R34
I do not need an answer immediately but it would be great if you could have a look such that we can discuss it later.

It doesn't really feel correct to me if we want to think of Trixi as a library. It's certainly fine to do that if you think of Trixi as a monolithic code, though.

I don't like to use global constants to determine the behavior of some code. A library should enable users to initialize multiple parts of the functionality independently of other stuff.
The decision whether or not to use MPI should be made more explicit, I think.
Do we really want all users to install MPI?

Another minor question: What happens if init_mpi() is called without using mpiexec?

@ranocha Thanks a lot for your comments!

I don't like to use global constants to determine the behavior of some code. A library should enable users to initialize multiple parts of the functionality independently of other stuff.
The decision whether or not to use MPI should be made more explicit, I think.

I fully agree with those points and think they are absolutely appropriate - in the general case. However, with MPI there is always the following conundrum: If you start an MPI application in parallel, it absolutely does not make sense to use it without MPI (you'd just be executing the same program with the same data on all processes). However, the only way to find out if an application is executed in parallel` is by initializing the MPI library and querying it for the number of available ranks. Thus what you usually do in MPI-enabled applications is that you call the MPI initialization method, check if the number of ranks is greater than one, and if yes, proceed in parallel. If no, there might be a different execution path (like we are aiming for right now), but many MPI applications often treat it all the same.
Thus, at the moment I really don't know what the "best" way forward is. From past experience, I would say it is inconvenient and error prone to have the user explicitly initialize MPI, and I'd prefer to have Trixi do this automatically such that it cannot be forgotten. However, this means that we either have to initialize MPI on using Trixi or we have to call the appropriate methods in each entry point to Trixi. However, with Taal/#187 coming up and no explicit order being specified in which you create the different structs, that would mean to place init_mpi() in each constructor, or to put it as the first call in each Trixi example file.
At the moment I'm leaning towards initialized MPI at using Trixi, but with Taal it could be an option to just call init_mpi() as the very first method for any Trixi run.

Do we really want all users to install MPI?

As discussed at the last meeting, for now I think this is an acceptable condition, especially since MPI currently available on all platforms supported by Julia.

If we want to interact with other packages in the Julia ecosystem, why should Trixi be the one to initialize MPI? If every package did that, we couldn't combine two packages being able to use MPI, I guess. Hence, the user should decide explicitly when/how/where to initialize MPI, I think.

MPI always has to be initialized only once. Thus a call to MPI.Initialized() || MPI.Init() is virtually always OK. An exception to this might be the fact that there are different levels of threading support that are offered by MPI, and a call to MPI.Init_thread() can specify those. But then again, this issue is probably not yet solved in a canonical way in the MPI Julia community.

Another minor question: What happens if init_mpi() is called without using mpiexec?

What you would expect if MPI were a sane library (which it is in this particular case ;-)): It will work fine and respond that there is only one rank available.

At the moment I'm leaning towards initialized MPI at using Trixi, but with Taal it could be an option to just call init_mpi() as the very first method for any Trixi run.

Okay. After thinking more about it, we should probably continue with your setup.

I plan on raising an issue at JuliaParallel/MPI.jl about this question. I think this is not a Trixi-specific issue, but there should be a canonical way to think about this problem and to solve it in MPI.jl directly.

@gregorgassner @ranocha @andrewwinters5000 This branch is now almost feature-complete, with only indicator smoothing for shock capturing still missing. Therefore, it would be great if you could start a review on the current implementation, since all the major structural changes are already implemented. Please be hard on the PR (I can take it ;-)), such that we can try to work out as much as possible about how we want to handle MPI-parallelized code, before we keep on adding more and more parallel code in the next WPs.

I'll look at it later. Just some quick questions.

You mentioned that you managed to use the REPL with MPI. How did you do that?
Did you compare the performance using MPI-based parallelization and threads for the same number of processes/threads?

You mentioned that you managed to use the REPL with MPI. How did you do that?

I've started adding some documentation on parallelization in Trixi here: https://github.com/trixi-framework/Trixi.jl/blob/msl/mpi_parallel/docs/src/parallelization.md. There I also added an explanation on how to use tmpi for running using the REPL with MPI. Feel free to comment on the file if something important is missing or if something is not clear.

Did you compare the performance using MPI-based parallelization and threads for the same number of processes/threads?

I did a quick comparison on pcm243 (Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz, two sockets, total of 12 cores). For the threading test, I used the following command:
julia --project=. --check-bounds=no -t NPROCS -e 'using Trixi; for i in 1:2; Trixi.run("examples/2d/parameters_source_terms.toml", initial_refinement_level=8, t_end=0.1, n_cells_max=100000); end'

For the MPI test, I started the REPL and executed
julia> using MPI

julia> mpiexec() do cmd
         run(`$cmd -n NPROCS julia --project=. --check-bounds=no -e 'using Trixi; for i in 1:2; Trixi.run("examples/2d/parameters_source_terms.toml", initial_refinement_level=8, t_end=0.1, n_cells_max=100000); end'`)
       end

Using the results from the second respective run, I get the following times for the main loop timer:

NPROCS
Multi-threading
MPI

6
30.9s
24.5s

8
27.0s
20.1s

As you can see, the numbers for MPI are typically slightly better, but the performance varies greatly and seems to indicate that there are some scalability issues. However, the machine I did the tests on is used by many other programs at the same time, so it would probably be good to repeat them on a cluster.

I am not sure about the naming of parallel.jl in io folder, maybe better io_parallel.jl?
I also wonder, why the new parallel routines are not directly in the io.jl file?

Except for auxiliary/auxiliary.jl, where only a very short method was parallelized, I always opted to leave the existing files as unchanged as possible and put all new methods (i.e., those for parallel execution) into a separate file called parallel.jl:
mesh/parallel.jl
io/parallel.jl
solvers/dg/2d/parallel.jl

My motivation was to a) not force users who don't care about parallel execution to see all the gory details of MPI and b) to allow getting a quick overview over which methods have parallel implementations. If you feel it would be better to do so, we can of course rename those files (consistently) to
mesh/mesh_parallel.jl
io/io_parallel.jl
solvers/dg/2d/dg_parallel.jl

Overall the implementation looks good to me. The fundamental changes to dg.jl are what I am used to for an mpi version. However, the amount of "under the hood" code for the trees and amr is very impressive. Great job Michael!
My only question is whether or not we should we add to the TODO list that we get a parallel Euler + gravity test working in MPI?

My only question is whether or not we should we add to the TODO list that we get a parallel Euler + gravity test working in MPI?

Good point. I added it as WP6 in #159.

The branch is ready for merge from my side. It would be great to get a final review (or a go-ahead).


Document change from acme_diags

Document the change from acme_diags to e3sm_diags in v2.6.0. Note: this change only affects the master docs, not the v2.6.0 docs.

@chengzhuzhang Thanks, I'll change the wording to that and merge!


Update SDNotify to 1.3

Updates info.faljse:SDNotify from 1.1 to 1.3.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "info.faljse", artifactId = "SDNotify" } ]

labels: library-update

Codecov Report

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

@@           Coverage Diff           @@
##           master     #287   +/-   ##
=======================================
  Coverage   89.85%   89.85%
=======================================
  Files         133      133
  Lines        2888     2888
  Branches      132      132
=======================================
  Hits         2595     2595
  Misses        293      293

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 f5e55bf...7b4c746. Read the comment docs.


String literal IRIs

IRIs should be IRIs, not string literals. But unfortunately they are often string literals!
It is tempting to ignore this and let the ontologies fix it but I think we should do a best effort. We can look at string literal values and if they are the IRI of an entity in the ontology, include the referenced entity in referencedEntities.
We can then do something similar in the frontend to replace the IRI with a label and a link.

Parsing arbitrary IRIs into human-readable CURIEs with canonical links is another feature of the Bioregistry. It would be great to try and turn IRIs that are both hard to read and hard to contextualize for the standard user of the OLS into nice CURIEs for display on the site.
I added a stub implementation in #175

We now have the linker which looks at all strings to see if they are the IRI of an entity defined in any ontology.


[JAX] Collective GEMM custom op with nvte_cublas_gemm (no comm. overlap)

Description
Implements both old-style and new FFI-based XLA custom calls in C++, and the corresponding JAX primitive including custom partitioning rules.
Custom partitioning rules for a LHS:([B,] M, K) x RHS:([B,] K, N) = OUT:([B,] M, N) batched mat-mul operation where [B] is the batch dimension:

Preserve the partitioning of the [B] dimension for all operands.
Always all-gather LHS along the M dimension.
Error out if RHS is partitioned in both K and N dimensions.
Force the K dimension of LHS to match the partitioning of the K dimension of RHS.
If K dimension is partitioned but M dimension is not, jax.lax.psum (all-reduce) the output over the TP mesh resource.
If both the M and K dimensions are partitioned, jax.lax.psum_scatter (reduce-scatter) the output over the TP mesh resource.

In practice, the RHS matrix (typically the weight tensor) should be allocated with transposed contracting dimensions ([B,] N, K) for optimal GEMM heuristics in cuBlasLt. This layout is also mandatory for FP8 inputs.
This PR does NOT update fused ops or Flax/Praxis modules to use the new GEMM custom op over the existing XLA pattern matching approach.
Type of change

[ ] Documentation change (change only to the documentation, either a fix or a new content)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Infra/Build change
[ ] Code refractor

Changes

[x] Added XLA custom calls for nvte_cublas_gemm.
[x] Added JAX primitive for the new XLA custom call.
[x] Added new serial unit test.
[ ] Add distributed unit test.

Checklist:

[x] I have read and followed the contributing guidelines
[ ] The functionality is complete
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Why? Normal JAX behavior is to do some gathering.

It seems that currently the batch size is not handled in the C++ code. Since JAX is using row-major storage for tensor by default, probably the batch dimension should be combined with the m dimension for LHS or the n dimension for RHS?


Combine crypt services

This service should evolve into a common (de)crypt service for interaction with eQ as well as (via different keys) internal service encryption.

Will be addressed as part of SDX evolution project. Currently out of scope.


fix #464 format config module javadoc

Ⅰ. Describe what this PR did
format config module javadoc
Ⅱ. Does this pull request fix one issue?
fix #464 format config module javadoc
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #465 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop     #465   +/-   ##
==========================================
  Coverage      28.69%   28.69%
  Complexity       644      644
==========================================
  Files            190      190
  Lines           7265     7265
  Branches         882      882
==========================================
  Hits            2085     2085
  Misses          4961     4961
  Partials         219      219

Impacted Files
Coverage Δ
Complexity Δ

...a/com/alibaba/fescar/config/FileConfiguration.java
50% <ø> (ø)
11 <0> (ø)
:arrow_down:

.../com/alibaba/fescar/config/NacosConfiguration.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...om/alibaba/fescar/config/ConfigurationFactory.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...ain/java/com/alibaba/fescar/config/ConfigType.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...m/alibaba/fescar/config/AbstractConfiguration.java
100% <ø> (ø)
16 <0> (ø)
:arrow_down:

...n/java/com/alibaba/fescar/config/ConfigFuture.java
63.82% <ø> (ø)
11 <0> (ø)
:arrow_down:

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 e11f81f...5c86c39. Read the comment docs.


No ILFunc attribute

I do not see it. Also please provide a message what exactly I have to write into "Pre-Build event command line".

The attribute can be any attribute named ILFuncAttribute. Its constructor should just take the IL string as the argument. This project is not supposed to be referenced by anything, only run as a separate pass after compilation.
For usage you can try invoking it without args - it should print how it is used. This tool was really just meant for my own use, and has some limitations (for example, it will probably break if the method you are replacing has other attributes on it). Another option, which is probably more mature, is at https://github.com/dotnet/corefxlab/tree/master/src/System.Slices/tools/ILSub.

C:\YourPathToILFunc\ILFunc.exe $(TargetPath) /debug


Authentication by Private Keys

This is a huge amount of work but I just cannot use it without support for private key auth. Not that familiar with FFI but looks like a private key Struct needs to be included and things would just work.

Simple way to auth from private key file

Not sure if you are still supporting this work but thought I would ask!
Thanks
Colin

So I did manage to getvthinhs working will post an example once it's a bit neater..
Again fab work.
Colin

Example of using private key for auth based on the examples in the repo..
https://gist.github.com/cconstab/11171392833db9a34a6f2da3ebacdc6b

@cconstab
thanks, glad you managed to do what you wanted, I use this package in a personal internal project and it has worked well for me, feel free if you want to contribute a pull request to add other features

Awesome thank you


Support Detrex as a library on Hugging Face

Hi Detrex team,
I've been following your development for quite some time. I'm Niels, working as part of the open-source team at Hugging Face. Fun fact, I contributed DETR to the Transformers library :) Detrex is
I was wondering whether you would be up for having an integration with the Hugging Face hub as a dedicated library. This would mean that individual Detrex checkpoints would be hosted for free on the Hugging Face hub, along with download stats for each model (similar to models in the Transformers, Diffusers or Timm libraries), better discoverability of your models through appropriate tags (like "object-detection": https://huggingface.co/models?pipeline_tag=object-detection), as well as a dedicated "Detrex" tag which could be added to the list of supported libraries.
This is explained in more detail here: https://huggingface.co/docs/hub/en/models-adding-libraries. Moreover, we could add code snippets using "Use in Detrex" buttons similar to the "Use in Transformers" button.
Along with this integration, it could allow to automatically push models trained using Detrex to the hub and reloading.
Let me know if this interests you!
Kind regards,
Niels
ML Engineer @ HF

It will be a milestone. @NielsRogge


Idiomatic way to limit amount of entities in the world?

Hello!
Before I dive into the problem at hand, let me say thank you!
Working with specs is awesome! A few years back I had started to write my own ecs (in C++ back then), but although it was tailored to my exact needs, specs beats it by leagues!
Thank you for doing the hard work!
My Problem
I want to limit the amount of entities in the world.
Now for my hacky attempt (first time playing around with specs) I created a resource that holds a count of entities within the world.
Whenever the user (or a spawner system) spawns another entity, the count goes up.
Whenever an entity is killed (by another system), the count goes down.
This doesn't work really well (my unproved assumption is: due to parallelism). In fact I had to guard the u16 that represents the number of entities in the world during deletion of entities, else I would get a panic at runtime after the first entity is spawned, because it (the u16) tried to go negative.
Now I can share the relevant parts of the code, but I wanted to ask whether there is an idiomatic way I missed by only partially digging through all of the examples.
I couldn't find a way to read the count of entities from Entities and also I am not sure it's accurate before maintaining.
Anyway, here is the code:
Maybe I am missing something totally obvious, like having to switch the order of maintain() with something else?
the main world-loop:
pub fn update(&mut self, gfx: &mut Gfx) -> () {
    use crate::gfx::resources::mesh::create_cube_mesh;

    self.ecs_dispatcher.dispatch(&self.ecs_world.res);
    self.ecs_world.maintain();

    let entities_in_world: u16 = self.ecs_world.read_resource::<EntitiesInWorld>().0;
    debug!(self.logger, "entities in world {}", entities_in_world);

    if entities_in_world < self.max_entities_in_world.into() {
        let entities_to_spawn = self.find_entities_to_be_spawned(gfx);
        debug!(self.logger, "entities to spawn: {}", entities_to_spawn.len());
        for (position, mesh_id) in entities_to_spawn {
            debug!(self.logger, "creating mob!");
            self.create_mob(&position, create_cube_mesh(1.0), gfx);
        }
    }
    self.clear_entities_to_spawn();
    self.update_entity_rendering();
}

the initialization of the (sp)ecs part of the world:
        ecs_world.register::<PositionComponent>();
        ecs_world.register::<VelocityComponent>();
        ecs_world.register::<SpawnerComponent>();

        ecs_world.add_resource(EntitiesToSpawn(Vec::new()));
        ecs_world.add_resource(EntitiesInWorld(0));

        let ecs_dispatcher = EcsDispatcherBuilder::new()
            .with(DeleteFarAwayNpcSystem, "DeleteFarAwayNpcSystem", &[])
            .with(SpawnNpcSystem, "SpawnNpcSystem", &["DeleteFarAwayNpcSystem"])
            .with(UpdatePositionSystem, "UpdatePositionSystem", &["SpawnNpcSystem"])
            .build();

and the systems:
pub struct SpawnNpcSystem;

impl<'a> System<'a> for SpawnNpcSystem {
    type SystemData = (ReadStorage<'a, Position>,
                       ReadStorage<'a, SpawnerComponent>,
                       Write<'a, EntitiesToSpawn>,
                       Write<'a, EntitiesInWorld>);

    fn run(&mut self, (positions, spawners, mut entities, mut entities_in_world): Self::SystemData) -> () {
        use specs::Join;

        for (position, spawner) in (&positions, &spawners).join() {
            entities.0.push(SpawnedEntity { position: position.0.clone(), mesh_id: Some(0) });
            entities_in_world.0 += 1;
        }
    }
}

pub struct DeleteFarAwayNpcSystem;

impl<'a> System<'a> for DeleteFarAwayNpcSystem {
    type SystemData = (ReadStorage<'a, Position>,
                       ReadStorage<'a, SpawnerComponent>,
                       Write<'a, EntitiesInWorld>,
                       Entities<'a>);

    fn run(&mut self, (positions, spawners, mut entities_in_world, mut entities): Self::SystemData) -> () {
        use specs::Join;

        for (position, (), entity) in (&positions, !&spawners, &entities).join() {
            if position.0.x.abs() > 20.0 || position.0.y.abs() > 20.0 || position.0.z.abs() > 20.0 {
                entities.delete(entity).expect("Couldn't delete entity");
                if entities_in_world.0 > 0 {
                    entities_in_world.0 -= 1;
                }
            }
        }
    }
}

Hello, I'm glad you enjoy Specs.

I want to limit the amount of entities in the world.

Interesting, that's a case I've not heard of yet.
Looking at your code, the problematic lines are in DeleteFarAwayNpcSystem:
entities.delete(entity).expect("Couldn't delete entity");
if entities_in_world.0 > 0 {
    entities_in_world.0 -= 1;
}

Entities deleted using EntitiesRes::delete get only marked for deletion; that means they can still be joined over (basically they exist for the rest of the frame, and get deleted at the end). That means you can delete the same entity twice like that, the real entity count will decrease only by one but your counter goes down by two.
I think this is best solved by exposing some additional API from Specs (also, I should probably expand the docs on this). I can imagine:

EntitiesRes::is_flagged returning a bool whether or not an entity is flagged for deletion
EntitiesRes::num_entities

I think both would be valuable to have for your case, even though the last one is enough to cover it.
As for the implementation, the first one can simply perform a load on the respective bit in alloc.killed.
The num_entities method might be a bit trickier depending on how fast it should be. The potential issues are:

we can only get a snapshot of the active entities
ideally, we should perform a parallel bit set count instead of counting iteration elements; such a function can be found in hibitset/util.rs, but I don't think it's exposed yet
it's unclear whether flagged entities should be taken into account for this

Depending on your exact requirements, you might not want to track the global count, but instead only the count allocated by a specific (group of) systems, and only limit those. In that case you'd have to guard against the case where an entity is flagged twice.

@torkleyy Thanks a bunch for taking the time to explain.

Hey @Abendstolz the way I solved a problem similar to yours was by creating a GC system.
Every time, let's say an NPC, is killed, it's marked with a GC component, and then the GC system loops through all these and deletes them.