Example Project: libGodotFmod.windows.dll missing + play (F5) crashing

When you launch the project, these errors appear:
(Nie moￅﾼna odnaleￅﾺￄﾇ okreￅﾛlonego moduￅﾂu. = "Could not find procedure entry point...")

After adding the file from release 3.1.1 to lib/windows and reloading the project, the same errors appear
Adding libraries from Fmod API 2.02.03 doesn't help, the same error appears.
When selecting FmodTest.tscn as the main scene, and running the build (F5), these warnings/errors appear:

E 0:00:00.318   open_dynamic_library: Can't open dynamic library: G:/MUZYKA/BAZA/Muzyka/Zlecenia + Konkursy + Reszta/Projekty/(2022_07) FMOD + Godot Integration Video/UTOPIA-RISE EXAMPLE PROJECT/fmod-gndative-godot-example-project/lib/windows/libGodotFmod.windows.dll, error: Error 126: Nie moￅﾼna odnaleￅﾺￄﾇ okreￅﾛlonego moduￅﾂu.
.
  <C++ Error>   Condition "!p_library_handle" is true. Returned: ERR_CANT_OPEN
  <C++ Source>  platform/windows/os_windows.cpp:2353 @ open_dynamic_library()
  <Stack Trace> Fmod.gd:3 @ _init()

Hello @marekdomagala, can you provide content of lib/windows folder ?

Hello! Here you go: https://we.tl/t-p9V3fwUYij


Payout confirmation

I just want to confirm that it's necessary to do payout on each transaction?
or can i do something like
all user make payment and this amount will  credit in my wallet, and after rich on some amount do payout.
Please gives step to do transction.

Hi there,
You can do payins, transfers and payouts whenever you want. Ie you can payin, transfer to another wallet and then payout, or you can payin to a wallet and payout etc etc etc. And there is no limit to how long the money can stay in a wallet (ie if you want to do 10 payins and then a year later to do a payout, thats no problem).
Is that clearer? If you want advice on a specific workflow, I suggest you email more details about it to support[.at.]mangopay.com and they can suggest accordingly :-)

Thank you @hobailey


Spring boot reactive support

Hi,
as I cannot find any resources to connect using webflux I'm posting here. As reactive is now really used on spring with cassandra do you have any workaround to make it work?
Would consider hosting our incoming project on azure cosmos DB with cassandra if this could work.
Else is there any plan to support this?
Thank you

@backwind1233
FYI: https://github.com/microsoft/azure-spring-boot/issues/705#issuecomment-802384636
@g-apparence

do you have any workaround to make it work?

Currently, I don't have workaround.

Else is there any plan to support this?

Yes, we have. But not sure when our starter can support reactive.

Yes, Thank you for your fast reply.
Hope you plan this soon 👍

Closing this issue.
If you still have this problem, please create issue in new repo: https://github.com/Azure/azure-sdk-for-java/issues


APIs for checking uniqueness in the forms

the list is below (this will change over time and with updates to labels and data requirements):
Add EAO Staff - CONCAT "First Name", "Last Name"
Add Indigenous Nation - "Name"
Add New Work - "Title"
Add Project - "Name"
Add Proponent/Certificate Holder - "Name"

Uniqueness of work form should be based on title only.
Indigenou nations check doesn't work

For work, the other validation was added a while back to prevent work with same work type and project getting created. Is this validation no longer needed?


Refactor market simulation to be more readable and set the start conf…

…iguration to be computable in less than 1 minute.

Have you tested the whole pipeline?
I wont be able to test it until next week. But I would trust you and merge when you say you tested the whole pipeline. ;)

Except for a small error in the monte_carlo file, everything seems to work as expected and the graphs don't seem abnormal.
One current problem is, that the demand_learning notebook wants to load the S1 notebooks, which currently aren't getting created. If we keep it like that, it would probably be wise to simply run all notebooks with every strategy, simply so we can expect them. I found an easy way to do, which can be found in issue #8 .

Then please change demand_learning to use the scenario that we are currently creating as the default.
Which bug do you mean?

I already use the current scenario as default but in demand_learning we compare the two scenarios at the end. Shall I comment it out for the moment?
The problem was that I didn't remove all unnecessary output, which was only used when Rainer still calculated the logit in the notebook. I will commit the changed notebook at the end of today.

I see your point.
Let’s ignore that issue for now, as I think it’s clear that users have to generate both conpare scenarios.
I’ll review after your fix.

fixed


fix: change deprecated timeout parameter for litellm

User description
fixed https://github.com/Codium-ai/pr-agent/issues/1187
Since the "force_timeout" parameter seems to be deprecated in litellm completion/acompletion, I changed the argument to "timeout".
I tested the code on my team's server (before/after fix) and it works.

PR Type
Bug fix

Description

Updated the deprecated force_timeout parameter to timeout in the LiteLLM AI handler.
This change addresses the issue reported in https://github.com/Codium-ai/pr-agent/issues/1187.
The fix ensures compatibility with the latest version of LiteLLM for completion/acompletion calls.
The change has been tested on a team server and confirmed to be working correctly.

Changes walkthrough 📝
Relevant filesBug fix

litellm_ai_handler.pyUpdate LiteLLM timeout parameter

pr_agent/algo/ai_handlers/litellm_ai_handler.py
Changed the deprecated force_timeout parameter to timeout in the kwargs dictionary for the chat completion function.

+1/-1

💡 PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

thx, its an important feature to prevent stalls

Preparing review...

PR Reviewer Guide 🔍
Here are some key observations to aid the review process:

🎫 Ticket compliance analysis ✅
1187 - Fully compliant
Fully compliant requirements:

Replaced the deprecated force_timeout parameter with the timeout parameter in the LiteLLM AI handler.

⏱ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ No major issues detected

Preparing PR description...

PR Description updated to latest commit (https://github.com/Codium-ai/pr-agent/commit/578d7c69f8c6e84db7070e6d439b30142a78888a)


Delete hid-button-report-descriptors.md

The information on this page is not supposed to be publicly recommended. So deleting this page.

Thanks again @AndrewYangMSFT
If you have more of these, check out the commit I added to this PR (ce3cd6a) to see the other two things that need to happen for removals.
Updates should be on the live site within 10 min or so.

Sorry, that's your commit!  Mine was 742cfc398


Add demo projects for other frameworks as well

To better illustrate the capabilities and use cases, I think it would be cool to add demo's with other frameworks as well (Vue, React, etc.)
Maybe we could for the mini-dashboard for meili and just switch out the instantsearch dep for this package.

To better illustrate the capabilities and use cases, I think it would be cool to add demo's with other frameworks as well (Vue, React, etc.)

I feel like that's not the way to go. I wanted to have a demo project to easily test my changes on the web, interactively. Instead we should strive to make the project easily implementable, no matter the framework. Just try and document it as well as possible, the framework part is the responsibility of the package user, if they still have no idea what to do, they should learn their framework first.

Maybe we could for the mini-dashboard for meili and just switch out the instantsearch dep for this package.

Yeah I though about that. But that will take some time and convincing. There's a lot of work to do before that.


Fix error message to include endpoint, container id

What this PR does / why we need it:
Fix the debug message
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

/assign @sharmasushant


byte cannot be initialized with expressions

Description:
$title.
Steps to reproduce:
const byte a = 1 + 2; // output: incompatible types: expected 'byte', found 'int'
byte b = 3 + 2; // output: incompatible types: expected 'byte', found 'int'
byte c = 3;
byte d = 7;
byte e = c + d; // output: incompatible types: expected 'byte', found 'int'

Affected Versions:
SL Beta4 RC2

According to the 2021R1 spec getting errors for the non-const scenarios is expected.

It is required that either

the static type of both operand expressions is a subtype of the same basic type, in which case this basic type will be the static type of the result
the static type of one operand expression must be a subtype of xml and of the other operand expression must be a subtype of string, in which case the static type of the result is xml

So the static type of the additive-expr is int when the operands are of static types that are subtypes of int, which is the reason for the errors here.
But with https://github.com/ballerina-platform/ballerina-lang/issues/33090, the following will work since the static type will be a singleton type that belongs to int.
byte b = 3 + 2;

But the following will continue to result in an error.
byte c = 3;
byte d = 7;
byte e = c + d;

This is correct since we don't know what c and d are and the addition of c and d may result in an int value that does not belong to byte.
e.g.,
byte c = 255;
byte d = 1;
byte e = c + d; // 256 does not belong to `byte`

Will change the title to reflect the const scenario.


[Feature request] support binary field

Describe the feature
The BINARY data field is useful to store byte data and uses for a faster index, or manually edit SQL to insert data like this.
INSERT INTO `uuid_models` (`id`,`created_at`,`updated_at`,`deleted_at`) VALUES (x'e4186434ad49436abc9d06f763255619','2020-07-20 21:42:55','2020-07-20 21:42:55',NULL)

The model would look like this.
type UUIDModel struct {
	UUID uuid.UUID `gorm:"type:binary(16);size:16;primary_key"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time `sql:"index"`
}

Motivation
store UUID as BINARY to speed up the INDEX and query.
Related Issues
none

type UUIDModel struct {
	UUID uuid.UUID `gorm:"type:binary(16);size:16;primary_key"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time `sql:"index"`
}

It doesn't work?

no it does not.
package main

import (
	"fmt"
	"github.com/google/uuid"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

func main() {
	//id := uuid.New()
	//fmt.Println(id)
	//fmt.Println(id.String())
	//fmt.Println(id.URN())
	db, err := gorm.Open("mysql", "root:admin@/fuzzyshop?charset=utf8&parseTime=True&loc=Local")
	if err != nil {
		panic("failed to connect database")
	}
	db.LogMode(true)
	db.AutoMigrate(&UUIDModel{})
	id := uuid.New()
	fmt.Println(id.String())
	data := UUIDModel{UUID: id}
	db.Create(&data)
	var result UUIDModel
	db.First(&result)
	if id == result.UUID {
		fmt.Println("same id")
	}
	//db.Delete(&result)
}

This is the log for the code
[2020-07-21 10:10:29]  [24.30ms]  ALTER TABLE `uuid_models` ADD `uuid` binary(16);
[0 rows affected or returned ]
e8d2f16f-2e36-4d66-87ca-9bb6dfa6b921
[2020-07-21 10:10:29]  Error 1406: Data too long for column 'uuid' at row 1
[2020-07-21 10:10:29]  [4.99ms]  INSERT INTO `uuid_models` (`uuid`,`created_at`,`updated_at`,`deleted_at`) VALUES ('da2c059e-f9fe-43d2-a217-9cb50e46d83c','2020-07-21 10:10:29','2020-07-21 10:10:29',NULL)
[0 rows affected or returned ]
[2020-07-21 10:10:29]  [3.29ms]  SELECT * FROM `uuid_models`  WHERE `uuid_models`.`deleted_at` IS NULL ORDER BY `uuid_models`.`uuid` ASC LIMIT 1
[0 rows affected or returned ]

The result DDL for the table
create table uuid_models
(
	id binary(16) not null primary key,
	created_at datetime null,
	updated_at datetime null,
	deleted_at datetime null
);

create index idx_uuid_models_deleted_at
	on uuid_models (deleted_at);

The uuid.UUID needs to implements the Valuer interface returns the binary value

Sorry, my mistake, I was using [16]byte as type.


Client Sometimes Fails to Realise Mints Are Ready to Send

After 17 confirmation, it still says pending and I can not do private send. When I close the app and open it again, it says that I have 2 zcoin available for private send, but it shows a suggestion for anonymizing coins, when I just did and 50% of my zcoins are already minted.
Originally posted by @hakonamatata in https://github.com/zcoinofficial/zcoin-client/issues/45#issuecomment-526922117

Ok, so this seems to be two separate issues in its own right. The one this new issue about is that Zcoin Client isn't updating balances properly after mints get the requisite six confirmations.
Unfortunately, I can't seem to reproduce the issue.
@hakonamatata When Zcoin Client told you that you couldn't do a private send, did the error occur when you were entering the amount before you hit the "Send" button, or did the error occur after you had already entered your password?

The error was that it said 0 XZC available for private send. Since the balances was not updated, even after 17 confirmations. Then you can't click the "send" button at all.
The issue was resolved as soon as I closed the app and opened it again.

@hakonamatata I also can't reproduce this (though I'm using regtest mode). However the balance issue is very likely fixed now, and so given that the issue is fixed on a restart, I believe this will be fixed on 0.0.3. It will be released Friday

Testing version 0.0.3, still the same behavior

It says 1.95 pending until i close and open the client again.

@hakonamatata could you please retest on latest GUI wallet https://github.com/zcoinofficial/zcoin-client/releases/tag/v0.0.4-1   . I couldn't reproduce it on latest.

This is almost certainly fixed now so I think it can be closed.


Please make the "label"-prop required

Hello,
I've debugged some time now the error

TypeError: Cannot read property 'split' of undefined

and basically found out that I was missing the "label"-prop.
To prevent others from wasting time please make this a required prop since it is indeed required :)
Thank you!

Yes, either make it required, or better yet remove the dependence on it that makes the module not work without it.

+1


Create Version type to encode HttpVersion

Is your feature request related to a problem? Please describe.
We should be able to specify Version via ClientRequest. This is currently supported only via HttpVersion
Describe the solution you'd like
A sum type should be created for Version with Http_1_1 and Http_1_2 and Http_2 as it's specialized types.

I'll take it on.


Memory Leak

I am not going to sugar-coat this: there are potentially hundreds of tiny memory leaks.
The culprit is cgiGetVariable strdup the result, which allocates onto the heap, but many of these function calls assume that does not happen.
So far, I am taking the approach of freeing when done. However, given how much more messy that makes the code, I may just go along with returning a read-only pointer to the array itself, while not allowing any changes to happen.
I already made a function that checks if the result exists or is NULL without strdup, but this only checks if the variable exists.
What do you think?

@zdohnal Any advice?

Keep in mind that the CGI programs have a very short lifetime so any “leaks” of form variables are resolved quickly when the corresponding process exits.

Keep in mind that the CGI programs have a very short lifetime so any “leaks” of form variables are resolved quickly when the corresponding process exits.

Ok so they don't continuously run in the background like daemons tend to do, right?

Ok so they don't continuously run in the background like daemons tend to do, right?

Correct, they run and go away.

@michaelrsweet Done but now compilers are complaining about constness when doing free

@michaelrsweet Done but now compilers are complaining about constness when doing free

That's the thing, the (void *) casts were added to non-const pointers.


Where is the documentation for the server side javascript

This document only links to the integrated query API.  Where are the docs for the more traditional SDK as used in all these examples?

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

ID: 239e3b2d-4a09-c6a1-ab36-70b60a18f8b5
Version Independent ID: 10a323f6-5a10-8b38-6339-48ee7a4c54b3
Content: Register and use stored procedures, triggers, and user-defined functions in Azure Cosmos DB SDKs
Content Source: articles/cosmos-db/how-to-use-stored-procedures-triggers-udfs.md
Service: cosmos-db
GitHub Login: @markjbrown
Microsoft Alias: mjbrown

@aheld Thank you for reaching out.
Are these what you are looking for
https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-write-stored-procedures-triggers-udfs
https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-write-javascript-query-api

I'm looking for a more detailed set of documentation.
You have this for the integrated javascript: https://azure.github.io/azure-cosmosdb-js-server/
and this for the client SDK: https://docs.microsoft.com/en-us/javascript/api/overview/azure/cosmos-readme?view=azure-node-latest

I'm not clear on this ask. The docs for server-side features are complete in that they demonstrate how to use stored procedures and what the capabilities are. They are not designed to be an exhaustive source for how to write queries.
I should point out that I would not rely to heavily using stored procedures for large numbers of read-operations. Stored procedures operate on the primary replica only (out of a 4 replica set). This means that doing large reads via stored procedures will not fully utilize all of your provisioned throughput and you may encounter 429's more frequently.
Stored procedures are best for doing multi-document transactions and write operations involving multiple items at one time.
Thanks.

@markjbrown can you show me where the API docs for the collection.queryDocuments call?  That is what I'm looking for.  I can't find where the collection object is defined

Yes the JSDocs you referred to above are the only docs we have for collection.queryDocuments.
http://azure.github.io/azure-cosmosdb-js-server/Collection.html
This interface has not changed and these docs pre-date when we moved to the new Microsoft Docs platform. We will take a look at migrating these docs to MS Docs. But in the meantime this link above is what we have for now.
Thanks.
#please-close

Thank you for the response.  When you get to the docs I'd also like to understand the execution context.  For example are Promises supported?  (they seem to work but console.log does not.  Which makes me wonder if they should be avoided???)


Message:	Cannot use non-existing permission "mentionedmessage.use"

you got that message while doing what?

The issue has been fixed, please use the latest version


Bot not waiting for Prompts.text input and Prompts.choice

Bot info:
•	SDK Platform : Node.js
•	SDK Version : v3
•	Deployment Environment : Azure Bot service
•	3 Web app bot created in Azure ( dev, demo and prod)
Issue Description:
builder.Prompts.choice and builder.Prompts.text  is not waiting for user input ( It sometimes wait for the user input and sometimes doesn’t wait and goes back to the main function and treat it as a separate utterance and goes to Luis ) in the prod environment
We were facing the same issue in the demo environment , where we had followed these steps in solving the issue.
•	We moved all the packages from dev to demo environment
•	We moved all the code files again from dev to demo
•	We restarted the app service
We had followed the same steps in the prod environment but  we are not able to resolve the issue .
We tried the same prod code in the local in visual studio code and tested it with  bot Emulator and it works completely fine.
Behaviour Noticed:
We noticed that whenever the bot URL link is opened , the connectorsetup.js file,  which connects with the bot is getting refreshed multiple times in azure.
Code Example:
I am using this way to recognize the Luis in my code
builder.LuisRecognizer.recognize(session.message.text, '<model url>', function (err, intents, entities) {
    if (entities) {
        var entity = builder.EntityRecognizer.findEntity(entities, 'TYPE');
        // do something with entity...
    }
});

Things done from  my side
When i searched in git i got this solution in which they told to use on enable and solve the issue
Another example can be found here: #2670 (comment)
var recognizer = new builder.LuisRecognizer(LuisModelUrl)
    .onEnabled(function (context, callback) {
        // LUIS is only ON when there are no tasks pending(e.g. Prompt text)
        var enabled = context.dialogStack().length === 0;
        callback(null, enabled);
    });

But the problem here was my way of calling the Luis is different and i am not sure how we can use onenabled function is builder.LuisRecognizer.recognize

Hi Team,
Any solution for this issue ?

Hi i think i am facing the same issue as  #4477

The issue you linked to was fixed in BotBuilder 3.15.3. Have you updated your SDK to the latest version of v3?
Also, you should not be using in-memory storage for a published bot. Please have a look at the documentation for some help implementing proper storage.
Looking at your code, it is a little strange to me that you're calling session.endDialog() twice:
if (TopIntent != "None") {
    session.endDialog();
    myIntentHandler(session, session.message.text);
}
else if (TopIntent == "None") {
    noneSecondResp(session);
}

session.endDialog();

That's probably not directly related to your problem, though.

Hi @v-kydela  thanks for replying back.
i was not able to update it to 3.15.3 it showed me this error (PFA THE Screenshot)

Can u help me with why this error is coming and i am only able to update it to 3.16.0 , not other than that in SDK V3. And after i update it to 3.16.0 also the same issue exists.
I am using now a Manage state data using CosmosDB , thanks for updating that
Looking forward in hearing from you @v-kydela

Hi @vishmonne
You can see that the output is saying that version 3.15.3 is not available. It shows you a list of valid install targets and 3.16.0 and 3.15.0 are there but not 3.15.3. You can also verify this by going here and clicking on versions.
This is fine because you don't need 3.15.3. I just said to update to the latest version, and 3.16.0 is sure to have all the fixes you need. There's no reason to downgrade.
Does using CosmosDB fix your problem?

hi @v-kydela , when i implemented the CosmosDB, the prompts.text issue got resolved, but in the prompts.choice function i have a issue ( the same random types)
Please see my code for the Prompts.choice
`
var test = ""; //global variable
function Prompt_With_Choice(session,Content,Buttons,intent,entity,entitytype)
{
test=entity;
console.log("the test value is " + test ); // i am getting the value of test
session.beginDialog('Prompt_With_Choice', entityType_prompts);
}
bot.dialog('Prompt_With_Choice', [
function (session) {
    console.log("the test value is " + test ); // i am getting the value of test
    builder.Prompts.customize(builder.PromptType.choice, new builder.PromptChoice({minScore: 1.0}));
    builder.Prompts.choice(session,content_prompts,buttons_prompts,{listStyle:builder.ListStyle.button,maxRetries: 0});
},
function (session, results) {

     console.log("the test value is " + test ); // i am not getting the value of test, its showing empty
    if(results.response)
    {

        var lowerentity=results.response.entity;
        session.endDialog();
    }
    else
    {
        session.sendTyping();
        session.endDialog();
        a.myIntentHandler(session, session.message.text);
    }

}

]
);
`

Hi @vishmonne
That is actually expected behavior and it's a good example of why bots need state storage. When deployed, your bot may be running on many different servers. When you send a message to your bot, there's no telling what machine will receive that message. Therefore there's no reason to expect the bot's local variables to have the same locally-stored data that they did on the last turn. The best way to conceptualize how a bot works is to assume your bot has shut down and then restarted between each turn so that each turn is handled by a totally different instance of your bot application. This article from the V4 documentation may help you understand state better. If you want a variable like test to persist between turns, you'll need to store it in your bot's state.
Does this resolve your issue?

hi @v-kydela , thanks for the detailed update on this,  i read through the link and got to understand better on the bot's state . By doing that , solved my random issue.
But i wanted to know how come the same code with the memory storage as inMemory is working correctly in another web app bot , but not in this ?

It's very difficult to answer that without more information. Here are some possibilities:

Maybe it is only working randomly and so you just happened to not have seen it fail yet
Maybe you're using a different version of the BotBuilder SDK that handles state differently
Maybe you're using different code that doesn't depend on state in the same way
Maybe you're uploading the bot to a server that doesn't scale sideways
Maybe you're not uploading it at all and just testing locally

Does this resolve your issue?

@vishmonne - Do you still need help?

Hi @v-kydela , i am fine with the explanation. Thanks a lot for helping around with the random button issues. Really appreciate the help. We can close this issue.


Header is not available

Hi Team,

There is no option to add a header. So there is an issue while downloading the multipage resume. Some lines are not properly aligned.
There is an issue while putting the address in the first Block. it is adding on both sides on the right-hand side as well left-hand side under the name.

Closing this in favor of Reactive Resume v3 release.
If you continue to face this issue, please raise a new one and I'll have a look at it as soon as I can.
In the meantime, if you are able to, please consider donating to keep supporting the project: https://www.buymeacoffee.com/AmruthPillai :)
Thank you!


NULL out boroughcode

The de-normalized subaddress boroughcode column is not strictly necessary.  We actively maintain boroughs on address points which have a one to many relationship to subaddresses.
We do not know the exact history of the column boroughcode on the subaddress table.  It may have been created to help create a sort of virtual partition, either for internal updates or for downstream users.
As of Fall 2022 we are unaware of any uses for this column.  It is a mix of NULLs and old values.
To be safe instead of dropping the column we will NULL all values to make clear that the column will not be maintained.

We completed this update on October 27, 2022.


Loosen Codecov notification criteria

Sometimes CI is flaky due to factors outside the project's control. This config should allow reports to be generated if CI doesn't pass but at least 4 reports are generated, which ensures all of either OS X or Linux builds pass and at least one from the other. This gives confidence that "enough" builds have succeeded and coverage can be trusted.
The problems with Codecov may be caused by CI failing on master more than it should. Reports aren't generated when CI fails so this causes cascading issues. Hopefully this will address that.
See #1754

Codecov Report

Merging #1865 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1865   +/-   ##
=========================================
  Coverage     80.35%   80.35%
  Complexity     1961     1961
=========================================
  Files           325      325
  Lines          5517     5517
  Branches       1023     1023
=========================================
  Hits           4433     4433
  Misses          557      557
  Partials        527      527

Continue to review full report at Codecov.

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


MINOR: improve RocksDBConfigSetter docs

Users often use the RocksDBConfigSetter to modify parameters such as cache or block size, which must be set through the BlockBasedTableConfig object. Rather than creating a new object in the config setter, however, users should most likely retrieve a reference to the existing one so as to not lose the other defaults (eg the BloomFilter)
There have been notes from the community that it is not obvious this should be done, nor is it immediately clear how to do so. This PR updates the RocksDBConfigSetter docs to hopefully improve things.
I also piggybacked a few minor cleanups in the docs

@guozhangwang @vvcephei @bbejeck @cadonna @abbccdda @mjsax

\cc @JimGalasyn @londoncalling for final review before merging.

Merged #7009 into trunk.


[Templating] Create macro for submit_button

Discussed in https://github.com/kevinpapst/TablerBundle/discussions/23

Originally posted by cavasinf December 14, 2021
@kevinpapst just curious, how do you render your submit form button.
From the embeds/button macro you can only create a fake button through <a> element. In that case, no submit type possible.
So, did you create it from your formbuilder and render it via form_row() ?

Until now I rendered the buttons manually. Some examples:
In a modal footer:
<button type="submit" class="btn btn-primary pull-left modal-form-save" data-loading-text="{{ (submit_button|default('action.save'))|trans }}…" id="{{ block('modal_id') }}_save">{{ (submit_button|default('action.save'))|trans }}</button>

In a delete dialog:
<button type="submit" class="btn {% if used %}btn-danger{% else %}btn-primary{% endif %} pull-left modal-form-save" data-loading-text="{{ 'action.delete'|trans }}..." id="{{ block('modal_id') }}_save">{{ 'action.delete'|trans }}</button>

In a regular form:
<input type="submit" data-loading-text="{{ (submit_button|default('action.save'))|trans }}…" value="{{ (submit_button|default('action.save'))|trans }}" class="btn btn-primary" />

Merged in https://github.com/kevinpapst/TablerBundle/pull/47


Please push 2.1.0 to NPM

Can't seem to find the latest release in NPM. Please can you publish it?

done.


Notebooks packaged in 'deploy' distribution are missing images

Images are not present on the docker image.
This appears to be a packaging error - they are omitted from the egeria-deploy.xml assembly
Fix needed for master & 1.5

fixed


Add test hook to know if app requires rehydration

cc @eessex
Many of the flaky test failures we've been seen in integrity can be correlated with race conditions related to rehydration. An element that we're searching for may be on the page, but it may not yet be ready to be clicked. We've already added some mechanisms for waiting for an app to rehydrate.
The biggest missing piece is knowing if we should wait for an app to rehydrate. That's where this PR comes in.
I've added the data-test-ssr-app to the server rendered attributes of any app that uses reaction templates. That means on server render, this attribute will be available on the body of the app and be an effective mechanism for integrity to know if it should try to wait.
With this, we can add more hooks into global actions (like logging in) to automatically wait if it's necessary.

@zephraph - Any template involving react_ should have SSR, unless you want to update underlying SSR apps. I'm thinking things like react_minimal_header and so on. Lots of those pages get full SSR passes.

@damassi for right now I'm just going to target reaction apps. We can revisit if we need to target all SSR apps (including things SSR'd via stitch).
For now I just want to minimize variability on pages with a potentially large rehydration delay.

I've updated the attribute selector to be data-test-ssr-app. The reason is we already use the data-test attribute for data-test=AppReady.

I'm gonna go ahead and try to push this out so I can update integrity's test targeting.


Fast Hybrid mode of iGEMM

A implementation of issue #299
Add the skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage attribut into ExecutionContext
Add IsOptimizedHybrid() to set the attribute to true. IsHybrid() to return true for both plain Hybrid and OptimizedHybrid modes
Modify IsApplicable of all hip-based implicitGemm solvers. If the attribute is true, skip the solver
Set OptimizedHybrid mode as default

The proposed design has couple drawbacks.

(1) It does not affect the result of GWSS for the Solvers that implement the GetWorkspaceSize() method, so the library might request an excessive workspace from the user's program.
(2) The design is algorithm-based which does not comply to the proposal

I have different design in mind.

(A) Add a new boolean attribute to the ExecutionContext: skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage. This ugly name tells anything (and BTW denotes quirky architecture).

The new attribiute is similar to the exising disable_perfdb_access

(B) Set this attribute to true when the new "Optimized Hybrid" Find mode is active.
(C) Each Solver that takes long time to build and has narrow coverage should be modified: its IsApplicable() should return false when skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage is `true. Other solvers stay intact.

An attentive readers would note that “my” design does not literally match my own architectural proposal. However, if they look more closely, they could see that this design is actually a linear transformation of the proposal.

My recent comment edited.

@atamazov Thanks for your feedback. Supporting GetWorkspaceSize should be simple to implement. Looks like the main problem is using lists or not. Both solutions are good. The key is as @JehandadKhan said how we have one location with all the information instead of checking IsApplicable of each solver. We can discuss it during the meeting and then make a confirmation.

@zjing14 You are welcome, But please don't let words to fool yourself. One location is Solver. List is the second location. If we are going to add new lists for each new small feature, then where we'll end up?

@atamazov Just double-check if I understand your proposal and confirm with the implementation details.

Add the skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage attribut into SolverBase
Add the "Optimized Hybrid" Find mode that goes through a list of to-disable solvers and set their attribute to true
Modify the IsApplicable to check the attribute.

@zjing14 Good questions!

Add the skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage attribut into SolverBase

No, to ExecutionContext.

Add the "Optimized Hybrid" Find mode...

Yes, the support for OptimizedHybrid should be added to the FindMode class. I recommend updating existing IsHybrid() to return true for both plain Hybrid and OptimizedHybrid modes and introducing a new function, IsOptimizedHybrid(). That would simplify code changes necessary in other places.

...that goes through a list of to-disable solvers and set their attribute to true

There is no need to create a new list. "OptimizedHybrid" should differ from plain "Hybrid" only in case of find-db miss: it sets skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage in the context to true. This requires modifications in convolutionocl.cpp and in convolution.cpp. I recommend searching for IsHybrid in the sources to find places that require modifications. Examples:
Modified fragment of FindConvFwdAlgorithm()
(Comments removed to save space)
const miopen::FindMode fm;
bool use_immediate_solution = false;
miopenConvSolution_t sol;
if((fm.IsFast() || fm.IsHybrid()) && !use_winograd_only)
{
    size_t count;
    GetForwardSolutions(handle, wDesc, xDesc, yDesc, 1, &count, &sol);
    use_immediate_solution = (count > 0) && !(fm.IsHybrid() && sol.time < 0);
}

if(use_immediate_solution)
{
    CompileForwardSolution(handle, wDesc, xDesc, yDesc, sol.solution_id);
    const auto id = solver::Id(sol.solution_id);
    perf_db.push_back(
        {id.GetAlgo(conv::Direction::Forward), id.ToString(), sol.time, sol.workspace_size});
}
else
{
    ctx.skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage
        = fm.IsOptimizedHybrid(); /// <<<------------------------------------------ ADDED STATEMENT
    perf_db = UserFindDbRecord::TryLoad(handle, problem, [&](DbRecord& record) {
        DirConvFindCore(handle,
                        xDesc,
                        x,
                        wDesc,
                        w,
                        yDesc,
                        y,
                        workSpace,
                        workSpaceSize,
                        *this,
                        exhaustiveSearch,
                        record,
                        ctx, /// <<<---------------------- PASSING CONTEXT TO SearchForAllSolutions
                        use_winograd_only);
    });
}

Modified fragment of ForwardGetWorkSpaceSize()
(Comments removed to save space)
auto ctx = ConvolutionContext{xDesc, wDesc, yDesc, *this, conv::Direction::Forward};
...
const miopen::FindMode fm;
while(fm.IsFast() || fm.IsHybrid())
{
    size_t count;
    miopenConvSolution_t sol;
    GetForwardSolutions(handle, wDesc, xDesc, yDesc, 1, &count, &sol);
    if(count < 1 || (fm.IsHybrid() && sol.time < 0))
    {
        ctx.skip_solutions_that_take_long_time_to_build_and_have_narrow_coverage
            = fm.IsOptimizedHybrid(); /// <<<-------------------------------------- ADDED STATEMENT
        break; // Fall down to Normal Find.
    }
    MIOPEN_LOG_I2(sol.workspace_size);
    return sol.workspace_size;
}

ctx.SetupFloats();
ctx.do_search             = false;
ctx.disable_perfdb_access = true;
const size_t direct_workspace = ForwardBackwardDataGetWorkSpaceSizeDirect(ctx);
const size_t implicit_gemm_workspace = ForwardBackwardGetWorkSpaceSizeImplicitGemm(ctx);
const size_t workspace_size_scgemm = ForwardBackwardDataGetWorkSpaceSizeSCGemm(handle, ctx);
...

Notice that some of the required modifications are more complex, because there are still some irregularities in the code (not all Solvers/Invokers are ready yet (((

Modify the IsApplicable of corresponding solvers to check the attribute.

Yes. Each Solver that “knows” about itself that it has narrow coverage and its build takes a lot of time should check the new attribute and tell the caller "I am not applicable".
Hope this helps.

It does seem a little hackish to use context variable to traverse a different list

@pfultz2

It does seem a little hackish to use context variable to traverse a different list

Which list do you mean?

@atamazov Thanks very much for the clarification. Now, I think I understand. Will finish a modification soon.

Hi all, I modified the code following @atamazov comments. Please take a look. If the implementation is OK, I will set the optimized_hybrid to default.

@atamazov @daniellowell  Do we need to set optimized_hyrid mode as default?

Here are numbers of renext101, bs=128. @daniellowell @atamazov @JehandadKhan
| Wall time (sec) | Throughput (img/sec)
-- | -- | --
Normal | 388 | 126
Hybrid | 336 | 126
Optimized_Hybrid | 175 | 88

Here are numbers of renext101, bs=128.

Looks like these configs are not included into system-find-db.

Looks like these configs are not included into the system-find-db.

Possibly, @zjing14 do you have commit 16d87c1 merged in to your branch ?
Thats the one with the latest tuning.

Looks like these configs are not included into the system-find-db.

Possibly, @zjing14 do you have commit 16d87c1 merged in to your branch ?
Thats the one with the latest tuning.

Yes. But in the test, I merged the latest develop.

Here are updated numbers of ReNext101, bs=128 with tuning (MIOPEN_FIND_ENFORCE=3). @daniellowell @atamazov @JehandadKhan
| Wall time (sec) | Throughput (img/sec)
-- | -- | --
Normal | 379  | 153
Hybrid | 214 | 153
Fast_Hybrid | 217 | 154

Adding onHold until we merge in #272 and #317

Numbers of resnext101, bs128 with different FIND_MODE on Vega20 (MI60).
| Wall time | Throughput (img/sec)
-- | -- | --
Normal | 7m32.903s | 77.25
Hybrid | 2m37.938s | 77.08
Fast_Hybrid | 2m37.859s | 77.12

@zjing14 Merge conflict with develop.

Numbers of resnext101, bs128 for different MIOPEN_FIND_MODE on Vega20 (MI60) with empty find-db.

Find mode
Wall time
Throughput (img/sec)

Normal
7m37.145s
78.9

Fast
1m54.875s
35.9

Hybrid
7m38.975s
78.7

Fast_Hybrid
4m21.852s
78.0

@pfultz2 @atamazov @daniellowell @JehandadKhan Pl review.

@zjing14 Just retrigger the build.

@pfultz2 @atamazov @daniellowell @JehandadKhan Pl review.

Needs review

@JehandadKhan Thanks for your opinion (although I have the opposite one).


Resolves links from different spaces

Adds support for ResourceLink resolution

looks good to me - you aren't able to see the failing tests when you run this locally are you? I think I remember you saying you dont have circle CI permissions


Lots of error:The type or namespace name could not be found (are you missing a using directive or an assembly reference?)

Follow the steps in Tutorial: Store data at the edge with SQL Server databases
But lots of errors like the following shown in problem tab

It's already provided with all Prerequisites.
It's my first report.if there have any problem,please remind me!

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

ID: 9f033d3a-7af4-53ce-e7da-4ac7444520ce
Version Independent ID: 1f2f6875-6f69-83f7-1181-ea3e01946813
Content: Store data with Azure IoT Edge SQL module
Content Source: articles/iot-edge/tutorial-store-data-sql-server.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

@Ronyeee Thanks for the feedback. We are actively investigating and will get back to you soon.

Same issue here and someone else on stackoverflow: https://stackoverflow.com/questions/48403919/how-to-add-dependencies-in-visual-studio-code-when-deploying-iot-edge-function

@alpinedelight yep I found those error actually not impact the step running.It show the error only because of the library those function need do not exist in local.however it don't have to run in local so that's fine.Thanks


Signing error when running Shrine MDC-01 Swift Starter

Signing for "MaterialComponents-MaterialIcons_ic_chevron_right" requires a development team. Select a development team in the Signing & Capabilities editor.
Adding my own apple ID and Personal Team did not work.
How to proceed?

I added my own apple ID and Personal Team on multiple targets.


[release-v1.16] Add Konflux configurations

Add Konflux components and pipelines

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (release-v1.16@2f5d033). Learn more about missing BASE report.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@               Coverage Diff                @@
##             release-v1.16     #117   +/-   ##
================================================
  Coverage                 ?   80.25%
================================================
  Files                    ?       25
  Lines                    ?     2036
  Branches                 ?        0
================================================
  Hits                     ?     1634
  Misses                   ?      306
  Partials                 ?       96

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


Update README.md with the correct script name in Usage section

Looking README.md file it seems to have the following change needed.
Actual
If you just want to start the environment again, use the script run_docker.sh
 ./run_devel.sh
My change
If you just want to start the environment again, use the script run_devel.sh
 ./run_devel.sh

@pxalcantara  Thank you for your comment. I changed the code as per your comment.


Ability to get index of an element inside the source code

In HtmlAgilityPack it is possible to get start index of an element in the source code. Although it's stored in the private fields but still usable.
I could not find anything that corresponds to this in AngleSharp. There is an Index method in NodeExtensions but it's not what I'm looking for. I need the start index of the element in the source code, not in the parent collection. Is there any chance this support can be added?

+1.  I miss this feature from HtmlAgilityPack. Sadly, there is currently no way to get the stream distance between two elements (how far (character count) is one element from another).
I will be waiting for this feature.

This landed in devel. Excerpt from the documentation:

By default AngleSharp will throw away the "tokens" that associate the element with a position in the source code. This is mostly done due to the required memory consumption. The tag tokens transport not only the position, but also some additional fields like the name, flags and other meta information, as well as attributes. These tokens, however, can be preserved.
Currently, there are two ways to do this (both accessible via the HtmlParserOptions).

For one-time scenarios during parsing the OnCreated callback can be used. The first argument is the IElement instance. The second argument received by the callback is a TextPosition value.
For retrieval at a later point in time the IsKeepingSourceReferences option could be set to true. This way the SourceReference property of all parser-created IElement instances will be non-null. Currently, the referenced ISourceReference only contains a Position property.

In code for option 1 this looks as follows:
var bodyPos = TextPosition.Empty;
var parser = new HtmlParser(new HtmlParserOptions
{
    OnCreated = (IElement element, TextPosition position) =>
    {
        if (element.TagName == "BODY")
        {
            bodyPos = position;
        }
    },
});
var document = parser.ParseDocument("<!doctype html><body>");

The code for option 2 looks as follows:
var parser = new HtmlParser(new HtmlParserOptions
{
    IsKeepingSourceReferences = true,
});
var document = parser.ParseDocument("<!doctype html><body>");
var bodyPos = document.Body.SourceReference.Position;

In both cases the position we care about will be stored in bodyPos.
Remark: As SourceReference may be empty (e.g., when we omit the provided option or if we select an element that came in after parsing) we advise of using SourceReference?.Position, where we would end up with a Nullable<TextPosition>. Ideally, we then just use TextPosition.Empty as the fallback, e.g., in the code above:
var bodyPos = document.Body.SourceReference?.Position ?? TextPosition.Empty;

Hope this helps!

Sorry to chime in three years later, but could I request to implement it also for other node types?
SourceReference is available only for Elements, but it would be very useful to get source coordinates for other nodes as well like comments, text nodes, and so on (btw, HAP does it).
If keeping the whole HtmlTagToken is too much a burden on the memory footprint, you could simply sport a nullable INode.TextPosition attribute.

If keeping the whole HtmlTagToken is too much a burden on the memory footprint, you could simply sport a nullable INode.TextPosition attribute.

Hm - that's not how memory works. These positions are anyway structs (and usually ~8 bytes as we have two 16 bit length fields and a single 32 bit field). 8 bytes - or 64 bit - is also the size of a pointer on 64 bit systems - so a nullable attribute would consume the 64 bit already. The size of an object is not determined by what is contains, but how its model looks like.

Sorry to chime in three years later, but could I request to implement it also for other node types?

Yes you can - but this would definitely require either an external contribution or a sponsorship to support development.

Thx for the awesome library!
I am also interested in source coordinates of text nodes. And I was wondering if there might be an 'easy solution' for this.
Would it be an option to raise an event like OnCreated for consumed tokens?
(If appreciated I would like to provide a pull request for this.)

Let's discuss this. Ideas from my side:

Evaluate how much perf hit we get if we'd make this consistent (i.e., SourceReference on INode, specifically for text nodes)
Evaluate how much perf hit we'd get for an optional OnToken event raised by the DOM builder upon consumption
Evaluate how feasible it would be to "store" / "retain" the tokens; this way allowing something like "get position of this token in the token chain" for "grabbing the succeeding text token" would be possible

Thoughts?

I think it's possible to store / retain the token from the OnToken event? Is that what you meant?

Well, surely it's "possible" - the question is how much perf. impact that has. So if those tokens are just kept (if opt-in) in a store or list then retrieving a token's index and getting the adjacent nodes or something else would be possible, too. But that means we'd need to have this kind of structure (could be as simple as a list) and store the tokens there instead of throwing them away.


Rename classes

Rename all classes

@rultor merge

@rultor merge

@volodya-lombrozo OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@volodya-lombrozo Done! FYI, the full log is here (took me 3min)


Can we solve \tag overlap with flexboxes?

Before reporting a bug

[x] Check common issues.
[x] Check the bug is reproducible in the demo. If not, check KaTeX is up-to-date and installed correctly.
[x] Search for existing issues.

Nota bene: Please forgive me if my ignorance in Katex internals is making me propose something dumb.
Describe the bug:
Hi guys, thanks for maintaining this package!
As you can imagine for the tittle of this issue I'm struggling with the \tag overlap when displaying web pages in mobile devices. For example this equation:

I was trying to solve this by overriding the CSS with this:
    .katex-html {
      display: flex !important;
      flex-direction: row;
      flex-wrap: nowrap;
      justify-content: space-between;
      align-items: baseline;
      overflow-x: auto;
    }

    .katex-html .base {
      display: inline !important;
    }

    .katex-html .tag {
      display: inline !important;
      position: relative !important;
      margin-left: var(--margin-small);
    }

And it works!:

Sadly, the inline math expressions break:
Before:

After:

I think it is because both, the inline and block styling, share the same CSS classes. So I want to ask you, what if you use a different CSS class for inline and block styling?
If we have different classes, we can leave inline styling as it is and use the code snippet above just for block equations.
Actually, it might be possible to just add an extra class indicator when inserting a block element, something like katex-blockat the end of the span class property, like this:

In this way katex-blockwill have the CSS code snnipet above.
(La)TeX code:
The code of (La)TeX you tried to render:
$$
\begin{aligned}
J(\theta) = - \frac{1}{T} \log L(\theta) = - \frac{1}{T} \sum_{t=1}^{T} \sum_{-m \leq j \leq m} \log P(w_{t+j} | w_t; \theta); j \neq 0
\tag{2}
\end{aligned}
$$

Expected behavior:
The equation number should appear at the right of the equation, not over it.
Environment (please complete the following information):

KaTeX Version: 0.13.11
Device: Android Mobile device. Can also be shown with Firefox's Responsive Design Mode
OS: Android, Linux
Browser: Firefox 88.0.1 (64-bit), Chromium Version 90.0.4430.212 (Developer Build) Fedora Project (64-bit)

Thanks!

The reason we use the layout we do is that flexbox (as far as I know) cannot center the equation itself; rather, it can only center the equation within the space leftover by the tag.  The plus side is that $$ x=5 $$ \begin{equation} y=5 \end{equatrion} is properly aligned.  The downside is that the tag can overlap.  It would be great to fix the latter without breaking the former.
You probably want to prefix your CSS rules with .katex-display, as in .katex-display .katex-html { ..., so that they apply only to display equations.  Perhaps something like this would be worth adding to our CSS customization documentation.

Hi @edemaine thanks for your reply. I guess a flexbox can center both. I'd love to make some tests as soon as I have some free time. The flexbox is applied over the katex-htmlclass which has two children, baseand tag. The property justify-content: space-between; will use the available width to place both items evenly separated:

I guess it is also possible to center the entire flexbox (katex-html) containing both items using margins.
I can not prefix my CSS rules because there is no way to differentiate between the inline equations and block equations (I'm talking about CSS path here). That's why I was suggesting to add an extra CSS class when rendering block equations.
What do you think?

justify-content: space-between is incorrect compared to LaTeX behavior, unless we make an invisible tag on the left that has the same width as the visible tag on the right (or vice versa if fleqno is on).  For proper LaTeX behavior, the equation part needs to be centered on the line, ignoring the tag.  An invisible tag on the left might be a solution, though...
.katex-display is a parent only for block equations.  Inline equations don't get that div.  Hence prefixing with .katex-display makes those rules only apply to block equations (what's called "display equations" in LaTeX).

I'm no doubt missing something major, but this fork of your pen appears to work: https://codepen.io/mbourne/pen/KKXdXem
I commented out flex-wrap and justify-content and it gave me what I believe is wanted at all generally-used screen widths.
My "overflowXauto" class is to make the horizontal scroll bar more noticeable than browser defaults.

@mbourne Ah, good point: If we ignore the desire for the equation number to wrap when the width is small, we can at least get the tag not to overlap the equation (but still cause overflow). This is almost certainly an improvement over the current behavior, though still not perfect.  (For me, perfect would include: if the screen is wide enough to fix the equation and not the tag, put the tag on a second line, and avoid overflow scrollbars.  I imagine this could be fixed with some JavaScript though...)

"... I imagine this could be fixed with some JavaScript though..."
Always best to try to solve things with CSS, but there comes a point...
I'm not a fan of adding any more DOM elements than necessary, so here are 2 attempts that do not use an empty tag.
(1) No wrap case
This addresses the issues of :

No overlap of the equation by the tag
Avoiding scrollbars as much as possible

It's acceptable, I feel, even though it is a little odd right on the crossover between normal and when the scroll bar is about to appear (as you reduce screen width). But 99.99% of users don't resize the browser frantically on each page load - only developers.
Here is an example page: https://bourne2learn.com/math/katex/tag-placement_nowrap.html
My basic approach is to change the tag display to inline-block when the width of the equation and the tag means it's going to overflow. I allow for an imaginary tag width (without actually inserting an imaginary tag) to keep the equation in the middle as much as possible.
The tweak to the equation width in the if statement (1.1*eqnWidth) is to ensure some space between the equation and the tag.
(2) Wrap case
It does make sense to try to wrap the tag (and to attempt your definition of 'perfect' for this), so I gave it a go.
This time, I set the display of the equation to inline-block, and the white-space property of the parent (of the equation and the tag) to normal.
It works reasonably well: https://bourne2learn.com/math/katex/tag-placement_wrap.html
But it gave issues and was a lot more involved. I needed to mess with the .vlist heights and it was becoming ugly quickly.
At certain screen widths, and in certain contexts, the reader may think the tag number is the answer for the equation:

The other thing is the tag stays in whatever position it is on page load, so it can be in an odd place when the user scrolls the whole thing horizontally if horizontal scrolling is required at load:

This could be fixed by pulling the tag out of the whole span.katex and placing it below the equation and aligning it right. This would allow the equation to be scrolled left-right, while leaving the tag in place. I'll leave this as an exercise for the reader :p
Hopefully one or other approach is useful.

Thank you, @mbourne! For those of you wanting a quick way to implement their solution in your own work, including the following in the <head> works for me:
<head>
  <link rel="stylesheet"<EMAIL_ADDRESS>integrity="sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0" crossorigin="anonymous">
  <script defer<EMAIL_ADDRESS>integrity="sha384-PwRUT/YqbnEjkZO0zZxNqcxACrXe+j766U2amXcgMg5457rve2Y7I6ZJSm2A0mS4" crossorigin="anonymous"></script>
  <script defer<EMAIL_ADDRESS>integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
  <script>
    function adjustTag() {
	    var browserWidth = document.querySelector('body').clientWidth;
	    var eqnWidth = 0;
	    var tagWidth = 0;

	    var tags = document.querySelectorAll('.katex-html .tag');

	    for(i=0;i<tags.length;i++) {
		    eqnWidth = tags[i].parentNode.querySelector('.base').offsetWidth;
		    tagWidth = tags[i].clientWidth;

		    tags[i].style.border = "";

		    if(1.1*eqnWidth + 2*tagWidth > browserWidth) {
			    tags[i].style.display = "inline-block";
			    tags[i].style.marginLeft = "8px";
			    tags[i].style.position = "static";
		    } else {
			    tags[i].style.background = "";
			    tags[i].style.position = "absolute";
			    tags[i].style.right = 0;
		    }
	    }
    }

    function waitKaTeX() {
	    if(document.querySelectorAll('.katex-html').length == 0 ) {
		    requestAnimationFrame(waitKaTeX);
	    } else {
		    cancelAnimationFrame(raf);
		    adjustTag();
	    }
    }
    var raf = window.requestAnimationFrame(waitKaTeX);

    window.addEventListener("resize", adjustTag);
  </script>
  <style type="text/css">
    .katex-display > .katex > .katex-html {
        width: 100%;
        position:relative;
    }
    .tag {
        position:absolute;
        right:0;
    }
    .equation{
        display:block;
        height:auto;
        margin:1em 0;
        padding:0 2px 12px;
        overflow-x:auto;
        white-space:nowrap;
    }
    .equation::-webkit-scrollbar{
        height:8px;
    }
    .equation::-webkit-scrollbar-track{
        -webkit-box-shadow:inset 0 0 4px rgba(0,0,0,0.3);
        border-radius:7px;
    }
    .equation::-webkit-scrollbar-thumb{
        border-radius:7px;
        -webkit-box-shadow:inset 0 0 8px rgba(0,0,0,0.5);
    }
    .equation::-webkit-scrollbar-thumb:hover{
        -webkit-box-shadow:inset 0 0 4px rgba(0,0,0,0.8);
    }
  </style>
</head>

Then, you can write your equations like this in <body>:
<body>
  <div class="equation">
    \begin{equation}
    \mathrm{P}=i^2\mathrm{R}
    \end{equation}
  </div>
</body>

Hi,
The following css overrides work for me to make a long equation scroll horizontally and have its tag floated to the right side.
.katex-html {
    overflow-x: auto;
    overflow-y: hidden;
    padding: 3px;
    .base {
      margin: 0 auto;
    }
}

.katex-html:has(span.tag) {
  display: flex !important;
}

.katex-display>.katex>.katex-html>.tag {
  position: relative !important;
  float: right;
  margin-left: 0.25rem;
}

Using the :has css function we can recognise if the .katex-html element contains an inline equation or not by checking if a .tag is present. This :has function is not yet available on firefox, where the below makes the tag still skip a line, but I can live with that. For all other browsers, this solution works (see here)


An Automated PR

This was all automated by the DesignRantBot!

DO NOT MERGE THIS PR - ITS JUST TO SHOW OFF THE MAGIC


WARNING dataserv_client.messaging 61

I'm having an error related to my device clock sync even though it being synchronized with a NTP server.
I'm using Windows 8.1 Enterprise Edition
Log:
"2016-01-14 10:00:52,846 WARNING dataserv_client.messaging 61: Invalid authentication headers. Synchronize your clock with an internet-based time server.
2016-01-14 10:00:52,846 INFO dataserv_client.messaging 75: Query retry in 30 seconds."

Please synchronize your clock again and this time don't use the microsoft NTP server. You have to press the synchronize now button. Otherwise windows will only synchronize once a week even if you change the NTP server.


Undertake Market Survey of related systems

In order to progress to an actual design, as well as analysing requirements, and functionality issues, this would be a good time to look around at what else is ready or being developed on the world scene. This means other brokers - e.g. Antares, Alerce, Fink - but also technologies that we want to incorporate, such as Firefly, Jupyter Lab, Astroquery, PyVO etc.

As agreed at the 28/APR/21 Lasair internal review, @andyxerxes has written a report  for the A3.09 activity. At the above meeting it was agreed to close all tickets in the A3.09 current activity.


How to get decoded token and user profile after account linking completed?

In this section, the document says

If you use the Actions on Google Fulfillment library for Node.js, it takes care of validating and decoding the token for you, and gives you access to the profile content, as shown in the following code snippets.

and I tried to deploy the completely same code with the sample code snippet in preview mode,
but I could not get any user profile but got just a string (it's like RwczovL2xoMy5nb2...) from conv.headers.authorization.
Of course I tried JSON.stringify(conv) but I could not find decoded token nor user profile from it.
How can I get user email or name from conv in webhook?
I've almost given up using Account Linking feature on Actions on Google...

I completely followed the sample project here, but i found that clientId was not set on cloud function via .env file, and now I write it directly on the code for workaround.
How it's be solved? anyway it would save your time to check the value of your clientId if the same problem hits you.

I completely followed the sample project here, but i found that clientId was not set on cloud function via .env file, and now I write it directly on the code for workaround.
How it's be solved? anyway it would save your time to check the value of your clientId if the same problem hits you.


Fixed and parameterised local config file names

The config files created by kfctl now include version number in the file name. We've adjusted all the config URIs but we also need to adjust the file names as referred to in the docs. For example, this:
export CONFIG_FILE=${KF_DIR}/kfctl_gcp_iap.yaml

Should become:
export CONFIG_FILE=${KF_DIR}/kfctl_gcp_iap.0.7.0.yaml

This PR creates the relevant shortcodes to future-proof this change throughout the deployment guides and other docs. It sets the shortcode values to the <config file name>.0.7.0.yaml pattern which we use for Kubeflow v0.7.0. We'll need to update the shortcodes for each release, along with the similar shortcodes for the config URIs.
This PR doesn't change the guide for kfctl_existing_arrikto at this point, because that guide currently asks the user to download, rename, and update the config file before doing the deployment.
Fixes https://github.com/kubeflow/website/issues/1273

This change is

Some representative previews (search for export CONFIG_FILE to see a usage of the new shortcode - you should see the proper versioned YAML file name):

https://deploy-preview-1275--competent-brattain-de2d6d.netlify.com/docs/started/k8s/kfctl-k8s-istio/
https://deploy-preview-1275--competent-brattain-de2d6d.netlify.com/docs/aws/deploy/install-kubeflow/
https://deploy-preview-1275--competent-brattain-de2d6d.netlify.com/docs/gke/deploy/deploy-cli/
https://deploy-preview-1275--competent-brattain-de2d6d.netlify.com/docs/other-guides/kustomize/

@yanniszark FYI I haven't changed the docs for kfctl_existing_arrikto at this point, because that deployment guide currently asks the user to download, rename, and update the config file before doing the deployment. Let me know if you want me to do anything at this point..

/assign @Jeffwan
/assign @jlewi
This PR is ready for review, but I'm applying a hold to allow for multiple reviewers. We should merge as soon as we're all happy, as the docs currently show the wrong file names for the local config files (except for AWS - the AWS docs show the correct file names, but have hard-coded the version numbers into the docs).
/hold

/hold cancel
Thanks @Jeffwan

Thanks for the cleanup @sarahmaddox.
/lgtm
/approve


Hadoop compression codec configuration is ignored

Describe the bug
Hadoop and Accumulo provide a mechanism to override the codec implementation via configuration property. The logic within org.apache.accumulo.core.file.rfile.bcfile.Compression#createNewCodec currently discards the Hadoop configuration in the first elvis operator.
For example, if io.compression.codec.lz4.class is defined as a property in Hadoop's core-site.xml, the function will set null for the extClazz value in createNewCodec and will not check the system property.  The original developer's intent was to probably return the Hadoop configuration if it was not null.
Workaround
Define a system property for the corresponding codec in ${ACCUMULO_HOME}/conf/accumulo-env.sh ACCUMULO_GENERAL_OPTS environment variable with the desired codec class.  In this case, there must be no override specified within the Hadoop configuration files (core-site.xml or elsewhere).
Example Workaround:
test -z "$ACCUMULO_GENERAL_OPTS" && export ACCUMULO_GENERAL_OPTS="-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -Djava.net.preferIPv4Stack=true -XX:+CMSClassUnloadingEnabled -Dio.compression.codec.lz4.class=com.intel.compression.hadoop.IntelCompressionCodec"

Versions (OS, Maven, Java, and others, as appropriate):

Affected version(s) of this project: 1.10.0 1.10.1 2.x
OS: Any

To Reproduce
Steps to reproduce the behavior:

Add an override for a codec (e.g. io.compression.codec.lz4.class) in Hadoop's core-site.xml
Expect a log message Trying to load codec class *new codec class* for lz4
Actual log message Trying to load codec class *default codec class* for lz4

Workaround Reproduction
Steps to reproduce the behavior:

Ensure no codec overrides exist in Hadoop's core-site.xml
Define a system property in ACCUMULO_GENERAL_OPTS with the desired codec
Expect a log message Trying to load codec class *new codec class* for lz4
Actual log message Trying to load codec class *new codec class* for lz4

Expected behavior
Expect any codec configuration overrides supported by Accumulo and defined within Hadoop's core-site.xml to be used as the codec library for compressing/decompressing RFiles.

Have you tried setting the Accumulo property table.file.compress.type? That is typically how you set the compression codec for files in accumulo.

Hi @milleruntime - that property is specifying the codec type, not the actual implementation.  In most cases, the distinction is irrelevant.  However, alternate performance-based implementations are available and can be defined with the io.compression.codec.${type}.class Hadoop property.  The code as written (45a4a93) does not make use of the Hadoop configuration property.

Hi @milleruntime - that property is specifying the codec type, not the actual implementation. In most cases, the distinction is irrelevant. However, alternate performance-based implementations are available and can be defined with the io.compression.codec.${type}.class Hadoop property. The code as written (45a4a93) does not make use of the Hadoop configuration property.

Thanks for the explanation. I think I see what you are trying to do but can't seem to find any hadoop documentation about it. I haven't gone digging through the source code yet though. Do you know of any relevant hadoop documentation? Also, do you know if the io.compression.codec package is tied to a specific version of hadoop?

A form of this feature has been around since the Accumulo 1.3.5 release.  It has been present in Hadoop since 2.2.x - this link has the code that implements this capability for the Hadoop TFile (it is virtually identical to the intended behavior in Accumulo).  Accumulo's version has had a bug since the initial commit.

I seem to remember discussing this before. I've definitely noticed the issue before. However, I couldn't find a reference to an existing conversation about it. It might have just happened in my head :smiley_cat:
A refactor of this code to make the behavior a bit more clear and intuitive would be nice.

The compression code was re-factored after #2417 was submitted. I have applied the changes from #2417 and its feedback in a new PR (#2800). @trietopsoft - could you take a look at that


Pytorch and License

Do you have a plan for the torch version and any simple inference example on how to test your model on new videos?
I see many source files in the repo are under Apache license. Is the repo under Apache license? Can you eventually add a License file?

In the meantime, is the jax code ready?
Cause I've quickly tried to inference on a new video using a subset of the eval code in supervised_point_prediction.py and the output points are quite random.

It seems that the distributed final checkpoint are not compatible with the restore function in checkpoint utils.
In any case I have a result now but I still see some instabilities also at an higher resolution so I don't know if there is a residual error or it is really a performance limit of the model.
I hope that with the pytorch version we have a more clear path to just run the inference standalone.


Add TruffleRuby in CI

It would be nice if benchmarks also ran a single iteration on TruffleRuby in CI.
Currently all benchmarks pass after https://github.com/Shopify/yjit-bench/pull/250
If some new benchmark does not work on truffleruby or there is some issue with a benchmark on truffleruby it would be fine to just exclude that benchmark on truffleruby, the goal is not to prevent merging benchmarks which do not work on truffleruby but just raise awareness if a change to yjit-bench does not work on TruffleRuby.

Actually I think it'd be good to test on the latest CRuby release too, to make sure benchmark run fine there too, I pushed a commit for that.

Yes, that's fixed by https://github.com/Shopify/yjit-bench/pull/250, I didn't include these commits again here to make the diff easier to review. Will rebase once that's merged.


Q: Initialization procedure

Is there a particular reason for the following syntax to be necessary?
from basil.dut import Dut

# Instantiate my_device
my_device = Dut(my_config)
my_device.init()  # Additionally call an init method on the instance manually

Why not call my_device.init inside the  instances __init__?

I do not remember anymore but there was a reason for this.
We sometimes manipulate things before actually connecting to hardware.

From my subjective perspective it looks like 90% of the use cases do not need to do this.
Maybe it would be nice to have something like a default argument Dut(auto_init=True) that automatically calls the init as last action inside the __init__ if set. If not wanted, set auto_init=False

Dut(auto_init=False)

This should be OK.

But of course this would break some stuff. My point is to design the API for the edge-cases is not the right approach. Can you tell me where you do something in between the initailization of the Dut and the init call?

In general OK but not sure if this is a good idea to do now. Should accumulate more braking changes?

Maybe not best example: https://gitlab.cern.ch/silab/bdaq53/-/blob/development/bdaq53/system/bdaq53.py

The only line where something happens in between initialization and manual call to init is for the clock generator. Everything else looks fine to me.

But yes, maybe we can wait and have a more thorough look at this, maybe accumulate other braking changes.

Maybe not best example: https://gitlab.cern.ch/silab/bdaq53/-/blob/development/bdaq53/system/bdaq53.py

Just to add, since tj-monopix2-daq is almost exactly like bdaq, this will also be affected. No problem for me to adapt, though.


Add a shared Scheme for EarlGrey.xcodeproj and modify docs to ask not to run the setup script manually.

Required for https://github.com/google/EarlGrey/issues/30.

@tirodkar this still doesn't work due to https://github.com/google/EarlGrey/issues/58 Carthage need xcodebuild to succeed.
$ xcodebuild -project EarlGrey.xcodeproj -configuration Release -target EarlGrey
=== BUILD TARGET EarlGrey OF PROJECT EarlGrey WITH CONFIGURATION Release ===

Check dependencies
CodeSign error: code signing is required for product type 'Framework' in SDK 'iOS 9.3'

** BUILD FAILED **

The following build commands failed:
	Check dependencies
(1 failure)

$ carthage bootstrap
*** No Cartfile.resolved found, updating dependencies
*** Fetching EarlGrey
*** Checking out EarlGrey at "8ef8f3aaf06f24b5021382a0d8bd01fa9373d995"
*** xcodebuild output can be found in /var/folders/js/59rv7l2j35z5jptfcp0t3vsw0000gn/T/carthage-xcodebuild.oJJ29q.log
*** Building scheme "EarlGrey" in EarlGrey.xcodeproj
** BUILD FAILED **

The following build commands failed:
	CompileC /Users/bootstraponline/Library/Developer/Xcode/DerivedData/EarlGrey-gqzrpuodmexnqzaqgqqsrvccsgvy/Build/Intermediates/EarlGrey.build/Release-iphoneos/EarlGrey.build/Objects-normal/armv7/GREYKeyboard.o EarlGrey/Core/GREYKeyboard.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
/Users/bootstraponline/Desktop/code/carthage_check/Carthage/Checkouts/EarlGrey/EarlGrey.pch:27:4: error: "This project requires NS_BLOCK_ASSERTIONS to be undefined."
A shell task failed with exit code 65:
** BUILD FAILED **

The following build commands failed:
	CompileC /Users/bootstraponline/Library/Developer/Xcode/DerivedData/EarlGrey-gqzrpuodmexnqzaqgqqsrvccsgvy/Build/Intermediates/EarlGrey.build/Release-iphoneos/EarlGrey.build/Objects-normal/armv7/GREYKeyboard.o EarlGrey/Core/GREYKeyboard.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

$ cat Cartfile.private
github "tirodkar/EarlGrey" "carthage-scheme"

/usr/bin/xcrun xcodebuild -project /Users/bootstraponline/Desktop/code/carthage_check/Carthage/Checkouts/EarlGrey/EarlGrey.xcodeproj -scheme EarlGrey -configuration Release -sdk iphoneos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES clean build

^ that's how carthage is building EarlGrey (fails on NS_BLOCK_ASSERTIONS error).

@bootstraponline, we've changed Code Signing to "iPhone Distribution" from "Don't Code Sign". Thanks for the command. I'm running it and checking for issues.

@bootstraponline, we've changed Code Signing to "iPhone Distribution" from "Don't Code Sign".

Please use "iPhone Developer" as is done in the WebDriverAgent project. I'm able to run xcode build with "iPhone Developer".
 "iPhone Distribution" errors with:

Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) were found.

@bootstraponline, on testing it with iPhone Developer, the NS_BLOCK_ASSERTIONS issue wasn't fixed. Could you confirm?

@bootstraponline, on testing it with iPhone Developer, the NS_BLOCK_ASSERTIONS issue wasn't fixed. Could you confirm?

Yes, I confirm it doesn't fix the assertions error. However the Code Sign error is fixed.
In file included from <built-in>:359:
In file included from <command line>:3:
/Users/bootstraponline/Desktop/code/carthage_check/Carthage/Checkouts/EarlGrey/EarlGrey.pch:27:4: error: "This project
      requires NS_BLOCK_ASSERTIONS to be undefined."
  #error "This project requires NS_BLOCK_ASSERTIONS to be undefined."
   ^
1 error generated.

** BUILD FAILED **

xcodebuild -project EarlGrey.xcodeproj -configuration Release -target EarlGrey has the same NS_BLOCK_ASSERTIONS error.

I don't know if this is correct but I have fixed the issue like this:

@bootstraponline, adding the flags worked on my side as well. Is there any way we could pass those in the xcodebuild command rather than modify the project itself? The Code Signing Flags have been updated.

Is there any way we could pass those in the xcodebuild command rather than modify the project itself?

Not that I know of. The issue is Carthage uses the project settings, we don't have any direct control over the xcodebuild command.

@bootstraponline, updated the PR. Take a look if this works fine.

It works!!
mac:carthage_check bootstraponline$ carthage checkout
*** Fetching EarlGrey
*** Checking out EarlGrey at "036c53169c9e8f0081de0e6ee50baef135138eba"
mac:carthage_check bootstraponline$ carthage build
*** xcodebuild output can be found in /var/folders/js/59rv7l2j35z5jptfcp0t3vsw0000gn/T/carthage-xcodebuild.IuLm3C.log
*** Building scheme "EarlGrey" in EarlGrey.xcodeproj
*** Building scheme "OCMock" in OCMock.xcodeproj
*** Building scheme "OCMock tvOS" in OCMock.xcodeproj
*** Building scheme "OCMock iOS" in OCMock.xcodeproj
mac:carthage_check bootstraponline$


dbpool failed to detach

Please complete the following information:

Node.js version: 12.18.4
idb-connector version: 1.2.9
idb-pconnector version: 1.0.8
IBM i version: v7r2 (2 7)

Describe the bug
I have an application and trying to use DBPool to handle any connections.  I have created one pool that is used through out the life of the web application.  The pool is created when web app is started.  Every so often I will get fail to detach error.  It doesn't happen everytime.  From my understanding when using DBPool i do not need to worry about closing connections.  That is handled by the runSql and prepareExecute.  Is this not the recommended use for a DBPool?
Database.js
const {DBPool} = require('idb-pconnector');
const pool = new DBPool();
module.exports = pool;

DepartmentJobs.js
'use strict'
const pool = require('./Database');

class DepartmentJobs {
    constructor(...) {
      ...
    }

    static async get() {
        let stmt = "SELECT . . . . . From . . . . ";

        try {
            const results = await pool.runSql(stmt);
            return results;
        } catch(error) {

        }
    }
}

module.exports = DepartmentJobs;

error when running command.
Error: DBPool: Failed to detach()
    at DBPool.detach (/webservices/workassist/node_modules/idb-pconnector/lib/dbPool.js:114:22)
Caused By:
 Error: DBPoolConnection: failed to detach.
    at DBPoolConnection.detach (/webservices/workassist/node_modules/idb-pconnector/lib/dbPoolConnection.js:127:22)
Caused By:
 Error: Statement failed to close, new Statement could not be created.
    at DBPoolConnection.newStatement (/webservices/workassist/node_modules/idb-pconnector/lib/dbPoolConnection.js:75:24)
Caused By:
 Error: SQLSTATE=PAERR SQLCODE=-1 SQLFreeStmt failed.
    at /webservices/workassist/node_modules/idb-pconnector/lib/statement.js:77:22
    at new Promise (<anonymous>)
    at Statement.close (/webservices/workassist/node_modules/idb-pconnector/lib/statement.js:75:12)
    at DBPoolConnection.newStatement (/webservices/workassist/node_modules/idb-pconnector/lib/dbPoolConnection.js:73:30)
    at DBPoolConnection.detach (/webservices/workassist/node_modules/idb-pconnector/lib/dbPoolConnection.js:123:20)
    at DBPool.detach (/webservices/workassist/node_modules/idb-pconnector/lib/dbPool.js:112:24)
    at /webservices/workassist/node_modules/idb-pconnector/lib/dbPool.js:210:20
    at async DBPool.runSql

To Reproduce
Steps to reproduce the behavior:
1.
2.
3.
4.
Expected behavior
I should be able to setup the (global) DBPool and have all connections use this pool.  I would assume if a connection is not available then more would be created so there will be no errors.  I would not expect a failed to detach error.  Is this something i can safely ignore?
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

From my understanding when using DBPool i do not need to worry about closing connections. That is handled by the runSql and prepareExecute. Is this not the recommended use for a DBPool?

Right using runSql and prepareExecute aggregates (runSql and prepareExecute) are there to simplify your code. Getting a connection from the pool, then getting a statement and executing the statement, and finally closing the statement and returning the connection to the pool. I would say your use case suites using DBPool.
The bug you encountered looks to occur when the DbPoolConnection detaches and therefore attempts to cleanup the current statement and create a new one. https://github.com/IBM/nodejs-idb-pconnector/blob/master/lib/dbPoolConnection.js#L123. On the idb-connector side there is a failure when calling statement.close() and a custom error message: SQLSTATE=PAERR SQLCODE=1 is printed. Can you enable debug on the pool so we can see the actually sql return code printed from idb-connector ?
  const pool = new DBPool({}, {debug: true});

Also have you ran into this same issue when using prepareExecute or only with runSql Failing to close the statement handle is a bit concerning and would definitely would like to know why it failed.

Yes...my co worker has also written another nodejs app using the same
structure as mine and she is encountering the same problem using the
prepareExecute function.  At first we figured we had some sort of code
issue on our end but once i received the error again using runSql I thought
I better ask the experts.
I will set debug:true  on the DBPool and report back when it happens
again.  Thanks for your help.
As a side note: the way I am creating the DBPool, it will be alive for the
life of the server.  Is this how you intended this to work?  I don't see
any value in creating/closing a new DBPool each time a user makes a
request??  I do not want to waste your time if I am not using DBPool
correctly.
On Tue, Nov 3, 2020 at 11:00 AM Abdirahim Musse<EMAIL_ADDRESS>wrote:

From my understanding when using DBPool i do not need to worry about
closing connections. That is handled by the runSql and prepareExecute. Is
this not the recommended use for a DBPool?
Right using runSql and prepareExecute aggregates (runSql and
prepareExecute) are there to simplify your code. Getting a connection from
the pool, then getting a statement and executing the statement, and finally
closing the statement and returning the connection to the pool. I would say
your use case suites using DBPool.
The bug you encountered looks to occur when the DbPoolConnection detaches
and therefore attempts to cleanup the current statement and create a new
one.
https://github.com/IBM/nodejs-idb-pconnector/blob/master/lib/dbPoolConnection.js#L123.
On the idb-connector side there is a failure when calling
statement.close()
https://github.com/IBM/nodejs-idb-connector/blob/master/src/db2ia/dbstmt.cc#L1821
and a custom error message
https://github.com/IBM/nodejs-idb-connector/blob/master/src/db2ia/dberror.h#L93:
SQLSTATE=PAERR SQLCODE=1 is printed. Can you enable debug on the pool so
we can see the actually sql return code printed from idb-connector
https://github.com/IBM/nodejs-idb-connector/blob/master/src/db2ia/dbstmt.cc#L1820
?
const pool = new DBPool({}, {debug: true});
Also have you ran into this same issue when using prepareExecute or only
with runSql Failing to close the statement handle is a bit concerning and
would definitely would like to know why it failed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/IBM/nodejs-idb-pconnector/issues/106#issuecomment-721218951,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOFOHHO65PEQRX6EBJUY7DSOASKLANCNFSM4TIZC6MA
.

Yes I think having one pool is correct.

Something to throw out there...it does appear to only happen after the pool has set idle for a longer period of time.  I left my web server running over night...came in this morning and got the error first time I tried to run...after that it has worked fine....not sure that means anything just yet...just an observation....is there a timeout to the connections?

Interesting, it could be that the statement handle becomes invalid over time and therefore unable to to free an invalid handle. One of the possible return codes for SQLFressStmt is SQL_IN_HANDLE. Would be interesting to see if that is returned and logged when the error is reproduced in debug mode.

Finding available Connection...
Connection 0 found
Preparing Statement...
Prepare().
SQLPrepare(0): CALL mmiprod01.fab_po_ack(?,?,?)
Binding Parameters...
Size of BoundParams: 3
 [["204741",1,1],["",1,1],["",3,1]]
BindParamAsync().
SQLBindParameter(0) TYPE[ 1] SIZE[  8] DIGI[0] IO[1] IND[ -3] INDEX[0]
SQLBindParameter(0) TYPE[ 1] SIZE[  5] DIGI[0] IO[1] IND[ -3] INDEX[1]
SQLBindParameter(0) TYPE[ 1] SIZE[250] DIGI[0] IO[3] IND[ -3] INDEX[2]
Execute().
SQLExecuteAsync(1):
SQLNUMRESULTSCOLS(0) Column Count = 0
NO RESULTS :SQLExecuteAsync()
Fetching Result Set...
FetchAllAsync().

 **** ERROR *****
SQLSTATE: HY010
Native Error Code: -99999
Error occurred in SQL Call Level Interface
SQL did not return a result set.
SQLFreeStmt: stmth 3 [SQL_DROP]
SQLFreeStmt(0)
success: true
PATCH /api/fabric/po/204741?action=ack 200 14.362 ms - 16
Finding available Connection...
Connection 0 found
Preparing Statement...
Prepare().
SQLPrepare(-1): SELECT * FROM QS36F.FABORD WHERE FOOTYP = ? AND FOPO# = ?

 **** ERROR *****
SQLSTATE: HY017
Native Error Code: -99999
Error occurred in SQL Call Level Interface
Detaching Connection 0...
SQLFreeStmt: stmth 3 [SQL_DROP]
SQLFreeStmt(-1)
PATCH /api/fabric/po/204741?action=ack 200 4.664 ms - 56

looks like HY017 maps to "connection no longer available"...seems like the timeout is the issue at first glance.

From the log looks like SQLExecute returned success with info i.e. (1). SQLExecuteAsync(1). Then FetchAll is called and it appears this is where the:
 **** ERROR *****
SQLSTATE: HY010
Native Error Code: -99999
Error occurred in SQL Call Level Interface

Is printed before the statment is freeed.
The next time connection 0 is returned from the pool the SQLPrepare(-1) failed. Looking at the docs for SQLPrepare I did not see HY017 listed there. @beckhamrryyaann Where did you see HY017 maps to "connection no longer available"?
@kadler @ThePrez @forstie
Do you know if connection/statements created with SQLCLI have a timeout value?

I found this link that gave me a clue to what it meant.
[https://www.ibm.com/support/pages/apar/PK42850]
We can replicate this issue on demand at the moment.  As said, we let the pool sit idle over night...we come in this morning and attempted to make a request, and we get this error....If we restart the server, it will work normally until it sits awhile.

That issue does seem to resemble what your experiencing. Seems like we need to add way to check if a connection/statement is still available before we attempt to use it.

@beckhamrryyaann
I suspect the QSQSRVR ends which causes the connections to invalidate. Any messages in your in the job log related to QSQSRVR ending?
As a workaround we may need to add a call to ensure the connection is still active and stale before doing any of the runsql / prepareExecute work.

I'm not exactly sure where to look for a closed qsqsrvr job? I haven't
noticed any.
It seems like this is a very possible scenario for many users, where a pool
might sit idle over night, or even days??
It seems making sure the connections in the pool are still valid would be a
must??
I hope to put this app in production by the end of month, and really hope I
can use the enhancements that DBPool brings.
On Tue, Nov 10, 2020 at 8:47 PM Abdirahim Musse<EMAIL_ADDRESS>wrote:

@beckhamrryyaann https://github.com/beckhamrryyaann
I suspect the QSQSRVR ends which causes the connections to invalidate. Any
messages in your in the job log related to QSQSRVR ending?
As a workaround we may need to add a call to ensure the connection is
still active and stale before doing any of the runsql / prepareExecute work.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IBM/nodejs-idb-pconnector/issues/106#issuecomment-725075221,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOFOHCUWWVQXREGYI7YIADSPHUKTANCNFSM4TIZC6MA
.

Yes the connections are expected to stay open. I'm not sure why your connections become inactive overnight. I've tested an web app running for multiple days and the connections are still active.
I created a branch that adds an API to get the fully qualified job name for the connection. This calls SQLGetInfo with SQL_CONNECTION_JOB_NAME option:

It will log the job name whenever runSql or prepareExecute is called and debug is enabled. You can try using this to get connection job name and go from there checking for job logs / spool files.
You can test this version with:
npm install --save abmusse/nodejs-idb-pconnector#add-getJobName

thank you. I will try this.
On Mon, Nov 30, 2020 at 2:22 PM Abdirahim Musse<EMAIL_ADDRESS>wrote:

Yes the connections are expected to stay open. I'm not sure why your
connections become inactive overnight. I've tested an web app running for
multiple days and the connections are still active.
I created a branch that adds an API to get the fully qualified job name
for the connection. This calls SQLGetInfo
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/cli/rzadpfnginfo.htm
with SQL_CONNECTION_JOB_NAME option:
[image: image]
https://user-images.githubusercontent.com/33973272/100653594-45e31200-330e-11eb-964a-185472e5ad9e.png
It will log the job name whenever runSql or prepareExecute is called and
debug is enabled. You can try using this to get connection job name and go
from there checking for job logs / spool files.
You can test this version with:
npm install --save abmusse/nodejs-idb-pconnector#add-getJobName
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IBM/nodejs-idb-pconnector/issues/106#issuecomment-735989414,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOFOHBRNNQYQQ42W6CPDK3SSPWF3ANCNFSM4TIZC6MA
.

Go away, stale-bot!

Go away, stale-bot!

We can apply the keep-open label and stale bot will not close the issue/ PR

Go away, stale-bot!

We can apply the keep-open label and stale bot will not close the issue/ PR

Thanks for your help.  I do believe I found the problem and hope I didn't
waste  too much of your time.  Apparently one of my coworkers had written a
CL program that killed a lot of the QSQSRVR jobs.....so the idb connector
was working correctly.  The job had been killed out from under it. It might
be beneficial to make sure the connection is still active before using??
(if possible) or somehow check the integrity of the pool....or just leave
your code as is since it works....
again thanks for your help.
Ryan
On Fri, Jan 1, 2021 at 3:58 PM Abdirahim Musse<EMAIL_ADDRESS>wrote:

Go away, stale-bot!
@ThePrez https://github.com/ThePrez
We can apply the keep-open label and stale bot will not close the issue/
PR
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IBM/nodejs-idb-pconnector/issues/106#issuecomment-753381546,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOFOHHV2OHBM4IB62XDEDDSXYZOLANCNFSM4TIZC6MA
.

Thanks for your help.  I do believe I found the problem and hope I didn't
waste  too much of your time.  Apparently one of my coworkers had written a
CL program that killed a lot of the QSQSRVR jobs.....so the idb connector
was working correctly.  The job had been killed out from under it. It might
be beneficial to make sure the connection is still active before using??
(if possible) or somehow check the integrity of the pool....or just leave
your code as is since it works....
again thanks for your help.
Ryan
On Fri, Jan 1, 2021 at 3:58 PM Abdirahim Musse<EMAIL_ADDRESS>wrote:

Go away, stale-bot!
@ThePrez https://github.com/ThePrez
We can apply the keep-open label and stale bot will not close the issue/
PR
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IBM/nodejs-idb-pconnector/issues/106#issuecomment-753381546,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOFOHHV2OHBM4IB62XDEDDSXYZOLANCNFSM4TIZC6MA
.

Glad you were able find out why the connection was being killed.
AFAIK there isn't a straight forward way to check if the connection is still active with SQLCLI other than calling method and checking the return code. One way could be attempting to call  SQLGetInfo with SQL_CONNECTION_JOB_NAME option. When the connection handle is active, you will get the job name. When it is not, you will get back SQLSTATE 08003 Connection not open.

Glad you were able find out why the connection was being killed.
AFAIK there isn't a straight forward way to check if the connection is still active with SQLCLI other than calling method and checking the return code. One way could be attempting to call  SQLGetInfo with SQL_CONNECTION_JOB_NAME option. When the connection handle is active, you will get the job name. When it is not, you will get back SQLSTATE 08003 Connection not open.


Datenschutzerklärung / Data Protection Statement

As an app user, I want to be able to read the data protection statment in order to know what happens with my data and whom I can contact.
Prototype: https://www.figma.com/proto/7wE0Iveas3GGb8u4oL0714/App-Design-Mitglieder-App-(1)-(Copy)?node-id=2487-12430&t=b8swD5IOAFfZ0OSo-1&starting-point-node-id=2425%3A17429

https://www.gruene.de/service/datenschutz but doesn't work for the App.
@JuliaFreitagBGSt

https://www.gruene.de/service/datenschutz but doesn't work for the App. @JuliaFreitagBGSt

@Sommergiulia @JuliaFreitagBGSt could you please clarify what but doesn't work for the App means? Is this still the correct URL for us to use in the settings/login screen?

https://www.gruene.de/service/datenschutz but doesn't work for the App. @JuliaFreitagBGSt

@Sommergiulia @JuliaFreitagBGSt could you please clarify what but doesn't work for the App means? Is this still the correct URL for us to use in the settings/login screen?

Yes, the URL ist correct, you can use it. But the content must be updated by us and adapted to an app


Password reset options - multiple are able to be enabled

Currently through UI its able to enable both Enable Password Reset via Recovery Email and Enable Password Reset via OTP.  But having both enabled does not have a use. Can we restrict the UI to take only one value at a time?

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Typ[Term] still used in Family Patterns

The tails type is still taken as just Typ[Term] in family patterns. Should clean this, and also look for other offenders in the code base.

No longer used. Family type parameters are gross still.


chore: adds documentation about data-tab-container-no-tabstop

I'm experimenting with how to surface API details, but for now a note in the docs may be good. What do you think?
Relates to github/accessibility-audits#2787 and github/accessibility#1897.

:wave: Hello and thanks for pinging us! This issue or PR has been added to our inbox and a Design Infrastructure first responder will review it soon.

:art: If this is a PR that includes a visual change, please make sure to add screenshots in the description or deploy this code to a lab machine with instructions for how to test.
:fast_forward: If this is a PR that includes changes to an interaction, please include a video recording in the description.
:warning: If this is urgent, please visit us in #primer on Slack and tag the first responders listed in the channel topic.


Add instructions for users on how to subscribe to RSS feeds or convert a feed to emails

Dataviz Hub also have a RSS feed, maybe we can work together on this to come up a document/post. At the moment the link is automatically copied to the clipboard when the user clicked the RSS feed button.

That would be great! I had a look at some things like feedburner for getting emails sent if a user wants to opt into that but feedburner itself now seems depreciated which is unfortunate. As yet not had a very detailed look into this but will provide updates here.