feat: add tailwindcss template

Description
This PR adds a tailwindcss template/preset which allows to scaffold a TailwindCSS-powered project using  create-vite command. It's aimed to be script-less, so it doesn't include or depend on any JS/TS code (except configs), just pure HTML/CSS.
Why TailwindCSS?
Tailwind is quite popular for building interfaces, so developers might benefit of having a template for quick prototyping.
Why a new template?
Although it's possible to add TailwindCSS configs to a project scaffolded with basically any existing template, we don't want to depend on any JS code when we need to create a pure HTML/CSS prototype or when we import a standalone version of a JS framework right through HTML.
Additional context
The command to scaffold a new project is:
pnpm create vite my-tailwind-app --template tailwindcss

A scaffolded project demo is here

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[x] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

It seems like the failed tests have nothing to do with the PR. Please let me know if you see any room for improvement in scope of this PR.

Thanks for the PR @kkomelin. We are trying to keep the create-vite starters as minimal as possible. They are intended to quickly start testing Vite with a framework.
I recommend you send this template to Awesome Vite if it isn't already there. Other folks are working on ideas to help Vite+Tailwind out of core https://github.com/huibizhang/vitawind/tree/package/create-vitawind
There seems to be demand for more options in create-vite, so someone may want to maintain a create-vite-plus or something along that lines that will list by categories all the most common options. Another option is to better document what is there in awesome vite and point people to degit as explained in:
https://github.com/vitejs/vite/tree/main/packages/create-vite#community-templates

Thank you @patak-dev for considering my PR and for a great piece of advice. I will explore the Awesome Vite path.


Enhancements and cleanups for translation support

Helping devices provide translatable strings and display them to the user.

Pull Request Test Coverage Report for Build 258

50 of 58 (86.21%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.08%) to 83.794%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/loaders/builtin.js
23
25
92.0%

lib/i18n.js
13
16
81.25%

lib/loaders/base_ondisk_js.js
9
12
75.0%

Totals

Change from base Build 255:
-0.08%

Covered Lines:
1231

Relevant Lines:
1413

💛  - Coveralls


Entrust::hasRole() gives error

In my controller method, I've this bit of code:
if(Entrust::hasRole('admin'))
{ return 'Great! you have the role';}
return 'Sorry! not allowed';
But it returns the following error:
Non-static method Zizaco\Entrust\Entrust::hasRole() should not be called statically, assuming $this from incompatible context
What am i doing wrong?

It seems that you have not registered the Entrust 'alias' in the facades array of your config files

in config/app.php, I've the following in aliases array:
'Entrust'   => 'Zizaco\Entrust\EntrustFacade'
But i still get the error.

I get the exact same error. Could anybody solve it?

Solved. You have to remove the "use Zizaco\Entrust\Entrust;" call on the top of your file.

@faifuhi
Hi , i get below error when i want to get current logged in user's role and permissions with this method:
Entrust::hasRole('role-name') OR Auth::user()->hasRole('role-name');
i followed exactly installation instruction but i get below error :
Non-static method Zizaco\Entrust\Entrust::hasRole() should not be called statically
How did you solve the problem?

I have a similar problem.  I'm trying to return an array of users that have a role called 'user' set up for.
The code I'm running is
$users = User::hasRole('user')->get();
Get the same User::hasRole() should not be called statically.
What am I doing wrong?

bump, why is this closed? I am having the same problem

@Yarandi
I have the same error
But do you really use this Auth::user()->hasRole('role-name'); in your code?
Look i try
echo Auth::user()->hasRole('admin');
And Work , its show me 1

maybe we must use this way until someone solve Entrust::hasRole('role-name');

When I replace "use Zizaco\Entrust\Entrust;" with "use Entrust" it worked for me.


getting error while publishing to Kafka

Description
using kerberos authentication and Confluent.Kafka" Version="1.5.3" package. Everything is working as expected messages are publishing successfully. confluent.kafka is still login error like below. looks like information but not sure if we are missing anything..
2021-09-09T08:29:10.965-05:00  [OUT] Trying to build Kafka Producer Builder at: x/x/2021 1:29:10 PM +00:00
2021-09-09T08:29:10.985-05:00  [ERR] Using default cache: /tmp/krb5cc_2000
2021-09-09T08:29:10.985-05:00  [ERR] Using principal<EMAIL_ADDRESS>2021-09-09T08:29:10.985-05:00  [ERR] Using keytab: Resources/svc_kafka.keytab
2021-09-09T08:29:10.993-05:00  [ERR] Authenticated to Kerberos v5
2021-09-09T08:29:10.997-05:00  [OUT] info: KafkaEventMessaging[0]
2021-09-09T08:29:10.997-05:00  [OUT] Kafka Producer Builder built at: 9/9/2021 1:29:10 PM +00:00
2021-09-09T08:29:10.997-05:00  [OUT] info: KafkaEventMessaging[0]
2021-09-09T08:29:10.997-05:00  [OUT] Trying to publish message at: 9/9/2021 1:29:10 PM +00:00
2021-09-09T08:29:11.031-05:00  [ERR] %5|1631194151.031|LIBSASL|rdkafka#producer-2| [thrd:sasl_ssl://server1.com:9093/bootstrap]: sasl_ssl://server1.com:9093/bootstrap: GSSAPI client step 1
2021-09-09T08:29:11.040-05:00  [ERR] %5|1631194151.040|LIBSASL|rdkafka#producer-2| [thrd:sasl_ssl://server1.com:9093/bootstrap]: sasl_ssl://server1.com:9093/bootstrap: GSSAPI client step 1
2021-09-09T08:29:11.042-05:00  [ERR] %5|1631194151.042|LIBSASL|rdkafka#producer-2| [thrd:sasl_ssl://server1.com:9093/bootstrap]: sasl_ssl://server1.com:9093/bootstrap: GSSAPI client step 2
2021-09-09T08:29:11.059-05:00  [ERR] %5|1631194151.059|LIBSASL|rdkafka#producer-2| [thrd:sasl_ssl://ausflkaf131.us.dell.com:9093/bootstrap]: sasl_ssl://server2.com:9093/101: GSSAPI client step 1
2021-09-09T08:29:11.069-05:00  [ERR] %5|1631194151.069|LIBSASL|rdkafka#producer-2| [thrd:sasl_ssl://server2.com:9093/bootstrap]: sasl_ssl://server2.com:9093/101: GSSAPI client step 1
2021-09-09T08:29:11.071-05:00  [ERR] %5|1631194151.071|LIBSASL|rdkafka#producer-2| [thrd:sasl_ssl://server2.com:9093/bootstrap]: sasl_ssl://server2.com:9093/101: GSSAPI client step 2
How to reproduce
Here is sample configuration we are using..
"BatchNumMessages": 10000,
"LingerMs": 5,
"ReconnectBackoffMs": 50,
"ReconnectBackoffMaxMs": 1000,
"BootstrapServers ": "server1.com:9093,server2.com:9093,server2.com:9093,server2.com:9093",
"StatisticsIntervalMs": 0,
"SessionTimeoutMs": 6000,
"SaslMechanism": "Gssapi",
"SecurityProtocol": "SaslSsl",
"SslCaLocation": "Resources/ca.PEM",
"SaslKerberosServiceName": "kafka",
"SaslKerberosPrincipal"<EMAIL_ADDRESS>"SaslKerberosKeytab": "Resources/svc_kafka.keytab",
"SaslKerberosKinitCmd": "kinit -V -k -t Resources/svc_kafka.keytab<EMAIL_ADDRESS>"PublisherTopicOffers": "Topic1.P3.R3"
        Acks = Confluent.Kafka.Acks.All;
        EnableIdempotence = true;

Checklist
Please provide the following information:

[x] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[x] Confluent.Kafka nuget version.
[x] Apache Kafka version.
[ ] Client configuration.
[ ] Operating system.
[ ] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[ ] Critical issue.

Those logs are generated by libsasl2/cyrus-sasl (the GSSAPI/Kerberos library we use), for whatever reason, and they can be ignored.
Starting with v1.7.0 we adjust those log lines to debug mode only.


Calling synchronous function in async.eachSeries causes maximum call stack error

More of this bug here - https://github.com/balderdashy/waterline/issues/733
There is synchronous call in buildChildBuffers function in the file populateBuffers.js, line 68. This problem is widely covered here - https://github.com/caolan/async/pull/588. I guess it would be enough to change line 68 from nextParent() to async.setImmediate(nextParent).

I moved your first comment over to #3 where there is some more conversation.  Closing this as a duplicate.
Also, PR stands for "pull request" :)


disallow  drilldowns on same hierarchy

In the Estonia server, executing this query, with two drilldowns on the same hierarchy, returns a kinda-valid list of data but with wrong values:
{"data": [
  {"Year":<PHONE_NUMBER>,
   "Quarter": "2004-Q1"
  }, {...}]
}


Consolidate fingerprint collection efforts with citizenlab/filtering-annotations

I have a bunch of iPython notebooks that include a list of blockpages and reference an OONI measurements.
I have not done a great job at consolidating all this knowledge in one place, so I will use this ticket as such a place.
I am sorry that some don't include the source measurement as reference, but that should be fairly easy to mine from the data.
The CENSOR_IP array includes a list of IPs that are known to be used by censors when spoofing DNS responses.

[x] Malaysia

CENSOR_IPS = [
    "<IP_ADDRESS>"
]
BLOCKPAGE_FINGERPRINTS = [
    "This website is not available in Malaysia as it violate"
]

[x] Egypt

EG_BLOCKPAGES = [
    {
        'match': [
            (
                'body_s_re',
                 re.compile(b'^$')
            )
        ],
        'block_id': 'eg-vodafone-0',
        'measurement_id': [
        ]
    }
]
EG_CENSOR_IPS = []

[x] Indonesia

ID_BLOCKPAGES = [
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'Apabila Anda merasa situs yang dikunjungi tidak bertentangan dengan program pemerintah, silakan hubungi customer customer support kami.')
                )
            ],
            'block_id': 'id-bold-4g-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-bolt-4g.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'<title>FastNet | Internet Sehat dan Aman</title>')
                )
            ],
            'block_id': 'id-first-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-first.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'negatif sesuai dengan Peraturan Menteri Kominfo No 19 Tahun 2014')
                )
            ],
            'block_id': 'id-indosat-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-indosat-2-Oct2014-update.htm'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'Access Restricted by')
                )
            ],
            'block_id': 'id-indosat-1',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-indosat.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'tidak bisa diakses melalui jaringan ini sesuai peraturan perundang-undangan')
                )
            ],
            'block_id': 'id-jalawave-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-jalawave.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'<title>Internet Positif - Indonesia</title>')
                )
            ],
            'block_id': 'id-telekomunikasi-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-telkomunikasi.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'
which is not permitted by goverment regulation.
')
                )
            ],
            'block_id': 'id-xl-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-xl-netsweeper.html'
            ]
        },

        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'<TITLE>ERROR BLOCKED</TITLE>')
                )
            ],
            'block_id': 'id-xl-1',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/id-xl.html'
            ]
        },

        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'replace\("http://internetpositif.uzone.id/page')
                )
            ],
            'block_id': 'id-positif-0',
            'measurement_id': [
                'https://explorer.ooni.torproject.org/measurement/20161218T000138Z_AS17974_MjcGCXBqEicdyD6UzGEaD8rkYuBTuPIeqiqChtLmLo2catzKsP?input=http:%2F%2Fwww.ashemaletube.com'
            ]
        },
    ]
ID_CENSOR_IPS = [
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>',
    '<IP_ADDRESS>', # https://explorer.ooni.torproject.org/measurement/20161226T000032Z_AS17974_fpJd2uwEJTW9uGSvFFQ64zrxuMsF6OEp24wTl6nIeeu5EugGX9?input=http:%2F%2Fwww.ashemaletube.com
    '<IP_ADDRESS>'
]

[x] Thailand

TH_BLOCKPAGES = [
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('
เว็บไซต์นี้มีเนื้อหาและข้อมูลที่ไม่เหมาะสม
ถูกระงับโดยกระทรวงดิจิทัลเพื่อเศรษฐกิจและสังคม
'.encode('utf-8'))
                )
            ],
            'block_id': 'th-ministry-0',
            'measurement_id': [
                '20170214T023413Z_AS132061_uOj4NMFvbADZII8Sp2cmuZbgnozyuePra6Dyp5i16tQRblJYDW',
                'http://www.wikileaks.org'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'<iframe src="http://<IP_ADDRESS>/')
                )
            ],
            'block_id': 'th-ministry-1',
            'measurement_id': [
                '20170210T012335Z_AS24378_8qwIdZPybKyYfAhU4RswGjL8CpdDjLs91F0YtCRo8IQf4gIJZp',
                'http://xhamster.com'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('กระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร ได้มีคำสั่งให้ระงับการเผยแพร่เว็บไซด์ที่ท่านต้องการเข้าชม'.encode('utf-8'))
                )
            ],
            'block_id': 'th-ministry-2',
            'measurement_id': [
                '20170222T131301Z_AS45758_Np4oEy8rsv8s9C9g1Xs1r00zm1xqPIthWls9phCG3SdVuPuL1A',
                'http://www.naughty.com'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('เว็บไซต์ที่ท่านต้องการเข้าชมได้ถูกระงับการเผยแพร่ตามคำสั่งจากกระทรวงเทคโนโลยีสารสนเทศและการสื่อสาร'.encode('utf-8'))
                )
            ],
            'block_id': 'th-ministry-3',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/th-martial_law2014/tot-court-announce.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('The Ministry of Information and Communication Technology has temporarily ceased the service to access such kind of information'.encode('utf-8'))
                )
            ],
            'block_id': 'th-ministry-4',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/th-martial_law2014/tot-ict.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('  '.encode('utf-8'))
                )
            ],
            'block_id': 'th-ministry-5',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/th-martial_law2014/tot-june4th-cop-ict.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('กองบังคับการปราบปรามการกระทําความผิดเกี่ยวกับอาชญากรรมทางเทคโนโลยี'.encode('utf-8'))
                )
            ],
            'block_id': 'th-cyber-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/th-martial_law2014/3bb-tcsd.html',
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('An  access to such information has been temporarily ceased '.encode('utf-8'))
                )
            ],
            'block_id': 'th-temp-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/th-martial_law2014/tot-temportary-cease.html',
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('  '.encode('utf-8'))
                )
            ],
            'block_id': 'th-ministry-6',
            'measurement_id': [
                'https://github.com/NullHypothesis/blockpages/blob/master/TH/<IP_ADDRESS>/Redirecting.html',
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile('ตามคำสั่ง  กองอำนวยการรักษาความสงบเรียบร้อย'.encode('utf-8'))
                )
            ],
            'block_id': 'th-peace-corp-0',
            'measurement_id': [
                'https://github.com/citizenlab/blockpages/blob/master/html/th-martial_law2014/3bb-maintain_order.html'
            ]
        },
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'<meta HTTP-EQUIV="REFRESH" content="0; url=http://<IP_ADDRESS>/blocking')
                )
            ],
            'block_id': 'th-local-block-0',
            'measurement_id': [
                '20161218T000023Z_AS45758_owGKv7as3ueVKmfKpNfRnsDJGOsahdKgwDw0X301iaTBMlqHRt',
                'http://crackspider.net'
            ]
        }
    ]

[x] Uganda

UG_BLOCKPAGES = [
        {
            'match': [
                (
                    'body_s_re',
                     re.compile(b'Cyberoam is securing you. Click here to know more.')
                )
            ],
            'block_id': 'ug-cyber-roam-0',
            'measurement_id': [
                '20160927T035653Z_AS37027_3rGH0c3HxdARB8yPZbQIY9GevVO5FPLESGqrAojrg6XqYemfBZ',
                'http://redtube.com'
            ]
        },
    ]

As I find more ipython notebooks I will edit the ticket. Please add a comment to this ticket you have imported some of these.

So I started going through this and then realised that I think we are tackling this in the wrong way.
It seems like there is some duplication of effort with the work that the @jakubd has been doing with the https://github.com/citizenlab/filtering-annotations repo.
He's been doing an excellent job at documenting and keeping the fingerprints up to date and I recon that we should rather join forces with them so we can have a single source of truth regarding blockpage fingerprints.
I went through some of the fingerprints above and most of them were already present in filtering-annotations, yet a few were missing.
I also did some cherry pick comparisons between the fingerprints we have in https://github.com/ooni/pipeline/blob/master/af/fastpath/fastpath/utils.py#L17 and there are for sure some fingerprints which we have that are not part of filtering-annotations and vice-versa.
My suggestion is that we use the filtering-annotations repo as the authoritative source for blockpages and DNS fingerprints and upstream the fingerprints that are missing from here.
The challenges that I see in doing this are the following:

It's not so simple to do a diff between the fingerprints we have vs those that they have. This is because the same fingerprint may be defined using a different pattern matching rule and so we run the risk of duplicating them.
There are some small differences in the logic we use for defining the fingerprint patterns. For example filtering-annotations does a full text search inside of all headers, while we only search for the prefix in a specified header name.

My ideas for addressing these two problems are as follows:

We add support to the pipeline for matching against both the fingerprints inside of the fastpath and additionally those in the citizenlab repo. The matched fingerprints should be written to a specific column and we should enumerate all the matching fingerprints. At the end of the run we will have some that matched the citizenlab fingerprint db, some of them only ours and some which are duplicate matching both. We will then take only the ones that are missing from the citizenlab repo (i.e. that matched only our fingerprint db) and upstream them. Once this is done, we will change our code to use the citizenlab repo as the canonical source.
I think we should change the logic of our fingerprint matching rules to be the same as the one used by the citizenlab repo. I also think we should record, when we hit a fingerprint match, the ID of the fingerprint that was matched against as it's quite useful metadata.

I am going to rename this issue to reflect the changed scope.

The work on consolidating all the blocking fingerprints into one has been done over here: https://github.com/ooni/blocking-fingerprints.
We can now move forward with adding support for using this in the current data pipeline.

All the fingerprints have been added. I would say we can close this. Follow up work for support this in the current pipeline is documented here: https://github.com/ooni/backend/issues/618.


Picker has been extracted from react-native core

The issue
Could you please to review?

replaced community-picker into peerDependencies

Can someone please merge and release this? Blocking as it prevents app instantiation with
 Invariant Violation: Tried to register two views with the same name AndroidDropdownPicker

@Preeternal I'm not sure that's moving required dependency to peerDependencies is good idea
#3230 it's duplicate, but it used "normal" dependencies, so my vote for that

@Preeternal I'm not sure that's moving required dependency to peerDependencies is good idea
#3230 it's duplicate, but it used "normal" dependencies, so my vote for that
But someone probably will want to use community picker and native-base in own project same time. It will return error described by @lifenautjoe


Observe Only - POC

Description of your changes
This is just a POC PR for the required changes in upjet for the Observe Only proposal.
Changes in this PR will probably be split into multiple PRs:

Include all state under status.atProvider, i.e. status.atProvider is a superset of spec.atProvider. See the discussion leading to this in addition to what is already proposed in the design.
Define CEL rules to mark fields as required depending on the management policy.
Usage of Terraform import when management policy is Observe Only.

I have:

[ ] Read and followed Crossplane's [contribution process].
[ ] Run make reviewable to ensure this PR is ready for review.
[ ] Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested
Together with provider-gcp, by generating new schemas and observing resources.

Closing this POC PR in favor of the following PRs:

#164
#166
#168


Remove note about DELETE rowcount

In Crate 0.55 the DELETE statements will have a rowcount (unless it's
done on a partitioned table and partitions are removed)

ack


Fixing H tags

@kaushika-msft Please resolve the merge conflict so I can get this merged into master.

I could be mistaken, but it looks like the content change in this PR
has been applied already in commit https://github.com/MicrosoftDocs/windowsserverdocs/commit/51238e6afe353994c9f0b9e9a209e0fa7c1562ab , PR https://github.com/MicrosoftDocs/windowsserverdocs/pull/3424
@kaushika-msft : Please review & share your thoughts.
See also current MicrosoftDocs:master file content in

https://github.com/MicrosoftDocs/windowsserverdocs/blob/master/WindowsServerDocs/troubleshoot/windows-server-troubleshooting.md

last updated October 21, 2019 (as of the time of this comment).


Simplify text input form

Removes the double wrapping we had. Tell me if it's better or worse.

Better IMO

Same comment as #359, the current one fits very well in the theme. I'd be more in favor of a new "flat-UI" theme that matches your preference.

The placeholder color in Zenburn is a little hard to read, possibly add;
diff --git a/client/themes/zenburn.css b/client/themes/zenburn.css
index fd13d55..275efa7 100644
--- a/client/themes/zenburn.css
+++ b/client/themes/zenburn.css
@@ -183,6 +183,10 @@ body {
 	color: #dcdccc;
 }

+#form #input:-ms-input-placeholder { color: #a1a197; }
+#form #input::-moz-placeholder { color: #a1a197; }
+#form #input::-webkit-input-placeholder { color: #a1a197; }
+
 /* Buttons */
 #chat .show-more-button {
 	background: #434443;

Those selectors should be comma-separated so as not to duplicate the color property, but I agree with changing that color.

Those selectors should be comma-separated so as not to duplicate the color property, but I agree with changing that color.

Not possible due to vendor incompatible pseudo-selectors (in accordance with the CSS spec).

Surprising that the spec doesn't allow for ignoring only elements of comma-separated selectors, since each list item is independent of the others, but so be it; the W3C hath spoken.

@astorije Are you against this going in as-is and want a new theme instead? Personally, I think it works fine in the theme, but if you are very against it, then we should probably not leave it hanging around.

@YaManicKill, if everyone is in favor, then I'll go with the flow :-) I'll review/test it ASAP.

Alright, since people seems to like it, this is a 👍 for me. It will also make #379 look a bit better, as right now the box is bottom centered and it's a bit weird looking.

@maxpoulin64 will have to be rebased after your PR is merged, but yea.

Nooo what happened here?


Article rating

Every paid reader can rate the article. 1 star for the worse, 5 star for the best.

Or just simplify the rating process by using only 2 options: worth paying or not worth paying.

Or just simplify the rating process by using only 2 options: worth paying or not worth paying.

good point


Adding contributors

Using the contributors bot to add details to the repo

@all-contributors please add @nnja for question content eventOrganizing ideas tutorial

@all-contributors please add @Mariatta for question doc content eventOrganizing ideas

@all-contributors please add @Nikoleta-v3  for question doc content review ideas

@all-contributors please add @trallard for question doc content eventOrganizing ideas projectManagement

@all-contributors please add @Cheukting  for question eventOrganizing ideas

@all-contributors please add @katialira  for question eventOrganizing ideas

@all-contributors please add @valerybriz for question eventOrganizing ideas

@all-contributors please add @Cheukting for infra platform

@all-contributors please add


Snowpack

Depends on: https://github.com/pikapkg/snowpack/pull/332
Just like vite at this moment it's lacking support for HMR on hooks due to the AST-part missing. I'll try and see if we can add this soon'ish

Looks good! This API just went out with<EMAIL_ADDRESS>(npm install snowpack@next). Let me know if I can help at all with the integration.

@FredKSchott I don't know if this is an issue on how I'm using it but I'm not seeing babel run atm initially I just added it to the preact-scripts found in the starter for Preact.
This didn't work so I made a local babel.config.json and added "plugin:js,jsx": "@snowpack/plugin-babel" to my package.json. My logs in the babel-plugin don't seem to trigger.

Ah yea, we just finalized the interface:

we use esbuild internally so no Babel needed, works with Preact & JSX, you can see the new preact CSA template to see that in action
I can see how thats not obvious tho, we should show that that’s the new default in our dev output
“plugin:js,jsx” is now just “build:js,jsx” ... and it will be connected automatically for you by just putting the plugin in your “plugins” config
I think I updated the docs on snowpack.dev with these updates but it’s still new so still in progress

Merging while we work on the bubbling HMR api for snowpack!


Provision with libssh2-1-dev libssh2-php

Could you say a few words about use case?

It adds functionality for ssh2_* functions.


Improve performance and UI for "Mark all as read" command

Description
Better Apple Script for better performance.
improvement in the script by ensuring that it operates on all windows and all accounts, and it only marks messages as read if they are not already read. Additionally, the activate command ensures the user is brought back to the Mail application after the script runs, which can be useful for user experience.
Added details to the Hud message when the script is run.
Added Toast Success once the command is completed successfully.
Screencast
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Seems like a cool update @tleo19 🔥
@yug2005 do you mind checking this 🚀


Switch from purpose to is_seed for Seed alerts

How to categorize this PR?

/area monitoring
/kind bug
What this PR does / why we need it:
When we introduced a new alert for Seed control-planes, we selected Shoots with purpose: infrastructure (which is only true for Seeds), but missed that the copy-pasted alert definition also had is_seed="false".
This change removes purpose: "infrastructure" so identify Seeds and switches to is_seed instead. This is more direct (doesn't require knowledge about which Shoots may or may not have purpose: "infrastructure") and removes a possibility to configure something that doesn't match any Shoot at all.
Special notes for your reviewer:
Thanks @rickardsjp and @vicwicker!
Release note:

Fixed prometheus alerting rules for Seeds with unhealthy control-planes

/cherry-pick release-v1.94


Documentation for supported intents

I noticed your app supports Android Intents. Is there any documentation on which intents are supported and how to use it?
In particular, is it possible to perform a zero-touch setup (remote enrollment via intent then remote activate VPN via intent)?

P.S. Docs could be as simple as https://www.reddit.com/r/Tailscale/comments/141rkyy/tutorial_turn_taiscale_onoff_automatically_using/

I am assuming this means the following:
If you open a "Ziti Identity" on your phone, it auto opens the app and enrolls?
If so I can add this as a feature request.

I was hoping more for a zero-touch configuration using an MDM, such as: https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/deployment/mdm-deployment/#android


[Documentation] Replace HttpAdapter names on README

Request Statement

The class BrowserClientAdapter  do not exist on package:dio/browser.dart but on README HttpClientAdapter section, show BrowserClientAdapter  like example.
The class IOClientAdapter do not exist on package:dio/io.dart but on README HttpClientAdapter section, show IOClientAdapter like example.

Solution Brainstorm
Replace IOClientAdapter to IOHttpClientAdapter on both README
Replace BrowserClientAdapter  to BrowserHttpClientAdapter  on both README

Hi, I can do this work can I be assigned to this issue?

@someshwar16 feel free to work on this. There's no need to be assigned. Thank you!


Add notifications

Coverage decreased (-1.4%) to 81.439% when pulling e71df6f279eb8facac9280d6716746bef7812900 on eatonphil:add-notifications into 06e0b90b34471889bf48e14c9708668e66787efc on linode:master.

Coverage decreased (-2.2%) to 80.652% when pulling cdb572a93ca9d186254445d82d6eab2dc987bf3e on eatonphil:add-notifications into 584a21bb5e57c53c64e5a76029bcafbae3d795bc on linode:master.

Coverage decreased (-2.2%) to 80.652% when pulling cdb572a93ca9d186254445d82d6eab2dc987bf3e on eatonphil:add-notifications into 584a21bb5e57c53c64e5a76029bcafbae3d795bc on linode:master.

Coverage decreased (-1.2%) to 81.655% when pulling fc7467c7782e24d9558146dbba592197fc794469 on eatonphil:add-notifications into 609c06a5b0566fb1c84d3c3dc70e3e1e2f3b1f04 on linode:master.

Thanks!


Internal error (stage: prepare_output_dirs_failed)

I got this error when doing a build of a couple of thousand files on Windows:
D:\src\foo>buck2 build //...
Action failed: root//deps/STM:STM (cxx_compile src/STM/Detail/PAL/Futex.cpp)
Internal error (stage: prepare_output_dirs_failed): remove_path_recursive(D:\src\foo\buck-out\v2\tmp\root\23b3e4bdecafe14a\deps\STM\__STM__\cxx_compile\src\STM\Detail\PAL\Futex.cpp) on directory: remove_dir_all(D:\src\foo\buck-out\v2\tmp\root\23b3e4bdecafe14a\deps\STM\__STM__\cxx_compile\src\STM\Detail\PAL\Futex.cpp): The process cannot access the file because it is being used by another process. (os error 32)
stdout:
stderr:
Build ID: 086bb763-908c-4615-bd9d-50d81c0bc6f0
Network: Up: 0 B  Down: 0 B
Jobs completed: 1850. Time elapsed: 45.8s.
Cache hits: 0%. Commands: 1564 (cached: 0, remote: 0, local: 1564)
BUILD FAILED
Failed to build 'root//deps/STM:STM (foo//platforms:bar#23b3e4bdecafe14a)'

D:\src\foo>buck2 build //...
Build ID: 1c0c89d7-ac2e-4941-802c-a3a58b02503b
Network: Up: 0 B  Down: 0 B
Jobs completed: 67. Time elapsed: 1.2s.
Cache hits: 0%. Commands: 3 (cached: 0, remote: 0, local: 3)
BUILD SUCCEEDED

When I ran it the second time it succeeded.  I can reproduce this sometimes but not always, and it's always on the exact same file.  Is there anything I can do to provide more actionable information?  buck2 log what-failed does not report anything.

I think you'll probably to do a bit of the debugging on your end first here. In particular, what's using this file?
(Normally Buck expects to be able to remove files that Buck itself is no longer using)
(I also don't recognize the paths here, are you using our prelude or yours?)

Next time you see an error like this you can you Process Explorer to find what process holds handle for this file.

My suspicion is that it’s buck2 holding the file, and it’s an internal race condition on the file system.  Windows is notoriously racy with file system operations, and the error itself is “fleeting”, in the sense that by the time I open process explorer to see what is holding a lock, nothing will be holding a lock (evidenced by the fact that it succeeds if i build a second time)
there’s actually an entire cppcon talk  about how difficult it is to delete files on windows for this exact reason, and I suspect this is exactly the problem because it mentions the problem being in remove_path_recursive, which is the exact hard case.

Here’s a related bug on the python bug tracker.
https://bugs.python.org/issue40143#msg365697


nassi:0.1.0

I am submitting

[x] a new package
[ ] an update for a package

Description: Draw Nassi-Shneiderman diagrams with Typst.

I have read and followed the submission guidelines and, in particular, I

[x] selected a name that isn't the most obvious or canonical name for what the package does
[x] added a typst.toml file with all required keys
[x] added a README.md with documentation for my package
[x] have chosen a license and added a LICENSE file or linked one in my README.md
[x] tested my package locally on my system and it worked
[x] excluded PDFs or README images, if any, but not the LICENSE

Thanks :)


Update data conversion functions to use ee.data methods.

Use ee.data. computeFeatures and computePixels in data conversion functions. By specifying a compatible fileFormat, these methods can return data in Python-native formats like structured NumPy arrays for rasters and Pandas DataFrames or GeoPandas GeoDataFrames for vectors. In the case of vectors, computeFeatures methods will make several network requests to fetch all the pages of the table before returning the Python object.
Here is a demo
ee_to_df  could benefit - what others?

These functions can benefit from the ee.data methods. I will work on this sometime next week.

Thanks, Qiusheng. I'm happy to edit too, or look, answer questions, test, review when ready- let me know!
A bug was found with ee.data.computeFeatures - it currently won't return more than 1001 features. The PR should probably not be merged until the bug is fixed.

Sure. I will wait for the fix.

These functions can benefit from the ee.data methods. I will work on this sometime next week.

Oh my gosh! YES PLEASE!!

@jdbcode It seems ee.data.computePixels ignores the bandIds parameter. It always output a a 2D array without bands.
https://developers.google.com/earth-engine/apidocs/ee-data-computepixels
# Region of interest.
coords = [
    -121.58626826832939,
    38.059141484827485,
]
region = ee.Geometry.Point(coords)

# Sentinel-2 median composite.
image = (ee.ImageCollection('COPERNICUS/S2')
              .filterBounds(region)
              .filterDate('2020-04-01', '2020-09-01')
              .median())

# Make a projection to discover the scale in degrees.
proj = ee.Projection('EPSG:4326').atScale(10).getInfo()

# Get scales out of the transform.
scale_x = proj['transform'][0]
scale_y = -proj['transform'][4]

# Make a request object.
request = {
    'expression': image,
    'fileFormat': 'NUMPY_NDARRAY',
    'bandIds': ['B4', 'B3', 'B2'],
    'grid': {
        'dimensions': {
            'width': 640,
            'height': 640
        },
        'affineTransform': {
            'scaleX': scale_x,
            'shearX': 0,
            'translateX': coords[0],
            'shearY': 0,
            'scaleY': scale_y,
            'translateY': coords[1]
        },
        'crsCode': proj['crs'],
    },
    'visualizationOptions': {'ranges': [{'min': 0, 'max': 3000}]},
}

image_arr = ee.data.computePixels(request)
print(image_arr.shape)
# (640, 640) instead of (640, 640, 3)

It returns a NumPy Structured array, which is a little different than the maybe-expected-3D array.
The structured array has the 3rd dimension included as tuples at the intersection of each row and column. They are accessible by name e.g. image_arr ['vis-red']. 'vis-red' is the band name because the request used the visualizationOptions parameters to scale to 8-bit RGB image.
in: image_arr

out: array([[(50, 69, 87), (50, 69, 87), (51, 68, 88), ..., (71, 78, 86),
        (65, 75, 86), (68, 81, 84)],
       [(50, 70, 87), (50, 69, 88), (49, 69, 89), ..., (73, 77, 88),
        (65, 76, 85), (64, 81, 83)],
       [(49, 69, 88), (50, 70, 88), (50, 70, 89), ..., (64, 75, 87),
        (63, 79, 84), (62, 80, 82)],
       ...,
       [(73, 80, 89), (66, 72, 84), (61, 69, 82), ..., (56, 67, 80),
        (55, 65, 79), (55, 65, 79)],
       [(76, 81, 90), (62, 72, 84), (57, 70, 81), ..., (54, 66, 80),
        (54, 66, 80), (54, 64, 80)],
       [(77, 82, 92), (62, 73, 83), (56, 70, 81), ..., (54, 66, 79),
        (54, 66, 79), (54, 64, 79)]],
      dtype=[('vis-red', 'u1'), ('vis-green', 'u1'), ('vis-blue', 'u1')])

in: image_arr.dtype

out: dtype([('vis-red', 'u1'), ('vis-green', 'u1'), ('vis-blue', 'u1')])

in: image_arr['vis-red']

out: array([[50, 50, 51, ..., 71, 65, 68],
       [50, 50, 49, ..., 73, 65, 64],
       [49, 50, 50, ..., 64, 63, 62],
       ...,
       [73, 66, 61, ..., 56, 55, 55],
       [76, 62, 57, ..., 54, 54, 54],
       [77, 62, 56, ..., 54, 54, 54]], dtype=uint8)

Also, the example for ee.data.computePixels is a bit strange - they use the same params/args as the ee.data.getPixels example which is funky with how to specify the region to export. The advantage of ee.computePixels is that you can specify the area to download using an ee.Geomtry object with ee.Image.clipToBoundsAndScale:
knoxville = ee.Geometry.BBox(-84.07, 35.87, -83.79, 36.06) # some ROI
image1 = (ee.ImageCollection('COPERNICUS/S2')
              .filterBounds(knoxville)
              .filterDate('2020-07-01', '2020-09-01')
              .median()
              .setDefaultProjection('EPSG:4326', None, 20) # Or some other CRS/scale
              .clipToBoundsAndScale(geometry=knoxville, scale=20)) # Clip to ROI and scale

image_arr1 = ee.data.computePixels({
    'expression': image1,
    'fileFormat': 'NUMPY_NDARRAY',
    'bandIds': ['B4', 'B3', 'B2'],
    'visualizationOptions': {'ranges': [{'min': 0, 'max': 3000}]} # Don't need to RGB
})

display(image_arr1)

import matplotlib.pyplot as plt
plt.imshow(np.dstack(([image_arr1[band] for band in image_arr1.dtype.names])))

Here is a notebook that describes the differences: https://developers.google.com/earth-engine/tutorials/community/data-converters

Thank you for clarifying. It makes sense.


Script does not handle multi-line or multi-value insert statements.

APT uses mult-line and multi-value insert statements for several NIRSpec related tables.  AFAICT this script assumes that every insert statement is on a single line with a single set of values.  I've been intending to cleanup the python script I made to do this and submit a patch to but haven't got around to it.

Attached is a script I threw together for this a few months ago.  I've been meaning to clean it up and submit it as a patch, it is extremely ugly code right now.
tableextract.zip

Thanks for reporting this issue. Indeed, the script did not handle multi-line, multi-value insert statements. I was not aware that the sql file could contain such constructs. I think I have fixed this issue in commit 79fc11. I tried using the sqlparse package, but the API is so low level that a lot of supporting code is required. Instead, I generalized my existing approach to handle multi-line, multi-value insert statements. The code still makes some assumptions about the format of the sql file. The code now handles the nirspec_msa_metadata table.
In the same commit, I added logic to handle properly strings with embedded commas, using the csv reader included with python. I had to remove the N before unicode strings. Finally, I restructured the code to make it more object-oriented and more idiomatic of python.


Computing the energy

[

i'm facing the issue to compute the energy please help me to resolve this error as soon as possible
thank you

Hi, I encountered this issue as well and found that if I cloned PES-Learn and added the module to my PYTHONPATH, then I did not have any trouble. The issue is that the PIPs aren't able to be accessed, I am not sure why this is, but I will look into it.


Status of this project?

I found this Bublé as a light-weight alternative to babel and I like the concept. However I'm very confused about the GitLab and GitHub repos. From the FAQ It looks like you prefer GitLab?
 I only found this repository here by chance. Since there is a newer release here I take it the project is not dead after all and you sometime recently changed your mind about GitLab vs GitHub?
If this repo is the intended future of this project could you add a note to readme of the old repo and update the guide to link here and remove confusing question from FAQ? Or is there some repository for the guide where I could send a PR?
And maybe you should consider creating a buble organization on GH. It's generally a better practice for open-source projects than to have the repo under your personal account.

The project is still alive, though I'll admit it's not as actively developed as would be ideal. This is the correct repo (I tried using GitLab, but frankly GitHub is better in every way that matters — UI, performance, community etc), and issues and PRs will eventually be moved over here instead.

And maybe you should consider creating a buble organization on GH. It's generally a better practice for open-source projects than to have the repo under your personal account.

I do that for some of my other projects, but it's basically just this repo and one for https://buble.surge.sh, so I don't think there's any value in an org.
I've added a note to the README on GitLab making it clear that it's an abandoned repo! Thanks

Could you fix the links in https://buble.surge.sh/guide/ as well? Or at least post a link to the repository so that I can send a PR?

We could also move over acorn5-object-spread if there's an org.


Change all SQL keywords to uppercase

I know this may be ridiculous.

Changed the null and rebased with master

👍 thx!

ty for merging :)


Familiarize entity names before sending them to GitHub

Problem
I'm taking input from the EntityPicker to select groups and users that are then passed to the publish:github step as collaborators. The problem I'm having is EntityPicker returns the values in the form group:default/group-name and user:user-name.
Solution in this PR
These types and namespaces are exclusively used by Backstage. They have no meaning to GitHub, GitLab, etc. so there is no value in sending those invalid API requests to those endpoints (since usernames and groups can't contain : and / for instance). This attempts to resolve that.
I put this in helpers instead of GitHub utils, because I suspect this will be useful for other vendors besides GitHub.
Background
I know there's a related ticket #17091 that allows users to manually remove these in some cases (not sure how this applies to arrays of entities). My thinking for this change is that I did not add nor request that Backstage add the type and namespace to the entity so it feels a bit odd that I have to tell it to remove something that it implicitly added.
Note
While committing this I received ESLint errors from unchanged code:
✖ eslint --fix:

/home/fearphage/src/git/backstage/plugins/scaffolder-backend/src/scaffolder/actions/builtin/helpers.test.ts
  18:1  error  @backstage/plugin-scaffolder does not export src/components/fields/EntityNamePicker  @backstage/no-forbidden-package-imports

✖ 1 problem (1 error, 0 warnings)

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

FYI yarn install has been running for almost 6 hours now even though there are no changes to package*.json files.
¯\_(ツ)_/¯


Build script fails to build on latest nightly with BIOS feature enabled

This is the error:
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\caleb\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\caleb\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\caleb\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
error: data-layout for target `i686-stage-3-15880981762407934716`, `e-m:e-i32:32-f80:128-n8:16:32-S128-p:32:32`, differs from LLVM target's `i386-unknown-none` default layout, `e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128`

error: could not compile `rustc-std-workspace-core` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `core` (lib) due to 1 previous error
error: could not compile `compiler_builtins` (lib) due to 1 previous error
error: failed to compile `bootloader-x86_64-bios-stage-3 v0.11.5`, intermediate artifacts can be found at `C:\Users\<me>\AppData\Local\Temp\cargo-installZp31yL`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
thread 'main' panicked at C:\Users\<me>\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bootloader-0.11.5\build.rs:239:9:
failed to build bios stage-3
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I haven't narrowed down exactly when it stopped working, but it still works on nightly-2024-01-01.

Should be fixed already in v0.11.6, see https://github.com/rust-osdev/bootloader/pull/413. Try running  cargo update.

It is fixed, thanks


ALGO: Code for Fuzzy C means on Iris dataset

Fix to  Issue #76
===============================

===============================
Checklist

[x] I read the contributing guidelines
[x] I structured my project as stated in the contributing guidelines
[x] My project uses dependencies
[x] I starred the repo
[x] I had fun contributing!

@harisaisundhar
Thanks mate!
Feel free to add more projects.


feat: Enable precomputation of VID dispersal data

Description
Follows the approach described here: #479.
Introducing the subtrait Precomputable to a VID scheme.
This allows for re-using the polynomial commitments (from commit_only_precompute) when calling disperse_precompute.
Lots of code-duplication but was a bit reluctant to refactor and make pre-mature code optimizations since we might have more data that can potentially be pre-computed and keeping the disperse code as is (in one function) makes it easy to map tracing output to code (readability of benchmarks).

Preliminary testing for pre-computation approach:
payload_size = 33MB, num_storage_nodes = 128, multiplicity = 8
We get running times:
commit_only_precompute: 2.768s
disperse_precompute: 2.580s
(see test run below)
Espressos-MBP:jellyfish espressosystems$ cargo test --release --package jf-primitives --lib --features print-trace -- vid::advz::precomputable::tests::disperse_with_data_timer --exact --nocapture
   Compiling jf-primitives v0.4.0-pre.0 (/Users/espressosystems/projects/jellyfish/primitives)
    Finished release [optimized] target(s) in 17.71s
     Running unittests src/lib.rs (target/nix_rustc/release/deps/jf_primitives-a0dd78b380e04750)

running 1 test
Start:   KZG10::Setup with prover degree 512 and verifier degree 1
··Start:   Generating powers of G
··End:     Generating powers of G ..................................................4.297ms
End:     KZG10::Setup with prover degree 512 and verifier degree 1 .................7.846ms
Start:   batch commit 2115 polynomials
End:     batch commit 2115 polynomials .............................................2.768s
Start:   (PRECOMPUTE): VID disperse 33554432 payload bytes to 128 nodes
··Start:   encode payload into field elements
··End:     encode payload into field elements ......................................0ns
··Start:   field elements into polynomials (inverse FFT)
··End:     field elements into polynomials (inverse FFT) ...........................864.920ms
··Start:   compute all storage node evals for 2115 polynomials with 512 coefficients
··End:     compute all storage node evals for 2115 polynomials with 512 coefficients 871.298ms
··Start:   compute merkle root of all storage node evals
··End:     compute merkle root of all storage node evals ...........................237.428ms
··Start:   (PRECOMPUTE): compute 2115 KZG commitments
··End:     (PRECOMPUTE): compute 2115 KZG commitments ..............................28.417µs
··Start:   compute aggregate proofs for 128 storage nodes
····Start:   compute h_poly
····End:     compute h_poly ........................................................392.693ms
····Start:   gen eval proofs with parallel_factor 2 and num_points 1024
····End:     gen eval proofs with parallel_factor 2 and num_points 1024 ............170.916ms
··End:     compute aggregate proofs for 128 storage nodes ..........................571.669ms
··Start:   assemble shares for dispersal
··End:     assemble shares for dispersal ...........................................9.214ms
End:     (PRECOMPUTE): VID disperse 33554432 payload bytes to 128 nodes ............2.580s
test vid::advz::precomputable::tests::disperse_with_data_timer ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 113 filtered out; finished in 6.35s

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[x] Wrote unit tests
[x] Updated relevant documentation in the code
[x] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[x] Re-reviewed Files changed in the GitHub PR explorer

Thanks for the comments. I've addressed the code comments individually.

...But I'm not sure it's worth the time to bother. If you don't want to do it then please post a tech-debt github issue on reducing code duplication and link to it in a comment at the top of precomputable.rs.

I agree. Did some more refactoring of certain parts of the disperse code but I think we can do more (especially, when we find that the code is in a somewhat stable state). Let me know if we should still create an issue for this or you think it is tolerable, as is.


store raft data in dedicated blob file

What problem does this PR solve?
Issue Number: ref #6827
Problem Summary: Currently we mix raft related data and other data in the same set of blob files. But raft related data have the characteristic of writing and deleting in a short time. So it is not suitable for full gc. And we need to separate them in a dedicated set of blob files.
What is changed and how it works?
Introduce PageType to distinguish different kinds of workload data and we can also specify different config for them. Different kinds of PageType will be stored in blob files with different ids. It can support at most PageType::TypeCountLimit kinds of workloads.
Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/rebuild

/run-all-tests

/run-integration-test

/rebuild

/rebuild

/run-all-tests

/hold

/run-all-tests

/run-all-tests

/run-all-tests

/run-integration-test

/run-integration-test

Please update the PR's description.

Please update the PR's description.

Fixed.

/run-all-tests

/run-unit-test

/run-all-tests


add precommit configuration

based on experience with snoex hackweek, it would be good to setup precommit for the repository for a couple of things:
this would pre-emptively catch things currently dealt with via github actions:

clean notebooks https://zhauniarovich.com/post/2020/2020-06-clearing-jupyter-output/
size limit on files to keep repository size trim
side note: also want to check execution time and size of rendered notebooks before merging into the main branch. some matplotlib and other figures of high res datasets are quite large

and could also enforce consistent styling that makes reviewing PRs challenging

whitespace and line length added by various editors https://github.com/snowex-hackweek/website/pull/33#pullrequestreview-670789408 , can use an editorconfig file for this https://github.com/stactools-packages/template/blob/main/.editorconfig
(optional) formatting of code in notebook cells

Going to break this into separate issues for easier tracking

the xarray tutorial has a nice setup
https://github.com/xarray-contrib/xarray-tutorial/blob/main/.pre-commit-config.yaml
with a bot that runs in CI if people don't setup precommit locally: https://pre-commit.ci


a user should be able to unsubscribe from a card

In discussion with @brynrhodes and @kpshek regarding aligning Clinical Reasoning and CDS Hooks, one of the topics of discussion was around the ability of a user to "unsubscribe" from a card.
It would make a lot of clinicians happy if they were able to unsubscribe from a card. This information would also be valuable to CDS services.
It would make sense to enhance the analytics-endpoint to support this additional information.
Overall, the analytics-endpoint that's currently defined in the CDS Hooks specification has not yet seen significant adoption, although it's clearly a useful feature to CDS services.

I agree that that clinicians will undoubtedly want to have some control in the filtering of their CDS cards and that CDS services will find the user feedback valuable.
If the hooks spec supports an unsubscribe, should it also support a way for clinicians to subscribe to content (or content subscription may be performed outside the scope of the CDS-hooks workflow)?
Should a clinician be able to unsubscribe from any card? This gives the user more control, but may also prevent important feedback from being delivered at the point of care. Does this introduce a patient safety risk?

Hey @bdoolittle ,
Great questions.

support a way for clinicians to subscribe to content

I think that an EHR could technically already support end-user chosen dynamic selection of cds services. If the EHR or healthsystem simply pre-populated discovery endpoints, it would be theoretically possible for the EHR to present all services to the end-user for "subscriptions".

Should a clinician be able to unsubscribe from any card? This gives the user more control, but may also prevent important feedback from being delivered at the point of care. Does this introduce a patient safety risk?

The above question also came up a few times in the CDS and CQI working group meetings at the HL7 WGM in Madrid this week. Yes, indeed, supporting a straight, simple end-user unsubscribe could be dangerous or at least very likely to break healthsystem policy. In reality, an unsubscribe feature should be carefully supported by the EHR per service, based upon the purpose of the service and the clinical and business policies. Since the desire to support unsubscribe ought not to be decided by the service, it should be up to the EHR to display the option to unsubscribe from a card based upon careful implementation and/or configuration.
The EHR could implement the unsubscribe itself, and simply stop calling the service based upon user preferences; however, the feedback implicit in an unsubscribe is valuable to the service.
All the above means that the spec itself needn't worry about placing guardrails around unsubscribe. The question is: how could we structure the analytics endpoint to support this and other desired feedback to the service.
Isaac

I am unclear what is meant by unsubscribing to a 'card'. Are you referring to the card instance - essentially the same as ignoring a particular issue, or the type of card, such as a card with a specific summary (or some other similar filter criteria)?


[TritonIntelGPUToLLVM] Extend sub-group transposition support

Extend sub-group transposition support allowing N*sub_group_size elements per thread.
As per block load semantics (matrix of sub_group_size columns), we need N vector loads to load the transposed matrix from local memory.

Review only https://github.com/intel/intel-xpu-backend-for-triton/pull/2521/commits/602175b66276542fa16cb1766b127775ef6fadd0

Part of https://github.com/intel/intel-xpu-backend-for-triton/issues/2266.

Requires https://github.com/intel/intel-xpu-backend-for-triton/pull/2511 to be merged.


Miner not working

Miner isn't working: it starts system32.exe and closes after few seconds.

GPU: RTX 2060 6GB

Minercheck.exe

Miners:
C:\Windows/System32\svchost.exe  --cinit-find-e --pool=stratum://-------@gmail.com@eth.pool.minergate.com:45791 --cinit-max-gpu=80  --response-timeout=300 --farm-retries=30
GPUs:
NVIDIA GeForce RTX 2060 NVIDIA GeForce RTX 2060
Sorry for my english :)
THX
Edit: antivirus is disabled

Yeah it's running, you can see it there in the "Miners:" output. It's injected into svchost.exe.

But it isn't mining.

You can't see the GPU usage that it uses with the Task Manager, you can check with something like MSI Afterburner.

Same thing :/

Press the Monitor looking button on the left side to get the GPU usage info, you can't see anything on the main screen. If that doesn't display any GPU usage then try another pool since MinerGates servers are horrendously bad and they steal hashrate anyways so it's not recommended to use. You can try something like Ethermine something similar, also keep in mind that ETH will hard fork in a week or two which will bring down miner profits (by design since they want to move to PoS) so either keep mining ETH or you can mine ETC or any other Ethash coin.

Okey, it started mining (my compur overheating now :DDD).
I have same problem with XMR miner. Can you suggest pool for XMR?
Thank you.

Well, nanopool is the only XMR pool I know that doesn't ban you though their UI, share difficulty and such are a bit worse.

Okey thank you :)
ethermine isn't showing that i am mining, but I think i need to wait.
You are the best 🥇

I have few questions more before closing this issue.
Where can i found list of all cryptocurrencies that this and XMR miner can mine?
Can XMR and ETH miner run at the same time?
How can i add email to nanopool, where i need to type email in miner for nanopool?

The ETH miner can mine the Ethash and Etchash algorithms while the XMR miner can mine these https://xmrig.com/docs/algorithms. Both can run at the same time yes as long as you don't enable "GPU Mining" in the XMR miner, one will mine with  the CPU and the other with the GPU.
For nanopool you add it into the "Wallet Address" field after the worker name like so: WALLET.Worker/Email
You can type anything into the email field, it doesn't actually have to be an email. You could type 123456 and it would work, just remember that it has to be at least 6 characters long.

Thank you for your answer.
I still can't setup email on nanopool (XMR).
I am trying<EMAIL_ADDRESS>In nanopool it says Incorrect password.
I have only one worker, it has more than 10 rating.
What should i do?

Try using something like 123456 as a password instead, I haven't been able to get it working with an email before.


Feature Request: add a actor Hardness selector for RE

Issue: Creatures with construct armor like, animated armor, animated statue, etc.when critted or at half hp have a reduced ac and hardness is removed. The ac is already automated and hardness was a non issue till the last update.
With the implementation of hardness in the IWR in v4.12, I think is needed a way to automate the removal of the hardness value witihn the RE adding a selector for the actor's hardness.

Sorry to bother, I did a little more research trying to make it work and found an old issue https://github.com/foundryvtt/pf2e/issues/5964 that is the same, and using AE-like is not working (or at least, I can't make it work).
That time you closed and then reopened the issue because while discussing on discord said "We can do some deferred processing of ae-likes in the beforeDerived phase" (I have no idea what is the meaning, maybe it can help)

For the purpose of hardness, you can send the ae-like all the way to the afterDerived phase.


Add GPU nodepools to CarbonPlan's Azure cluster

This PR is the first step towards https://github.com/2i2c-org/infrastructure/issues/930 and provides GPU machines to notebook and dask workers.
NOTE: Due to https://github.com/2i2c-org/infrastructure/issues/890, I had to run a bespoke terraform plan command that only targeted the cluster and nodepools.
 Resource actions are indicated with the following symbols:
  + create
  ~ update in-place

Terraform will perform the following actions:

  # azurerm_kubernetes_cluster.jupyterhub will be updated in-place
  ~ resource "azurerm_kubernetes_cluster" "jupyterhub" {
        id                                  = "/subscriptions/c5e7a734-3dbf-4285-80e5-4c0afb1f65dc/resourcegroups/2i2c-carbonplan-cluster/providers/Microsoft.ContainerService/managedClusters/hub-cluster"
        name                                = "hub-cluster"
        tags                                = {}
        # (17 unchanged attributes hidden)

      ~ default_node_pool {
            name                         = "core"
          ~ node_count                   = 2 -> 1
            tags                         = {}
            # (20 unchanged attributes hidden)
        }

        # (7 unchanged blocks hidden)
    }

  # azurerm_kubernetes_cluster_node_pool.dask_pool["gpu"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "dask_pool" {
      + enable_auto_scaling   = true
      + eviction_policy       = (known after apply)
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = "/subscriptions/c5e7a734-3dbf-4285-80e5-4c0afb1f65dc/resourcegroups/2i2c-carbonplan-cluster/providers/Microsoft.ContainerService/managedClusters/hub-cluster"
      + max_count             = 20
      + max_pods              = (known after apply)
      + min_count             = 0
      + mode                  = "User"
      + name                  = "daskgpu"
      + node_count            = (known after apply)
      + node_labels           = {
          + "hub.jupyter.org/node-size" = "Standard_NC16as_T4_v3"
          + "k8s.dask.org/node-purpose" = "worker"
        }
      + node_taints           = [
          + "k8s.dask.org_dedicated=worker:NoSchedule",
        ]
      + orchestrator_version  = "1.20.7"
      + os_disk_size_gb       = 200
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Regular"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_NC16as_T4_v3"
      + vnet_subnet_id        = "/subscriptions/c5e7a734-3dbf-4285-80e5-4c0afb1f65dc/resourceGroups/2i2c-carbonplan-cluster/providers/Microsoft.Network/virtualNetworks/k8s-network/subnets/k8s-nodes-subnet"
    }

  # azurerm_kubernetes_cluster_node_pool.user_pool["gpu"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
      + enable_auto_scaling   = true
      + eviction_policy       = (known after apply)
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = "/subscriptions/c5e7a734-3dbf-4285-80e5-4c0afb1f65dc/resourcegroups/2i2c-carbonplan-cluster/providers/Microsoft.ContainerService/managedClusters/hub-cluster"
      + max_count             = 20
      + max_pods              = (known after apply)
      + min_count             = 0
      + mode                  = "User"
      + name                  = "nbgpu"
      + node_count            = (known after apply)
      + node_labels           = {
          + "hub.jupyter.org/node-purpose" = "user"
          + "hub.jupyter.org/node-size"    = "Standard_NC16as_T4_v3"
          + "k8s.dask.org/node-purpose"    = "scheduler"
        }
      + node_taints           = [
          + "hub.jupyter.org_dedicated=user:NoSchedule",
        ]
      + orchestrator_version  = "1.20.7"
      + os_disk_size_gb       = 200
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Regular"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_NC16as_T4_v3"
      + vnet_subnet_id        = "/subscriptions/c5e7a734-3dbf-4285-80e5-4c0afb1f65dc/resourceGroups/2i2c-carbonplan-cluster/providers/Microsoft.Network/virtualNetworks/k8s-network/subnets/k8s-nodes-subnet"
    }

Plan: 2 to add, 1 to change, 0 to destroy.
╷
│ Warning: Resource targeting is in effect
│
│ You are creating a plan with the -target option, which means that the result of this plan may not represent all of the changes requested by the current
│ configuration.
│
│ The -target option is not for routine use, and is provided only for exceptional situations such as recovering from errors or mistakes, or when Terraform
│ specifically suggests to use it as part of an error message.

Terraform LGTM. Will need an entry in profile list targetting this node pool, and might also need some extra work to make sure the drivers are available inside the image - maybe the pangeo ML image already has those? I use the nvidia-smi command (https://developer.nvidia.com/nvidia-system-management-interface) inside the container to test if the GPUs are properly exposed.

Will need an entry in profile list targetting this node pool

Yeah, I was going to do this in a separate PR as I think it's too complicated to do terraform things and JupyterHub things in one go. Updating the profile list is being tracked in https://github.com/2i2c-org/infrastructure/issues/930

need some extra work to make sure the drivers are available inside the image - maybe the pangeo ML image already has those?

This hub is using their own image: carbonplan/cmip6-downscaling-single-user so I believe we can leave it up to them to make sure their image is ready for GPU-use

Yeah, I was going to do this in a separate PR as I think it's too complicated to do terraform things and JupyterHub things in one go. Updating the profile list is being tracked in #930

Makes sense!

This hub is using their own image: carbonplan/cmip6-downscaling-single-user so I believe we can leave it up to them to make sure their image is ready for GPU-use

Ah cool!
However, I looked up what would need to be done, and it isn't just what needs to be done at the user level - see https://docs.microsoft.com/en-us/azure/aks/gpu-cluster. Either we need to get Azure to use a different base image for GPU, or setup an additional daemonset to install the driver on the node. This is because the nvidia driver isn't actually open source. This is unfortunately true on almost all kubernetes providers.

From https://github.com/hashicorp/terraform-provider-azurerm/issues/6793 it looks like the custom base image option might not be available to us, and we'd need to deploy the daemonset. Maybe it can be part of the support chart and enabled with a flag?
Doesn't need to be part of this PR tho!

@yuvipanda This was the same conclusion I was coming too as well!
I'm just going to push a few more small changes to this PR that will allow us to apply labels to specific nodepools, like we can with the GKE terraform config, but also taints too. So I can deploy this with the recommended sku=gpu:NoSchedule taint from the Azure docs you linked.

@yuvipanda Pushed those updates and added new tf plan output to top comment. LMK what you think! \o/

Ran into this error on apply, the main cluster may need upgrading

│ Error:
│ The Kubernetes/Orchestrator Version "1.20.7" is not available for Node Pool "nbgpu".
│
│ Please confirm that this version is supported by the Kubernetes Cluster "hub-cluster"
│ (Resource Group "2i2c-carbonplan-cluster") - which may need to be upgraded first.
│
│ The Kubernetes Cluster is running version "1.20.7".
│
│ The supported Orchestrator Versions for this Node Pool/supported by this Kubernetes Cluster are:
│  * 1.19.11
│  * 1.19.13
│
│ Node Pools cannot use a version of Kubernetes that is not supported on the Control Plane. More
│ details can be found at https://aka.ms/version-skew-policy.
│
│
│   with azurerm_kubernetes_cluster_node_pool.user_pool["gpu"],
│   on main.tf line 117, in resource "azurerm_kubernetes_cluster_node_pool" "user_pool":
│  117: resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {

Commit 47cf790 fixed the above error by specifying a specific kubernetes version for a nodepool

This has been successfully applied to the cluster! 🎉 🚀

Thanks @sgibson91 and @yuvipanda for documenting all of these steps as well :-)


Issues with dual-screen setup and copyToAll

Hi,
as stated in the title, if copyToAll from XMonad.Actions.CopyWindow (xmonad version 0.17.1) is used on a setup with two screens, it just doesnt work.
If the copyToAll command is called, the selected window moves to the other (inactive) screen. When trying to switch screens, the window moves to the new inactive screen. It seems to work somehow, since the window is always visible (just on the wrong screen) independend from to workspace. I tested it with my second screen turned off and it worked as expected.
Is there a way for the copied window to either stay on the screen it originated from or to always be on the active screen?

copyToAll is a bit of a hack: it places the window id in every workspace, but doesn't and can't make an actual copy of the window. Therefore it gets rendered in the last position that X.O.windows places it. Looking at the code, I think the active workspace gets rendered first, which would mean the it would be placed in the last-rendered inactive but visible workspace. It's something of a bad fit with multi-monitor setups, in short.

I think

copyToAll […] doesn't and can't make an actual copy of the window.

is key here.  AFAIK, this is something that would need to be done on the compositor side.

Uppon further testing it turns out, that this issue only applies to floating windows. Any "normal" window remains on the same screen. Is there some way of using this?

Probably not, unless https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Layout-Monitor.html does what you want.


Can i use image + audio + video options?

Description
I want the player with image and record button. So it's up to the user either take the snapshot or record the video. it's possible or not?
Steps to reproduce
Explain in detail the exact steps necessary to reproduce the issue.
Results
Expected
Please describe what you expected to see.
Actual
Please describe what actually happened.
Error output
If there are any errors at all, please include them here.
Additional Information
Please include any additional information necessary here. Including the following:
versions
videojs
what version of videojs does this occur with?
browsers
what browser(s) are affected? Make sure to test with all third-party browser extensions disabled.
OSes
what platforms (operating systems and devices) are affected?

why did you close the ticket? maybe that info can help others..


exploitdb: 2023-11-18 -> 2023-11-21

Diff: https://gitlab.com/exploit-database/exploitdb/-/compare/refs/tags/2023-11-18...2023-11-21
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Priorities
Add a :+1: reaction to pull requests you find important.

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

1 package built:

exploitdb


Adding update acsp details base url to authentication middleware

It is required that the user must be signed in before they can access the Update ACSP Details service.
It was noted upon testing, that when navigating to the base url of the update service and the user had not signed in, the user is presented with the sign in screens for one login.
Upon logging in, the user was then re-directed to the 'What is the business type you are registering?' screen within the registration service, rather than the Update ACSP Details start page.
Updated authentication middleware to correctly route the user to the 'Update ACSP Details' service after signing in, when using the base URL of the new service.

CI: No security warnings found

Closing pull request as a ticket is being created to implement a new middleware for the update-acsp service


Add classpath search if no configuration file is found (Fix #124)

Problem Statement
https://github.com/oktadeveloper/okta-aws-cli-assume-role/issues/124
The classpath used to be resolved if a configuration file was not present
Solution
Add back this resolution

@loopingz thanks! I'll give this a run through my manual tests now.

@loopingz Matt is on vacation for a couple of weeks so it might be a while before this gets merged.
I won't be at DEF CON or Black Hat this year, unfortunately. Perhaps I'll get to Oktane19 though. Are you planning to attend that?

@bdemers @andreihava-okta do you know who has merge rights while Matt is out on vacation? If it's no one, I'll pause things and let contributors know.

Matt is indeed out, but I'll merge this in. I also just made you an official collaborator, @AlainODea <3
Your contributions have been awesome and are much appreciated! Welcome to the team! =D

Woot 🎉  Thank you, @rdegges 😄

Nooo, thank YOU! It takes a community to build awesome stuff.


BSSL:_connectSSL: OOM error with Wemos D1 Mini (ESP8266) and InfluxDB 2.1.1

Hi, I'm getting this OOM error when trying to send data to InfluxDB.
Based on the description of this feature I'm just looking for a quick confirmation whether this is the expected behavior in my setup and whether my only options currently are using a reverse proxy or setting up the db without ssl.
Logs (sensitive parts substituted):
Running task: WriteToDatabase
[HTTP-Client][begin] url: https://ip:port/api/v2/write?org=org&bucket=bucket
[HTTP-Client][begin] host: ip port: port url: /api/v2/write?org=org&bucket=bucket
[HTTP-Client][sendRequest] type: 'POST' redirCount: 0
[hostByName] Host: ip is a IP!
:close
:ur 1
:dsrcv 0
:del
:ref 1
BSSL:_connectSSL: start connection
:oom(16709)@abi.cpp:72
:oom(16709)@abi.cpp:72

_iobuf_in:       0x00000000
_iobuf_out:      0x3fff9c34
_iobuf_in_size:  16709
_iobuf_out_size: 597
BSSL:_connectSSL: OOM error
[HTTP-Client] failed connect to ip:port
[HTTP-Client][returnError] error(-1): connection failed
[HTTP-Client][end] tcp is closed
InfluxDB write failed: connection failed

As ESP8266 has a little free memory for the app (~40KB), successful communication over TLS highly depends on the rest of the application jobs.   How much memory and max bock allocation is available before writing?
Try adding such a line:
Serial.printf_P(PSTR("Before: free_heap %d, max_alloc_heap %d, heap_fragmentation  %d\n"), ESP.getFreeHeap(), ESP.getMaxFreeBlockSize(), ESP.getHeapFragmentation());

To know whether MFLN works with your server, please, enable library debug as written here.

Thanks for the quick guidance. Please see below the output after adding these settings.
For additional context, I'm trying to get this AirGradient sketch to work.
Running task: WriteToDatabase
Before: free_heap 25472, max_alloc_heap 24624, heap_fragmentation  4
75.515 [D] writeRecord: bufferPointer: 1, batchPointer: 0, _bufferCeiling: 1
75.534 [D] Flushing buffer: is oversized true, is timeout true, is buffer full false
75.622 [D] Writing batch, batchpointer: 0, size 1
75.675 [D] Init
75.691 [D]  Library version: 3.9.0
75.727 [D]  Device : ESP8266
75.757 [D]  SDK version: 3.0.2
75.790 [D]  Server url: https://ip:port
75.842 [D]  Org: org
75.864 [D]  Bucket: bucket
75.889 [D]  Token: token
76.001 [D]  DB version: 2
76.041 [D] setUrls
76.048 [D]  writeUrl: https://ip:port/api/v2/write?org=org&bucket=bucket
76.132 [D]  queryUrl: https://ip:port/api/v2/query?org=org
76.204 [D] Writing to https://ip:port/api/v2/write?org=org&bucket=bucket
76.287 [D] Sending:
AirGradient pm2.5=0i,co2=752i,humidity=36i,temperature=21.10

[HTTP-Client][begin] url: https://ip:port/api/v2/write?org=org&bucket=bucket
[HTTP-Client][begin] host: ip port: port url: /api/v2/write?org=org&bucket=bucket
[HTTP-Client][sendRequest] type: 'POST' redirCount: 0
BSSL:_connectSSL: start connection
BSSL:_connectSSL: OOM error
[HTTP-Client] failed connect to ip:port
[HTTP-Client][returnError] error(-1): connection failed
[HTTP-Client][end] tcp is closed
76.820 [D] Leaving data in buffer for retry, retryInterval: 0
76.884 [D] Success: 0, _bufferPointer: 1, _batchPointer: 0, _writeBuffer[_bufferPointer]_0
InfluxDB write failed: connection failed

Memory output after the first run (above).
Second run: Before: free_heap 17584, max_alloc_heap 17312, heap_fragmentation  2
Third run: Before: free_heap 17240, max_alloc_heap 16696, heap_fragmentation  4

Thanks, for the info.  I've just remembered that the MFLN part is moved elsewhere. Please, enable debug the same way also in src/HTTPService.cpp.
I've found your issue in AirGradient-InfluxDB. If you use TSL on the InfluxDB OSS server, you need more RAM on the device, which is expected, to answer your original question.
MFLN will not work. Try releasing sth else to achieve around 30KB free memory, just for a test (e.g. disable air quality sensors).

If you don't manage to update the app to release enough memory, you have several options:

If you have your server in your local network, you don't need a TLS.
Use some reverse proxy on the server, that will allow MFLN.
Use Telegraf as a "data proxy" on your local network. Telegraf can act as an InfluxDB server and will resend data.
Use a more powerful device.  ESP32 or, smaller, ESP32 C3.

Thanks for the additional guidance. I didn't realize that Telegraf could be used directly as an InfluxDB proxy. It was pretty quick to setup the InfluxDB V2 Listener Input Plugin, which is now working fine with the library through HTTP. :)
As an aside, I did do a test with your recommended settings. This confirmed that there was no MFLN support, but threw another error (I do have influxClient.setInsecure(); set due to self-signed cert).
Output:
Running task: WriteToDatabase
Before: free_heap 31288, max_alloc_heap 30968, heap_fragmentation  2
74.771 [D] writeRecord: bufferPointer: 1, batchPointer: 0, _bufferCeiling: 1
74.820 [D] Flushing buffer: is oversized true, is timeout true, is buffer full false
74.909 [D] Writing batch, batchpointer: 0, size 1
74.961 [D] Init
74.977 [D]  Library version: 3.9.0
75.014 [D]  Device : ESP8266
75.044 [D]  SDK version: 3.0.2
75.076 [D]  Server url: https://ip:port
75.128 [D]  Org: org
75.150 [D]  Bucket: bucket
75.175 [D]  Token: token
75.288 [D]  DB version: 2
75.316 [D] probeMaxFragmentLength to ip:port
75.389 [D]  MFLN:no
75.393 [D] setUrls
75.413 [D]  writeUrl: https://ip:port/api/v2/write?org=org&bucket=bucket
75.496 [D]  queryUrl: https://ip:port/api/v2/query?org=org
75.568 [D] Writing to https://ip:port/api/v2/write?org=org&bucket=bucket
75.651 [D] Sending:
AirGradient co2=782i

75.696 [D] POST request - https://ip:port/api/v2/write?org=org&bucket=bucket, data: 22bytes, type text/plain
[HTTP-Client][begin] url: https://ip:port/api/v2/write?org=org&bucket=bucket
[HTTP-Client][begin] host: ip port: port url: /api/v2/write?org=org&bucket=bucket
[HTTP-Client][sendRequest] type: 'POST' redirCount: 0
BSSL:_connectSSL: start connection
BSSL:CERT: cert
BSSL:_run_until: Timeout
BSSL:_wait_for_handshake: failed
BSSL:Couldn't connect. Error = 'Unknown error code.'
[HTTP-Client] failed connect to ip:port
[HTTP-Client][returnError] error(-1): connection failed
91.219 [D] HTTP status code - -1
91.253 [E] Error - connection failed
[HTTP-Client][end] tcp is closed
91.326 [D] Leaving data in buffer for retry, retryInterval: 0
91.390 [D] Success: 0, _bufferPointer: 1, _batchPointer: 0, _writeBuffer[_bufferPointer]_0
InfluxDB write failed: connection failed

So, Telegraf is able to can successfully write to your server, ok?
Does validateConnection() function works?
Try also increasing timeout:
client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000));

Yes, Telegraf is working fine. It's generally the main method of how I'm getting most of my data into InfluxDB anyway, but I didn't know it was able to proxy InfluxDB data directly, I've learned something new. :)
This will be the method I'll go with for now, given that I don't really know how I could further decrease memory consumption, even for testing purposes.
I did try the things you've suggested and found that I would likely be running into low memory issues, no matter what.
validateConnection() works and it is able to connect successfully, however it leaves the memory well below 30k once it ran.
client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000)); might be the solution, given the timeout message from BSSL, if not for the fact that adding this single line drops available memory from ~32k to ~24k, thereby leading to OOM situation again:
Without client.setHTTPOptions: free_heap 31760, max_alloc_heap 31440, heap_fragmentation  2
With client.setHTTPOptions: free_heap 24272, max_alloc_heap 23920, heap_fragmentation  2
Thanks for your help and helpful guidance.

Successful secured connection takes, as you noticed, around 10K.
After this and other initialization,  you can safely run the app even when available RAM is just 10K (one of my long-running projects) if there are no more big allocations (e.g. other secured connections).
And, you should set the client to reuse the connection to avoid reconnections.
Anyway, great it works for you the way it is best for you.

Wait, so you're saying that the connection only requires around 10k? So why would validateConnection() fail with an OOM error when I enable client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000));? I assumed it was because adding that line reduced available memory to below ~30k, but if connection requires only 10k it should still work.
Hmm, I'll guess it may be worth looking into this some more, even just so I can get a better understanding of how things work here. :)

I found where I went wrong before. I didn't realize that the order in which client.setInsecure() and client.setHTTPOptions() are set matters. Apparently when client.setInsecure() is set after client.setHTTPOptions() it gets ignored, which in my case led to an OOM exception, so I assumed memory was insufficient. Looking at the logs closer I now saw that setInsecure was being ignored: BSSL:Connection *will* fail, no authentication method is setup
With these settings in the right order, client.validateConnection() now works both with and without client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000)) set.
The actual db write attempt still doesn't work though, for some reason.
I'm getting more or less the same output whether client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000)) is set or not. The only difference seems to be that with it starting memory is about 8k lower, but the outcome is the same, including "After" memory values.
Starting memory without client.setHTTPOptions: Before: free_heap 31288, max_alloc_heap 30968, heap_fragmentation  2
Starting memory with client.setHTTPOptions: Before: free_heap 24272, max_alloc_heap 23912, heap_fragmentation  2
DB write output:
Running task: WriteToDatabase
Before: free_heap 24272, max_alloc_heap 23912, heap_fragmentation  2
writePoint
46.437 [D] writeRecord: bufferPointer: 1, batchPointer: 0, _bufferCeiling: 1
46.499 [D] Flushing buffer: is oversized true, is timeout false, is buffer full false
46.589 [D] Writing batch, batchpointer: 0, size 1
46.641 [D] Writing to https://ip:port/api/v2/write?org=org&bucket=bucket
46.724 [D] Sending:
AirGradient co2=1449i

46.769 [D] POST request - https://ip:port/api/v2/write?org=org&bucket=bucket, data: 22bytes, type text/plain
[HTTP-Client][begin] url: https://ip:port/api/v2/write?org=org&bucket=bucket
[HTTP-Client][begin] host: ip port: port url: /api/v2/write?org=org&bucket=bucket
[HTTP-Client][sendRequest] type: 'POST' redirCount: 0
BSSL:_connectSSL: start connection
BSSL:CERT: cert data
BSSL:_run_until: Timeout
BSSL:_wait_for_handshake: failed
BSSL:Couldn't connect. Error = 'Unknown error code.'
[HTTP-Client] failed connect to ip:port
[HTTP-Client][returnError] error(-1): connection failed
62.291 [D] HTTP status code - -1
62.325 [E] Error - connection failed
[HTTP-Client][end] tcp is closed
62.398 [D] Leaving data in buffer for retry, retryInterval: 0
62.462 [D] Success: 0, _bufferPointer: 1, _batchPointer: 0, _writeBuffer[_bufferPointer]_0
InfluxDB write failed: connection failed
After: free_heap 2552, max_alloc_heap 2000, heap_fragmentation  21

After this first run the second DB write run in the loop will end in an OOM exception, no doubt due to the extremely low memory state at that point.
One difference between the successful client.validateConnection() and unsuccessful DB write attempts that I can see in the output and that could be interesting is that in the successful case there are four BSSL:CERT entries in the attempt, while the unsuccessful one stops after the first:
BSSL:_connectSSL: start connection
BSSL:CERT: cert data
BSSL:CERT: cert data
BSSL:CERT: cert data
BSSL:CERT: cert data
BSSL:Connected!

vs unsuccessful:
BSSL:_connectSSL: start connection
BSSL:CERT: cert data
BSSL:_run_until: Timeout
BSSL:_wait_for_handshake: failed
BSSL:Couldn't connect. Error = 'Unknown error code.'

What I find curious is where this timeout happens: right after the first cert segment was read.
Comparing the successful and unsuccessful connections, the cert data in the first BSSL:CERT segment is the same and fully there in the unsuccessful attempt as well.
However, the unsuccessful attempt only gets to the end of the first BSSL:CERT segment and doesn't start the second one, which is the case both when client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000));  is set and when it is not.

Wait, so you're saying that the connection only requires around 10k? So why would validateConnection() fail with an OOM error when I enable client.setHTTPOptions(HTTPOptions().httpReadTimeout(20000));? I assumed it was because adding that line reduced available memory to below ~30k, but if connection requires only 10k it should still work.

I meant that after a secured connection is established, memory is about ~10K lower, than it started, because of buffers allocated by WiFiClient.
It still requires a large amount of memory at the beginning (30K).
Yes, setInsecure must be called before setting options.
Regarding timeout, I've almost forgotten about hard-coded connection timeout  in the secure wifi client, which is 15s and cannot be changed. I'm sorry for the misleading hint.
The core problem you are experiencing is in communication between secure wifi client and server. I don't know why, yet.
I have several Wemos D1 minis with a couple of sensors sending data to InfuxDB with a custom certificate without any problem.
I would suggest trying the SecureWrite example from this library to test the most simple app for writing to InfluxDB, where there is as much as possible RAM.

Ah, ok, thanks for the explanation regarding memory requirements.
Relatedly, is there a good example of how you would set up a sketch with the secure connection being established at the beginning (presumably toward the beginning of setup() when there is still enough memory) and the same connection being reused later on? I guess for the second part of the question you would use something like client.setHTTPOptions(HTTPOptions().reuseConnection(true)), but I'm not sure how you would go about establishing the connection in the beginning without a write event.
I'll if I can test the SecureWrite example later today. I probably won't be able to progress further for about two weeks due to travel.

I've just tested the SecureWrite example.
It is able to connect successfully and write to the db. Interestingly, it is able to do so at a lower "Before" memory level than the sketch I'm trying to get to work (~18k vs ~24/31k).
Writing: wifi_status,device=ESP8266,SSID=ssid rssi=-20i

Before: free_heap 18536, max_alloc_heap 14264, heap_fragmentation  21

275.449 [D] writeRecord: bufferPointer: 1, batchPointer: 0, _bufferCeiling: 1
275.455 [D] Flushing buffer: is oversized true, is timeout false, is buffer full false
275.462 [D] Writing batch, batchpointer: 0, size 1
275.467 [D] Writing to https://ip:port/api/v2/write?org=org&bucket=test
275.474 [D] Sending:
wifi_status,device=ESP8266,SSID=ssid rssi=-20i

275.480 [D] POST request - https://ip:port/api/v2/write?org=org&bucket=test, data: 49bytes, type text/plain
BSSL:_connectSSL: start connection
BSSL:CERT: cert data
BSSL:CERT: cert data
BSSL:CERT: cert data
BSSL:CERT: cert data
BSSL:Connected!
276.632 [D] HTTP status code - 204
276.638 [D] Dropped batch, batchpointer: 1
276.641 [D] Success: 1, _bufferPointer: 1, _batchPointer: 1, _writeBuffer[_bufferPointer]_0
276.649 [D] Buffer empty

After: free_heap 18536, max_alloc_heap 14064, heap_fragmentation  22

Thanks for the test.
What is the first row about memory?
Line Before: free_heap 18536, max_alloc_heap 14264, heap_fragmentation  21 after first connection remains almost the same between writes, because, shortly explained,  wifi client has allocated buffer and it is reused. Thus, the next write doesn't need allocations and it runs ok .
There must be a problem in the app you have.

Thanks for the explanation.
If I understand your question, you meant to check the delta of "before" available memory between first and subsequent runs.
I have now disabled client.validateConnection() in the WriteSecure sketch, to only see how db writes behave.
First run:
Before: free_heap 47568, max_alloc_heap 47280, heap_fragmentation  1
...
After: free_heap 18976, max_alloc_heap 18168, heap_fragmentation  5

Second run:
Before: free_heap 18456, max_alloc_heap 17648, heap_fragmentation  5
...
After: free_heap 18456, max_alloc_heap 14008, heap_fragmentation  22

I see now what you meant by about 30k being needed for the buffer to be allocated initially.
This may certainly be app related. Unfortunately I'm not at a level when it comes to Arduino or coding in general that I could properly troubleshoot the situation or optimize memory usage.
Btw, I did test WriteSecure with connectionReuse enabled, mainly to see how it behaved. I only saw a difference in the first run:
Before: free_heap 40632, max_alloc_heap 40424, heap_fragmentation  1
...
After: free_heap 19056, max_alloc_heap 18384, heap_fragmentation  4

Subsequent runs were the same as before, with the default false setting:
Before: free_heap 18536, max_alloc_heap 17864, heap_fragmentation  4
...
After: free_heap 18536, max_alloc_heap 17864, heap_fragmentation  4

Relatedly, this option is currently referenced incorrectly in the readme as "reuseConnection", while it is actually the other way around, "connectionReuse".

I see now what you meant by about 30k being needed for the buffer to be allocated initially.

Well, I don't know details about the internal work of the secured wifi client, especially about the closed source of TLS layer. I suppose that along with caching server certificate info and some other stuff,  there is another buffer kept for sending data (encrypting) data.
You can check how it behaves using the stock example for HTPPS.

This may certainly be app related. Unfortunately I'm not at a level when it comes to Arduino or coding in general that I could properly troubleshoot the situation or optimize memory usage.

I recommend trying to keep only SHT3x sensor in the AirQuality app to test this.
I will test the app later as well, but I don't have those air quality sensors. so I will need to emulate them.

Relatedly, this option is currently referenced incorrectly in the readme as "reuseConnection", while it is actually the other way around, "connectionReuse".

Thanks for noticing this and reporting it!


Vickel: Watch alight.link

Vickel requests the watch of the watch_keyword alight\.link. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

alight\.link has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Parameter descriptions

It might be nice to be able to give a Parameter a description so it can be show in the usage output for the command. Perhaps this can be under a Parameters list similar to how Options is shown.
You could argue if the parameter is required the usage info could go into the command description, but at the moment the usage for a command doesn't show it's own description, it only does in the command list

Is this issue sufficiently solved by long descriptions in usage statements (56d73e8bf288f5686abb9b397728f6e99901368e)?

Yep!