Network Devices

The spec describes Devices that are container based, but there are another class of Devices, Network Devices that are defined per namespace, quoting "Linux Device Drivers, Second Edition , Chapter 14. Network Drivers"

Chapter 14. Network Drivers
We are now through discussing char and block drivers and are ready to move on to the fascinating world of networking. Network interfaces are the third standard class of Linux devices, and this chapter describes how they interact with the rest of the kernel.
The role of a network interface within the system is similar to that of a mounted block device. A block device registers its features in the blk_dev array and other kernel structures, and it then “transmits” and “receives” blocks on request, by means of its request function. Similarly, a network interface must register itself in specific data structures in order to be invoked when packets are exchanged with the outside world.
There are a few important differences between mounted disks and packet-delivery interfaces. To begin with, a disk exists as a special file in the /dev directory, whereas a network interface has no such entry point. The normal file operations (read, write, and so on) do not make sense when applied to network interfaces, so it is not possible to apply the Unix “everything is a file” approach to them. Thus, network interfaces exist in their own namespace and export a different set of operations.
Although you may object that applications use the read and write system calls when using sockets, those calls act on a software object that is distinct from the interface. Several hundred sockets can be multiplexed on the same physical interface.
But the most important difference between the two is that block drivers operate only in response to requests from the kernel, whereas network drivers receive packets asynchronously from the outside. Thus, while a block driver is asked to send a buffer toward the kernel, the network device asks to push incoming packets toward the kernel. The kernel interface for network drivers is designed for this different mode of operation.
Network drivers also have to be prepared to support a number of administrative tasks, such as setting addresses, modifying transmission parameters, and maintaining traffic and error statistics. The API for network drivers reflects this need, and thus looks somewhat different from the interfaces we have seen so far.

Network Devices are also used for providing connectivity to the network namespaces, and commonly container runtimes use the CNI specification  to provide this capacity of adding a network device to the namespace and configure its networking parameters.
However, there are cases that a Kubernetes Pod or container may want to add in a declarative way Network Devices to the namespace, it is important to mention that the Network Device configuration is non-goal and is left out of the spec on purpose. This use cases for adding network devices to namespaces are more common lately by the new AI accelerators devices  that are presented as network devices to the system, but they are not really considered as an usual network device. Ref: https://lwn.net/Articles/955001/ (Available Jan 4th without subscription)
The spec already has a reference to the network in https://github.com/opencontainers/runtime-spec/blob/main/config-linux.md#network , that references network devices, but does not allow to specify the network devices that will be part of the namesapce.
The proposal is to be able to add network devices to a linux namespace by referencing them, in a similar way to the existing definition of Devices

/cc @samuelkarp

Could you explain why CNI can't be extended to support your use case?
I also wonder if OCI hooks can be used.

Could you explain why CNI can't be extended to support your use case?

CNI is about network interface creation and configuration https://github.com/containernetworking/cni/blob/main/SPEC.md#cni-operations

ADD: Add container to network, or apply modifications
A CNI plugin, upon receiving an ADD command, should either
create the interface defined by CNI_IFNAME inside the container at CNI_NETNS, or
adjust the configuration of the interface defined by CNI_IFNAME inside the container at CNI_NETNS.

CNI is also an implementation detail of container runtimes, and has some limitations, in Kubernetes projects use annotations and different out of band methods to pass this additional information for other interfaces, more on https://github.com/containernetworking/cni/issues/891
In kubernetes, Pods use devices at the container level and it maps to the OCI specification.
I think that most of the problems in this area come because we are trying to conflate network device and network configuration, my proposal is to decouple this, so adding a new field to Pods as netDevice at the Pod level to map the OCI specification, IMHO this will solve elegantly the Pod and container multi-interface problem , leaving to the CNI, the user app or the network plugins the configuration of these netDevices,

Could you explain why CNI can't be extended to support your use case?

CNI is about network interface creation and configuration https://github.com/containernetworking/cni/blob/main/SPEC.md#cni-operations

ADD: Add container to network, or apply modifications
A CNI plugin, upon receiving an ADD command, should either
create the interface defined by CNI_IFNAME inside the container at CNI_NETNS, or
adjust the configuration of the interface defined by CNI_IFNAME inside the container at CNI_NETNS.

CNI is also an implementation detail of container runtimes, and has some limitations, in Kubernetes projects use annotations and different out of band methods to pass this additional information for other interfaces, more on containernetworking/cni#891
In kubernetes, Pods use devices at the container level and it maps to the OCI specification.
I think that most of the problems in this area come because we are trying to conflate network device and network configuration, my proposal is to decouple this, so adding a new field to Pods as netDevice at the Pod level to map the OCI specification, IMHO this will solve elegantly the Pod and container multi-interface problem , leaving to the CNI, the user app or the network plugins the configuration of these netDevices,

I also wonder if OCI hooks can be used.

I'm not well versed in this area, I had this conversation with @samuelkarp , and he thought it was worth at least to open this debate,

I also wonder if OCI hooks can be used.

I think they can.  But it moves control from a declarative model (like the rest of the OCI spec) to imperative via the hook implementation.  If the goal  for the runtime spec is to allow a bundle author to specify the attributes of the container and for a runtime (such as runc) to implement, I do think it'd be nice to include some aspects of networking in that as well.
However, networking is fairly complex.  @aojea I'm still not entirely clear on exactly what you'd like to see here (e.g., just interface moves? veth creation? setting up routes? etc).  Can you elaborate a bit more?

@aojea I'm still not entirely clear on exactly what you'd like to see here (e.g., just interface moves? veth creation? setting up routes? etc). Can you elaborate a bit more?

just interface moves, being able to reference any netDevice in the host to move into the container network namespace

After spending a few weeks exploring different options, I can find how all these new patterns enabled by the CDI https://github.com/cncf-tags/container-device-interface can benefit Kubernetes and all containers of instructing runtimes to move some specific netdevice by name into the runtime namespace, @elezar WDYT?

My main use case it to model GPUs and its relation with the high speed NICs used for GPUDirect.
GPU0	GPU1	mlx5_0	mlx5_1	mlx5_2	mlx5_3	CPU Affinity	NUMA Affinity
GPU0	 X 	SYS	NODE	NODE	SYS	SYS	0,2,4,6,8,10	0
GPU1	SYS	 X 	SYS	SYS	PHB	PHB	1,3,5,7,9,11	1
mlx5_0	NODE	SYS	 X 	PIX	SYS	SYS
mlx5_1	NODE	SYS	PIX	 X 	SYS	SYS
mlx5_2	SYS	PHB	SYS	SYS	 X 	PIX
mlx5_3	SYS	PHB	SYS	SYS	PIX	 X

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

It is complex to model this relation in systems like kubernetes, since traditionally NICs are treated as part of the CNI, but in this case, the NICs are only netdevices associated to the GPUs, they are consumed directly by the GPU, and not by the Kubernetes cluster or users.
If the OCI spec support "netdevices", it is possible to use mechanisms like CDI to mutate the OCI spec and add this bundle in a declarative way to the Pod, so an user can create a Pod or a Container requesting one or multiple GPUs, and the https://github.com/cncf-tags/container-device-interface CDI driver can mutate the OCI spec to add the NICs/Netdevices associated, without the users having to do the manual plumbing.

/cc

Runc already has the concept of network device and how to configure it, in addition to the CNI specifixation

runc's Network type (part of libcontainer) does not seem to be used by the code related to bundle parsing; it appears (from git blame) to be from January & February 2015, before the OCI was established (and possibly before libcontainer was even factored out of Docker).  It does have a fairly decent number of parameters, though it appears to be focused on interface creation (new loopback or veth pair) rather than moves.
Are you proposing that we add libcontainer's Network type to the OCI bundle, or that we add a new structure defining existing host interfaces that are expected to be moved (and possibly renamed) to a container's network namespace?

runc Network type
type Network struct {
	// Type sets the networks type, commonly veth and loopback
	Type string `json:"type"`

	// Name of the network interface
	Name string `json:"name"`

	// The bridge to use.
	Bridge string `json:"bridge"`

	// MacAddress contains the MAC address to set on the network interface
	MacAddress string `json:"mac_address"`

	// Address contains the IPv4 and mask to set on the network interface
	Address string `json:"address"`

	// Gateway sets the gateway address that is used as the default for the interface
	Gateway string `json:"gateway"`

	// IPv6Address contains the IPv6 and mask to set on the network interface
	IPv6Address string `json:"ipv6_address"`

	// IPv6Gateway sets the ipv6 gateway address that is used as the default for the interface
	IPv6Gateway string `json:"ipv6_gateway"`

	// Mtu sets the mtu value for the interface and will be mirrored on both the host and
	// container's interfaces if a pair is created, specifically in the case of type veth
	// Note: This does not apply to loopback interfaces.
	Mtu int `json:"mtu"`

	// TxQueueLen sets the tx_queuelen value for the interface and will be mirrored on both the host and
	// container's interfaces if a pair is created, specifically in the case of type veth
	// Note: This does not apply to loopback interfaces.
	TxQueueLen int `json:"txqueuelen"`

	// HostInterfaceName is a unique name of a veth pair that resides on in the host interface of the
	// container.
	HostInterfaceName string `json:"host_interface_name"`

	// HairpinMode specifies if hairpin NAT should be enabled on the virtual interface
	// bridge port in the case of type veth
	// Note: This is unsupported on some systems.
	// Note: This does not apply to loopback interfaces.
	HairpinMode bool `json:"hairpin_mode"`
}

Are you proposing that we add libcontainer's Network type to the OCI bundle, or that we add a new structure defining existing host interfaces that are expected to be moved (and possibly renamed) to a container's network namespace?

the later, Network Type and network configuration is just what I want to avoid, is unbounded and contentious ...  on the other side, moving host interfaces to container namespaces is IMHO well defined and solves important use cases very easily, my reasoning is that same as block devices are moved into the container namespace, network devices can be moved "declaratively" too, there should be possible to define some of the properties of struct ifreqas name, and address but I really will like to avoid any dynamic configuration ala CNI ... that should be solved at another layer

@aojea this might be worth running this by Kata or the other virtualized runtimes.

@aojea this might be worth running this by Kata or the other virtualized runtimes.

are those implementing the OCI runtime spec?

@aojea this might be worth running this by Kata or the other virtualized runtimes.

are those implementing the OCI runtime spec?

Yes the communication between the runtime is via OCI. The CreateTask api in containerd uses the runtime oci spec to communicate with the lower level runtimes. Unless something has changed :-P @mikebrow keep me honest ha!

The CreateTask api in containerd uses the runtime oci spec to communicate with the lower level runtimes.

Then is unrelated, who implements the OCI spec is containerd in this case

containerd/kata both implement the oci spec

I have seen that link however I’m sure that’s is why the shim may exist?
The high level runtime uses the oci spec to communicate with the low level
runtime via oci.
Just quickly poking through the code.
https://github.com/kata-containers/kata-containers/blob/f24983b3cf6a5e8bcd006a3aad718fa9b83396af/src/runtime/pkg/oci/utils.go#L1011
I would need to trace it down in this runtime but this is what allows us to
swap out runc for kata rather easily.
On Tue, Aug 27, 2024 at 7:39 AM Antonio Ojea @.***>
wrote:

containerd/kata both implement the oci spec
https://github.com/kata-containers/kata-containers/blob/main/docs/Limitations.md
—
Reply to this email directly, view it on GitHub
https://github.com/opencontainers/runtime-spec/issues/1239#issuecomment-2312594788
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOW3MYBVTNGABSTRP6543YTZTR6STBFKMF2HI4TJMJ2XIZLTSOBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDUOJ2WLJDOMFWWLLTXMF2GG2C7MFRXI2LWNF2HTAVFOZQWY5LFUVUXG43VMWSG4YLNMWVXI2DSMVQWIX3UPFYGLLDTOVRGUZLDORPXI6LQMWWES43TOVSUG33NNVSW45FGORXXA2LDOOJIFJDUPFYGLKTSMVYG643JORXXE6NFOZQWY5LFVAZTMOJWGAZDSM4CUR2HS4DFUVUXG43VMWSXMYLMOVS2UMRQGYYTCNJQGQ4TTJ3UOJUWOZ3FOKTGG4TFMF2GK
.
You are receiving this email because you commented on the thread.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub
.

I see value in passing a list of netDevices to the oci runtimes however I would rather have the CNI plugins create/move the netdevs to the appropriate location. While this helps the Windows container networking stack, I would want to know if alignment exists in kata and other oci runtime as well. It seems like we have a disconnect here in regards to the virtualized oci runtimes for networking.

Are you proposing that we add libcontainer's Network type to the OCI bundle, or that we add a new structure defining existing host interfaces that are expected to be moved (and possibly renamed) to a container's network namespace?

the later, Network Type and network configuration is just what I want to avoid, is unbounded and contentious ... on the other side, moving host interfaces to container namespaces is IMHO well defined and solves important use cases very easily, my reasoning is that same as block devices are moved into the container namespace, network devices can be moved "declaratively" too, there should be possible to define some of the properties of struct ifreqas name, and address but I really will like to avoid any dynamic configuration ala CNI ... that should be solved at another layer
Specially interesting is the case where some devices have both an RDMA and a Netdevice, this will solve this problem really well, instead of having to split the responsibility of the RDMA device to the OCI runtime and the Netdevice to the CNI, that is always going to be racy

Creating and moving netdevs are on purpose out of the scope, this is a 1 to 1 mapping to the "block devices" API and functionality, so you have /dev/gpu1 or /dev/sound0 or similar and you can reference them and move into a container. In this case the OS does not represent netdevices as files (see description) but allow userspace to reference them and change their properties, so I'm proposing to provide the same functionality


Wrong condition for Node/CommonJS environment check

In lines 6,7 from file src/proj4leaflet.js
} else if (typeof module !== 'undefined') {
		// Node/CommonJS

when using jasmine and angular ngMock, module variable is defined. As a result Proj4Leaflet is initialized as if it was executed in node envorinment instead of browser.
Is it possible to change this condition?
Underscore uses:
typeof module !== 'undefined' && module.exports

for that purpose (http://stackoverflow.com/a/5197219).

This is related to PR #75. I think changing the condition is possible and will look into that. Adding the module.exports condition might not work for some CommonJS environments (see Adding CommonJS here http://ifandelse.com/its-not-hard-making-your-library-support-amd-and-commonjs/)

PR #75 is now merged which should take care of this!

@semone closing this, then?


Hook the newsletter form to mailchimp

I removed the scripts from the embedded form from mailchimp (it contained jquery++), so we do not have clientside vaildation for now, but everything seems to be working fine.
We can look at adding validation ourselves later.

Nice, good job dodging the completely unnecessary scripts from mc 👍
I fixed the e2e config now, and will merge when it (eventually) passes.


[SUGGESTION] Canister

Ever since the beginning of mounting bigass cannons on wheels, there was the idea to fill the entire barrel with tiny little pieces of shrapnel and blast it out like a shotgun. This is what canister is to a modern tank. It would be like fletchettes in the current ACF addon, but it can't defeat any armor that isn't paper and sprays a lot more shit out of the front of the barrel in a much larger cone. Pretty much only uses would be anti infantry.

My only concern would be causing the server to become janky after being overloaded by traces. The 37mm SC and flechette spam is already bad enough, I do not think that going over the 32 max flechette count is a good idea personally unless the tracing can be made more predictable and lightweight on the server.

Contrary to popular belief, traces by themselves are really lightweight on the server. The real problem is terminal ballistics, you can have thousands of bullets in the air and the server won't care about them as long as they don't hit something.

I'd just like to point out that in the video provided the FPS drop is primarily due to drawing all of the line segments for each bullet.

I'd like to give this a try and see how it does


【Bug】Some special symbols cannot be processed

Information

OS: Win
Version: 0.49.1
Terminal: cmd

Describe the bug
Some special characters cannot be counted as 2, like ℃、℉
To Reproduce

using Spectre.Console;

var table = new Spectre.Console.Table();
table.AddColumns("Name", "Value", "Description");
table.AddRow("test", "中文", "中文 mix English");
table.AddRow("test", "中文", "使用特殊字符℃");
table.AddRow("test", "中文", "使用特殊字符℉");
table.AddRow("test", "中文", "使用特殊字符");

AnsiConsole.Write(table);

Expected behavior
Table alignment
Screenshots

Additional context
Add any other context about the problem here.

Please upvote :+1: this issue if you are interested in it.

i see the pull request will be automatically merged. Do you need to review it?

@sdwdjzhy You haven't created a pull request for this issue, so not sure what will be merged.

It looks like this has something to do with your terminal font, because ℃ and ℉ are not considered to be wide characters.
Maybe ℃ and ℉ aren't available in your terminal font, and the terminal falls back to another font with a different width?
I've tested this using 6 terminals on 3 different OSes and cannot reproduce what you're seeing.


How to maintain original height and width of image take from camera?

I have tried setting quality to 100. But still the image is blurred. I can see a height and width param. How can I maintain original height and width of image?

@harikrishnanp did you ever figure this out? I created a separate issue a while back, but it never got answered. I'm experiencing the same issues, my placeholder image is crystal clear, everything I upload is blurry, nothing seems to help; quality 100 helps (compared to quality=1), but it's still blurry.

@harikrishnanp Did a little digging, since all this thing does is leverage existing components, I suggest you look at the react-native-image-picker docs directly. The example: App.js has a photo and video upload example that worked perfectly the first time I tried without any quality/resolution issues. There's obviously something wrong with this plugin and no one's willing to fix it.
https://github.com/react-community/react-native-image-picker/blob/develop/Example/App.js

The height and width params were passed to image resizer not image picker, as maxHeight and maxWidth params. so if you didn't pass them they were limited to 300, the defaults in this component.
apologies for the inconvenience, I have updated this now.
https://github.com/bamlab/react-native-image-resizer#promise-createresizedimagepath-maxwidth-maxheight-compressformat-quality-rotation--0-outputpath


steam error

after entering the loading screen its saying connection to steam ahs been dropped
can someone help regarding this issue
i successfully connected with this mod but this error comes after the loading screen

Hey man, did u fixed u error? I'm with the same error


Nuke 12.0 support

Are there any plans to support Nuke >12.0?

I'm not currently using this in any projects, so feel free to contribute :)

@ammerzon,
FYI
https://github.com/delneg/Nuke-AVIF-Plugin/pull/3

@ammerzon Can you please make a release tag? so that we can start using the above merged code.

@delneg Can you please make a release tag? so that we can start using the above merged code.

@delneg Can you please make a release tag? so that we can start using the above merged code.

Hello, as far as I see there's already a tag 0.9.4

My bad, I didn't see the tags page, I went to release page and there was only 0.9.3, I guess you forgot to mark 0.9.4 as latest release.


Compiling issue like 2 billion at this point

What is your question?
------------------------SScript 7.7.0 Macro------------------------
Special Thanks:

CrowPlexus

Checking version...
There was an error getting the latest version info, you may not have internet connection.
Continuing...
source/psychlua/CallbackHandler.hx:55: characters 18-33 : Class<llua.Lua_helper> has no field sendErrorsToLua
export/release/windows/haxe/ApplicationMain.hx:153: characters 5-36 : ... Called from macro here
I have no clue on how to fix it I've been trying to fix it for the past 3 days

Try to either:

Add a sendErrorsToLua field to the Lua_helper class, or
Remove the reference to sendErrorsToLua from the CallbackHandler.hx file

or try to use the original code from the psych engine repository, hope this helps

Thanks but how can I do that? Sorry I'm not that good at this Kinda stuff

In VSCode, or whatever IDE you have, search for the CallbackHandler file and open it.
On line 55, inside of the "catch(e:Dynamic)" thing, add this code (between line 55 and 57), this should work

If this doesn't work, just download the file and reemplaze it:
https://github.com/ShadowMario/FNF-PsychEngine/blob/main/source/psychlua/CallbackHandler.hx

you just need to use the git library
haxelib remove linc_luajit
haxelib git linc_luajit https://github.com/superpowers04/linc_luajit

Thanks for all of this but this is what I got back
------------------------SScript 7.7.0 Macro------------------------
Special Thanks:

CrowPlexus

Checking version...
There was an error getting the latest version info, you may not have internet connection.
Continuing...
C:\Users\buttu\Downloads\PSYCH\FNF-PsychEngine-main\FNF-PsychEngine-main\export\release\windows\obj>setlocal enabledelayedexpansion
Warning: Could not find Visual Studio VsDevCmd
Missing HXCPP_VARS
Error: Could not automatically setup MSVC

You don't have installed the MSVC thing, open the setup-msvc-win.bat on the setup folder of your source mod

There are 73 duplicates to this issue.
https://github.com/ShadowMario/FNF-PsychEngine/issues/14526


Update Gemfile.lock to reflect updated Xcov

Signed-off-by: Georg Braunig<EMAIL_ADDRESS>

Codecov Report

Merging #156 into master will decrease coverage by 0.37%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #156      +/-   ##
==========================================
- Coverage   87.91%   87.53%   -0.38%
==========================================
  Files          89       59      -30
  Lines        5932     3683    -2249
==========================================
- Hits         5215     3224    -1991
+ Misses        717      459     -258

Flag
Coverage Δ

#ios
87.53% <ø> (-0.38%)
:arrow_down:

Impacted Files
Coverage Δ

MSDKUI_Demo/IconButton.swift

MSDKUI_Demo/OptionsViewController.swift

MSDKUI_Demo/ManeuversOverviewViewController.swift

MSDKUI_Demo/GuidanceDashboardViewController.swift

MSDKUI_Demo/ExtensionArray.swift

MSDKUI_Demo/RouteViewController.swift

MSDKUI_Demo/ExtensionUITableViewCell.swift

MSDKUI_Demo/ExtensionBundle.swift

MSDKUI_Demo/ExtensionNMAMapMarker.swift

...UI_Demo/GuidanceDashboardTableViewDataSource.swift

... and 20 more

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 d2faf6b...02f587d. Read the comment docs.


Fix donut pct, line, and sparkline charts to update when config or da…

…ta changes

@dgutride @dtaylor113 @dlabrecq Please review.

Looks good.

LGTM

LGTM


Save patient details in database

As part of ingesting payloads due to a workflow request, patient details need to be extracted and saved alongside the payload object in the database.
This should be done in accordance to the data type that has been received in the workflow request. For example, when the input type is DICOM the information should be retrieved from the relevant DICOM tags.
Required data points

Patient ID
Patient name
Patient sex
Date of birth

@jackschofield23 @JJFinnerty we also need to expose the patient information as part of the workflow context object for use in parameters and conditional statements (see #179). Do you want to do that as part of this ticket or should I create a new ticket?

Might be worth keeping these tickets simple and creating a new ticket for that work.

@jackschofield23 can we close this as complete?

Closing as complete


When displaying lost IDs, acc. missing IDs etc. in the title, one can now hover over it to see untrimmed lists

Where some changed which I didn't want to commit


Define API governance plan and rate limit thresholds

User Stories

I need to know how many requests I can make to the API to use it in my app appropriately.
I need the API to be reliable, so I don't face outages that impact my app and my end users.

Acceptance Criteria

Define rate limits for authorized tokens
Are we including other ways of managing requests outside of rate limiting? Spike arrests, throttling, etc?

Considerations & Materials

In looking at past usage of the old TransitFeeds API, it looks like there was roughly  6.3 requests a minute (on average from the past 4 years)
Transit.land's rate limiting, requests per minute + monthly
Entur, Norway's National Access Point rate limiting approach

So far, there's been 13,904,225 in the access logs related to the api type of activity between Fri, 17 May 2019 07:29:19 GMT and Tue, 18 Jul 2023 19:58:27 GMT.
13,904,225 / 1523 days/ 24h / 60 minutes = 6.3 requests per minute over that period.

Data was extracted, from January 1st 2019 to July 20, 2023, and the results are stored in this Google Sheets:
https://docs.google.com/spreadsheets/d/15LBeilbg5Y6ev9IRIHlyYjsMp4yzLGZ_8tFtXweO9mE/edit#gid=1253602040
Details about the how this was done are located here:
https://github.com/MobilityData/it-scripts/tree/main/transitfeeds.com — Access logs processor


Fix typos

Found via:

codespell -S target -L crate,spected,childrens
typos --format brief

@kianmeng hello, and thanks for your first time contribution! Changes are approved.

:partying_face: :partying_face: :partying_face: :partying_face: :partying_face:


Navigator 2.0 doesn't update url to specified initial route

Steps to Reproduce

Run flutter create bug.
Update the files as follows:
main.dart -> https://gist.github.com/hrishikesh-kadam/78f784338c3e85a5d66fb3b4537c81d2/601eeed0653fcc0335a6de1fbd99f0c34ece8aac
flutter run -d chrome

Expected results:
The location bar should update to localhost:port/#/book/1
Actual results:
The location bar stays on localhost:port, not even localhost:port/ or localhost:port/#/
What is the right way to set the initial route in the Router widget?
The example used here is referred from the article Learning Flutter’s new navigation and routing system.

Logs

$ flutter run -d chrome --verbose
[  +48 ms] executing: uname -m
[  +23 ms] Exit code 0 from: uname -m
[        ] x86_64
[   +4 ms] executing: [/home/hrk/snap/flutter/common/flutter/] git -c
log.showSignature=false log -n 1 --pretty=format:%H
[   +6 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] f4abaa0735eba4dfd8f33f73363911d63931fe03
[        ] executing: [/home/hrk/snap/flutter/common/flutter/] git tag --points-at
f4abaa0735eba4dfd8f33f73363911d63931fe03
[   +9 ms] Exit code 0 from: git tag --points-at f4abaa0735eba4dfd8f33f73363911d63931fe03
[        ] 2.2.3
[   +3 ms] executing: [/home/hrk/snap/flutter/common/flutter/] git rev-parse --abbrev-ref
--symbolic @{u}
[   +3 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/home/hrk/snap/flutter/common/flutter/] git ls-remote --get-url
origin
[   +3 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +58 ms] executing: [/home/hrk/snap/flutter/common/flutter/] git rev-parse --abbrev-ref
HEAD
[   +3 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +39 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping
update.
[  +41 ms] executing: /mnt/common-data/softwares/android/sdk/linux/platform-tools/adb
devices -l
[   +6 ms] executing:
/home/hrk/snap/flutter/common/flutter/bin/cache/artifacts/fuchsia/tools/x64/ffx target list
--format s
[   +8 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[   +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping
update.
[  +44 ms] executing: /mnt/common-data/softwares/android/sdk/linux/platform-tools/adb
devices -l
[        ] executing:
/home/hrk/snap/flutter/common/flutter/bin/cache/artifacts/fuchsia/tools/x64/ffx target list
--format s
[   +8 ms] Skipping pub get: version match.
[  +84 ms] Generating
/mnt/common-data/study-material/flutter/bugs/initial_route/bug/android/app/src/main/java/io
/flutter/plugins/GeneratedPluginRegistrant.java
[  +79 ms] List of devices attached
[   +1 ms] List of devices attached
[  +41 ms] Launching lib/main.dart on Chrome in debug mode...
[  +76 ms] Updating assets
[  +55 ms] Waiting for connection from debug service on Chrome...
[  +64 ms] No devices found.
[        ] No devices found.
[  +12 ms] <- reset
[   +3 ms] /home/hrk/snap/flutter/common/flutter/bin/cache/dart-sdk/bin/dart
--disable-dart-dev
/home/hrk/snap/flutter/common/flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.
dart.snapshot --sdk-root /home/hrk/snap/flutter/common/flutter/bin/cache/flutter_web_sdk/
--incremental --target=dartdevc --debugger-module-names --experimental-emit-debug-metadata
-DFLUTTER_WEB_AUTO_DETECT=true --output-dill
/tmp/flutter_tools.ZSDQGC/flutter_tool.TFAJIX/app.dill --libraries-spec
file:///home/hrk/snap/flutter/common/flutter/bin/cache/flutter_web_sdk/libraries.json
--packages
/mnt/common-data/study-material/flutter/bugs/initial_route/bug/.dart_tool/package_config.js
on -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation
--filesystem-root /tmp/flutter_tools.ZSDQGC/flutter_tools.JPTYYX --filesystem-scheme
org-dartlang-app --initialize-from-dill
build/b1b715402d823b7fd5c2b68d2edcb2ce.cache.dill.track.dill --platform
file:///home/hrk/snap/flutter/common/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_s
dk_sound.dill --sound-null-safety
[   +5 ms] <- compile org-dartlang-app:/web_entrypoint.dart
[+13131 ms] Waiting for connection from debug service on Chrome... (completed in 13.2s)
[        ] Synced 28.3MB.
[        ] <- accept
[        ] Caching compiled dill
[ +159 ms] Using Google Chrome 92.0.4515.131

[ +461 ms] [CHROME]:
[        ] [CHROME]:DevTools listening on
ws://<IP_ADDRESS>:42703/devtools/browser/29cbf343-0667-478a-9cb4-d5d3ecf4581f
[ +157 ms] DwdsInjector: Received request for entrypoint at
http://localhost:40379/main_module.bootstrap.js
[   +3 ms] MetadataProvider: Loading debug metadata...
[  +10 ms] MetadataProvider: Loaded debug metadata (sound null safety)
[   +5 ms] DwdsInjector: Injected debugging metadata for entrypoint at
http://localhost:40379/main_module.bootstrap.js
[+1254 ms] ChromeProxyService: Initializing expression compiler for
main_module.bootstrap.js with sound null safety: true
[  +50 ms] DevHandler: Debug service listening on ws://<IP_ADDRESS>:45237/2njNtXyFeUU=/ws

[  +16 ms] This app is linked to the debug service: ws://<IP_ADDRESS>:45237/2njNtXyFeUU=/ws
[   +5 ms] Debug service listening on ws://<IP_ADDRESS>:45237/2njNtXyFeUU=/ws
[        ] 💪 Running with sound null safety 💪
[   +2 ms] 🔥  To hot restart changes while running, press "r" or "R".
[        ] For a more detailed help message, press "h". To quit, press "q".

$ flutter analyze
Analyzing bug...
No issues found! (ran in 1.0s)

$ flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on Linux, locale en_IN)
    • Flutter version 2.2.3 at /home/hrk/snap/flutter/common/flutter
    • Framework revision f4abaa0735 (5 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /mnt/common-data/softwares/android/sdk/linux
    • Platform android-31, build-tools 31.0.0
    • ANDROID_SDK_ROOT = /mnt/common-data/softwares/android/sdk/linux
    • Java binary at: /snap/android-studio/current/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
    • cmake version 3.10.2
    • ninja version 1.8.2
    • pkg-config version 0.29.1

[✓] Android Studio (version 2020.3)
    • Android Studio at /snap/android-studio/current/android-studio
    • Flutter plugin version 59.0.2
    • Dart plugin version 203.8292
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] Android Studio (version 4.2)
    • Android Studio at /snap/android-studio/113/android-studio
    • Flutter plugin version 58.0.1
    • Dart plugin version 202.8531
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at /snap/intellij-idea-community/310
    • Flutter plugin installed
    • Dart plugin version 211.7727

[✓] IntelliJ IDEA Community Edition (version 2021.2)
    • IntelliJ at /snap/intellij-idea-community/315
    • Flutter plugin installed
    • Dart plugin version 212.4746.57

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux
    • Chrome (web)    • chrome • web-javascript • Google Chrome 92.0.4515.131

• No issues found!

I am able to reproduce the issue. The initial page loads correctly but the specified page URL doesn't update.

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale en-GB)
    • Flutter version 2.2.3 at /Users/mahesh/Documents/flutter
    • Framework revision f4abaa0735 (4 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 57.0.5
    • Dart plugin version 211.7233

[✓] VS Code (version 1.58.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.24.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 11.4 20F71 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 91.0.4472.164

• No issues found!

[✓] Flutter (Channel master, 2.5.0-6.0.pre.21, on macOS 11.4 20F71 darwin-arm, locale en-GB)
    • Flutter version 2.5.0-6.0.pre.21 at /Users/mahesh/Documents/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 40e8620a27 (9 hours ago), 2021-08-06 09:14:50 +0430
    • Engine revision 431ac604da
    • Dart version 2.14.0 (build 2.14.0-383.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] VS Code (version 1.58.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.25.0

[✓] Connected device (3 available)
    • Redmi K20 Pro (mobile)  • android-arm64  • Android 11 (API 30)
    • macOS (desktop)        • macos            • darwin-arm64   • macOS 11.4 20F71 darwin-arm
    • Chrome (web)           • chrome           • web-javascript • Google Chrome 92.0.4515.131

• No issues found!

/cc @chunhtai

@chunhtai above mentioned PR has definitely fixed this issue.
Thanks for the quick fix.
But it is creating 2 entries in the browser history if I click the back button on the app bar of the initial route.

Hi @hrishikesh-kadam
What is the use case you want to achieve by setting the initial route in route information provider. If you want to redirect / to other route, you should use the RouteInformationParser to redirect the initial route, if you want to deeplink, you should append the route in the url when you distribute the link.

Hello @chunhtai
I am working on my portfolio app.
I wanted to test some routes other than the initial route by setting it programmatically instead of navigating through clicks.
This led me to see that the location bar was not updating to the specified initial route.
So thought of reporting via issues and check whether I am setting the initial route correctly.
If these changes are breaking existing code or you feel that if this is not required then you can consider this for reverting.
No issues from my side.

I think the original issue is definitely a bug we should fix, so thanks for reporting this issue.
Though I think it should create a second entry if you do that. Like you said, it is programmatically changing the initial route which should leave a trace of history, thus 2 entries. If you want only 1 entries you should overriding it on the platform, aka browser, side by providing an initial route to the url bar or mock the WidgetsBinding.instance!.window.defaultRouteName
I intend to keep it as is

@chunhtai Thank you very much for making my doubts clear about the initial route. 😃
Your comments helped me to understand it correctly.
I will close flutter/flutter#88730 as intended behavior.


Make the importer extendable

Although it seems to be a new feature, I think this could be treated as a bugfix.
I wanted to extend (not override) the shared_dirs configuration from YAML file, but it occurred that the Importer uses the set() function instead of add(). Thus, I wanted to extend the class, because the methods are protected and not private, but it was not possible because it uses self:: instead of static::.
config:
    shared_dirs:
        - my_extra_shared_folder

This pull requests makes the Importer class extendable, for example:
class ExtendedImporter extends \Deployer\Importer\Importer
{
    protected static function config(array $config)
    {
        foreach ($config as $key => $value) {
            add($key, $value);
        }
    }
}

ExtendedImporter::import('deploy-hosts.yml');

Cool. A test would be nice.

@antonmedv unit test added :+1:


Shopping list for hardware (Microcontrollers+Sensors)

Description
Create a shopping list for the various items and buy the items.
Additional Context
No response
Expected Actions

[x] Create shopping list for microcontroller(s)
[x] Create shopping list for sensors
[x] Create shopping list for misc
[ ] Buy selected items
[ ] Delivery complete

Definition Of Done

[ ] Documentation implemented or adjusted
[ ] GitHub Actions are passing

We should consider the following:

Monitoring the temperature outside the box and inside the box (2x temperature sensors)
We need to fix the thermal management problem


Add enableWindowScrolling prop to ModalWrapper

This prop gives the option to disable the no-scroll module and allow
the parent window to scroll.
Allowing the parent window to scroll fixes a bug when a captcha is
loaded in a modal window and the captcha puzzle is sometimes pushed
off-screen, especially on mobile-sized screens. Without the no-scroll
module loading, the captcha puzzle can properly position itself.


Sponsors Section in Homepage

First thing, PLEASE READ THIS: ReactPlay Code Review Checklist

Description
This is build of the sponsors section  in the ReactPlay home page which includes Event Sponsors & Partners, Prime Sponsors and Backers.
Fixes #1180
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
This has been tested locally.4
Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

@ammaaraslam, the font size of the highlighted section seems to be very big, it would be great if we reduce it. cc: @atapas

@ammaaraslam could you please respond to this so that we know it's ready to merge or more work pending?
FYI.. the heading style should be the same as the heading of other sections on the page.

@ammaaraslam, the font size of the highlighted section seems to be very big, it would be great if we reduce it. cc: @atapas

@ammaaraslam could you please respond to this so that we know it's ready to merge or more work pending?
FYI.. the heading style should be the same as the heading of other sections on the page.

@atapas all work is done. And in terms of the styling of the heading, it is exactly the same as every other. Only difference, is the underline decoration, because in mobile, the heading spans multiple lines and the usual decoration breaks. So that's why had to change it.

https://deploy-preview-1181--reactplayio.netlify.app

Thanks for confirming that the size is same.
One difference I find though. All other heading only the highlighted texts are bold but in this case the entire line. I think we can do like:
Our Partners & Sponsors
What I mean is to bold and underline only Partners & Sponsors
Our Partners & Sponsors

@atapas
Oh ok. Now I've made the changes, have a look and confirm

Ready to Merge


docs: convert relative to absolute links

We have just a few relative links (the rest are absolute). This prevents links from breaking on coreos.com and won't affect anyone browsing Github.

@robszumski If we change it to absolute links, people cannot jump between docs when they are in release branch.

Hm, you're right. Some of the other projects were mixed, I had assumed etcd was the same.


When I hide 'legend', it still as a block element use space

Version
4.8.0
Steps to reproduce
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <title>线路拥挤程度</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

What is expected?
English: How to make legend element don't use space when I set legend.show to 'false'
Chinese: 怎么样实现既隐藏掉legend，又可以不占用空间呢？
What is actually happening?
legend was hidden, but it still use space, like there is a placeholder inside the canvas.

none

I found my code was lost when I submit issue, see full version code, just visit: https://jsfiddle.net/f5rbn27a/

I found my code was lost when I submit issue, see full version code, just visit: https://jsfiddle.net/f5rbn27a/

I'm not sure what you mean by blocking and use space. Legend won't affect the layout of other components.

I'm not sure what you mean by blocking and use space. Legend won't affect the layout of other components.

I'm not sure what you mean by blocking and use space. Legend won't affect the layout of other components.

I mean when I hidden legend(set "show" to false), we can't see anything inside of legend , but the legend still has a blank space inside of canvas. For example: if the canvas contains series and legend. the series heigh is 300, the legend height is 200, so the cavans total height is 500. that's no problem. if I hidden the legend, I hope the canvas height should be 300(because now just series is showing), but actually, echart still use 500 to render the canvas.

I'm not sure what you mean by blocking and use space. Legend won't affect the layout of other components.

I mean when I hidden legend(set "show" to false), we can't see anything inside of legend , but the legend still has a blank space inside of canvas. For example: if the canvas contains series and legend. the series heigh is 300, the legend height is 200, so the cavans total height is 500. that's no problem. if I hidden the legend, I hope the canvas height should be 300(because now just series is showing), but actually, echart still use 500 to render the canvas.

As I said, the legend component won't affect the layout. The blank area is caused by the grid component top config. You can set it to a smaller value like 10

As I said, the legend component won't affect the layout. The blank area is caused by the grid component top config. You can set it to a smaller value like 10

As I said, the legend component won't affect the layout. The blank area is caused by the grid component top config. You can set it to a smaller value like 10

I tried, it taks no effect, but thank you for your idea.

As I said, the legend component won't affect the layout. The blank area is caused by the grid component top config. You can set it to a smaller value like 10

I tried, it taks no effect, but thank you for your idea.

Since I can use below fields move radar graph to keep it in center inside of canvas, I can solve my problems, I close my issue.
https://echarts.apache.org/zh/option.html#radar.center
https://echarts.apache.org/zh/option.html#radar.radius

Since I can use below fields move radar graph to keep it in center inside of canvas, I can solve my problems, I close my issue.
https://echarts.apache.org/zh/option.html#radar.center
https://echarts.apache.org/zh/option.html#radar.radius


Is there a way to use Autoscale to stop all session hosts when there are no active user sessions?

Is there a way to use Autoscale to stop all session hosts when there are no active sessions?

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

ID: e485eb1b-63d7-6fb4-a84a-367be0b7ae09
Version Independent ID: 6b38c7f4-b264-853c-ac69-9a7d9abc557e
Content: Azure Virtual Desktop session host autoscale preview
Content Source: articles/virtual-desktop/autoscale-scaling-plan.md
Service: virtual-desktop
GitHub Login: @Heidilohr
Microsoft Alias: helohr

Thanks for the question. We are currently investigating and will update you shortly.

Can the autoscale feature turn off all the VMs in a host pool, or does it need to keep at least a few VMs on to work properly?
The autoscale feature can turn off all VMs in a host pool if the minimum percentage of hosts is set to 0% and there are no user sessions on the session hosts in the host pool.
How do I configure the autoscale feature so I run zero session hosts after working hours?
Ramp-down mode always uses the lowest possible number of session hosts. However, if there are existing user sessions, the lowest number of usable session hosts won't be zero. To configure the time limit policy to sign out all disconnected users to avoid having usable session hosts after hours, go to Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits > Set time limit for disconnected sessions.
https://docs.microsoft.com/en-us/azure/virtual-desktop/autoscale-faq#how-do-i-configure-the-autoscale-feature-so-i-run-zero-session-hosts-after-working-hours-
We will now close this issue. If there are further questions regarding this matter, please tag me in a comment. I will reopen it and we will gladly continue the discussion.


BiSeNet model weight?

Looking for BiSeNet weight what weights did you use?

Looking for BiSeNet weight what weights did you use?

The weight we use can be found at face_parsing, provided by the face-parsing.PyTorch, thanks~


DF Chat Enhancements: Better handling of name attribution in Adventure Log

Currently, if a player saves a chat message from the GM to the adventure log, the saved entry lists the Gamemaster in parentheses even if the GM was emoting as an NPC to chat. And when emoting, the emote source is thrown into the text of the quote, which not only doesn't look great but makes it confusing to see, at a glance, who the speaker of the quote was. Lastly, the doubling up that happens in attribution when the Gamemaster saves a chat message, really doesn't look good. So, a few suggestions for improvement:

The token name should appear before the text of a saved message in the Adventure Log, not within it.
The Gamemaster should either never appear before the text of a chat message in the Adventure Log, or else we should have the option to turn it off.
We should have the option to turn off display of which player saved the chat message in the Adventure Log. Who saved a message is really not important. Having a player name or Gamemaster displayed before each message clutters up the log.

So I can do option 3, but the others would change the way that a Quote is intended to be written.


bugfix: netInfo can be null even when there is connectivity.

This bug resulted in MixPanel requests never being sent in our locked-down Ethernet Kiosk environment, as referenced in Issue #444
From our investigation, it is worth noting that:

We have connectivity via Ethernet
We have the android.permission.ACCESS_NETWORK_STATE permission enabled
connectivityManager.getActiveNetworkInfo() always returns null
connectivityManager.getAllNetworks() always returns either null or an empty array (on API 22)

Also, according to the documentation for ConnectivityManager#getActiveNetworkInfo:

This may return null when there is no default network.

The code in HttpService was assuming that a null NetworkInfo response signifies no connectivity but that is not always the case. In our Ethernet environment, we have connectivity but there is no default network.

@gmale This is great. Thanks for the investigation and for implementing a fix. Will merge now and release it later today.


RuntimeError: CUDA error: device-side assert triggered

使用自己的数据集进行训练时出现了这个错误，请问应该怎么解决呢？

Traceback (most recent call last):
File "/home/jxt/.conda/envs/efficient/lib/python3.8/multiprocessing/queues.py", line 245, in _feed
send_bytes(obj)
File "/home/jxt/.conda/envs/efficient/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
self._send_bytes(m[offset:offset + size])
File "/home/jxt/.conda/envs/efficient/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
self._send(header + buf)
File "/home/jxt/.conda/envs/efficient/lib/python3.8/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
Traceback (most recent call last):
File "/mnt/disk1/data0/jxt/efficientdet/train.py", line 504, in
fit_one_epoch(model_train, model, focal_loss, loss_history, eval_callback, optimizer, epoch,
File "/mnt/disk1/data0/jxt/efficientdet/utils/utils_fit.py", line 37, in fit_one_epoch
loss_value, _, _ = focal_loss(classification, regression, anchors, targets, cuda = cuda)
File "/home/jxt/.conda/envs/efficient/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/mnt/disk1/data0/jxt/efficientdet/nets/efficientdet_training.py", line 210, in forward
if positive_indices.sum() > 0:
RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

你的txt没改吗

这个问题我解决了 是我粗心没确认好类别信息。我现在有另一个问题就是：我的输入图像都是5000*3000的，好像太大了，这种情况要怎么办呢

0 0 你的目标大吗


Camera appears upside down

Expected Behavior
When filling a shape with the camera, it should appear right way up.
Actual Behavior
The camera starts, using the front facing camera, but the image is upside down. When I switch to the back facing camera the image appears right way up. When I switch back to the front facing camera, the image is right way up as expected.
Steps to Reproduce

Draw a shape
Tap the camera icon, then tap the shape to fill the shape with the camera feed.

Device and Operating System
Google Pixel Slate, Android 9

@chrisgarrity Do you have any idea about what the impact of this is?  Is it everyone on Android or just a subset of devices?

@BryceLTaylor I think we have had occasional reports of the camera being upside down, but not recently. I think it's probably low impact (Android = ~30% of users, this is a small subset of Android).

Closing it, keep this in mind for rewrite.


implement the herald and baron timers? [FEATURE]

would you have any prediction of when it would be possible to implement the herald and baron timers?
and a fix for elder powerplay overriding elder drake's timer after no done, stay as override?

@floh22 @FFFFFFFXXXXXXX

As far as i know @floh22 is almost completely inactive.
I am only familiar with a small part of the codebase so I wont be making any changes soon either.
So the current estimated time is never

Added in latest release


Strange performance degradation over repeated queries

Environment
Elixir: 1.7.3
Database: PostgreSQL 10.5
Ecto version: 2.2.11 (via phoenix_ecto)
DB adapter: postgrex 0.13.5
OS: OSX 10.13.6
Current behavior
I've run into a strange issue with query performance. I think this may be related to Ecto, but I'm having a hard to making sense of it, so please redirect me if I'm in the wrong place.
I've got a table that contains about 82,000 rows, and a query that returns a small subset. After booting Phoenix, I get this performance for repeated executions of the same query:
[debug] [18:12:02.059] QUERY OK source="engagements" db=19.4ms decode=1.2ms
[debug] [18:12:26.821] QUERY OK source="engagements" db=15.0ms decode=2.3ms
[debug] [18:12:29.674] QUERY OK source="engagements" db=8.7ms decode=2.2ms
[debug] [18:12:31.277] QUERY OK source="engagements" db=8.8ms decode=1.1ms
[debug] [18:12:32.887] QUERY OK source="engagements" db=8.7ms decode=2.6ms
[debug] [18:13:22.482] QUERY OK source="engagements" db=8.4ms decode=2.2ms
[debug] [18:13:33.722] QUERY OK source="engagements" db=9.5ms decode=1.0ms
[debug] [18:13:47.186] QUERY OK source="engagements" db=8.5ms decode=2.2ms
[debug] [18:14:02.293] QUERY OK source="engagements" db=8.4ms decode=2.4ms
[debug] [18:14:12.637] QUERY OK source="engagements" db=9.5ms decode=2.2ms
[debug] [18:14:27.575] QUERY OK source="engagements" db=297.0ms decode=1.3ms
[debug] [18:14:38.714] QUERY OK source="engagements" db=309.5ms decode=2.3ms
[debug] [18:14:49.700] QUERY OK source="engagements" db=326.6ms decode=2.4ms
For some reason, on the 11th attempt, performance degrades massively and never recovers. I'm having difficulty pinpointing where exactly in the stack the issue is.
The generated SQL looks something like this (excuse the noise on the ID clause):
SELECT
    distinct on (post_id) *
FROM
    engagements
WHERE
    post_id = ANY(ARRAY[30783,31047,31006,31182,31131,30973,33910,30994,33849,30894,30947,30980,30606,30551,31066,30661,30581,30901,31061,30583,31234,31236,30757,30892,31216,31089,31104,30562,30987,37307,30972,30587,31037,31029,30592,33958,31430,30963,30594,30916,31033,33955,31062,30930,33917,33957,31077,30806,31153,30899,33950,30546,30658,31043,31008,31152,27286,30572,33954,30881,30948,30974,30691,30998,33855,31032,33857,33842,30919,31433,30566,31071,33856,33845,33948,31460,30895,33926,30663,33919,30900,33892,31070,31304,30920,31057,33915,30903,33930,30734,30591,30891,31470,30893,30803,31002,33939,31482,30946,37308,31408,33956,31173,31405,30960,31294,33854,30598,30941,31266,31055,31019,33912,31014,30807,33938,30897,31235,30944,33904,33913,30786,31409,30898,30604,30825,33914,35247,36954,27549,31677,36057,37156,35672,34615,31970,35249,35231,37176,32590,35244,33872,35304,34155,35003,35298,35029,35256,28436,36232,28780,32023,35223,37169,35228,34655,34717,32163,35745,34162,28899,32743,35790,34080,34654,35772,29093,35250,35232,29307,35074,33043,35793,29388,35240,36201,34661,35778,28737,34656,35791,34055,35252,35005,35243,35128,34932,36172,33145,34081,32711,35225,35255,35794,35226,35316,28949,33025,28964,36002,29104,35948,35132,35246,31523,35581,35238,35257,34645,34630,35629,28822,35245,29137,35282,35587,34110,32866,28838,35275,33196,28253,36055,34052,35801,35242,35626,28594,35269,36205,28150,35420,34681,35747,35220,35305,36060,35673,36059,34077,35424,29089,34277,31625,29117,32123,32899,32904,35310,29076,34991,34076,36382,33565,32750,35040,28977,35682,35253,36056,27815,35030,34617,32728,34795,36380,35227,28892,34815,35077,32010,33633,35229,32147,31322,35251,35179,35241,35340,29261,35617,36371,36001,28005,33462,35292,29448]::int[]) and
    date >= '2018-09-01' and
    date <= '2019-03-01'
ORDER BY
    post_id, date DESC;

And the explain analyze:
 Unique  (cost=2989.66..2998.20 rows=1580 width=93) (actual time=4.905..5.349 rows=282 loops=1)
   ->  Sort  (cost=2989.66..2993.93 rows=1708 width=93) (actual time=4.902..5.043 rows=1571 loops=1)
         Sort Key: post_id, date DESC
         Sort Method: quicksort  Memory: 269kB
         ->  Bitmap Heap Scan on engagements  (cost=933.77..2897.95 rows=1708 width=93) (actual time=2.413..3.666 rows=1571 loops=1)
               Recheck Cond: ((post_id = ANY ('{30783,31047,31006,31182,31131,30973,33910,30994,33849,30894,30947,30980,30606,30551,31066,30661,30581,30901,31061,30583,31234,31236,30757,30892,31216,31089,31104,30562,30987,37307,30972,30587,31037,31029,30592,33958,31430,30963,30594,30916,31033,33955,31062,30930,33917,33957,31077,30806,31153,30899,33950,30546,30658,31043,31008,31152,27286,30572,33954,30881,30948,30974,30691,30998,33855,31032,33857,33842,30919,31433,30566,31071,33856,33845,33948,31460,30895,33926,30663,33919,30900,33892,31070,31304,30920,31057,33915,30903,33930,30734,30591,30891,31470,30893,30803,31002,33939,31482,30946,37308,31408,33956,31173,31405,30960,31294,33854,30598,30941,31266,31055,31019,33912,31014,30807,33938,30897,31235,30944,33904,33913,30786,31409,30898,30604,30825,33914,35247,36954,27549,31677,36057,37156,35672,34615,31970,35249,35231,37176,32590,35244,33872,35304,34155,35003,35298,35029,35256,28436,36232,28780,32023,35223,37169,35228,34655,34717,32163,35745,34162,28899,32743,35790,34080,34654,35772,29093,35250,35232,29307,35074,33043,35793,29388,35240,36201,34661,35778,28737,34656,35791,34055,35252,35005,35243,35128,34932,36172,33145,34081,32711,35225,35255,35794,35226,35316,28949,33025,28964,36002,29104,35948,35132,35246,31523,35581,35238,35257,34645,34630,35629,28822,35245,29137,35282,35587,34110,32866,28838,35275,33196,28253,36055,34052,35801,35242,35626,28594,35269,36205,28150,35420,34681,35747,35220,35305,36060,35673,36059,34077,35424,29089,34277,31625,29117,32123,32899,32904,35310,29076,34991,34076,36382,33565,32750,35040,28977,35682,35253,36056,27815,35030,34617,32728,34795,36380,35227,28892,34815,35077,32010,33633,35229,32147,31322,35251,35179,35241,35340,29261,35617,36371,36001,28005,33462,35292,29448}'::integer[])) AND (date >= '2018-07-30'::date) AND (date <= '2018-10-20'::date))
               Heap Blocks: exact=635
               ->  Bitmap Index Scan on engagements_post_id_date_desc_index  (cost=0.00..933.35 rows=1708 width=0) (actual time=2.241..2.242 rows=1571 loops=1)
                     Index Cond: ((post_id = ANY ('{30783,31047,31006,31182,31131,30973,33910,30994,33849,30894,30947,30980,30606,30551,31066,30661,30581,30901,31061,30583,31234,31236,30757,30892,31216,31089,31104,30562,30987,37307,30972,30587,31037,31029,30592,33958,31430,30963,30594,30916,31033,33955,31062,30930,33917,33957,31077,30806,31153,30899,33950,30546,30658,31043,31008,31152,27286,30572,33954,30881,30948,30974,30691,30998,33855,31032,33857,33842,30919,31433,30566,31071,33856,33845,33948,31460,30895,33926,30663,33919,30900,33892,31070,31304,30920,31057,33915,30903,33930,30734,30591,30891,31470,30893,30803,31002,33939,31482,30946,37308,31408,33956,31173,31405,30960,31294,33854,30598,30941,31266,31055,31019,33912,31014,30807,33938,30897,31235,30944,33904,33913,30786,31409,30898,30604,30825,33914,35247,36954,27549,31677,36057,37156,35672,34615,31970,35249,35231,37176,32590,35244,33872,35304,34155,35003,35298,35029,35256,28436,36232,28780,32023,35223,37169,35228,34655,34717,32163,35745,34162,28899,32743,35790,34080,34654,35772,29093,35250,35232,29307,35074,33043,35793,29388,35240,36201,34661,35778,28737,34656,35791,34055,35252,35005,35243,35128,34932,36172,33145,34081,32711,35225,35255,35794,35226,35316,28949,33025,28964,36002,29104,35948,35132,35246,31523,35581,35238,35257,34645,34630,35629,28822,35245,29137,35282,35587,34110,32866,28838,35275,33196,28253,36055,34052,35801,35242,35626,28594,35269,36205,28150,35420,34681,35747,35220,35305,36060,35673,36059,34077,35424,29089,34277,31625,29117,32123,32899,32904,35310,29076,34991,34076,36382,33565,32750,35040,28977,35682,35253,36056,27815,35030,34617,32728,34795,36380,35227,28892,34815,35077,32010,33633,35229,32147,31322,35251,35179,35241,35340,29261,35617,36371,36001,28005,33462,35292,29448}'::integer[])) AND (date >= '2018-07-30'::date) AND (date <= '2018-10-20'::date))
 Planning time: 2.502 ms
 Execution time: 5.571 ms
(11 rows)

My initial thought was that I'm doing the wrong thing with my query, but the query time in psql is stable over any number of requests. Killing off phoenix and starting it again however will restart the degradation pattern.
I've run a vacuum analyze, and I only see this problem on this one particular table. Any help figuring out why performance is dropping would be much appreciated, even if it's just pointing me towards areas of investigation.

Is it always after 10? If so, what is your pool size? What if you increase
and reduce the pool size? Does that affect the results?
Also, how are you running those queries? If you run each query in a
separate process by using Task.async(fn-> run_query(); :ok end) |>
Task.await, does it change the results too?
José Valim
www.plataformatec.com.br
Skype: jv.ptec
Founder and Director of R&D

Wow, thanks for the quick reply!
I tried tweaking the pool size, and it's definitely correlated. It happens after pool_size * 5 requests. Any ideas why this might be the case?
Using Task.async has no effect.

@waffleau would you be wiling to give Ecto 3.0 a try? It is currently in rc, you can read more about it here: https://elixirforum.com/t/ecto-3-0-rc-is-out-and-stable-api/17306
I am not sure why this is happening, but I am wondering if it has been fixed. @fishcakez may know better.

Hi @waffleau, @fishcakez is thinking this could be related to the query planning in PG. If you build the query by hand and send it twice using Repo.query!(sql, []) do you see the same issue? IF so, what happens if you replace the post_id = ANY(ARRAY[]) by a post_id IN ()?

I tried updating to Ecto 3.0 and changing to an id in () query and got the same results. I took the raw SQL as in the first post and tried it with Repo.query and didn't see the problem however.
This is a little confusing though, as the raw SQL I pasted initially I obtained in the first place by copying the query that Ecto had planned:
SELECT DISTINCT ON (e0."post_id") e0."*" FROM "engagements" AS e0 WHERE (e0."date" >= $1) AND (e0."date" <= $2) AND (e0."post_id" = ANY($3)) ORDER BY e0."post_id", e0."date" DESC [{2018, 7, 30}, {2018, 10, 20}, [30783, 31047, 31006, 31182, 31131, 30973, 33910, 30994, 33849, 30894, 30947, 30980, 30606, 30551, 31066, 30661, 30581, 30901, 31061, 30583, 31234, 31236, 30757, 30892, 31216, 31089, 31104, 30562, 30987, 37307, 30972, 30587, 31037, 31029, 30592, 33958, 31430, 30963, 30594, 30916, 31033, 33955, 31062, 30930, 33917, 33957, 31077, ...]]

@waffleau sorry, do you mean that updating to Ecto 3.0 made no difference?

I took the raw SQL as in the first post and tried it with Repo.query and didn't have the problem however.

Can you post the exact commands you tried with Repo.query? Basically, I think we need to test two different scenarios. One where all of the IDs are directly in the query and another where the IDs are passed as paraemter, and see if any of them trigger the behaviour.

That's correct, no difference with Ecto 3.0.
I initially ran the Repo.query as a pure string, but your comment has clued me in to try it with passed params. I didn't experience the performance drop when doing this. The exact query:
sql = """
SELECT DISTINCT ON (e0."post_id") e0.*
FROM "engagements" AS e0
WHERE (e0."date" >= $1) AND (e0."date" <= $2) AND (e0."post_id" = ANY($3))
ORDER BY e0."post_id", e0."date" DESC
"""

from_date = {2018, 7, 30}
to_date = {2018, 10, 20}
post_ids = [...] # big list, omitted here

Enum.each(1..100, fn index ->
   Repo.query(sql, [from_date, to_date, post_ids])
end)

That's very weird. What if you do something like this:
{:ok, pid} = Postgrex.start_link(YourApp.Repo.config)
{:ok, query} = Postgrex.prepare(pid, "hello", sql)
Postgrex.execute(pid, query, [from_date, to_date, post_ids])

If you do the execute a couple times, is it enough to reproduce the issue?

Using the direct postgres execution, I do run into the error after five requests:
[info] [09:50:25.102] [Attempt # 1] Benchmark total - 131ms
[info] [09:50:25.116] [Attempt # 2] Benchmark total - 14ms
[info] [09:50:25.129] [Attempt # 3] Benchmark total - 13ms
[info] [09:50:25.143] [Attempt # 4] Benchmark total - 13ms
[info] [09:50:25.156] [Attempt # 5] Benchmark total - 13ms
[info] [09:50:25.486] [Attempt # 6] Benchmark total - 330ms
[info] [09:50:25.806] [Attempt # 7] Benchmark total - 319ms
[info] [09:50:26.120] [Attempt # 8] Benchmark total - 314ms
[info] [09:50:26.446] [Attempt # 9] Benchmark total - 325ms

@waffleau see the notes section in https://www.postgresql.org/docs/10/static/sql-prepare.html#SQL-PREPARE-NOTES

Does this mean my best bet is opening an issue the postgrex library?

As @fishcakez posted, I actually think this is related to Postgres. You could try testing this in another language that talks to Postgres, using the same queries and parameters, but it is most likely Postgres doing a bad choice during planning/execution.

Thanks for your help @josevalim and @fishcakez. I'll close this issue and continue working my way down the stack.


[BACKLOG-38623]Code changes for moving 'Get a file from FTP' job step from core to plugin.

BACKLOG-38623 Moved code from core to plugin for Job step - 'Get a file from FTP'

:white_check_mark: Build finished in 1h 54s
Build command:
mvn clean verify -B -e -Daudit -amd -pl \
assemblies/plugins,engine,plugins,plugins/get-file-with-ftp,plugins/get-file-with-ftp/assemblies,plugins/get-file-with-ftp/assemblies/plugin,plugins/get-file-with-ftp/impl,plugins/get-file-with-ftp/ui,ui

:ok_hand: All tests passed!
Tests run: 5315, Failures: 0, Skipped: 14    Test Results

:information_source:  This is an automatic message


hello,would you add Hexadecimal batch search folder

I want to search for files in the whole directory, and I can only search one file at the moment.

Thank you.


[stable/hlf-couchdb] Typo fix: Fabric CouchdDB->Fabric CouchDB

Line 89: Fabric CouchdDB->Fabric CouchDB

/assign @foxish

@foxish, this LGTM, but I cannot approve.

/ok-to-test

/lgtm

/approve

We can close this pull request now, as typo has been resolved in another PR


Dirty fix for RT-5289

About the PR

Adds dotnet build -c Release RobustToolbox\Robust.Client.Injectors in all the client batch files to ensure we have RELEASE Robust.Client.Injectors
This frequently happens on people who just cloned the repo and never built release.
https://github.com/space-wizards/RobustToolbox/pull/5289 should fix this but it has been stuck for a while seemingly nowhere and I want a temporary fix for now
Also adds pause to let you see any errors.
Requirements

[x] I have read and am following the Pull Request and Changelog Guidelines.
[x] I have added media to this PR or it does not require an ingame showcase.

Also adds pause to let you see any errors.

Can you make it pause only if you launch the bat from explorer? I imagine most people will run these directly from a terminal and pausing is just annoying in that case.

Also adds pause to let you see any errors.

Can you make it pause only if you launch the bat from explorer? I imagine most people will run these directly from a terminal and pausing is just annoying in that case.

That's impossible


Added referral entry component to referral settings DEV-11

@thedigitaldesign We should review the way that I used the async calls + setState. This is the first time that we truly handle all the different errors that could be returned by the server. It also handles the async API requests in a very compartmentalized way that doesn't leak out into other components. If we like the way this looks, we should start moving new API connections to this sort of pattern and eventually move old API connections over as well.


Proper State Machines

Revisiting the code, there are a few signals (e.g. skip_first, etc.) that make the code a bit confusing.
It may be better to refactor top-level module as a proper state machine.

Actually 9372d82 addressed this.

State machine for external_io but nothing else.

shapool relies on two logic-supressing flags. No real need for state machine there. May need one in top though.


Migrate kitura.io project from IBM-Swift org to Kitura.org

I'm waiting to gain control of the kitura.io domain before making this transition to reduce the chance of breaking the website, since it relies on GitHub pages.

Technically this should belong to the kitura.io repository, but since that's in the IBM-Swift org, I can't do that yet.

I don't think they should have a problem handing it over. Do you? Have you mentioned this to them during your discussions?

kitura.io repository is migrated.  But it looks like the kitura.io domain is expired.  I don't know if we're getting it back.  So I'm closing this issue and created Issue 1523 - Migrate all docs to kitura.dev instead.


implement set subcommand

As we discussed a 'semi-generic' sub command for setting attributes on an OS4-instance would be nice.
The general syntax should be something like this:
openslides set <property> [--payload-file | -f] | [payload-string]

where property can be one of the properties updatable by backend actions.
(I did this to find suitable actions: OpenSlides/openslides-backend/openslides_backend/action/actions $ grep -r -e '@register_action\(.*\.update.*\)')
It should be possible to provide the payload as a yaml-file (--payload-file).
Maybe alternatively as a postitional argument (--payload-string), but this can be optional imo.
As proposed the tool should keep a map[property -> backend-action] to lookup the backend action to call and also serve as white list of working commands.
low prio:
the help message for
openslides set --help

may be quite generic. For a more specific one the backend must be available, i.e.
openslides set <property> --help

should ask the backend for available actions and parse the accepted fields form it's response to create a more detailed help message.
This functionality is currently no longer available, but will be reimplemented, see https://github.com/OpenSlides/openslides-backend/issues/1159.

It should be possible to provide the payload as a yaml-file (--payload-file).
Maybe alternatively as a postitional argument (--payload-string), but this can be optional imo.

Another suggestion:  openslides set <property> <path>|-, where - indicates stdin.  That would cover both use cases without introducing any new flags.

The grep command is nice but I think we should not support all of them. I will add orga and meeting and it is ok for me if anyone else wants to extend the list. This is easy even without any Golang experience.


AmazonSES + Digital Ocean, Ports?

Sorry to trouble you,
I just moved a working app from GCE to DigitalOcean, and it broke -- cannot send Swoosh emails via SES.
So I opened a ticket at DO.
When they get back to me, what ports will I need to tell them to open to let the AmazonSES adapter work properly?
At least, I think it's a firewall issue, per https://www.digitalocean.com/community/questions/digital-ocean-firewall-blocking-sending-email
( Anyone ever encounter this? If true, horrible policy. )
( It worked fine on Google Compute Engine for months, but not after moving to DO. )
Thanks,
David

Hi, the SES adapter does not use any special port. It reaches aws via the http api. My suggestion is to check if there is any error in the log. It could turn out to be an easy configuration error.

Thank you! I thought that was the case originally, but when the mails started failing I stumbled on that thread about ports blocked at DigitalOcean.
Did not see any logged errors, but I'll figure it out.


Allow edits from maintainers in PR

It would be nice to introduce the same feature that GitHub now has:

As far as I understand it this allows maintainers of the main repo, where you submit a PR to, to push to your PR. So they can now improve your PR without having to wait that the creator of the PR fixes the issues.

upstream issue: https://github.com/gogits/gogs/issues/3762

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

This might be a bit hard at the moment, since we now only map HasAccess(user, repo) and not HasAccess(user, repo, branch)... And we would have to check which branches are being pushed, which might lead to security issues 🙁

https://github.com/go-gitea/gitea/pull/18002


[Angular] UserService.loginWithMIC(...) method signature discrepancy

There is a discrepancy between the method signatures of the [old] Kinvey.User.loginWithMIC(...) and UserService.loginWithMIC(...) methods:

Kinvey.User.loginWithMIC(redirectUri?: string, authorizationGrant?: AuthorizationGrant, options?: any)
UserService.loginWithMIC(redirectUri: string, authorizationGrant: any, options?: any)

Kinvey.User.loginWithMIC defines all its arguments as optional thus enabling intuitively the approach with using package.json redirectUri value described here
On the other hand the new UserService.loginWithMIC method defines the first two arguments as mandatory so in order to use the package.json redirectUri value I had to do something like userService.loginWithMIC(null, null) which is not cool.
I think UserService.loginWithMIC method signature should match Kinvey.User.loginWithMIC.
Related to: https://github.com/NativeScript/nativescript-app-templates/pull/54

Thanks @manoldonev for reporting the issue. We will work on fixing the issue.


S2U-34 Assignments add rubric support for peer review

https://sakaiproject.atlassian.net/browse/S2U-34
Conversion script: https://github.com/sakaiproject/sakai-reference/pull/222

Thanks! 5 years since the original development and after more than a few updates, this might make it to master!

Does this need a conversion script for 24?

It seems to work without, but I'll create a PR for it as well.

It does need a conversion script, forgot to mention it initially

Please put comments in the relevant parts where there are differences between 22.x and Master.

Terrific work guys, I want to thank you all involved in this piece of work for five years, it's been a long journey but it's definitely contributed. @bgarciaentornos @stetsche @MRutea @josecebe and Manu Fuster.


BatchMessagingMessageConverter class -- generateMessageId is set as false.

In what version(s) of Spring for Apache Kafka are you seeing this issue?
2.8.5
Describe the bug
I am using spring integration for reading message from kafka in "batch" mode. Then List of those messages are sent to Splitter for break-up into individual messages and further needs to be joined at aggregator after processing.
Issue : BatchMessagingMessageConverter class has generateMessageId=false. It results in "id" being removed from header. Due to absence of "id", "corelationId" is not generated. Hence my aggregator fails to join the messages.
Expected behavior
A clear and concise description of what you expected to happen.
In BatchMessagingMessageConverter class, both generateMessageId and generateTimestamp  should be true.
It will solve further issues.

This is by design, They are false by default for performance reasons.
You can easily set them to true.
/**
* Generate {@link Message} {@code ids} for produced messages. If set to {@code false},
* will try to use a default value. By default set to {@code false}.
* @param generateMessageId true if a message id should be generated
*/
public void setGenerateMessageId(boolean generateMessageId) {
this.generateMessageId = generateMessageId;
}

/**
* Generate {@code timestamp} for produced messages. If set to {@code false}, -1 is
* used instead. By default set to {@code false}.
* @param generateTimestamp true if a timestamp should be generated
*/
public void setGenerateTimestamp(boolean generateTimestamp) {
this.generateTimestamp = generateTimestamp;
}

@garyrussell Thanks for sharing the knowledge.

message driven adapter channel adapter ->auto-startup=false
get KafkaMessageDrivenChannelAdapter.batchListener.getBatchMessageConverter()
call setGenerateMessageId (true) and setGenerateTimestamp (true)
start adapter - doStart()

Again, appreciates your guidance.

It doesn't have to be that complicated.
Simply add a suitably configured BatchMessagingMessageConverter to the adapter in its bean definition.
/**
* Set the message converter; must be a {@link RecordMessageConverter} or
* {@link BatchMessageConverter} depending on mode.
* @param messageConverter the converter.
*/
public void setMessageConverter(MessageConverter messageConverter) {


Camera View Over Image

Hey Pedro,
Your library is great and has really helped me with creating an app to livestream to Facebook. My question is if it's possible to somehow stream a scaled-down RTMP camera overlayed on an Image. The idea is that an image of a product would be full screen but the presenter still needs to be visible.  If you have any suggestions or ideas I'd really appreciate it! Thanks!

Hello,
Do you mean with the product the stream device screen and add camera to the stream?
In that case, yes you can do it.
If you want open 2 cameras (front and back) this depend of the device model but most of device can't do it (hardware limitation)
To do the first case you can use SurfaceFilterRender like here:
https://github.com/pedroSG94/RootEncoder/blob/master/app/src/main/java/com/pedro/streamer/openglexample/OpenGlRtmpActivity.java#L297
So using RtmpDisplay (this apply to RtspDisplay and SrtDisplay) you can add a the filter and then instead of use MediaPlayer to render the SurfaceTexture, you can use Camera2ApiManager or Camera1ApiManager:
                  Camera2ApiManager camera = new Camera2ApiManager(OpenGlRtmpActivity.this);
                  camera.prepareCamera(surfaceTexture, 1280, 720, 30);
                  camera.openCameraFront();
                  //this line must be called when you don't need camera anymore (like when you remove filter or activity is destroyed)
                  //camera.closeCamera();

Remember modify setScale and setPosition of SurfaceFiilterRender as you need to keep aspect ratio with the size that you want and the position.

Thanks so much for the reply, that really helped me to get it working. The issue that I'm running into now is I'm transitioning to this Image with the camera overlayed on it from just the default RTMPCamera1 view and so when I add the surface texture as a filter everything appears correct and scaled properly but the camera preview is just black. I believe this is because the camera is still being used behind the filter? I can get the camera preview to show up if I switch the camera to the back camera. I'm guessing this is because when switchCamera is called it releases the camera it was using. My question is, is there anyway to release the camera that RTMPCamera1 is using without ending the preview or stream? Thanks so much in advance for any help you can provide.

Let me know if I understand you correctly. You have a stream with camera1 as video and then you want change to a stream with screen as video and using camera1 as filter. Right?
In that case, maybe use RtmpStream is the best way. You can change video and audio sources on realtime. And that sources are releases when you replace it for other source.
You have a code example here that support change video and audio sources:
https://github.com/pedroSG94/RootEncoder/tree/master/app/src/main/java/com/pedro/streamer/rotation
In this example you can check that, the way to use RtmpStream is a bit different that others like RtmpCamera1.
You have 3 main differences:

You only need call prepareVideo and prepareAudio one time before start preview, stream or record so you can stop and start it multiples times after a success prepare. If you want change parameters you only need stop all and call prepare again.
You can add a preview with startPreview but in this case the view is set in startPreview method allowing you to use a normal SurfaceView or TextureView instead of use OpenGlView.
You need call release method when you finish all to make sure all is correctly released (normally you can use it in onDestroy method of an activity).

The way to add a filter is exactly the same that with RtmpCamera1

Sorry for the delayed response, I appreciate your help. I've made some changes to the code and I'm using RTMPCamera2 now to handle everything. Is there a way to release the camera while using the OpenGLView without stopping the stream? What I'm trying to accomplish is using the toggleImageOverlay function to display an image with the camera view overlayed on the image. Here is a screenshot, I want the black square to display the camera feed but I just can't seem to get it. The stream works just fine and I can stream just the camera view with no issues. It's when I trigger the image overlay filter that I run into issues. I'm sure I'm missing something and I appreciate any help or suggestions you might have for me.
Screenshot of stream

Toggle Image Overlay Code...
private void toggleImageOverlay() {
        String cameraId;
        if(rtmpCamera2.getCameraFacing() == CameraHelper.Facing.FRONT){
            cameraId = camera2ApiManager.getCameraIdForFacing(CameraHelper.Facing.FRONT);
            Log.d(TAG, "toggleImageOverlay: Front facing cameraId = " + cameraId);
        } else {
            cameraId = camera2ApiManager.getCameraIdForFacing(CameraHelper.Facing.BACK);
            Log.d(TAG, "toggleImageOverlay: Back facing cameraId = " + cameraId);
        }
        //camera2ApiManager = new Camera2ApiManager(SecondActivity.this);
        camera2ApiManager.closeCamera();
                try {
                    if (imageList.isEmpty()) {
                        Toast.makeText(SecondActivity.this, "Please enter a SKU to load images!", Toast.LENGTH_SHORT).show();
                        return;
                    }

                    if (isImageOverlayVisible) {
                        // Hide the image overlay
                        if (imageObjectFilterRender != null) {
                            rtmpCamera2.getGlInterface().removeFilter(imageObjectFilterRender);
                            Log.d(TAG, "imageObjectFilterRender is not null");

                        }
                        if (surfaceFilterRender != null) {
                            Log.d(TAG, "surfaceFilterRender is not null");
                            camera2ApiManager.closeCamera();
                            rtmpCamera2.getGlInterface().removeFilter(surfaceFilterRender);
                            surfaceFilterRender = null;

                        }
                        isImageOverlayVisible = false;
                    } else {
                        Log.d(TAG, "Else statement was hit");
                        camera2ApiManager.getCameraCharacteristics();
                        imageObjectFilterRender = new ImageObjectFilterRender();
                        Bitmap freshBitmap = imageList.get(currentImageIndex); // Ensure this Bitmap is valid
                        imageObjectFilterRender.setImage(freshBitmap);
                        imageObjectFilterRender.setPosition(TranslateTo.BOTTOM_RIGHT);
                        rtmpCamera2.getGlInterface().addFilter(imageObjectFilterRender);

                        camera2ApiManager.closeCamera();

                        SurfaceFilterRender surfaceFilterRender =
                                new SurfaceFilterRender(new SurfaceFilterRender.SurfaceReadyCallback(){
                                    @Override
                                    public void surfaceReady(SurfaceTexture surfaceTexture) {
                                       camera2ApiManager.prepareCamera(surfaceTexture, 1280, 720, 30);
                                       camera2ApiManager.openCameraFront();

                                    }
                                });
                                rtmpCamera2.getGlInterface().addFilter(surfaceFilterRender);
                                spriteGestureController.setBaseObjectFilterRender(surfaceFilterRender);

                            // Set the scale and position according to your needs
                            surfaceFilterRender.setScale(25f, 25f); // Example scale for PiP
                            surfaceFilterRender.setPosition(TranslateTo.TOP_RIGHT); // Example position for Pi
                            surfaceFilterRender.setRotation(270);// P
                        }
                        isImageOverlayVisible = true;

                        //rtmpCamera2.stopPreview();

                } catch (Exception e) {
                    Toast.makeText(SecondActivity.this, "Error toggling image overlay", Toast.LENGTH_SHORT).show();
                }

    }

Catlog of the issue...

   2024-03-19 00:42:07.143  3227-3227  ImageStreamObject       com.blingiton.biolive                I  finish load image
2024-03-19 00:42:07.265  3227-3227  Camera2ApiManager       com.blingiton.biolive                I  optimal resolution set to: 1280x720
2024-03-19 00:42:07.274   988-4120  CameraService           cameraserver                         I  CameraService::connect call (PID -1 "com.blingiton.biolive", camera ID 1) for HAL version default and Camera API version 2
2024-03-19 00:42:07.485   988-4120  CameraService           cameraserver                         I  finishCameraOps: Finish camera ops, package name = com.blingiton.biolive, client UID = 10306
2024-03-19 00:42:07.487   988-4120  CameraFlashlight        cameraserver                         I  deviceClosed: device 1 is closed(package=com.blingiton.biolive)
2024-03-19 00:42:07.487   988-4120  CameraFlashlight        cameraserver                         I  prepareDeviceOpen: prepare for device open(cameraId=1, package=com.blingiton.biolive)
2024-03-19 00:42:07.488   988-4120  Camera2ClientBase       cameraserver                         I  Camera 1: Opened. Client: com.blingiton.biolive (PID 3227, UID 10306)
2024-03-19 00:42:07.489  3227-3708  CameraCaptureSession    com.blingiton.biolive                E  Session 0: Exception while stopping repeating:
                                                                                android.hardware.camera2.CameraAccessException: CAMERA_DISCONNECTED (2): cancelRequest:458: Camera device no longer alive
                                                                                at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:815)
                                                                                at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:95)
                                                                                at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1134)
                                                                                at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526)
                                                                                at android.hardware.camera2.impl.CameraCaptureSessionImpl$2.onDisconnected(CameraCaptureSessionImpl.java:737)
                                                                                at android.hardware.camera2.impl.CameraDeviceImpl$7.run(CameraDeviceImpl.java:242)
                                                                                at android.os.Handler.handleCallback(Handler.java:873)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                at android.os.Looper.loop(Looper.java:214)
                                                                                at android.os.HandlerThread.run(HandlerThread.java:65)
                                                                                Caused by: android.os.ServiceSpecificException: cancelRequest:458: Camera device no longer alive (code 4)
                                                                                at android.os.Parcel.createException(Parcel.java:1980)
                                                                                at android.os.Parcel.readException(Parcel.java:1934)
                                                                                at android.os.Parcel.readException(Parcel.java:1884)
                                                                                at android.hardware.camera2.ICameraDeviceUser$Stub$Proxy.cancelRequest(ICameraDeviceUser.java:402)
                                                                                at android.hardware.camera2.impl.ICameraDeviceUserWrapper.cancelRequest(ICameraDeviceUserWrapper.java:93)
                                                                                at android.hardware.camera2.impl.CameraDeviceImpl.stopRepeating(CameraDeviceImpl.java:1134)
                                                                                at android.hardware.camera2.impl.CameraCaptureSessionImpl.close(CameraCaptureSessionImpl.java:526)
                                                                                at android.hardware.camera2.impl.CameraCaptureSessionImpl$2.onDisconnected(CameraCaptureSessionImpl.java:737)
                                                                                at android.hardware.camera2.impl.CameraDeviceImpl$7.run(CameraDeviceImpl.java:242)
                                                                                at android.os.Handler.handleCallback(Handler.java:873)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                at android.os.Looper.loop(Looper.java:214)
                                                                                at android.os.HandlerThread.run(HandlerThread.java:65)

Hello,
Currently the way to want use the library require create a custom filter. Also, you can use RtmpStream instead of RtmpCamera2 and add a custom VideoSource. I created an example here:
https://github.com/pedroSG94/RootEncoder/pull/1440
Using this branch you can open Rotation example and select bitmap as VideoSource. This allow you use a Bitmap as the main source to render and then you can add a SurfaceFilterRender using camera2apimanager as you are doing. If you want change to normal camera you can stop and remove that SurfaceFilterRender and change the video source back to Camera2Source


Use minio/sha256-simd for accelerated SHA256

minio/sha256-simd provides additional acceleration for SHA256 using AVX512, SHA Extensions for x86 and ARM64 for ARM.
It provides a drop-in replacement for crypto/sha256 and if the extensions are not available it falls back to standard crypto/sha256.

Clearly this is not a complete drop-in replacement... It appears to be missing the implementation for BinaryEncoder...
OK...

I think once https://github.com/minio/sha256-simd/pull/68 is merged there's potential for further improvement here.

Given the CI failure in c304241 that means that the CI runners should have support for these extensions.
That means that this is likely to cause a measurable improvement in speed of CI.

I wonder why they did not just upstream the improvements into crypto. I'm generally wary of such "speed improvements" as the code quality often does not match the standards of the stdlib.

They're trying to upstream the changes but go is being a little slow to pull them.
Agreed in general about speed improvements not necessarily being worth it, but this is being used by minio and is written by minio and has a good test suite.


MNT: Enable Python 3.12 on CI

Python 3.8 was removed recently, adding 3.12 now.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.