Deviation between PRICE_EMISSION calculation and tax_emission use in OBJECTIVE-function

When applying a cumulative budget (as parameter bound_emission), "PRICE_EMISSION" is calculated in model_solve.gms. The resulting PRICE_EMISSION, if applied to a scenario using the parameter tax_emission, should yield the same results as the cumulative budget constraint.
This is not the case. The issue is that the objective-function, which is the sum over the "COST_NODAL", which in turn incorporates the "tax_emission", is multiplied only by the parameter df_period in contrast to PRICE_EMISSION which is multiplied by df_year.
The resulting marginals of the equation EMISSION_EQUIVALENCE of the two approaches shows a difference when switching from 5 to 10-year time steps (in the case of the MESSAGEix-GLOBIOM model), which could indicate that there is a problem when calculating the price when the duration-period changes.
Specifically, the calculation of PRICE_EMISSION, the marginals from the GAMS solution, for a cumulative budget, are rescaled to df_year and df_period of 2015 (based on the parameter map_first_period for cumulative), then multiplied by df_year of each model year. Possibly the issue is the calculation of df_year is not consistent when duration period changes, in this case from 5-year to 10-year. In the Excel file, df_year in each year is calculated based on the previous period. As far as the period length of two consecutive periods is the same, this works well. But when transitioning from 5-year to 10-year, the calculation yields an issue. The solution to this can be to add a correction factor, which would divide the existing calculated df_year by what it could be if the same period length was applied.
The attached xlsx-file has examples of how a correction factor can be derived and applied to the "PRICE_EMISSION" price trajectoy in order to yield the same results.
Calculate_price_emission_1.xlsx

Here are my promised  2ct to the discussion on duality at today's message-ix mtg. I am afraid that application of bounds (assuming at least some of them are activate at the solution) may rather hide the problem than solve it. Such bounds decrease the feasible polyhedral; therefore, the solution will differ from solution of the problem without bounds. The latter might not be a problem because bounding annual emissions may have advantages. However, the approach will not improve "stability" of dual solution; for the latter there is unfortunately no robust solution.
The actual problem comes from the optimization's features, which are generally known but often forgotten. Namely, solvers provide optimal solution that minimizes objective; solvers don't care about stability of solutions unless dedicated approaches, such as regularization, are implemented. Thus, for a given feasible set, the objective values for different runs (with different solvers/options) should be "almost the same". However, the corresponding solutions (in the spaces of variables, both primal and dual) usually differ substantially; the latter occurs especially for dual variables. IPM (barrier method) is primal-dual; therefore, chances for smaller differences in dual variables are higher than for simplex methods. This advantage, however, is likely lost, if crossover is applied to optimal IPM solution to move solution from inside the feasible region to a vertex. Values of dual solutions  before and after crossover will almost certainly differ substantially.
Summing-up: if we use dual solutions (which, obviously, is a common practice despite the above summarized problems) we should be prepared for facing the consequences of its features. These are likely to be even much more serious for badly conditioned problems.
I am sorry for stressing the issue without being able to propose a constructive solution. However, maybe my comments will anyway be somehow useful.

Thank you, Marek, for your important comments.
I understand the optimal primal/dual variables are not necessarily unique when the corresponding coefficients (c_i of c_ix_i, or b_j of b_jy_j) are zero. My question is whether the optimal variables with non-zero coefficients can be unstable or not. Could you give me any comments about that?

@th-hara : The non-uniqueness of both primal and dual solutions is caused mainly by the fact, that solutions differ (often substantially) for "close" values of objective function. The "mainly" stands for "an obvious explanation"; other reasons include numerical properties of the MMP (e.g., the condition number) or faults in the MMP formulation that "obviously" cause non-uniqueness.
I don't know why/how zero/non-zero values of any coefficient could explain the non-uniqueness of solutions. Actually, optimization stops, when optimality and feasibility conditions are met; this occurs at different points (in terms of values of model variables) of the solution space.

@marek-iiasa , Thank you for your reply. I understand your explanation of the cause of substantial variety of solutions with almost the same optimal function value. Intuitively, if the constraint which includes the extreme point as the optimal solution is close to "parallel" to the objective function, this could happen, is it correct?
In the context of energy systems analysis, if some technologies have almost the same cost, this could happen. I have experience of analyzing "near-optimal solutions" to explore a wide variety of technical options with almost the same system cost.
I meant that degeneracy cause the non-uniqueness of solutions, and one of the causes of degeneracy is the zero-value of parameters.
The example is, if you have a power system model with hourly time resolution, the variables which represent the amount of charge/discharge of storage at each time must have non-unique values in the optimal solution. This is because the cost coefficients of such variables are zero in the objective function.

@th-hara: we just touch a rather complex problem; therefore I would be careful with general explanations. On one hand we have typical LP or NLP examples shown in the books or lectures on math-programming, which are "well behaving" and thus serve for easy explanations of e.g., of the KKT optimality conditions; such examples have, of course, unique solutions (both primal and dual), and a "clear" optimal point. For illustrating degeneracy one typically shows a small example of two-variables' problems with three constraints (all having clearly different gradients, also different from the gradient of the objective), when all these constraints are active at the optimal point. In such cases the primal solution is unique but the dual is not.
On the other hand, the reality is of course much more complicated. Your arguments illustrate a subset of problems with uniqueness of solutions of optimization problems. Generally, large problems have typically flat boundary of the set of feasible solutions, which actually corresponds to the set of suboptimal solutions. The optimization stops somewhere at such flat area where the gradient of the objective is close to the gradients of constraints of such area. In other words, the solution declared optimal is actually a suboptimal solution. The value of objective at suboptimal solutions differ by optimality tolerance (i.e., are very small). However, the distance between suboptimal solutions (including the (unknown) "true" optimal point, which is at a vertex of the flat area of suboptimal solutions) is often large, both for primal and dual variables.

@marek-iiasa: Thank you for your thorough comments.
I recently run a model (MESSAGEix-Material-Transport) with the same 1.5C equivalent carbon constraints imposed each period, but with different LP algorithms (Barrier and dual-simplex) to obtain the solution. I observed that the carbon prices (PRICE_EMISSION) were the same, while some dual variables (PRICE_COMMODITY) and primal variables (ACT) were different between two solutions. This is just for your information.

Unfortunately, this will have to be postponed until we find time for a proper cleanup.


Guideline for collaborative workflow

To accept contributions from external contributors in future as we want to keep the code live. This code is attached to a published version of a report. How to log the key improvements in the code against the published version of the report?

You can address this with two documents:

A Contributing guide that documents how external contributors can contribute. I often this example as my starting point: https://github.com/matchms/matchms/blob/master/CONTRIBUTING.md
A Changelog where you document the changes of each release of your software. See the same repository for an example: https://github.com/matchms/matchms/blob/master/CHANGELOG.md.

A changelog will make most sense if you follow a release workflow. This will also allow you to be able to quickly find the published version of the software.

You will need to decide yourself how you would like external developers to contribute and how you will maintain and support the software in the future.


Show message for returning user

Showing different text at the beginning of the form for a returning user (id and timestamp in local strorage already).

@Doniee Can't add you as a reviewer 'cause it's your own PR 😂 but can you double-check again?


Make VestaCP Run https://vps_ip_address:8083

Ubuntu 16.0.x
First, I run this series of commands to set up the Docker repository.
$ sudo apt-get install apt-transport-https ca-certificates curl
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update

Once the repository has been installed, I can install the latest version of Docker CE.
$ sudo apt-get install docker-ce
Automatic start docker
$ sudo systemctl enable docker
Installing docker-compose
$ sudo -i
$ curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

After installing the docker I tried to run niiknow/vesacp
mkdir -p /opt/vestacp/{vesta,home,backup}
docker run -d --restart=always \
-p 2222:22 -p 80:80 -p 443:443 -p 3306:3306 -p 5432:5432 -p 8083:8083 \
-v /opt/vestacp/vesta:/vesta -v /opt/vestacp/home:/home -v /opt/vestacp/backup:/backup \
niiknow/vestacp

service docker status
docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-05-09 02:22:44 UTC; 9min ago
     Docs: https://docs.docker.com
 Main PID: 12595 (dockerd)
   CGroup: /system.slice/docker.service
           ├─12595 /usr/bin/dockerd -H fd://
           ├─12601 docker-containerd --config /var/run/docker/containerd/containerd.toml
           ├─13877 /usr/bin/docker-proxy -proto tcp -host-ip <IP_ADDRESS> -host-port 8083 -container-ip <IP_ADDRESS> -container-port 8083
           ├─13898 /usr/bin/docker-proxy -proto tcp -host-ip <IP_ADDRESS> -host-port 5432 -container-ip <IP_ADDRESS> -container-port 5432
           ├─13910 /usr/bin/docker-proxy -proto tcp -host-ip <IP_ADDRESS> -host-port 3306 -container-ip <IP_ADDRESS> -container-port 3306
           ├─13921 /usr/bin/docker-proxy -proto tcp -host-ip <IP_ADDRESS> -host-port 443 -container-ip <IP_ADDRESS> -container-port 443
           ├─13932 /usr/bin/docker-proxy -proto tcp -host-ip <IP_ADDRESS> -host-port 2222 -container-ip <IP_ADDRESS> -container-port 22
           ├─13943 /usr/bin/docker-proxy -proto tcp -host-ip <IP_ADDRESS> -host-port 80 -container-ip <IP_ADDRESS> -container-port 80
           └─13948 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/b3cb5382bc33af67787cd67bef26e55931c11877be74d1a5de958f67893c

May 09 02:23:43 fleximi-web dockerd[12595]: time="2018-05-09T02:23:43Z" level=info msg="shim docker-containerd-shim started" address="/containerd-shim/moby/0c08aca4930ff5fade2a035bc94d27a2070090c2e
May 09 02:24:23 fleximi-web dockerd[12595]: time="2018-05-09T02:24:23Z" level=info msg="shim reaped" id=0c08aca4930ff5fade2a035bc94d27a2070090c2eabefb1b941db1c8c63c1a25 module="containerd/tasks"
May 09 02:24:23 fleximi-web dockerd[12595]: time="2018-05-09T02:24:23.775065468Z" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
May 09 02:25:02 fleximi-web dockerd[12595]: time="2018-05-09T02:25:02Z" level=info msg="shim docker-containerd-shim started" address="/containerd-shim/moby/7534e4bbc909688ae4c399a03f65ae29480ca6ef2
May 09 02:25:02 fleximi-web dockerd[12595]: time="2018-05-09T02:25:02Z" level=info msg="shim reaped" id=7534e4bbc909688ae4c399a03f65ae29480ca6ef26276991cdf46741541a2172 module="containerd/tasks"
May 09 02:25:02 fleximi-web dockerd[12595]: time="2018-05-09T02:25:02.464189982Z" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
May 09 02:26:39 fleximi-web dockerd[12595]: time="2018-05-09T02:26:39Z" level=info msg="shim docker-containerd-shim started" address="/containerd-shim/moby/3d3c041194ff21f471510239c772f9242a168beb2
May 09 02:27:18 fleximi-web dockerd[12595]: time="2018-05-09T02:27:18Z" level=info msg="shim reaped" id=3d3c041194ff21f471510239c772f9242a168beb236209ddb77150a71001c538 module="containerd/tasks"
May 09 02:27:18 fleximi-web dockerd[12595]: time="2018-05-09T02:27:18.115069679Z" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
May 09 02:31:39 fleximi-web dockerd[12595]: time="2018-05-09T02:31:39Z" level=info msg="shim docker-containerd-shim started" address="/containerd-shim/moby/b3cb5382bc33af67787cd67bef26e55931c11877b

I want to try running it in https://vps_ip_address:8083

I tried running:
rm -rf /opt/vestacp && mkdir -p /opt/vestacp/{vesta,home,backup} && docker run -v /opt/vestacp/vesta:/vesta -v /opt/vestacp/home:/home -v /opt/vestacp/backup:/backup niiknow/vestacp:latest
Output
root@fleximi-web:~# docker pull niiknow/vestacp:latest
latest: Pulling from niiknow/vestacp
Digest: sha256:46d005459ff3ec9eea876fb6cc6c5035f1c2bc3f9377200ed3f74efce539c36c
Status: Image is up to date for niiknow/vestacp:latest
root@fleximi-web:~# rm -rf /opt/vestacp && mkdir -p /opt/vestacp/{vesta,home,backup} && docker run -v /opt/vestacp/vesta:/vesta -v /opt/vestacp/home:/home -v /opt/vestacp/backup:/backup niiknow/vestacp:latest
*** Running /etc/my_init.d/startup.sh...
[i] running for the 1st time
file has vanished: "/vesta-start/local/vesta/data/ips/<IP_ADDRESS>"
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1183) [sender=3.1.1]
[i] init nginx
[i] init fail2ban
[i] running /home/admin/bin/my-startup.sh
 * Starting Apache httpd web server apache2
 *
 * Starting MariaDB database server mysqld
   ...done.
 * Starting PostgreSQL 9.6 database server
 * The PostgreSQL server failed to start. Please check the log output:
2018-05-09 03:27:02.370 UTC [458] FATAL:  could not map anonymous shared memory: Cannot allocate memory
2018-05-09 03:27:02.370 UTC [458] HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently<PHONE_NUMBER> bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
2018-05-09 03:27:02.370 UTC [458] LOG:  database system is shut down
   ...fail!
[i] running /bin/vesta-auto-ssl.sh
[i] vesta-auto-ssl exit due to empty VESTA_DOMAIN variable
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 477
May  9 03:27:02 3fe3b85d70a5 syslog-ng[484]: syslog-ng starting up; version='3.5.6'
May  9 03:30:01 3fe3b85d70a5 CRON[494]: (admin) CMD (sudo /usr/local/vesta/bin/v-update-sys-queue webstats)
May  9 03:30:01 3fe3b85d70a5 CRON[495]: (admin) CMD (sudo /usr/local/vesta/bin/v-update-sys-rrd)
May  9 03:30:01 3fe3b85d70a5 CRON[493]: (admin) CMD (sudo /usr/local/vesta/bin/v-update-sys-queue backup)

And running:
docker exec b3cb5382bc33 netstat -tulpn
Output
root@fleximi-web:~# docker exec b3cb5382bc33 netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 <IP_ADDRESS>:8080          <IP_ADDRESS>:*               LISTEN      43/apache2
tcp        0      0 <IP_ADDRESS>:8081          <IP_ADDRESS>:*               LISTEN      43/apache2
tcp        0      0 <IP_ADDRESS>:22              <IP_ADDRESS>:*               LISTEN      355/sshd
tcp        0      0 <IP_ADDRESS>:8443          <IP_ADDRESS>:*               LISTEN      43/apache2
tcp6       0      0 :::3306                 :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      355/sshd

@gerardvidamo sorry, I fixed issue #47 but did not mark as latest.  Please run 1.3.4 and remember to map your port: -p 80:80 -p 443:443 -p 8083:8083

@gerardvidamo yes you can.  No reference because the vesta panel does not support dotnet.  I do most of it manually as I am familiar with both nginx proxy and dotnet.  I just a lot of other things manually in Vesta mostly because the benefit of my content being backed up by the panel script.

@noogen so by default its active now? I just need an idea so I can test dotnet run while hosted using vestacp.

@gerardvidamo yes, it is active.  As this is Ubuntu, you can run it  as daemon with SystemD: http://pmcgrath.net/running-a-simple-dotnet-core-linux-daemon
I also have runit installed (https://wiki.archlinux.org/index.php/runit) as alternative since people has reported that SystemD is known to have shutdown and startup issues under docker.  I haven't experience any issue with SystemD as most of the services in the container are running with systemd right now anyway: apache, nginx, vesta, etc...  I also run my own custom golang stuff and even github clone (gogs) on this panel.  Example: https://github.com/niiknow/vestacp/blob/master/rootfs/etc/init.d/gogs

@noogen So I have to run it as deamon with SystemD where my website dir is locate?
root@fleximi-web:/opt/vestacp/home/admin/web/fleximi.com# ls

cgi-bin  document_errors  logs  private  public_html  public_shtml  stats

Under public_html?

@gerardvidamo &sually, you want to use public_html.
Emphasis on usually because it depends on your template.   How this panel work is: nginx->proxy->apache/dotnet/gogs/php-fpm/etc...
Usually, you would pick the default template: https://github.com/serghey-rodin/vesta/blob/master/install/ubuntu/16.04/templates/web/nginx/default.tpl  - this is all done with the panel UI on the web tab/menu.
default template

Proxy to apache
Serve static content directly from public_html

The problem is that we don't want apache proxy, we want to proxy to your dotnet app.  I added custom template for this purpose.  It is a simple and clean template: https://github.com/niiknow/vestacp/blob/master/rootfs/sysprepz/nginx-templates/custom.tpl
I also add the ability to have custom nginx.conf file under the private folder: https://github.com/niiknow/vestacp/blob/master/Dockerfile#L392
Therefore, you would pick custom template and add /home/admin/web/fleximi.com/private/nginx.conf:
location / {
  # force https-redirects
  if ($scheme = http) {
    return 301 https://$server_name$request_uri;
  }

# replace 10080 with your dotnet port
  proxy_pass      http://<IP_ADDRESS>:10080;
}

location /error/ {
  alias   /home/git/web/fleximi.com/document_errors/;
}

# replace 10080 with your dotnet port
location @fallback {
  proxy_pass      http://<IP_ADDRESS>:10080;
}

location ~ /\.ht    {return 404;}
location ~ /\.svn/  {return 404;}
location ~ /\.git/  {return 404;}
location ~ /\.hg/   {return 404;}
location ~ /\.bzr/  {return 404;}

@gerardvidamo huh?  Do you mean that it didn't restart after reboot?  Did you set a restart policy parameter to the docker run?  https://docs.docker.com/config/containers/start-containers-automatically/

@gerardvidamo huh? Do you mean that it didn't restart after reboot? Did you set a restart policy parameter to the docker run? https://docs.docker.com/config/containers/start-containers-automatically/

@noogen Sorry its working fine now, I forgot to set a restart policy my bad.
Im about to try the DotNet Web runtime with VestaCP to do some testing. I'll keep you posted.

@noogen So I did the dotnet run test to see if it running and then trying to check http://mydomain.com.
I added /home/admin/web/fleximi.com/private/nginx.conf using port 5000 and set the vestacp nginx settings for this site using custom template is checked.
Output in my VPS
 2018-05-11 13:12:02 ⌚  localhost in /opt/vestacp/home/admin/web/fleximi.com/dotnettest
○ → dotnet run
Hosting environment: Production
Content root path: /opt/vestacp/home/admin/web/fleximi.com/dotnettest
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down

Is there any reason why its not showing or am I missing something? Haven't done deamon with SystemD yet.

@gerardvidamo Maybe try to bind to <IP_ADDRESS> instead of localhost? ref: aspnet/KestrelHttpServer#639
If you're binding to localhost, it can only be access locally which you can check with curl from inside the container.

@noogen Its working now with the port 5001 using this nginx.conf custom template.
location / {
  # force https-redirects
  if ($scheme = http) {
    return 301 https://$server_name$request_uri;
  }

# replace 10080 with your dotnet port
  proxy_pass      http://<IP_ADDRESS>:5001;
}

location /error/ {
  alias   /home/admin/web/fleximi.com/document_errors/;
}

# replace 10080 with your dotnet port
location @fallback {
  proxy_pass      http://<IP_ADDRESS>:5001;
}

location ~ /\.ht    {return 404;}
location ~ /\.svn/  {return 404;}
location ~ /\.git/  {return 404;}
location ~ /\.hg/   {return 404;}
location ~ /\.bzr/  {return 404;}

http://domain.com is not showing up but shows in http://domain.com:5001. I also selected custom template in vestacp for the current domain.
Also in multiple domains, they are all sharing in 5001 ports. I'm not sure if the proxy pass is passing to the current domain.

@gerardvidamo in dotnet, bind to <IP_ADDRESS> if you're doing proxy pass.  Otherwise, change the line:
proxy_pass      http://<IP_ADDRESS>:5001;

to:
proxy_pass      http://<IP_ADDRESS>:5001;

Also remember to restart nginx after making the changes.

@noogen This is my settings:
location / {
  # force https-redirects
  if ($scheme = http) {
    return 301 https://$server_name$request_uri;
  }

# replace 10080 with your dotnet port
  proxy_pass      http://<IP_ADDRESS>:5001;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection keep-alive;
  proxy_set_header Host $host;
}

location /error/ {
  alias   /home/admin/web/demo.fleximi.com/document_errors/;
}

# replace 10080 with your dotnet port
location @fallback {
  proxy_pass      http://<IP_ADDRESS>:5001;
}

location ~ /\.ht    {return 404;}
location ~ /\.svn/  {return 404;}
location ~ /\.git/  {return 404;}
location ~ /\.hg/   {return 404;}
location ~ /\.bzr/  {return 404;}

dotnet run time in port 5001
root@localhost:/opt/vestacp/home/admin/web/demo.fleximi.com/dotnettest# dotnet run
Hosting environment: Production
Content root path: /opt/vestacp/home/admin/web/demo.fleximi.com/dotnettest
Now listening on: http://[::]:5001
Application started. Press Ctrl+C to shut down.

I have two domains https://domain.com and http://sub.domain.com, now when I'm running dotnet using port 5001 it doesn't shows up in http://sub.domain.com which is demo.fleximi.com and it only works when http://sub.subdomain:5001 is used. Also it shows up in the main domain http://domain.com whith port 5001(http://domain.com:5001). Nginx is restarted too plus a soft reboot to make it sure.

This is your panel setup for proxy right?

@noogen Yes, that's the settings that I have.
Settings for demo.fleximi.com

Proxy Support (nginx) checked
Proxy Template is set to custom
Alias is empty for demo.fleximi.com

the nginx.conf template that I have is in /opt/vestacp/home/admin/web/demo.fleximi.com/private/ (private dir)

There were some issue with ssl template in older version which should be fixed.  Old ticket, closing.


cut 0.8.0

@fabxc @mxinden
@mgoodness as we're versioning the helm chart individually I have not upgraded the version there. Can you take care of that and bump the version of the chart?

👍

Yup. I plan to work on the charts extensively this weekend. Will include the version bump.


spike: Rewards calculation mechanism

Problem statement:
We currently have no way for a validator to distribute rewards from a smart contract to miners or validators. We need a way for one or more trusted validators who are staked at a certain threshold to distribute rewards from an on-chain smart contract outlined in #317. Rewards need to be distributed to a nodes ECDSA public key

[ ] Where do we store calculations for rewards logic?
[x] https://github.com/masa-finance/roadmap/issues/18
[ ] how do we distribute rewards on Sepolia
[ ] How do we distribute rewards on Ethereum
[ ] ...

Acceptance Criteria
After this spike

[ ] We should have defined how Validators can use the nodeData object to calculate the Utility of Validator Nodes, Worker Nodes, and Oracle Nodes
[ ] We should have defined if the Utility of a node should be stored on the protocol ledger and should be updated each block - when work is recorded to the ledger
[ ] We should have defined the Utility calculation for each individual type of node Validator Nodes, Worker Nodes, and Oracle Nodes this is a spike that is outlined here: https://github.com/masa-finance/roadmap/issues/18
[ ] We should have defined the data model that is needed to store the required data for Validators to calculate the Utility of Validator Nodes, Worker Nodes, and Oracle Nodes as outlined here: https://github.com/masa-finance/roadmap/issues/26

scoping session with @jdutchak @mudler @H34D

Open questions for me that I'll look to have more clearly answered by the end of this spike:

How do Oracles increase their utility to the protocol? Some inclinations, push back if I'm off track.  @teslashibe @jdutchak

a. Oracles act as request gateways and decision engines. As such, requests are either made directly by a user running an oracle (through structured forms, and eventually more conversationally through an LLM), or through an API.  -> Initial metric: uptime.

b. Oracles keep track of the closest workers and their characteristics to optimize routing and even facilitates rewards to optimize it's cluster's worker profile (power, work designations, latency).

c. Oracles oversee work threads. Can this request be fulfilled by fetching data possessed by the protocol or do workers need to go collect the information? How many steps are needed to  complete the request? An initial layer of quality control before data is sent a validator and a tighter feedback loop for improving  decision-making agents if we choose to go that direction.

d. As the protocol grows perhaps Oracles send their request to n number of other Oracles in the network to perform the same work.  As such Validators can compare Oracles' and Workers' performance according to the same request. Again, a more precisely definable optimization pathway.

e. Compute requirements for Oracles will probably sit somewhere in between Validators and Workers thus providing stratification for accessibility and reward on the network.

@miquelcabot What has already been completed related to rewards based smart contracts and what still needs to be done? I'd like to chat about the structure of the contracts so we can figure out where best to store rewards based data and functions.

Few thoughts inline on the topic

Open questions for me that I'll look to have more clearly answered by the end of this spike:
1. Rewards are downstream of utility. How do Oracles increase their utility to the protocol? As I think about pathways to evolve, some inclinations. Push back if I'm off track.  @teslashibe @jdutchak

a. Oracles act as request gateways and decision engines. As such, requests are either made directly by a user running an oracle (through structured forms, and eventually more conversationally through an LLM), or through an API.  -> Initial metric: uptime.

Is the metric for the oracles or for the worker rewards?
I think that makes sense generally sense, however uptime does not guarantee the e.g. quality of the work. For instance, it's hard to tell whether an LLM ouput is garbage - or even worse - if the LLM model is big, it requires also more resources (expensive GPUs, more electrical power needed, and so on so forth) and as such rewards should be higher in order to be a fair network.
Then a metric here could be the "complexity" of a task - and we can compute that for the various services a worker might offer. E.g. an LLM service might have a complexity high if the GPU that was served is big enough to run a 70B model, and so on so forth. Similarly, for twitter we might have a "flat" complexity for most calls, or directly proportional at the "depth" (e.g. asking for 500 pages should give a higher reward then asking for 1 page, as some calls might be under a paywall)

b. Oracles keep track of the closest workers and their characteristics to optimize routing and even facilitates rewards to optimize it's cluster's worker profile (power, work designations, latency).

Right, and with that also it should take into account probably also "capabilities" and "capacity". That is what the worker can do (e.g. scrape, or just run LLMs), and how much it can handle (it's a big worker so can handle a lot of requests, but might be too much busy to take new jobs).

c. Oracles oversee work threads. Can this request be fulfilled by fetching data possessed by the protocol or do workers need to go collect the information? How many steps are needed to  complete the request? An initial layer of quality control before data is sent a validator and a tighter feedback loop for improving  decision-making agents if we choose to go that direction.

I think this falls into having a "complexity" metric. With that we should cover this piece too.

d. As the protocol grows perhaps Oracles send their request to n number of other Oracles in the network to perform the same work.  As such Validators can compare Oracles' and Workers' performance according to the same request. Again, a more precisely definable optimization pathway.

Good idea, my only concern here is - that if we have multiple results for the same task then we should technically reward all of these, even if the output isn't really "consumed". Maybe we can think at merging result along the way, but I'd keep these points off from a first implementation.

e. Compute requirements for Oracles will probably sit somewhere in between Validators and Workers thus providing stratification for accessibility and reward on the network.

I think instead of requirements we have to talk about capabilities. This allows anyone to join the network and use "as much" of the resource the network will actually need. An open point here is avoid starvation (how can we make sure that even a small resource is "at least a little bit" used by the network?)

@mudler Thanks for much for the prompt input.  It's great to have.

Is the metric for the oracles or for the worker rewards?

I think that makes generally sense, however uptime does not guarantee the e.g. quality of the work. For instance, it's hard to tell whether an LLM ouput is garbage - or even worse - if the LLM model is big, it requires also more resources (expensive GPUs, more electrical power needed, and so on so forth) and as such rewards should be higher in order to be a fair network with fair rewards.

Then a metric here could be the "complexity" of a task - and we can compute that for the various services a worker might offer. E.g. an LLM service might have a complexity high if the GPU that was served is big enough to run a 70B model. Similarly, for twitter we might have a "flat" complexity for most calls, or directly proportional at the "depth" (e.g. asking for 500 pages should give a higher reward then asking for 1 page, as some calls might be under a paywall)

Yeah, sorry, I was trying to convey an initial, simplistic metric that exists within the data model that we can start with.  If Oracles are the entrance to the network and hubs for workers uptime is critical for network accessibility. I was actually working on the idea of task difficulty that aligns with complexity.  Some of this we can reason out but I think much of it will be empirical as we see the amount of data tasks take and down the line the computation required for certain types of synthesis.

Right, and with that also it should take into account probably also "capabilities" and "capacity". That is what the worker can do (e.g. scrape, or just run LLMs), and how much it can handle (it's a big worker that runs a 120B LLM model, and can handle a lot of requests, but might be too much busy to take new jobs).

I very much agree. 👍  I was trying to convey that with: worker profile (power, work designations, latency). We're on the same page.

Good idea, my only concern here is - that if we have multiple results for the same task then we should technically reward all of these, even if the output isn't really "consumed". Maybe we can think at merging result along the way, but I'd keep these points off from a first implementation.

Initial tasks will be more deterministic so there may be actual redundancy while in a future state utilizing LLMs (probabilistic outcomes) there may be differences that become apparent.  Furthermore, it may not be the content that differentiates the Oracles clusters but efficiency in processing.  This allows us to compare Oracle clusters on the same work in order to compare profiles (number of associated workers, worker capabilities, etc.) and incentivize necessary growth.

I think instead of requirements we have to talk about capabilities. This allows anyone to join the network and be used by the network "as much" as possible, and what the network actually needs. An open point here is still on how to avoid starvation (how can we make sure that even a small resource is "at least a little bit" used by the network?)

In part this is why I think using Oracles as orchestrators can improve granularity of work being done.  Right now workers complete a full request.  In a future state I would like to see requests broken into greater granularity so lighter portions can be handled by those capable (simple data collection, certain types of checks) and heavier tasks can be distributed accordingly.   Oracles understanding the totality of work request and the resources most immediately available prevents tasks "wandering" through the network and allows users to carve out a niche depending on their capabilities.

@miquelcabot some thoughts I'd love your perspective on:
Users can have multiple rolls -> How do we handle staking?
I'd like to enforce a choice but perhaps there is a good reason to allow for roll overlap?
Problem -> Calculating utility through time.
We probably don't want to keep this data in a smart contract so this would be managed by a validator and perhaps this information would be added to contract when rewards are distributed for a snapshot of state at that time.
Problem -> Varying stake through time.
This information may need to be in a smart contract to enforce staking requirements.
Can we distribute rewards to all actors associated with work in the same contract to limit costs associated with execution? Essentially a smart contract associated with work streams?  This assumes rewards a distributed immediately instead of periodically.
Do validators distribute rewards or do they have the authority to update smart contracts with necessary information and then actors/nodes go and collect their rewards?

We should have defined how Validators can use the nodeData object to calculate the Utility of Validator Nodes, Worker Nodes, and Oracle Nodes. per Define Protocol Economic Model MVP

Validator Utility

The simplest version of Validator Utility is number consensus contributions. This requires a record of validation success for work given to the Validator to evaluate. It is a simply an integer that can be summed to get total contributions.

Worker Utility

Our simplest worker utility is a success metric tied to given tasks.  This may be confirmed by checking data structures and missing values.  I would suggest we also include a powerScore given this is fundamental to a worker's utility and will provide much more information about task difficulty or complexity (mentioned here) which will be essential for more complex scoring as we iterate on the model.
powerScore should be a fixed value, calculated on startup if a system has been updated.
dataQuality would be an average of data quality scores for work performed for the protocol.

Oracle Utility

As discussed above the Oracles are the gateways to the protocol and so initially relevant metrics are availability (uptime) and bytes processed.  An utility score can be a simple combination of the two with weighting.  A more complex but insightful calculation would normalize individual characteristics against all oracles on the network:

We should have defined if the Utility of a node should be stored on the protocol ledger and should be updated each block - when work is recorded to the ledger

Per the conversation with @miquelcabot I think it makes sense to capture the utility of a participant in work when that work is recorded to the ledger but the utility calculation (or the more computationally heavy portions of it) should probably be done on the network and then finished in the appropriate contract.

We should have defined the Utility calculation for each individual type of node Validator Nodes, Worker Nodes, and Oracle Nodes this is a spike that is outlined here: https://github.com/masa-finance/roadmap/issues/18

Summary

Validator - Number of blocks validated.
Worker - ($\alpha$ * powerScore) + ($\beta$ * dataQuality)
Oracle - ($\alpha$ * accumulatedUptime) + ($\beta$ * totalBytesProcessed)

We should have defined the data model that is needed to store the required data for Validators to calculate the Utility of Validator Nodes, Worker Nodes, and Oracle Nodes as outlined here: https://github.com/masa-finance/roadmap/issues/26

Summary

powerScore would sit under a node's characteristics:

"accumulatedUptimeStr": "36 minutes",
"ethAddress": "0x1304C49F3A858872Bd4eED08927614597Ffc2C2C",
"powerScore": .83
"isActive": true,
"isStaked": true,

Most of the fields needed can be added within work records:

"records": [
  {
    "cid": "bafkreidr3wv4rrvibhndr5m72w3wfsiuxtfzq66a6x37ljddbdpxuz6gou",
    "duration": 0.151820576,
    "timestamp":<PHONE_NUMBER>
    "oraclePeerID": "34LmN7UvWxY8Za6CdEfG9HiJ0KlMnOp2QrSt1VwXy5Bv9DeFg3H",  // ID of node that processed the request ->  For Oracle attribution
    "workerPeerID": "16Uiu2HAmFPEyymdTiC43MrnAaWt2kBUCcEgCmdgJ9fyWz9StDK3Z",  // ID of node that did the work ->  To trace performance by node
    "workType": "twitterScraper",  // Type of work performed -> Important for understanding the totality of work being done on the network
    "totalBytes": 39 // total bytes of the work thread -> used to calculate fee for work on the network -> benchmarks for work types and gauge of scraper efficiency & work complexity
    "threadStatus": {"success": false, "msg": "Failure for some reason or another"} // success or failure -> for worker Data quality ->  can add contextual error information if available
    "validationStatus": {"validated": true, "validatorPeerID": 12Abc3XyZ9KJr8LmNOp5QsT6Vw7EhFgHiJo1MnBpQ4RtYuVdWx3Z}
  }
]


chore(deps) bump kong-prometheus-plugin to 0.3

Changelog:
https://github.com/Kong/kong-plugin-prometheus/blob/next/CHANGELOG.md#030---20181015
From #3853

Left a few comments on the contents of the release (https://github.com/Kong/kong-plugin-prometheus/pull/24).

@thibaultcha
Just released 0.3.1
https://luarocks.org/modules/kong/kong-prometheus-plugin
cc @kikito


Inconsistent readme in polymer-2-element template

Description
The readme that gets generated by polymer init is inconsistent and seems to be outdated.
Steps to Reproduce
Do polymer init
Select the polymer-2-element template
Open readme.md and read the instructions for building
Do polymer build
Use file explorer to check the generated output.
Expected Results
As written in the readme there should be build/bundled and build/unbundled sub folders (but as it seems this is outdated information)
Actual Results
Instead of the expected folders there is a folder build/default.
Versions

Polymer: 0.18.0-pre.13
webcomponents: 1.0.0.-rc.5

This issue was moved to Polymer/polymer-cli#609


Is origin validation spec conform in its current form?

Hi,
currently, the origin validation in OriginValidatorImpl uses the exact request URL (http(s)://server:port) for the validation of the origin.
I thought according to the specs (WebAuthn level 2), the validation of the origin should happen based on the RP ID, thus also allowing subdomains (e.g. for the rpId example.com, test.example.com would be allowed). Therefore, the protocol should not be matched, neither the port.
Furthermore, only https should be permissible.
How might one change this behavior without reimplementation in their code base? Currently i just provide another ServerPropertiesProvider with the "correct" URL
Is it possible to use reverse proxying with the current approach without having to reimplement the default behavior in my project?
Thanks

It sounds you are mixing up rpId and origin.
rpId, which is a scope for the credential, can be relaxed to the registrable domain suffix. Port and scheme are not part of rpId.
To validate rpId, RpIdHashValidator is used, Not OriginValidatorImpl.
https://github.com/webauthn4j/webauthn4j/blob/master/webauthn4j-core/src/main/java/com/webauthn4j/validator/RpIdHashValidator.java
origin is used for phishing attack prevension. origin value is supplied from the browser while creating the WebAuthn attestation and assertion, and the RP need to check exact matching with the URL the RP is serving the contents.
If you really want to allow multiple origins, you may supply multiple origins to the ServerProperty constructor from your ServerPropertyProvider implementation.

Furthermore, only https should be permissible.

More precisely, WebAuthn API is allowed only to secure contexts, and secure contexts contains localhost with http.
https://www.w3.org/TR/webauthn/#sctn-api
Since secure context check is implemented in the browser, and the check is not required for the RP implementation by the FIDO conformance test, it is not implemented in WebAuthn4J.

Thanks, i got things mixed up!


Ionic: new configuration generator runs into several issues

Describe the bug
I've created a new empty angular repository but with nx standalone workspace and not nx mono repository
I try to configure a ionic-angular project with the last @nxext<EMAIL_ADDRESS>release today
nx g @nxext/ionic-angular:configuration
This is the output
✔ Which project would you like to configure? · ionic-nx-angular
UPDATE package.json
DELETE public/favicon.ico
DELETE public
CREATE ionic.config.json
CREATE main.ts
UPDATE src/app/app.component.html
UPDATE src/app/app.component.spec.ts
UPDATE src/app/app.component.ts
UPDATE src/app/app.routes.ts
CREATE src/app/explore-container/explore-container.component.html
CREATE src/app/explore-container/explore-container.component.scss
CREATE src/app/explore-container/explore-container.component.spec.ts
CREATE src/app/explore-container/explore-container.component.ts
CREATE src/app/tab1/tab1.page.html
CREATE src/app/tab1/tab1.page.scss
CREATE src/app/tab1/tab1.page.spec.ts
CREATE src/app/tab1/tab1.page.ts
CREATE src/app/tab2/tab2.page.html
CREATE src/app/tab2/tab2.page.scss
CREATE src/app/tab2/tab2.page.spec.ts
CREATE src/app/tab2/tab2.page.ts
CREATE src/app/tab3/tab3.page.html
CREATE src/app/tab3/tab3.page.scss
CREATE src/app/tab3/tab3.page.spec.ts
CREATE src/app/tab3/tab3.page.ts
CREATE src/app/tabs/tabs.page.html
CREATE src/app/tabs/tabs.page.scss
CREATE src/app/tabs/tabs.page.spec.ts
CREATE src/app/tabs/tabs.page.ts
CREATE src/app/tabs/tabs.routes.ts
UPDATE src/index.html
CREATE src/public/favicon.png
CREATE src/public/shapes.svg
UPDATE src/styles.scss
CREATE src/theme/variables.scss
UPDATE project.json
CREATE capacitor.config.ts
npm warn tarball tarball data for @capacitor/ios@file:ios (null) seems to be corrupted. Trying again.
npm warn tarball tarball data for @capacitor/android@file:android (null) seems to be corrupted. Trying again.
npm warn tarball tarball data for @capacitor/ios@file:ios (null) seems to be corrupted. Trying again.
npm warn tarball tarball data for @capacitor/android@file:android (null) seems to be corrupted. Trying again.
npm error code ENOENT
npm error syscall open
npm error path /Users/......../ionic-nx-angular/ios/package.json
npm error errno -2
npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/Users/......../ionic-nx-angular/ios/package.json'

Expected behavior
To me it looks like, the configurator is requiring a already existing ios and probably also a existing android project for capacitor app. But if you create a new project from scratch, this can not be already there

FYI:
I've tried to also to add @nxext/ionic-angular and @nxext/capacitor to an existing ionic project which Ive converted to a nx standalone workspace, but I run in exactly the same error
The error in this case is happening when I try to install @nxext/capacitor
npm install --save-dev @nxext/capacitor --legacy-peer-deps
npm warn tarball tarball data for @capacitor/ios@file:ios (null) seems to be corrupted. Trying again.
npm warn tarball tarball data for @capacitor/android@file:android (null) seems to be corrupted. Trying again.
npm warn tarball tarball data for @capacitor/ios@file:ios (null) seems to be corrupted. Trying again.
npm warn tarball tarball data for @capacitor/android@file:android (null) seems to be corrupted. Trying again.
npm error code ENOENT
npm error syscall open
npm error path /Users/xxxxx/app/ios/package.json
npm error errno -2
npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/Users/xxxxx/app/ios/package.json'
npm error enoent This is related to npm not being able to find a file.
npm error enoent
npm error A complete log of this run can be found in: /Users/xxxxx/.npm/_logs/2024-10-02T13_01_15_296Z-debug-0.log

@DominikPieper @

I've also discovered:
on running the configuration command
the @capacitor/android and @capacitor/ios deps which are in my case under dependencies, are added also under devDependencies like this
"@capacitor/android": "./node_modules/@capacitor/android",
"@capacitor/ios": "./node_modules/@capacitor/ios",

Even if I put them before running the command in devDependencies they are still changed in the same way, which could not be correct.
This is probably the reason for the tarball issue
Also there is the problem: the configurator ask me for which app to apply the configuration, and this is the outcome
 NX  Generating @nxext/ionic-angular:configuration

✔ Which project would you like to configure? · app
Could not format src/index.html. Error: "Unexpected closing tag "-root". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags (23:10)
  21 |
  22 | <body>
> 23 |   <-root></-root>
     |          ^^^^^^^^
  24 | </body>
  25 |
  26 | </html>"
Could not format src/index.html. Error: "Unexpected closing tag "-root". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags (23:10)
  21 |
  22 | <body>
> 23 |   <-root></-root>
     |          ^^^^^^^^
  24 | </body>
  25 |
  26 | </html>"

If you look, the index.html file then is broken the prefix app is missing

Hey, I'm looking into this.

Not sure if related, but it is also an issue with the generator fails to generate a empty app:
Angular: 18.2.7
NX: 19.8.3
nxext/ionic-angular: 19.1.0
nx generate @nxext/ionic-angular:application MedlemMobile --verbose
NX   Unable to resolve @nxext/ionic-angular:application.
Cannot find generator 'application' in<EMAIL_ADDRESS>Error: Unable to resolve @nxext/ionic-angular:application.
Cannot find generator 'application' in<EMAIL_ADDRESS>at getGeneratorInformation (/Users/xxxx/Kod/podseal/node_modules/nx/src/command-line/generate/generator-utils.js:40:15)
at /Users/xxxx/Kod/podseal/node_modules/nx/src/command-line/generate/generate.js:215:248
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async handleErrors (/Users/xxxx/Kod/podseal/node_modules/nx/src/utils/handle-errors.js:9:24)
at async Object.handler (/Users/xxxx/Kod/podseal/node_modules/nx/src/command-line/generate/command-object.js:14:22)

@Hanifb  This IMO is happening because from version 19.1.0 they have removed the app generator, so now you should create your workspace with your app, for example create a plain angular app in a new nx workspace.
Then just run the new configurator like this
nx g @nxext/ionic-angular:configuration
It will ask you on which project you would like to add it, select yours and it should be fine

@DominikPieper sorry to stress you, do you think we can expect to have a new release today?
If not
@edbzn what is the best way to test the new @nxext/ionic-angular before public release, does it work using it directly from github?

@edbzn release ci action failed

Hey, sorry I wasn’t able to do a release. Yesterday and today are few days here and I’m not at home 😅 so no Mac to do one

No hurry @DominikPieper, however before releasing we should merge #1107

@edbzn I would like to ask you here in this issue a few question about the ionic-angular executer, if this is okay for you. I think I've also found a few problems with the new configurator.
Should the @nxext/ionic-angular executer not be a wrapper to @ionic/cli like nx is for @angular/cli? If I run nx serve it's executed directly the ng compiler instead of running ionic with the usual params like custom port and localhost set
The @nxext/ionic-angular is now a configurator, so it really just configures the project like its needed for ionic, so it will not use the ionic cli later on?
We can not run any ionic commands in the workspace as the angular.json is not available, so my toughts are: Is this not a limitation, what if we need a custom ionic cli functionality?

Should the @nxext/ionic-angular executer not be a wrapper to @ionic/cli like nx is for @angular/cli? If I run nx serve it's executed directly the ng compiler instead of running ionic with the usual params like custom port and localhost set

Yeah, today there's no support for the @ionic/cli in the Nx plugins. However, the next step I wanted to experiment is "crystalizing" the Capacitor CLI using the Plugin API. So instead of generating new targets inside the project.json, it would detect the presence of a Capacitor config, dynamically add the targets for Capacitor, and call the CLI underneath.
I think it's better & easier to start with Capacitor as there are fewer commands, but we could also provide a plugin for the @ionic/cli later on.

We can not run any ionic commands in the workspace as the angular.json is not available, so my toughts are: Is this not a limitation, what if we need a custom ionic cli functionality?

Which command are you missing from your experience? Not all Ionic commands are useful in an Nx workspace, for instance, ionic serve just wraps the ng CLI, so it's better to use the Nx executor for serving your Angular app.


Using SafeConstructor with YAML parsing.

Signed-off-by: Tomas Langer<EMAIL_ADDRESS>Even though the safe constructor was used implicitly (when map was used as a type), we were getting some false static analysis failures.
This makes the use explicit.

Associated with CVE-2022-21404:
https://www.websec.ca/publication/Blog/CVE-2022-21404-Another-story-of-developers-fixing-vulnerabilities-unknowingly-because-of-CodeQL


不能录afreecatv，大佬能帮我看下什么原因吗

我开了全局，填了账号密码

看起來是你的網絡問題，可以換個節點試試
It seems like the problem was cause by your internet, you can try to change your IP then try again


How to fine tune existing openvino_notebooks model with custom dataset ? for Automatic Self-checkout

Describe the bug
How to fine tune existing open-vino_notebooks model with custom dataset ?
Expected behavior
Any Step or procedure or video recommended to follow it.
Screenshots
If applicable, add screenshots to help explain your problem.

Installation instructions (Please mark the checkbox)
[Yes ] I followed the installation guide at https://github.com/openvinotoolkit/openvino_notebooks#-installation-guide to install the notebooks.
** Environment information **
Please run python check_install.py in the openvino_notebooks directory. If the output is NOT OK for any of the checks, please follow the instructions to fix that. If that does not work, or if you still encounter the issue, please paste the output of check_install.py here.
Additional context
Add any other context about the problem here.

@riacheruvu please look at it

Hi @Abhijeet241093, this is a great question, thanks! We have a end-to-end tutorial showing how to train a YOLOv8 model with a custom dataset and then export it to the OpenVINO IR format for memory-efficiency here: https://openvinotoolkit.github.io/datumaro/latest/docs/jupyter_notebook_examples/notebooks/08_e2e_example_yolo_ultralytics_trainer.html#Prerequisite. This example uses Ultralytics YOLOv8 trainer approach - you could train a model on your own custom dataset and then use it as part of the automated self-checkout kit notebook. I hope this helps!

Hi @riacheruvu, thank you very much. Today, our team will go through it, and if any problems occur, we'll inform you.

Hi @riacheruvu, thank you for your attention.  Did you check weather  datumaro  work with yolo format ?
Code :
from datumaro import Dataset
dataset = Dataset.import_from("./d6-dice", format="yolo")
Error : DatasetNotFoundError: Failed to find dataset 'yolo' at './d6-dice'
Details : Dataset is already placed in d6-dice folder.
Discussion : If you're trying to import a dataset of labeled images in YOLO format, Datumaro might not support YOLO format directly. Datumaro typically supports formats such as COCO, VOC, and Datumaro format itself.

Hi @riacheruvu,    thank you very much for your attention. Please find error below
Describe the bug
While custom training using command :
yolo detect train model=yolov8n.pt data=/home/tricubics/Desktop/Automatic_Self_Checkout/automated_self_checkout/self_checkout_ultralytics/data.yaml epochs=100 imgsz=640 project=self_checkout_project device='0,1'
Getting Message
Transferred 319/355 items from pretrained weights
DDP: debug command /usr/bin/python3 -m torch.distributed.run --nproc_per_node 2 --master_port 48483 /home/tricubics/.config/Ultralytics/DDP/_temp_99pl7w9c139968793272672.py
WARNING:main:

Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.

Ultralytics YOLOv8.1.23 🚀 Python-3.8.10 torch-2.2.1+cu121 CUDA:0 (NVIDIA GeForce RTX 3080, 10001MiB)
CUDA:1 (NVIDIA GeForce RTX 3080, 10009MiB)
[W Utils.hpp:164] Warning: Environment variable NCCL_BLOCKING_WAIT is deprecated; use TORCH_NCCL_BLOCKING_WAIT instead (function getCvarBool)
[W Utils.hpp:164] Warning: Environment variable NCCL_BLOCKING_WAIT is deprecated; use TORCH_NCCL_BLOCKING_WAIT instead (function getCvarBool)
TensorBoard: Start with 'tensorboard --logdir self_checkout_project/train12', view at http://localhost:6006/
Overriding model.yaml nc=80 with nc=6
Transferred 319/355 items from pretrained weights
Freezing layer 'model.22.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
Unable to open : http://localhost:6006/
Expected behavior
Program Must run
Screenshots
If applicable, add screenshots to help explain your problem.

Hi @Abhijeet241093, answered your question here: #1786; briefly, this is not an issue corresponding to the OpenVINO toolkit or notebooks and I see you have raised the issue on the Ultralytics Github repo, which is the right place.
I will ask @adrianboguszewski to close this thread, but please feel free to create a new discussion thread if you need further support, or an issue if you find a bug with the export process to OpenVINO. Thank you!


remove USE_MPI and USE_OPENMP defines

resolves #7  #165

you can't use blt_add_target_definitions on MPI because it is not a true CMake target (its one of our fake register targets).  Though we probably should augment our macros to support our various add macros.

I believe it is possible to specify target definitions in place when calling blt_add_library and blt_add_executable .
For example:
blt_add_library( foo
                           DEPENDS_ON mpi
                           DEFINES USE_MPI  )

George, Yes it is but not blt_add_target_definitions or blt_add_target_compile_flags and the like

I understand that you cannot use blt_add_target_definitions etc. on the pseudo-targets that BLT creates like mpi, but you can do the following:
blt_add_library( foo DEPENDS_ON mpi )
blt_add_target_definitions( TO foo TARGET_DEFINITIONS USE_MPI )

Right?

That should be equivalent with defining it in-place as mentioned earlier.

yes

Thanks for clarifying!

@gzagaris -- yes, you can add a define to an individual target, but you have to remember to do that to every single MPI-dependent target.  I was hoping that we could attach it to the pseudo-targets so it could automatically be attached to all targets that depend on mpi.
As @white238 mentioned, this is a behavior that we could add to blt_add_target_definitions

Is this PR going to be merged? I have a PR in geos that is hanging around waiting for this one and I would like to get it merged.

@rrsettgast yes, sorry it feel off my radar. I'll work on getting it merged


Implement CRUD interface for tax units on Min side

Har been broken down into #478 , #479, #480, #481, #482, #483, #484 and possible some other smaller ones.


[STM32L4xx] CAN development for STM32L4xx family

This pull request adds support for CAN bus for STM32L4xx family, specifically:

DISCO_L476VG
NUCLEO_L476RG

Please merge #1762 first, then I will rebase.

LGTM.
MBED_A27 tested ok on NUCLEO_L476VG with 4 toolchains.
Other platforms' Peripheral_Pins.c was reviewed.
Note that CAN on DISCO_L476VG cannot be tested (CAN pins are soldered to USB, to GYRO and others)
A communication with CAN_RX + CAN_TX between 2 boards was performed with NUCLEO_L476RG.
This PR is ok for me (except for the removal of DISCO_L476VG from the tests that cannot be performed on it).

Hi @adustm,
thanks for the review. Let's wait for @0xc0170 to merger F7xx family and then I will update this PR.

This PR creates an entry in device.h but all the entries are just moved to targets.json - maybe something to correct?

@ohagendorf,
yes and no. This PR was created before targets.json feature (which is really nice though). We are aiming to complete the CAN functionality on whole STM32 chips and after that it's worthwhile to change the code in a separate pull request.
@0xc0170,
I still suggest to merge this PR.

@BartSX Ok, merging this, and please send a patch for device.h correction, thanks

@0xc0170,
Ok, will do that today for the whole STM CAN implementation.

Defines moved to targets.json in #1874


Handle InvocationTargetException and UndeclaredThrowableException in KSE

In Kyuubi, we use KSE to wark with TStatus.
This PR adds a function to extract the root cause from InvocationTargetException and UndeclaredThrowableException, this mostly happens when spark talks to Hive Metastore where has a lot of innovation by  java reflection calls

cc @ulysses-you

cc @ulysses-you


[SPARK-10194] [MLlib] [PySpark] SGD algorithms need convergenceTol parameter in Python

SPARK-3382 added a convergenceTol parameter for GradientDescent-based methods in Scala. We need that parameter in Python; otherwise, Python users will not be able to adjust that behavior (or even reproduce behavior from previous releases since the default changed).

Merged build triggered.

Merged build started.

Test build #41619 has started for   PR 8457 at commit 92d6d8c.

Test build #41619 has finished for   PR 8457 at commit 92d6d8c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/41619/
Test PASSed.

Merged build finished. Test PASSed.

LGTM overall
The formal parameter changes to PythonMLLibAPI will break binary compatibility, but this may not be a big issue since the class is private. Perhaps others will have better insight.

I open SPARK-10560 to track the StreamingLogisticRegressionWithSGD issues included what @feynmanliang mentioned in this PR.
Let's this PR focus on the topic. @mengxr

Merged build triggered.

Merged build started.

Test build #42317 has started for   PR 8457 at commit c2f3112.

Test build #42317 has finished for   PR 8457 at commit c2f3112.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/42317/
Test PASSed.

LGTM. Merged into master. Thanks!


feedreader: remove

Description of changes
FeedReader is no longer activily maintained since 2019. The developer is working on a spiritual successor called NewsFlash.
https://web.archive.org/web/20220402032320/https://github.com/jangernert/FeedReader
Closes https://github.com/NixOS/nixpkgs/issues/132371
cc maintainer @edwtjo (you are now free to maintain other packages ;))
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 171384 run on x86_64-linux 1


Can I set ignore region(do not return gradient) during training model?

I get a dataset which have many object, but some object is too small to label. So people labels this region as ignore area.
I want to train a model which not  calculate loss  for the object in ignore region. What should I do ? Thank you very much!

Ignored bboxes are already supported, like in COCO/VOC datasets.

Hi, would you mind telling me how to handle the ignore region? Some people just mask the region with a black box, which I think may change some information of the original image.

Ignored bboxes are already supported,

Does this mean mmdetection can ignore the  loss for the objects in ignore region? Which file should I change?
Thx!


Image Rotate/Flip Automatically

I have copied your classes into my project. Some images are rotating/flipping automatically when I open them in DTPhotoViewer. Can you please help me to fix this issue?
@tungvoduc

@24Lathiya can you describe the problem in more details? Or a screen recording would be nice.

@tungvoduc   Please have a look at the attachment. Rotation problems happen with capture images and live images.
https://user-images.githubusercontent.com/38321635/210494961-618cd3fe-624c-4d43-bb77-a104c57a7040.mp4
I have used the below extension but it won't work with capture and live images.
`func fixedOrientation() -> UIImage {
        if imageOrientation == .up {
            return self
        }

        var transform: CGAffineTransform = CGAffineTransform.identity

        switch imageOrientation {
        case .down, .downMirrored:
            transform = transform.translatedBy(x: size.width, y: size.height)
            transform = transform.rotated(by: CGFloat.pi)
        case .left, .leftMirrored:
            transform = transform.translatedBy(x: size.width, y: 0)
            transform = transform.rotated(by: CGFloat.pi / 2)
        case .right, .rightMirrored:
            transform = transform.translatedBy(x: 0, y: size.height)
            transform = transform.rotated(by: CGFloat.pi / -2)
        case .up, .upMirrored:
            break
        }

        switch imageOrientation {
        case .upMirrored, .downMirrored:
            transform = transform.translatedBy(x: size.width, y: 0)
            transform = transform.scaledBy(x: -1, y: 1)
        case .leftMirrored, .rightMirrored:
            transform = transform.translatedBy(x: size.height, y: 0)
            transform = transform.scaledBy(x: -1, y: 1)
        case .up, .down, .left, .right:
            break
        }

        if let cgImage = self.cgImage, let colorSpace = cgImage.colorSpace,
            let ctx: CGContext = CGContext(data: nil, width: Int(size.width), height: Int(size.height), bitsPerComponent: cgImage.bitsPerComponent, bytesPerRow: 0, space: colorSpace, bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue) {
            ctx.concatenate(transform)

            switch imageOrientation {
            case .left, .leftMirrored, .right, .rightMirrored:
                ctx.draw(cgImage, in: CGRect(x: 0, y: 0, width: size.height, height: size.width))
            default:
                ctx.draw(cgImage, in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
            }
            if let ctxImage: CGImage = ctx.makeImage() {
                return UIImage(cgImage: ctxImage)
            } else {
                return self
            }
        } else {
            return self
        }
    }`


How to handle ambiguous unit abbreviations

There are several units with ambiguous unit abbreviations, and there is currently no good way to handle this. This issues is created as a place to discuss solutions.
Example: #131
Metric cup, US legal cup and customary cups might be natural to assign "cup" or "metric cup" as abbreviations, but "cup" is ambiguous and "metric cup" is currently not supported due to whitespace.

Is the use case for .Parse(string input) to be able to take natural language input and turn it into a quantifiable unit?
If so then users are most likely to just type "1 cup" - rather than "1 metric cup" or "1 legal cup". Which exact cup they mean is driven by context that only the application can know - ie: An Australian would expect "1 cup" to imply "1 metric cup" and may not even be aware of other definitions of cups (I wasn't until today :)). An American nutritionist would perhaps expect "1 cup"  to be interpreted as "1 legal cup".
That is to say I don't think the problem is solvable from a parsing perspective. Support for whitespaces could help but I don't think users would know/like needing to type "1 metric cup".
Idea: Optionally allow the application to supply configurable mappings to the Parse method.
eg: "cup" => VolumeUnit.MetricCup.
These would override / supplement the built in abbreviations.
re: ToString(): In the absence of an abreviation it could fall back to using the enum unit for in these cases? ie: $"{Quantity} {EnumUnit.ToString()";
Useful for debug/watch windows and logs but not so much for UI output for an end user. Again in that case I think the application could just 'know the context' and emit the appropriate text instead.

Agree, there is probably no way for Parse() to handle ambiguous units. I don't even know how the current implementation handles this, but I imagine it chooses an arbitrary one (the one defined last in json, or possibly the last in lexical ordering?)

I propose Parse() throws an exception if there are ambiguous units defined, it's better than getting a calculation error due to two very similar units. I can imagine most programmers are not aware of this problem in most cases, such as the cups already mentioned and metric ton vs long and short tons.

I propose units who naturally wants to share the same abbreviation should do so. In the cups example, this means ToString() will output "1 cup" for all of them, but Volume.Parse("1 cup") will throw an exception due to the ambiguity.

I don't think we should fall back to EnumUnit.ToString() if no abbreviations are defined. I'd rather keep it simple and require it to be defined in JSON, and simply use no abbreviation if none is defined.
Or else we will get trouble with units like RatioUnit.DecimalFraction, it has no unit abbreviation and none should be output either.

Good points - agree on all

If you think that is all that needs covering, happy to do a PR that
Adds cup abbreviations to Metric/Us/Customary cup in JSON
Ensure Parse throws an exception
Should the exception be a new AmbiguousTypeException say?

Awesome.
I'd suggest adding a UnitsNet specific exception, such as UnitsNet.AmbiguousUnitParseException, which tells me it's due to an ambiguous unit in when parsing. This allows us to handle this specific case if need be.
As for when to throw, iirc you'll have to dig into the UnitSystem class and look into the dictionaries it uses to organize unit enums and abbreviation strings for lookup.
It's important that it throws when what you are specifying is ambiguous, such as Volume.Parse("1 cup"), but it should not throw on Volume.Parse("1 L"), since it is not ambiguous even if it is the same unit class. I would want unit tests to confirm at least these two cases.

And, I believe there is a UnitsNetException already, derive from that so there is a way to catch all UnitsNet related exceptions by its base exception type.

:thumbsup:

I had a stab at this but it is trickier than I thought.
The UnitSystem.MapUnitToAbbreviation precaches all the mappings before a parse is attempted.This method is where the duplicate abbreviation must be detected but it cannot throw here as that unit may never be parsed.
So what I did was instead of ignoring a duplicate, flag that abbrievation as bad by poisoning the dictionary with a -1.
Works ok at first glance - I can throw an exception where expected - except it has a side effect of a strange unit test bug where Parse_ReturnsUnitMappedByCustomAbbreviationOrUndefined sometimes fails:

It won't fail when test run individually.
It will fail if run in a suite of tests from that assembly

Experimental code here @ https://github.com/neutmute/UnitsNet/commit/8b2a12c3fa211126925e0b3dc227b8d46e301de5 - it isn't production quality and I would rebase to use a constant for the -1 flag  / proper exception / properly change the template rather than generated coed.
Any thoughts on the strategy/unit test failure? The latter smells like a caching issue in the test but I don't get why it would poison the area unit. Setting a breakpoint on my poisoning line confirms it is only triggered on 'cups'.

cool - thanks for guidance on https://github.com/neutmute/UnitsNet/commit/8b2a12c3fa211126925e0b3dc227b8d46e301de5.
Wasn't sure on etiquette of PR'ing experimental code but will do that next time

PR #140 now merged and that concludes this issue.


Error message when opening project in IDE

Please use the Bug report template with all necessary fields filled.


Text wrapping

Feature request: Make it easier to control text wrapping in Rows.

From the email thread, he's looking to create a horizontal layout with an icon on the left and a text on the right where the size of the widget expands as the amount of text increases until it hits its width constraints and at that point the text starts wrapping.

Current proposal is to add an enum to Flexible about whether the child should be given tight or loose constraints.  Current behavior today is tight constraints, but loose constraints would satisfy @cooler-king 's use case.

I was playing around with nested Flex widgets and hit this situation, which I think is probably the same as what @cooler-king described. In the following example code, the description text overflows off the right side of the screen instead of wrapping.
import 'package:flutter/material.dart';

void main() {
  runApp(
    new MaterialApp(
      title: 'Nested flex and text wrapping',
      home: new FlutterDemo()
    )
  );
}

class FlutterDemo extends StatelessWidget {

  String recipeName = "Chocolate chip cookies";
  String recipeShortDescription = "They are delicious!";
  String recipeDescription = "A perennial favorite of children everywhere, "
    "the taste of a good chocolate chip cookie can't be overstated. Whereas "
    "the chip can provide a range of consistency from gooey to crumbly, the "
    "dough gives that satisfying crunchy-on-the-outside, chewy-on-the-inside "
    "texture.";

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Flutter Demo')
      ),
      body: new Row(
        children: <Widget>[
          new Icon(
            icon: Icons.add
          ),
          new Column(
            children: <Widget>[
              new Text(recipeName),
              new Text(recipeDescription)
            ],
            crossAxisAlignment: CrossAxisAlignment.start
          ),
        ],
        crossAxisAlignment: CrossAxisAlignment.start
      )
    );
  }
}

Interestingly if I take the Column out (leaving just the Row) the text wraps properly.

I was able to solve my problem by wrapping the Column here in a Flexible. @cooler-king, I wonder if wrapping the direct child of your Row with a Flexible would help in your original case? I don't recall from the mailing list whether you eventually found a solution that worked for you.

As I understand it, Adam's proposed fix landed which addresses this bug. Closing.
@cooler-king, @krisgiesing, @abarth: please reopen if I'm wrong about this being resolved.

@Hixie This still happens in the latest master ((Channel master, v0.2.3-pre.41, on Mac OS X 10.13.3 17D102, locale en-US)).
import 'package:flutter/material.dart';

void main() {
  runApp(
    new MaterialApp(
      title: 'Nested flex and text wrapping',
      home: new FlutterDemo()
    )
  );
}

class FlutterDemo extends StatelessWidget {

  String recipeName = "Chocolate chip cookies";
  String recipeShortDescription = "They are delicious!";
  String recipeDescription = "A perennial favorite of children everywhere, "
    "the taste of a good chocolate chip cookie can't be overstated. Whereas "
    "the chip can provide a range of consistency from gooey to crumbly, the "
    "dough gives that satisfying crunchy-on-the-outside, chewy-on-the-inside "
    "texture.";

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Flutter Demo')
      ),
      body: new Row(
        children: <Widget>[
          new Icon(Icons.add),
          new Column(
            children: <Widget>[
              new Text(recipeName),
              new Text(recipeDescription)
            ],
            crossAxisAlignment: CrossAxisAlignment.start
          ),
        ],
        crossAxisAlignment: CrossAxisAlignment.start
      )
    );
  }
}

The Row is giving its children unlimited horizontal space to work with.  Try wrapping the Row's second child in an Expanded widget.  That will cause that child to fill the remaining space instead of being given unlimited space to work with.

gotcha, thanks!

When I add expanded in the same context the text ceases to display and it continues to overflow
child: Row(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          UserAvatar(),
          Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text("@username",
            style: TextStyle(
              fontSize: 24.0,
              fontWeight: FontWeight.w500
            )
          ),
          Expanded(
            child: Text("I love tokenized assets, this is probably too long!",
              style: TextStyle(fontSize: 18.0)
            )
          )
        ],
      )
        ],
      )

If Expanded is a child of Padding it breaks.

See also the API docs for Row and Column which explain a lot of this.


Okta: taking over from SimpleReport

SimpleReport has started to transition to their own forms, email templates, etc for inviting users/resetting passwords/so on.
We'll be able to take over the default email templates, login pages, and that sort of thing from them.
Currently those communications are branded with SimpleReport imgs/language
Transition that content to ReportStream

@drew-usds is it ok if I close this epic and move it's 1 ticket to this Epic?
https://app.zenhub.com/workspaces/experience-607d9d5e68b95200150fec37/issues/cdcgov/prime-reportstream/2809

Am closing this epic and moving it's 1 ticket to this Epic to consolidate?


Add support for Bipolar and Binary FINN datatype for Quant op.

Hi,
this PR adds support for 1 bit ops, as they are used by as example the TFC W1A1 network, here: TFC_1W1A.zip
However, an issue remains with this:
Since the binary and bipolar representation are currently not properly implemented in the quant node, the inference_cost function will discount all weights as being sparse, though they are not. Thus on has to pass discount_sparsity=False to get the correct number of bitops.
Previously, when running inference_cost on this network the calculation would fail with the following Exception for the TFC W1A1 network:
--------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/transformation/infer_datatypes.py in _infer_node_datatype(model, node)
     54             inst = registry.getCustomOp(node)
---> 55             inst.infer_node_datatype(model)
     56         except KeyError:

~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/custom_op/general/quant.py in infer_node_datatype(self, model)
    181         try:
--> 182             (scale, zeropt, bitwidth, finn_dt) = self.get_quant_config(model)
    183         except AssertionError:

~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/custom_op/general/quant.py in get_quant_config(self, model)
    168             if signed:
--> 169                 finn_dt = DataType["INT" + str(bitwidth)]
    170             else:

/usr/lib/python3.8/enum.py in __getitem__(cls, name)
    386     def __getitem__(cls, name):
--> 387         return cls._member_map_[name]
    388

KeyError: 'INT1'

During handling of the above exception, another exception occurred:

Exception                                 Traceback (most recent call last)
<ipython-input-3-cc115ea19bc6> in <module>
----> 1 inference_cost(network_to_test, discount_sparsity=False)

~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/util/inference_cost.py in inference_cost(model_filename, output_json, preprocess, save_final, discount_sparsity)
     94         model = model.transform(InferShapes())
     95         model = model.transform(GiveUniqueParameterTensors())
---> 96         model = model.transform(InferDataTypes())
     97         model = model.transform(FoldConstants())
     98         model = model.transform(RemoveUnusedTensors())

~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/core/modelwrapper.py in transform(self, transformation, make_deepcopy, cleanup, fix_float64)
    137         model_was_changed = True
    138         while model_was_changed:
--> 139             (transformed_model, model_was_changed) = transformation.apply(
    140                 transformed_model
    141             )

~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/transformation/infer_datatypes.py in apply(self, model)
    102         graph_modified = False
    103         for node in graph.node:
--> 104             graph_modified |= _infer_node_datatype(model, node)
    105         return (model, graph_modified)

~/Dropbox/a_local/Work/Xilinx/coding/PyCharm/finn-base/src/finn/transformation/infer_datatypes.py in _infer_node_datatype(model, node)
     56         except KeyError:
     57             # exception if op_type is not supported
---> 58             raise Exception("Custom op_type %s is currently not supported." % op_type)
     59     else:
     60         if node.op_type == "Sign":

Exception: Custom op_type Quant is currently not supported.

This commit should probably also be merged into the itu_competition branch, which is probably more important than the one it currently points at. In that branch the same issue exists.


Support<EMAIL_ADDRESS>and http@1?

related: https://github.com/TrueLayer/reqwest-middleware/pull/133
related: https://github.com/TrueLayer/reqwest-middleware/pull/127

Isn't this now good to close? Or are we waiting for a release bump?

Isn't this now good to close? Or are we waiting for a release bump?

This is good to close. The release will likely come next week. The reason for the delay is that I'm considering including https://github.com/TrueLayer/reqwest-middleware/pull/114 and https://github.com/TrueLayer/reqwest-middleware/pull/134 in the same breaking release.


Phase Status gets set to null for never ending phases.

If a phase has no end date, and at least one submission is on the leaderboard. The status of the phase is then set to null instead of "current".

Looks like this has been fixed in PR #501. I added this issue to said PR's description.


Initial design

GUI for the dashboard, right @alexmbraga ?

@alexmbraga , is this issue actually in progress?
If yes, It must contain a description!


chore: fresh install

Due to @remix-run/eslint-config having an older version of @typescript-eslint/* in its dependencies, the type import was removed automatically
In order to make sure this is fixed with other people that have an outdated lockfile, I created https://github.com/remix-run/remix/pull/5948

@chaance Conflicts are resolved now


MGMT-18973: Add patch and update permissions for configmap and rename service account

The write permissions for the configmaps were missed when adding the backup label and is causing errors
labeling in the logs like:
time="2024-09-19T12:39:01Z" level=error msg="failed to label ConfigMap target-0/target-0-extras-cm0 for backup" func="github.com/openshift/image-based-install-operator/controllers.(*ImageClusterInstallReconciler).labelReferencedObjectsForBackup" file="/remote-source/app/controllers/imageclusterinstall_controller.go:677" error="configmaps \"target-0-extras-cm0\" is forbidden: User \"system:serviceaccount:multicluster-engine:controller-manager\" cannot patch resource \"configmaps\" in API group \"\" in the namespace \"target-0\"" name=target-0 namespace=target-0

Additionally controller-manager is too generic a name to be used when IBIO could be deployed into a namespace (multicluster-engine) with several other operators.

/lgtm


Debian doesn't boot properly or console input doesn't work

When trying to boot a Debian 10.8 installation, boot process got stuck (picture below).
MacBook Pro 2020, M1
Debian 10.8
Linux-Kernel 4
vmcli --kernel=linux --initrd=initrd --cpu-count=4 --memory-size=3072 --disk=disk.img --cmdline='console=tty0 console=hvc0 root=/dev/mapper/vm--vg-root ro apparmor=0' --network=nat

One thing I can think of is that Getty is started on tty1 instead of hvc0. If Getty is not started on the correct tty, you won't get login prompt.

How could I change this?

I dont't know which one fixed it, but I did:

added virtio_consoleto /etc/initramfs-tools/modules (update-initramfs -u)
systemctl enable serial-getty@hvc0


/best path returns inaccurate/NaN results

Thanks. There is currently a pull request in progress fixing this:
https://github.com/clintonwoo/hackernews-react-graphql/pull/9


feat(cli): allows webpack alias configuration via angular-cli.json

Allows webpack alias configuration, this feature allows relative paths to be resolved more elegantly.
angular-cli.json example:
"apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": "assets",
      "index": "index.html",
      "main": "main.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "app",
      "mobile": false,
      "styles": [
        "styles.css"
      ],
      "scripts": [],
      "environments": {
        "source": "environments/environment.ts",
        "prod": "environments/environment.prod.ts",
        "dev": "environments/environment.dev.ts"
      },
      "alias": {    <------------- New property
        "app": "app" <--------- Relative to "root" property
      }
    }

After that it's possible to import using:
import {Component} from 'app/path/to/component';
instead of
import {Component} from '../../../path/to/component';

What's going on here?  Please use the tsconfig.json path mapping to do this. This PR would break tooling and not work properly anyway

Sorry my bad,
I've tryed to do that on tsconfig but webpack can't resolve the paths, is
there an example anywhere?
cheers
On Mon, Sep 12, 2016 at 2:35 PM, Hans<EMAIL_ADDRESS>wrote:

Closed #2064 https://github.com/angular/angular-cli/pull/2064.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular-cli/pull/2064#event-785456109, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AUVluu1JPUcl6GfHrWd2Iab6uDvsTWjgks5qpNadgaJpZM4J6OkX
.

"paths": {
  "app/*": [ "./app/*" ]
}

should work.

Put that in your compilerOptions

thanks for you quick response,
That's what I've had previously, but when I run ng serve I get:
ERROR in ./src/app/app.module.ts
Module not found: Error: Can't resolve 'app/tools/guards' in '/src/app'
@ ./src/app/app.module.ts 16:0-46
@ ./src/main.ts
@ multi main
my tsconfig.json is:
{
  "compilerOptions": {
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es2015", "dom"],
    "mapRoot": "./",
    "module": "es2015",
    "moduleResolution": "node",
    "outDir": "../dist",
    "baseUrl": ".",

    "paths": {
  "app/*": [ "./app/*" ]
},
    "sourceMap": true,
    "target": "es5",
    "genDir": "./ngfactory",
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types": [
      "jasmine",
      "hammerjs",
      "jquery",
      "moment"
    ]
  }
}

Sorry but it doesn't work,
once i run ng serve  I get cannot find module 'app/tools/guards'.
On Mon, Sep 12, 2016 at 2:39 PM, Hans<EMAIL_ADDRESS>wrote:

Put that in your compilerOptions
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/angular/angular-cli/pull/2064#issuecomment-246243906,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUVluo8Z5xDEv0w2WSTjUSTHGo7KXC46ks5qpNdmgaJpZM4J6OkX
.

its doesnt work for me either. i am getting error same as @phmello

I'm also trying to add alias to webpack configuration but I think I'm missing something.
There is any way to configure an alias?
I'm using version beta.20-4.


Feature Request: SMTP Account Grouping and Hourly/Daily Rate Restrictions

In today's dynamic email marketing landscape, one widespread strategy involves the utilization of numerous Google Workspace email accounts, each typically sending around 50 emails daily.
Given the limited number of emails sent from each account, there is a necessity to consolidate these accounts into groups. This would enable a more substantial daily email output. Hence, the request for the ability to group these SMTP accounts and implement hourly/daily rate limits is of utmost importance.

Appreciate the feature request, we'll add it to the backlog! We are currently focusing on functionality to bring internal marketing up to the level of the main players in the space. This functionally seems like it's focused on external marketing or campaigns to folks who aren't a companies user base. I can definitely see us expanding into that area in the future, but it'll probably be a bit.


TileSet Theme Menu Hard to See

Operating system or device - Godot version:
Ubuntu, Godot 2.1.1
Issue description (what happened, and what was expected):
When editing a tileset the "Theme" menu isn't obvious. I'm coming back to Godot from a break and I wasn't sure where it was supposed to show up, but then I saw it. Because it doesn't move the panels out of the way it's not obvious at first where it is. For a new user it could be frustrating.
Maybe also making it more obvious that the Theme menu is for editing a tileset. Like perhaps renaming it from just "Theme" to "Tileset" theme.
Steps to reproduce:
Edit a Tileset
Link to minimal example project (optional but very welcome):

NOTE: Incompatibilities are broken features in the current master branch / 3.0-alpha
are expected, so no need to report them for now. Thanks!

I didn't know there was such a thing. Good to know^^
Tilesets aren't usually edited this way (it's done with scenes now), but the location of this button ans its name look messy.

Where is that menu?

At the bottom of the main viewport when you edit a TileSet resource:

It lets you add or remove tiles from the list.

@Zylann :no_mouth:
Oooh, after selecting the tileset resource, I guess that is to create a new tileset in the tilemap. and allows create and merge, looks handy but makes no sense to be hidden in plain sight there.
Maybe making it part of the lower panel or top tilemap buttons, since tileset won't have much use outside the tilemap (the editor one at least).

This is how it looks in 3.0

How do we add and removes tiles now? (excluding the scene converter)

I fixed this bug while working on autotiles, completely forgot about 2.1 branch

Closing, as this was 2.1-specific and I doubt it will be fixed there now.


Fix gen debug for enums

Closes https://github.com/rust-analyzer/rust-analyzer/issues/9914. Thanks!
r? @Veykril

lgtm with lnicola's annotations fixed
bors d+

bors r+


ValueError: cymem.cymem.Pool has the wrong size, try recompiling

On installing with the en_coref_md link I encountered this error.
Putting it here just in case it reveals a bug somewhere which makes the next release better.
Curiously, on the same machine in another environment the library works fine.
Will update if this goes away due to some action of mine.
alueError                                Traceback (most recent call last)
<ipython-input-1-c6c9a3eec4e0> in <module>
      1 import spacy
----> 2 nlp = spacy.load('en_coref_md')

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/site-packages/spacy/__init__.py in load(name, **overrides)
     19     if depr_path not in (True, False, None):
     20         deprecation_warning(Warnings.W001.format(path=depr_path))
---> 21     return util.load_model(name, **overrides)
     22
     23

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/site-packages/spacy/util.py in load_model(name, **overrides)
    112             return load_model_from_link(name, **overrides)
    113         if is_package(name):  # installed as package
--> 114             return load_model_from_package(name, **overrides)
    115         if Path(name).exists():  # path to model data directory
    116             return load_model_from_path(Path(name), **overrides)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/site-packages/spacy/util.py in load_model_from_package(name, **overrides)
    132 def load_model_from_package(name, **overrides):
    133     """Load a model from an installed package."""
--> 134     cls = importlib.import_module(name)
    135     return cls.load(**overrides)
    136

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/__init__.py in import_module(name, package)
    124                 break
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127
    128

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/_bootstrap.py in _gcd_import(name, package, level)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/_bootstrap.py in _find_and_load(name, import_)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/_bootstrap.py in _load_unlocked(spec)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/_bootstrap_external.py in exec_module(self, module)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/site-packages/en_coref_md/__init__.py in <module>
      4 from pathlib import Path
      5 from spacy.util import load_model_from_init_py, get_model_meta
----> 6 from en_coref_md.neuralcoref import NeuralCoref
      7
      8 __version__ = get_model_meta(Path(__file__).parent)['version']

~/.local/share/virtualenvs/squad_analysis-yev1NKHk/lib/python3.6/site-packages/en_coref_md/neuralcoref/__init__.py in <module>
----> 1 from .neuralcoref import NeuralCoref

cymem.pxd in init en_coref_md.neuralcoref.neuralcoref()

ValueError: cymem.cymem.Pool has the wrong size, try recompiling. Expected 64, got 48

I got the same error, the solution for me was to downgrade Spacy. Anything between 2.0.11 and 2.0.13 seemed to work.

Worked for me with spacy==2.0.12 and thinc==6.10.3. 2.0.11 and 2.0.13 did not work for me.

Works for me with thinc==6.12.0 and spacy==2.0.13 (however pip reports spacy (2.0.17.dev1)

same problem. But I can't downgrade spacy. Windows will fail to install because of the thinc and other wheel

This is an upstream issue, see: https://github.com/explosion/spaCy/issues/2852
Easiest solution is: pip install spacy==2.0.12

If you are in Anaconda environment, you can use: conda install spacy=2.0.12

Could the people having trouble try pip install spacy==2.0.18? Also, which OS and Python version are you using? I can't reproduce the error, and I'm not sure why it wouldn't be working.

All these issues should be fixed with the new release (NeuralCoref 4.0) and SpaCy 2.1+.
Feel free to open new issues if some installation problem are still there.

Same problem.
Python 3.7 on Mac
neuralcoref     4.0
spacy           2.1.3
    from .neuralcoref import NeuralCoref
  File "cymem.pxd", line 1, in init en_coref_lg.neuralcoref.neuralcoref
ValueError: cymem.cymem.Pool has the wrong size, try recompiling. Expected 64, got 48

beautifulsoup4  4.7.1
biopython       1.73
blis            0.2.4
boto3           1.9.138
botocore        1.12.138
certifi         2019.3.9
chardet         3.0.4
cymem           2.0.2
dateparser      0.7.1
docutils        0.14
en-core-web-lg  2.1.0
en-coref-lg     3.0.0
idna            2.8
isodate         0.6.0
jmespath        0.9.4
jsonschema      2.6.0
lxml            4.3.3
murmurhash      1.0.2
neuralcoref     4.0
nltk            3.4.1
numpy           1.16.3
ordered-set     3.1.1
pandas          0.24.2
Pillow          6.0.0
pip             19.1
plac            0.9.6
preshed         2.0.1
pyparsing       2.4.0
python-dateutil 2.8.0
python-docx     0.8.10
pytz            2019.1
rdflib          4.2.2
regex           2019.4.14
requests        2.21.0
s3transfer      0.2.0
setuptools      41.0.1
singledispatch  <IP_ADDRESS>
six             1.12.0
soupsieve       1.9.1
spacy           2.1.3
srsly           0.0.5
thinc           7.0.4
tqdm            4.31.1
tzlocal         1.5.1
urllib3         1.24.2
wasabi          0.2.1
wheel           0.33.1
word2number     1.1

Same issue here as well

i meet same problem,but there is no any solution


SIB Destinations in clusters

Hi Dimos
If you have a SIB with a cluster as member, then only one server in the cluster runs the engine at a time (except if choosing the "Scalability with HA" policy).
So as the script works currently, if you have 4 servers in a cluster, then you must configure a SIB destination check for each server, thus resulting in 3 UNKNOWN, and one OK message.
I suggest that we add a "cluster" switch to SIB destination check, so that perfservmon doesn't return a UNKNOWN, but "OK: inactive SIB engine" for cluster nodes that doesn't run the engine, as a way of saying "Yeah, yeah I know there's no data, but its expected" to Nagios.
Or do you have a better idea?

Hello @atterdag ,
Nice idea!
However It depends on the information that perfservlet returns in the case you describe.
I have found some differences of the "SIB Service" caption in the perfservlet xml when a cluster node does not hold an active ME versus when it does.
I will take a look at what can be done with this.

 Perfservmon Maintenance

Yes each servers in the cluster will have a list of elements under  with SIB engines names - for instance . But only the active server will have a  under .
So we can certainly build a logic to interpret this.

@atterdag Please check the updated version


2 roles attached to one user

This is not supported, maybe it was in the past.
We should figure out what is the reason that some blogs have multiple roles attached to one user.
This was discovered while testing LTS -> 1.0 migrations, only 2 blogs so far had two roles attached.
If you experience this, the importer won't accept this file, because we can't know which role we should decide for.
There are no steps to reproduce at the moment. I am just tracking this issue to
Ghost: LTS & Master

@kirrg001 Do we need this issue and https://github.com/TryGhost/Ghost/issues/8517? They seem very related 👻

Not really, i will reference this one in #8517 👍 Closing.