[NDTensors] Start TensorAlgebra module

This is initial work on the TensorAlgebra module mentioned in #1250.
So far, it defines a simplified version of TTGT tensor contraction (https://arxiv.org/abs/1607.00145), which can be called with TensorAlgebra.contract(randn(2, 3), (:a, :b), randn(3, 4), (:b, :c); alg="matricize").
The code design is inspired by the one in TensorOperations.jl, in particular it makes use of what I call a BipartitionedPermutation which is a permutation of the form ((1, 3), (2, 4)), which defines a matricization of a tensor. The code logic revolves around analyzing the input labels and defining bipartitioned permutations/matricizations of the input tensors which define how they will be mapped to matrix multiplications.
Right now the logic misses some optimizations that are captured by the current ContractionProperties logic, namely it doesn't avoid certain permutations in cases which can be mapped to matrix multiplication through reshapes and transpositions, for example TensorAlgebra.contract(a, (:a, :b), b, (:c, :b)) can be mapped to a matrix multiplication a * transpose(b) but currently the code will eagerly permute b. This will be handled in future work, hopefully in a simpler way than the current ContractionProperties code (perhaps by simply analyzing the BipartitionedPermutation and swapping the two partitions and seeing if that corresponds to a trivial permutation, in which case it will be marked as a transposition).
Some of the code overlaps with code logic in #1246, for example both have matricize/fusedims functionality and some quasi-generic functionality for allocating the output of tensor operations. #1246 focused more on block sparse arrays but also has some more generic code. The goal will be to make the code in TensorAlgebra more generic so then a lot of the logic for matricization, along with matricized linear algebra (tensor contraction, tensor decompositions, etc.), can live just in TensorAlgebra and submodules like BlockSparseArrays can mostly make use of generic code and it will "just work" when certain overloads are defined, like information about how to fuse blocked axes/indices.
@kmp5VT @emstoudenmire

Great to see this. I think it will lead to a lot shorter code that can do more things (e.g. plug in more backends which can be simpler themselves).

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

Comparison is base (408516d) 85.44% compared to head (93623cd) 54.70%.

:exclamation: Current head 93623cd differs from pull request most recent head 51629a6. Consider uploading reports for the commit 51629a6 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1265       +/-   ##
===========================================
- Coverage   85.44%   54.70%   -30.75%
===========================================
  Files          89       88        -1
  Lines        8402     8349       -53
===========================================
- Hits         7179     4567     -2612
- Misses       1223     3782     +2559

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


feat: Add DynamicBar component.

Purpose
This PR implements the "DynamicBar" feature requested by #216.
Component description
The DynamicBar component is derived from anichart.js which is a really cool tool for visualizing time-based data.
DynamicRadar is really easy to use and provides features like:

light & dark themes
customizable sizes
dynamic & intuitive

Code structure

Usage example
import DynamicBar from '../../components/DynamicBar/DynamicBar';

const Demo = () => {
  return (
    <DynamicBar theme="light" width={800} height={600} barNumber={18} digitNumber={2} duration={10} dateLabelSize={60} dataUrl="http://<IP_ADDRESS>:9888/data.csv"/>
  )
}

DynamicBar receives a dataUrl and then requests for the data by itself. The .csv data looks like this:
id,date,value
LiuChangFreeman,2020-11-05,1.44
LiuChangFreeman,2020-12-01,2.44
LiuChangFreeman,2021-03-01,4.44
LiuChangFreeman,2021-03-21,7.44
LiuChangFreeman,2021-09-04,19.44
heming6666,2020-11-05,1.67
heming6666,2020-12-01,3.67
heming6666,2021-03-01,4.67
heming6666,2021-03-21,8.67
heming6666,2021-07-04,10.67
heming6666,2021-09-10,13.67
heming6666,2021-09-20,18.67
...

Screenshots

Proposed changes
Types of changes

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Close #216 .


BUG:

Describe your issue.
Getting error when installing scipy package using pip
(test3) [ab63996@sl01plpchd023 ~]$ pip install --cert /opt/cloudera/security/x509/cert.pem --trusted-host pypi.python.org --no-cache-dir scipy
Collecting scipy
Downloading scipy-1.5.4-cp36-cp36m-manylinux1_x86_64.whl (25.9 MB)
|████████████████████████████████| 25.9 MB 102 kB/s
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
scipy from https://files.pythonhosted.org/packages/c8/89/63171228d5ced148f5ced50305c89e8576ffc695a90b58fe5bb602b910c2/scipy-1.5.4-cp36-cp36m-manylinux1_x86_64.whl#sha256=368c0f69f93186309e1b4beb8e26d51dd6f5010b79264c0f1e9ca00cd92ea8c9:
Expected sha256 368c0f69f93186309e1b4beb8e26d51dd6f5010b79264c0f1e9ca00cd92ea8c9
Got        a92cc0fae8b65771b0b53287daeb39cd3ee228d6d5580fdd5af4062612070042
Reproducing Code Example
pip install --cert /opt/cloudera/security/x509/cert.pem --trusted-host pypi.python.org --no-cache-dir scipy

Error message
(test3) [ab63996@sl01plpchd023 ~]$ pip install --cert /opt/cloudera/security/x509/cert.pem --trusted-host pypi.python.org --no-cache-dir scipy
Collecting scipy
  Downloading scipy-1.5.4-cp36-cp36m-manylinux1_x86_64.whl (25.9 MB)
     |████████████████████████████████| 25.9 MB 102 kB/s
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
    scipy from https://files.pythonhosted.org/packages/c8/89/63171228d5ced148f5ced50305c89e8576ffc695a90b58fe5bb602b910c2/scipy-1.5.4-cp36-cp36m-manylinux1_x86_64.whl#sha256=368c0f69f93186309e1b4beb8e26d51dd6f5010b79264c0f1e9ca00cd92ea8c9:
        Expected sha256 368c0f69f93186309e1b4beb8e26d51dd6f5010b79264c0f1e9ca00cd92ea8c9
             Got        a92cc0fae8b65771b0b53287daeb39cd3ee228d6d5580fdd5af4062612070042

SciPy/NumPy/Python version information

import sys, scipy, numpy; print(scipy.version, numpy.version, sys.version_info) 1.5.4 1.19.5 sys.version_info(major=3, minor=6, micro=13, releaselevel='final', serial=0)on__, sys.version_info)  1.19.5 sys.version_info(major=3, minor=6, micro=13, releaselevel='final', serial=0)

I've just downloaded that file and got the correct hash. Can you try again?

Hi ,
We are still getting the same error. . We are using PIP package that was installed when creating conda virtual environment to install the package
On Wednesday, August 3, 2022, 03:20:17 PM MST, Robert Kern @.***> wrote:
I've just downloaded that file and got the correct hash. Can you try again?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

The only thing I can think of is that you are in some custom environment that is putting up a custom PyPI mirror with pypi.python.org and files.pythonhosted.org resolving to that custom mirror. Is that the reason you have to provide the custom cert and --trusted-host?
AFAICT, there is nothing that we can do to help you. The files on the official pypi.python.org are correct (the sha256sum for that file is definitely 368c0f69f93186309e1b4beb8e26d51dd6f5010b79264c0f1e9ca00cd92ea8c9). There is something about your configuration that is preventing you from getting those files uncorrupted.

I should mention we had this problem at work a few months ago with the implementation of SSL interception in use. I don't know a good workaround. I think in theory providing the organizational internal certificate is supposed to suffice, but it always seemed to me like SSL interception was somehow changing the content of the wheels/zip files.

Ugh. That's nasty.
Maybe adding pypi.org and files.pythonhosted.org to the list of trusted-files? (per this search hit)

Possibly also setting the proxy info explicitly with --proxy.

Looks like we can close the issue as not related to SciPy itself.

Yeah, probably not SciPy specific. I understand the frustration though, sometimes I even had the problem with the trusted lists.


[move] Increase the proof-of-burn and make dynamic

We knew it would happen: Prisoner's dilemma defection. Someone decided to not donate to community funds and they begin to get depleted. So stronger consensus is needed to fund the public good wallets.
This upgrade is very simple. Using existing infrastructure we just change one parameter.
Since Genesis there has been a 1 coin Epoch Burn for Validators. Validators can opt for this Burn to go to an index of community wallets (set algorithmically based on prior contributions).
The upgrade changes the  Epoch Burn, amount from a flat 1 GAS coin to a variable amount. This proposal sets it to 25%.
The expected effect of this is that community wallets can be more meaningfully funded from Epoch Burns. Note: Burning to the "Router" of community wallets is optional, otherwise the default is a normal burn (destroy the coins). Validators may be encouraged to donate to certain wallets so as to rebalance the index. More details are written in the Match Burn documentation.

[ ] increase value to 50% of previous epoch's value
[ ] expose transaction script for changing preferences
[ ] set a timer/epoch for when it goes into effect.

https://github.com/0o-de-lally/libra/blob/scrooge/ol/documentation/accounts/match_burn.md

Nice idea about the router and the opt-in between token burn or sending "autopay" to the router. But for me looks like some functionality (especially tooling) is missing, like how validators can opt-in to the different variants. If this change will go live, all validators with currently 50% autopay need to adapt their config, otherwise there will be 75% "tax" for them. But maybe this is intended to punish validators which do not follow what's going on.
Maybe a simpler implementation of how to achieve 50% "tax" including the possibility for token burn while keeping the current tooling and conecpt could be to implement a special "burn" address. So this address can be used in the existing autopay mechanism as target. On entering validator set and before subsidy distribution we should just check for autopay being set to 50% or more.

So there are a couple tasks left, which are low hanging:

[ ] increase value to 50% of previous epoch's value
[ ] expose transaction script for changing preferences
[ ] add txs subcommand to set burn preference.
[ ] set a timer/epoch for when it goes into effect.


Support Discussions webhook event

GitHub Discussions was out of beta in August 2021 (https://github.blog/2021-08-17-github-discussions-out-of-beta/).
Webhook event document is here: https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#discussion

Thank you, @maruTA-bis5 !
Would you like to create a PR to support this feature, or shall I open this issue up to our volunteer contributors to implement?

Hi @gmlewis I would like to start contributing to this repository. Can I take up this issue?

Hi @gmlewis I would like to start contributing to this repository. Can I take up this issue?

Thanks, @maniSbindra , but let's please wait until @maruTA-bis5 has a chance to answer my question above.

My bad I assumed that you and @maruTA-bis5 communicated outside this discussion, and then you moved issue to good first issue. sorry about that.

No problem, @maniSbindra .  We'll give @maruTA-bis5  another day or so, then feel free to remind me if we don't hear back, and the issue can be yours.

Hi @gmlewis @maniSbindra
I'm sorry to have kept you waiting!
I have no time to provide a PR for the next few weeks. So you can take up this issue, @maniSbindra.

Thank you, @maruTA-bis5 and no problem.
@maniSbindra - this issue is yours.


change host and hosts in test class to a define method

Hi @shlomi-stratoscale
please merge this so we won't have pylint error when using self.hosts or self.host in test classes.
Thanks

hi eyal,
this commit is a major modification of pyracktest api. it also increases the "character count" of the most common operation in a racktest, which is to access the hosts under test. i think in this case it is better to ignore the error than to do the modification. what was the error? how major is the issue?
sorry,
Shlomp

We get pylint errors. this is the right way to fix it.
Please reopen it and merge it.
@pavel-stratoscale, help me here...


Ironman Leaderboard

+lb --im
Currently one of the higher IM and I would like there to be a separate leader board for us :)

You can use --im with +lb skills, example: +lb skills fletching --im

I'm also adding functionality right now to be able to show the overall ironman leaderboards for the --im flag.

I'm aware of the individual leader boards but am looking for the overall leader board like ard35 mentioned. Thank you for working on adding that functionality!

I know this is an old suggestion but I'd also like to see this come into play, if a +"lb cl boss --im" could be added too that would be great.

resolved


backsupport for adafruit-circuitpython-neopixel

hey folks, a few years ago we added a 'neopixel' module to this repo, which is awesome but has ended up name-colliding with our circuitpython neopixel library. because of import order, if we install rpi_ws281x, it will never use adafruit-circuitpython-neopixel's neopixel.py file. which is life and i can live with it:)
to 'fix' we'd like to add a new class to this repo's neopixel module that will essentially be a copy-n-paste of this file, to create a circuitpython-api-compatible neopixel object. this will let us complete our quest to provide a unified API for CPython/circuitpython hardware projects
It shouldn't affect anything on your end cause it will be a completely new class, but let me know whatcha think! I can do the PR if it sounds good to you :)

Since the neopixel name is your brand-name (registered trademark IIRC?), and since it was only kept in this library as a compatibility shim after I moved for the more generic (but still not quite all-encompassing) rpi_ws281x I'd be happy to advocate for the dropping of neopixel altogether from this library, so that you can use the module name without conflicts or needing to worry about this repository in future.
A major version bump on the associated release of rpi_ws281x-python and simple instructions to end-users should get them migrated from using "neopixel" to "rpi_ws821x" which are presently totally interchangeable. Either way our users (at least those still import neopixel) are going to have to make that change.
Would this work for you?

In further reading of your solution I understand why it wouldn't affect our users. Still I suspect it would cause some amount of headache with future maintenance since a copy & paste of the class would have to be maintained in two places.
I'm happy to take the headache (I suspect it wont be particularly problematic) of moving users from import neopixel to import rpi_ws281x so that you can have your module name to yourself without any quirks or complications.
After all, the library is called rpi-281x-python and it makes little to no sense to import neopixel from a package with a completely different name.
As much as I can't stop calling everything "neopixels" by habit (and I wholeheartedly recognise the Adafruitian origins of the Python class upon which we have built), the nomenclature clash in this library has bugged me for years :grin: (I felt shipping this on PyPi as "neopixel" would have been crossing a line)

Oh and a heads up (ugh sorry for the wall of replies), regardless of the outcome of this issue- I think this learn article is quite out of date: https://learn.adafruit.com/neopixels-on-raspberry-pi?view=all and could replace a vast majority of the install fiddling with our shipped Python wheels:
sudo pip install rpi_ws281x

Since over on https://github.com/jgarff/rpi_ws281x we're often fielding issues from users trying to build the crusty old Python bindings lingering in that repository from source when they don't need to:
https://github.com/jgarff/rpi_ws281x/issues/307
https://github.com/jgarff/rpi_ws281x/issues/299
https://github.com/jgarff/rpi_ws281x/issues/291
https://github.com/jgarff/rpi_ws281x/issues/290

whew! ok yeah we're ok with removing neopixel from this library completely, and we'll update our code/guide as well! as mentioned, we'll be showing how to use the circuitpython api anyhow :)
let us know when you've yanked & bumped pypi!

You may forge ahead! Godspeed.
https://github.com/rpi-ws281x/rpi-ws281x-python/releases/tag/v4.0.0

thankx!


Fix message dispatch; clean up LGTM warnings

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@5db1d89). Click here to learn what that means.
The diff coverage is 33.33%.

@@            Coverage Diff            @@
##             master     #203   +/-   ##
=========================================
  Coverage          ?   72.24%
=========================================
  Files             ?      218
  Lines             ?     9986
  Branches          ?        0
=========================================
  Hits              ?     7214
  Misses            ?     2772
  Partials          ?        0


Delete docs/mex directory

🚀 Deployed on https://664d51bdb6924d750d25f674--cozy-fox-0defec.netlify.app


Keep trailing whitespace in diff files

Without this, editorconfig-vim strips trailing whitespace in context and
old lines in unified diff (used frequently in the git add --patch
workflow), upon saving; the resulting diff fails to apply.

Makes sense, thanks @astralblue !


TCP request are dropped

Environment
I'm currently using the library in two different projects on an ESP32 to build a TCP to RTU bridge. Both are showing the same behaviour and I'm out of ideas. One RTU slave is a Heidelberg Wallbox and the other an SDM630 - two completely different devices. One Modbus TCP client is evcc and the other mbmd. As far as I can tell both use the same modbus go library.
Problem
Every few minutes I receive a timeout error on the TCP client side. I captured the traffic between the client and the esp32 and can see, that the request is transmitted and the esp32 also sends an ACK, but there is no response at all so the client closes the connection after a timeout of 10 seconds:

I also added an additional log statement in the ModbusServerTCPtemp:
        // Extract request data
        ModbusMessage request;
        request.add(m.data() + 6, m.size() - 6);
-
+        LOG_E(">");
        // Protocol ID shall be 0x0000 - is it?
        if (m[2] == 0 && m[3] == 0) {

and this was logged only when there was no timeout. So my current guess is, that the packet is received by the esp but not processed by emodbus.
Example code
https://github.com/zivillian/heidelberg-1p3p or https://github.com/zivillian/esp32-modbus-gateway
The hardware I'm currently using does not expose an additional HardwareSerial, so I can only get the logs via telnet (that's why I have no trace log). I'm currently not even sure if this is a problem with emodbus or if all of my hardware or wifi is somehow broken.
Do you have an idea how I can further debug this?

Strange. There is one possibility left that would go unnoticed with the library code: if the request TCP packet  somehow is chopped to pieces less than 8 bytes, the outermost if in the receive loop will discard these without a message. You could put one in in an else block to see if that really is happening. When I wrote the code I did not really expect that to happen, but who knows?

I've added another log statement, but this does not show up in the log:
        } else {
          // No, protocol ID was something weird
          response.setError(request.getServerID(), request.getFunctionCode(), TCP_HEAD_MISMATCH);
        }
+     } else {
+       LOG_E("size < 8");
      }
      delay(1);
      // Do we have a response to send?

I'll try to find another esp with an additional HardwareSerial, so I can get a debug log...

Well, at least we now have learned there are no fragmented packets.
Since we do a straight read() as soon as available() gets true, there is no way to drop data in between. Hence available() seems not to get >0 at all.

The only other TCP traffic is the web interface from https://github.com/me-no-dev/ESPAsyncWebServer.
Yesterday I was able to capture a debug log but it shows no error or hint:
[D] 900189| ModbusServer.cpp     [  38] getWorker: Worker found for 01/ANY
[D] 900190| ModbusBridgeTemp.h   [ 174] bridgeWorker: Request (01/04) sent
[D] 900201| ModbusClientRTU.cpp  [ 230] addToQueue: RC=01
[D] 900202| ModbusClientRTU.cpp  [ 248] handleConnection: Pulled request from queue
[D] Sent packet: @3FFDE394/6:
  | 0000: 01 04 00 0A 00 03                                 |......          |
[D] 900218| ModbusClientRTU.cpp  [ 253] handleConnection: Request sent.
[D] 900231| RTUutils.cpp         [ 436] receive: C/[D] Received packet: @3FFDF054/9:
  | 0000: 01 04 06 00 ED 00 09 00  08                       |.........       |
[D] 900242| ModbusClientRTU.cpp  [ 268] handleConnection: Data response (9 bytes) received.
[D] 900257| ModbusClientRTU.cpp  [ 289] handleConnection: Response generated.
[D] 900261| ModbusServerTCPtemp.h [ 314] worker: Data response

<-- here is a missing query, which result in the timeout and disconnect of the client

[D] 901344| ModbusServerTCPtemp.h [ 358] worker: Worker stopping due to client disconnect.
[D] 901345| ModbusServerTCPtemp.h [ 210] accept: Started client 1 task<PHONE_NUMBER>
[D] 901346| ModbusServerTCPtemp.h [ 261] worker: Worker started, timeout=60000
[D] 901361| ModbusServer.cpp     [  38] getWorker: Worker found for 01/ANY
[D] 901356| ModbusServerTCPtemp.h [ 239] serve: Accepted connection - 1 clients running
[D] 901362| ModbusBridgeTemp.h   [ 174] bridgeWorker: Request (01/04) sent
[D] 901384| ModbusClientRTU.cpp  [ 248] handleConnection: Pulled request from queue
[D] Sent packet: @3FFDF09C/6:
  | 0000: 01 04 00 11 00 02                                 |......          |
[D] 901400| ModbusClientRTU.cpp  [ 253] handleConnection: Request sent.
[D] 901403| RTUutils.cpp         [ 436] receive: C/[D] Received packet: @3FFDE3B0/7:
  | 0000: 01 04 04 00 00 00 00                              |.......         |
[D] 901413| ModbusClientRTU.cpp  [ 268] handleConnection: Data response (7 bytes) received.
[D] 901424| ModbusClientRTU.cpp  [ 289] handleConnection: Response generated.
[D] 901390| ModbusClientRTU.cpp  [ 230] addToQueue: RC=01
[D] 901436| ModbusServerTCPtemp.h [ 314] worker: Data response

Beats me. Even if the Modbus bridge (TCP server side) would be pausing/dreaming/whatever, the TCP packet would be held in the TCP stack until someone was going to read it. The connection is closed for inactivity, so nothing was available() in the meantime.
One long shot came to my mind, though: what if the request came in exactly while the connection was cut? You should try with a longer timeout on the server side, like 10s or more - anything longer than the interval between two requests will do.

I wrote a small client which queries the same register over and over with a timeout of 1s. After the first query timed out it nevers recovers:
Code:
using var client = new TcpClient();
await client.ConnectAsync("<IP_ADDRESS>", 502, cancellationToken);
var stream = client.GetStream();
var query = new byte[12]
{
    0x00, 0x00, //transaction identifier
    0x00, 0x00, //protocol identifier
    0x00, 0x06, //length
    0x01, //unit identifier
    0x04, //function code
    0x00,0x06, // reference number
    0x00,0x03 // word count
};
var response = new byte[15];
short trans = 0;
while (true)
{
    trans++;
    query[0] = (byte)(trans >> 8);
    query[1] = (byte)(trans & 0xff);
    await stream.WriteAsync(query, cancellationToken);
    Console.WriteLine("query sent");
    var read = stream.ReadAsync(response, cancellationToken).AsTask();
    var timeout = Task.Delay(1000, cancellationToken);
    var finished = await Task.WhenAny(read, timeout);
    if (finished == timeout)
    {
        Console.WriteLine("timed out");
    }
    else
    {
        await read;
        Console.WriteLine($"response received");
    }
}

Output:
starting
query sent
response received
query sent
response received
query sent
timed out
query sent
timed out
query sent
timed out
query sent
timed out
query sent
timed out

Next I'll

My bad - it didn't recover because of my client code. With the following code I can successfully read again after a timeout:

using var client = new TcpClient();
await client.ConnectAsync("<IP_ADDRESS>", 502, cancellationToken);
var stream = client.GetStream();
var query = new byte[12]
{
    0x00, 0x00, //transaction identifier
    0x00, 0x00, //protocol identifier
    0x00, 0x06, //length
    0x01, //unit identifier
    0x04, //function code
    0x00,0x06, // reference number
    0x00,0x03 // word count
};
var response = new byte[15];
short trans = 0;
stream.ReadTimeout = 1000;
while (true)
{
    trans++;
    query[0] = (byte)(trans >> 8);
    query[1] = (byte)(trans & 0xff);
    await stream.WriteAsync(query, cancellationToken);
    Console.WriteLine("query sent");
    try
    {
        stream.Read(response);
        Console.WriteLine($"response received");
    }
    catch (IOException)
    {
        Console.WriteLine("timed out");
    }
}

starting
query sent
response received
query sent
response received
query sent
response received
query sent
response received
query sent
response received
query sent
timed out
query sent
response received
query sent
timed out
query sent
response received

yeah, but what happens if you will set the bridge's timeout to some 10s? It is shorter now, so if my assumption was right your test client will have less timeouts with a longer timeout.

Do you mean to change the timout in my client I posted above like so?
- stream.ReadTimeout = 1000;
+ stream.ReadTimeout = 10000;

This doesn't resolve the error.
I've build a minimal reproducable and it looks like the ESPAsyncWebServer is interfering with the modbus traffic. I'm not even starting the webserver, but only setting up a handler which does nothing useful. I also haven't sent a single HTTP request:
#include <Arduino.h>
#include <WiFiManager.h>
#include <ESPAsyncWebServer.h>
#include <ModbusServerWifi.h>

#define debugSerial Serial
#define dbgln(x...) debugSerial.println(x);

ModbusMessage worker(ModbusMessage msg);
void setupPages(AsyncWebServer* server);

AsyncWebServer webServer(80);
ModbusServerWiFi MBserver;
WiFiManager wm;

void setup() {
  debugSerial.begin(115200);
  dbgln("[wifi] start");
  WiFi.mode(WIFI_STA);
  wm.setClass("invert");
  wm.autoConnect();
  dbgln("[wifi] finished");
  dbgln("[modbus] start");
  MBserver.registerWorker(1, READ_INPUT_REGISTER, worker);
  MBserver.start(502, 10, 30000);
  dbgln("[modbus] finished");
  setupPages(&webServer); //<- if I remove this line it works
  //webServer.begin(); //I don't even start the webServer
  dbgln("[setup] finished");
}

void loop() {
  // put your main code here, to run repeatedly:
}

ModbusMessage worker(ModbusMessage msg){
  uint16_t addr = 0;
  uint16_t words = 0;
  msg.get(2, addr);
  dbgln(addr);
  msg.get(4, words);
  ModbusMessage response;
  response.add(msg.getServerID(), msg.getFunctionCode(), (uint8_t)(words * 2));
  for (size_t i = 0; i < words; i++)
  {
    response.add((uint16_t)i);
  }
  return response;
}

void setupPages(AsyncWebServer *server){
  server->on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    dbgln("[webserver] GET /");
    auto *response = request->beginResponseStream("text/html");
    request->send(response);
  });
}

Log
...
[D] 16033| ModbusServer.cpp     [  30] getWorker: Worker found for 01/04
579
[D] 16035| ModbusServerTCPtemp.h [ 314] worker: Data response
[D] 16045| ModbusServer.cpp     [  30] getWorker: Worker found for 01/04
580
[D] 16047| ModbusServerTCPtemp.h [ 314] worker: Data response
[D] 26414| ModbusServerTCPtemp.h [ 358] worker: Worker stopping due to client disconnect.

I've modified my client so that the queried register and transaction id are the same:

The esp logs the queried register and the following packet capture shows the transaction id. You can clearly see that ESP has processed up to id 580 but the packet capture also shows the query for id 581 which was ACKed by the ESP.

Excellent! This indeed narrows it down to some async interferences.
@bertmelis Would you please have a look as it is the async stuff again? ESP32 this time, I am afraid, so it most probably is not caused by the missing multi tasking in the ESP8266.

@Miq1 I've found the root cause and opened a PR to fix it.

@zivillian Thanks, that sounds reasonable as a cause. I am merging the PR ATM. There may be side effects, but we will see.


Fix assertion failure in SSL_set_bio()

If SSL_set_bio() is called with a NULL wbio after a failed connection then this can trigger an assertion failure. This should be valid behaviour and the assertion is in fact invalid and can simply be removed.
The SSL_set_bio() tests only did standalone testing without being in the context of an actual connection. We extend this to do additional tests following a successful or failed connection attempt. This would have caught the issue above.
The tests won't cherry-pick to 1.1.0, so I'm only planning on cherry-pick the fix to that branch.
Checklist

[x] tests are added or updated

Pushed. Thanks.


Fix insertion from testanywhere repo

Code looks straight forward, but what is the issue that needed fixing?

The TA insertion into MSTest is broken because the internal framework no longer exists so maestro doesn't find a new artifact and doesn't trigger the insertions.


[HOTFIX] [TEST] Ignoring flaky tests

org.apache.spark.DriverSuite.driver should exit after finishing without cleanup (SPARK-530)
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-SBT/2267/
org.apache.spark.deploy.SparkSubmitSuite.includes jars passed in through --jars
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-SBT/2271/AMPLAB_JENKINS_BUILD_PROFILE=hadoop1.0,label=centos/testReport/
org.apache.spark.streaming.flume.FlumePollingStreamSuite.flume polling test
https://amplab.cs.berkeley.edu/jenkins/job/Spark-Master-SBT/2269/

Merged build triggered.

Merged build started.

Test build #31827 has started for   PR 5901 at commit 9cd8667.

Test build #31827 has finished for   PR 5901 at commit 9cd8667.

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/31827/
Test PASSed.


[Suggestion]Instead of displaying an error message, it is best to use a method to enter values for missed mandatory claims.This will enable the user to get their work done easier.

Affected version: wso2is-5.10.0-alpha3-SNAPSHOT
Identity - app: 0.9.11-SNAPSHOT
Describe the bug
The current behavior of, Consent Management with Single-Sign-On flow
The consent screen appears only if the user has already entered values for the mandatory claims. If any of these values is missing ((e.g., if Email is a mandatory claim, but the user has not yet provided an email address), the User portal display an error message, with the content "Authentication attempt failed.
Error while handling missing mandatory claims"
So then the user has to go back admin portal, must enter those values.
But it is better, if we can appear a screen where the user must enter those values before the consent screen will appear.
Step to reproduce:

Configure the following service provider claims  additionally and update.
http://<claim_dialect>/claims/fullname (mandatory claim)
http://<claim_dialect>/claims/email (mandatory claim)
Enter the user credentials and click Submit via user portal.
Getting an error,

Now, editing the Myaccount application configuration is not enabled by default.
None of the attributes is mandatory in the default configuration. Hence, this issue is no longer valid.


Dimmer for ContactMap, using latest TSLint rules, more tests for NGL and Plotly.

Updated following dependencies formally in package.json using yarn upgrade --latest:

@types/html-webpack-plugin
@types/jest
@types/node
@types/three
css-loader
jest-junit
markdownlint-cli
semantic-ui-react
three
ts-node
webpack-cli

Using newer jest config conventions for testURL and reporters.
Using tslint:latest rules and fixed resulting errors. Primarily this was switching around type annotation locations and having a more consistent usage of the spread operator.
Added mock implementations for plotly Plots.resize and various NGL viewer functionality to test out click-to-snap functionality.
Added a dimmer to the ContactMap!

Codecov Report

Merging #76 into master will increase coverage by 1.71%.
The diff coverage is 52.63%.

@@            Coverage Diff             @@
##           master      #76      +/-   ##
==========================================
+ Coverage   80.87%   82.58%   +1.71%
==========================================
  Files          32       32
  Lines        1516     1522       +6
  Branches      225      254      +29
==========================================
+ Hits         1226     1257      +31
+ Misses        290      265      -25

Impacted Files
Coverage Δ

src/component/CategorySelector.tsx
100% <ø> (ø)
:arrow_up:

src/component/VizSelectorPanel.tsx
100% <ø> (ø)
:arrow_up:

src/helper/PlotlyHelper.ts
100% <ø> (ø)
:arrow_up:

src/data/chell-data.ts
100% <ø> (ø)
:arrow_up:

src/component/chart/ContactMapChart.tsx
100% <ø> (ø)
:arrow_up:

src/component/widget/ChellSlider.tsx
97.14% <ø> (-2.86%)
:arrow_down:

src/ChellVizApp.tsx
100% <ø> (ø)
:arrow_up:

src/component/widget/ChellTooltip.tsx
0% <0%> (ø)
:arrow_up:

src/component/SpringComponent.tsx
16.94% <0%> (+0.68%)
:arrow_up:

src/context/ResidueContext.ts
100% <100%> (ø)
:arrow_up:

... and 17 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1c3804d...d923349. Read the comment docs.


[8.x] Fix attribute casting

Fixes an oversight in https://github.com/laravel/framework/pull/40022.
At the moment when you omit a get cast with the new attribute casting, the attribute call will propagate through the getAttribute method and end up to getRelationValue which will throw an exception that the attribute isn't a relationship instance. This is because the way attribute calls work is to fallback on relationships when they're not available. So the way the checks are done on get/set callables with the new attribute casting isn't entirely correct. We should omit the callable checks and just check if the method that corresponds with the requested attribute is returning an Attribute cast instance. If that's the case we can assume the user wanted to use attribute casting, regardless of a getter/setter being available or not.
A cavaet of this is that this will prevent the call to continue to class casts and the old date casting. I do not know how to solve this and would appreciate any insights you have @taylorotwell.
Fixes #40230

If there's specific scenarios for class casting/date casting in combination with the new attribute casting then we can add those to the existing test case and work until we get all the tests to pass.


build: Update to header 1.3.294

CI Vulkan-Tools build # 1510 failed.

CI Vulkan-Tools build # 1510 failed.

CI Vulkan-Tools build queued with queue ID 241982.

CI Vulkan-Tools build queued with queue ID 241982.

Changes appear fine even though they are causing build failures. I assume something just needs to be tweaked.

Yes I needed to copy the mock vkCreatePipelineBinariesKHR from https://gitlab.khronos.org/vulkan/Vulkan-ValidationLayers/-/merge_requests/96

CI Vulkan-Tools build # 1511 running.

CI Vulkan-Tools build # 1511 passed.


Clickable Rating column

Hi, the theme is awesome!!!
I regularly rate my songs.
I used to use iTunes years back, then I started using foobar2000, and was using SimPlaylist. both iTunes and f2k SimPlaylist allowed me to rate my files.

I click on the Rating column to set rating
I have autoplaylists which are for certain rated songs...

When I rate a song, it uses Metadata in the file for storing the rating value. So, whereever I go, I get my ratings.

this  tag...
Now, i want to

use that metadata to display ratings in the column of Georgia-ReBORN
click directly on the column to set Rating of a song, which will write in the same  column

How to do it??
Thanks in advance!!

Now available in Beta 10c: https://github.com/TT-ReBORN/Georgia-ReBORN/discussions/74#discussioncomment-4140202


getAction method returns events too...

Maybe we should just have get() and other methods to tell if the object is an action, event, or property...
Here is the relevant code as it currently stands:
  /**
   * Get an action object by key
   * @param {String} ID  The key of the action object you want.
   * @returns {Object}
   */
  getAction (ID) {
    let action = {};
    _.each(this.actions, (value, key, list) => {
      if (key === ID) {
        return action = value;
      } else if (this.actions[key].id === ID) {
        return action = value;
      }
    });

    if (_.isEmpty(action)) {
      return false;
    } else {
      return action;
    }
  }

  /**
   * Get event object by key
   * @param {String} ID  The key / id of the event object you want.
   * @returns {Object}
   */
  getEvent (ID) {
    let event = {}
    _.each(this.events, (value, key, list) => {
      if (key === ID) {
        return event = value;
      } else if (this.events[key].id === ID) {
        return event = value;
      }
    });

    if (_.isEmpty(event)) {
      return false;
    } else {
      return event;
    }
  }

Not an issue anymore.


[PHPUnit] exclude templates/ directories from the code coverage generati...

...on. When running PHPUnit with the --coverage-clover switch, the tests suite fails has PHPUnit tries to generate the coverage for a PHP template file.

Thanks :)

I'm playing with Sonar Source and Propel2 :)


[ENHANCEMENT] CHANGE THE WEEK 7 CHARTING 🗣🗣🗣

Describe your bug here.

Source
What is your build target?
Neko, HashLink, or other build system
Did you edit anything in this build?


[BugFix] Fix FE meta compatibility issue

This pr(https://github.com/StarRocks/starrocks/pull/26246) add new property maxColumnUniqueId in OlapTable and we change the log serialize/deserialize format to json in latest branch, so we don't need to serialize/deserialize by manual.
What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[ ] 3.1
[ ] 3.0
[ ] 2.5
[ ] 2.4

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[FE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)


Replace Copay logo with Copay+CC

Need to make CC logo of proper color (for non-negative version). E.g. of Copay's #2C3E50


ci(all): Add Dependabot config

Description
Introducing Dependabot config to automate dependencies updates for all Github Actions, website and plugins dependencies.
The config is that big because I had to specify exact folder for all pubspec.yaml files we have in the repo as Dependabot doesn't support multiple directories search yet: https://github.com/dependabot/dependabot-core/issues/2824
Current setup is basic with once in a week check, but we can customise quite a lot of params if needed:
https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
Commits will follow a proper conventional commits naming, so it won't be breaking for the newly introduced contribution process:

Be aware that during its first run Dependabot will open lots of PRs. If needed, we can set an upper limit for amounts of PRs as well to not spam our Pull requests section first time. But I would leave it as it is for now.
Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I titled the PR using Conventional Commits.
[x] I did not modify the CHANGELOG.md nor the pubspec.yaml files.
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze) does not report any problems on my PR.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate that with a ! in the title as explained in Conventional Commits).
[x] No, this is not a breaking change.

Will there still be an opened PR (with failing lints), so we can manually fix the code?

Yes, such PR is still opened. Also, there is a badge with compatibility indicator, which is based on stats among other repos using this dependency: https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-compatibility-scores


Return Tool Id With Parallel Tool Calling

Can then use this to repack the answers to these tools into the next llm response.
https://platform.openai.com/docs/guides/function-calling (e.g.)

This is great.
Should this be needed for single calls too?
Would you want to just have a _tool_id attribute?
Or do you want to set

This was marked as completed but I can't seem to find a way to retrieve the tool calls completion history and their IDs.
When working on the next LLM request I need to add these tool call results back to the messages array:

Add the chat competition from the raw response to the messages array, this contains the references to the tool_calls describe here.
Retrieve the tool call ID so that each of the tool call results can be added to the messages array referencing the correct tool call ID.

Do you have any recommendations on how to do this? I can't find it in the docs.
I've also tried using resp, completion = client.chat.completions.create_with_completion but the generator does not contain the raw response: https://github.com/jxnl/instructor/blob/main/instructor/process_response.py#L90-L98

Any updates or ideas on how to solve this?
I have the same use case as @ls-jason-rossiter, I'm trying to add the tool_call_id to add the tool execution responses to generate an LLM answer, but response, completion = client.chat.completions.create_with_completion does not work for Parallel Tool calling


Question about DEFAULTTUNE for raspberrypi 3/4 (32bit)?

Hi,
I'm playing for some time with raspberrypi3/4 and I found that 32-bit versions using cortexa7 tune which may limit instruction set capabilities. Can I somehow extend those flags to pass proper cortex version?
From what I understand using tune-cortexa57 or tune-cortexa72 will change architecture to aarch64, so I should avoid them. Am I correct ?
Cheers,
Bartłomiej

I think we use cortexa53 for rpi3 machines which translates to armv7ve architecture for 32bit so I am not sure how you are ending up with armv7a

This is a part of raspberrypi3.conf
#@TYPE: Machine
#@NAME: RaspberryPi 3 Development Board (32bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 32 bits mode

DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc

@kraj It looks like cortexa7 configuration for me.
This is my bitbake output after using raspberrypi3 as machine:
Build Configuration:
BB_VERSION           = "1.47.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueabi"
MACHINE              = "raspberrypi3"
DISTRO               = "retro"
DISTRO_VERSION       = "3.1+snapshot-20201003"
TUNE_FEATURES        = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard"
TARGET_FPU           = "hard"
meta-dev1990         = "master:7c3718aad3415012905d8561f20b32379f06aa84"
meta-intel           = "master:b077acb2702731db2d77ed31126a5b21af3c1cff"
meta-kodi            = "master-next:8122bf7aaa11e40bd9c0048cdc0e21b7a24b7391"
meta-mesa            = "master:1e4126a1073b859092dc798b531a661f9c9ce5a8"
meta-multimedia
meta-networking
meta-oe
meta-python          = "master:a599b850dc124444d06fbb5d48734c134325ac0c"
meta-python2         = "master:7b18fa3ead2c1a98e0f4e01ab57027f57d362c04"
meta-qt5             = "5.15:0108285c3fb4f246fc73e33afd6a34ba1eb76356"
meta-raspberrypi     = "master:0e9c32c8169d0c6f0486e4d2e1ac670b11382c9c"
meta-rauc            = "master:04ead4e4968a9fd97511d1bd105c372fc3b2a8c5"
meta-retro           = "master:62df7ffc2015c236ddf6ef8754ab6c266e5ff985"
meta
meta-poky
meta-yocto-bsp       = "master:520e95902f12feac2850e0c24167002eb2cc7c42"

What tunes are you thinking of trying? I think we looked into this a long time ago and we realized that there was no real performance benefit.

What tunes are you thinking of trying? I think we looked into this a long time ago and we realized that there was no real
performance benefit.

-mcpu=cortexa53 and -mcpu=cortexa72 respectively  and AArch32 (Armv8-A) architecture
But lets assume for now that I'm asking this only from correctness stand point :-)
raspberrypi3 has cortexa7 tune, but it is a cortexa53 processor, why not use just cortexa53 ? (default to AArch32 ?)
raspberrypi4 has cortexa7 tune, but it is a cortexa72 processor, why not use just cortexa72 ? (default to AArch32 ?)
Things to consider:

different compiler may generate a difference
newer version of compiler may generate a difference
combining flags may generate a difference
tunes are created by compiler developers for a reason

Is there a reason why cortexa7 is common for raspberrypi3 and raspberrypi4? Shareable packages (why then 64-bit versions do not follow same route?)?
I'm currently researching if I can squeeze some performance with my current emulator library. Setting -mcpu=cortex-a53 (rpi3) for one specific emulator did not improve performance (probably compiler targeting armv7a instruction set, which is not correct it should be Armv8-A AArch32, so I need to redone this). But I wonder if I add some vectorization flags it may work better with -mcpu=cortex-a53 since this tells compiler what core is able to do. I think that cortexa7 can only limit possible outcomes. But I probably should test both ;-)

I tested my local cross compiler to check what -mcpu=cortex-a72 and -mcpu=cortex-a53 is changing.
armv7a-unknown-linux-gnueabihf-gcc -mcpu=cortex-a72 --help=target -Q
result: -march=armv8-a+crc+simd
armv7a-unknown-linux-gnueabihf-gcc -mcpu=cortex-a53 --help=target -Q
result: -march=armv8-a+crc+simd
armv7a-unknown-linux-gnueabihf-gcc -mcpu=cortex-a7 -mfpu=neon-vfpv4 --help=target -Q
result:  -march=armv7ve+simd
in addition there is also possibility to set fpu to crypto-neon-fp-armv8 to enable crypto instructions.
Some crypto libraries may use those extensions when compiler supports it in order to get processor acceleration.
I searched for information if there is possibility to use more registers in 32-bit context (I searched for something similar to https://en.wikipedia.org/wiki/X32_ABI) but I think this is not possible here - probably not safe route.
Hope this is enough to consider again cortex-a53 and cortex-a72 tunes.

@agherzan it might make sense now though, especially for rpi4

I don't have the time to pick this up but I'll gladly welcome PRs.

Ok, I'll probably send patches in near future. Thanks.

Thanks @dev-0x7C6 . Good stuff.


docs: minor typo correction

Hey, I just made a Pull Request!
Minor doco correction

Hey, I see that we had an underlying Prettier error. I made a PR to fix it, would you mind rebasing on that after it is merged? https://github.com/spotify/backstage/pull/2308

@freben sure thing, no worries

Welcome to Backstage @davidamitchell 🎉


[Proposal]: collect kubernetes events, and provide related alert rules

For now, promethues can use events to discover node, pod ,endpoints,ingress, then add the target into the monitor list.I plan to make prometheus walk further that collect kubernetes events then add the related rules to alert.
As I notice heapster can collect these events,but it should have some place to sink, such es.then use some trick to alert them for users. I don't think this kind of way is good. I think prometheus can collect them and sink them to the tsdb,send alert to the alertmanager. In this way, we not only can effectively monitor some bad situations such as NodeNotReady and  ImagePullFailed and NodeReboots, but also let this events be stored in a reliable places.
I made it in my local repository, If needed,I can finish this feature as soon as possible.

/assign gouthamve

Hi, have you taken a look at https://github.com/kubernetes/kube-state-metrics? We essentially alert on those situations using the above.
Having said that what you need is an exporter like kube-state-metrics to do the metric exposing which prometheus can scrape to ingest data.
I'm closing this as a usage question. To make your question, and all replies, easier to find, we suggest you move this over to our user mailing list, which you can also search. If you prefer more interactive help, join or our IRC channel, #prometheus on irc.freenode.net. Please be aware that our IRC channel has no logs, is not searchable, and that people might not answer quickly if they are busy or asleep. If in doubt, you should choose the mailing list.
Once your questions have been answered, please add a short line pointing to relevant replies in case anyone stumbles here via a search engine in the future.


fix #134 Navbar button in the landing page is not working

fix #134

Coverage remained the same at 58.781% when pulling a4a445eb661a5547878b6ce3e8454c74897566b7 on YumiChen:master into 077b71d41c06fc4c9557b28e49676d4c8b4f81b9 on cofacts:master.

Thanks for the fix!
The two files are generated from cofacts/g0v-grant-templates. I can help moving your piece to the grant template repo :)

With the summit on the horizon, let's merge this first and migrate to cofacts/g0v-grant-templates later.
@YumiChen thank you so much for the timely fix!

Thanks very much for the review! Sorry for committing to the wrong repo. Would make a pull request to the cofacts/g0v-grant-templates repo later!


Swashbuckle 5.0.0 + Enum + Autorest

I've raised the following issue with the Autorest team as I feel that their tool is at fault and not Swashbuckle, but maybe you guys will have some insight into what is causing the problem:
https://github.com/Azure/autorest/issues/3380
For clarification I am using Swashbuckle.AspNetCore v5.0.0 with the following schema filter, and I'm using the SerializeAsV2 option as Autorest beta doesn't work with the v3 swagger version either:
public class AutoRestSchemaFilter : ISchemaFilter {
        public void Apply(OpenApiSchema schema, SchemaFilterContext context) {
            var type = context.Type;
            if (type.IsEnum) {
                schema.Extensions.Add(
                    "x-ms-enum",
                    new OpenApiObject {
                        ["name"] = new OpenApiString(type.Name),
                        ["modelAsString"] = new OpenApiBoolean(true)
                    }
                );
            };
        }
    }

Which is producing what I believe is the correct format for the DocumentType enum that Autorest requires.

Well just please forgive me if i dont understand very well the issue but this works for me ...

Adding the same filter you are adding.

This line of code at the startup.

So instead of numbers and integers, I have real enums

And this is the autorest generated code:

BTW: Im using .Net Core 3, but just try to adapt the same approach to your project :), and I have to use the x-ms-enum extension because autorest was creating the same enum multiple times like GoalMeasurementUnit, GoalMeasurementUnit2, GoalMeasurementUnit3 and so on.

Oh dear, I am trying that and getting nowhere
I put a question on Stackoverflow

Closing due to age - please open a new issue if you still have this issue in the latest version of Swashbuckle.


Add CtrlBackspace binding

It would be great if there were a binding available for CtrlBackspace. I understand that not all terminals support this, but for those that do (at least everything I've tried on Linux) ^H is sent for CtrlBackspace.
This binding couldn't function in all terminals, but it would be very helpful in those that do. This would also help to abstract away some of the complexity of Backspace/CtrlH currently.

Ctrl-H is historically "backspace", whereas DEL (0x7F) is often bound to the key labeled backspace.  (Note that this is different on Macs, where there is not a backspace key but instead a Delete key.)
I've never seen Ctrl-Backspace send ctrl-H.  For example, neither iTerm nor Terminal on MacOS do this.
In fact, the binding for XTerm, based on terminfo, is that ^H (also noted as "\b" in C strings, i.e. hex code 0x07 I believe) is backspace (no control).
I think, what you think is happening, is that when you are pressing the backspace key, it sends "DEL" (0x7F), and when you press Ctrl-Backspace it is sending "backspace" (0x07).
Sadly, DEL (0x7F) doesn't actually appear in terminfo descriptions.  So what we do is assign it the special value, "KeyBackspace2", and most applications can treat this the same as "KeyBackspace".  If your terminal sends different values for whether Control is pressed or not, you should be able to distinguish this between KeyBackspace2 and KeyBackspace.  (Adding to the confusion is that some terminals have a definition for KeyDelete, which is a longer escape sequence.)
There is no standard way to handle Ctrl-Backspace that I'm aware of.
I'm going to close this for now, as its not really a valid request for enhancement (RFE), given the actual state of affairs.
(For the record, I recommend treating both KeyBackspace and KeyBackspace2 identically, and having them delete one character to the left of the cursor.  I recommend that KeyDelete be treated as a forward delete, and delete the character to the right of the cursor.)

Thanks for taking the time to explain that. This is my first experience trying to really understand how the terminal handles special characters under the hood, so it's helpful to have some context for this.
This issue and subsequent patch made me think that at least in some current terminals ^H is now used as CtrlBackspace.
I also tested this on my system. XTerm and gnome-terminal definitely send ^H on CtrlBackspace and ^? on Backspace. I've been trying to have CtrlBackspace delete whole words in micro as it does in other apps, and binding CtrlH to DeleteWord gives me the correct behavior, so I'm trying to understand if there is a more intuitive way to process these keys in tcell.
This looks like it is a relatively recent change in libvte. Here's the relevant code.


Response must be at least 5 bytes error Raspi

Hey guys,
Congrats on this awesome project!
I am using the Product Model:CF-RU5112 through serial port (directly connected to gpio txd/rxd) on the raspberry pi 3b.
I installed the libs and enabled serial connection through raspi-config but when i try to get reader info:

sudo python3 get-reader-info.py /dev/ttyS0
sudo python3 get-reader-info.py /dev/ttyAMA0

I am gettting unkown reader type: response must be at least 5 bytes.
Any idea what i am missing? Btw. The device shows a red light, i assume once it does a read the light will turn green for a sec.

I managed to get a bytearray index out of range:
Traceback (most recent call last):   File "get-reader-info.py", line 46, in <module>     print_reader_info(sys.argv[1])   File "get-reader-info.py", line 32, in print_reader_info     reader_info = get_reader_info(runner)   File "get-reader-info.py", line 15, in get_reader_info     reader_info = ReaderInfoFrame(runner.run(get_reader_info))   File "/home/pi/.local/lib/python3.5/site-packages/chafon_rfid/base.py", line 32, in run     return self.transport.read_frame()   File "/home/pi/.local/lib/python3.5/site-packages/chafon_rfid/transport.py", line 28, in read_frame     frame_length = length_bytes[0] IndexError: bytearray index out of range


Implement Motion Matching as an AnimationRootNode

As the API for motion matching evolves, its becoming clear that motion matching should be implemented as an AnimationRootNode, that receives its query inputs as a parameter. As I see it, the advantages to this would be:

Being able to mix whatever comes out of motion matching with other animation (like using MM for locomotion mixed with an animation for aiming a weapon).
Easier to implement blending when switching animations on MM queries

There are some changes required at the engine level to be able to do this:

https://github.com/godotengine/godot/pull/97020#issuecomment-2395130663
The _process method of AnimationRootNode is currently marked as deprecated, and a supported version of that might only be coming when structs are available in the engine (see this thread)

Are you working on this openly?

I am! I am starting to learn that the only way to do it on Godot's latest version is through a custom module, the GDExtension bindings aren't in a place where extending a AnimationRootNode is doable (and probably won't be until structs are in the engine). The way I see it right now we either:

Use a hacky fork of godot that allows us to set this up, until structs are implemented.
Refactor this repo to be a custom module instead. We then either eventually make this an official engine plugin, or turn it back into a GDExtension once extending AnimationRootNodes is supported by the engine.

I'm curious to know what you think!

I've done this before with a different project. This is a practical way of implementing motion matching.
https://github.com/V-Sekai/godot/tree/vsk-motion-matching-4.3/modules/motion_matching
https://github.com/V-Sekai/motion_matching

I use https://github.com/ingydotnet/git-subrepo to import a standalone git repo into a branch of godot engine.

This is perfect, making a submodule out of a directory of this repo is just what I need, I'll set that up. This repo has a working motion matching implementation, but I now think the correct way of doing it for a 1.0 version is to have motion matching queries run on animation nodes. The two big advantages of this approach imo:

We could blend motion matching output with other anims, especially useful for walking + aiming
If each motion matching node runs queries on a specific animation library, we could then use state machines to run queries on smaller libraries, and switch between them based on state. This would make queries run faster and choose more appropriate animations.

I saw V-Sekai and Remi's motion matching implementation, I also had the chance to discuss this with him!

I agree with this approach!

My dream for when we get the basic implementation is to also implement https://peizhuoli.github.io/walkthedog/index.html

You may have missed the branch for module https://github.com/V-Sekai/motion_matching/tree/module

Are you on discord? I exceeded my friend limit of 1000 so if we want to talk it'll have to be the V-Sekai discord here.
https://linktr.ee/chibifire

I am! I'll ping you on discord

Just joined the discord!

@fire
https://github.com/GuilhermeGSousa/godot-motion-matching/issues/41#issuecomment-2436441892
It is important to respect where the codes come from
https://github.com/V-Sekai/godot/tree/vsk-motion-matching-4.3/modules/motion_matching is basically copy from Remi without clearly acknowledging.
https://github.com/V-Sekai/motion_matching is simply clearly stating that it is a fork.
Both links provided come from one same source. One is a fork, One is copying without acknowledging.
In both cases, there are no evidence that the CI works.
This ethical in respecting others contribution is critical in Godot community project and the foundation of  trust-worthiness collaboration.

The code https://github.com/V-Sekai/godot/blob/vsk-motion-matching-4.3/modules/motion_matching/LICENSE clearly acknowledges Remi.

@fire
I appreciate your enthusiasm:
I want to trust your enthusiasm  I know your strengths :  Please make sure your codes are CI working before recommending merger.
When I work with Malcolm  This is what I learned from him

The primary HEAD of development is https://github.com/GuilhermeGSousa/godot-motion-matching/tree/engine-module.
The cicd for the branch is failing https://github.com/GuilhermeGSousa/godot-motion-matching/pull/42

So that's what I'm working on.

@fire
Yes,  please help this project to get the CI working in reliable way
I know you have a lot of experience in this area.
The community depends on you  :-)

Notes from トカゲ

To explain the fundamental design, AnimationTree does not have a process for playing back animations; AnimationNodeAnimation does all the work for playback
AnimationNodeAnimation generates/stores a timeline from the length of each animation, manages the playback position, and passes it to the AnimationMixer.
So, if you do not want to write such playback position management from scratch, you should refer to AnimationNodeTransitio or AnimationBlendSpace2D, which blend multiple AnimationNodeAnimation AnimationNode.
There you don't need to manage the playback position, just seek instructions and blend amount adjustments to the AnimationNodes connected as a result of the matching

I have marked all non motion-matching node discussions as offtopic.

Done! Yey!


u-button presents an activate state in u-modal

Environment

Operating System: Darwin
Node Version:     v20.3.0
Nuxt Version:     3.7.3
CLI Version:      3.9.0
Nitro Version:    2.6.3
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      app, css, modules, devtools, tailwindcss, ui, robots, components, content, runtimeConfig, typescript
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Version
v2.8.1
Reproduction

Description
Stick a u-button in a u-modal and the button starts off w/ the active? state, clicking elsewhere in the modal puts it back to a normal state
Additional context
No response
Logs
No response

Would you mind providing a reproduction on StackBlitz for example?

This is due to Headless UI Dialog component that automatically focus the first focusable element: https://headlessui.com/vue/dialog#managing-initial-focus

This is due to Headless UI Dialog component that automatically focus the first focusable element: https://headlessui.com/vue/dialog#managing-initial-focus

I see, its a potential feature for a CTA.  That is cool.  I would if we can maybe toggle it like maybe <u-modal noFocus> or be able to pass a ref of the one we want focused, and maybe passing false disables it?
I assume a current workaround would be to just place a hidden/invisible button at the top

workaround for now
<button class="opacity-0 w-0 h-0" />
<u-button icon="i-mdi-linkedin" :to="member.li" target="_blank" color="black" variant="link"  />

Not sure about this but have you tried using tabindex="-1" on the button so it doesn't focus?


The Splitting Enchantment from Apothesis doesn't work on Anvils

Issue Description:
The Splitting Enchantment from Apothesis doesn't work on Anvils
What happens:
The Splitting enchantment can be applied like normal, but when attempting to split the books by dropping the anvil on them, it doesn't split the books and behaves like a normal anvil.
What you expected to happen:
To split the books like the vanilla anvil does when enchanted
Steps to reproduce:

Install Apothesis and EnderIO together
Enchant Dark anvil with splitting
Attempt to Split Enchanted books with multiple enchantments on them by crushing them with the enchanted anvil
It fails to split the book

Affected Versions (Do not use "latest"):

EnderIO: 5.0.44
EnderCore: 5.0.57
Minecraft: 1.12.2
Forge: 2838
SpongeForge? no
Optifine? no
Single Player

Note: I did report to the dev of apothesis but they closed it and said it was up to other mods to implement it on their end
Your most recent log file where the issue was present:
wouldn't be useful

issue link for further reference https://github.com/Shadows-of-Fire/Apotheosis/issues/46

Issue of other mod implementing stuff that doesn't work with other mods.


add warning for older DR versions

Whenever someone access an old DR version, there should be a warning
"This version is not available, you will be redirected to the newest DR"
or something to that effect

I haven't implemented redirection, see an example here:
https://ztf.snad.space/dr7/view/633207400004730

ah this is enough so people know that a newer DR is available


keepFocus doesn't work in IE 11 or Microsoft Edge

We've set
app = new Application({
keepFocus: true
});
but the game doesn't have focus in IE 11 or Microsoft Edge when the game starts or when you are resuming the game after it's been paused. You have to click off the canvas but inside the frame for the game to regain focus.
Thanks for your help.

This can be fixed by applying the same document.domain on both the top window and the iframe window. In our case, setting both to "pbskids.org" seemed to fix this issue. I think the Container's contentWindow.focus(); call is silently failing due to a cross-domain permission error.

It turns out that we were calling preventDefault() on mouse events all the time, when we shouldn't have been, which in IE prevents focus from being applied to the iframe when you click on the canvas. As of version 0.4.15, you can set autoPreventDefault on your display to false when in IE (or when hasTouch on the Application is false).

Hi all, I'm currently in the process of sorting these issues to start a new dev/fixes process. Has this been resolved based on @andrewstart 's answer? If so, can you mark accordingly?

Yeah, we did as Derek described and that resolved it. Thanks.

Thank you!


Project > Browse: page crashes when hovering mouse over an entity of type Project

Describe the bug
Page crash when hovering with the mouse above an entity
What part of Nexus is affected

[x] Fusion
[ ] Delta
[ ] CLI
[ ] Documentation

To Reproduce
Steps to reproduce the behavior, e.g. for Fusion:

Go to Staging, 'Admin -> Project bbp -> nmc'
In that page there should be a "Project" entity named "nmc" on the left
Just hover over it
See error

Expected behavior
No page crash, lol
Screenshots

Additional context
Env: Staging
User: adietz

Happens in DEV too.
Nexus Delta v1.7.0+23-163b2734-SNAPSHOT
Nexus Fusion v1.7.0-25-gcf2fab81


ref_meg trouble

My MEG data says this now with essentially anything I do:
~/tools/mne-python/mne/io/pick.py in pick_info(info, sel, copy)
    406                     'compensation channels are missing: %s\n'
    407                     'Either remove compensation or pick compensation '
--> 408                     'channels' % (current_comp, comps_missing))
    409             else:
    410                 logger.info('Removing %d compensators from info because '

RuntimeError: Compensation grade 3 has been applied, but compensation channels are missing: ['BG1-3609', 'BG2-3609', 'BG3-3609', 'G11-3609', 'G12-3609', 'G13-3609', 'G22-3609', 'G23-3609', 'P11-3609', 'P12-3609', 'Q11-3609', 'Q12-3609', 'Q13-3609', 'R12-3609', 'R13-3609', 'R22-3609', 'R23-3609']
Either remove compensation or pick compensation channels

... what? Happens, for example, when I do raw.pick_types(meg=True, ref_meg=False).
I can raw.apply_gradient_compensation(0), but then my data looks kind of shitty.

This works:
picks = mne.pick_types(raw.info, meg=True, ref_meg=False)
mne.viz.plot_topomap(raw._data[picks], mne.pick_info(raw.copy().apply_gradient_compensation(0).info, picks));

But it feels very wrong. And it doesn't work for many functions.

We have had a number of these. Should be fixed by #5342, feel free to comment on that proposal

@jona-sassenhagen what is a gist that allows to replicate this issue? you have a number of tiny CTF files in the mne-testing-data folder.

@jona-sassenhagen a fix along these lines https://github.com/mne-tools/mne-python/pull/5388
please share a gist to know how we can fix this.

@jona-sassenhagen can you write a minimal example from a testing or mne/io/data/*.fif file? It will make it easy for us to test that fixes/workarounds from #5342 work. It would be good to get to this example in the next week so a fix can be made the next week to make it into 0.17.

@jona-sassenhagen any chance to make this gist quickly? There is a PR open to take care of most of these problems and it would be great to have this test case

Okay actually I think this does it:
import os.path as op
import mne
raw = mne.io.read_raw_fif(op.join(op.dirname(mne.__file__), 'io', 'tests',
                                  'data', 'test_ctf_comp_raw.fif'))
evoked = mne.EvokedArray(raw[:, :10][0], raw.info)
evoked.pick_types(meg=True, ref_meg=False)
evoked.plot_topomap()

It fails on master but passes on the open PR, fortunately!


Implement search, pagination on connection, issuance and verification.

Acceptance criteria:
Implement Search and Pagination for

[x] Connection
[x] Issuance
[x] Verification

@nishad-ayanworks @vivekayanworks
This task depends on https://github.com/credebl/platform/issues/312 task which is assigned to @KulkarniShashank.

@sunilbade Please review the changes on DEV.

@sanjay-k1910 Displaying an error message and corresponding text on the user interface when there are no records found in the connection, issuance, and verification processes.


Objects create an unexpected way of recurring

let Math.fibonacci = fn Math, n ->
  if n < 2
  then 1
  else Math.fibonacci (n - 2) + Math.fibonacci (n - 1)
in Math.fibonacci 5

Is this correct/acceptable?

This actually fixes #99 pretty well.

Also, the type system should prevent this because Math.fibonacci can't be typed inside itself.


Implement data persistence for todo item components

Currently todo items are represented as todoComponents, and lack persistence (data is lost when page is refreshed). Application would be much more usable with the addition of data persistence. Using an angular service, should implement methods to store and retrieve user data from the application so that tasks can be defined then resumed as-needed when users leave then return to the site.

[ ] Implement basic data persistence using filler data (use a service to handle GETting and POSTing/PUTting data)
[ ] Convert existing task components to make use of httpRequest and local storage files for data persistence.
[ ] Implement saving and loading methods, control this functionality via button controls for easy access.

Using a service which implements a local storage interface makes more sense than using JSON files, might have difficulty getting these files to read/write properly from the browser. Will instead focus on defining an Angular service to store information in Local Storage.

c5dcfa608a70df7f238069dfc68abdb64cb32e97 initial framework for data storage service, needs to support GETting, POSTing, PUTting information as TodoItemComponent objects.

c9bf028b2c22db3cade873d382e87f77d494f75c Basic get, set, delete and clear functions implemented for data storage service, currently stored values are printed to the console using a series of three buttons to easily test functionality. Stored data persists appropriately, next step is to feed in appropriate data to create new instances of task components and have them persist in the service.

Data persistence implemented, todoComponent instances now persist between page refreshes and information can be saved/loaded with button controls for ease of use. Additional reset functionality implemented which brings application back to initial values.


Fixes for x11rdp build

I'm trying to add DESTDIR support to buildx.sh, which would allow packaging it without sudo and other dirty magic. I'm not including that change, but I'm including smaller improvements that I made while working on a more ambitious goal.
buildx.sh had implicit dependencies on an existing X11 installation. By reordering the packages, those implicit dependencies are removed.

Looks good. No problem to build.


Corrected formatting errors in src/angular.js

Corrected formatting errors on lines 258, 695, 696, 1096, 1219, 1451, and 1536 by adding periods at the end of single line comments that were missing them in order to be consistent with file.
Capitalized the first letter in the first word of the comments on lines 695, 696, and 1096, to be consistent with the formatting of the rest of the file.
Added a space after the // in the comment on line 1536 to be consistent with file.

I've signed the CLA!


Put time format and time zone in params instead of params.home

Currently, the timeZone and timeFormat parameters are in the params.home section of the configuration file. This is not consistent with the dateFormat that is directly in the params section and I don't see why this setting should be just for the home page.
The advantage of having the settings in the params section is with multi-lingual sites : you can have "HH:mm" for European version and "h:mm A" for US version of the page. If the setting is in params.home the whole params.home section has to be duplicated. Indeed, if you have a language.xx.params.home section, it does not override the params.home with the new settings, but it replaces the whole section.

While I see that this can be useful in certain scenarios, I'm not convinced that this change is needed:

I see this rather as a flaw in hugo then is this theme. The override behaviour is at least unexpected.
The time zone is non of the key feature of the theme. There has been discussion about if we want to support in the future.
This is not a bugfix. It's reasonable to require a full copy&past of the home section.

Thank you for your quick reply.
You are right, the override behavior for languages was a surprise for me too.
Having to duplicate the full home section hurts my DRY principle... but I accept that you might find this reasonable.
So I guess that I have to live with my forked version of the theme :-( Anyhow, thank you for making the "Introduction" theme available.
BTW, I also have a patch for updating the localtime every second. The text says "My current local time is" but it was just current when the page was loaded. Are you interested in a PR ?

Anyhow, thank you for making the "Introduction" theme available.

BTW, I also have a patch for updating the localtime every second. The text says "My current local time is" but it was just current when the page was loaded. Are you interested in a PR ?

That would be great!


No such file or directory: 'RUNS/KittiSeg_pretrained.zip'

Hi,
After downloading the data, installing the requirements.txt packages and tensorflow I attempted the demo and got this error.
python demo.py --input_image data/demo/demo.png
2017-03-10 07:50:36,788 INFO No environment variable 'TV_PLUGIN_DIR' found. Set to '/home/lap/tv-plugins'.
2017-03-10 07:50:36,788 INFO No environment variable 'TV_STEP_SHOW' found. Set to '50'.
2017-03-10 07:50:36,788 INFO No environment variable 'TV_STEP_EVAL' found. Set to '250'.
2017-03-10 07:50:36,788 INFO No environment variable 'TV_STEP_WRITE' found. Set to '1000'.
2017-03-10 07:50:36,788 INFO No environment variable 'TV_MAX_KEEP' found. Set to '10'.
2017-03-10 07:50:36,788 INFO No environment variable 'TV_STEP_STR' found. Set to 'Step {step}/{total_steps}: loss = {loss_value:.2f}; lr = {lr_value:.2e}; {sec_per_batch:.3f} sec (per Batch); {examples_per_sec:.1f} imgs/sec'.
2017-03-10 07:50:36,788 INFO Download URL: ftp://mi.eng.cam.ac.uk/pub/mttt2/models/KittiSeg_pretrained.zip
2017-03-10 07:50:36,789 INFO Download DIR: RUNS
Traceback (most recent call last):
File "demo.py", line 216, in
tf.app.run()
File "/media/lap/data/.virtualenvs/KittySeg/local/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 44, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "demo.py", line 124, in main
maybe_download_and_extract(runs_dir)
File "demo.py", line 87, in maybe_download_and_extract
download_name = tv_utils.download(weights_url, runs_dir)
File "incl/tensorvision/utils.py", line 48, in download
reporthook=_progress)
File "/usr/lib/python2.7/urllib.py", line 98, in urlretrieve
return opener.retrieve(url, filename, reporthook, data)
File "/usr/lib/python2.7/urllib.py", line 249, in retrieve
tfp = open(filename, 'wb')
IOError: [Errno 2] No such file or directory: 'RUNS/KittiSeg_pretrained.zip'
Did I miss a step?

No, this is strange. The script should download the file ftp://mi.eng.cam.ac.uk/pub/mttt2/models/KittiSeg_pretrained.zip to dir RUNS. Did the download complete? Maybe try manually download that file.

Firts attempt log:
(KittySeg) lap@home:/media/lap/data/projects/KittiSeg (master)*$ wget ftp://mi.eng.cam.ac.uk/pub/mttt2/models/KittiSeg_pretrained.zip
--2017-03-10 13:48:01--  ftp://mi.eng.cam.ac.uk/pub/mttt2/models/KittiSeg_pretrained.zip
=> ‘KittiSeg_pretrained.zip’
Resolving mi.eng.cam.ac.uk (mi.eng.cam.ac.uk)... <IP_ADDRESS>
Connecting to mi.eng.cam.ac.uk (mi.eng.cam.ac.uk)|<IP_ADDRESS>|:21... connected.
Logging in as anonymous ...
Log-in incorrect.
After couple of minutes when I retried it went well. Perhaps the authorization requirement was lifted meanwhile.

The FTP server is randomly allowing the download to happen.

I will look into this. Although the ftp server is not under my control. So I there might not be to much I can do. :pensive:

Ok, the issue was, that the server did only allow up to 64 for anonymous connections at the same time. The limit is now increased to 256 and we hope that this is enough for now.
The repository recently went viral, this has increased the overall download request quite a bit ;).

Maybe we should collectively share the data to ease up load on the server. Is a torrent a legal option?

Legally I don't see any problems using a torrent. I see however two practical issues. Firstly my department blocks any UDP and torrent traffic. So I won't really be able to seed.
Secondly, I much prefer a simple setup pipeline. Currently the user only needs to run one script and the data files are automatically loaded and copied into the right dir. This has the charm, that no much can go wrong.
So let's hope that the increase to 256 connections is more enough for now ;). I have been trying to download a couple of times within the last hours and had no problems.

Yes, thanks, it is working now.

Hi @MarvinTeichmann,
It seems like the download limit for KittiBox_pretrained.zip has been reached again!
Are you able to increase the download limit?

Thanks for informing me.  The connection limit is reset automatically once per hour. So if you try again in a few minutes it should work.

Hi @MarvinTeichmann
I guess the error is due to not having RUNS directory in the project as when I created the directory and run again, the script has started to download the file.

Thanks gizmowiki! Yeah it is correct!

Tried several times to download the KittiSeg_pretrained file in the past couple of days, from command line and through ftp. Really, really slow download, and it failed every time. Could somebody put the file up on a faster server or dropbox or something? I would really like to run the demo and give this a try. Thanks

I downloaded the file and put it in RUNS directory. It is still not working and when I try to run demo.py again then it tries to download again. What should I do?

I have been constantly trying to download but without success .Could someone provide it me?@chauhan-uk?

@zishanahmed08 I used the link given in console to download via IDM. Decent download speed.
Here is the link: ftp://<IP_ADDRESS>/pub/mttt2/models/KittiSeg_pretrained.zip

@chauhan-uk I am unable to download from the link even after repeated attempts.Coul you please share your local copy.My mail id is<EMAIL_ADDRESS>

If the owner has no problem I have stored the file in Dropbox. You can access it from here

I was having the same error. I manually created a RUNS directory and then reran the command "python demo.py --input_image data/demo/demo.png" and it began the KittiSeg_pretrained.zip download automatically.

@kreid415 I used yours method. It works. Thank you

@chauhan-utk I used your method. It works. Thank you!

@kreid415 I also used the same method and it works Thank You!

If the owner has no problem I have stored the file in Dropbox. You can access it from here

Hello friend. Would you mind to send me the file?
I simply can not download it. Thank you.


Releasing Logos2

After months of waiting for a response from @maciejhirsz, regarding the access to publishing to crates.io, I think it is better to move on and publish a new crate, logos2 (and related).
The libraries' name is the same, but crates have a 2 appended at the end.
This will allow to community to continue working on Logos, and publishing new releases when possible.

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

Comparison is base (96353f2) 19.97% compared to head (e7e0a11) 20.78%.

:exclamation: Current head e7e0a11 differs from pull request most recent head 6bdee19. Consider uploading reports for the commit 6bdee19 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #365      +/-   ##
==========================================
+ Coverage   19.97%   20.78%   +0.80%
==========================================
  Files          34       32       -2
  Lines        2138     2074      -64
==========================================
+ Hits          427      431       +4
+ Misses       1711     1643      -68

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Disable common crates

Would it be possible to add a variable to disable installing common crates? or better yet, create a variable that allows you to define which crates to be installed by default?

Hey @afonso360 thanks for question. I originally wrote this in a hurry to simply stamp out the crates and targets I tend to use personally, but I have no issue with making a listing for the crates installed by default.
Expect the change to appear this weekend.

Hey @afonso360,
I went ahead and added the ability to define crates, toolchains, or targets from the defaults/main.yml settings. This should make the role more accessible. At the same time, I'm now working on getting rustup module for ansible to make this role deprecated in due time. Till then, enjoy the abilities here. 👍


[1.10.2] world.getEntitiesWithinAABB Always returning empty

Whenever I call world.getEntitiesWithinAABB, I always get an empty list.
https://github.com/Thutmose/Pokecube/blob/1.10/Pokecube Core/src/main/java/pokecube/core/events/handlers/SpawnHandler.java#L605-L606
This is the prime location I am calling it, I use it to determine if there are too many mobs in the area before spawning more.  This method is called whenever WorldTickEvent is fired, and only server side and if the phase is Phase.END.
When I add in a debug print, like this:
if (world.getTotalWorldTime() % 20 == 0) System.out.println(num + " " + list.size() + " " + box);
on line 612 of the above class, it prints this without spongeforge:
93 96 box[-359.4350225891916, 4.0, 72.5692321820978 -> -295.4350225891916, 142.0,<PHONE_NUMBER>820978]
and this with spongeforge:
0 0 box[-359.4350225891916, 4.0, 72.5692321820978 -> -295.4350225891916, 142.0,<PHONE_NUMBER>820978]
I only spawn entities if the first of those two numbers is less than a configurable spawn rate, normally set to 10, so when it always returns 0, my mobs never stop spawning.
This also persists if I have the global.conf as follows:
http://pastebin.com/Rpn5TpMD
This was tested with spongeforge 1550 for minecraft 1.10.2, using Minecraft Forge 2007, and the following assortment of mods:

where the version of Pokecube Core there was modified to make those above prints.
This issue was mainly brought to my attention due to this: https://github.com/Thutmose/Pokecube/issues/107

@bloodmc: I think this issue is related to the collision patches.

It wasn't fixed by disabling collision patches though, that was tried before I posted the issue here.

I found why this happens, the issue is as follows:
https://github.com/SpongePowered/SpongeCommon/blob/bleeding/src/main/java/org/spongepowered/common/mixin/core/world/MixinChunk.java#L423
Here, the list of entities is cleared if the event is null or canceled.  This causes a problem if the event is null for some reason.
https://github.com/SpongePowered/SpongeCommon/blob/97b566d640882d898fb07c1edbe2f74fb068852b/src/main/java/org/spongepowered/common/event/SpongeCommonEventFactory.java#L206
Here a null cause is assigned if not from active entity, tile entity or block snapshot.  This then results in the event returning null, thereby clearing the list in MixinChunk.  This is why my list is always empty, I am not calling it from either of those three, I am calling it from a class which listens for WorldTickEvent from forge.

Fixed in the latest commit.


Usage Q - Render to MTLImage?

Hello
Firstly, thank you for this project!
I have an existing metal app and I'd love to integrate MetalPetal filters, and I dont see an obvious way to 'render to a texture'. I have an existing texture I'd love to process via an existing command encoder / command buffer.
Im new to MetalPetal, so apologies If I don't see an obvious mechanism. Ive attempted to use a MTIImageRenderingContext to resolve the output of a filter to a texture, but received a
Context is peformaning a render-releated operation without aquiring the renderingLock.'
Error.
The code:
Create a context , image rendering context and a filter:
self.metalPetalContext = MTIContext(device: MTLCreateSystemDefaultDevice()!)
self.metalPetalImageRenderingContext = MTIImageRenderingContext(context: self.metalPetalContext)
self.metalPetalBilateralFilter = MTISurfaceBlurFilter(radius: 11)

Create a MTIImage from an existing image and process it through the filter:
let inputMTIDepthImage = MTIImage(texture: depthTexture!, alphaType: .alphaIsOne)
self.metalPetalBilateralFilter.inputImage = inputMTIDepthImage
do {
    let imageResolutionPromise = try self.metalPetalImageRenderingContext.resolution(for: self.metalPetalBilateralFilter.outputImage!)

    ... <<< receive error on the last line
}

See https://github.com/MetalPetal/MetalPetal/issues/72

Hi @vade
Added a method to render to a texture.
https://github.com/MetalPetal/MetalPetal/commit/1ec18c5f58e5e49c264904fbf86f64b6762ab070
You may want to use the master branch to try this feature.
pod 'MetalPetal/Swift', :git => 'https://github.com/MetalPetal/MetalPetal.git'


Is it possible to send both cache and network response for a single request

i would like to fetch data from cache first and then send network request, so that the user will not feel the delay of network response.
Is there any possible tweak for this. please let me know.

Probably a dupe of #1083.
You can make two requests for now. The first should use CacheControl.FORCE_CACHE and the second can just be a normal request.


Reorder saliency maps for h-cls according to labels in .xml meta

What does this PR do?
Reorder saliency maps for h-cls according to labels in .xml meta
Fixes # CVS-132079
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

@sovrasov  Please review Python part


Docs for app rdm 0.9.x

Updated docs for the release

I think run-tests.sh just needs to be made executable. Will deal with it later today if no one gets to it.


Load "Aubio" event output and generate keyframes or show markers

Aubio processes audio files and outputs a list of event timestamps. We could import such files and automatically generate keyframes, or add markers on the graph.

Implemented in Audio analyser (see https://github.com/rewbs/sd-parseq#audio-analyser-for-automatic-keyframe-creation-from-audio-data ).


Maximum recursion depth reached

Thanks a lot for this awesome notebook! One problem I'm running into is I'm hitting the maximum recursion depth when trying to generate more than about 200 images. My setup has 8 layers, with 1-5 variants in each, but if I set TOTAL_IMAGES higher than about 250, I hit the limit. I'm trying to generate 10,000 images, so kind of stuck.
This is the error I'm seeing:
  File "/Users/zac/.pyenv/versions/3.9.4/lib/python3.9/random.py", line 498, in choices
    return [population[bisect(cum_weights, random() * total, 0, hi)]
  File "/Users/zac/.pyenv/versions/3.9.4/lib/python3.9/random.py", line 498, in <listcomp>
    return [population[bisect(cum_weights, random() * total, 0, hi)]
RecursionError: maximum recursion depth exceeded in comparison

One detail is I used nbconvert to convert the notebook to a python script so it can be run via script.
I did find to add this line:
import sys
sys.setrecursionlimit(65532)

However, that just changes the error to segmentation fault when I try to go higher than 250. Any thoughts?

You usually get this error when the number of tokens you are trying to produce is greater than what your set can support. Try reducing the number here: TOTAL_IMAGES = 30


perf: improve ada::can_parse

Relates to: https://github.com/ada-url/ada/issues/377

It's still like a POC, there might be a better place to put it, also even a better function name, I am still poking around.

Benchmarks
main branch:
-------------------------------------------------------------------------------------
Benchmark                           Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------
BasicBench_AdaURL_CanParse   19704356 ns     19705721 ns           36 GHz=4.29878 cycle/byte=9.59934 cycles/url=833.791 instructions/byte=23.596 instructions/cycle=2.45809 instructions/ns=10.5668 instructions/url=2.04953k ns/url=193.96 speed=440.892M/s time/byte=2.26813ns time/url=197.008ns url/s=5.07594M/s

current branch:
-------------------------------------------------------------------------------------
Benchmark                           Time             CPU   Iterations UserCounters...
-------------------------------------------------------------------------------------
BasicBench_AdaURL_CanParse   14030751 ns     14029900 ns           49 GHz=4.274 cycle/byte=6.86874 cycles/url=596.613 instructions/byte=17.2687 instructions/cycle=2.5141 instructions/ns=10.7453 instructions/url=1.49995k ns/url=139.591 speed=619.255M/s time/byte=1.61484ns time/url=140.264ns url/s=7.12942M/s

instead of creating a copy of it, we could also just add a parameter to the parse_url function, like store_values=true, and for the can_parse we set it to false.

one example, url.update_base_search is called a few times, and it calls ada::unicode::percent_encode.

I'd love to know what you guys think about it @anonrig @lemire

I think we may want to keep...
template <typename result_type = ada::url_aggregator>
result_type parse_url(std::string_view user_input,
const result_type* base_url = nullptr);

as you have done, at least initially, so we don't mess up our signatures and it is less invasive. But we could add...
template <typename result_type, bool store_values>
result_type parse_url_impl(std::string_view user_input,
const result_type* base_url = nullptr);

And then the implementation of parse_url would just be...
template <typename result_type>
result_type parse_url(std::string_view user_input,
const result_type* base_url) { return parse_url_impl<result_type,true>(user_input); }

and can_parse would just call parse_url_impl<result_type,false>.
This should be nice because store_values will be a compile-time constant, so you can just branch on it, without any runtime cost.
Thoughts?

nice!! it looks good to me

@lemire's suggestions looks really good, and this is amazing work @CarlosEduR. Thank you for doing this! I'm so excited!

I appreciate the support, guys... I am working on it. 👨🏻💻

with these small changes we go from this:
BasicBench_AdaURL_CanParse   19646497 ns     19645213 ns           36 GHz=4.29206 cycle/byte=9.6616 cycles/url=839.199 instructions/byte=23.3987 instructions/cycle=2.42183 instructions/ns=10.3946 instructions/url=2.03239k ns/url=195.523 speed=442.25M/s time/byte=2.26117ns time/url=196.403ns url/s=5.09157M/s

to this:
BasicBench_AdaURL_CanParse   13263878 ns     13263297 ns           53 GHz=4.27177 cycle/byte=6.5079 cycles/url=565.271 instructions/byte=16.6601 instructions/cycle=2.55998 instructions/ns=10.9357 instructions/url=1.44709k ns/url=132.327 speed=655.048M/s time/byte=1.52661ns time/url=132.6ns url/s=7.54149M/s

I've noticed the update_base_hostname also cost a good amount for some cases, it's called by the parse_host. I was wondering if there we could avoid calling this update_base_hostname without affecting the can_parse/parse_host functionality. I'd like to hear what you guys think about it.
For instance right here, by adding the if(store_values) around this code, we go from the last value url/s=7.54149M/s to url/s=11.1449M/s. Tests keep passing, but I am worried we are not covering other possible cases.
ada_log("HOST parsing ", host_view, " href=", url.get_href());
// Let host be the result of host parsing host_view with url is not
// special.
if (host_view.empty()) {
  url.update_base_hostname("");
} else if (!url.parse_host(host_view)) {
  return url;
}
ada_log("HOST parsing results in ", url.get_hostname(),
        " href=", url.get_href());

// Set url's host to host, and state to path start state.
state = ada::state::PATH_START;

current perf report:

've noticed the update_base_hostname also cost a good amount for some cases, it's called by the parse_host. I was wondering if there we could avoid calling this update_base_hostname without affecting the can_parse/parse_host functionality. I'd like to hear what you guys think about it.

In your example, it is called when host_view.empty() returns true. Then we call url.update_base_hostname(""). Is this really a hot function?
I am somewhat surprised that we are frequently setting the hostname to the empty string. But if it is common, then we can certainly try to optimize it.

In your example, it is called when host_view.empty() returns true. Then we call url.update_base_hostname(""). Is this really a hot function?
I am somewhat surprised that we are frequently setting the hostname to the empty string. But if it is common, then we can certainly try to optimize it.

I updated the code a little bit more and ran a benchmark to check, seems most of it is coming from the parse_host.
Code updated, it's only avoiding the parse_host function:
if (host_view.empty()) {
  url.update_base_hostname("");
} else {
  if (store_values) {
    if (!url.parse_host(host_view)) {
      return url;
    }
  }
}

Benchmark result:
BasicBench_AdaURL_CanParse    9412687 ns      9412250 ns           75 GHz=4.25503 cycle/byte=4.56398 cycles/url=396.423 instructions/byte=11.8192 instructions/cycle=2.58966 instructions/ns=11.0191 instructions/url=1026.6 ns/url=93.1659 speed=923.062M/s time/byte=1083.35ps time/url=94.099ns url/s=10.6271M/s

@CarlosEduR Can you also share before/after when you share your benchmark result? It's hard to understand the impact :-)

@CarlosEduR Can you also share before/after when you share your benchmark result? It's hard to understand the impact :-)

sure... currently:
before
BasicBench_AdaURL_CanParse   19646497 ns     19645213 ns           36 GHz=4.29206 cycle/byte=9.6616 cycles/url=839.199 instructions/byte=23.3987 instructions/cycle=2.42183 instructions/ns=10.3946 instructions/url=2.03239k ns/url=195.523 speed=442.25M/s time/byte=2.26117ns time/url=196.403ns url/s=5.09157M/s

after
BasicBench_AdaURL_CanParse   13263878 ns     13263297 ns           53 GHz=4.27177 cycle/byte=6.5079 cycles/url=565.271 instructions/byte=16.6601 instructions/cycle=2.55998 instructions/ns=10.9357 instructions/url=1.44709k ns/url=132.327 speed=655.048M/s time/byte=1.52661ns time/url=132.6ns url/s=7.54149M/s

Is this ready to land? @CarlosEduR @lemire?

Is this ready to land? @CarlosEduR @lemire?

Yeah, I can say it is. There might be more places to avoid allocation still, but I don't think they'll change the perf that much.

Last benchmark
before
BasicBench_AdaURL_CanParse   19773135 ns     19771058 ns           36 GHz=4.268 cycle/byte=9.65297 cycles/url=838.45 instructions/byte=23.3984 instructions/cycle=2.42396 instructions/ns=10.3455 instructions/url=2.03237k ns/url=196.45 speed=439.435M/s time/byte=2.27565ns time/url=197.661ns url/s=5.05916M/s

after
BasicBench_AdaURL_CanParse   13270228 ns     13269593 ns           53 GHz=4.29853 cycle/byte=6.50488 cycles/url=565.009 instructions/byte=16.6601 instructions/cycle=2.56117 instructions/ns=11.0093 instructions/url=1.44709k ns/url=131.442 speed=654.737M/s time/byte=1.52733ns time/url=132.663ns url/s=7.53791M/s