kubernetes does not fetch ecr access keys

Hello,
It seems kubernetes does not fetch the ecr access keys via the EC2 API. This prevents it from pulling images from the AWS ECRs, barring me from deploying images from the ECR.
The error in the log looks like this:
2016-05-04 22:09:51 +0200 CEST   2016-05-04 22:12:47 +0200 CEST   5         zre       Pod                              Warning   FailedSync   {kubelet ip-172-16-4-25.eu-west-1.compute.intern
al}   Error syncing pod, skipping: failed to "StartContainer" for "zre" with ErrImagePull: "API error (500): Get https://<account number>.dkr.ecr.eu-west-1.amazonaws.com/v2/zre/manifests/latest:
 no basic auth credentials\n"

Trying via shell:
docker pull /<account number>.dkr.ecr.eu-west-1.amazonaws.com/zre
Using default tag: latest
Error response from daemon: Get https:///<account number>.dkr.ecr.eu-west-1.amazonaws.com/v2/zre/manifests/latest: no basic auth credentials

Giving the controller access to the ECR by giving it my ECR login (retrieved it using aws get ecr-login and ran the resulting command in a root shell on the controller) enabled it to get the image by using docker.
The ECR and the cluster are in the same region (eu-west-1). The cluster was set up via kube-aws on 2016-05-04. The cluster.yaml specifies hyperkube version v1.2.3_coreos.0. The IAM roles have policies attached to it, that allow it to access all ECR repositories of my account:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1462314918000",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:BatchGetImage",
                "ecr:DescribeRepositories",
                "ecr:GetAuthorizationToken",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetRepositoryPolicy",
                "ecr:ListImages"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Yes, the policy is really attached to the controller and the workers. I additionally rebooted the instances to make sure they apply.
Please tell me if you need anything else or find a solution to this problem.

@Thermi this is fixed and merged in #384. Thanks for the issue!


Shop can't use

[15:08:40] [Server thread/CRITICAL]: ErrorException: "Object of class DaPigGuy\PiggyCustomEnchants\enchants\armor\BerserkerEnchant could not be converted to string" (EXCEPTION) in "plugins/PiggyCustomEnchantsShop/src/DaPigGuy/PiggyCustomEnchantsShop/commands/CustomEnchantShopCommand" at line 93

Closing for lack of information


Begin for Android App Development

I am really having hard time understanding where to begin to start developing an Android application from trakt.tv API. Can anybody help me out?

You can use the volley library or you can watch some youtube videos as well
https://developer.android.com/training/volley/simple


request help:  How does Apisix create and bind custom plugins for Consumer type?

Issue description
CRD not defined it , but the admin API supports it. What should I do
Environment

your apisix-ingress-controller version (output of apisix-ingress-controller version --long):
your Kubernetes cluster version (output of kubectl version):
if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a):
3.7.0
1.7.1

@DokiDoki1103
Currently only authentication plugins are supported with ApisixConsumer CRD.

@DokiDoki1103 Btw this is already being tracked here https://github.com/apache/apisix-ingress-controller/issues/2069


helperscript deviceQuery fails - CUDA driver version is insufficient for CUDA runtime version

helperscript calls make -s (silent) in /usr/local/cuda/samples/1_Utilities/deviceQuery
when trying to execute manually from this directory:
make -> Nothing to be done for 'all'
make clean -> ** permission denied**
if I do:
sudo make clean
sudo make

it works, copying deviceQuery to /usr/bin/aarch64/linux/release
if I try to run sudo make or make after this, I again get Nothing to be done for 'all'
...
which means that A) this op step must be run with escalated privilege and B) make clean must be a precursor step, as it is not reentrant !

when I execute ./deviceQuery I get
cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

After flashing the image from JetPack 3.3, and reinstalling all software
linux for tegra R28 (release) REVISION 1.0  -> REVISION 2.1
deviceQuery reports:
CUDA_TOOLKIT_PATH=/usr/local/cuda
TF_CUDA_VERSION=9.0
TF_CUDA_COMPUTE_CAPABILITIES=5.3,6.2
CUDNN_INSTALL_PATH=/usr/lib/aarch64-linux-gpu
TF_CUDNN_VERSION=7.1.5


Fix documentation typo in CoercionTest

Noticed a small typo reading through the coercion documentation. Unless I'm misunderstanding something, this is the intended syntax.

when closure is the last argument, meth (a, {}) is equivalent to meth (a) {}


Improve functions

The motivation is to fully OpenAI functions

@santib Would you mind reviewing this PR please?

Any thoughts here @andreibondarev? My only concern is where the function method will live on.


Token customizer not triggered on token exchange requests

Describe the bug
I have a Spring authorization server set up with a token customizer (OAuth2TokenCustomizer<JwtEncodingContext>), and I'm able to customize tokens resulting from form login (UsernamePasswordAuthenticationToken) and OAuth2 login (OAuth2AuthenticationToken).
Additionally, I've set up two applications, which both use this auth server for IAM, and have set up token exchange in one of them to call an endpoint in the other, based on the impersonation sample in UserController.java. Both applications verify the audience of tokens, and I can verify that this is working as expected.
However, when trying to customize OAuth2TokenExchangeAuthenticationTokens, as described in the token exchange announcement, the customizer is never triggered.
To Reproduce
Unfortunately, I can't share any of my original code, but I've set up a minimal authorization server with support for token exchange based on the documentation and aforementioned blog post:

https://docs.spring.io/spring-authorization-server/reference/getting-started.html
https://spring.io/blog/2024/03/19/token-exchange-support-in-spring-security-6-3-0-m3#enabling-token-exchange-on-the-server

I've tweaked the configuration slightly to enabled authorization code flow with a public client from a minimal single page application, since this is what I'm most familiar with, and I use that to fetch an access token with form login using the example user from the blog post.
Once I have that token, I use curl to trigger token exchange in my auth server:
curl -u token-client:token http://localhost:8080/oauth2/token
  -d 'grant_type=urn:ietf:params:oauth:grant-type:token-exchange'
  -d 'scope=message.read'
  -d 'subject_token_type=urn:ietf:params:oauth:token-type:jwt'
  -d 'subject_token=[TOKEN GOES HERE]'

This gives me a new access token with "token-client" as audience, and the requested scope as scope. However, the token customizer is only triggered on the UsernamePasswordAuthenticationToken, which doesn't hold any information about requested audience, resource, etc.
Expected behavior
OAuth2TokenCustomizer should be triggered with the OAuth2TokenExchangeAuthenticationToken, as described in the linked blog post, so that claims can be customized.
Sample
https://github.com/fleskesvor/auth-server-java
https://github.com/fleskesvor/demo-client - this is only to trigger form login and debug the resulting token.

@fleskesvor The blog post provided code sample for the 6.3.0-M3 milestone release, which is not stable at that point. The implementation changed by the time it was released in 6.3.0 GA, which made the code sample for accessTokenCustomizer() outdated and no longer correct.
Instead of:
	@Bean
	public OAuth2TokenCustomizer<JwtEncodingContext> accessTokenCustomizer() {
		return (context) -> {
			if (context.getPrincipal() instanceof OAuth2TokenExchangeAuthenticationToken tokenExchangeRequest) {
				var resources = tokenExchangeRequest.getResources();
				// TODO: Validate resource value(s) and map to the
				// appropriate audience value(s) if needed...

				context.getClaims().audience(...);
			}
		};
	}

It should be:
	@Bean
	public OAuth2TokenCustomizer<JwtEncodingContext> accessTokenCustomizer() {
		return (context) -> {
			if (AuthorizationGrantType.TOKEN_EXCHANGE.equals(context.getAuthorizationGrantType())) {
				OAuth2TokenExchangeAuthenticationToken tokenExchangeAuthentication = context.getAuthorizationGrant();
				Set<String> resources = tokenExchangeAuthentication.getResources();
				// TODO: Validate resource value(s) and map to the
				//  appropriate audience value(s) if needed...

				context.getClaims().audience(...);
			}
		};
	}

In the future, I would recommend using code from a working sample, which you can find in the Demo Sample.
FYI, I updated the blog post with the correct sample code.

Thanks for the reply; that works perfectly! :+1: I've actually used the samples extensively while implementing my authorization server (including for setting up a working implementation of token exchange between two applications), but I couldn't find an example of customizing token exchange tokens specifically. The tokens would just end up being handled by my generic customizer for access token, but I didn't think to look at the authorization grant type. Thanks again for pointing me in the right direction, and apologies for the "noise". :slightly_smiling_face:


Warning W002: MainMenu.content_panels and MainMenu.settings_panels have no effect on snippets editing

After updating to the latest version of wagtailmenus, I still receive warnings in the Django system check related to the MainMenu model.
The warnings are:
wagtailmenus.MainMenu: (wagtailadmin.W002) MainMenu.content_panels will have no effect on snippets editing
        HINT: Ensure that MainMenu uses `panels` instead of `content_panels`or set up an `edit_handler` if you want a tabbed editing interface.
There are no default tabs on non-Page models so there will be no Content tab for the content_panels to render in.
wagtailmenus.MainMenu: (wagtailadmin.W002) MainMenu.settings_panels will have no effect on snippets editing
        HINT: Ensure that MainMenu uses `panels` instead of `settings_panels`or set up an `edit_handler` if you want a tabbed editing interface.
There are no default tabs on non-Page models so there will be no Settings tab for the settings_panels to render in.

Steps to Reproduce:

Install the latest version of wagtailmenus.
Run python manage.py check.
The warnings appear regarding content_panels and settings_panels in the MainMenu model.

Expected Behavior: No warnings should appear when using the MainMenu model with Wagtail menus. The model should use panels instead of content_panels and settings_panels for proper snippet editing.
Environment:

wagtailmenus version: 4.0.1
Wagtail version: 6.2.1
Django version: 4.2.11
Python version: 3.9.6

Possible Solution: The MainMenu model should use panels instead of content_panels and settings_panels since it is a snippet and not a page model. Alternatively, the edit_handler could be set up if a tabbed interface is desired.

Hi @SerhiiKruhlikov,
We are aware of these warnings and we are treating them as false positives
We are following this issue on #464
There isn't a good fix for this yet (sorry). There are some workarounds on #464 that might be useful.
As for now, I'm closing this issue as it's a duplicate. Feel free to reopen #464 if you have any updates.


Change link to example COMBINE archives to use branch deploy once the pulling of simulators has been automated

appConfig.exampleCombineArchives.repoRef in apps/dispatch/src/assets/config.json should be set to deploy.

Can be done after #1891

Can be done after #1891


Installing a package inside existing docker container

Is this possible? It would be very convenient since my current approach is to simply alter the stack.yaml file in the git clone and then rebuild the image and run it. Does the ihaskell notebook run a Haskell kernel locally installed in the ~/ihaskell/ directory (inside the container)? If so that should mean that I can just run stack install packagename-version in that directory, right? This hasn't been working for me so far, so I'm not really sure how I can do that yet.

For example, if we create a notebook using the mybinder.org app, is there any way that we can install a package and use it in the notebook? My initial attempt is to simply go to New>Kernel inside the notebook, and navigate to the ihaskell directory where I can run stack install statistics-<IP_ADDRESS> or something. The issue with this approach is that it throws an error and suggests adding a few extra-deps to the stack.yaml folder, which we cannot edit as we have insufficient permissions to nano stack.yaml.

For anyone who googled to this issue, here is a Docker file which has answers for these questions: https://github.com/jamesdbrock/ihaskell-notebook


Is there a way we can include custom html under posts section ?

I tried doing that by putting it custom.html  under _include and in markdown under posts, tried to include it. It is not rendering properly. Is there a way we can do that?

Yes, depending on what layout you're using to display posts you can just add whatever HTML you want.


Make tabs resolve in different routes

Motivation and context

The change is required so that the url matches where you are on the profile page.

#695

Screenshots:

Before
After

Testing

New environment variables:

env var : env var details

New dependencies:

dependency : dependency details

New dev dependencies:

dependency : dependency details

@dimitur2204
Added some updates to your branch

restored tabs to be with default mui look'n'feel instead of bluish link like buttons
improved the tab components so hey embed the tab title and tab slug
extracted tabs as enum and reused them
updates the styles of the page a bit so we use theme and default spacings instead of custom px


URL to Jupyter Notebook does not open

I want to intitialze a Jupyter Notebook on the UKBB RAP. I´m following the steps described in this video as part of the UKBB tutorial https://www.youtube.com/watch?v=butgJQf_mhI&list=PLRkZ0Fz-n3Z71Pt9h8-0AEweopm0SVlTr&index=8. But when I click on the Worker URL on the project-specific Monitor tab, the Jupyter Notebook does not open and I get a page not found error. This happens with Google Chrome on a Windows computer and with Firefox on Ubuntu (different laptop). Any ideas how to troubleshoot this issue?

This issue board is available for issues pertaining specifically to the notebooks and tools provided.
More general issues should be posted to the UK Biobank Community.
Issues that are specific to your project should be emailed to<EMAIL_ADDRESS>Please also see the DNAnexus RAP GitBook for guidance on using the RAP. The following troubleshooting area may be of assistance to you:
https://dnanexus.gitbook.io/uk-biobank-rap/working-on-the-research-analysis-platform/running-analysis-jobs/jupyterlab#troubleshooting


Build options is an arbitrary json object rather than a string

Fixes #180. I've verified that arbitrary JSON can be passed without error and parsed properly. It can also continue to be passed as a string.

This change is

Codecov Report
All modified lines are covered by tests :white_check_mark:

Files
Coverage Δ

src/Serval.Client/Client.g.cs
70.60% <100.00%> (ø)

...Translation/Contracts/TranslationBuildConfigDto.cs
100.00% <100.00%> (ø)

...lation/Controllers/TranslationEnginesController.cs
91.43% <100.00%> (ø)

:loudspeaker: Thoughts on this report? Let us know!.

I had intentionally not done that, but I suppose there's no good reason not to. It would make the presentation cleaner and more consistent to the user when they request an existing builds information.

src/Serval.Translation/Contracts/TranslationBuildConfigDto.cs line 8 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
The Swagger docs show an invalid example for this property. Specifically, it shows a string value, which will result in a 400 status code. We should specify a valid example using code documentation. For example:
/// <example>
/// {
///   "property": "value"
/// }
/// </example>

OK, good call: I wasn't familiar with how to do that properly, but I wondered the same thing.


Additional documentation updates

The web documentation needs to include explanation of the new things:

[x] breakeven buttons
[x] new way of doing presets
[x] details on each condition that leads to a 'surprise' (anything with a tooltip appearing and/or a number changing unbidden)

Don't let us forget these other items:

[ ] update explanation of degradation rate (currently explains system vs module)
[ ] update degradation equation


Property name starting from "data" is recognized as data-* attribute

I get this error in several cases:
[set-unknown-attribute] - data-* attributes must be accessed as attributes.
i.e. you must write:  data-for-export$="{{dataForExport}}"

As of now, Polymer 1.x accepts such properties, though. They don't get reflected into attributes, neither are they being put into dataset.
Would it be disallowed by 2.0 release? Should we avoid such names?
If so, having this documented would be nice.
If not, I'd expect not to see those errors at all.

An example of such a false positive is vaadin-grid which has a dataProvider property. I almost incorrected this when it was flagged up by the linter :/
...but, yeah, so old now surely no one is going to bother fixing it.


nfet_03v3_dw missing in PDK?

Expected Behavior
In the ngspice device list under/share/pdk/ngspice/libs.tech/sm141064.ngspice we need to see seperate devices for nfets with and without DNWELL namely nfet03v3_dw and nfet_03v3 as shown in the device listing from GF. adding DNWELL needs to change the model of the nfet and point to a different model param in sm14064.ngspice

Actual Behavior

Steps to Reproduce the Problem
However, sm14064.ngspice does not seem to have seperate models for nfet_03v3_dw as expected. I only see nfet_03v3 in my pdk files

There are 2 issues here:

the names for the devices dont match with GF -so it is making it difficult to compare across platforms and tools. For instance magic would have issues reading these names- https://github.com/RTimothyEdwards/magic/issues/239
Some devices and its models are missing in this PDK - specifically the DNWELL nfet device. As a result the extraction of a DNWELL device seems to be mapping to a typical nfet which yields incorrect results

Specifications

Version:
Platform: proppy/conda

@proppy

@spnadig
For 1st issue, you could find the naming convention for standard cells and primitive devices here.
And please use this documentation instead one you have.
For 2nd issue, As mentioned in docs, we don't have separate model for deep nwell devices. It uses same model for typical ones.
Example: nfet_03v3 & nfet_03v3_dn uses nfet_03v3 model.
I'm not sure if we should ask the foundry about this.
Cc @atorkmabrains

Thanks @FaragElsayed2
@spnadig Keep in mind that Deep Nwell devices are usually using the same models as far as simulation goes. I'll close this ticket as it's not a true issue.


Refactor Client API

This is a possible alternative to #361, with a more-thorough refactoring (which only covers xchain-client and xchain-cosmos at the moment).
The key insight here is that all the clients' exposed API surfaces consist of two types of things:

Getters and setters which handle configuration and return synchronously; this data is now encapsulated in a per-Network ClientParams object.
Asynchronous methods which actually do stuff, and which access but do not mutate the configuration. These have been factored out into a Delegate interface, all of whose methods are passed the currently-active ClientParams when called and return Promises.

Most of the "computation" done by the existing synchronous getters and setters consists of simply switching behavior based on whether mainnet or testnet is selected, and this approach eliminates a lot of that complexity. The core "glue" code is contained in the Client class, which is generic and can stitch together arbitrary delegates and parameter types. This means that 95% of the code in each dependent package can go in a delegate -- whose only state is the mnemonic phase (or other arbitrary information needed to unlock the client -- like, for example, an instance of @shapeshiftoss/hdwallet-native).
I'd love to go over this in more detail... please make liberal use of the per-line comment functionality!

(I'm still on the fence about how the signature of BoundClientFactory -- and thus Client.create() -- should look. Feedback welcome.)

For reference, here's a gist containing a summary of the current publicly-exposed API, in the simplest-possible representation.

Closed in favor of #376.


multithreads in http

I find a problem when I use server_http.hpp(old version) in http.

"response" is a shared_ptr<HttpServer:: Response> type. In this way, *response can send data to the client.
However,

When I let "Res" equal to "response",*response can not send data to the client.
Why I can't pass  a shared_ptr<HttpServer:: Response> to another.

What is the signature of query_thread?

Part of ghttp.cpp

shared_ptr<HttpServer:: Request> is Ok
But
shared_ptr<HttpServer:: Response> is no use when I use pointer assignment

I could not see anything wrong after a quick look, but making a copy of the response shared_ptr should work fine. I'll have another look Tomorrow if you have not figured it out by then.

Ah, the problem seems to be that the Res shared_ptr is kept alive too long. The response is sent when the shared_ptr is destructed, and it seems like your Res object is kept alive in a scope higher than the scope of the handler.

Yes,I want to store the Res object in order to use it after the handler.
And I find maybe connection between server and client is not broken.
But only *response this ostream doesn't send data to the client.
So make a copy of the response shared_ptr would lead the ostream confusion?

This is the Response's define in server_http.hpp

In that case, you need to use Response::send to send the data you have added to the response stream to the client. See https://github.com/eidheim/Simple-Web-Server/blob/master/http_examples.cpp#L183 for an example.

server_http.txt

This is the server_http.hpp that I used.
*response will send the data to the client itself,will it?

Sadly that would be too inefficient. The data is sent when Response::send is called, or when the Response object within the shared_ptr is destroyed.

Actually,I'm writing a threadpool.

pool.create() create a daemon thread to continuously get task from tasklines and run query_thread().
Where, tasklines is a global variable

However, I find that if I don't sleep(10) in query_handler(), the daemon thread will not get response and request object.
In other words, if I leave query_handler() scope, the daemon thread(detached from the server) will not get response and request object.

When I am in query_handler() scope,obviously the response and request object are valid wherever they are referred(for example, Task , tasklines, the daemon thread). However, when I leave query_handler() scope, the response and request object are invalid wherever they are referred.
And I want the response and request object to be kept alive in a scope higher than the scope of the handler.(for example , the location of pool.create() )

Can I have a way that when I leave the scope,the response and request object are still alive?
I hope that server.resource doesn't destroy the response and request object when they leave the scope.

I have read the  https://github.com/eidheim/Simple-Web-Server/blob/master/http_examples.cpp#L183 example.

My purpose is to use referrence of the response and request object on the location in the picture.
In other words, I hope to store referrence of the response and request object as global variables in order that other threads can use them.

The purpose of shared_ptr's is typically to extend the lifetime of an object. When you pass the shared_ptr to query_thread, the shared_ptr is copied and thus the object's lifetime is extended. You should in general not need to store shared_ptr's globally.

However, I need thread scheduling. So I only store them in query_handler().
Another thread is responsible for query_thread().
I can't directly pass the shared_ptr to query_thread() in query_handler().
I need another thread to know all the shared_ptrs in order to assign.

For example,if there are 60 queries but I only have 30 threads in the threadpool. If I directly pass the shared_ptr to query_thread().Then there are 30 shared_ptr that can't pass.I must store them.
So how should I store the rest shared_ptr so that they are still valid when they leave the scope.

Regarding a thread pool of size 30, here is a simplified example of how I would implement this using asio:
#include "server_http.hpp"

class Workers {
public:
  boost::asio::io_service service;

private:
  boost::asio::io_service::work work;
  std::vector<std::thread> threads;

public:
  Workers(size_t number_of_threads) : work(service) {
    for(size_t c = 0; c < number_of_threads; ++c) {
      threads.emplace_back([this] {
        service.run();
      });
    }
  }
};

using namespace std;

using HttpServer = SimpleWeb::Server<SimpleWeb::HTTP>;

int main() {
  Workers workers(30);

  HttpServer server;
  server.config.port = 8080;

  server.default_resource["GET"] = [&workers](shared_ptr<HttpServer::Response> response, shared_ptr<HttpServer::Request> /*request*/) {
    workers.service.post([response] {
      this_thread::sleep_for(chrono::seconds(5)); // Simulate time-consuming work
      response->write("Work done");
    });
  };

  server.start();
}

The response-shared_ptr is here copied by capture in workers.service.post and thus kept alive throughout the handler.

In this way,if 30 threads are running,then what about the new shared_ptr ?

If use workers.service.post, how should I sort these handlers in io_service.
I could not handle thest tasks according to the order of their entry.

I use the example you give me. But client gets nothing.

If I don't use workers.service.post(), client can directly get the data.

So, when I leave this scope, the response shared_ptr becomes invalid.


Business critical: Designed for applications with low I/O latency requirements IT'S HIGH

[Enter feedback here]

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

ID: 28ca1f7f-5a34-0f23-10ce-3ff24c76db97
Version Independent ID: 5c4a22c4-78fc-911d-9fa0-8dfab1653b6e
Content: What is Azure SQL Managed Instance? - Azure SQL Managed Instance
Content Source: articles/azure-sql/managed-instance/sql-managed-instance-paas-overview.md
Service: sql-managed-instance
Sub-service: operations
GitHub Login: @bonova
Microsoft Alias: bonova

made mistake -sorry non english native ...


Documentation content improvements

@pranavrajs Commenting again to avoid missing this. Can we close this issue in this sprint?


A question about Operator "crop" and "slice".

In the document, it says "crop is deprecated. Use slice instead". But I think "slice" is not a complete alternative to "crop", because "crop" can use a "reference" symbol as an input, while "slice" can only use fixed parameters to crop. Sometimes, the input can have various size, we can not define everything in advance. In the future release, is "crop" going to be kept?

Can you give the precise definition of crop? It's too vague to get the difference between crop and slice in your statement. Maybe a few examples are helpful here.

@reminisce
For example, for "crop", we can have something like this:
data = mx.sym.Variable("data")
ref = mx.sym.Variable("ref")
cropped_data = mx.sym.Crop(data, ref)

For "slice", I don't see the argument for this "reference" symbol.

What is the role of ref here? What's the expected behavior of Crop in your code?

@reminisce
In the official doc,
Crop the 2nd and 3rd dim of input data, with the corresponding size of h_w or with width and height of the second input symbol, i.e., with one input, we need h_w to specify the crop height and width, otherwise the second input symbol’s size will be used.
The role of "ref" is to show the target shape of the cropped_data.

Are you referring to the definition here: https://turi.com/products/create/docs/generated/graphlab.mxnet.symbol.Crop.html?
I don't think we are aligning with the doc on that website.
It's looks to me that you can prepare the proper params of begin, end, and step for using slice to achieve the same purpose.

I just checked the code, there is indeed a Crop (upper-case C) operator working as you described. What has been deprecated is crop (lower-case c).

@reminisce It seems both Crop and crop are deprecated in the documentation. So are you saying the documentation is a bit out-of-date? Maybe it can be fixed for avoiding confusion.

I don't know why Crop is deprecated, but it looks like so. As I said in a previous comment, you can use slice to achieve the same purpose of Crop if you want. Let me know if you have trouble in doing that.

@reminisce For fixed-sized input, your way has no problem, but image we have various input size for both "data" and "ref", we cannot keep creating new symbols and modules, that would not be an efficient way.

I too second that we need to keep Crop with a "crop_like shape reference"
It seems to be working in current version (1.2.0), with usage:
kak = mx.symbol.Crop(kak_before,zai)
where zai is the shape reference symbol

Hi, I'm trying to use the slice instead of crop because ONNX doesn't support Crop properly - and I don't want to change ONNX's function. but rather use Slice instead.
When changing Crop to slice_axis with axis=1 on a pretrained model in the .json, I'm getting an error when trying to use that sliced node. More precisely, I feed a 128x80x60 shaped node to a elemwise_add node which takes as input same 128x80x60 nodes and adds them together.  Which works great with the Crop operation in the .json file, changing it to Slice operation properly (checked the dimensions - they match in the add operation) it gives an error.
Getting this error:

onnx.onnx_cpp2py_export.checker.ValidationError: Node (slice_axis) has input size 1 not in range [min=3, max=5].
Also:
==> Context: Bad node spec: input: “ssh_m2_red_upsampling” output: “slice_axis” name: “slice_axis” op_type: “Slice” attribute { name: “axes” ints: 1 type: INTS } attribute { name: “ends” ints: 128 type: INTS } attribute { name: “starts” ints: 0 type: INTS }

Any ideas how to solve this?

Hey @AnaRhisT94 sorry for delayed response. Did your problem get resolved? If not, can you give a minimum reproducible script for the same?


Bug: New tag re-appears

The Issue
On click of "Mark all as read" disappears the New tag. After you check someother tab ( example: discover), they re-appear again.
Steps to Reproduce

In subscriptions tab, you notice 2 things marked as 'New'.

Click "Mark all as read".

New tag disappears.

Click on any other tab. Example: discover

Then you notice it states 2 in brackets for subscriptions.

When you click on the tab, you see New tag reappears.

Expected Behavior
Just disappear New tag once for all to the user when he/she clicked "Mark all as read".
Actual Behavior
New tag re-appears in a way not obeying the functionality of "Mark all as read".
System Configuration

Thanks! for a great product.

We are getting rid of this tag in the next release, closing for now.


Coloring scheme

We can come up with a unique/prettier coloring scheme for our plots.
This can be unified across the different plots and we can also add a @Made by ploomber tag.
For instance, gigi plot on matplotlib (looks nicer than the default one)

I reviewed matplotlib coloring and styling API, also ggplot, plotly, seaborn, yellowbrick, and some other plotting libraries.
While some of these are more visually appealing than others, most of them have quite complicated UX.
YB offers an easy color setup but their rcmod (allows to modify matplotlib rcParams) doesn't work very well.
I think we have an opportunity to simplify things by making informative, branded, good-looking plots out of the box.

First, by default, we can create better-looking plots. something like these:

Second, to make it simple for our users and consistent with our current plots, I thought of the following API:
Modify the default theme from outside by changing specific parts of the plot (line colors, background, etc...)
** Maybe we can add modes (dark, classic, material, etc...)
plot.ROC.set_theme(line_colors=[...], background, )

The matplotlib styling API offers a varied range of properties, I'm not sure we need them in our cases, but we can use them as follows when applying a specific style to each plot (instead of using the labels list we have now)
plot_1_style= dict({
    'color' : 'magenta',
    'label':'Enfield',
    'linewidth':5,
    'marker':'o',
    'markerfacecolor':'blue',
    'markersize':12
})

plot.ROC(fpr, tpr, styles = [plot_1_style, plot_2_style, ...] )

this is good when our users want to hide or mark a specific plot, e.g:

@idomic @edublancas thoughts?

Great overview!
We can do this in a few steps. The first one is have a consistent coloring scheme for all our plots. I remember reading in matplotlib (or seaborn) some explanation about how to choose colors (that are nice to colorblind people, among other things) and gave some examples of palettes with these properties. We can start with one of those as a base and modify some colors, but ensure we still respect the best practices.
The second part is how users will activate this. Let's look at seaborn and see how they do it, AFAIK, all their plots are customized to their theme, but the theme only comes out when calling seaborn (seaborn uses matplotlib under the hood); hence, it doesn't modify the global matplotlib configuration. I think we want the same thing, otherwise, we'll end up modifying the global state and any other non-sklearn-evaluation plotting calls will have the sklearn-evaluation theme.
Once this is done, we can discuss an API for customization.

That's great @yafimvo!
I think we should def. take it in two steps as mentioned above.
Step 1

Design and decide on the color palette.
Add it to the implementation as part of the schemes (I liked the dark mode idea as well).

Step 2

Add options to customize it via overriding some of the matplotlib.
Add advanced features like marking the specific line we're looking at.

Material UI palette

this looks good!

Make the plot frame L shape and not a square

I also like this. We should also style the grid (display it with: ax.grid()). In most plots, this helps visualization. here's an example from seaborn

Remove the legend outside of the plot

@gtduncan was working on this for ROC, I believe. He found that matplotlib doesn't offer a simple way to place the legend outside the plot, so sounds like we'd have to do it manually

I think this would still modify matplotlib's global state:
import matplotlib as mpl

_material_ui_palette = ['#00B0FF', '#F50057', '#00C853', '#D500F9', '#F44336', '#FF9100', '#00BFA5', '#651FFF']
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=_material_ui_palette )

But I think we can get way by storing the original values and restoring them after plotting (we can use a context manager):
from sklearn_evaluation.style import tmp_theme, apply_theme

with tmp_theme():
    plt.plot([1,2,3])

And to simplify, we could wrap it in a decorator:
@apply_theme
def plot():
    ...

Then we could apply it to our different plots.

The "hard" part would be updating all our existing plot tests and if we move out the legend - we need to check how it affected our docs (since the image is wider than before)

Yes. I think let's implement the decorator pattern, then, we can create another issue to apply it to different plots and check if everything looks good. I'd say let's leave the legend placement out of this iteration and do it for v2.

a good source of inspiration is R's ggplot package: https://ggplot2.tidyverse.org/

FYI: https://matplotlib.org/stable/tutorials/introductory/customizing.html#temporary-rc-settings

@gtduncan was working on this for ROC, I believe. He found that matplotlib doesn't offer a simple way to place the legend outside the plot, so sounds like we'd have to do it manually

this one should do the job. What do you mean manually?
plt.legend(loc=(1.05, 0.5))

@gtduncan @edublancas

That did work for me partially when I tried it, but the figure for each plot wasn't expanding so the resulting plots that were produced had the legend cut off pretty much entirely. I looked into some solutions and nothing seemed to fix it for me

this one should do the job (I'm not sure how it will work on custom plot size). What do you mean manually?

By manually I mean something like what you described (plt.legend(loc=(1.05, 0.5))) - manually placing the box by setting the coordinates.
As @gtduncan mention, I think the main issue is that if we place the box by setting the coordinates is that it'll cramp the plot making it harder to read. Perhaps we can put it below?
Ideally we could use the best setting in matplotlib and only move it outside the plot when there is a lot of overlap (here's the implementation)
since this will require a lot of extra work, I suggest we deal with this in the second iteration


melobot v3 tests for lower levels

Basically some tests on melobot framework, including the following levels:

[x] Basic utilities
[ ] io source (mainly abstract in melobot.io)
[ ] adaptor
[ ] handler

[!note]
The check box ahead shall be considered as progress, which is really slow right now though.

This project is definitely a lesson of async for me, since I NEVER tried those async tricks.
I just kept using threading stuffs (or sometimes multi-processing) to try to fasten my runtime efficiency.
I would always be grateful to have the chance communicating with dalao like u,
since we met in the group of Dr.Black XD

枕么还传了个 merge commit …… 到时候可能还需要 rebase，，

枕么还传了个 merge commit …… 到时候可能还需要 rebase，，

没事，最后写完统一压缩就行。

枕么还传了个 merge commit …… 到时候可能还需要 rebase，，

没事，最后写完统一压缩就行。

当然你也可以不压缩，这边合并之后会自动压缩。

传奇鸽王 ChlorideP 又整烂活辣（

~传奇鸽王 ChlorideP 又整烂活辣（~
~然后不出所料又炸测试了。~
姑且可以往下写了。

加油

melobot.utils 部分的测试我抽空全部补好了。先合并这部分吧，剩下的测试干脆分成多个 PR。
感谢氯喵的付出哦，辛苦啦❤

melobot.utils 部分的测试我抽空全部补好了。先合并这部分吧，剩下的测试干脆分成多个 PR。 感谢氯喵的付出哦，辛苦啦❤

（蹭）


IE: toggle style is wrong

Ops, sorry. Forgot to add my browser info:

Also on Edge.

If you use labelPosition='right' the problem goes away.
Actually the bug is in  material-ui/src/toggle.jsx at the following code segment:
thumb: {
...
left: 2,
...
},
...
thumbWhenSwitched: {
...
left: 18
}
In some tests that I did if you use right instead of left and change the pixels accordingly it is gets fixed but I tested it only with labelPosition='left'.

Fixed with #885

:+1:


Import "terms and definitions" from standard documents into Glossarist module and incorporate data into model

@strogonoff I got the following error while I am testing Glossarist.
I created a new dataset for glossarist and used the original Glossarist UI.
I can add concept and concept description.

When I double click on any item (say abc in my screenshot), I get the error below.

Error log
Error rendering view dataset Error: Minified React error #31; visit https://reactjs.org/docs/error-decoder.html?invariant=31&args[]=Mon%20Nov%2015%202021%2013%3A15%3A43%20GMT%2B0800%20(Hong%20Kong%20Standard%20Time)&args[]= for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
    at Qg (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:139:47)
    at Yg (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:149:278)
    at R (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:173:103)
    at Rj (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:265:156)
    at Qj (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:246:265)
    at Kj (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:246:194)
    at c (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:239:172)
    at b (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:123:115)
    at If (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/scheduler/cjs/scheduler.production.min.js:19:467)
    at cg (file:///Applications/Paneron.app/Contents/Resources/app.asar/webpack:/node_modules/react-dom/cjs/react-dom.production.min.js:122:325) {
  componentStack: '\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in ChangeHistoryItem\n' +
    '    in ChangeHistory\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in SidebarBlock\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in Sidebar\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in Workspace\n' +
    '    in EmotionCssPropInternal\n' +
    '    in ItemDetails\n' +
    '    in RegisterItemBrowser\n' +
    '    in RegistryView\n' +
    '    in RepositoryView\n' +
    '    in Unknown\n' +
    '    in ErrorBoundary_ErrorBoundary\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in Context\n' +
    '    in MainWindow_Dataset\n' +
    '    in MainWindow_MainView\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in div\n' +
    '    in EmotionCssPropInternal\n' +
    '    in context\n' +
    '    in StrictMode\n' +
    '    in Unknown'
}

I am using a private working copy, if this is relevant.

@wkwong-ribose  Glossarist is based on RegistryKit, which is undergoing a big update, which includes tabbed interface and so on. There may be a temporary regression due to version mismatch (Paneron is bundling pre-update RegistryKit, but Glossarist depends on post-update RegistryKit).

According to the error, it has to do with datetime representation.

Thanks @strogonoff. Guess I won't be working on this in a short time.


Pressing "Clear Markers" button a lot of times slows program

After several presses, the program lags. Each map is overlayed on top of the other and pressing back just goes back to the previous map.

yes, after pressing clear marker button, the app does the request to download json, and parse that json to get the list of latlng.
If they do more times, it should slow the phone as expected

Re-opening this because the issue is still present. I would suggest changing the app so that the clear button deletes the current map and then creates a new one. Or at least block the button until the user places the two markers on the map.

users need to drag one or two markers so they can click the clear button

Problem has been solved


Video not centered in player

So I've had this issue for ages now that when I view a video its not centered on the player unless I maximize the player, so I can never see the whole video unless I maximize the player.
I have gone through the settings numerous times, etc, etc... Already reinstalled the script and never managed to solve it, would appreciate some help.

What version of YTC are you using? This is a really old issue and if you are not using the latest DEV version of YTC, do so, it's fixed there!
https://github.com/YePpHa/YouTubeCenter/wiki/Developer-Version

This problem is back few days ago, I already using the dev version (build 461), as always.

Yeah this problem is back in 461. Started a couple days ago. @Eisys https://gfycat.com/FeminineAgreeableBirdofparadise

Go to Player>>Player Size and make sure that Only Stage Mode is ticked.

@RedDeadElite That worked for me.. :)

@RedDeadElite That worked for me too :)
... so there won't be a "fix" ?

If this is the same problem I'm thinking of, I have it, too; the video itself doesn't resize with the player, so you have a large video in a small player.  Only Stage Mode works because it's a larger player, I think.  If you want a smaller player, I've found that the video will resize and center correctly in Flash and Aggressive Flash player types.  It's the HTML5 and Default player types that need to be fixed.


Auto-assign tickets to this user & Can manage help desk settings

When I add a new user or edit it is just not appearing.

Run this SQL query, and send me back the results:
SELECT `id`, `user`, `can_manage_settings` WHERE `user` = '<your username here>'`

How do I do that.
??
Click on sql and put it in?
Sorry, .. ;-(

Correct

SQL-query: Documentatie
SELECT id, user, can_manage_settings WHERE user = ''`
MySQL meldt: Documentatie
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user = ''`' at line 1

In the query I gave you, replace <your username here> with your HESK username

SQL-query: Documentatie
SELECT id, user, can_manage_settings WHERE user = ''`
MySQL meldt: Documentatie
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user = ''`' at line 1

SQL-query: Documentatie
SELECT id, user, can_manage_settings WHERE user = 'admin'`
MySQL meldt: Documentatie
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE user = 'admin'`' at line 1

Whoops. Try this:
SELECT `id`, `user`, `can_manage_settings` from `hesk_users` WHERE `user` = 'admin'

Weergave van records 0 - 0 (1 totaal, Query duurde 0.0004 seconden.)

Can you show me the records that show up after executing the query?

Can you login the php admin please?
I have sent the login to you

The username / password combination you sent me is not working for me. See email.

can you try now. I did a reset

Ok it worked. I can see the setting right now:

Yes, but try it out. It has no effect after saving

And where is auto assign tickets to this user?

Auto-assign is set to OFF on this helpdesk, so tickets are never being auto-assigned.  Also, are you sure this helpdesk is updated to 2.1.1? The settings page indicates you're running 2.1.0

Ok, I did not understand that part.
So it is a 2.1.1 thing. I am backing up now and I am going to install it in 5 minutes. I will keep you posted :-)
Thanks

I have updated to 2.1.1. but if I make someboody admin and unclick "can manage helpdesk settings" he still can. :-(

Heheh... this issue came back again when updating Mods for HESK to HESK 2.6.0. It's a relatively quick fix. Try making this change and see if it works: https://github.com/mkoch227/Mods-for-HESK/commit/2962d9cf3e51330c34587c42f662e380e496abaa

YEAHHHH :-) YES!!!!!
Thanks it works !!! :-)

Woo-hoo! :grinning: Let's just hope I don't accidentally remove it again :laughing:

Is it possible to do the same thing for tools?

After a certain point, is there a benefit of making this user an "admin"? What would happen if you chose staff  instead of administrator and checked off all categories / features besides "manage help desk settings" and the options for tools?

My Only thing is that the users below me want to change everything without
using their brains. I can not even let people make new articles in the
knowledge base without them spreading all passwords through the world.
I know exactly what you are saying, but they feel that they are so important
that they have to be an admin.
Van:  Mike Koch<EMAIL_ADDRESS>Beantwoorden - Aan:  mkoch227/Mods-for-HESK
<reply+008cacdfbd4106c44a5a824ebafb4b505bb97e21bd7d595a92cf0000000111284dd39
<EMAIL_ADDRESS>Datum:  maandag 23 maart 2015 22:55
Aan:  mkoch227/Mods-for-HESK<EMAIL_ADDRESS>CC:  "B. Cuppen"<EMAIL_ADDRESS>Onderwerp:  Re: [Mods-for-HESK] Auto-assign tickets to this user & Can
manage help desk settings (#182)
After a certain point, is there a benefit of making this user an "admin"?
What would happen if you chose staff  instead of administrator and checked
off all categories / features besides "manage help desk settings" and the
options for tools?
‹
Reply to this email directly or view it on GitHub
https://github.com/mkoch227/Mods-for-HESK/issues/182#issuecomment-85218939
.

Gotcha. I'm thinking of adding a feature down the line that would allow for custom access groups (besides "Administrator" and "Staff"), allowing you to pre-define certain groups.  This way you can have "Global Administrator", "Some other administrative group", etc. If your staff member purely wants the "admin" title, this feature I'm thinking of may make him happy, while making it easier to manage permissions.

That would be a just perfect solution! :-) Great idea ! :-)

Mike, I also want to tell you that the "delete ticket" or "edit" option is also very good since we had one person that started to delete tickets before leaving the position. Can you believe that?

Mike, I agree that we could make no admin, but if somebody makes a new category the non admins are not allowed to se the categories yet.


As a CIF Administrator, I want to be alerted when I try to click away when in progress of creating an Amendment or General Revision, so that I'm aware that I may lose my selection/edits

Description:
Currently, once start the creating Amendment / General Revision process by clicking the "New Revision" button, at the very first step, i.e., selecting the "Revision Type", users can click away to other forms, which will make them lose their selection with no alerts.
Acceptance Criteria:
Given I'm a CIF administrator,
When I click away from the New Revision page
Then I see an alert "You are in progress of creating a new Amendment / General Revision. Leaving the page will make you lose your edits. Are you sure? Yes/No"
Development Checklist:

[ ] Checklist item
[ ] Checklist item
[ ] Checklist item
[ ] Meets the DOD

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

[ ] User story is included
[ ] User role and type are identified
[ ] Acceptance criteria are included
[ ] Wireframes are included (if required)
[ ] Design / Solution is accepted by Product Owner
[ ] Dependencies are identified (technical, business, regulatory/policy)
[ ] Story has been estimated (under 13 pts)

·Definition of Done (Note: If any of these points are not applicable, mark N/A)

[ ] Acceptance criteria are tested by the CI pipeline
[ ] UI meets accessibility requirements
[ ] Configuration changes are documented, documentation and designs are updated
[ ] Passes code peer-review
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Ticket is ready to be merged to main branch
[ ] Can be demoed in Sprint Review
[ ] Bugs or future work cards are identified and created
[ ] Reviewed and approved by Product Owner

Notes:

Is there any value in keeping that selection? It's just a couple of radio buttons, I'm thinking this card is not necessary until we can back it up with usability data

Thanks for your input, @pbastia! This is for sure a nice-to-have considering more of user experience than usability, thus not mandatory at all.
We won't keep the selection, but should alert the user that their selection won't be saved (as they are at the following steps) if they navigate away at this step. Maybe instead of closing it, we can ice-box or add "Low Priority" to it? What do you think?

Icebox! :)


Potential unintended consequences for ref script fees

Transaction fees are being charged for inputs with reference scripts, despite the script not actually being used, and the transaction having no redeemers. It's possible that it is intentional as it creates more work for nodes regardless of whether the reference scripts are used or not. However, from my testing, I don't think any wallets accounts for this.
This means that, it is currently completely possible to ruin someone's day by sending them a lot of random utxos containing ada of different sizes (to maximize the chance they get selected for), and attach some reference scripts to these utxos. This could essentially lock up their funds until the wallets push out a fix.

Main unclear issue is why a tx is being charged for a non-plutus input having a ref script in it when NO Plutus execution and L2 is involved? In this case the node technically does not even need to care whether a regular input has any script in it or not, because it is completely irrelevant to the transaction execution.

@lehins, could you tell me if it is possible to disable minFeeRefScriptsCoinsPerByte for transactions that don’t have any required script witnesses? Because it can easily affect any wallet just by sending a transaction with an inlined script to it. I’m pretty sure that wallet builders still don’t expect that case in their wallets, because it’s not just a casual use case, but this case might be a side effect of a dapp or a not-so-good third party.

It also makes some UTXOs more subtly more expensive to spend if someone creates a UTXO with a 16kb inlined script.

@twwu123, @vsubhuman  and @lisicky you all have very good questions. More importantly, I have raised my own concerns that are very similar to yours when we were designing this feature. In the matter of fact, original implementation did exclude reference scripts that are unused. However, we had a lengthy discussion on the subject and unfortunately I lost the argument. @WhatisRT pointed out that it would be very complex to implement in the Agda specification and consequently convinced everyone including myself that this is not going to be an issue. After I did a bit of mainnet chain data analysis it turned out that at the time approximately 11.7 Mb or mere 0.064% of total PlutusV2 reference scripts are unused.
Honestly, I did expect that sooner or later someone will complain about it. So, thank you for raising your concerns. This makes me believe that we ought try and fix this for the next era, but I am not sure I'll be able to win the battle on my own, since I've already tried. I regret to inform you that there is nothing we can do for Conway in that respect. That's why I did not even comment on this issue earlier, since that ship has sailed for Conway even before this issue was created. However, if any of you is willing to submit a CIP that proposes this change of not charging for ref scripts that are unused then there is a better chance that it will be implemented for the next era.
I'll try and answer all of your questions and concerns:

It's possible that it is intentional as it creates more work for nodes regardless of whether the reference scripts are used or not.

It does not. So it is not intentional and there is no fundamental reason why we need to charge for reference plutus scripts that are no being used. There will be small exception in the future, however. When we add UTxOHD implementation then there will be slight overhead with fetching refscripts from disk, but the cost I suspect will be negligible when compared to deserialization.

Main unclear issue is why a tx is being charged for a non-plutus input having a ref script in it when NO Plutus execution and L2 is involved?

With respect to such inputs used as reference inputs it is not a problem, because the only reason why reference input should be included is to provide access to a script as a reference script. So, if a script is not used then such input should not be included in the reference inputs. However, with respect to inputs that are being spent, this is absolutely a valid point and this is exactly what this ticket is about.

could you tell me if it is possible to disable minFeeRefScriptsCoinsPerByte for transactions that don’t have any required script witnesses?

Nope, this is baked into the ledger rules and can't be changed in the era.

Because it can easily affect any wallet just by sending a transaction with an inlined script to it. I’m pretty sure that wallet builders still don’t expect that case in their wallets, because it’s not just a casual use case, but this case might be a side effect of a dapp or a not-so-good third party.

Unfortunately wallets will have to account for this use case. If the wallet uses cardano-api or cardano-cli to build transactions then it is already accounted for. Unfortunately, I can't speak for any wallets that don't use Haskell library that is provided by Intersect, they'll just have to do their own leg work on this one.

It also makes some UTXOs more expensive to spend if someone creates a UTXO with a 16kb inlined script for example

You are 100% right. Arguably, it will be also more expensive to create such UTxO, so there is little motivation to do so for the user that is creating such output.
CC @disassembler and @kevinhammond

Thanks @lehins for your detailed answer!
But I need to expand a bit on what I was saying earlier, because it has potential attack vector.
Just to remind, we can have around 16kb of an inlined plutus script in transaction output per tx. Also can can have 400+ inputs in a pure tx. So if a tx already has 121 inputs with a 16kb referenced script it might cost<PHONE_NUMBER>877 lovelace or 675,069.42 USD.
Let's assume we have a crypto exchange that just receives UTXOs and gives cash to a user in exchange for ADA. In general, everything is fine until the moment when the exchange starts selling ADA for cash and needs to spend all these UTXOs in one transaction.
Or the exchange decides to reorganize all these UTXOs by merging them into one or moving funds to a specific wallet because it needs to. And what if all these utxo's has an inlined scripts. I guess you can already see the potential consequences.
I wouldn't say it's 100% possible since I don't know the internals of a crypto CEX, but the chance doesn't seem too low to be impossible.
It can also break a DEX's match maker or batcher by creating a set of orders that seem perfect to execute in one transaction.
In general, if someone works closely with Cardano, this person will probably think about this to avoid such problems before they happen. But often people dont's care about anything till it happens or they were notified properly. The blockchain industry isn't limited to Cardano; there are plenty of platforms and numerous strange tokens that create additional informational pollution.
This feature isn't something that was loudly announced, in contrast to all the marketing around governance stuff. If you work just with wallet non-Plutus script UTXOs, you don't expect anything that might affect fee calculation except transaction size. I had a conversation with a wallet builder (not Yoroi), and he doesn't expect such kinds of UTXOs in a wallet. And it's difficult to see the problem when you just receive such utxos, because it doesn't have some garbage assets that more visible and it explicitly increases transaction size when you are trying to spend it.
I just googled "minFeeRefScriptsCoinsPerByte", and the first link is this one, where I see:

"The minFeeRefScriptsCoinsPerByte protocol parameter refines the Plutus cost model and improves fee calculations by allowing separate tuning of the costs for reference scripts."

But I hope that I'm just wrong, and cardano will not that problem.

@lisicky I appreciate your concern, but it is definitely not an attack vector. Let's go though some back of the envelope calculation:
It takes ~7.8 ADA to create an input that contains a reference script with 16KiB in size. Which means an attacker would have to pay approximately 93 ADA in fees for submitting 121 such transactions. Moreover, each input will have to contain at least 70ADA, due to min utxo requirement. Which means for an attacker to create 121 inputs with 16KiB ref scripts and send them to anyone would cost 8563ADA. That is already quite a bit of skin in the game. That being said, presumably, addressing those inputs to a CEX, would mean that 8470ADA would be exchanged for fiat or other crypto and the real cost would be only 93ADA. This is the amount we can use as cost basis of an attack.
So, now let's look at the receiving end. Let's say all of those 121 inputs where addressed to you (or to a CEX for that matter) then all you need to do spend one of them at a time (up to 25KiB of ref scripts per transaction) in order to minimize the cost. However, even if a wallet implements the dumbest thing possible and tries to spend all 121 inputs in one tx it will not work:

So if a tx already has 121 inputs with a 16kb referenced script it might cost<PHONE_NUMBER>877 lovelace or 675,069.42 USD.

There is a limit of 200KiB of total reference scripts in a transaction, so at most it would be possible to include 12 such inputs. Hypothetically, a wallet would do that simplest, but not the smartest thing and include all 12 inputs like that in one transaction, then it would cost approximately 7 ADA extra for ref scripts in those inputs to spent such transaction. Doing that 10 time would lead to an extra cost of 70ADA for the CEX.
In other words loss of 19M ADA as you described is not possible and the cost for an attacker would higher than it to would be for a CEX/DEX that is being "attacked"
One might argue further that this is a bit unfair, and I would agree with it, as I pointed out in my earlier comment. But, because CEX or DEX will have to spend 7ADA extra for the minimum received 840ADA (= 12 * 70ADA), it is less than 1% of amount being transacted. Considering that anyone trying to abuse this would be at a loss, I believe, there is little to no concern of this becoming a problem for CEX/DEXs

I just googled "minFeeRefScriptsCoinsPerByte", and the first link is this one, where I see:

Here is a document that can give you a bit more insight into the parameter and motivation behind that parameter: https://github.com/IntersectMBO/cardano-ledger/blob/master/docs/adr/2024-08-14_009-refscripts-fee-change.md

This feature isn't something that was loudly announced, in contrast to all the marketing around governance stuff.

It was a security concern, as you will learn from the above document, so we could not be overly loud about this feature. Also, you comparison of this tiny feature to governance is a bit demeaning, because addition of Governance to Cardano is a huge milestone! It very much deserves all the marketing around it.

If you work just with wallet non-Plutus script UTXOs, you don't expect anything that might affect fee calculation except transaction size. I had a conversation with a wallet builder (not Yoroi), and he doesn't expect such kinds of UTXOs in a wallet.

I am sorry, but Cardano is not only about sending and receiving ADA and other tokens. It is much more than that, so expectations should be adjusted accordingly by such developers.

But I hope that I'm just wrong, and cardano will not that problem.

Hopefully my explanation and more information about this feature put your concerns at ease.

But often people dont's care about anything till it happens or they were notified properly. The blockchain industry isn't limited to Cardano; there are plenty of platforms and numerous strange tokens that create additional informational pollution.

Side note: this is not a good argument in my books at all. If one is willing to support a project they should invest time and money to do it right. Exchanges and wallets have the resources and motivation to do so. They really have to do their due diligence in understanding the product that they are claiming to support. If they are choosing to be sloppy, then they deserve to pay for it in exploits. This view that I have applies to any software out there, including Cardano!

I should mention that it's not just about additional difficulty, it's also not clear to me that giving exceptions to this fee would be an improvement. The issue is that it's extra work (finding out that the fee is not necessary) that needs to be done on every transaction containing reference scripts. It's not much extra work of course, but it's making the common scenario more computationally expensive to make a rare scenario monetarily cheaper. The only use-case that I know where this fee applies is 'cleanup', and as @lehins argued there isn't really an attack here.
Also, note that checking whether there are no redeemers isn't good enough since the script could also be a native/phase 1 script. To know whether that's used, you have to actually look at all of the use sites, i.e. check with scriptsNeeded.
 If all of them are unique, there is no way of consolidating anything. Ideally a wallet would somehow show you that some of your ada is blocked by garbage tokens, but I don't think there exists a wallet that does that (and this issue was known well before the introduction of multi-assets).
However, I this this issue provides a good reason as to why the fee should grow linearly instead: If you're not an attacker and just want to clean up, you shouldn't have to worry about chopping up your transactions just to save on fees.

@WhatisRT We need to make sure we have our facts right. Computational and complexity overheads of this feature in ledger would be negligible! We already have scriptsNeeded available so we'd only need to do one single Map restriction in order to filter out unused scripts. It is literally a two line change. It is the complexity of changing specification that was driving factor behind us ending up charging for unused reference script.
With all that said, I do believe this would be an improvement and I recommend creating a CIP about this. Because without a proper CIP, I can guarantee that this change is not going to happen.

I this this issue provides a good reason as to why the fee should grow linearly instead: If you're not an attacker and just want to clean up, you shouldn't have to worry about chopping up your transactions just to save on fees.

@WhatisRT Same to you, if you don't like the way we are charging for ref scripts, feel free to create a CIP about it. Complaining on different tickets about the pricing model isn't gonna help it.


Rest operator on bind will fail to execute on bigger tables

https://github.com/aidenwallis/kysely-d1/blob/ba48112890fd91035fb51b93dc1301e9f8e4329d/src/index.ts#L104
Context
For a few hours I am trying to debug a non trivial problem
D1_ERROR: too many SQL variables

I found that generation of kysely-d1 is using the rest operator .bind(...data) therefore from
array of objects i get one single array which is flat.

Interesting.. is this something you feel comfortable cutting a PR for? Else I can take a look next week (am travelling for the rest of the week)


⚠ Bofrost.com has degraded performance

In ae20d30, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 1197 ms

Resolved: Bofrost.com performance has improved in 204c933 after 10 minutes.


pod-security-policy.md: add links to the page about admission plugin

This PR adds a links to the page that provides more details about PSP plug-in and how to enable it.
PTAL @liggitt @joshrosso
CC @simo5
Fixes #5820

This change is

/lgtm

/lgtm


Please Clarify PTUs Consumption

Hello!
Could we elaborate and make explicit what we mean by PTUs are fully consumed, please? I think that's important because not only would that mean total PTU consumption (in which case there isn't much of a way to retry anyway) as well as tokens-per-minute allocations. Are there other scenarios?
A 429 response indicates that the allocated PTUs are fully consumed at the time of the call. The response includes the retry-after-ms and retry-after headers that tell you the time to wait before the next call will be accepted.
I am presently thinking about whether and how we need to include this in the Python openai-priority-loadbalancer.

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

ID: 8d5e6a01-65a9-87cb-acaa-97ecd2a9e0ee
Version Independent ID: 3de31084-fe70-aed1-b062-4556dc9835c5
Content: Quickstart - Get started using Provisioned Deployments with Azure OpenAI Service - Azure OpenAI Service
Content Source: articles/ai-services/openai/how-to/provisioned-get-started.md
Service: azure-ai-openai
GitHub Login: @ChrisHMSFT
Microsoft Alias: chrhoder

@simonkurtz-MSFT
Thanks for your feedback! We will investigate and update as appropriate.

@simonkurtz-MSFT
Thanks for bringing this to our attention.
I'm going to assign this to the document author so they can take a look at it accordingly.

[like]  Simon Kurtz reacted to your message:

From: AjayBathini-MSFT @.>
Sent: Wednesday, May 22, 2024 8:57:30 AM
To: MicrosoftDocs/azure-docs @.>
Cc: Mention @.>; Author @.>
Subject: Re: [MicrosoftDocs/azure-docs] Please Clarify PTUs Consumption (Issue #122587)
@simonkurtz-MSFThttps://github.com/simonkurtz-MSFT
Thanks for bringing this to our attention.
I'm going to assign this to the document author so they can take a look at it accordingly.
—
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/122587#issuecomment-2124237777 or unsubscribehttps://github.com/notifications/unsubscribe-auth/AUHBQRKQKWUSMLF4IHAV4JDZDRMXXBFKMF2HI4TJMJ2XIZLTTCBKK5TBNR2WLJDUOJ2WLJDOMFWWLO3UNBZGKYLEL5YGC4TUNFRWS4DBNZ2F6YLDORUXM2LUPGBKK5TBNR2WLJDUOJ2WLJDOMFWWLLTXMF2GG2C7MFRXI2LWNF2HTAVFOZQWY5LFUVUXG43VMWSG4YLNMWVXI2DSMVQWIX3UPFYGLAVFOZQWY5LFVE4DGNRXGAZDONBSURXGC3LFVFUGC427NRQWEZLMQKSXMYLMOVS2SOBTGY3TANBYGIZ2I3TBNVS2S2DBONPWYYLCMVWIFJLWMFWHKZNJHA2TGMRYGM4DKMNENZQW2ZNJNBQXGX3MMFRGK3ECUV3GC3DVMWVDCNBQGQ4DSNJVGYYKI3TBNVS2S2DBONPWYYLCMVWIFJLWMFWHKZNKGYYDAOJXGU4TENBXURXGC3LFVFUGC427NRQWEZLMVRZXKYTKMVRXIX3UPFYGLLCJONZXKZKDN5WW2ZLOOSTHI33QNFRXHF4CUR2HS4DFVJZGK4DPONUXI33SPGSXMYLMOVS2QNZSGY4DKMBSG2BKI5DZOBS2K2LTON2WLJLWMFWHKZNKGIZTAMRVGA3DGNJWQKSHI6LQMWSWYYLCMVWKK5TBNR2WLKJYGM3DOMBSG42DFAVEOR4XAZNFNRQWEZLMUV3GC3DVMWUTQMZWG4YDIOBSGOBKI5DZOBS2K3DBMJSWZJLWMFWHKZNJHA2TGMRYGM4DKMMCUR2HS4DFUVWGCYTFNSSXMYLMOVS2UMJUGA2DQOJVGU3DBAVEOR4XAZNFNRQWEZLMUV3GC3DVMWVDMMBQHE3TKOJSGQ32O5DSNFTWOZLSUZRXEZLBORSQ.
You are receiving this email because you were mentioned.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks for the feedback. We are winding down GitHub Issues as a feedback mechanism for Azure docs and as part of that process are shifting an unresolved GitHub Issues to being internally tracked. We have a number of updates planned this month for this article. I will include this feedback in those updates. This issue is now being tracking in our internal docs backlog.

#please-close


@firebase/database: FIREBASE WARNING: Exception was thrown by user callback. TypeError: Cannot read property 'myID' of undefined (Production build only)

Version info

Angular: ^5.0.0-rc.6.0
Firebase: ^4.13.1
AngularFire: ^5.0.0-rc.6.0
Other (e.g. Ionic/Cordova, Node, browser, operating system): Ubuntu 16.04, Chrome
** Geofire:**  ^4.1.2
How to reproduce these conditions
Failing test unit, Plunkr, or JSFiddle demonstrating the problem

Steps to set up and reproduce I have a sample code on github with the exact config I am using. You can find that here

https://github.com/gate3/Sample-Code

Sample data and security rules
<-- include/attach/link to some json sample data (or provide credentials to a sanitized, test Firebase project) -->
Debug output
** Errors in the JavaScript console ** @firebase/database: FIREBASE WARNING: Exception was thrown by user callback. TypeError: Cannot read property 'myID' of undefined (Production build only)
** Output from firebase.database().enableLogging(true); **
** Screenshots **
Expected behavior

The app is a location based app so i am using geofire. I expect the app to get the user's current location and use that to fetch nearby locations from firebase.
Actual behavior

As soon as i build the app using ng build --prod and deploy to firebase I am getting the following error

@firebase/database: FIREBASE WARNING: Exception was thrown by user callback. TypeError: Cannot read property 'myID' of undefined

I reported the issue to firebase support and I was told its likely from this line

constructor (private db: AngularFireDatabase){

Same here

Are you getting this error on Chrome? Personally, I only get this error on chrome and my production application retrieves data properly on Firefox.

Haven't tested Firefox but yes I get this error in chrome
On Fri, May 11, 2018, 9:09 PM Ian Christner<EMAIL_ADDRESS>wrote:

Are you getting this error on Chrome? Personally, I only get this error on
chrome and my production application retrieves data properly on Firefox.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/angular/angularfire2/issues/1614#issuecomment-388472761,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADbkfWYw05hTN9xB72wJBryI42Woxt1dks5txe_ggaJpZM4T6UtH
.

There have been quite a few changes in the JS SDK, can you confirm if this is still a problem with Firebase 5.0 and angularfire2@next

If so, you should file an issue with the JS SDK https://github.com/firebase/firebase-js-sdk

same here


Fix zipfile bugs, simplify logic

Fixes #283.

Fixed import issue
Combined input and comment requests into one JSON response
Simplified FileListHandler.get to make it a bit more readable

LGTM and seems to work as expected.


How to change the language of the notifications to English?

Dear @rodrigopmatias,
Thank you so much for your very useful update notifier!
I have one question:
How can I change the language of the notifications from currently Spanish to English?
Thankfully,
~Robert

Issue resolved. Please close.

Great, thanks for the translation!


--outputHashing is not working

🐞 Bug report
Command (mark with an x)

[ ] new
[X] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] xi18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?

 Yes, the previous version in which this bug was not present was: no idea
Description
Still browser is able to cache my JS changes in production too. You will have to clear cache with ctrl + shift + r.
angular.json
"production": {
              "budgets": [
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ]
            },

🔬 Minimal Reproduction

🔥 Exception or Error

🌍 Your Environment

ng version
Your global Angular CLI version (9.1.1) is greater than your local
version (9.0.3). The local Angular CLI version is used.

Hi @indraraj26, my two cents would be that the index.html is cached which in such case is more of a server configuration rather than an Angular CLI issue.
Unfortunately, there isn’t much information in this issue to validate if this is any the real issue or not.

I will share website link tmrw it is hosted on aws s3 bucket. btw from where i can start to troubleshoot. how to can i blame server team, it is an server side issue.

Let's not play the blame game 😁.
You can try to checking what the response for the index.html is and verify if that's the cached version or not.

For additional information on server cache settings, this article may be useful: https://web.dev/http-cache/
The Cache-Control header should typically be set to no-cache for the index.html.  This can be checked in the dev tool's network tab for the browser.

Thank Alan and clydin for quick response on this. I will check this in morning

Hello,
Since Angular 7 i get this error: Unknown option: '--output-hashing'
What would be the right way to use this option ?
Thank you

Hello,
Since Angular 7 i get this error: Unknown option: '--output-hashing'
What would be the right way to use this option ?
Thank you

—-output-hashing is a build option. See: https://angular.io/cli/build

Thank you for patience and i am really sorry for late response on this. yes i am closing since server team is looking into that.


Postcode value handling

There is a quirk in the way iD handles the case of postcodes such as SA44 6JD (UK postcode).
If I enter it with the correct case, all is fine.  However, the problem occurs if my finger slips on the shift key and I'm not paying attention, so I end up with SA44 6jd.  As long as I don't click or tab away from the postcode field, it's correctable.  But if I click or tab away and later notice and try to correct it then iD forces lower-case on me.  I can't change it to 6JD because iD insists that 6jd is the only correct, one and true way, to do it.  I don't even have to save the object first, this happens even before a save.  If I've clicked or tabbed away, iD over-rules me.
If somebody has entered the same postcode, but partly or all lower-cased nearby, then iD helpfully "corrects" my attempt to enter the postcode correctly on another object.  Because iD already knows that particular postcode exists, and it exists with different case so I must be wrong.
I assume that the logic exempting postcodes from the general rule that tag values are lower-case is going a little awry in this situation.
Work-around: enter a nonsense letter into SA44 6jd to give SA44 6zjd, change that to SA44 6zJD, then
delete the "z".  That's enough to fool iD into letting me do the right thing.

Thanks for reporting @eehpcm

I assume that the logic exempting postcodes from the general rule that tag values are lower-case is going a little awry in this situation.

No It's not that - it's just that the postcode combo field looks nearby for existing postcodes and suggests those to you.  Even if it is the one that you already mistakenly typed.
We can make the combo field ignore the case so that you can overwrite the bad data.

@bhousel

No It's not that - it's just that the postcode combo field looks nearby for existing postcodes and suggests those to you.

That's a very strong suggestion.  More like an offer you can't refuse. :)

We can make the combo field ignore the case so that you can overwrite the bad data.

That sounds good.  Thanks.

Even if it is the one that you already mistakenly typed.

It should probably ignore the existing value too if it's the only nearby feature with that value.

@quincylvania

It should probably ignore the existing value too if it's the only nearby feature with that value.

I'm happy with existing behaviour.  Sometimes it's right, sometimes it's wrong.  But whether it's the second or third object with a postal address in the vicinity doesn't affect the probabilities.  As long as it's a suggestion, it's fine even if there's only one nearby feature with a postcode.  If it's right I tab off, if it's wrong I overtype.  It was just the lower-case thing that caused a problem.
Some more things you should know in case you're thinking of other ways in which iD could be more helpful...
There are places in my town where the postcode changes in the middle of a street.  Several houses with one postcode, a side street, the next house and subsequent houses have a different postcode.  That puzzled me for a while, until I realized it was because a mail delivery route went partway along the street then turned onto the side street.  Your proposed change wouldn't help, because the prediction would be wrong.  Fubar Road: seven houses with the same postcode, the next house on Fubar Road ought to have the same postcode, but it doesn't.
You can't fix it by looking at the road name, either.  Yes, postcodes in the UK are such that no two roads have the same postcode.  But (as in my example above) a single road can have more than one postcode.  And, more importantly, several houses along an unnamed road can share the same postcode.  So if it's the same named road then guessing a house has the same postcode as other houses on that road is probably right, but can be wrong.  If it's a different named road the postcode ought to be different (but there may be obscure cases where it isn't).  And if it's an unnamed road all you can do is guess it might be the same postcode as something nearby.
Oh, and organizations that receive a lot of mail can get their own postcode.  Including banks, which in this internet age no longer receive large quantities of mail, but have their own postcode for historical reasons.

I changed the address combos to be

case sensitive (i.e. don't force user to accept the autosuggested case), and
ignore the current entity's value when building the list of nearby suggestions


Bypass compositor for fullscreen view

Stop rendering and pass the buffer directly to kms.

Reminder that you can fullscreen semitransparent surfaces.


fix: Added Open issue

:tada: This PR is included in version 1.4.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


buttons - z-index and waves-effect

Hi there
I have come across a couple of issues with recent btn css styling.

If you include btn as the only class on an a tag (for example: My Button) then the css on the .btn:before:hover goes very strange and instead of providing a shadow to the button, turns the container grey:

If you add waves-effect to the class, this effect is removed.

On buttons where waves-effect is included, these have a lower z-index than the menus:

Please let me know if you need any further information.

Can you post example code for the first issue?

Hi there
I have worked out what causes the problem in the first example.
The library styling applied to .btn:before includes position: absolute; width: 100%; height: 100%. However, the button receives its position: relative from the .waves-effect styling.
Without that class, the .btn has no position and so the absolute styling is relative to the next element up with a position - in our case this is a content wrapper.
So basically, the 100% height and width .btn:before is not constrained to our .btn because we don't have the .waves-effect applied to our button, just the btn class.

We were testing out some new ways to retain hover color in buttons, but we've reverted to the old style. If you can confirm that this no longer happens, we will close this issue. Thanks.

Confirmed, I was using master on another project yesterday and all seems fine. Many thanks!


klayout: 0.27.11 -> 0.28.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/KLayout/klayout/releases.
meta.description for klayout is: "High performance layout viewer and editor with support for GDS and OASIS"
meta.homepage for klayout is: "https://www.klayout.de/"
meta.changelog for klayout is: "https://www.klayout.de/development.html#0.27.12"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.27.12 with grep in /nix/store/dlfa7pbd76i689vvxxxkl886hzndbdii-klayout-0.27.12
found 0.27.12 in filename of file in /nix/store/dlfa7pbd76i689vvxxxkl886hzndbdii-klayout-0.27.12

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
klayout

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dlfa7pbd76i689vvxxxkl886hzndbdii-klayout-0.27.12 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A klayout https://github.com/r-ryantm/nixpkgs/archive/37fbe9c5572de5a1182100b4ff26c460839698ae.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dlfa7pbd76i689vvxxxkl886hzndbdii-klayout-0.27.12
ls -la /nix/store/dlfa7pbd76i689vvxxxkl886hzndbdii-klayout-0.27.12/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

klayout

Maintainer pings
cc @knedlsepp for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/KLayout/klayout/releases.
meta.description for klayout is: "High performance layout viewer and editor with support for GDS and OASIS"
meta.homepage for klayout is: "https://www.klayout.de/"
meta.changelog for klayout is: "https://www.klayout.de/development.html#0.27.13"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.27.13 with grep in /nix/store/f1ibq1ml9sn1kkam15i36m5paxiv7npn-klayout-0.27.13
found 0.27.13 in filename of file in /nix/store/f1ibq1ml9sn1kkam15i36m5paxiv7npn-klayout-0.27.13

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
klayout

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/f1ibq1ml9sn1kkam15i36m5paxiv7npn-klayout-0.27.13 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A klayout https://github.com/r-ryantm/nixpkgs/archive/8ddcc1785644f1e131c2fe37fd3cedbbceacaebf.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/f1ibq1ml9sn1kkam15i36m5paxiv7npn-klayout-0.27.13
ls -la /nix/store/f1ibq1ml9sn1kkam15i36m5paxiv7npn-klayout-0.27.13/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

klayout

Maintainer pings
cc @knedlsepp for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/KLayout/klayout/releases.
meta.description for klayout is: "High performance layout viewer and editor with support for GDS and OASIS"
meta.homepage for klayout is: "https://www.klayout.de/"
meta.changelog for klayout is: "https://www.klayout.de/development.html#0.28.1"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.28.1 with grep in /nix/store/ff54zy3fxr9k2vvm6d6vd1ap5jprbhrk-klayout-0.28.1
found 0.28.1 in filename of file in /nix/store/ff54zy3fxr9k2vvm6d6vd1ap5jprbhrk-klayout-0.28.1

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
klayout

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ff54zy3fxr9k2vvm6d6vd1ap5jprbhrk-klayout-0.28.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A klayout https://github.com/r-ryantm/nixpkgs/archive/c8858b3a14585113dc98dd9040bd4f3c6ee9cb95.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ff54zy3fxr9k2vvm6d6vd1ap5jprbhrk-klayout-0.28.1
ls -la /nix/store/ff54zy3fxr9k2vvm6d6vd1ap5jprbhrk-klayout-0.28.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

klayout

Maintainer pings
cc @knedlsepp for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/KLayout/klayout/releases.
meta.description for klayout is: "High performance layout viewer and editor with support for GDS and OASIS"
meta.homepage for klayout is: "https://www.klayout.de/"
meta.changelog for klayout is: "https://www.klayout.de/development.html#0.28.2"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.28.2 with grep in /nix/store/vhpn5jn3nm10ladlhg54n70x6h1j3a1s-klayout-0.28.2
found 0.28.2 in filename of file in /nix/store/vhpn5jn3nm10ladlhg54n70x6h1j3a1s-klayout-0.28.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
klayout

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/vhpn5jn3nm10ladlhg54n70x6h1j3a1s-klayout-0.28.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A klayout https://github.com/r-ryantm/nixpkgs/archive/e18ec0dbead85c0c629758de39e967fa884b62d1.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/vhpn5jn3nm10ladlhg54n70x6h1j3a1s-klayout-0.28.2
ls -la /nix/store/vhpn5jn3nm10ladlhg54n70x6h1j3a1s-klayout-0.28.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

klayout

Maintainer pings
cc @knedlsepp for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/KLayout/klayout/releases.
meta.description for klayout is: High performance layout viewer and editor with support for GDS and OASIS
meta.homepage for klayout is: https://www.klayout.de/
meta.changelog for klayout is: https://www.klayout.de/development.html#0.28.3
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.28.3 with grep in /nix/store/4wmv3jqc611dx62qhs6jjcy3h07psqc2-klayout-0.28.3
found 0.28.3 in filename of file in /nix/store/4wmv3jqc611dx62qhs6jjcy3h07psqc2-klayout-0.28.3

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
klayout

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/4wmv3jqc611dx62qhs6jjcy3h07psqc2-klayout-0.28.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A klayout https://github.com/r-ryantm/nixpkgs/archive/40208098d2cf7ef3706a7f68ffdef7046eb2d001.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/4wmv3jqc611dx62qhs6jjcy3h07psqc2-klayout-0.28.3
ls -la /nix/store/4wmv3jqc611dx62qhs6jjcy3h07psqc2-klayout-0.28.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

klayout

Maintainer pings
cc @knedlsepp for testing.


How to trigger an action after user selecting certain number of stars

How to trigger an action after user selecting certain number of stars, e.g. if user selected all five stars that are shown, the app wants to show an alert.
The author provided two functions:
// Called when user finishes changing the rating by lifting the finger from the view.
// This may be a good place to save the rating in the database or send to the server.
cosmosView.didFinishTouchingCosmos = { rating in }
// A closure that is called when user changes the rating by touching the view.
// This can be used to update UI as the rating is being changed by moving a finger.
cosmosView.didTouchCosmos = { rating in }
which seem to be for the purpose.
Can you please tell me where I can use the above pieces of code? You do not seem to provide any deletage like UITableView.
I am a beginner iOS programmer so I really hope you can help.

Thanks for your question. :) Did you create cosmos view in the Storyboard? If so, do you know how to create an outlet for the cosmos view in your view controller code?

Thank you evgenyeu. I already found the solution. I created cosmos view in the Storyboard and created an outlet. I defined the function that it should trigger in the block cosmosView.didFinishTouchingCosmos = { rating in }. I think this is called "closure" and I just learned how to use it today. Very nice feature.

Excellent! Good luck. :)

Closing the issue, feel free to reopen if needed.

In my appliaction if user is selectiing bellow 4 we show orange and more than 4 show pink colour.
How to we Identify how many stars user is selected.

@rahulshine, the rating argument passed to the didTouchCosmos and didFinishTouchingCosmos contains the selected rating, which is the selected number of stars.
For example:
cosmosView.didTouchCosmos = { rating in
   // Change the UI based on the `rating`
}

Let me know if it helps. :)