Engine 1.10.0-rc1 returns different error string on image not found, breaks existing clients

Clients that leverage https://github.com/samalba/dockerclient/blob/master/dockerclient.go#L117  expect the error string coming back from the engine to contain  "No such image" when specifying an invalid image.  It appears that invalid image IDs in 1.10.0-rc1 are now returning errors that look like this:
time="2016-01-25T04:04:03.277926426Z" level=error msg="Handler for POST /v1.15/containers/create returned error: open /mnt/sda1/var/lib/docker/image/aufs/imagedb/content/sha256/c23997c23be934d8d7b8ec72436ae734588a0cba8f07995d9317c5aee1d60576: no such file or directory"

This appears to break swarm 1.1.0-rc1 which is no longer able to detect a missing image on a node and fall back to image affinity scheduling decisions.  See https://github.com/docker/swarm/blob/master/cluster/engine.go#L700 and https://github.com/docker/swarm/blob/master/cluster/swarm/cluster.go#L134
While the code in swarm could be hardened to look for the new strings, since there are many clients out there that leverage https://github.com/samalba/dockerclient which may not ship a new version aligned with the 1.10 release, it seems like engine should make sure "No such image" shows up in the error message someplace to prevent breaking them.

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
For more information about reporting issues, see CONTRIBUTING.md.
You don't have to include this information if this is a feature request
(This is an automated, informational response)

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

We should at least make sure that older API versions return the old error message. (But looking at the error message we return, it should be fixed for all version, as the new message contains information that's irrelevant to the client)
Do we return a 404 status in these cases? Hardening Swarm to check for the status-code instead of the message sounds like a better approach overall
/cc @calavera @tiborvass

Actually, meant to ping @tonistiigi, as I expect this to be related to the new content addressable store

I haven't tested it, but just looking at the code in the new engine-api client, I think it too will get tripped up by the change in error message:
https://github.com/docker/engine-api/blob/master/client/container_create.go#L36 and 42
It seems to be looking for 404 && "No such image"

To elaborate on my test case a little, as this may be specific to the usage pattern, my test scenario builds images without naming/tagging, then does an inspect, and tries to create containers based on the image ID, which in 1.10 winds up being something like sha256:c23997c23be934d8d7b8ec72436ae734588a0cba8f07995d9317c5aee1d60576
In my particular case, I was testing on swarm, which tried to run this container on the wrong node in the cluster first, but since it didn't get the expected error string back, it never retried with image affinity - the image is present on another node in the cluster from the prior build.

Thanks for the extra info.
Agreed, the error message clearly looks to be "off". Looking at the engine-api code, there's some code smell; these lines seem to duplicate the other part, and don't check if serverResp or err are nil;
https://github.com/docker/engine-api/blob/a4ec5b48ecccfd2da5722e304137a8e68d40a30f/client/container_create.go#L42-L48

@dhiltgen What am I doing wrong when I try to reproduce this?
» curl <IP_ADDRESS>:2345/images/sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efe7ec8/json -i
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
Server: Docker/1.10.0-rc1 (linux)
X-Content-Type-Options: nosniff
Date: Mon, 25 Jan 2016 17:46:53 GMT
Content-Length: 87

No such image: sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efe7ec8

» curl <IP_ADDRESS>:2345/images/foobar/json -i
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
Server: Docker/1.10.0-rc1 (linux)
X-Content-Type-Options: nosniff
Date: Mon, 25 Jan 2016 17:47:00 GMT
Content-Length: 22

No such image: foobar

» curl <IP_ADDRESS>:2345/images/foobar/json -i
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
Server: Docker/1.9.1 (linux)
Date: Mon, 25 Jan 2016 17:47:13 GMT
Content-Length: 22

No such image: foobar

» curl <IP_ADDRESS>:2345/images/sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efe7ec8/json -i
HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
Server: Docker/1.9.1 (linux)
Date: Mon, 25 Jan 2016 17:47:23 GMT
Content-Length: 87

No such image: sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efe7ec8

Give me a bit to distill down my test code to a minimalist repro scenario.

Here's an example:

package main

import (
	"fmt"
	"log"
	"os"
	"path/filepath"

	"github.com/docker/docker/pkg/tlsconfig"
	"github.com/samalba/dockerclient"
)

var (
	Image = "sha256:c23997c23be934d8d7b8ec72436ae734588a0cba8f07995d9317c5aee1d60576"
)

func main() {
	fmt.Printf("Client Version: %s\n", dockerclient.APIVersion)
	certDir := os.Getenv("DOCKER_CERT_PATH")
	if certDir == "" {
		log.Fatalf("This client only works with a TLS enabled endpoint")
	}
	caFilename := filepath.Join(certDir, "ca.pem")
	certFilename := filepath.Join(certDir, "cert.pem")
	keyFilename := filepath.Join(certDir, "key.pem")
	tlsConfig, err := tlsconfig.Client(tlsconfig.Options{
		CAFile:   caFilename,
		CertFile: certFilename,
		KeyFile:  keyFilename,
	})
	if err != nil {
		fmt.Printf("Failed to setup TLS: %s\n", err)
		os.Exit(1)
	}
	c, err := dockerclient.NewDockerClient(os.Getenv("DOCKER_HOST"), tlsConfig)
	if err != nil {
		fmt.Printf("Failed to connect: %s\n", err)
		os.Exit(1)
	}

	// just make sure the connection is happy
	ver, err := c.Version()
	if err != nil {
		log.Fatalf("Failed to get version: %s", err)
	}
	log.Println("Conencted to server version %s", ver.Version)

	// Now set up the container
	cfg := &dockerclient.ContainerConfig{
		Image: Image,
		Cmd: []string{
			"--help",
		},
	}
	hostConfig := &dockerclient.HostConfig{}
	log.Printf("Creating container\n")
	containerId, err := c.CreateContainer(cfg, "", nil)
	if err != nil {
		log.Fatalf("Failed to create container: %s", err)
	}

	//defer c.RemoveContainer(containerId, false, false)

	log.Printf("Starting container %s\n", containerId)
	if err := c.StartContainer(containerId, hostConfig); err != nil {
		log.Fatalf("Failed to launch container: %s\n", err)
	}
	//defer c.StopContainer(containerId, 5)
	log.Printf("Done - docker logs %s\n", containerId)
}

When I run it pointed at a machine with 1.10.0-rc1, here's what I see:
Client Version: v1.15
2016/01/25 10:06:27 Conencted to server version %s 1.10.0-rc1
2016/01/25 10:06:27 Creating container
2016/01/25 10:06:27 Failed to create container: open /mnt/sda1/var/lib/docker/image/aufs/imagedb/content/sha256/c23997c23be934d8d7b8ec72436ae734588a0cba8f07995d9317c5aee1d60576: no such file or directory

I should mention, this may not require doing the operation over TLS, but all my rigs are set up that way (using docker-machine) so that's how I have my client code structured.


Optimize memory allocation

In https://github.com/phetsims/calculus-grapher/issues/210, we are optimizing Calculus Grapher to improve responsiveness when manipulating (dragging) interactive curves.
We noticed that bamboo does not appear to have been optimized, and is in fact doing unnecessary memory allocation.
For example, let's look at LinePlots.ts, whose update methods is similar to other bamboo plots.  Making the change shown below would result in 1 less Vector2 allocation for every member of this.dataSet.  Since dataSets are typically large and often updated frequently, this is a significant optimization.
public update(): void {
  ...
      if ( dataPoint ) {
-       const viewPoint = this.chartTransform.modelToViewPosition( dataPoint );
+       const viewX = this.chartTransform.modelToViewX( dataPoint.x );
+       const viewY = this.chartTransform.modelToViewY( dataPoint.y );
        if ( moveToNextPoint ) {
-         shape.moveToPoint( viewPoint );
+         shape.moveTo( viewX, viewY );
          moveToNextPoint = false;
        }
        else {
-         shape.lineTo( viewX, viewY );
+         shape.lineToPoint( viewPoint );
        }
      }

In KITE/Shape, all the syntactic sugar methods associated with line and move are funneled to lineToPoint and moveToPoint. So the problems may not lies in Bamboo but in Shape. Otherwise, there is no way to avoid allocating a new Vector2 in Bamboo.

@jonathanolson can you please comment on whether we can optmize Shape so that it's not allocating Vector2 for every lineTo and moveTo operation.  It seems backwards that (for example) lineTo allocates a Vector2 and calls lineToPoint.

This might be a huge lift:
lineToPoint( point ) {
    // see http://www.w3.org/TR/2dcontext/#dom-context-2d-lineto
    if ( this.hasSubpaths() ) {
      const start = this.getLastSubpath().getLastPoint();
      const end = point;
      const line = new Line( start, end );
      this.getLastSubpath().addPoint( end );
      this.addSegmentAndBounds( line );
    }

Line extends Segment which makes extensive use of vector methods to find a tangent to a line.

Ugh. I see zero optimizations that we can make in LinePlot, because of the way Shape methods are implemented.

I'm a bit confused, perhaps this it worth a zoom call? Calling lineToPoint() shouldn't be allocating extra Vector2s.

I could look into pooling the vectors that are created, however it would require tracking for Shape to know the owner of each Vector2 (since they could be directly provided by the user).

So presumably you could pool Vector2s and use lineToPoint, and when you free them they could then be used for future allocations.

I'm a bit confused, perhaps this it worth a zoom call? Calling lineToPoint() shouldn't be allocating extra Vector2s.
@pixelzoom and I were trying to save a vector allocation from Bamboo, and we naively thought that we would save one by using lineTo( x, y ) but then Shape would create a vector allocation to pass it to lineToPoint. The alternative is to create a vector allocation in bamboo and then called lineToPoint. Either way, that six of one, half a dozen of the other.

I think your comment about pooling Vector2s in bamboo might be the way forward.

@jonathanolson said:

I'm a bit confused, perhaps this it worth a zoom call? Calling lineToPoint() shouldn't be allocating extra Vector2s.

I didn't say that lineToPoint( point ) allocates Vectors. I said that lineTo( x, y ) allocates a Vector, and then calls lineToPoint( point ).  This is the opposite of an optimized implementation.  And optimized implementation would provide lineTo( x, y ) as the more efficient method with lineToPoint( point ) as a convenience that calls lineTo( x, y ).  See for example the many ModelViewTransform methods.
So is it possible to change this, so that lineTo( x, y ) doesn't result in a Vector2 allocation?

We got acceptable performance in calculus-grapher by making sim-specific optimizations. So we're not going to proceed with this issue. Closing.


feat: support migrate slot range[draft]

issues: https://github.com/apache/kvrocks/issues/2355
This draft PR demonstrates how to support migrating slot ranges.
What I Did
1 Migration job - 1 slot range:

I encapsulated a SlotRange structure and changed the migration-related class members from a single slot to a slot range.
Reference: https://github.com/apache/kvrocks/issues/412. Slot migration includes the following phases: start migration, migrate existing data, migrate incremental data, and end migration. In each modified phase, the entire slot range must be completed before moving to the next phase.

TODO
TODO represents the items I hope to discuss.

Support multiple slot ranges:

Current situation: Only one migration job can be performed at a time, and each migration job corresponds to a slot range.
Possible modification: Allow multiple migration jobs, migrating sequentially or in parallel.

Perform multiple migrations consecutively but do not immediately use setslot to update the topology, referring to the example in TestSlotRangeMigrate:

	t.Run("MIGRATE - Repeat migration cases, but does not immediately update the topology via setslot", func(t *testing.T) {
		// Disjoint
		require.Equal(t, "OK", rdb0.Do(ctx, "clusterx", "migrate", "114-116", id1).Val())
		waitForMigrateSlotRangeState(t, rdb0, "114-116", SlotMigrationStateSuccess)
		require.Equal(t, "OK", rdb0.Do(ctx, "clusterx", "migrate", "117-118", id1).Val())
		waitForMigrateSlotRangeState(t, rdb0, "117-118", SlotMigrationStateSuccess)
		require.Equal(t, "OK", rdb0.Do(ctx, "clusterx", "migrate", "112-113", id1).Val())
		waitForMigrateSlotRangeState(t, rdb0, "112-113", SlotMigrationStateSuccess)

		errMsg := "Can't migrate slot which has been migrated"
		// TODO: Migrating 112-113, but 114-118 is covered and cannot be detected.
		// require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "114-116", id1).Err(), errMsg)
		// require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "117-118", id1).Err(), errMsg)

		// Intersection
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "112", id1).Err(), errMsg)
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "112-112", id1).Err(), errMsg)
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "113", id1).Err(), errMsg)
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "113-113", id1).Err(), errMsg)

		// Subset
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "112-113", id1).Err(), errMsg)
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "112-120", id1).Err(), errMsg)
		require.ErrorContains(t, rdb0.Do(ctx, "clusterx", "migrate", "110-112", id1).Err(), errMsg)
	})

This situation also seems to exist in the original single slot migration, and I am not sure if such operations are reasonable.
migrate A => migrate B => setslot A&B
migrate A => migrate B => migrate A (expected to fail, but allowed to pass) => setslot A&B

// slotrange A-C
migrate A-B => migrate C => setslot A-C
migrate A-B => migrate C => migrate B (expected error, but allowed to pass) => setslot A-C

More precise migration failure slot range:
The current implementation determines the entire slot range to fail and cleans it up, and the user later migrates the entire slot range again.
Do we want to support a more precise failure range? For example, [start_slot-fail_slot), [fail_slot, end]. Users can check the status with commands such as cluster info and then re-migrate the failed slot range by themselves. (Personally, I think it's a bit cumbersome and error-prone)

Miscellaneous
Other suggestions are welcome, such as more testing, code optimization, better user interaction, etc.

@git-hulk @caipengbo
If it's convenient, I would like to discuss some matters related to the TODO list:
First, regarding item 2 on the TODO list, I find this situation a bit confusing because I am not sure if this is the intended design of kvrocks. If possible, please determine whether this is a normal situation.
Second, concerning items 1 and 3 on the TODO list, these are enhancements. Please evaluate whether these features are needed and if they should be included in this PR.

@PokIsemaine

First, regarding item 2 on the TODO list, I find this situation a bit confusing because I am not sure if this is the intended design of kvrocks. If possible, please determine whether this is a normal situation.

This is indeed the case at the moment. The migrated slots is not checked when the migration is performed, and I think they should be checked.

Second, concerning items 1 and 3 on the TODO list, these are enhancements. Please evaluate whether these features are needed and if they should be included in this PR.

I think these are good improvements, but we can add them in the subsequent PR. This PR is enough.

Ok, thanks for the suggestion. So for the second TODO, do we try to fix it at this PR or create another separate issue to track it?

for the second TODO, do we try to fix it at this PR or create another separate issue to track it?

Let's fix it in this PR.

@PokIsemaine I think this PR is ready to review now?

@PokIsemaine I think this PR is ready to review now?

You can start the review now :)
The clang-tidy check in the CI doesn't seem to be working, so please try to re-run it. This works in my local and fork repository CI.

Could you fix these clang-tidy issues?
/home/runner/work/kvrocks/kvrocks/build/_deps/fmt-src/include/fmt/base.h:1619:3: error: static_assert failed due to requirement 'formattable_pointer' "Formatting of non-void pointers is disallowed." [clang-diagnostic-error]
Suppressed 21102 warnings (21069 in non-user code, 32 NOLINT, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
  static_assert(formattable_pointer,
  ^             ~~~~~~~~~~~~~~~~~~~
/home/runner/work/kvrocks/kvrocks/build/_deps/fmt-src/include/fmt/base.h:2002:20: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::context, double (double) noexcept, 0>' requested here
  return {{detail::make_arg<NUM_ARGS <= detail::max_packed_args, Context>(
                   ^
/home/runner/work/kvrocks/kvrocks/build/_deps/fmt-src/include/fmt/format.h:4357:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::context, double (double) noexcept, std::basic_string<char>, 2UL, 0UL, 223ULL, 0>' requested here
  return vformat(fmt, fmt::make_format_args(args...));
                           ^
/home/runner/work/kvrocks/kvrocks/src/cluster/slot_migrate.cc:394:33: note: in instantiation of function template specialization 'fmt::format<double (&)(double) noexcept, std::basic_string<char> &>' requested here
    return {Status::NotOK, fmt::format("failed to iterate keys of slot {}: {}", slot, err_str)};
                                ^
/home/runner/work/kvrocks/kvrocks/src/cluster/slot_migrate.cc:393:66: error: use of undeclared identifier 'slot' [clang-diagnostic-error]
    LOG(ERROR) << "[migrate] Failed to iterate keys of slot " << slot << ": " << err_str;
                                                                 ^
/home/runner/work/kvrocks/kvrocks/src/cluster/slot_migrate.cc:394:81: error: use of undeclared identifier 'slot' [clang-diagnostic-error]
    return {Status::NotOK, fmt::format("failed to iterate keys of slot {}: {}", slot, err_str)};
                                                                                ^

@PokIsemaine I think this PR is ready to review now?

You can start the review now :)
The clang-tidy check in the CI doesn't seem to be working, so please try to re-run it. This works in my local and fork repository CI.

Thank you! I will take another pass in one or two days.

Will merge this PR if no further comments and CI is passed.

Nice work, thanks!


Barchart URI Redirect [Finance]

The correct URL is
https://www.barchart.com/ondemand/free-market-data-api

Barchart terminated its free API on December 31, 2020. Barchart should be removed altogether (I didn't know if you wanted a pull request removing an item).

Barchart terminated its free API on December 31, 2020. Barchart should be removed altogether (I didn't know if you wanted a pull request removing an item).

Thanks. Fixed

Thanks. Fixed


Add CSS for the Emergency Form in Contributers Codes Folder

Write the CSS code in a separate file and link it to the Emergency Form.html file

please assign me this issue

Go Ahead !


Not able to drag inside an empty node

I am not able to drag anything inside a node which is empty. If the node has atleast another node, then the dragging works fine but if a node is empty, it never allows me to drop anything inside it.

I also see this issue on the demo page provided http://angular-ui-tree.github.io/angular-ui-tree/#/basic-example
For eg if I want to drop a Node 3.1 inside Node 2.2 , I am not able to do it.
Let me know if you need any further details.
Regards,
Akshay

I've the same issue.

I've the same issue.

if anyone has any pointers on how to fix this, would be great.

I have the same issue..Can anyone help to fix this issue?

@mehtaakshay2206 I can drag node 3.1 inside 2.2, just move the mouse a little bit to the right.

As a point of interest, I can also drag into 2.2, as described by @pzagor2.
Its possible this is a X-brower issue, or perhaps just user error.
This works for me on Chrome/OSX

ahhhh. ok one wouldn't know it needs a bit of implied indentation to make it do that :)
so not so much a user error, more a documentation thing?
thanks all.

Hi,
@zachlysobey I have tested on the Basic Example both Chrome OSsX and Windows but it does not work, I have evn tried to use the trick proposed by @pzagor2 moving the mouse a little bit on the right but the node 3.1 goes or up or down the node 2.2.
Should I expect the node 2.2 gets a collapse/expand symbol with node 3.1 inside?
Help is really much appreciated :wink:

It was trickier to get working with the plnkr (no placeholders, etc...), but it did work for me.

On the basic example. After dragging 3.1 node to be a child of 2.2 I do see the expand/collapse icon. Nodes without any children themselves do not get this icon.
I have to say I'm pretty confused about what the issue is for you. Might be something better demonstrated with a video or screen-sharing?

Hi,
I have recorded a small video to show what happens. I have played on your website using Chrome browser on Windows 7 and I am not able to get it work, may be I am doing something not totally correct.
Yesterday I was doing it on Chrome for OSX and I got the exact same issue.
Thanks a lot @zachlysobey and @pzagor2 for the help :wink:

Hey blackat drag the node 3.1 to under 2.1 - drop it. Then grab it and just pull it right - as if you wanted to indent it.

@blackat I know what you are talking about. I just implemented this into our product and QA team had the same problem as you. You have to drop item quite far to the right to get it into child group.
I think at 0:23 you even got the right drop zone highlighted.
I wonder if there is an easy way to change it so that you can drop it on top of the node and this would make it go into the child group?

Sorry man but I do not see any drop zone highlighted :wink:

@All : Actually I am still facing the issue. Help ASAP will be appreciated.

+1: Same issue

Solution here: https://github.com/angular-ui-tree/angular-ui-tree/issues/245 children: [] is mandatory. That was my problem!

@acaron thanks a lot for the hint, I will try asap :wink:

Closing this issue due to inactivity. See #815 for more information.
Please create a new issue is this still occurs with the current version of the component.


delay shutdown if apt update/upgrade is running

as mentioned in https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/860

Hi @andreasbrett
what a nice edge case to have :)
@s-martin
this is currently going to master. Should I change it to develop?

Oh, didn't see that.
Yes, I would merge it to master as it is no urgent hotfix.

Hi @s-martin @andreasbrett
this has been merged with master. We would also need this to be in develop - if it works as planned. Difficult to test, no?
If it works (or at least doesn't break anything), I take @andreasbrett feedback as sufficient ;) - I will add it to develop as well.
?

I think we should add it to develop also, but not sure how this can be tested.


code quality comments for dalessr

header comments do not follow the convention we specify. Returns ... is a better way of writing it

eliminate these not-very-useful comments

try to split these to multiple lines for better readability

@dalessr FYA

I will pay attention to it. Thanks a lot!


Axis titles

Occasionally, it's not apparent what a given axis/labels is/are referring to. Axis titles help to bring context.
I was hoping to handle axis titles myself outside the chartist.js by using absolutely positioned psuedo elements. For example:
HTML:

CSS:
.ct-chart { position: relative; }

[data-x-axis]::before {
  content: attr(data-x-axis);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  text-align: center;
}

[data-y-axis]::after {
  content: attr(data-y-axis);
  position: absolute;
  /* vertical text rotation stuff */
}

But that produces a few problems:

Takes axis title elements out of normal flow. In my example, axis titles are absolutely positioned. I could add a margin to the chart element, but that gets especially harry if the axis title needs to wrap to a second line
Titles are never truly centered in relation to axis lines. The labels add extra padding to the chart pane.
Reliably positioning y-axis rotated text is a huge pain... if not impossible. I can't seem to find a way to position the title reliably. Especially if the y-axis title needs to wrap to a second line.

My SVG text positioning knowledge is quite limited, but I would think this problem would be better handled in SVG over HTML/CSS.

Hi Gion,
Could you possibly supply an example of how to add axis titles? Wonderful js library by the way.
Thanks!

Great idea, thanks @dsbudiac

It seems Chartist still doesn't support axis title right now, correct? I think this is a very essential function... so it doesn't make sense if it doesn't exist here.

That's right however dsbudiac's solution is prettey easy to implement and use

I'm reopening this for discussion

After further consideration, I'm still not convinced that this should go into the core of Chartist. I just think that placing a simple text to show an axis title is something every web developer should be able to do outside of Chartist. @dsbudiac solution is pretty cool, however he outlines a few important issues specially with rotated text. This could definitely be solved with SVG as text positioning is much better there (except the multi line thing). However, only for this aspect I think it would be a feature bloat to take this into Chartist. In a regular product I'd say it's an essential feature to have legends and axis titles. However, in a web library that builds on the extensibility of HTML, this feature becomes obsolete.
If due to the limitations of text rotation in CSS and missing positioning / layout features related to the drawing in Chartist, I'd recommend someone takes the time to write a Chartist plugin.
Long story short. I'm closing this issue :-))

I must disagree with you @gionkunz, this is an extremely essential function for any charting library, no matter what it's built on. In fact, I loved your library and started using it until I found this issue. Doing it in HTML is a pain because the browsers handle rotation differently, and if we're using your library we obviously don't have time to learn all of SVG, or we'd just make the graphs in SVG ourselves! That's why we use libraries: to save time by not needing to reinvent the wheel. Long story short: this is the reason my team and myself decided to not use your software. In part this specific function but also because you obviously don't listen your own users who tell you it's needed.

I'd also like to see chart titles if possible .. :-)

+1 from me as well, not being able to add axis titles may lead me to choose another library.

@adarsh Axis labels are possible using the axis title plugin: http://gionkunz.github.io/chartist-js/plugins.html#axis-title-plugin

Ah yes, I found that after some searching.
I've opened a PR to point to the plugins page in
https://github.com/gionkunz/chartist-js/pull/473.
Thanks!
--
@adarshp http://www.twitter.com/adarshp
313.454.1515 (mobile)
See when I am free: http://bit.ly/adarshcal
On Wed, Sep 30, 2015 at 5:22 AM, Gion Kunz<EMAIL_ADDRESS>wrote:

@adarsh https://github.com/adarsh Axis labels are possible using the
axis title plugin:
http://gionkunz.github.io/chartist-js/plugins.html#axis-title-plugin
—
Reply to this email directly or view it on GitHub
https://github.com/gionkunz/chartist-js/issues/27#issuecomment-144378690
.

Hi. I'm also looking for labels, but just labelling the axis doesn't help when you have multiple series lines on one graph?
I could just add separate labels myself underneath, but is there a better way to get the right colours used for the lines, except just hardcoding them?
Thanks!


Implicitly confine the cursor when it can't leave to another display

Closes https://github.com/ppy/osu/issues/18159

Previously, moving the mouse outside the window in fullscreen would warp it and give back control to the OS. The OS would then warp the cursor back into the game window. In this short period, the cursor would jitter between being inside and outside the window.
The solution provided is not perfect, the cursor can still jitter if Sensitivity < 1:
Eg. on a 1920x1080 display, it can go down to 1079.9999999999, but will warp to 1079 flat. Importantly, it'll never leave the window.
This can probably be fixed by checking if there are adjacent displays, and then warping if > 1079 instead of >= 1080, but it's not really that important. (Always checking for > 1079 would leave the cursor in an invalid position when it's in-between two displays—potentially preventing it from escaping the window.)

Conceptually this makes sense. Going to get it in for battle testing.


"Python" typo

I think it's a typo since everything in this repository is about Bash.

Good catch, thank you.


Tuning for higher simulation timestep

Hi,
I'm an engineer and I'm trying to tune the assets I'm using with Mujoco to allow for consistent behaviour for different timesteps.
My goal is to increase the timestep of the simulation for the environment I am using from 3ms to 10ms.
I've set the solref of the geoms to -2500, -100
With some of the meshes I am encountering a weird shaking behaviour.
https://github.com/google-deepmind/mujoco/assets/10591561/af37db56-3020-4491-8770-9e4664885749
As seen in this video, the object is a convex hull and the ground is also a convex hull.
My approach right now is to model the assets with primitives as much as I can.
However, I would like to know is this behaviour expected at 10ms timestep? Are there tips I can follow to work with higher timesteps?
I couldn't find a reference on how to set the negative solref parameters for contact. What is a good default value for rigid bodies?
Thanks

Hi @tawjaw, can you attach a minimal example (plane + mesh) and I can take a look.

You can try using the multiCCD flag.
That said, 10ms is pretty large.
Closing due to lack of activity.


issue how to get HTML content from webview2 to detect malicious code (chromium edge)

when I load a web page, I want to get the HTML of this web page and to check is there any malicious code ??  like javascript code or HTML content
I check to  https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/icorewebview2webresourcerequest?view=webview2-1.0.992.28#get_content.  Cannot find any useful method that can do this job.
I use win32 to doing window coding.
browser: chromium edge

Hi @spidemen - can you post your question on the following Engineering repo to get an answer to your question? Thanks!
https://github.com/MicrosoftEdge/WebView2Feedback


Tesselation example

Description
Add example showing how to use tesselation.
List of changes

added An example showing how to draw a cubic Bézier curve using tesselation.
changed List of contributors in the readme

I hope it's fine that I'm using glfw and not the examples-module. I have been using glfw all the time and there was no example for it yet. Feel free to change that if you want the examples to be consistent.


change default value for attendees to empty list

Description
Calling function: create_event with args: {"title":"*******","start_datetime":"*********","end_datetime":"********","location":"*********"}
Got output: Error: 'NoneType' object is not iterable

The create_event function throws the above error when there are no attendees in the user query.
Fixes # (issue)
Change the default value for attendees from None to an empty list
New Package?
Did I fill in the tool.llamahub section in the pyproject.toml and provide a detailed README.md for my new integration or package?

[ ] Yes
[X] No

Version Bump?
Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

[ ] Yes
[X] No

Type of Change
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Added new unit/integration tests
[ ] Added new notebook (that tests end-to-end)
[ ] I stared at the code and made sure it makes sense

Suggested Checklist:

[X] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added Google Colab support for the newly added notebooks.
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I ran make format; make lint to appease the lint gods

cc @logan-markewich thanks! 🙏


fix: ipfs download move to target dir

Proposed changes
fix: ipfs download move to target dir
Fixes
small fix after refactoring at https://github.com/valory-xyz/open-aea/pull/480/files
Types of changes

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply.

[ ] I have read the CONTRIBUTING doc
[ ] I am making a pull request against the develop branch (left side). Also you should start your branch off our develop.
[ ] Lint and unit tests pass locally with my changes and CI passes too
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked that code coverage does not decrease.
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...
DELETE INCLUSIVE THIS AND BELOW FOR STANDARD PR
Release summary
Version number: [e.g. 1.0.1]
Release details
Describe in short the main changes with the new release.
Checklist
Put an x in the boxes that apply.

[ ] I have read the CONTRIBUTING doc
[ ] I am making a pull request against the main branch (left side), from develop
[ ] Lint and unit tests pass locally and in CI
[ ] I have checked the fingerprint hashes are correct by running (aea packages lock --check)
[ ] I have regenerated the latest API docs
[ ] I built the documentation and updated it with the latest changes
[ ] I have added an item in HISTORY.md for this release
[ ] I bumped the version number in the aea/__version__.py file.
[ ] I bumped the version number in every Docker image of the repo and published it. Also, I built and published them with tag latest
(check the READMEs of aea-develop
and aea-user)
[ ] I have pushed the latest packages to the registry.
[ ] I have uploaded the latest aea to PyPI.
[ ] I have uploaded the latest plugins to PyPI.

Further comments
Write here any other comment about the release, if any.

Codecov Report
Base: 92.90% // Head: 92.90% // No change to project coverage :thumbsup:

Coverage data is based on head (9c110c3) compared to base (00c0671).
Patch coverage: 100.00% of modified lines in pull request are covered.

:exclamation: Current head 9c110c3 differs from pull request most recent head fc6a40c. Consider uploading reports for the commit fc6a40c to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #511   +/-   ##
=======================================
  Coverage   92.90%   92.90%
=======================================
  Files         353      353
  Lines       28798    28798
=======================================
  Hits        26754    26754
  Misses       2044     2044

Flag
Coverage Δ

unittests
92.90% <100.00%> (ø)

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

Impacted Files
Coverage Δ

plugins/aea-cli-ipfs/aea_cli_ipfs/ipfs_utils.py
100.00% <100.00%> (ø)

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


intro update

Thanks, this is great! Made some slight edits and merged via Gitbook here: https://github.com/42labs/Empiric/commit/a03648f474dac2d843369674dc6aa86d94b00a8e


[QUESTION] Attribute Release Policies through XACML

Question
We have a case that in a multivalue attribute (i.e. eduPersonEntitlements)  with values x,y,z we want SP A to be able to get x,y values only and SP B to be able to get value y,z only
In Shibboleth this can be managed through Idp Attribute Release Policies
https://wiki.shibboleth.net/confluence/display/SHIB/IdPARPConfig
where you can define not only which attributes should be released to the SP's but also which values of the attributes could be released.
In WSO2 we are able  to define requested claims for each provider but we can't (at least in a straight forward way or at all?) define specific values of a claim to be or not be released in an SP. Is there a way to define such behaviour over XACML?
Environment information

Product version: [IS 5.10.0, IS 5.9.0]

We can use adaptive authentication feature for this [1] where you can implement custom use-cases such as above using the inbuilt JavaScript editor. In the script editor you can access the user-attributes using the following function inside the script editor.
context.currentKnownSubject.localClaims['http://wso2.org/claims/username']
then based on the service provider name available in the context.serviceProviderName, you can set change value for this claim
[1] https://is.docs.wso2.com/en/5.9.0/learn/adaptive-authentication/

hi @kranidiotis ,
It would be better to use other channels for questions or seeking help. Better keep git issue tracking for bug report or feature requests.
e.g.
Slack User channel https://wso2is.slack.com/archives/CDWPC5MUL

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


add data access for soul-admin

Task
discuss data permission configuration scheme；
data permission configuration page;
Task List:

[ ] discuss data permission configuration scheme @fengzhenbing
[ ] data permission configuration page

Please read the Contribution Guideline before submitting the PR

get

please add design scheme~

please add design scheme~

ok, writing now!

scene
To implement the differences between the agent and the plugin selector / rule By different business sector management, need to plugin selector / rule control data security
target

The user does not have the data permission. By default, all data can be operated.

As long as you set data permissions, you can only see the bound data.

The user information associated with the data permission. If the data information is changed, the data in the data permission table must be synchronized.

User information changes
Change the selector data corresponding to the plugin
Change the rule data corresponding to the plugin

table structure

data_permission

field
type
description

id
varchar
primary key id varchar

user_id
varchar
user id

data_id
varchar
selector id, rule id

data_type
int
0:selector 1:rule

feature list

Store user id and userName after soul-admin logon (optimized)
soul-admin adds user and data Association operations with soul-dashboardOn the user management page Data permission configuration Button)

List all plugins, corresponding selector, and rule data.
Bind and unbind plug-in data from user id

The user information associated with the data permission. If the data information is changed, the data in the data permission table must be synchronized.

get

add method

deleteByUserId(final String userId)
deleteByDataId(final String dataId)


"Average task input size" is incorrect when  input files  from s3.

"Average task input size" is incorrect when  input files  from s3.
mapper time
Severity: Moderate [Explain]
Average task input size 1 KB
The  Counters  from  hadoop job history server
S3: Number of bytes read    381,252,922,852 0   381,252,922,852

@superwood , I think this is solved in https://github.com/linkedin/dr-elephant/commit/1d6f3f6a2d8a205b8caaea992ed77cc80d1d9bca.


bug?

use sharp( sharp(input).png({ compressionLevel: 4 }).toBuffer() ).toFile(filePath) ,  I hope to get a mini picture,  But the picture is bigger than before.

@wangguanl I hope this information helped. Please feel free to re-open with more details, including publicly-accessible images, if further assistance is required.


Q: how to expose D class data member to Python?

I'm following this doc, use Member!(fieldname):
https://github.com/ariovistus/pyd/blob/master/docs/source/classes.rst
to wrap Foo.m_i, at this line:
https://github.com/ariovistus/pyd/blob/master/examples/testdll/testdll.d#L170
        Member!("m_i"),

Then I do python3 setup.py build, it errors out:
/usr/local/lib/python3.6/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(127): Error: no property shim for type pyd.struct_wrap.Member!"m_i"
/usr/local/lib/python3.6/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(137): Error: template instance pyd.make_wrapper.class_decls!(0u, Foo, Member!"m_i", Init!int, Init!(int, int), Property!(i, Docstring!"A sample property of Foo."), BinaryOperatorX!("+", false, Guess), Def!(opSlice, PyName!"__iter__", Range function()), Def!(foo, Docstring!"A sample method of Foo."), Def!(a), Def!(b), Def!(c), Def!(d), Def!(e), Def!(f), Def!(g), Def!(h), Def!(j), Def!(k), Def!(l), Def!(m), Def!(n)) error instantiating

Can you provide an example how to do this?
Thanks.

tried:
<EMAIL_ADDRESS>        Member!("m_i", Mode!"rw"),

Still the same error:
/usr/local/lib/python3.6/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(127): Error: no property shim for type pyd.struct_wrap.Member!("m_i", Mode!"rw")
/usr/local/lib/python3.6/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(137): Error: template instance pyd.make_wrapper.class_decls!(0u, Foo, Member!("m_i", Mode!"rw"), Init!int, Init!(int, int), Property!(i, Docstring!"A sample property of Foo."), BinaryOperatorX!("+", false, Guess), Def!(opSlice, PyName!"__iter__", Range function()), Def!(foo, Docstring!"A sample method of Foo."), Def!(a), Def!(b), Def!(c), Def!(d), Def!(e),
 Def!(f), Def!(g), Def!(h), Def!(j), Def!(k), Def!(l), Def!(m), Def!(n)) error instantiating

@ariovistus   Thanks for the quick fix, can you make a new release? so I can fetch the new package from dub?  Thanks!

0.14.1 is out

<EMAIL_ADDRESS>the release is tagged wrong. it should read "v0.14.1" instead of "0.14.1" to get recognized successfully.

of course, the one time I don't look up the format..
try it now

Thanks! it's working: https://code.dlang.org/packages/pyd


nodemon like option

I love estrella, hope you will continue to work on it.
Some users probably have a scenario where they would like to start a the resulting code using node any time the source changes. Usually this is done using nodemon. I wrote a little workaround, not being sure if this is a smart way to do it:
#!/usr/bin/env node

const pkg = require('./package.json')
const common = require('./build.config.js')
const { spawn } = require('child_process')
const { build } = require('estrella')

let node

build({
  ...common,
  entry: 'src/index.js',
  outfile: pkg.main,
  onEnd(config, result) {
    if (config.watch) {
      if (node) {
        node.kill('SIGHUP')
        node = null
      }
      if (result.errors.length > 0) {
        console.error(`Build failed with ${result.errors.length} errors`)
      } else {
        console.info(`Build succeeded. Launching 'node ${pkg.main}'`)
        node = spawn('node', [pkg.main], {
          shell: true,
          stdio: 'inherit',
        })
      }
    }
  },
})

In case it is, it would be great to get an estrella option to say, start the outFile with node, like:
#!/usr/bin/env node

const pkg = require('./package.json')
const common = require('./build.config.js')
const { buildAndRun } = require('estrella')

buildAndRun({
  ...common,
  entry: 'src/index.js',
  outfile: pkg.main
})

Thanks!

It would certainly be better to make it a command line option, like:
./build.js -watch -run

This way it could also would also work  without -watch, which looks like a more consistence user experience.

Oh, nice idea.
I usually use autorun in a second shell when programming reactively.
With the -run CLI argument, what would you do if the build script builds multiple programs? Would you run them all or run the first one defined?
I think "run them all" is the answer. Optionally only products that are executables could be selected for being run (i.e. when the executable bit is set in the outfile's mode, which can be controlled via the outfileMode:"+x" build property.)
For example:
const { build } = require('estrella')
build({
  entry: "src/tool.js",
  outfile: "dist/bin/tool",
  outfileMode:"+x",
})
build({
  entry: "src/lib.js",
  outfile: "dist/lib.js",
})

Running ./build.js -run would run dist/bin/tool (since it's executable) but not dist/lib.js
What do you think @holtwick?

Happy you like the idea, @rsms. That's an interesting point.
Running all generated files as a general rule sounds good. The developer could split up the build script in separate pieces in case there are also "only build" items.
But here some other ideas:
runnable
A flag called runnable could indicate items that respond to -run. It could be set to true to indicate it is active. If set to something like node or deno it could also imply to add the +x chmod and add a corresponding shebang like #!/usr/bin/env node at top of the generated file.
build({
  entry:   "src/tool.js",
  outfile: "dist/bin/tool",
  runnable true,
})

-run index.js
The user could also explicitly specify what should be run via passing the outfile as an argument. Those entries that match are then run. Multiple could be separated by , or multiple repetitions of -run. Default without further arguments would fallback to "run all" as described before. Example:
./build.js -run dist/server.js -run dist/tool.js

Anyway, I guess most of the time only one item needs to be run but the other ones being regenerated on change. I usually have server side code that needs to run and restart and then frontend code, that needs to reload in the browser.
I saw you have a reload server as well. Just in case, here is a simple solution I came up with using socket.io: https://github.com/holtwick/hostic/blob/master/src/cli-serve.js#L96
Thanks for considering to add the -run option.

Ah, I like it. Perhaps executable:bool|string is a better name though.
Funnily, I thought I had added another comment after previous one, but I had forgot to submit it :–P

Another idea, if the "executable condition" approach is not right:
const { build } = require('estrella')
build({
  entry:   "src/tool.js",
  outfile: "dist/bin/tool",
  run: "node $outfile -test",
})
build({
  entry:   "src/lib.js",
  outfile: "dist/lib.js",
})

When running ./build.js then all products with a truthy run property would be selected to execute. If the value of the run property is a string, that string is passed to a shell to be executed, substituting $outfile for the path of outfile. (The run property could also support an array value of arguments to be executed instead of a shell script.)
Note the lack of -run CLI arg; instead the build script author can conditionally enable running certain programs.
const { build } = require('estrella')
build({
  entry:   "src/tool.js",
  outfile: "dist/bin/tool",
  run: "node $outfile -test",
})

I like the second part of your last post better. The option name run aligns nicely with the command line option -run. I also like, that this way it is possible to add additional arguments. The shebang I implemented in my PR is probably not required and could already be part of the source file, if esbuild respects it during translation.

Landed in v1.2.0 which was just released.
API:
https://github.com/rsms/estrella/blob/v1.2.0/estrella.d.ts#L93-L130
Example:
https://github.com/rsms/estrella/tree/v1.2.0/examples/run
@holtwick let me know what you think and how it's working for you. Thanks for the collaboration!

Thanks @rsms for adding the feature. In general, it works great.
Some little things might be nice: to have as well:

Add the run option's documentation to the README.md file
In my PR I added a -r or -run option. It seems to be missing here. It is important, because if somebody wants to build for production, the code is still run. Alternatively the code should only be executed if -w is active. A workaround would be to handle this in the build.js script itself, but that's not very attractive IMO.

v1.2.2
https://github.com/rsms/estrella/tree/v1.2.2#running-your-program
Some tests here:
https://github.com/rsms/estrella/blob/v1.2.2/test/cli-direct/test.sh
:-)

I considered allowing passing a value to -run but after some consideration I think the traps outweigh the flexibility. It would only be possible within reasonable CLI syntax to pass a string which means it would be run as shell command and not a "regular" command, which in turn means people less familiar with shells may battle with the syntax while feeling teased to use the "run" value.
For complex run setups that should only be active with the -run flag, I image you'll do this:
const { build, cliopts } = require("estrella")
const command = ["/usr/bin/zsh", "-e", "-c", "special thing"]
const p = build({
  entry: "main.ts",
  outfile: "out/main.js",
  run: cliopts.run && command,
})

Sorry, I'm now somewhat confused. Previously I understood that running was triggered by setting a build option: https://github.com/rsms/estrella/blob/v1.2.0/examples/run/build.js#L14
Now it looks like -run on the command line just runs it all and run option isn't required anymore. Also, the documentation describes this behavior.
It is of course your decision, of how to implement it. I still think that the approach we discussed before makes sense. That was, having a build option identifying runnable parts. Run those ifs -run is passed at command line.
To break it down: the basic question is, do you want to have multiple build scripts in one file where some of them cannot be run? If the answer is yes, then I think we need a build option as well. If the answer is no, then it is fine as it is implemented right now.
BTW: The -r command line option does not work if used like this together with watch -wr


find() working not correctly

Hello.
I found that I can't use in find() with id of type ObjectID (find() can accept only integer on string). But in other case if I pass string like 553faa667f09fe5822e595c4 - adapter can't find record and throw error.
So we need to wrap id with ObjectID inside find().
It seems this is an issue.

I do not use Mongo or have much experience with it. Any help from you or anyone else to make js-data-mongodb better support ObjectIDs would be much appreciated.

Thank you for quick response.
I will do some fix for this with tests ASAP.

@jmas did you ever get a fix working for this? If not I will try to get the project building locally and work out a solution for this.
Basic solution should be to include mongodb's bson ObjectId module, then in the find method, if resourceConfig.idAttribute is _id then check if the id passed in is a valid ObjectId hex string, if so use ObjectID.createFromHexString to create an ObjectId instance and override the original id value before assigning it into the params.
It'll be important to test if the id parameter is actually a valid ObjectId hexstring becuase it is possible to override the default behavior so that the _id value is a number or a string.

Thanks, I'm found a few other issues that I'm fixing right now. I'll cut a release in a bit.


Video & Audio options button throwing errors

I have setup project successfully on my local machine. When I execute the project on my local it's giving the following error:

Please help me on this as it's urgent?

this repository has been deprecated.
please follow this one instead for tutorial
https://github.com/AgoraIO/Basic-Video-Call/tree/master/One-to-One-Video/Agora-Web-Tutorial-1to1-React


⚠ Bofrost.be has degraded performance

In 2633d39, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1622 ms

Resolved: Bofrost.be performance has improved in 0bc62b7.


newsfeed is a little broken

Description

How to replicate the issue + URL
https://github.com/
Extension version
22.11.21
Browser(s) used
Safari

I only just started using this and was wondering about the changes to the news feed; how is it supposed to look? i.e., which changes made to the news feed by this extension are intentional, vs. which are examples of this bug?

how is it supposed to look?

See https://github.com/refined-github/refined-github/pull/6136


Added parameter argument to unsafeQuery, unsafeExecute, unsafeSimpleQ…

unsafeQuery, unsafeExecute, unsafeSimpleQuery, unsafeSimpleExecute are missing optional parameter arguments.
I really don't want to do advanced queries that the ORM does not support directly without parameter binding, and I guess nobody else would want to either.
Really simple changes though, and surprising that it wasn't there.
Pre-launch Checklist

[x] I read the Contribute page and followed the process outlined there for submitting PRs.
[x] This update contains only one single feature or bug fix and nothing else. (If you are submitting multiple fixes, please make multiple PRs.)
[x] I read and followed the Dart Style Guide and formatted the code with dart format.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///), and made sure that the documentation follows the same style as other Serverpod documentation. I checked spelling and grammar.
[x] I added new tests to check the change I am making.
[x] All existing and new tests are passing.
[x] Any breaking changes are documented below.

If you need help, consider asking for advice on the discussion board.
Breaking changes
none

I have read the CLA Document and I hereby sign the CLA

recheck

removed parameter from unsafeSimpleQuery, unsafeSimpleExecute because simple query protocol does not support parameters
added assertion for correct parameter type in _query
added automatic wrapping in Sql.named for named parameters
added tests for simpleQuery and simpleExecute

Sorry for the delay with the second review. I will look at this PR during the next couple of days.
Please merge latest main with the PR just to ensure your added tests still pass.

Since we have already reached that point, let's go all out.
unsafeQuery and unsafeExecute is a really bad idea. People will use it, and they won't sanitize.
Therefore, I added query + execute with Flutter style parameters to make sure they are type safe instead of using throws.
Since now there is a better option to unsafe functions, I @Deprecated the unsafe functions.
The new way is safe and easy to use:
named example
      all_rows = await session.db.query(
        r'SELECT * FROM simple_data WHERE id IN (@entry1, @entry2);',
        parameters: QueryParameters.named({
          'entry1': entry_1.id,
          'entry2': entry_2.id,
        }),
      );

positional example
      positional_result = await session.db.query(
        r'SELECT * FROM simple_data WHERE id=$1;',
        parameters: QueryParameters.positional([entry.id]),
      );

It would help if you could also submit a PR for updating the documentation in our documentation repo: https://github.com/serverpod/serverpod_docs
The page that needs to be updated can be found here: https://github.com/serverpod/serverpod_docs/blob/main/docs/05-concepts/06-database/10-raw-access.md


[ign-rendering0] Workflow updates

Add labeler workflow
Add triage workflow
Add Ubuntu CI workflow with Codecov upload
Update codecov badge
Port CODEOWNERS

Codecov Report

:exclamation: No coverage uploaded for pull request base (ign-rendering0@7b51e33). Click here to learn what that means.
The diff coverage is n/a.

@@                Coverage Diff                @@
##             ign-rendering0      #78   +/-   ##
=================================================
  Coverage                  ?   31.65%
=================================================
  Files                     ?       41
  Lines                     ?     4732
  Branches                  ?        0
=================================================
  Hits                      ?     1498
  Misses                    ?     3234
  Partials                  ?        0

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 7b51e33...d7be029. Read the comment docs.


sort symbols in order of frequency rather than lexicographically

for #249
as we keep track of symbols in head we now also keep track of how many times we've seen that symbol, and when we write the symbols in IndexWriter we sort the symbols in order of frequency seen before writing them

Thanks for working on this! Currently we appear to have some severe bugs in Prometheus 2.1 tied to the storage. Thus, I'd suggest we freeze any new features to prometheus/tsdb until things go back to being stable.

@fabxc no problem! I can pick this (#249 ) back up when we're in a more stable state. Is there anything I can help with regarding the bugs in 2.1?

@fabxc will the 2.2.0 release unblock this?

rebased off master, fixed a merge conflict that I'd missed when I pushed last

changed the value assigned to the symbols in Reader in head.go and squashed it into the original commit
let me know if there's anything I can do to help test this :)

@gouthamve @fabxc are these changes still relevant?

Shouldn't you sort the symbols in the index writer , before writing it to disk?
IIUC this is where we want to save some space.
https://github.com/prometheus/tsdb/blob/c848349f07c83bd38d5d19faa5ea71c7fd8923ea/index/index.go#L343
instead of this , sort by popularity.

@krasi-georgiev I'll have to double check, haven't looked at this in a while

@krasi-georgiev is that not what is happening here: https://github.com/prometheus/tsdb/pull/280/files#diff-71ebe2bcf31a915b1fa3b3b289d5d31dR354 ?
rebased off master to fix the conflict in head.go

failing tests

Added a test for the sorting of symbols
I'm not sure if we want to get back the frequency #'s when we read the symbols back out of the table?

I don't see a reason to expose that in the API.

failing tests
also

Can you test how much are the savings by this change?

updated to the latest master and resolved the conflicts.
Now will run some tests locally to compare the index file savings with this change.

using the following test I don't see any difference in the index file size.
func TestIndexSize(t *testing.T) {
	tmpdir, err := ioutil.TempDir("", "testIndex")
	testutil.Ok(t, err)
	var dirs []string

	for i := int64(0); i < 5; i++ {
		dirs = append(dirs, createBlock(t, tmpdir, genSeries(1000, 10, i*1000, i*1000+1000)))

	}
	compactor, err := NewLeveledCompactor(nil, log.NewNopLogger(), []int64{1000000}, nil)
	testutil.Ok(t, err)

	uid, err := compactor.Compact(tmpdir, dirs, nil)
	testutil.Ok(t, err)
	fmt.Println(tmpdir + "/" + uid.String())
}

This generates random series so it should generate enough churn.
The index file size with or without the changes in this PR is 180Mb.

ping @cstyan


[improvement](jdbc catalog) Optimize JdbcCatalog case mapping stability

This PR makes the following changes to the uppercase and lowercase mapping of JdbcCatalog

The identifierMapping is managed by JdbcExternalCatalog instead of JdbcClient to better control its lifecycle
The identifierMapping no longer loads remoteName alone, but Catalog controls the loading uniformly
The identifierMapping will be loaded when each FE performs makeSureInitialized() to ensure that each FE has a mapping
The initialization of mapping will only be performed once in makeSureInitialized(), which means that even if you use metaCache, if your source data is updated when identifierMapping is enabled, you must refresh the catalog to query normally.
The identifierMapping is only responsible for the properties of the Catalog and is no longer affected by the fe config, simplifying the processing logic
If lower_case_mete_names is false and meta_names_mapping is empty in the catalog properties, the identifierMapping will no longer take effect, further enhancing the stability of the default settings
The JdbcClient is no longer closed during onRefreshCache, reducing the repeated creation of resources, improving reuse, and reducing the leakage of some global shared threads

run buildall

run buildall

run buildall

run buildall

Hi, I found a bug witch can be fixed in this pr, can you add a test case like #45521 in ExternalTableNameComparedLowercaseTest?

run buildall

run buildall

run buildall

run buildall

run buildall


Bouncing dvd with this dot song

hello!!
In this version of the bouncing dvd I added the this dot song along with many more sound effects!
If you want to hear the while the dvd is bouncing, then click on command option J for mac and command shift J for windows.
Thanks,
Abhay Kashyap

Community Contribution
Link to live project, video, or image:

Sharing

[x] I would be happy to have my project shared on The Coding Train's social media!

Instagram:
Twitter:

Check out my comment on #2723. Same here.

Closing due to inactivity. Happy to reopen if you make suggested changes or for discussion.


Update scala-library to 2.13.12

About this PR
📦 Updates org.scala-lang:scala-library from 2.13.7 to 2.13.12
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
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.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (2.13.7).
You might want to review and update them manually.
.github/workflows/ci.yml

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-lang", artifactId = "scala-library" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

coverage: 34.571% (+0.7%) from 33.898% when pulling 381d1f9ef71f4dfc2644b421de4c1eb78577cbb0 on scala-steward:update/scala-library-2.13.12 into d082b04ae38161e522ab7991a62ceff130832f4e on evolution-gaming:master.

Superseded by #119.


When initializing ngModel to the last item of a select control inside of a $timeout, UI is not updating

When defining a select control as follows:
 <select data-ng-model="selected" data-ng-options="n for n in [0,1,2,3]"></select>

And initializing the 'selected' variable to the last item inside of a $timeout handler in an ngController:
function ctrl($scope, $timeout) {
  $timeout(function() {
      $scope.selected = 3;
  },50);
}

The drop down list remains blank (it should be initialized to 3).
Here is a plunker demonstrating the issue:  http://plnkr.co/edit/AGlwxCoe1vlvzXyvvk2b?p=preview
Here is the original stack overflow post where the issue was found: http://stackoverflow.com/questions/27892564/angular-strange-behavior-with-ng-options
This issue exists for version 1.2.26, and 1.2.28, but is working in version 1.3.*

This was most likely introduced by, then fixed by https://github.com/angular/angular.js/commit/2435e2b8f84fde9495b8e9440a2b4f865b1ff541. However, the fix didn't fix all cases, which is why we now have the big refactor by @petebacondarwin
This is going to be quite an effort to fix in 1.2.x, I'm not sure this is going to happen. Upgrading to 1.3.x or using ng-repeat for you select is not an option?

1.2.x only receives critical bug fixes; closing.


Worker job timeout

It looks like we're lacking the ability to time out a job if it hasn't completed for some specified period, or perhaps I'm overlooking that functionality.
I just noticed I had two workers that were stuck for 15+ minutes on something that should take < 1 second, which means something funky happened. I want to make sure that worker knows it can abort whatever is hung, and start polling again.
Thoughts?

How can I dispose the job from within the perform method?

Just call the callback!
var jobs = {
  "add": {
    perform: function(a,b,callback){
      var answer = a + b;
      callback(null, answer); // <- here
    }
  }
}

You can signal the end of the job with success or failure.

Is the following correct?
var jobs = {
  "add": {
    perform: function(a,b,callback){
      setTimeout(function() {
          callback("Timeout reached", null);
      }, 5000);
      function_with_possibility_of_failure(function (answer) {
          callback(null, answer); // <- here
      });

    }
  }
}

You would need some helpers to ensure you never call callback twice.
There are tools to help you with this, but in a nutshell:
var jobs = {
  "add": {
    perform: function(a,b,callback){
      var didCallback = false;
      setTimeout(function() {
          if(!didCallback){
            didCallback = true;
            callback("Timeout reached", null);
           }
      }, 5000);
      func_with_possibility_of_failure(function (answer) {
         if(!didCallback){
           callback(null, answer); // <- here
         }
      });
    }
  }
}

You will also want some deeper helpers within func_with_possibility_of_failure to ensure that you can halt any processing it might be doing past your timeout (like signalling your DB to stop processing whatever long query it might have been running, etc)

If I clearTimeout from within the func_with_possibility_of_failure's callback, do I still need the didCallback check?
var jobs = {
  "add": {
    perform: function(a,b,callback){
      var timer = setTimeout(function() {
          callback("Timeout reached", null);
      }, 5000);
      func_with_possibility_of_failure(function (answer) {
          clearTimeout(timer);
          callback(null, answer); // <- here
      });

    }
  }
}

yep!
Think of it this way:

start func_with_possibility_of_failure
timeout fires, so you callback on line 5
func_with_possibility_of_failure finally completes
you clear the timeout (which has already triggered, so there is nothing to clear)
you callback a second time (line 9)
bad things happen

Okay, thanks for the clarification.

@JoyceBabu I think @evantahler's solution is great, and that's what I would do, too. There's also a module that helps people with these problems if you want to check it out: https://github.com/isaacs/once

@nathanbowser Thank you for the suggestion.


Collisions with other trait methods on App\Base\SluggableModel

This is an error I get when initializing the package with php artisan cms:initialize --seed
`PHP Fatal error:  Trait method customizeSlugEngine has not been applied, because there are collisions with other trait methods on App\Base\SluggableModel in laravel-8-simple-cms\app\Base\SluggableModel.php on line 17
Symfony\Component\ErrorHandler\Error\FatalError
Trait method customizeSlugEngine has not been applied, because there are collisions with other trait methods on App\Base\SluggableModel
at laravel-8-simple-cms\app\Base\SluggableModel.php:17
13▕  * @method static \Illuminate\Database\Eloquent\Builder|\App\Base\SluggableModel findSimilarSlugs($attribute, $config, $slug)
14▕  * @method static \Illuminate\Database\Eloquent\Builder|\App\Base\SluggableModel whereSlug($slug)
15▕  * @mixin \Eloquent
16▕  /
➜  17▕ class SluggableModel extends Model
18▕ {
19▕     use Sluggable, SluggableEngine, SluggableScopeHelpers;
20▕
21▕     /*
Whoops\Exception\ErrorException
Trait method customizeSlugEngine has not been applied, because there are collisions with other trait methods on App\Base\SluggableModel
at laravel-8-simple-cms\app\Base\SluggableModel.php:17
13▕  * @method static \Illuminate\Database\Eloquent\Builder|\App\Base\SluggableModel findSimilarSlugs($attribute, $config, $slug)
14▕  * @method static \Illuminate\Database\Eloquent\Builder|\App\Base\SluggableModel whereSlug($slug)
15▕  * @mixin \Eloquent
16▕  /
➜  17▕ class SluggableModel extends Model
18▕ {
19▕     use Sluggable, SluggableEngine, SluggableScopeHelpers;
20▕
21▕     /*
1   laravel-8-simple-cms\vendor\filp\whoops\src\Whoops\Run.php:454
Whoops\Run::handleError("Trait method customizeSlugEngine has not been applied, because there are collisions with other trait methods on App\Base\SluggableModel", "laravel-8-simple-cms\app\Base\SluggableModel.php")
2   [internal]:0
Whoops\Run::handleShutdown()`

Remove use Sluggable, SluggableEngine, SluggableScopeHelpers;
and replace it with use Sluggable, SluggableScopeHelpers;
this can resolve the Bug :)

@safarovitch Thanks for reporting this. And, @claudesimo1990 thanks for your reply. Fixed it.


Service name require RFC 1123

Add parsing error if service name does not match RFC regexp
Service name should be a lowercase RFC 1123
metadata:
  annotations:
    errors: 'Deployment.apps "app-deployment-18080" is invalid: [spec.template.spec.hostAliases.hostnames:
      Invalid value: "celery_worker": a lowercase RFC 1123 subdomain must consist
      of lower case alphanumeric characters, ''-'' or ''.'', and must start and end
      with an alphanumeric character (e.g. ''example.com'', regex used for validation
      is ''[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'')

👉 1. Can add file with service name with uppercase letters

Can't add file with . in the service name

services:
  h.ello-world:
    build:
      context: https://github.com/NealArw/hello-world-1
      dockerfile: /Dockerfile
      args:
        testarg: uffizzi_test

x-uffizzi:
  ingress:
    service: h.ello-world
    port: 80

  continuous_preview:
    share_to_github: true
    delete_preview_after: 1h
    delete_preview_when_pull_request_is_closed: true
    deploy_preview_when_pull_request_is_opened: true

Fixed
Intended way of work (changed the error message)

TESTED - OK


fps

I use your model in my project. But the fps is different with that your paper show. With size being 512x64,
********************************************************************************
Cleaning point-clouds with kNN post-processing
kNN parameters:
knn: 7
search: 7
sigma: 1.0
cutoff: 2.0
nclasses: 20
********************************************************************************
Infering in device:  cuda
100%|███████████████████████████████████████| 4071/4071 [02:04<00:00, 32.75it/s]
Mean CNN inference time:0.01585113       std:0.01862994
Mean KNN inference time:0.00275165       std:0.00063380
Total Frames: 4071
Finished Infering

The fps is 67, lower than 84.9 in your paper.
I infer the valid dataset on 3090.

Sorry for long time passed and I may have forgotten some details. Due to some equipment differences, there can be huge differences in speed tests.
For your question, there may be the following points to note：

I used FIDNet's code for benchmarking instead of this, which will bring some difference.
When reasoning with this codebase, the auxiliary segmentation header is not removed, which reduces speed.
Please warm up the gpu for a while before testing the speed. For example, start counting time after 10/25 samples.
I used fp16 for inference and for RTX 3080 it should be faster than fp32.
Only the average time of 100 samples was counted, not the average time of the validation set.

This is the original data I counted at that time, the code may have been lost. You will find that the KNN is fast because I miscalculated the NLA time at that time........

Thank you for your reply. If I remove the auxiliary segmentation header, the speed may be faster. I will try when my gpu is free.

Hi @fengluodb @huixiancheng ,
Thanks for the work! A minor question about the FPS. I can see in the log it shows 32.75 it/s, but the Mean CNN inference time is 0.01585113, which means ~63 FPS. Why do they not match? Is there some other latency besides the CNN inference time?

Hi~! @shawnding
KNN time should add into all time. Since CNN infer label can't gather the 3d results. Moreover, this value may not be very reliable, since it depends on your hardware and related computing code.

Thanks for your kind reply~ However, adding CNN time and KNN time together would be 0.018s (~55 FPS), which still doesn't match with 32.75 it/s. Is there any other overhead such as data processing, or am I missing something here...

Hi~ @shawnding
You mean the tqdm value and the FPS results from Feng?
I guess part diff come from data processing & torch.cuda.synchronize() & results save.
Here is the code maybe he used.
https://github.com/huixiancheng/CENet/blob/9a84103d186a1f93637cae3d96426760deb04140/modules/user.py#L126-L220
By the way, do you think the iteration time of tqdm is meaningful? It only depends on the complexity of your for loop code.

That makes sense now. Thanks for the elaboration!


run ‘flutter doctor ’failed

bianxiangdeMacBook-Pro-2:swapwallet-app bianxiang$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v1.7.3, on Mac OS X 10.14.3 18D42, locale zh-Hans-CN)
⣽Unhandled exception:
Bad state: Future already completed
#0      _AsyncCompleter.complete (dart:async/future_impl.dart:39:31)
#1      _NativeSocket.startConnect.<anonymous closure>.connectNext.<anonymous closure> (dart:io-patch/socket_patch.dart:521:23)
#2      _NativeSocket.issueWriteEvent.issue (dart:io-patch/socket_patch.dart:874:14)
#3      _NativeSocket.issueWriteEvent (dart:io-patch/socket_patch.dart:881:12)
#4      _NativeSocket.multiplex (dart:io-patch/socket_patch.dart:902:11)
#5      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)
bianxiangdeMacBook-Pro-2:swapwallet-app bianxiang$

Bad state: Future already completed

This is likely a firewall issue
If you are in China see https://flutter.io/community/china
If you are using a self-signed certificate see https://github.com/flutter/flutter/issues/15014
I'm not sure if it's the case, but I saw such comment on this "Future already completed" error. Please let me know if that won't be helpful.

It do not work,I am using VPN,can connect to google

Hi @bianxiang
does this proposed solution works for you?
thank you

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.


polymer build is putting the dart.js script tag in the wrong place

Observatory includes a script tag for dart.js. Somehow during the build it's moved to a location before the bootstrap.dar script tag, which means that it doesn't find the dart script and never requests the .dart.js file.
To reproduce open the observatory client in the Editor and run index.html as javascript.

This issue has been moved to dart-lang/polymer-dart#404.


Sync dev to master.

No real logic change.
Diffs should be about:

fixing lint errors
adding support to build via bazel
adding a script for continuous integration using Kokoro

Thanks for the comment!


Monitoring "no data from host in index for last 1 hour"

Hi all!
Can i get alerts "no data from some host in some index for last 1 hour" by ElastAlert?

I think it can be done with Blacklist. I haven't tried
Notify when the specified field matches the specified value.
https://elastalert.readthedocs.io/en/latest/ruletypes.html#blacklist

Blacklist
blacklist: The blacklist rule will check a certain field against a blacklist, and match if it is in the blacklist.
This rule requires two additional options:
compare_key: The name of the field to use to compare to the blacklist. If the field is null, those events will be ignored.
blacklist: A list of blacklisted values, and/or a list of paths to flat files which contain the blacklisted values using - "!file >/path/to/file"; for example:
blacklist:

value1
value2
"!file /tmp/blacklist1.txt"
"!file /tmp/blacklist2.txt"
It is possible to mix between blacklist value definitions, or use either one. The compare_key term must be equal to one of these values for it to match.

Maybe this one. Excuse me
Flatline
Notify when the number of documents of the specified query is less than the specified value within the specified period. A system error can be detected.
https://elastalert.readthedocs.io/en/latest/ruletypes.html#flatline

We also recommend asking questions on the Gitter channel
https://gitter.im/Yelp/elastalert

Yelp/elastalert is no longer maintained. Please use jertel/elastalert. Questions to the discussion below
https://github.com/jertel/elastalert/discussions


Entry point api

Introduce a wrapped entry point api that handle the error in our own way.

This looks good; good job! Left some comments

@zsluedem It's ready for merge unless you plan to make any additional changes.


Integrated code lifecycle: Prevent pushes to non-default branches

Checklist
General

[x] I tested all changes and their related features with all corresponding user types on a test server.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[x] I chose a title conforming to the naming conventions for pull requests.

Server

[x] Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
[x] I strictly followed the server coding and design guidelines.
[x] I adapted an integration test to account for the new changes.
[x] I documented the Java code using JavaDoc style.

Changes affecting Programming Exercises

[x] High priority: I tested all changes and their related features with all corresponding user types on a test server configured with the integrated lifecycle setup (LocalVC and LocalCI).

Motivation and Context

Artemis currently does not support the use of other branches. Users should not be able to create new branches in Local VC.
Description

This PR adds a condition in the Local VC Pre Push Hook to prevent pushes to branches other than main. Previously, those pushes were allowed and saved but otherwise ignored.
Steps for Testing

Prerequisites:

Clone a programming exercise repository locally
Create a new branch and push it, e.g. git checkout -b test, then git push --set-upstream origin test
You should receive the following error message: "You cannot push to a branch other than the default branch."

Testserver States

[!NOTE]
These badges show the state of the test servers.
Green = Currently available, Red = Currently locked

Review Progress

Performance Review

[ ] I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

[ ] Code Review 1
[ ] Code Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Test Coverage

Not sure if we should really permit pushes to other branches. While it's true that the rated build will only be triggered by the main branch, other branches might be helpful when working on team exercises or when multiple editors are creating test cases.

I agree with Lucas that in general having other branches is useful. However, Artemis currently does not provide any UI for different branches (and PRs for that matter). This could then result in pushes to other branches that are hard to trace, unless you have the repo locally and know what to look for (which students in general do not).
And apart from team exercises having branches was also useful for already running homework exercises to propose changes (e.g. bugfixes) as an editor and getting them approved by an instructor.
As it stands now I'd support this solution to prevent confusion. But ideally Artemis would in the future provide proper UIs for branch management (and ideally even PRs). This could be useful for both team exercises, but also exercise creators.

@Strohgelaender I discussed with Stephan and we decided to move forward with preventing pushes to non-default branches for now. We will enable it again in the future, once Artemis properly supports this feature.
I also refactored the prevention by actually checking the default branch of the repository and not using hardcoded main


Make the search bar responsive on phone layout

I think we can add a line break after the logo and make the bar below the logo in this case to maximize horizontal space usage.

related: #1252

It will look like this for small-width viewports:

hm, I'd prefer the logo left-aligned with the hamburger menu in the same line, right-aligned.
and the search box taking the whole row then.
wdyt? too complicated? :)

That's not a problem, but we'll have to render two SourcifyMenu components separately and show/hide them based on the viewport width:

I think that's ok, but add some vertical space between the rows plz

Here it is with space-y-1. Lmk if you'd like more space:

I'll merge this way, since the search bar is the main concern of this issue. There are other spacing-related stuff disturbing me too, I'll make it in another issue.


Endpoint - Offline

Hi Team,
Did something break?
https://bwipjs-api.metafloor.com/?bcid=code128&text=%1&scaleY=1 - not responding from morning

any comment?

Posted to the wrong project.  Please use https://github.com/metafloor/bwip-js/issues.
And yes, something broke this morning with the https certificate handling/renewal.  Unsure on fix.


Problems with text fields in add:module

When using text fields with the template, which is great, I noticed two problems so far:

The migrate code produces this error:

SQLSTATE[42000]: Syntax error or access violation: 1170 BLOB/TEXT column 'remediation_log' used in key specification without a key length (SQL: alter table malware_remediationadd indexmalware_remediation_remediation_log_index(remediation_log))

The resulting module assumes the data for the text field is one line and only inserts the the first line of the text into the SQL db.

If I manually add multiple lines of text into the SQL field, the line feeds are stripped off when displayed in the tab and listing.

So either specify a key length in the index or leave the index out (which would probably make more sense)

The current version of make:module creates a shell script for collecting data which is not suited for collecting multiline text fields. You could use it, but you would need to first concatenate the lines before uploading and then split up the lines again on the server.

I understand. But if you see in point 3 - even when I manually add multiple lines of text into the SQL field, the line feeds are stripped off when displayed in the tab and listing.
so 2 lines are displayed as 1
hello
hello2

It's because html does not recognise newlines. You would need to replace those with <br> tags

The current version of make:module creates a shell script for collecting data which is not suited for collecting multiline text fields. You could use it, but you would need to first concatenate the lines before uploading and then split up the lines again on the server.

Would this solve my problem? https://github.com/munkireport/munkireport-php/pull/1380


Default Vagrantfile does not expose API/UI port

I had to add port forwarding in the default Vagrantfile to gain access to the UI:
node.vm.network "forwarded_port", guest: 8080, host: 8080, auto_correct: true

@imikushin Please make sure this is addressed when we update the Vagrantfile. #1361

should be fixed by #1615

#1615 was merged.


add space between commands

While it is more than a command and the command buttons have a background, space will be created between them.

Hi @swara-mohammed Thank you very much for the PR, but I'm not sure if I really want this.
This will cause the phones to shift:

If I understand correctly, you want to color the buttons in different colors in this area and therefore decided to add this?

Exactly, that's what I meant, that the buttons can be colored.


Change contains to check array instead of substring

CI authorization is using a substring to search for allowed users. This allows for usernames that are substrings of authorized users to run CI jobs. This changes the code to be a search in an array. From github docs, this checks to see if the string is one of the strings in the array.

convert to draft first to wait for internal confirmation

close this one with new required format provided by blossom team https://github.com/NVIDIA/spark-rapids-jni/pull/2137


Support metrics report API for plugin and implement runtime metrics report

Support meter API for the plugin
Support runtime/metrics related metrics reports

Cool, love this.


External DWARF parsing errors

Describe the bug
ghidra throws an exception when parsing an external DWARF file. It cannot even correctly parse the DWARF version, which is located at the start of each compilation unit in the .debug_info section. The external DWARF file should be well formed, as it can be successfuly parsed by readelf or IDA Pro.
To Reproduce
Steps to reproduce the behavior:

Download and extract arm.tar.gz, which consists of the binary patch and the external DWARF file in the directory .build-id.
Loading the binary in ghidra.
Click Edit -> DWARF External Debug Config and set the directory to the one containing .build-id.
Run the DWARF analyzer by Analysis -> One Shot -> DWARF.
Wait and see error.

Expected behavior
The error message is as follows:
Error during DWARFAnalyzer import: Only DWARF version 2, 3, or 4 information is currently supported (detected 31553).

Screenshots

Attachments
I also encountered a similar error on the x64 version of this binary: x64.tar.gz. The error message is as follows:
Error during DWARFAnalyzer import: Only DWARF version 2, 3, or 4 information is currently supported (detected 0).

Environment (please complete the following information):

OS: macOS 12.4
Java Version: openjdk 11.0.15 2022-04-19
Ghidra Version: 10.2
Ghidra Origin: locally built from commit 25aa4663d91965416d3e4c96cb9efa71d50d2eac

initial troubleshooting: it looks like these binaries are using a newer option for compressed Elf sections that we don't support yet.

These binaries are taken from Ubuntu Debug Symbol Packages. pyelftools can also parse these binaries. Check this line and this line from pyelftools.

If you are having issues with this, you can use the elfdecompress utility, with the following command: elfdecompress -vt none [file] to decompress the sections, which worked for me and I was able to analyze binaries afterward.

Fixed by 0133090b0d84c15c28bf6ea63a14939c07eda71e


Allow to repost the same SideEffect

I am trying to use the SideEffect as signaling of some status update, and since I use seal class -> object and no need other property, the second post(MySideEffect()) is not observed by UI.
Proposing overload to post
fun post(event:SE, repost:Boolean=false)
in case when repost == true the stream will repeat the same Effect.
Unless I do not do something right - since I did start with use of Orbit recently.

I wasn't able to reproduce this issue on other method - will investigate the original code

Hello. Thanks for reporting! I'm going to need some more details from you.
As far as I understand you're trying to post multiple side effects which are the same object and you're not receiving emissions beyond the first one. Is that right?
Are you using LiveData? If yes, can you reproduce the issue when using the standard Orbit Stream?
Extra points if you could post a minimal example to reproduce the issue.

Thank you for quick response, You are right that is the scenario and I am sorry for not giving more details.
I am using Stream, and difference between one way (that have possible bug) and other way (that works) is that the Fragment (which uses Activity's viewmodel) closes the stream at onStop and resubscribes on onStart. Seems like the second subscription never receives the events.
Will follow with reproducible example.

While I could not reproduce the issue exactly as you mentioned it does seem that the Stream interface is not emitting on the thread you subscribe on. I recommend using the LiveData interface in the meantime while we come up with a fix.

I am sorry I didn't had time to recheck this, I will close and reopen if this happen again - will look out for thread subscriptions


Pawn position still jittering

Research

[X] I've already searched and I could not find an existing issue or discussion about this issue.

Description
Pawn position is still jittering. Tested in one of latest demo files as of today (21 feb), and in older demos also.
To visualize:

go to: https://csunity-5172f.web.app/
open demo (Anubis map): https://www.hltv.org/matches/2369944/spirit-vs-heroic-pgl-cs2-major-copenhagen-2024-europe-rmr-b
pause playback
go to tick 2242 : open Console (press ` ) and type: demo_seek_tick 2242
observe player Donk : for the next ~15 ticks, he is flying in air

Code to reproduce
No response
Affected demos
No response

Fixed as part of #37


Incompatibility issue of test workbench with mobilefirst 8.0

Hi ,
I am trying to test my cordova application(mobile first 8.0) with IBM Mobilefirst test workbench 8.7.
But when I am trying to add my android application's .apk file it shows error.
Please refer the below link for the error screenshot

Using Workbench is not supported by MobileFirst Foundation 8.0.


Add BaseHTTPMiddleware to FastAPI

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from fastapi import FastAPI
from starlette.middleware.base import BaseHTTPMiddleware

class MyMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request, call_next):
        pass

def create_app()
    app = FastAPI()
    app.add_middleware(MyMiddleware)
    return app

app = create_app()

Description
I usually split my fastapi code across multiple files. I usually have an application factory function, which incrementally adds routes, event handlers and middleware to the app.
This means that the middleware lies in another file, and the app factory lies in another file.
Therefore, it's not possible to define middleware using decorators, like @app.middleware.
In order to use app.add_middleware, my middleware must inherit BaseHTTPMiddleware. However, this is not present in FastAPI right now.
Wanted Solution
I would like to add BaseHTTPMiddleware to FastAPI (Basically import it from starlette in the file fastapi.middleware.base), for the sake of developer convonience.
With that in place, we can import BaseHTTPMiddleware like:
Wanted Code
from fastapi import FastAPI
from fastapi.middleware.base import BaseHTTPMiddleware

class MyMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request, call_next):
        pass

def create_app()
    app = FastAPI()
    app.add_middleware(MyMiddleware)
    return app

app = create_app()

Alternatives
No response
Operating System
Windows
Operating System Details
No response
FastAPI Version
0.71.0
Python Version
3.9
Additional Context
No response

Is there a particular reason you don't just import it directly from Starlette, since FastAPI depends on Starlette?


Reference produced by operations on other references

Is there any mechanism for creating references that are combinational-logic products of other references?
I am seeking to implement a double-buffered register structure where propagation is controlled both by a hardware-supplied signal and the value of a software-controlled field (which self-resets on the hardware propagation event). A key component of this implementation is the ability to produce a reference which is a combinational-logic product of other references. I am having trouble implementing this. The standard seems like it should be comprehensive enough to capture this use case without additional hacks.
From the SystemRDL documentation it is unclear whether boolean operations can be used on a reference to produce another reference. It is also unclear if signals can be driven internally by references (the spec only considers the case where the signal reference is externally driven). In SystemRDL project it appears that boolean operators always must operate on compile-time constant booleans to produce other compile-time booleans. Attempting to use references which are one-bit wires/fields (or reductions of longer references) with boolean operators produces the error "rhs/lhs is not a compatible boolean type".
I could bring in more external signals and do the combinational logic in a custom HDL wrapper but I was hoping to take advantage of the regblock-compiler as a one-stop-shop and not require additional wrapper logic.  I am aware of reduction-logic in fields but creating dummy fields for performing operations seems inelegant and I would prefer not to have a lot of fluff in generated documentation. From further experimentation concatenation seems to be only allowed on compile time constants (strings, integer literals) so even that approach may not work.
The simple example below demonstrates this use case:
addrmap addrmap_top {
    signal {
        signalwidth = 1;
        activehigh = true;
        sync = true;
    } external_prop_en;

    reg {
        field {
            fieldwidth = 32;
            sw = rw;
            hw = na; // Should be w if driven by internal SystemRDL logic?
        } value;
    } reg_input;

    reg {
        field {
            fieldwidth = 1;
            sw = rw;
            hw = na; // Should be w if driven by internal SystemRDL logic?
        } value;
    } reg_control;

    reg {
        field {
            fieldwidth = 32;
            sw = r;
            hw = rw;
        } value;
    } reg_buffered;

    reg_control.value->hwclr = external_prop_en;
    reg_buffered.value->next = reg_input.value;
    reg_buffered.value->we = external_prop_en && reg_control.value; // Ok if either externaL_prop_en or reg_control.value alone but operation on both to create a new reference does not work...
};

Thank you in advance for any assistance. Please let me know if there is a better channel for this question.

Apologies, looked around a bit more and it seems that support for boolean expressions in reference assignments is not currently supported (ex. #154).
If you have suggestions for implementing the above functionality I would love to get feedback (and so I will keep the issue open for now). Feel free to close the issue.

Not sure if this is what you're looking for, but be sure to check out the read/write buffered register feature I added to the regblock generator: https://peakrdl-regblock.readthedocs.io/en/latest/udps/write_buffering.html
From your example, It isn't entirely clear to me what you are trying to accomplish. But as a workaround to the boolean expression limitation, you can just as easily assign reg_buffered.valid->we = true to infer an input signal on the hwif_in bus, and then drive it from outside with the appropriate signals looped back.

Yep this is exactly what I was looking for, I think write-buffering with a small amount of wrapper logic for an externally supplied trigger should work for my use case. Not sure how I missed that section of the wiki, thanks for the link (and generally the excellent open-source tools!).


Camera Intrinsics/Pose for the dataset

Hi,
Great work! I'm looking at your dataset and I am looking for the camera intrinsic/pose for each rendered image. But I only found a cam.txt file with 5 numbers which seems like some sort of pose information. Would it be possible to provide those and intrinsic? Thanks!

Hi,
Very sorry that I forgot to check this repository for a long long time. It may take some effort for me to find out the extrinsic parameters but I remember the intrinsic fov is 60 degree.