Update SHT3X.cpp in order to work with Hat ENV III

Wire.write() takes arguments if this device is a hat. I couldn't figure out how to detect if this device is a hat without breaking it, but if we remove it and instead the caller of this device executes the Wire.write() function with their desired parameters, this works.
This fixes my issue encountered in #9 by using the following example code (sht30.detectDevice() was not detecting this was a hat for me, so I just forced Wire.begin(0, 26)):
#include <M5StickCPlus.h>
#include "M5_ENV.h"

SHT3X sht30;
QMP6988 qmp6988;

float tmp      = 0.0;
float hum      = 0.0;
float pressure = 0.0;

void setup() {
    M5.begin();             // Init M5StickCPlus.  初始化M5StickCPlus
    M5.Lcd.setRotation(3);  // Rotate the screen.  旋转屏幕
    Wire.begin(0, 26);

    qmp6988.init();
    M5.lcd.println(F("ENVIII Hat(SHT30 and QMP6988) test"));
}

void loop() {
    pressure = qmp6988.calcPressure();
    if (sht30.get() == 0) {  // Obtain the data of shT30.  获取sht30的数据
        tmp = sht30.cTemp;   // Store the temperature obtained from shT30.
                             // 将sht30获取到的温度存储
        hum = sht30.humidity;  // Store the humidity obtained from the SHT30.
                               // 将sht30获取到的湿度存储
    } else {
        tmp = 0, hum = 0;
    }
    M5.lcd.fillRect(0, 20, 100, 60,
                    BLACK);  // Fill the screen with black (to clear the
                             // screen).  将屏幕填充黑色(用来清屏)
    M5.lcd.setCursor(0, 20);
    M5.Lcd.printf("Temp: %2.1f  \r\nHumi: %2.0f%%  \r\nPressure:%2.0fPa\r\n",
                  tmp, hum, pressure);
    delay(2000);
}

Hi @Josecc - I have done the exact same here, but I still get no readings from my ENVIII Hat device on the M5StickCPlus.  Baffled here... 😂

@reflectingme https://github.com/m5stack/M5Unit-ENV/commit/f188c61511f2298aa0e3e84176948f36680b9110

Thanks @Tinyu-Zhao - all sorted thanks.


Unable to import module 'main': No module named 'slack_sdk'  AWS Lambda Python 3.10

I am trying to deploy a AWS Lambda with the following code:
main.py
import os
import slack_sdk
slackBotToken = os.environ["BOT_TOKEN"]
slack_client = slack_sdk.WebClient(token=slackBotToken)

requirements.txt:
slack_sdk
(Share the commands to run, source code, and project settings (e.g., setup.py))
Expected result:
It should initialize the slack client and then I can work with slack api's to work with slack apis to handle events
Actual result:
Errors in Cloud Watch Logs:
2023-04-23T21:26:58.505+02:00Copy[ERROR] Runtime.ImportModuleError: Unable to import module 'main': No module named 'slack_sdk'Traceback (most recent call last): | [ERROR] Runtime.ImportModuleError: Unable to import module 'main': No module named 'slack_sdk' Traceback (most recent call last):

Hi @ankit-ghub, thanks for asking the question!
The reason why the slack-sdk is not available on your AWS Lambda runtime is that your packging process does not include the dependency for some reason. This is not specifically caused by this SDK. You will see the same error with any other additional dependencies as long as you deploy your code in the same way.
There are many ways to deploy your Python code with dependencies. Just for your information, here are a few resources I can share,

https://github.com/slackapi/bolt-python/tree/main/examples/aws_lambda
https://www.serverless.com/blog/serverless-python-packaging/
https://docs.aws.amazon.com/cdk/api/v1/python/aws_cdk.aws_lambda_python/README.html

but I'd suggest checking AWS's official documents and their forums to learn and decide how you manage dependencies and zip packaging for AWS Lambda deployement. We are happy to help you out as much as we can but we are not AWS experts. So, if you have further general questions on AWS Lambda function deployment, I'd recomemnd asking the questions in AWS commmunities.
I hope this helps!


feat(map): Scale down icons/labels as the map/globe is zoomed out.

Demo Here
This attempts to mimic the behavior of Google Earth, where icons and labels are scaled/hidden when zooming far out. The general goal with this approach was to get the behavior as close as possible, without impacting performance.

OpenLayers: Mixin the image/label canvas renderers to apply the scale value without modifying OpenLayers style objects. This avoids changing individual styles on features, which we know to be costly. I did not scale label opacity (like Cesium/GE) either, because that would require manipulating color strings on each render. Instead they're hidden (scale = 0) at roughly the same level.
Cesium: Use Cesium's NearFarScalar to scale billboards/labels, and to fade out labels.

There is one potentially odd side effect to our Cesium highlight behavior - highlighted items will appear at normal size. This happens because we adjust eyeOffset to put highlighted items immediately in front of the camera, so they're always visible. Because they're moved closer to the camera, Cesium will not scale them. I'm not sure if that should be considered a bug or a feature, but it is inconsistent with 2D behavior and would probably require a hack to make them consistent.
Resolves #374.

Tested, looks good.

This is causing our standard point features to look very small at low zoom levels, to the point where I think it's going to bug people. It's a pretty major UX change that affects all vector layers.
Is there some tuning work that we can do here to increase the minimum zoom size? Or some way to make it not affect point styles? I think the point of doing this was really more for non-point icons.


Add server bind address to proxy webserver

Proxy webserver does not always bind to right network interface.
This provides a a parameter to configure it and assign "<IP_ADDRESS>" as default.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

No needed


How can I run Tau Prolog?

In the README, we are advised to include tau-prolog.js via:

<script src="tau-prolog.js"></script>

However, there is no tau-prolog.js in this repository, and so it remains unclear how to run it.
Could you please include a small sample page in the repository that starts a session, or shows basic interaction with the system? Thank you!

Hi @triska. You are right, the README is somewhat outdated. This section of the manual should help you: http://tau-prolog.org/manual/a-simple-tutorial

Thank you! The manual also mentions tau-prolog.js: Where is this file? Should it be included in this repository?

When I run npm install tau-prolog in the repository directory, I get:

$ npm install tau-prolog
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "tau-prolog" under a package
npm ERR! also called "tau-prolog". Did you name your project the same
npm ERR! as the dependency you're installing?
npm ERR!
npm ERR! For more information, see:
npm ERR!

The file tau-prolog.js is generated when you download a custom version from Downloads section (it generates a file with the core and the modules you want).
You are working with sources, so in your case:

You can also download the sources separately and add them to the web page one by one. In that case, keep in mind that the core script must be loaded before any other Tau Prolog script since the mechanism that allows instantiating modules is defined on the core. Else, the library won't work.
<script type="text/javascript" src="tau-prolog/core.js"></script>
<script type="text/javascript" src="tau-prolog/lists.js"></script>

This is for the browser version, so you have to create an HTML page like this:
<!doctype html>
<html>
    <head>
        <script type="text/javascript" src="tau-prolog/core.js"></script>
        <script type="text/javascript" src="tau-prolog/lists.js"></script>
        <script type="text/javascript">
var session = pl.create();
// ...
        </script>
    </head>
    <body>
    </body>
</html>

When I run npm install tau-prolog in the repository directory, I get:
$ npm install tau-prolog
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "tau-prolog" under a package
npm ERR! also called "tau-prolog". Did you name your project the same
npm ERR! as the dependency you're installing?
npm ERR!
npm ERR! For more information, see:
npm ERR!

This is because you are installing the package tau-prolog in a project with the same name. You should create a new project in other location and install tau-prolog in your own project.

I have now tried the instructions in a new directory, tp, with:

$ mkdir tp
$ cd tp
$ npm install tau-prolog

and from that I get:

npm WARN saveError ENOENT: no such file or directory, open '~/package.json'
npm WARN enoent ENOENT: no such file or directory, open '~/package.json'
npm WARN mt No description
npm WARN mt No repository field.
npm WARN mt No README data
npm WARN mt No license field.

+<EMAIL_ADDRESS>updated 1 package and audited 14 packages in 2.213s
found 0 vulnerabilities

However, there is unfortunately still no tau-prolog.js in the directory:

$ find .
.

Could you please update the instructions to state how we can install Tau Prolog? The simple tutorial only mentions "Once the customized Tau Prolog file is downloaded and properly located", and the Download page states we can install Tau Prolog with $ npm install tau-prolog.

The file tau-prolog.js is just a union of the Tau Prolog modules, to be able to load it more comfortably on a web page. With Node.js and npm it is not necessary.
After $ npm install tau-prolog, Tau Prolog files are located in your directory at node_modules/tau_prolog. You can create a script in tp and run it with Node.js: $ nodejs tau.js.
// tau.js
var pl = require("tau-prolog");
require("tau-prolog/modules/lists")(pl);
require("tau-prolog/modules/random")(pl);
// other libraries...

var session = pl.create(1000);
session.consult("foo.pl");
session.query("foo(X,Y).");
session.answers(x => console.log(pl.format_answer(x, session)));

% foo.pl
:- use_module(library(lists)).
foo(X, Y) :- append(X, Y, [1,2,3]).

I have now tried the instructions in a new directory, tp, with:
$ mkdir tp
$ cd tp
$ npm install tau-prolog
and from that I get:
npm WARN saveError ENOENT: no such file or directory, open '~/package.json'
npm WARN enoent ENOENT: no such file or directory, open '~/package.json'
npm WARN mt No description
npm WARN mt No repository field.
npm WARN mt No README data
npm WARN mt No license field.

<EMAIL_ADDRESS>updated 1 package and audited 14 packages in 2.213s
found 0 vulnerabilities
However, there is unfortunately still no tau-prolog.js in the directory:

$ find .
.
Could you please update the instructions to state how we can install Tau Prolog? The simple tutorial only mentions "Once the customized Tau Prolog file is downloaded and properly located", and the Download page states we can install Tau Prolog with $ npm install tau-prolog.

mkdir tp
cd tp
npm init -y
npm install tau-prolog
subl index.js

const pl = require('tau-prolog')
const session = pl.create()


feat: ChatGPTOfficial loader

@ztxtxwd can you fix the lint?

I agree, that makes sense.

can you do that ?
just rename mine to yours and use your method

can you do that ? just rename mine to yours and use your method

Yes, I can make the changes as you specified.

@ztxtxwd LGTM
can you resolve the conflict?


Fixed #32910 -- Unified different plural equations for the same language in contrib apps.

Thanks Martin Svoboda for the report and initial patch.
Regression in e3e48b00127c09eafe6439d980a82fc5c591b673.

Discussion is happening on the ticket for now.

I removed release notes.

Thanks both :star2:


Problem with hasMany() and onCondition() + orOnCondition()

Hello,
I have two tables:
|- currency -|
|| CurrencyID ||
|| Name ||
|- currency_pair -|
|| BuyCurrencyID || ==> FK -> CurrencyID
|| SellCurrencyID || ==> FK -> CurrencyID
I have relation in Currency model - getCurrencyPairs(). I need it to retrieve information about all CurrencyPair either having this Currency in BuyCurrencyID or in SellCurrencyID.
My code usage for retrieving records:

$currencies = Currency::find()
->joinWith('currencyPairs')
->where(['MarketID' => $market->MarketID])
->all();

My first thought was to use onOrCondition like this:

public function getCurrencyPairs()
{
return $this->hasMany(CurrencyPair::className(), ['BuyCurrencyID' => 'CurrencyID'])
->orOnCondition(['SellCurrencyID' => 'CurrencyID']);
}

But this is generated query:

SELECT currency.* FROM currency LEFT JOIN currency_pair ON (currency.CurrencyID = currency_pair.BuyCurrencyID) AND (SellCurrencyID='CurrencyID')

First problem is that there is "AND" instead of "OR". Second problem - there are no table prefixes.

Second one was to change it a little bit and give empty array to hasMany condition and use onCondition().

public function getCurrencyPairs()
{
return $this->hasMany(CurrencyPair::className(), [])
->onCondition(['BuyCurrencyID' => 'CurrencyID'])
->orOnCondition(['SellCurrencyID' => 'CurrencyID']);
}

But generated query is looking like this:

SELECT currency.* FROM currency LEFT JOIN currency_pair ON (BuyCurrencyID='CurrencyID') OR (SellCurrencyID='CurrencyID')

First problem - there are single quotes around CurrencyID so it's used like string. Second problem - no table prefixes at all.
I tried many different options but I can't get expected results. What am I doing wrong here? Am I missing something important on generating queries or usage?

You can not create a relation that points to two foreign keys at once, you need to create a normal query for that instead.

Should it be of help to someone with the same problem, a workaround would be to define two separate relations both pointing to the same target table.
As in the above example with the currency pairs, define in the Currency ActiveRecord class:
public function getBuyCurrency()
{
    return $this->hasMany(CurrencyPair::className(), ['BuyCurrencyID' => 'CurrencyID']);
}

And
public function getSellCurrency()
{
    return $this->hasMany(CurrencyPair::className(), ['SellCurrencyID' => 'CurrencyID']);
}

And then use in your query:
$query = Currency::find()
    ->select(' `currency_pair`.*, `b`.*, `s`.*) //Skip or use your own select here depending on your needs
    ->joinWith(['buyCurrency b', 'sellCurrency s']); //Using aliases to avoid ambiguity
$query->all();

Make sure to refer to the proper table name when getting your fields, otherwise you may encounter errors concerning the ambiguity of variables.
I found this approach to work well with Search classes for a Gridview where filtering needs to be done straight on the relations, but in every other place where I just want to get the value of the relational data, to use a with() statement for easier identification (at the cost of the extra queries).
E.g. in a Search class (same query as above without the all() part):
$query->andFilterWhere(['like', 'b.name', $this->buyName)
    ->andFilterWhere(['like', 's.name', $this->sellName);

And for other cases:
$currencies = Currency::find()->with(['buyCurrency', 'sellCurrency'])->all();

foreach($currencies as $record){
    $buyName = $record->buyCurrency->name;
    $sellName = $record->sellCurrency->name;
}


Add CI buildspec for pull request.

Issue #, if available:
Remove integration_tests from pr build, only keep it in nightly build.
Building protobuf is no longer needed.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

"Remove integration_tests from pr build, only keep it in nightly build." - why not run integ tests with every PR?
"Building protobuf is no longer needed." - can you explain why?


[Doc] Create a new "Usage" section

Some of the pages under "Serving" and "Models" aren't really related to their parent section. This PR creates a new "Usage" section to accommodate these pages.
@simon-mo can you help set up redirects as requested in #10428? Done

cc @ywang96 since I have significantly modified the docs for VLMs.

+1 i think we can expand the scope for broader refactoring of the doc tree, but okay to keep it scoped smaller.

First, thank you for using git mv ! It's really common for people to not do that and accidentally lose the git history of the file.

Actually, I didn't use it. The diffs were small enough that Git was able to detect that automatically 😅 Thanks for telling me about this though.

In this PR, I thought maybe you wanted "Serving" to focus more on "someone running vLLM", but that doesn't seem right. There are deploying docs that stay, but. then the doc on environment variables that a deployer would set got moved.
How would you describe the intended audience and scope of each section?
There are some in the PR that make a lot of sense to move around. A couple examples are "Adding a New Model" and "Enabling Multimodal Inputs". Those are more like "Design" to me. The audience is "people working on the vLLM code," and the content for that audience has been shifted to the end of the docs recently.

vLLM supports both offline and online inference. I intend the Usage section to contain docs that apply to both. On the other hand, the Serving section focuses on online inference.

First, thank you for using git mv ! It's really common for people to not do that and accidentally lose the git history of the file.

Actually, I didn't use it. The diffs were small enough that Git was able to detect that automatically 😅 Thanks for telling me about this though.

Oh, I see. GitHub was smart enough to detect it and show it that way in the UI, but git does not see it as a move. Run git log docs/source/usage/compatibility_matrix.rst and you'll see what I mean. The history is a single commit now.
It's up to you if you feel like this is worth fixing.

In this PR, I thought maybe you wanted "Serving" to focus more on "someone running vLLM", but that doesn't seem right. There are deploying docs that stay, but. then the doc on environment variables that a deployer would set got moved.
How would you describe the intended audience and scope of each section?

vLLM supports both offline and online inference. I intend the Usage section to contain docs that apply to both. On the other hand, the Serving section focuses on online inference only.

Yeah, I guess I don't know how to decide what would go under Serving and what would go under Usage.

There are some in the PR that make a lot of sense to move around. A couple examples are "Adding a New Model" and "Enabling Multimodal Inputs". Those are more like "Design" to me. The audience is "people working on the vLLM code," and the content for that audience has been shifted to the end of the docs recently.

I agree that those two pages should be moved elsewhere. It's not really about "Design" though, maybe we can add a new Tutorials section? In any case it's outside the scope of this PR.

That's fine. I actually like how it is now that I look again. All of the content under "Models" groups together nicely.

I'm not too bothered by this, since git blame -C still includes commits to the original file.

Does this look good to you now?

Does this look good to you now?

I'm not opposed to it. Definitely don't let me block it.
I'm still not sure I understand it, though:

Yeah, I guess I don't know how to decide what would go under Serving and what would go under Usage.

but please feel free to proceed if you'd like. It can always be changed further.

Yeah, perhaps it would be clearer as we make further changes down the line.
@simon-mo can you stamp this?


Create initial team charter

This is the first version of the team charter and the starting point of the conversation.
Once we've agreed to the scope and goals of the team, we can flip the PR to non-draft.
Since this is a rather large group of people, please be mindful of your review and focus on creating consensus.
If and when the installer project is asking the conda steering council to vote on the graduation to the main conda organization, this will come in handy.
@xhochy, @hmaarrfk, @isuruf, @awwad and @pkmooreanaconda I've added you to the list below without having had a chance to talk to you in detail about this. Are you interested in participating in this new community team?
Rendered version: https://github.com/conda-incubator/installer/blob/initial-team-charter/CHARTER.md

In case anyone has questions about this, please post them here as well, so we can start collecting them for a FAQ section and fill out the README.

Are you interested in participating in this new community team?

Yes.
The proposal sounds good but for now it is unclear to me which (Github) actions are planned to be built and how they would benefit the community.

Are you interested in participating in this new community team?

Yes.

Yay!

The proposal sounds good but for now it is unclear to me which (Github) actions are planned to be built and how they would benefit the community.

Honestly, that's to be defined, I'm trying to look from the benefits of having a common code for the installer creation, signing etc. And GitHub Action would just be a user interface to that code.

I've asked for a new chat room be created as well, so we can start inviting everyone there: https://github.com/conda/communications/issues/9

@jezdez Thanks for organising and writing this together. And also thanks for pinging all the people so that they can see this initiative. Though, I would suggest that only people initially join the installer team (with their consent) that either previously worked (=prove of work) on the miniforge repo or our internal repo, otherwise thus efforts tend to have huge teams with very little activity. The repo is public so anybody can anyway contribute via forking/opening a PR and showing their interest and then later become part of the team if desired.
@xhochy After lots of work the Anaconda installers (miniconda + more) and miniforge installers are created by the same constructor (!) and constructor version. That can be seen by comparing:

curl -sLr 0-50 https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-x86_64.sh | grep "Created by"
curl -sLr 0-50 https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | grep "Created by"

Though the Anaconda installers also use the signing feature and more branding features of constructor on windows and also are notarized on osx.
The internal automation incl. signing etc and all the scripts + action code in the miniforge repo could result into a composable action that can be used eco-system wide by other projects, by just providing a construct.yml + signing/notarize keys. Though this is some kind of technical (does that work and make sense) and social experiment (finding enough commitment / interest) so that it actual happens, is sustainable and "good enough" so that projects (including anaconda+cf) actually use it.

Looks good to me and thanks for looping me in on this!

@xhochy @isuruf I've added you both to the installer team, hopefully @hmaarrfk has seen the call, but until we know if he's interested I'll remove him from the team charter of course

As discussed in the meeting with members of this team, we've agreed to merge this as-is and evolve going forward.


Add recommendations for icon size on Web Push

We have a few docs incoming for push so not sure exactly what docs need this.
AT the moment little to no guidance on icon size is given. Peter Beverloo has suggested that an icon size of 192x192 pixels for the current state of devices would be good for notifications (this is basically from the Android notification size of 64dp - 64 x 3 (3x density screen) = 192px).
cc @petele @jpmedley

Do you mean specifically for push or icons in general?
We have stuff about icons Icons and colors for the browser and in the manifest stuff.


Add WDL for cellranger count

Add a WDL that performs the tasks of cellranger count, starting with chunking and read formatting through to barcode filtering.

I'm going to close this PR without merging. There have been some changes from 10x that led to a significant redesign, so rather than cramming it all here it's in a separate PR: #12


Upsert support

Even though Supabase supports upsert, the mutation is not available from GraphQL
Steps to reproduce the behavior:

Create the GraphiQL page against your project using the code here: https://github.com/supabase/supabase/discussions/6144
In the Documentation explorer, check any table's available mutations
Mutation.deleteFrom[TableName]Collection, Mutation.insertInto[TableName]Collection, and Mutation.update[TableName]Collection are available, but Mutation.upsertInto[TableName]Collection is not

Expected behavior
Would expect to see a Mutation.upsertInto[TableName]Collection operation that would allow a constraint name to be used, or alternatively insertInto[TableName]Collection could have onConflict support as in Hasura: https://hasura.io/docs/latest/graphql/core/databases/postgres/mutations/upsert/
Versions:

PostgreSQL: [14.1]
pg_graphql v0.3.2

upsert support is on the roadmap but the user facing API is still being spec'd
I'm familiar with Hasura and Graphile's upsert APIs and would like to avoid directly referencing the constraint names if possible

is there any update on this? :)

none yet, we'll be looking at user defined functions and views first

thanks @olirice ! do you have any educated guess on:

will upsert eventually be implemented
if so, a rough time line? Q2 vs 2024?
can you suggest a workaround? as now I need to execute 2 queries iso 1 every time (and as a seperate query there is a small risk as its not a single transaction):
(1)check if item exists, if so (2) update, if not (3) insert

many thanks!

sure

yes, its definitely going to happen
Currently I'd it'll be in by EO Q2 but that may change depending on who get pulled into various other priorities

Assuming:

"check if an item exists" is based on some unique combination of colums
once inserted, the record is not deleted
the columns making up the unique constraint don't change in value

I'd suggest

enforcing the unique constraint in postgres
attempting the insert
if a unique constraint violation occurs

perform an update

thanks a lot for the update and suggestion!

@olirice , a note if Im correct on your proposal:
scenario, upsert in a single transaction

multiple related tables (e.g. 1a upsert a post entity and 1b. upsert a reference in the blog_post table as well)
multiple entities (e.g. upsert an (aggregate root), a blog, that contains several posts. Thus a 2a upsert for the blog table (title, body) has to take place as well as an 2b upsert for each of its posts (table)

Assume:

I assume 1a&1b or 2a and 2b should be a transaction to ensure data integrity (agree?)

your suggestion if Im correct (not that I have a better idea) has issues
A. when combining GQL queries 1a&1b or 2a and 2b to a single query, the insert will fail if a part of the data already exits (e.g. 2b where one of the blog posts is already in the db). The update will fail as well as one of the blog posts does not exist..
B to overcome A I need to write frontend code that executes a graphql (try insert()? done: update()) once for every entity (table row)  & I need as its multiple queries now I need to write frontend rollback logic (whick might not be fails safe)
what are your thoughts?

Any update on this? I'm currently using custom defined upsert functions and calling them via supabase.rpc, but would much prefer standardize to using gql mutations everywhere.

any update on when supabase will have update mutations?

update mutations

update mutations are already available. you can read more about them here
Work on upsert support  started last week. You can track in PR

+1 for upsert support, we'd start using it immediately :)

Anything to reduce the number of required API requests for common DB operations will greatly improve the quality of the graphql platform 🙏


Replace dependency on boost with a custom small vector

This replaces ~70k LOC (parts of boost, 1/4th of the code in this project)
with ~700 LOC (small_vector.h). By replacing boost, we simplify future
maintenance and improve compile times.
Validation Steps Performed

New and existing unit tests are ok ✅
Various common VT applications run fine in debug mode OpenConsole ✅

Hell yeah.
Why is this difficult to review?

Why is this difficult to review?

The code isn't that trivial tbh. I honestly thought it was pretty solid when I opened the PR, but as you can see, the tests disagree and this code remains buggy.

Yea I mean, small_vector.h is the hard part of this review. There's like what, 11 other relevant changes, and then 450 files of "delete boost" which I'm just gonna skip over.  Lets us close out the internal bugs we have about "switch boost to vcpkg" (or whatever they are) too.

Do we think I'm actually qualified to review the implementation of a basic collection like that in c++? Or should I lean on the fact that the tests passed and nothing seems to explode?

This is in today's bug bash build as well!

Do we think I'm actually qualified to review the implementation of a basic collection like that in c++? Or should I lean on the fact that the tests passed and nothing seems to explode? Otherwise @miniksa is usually a bit more fluent in the idomatic way of implementing something like this, and might be a better reviewer for https://github.com/microsoft/terminal/pull/13716/files#diff-396eb9779e7a38e7354acd9c04395d1fb502e991b843ead351c1312156b14a5a

I can put it on my list for tomorrow.

@lhecker are the TODOs to-done?

@DHowett No I haven't worked on this yet. I was planning to continue with this PR once we forked off 1.16.

@DHowett I've just pushed some final fixes and improvements and I think this PR is now ready to be merged. If possible I'd love if you could give the last commit another review.


Reason for: 4.7 Always place block statements after the normal HTML attributes

Hi guys,
I'm working on AEM IntelliJ Plugin which supports HTL and got issue report about variables resolving.
In such code:

variables are unresolved because in the plugin I assume that (according to HTL specification) identifiers scope for data-sly-use, data-sly-test, data-sly-set and data-sly-unwrap is specified as:

Scope: The identifier set by the * block element is global to the script and can be used anywhere after its declaration.

For me, the "after its declaration" phrase means that usage before the declaration is disallowed. Maybe I'm wrong with interpretation.
My question is: what is the reason for adding rule 4.7 to the style guide? In my opinion, code is hard to read when declarations are specified after actual usages and I would even add rule exactly opposite to the current 4.7 - to put HTL blocks always before any other attributes. Is there any technical reason for the current state or it was introduced for better code organization and putting standard attributes before HTL blocks was a random decision or a matter of taste? Maybe it's worth to change it to make code cleaner and follow HTL spec?

I guess the reason for rule 4.7 was just a matter of taste, and together with rule 4.2 such a usage before declaration is unlikely but not impossible. I tend to agree that it would most probably make more sense to put the attributes data-sly-... before any other attributes  (also because things like data-sly-test are so important that they should be placed as first attribute to not get overlooked). So  from my side it would be fine to change the rule 4.7 accordingly but I would like to hear other opinions as well.
Just out of curiosity: Is the usage before declaration pattern a real issue in any HTL compiler or does the Sling HTL implementation just work fine with it (although the HTL spec does not mandate that order)?

Thanks for the quick reply, it sounds promising.

Just out of curiosity: Is the "usage before declaration" pattern a real issue in any HTL compiler or does the Sling HTL implementation just work fine with it (although the HTL spec does not mandate that order)?

It works fine in Sling, I'm not sure about any other compilers (I heard only of npm engine besides Sling).


soc: ti_simplelink: cc13xx-cc26xx: kconfig for subghz 802.15.4

Is your enhancement proposal related to a problem? Please describe.
We need to introduce a new Kconfig for IEEE802154_CC13XX_CC26XX_SUB_GHZ in zephyr first, so that we can add the required RF support sources in hal/ti and not receive a check-warns errors like the one below.
Found references to undefined Kconfig symbols. If any of these are false
positives, then add them to UNDEF_KCONFIG_WHITELIST in check_compliance.py in the ci-tools repo.

If the reference is for a comment like /* CONFIG_FOO_* */ (or
/* CONFIG_FOO_*_... */), then please use exactly that form (with the '*'). The
CI check knows not to flag it.

More generally, a reference followed by $, @, {, *, or ## will never be
flagged.

CONFIG_IEEE802154_CC13XX_CC26XX_SUB_GHZ    soc/arm/ti_simplelink/cc13x2_cc26x2/power.c:28
##[error]Process completed with exit code 1.

Describe the solution you'd like
I'll first create a dummy Kconfig entry in soc/arm/ti_simplelink/cc13x2_cc26x2/Kconfig.defconfig.series, defaulting to n, and then we can merge zephyrproject-rtos/hal_ti#22 (may require a DNM PR in Zephyr to show that linking the file in does not break a build).
Describe alternatives you've considered
Additional context
This will be required for the cc1352r to use multiple radio technologies simultaneously, such as the IEEE 802.15.4 2.4 GHz O-QPSK PHY with the IEEE 802.15.4g 915 MHz SUN FSK PHY. Similarly, BLE should be able to run simultaneously with the IEEE 802.15.4g 915 MHz SUN FSK PHY, and BLE can be run concurrently with the IEEE 802.15.4 2.4 GHz O-QPSK PHY using some PHY management on 2.4 GHz.
I have a branch that is nearing completion for #26315 that should be merged after #26316.

Fixed by #29598


AuthenticationDate parse error

CAS3.0 server return AuthenticationDate with ZonedDateTime src, but go-cas parse it with time.Time, so i get the error bellow:
parsing time "2018-06-21T14:44:52.715+08:00[Asia/Shanghai]": extra text: [Asia/Shanghai]

the response is:
curl "http://cas.example.com/p3/serviceValidate?service=http://localhost:9000&ticket=ST-2344-9oiwc7g9_xg5HBxx3T371X4ARLI-db796d3ad01b"

<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
    <cas:authenticationSuccess>
        <cas:user>helphi</cas:user>
        <cas:attributes>
            <cas:credentialType>RememberMeUsernamePasswordCredential</cas:credentialType>
            <cas:isFromNewLogin>true</cas:isFromNewLogin>
            <cas:mail>helphi@example.com</cas:mail>
            <cas:authenticationDate>2018-06-21T13:43:07.597+08:00[Asia/Shanghai]</cas:authenticationDate>
            <cas:authenticationMethod>LdapAuthenticationHandler</cas:authenticationMethod>
            <cas:successfulAuthenticationHandlers>LdapAuthenticationHandler</cas:successfulAuthenticationHandlers>
            <cas:longTermAuthenticationRequestTokenUsed>true</cas:longTermAuthenticationRequestTokenUsed>
            <cas:sn>helphi.he</cas:sn>
            </cas:attributes>
    </cas:authenticationSuccess>
</cas:serviceResponse>

Based on the CAS 3.0 spec that form of cas:authenticationDate isn't valid for the XML Schema xs:dateTime type.

Based on the CAS 3.0 spec, cas server use ZonedDateTime to process xs:dateTime and  go-cas use time.Time to process xs:dateTime, but ZonedDateTime of java is not compatible with time.Time of golang.

It doesn't look like ZonedDateTime is compatible with xs:dateTime, so while it may be able to parse it in Java it doesn't look like the generation of the authenticationDate in the apero CAS server is valid according to the specification.

But CAS server and the cas-java-client implements xs:dateTime with ZonedDateTime now, and we can't parse it with go-cas.

my result is same,  it need to compatible, or cas 3.0 will not work


fix smtlib attribute for %Int  and /Int

This should be functionally correct; I have not tested whether it stands up to symbolic reasoning though. Would appreciate it if you tested it on the example that made you report this bug in the first place.

@daejunpark do you still need this?

i'm closing this for now, as we are currently not relying on z3 for reasoning about these operations, but will reopen when we need to.  btw, thanks @dwightguth for initiating this.


Consider adding a 2D interactor

If an image is 2D, it can be useful to have a 2D interactor (I'm thinking of DXF or medical images).
And tbh, if we implement it, then it makes sense to supports JPG/PNG/TIFF/HDR/TGA/... too since it is basically free.
I know this is not the main purpose of f3d but since f3d is GPU accelerated, it may outperform other image previewers with large images.

https://gitlab.kitware.com/f3d/f3d/-/issues/237

Good idea - however, as images are loaded as textures, there are limited in size.

images are not loaded as texture but as geometries, in vtk. not sure wht you mean.

VTK can do whatever you want, use image as a texture on a plane or define a
fine regular mesh with a color attribute per cell/point. Sorry, I thought
we chose the first approach.
Le ven. 26 nov. 2021 à 18:55, mwestphal @.***> a écrit :

images are not loaded as texture but as geometries, in vtk. not sure wht
you mean.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/f3d-app/f3d/issues/49#issuecomment-979762570, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADZ33F2L7P2XZVBMO4URO3UN44QNANCNFSM5H52TBTQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Work in progress!

Is this still planned @jpouderoux ?

Is this still planned @jpouderoux ?

I just rewrote the old MR for the new master in #438. Let me know what you think.
Note: it does not includes image reading as the previous MR. We should do that in a dedicated MR.

hi. found this ticket when searching for dxf. Basically, i found the F3D tool because i was looking for a tool which can create thumbnails for Linux for DXF files. It works, but 2D DXF are looking totally wrong. Seems there is no support for 2D DXF yet. I am a vector grahpics guy, which often converts SVG to DXF to postprocess them later on.
this is the output by F3D:

by the way i am using Fedora and F3D can be installed easily using alien:
alien --to-rpm -vv f3d-1.3.1-Linux.deb
sudo rpm -ivh f3d-1.3.1-2.x86_64.rpm --nodeps --force

As a workaround to the orientation problem, you can modify the file f3d.thumbnailer and add --up=-Z to the command line.

nice to know. thanks for help! that works fine (except the curves)

@vmario89 Thanks for using F3D et do not hesitate to join our discord :)
https://discord.f3d.app/

@jpouderoux are you still around ?


Support passing whole model to usePost

I think this is done, we have usePatch and usePost which both accept "rawData" attribute or in another words, support passing a whole model. And customly written at that. Is it not?

@JuraJuki this is relevant to https://github.com/bornfight/aardvark/issues/43 that's still opened. It might be a duplicate, tho. Shall we close this one?

I agree. Closing


[NETBEANS-54] Module Review net.java.html.boot.script

Added license file for external resource net.java.html.boot.script-1.4.jar

Closing the pull request as Jan Lahoda will work on the same


Not precise coordinates for rooms while setting up xiaomi card.

Checklist

[X] I have updated the integration to the latest version available
[X] I have checked if the problem is already reported

The problem

It shows room with wrong coordinates when using "GENERATE ROOMS CONFIG":

Valetudo:

Card:

You can see different borders

All my rooms have an id larger than 16 (I didnt find a way to change them in valetudo), thus I can`t change colors.

What version of an integration has described problem?
2024.04.5
What was the last working version of an integration?
No response
What vacuum model do you have problems with?
Roborock S5
Please firmware installed on your Vacuum.
Valetudo 2024.02.0
What type of platform you use?
Intel NUC (or generic x86_64)
What version of Home Assistant do you use?
2024.4.4
What type of installation are you running?
Home Assistant OS
Camera's settings.
No response
Logs or Errors shown in the HA snapshots (please enable the Debug Mode)
No response
Additional information
No response

@HGRT846 So far I can see the rooms are properly display, if you select the segment clean for when the vacuum start the room change slightly colour (meaning the indication on the card might be slightly off but the vacuum know what to do). The important think is the coordinates, does the vacuum move correctly to the go_to coordinates (on rand256 I use a room coordinate generation as the vacuum do not provide it in the json), I know that the boxes for the Hypfer can be sometime offset. Is the image at the original size?

Will enhance the rooms coordinates calculation for the Hypfer vacuums in the next version planned for the second week of May, I'm sorry for the inconvenience but as temporally please consider to manually correct the segments data in the card (that by the way will be stored and not change afterwords).  Of course if you need help with that I will be happy to assist you.

Changed the title for better tracking the issue. Also as mentioned, please, have a look to the colours management as per link above. Please also note that as I'm almost done with the 2024.05.0 the improvement you kindly proposed will be implemented on the release 2024.05.1. I just finished to re-flash the Hypfer firmware and work on it as soon I completed some tests pre-release for the 2024.05.0. Thanks in advance for your kind understanding, hope you will enjoy the camera and at your disposal for any required help ;)

@HGRT846 So far I can see the rooms are properly display, if you select the segment clean, when the vacuum start the room change slightly colour (meaning the indication on the card might be slightly off but the vacuum know where to go). The important think is the coordinates, does the vacuum move correctly to the go_to coordinates (on rand256 I use a room coordinate generation as the vacuum do not provide it in the json, I can use a similar approach also for the Hypfer vacuums, as it is more precise), the boxes (calculated rooms area) for the Hypfer can be sometime offset. Is the image at the original size? Additionally, the rooms colours of course can change on the map that generate the camera but not in the vacuum. What do you mean with can't change the room colours? Please check the docs for knowing how to change the colours of the rooms.

I tried to change the colors yesterday, but it didn`t work until I restarted HA today. I thought that options to configure colors were meant to IDs of the rooms (1 - 8, 9 - 16), and I have my IDs in valetudo from 17 to 22, so I thought it is a bug.
Anyway, thanks, I manually redacted coordinates and now everything works properly.

@HGRT846 So far I can see the rooms are properly display, if you select the segment clean, when the vacuum start the room change slightly colour (meaning the indication on the card might be slightly off but the vacuum know where to go). The important think is the coordinates, does the vacuum move correctly to the go_to coordinates (on rand256 I use a room coordinate generation as the vacuum do not provide it in the json, I can use a similar approach also for the Hypfer vacuums, as it is more precise), the boxes (calculated rooms area) for the Hypfer can be sometime offset. Is the image at the original size? Additionally, the rooms colours of course can change on the map that generate the camera but not in the vacuum. What do you mean with can't change the room colours? Please check the docs for knowing how to change the colours of the rooms.

I tried to change the colors yesterday, but it didn`t work until I restarted HA today. I thought that options to configure colors were meant to IDs of the rooms (1 - 8, 9 - 16), and I have my IDs in valetudo from 17 to 22, so I thought it is a bug.
Anyway, thanks, I manually redacted coordinates and now everything works properly.

Well no the colours are not following the ids is the room number draw anyway you what? it will be a great Idea to implement a function that grab the rooms in use and show the ID number ;)

@HGRT846 I probably found the way to get the data more accurate for the rooms:
2024-05-01 16:54:47.250 INFO (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.valetudo.hypfer.image_handler] glossyhardtofindnarwhal: Overlapping Layers
2024-05-01 16:54:47.255 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2915, 2145, 3100, 2515)]
2024-05-01 16:54:47.289 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2385, 1760, 2970, 2805)]
2024-05-01 16:54:47.309 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2665, 2055, 2910, 2215)]
2024-05-01 16:54:47.442 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2400, 2215, 2800, 2800)]
2024-05-01 16:54:47.470 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2815, 2500, 2925, 2740)]
2024-05-01 16:54:47.492 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2800, 2165, 2890, 2355)]
2024-05-01 16:54:47.676 DEBUG (glossyhardtofindnarwhal_camera_0) [custom_components.valetudo_vacuum_camera.utils.drawable] [(2395, 1765, 2700, 2200)]

As soon I'm done with it I look in the possibility to change the rooms colours menus with the rooms ID.
Will move this to the discussions and follow up as soon ;)


shim cli query block

Current dependencies on/for this PR:

main

PR #125

PR #126   👈
PR #123

This stack of pull requests is managed by Graphite.

I didn't mean to open this PR. Sorry.


Genetics Game [NOT FOR MERGE]

Pull request to allow for comments on current progress on genetics game for Blockly Games
@seanlip @NeilFraser PTAL at game logic in appengine/genetics/js (note that visualization.js is still WIP)

Update: it's looking pretty good so far! I have mostly small comments.
I'll continue reviewing tomorrow (I still need to look at the remaining core JS files), but feel free to start addressing existing comments in the meantime.

Oh, also, when you a resolve a comment, please add a comment along the lines of "Done." That way, we can keep track of what's been resolved and what hasn't. Thanks!

Hi @moniika, I've taken a full pass. Generally I think it's very nice, and the code is generally very readable. Well done!
We should try and get some intermediary PRs into the main repository so that we don't end up with a huge giant PR at the end. Do you have suggestions for a suitable breakpoint? (Note that we don't need to expose it on the main site until it's completed, so I think we could, for example, ship everything except the visualization in the first merged PR -- but what do you think?) Also /cc @NeilFraser.

Hi @moniika, I've just been looking at this PR again, and noticed there were a bunch of comments I made in the middle which don't seem to have been addressed. Did you miss these?


Invariant Violation when using React.js

When using dragula to drag and drop react element's an error is throw because cloning elements will end up having two elements with same data-reactid attribute.
This is what the log says:
Uncaught Error: Invariant Violation: ReactMount: Two valid but unequal nodes with the same `data-reactid`: .<IP_ADDRESS>:$<IP_ADDRESS>.<IP_ADDRESS>

Okay. Let me know if you find the fix. Ideally I wouldn't make React-specific changes to dragula

A possible fix is adding an optional callback to transform the mirror node right after cloning it. That would let the user do whatever it wants with it without adding a react specific fix.

Is there the same issue when copying with copy: true?

Same issue, the copied element will have the same attributes and mess up with react.

Resolved in 1.6.0 with event cloned

Also if you make a react-dragula component let me know and I'll promote it on the README :balloon:

Awesome, thank you. Will consider doing a react component but dragula is simple enough to just use it as is.

That's good to know

@j0hn Would you be willing to show some of your react code using dragula? A simple example would be great to see.

@saulshanabrook Here's somehow what i'm doing...
dragula([...], {
  direction: 'horizontal',
}).on("cloned", function(clone){
  clone.removeAttribute('data-reactid');
  var descendents = clone.getElementsByTagName('*');
  Array.prototype.slice.call(descendents).forEach(function(child){
    child.removeAttribute('data-reactid');
  });
});

@j0hn Why do you have to remove the data-reactid? What happens if you dont?

@saulshanabrook if you don't remove the reactid, there would be two elements on the dom with the same reactid and the react engine will fire warnings about that.

@j0hn thank you. Also, when do you call the dragula? Like if I have a list of elements from the props, would I call dragula(...) in componentDidMount?

@saulshanabrook yes, i did a component that renders the list of elements and uses dragula in the componentDidMount

FWIW everyone, made react-dragula so we can further tweak react-specific dragula there. Of course, we would still need to expose primitives in dragula if they're needed by react-dragula.
https://github.com/bevacqua/react-dragula

@bevacqua Thats great! thank you so much :+1:


is useImage support base64 source?

Description
I pass base64 string to useImage as the source
On iOS the image object can be reutrn correctly while Android is null
Version
0.1.133
Steps to reproduce
const image = useImage('base64 string')
iOS: image is SkImage
Android: image is null
Snack, code example, screenshot, or link to a repository
const image = useImage('base64 string')
// iOS: image is SkImage
// Android: image is null

If you have the base64 string, you don't need to use useImage since the data is already loaded. That being said, you might  want to mix and match base64 image with "loaded" image. The solution that I would recommend is to write something like this:
const blurHash = Skia.Image.MakeImageFromEncoded(Skia.Data.fromBase64("aG...="));
//...
const remoteImage = useImage("http://...");
const image = remoteImage ? remoteImage : blurHash;

useImage can receive a base64 source (as a Uint8Array) but I'm not sure if it is what you want. I am closing this issue as there doesn't seem to be a bug here. Let me know if you think there might be a bug there.


[bikeshed] calling convention names

Currently we have following calling conventions: cdecl, stdcall, fastcall, aapcs, win64, Rust, C, system, rust-intrinsic, rust-call. Two of them are upper case, namely “Rust” and “C”.
I doubt there’s many users who would specify Rust CC explicitly and C CC should not be specified at all either because it is default for extern functions.
Is renaming them to lower case variants (possibly after deprecation period until 1.0) an acceptable breaking change?

This doesn't seem actionable and there has been no movement since 2015 so I'm closing this.


kernel/debug: include source code in stack traces

When using DWARF to get symbol info; we can use the file, line and column info to print the source code.
https://github.com/CascadeOS/CascadeOS/blob/9e3a0422b1cf387a75803365d181734d09d49bbc/kernel/debug/debug.zig#L148

Implemented in 0f9ea636a2b59191f789b16098ddaecd21f94b3c


Refine Node controller to support Gateway HA

In order to support Gateway active-standby mode HA, the Node
controller has been refined to handle Node readiness changes.
There will be at most one Gateway in a given Namespace, and the
Gateway controller is updated correspondingly.

Check Node readiness and create a Gateway CR if Node is ready
and there is no existing Gateway.
Initialize active Gateway and Gateway candidate Nodes with annotation
'multicluster.antrea.io/gateway'.
Add Gateway webhook to allow at most one Gateway in a given
Namespace.

For #3754
Signed-off-by: Lan Luo<EMAIL_ADDRESS>

/test-multicluster-e2e

@luolanzone : could you explain any real issue can happen without the changes? If there were indeed issues, please describe them in the commit description too.

Hi @jianjuns this is actually part of #3754 for Gateway HA, I feel it's relatively independent, so I create a separate PR for this change first.

/test-multicluster-e2e

Hi @jianjuns  I updated the latest design for this PR on #3754, could you take a look and review? thanks.

/test-multicluster-e2e
/skip-all

@luolanzone : please check if you can improve coverage to meet the target.

/test-multicluster-e2e

/test-multicluster-e2e

@jianjuns  Could you help to check again? I added a few more tests, looks like the result of codecov/patch is green but I didn't see any test coverage data change. I have checked the test data result locally, these uncovered lines are about handling error like get/list failure which is not provided by fake k8s client.

/skip-all


Bug on Scrollspy

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
Scrollspy seems to be broken (Sorry, I've cutted the begining of the video, so it's black at first for few seconds) :

Description of the video above :

With the example in navbar :

I click on the Second button
I move to the second part but the dropdown button is selected

With the nested nav :

I click on the Item 1.1 button
There is an unintended scroll to the top of the page (I think that's normal with the actual implementation + was here before the reforge of Scrollspy) + the button Item 1.2 is now highlighted.
I move back to the top
Then I slowly move until Item 2 is selected then move up a bit : Nothing is selected anymore
I move back to the top until Item 1 is selected
Then I slowly move down and Item 1.1 is never selected + Item 1 is selected then is not selected for some frames before being selected again

To sum up :

Moving with links seems to apply .active on the link just after the one clicked when it throws a ScrollEvent down and works well with ScrollEvent up.
Scrolling up and down seems to break the Scrollspy appearance. Seems like the ScrollEvent down and ScrollEvent up are handled in a different way.
Optional, but would be great to don't scroll on the whole page when a button is clicked (Appears only for nested nav and list-group examples)

Reduced test cases
Go on https://twbs-bootstrap.netlify.app/docs/5.1/components/scrollspy/#example-with-nested-nav and try to move slowly downwards and upwards on the nested scrollspy.
What operating system(s) are you seeing the problem on?
Windows
What browser(s) are you seeing the problem on?
Chrome, Firefox
What version of Bootstrap are you using?
5.2.0 (current_main_branch)

/cc @GeoSot


GetName()

Is your feature request related to a problem? Please describe.
When fetchins sensor data for several devices I would also like to include the bluetooth name of the sensor in my readout. Currently all we got is the MAC and I don't want to maintain a list copy of the BTnames in code.
Describe the solution you'd like
Update the struct MiThData_S and supporting code to hold the string value of the bluetooth name:
// MiThermometer data struct / type
struct MiThData_S {
        bool        valid;          //!< data valid
        int16_t     temperature;    //!< temperature x 100°C
        uint16_t    humidity;       //!< humidity x 100%
        uint16_t    batt_voltage;   //!< battery voltage [mv]
        uint8_t     batt_level;     //!< battery level   [%]
        int16_t     rssi;           //!< RSSI [dBm]
        uint8_t     count;        	//!< measurement count
        std::string name;           //!< bluetooth name
        bool 	    reedSwitchState;
        bool 	    gpioTrgOutput;
        bool 	    controlParameters;
        bool 	    tempTriggerEvent;
        bool 	    humiTriggerEvent;
};

In such a way that we will be able to get the BT name just like any other sensor detail, for instance:
std::string myName = miThDat.name;
and
int16_t myRssi = miThDat.rssi
Describe alternatives you've considered
I have already tried modifying the supporting code myself, but I got to admit that I am in way over my head
I got as far as to insert these two lines at line 168 of ATC_MiThermometer.cpp, right next to the data[n].rssi code:
            // Received Bluetooth Name
            data[n].name = foundDevices.getDevice(i).getName().c_str();

but this is not enough to get it working
Additional context
For someone who is not a complete noob, this is probably an easy fix :-)

Hi,
I started looking into this right now, but most of the devices within reach to not seem to provide a name.
Apart from that, you already have the implementation in your request.
Regards,
Matthias

Added in https://github.com/matthias-bs/ATC_MiThermometer/pull/10

It is possible that you don't use it but all bluetooth devices support advertising this information. For the LYWSD03 you can even edit the name in the Telink Flasher:

To my regret the implementation I came up with is not working. I believe it has something to do with the data structure of NimBLE, unfortunately I am not code wizard enough to figure out how to pull this string from within your framework

Ah, o.k. I just added it and created a new release v0.4.1 which should be available in the Arduino library manager within an hour. Hope it works - please let me know.

Thanks, I just pulled it from here and tested the example code from the from page but unfortunately the name is not passed. My output looks like this:
Sensor 0: A4:C1:38:B2:90:45
Name:
23.68°C
33.08%
3.938V
100%
-90dBm

I was expecting:
Sensor 0: A4:C1:38:B2:90:45
Name: Bathroom
23.68°C
33.08%
3.938V
100%
-90dBm

Oh snap! That was probably version 0.3.1 I just pulled...
I'll wait a little longer before I write again :)

As far as I figured out, if I replace
           data[n].name = foundDevices.getDevice(i).getName().c_str();
with
           data[n].name = "Test"; //foundDevices.getDevice(i).getName().c_str();
Then the name "Test" is passed correctly, therefore I am assuming that the fault lies somewhere along the foundDevices.getDevice(i).getName().c_str() but as I mentioned before my understanding of the NimBLE integration is being challenged a lot here.

I found that it works (most of the time) if you change to active scan mode in ATC_MiThermometer.cpp:
_pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster

I don't know if this expected behaviour or a bug. And sometimes the name is still missing.
You can set the Debug Level to "Debug" in the Arduino IDE and recompile to get more info from NimBLE and this library.

See https://github.com/matthias-bs/ATC_MiThermometer/pull/11 and Release v0.4.2

With 0.4.2 I can confirm that it works as you described, also accasionally missing a name now and then, however changing scan time from 5 to 10 does not seem to affect this.
It seems safe enough to assume this particular sub-problem lies within the mechanics of NimBLE or even the Bluetooth protocol itself.
Thank you so much for your effort, I am all fine with closing this issue here.

I'll leave it is at is for now. I used 15 seconds when I got the name reliably. Maybe it is related to some multiple of the advertising cycle time.

Here is the answer: https://development.libelium.com/ble-networking-guide/scanning-ble-devices
On the other hand, in active scanning the module will request more information once an advertisement is received, and the advertiser will answer with information like friendly name and supported profiles.
I think the reason for missing names during active scanning is that I stop scanning when I receive an advertisement with the wanted address. At that time, the response to the advertising request may not have been received yet.


Kubernetes deployment?

I've been working on a Kubernetes deployment for Streamlist, which takes advantage of Streamlist's reverse proxy auth + ingress external auth, as well as persistent volumes. Would this be of interest to the author(s) and/or the community? I'd be more than happy to contribute it either as a wiki pages or a Helm chart or something :)

For information we forked project here https://github.com/wtfcoderz/streamlist
Feel free to follow us if you want


support for mapping ArrayTypes to correct (db-vendor-specific) jdbc array types

I've encountered a bug in the jdbc-layer of eel.
If I have an array-type in the schema eel deserializes it as a scala.collection.immutable.Vector[T].
When you try to insert with such an ArrayType field, the preparedStatement crashes stating that the given type (Vector[T]) is not supported.
JDBC doesn't support collection-types, you can only store db-vendor-specific sql-arrays. You can get this form the jdbc.connection with conn.createArrayOf().
I edited the JdbcInserter to make it work with my string-collection (for my example-usecase).
  def insertBatch(batch: Seq[Row]): Unit = {
    val stmt = conn.prepareStatement(dialect.insertQuery(schema, table))
    try {
      batch.foreach { row =>
        row.values.zipWithIndex.foreach { case (value, k) =>
          val isStringArray = schema.field(k).dataType == ArrayType(StringType)

          if (isStringArray) {
            val stringArray = value.asInstanceOf[Vector[String]]

            val sqlArray = conn.createArrayOf("VARCHAR", stringArray.toArray)

            stmt.setObject(k + 1, sqlArray)
          } else {
            stmt.setObject(k + 1, value)
          }
        }
        stmt.addBatch()
      }
//...

Do you have an idea how to generalize that code?
spark-sql does it like this in JdbcUtils.
    case ArrayType(et, _) =>
      // remove type length parameters from end of type name
      val typeName = getJdbcType(et, dialect).databaseTypeDefinition
        .toLowerCase(Locale.ROOT).split("\\(")(0)
      (stmt: PreparedStatement, row: Row, pos: Int) =>
        val array = conn.createArrayOf(
          typeName,
          row.getSeq[AnyRef](pos).toArray)
        stmt.setArray(pos + 1, array)

I think I have some time tomorrow to take a look into it. It'd be great if you could point me in the right direction like

can you point me to a running testcase that writes data into a database-table that I can extend?
how to check if the value is an ArrayType (without explicitly writing e.g. ArrayType(String))
how to get the jdbc-types of the elements of the collection

ah, I've found a the io.eels.component.jdbc.JdbcSinkTest

@FloWi I responded on Gitter

@FloWi well you can could pattern match the ArrayType, e.g.:
schema.field(k).dataType match {
  case ArrayType(eType) => blah
  ...
 }

Or simply ignore the element type and just always use an AnyRef like the spark implementation is doing - though it does look Spark is doing something with the element type and the dialect.

Got it working and wrote a testcase for the h2 database. Also works on postgres (tested manually with a string-array-column)


Revert "wd: bugfix IO memory synchronization"

This reverts commit e69a0698235060e9aa169c24128a98c3a439b2be.

this patch need added by pull request!


GH-33473 [Python] Fix KeyError on Pandas roundtrip with RangeIndex in MultiIndex

Rationale for this change
Fixes bug when round-tripping to Pandas with a specific combination of indices
Are these changes tested?
Yes
Are there any user-facing changes?
No
I don't know if this counts as a a "Critical Fix". Without it, Table.from_pandas() can return a table which cannot be converted back with table.to_pandas() due to a column missing from the "pandas" field in the table metadata.

Closes: #33473

@AlenkaF This pull request hasn't gotten any attention since I opened it in a few months ago, but it does address a real bug. Is there anything I need to do to start the review process?
(I'm pinging you just because you seem to have taken care of similar PRs)


Capybara save_and_open_page_path and save_path problems?

Please have a look at https://github.com/mattheworiordan/capybara-screenshot/issues/170
After I upgraded Capybara to 2.7.0 the screenshot gem produced the screenshots in the project root instead of the default tmp/capybara and deleted my project directory (really happy to commit to local git very often lol).
When I set the path with save_and_open_page_path it is working but warning about the deprecation. With save_path I can remove the deprecation warning but it is competely ignored and all the files are comming to the project root directory again. That's my main reason to think that Capybara has a problem (I only use the two awesome gems, so it's just a noob guess)

capybara-screenshot passes absolute paths to capybara, if it's ignoring save_path it's because it hasn't yet been updated to be compatible with capybara 2.7

Thank you very much for the information!

@twalpole thanks for the response.  To save me trawling through the changes in 2.7, any chance you can suggest what needs to change to be compatible then?

@mattheworiordan The first thing save_page and save_screenshot do is call prepare_path passing in the filename/path passed to them and the default extension types (html/png).  If Capybara.save_path is defined Capybara should handle relative filenames correctly and you should be able to just pass a relative filename/path and it should save in the right place (or use Capybara.save_path to build an absolute path), if save_path is not defined and the previous Capybara.save_and_open_page_path is non nil you need to do what you were previously doing.


parameters "extra_args: null" is is seen in cluster.yml

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):
Bring up a DO cluster on 2.3-head or master-head
Cluster.yaml file contains the following
    kube-api:
      always_pull_images: false
      extra_args: null
      pod_security_policy: false
      service_node_port_range: 30000-32767
    kube-controller:
      extra_args: null
    kubelet:
      extra_args: null
      fail_swap_on: false
      generate_serving_certificate: false
    kubeproxy:
      extra_args: null
    scheduler:
      extra_args: null

Actual Result:
Additional arguments are seen in the cluster.yml file  extra_args: null
Expected Result:
Additional arguments should not be seen in the cluster.yml file  extra_args: null
On 2.3.3 - cluster.yml looks like
    kube-api:
      always_pull_images: false
      pod_security_policy: false
      service_node_port_range: 30000-32767
    kube-controller: {}
    kubelet:
      fail_swap_on: false
      generate_serving_certificate: false
    kubeproxy: {}
    scheduler: {}

Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): latest 2.3-head/master-head
Installation option (single install/HA): single

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): do rke

@deniseschannon @sowmyav27
This appears to be by design https://github.com/rancher/ui/commit/07b12da338af517acd36f8e77f961ad6b0519492
I think before we open more bugs regarding this yaml we may want to have a discussion and define the expectations. It seems we're now contradicting past requests.

@loganhz why did you add this in? or what reasoninng?

The commit is for supporting https://rancher.com/docs/rke/latest/en/config-options/add-ons/ingress-controllers/#configuring-nginx-ingress-controller
    extra_args:
      enable-ssl-passthrough: ""

In this case, we should make sure removeEmpty will not remove extra_args
extra_args: null is a bug we should fix. :)

A fix for this has been pushed to latest2 can we test that please?

On latest master head - commit it: 8bd9f3be2 - ui tag - latest2.
Bring up a DO cluster master-head.
Cluster.yaml file contains the following
    kube-api:
      always_pull_images: false
      pod_security_policy: false
      service_node_port_range: 30000-32767
    kube-controller: {}
    kubelet:
      fail_swap_on: false
      generate_serving_certificate: false
    kubeproxy: {}
    scheduler: {}

@westlywright the fix works on master, latest2.

Reopening - waiting for fix for 2.3-head

Fix has been merged on 2.3

On latest 2.3-head - commit id: ab7ce7ba2 ui tag - latest-2.3
Bring up a DO cluster master-head.
Cluster.yaml file contains the following
    kube-api:
      always_pull_images: false
      pod_security_policy: false
      service_node_port_range: 30000-32767
    kube-controller: {}
    kubelet:
      fail_swap_on: false
      generate_serving_certificate: false
    kubeproxy: {}
    scheduler: {}

Reopening the issue.
This is seen on the latest master-head.
kube-controller:
      extra_args: null
    kubelet:
      extra_args: null
      fail_swap_on: false
      generate_serving_certificate: false
    kubeproxy:
      extra_args: null
    scheduler:
      extra_args: null
  ssh_agent_auth: false


Added checking for Externals during USB import to usb_import.sh.

Script will check in pisound-patches/Externals on USB drive.

Hey!
Thank you for submitting the pull request! I have just gave it a try and it works! :)
I have made a couple of changes:

Changed the source location from puredata-patches/Externals to puredata-externals/ on the USB root. This is in an attempt at consistency as well as to completely avoid the improbable case of someone naming their patch as Externals :)

Changed the wording of printed messages to match the existing ones, in case the external is already there, made it to print ‘merge’ and overwrite it. This is to cover the case when you’d like to install an updated version of the external on top.

Unrelated to your changes, smuggled in a check whether an imported PD patch item is a directory – importing .pd files not in its own subdirectory should not be allowed.

Let me know if you have any comments on the updated script :)


  Retrying fragment 1 (attempt 1 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 2 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 3 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 4 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 5 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 6 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 7 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 8 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found. Retrying fragment 1 (attempt 9 of 10)...
[download] Got server HTTP error: HTTP Error 404: Not Found.
HOWEVER they works in the browser or using https://loader.to/en36/1080p-video-downloader.html
Add your own bellow.

Not reproducible without the verbose log including the prologue showing the options selected, like this:
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-f', '299', '--ignore-config', 'j4M4QNzyriY']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.5.2 (CPython) - Linux-4.4.0-210-generic-i686-with-Ubuntu-16.04-xenial
[debug] exe versions: avconv 4.3, avprobe 4.3, ffmpeg 4.3, ffprobe 4.3
[debug] Proxy map: {}
[youtube] j4M4QNzyriY: Downloading webpage
...

Include the actual command line too if it doesn't include private information!

You should provide the command you used

Ok, it was in stderr, not in stdout...
Edited the post above.

With your settings yt-dl went for format 136+140:
[info] Available formats for j4M4QNzyriY:
format code  extension  resolution note
139          m4a        audio only DASH audio   50k , m4a_dash container, mp4a.40.5 (22050Hz), 3.50MiB
251          webm       audio only tiny   98k , webm_dash container, opus @ 98k (48000Hz), 7.04MiB
140          m4a        audio only tiny  129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 9.29MiB
278          webm       256x144    DASH video   95k , webm_dash container, vp9, 30fps, video only
160          mp4        256x144    DASH video  108k , mp4_dash container, avc1.4d400b, 30fps, video only
242          webm       426x240    DASH video  220k , webm_dash container, vp9, 30fps, video only
133          mp4        426x240    DASH video  242k , mp4_dash container, avc1.4d400c, 30fps, video only
243          webm       640x360    DASH video  405k , webm_dash container, vp9, 30fps, video only
134          mp4        640x360    360p  425k , mp4_dash container, avc1.4d401e@ 425k, 30fps, video only, 30.51MiB
244          webm       854x480    DASH video  752k , webm_dash container, vp9, 30fps, video only
135          mp4        854x480    DASH video 1155k , mp4_dash container, avc1.4d4014, 30fps, video only
247          webm       1280x720   DASH video 1505k , webm_dash container, vp9, 30fps, video only
136          mp4        1280x720   DASH video 2310k , mp4_dash container, avc1.4d4016, 30fps, video only
302          webm       1280x720   DASH video 2646k , webm_dash container, vp9, 60fps, video only
298          mp4        1280x720   DASH video 3465k , mp4_dash container, avc1.4d400d, 60fps, video only
299          mp4        1920x1080  1080p60 4377k , mp4_dash container, avc1.64002a@4377k, 60fps, video only, 314.20MiB
303          webm       1920x1080  DASH video 4410k , webm_dash container, vp9, 60fps, video only
18           mp4        640x360    360p  554k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz)
22           mp4        1280x720   720p 2496k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)

And I got the same result ("HTTP Error 404: Not Found. Retrying fragment 1").
There is some server issue with format 136 in this video at YT. This doesn't exclude the possibility of deliberate misconfiguration in favour of YT web clients, but it would be strange if only this format, and not eg 1080 formats, were targeted, as seems to be the case.
Add [format_id!=136] (but you'll get 135 @ 854x480 instead) or just save time by putting 22/ at the beginning of your format option, so you get the pre-merged version if available (and if YT doesn't suddenly change the definition of format 22).

1280x720 ? I requested 1920x1080, but I see that it is only available in 60 fps. Strange that they do not offer a lower frame rate.
Anyway, how defining a list of format options, from best to lowest and ytdl trying each until it finds the most suitable one ?

That's what the /does. So in your example (your command-line format option ends in /mp4, which should probably have been /best[ext=mp4]):
-f 'bestvideo[ext=mp4][height=1080][fps=50]+bestaudio[ext=m4a]/bestvideo[ext=mp4][height=1080][fps=60]+bestaudio[ext=m4a]/bestvideo[ext=mp4][height<=?1080][fps<=?50]+bestaudio[ext=m4a]/best[ext=mp4]'

I don't say that this is convenient but generally it's more of a problem for completist mass downloaders, since the defaults, perhaps slightly amended to exclude webm+opus codecs, are normally adequate and can be overridden if necessary by manually specifying a format id (eg 22).
Traditionally the USA likes 60fps since the electricity uses 60Hz.

"completist mass downloaders" : I'd prefer "completist mass archivers"
Try downloading mfGPMJ8A0QY or CMGRa4_UjE4 for example...
60Hz or not, 30 fps is more than enough, even films are usually 24 fps.
But the difference between 1080p and 720p is quite noticeable though.
Thank for the hint, I'd like not to be too much dependent on yt's will to keep their code (ie. 22) constant across time.

Same for DRE0NlRLZVk and a few other from the same channel, mp4 or webm.

BTW, what the question mark for in format description (ie. [fps<=?50]) ?

It means that if the item (fps, here) is missing, the filter passes. Otherwise, a missing value makes the filter fail. So for instance, you can apply a filter for fps to video+audio metadata without excluding all the audio items.


Collision method setAttribute with use two differents packages.

Hello!
I am happy that I found your useful package. Thanks for that! But I encountered with some problem.
When use JsonColumnTrait with other packages, exp.Eloquence (jarektkaczyk/eloquence), laravel has been down with FatalErrorException exception ->
Trait method setAttribute has not been applied, because there are collisions with other trait methods on MyModel....
But I need both packages in one model - Eloquence and JsonColumnTrait.
Do you can help solve that problem?

Hello!
Both these traits are overriding the parent mode's setAttribute - so they both need to happen for these packages to work.
I believe the potential solution would be to rename both the trait's setAttribute methods by renaming them in your model and then making your own setAttribute that then calls both these renamed methods.
I haven't tested this code, so just an example. Please let me know...
class MyModel extends EloquentModel
{
   use Eloquence, JsonColumnTrait {
      JsonColumnTrait::setAttribute as setJsonColumnAttribute;
      Eloquence::setAttribute as setEloquenceAttribute;
   }

  public function setAttribute($column_name, $value)
  {
     $this->setJsonColumnAttribute($column_name, $value);
     $this->setEloquenceAttribute($column_name, $value);
     return $this;
  }
}

Here's a reference that I used - http://stackoverflow.com/questions/25064470/collisions-with-other-trait-methods

Thank you for the tip.
Everything works perfectly!

That's great news! Did you need to change anything or did it work first go? Just in case it might be helpful to someone else.


Rename GhcPkgMode::Clone to GhcPkgMode::Register?

@alpmestan I am curious why it is called Clone, since the sub-command it uses is register.
thanks!

@izgzhen IIRC this particular builder is used for "cloning" the package database of the stage 0 compiler (copying it somewhere under our build root). @angerman Do I remember correctly?

@alpmestan that is correct. Clone is dump + register.

I should note: I mean describe if I say dump :(

It makes sense, thanks!


Steam Deck (linux) support

Add linux support, which is basically Steam Deck support, you could use flatpak or appimage.
Make an option in settings to select which game to use which version of proton you want, the option to enable gamemode or fsr,etc...

some time ago i started making the version for linux but i stoped because some things, its in the plans to have a linux version but i think but it will take a while


How to install msbuild on Debian 11?

Using Debian 11 bullseye I installed mono-complete and set "omnisharp.useModernNet": false,, but omnisharp is not working due to:
Could not locate MSBuild instance to register with OmniSharp.

There is indeed no msbuild available from the command line, and it is blocking development .NET 5 LTS projects on Debian 11.
What could be a way forward here?

.NET 5 is not an LTS release and is already out of servicing support.  My recommendation would be to install the .NET 6 SDK and set omnisharp.useModernNet to true.
The .NET 6 SDK can still build projects that target net5.0.

That does not seem to work:
-------------------------------------------------------------------
You may only use the Microsoft .NET Core Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software
to help you develop and test your applications.
-------------------------------------------------------------------
You must install or update .NET to run this application.

App: /home/vadi/Programs/Hammer/bin/Debug/net5.0/Hammer.dll
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '5.0.0' (x64)
.NET location: /snap/dotnet-sdk/177/

The following frameworks were found:
  6.0.8 at [/snap/dotnet-sdk/177/shared/Microsoft.NETCore.App]

Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=5.0.0&arch=x64&rid=debian.11-x64
The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
The program '[8904] Hammer.dll' has exited with code 150 (0x96).

What is going wrong?

It appears that the debugger needs a 5.0 SDK to match the TFM. If you are still running into problems, please open a new issue.


schemaId undefined for registerCredentialDefinition using agent.modules.anoncreds.registerSchema

From the example https://aries.js.org/guides/0.4/tutorials/registering-schema-and-credential-definition#3-registering-a-schema
const credentialDefinitionResult = await agent.modules.anoncreds.registerCredentialDefinition({ 	credentialDefinition: { 	  tag: 'default:, 	  issuerId: '<did>', 	  schemaId: schemaResult.schemaState.schemaId, 	}, 	options: {},   })

The return value might be undefined. If you add an assertion above or use schemaId! it should work. Feel free to reopen if it is not resolved.


Ensure icon template tag can use classname instead of class_name by default

This contains the minimum change possible to ensure that the {% icon ... template tag can use classname as per the work in docs on #6028 & also ensures that we can go out with 4.2 having a very consistent approach to classname usage across all templates.
This PR does not add any 5.0 removal warning, nor upgrade considerations as technically the icon template tag is not yet 'official', I have updated one use case though in the docs. I will prepare a follow up PR (see #9770 ) on top of this one that updates all usage and adds the warnings.
Details

Update icon template to allow classname
Preserve the existing class_name usage in most other icon cases
Update only docs reference to use classname
Update development docs template example for classname convention to be in a more logical order & use the correct template syntax
Update class_name as no longer preferred as we have adopted a normalised approach for icon
Relates to #6107 & #6028

Checklist

[X] Do the tests still pass?
[X] Does the code comply with the style guide?
[X] For Python changes: Have you added tests to cover the new/fixed behaviour?
[X] For new features: Has the documentation been updated accordingly?

thanks @zerolab - yeah I wanted to separate these out as it would be easier to review


creating 2 galleries on one page

When one includes 2 galleries on one page the googlePhotos Javascript variable gets overriden by the second gallery.

Thanks for requesting this feature.
Click here to learn adding multiple galleries.


Issue #230, #226: Add tests for BertTokenizer & HfBertTokenizer customop

Issue #230, #226: Add tests for BertTokenizer & HfBertTokenizer customop
Includes a new onnx model for testing the HfBertTokenizer that accepts
two strings as input and returns output compatible with inputs for
pretrained HuggingFace models.

Abandoning this in favor of #268


Sometimes my signalr .net client's InvokeAsync method works and sometimes it doesn't.

I have a .net core 2.2 project which has an Azure signalR service hub, in my startup.cs i have set it up like this:
services.AddSignalR(o => o.EnableDetailedErrors = true).AddAzureSignalR(connstring);

app.UseAzureSignalR(route =>
{
    route.MapHub<FooBarHub>("/foobarhub");
});

I have a .net client project which is a winform app (.net 4.6.1), it sets up the connection like :
connection = new HubConnectionBuilder().WithUrl($"
{serviceHost}/AgentHub").Build();

when it starts up I call:
await connection.StartAsync();
and can see the state is Connected.
I then want to call a method on the hub from the client so i do this in the client:
string myIdString = await connection.InvokeAsync<string>
("RegisterSignalRId", foobarId);

that should hit my method in my server hub:
public string RegisterSignalRId(string foobarId)
{
    myService.RegisterSignalRId(this.Context.ConnectionId, foobarId);
    return this.Context.ConnectionId;
}

My problem is that sometimes when I start the winform app, I get myIdString being set to null, it doesn't hit the breakpoint in the server hub method at all, and yet sometimes it does work and I get the real/correct value.
I can't consistently make it work or fail, it seems random. When it does fail i get no errors or exceptions.

After some more digging i think this is because i'm using an Azure signalR service. I've added a new method which is sometimes hits successfully but sometimes fails with - HubException: Method does not exist.

It occurs when you use Azure SignalR Service for different web apps with different application name, or web app with different versions, one web app contains the method however the other one not.

hmm, i only have one web app and i'm running all this locally in dev mode with visual studio at the moment

Actually, you've made me realize that other devs are using my service with their instances too, their instances don't have this new method in, so when it works it's hitting me code, when it fails it's hitting theirs! This is probably what's happening. Thanks

Yep, i've set up a new service so i'm the only one calling that and there's no problems now. Thanks for pointing my brain in the right direction!


Issue 2449

Addresses #2449

@strmpnk broke wallaroo.py up. I guess we need to decide, do we do what this PR suggests or PYTHONPATH=../../../machida/lib:$PWD:$PYTHONPATH? The later is already in some scripts so we should decide which is better.
cc/ @strmpnk

The change in this PR is based on what the activate script expects and what wallaroo-up does.
Whatever decision is made should make sure to take wallaroo-up/activate into account.

Talked to @strmpnk. We're gonna use the changes suggested in this PR, which means I need to update some other scripts.


The line number of failure is one more than the line of error

Expected behavior
When there is an error, the line number of failure should be the line where the error occurred
Actual behavior
It is one more than the line where the error occured
Steps to replicate

Create a gauge js project
Have a step fail
run the specs
Observe the line number of the code failure

Version
Gauge version: 0.9.5.nightly-2017-11-15
Commit Hash: 55fe281

Plugins
-------
js (2.0.3.nightly-2017-11-15)

fix available in nightly > 23/11/2017


[Bug] soci cli fails if containerd address starts with "unix://"

Description
If the containerd address starts with unix:// the soci cli will fail. I stumbled upon this when I had a containerd address set in a nerdctl config file and was using the nerdctl image push --snapshotter soci command.
Steps to reproduce the bug
$ sudo soci --address="unix:///var/run/containerd/containerd.sock" index ls
soci: failed to dial "unix:///var/run/containerd/containerd.sock": failed to build resolver: invalid (non-empty) authority: unix:

$ sudo soci --address="/var/run/containerd/containerd.sock" index ls
DIGEST                                                                     SIZE    IMAGE REF                                                         PLATFORM       MEDIA TYPE                                    CREATED
sha256:b8005edf213e3ef96bff588690c618a778adb88801db7acf9256b0bdd841b006    1211<PHONE_NUMBER>44.dkr.ecr.eu-west-1.amazonaws.com/nginxdemo2:latest    linux/amd64    application/vnd.oci.image.manifest.v1+json    4m24s ago

Where as on nerdctl
$ sudo nerdctl --address="/var/run/containerd/containerd.sock" ps
CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES

$ sudo nerdctl --address="unix:///var/run/containerd/containerd.sock" ps
CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES

Describe the results you expected
$ sudo soci --address="unix:///var/run/containerd/containerd.sock" index ls
DIGEST                                                                     SIZE    IMAGE REF                                                         PLATFORM       MEDIA TYPE                                    CREATED
sha256:b8005edf213e3ef96bff588690c618a778adb88801db7acf9256b0bdd841b006    1211<PHONE_NUMBER>44.dkr.ecr.eu-west-1.amazonaws.com/nginxdemo2:latest    linux/amd64    application/vnd.oci.image.manifest.v1+json    4m24s ago

Host information

OS: Amazon Linux 2
Snapshotter Version: 0.4.0
Containerd Version: 1.6.9

Any additional context or information about the bug
No response

Hi @ollypom! Thanks for reporting the issue. I have tracked the issue back to we can simply strip unix:// from the containerd address when creating the client (similar to nerdctl). As of v0.4.0, we have a dependency on containerd's ctr for this functionality [to create containerd client]. We have work in-progress to remove this dependency. (See #874)
Once #874 is complete, then it should be straightforward to add address := strings.TrimPrefix("unix://", context.GlobalString("address"), opts...) to achieve the desired behavior.


fix #197: Find a better name for IConfiguration.GetSubKey()

@muratg, @troydai
I built Universe repo with these changes and it build successfully.

Hi @kirthik, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

:shipit:

merged 505b881622ba4413c8e73fe8950ad818dbee6b90


Support for elliptical arcs

Hi there! Thanks for making a useful library!
I've been working on parsing SVG files (not just path data, but the whole file -- warts and all), and I noticed maker.js does not have "true" support for elliptical arcs.
The models.EllipticArc constructor is definitely handy and works in a pinch, but the internal representation looks to be many circular arcs approximating a set of bézier curves which approximate the arc. I can't help but imagine we're losing some precision along the way!

I've had a lot of coffee today, so I have a couple questions while I'm at it:
Is there a historical reason why this choice to use circular arcs was made? Elliptical arcs can accurately represent circular arcs, so I'd imagine it would be more useful to use elliptical arcs internally and not the other way around.
I'm also curious about the choice to approximate béziers using arcs in the data model. I recognize that that has performance implications for tasks like measuring path length and extents, so I imagine a reason would be to optimize for that use case. Do mutating operations like scale or rotate operate on the original curve on or on the approximation? If the latter, it seems we'd lose some precision along the way?
Perhaps I'm fretting about precision when in reality the differences wouldn't matter for practical purposes. I'm totally open to that rationale if that's the case. I'm still learning what's normal in CAD.

Hi @awhitty, thanks for the feedback. The primary reason for this decision back in the beginning was to match with the DXF file format. Beziers were added later due to community request. The secondary reason is to limit the API surface, and have as few primitives as possible. The third reason is to make the math code as easy as possible, especially with regard to intersections. Since ellipses can be expressed with a series of Bezier Curves, we almost got them for free.
I totally understand your concerns about precision. In most cases, the circular arcs representations are not used when exporting to SVG, and the underlying Bezier info is used. The circular arcs get used when a Bezier has been clipped, such as in a Boolean operation with the combine() function. You may want to dig into the docs and peruse comments in the code for specifics.
Representing a circle (or ellipse) with a Bezier is also not mathematically perfectly exact, but its extremely close. I've studied https://pomax.github.io/bezierinfo/#circles_cubic and implemented ideas from there. We also use arc segments no greater than 45 degrees to get even better accuracy. Pomax's stuff is a great resource, but it took me a while to even understand some of the basics.
And yes we hope to get some performance perks by pre-computing Bezier curves into arcs so we don't need to iterate so much when computing intersections.
I have been planning to introduce a new primitive, a "mild Bezier curve". See https://github.com/microsoft/maker.js/commit/57b56575bfeec24a465e4a477a6f2b4e59f7c233 and the mild-bezier branch. The idea is to have a subsegment of a Bezier which is guaranteed monotonic in 2 dimensions, like a circular arc. I just haven't had time to finish all permutations of the code for all of the API. And, some of the math is still a little perplexing.


feat: tailwind project setup

This pull request adds:

Django app tailwind to contain Tailwind project
Node project tailwindcss with Tailwind config
Stylesheet built to Django static files (yarn build)
Example Django template using built stylesheet

come review @rollersteaam

lgtm


Support generating SHA256 checksums

As a developer I would like to provide the ability to the users to verify the SHA256 checksum of the binaries they download.
This could be done either by creating a file containing the sha256 sums of all the binaries (like shfmt) or by creating a .sha256 file with the same name as the binary (like cargo-deny).
This behavior should be enabled by default, maybe with a way to opt-out if for some reason developers/packagers don't want/need it.

e.g. https://github.com/Shopify/javy/blob/main/.github/workflows/build-assets.yml#L102


[State Sync] Start supporting account state downloading for bootstrapping.

Note: the implementation is not complete. However, given that the PR has grown so large, this seems like a reasonable checkpoint.
Motivation
This PR starts adding support for account state downloading when a node is bootstrapping in state sync. At a high-level, the way this works is:

The state sync bootstrapper epoch skips to the head of the blockchain and grabs the latest epoch ending ledger info (at version V).
The storage synchronizer spawns a dedicated state snapshot receiver for account states at version V.
The bootstapper fetches the transaction info for version V from the network (so it can verify the expected account states root hash) and then fetches all account states at version V and writes them to storage.
Once all account states have been written, the bootstrapper is complete and the continuous syncer begins syncing transactions/outputs from version V + 1.

To achieve this, the PR offers the following commits:

Add a simple smoke test for account state bootstrapping. This test currently fails.
Add the expected root hash to each AccountStatesChunkWithProof (useful for verifying proofs later).
Update the state snapshot receiver to be thread spawnable.
Pass a DB writer to the state synchronizer (required for constructing the state snapshot receiver).
Add a new CommittedAccounts variant for CommitNotifications. This allows the driver/bootstrapper to be notified about successfully committed accounts during synchronization.
Update the storage synchronizer to provide new API calls for spawning a state snapshot receiver and writing account states to the DB.
Update the state sync bootstrapper to support the new mode, including: (i) fetching the transaction info for version V; and (ii) fetching all account states at version V.

Note:

After commit 7, the smoke test added in commit 1 now passes. However, this is due to the fact that once the bootstrapper has completed syncing all account states at V, the continuous syncer starts fetching all missing transactions/outputs from version 0 (not V!). This is because we still need to update the executor/continuous syncer to accept missing transaction data. This is the next step.
Other implementation pieces still missing: proof verification, complex unit tests, etc.

Have you read the Contributing Guidelines on pull requests?
Yes.
Test Plan
The smoke test verifies some of the new functionality. Moreover, I have manually inspected the execution traces to ensure that account state data is being fetched from the network and written to storage through the pipeline.
Related PRs
None, but this PR relates to: https://github.com/diem/diem/issues/8906

Nice!  This seems like a meaningful step toward account state downloading and quick catch-up.  Is the goal to commit this as a checkpoint - given its new functionality that is not enabled and then keep iterating?

Is the goal to commit this as a checkpoint - given its new functionality that is not enabled and then keep iterating?

@aching, yes exactly. We don't have any dependencies on this code yet, so I figured we'd get this in as-is. 😊

@msmouse, pinging the thread. Can we unblock this or are there still concerns from your side? 😄

are there still concerns from your side?

No.. I just lost track of this.. :P

Thanks @msmouse!
/land

:broken_heart: Test Failed - ci-test

/land

:boom: Tests timed-out

/land

:boom: Tests timed-out

/land


Costs and prices

I can't find the prices of the premium plan. I understand this is a preview feature, but would be great to see clear comparisons to consumption plan, e.g.: the costs of pre-warmed instances in preview period and in final.

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

ID: 3847e16b-92ae-0202-c7e1-ca9a8474e65f
Version Independent ID: a25b6b5b-05ab-b3b2-616c-5d06eadb928d
Content: Azure Functions Premium plan (preview)
Content Source: articles/azure-functions/functions-premium-plan.md
Service: azure-functions
GitHub Login: @jeffhollan
Microsoft Alias: jehollan

Hi @kazinad Thank you for your feedback! We will review and update as appropriate.

@kazinad Premium plans are charged per second per the compute used. One distinction with the premium plan is you are charged for the cores and memory per worker running, regardless of how many apps or executions are active at the time within that worker. Full details on pricing can be found on the Azure pricing page and Plan - Billing & Number of Workers.

@DixitArora-MSFT thank you for the links


enable paddle.static.gradients for supporting primitive autograd

PR types

New features
PR changes

APIs
Describe

enable paddle.static.gradients for supporting primitive autograd.

LGTM