Make docker2aci compatible with the new Docker Registry 2.0.0

The new Docker Registry 2.0.0 is getting ready.
We should check whether docker2aci works fine with it and investigate what changes in docker2aci are necessary to support it.

I've spent a lot of time trying to work on this, but I've ended up getting stuck on auth in the new API. I'm going to write down my current state and issue, and hopefully someone else can tell me where things are going wrong.
Any requests I make against the v2 registry at registry-1.docker.io return a 401 Unauthorized, which is expected. It sets the www-authenticate header to something like:
Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:centos:pull"

According to the docs that describe the auth process, after getting this 401 error the client should go get an auth token based on that header. This just requires making a GET request against the realm specified, with the get parameters service and scope set to the values from the header.
curl -v "https://auth.docker.io/token?service=registry.docker.io&scope=repository:coreos:pull"

That results in a token being returned (what the token contains is documented here). There are 3 sections, separated by a ., and the second one is a base64 encoded json blob, in which it'll describe what things the token is good for accessing.
Every token I've gotten has had the access array in that 2nd section empty, which means it doesn't have permission to access anything, and using it just results in more 401 Unauthorized responses with identical www-authenticate headers set.

Two things to consider -- one big use case is unauthenticated private registries, for which the authentication is not relevant.  So maybe that part can be finished first, independent of public registry support.
Second, maybe this is a good question to post to either the docker/distribution repo or the mailing lists?

Are you aware of an unauthenticated registry I could test this against? I'm pretty sure I could get this working without too much trouble if the auth was irrelevant.
I guess I'll send something to one of the mailing lists, hopefully someone will know what's up.

I'm not aware of any publicly accessible ones, but running a test instance locally is nearly trivial

@dgonyeo have you tried actually passing basic auth credentials..?
On Wed, Nov 4, 2015 at 9:21 PM Derek Gonyeo<EMAIL_ADDRESS>wrote:

I've spent a lot of time trying to work on this, but I've ended up getting
stuck on auth in the new API. I'm going to write down my current state and
issue, and hopefully someone else can tell me where things are going wrong.
Any requests I make against the v2 registry at registry-1.docker.io
return a 401 Unauthorized, which is expected. It sets the www-authenticate
header to something like:
Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:centos:pull"
According to the docs https://docs.docker.com/registry/spec/auth/token/
that describe the auth process, after getting this 401 error the client
should go get an auth token based on that header. This just requires making
a GET request against the realm specified, with the get parameters service
and scope set to the values from the header.
curl -v "https://auth.docker.io/token?service=registry.docker.io&scope=repository:coreos:pull"
That results in a token being returned (what the token contains is
documented here https://docs.docker.com/registry/spec/auth/jwt/). There
are 3 sections, separated by a ., and the second one is a base64 encoded
json blob, in which it'll describe what things the token is good for
accessing.
Every token I've gotten has had the access array in that 2nd section
empty, which means it doesn't have permission to access anything, and using
it just results in more 401 Unauthorized responses with identical
www-authenticate headers set.
—
Reply to this email directly or view it on GitHub
https://github.com/appc/docker2aci/issues/46#issuecomment-153851469.

Pretty sure I did, but I'll double check that again when I get to the office. I don't believe we should need creds though for the public docker hub.

On Nov 5, 2015, at 03:05, Jonathan Boulle<EMAIL_ADDRESS>wrote:
@dgonyeo have you tried actually passing basic auth credentials..?
On Wed, Nov 4, 2015 at 9:21 PM Derek Gonyeo<EMAIL_ADDRESS>wrote:

I've spent a lot of time trying to work on this, but I've ended up getting
stuck on auth in the new API. I'm going to write down my current state and
issue, and hopefully someone else can tell me where things are going wrong.
Any requests I make against the v2 registry at registry-1.docker.io
return a 401 Unauthorized, which is expected. It sets the www-authenticate
header to something like:
Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:centos:pull"
According to the docs https://docs.docker.com/registry/spec/auth/token/
that describe the auth process, after getting this 401 error the client
should go get an auth token based on that header. This just requires making
a GET request against the realm specified, with the get parameters service
and scope set to the values from the header.
curl -v "https://auth.docker.io/token?service=registry.docker.io&scope=repository:coreos:pull"
That results in a token being returned (what the token contains is
documented here https://docs.docker.com/registry/spec/auth/jwt/). There
are 3 sections, separated by a ., and the second one is a base64 encoded
json blob, in which it'll describe what things the token is good for
accessing.
Every token I've gotten has had the access array in that 2nd section
empty, which means it doesn't have permission to access anything, and using
it just results in more 401 Unauthorized responses with identical
www-authenticate headers set.
―
Reply to this email directly or view it on GitHub
https://github.com/appc/docker2aci/issues/46#issuecomment-153851469.

―
Reply to this email directly or view it on GitHub.

Well I now have docker2aci supporting the v2 api, and even better it's able to gracefully drop back to the v1 api if the v2 api isn't supported. Still doesn't support auth though, so after I spend some time making the v2 code less messy I'll take another shot at figuring that out.

nice! Do you want to put up a preliminary PR for v2-sans-auth?

I'm working on adding authentication support for v2 registries (if anybody is doing it right now)

Oh hey, this issue probably should've been closed when https://github.com/appc/docker2aci/pull/99 was merged. I would've expected that PR to support authentication, but I can't remember if I tested it or not.
If you're interested in adding authentication support, please check that it's not already supported, and if it's not then thanks for the help!

from my tests:
auth against private registries with basic autentication isn't supported
auth against Public docker registry with private repository isn't supported
insecure registries wrongly try endpoints w/o disabling tls in the client
layers aren't fixed before download
I'm making a PR to address the points above

opened https://github.com/appc/docker2aci/pull/121 for authentication - I'm about to make other PRs to fix up Registry v2 support

After #99 and #121 this can be closed.


Review break out properties in typings

These properties are not available in the output of ParseToJson
https://github.com/digitaltwinconsortium/DTDLParser/blob/f7d12847e2e2d69c61099423f6978ba8db6aa97b/javascript/generated/DtdlOm.d.ts#L145-L152
Need to figure out how to consume those types in the JS Sample

I can't repro this failure.  I just ran a simple model through ParseToJson() on the latest preview package (1.0.35-preview-gf7d12847e2) and its output included:
{
  . . .
  "dtmi:test:anInterface;1": {
    . . .
    "contents": {
      "expectedDistance": "dtmi:test:aProperty;1",
      "currentDistance": "dtmi:test:aTelemetry;1",
      "setDistance": "dtmi:test:aCommand;1",
      "proximity": "dtmi:test:aRelationship;1"
    },
    "commands": {
      "setDistance": "dtmi:test:aCommand;1"
    },
    "components": {},
    "properties": {
      "expectedDistance": "dtmi:test:aProperty;1"
    },
    "relationships": {
      "proximity": "dtmi:test:aRelationship;1"
    },
    "telemetries": {
      "currentDistance": "dtmi:test:aTelemetry;1"
    },
    . . .
  },
  . . .
}

should the new breakout properties reference the concrete interfaces?
from
export interface InterfaceInfo extends EntityInfo {
  EntityKind: 'Interface';
  contents: { [name: string]: string };
  commands: { [name: string]: string };
  components: { [name: string]: string };
  properties: { [name: string]: string };
  relationships: { [name: string]: string };
  telemetries: { [name: string]: string };
  extends: string[];
  extendedBy: string[];
  schemas: string[];
}

to
export interface InterfaceInfo extends EntityInfo {
  EntityKind: 'Interface';
  contents: { [name: string]: ContentInfo };
  commands: { [name: string]: CommandInfo };
  components: { [name: string]: ComponentInfo };
  properties: { [name: string]: PropertyInfo };
  relationships: { [name: string]: RelationshipInfo };
  telemetries: { [name: string]: TelemetryInfo };
  extends: string[];
  extendedBy: string[];
  schemas: string[];
}

The DtdlOm.d.ts file describes the JSON returned by ParseToJson(), which does not return a hierarchical structure.  The JSON object that is the value of, e.g., "components" maps name strings to DTMI strings, not to ComponentInfo JSON objects.  This is the same for the breakout properties as it is/was for the "contents" property.

got it.
I'm leaving this issue open until the JS sample is updated to reflect those properties (that will require to populate to full objects)


Exceptions: Single type verses rooted heirarchies?

Exceptions can be a funny beast: they can be considered their own entities/types, like in Ada where there's no commonality between Constraint_Error and Assertion_Error other than they're exceptions -- and this makes sense: it's rather senseless to allow exceptions to be treated like a family of types (Class) so that you could simply recast Constraint_Error as Assertion_Error (though similar-in-effect re-raising an exception is not the same thing). Another good point about exceptions not sharing a common ancestor is that you can make it impossible to catch the "root exception". -- On the other hand, am exception-hierarchy does allow handling exceptions by "this [exception-]type and everything derived from it". (IOW it's a design decision with pros and cons on both sides.)
As in Comment/Issue #42 this is another question that should be asked of exceptions about hierarchies, and it can be orthogonal to the answer given there about the object hierarchies. Of course they could be the same and unified, but as exceptions are for exceptional conditions perhaps they should be treated as special cases.

@OneWingedShark I think that we should not care about the type of exception, just like it's done in C++: any object of any type can be thrown. And, since we don't have type introspection, we can only catch "whatever is there". Thus, we will make life easier: no matter what you throw, we can only once. Here is what I think about in more details: http://www.yegor256.com/2015/07/28/checked-vs-unchecked-exceptions.html

@OneWingedShark  If you only use one type of exceptions, the problems that you speak of disappear.
@yegor256 Is there really any catching going on (as in Java try-catch block)? I like the example but so far it's only for exception throwing. I guess catching is then done in a similar way - if object returned isn't of the right type, re-throw it up the call stack?
Anyway, this issue can be closed, right?

@Glusk2 Not really, then you're stuck with what's essentially a "something went wrong"-message.

@OneWingedShark we don't have exceptions in EO

@OneWingedShark we don't have exceptions in EO


Providing resource variables to feed_dict can be confusing

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):Ubuntu 16.04
TensorFlow installed from (source or binary):Binary
TensorFlow version (use command below):1.8
Python version:3.6.2
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:None
GPU model and memory:CPU
Exact command to reproduce:

Describe the problem
According to the documentation, the Tf.contrib.eager has classes that can be used both in Eager and Graph modes. However the results are not consistent when we pass feed_dict to a variable.
Source code / logs
import tensorflow as tf
tfe = tf
x = tfe.Variable(4)
y = x * x
with tf.Session() as sess:
     sess.run(tf.global_variables_initializer())
     print(sess.run(y, feed_dict={x: 15}))  # Prints 225 which is correct

tfe = tf.contrib.eager
x = tfe.Variable(4)
y = x * x

with tf.Session() as sess:
     sess.run(tf.global_variables_initializer())
     print(sess.run(y, feed_dict={x: 15}))  #Prints 16, which is not consistent with 225 above

Hi @ecvgit. I am not too familiar with eager execution; however, I believe you have to enable it on the start of your program. Also, why are you using tf.contrib.eager? All you need to do is enable eager execution with tf.enable_eager_execution() and everything should work spectacularly.
The point of eager execution is to evaluate directly like with normal Python objects, so I also believe you don't need to execute it within a tf.Session(). Hope this helps.

In this case, I am not using eager execution at all. I am using graph execution using the tf.Variable and tfe.Variable. My understanding is that if I use tfe.Variable (instead of tf.Variable), then I should be able to switch out graph and eager modes easily. In order for this work, the results should be consistent between tf.Variable and tfe.Variable. As the above example shows, they are not. If this is expected behavior, it is not clear from the documentation.

Hmm, I'm not sure I understand this. I'll let someone else pick up this Issue. Perhaps the assigned @tatianashp can help you.

@asimshankar Do you have any thoughts?

Nagging Assignee @tatianashp: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tatianashp: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tatianashp: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.


" Could not import the PyAudio C module 'pyaudio._portaudio' " when running .bat file

Not sure what the issue is or what I need to do to fix it.

Hmm this one has me scratching my head. Could I get a couple more details form you?  What version of python are you on, are you on windows 10 or 11?


Save blockers to stage file on --check

Implements #100.
By submitting pull requests to this repo, I agree to the Contributor License Agreement which can be found at: https://github.com/cpanel/elevate/blob/main/docs/cPanel-CLA.pdf

This is an alternative to #103.


[Suggestion] Enable argument description for GMS1 scripts

Hello, thanks for this tool!
I have two suggestions I believe will improve it:

Show argument details besides the argument declaration for GMS1 scripts. Currently they don't show up at all if you choose GMS1. Here's a layout that I believe it would be good:

var _name = argument[0]; //description goes here

Allow the user to define a wrap limit. This would be helpful when writing longer descriptions (both for GMS1.4 and GMS2).

OK, I'll make a note of it. Thanks for the suggestion


Prepare release

:tada: This PR is included in version 0.1.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add the option to set an icon in the accordion heading of each accordion item

Description
The implementation of the accordion component wasn’t on par with the guide, so a new option to add an icon to each accordion item heading has been added. If an iconName input property is set on the lg-accordion-panel-heading component, an icon will be rendered to the left of the screen, and the chevron icon will be moved to the right side of the heading.
I've also slightly adjusted the size of the icon to be on par with the design.
Requirements
Design link: the guide can be used for now as I cannot share the internal design screen here.
Screenshots:

Checklist:

[x] The commit messages follow the convention for this project
[x] I have provided an adequate amount of test coverage
[x] I have added the functionality to the test app
[x] I have provided a story in storybook to document the changes
[x] I have added the documentation
[ ] I have added any new public feature modules to public-api.ts

After some discussions with @alexcanning, we'll stick with what we've got for now.

Revived, it might be revisited in the near future.


Add support for registered constructors

Part of #60
/cc @spahnke
Test is green, making the "registration logic" configurable is still missing

@oliverbock: Will you have time to review this? :)

Fixed the issues

Did you forgot to click "Merge"? :)

Must have. Sorry.  Feel free to remind me sooner.

No worries, we build from a mix of merged branches locally anyway :)


[feat] Add Playground V2 with feature flag and schema updates

Changes

Add feature flag-controlled Playground V2 implementation
Create V2 version of agent list component using Drizzle ORM
Add new graph_url column to agents table
Implement conditional rendering based on playgroundV2Flag
Set up new database queries for agent data retrieval

Why
This change introduces a new version of the Playground while maintaining backwards compatibility. The feature flag approach allows for:

Gradual rollout of new features
A/B testing capabilities
Risk mitigation through controlled deployment
Safe integration of Drizzle ORM

The schema update with graph_url column supports upcoming architecture changes and prepares for future requirements.
Testing

[x] Usable as before, if ‘playground-v2’ is disabled
[x] v2 content is displayed, if ‘playground-v2’ is enabled

Technical Details

Migration file: 0013_nosy_whiplash.sql
Feature flag: playgroundV2Flag
Schema change: Added nullable graph_url column (will be made non-null in future)

Deployment Considerations

Database migration needs to be run before deploying code changes
Feature flag should be off by default for initial deployment
Monitoring should be set up for both V1 and V2 versions

I executed bun drizzle-kit migrate! @toyamarinyon


add Stream::concat

A possible solution to #390. Another name I considered was extend, but maybe that could be confused with some how extending the actual stream.

Given that the container is provided, I would suggest that extend is not the correct fn name.
It seems that this could be better functionality provided as a separate function? Something like:
future::extend(my_buffer, my_stream) -> impl Future<Item = MyBuffer>`

Yeah I'm not totally sure on the naming here, I typically expect "concatenate" to not take a buffer as an argument and maybe even take a separator, but it does neither here! I sorta like the name 'extend' actually as you're extending a provided buffer.
@carllerche I'd prefer a trait method for this as it's a bit more ergonomic to call (one less import), but do you think it fits more with the other free-function combinators that we have?

I generally prefer mirroring std as much as possible. In this case, the goal is to provide an equivalent to the Extend trait for futures. That would mean creating a new trait: FutureExtend or something like that.
I also prefer to not use a few traits (Future, Stream) as essentially a flat namespace for all functions. It hurts discoverability.
I do think that before commiting to an API it would be worth exploring how specialization could potentially handle the case of the Stream of bytes knowing the final lengh.

@carllerche I'm not sure I follow the point about FutureExtend? With this use case at least it seems like there's not much of a use case for appending an element to a collection taking a long time (e.g. needing to itself return a future). I'd imagine that Extend (or some similar trait) ends up being fine in this case.
I agree that a flat namespace isn't great, but we also don't want to leave useful functionality for everyone to pull in an extra crate, so we need to make sure we've at least got the essentials in this crate.

As for the name concat, it came to mind because of my JavaScript background, where Array.concat takes any number of arrays and concatenates them all into a single array: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
I can see stream.extend(vec) making sense, but I can also see someone reading it like stream.extend(other_stream) (if they hadn't checked the docs).
As for the failing tests, I noticed that catch_unwind was failing for me locally on nightly also. I haven't looked to see if this was a bug in nightly, or if futures needs to be updated.

After re-reading, I think that I am (mostly) happy w/ the PR. Maybe, the one thing I would suggest is since this is concat, to not pass in an argument and instead, extend onto the first value returned by the stream.
I believe that the Concat type could, in the future, be specialized to be smart and reserve the amount of space necessary if the stream can provide that info. For example a HTTP body stream impl could specialize the Future::poll implementation and reserve the amount of space specified by content-length.
So, given all that, w/ the change I suggested above, I'm 👍
@alexcrichton Re my comment about Extend, it isn't actually applicable to this specific case because this is a "flat extend" (concat). (I was misunderstanding).
However, to elaborate. Extend takes an Iterator. Given that Stream is the async version of Iterator, FutureExtend would take a stream, and extend self w/ the received values. It needs to be "async" since values are received from the stream "async".

I want to make the changes needed to get this done, but I admit I'm not sure what exactly they are. Sounds like Alex prefers Extend, Carl prefers Concat.
Additionally, there's a suggestion to not provide a target to fill up, but to make use of the first item in the stream. This could allow something neat, like if it is a Stream of Bytes, the Bytes could maybe just expand its length instead of copying the other Bytes. However, providing the target directly allows someone to reserve beforehand the size they expect (which is usually pretty easy to know in something like HTTP, by checking the Content-Length header first).

Oh I don't feel too strongly about Extend, Concat I could live with. @carllerche how do you feel about taking in an argument to do optional reservation if necessary?

If concat uses the first item, reservation could be done w/ chain:
let body = BytesMut::with_capacity(content_length)
   .chain(body_stream)
   .concat();

Reservation could also be done in the future w/ specialization.
Given those two options, I would opt for the more ergonomic API: not taking an argument.

Updated to make use of the first item from the stream, so it looks like let body = stream.concat().

Seems good to me.

👍


WebView2 hides cursor if it stops getting input

This fixed the issue when I changed it in the debugger.
Fixes #6168

/azp run


Could not open connection

Hi, I'm trying to use sapnwrfc with php 7.4.21.
I've used saprfc with php5, and now I've upgrade my php and I want to use sapnwrfc.
I load the library, and in my php_info I can see the library is loaded, version 1.4.0 for SAP NW RFC SDK 7500.0.8
Ok, now I've tried to maka a connection:
`<?php
use SAPNWRFC\Connection as SapConnection;
use SAPNWRFC\Exception as SapException;
/*
use sapnwrfc;
use sapnwrfcConnectionException;
use sapnwrfcCallException;
*/
$config = [
'ashost' => 'local.ip.sap',
'sysnr'  => '00',
'client' => '011',
'user' =>   'user',
'passwd' => 'Password',
];
try{
    $conn = new SapConnection($config);
    $f = $conn->getFunction('ZMMDI_WS_VEDNOR_LIST');
    $result = $f->invoke();
    print_t($result);
}catch(Exception $e){
    echo $e->getMessage(). PHP_EOL;
}

?>`
But I get an exception "Could not open connection".
What am I doing wrong??
Can I test anything?
Thanks!!

Are your connection details correct? Use the trace setting to get an idea what is wrong.

Hi gkralik, thanks for ansred to me..
Yes, the connection details are correct, are the same that I was using before with saprfc library.
How can I use trace??
Now, in my config I added: 'trace'  => SapConnection::TRACE_LEVEL_FULL, but where can I see it?
Thanks

There should be *.trc files in the working directory.

No, nothing.
I'm using Xamp to test it. And the working directory is c:\XAMPP\htdocs\
There I have test.php, is my file, but ho have *.trc.
Nedd activate any more?
Thanks

I don't know about XAMPP.
If you set the trace option, the extension instructs the SAP NW RFC SDK to generate a trace file. Maybe no trace file is generated for some reasons.
Look at the exception's errorInfo property, it might contain additional information.

I get this...
SAPNWRFC\ConnectionException: Could not open connection in C:\xampp\htdocs\test.php:34 Stack trace: #0 C:\xampp\htdocs\test.php(34): SAPNWRFC\Connection->__construct(Array) #1 {main}

Again: ConnectionException should have an errorInfo property.

Hi, I have a *.trc file, are in other directory..
**** Trace file opened at 2021-08-24 12:26:12.781455 UTC+02:00 (Hora estándar romance), Encoding UTF-8
NW RFC Library: SDK variant, Release 750 Patch Level 8, Compiled on Apr 17 2021 03:23:42
CPIC library: 753.2020.03.230 version 3, NI library: 40, Kernel Release: 753 Patch Level 814
Current working directory: C:\xampp, Program: httpd
Hardware: PC with Windows NT 8x AMD64 Level 6 (Mod 58 Step 9), Operating_system: Windows NT 10.0
Hostname: BNAZR1307, IP address: <IP_ADDRESS>, IPv6 address: fe80::4c76:212e:c890:d89a

Passed parameters
ASHOST: <IP_ADDRESS>
CLIENT: 011
PASSWD: (- secret -)
SYSNR: 00
TRACE: 3
USER: DP16BNA
<< Passed parameters

2021-08-24 12:26:12.782607 [16232] >> RfcOpenConnection

RfcOptions
Partner Char Size: 1
Client: 011
User: DP16BNA
Alias:
Passwd: (- secret -)
Language:
SysNr: 00
ASHost: <IP_ADDRESS>
ASService:
GWHost:
GWService:
R3Name:
MSHost:
MSService:
TLS Cryptolib:
TLS Trust All: Off
Codepage: 1100
Trace: 3
LogonCheck: 1
CompressionType: 1
Serialization: 0
Ignore Char Conv Errors: 0
Substitution Char: 35
UseRoundtripOptimization: 0
SO Keepalive: 0
CPIC Keepalive: 0
Delta Manager: 1
<< RfcOptions

2021-08-24 12:26:12.782791 [16232] 	>> RfcOptions::determineType
determined type RFC_CLIENT
2021-08-24 12:26:12.782880 [16232] 	<< RfcOptions::determineType returned 0
2021-08-24 12:26:12.782932 [16232] 	>> RfcConnection::openNew
2021-08-24 12:26:12.783054 [16232] 	>> RfcConnection::connect
2021-08-24 12:26:12.783118 [16232] 	>> CpicConnection::connectAsClient
2021-08-24 12:26:13.061092 [16232] 	<< CpicConnection::connectAsClient returned 0
2021-08-24 12:26:13.061206 [16232] 	>> RfcConnection::setConnOptions
2021-08-24 12:26:13.074933 [16232] 	<< RfcConnection::setConnOptions returned 0
2021-08-24 12:26:13.075031 [16232] 	>> RfcConnection::writeRfcSessionLogon
2021-08-24 12:26:13.075082 [16232] 	<< RfcConnection::writeRfcSessionLogon returned 0

HEXDUMP
2021-08-24 12:26:13.075172 [16232] Sending data for handle<PHONE_NUMBER>568, convID 30620954, codepage 1100
000000 | D9C6C3F0 F0F0F0F0 F0F0F0E3 01010008 |ÙÆÃððððððððã....|
000010 | 03010101 01010000 01010103 00040000 |................|
000020 | 0E0B0103 0106000B 04010003 000A0200 |................|
000030 | 00002301 06011400 03303131 01140111 |..#......011....|
000040 | 00074450 3136424E 41011101 17000D29 |..DP16BNA......)|
000050 | 400A0065 5BAF0F85 6F245A4A 01170115<EMAIL_ADDRESS>000060 | 00000115 05010001 01050100 07000C31 |...............1|
000070 | 302E3135 2E33382E 31303800 07001800 |<IP_ADDRESS>.....|
000080 | 19666538 303A3A34 6337363A 32313265 |.fe80::4c76:212e|
000090 | 3A633839 303A6438 39610018 00110001 |:c890:d89a......|
0000a0 | 45001100 12000337 35330012 00130003 |E......753......|
0000b0 | 37353300 13000800 09424E41 5A523133 |753......BNAZR13|
0000c0 | 30370008 00060009 3C756E6B 6E6F776E |07......<unknown|
0000d0 | 3E000601 30000568 74747064 01300502 |>...0..httpd.0..|
0000e0 | 00000502 000B0003 37353300 0B010200 |........753.....|
0000f0 | 07524643 50494E47 0102FFFF 0000FFFF |.RFCPING..ÿÿ..ÿÿ|
<< HEXDUMP

2021-08-24 12:26:13.075430 [16232] 	>> RfcConnection::readUpTo

HEXDUMP
2021-08-24 12:26:13.155784 [16232] Receiving data for handle<PHONE_NUMBER>568, convID 30620954, codepage unknown
000000 | 01010008 01010101 01010000 01010103 |................|
000010 | 00040000 0E0B0103 0106000B 04010003 |................|
000020 | 00030200 00002301 06001600 04313130 |......#......110|
000030 | 30001600 07000F31 302E3139 362E312E |0......10.196.1.|
000040 | 37302020 20200007 0018000B 31302E31 |70    ......10.1|
000050 | 39362E31 2E373000 18000800 126C6362 |96.1.70......lcb|
000060 | 69706563 63646231 5F503530 5F303000 |ipeccdb1_P50_00.|
000070 | 08001100 01330011 00130004 37323220 |.....3......722 |
000080 | 00130012 00043730 30200012 00060009 |......700 ......|
000090 | 3C756E6B 6E6F776E 3E000601 30000853 |...0..S|
0000a0 | 41504D53 53593101 30050000 00050004 |APMSSY1.0.......|
0000b0 | 02004043 6F6E6E65 78696F6E 20706172 |..@Connexion par|
0000c0 | 206D6F74 20646520 70617373 65206E27 | mot de passe n'|
0000d0 | 65737420 706C7573 20706F73 7369626C |est plus possibl|
0000e0 | 65203A20 74726F70 206427E9 63686563 |e : trop d'échec|
0000f0 | 73202104 02FFFF00 00FFFF00 00000000 |s !..ÿÿ..ÿÿ.....|
<< HEXDUMP

2021-08-24 12:26:13.156640 [16232] 	>> RfcConnection::readUpTo
Received RFCID 0x0101 (257), 8 bytes
Received RFCID 0x0103 (259), 4 bytes
Received RFCID 0x0106 (262), 11 bytes
Received RFCID 0x0016 (22), 4 bytes
Skipping RFCID 0x0016 (22), 4 bytes
Received RFCID 0x0007 (7), 15 bytes
Received RFCID 0x0018 (24), 11 bytes
Received RFCID 0x0008 (8), 18 bytes
Received RFCID 0x0011 (17), 1 byte
Received RFCID 0x0013 (19), 4 bytes
Received RFCID 0x0012 (18), 4 bytes
Received RFCID 0x0006 (6), 9 bytes
Received RFCID 0x0130 (304), 8 bytes
Received RFCID 0x0500 (1280), 0 bytes
Skipping RFCID 0x0500 (1280), 0 bytes
Received RFCID 0x0402 (1026), 64 bytes
Received RFCID 0xFFFF (65535), 0 bytes
Skipping RFCID 0xFFFF (65535), 0 bytes
2021-08-24 12:26:13.158643 [16232] 	<< RfcConnection::readUpTo returned 0
2021-08-24 12:26:13.158928 [16232] 	<< RfcConnection::readUpTo returned 4
2021-08-24 12:26:13.159160 [16232] 	<< RfcConnection::connect returned 4
2021-08-24 12:26:13.162565 [16232] >> Exception occurred
[Handle:<PHONE_NUMBER>568	ConvID: 30620954	Target: lcbipeccdb1	SysID: P50	SysNr: 00	User: DP16BNA	Mandant: 011	Language: 	Codepage: 4103]
RfcABAPMessageException: Key: , Code: RFC_ABAP_MESSAGE, Message: Connexion par mot de passe n'est plus possible : trop d'échecs !
2021-08-24 12:26:13.162754 [16232] 	<< RfcConnection::openNew returned 2
2021-08-24 12:26:13.162894 [16232] 	>> RfcConnection::disconnect
2021-08-24 12:26:13.163012 [16232] 	>> CpicConnection::close
2021-08-24 12:26:13.163128 [16232] 	<< CpicConnection::close returned 0
2021-08-24 12:26:13.163247 [16232] 	<< RfcConnection::disconnect returned 0
2021-08-24 12:26:13.163437 [16232] << RfcOpenConnection returned RFC_LOGON_FAILURE
RFC_ERROR_INFO.key: RFC_LOGON_FAILURE
RFC_ERROR_INFO.message: Connexion par mot de passe n'est plus possible : trop d'échecs !

too many failures! I'm goping to unlock the user and test again..


Bugfixes and efficiency improvements for basis conversion, inner products, and computing Frobenius distance

Changes:

Remove frobeniusnorm and frobeniusnorm_squared functions (which were only correct for real inputs). Inline equivalent numpy functions in the few places they were used.
Replace the np.trace(np.dot(...)) pattern for computing the trace inner product with np.vdot(...). This resolves #430.
Note that use of np.vdot has a secondary affect of conjugating the first argument when dealing with complex inputs. This resolves a limitation of basis conversion discussed in an email thread titled Re: Possible pyGSTi bugs w/rt converting between matrix bases? that Robin started on Feb 23 of this year.

Some tests are failing. I'm not sure why. Maybe they're related to the conjugation that's applied when using vdot in the basis conversion? If so, I would guess that the failing tests are comparing to a nominal value which actually was not correct to begin with. Thoughts, @coreyostrove, @sserita, @enielse?

FAILED test_packages/extras/test_interpygate.py::InterpygateTestCase::test_timedep_factory - AssertionError: 0.005780277171757022 != 0 within 7 places (0.005780277171757022 difference)
FAILED test_packages/extras/test_interpygate.py::InterpygateTestCase::test_timedep_op - AssertionError: 0.00048145808272016756 != 0 within 7 places (0.00048145808272016756 difference)
FAILED test_packages/extras/test_interpygate.py::InterpygateTestCase::test_timeindep_factory - AssertionError: 0.005780277171757022 != 0 within 7 places (0.005780277171757022 difference)
FAILED test_packages/extras/test_interpygate.py::InterpygateTestCase::test_timeindep_op - AssertionError: 0.00048145808272016756 != 0 within 7 places (0.00048145808272016756 difference)

Haven't done a full review yet, but I think I have the most familiarity with the interpygate code so I will put that on my todo list. The interpygate tests are much closer to integration tests than true unit tests, so it is possible the nominal value was wrong, but needs more investigation.

As for the failing unit tests you've encountered, I pulled the latest version of this branch and tested this locally on my machine and was unable to reproduce this behavior. That would likely point to this either being a non-deterministic error, or else something configuration dependent in which case we'd need to track this down a bit more. One bit of low-hanging fruit we can try to eliminate is whether this is somehow macOS specific, so I'll manually launch the mac runners on github to see if we can identify anything there.

Update: I ran the unit tests in question on the runners, and with the exception of the MacOS runner for python 3.8 (which failed because of perennial problems with compiling CVXOPT that typically fix themselves after a while) these all passed. So whatever is going on it seems to be localized to the particular combination of packages/configuration on your machine, @rileyjmurray.
Concerns about potential testing issues was the main reason why I didn't mark this as approved when doing my review, so I'm going to switch that designation now that I'm seeing these passing. The other question I had I am still interested in, but these aren't blocking concerns/questions in any way.

@sserita, I've gotten Corey's sign-off. Can you approve and merge?


Show Git Branch with Remote Tools

For local folders, the extension works fine as expected. However, for remote folders (via Remote-SSH in my case), it doesn't show the branch information. I guess this needs to be handled explicitly. Would it be possible to extend the extension to support that as well?

Same here

When a project is opened from Remote-SSH, no workspace information available through vscode api.
  console.log("remoteName: " + JSON.stringify(vscode.env.remoteName));
  console.log("workspaceFolders: " + JSON.stringify(vscode.workspace.workspaceFolders));

It prints this output:
remoteName: "ssh-remote"
workspaceFolders: undefined

I went through the vscode api, but didn’t find anything related to the Remote workspaces.
Then, I thought to check the source code of the Remote-SSH extension, so we should be able to know how it works. But the Remote-SSH extension is closed source.
Will need to think and investigate more about a possible way to obtain the remote workspace info.
References:

https://code.visualstudio.com/docs/remote/faq#_why-arent-the-remote-development-extensions-or-their-components-open-source
Where's the actual Remote-SSH source code repo on github?
Source repo?CLOSED

Hmm, did you try asking here? If it is not possible, then there should be a feature request at least.

No I haven't asked there yet. Given the closed source nature, I doubt if there will be a quick resolution in the near future.
However, it still seems a good idea to try asking in their issue list.

Can you try a local build of #23 to see if it is resolved there as well?

We have just released v0.2.0. Can you please check if the issue is resolved?

It mostly works, but I ran into a bug. I was trying out the settings a bit ("Branch Template" and "Branch Name is Prefix") and noticed that after I changed the setting, it would sometimes start repeating injected the prefix.
I tried 3 different settings and used Developer: Reload Window to apply, and now I have:
[develop] - [develop foo] myfile.txt - my_workspace_name (Workspace) [SSH: my_hostname] - [develop]
This bug only seems to have when changing a setting and then reloading the window. If I reload again, it doesn't get better or worse. So I guess just closing VS Code and restarting it should fix it as long as I don't touch those extension settings anymore.

Restarting VS Code doesn't fix it. I still have my branch name tripled in my title.

Please edit your workspace title and remove any references to the branch name, then reload window.
Since VS Code does not offer an API to manipulate window title in a fool-proof way, the extension relies on a hack to make it work.

Seems like that works. Thanks!


Upgrade to react-scripts 5.0.0

https://github.com/facebook/create-react-app/releases
This fixes a lot of vulnerabilities - is there any reason why we shouldn't?

thread for discussion: https://discord.com/channels/838651642190495804/969326264907333653/969326267247767612


bench-api: Always get a Config from CLI flags

This commit fixes an issue that I ran into just now where benchmarking one *.so with --engine-flags was giving wildly unexpected results comparing to something without --engine-flags. The root cause here appears to that when specifying --engine-flags the CLI parsing code is used to create a Config and when omitted a Config::new instance is created. The main difference between these is that for the CLI caching is enabled by default and for Config::new it is not. Coupled with the fact that caching doesn't really work for the main branch this ended up giving wild results.
The fix here is to first always use the CLI parsing code to create a Config to ensure that a config is consistently created. Next the --disable-cache flag is unconditionally passed to the CLI parsing to ensure that compilation actually happens.
Once applied this enables comparing an engine without flags and an engine with flags which provides consistent results.

Merging this into https://github.com/bytecodealliance/wasmtime/pull/5542


add required-projects to functests to use latest mods

@Polina-Gubina you are too fast. I do not think it works yet


2-way audio with Dahua CGI HTTP interface

Hello,
I have a Dahua VTO2202F-P-S2 which unfortunately doesn't support the ONVIF Profile T (at least it didn't work in my tests).
I wonder if it's reasonable to suggest supporting additional methods for playing the audio in the camera/doorbell. For example, this doorbell exposes a small API which allows me to play audio on it:
https://s3.amazonaws.com/amcrest-files/AMCREST_CGI_SDK_API.pdf
(search for Post Audio)
I can reproduce it with something like:
curl --digest -verbose --request POST --url 'http://admin:pass@<IP_ADDRESS>/cgi-bin/audio.cgi?action=postAudio&httptype=singlepart&channel=1' --header 'Content-Type: Audio/G.711A' --data-binary<EMAIL_ADDRESS>
So I wonder if it should be possible to pipe the audio from browser to this API in order to achieve 2-way audio.

Refs https://github.com/AlexxIT/go2rtc/issues/49#issuecomment-1252946386

/cc @luzik

Yeah, latency i low and we are ready to build video doorbell intercom. Switching audio codec is required. Please refer
https://github.com/blakeblackshear/frigate/discussions/2572

This is what I have:
streams:
  "vto":
    - rtsp://admin:pass@<IP_ADDRESS>/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
    - ffmpeg:rtsp://admin:pass@<IP_ADDRESS>/cam/realmonitor?channel=1&subtype=0#audio=opus

[
  {
    "media:0": "video, sendonly, 96 H264/90000",
    "media:1": "audio, sendonly, 97 L16/16000",
    "media:2": "application, sendonly, 107 VND.ONVIF.METADATA/90000",
    "media:3": "audio, recvonly, 97 L16/16000",
    "receive": 213012,
    "remote_addr": "<IP_ADDRESS>:554",
    "send": 0,
    "track:0": "96 H264/90000, sinks=1",
    "type": "RTSP client producer",
    "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026unicast=true\u0026proto=Onvif/"
  },
  {
    "media:0": "audio, sendonly, 96 OPUS/48000/2",
    "receive": 16808,
    "remote_addr": "[::1]:43964",
    "send": 0,
    "track:0": "96 OPUS/48000/2, sinks=1",
    "type": "RTSP server producer",
    "url": "rtsp://localhost:8554/c17fa603dd6051c1a9da4cc4981af203",
    "user_agent": "Lavf59.16.100"
  },
  {
    "remote_addr": "udp4 host <IP_ADDRESS>:56431",
    "send": 230073,
    "type": "WebRTC server consumer",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"
  }
]

But no audio is played back in the doorbell.

Switching audio codec is required. Please refer
https://github.com/blakeblackshear/frigate/discussions/2572

@luzik Right, I know it (since it was I that wrote it). But on my tests, it makes no difference. It does not matter which codec I select. Can you please elaborate it a little? My firmware seems to be very similar to yours.

So you just need to change codecs. Like @luzik did.

Wow, it actually works! I just needed to select G.711 8000 instead of 16000:

Thanks a lot guys!

For completeness this is my final go2rtc configuration:
streams:
  vto:
    - rtsp://admin:pass@<IP_ADDRESS>/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif

@felipecrs I am using the Amcrest AD410, my audio options are:

So far I have tried AAC and G.711A without success, but I have suspicion that my reverse proxy may not be working fully since the webrtc stream itself is also not showing

It should be G.711A with Sampling Frequency of 8000. Do you have the option of setting the sampling frequency?
I was previously trying with 16000 too, but it only works with 8000.

In the go2rtc WebUI, when you click in Info for your camera stream, it should show what's the current sampling frequency there. Feel free to share the info here.

As far as I can tell there is no option in Amcrest Surveillance Pro to adjust the sampling rate, this is my debug info:
[
  {
    "media:0": "video, sendonly, 96 H264/90000",
    "media:1": "audio, sendonly, 8 PCMA/8000",
    "media:2": "application, sendonly, 107 VND.ONVIF.METADATA/90000",
    "media:3": "audio, recvonly, 104 MPEG4-GENERIC/16000, 103 MPEG4-GENERIC/8000, 102 PCMU/16000, 0 PCMU/8000, 101 L16/16000, 97 L16/8000, 100 PCMA/16000, 8 PCMA/8000",
    "receive": 177552130,
    "remote_addr": "<IP_ADDRESS>:554",
    "send": 0,
    "track:0": "8 PCMA/8000, sinks=1",
    "type": "RTSP client producer",
    "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026proto=Onvif/"
  },
  {
    "media:0": "video, recvonly, 96 H264/90000",
    "media:1": "audio, recvonly, 97 PCMA/8000",
    "receive": 0,
    "remote_addr": "<IP_ADDRESS>:44376",
    "send": 177544162,
    "track:0": "97 PCMA/8000, sinks=1",
    "type": "RTSP server consumer",
    "url": "rtsp://<IP_ADDRESS>:8554/front_doorbell_cam",
    "user_agent": "Lavf59.27.100"
  }
]

Interesting, your "media:3" contains lots of codecs, including the desired one (PCMU/8000). I don't know how to interpret this, maybe @AlexxIT knows.

BTW I noticed you are missing unicast=true in your RTSP URL.

Here is what it looks like when I set the encoding to AAC:
[
  {
    "media:0": "video, sendonly, 96 H264/90000",
    "media:1": "audio, sendonly, 97 MPEG4-GENERIC/8000",
    "media:2": "application, sendonly, 107 VND.ONVIF.METADATA/90000",
    "media:3": "audio, recvonly, 104 PCMU/16000, 0 PCMU/8000, 103 PCMA/16000, 8 PCMA/8000, 102 L16/16000, 101 L16/8000, 100 MPEG4-GENERIC/16000, 97 MPEG4-GENERIC/8000",
    "receive": 54114512,
    "remote_addr": "<IP_ADDRESS>:554",
    "send": 0,
    "track:0": "97 MPEG4-GENERIC/8000, sinks=1",
    "type": "RTSP client producer",
    "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026proto=Onvif/"
  },
  {
    "media:0": "video, recvonly, 96 H264/90000",
    "media:1": "audio, recvonly, 97 MPEG4-GENERIC/8000",
    "receive": 0,
    "remote_addr": "<IP_ADDRESS>:38860",
    "send": 54112016,
    "track:0": "97 MPEG4-GENERIC/8000, sinks=1",
    "type": "RTSP server consumer",
    "url": "rtsp://<IP_ADDRESS>:8554/front_doorbell_cam",
    "user_agent": "Lavf59.27.100"
  }
]

I am using the Amcrest AD410

My AD410 works fine with the default G.711A.  No need to mess with the frequency.

@NickM-27 I'm using an Amcrest AD410 with this, I've got my audio encode set to G.711A via the Amcrest Surveillance Pro app.
This is the info output for my setup with the 2-way audio:
[
  {
    "media:0": "video, sendonly, 96 H264/90000",
    "media:1": "audio, sendonly, 8 PCMA/8000",
    "media:2": "audio, recvonly, 8 PCMA/8000",
    "receive": 650155,
    "remote_addr": "<IP_ADDRESS>:554",
    "send": 18232,
    "track:0": "8 PCMA/8000, sinks=1",
    "track:1": "8 PCMA/8000, sinks=1",
    "type": "RTSP client producer",
    "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026/"
  },
  {
    "receive": 16960,
    "remote_addr": "udp4 host <IP_ADDRESS>:64688",
    "send": 651354,
    "type": "WebRTC server consumer",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.0"
  }
]

That's really weird then, wonder why mine is different.
What URL are y'all using and what does the full encode look like? This is my current settings

This is the encode screen for the AD410 that works for me.

So the other thing is I had an unrelated issue with my AD410 that required amcrest support to send me newer firmware. I wonder if that explains the differences here.

Mine is till 2021-02-20

My settings, and my Firmware is 1.000.0000000.7.R.210220

Mine is till 2021-02-20

Okay cool, that's what mine looks like so it probably isn't that then. Given that it is not working, seems it is my reverse proxy using cloudflare tunnel (which also doesn't show a webRTC feed, but does show the recording light on the browser tab).

I use cloudflare as well.  I don't use the cloudflared addon. I have it setup myself.

Were you playing around with sending audio snips to the bell?  I've had that hang the port before if timeouts weren't set properly.  Maybe just try rebooting the bell...

I have everything running in native docker. I have a cloudflare tunnel which points to nginx proxy manager which points to the docker container port 1984

2-way audio works just fine for me. :)

Does the camera stream work for you? Either way that is good to know.

Were you playing around with sending audio snips to the bell? I've had that hang the port before if timeouts weren't set properly. Maybe just try rebooting the bell...

I have before but not recently, restarted anyway and will give it another go.

That really isn't meaningful though. That will turn on by accessing any stream in go2rtc right now.

You might be referring to something different. The light on macOS showing that the mic is being used doesn't turn on when viewing via local, or any other stream type with remote besides webRTC.

You might be referring to something different. The light on macOS showing that the mic is being used doesn't turn on when viewing via local, or any other stream type with remote besides webRTC.

When using go2rtc, it will always request your microphone even if not using. Don't trust it.

You might be referring to something different. The light on macOS showing that the mic is being used doesn't turn on when viewing via local, or any other stream type with remote besides webRTC.

I was just saying that viewing any stream (2 way audio or not) the permission request will happen which means the light will turn on.
@felipecrs <- what he said

@AlexxIT, my friend, @felpsnew, has a Intelbras Mibo camera.
Historically, Intelbras cameras are just rebranded Dahuas.
His camera supports two-way audio, but unfortunately not through ONVIF Profile T.
When he configures the go2rtc with an URL like:
rtsp://admin:pass@<IP_ADDRESS>/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif

The output is:
{
  "producers": [
    {
      "type": "RTSP active producer",
      "url": "rtsp://<IP_ADDRESS>/cam/realmonitor?channel=1\u0026subtype=0\u0026unicast=true\u0026proto=Onvif/",
      "remote_addr": "<IP_ADDRESS>:554",
      "user_agent": "go2rtc/1.8.1",
      "sdp": "v=0\r\no=-<PHONE_NUMBER><PHONE_NUMBER> IN IP4 <IP_ADDRESS>\r\ns=Media Server\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\na=control:*\r\na=packetization-supported:DH\r\na=rtppayload-supported:DH\r\na=range:npt=now-\r\nm=video 0 RTP/AVP 96\r\na=control:trackID=0\r\na=framerate:20.000000\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0029;sprop-parameter-sets=Z00AKY2NQDwBE/LNwEBAUAAAjKAAFfkAQAA=,aO44gAA=\r\na=recvonly\r\nm=audio 0 RTP/AVP 97\r\na=control:trackID=1\r\na=rtpmap:97 MPEG4-GENERIC/16000\r\na=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408\r\na=recvonly\r\nm=application 0 RTP/AVP 107\r\na=control:trackID=4\r\na=rtpmap:107 vnd.onvif.metadata/90000\r\na=recvonly\r\n",
      "medias": [
        "video, recvonly, H.264 Main 4.1",
        "audio, recvonly, MPEG4-GENERIC/16000",
        "application, recvonly, VND.ONVIF.METADATA"
      ],
      "receivers": [
        "96 H264, bytes=772597, senders=1",
        "97 MPEG4-GENERIC/16000, bytes=24050, senders=0"
      ],
      "recv": 805239
    }
  ],
  "consumers": [
    {
      "type": "WebRTC/WebSocket async passive consumer",
      "remote_addr": "tcp4 prflx <IP_ADDRESS>:51831 related :0",
      "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
      "medias": [
        "video, sendonly, VP8, RTX, VP9, H264, AV1, RED, ULPFEC, FLEXFEC-03",
        "audio, sendonly, OPUS/48000/2, RED/48000/2, G722/8000, PCMU/8000, PCMA/8000, CN/8000, TELEPHONE-EVENT/48000, TELEPHONE-EVENT/8000, L16, PCML"
      ],
      "senders": [
        "102 H264, bytes=772597, receivers=1"
      ],
      "send": 781267
    }
  ]
}

I.e. no backchannel. Maybe his camera is based on an old Dahua firmware, but there is no updates available.
I suspect this would also be the case for some Dahua old models too.
For this reason, I am reopening this issue if you don't mind.
I think a cgi source for two-way audio like isapi  would be great, and maybe it would be a little smoother even for newer Dahua cameras as compared to RTSP.
Here is the CGI HTTP API documentation:
https://s3.amazonaws.com/amcrest-files/AMCREST_CGI_SDK_API.pdf
And I was able to play some audio through it with:
curl --digest -verbose --request POST --url 'http://admin:pass@<IP_ADDRESS>/cgi-bin/audio.cgi?action=postAudio&httptype=singlepart&channel=1' --header 'Content-Type: Audio/G.711A' --data-binary<EMAIL_ADDRESS>

This can't be used as live audio because it's static audio file

Right, there is another API for multipart audio files... I am not sure if that one can be used instead.

11.2.2 Example for multipart
The RUL of transmit a multipart、channel 1 audio stream(encoded with G.711 A-law) is:
http: //<ip>/cgi-bin/audio.cgi?action=postAudio&httptype= multipart &channel=1

example:
POST /cgi-bin/audio.cgi?action=postAudio&httptype= multipart &channel=1 HTTP/1.1
Content-Type: multipart/x-mixed-replace; boundary=<boundary>
--<boundary>
Content-Type: Audio/G.711A
94
Content-Length: 800
<Audio data>
--<boundary>

Hm. Multipart can be used for live backchannel

@AlexxIT in case you want to try this again, I can give you direct access to two of my cameras. The Dahua VTO, and another camera which is close so that you can hear your own audio from it.

Another thing, in case you really have no interest of implementing this yourself, I remember you said once you tried to make this work but it didn't work.
If you have the draft code still, and you can push it to some branch, I can try to work on top of it. Otherwise I'd even not know how to start.

I'm happy to announce that I was able to buy two different models of doorbells at a very good price.
Hopefully soon I'll have time to do some experiments with them.

That's amazing! Congratulations on your new acquisitions!

I'm happy to announce that I was able to buy two different models of doorbells at a very good price. Hopefully soon I'll have time to do some experiments with them.

It's intresting what doorbells you have?

That's really weird then, wonder why mine is different.
What URL are y'all using and what does the full encode look like? This is my current settings

Sorry for "grave digging this post, but what software is that?
I've got already an AD410 and I am waiting for the video doorbell of Dahua posted in the OP.


User unable to purchase sats from Wyre

He says his app is up-to-date.
"This occurs after I use wyre paying with Apple pay" he says.
(Username: Rick -TG)

Here app deeplinks with https://hexawallet.io/dev/wyre/failed/1641456422454, which is not processed yet

Handle the issue in the app

Closing this issue as discussed with dev


[BUG] Settings not saved

Describe the bug
When reloading or re-opening Obsidian after set a hidden file/folder, the folder reappear in the explorer.
data.json of the folder doesn't exist either, meaning that settings are not saved.
To Reproduce
<!-- Steps to reproduce the behavior:
1. Go to hide folder/files
2. Reload obsidian

If you could provide some extra info that would be great:

Operating System and Version:
Obsidian Version:

This will help to ensure that it isn't a platform-dependant bug

It was on windows 11 !
I also try on IOS, and same things : no settings and folder saved, no data.json.

Thanks for the information!
I'll work on a fix to get it working properly tonight, since saving the settings is a pretty important part of it. lol

@Mara-Li This has been fixed, it will be coming in the 1.0.1 update (there's another bug that I found which I want to fix before releasing it)

Hi - I am still having the same problem i.e. reloading the Obsidian program unhides the previously hidden folder. I am using it on Linux Mint. I can see the data.json file with the correct data setting but for some reason reloading the Obsidian does not keep the folder hidden. Could you please help? Thank you!


Lazy thoughts

Currently, the matching operates on in-memory data structures like lists and dicts. It also parses them at once, returning a full set of bindings after completely walking the complete structure. Finally, templates evaluate the bindings eagerly too.

accept iterators instead of matching lists only
build bindings lazily
produce iterators from templates

I think 1 and 3 could be implemented rather easily and independently, but they will only provide value with 2 in place.
A couple of issues arise:

How can the matcher differentiate between sequences and literal sequences? (does it need to?)
It will probably take a special construct for specifying iterator templates
I see lazy bindings as the biggest challenge... but maybe it's possible to just replace lists with iterators?

After some considerations, making the matching and template engines lazy would be too much an effort:

the matcher would need elaborate caching. For example in the pattern [[bind("x"), bind("y")], ...] when reading the next x, we would need to put the next y somewhere for potential later consumption.
it's not obvious which bindings are read only once and can be discarded, and which bindings need to be buffered for reuse.

Laziness is likely to increase the implementation complexity considerably and would make the pattern/template languages more complicated.
Furthermore, eager matching/templating can be used in a streaming context by viewing the combination of match+template as a mapping step in an iterator pipeline. For example, one could iterate over data packets, apply a matcher on each packet, and yield a template instantiation.


2 values sent at same time

Following the system wide outage today, upon coming online, device sent 2 pings at exact same time - aka the router had them in a queue then sent them at the same time. This means 2 values sent to our platform at the same time. The timestamps therefore are not true. Timestamps must remain true for Helium to be trusted with data.

Router does not queue uplinks, the hotspots do (when it cannot reach Router). For trust reasons, we cannot mark the timestamp on the hotspot so the timestamp is marked upon reception in Router. This is why, you see this behavior of 2 packets coming one after the other with very close timestamps.
To avoid this potential issue we added the field hold_time see here. This field will tell you how long the hotspot was holding the uplink so that users can make a decision on whether to keep the data that could still be valuable or discard it.

Here's more information about hold_time here. Also, the way to ensure you're getting the most accurate sensor timestamps is to have the sensors themselves send timestamp information.


feat(core): package direction (#243)

close https://github.com/oku-ui/primitives/issues/243

After checking this, let's ask to write a test if everything is correct @dammy001

@ramzzo can you add a few tests for this?

@ramzzo can you add a few tests for this?

I have not written a test before, but I would like to try it.

:heart:


Progressive Web App; New approach for future dolphin

A Progressive Web App uses modern web capabilities to deliver an app-like user experience. They evolve from pages in browser tabs to immersive, top-level apps, maintaining the web's low friction at every moment.

I like to see dolphin restructured and redesigned to this new technology.
benefits:

Responsive: to fit any form factor

Connectivity independent: Progressively-enhanced with Service Workers to let them work offline

App-like-interactions: Adopt a Shell + Content application model to create appy navigations & interactions

Fresh: Transparently always up-to-date thanks to the Service Worker update process

Safe: Served via TLS (a Service Worker requirement) to prevent snooping

Discoverable: Are identifiable as “applications” thanks to W3C Manifests and Service Worker registration scope allowing search engines to find them

Re-engageable: Can access the re-engagement UIs of the OS; e.g. Push Notifications

Installable: to the home screen through browser-provided prompts, allowing users to “keep” apps they find most useful without the hassle of an app store

Linkable: meaning they’re zero-friction, zero-install, and easy to share. The social power of URLs matters.

for more info:
https://addyosmani.com/blog/getting-started-with-progressive-web-apps/
https://developers.google.com/web/fundamentals/getting-started/?hl=en

https://pwa.rocks/


MAINT: Tighly scope local variables and remove useless ones

Codecov Report

Merging #45 (0c99320) into main (5abb007) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #45   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines           86        86
=========================================
  Hits            86        86

Continue to review full report at Codecov.

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


Bootstrap 4.1.2 release date?

Do we know when Bootstrap 4.1.2 will ship? There's some big caching problems on the current 4.1.1 docs at the moment that others are experiencing too, see => https://github.com/twbs/bootstrap/issues/26441

Indeed no date, so closing out.


Datagrid Enhancement: Freeze/Pin First Column

Description
The most common use case is for freezing/pinning the first column in the datagrid. The first column is usually the primary identifier. With that frozen/pinned, you can horizontally scroll the datagrid without losing context.
Documentation
You can freeze/pin the first column by clicking on the freeze/pin icon in the column header. Click again to toggle back to the initial unfrozen/unpinned state.
In the example below, the filter icon is shown on all columns, which might not always be the case. In the absence of the filter icon for a column, the icon for freeze/pin column will move to the right and take the position currently occupied by the filter icon.

Original request - #619

Any idea as to when this might be added. It would be great to be able to pin the first column when using a grid on mobile (https://www.nngroup.com/articles/mobile-tables/).

The initial DOM structure was put in place during a large refactored last year. I’m working on smart popovers now so that popovers can avoid the clipping issues that stem from the current popover implementation. Once I have the SmartPopover utility in place I think the current plan is for me to switch back to pinned columns.
There is no way I can give an exact date or a version. That said I would like to get it into v2 (assuming it isn’t a breaking change) or v3. Following the smart popovers and this issue for updates and progress is your best bet.
Fwiw (my .02¢) - Clarity does not recommend use of datagrid on a small screen. It’s really difficult to create a good user experience (I’m thinking about every excruciatingly painful time I tried to use google spreadsheets on my phone).

Thanks for the quick reply. I agree about not using datagrid on mobile, in general we try to avoid this but for some use cases we have found no alternatives and having the ability to pin the first column would alleviate this. Thanks again.

Is pinning rows, or at least having the facility in the API to correctly support placing rows under the main body of grid rows planned to be designed? The use case for showing one line summaries is needed in some financial views.
Attaching a demo link here to help visualize how that would work with a Clarity grid. Of course there are likely other edge cases and usability concerns, but the main motivation was to have a partitioned row somewhere in the footer region.
Find the datagrid card here and try resizing, scrolling, paginating for example.
http://mattmutt.github.io/ngx-card-deck-seed/#/dashboard/dashboard-page/com_company_sample2/deck1

@mattmutt This seems to be outside of scope for this particular request, and would be best to setup a new ticket for it. At first glance, I don't see how this is pinning a row as it is just adding more content into the footer, could that help?

Developers should not be exposed to the complexities of the grid layout when trying to place data that aligns to the columns. I'm demonstrating a viable pattern for others who desire such a use case - a special row with aligned data inside the footer. Where does Clarity showcase this example?

@mattmutt We do not have an example or support for this, but it is still a separate request and do you mind making a different feature request with use cases?

The feature request here has been captured into our list and we’re going to take it into consideration as we develop Clarity Core capabilities. In an effort to clean up our backlog and focus our attention, I’m going to close this as captured in our feature requests. Please follow our development and releases to see when we release relevant components to make this possible. Future feature requests can be made in our GitHub Discussions.


Licensing is murky

If this is "literally copied from the React 0.14 codebase" then it's also subject to the patent grant included with that release of React.
It would be good to clarify this.

Indeed, that's a very good point.  I generally compile PropTypes out, so I might have missed something important for those who don't do the same.  It's possible that PropTypes might be worth a cleanroom implementation of some kind, or perhaps a dummy implementation that simply satisfies the required interface but has no actual functionality would suffice and resolve any license issue.

Yeah, a cleanroom re-implementation would be ideal, but obviously a lot of work.
I think the easiest thing to do would be to add the PATENTS file from the React release this code is from to the repo and add a note to the readme.
The other concern I have is that this as a dependency of preact-compat could cause issues for those using Preact to avoid the patents issue, so it might be worth mentioning that there as well, and the solution of compiling it out.

That's actually the sole reason PropTypes is kept out of the preact-compat bundle - licensing. It's just referenced as an external dependency.  It's just exported as a proxy object, but you can alias the import to an empty file/object and entirely disable PropTypes while still using preact-compat.
I'm alright slating a clean implementation here, it's just a bit of a pain point for me since I am not familiar with the API and all the use-cases having avoided it almost entirely myself.  It's the best option though.  I am not even sure we're allowed to copy the PATENTS file - it might constitute asserting ownership, whereas this repo currently is just a mirror.
Another option might be to find a way to replace this "extracted" code with a build job that does the extraction from React's source.  I'm not sure what the effect would be on licensing, but it'd be a build tool as opposed to a copy of the original code.

In any case the PATENTS file is mentioned in the source but not present which feels bad. I also think you can’t just publish this module under the BSD license because you’re using the code which is licensed by a license that requires a patent grant.
Do we still need this package at all? Since Facebook released their own prop-types package and since this one doesn’t really solve licensing issue, I don’t see any benefits of this package anymore.

I think the right way to solve this is to relicense prop-types without the PATENTS file and deprecate this package. This would allow any Preact-like library to use the same package and would solve all licensing issues of this package.
See https://github.com/facebook/react/issues/10191 as well.


mtree_verify should also accept err

The mtree_verify instruction, like the assert instructions, will fail the execution if its criteria fails. This should also support an error code.

I'm not sure I understand the purpose of adding an error codes to the mtree_verify.
We decided to add error codes to the assert instructions because they were returning just a FailedAssertion error and a cycle number without additional data, so it was difficult to find out what exactly caused an error.
But in case of mtree_verify we have a specific error which contains necessary data about Merkle Tree and a value being checked.
I think I just missing something, @hackaugusto can you describe in more detail why this is necessary?

I think the main rationale is that mtree_verify acts kind of like an assert instruction. That is, if a Merkle path cannot be verified, the execution fails. These failures can happen in different contexts (e.g., asset is not present in account vault) and it would be helpful to let users specify their own error codes.

The motivation for the issue was the usage of mtree_verify in miden-base. There are two uses and having an error will make it clearer which one caused an issue (also for other errors)

authenticate a note
check an account procedures

In general, I think every instruction that can fail should have an error to make debugging easier. My ideal situation would be to have error code to every instruction that can fail. So that when I get a failure in a test, I can just search for the error code and find exactly the instruction that failed.

Closed by #1328.


[BUG] Attempting to open Rancher GUI crashes server.

Description:

Attempting to open Rancher GUI crashes server.

Steps to Reproduce:

Attempt to open Rancher GUI. Tested with Rancher MK1 and MK2 after freshly placing them in the world. Assuming it happens with MK3 and MK4. Other Indrev machines I'm using in my world don't have this issue.

Technical Information:

Minecraft: 1.20.1
Fabric API: 0.15.7
Industrial Revolution: 1.16.5-BETA-Hotfix
Modpack: All of Fabric 7 2.0.0

Logs:
https://pastebin.com/g3uGCddJ
Details:

Can reproduce


Upgrade to VS 2017

Vs2017 has released RC4 release Announcing .NET Core Tools Updates in VS 2017 RC ，NET core tooling also RC, we upgrade to the VS2017 project to develop it?

I expect this will require changes to the cake build scripts. It will also require changes to the AppVeyor projects to use the VS2017 image. This appveyor image isn't public yet, but they do have a private beta of the RC - you can request access for an appveyor account at https://github.com/appveyor/ci/issues/1179

@geffzhang we will start looking into this after 07/03/2017 when VS 2017 is released.


多次enter将table移动到下一页后table分体了

What problem does this feature solve?
https://github.com/Hufe921/canvas-editor/assets/35056286/1de2bb54-d7f7-43d5-b4da-cebcd026947b
What does the proposed API look like?
保持table完整性

https://github.com/Hufe921/canvas-editor/issues/41


Log shows all warnings and debug messages regardless of config file

Hi,
I'm running into this issue on two different computers. Despite setting the config.toml as such:
[general]
debug_level = "ERROR"
debug_levels = [ "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL",]
check_version = true

I am getting all WARNING-level and DEBUG-level messages (mostly Deprecation warnings). They get output the pymodaq.log, as well as into the terminal in which I start a dashboard.
The simplest case that is reproducible for me is: run daq_viewer, open a mock_spectro, and the log file gets filled with DeprecationWarnings at each shot because gauss1D is not imported from pymodaq.daq_utils.math_utils.
Not the worse bug to have, but scrolling through the log file gets quite difficult!
I'm not sure even where to start to debug this, does anyone have an idea?
cheers

Well deprecation messages is a special case of log.
The config deals with the logger object. So if set on error level something like logger.warning will not be saved.
However deprecation warnings is a special warning from the warning built-in package. Pymodaq is configured so that its logger will catch them all. I'm not sure how to configure this. You can start by looking at the logger .Py file and the messenger Py file in daq_utils.


Relequestual hybrid

Merge in Relequestual/buske hybrid

I really wish you had allowed discussion on this before merging in... that's the whole point of a Pull Request, to allow discussion.
You've missed or dissregarded a few really key concepts, which without being clearly included, make it pretty pointless.

After a second parse of the changes, I realise it's not missing some key concepts after all. I do have one concern though regarding the use of boolean operator compoents, but we can discuss that on the call today.


Research Plan - IAO Executive Reporting Session

Title of ticket: Research Plan - IAO Executive Reporting Session
Description
Complete a short research plan to align goals for 1 hour session with IAO Executives
DOD

[x] Draft Plan with few questions
[ ] Review with SME & PO

@m-prodan @arielleandrews I drafted a few questions just for us to have on hand for the meeting tomorrow. Incase we have time these are core things I could think of that I would like to have answers for by the end of the session. Of course they might come out naturally as we are being shown things. Also please add or remove anything you both would like.
https://bcgov.sharepoint.com/:w:/t/03521/EVRdaX6sYJNOutpzldLCR6kB6MAtQrEgmSvmT3v-dCWCaQ?e=1t6Ia9
Wondering Matt if you touched based to find out if they are expecting us to take some dedicated time during this meeting or if it is more of the executives walking us through things.

@arielleandrews thinking I might moved this to closed, we can revisit when it is closer to or when we decide how is best to proceed with meetings with executives. Let me know what you think


:lady_beetle: Warn users if editing hooks if current hooks are not supported

Issue:
A user may create a valid plan with unsupported hooks settings.
Fix:
Warn users before editing hooks in the UI, that the current settings is not supported by the UI, and the current unsupported settings will be overwritten and lost if the user edit the hooks using the UI.

addressed by https://github.com/kubev2v/forklift-console-plugin/pull/1200


Issue with Network Transition Modal When Connecting Wallet

Describe the bug
Title: Issue with Network Transition Modal When Connecting Wallet
Description:
When attempting to connect the wallet using Taiko UI, I observed an issue related to the network transition modal. The bug prevents automatic switching to the Holesky or Katla networks. I conducted tests with the BSC and ETHEREUM networks, and encountered a "Switch Declined" error. Additionally, the wallet does not even open to allow manual switching.
Typically, network switching is only possible when manually registered on the provider. However, this approach may be insecure for less experienced users. I would recommend automating the network registration directly within the Taiko UI interface, making the process safer and more user-friendly for all users.
I assume the expected result is :
The network transition modal should allow automatic switching from current network to the Holesky or Katla networks when connecting the wallet. Additionally, the wallet should open normally to allow manual switching if necessary.
Environment tested:
Platform: [Windows 11 23H2]
Browser: [Brave v 1.63.162, Edge v122.0.2365.52 ]
Additional Notes:
The issue only occurs when manually registered on the provider, which can be unsafe for inexperienced users. Automating the network registration within the Taiko UI interface would be advisable.
Steps to reproduce
Access the Taiko UI interface.
1 -  Attempt to connect the wallet.
2 - Observe the network transition modal.
3 - Try to switch to the Holesky or Katla networks.
4 - Notice that the switch is prevented, and a "Switch Declined" error is displayed.
5 - Attempt to perform manual switching, but observe that the wallet does not allow it.

Spam policy

[x] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

True


limit precision of floats

I am wondering whether there is a way to limit the precision of jsonpickle'd floats and doubles.

This would likely have to be a feature in one of the underlying json libraries (e.g. stdlib json, simplejson, demjson, etc.).   If any of them supports this feature then the set_encoder_options API can be used to customize the parameters that are passed to the backend.


Append contributor resources to README.md

This explicitly links our Discord as well as adding a "PRs Welcome" badge to our existing badges in order to encourage new users and potential contributors to seek out assistance for questions they might have.

thanks!


Support for packageid:NuGet.* in search

Is your feature request related to a problem? Please describe.
Search, discovery of packages by id
Describe the solution you'd like
Support for packageid search with wildcards.
Name. sort of works for the popular terms today, but it might contain extra packages where the id doesn't start with the wanted prefix.
Additional context

/cc @rido-min

This would be relatively easy to do given our current implementation. The one caveat is that "*.Protocol" would not work easily since we would be depending on Lucene wildcards which can't be at the beginning of the token. Other than that, quite do-able.

We just published a bunch of new packages and they're not showing up in search for folks.
If they could search for CommunityToolkit.Uwp.* that'd be amazing to highlight them all as they all share a root.
Currently, because they're new they're nowhere near the top of the search results, and there's not a good query to find them unless you know specifically what you're looking for.


Error invoking remote method 'send-http-request': VMError: Cannot find module '@faker-js/faker'

I have checked the following:

[X] I use the newest version of bruno.
[X] I've searched existing issues and found nothing related to my issue.

Describe the bug
How to use faker for generating random data in our request??
Using this guide to insatll and use faker library:
https://docs.usebruno.com/scripting/external-libraries
.bru file to reproduce the bug
NA
Screenshots/Live demo link
NA

@ashameem123 Can I know which Javascript sandbox mode you are using. If you are using safe mode you will get this error. If that's the case switch to developer mode and check again.

@ashameem123 Can I know which Javascript sandbox mode you are using. If you are using safe mode you will get this error. If that's the case switch to developer mode and check again.

I am using Developer mode.

@sreelakshmi-bruno  - Any help is greatly appreciated.

Hi, I tried faker for generating random data using the guide in the docs and it works fine for me. Can you share the collection if possible for me to test it out?

See here

@sreelakshmi-bruno  - Could you please also share the package.json for me to compare?

Sure, here you go
package.json

@sreelakshmi-bruno  Thanks for sharing the file. It's weird that I have the same exact steps but it won't work for me.
Is it possible for you to generate randomuuid in the example you provided above and check if you could generate it?

Hi @ashameem123, I was able to generate RandomURL. See here

I am unable to add randomurl still but clearly the issue is on my end.
Thanks for your support and assistance.

Hi @ashameem123, can you try running npm list in your collection directory and see if the faker module is getting listed?

@ashameem123 I had a similar issue, and removing @faker-js/faker from the moduleWhitelist worked for me
 "scripts": {
    "moduleWhitelist": ["chai", "@faker-js/faker"],
    "filesystemAccess": {
      "allow": true
    }
  }

Ah, @ashameem123  that could be one reason why it didn't work for you. Thanks @jonathonc for sharing this.

@ashameem123 I had a similar issue, and removing @faker-js/faker from the moduleWhitelist worked for me
 "scripts": {
    "moduleWhitelist": ["chai", "@faker-js/faker"],
    "filesystemAccess": {
      "allow": true
    }
  }

Thanks @jonathonc This resolved my issue. Thank you!!
I have one more question around it,
I have to create multiple random urls in a single request but if I'm referencing the variable multiple times, it keeps using the same value everytime and not randomly creating a new url and uuid, How to get through this? I am sorry not too familiars with JS hence unable to resolve it,


Sample payload required?

Currently i have payload like below
{"aps": {"alert": {"body": "checkout my pic", "title": "Super!"},"mutable-content": 1},"pic_url": "http://images.all-free-download.com/images/graphiclarge/water_waterfall_nature_214751.jpg","mediaType":"0"}
But your code does not showing any image. what would be the reason? can please add sample payload?
I am testing push notification through online https://pushtry.com/

i need to pass payload as follow
{"aps": {"alert": {"body": "checkout my pic", "title": "Super!"},"mutable-content": 1},"pic_url": "http://images.all-free-download.com/images/graphiclarge/water_waterfall_nature_214751.jpg","mediaType":"image"}


Include "inherited" tag information in the response of PROPFIND.

Current implementation of ACL information returned in the PROPFIND response is incomplete in the sense that the inherited ACE's are not returned. They should be returned as ACE's and each of those inherited ACE's should include  tag.

Released v1.7.7


Simple changes

Minor changes to fix typos and missing manifest file
- Description for the changelog

Minor changes to fix typos and missing manifest file

/retest

/retest

/retest


Tofi doesn't open the programs

Hi, when using tofi (tofi-drun) and selecting the application, it just doesn't open, I don't know if it is opening in another workspace (I couldn't find it in any window). I am using Hyprland on gentoo.
luisf@gentoo ~/tofi $ tofi-drun
[    real,      cpu,   maxRSS]
[0.000000, 0.004899,  6388 KB][DEBUG]: This is tofi.
[0.000123, 0.005022,  6388 KB][DEBUG]: Config done.
[0.000147, 0.005045,  6388 KB][DEBUG]: Connecting to Wayland display.
[0.000208, 0.005106,  6388 KB][DEBUG]: Creating xkb context.
[0.000315, 0.005214,  6388 KB][DEBUG]: First roundtrip start.
[0.000458, 0.005295,  6388 KB][DEBUG]:     Bound to shm 1.
[0.000474, 0.005311,  6388 KB][DEBUG]:     Bound to compositor 4.
[0.000487, 0.005324,  6388 KB][DEBUG]:     Bound to data device manager  6.
[0.000502, 0.005339,  6388 KB][DEBUG]:     Bound to wp_viewporter 11.
[0.000516, 0.005353,  6388 KB][DEBUG]:     Bound to seat 14.
[0.000529, 0.005366,  6388 KB][DEBUG]:     Bound to zwlr_layer_shell_v1 17.
[0.000560, 0.005397,  6388 KB][DEBUG]:     Bound to wp_fractional_scale_manager_v1 44.
[0.000587, 0.005425,  6388 KB][DEBUG]:     Bound to output 48.
[0.000602, 0.005439,  6388 KB][DEBUG]: First roundtrip done.
[0.000612, 0.005449,  6388 KB][DEBUG]: Second roundtrip start.
[0.000771, 0.005491,  6388 KB][DEBUG]:     Got keyboard from seat.
[0.000786, 0.005506,  6388 KB][DEBUG]:     Got pointer from seat.
[0.000804, 0.005525,  6388 KB][DEBUG]:     Output configuration done.
[0.000814, 0.005535,  6388 KB][DEBUG]: Second roundtrip done.
[0.000822, 0.005542,  6388 KB][DEBUG]: Determining output.
[0.000838, 0.005559,  6388 KB][DEBUG]:     First dummy roundtrip start.
[0.001083, 0.005601,  6388 KB][DEBUG]:         Configuring keyboard.
[0.005690, 0.010190,  8296 KB][DEBUG]:         Keyboard configured.
[0.005715, 0.010214,  8296 KB][DEBUG]:         Key repeat every 40 ms after 600 ms.
[0.005739, 0.010238,  8296 KB][DEBUG]:     First dummy roundtrip done.
[0.005748, 0.010247,  8296 KB][DEBUG]:     Initialising dummy surface.
[0.005796, 0.010295,  8296 KB][DEBUG]:         Created shm file with size 0 KiB.
[0.005811, 0.010310,  8296 KB][DEBUG]:     Dummy surface initialised.
[0.005820, 0.010319,  8296 KB][DEBUG]:     Second dummy roundtrip start.
[0.006307, 0.010385,  8296 KB][DEBUG]:     Second dummy roundtrip done.
[0.006340, 0.010418,  8296 KB][DEBUG]: Selected output HDMI-A-1.
[0.006353, 0.010430,  8296 KB][DEBUG]: Generating desktop app list.
[0.006360, 0.010438,  8296 KB][DEBUG]:     Retrieving cache location.
[0.006380, 0.010458,  8296 KB][DEBUG]:     Retrieving application dirs.
[0.006535, 0.010612,  8296 KB][DEBUG]:     Cache up to date, loading.
[0.006602, 0.010679,  8296 KB][DEBUG]:     Moving already known apps to the front.
[0.006616, 0.010694,  8296 KB][DEBUG]: App list generated.
[0.006624, 0.010702,  8296 KB][DEBUG]: Creating main window surface.
[0.006645, 0.010722,  8296 KB][DEBUG]: Third roundtrip start.
[0.007589, 0.010761,  8296 KB][DEBUG]:     Layer surface configure, 1280 x 720.
[0.007603, 0.010776,  8296 KB][DEBUG]: Third roundtrip done.
[0.007611, 0.010784,  8296 KB][DEBUG]: Initialising window surface.
[0.007645, 0.010818,  8296 KB][DEBUG]:     Created shm file with size 7200 KiB.
[0.007655, 0.010827,  8296 KB][DEBUG]: Window surface initialised.
[0.007662, 0.010834,  8296 KB][DEBUG]: Initialising renderer.
[0.007669, 0.010842,  8296 KB][DEBUG]:     Creating 1280 x 720 Cairo surface with scale factor 1.000.
[0.007763, 0.010935,  8296 KB][DEBUG]:     Drawing window.
[0.011136, 0.014300, 12372 KB][DEBUG]:     Creating Pango context.
[0.011426, 0.014578, 12980 KB][DEBUG]:     Creating Pango font description.
[0.011483, 0.014635, 12980 KB][DEBUG]:     Loading Pango font.
[0.024987, 0.028978, 13884 KB][DEBUG]:     Loaded.
[0.025012, 0.029001, 13884 KB][DEBUG]:     Initial text render.
[0.026873, 0.031105, 16556 KB][DEBUG]:     Drew 6 results.
[0.026900, 0.031132, 16556 KB][DEBUG]: Renderer initialised.
[0.028204, 0.031192, 16556 KB][DEBUG]: Layer surface configure, 1280 x 720.
[0.028221, 0.031209, 16556 KB][DEBUG]: Surface entered output.
[0.028246, 0.031233, 16556 KB][DEBUG]: Initialising second buffer.
[0.031464, 0.034444, 20372 KB][DEBUG]: Second buffer initialised.
[1.170910, 0.034556, 20372 KB][DEBUG]: Start rendering entry.
[1.171869, 0.035499, 20372 KB][DEBUG]: Drew 6 results.
[1.171891, 0.035519, 20372 KB][DEBUG]: Finish rendering entry.
[2.699076, 0.035601, 20372 KB][DEBUG]: Start rendering entry.
[2.699941, 0.036466, 20372 KB][DEBUG]: Drew 6 results.
[2.699958, 0.036482, 20372 KB][DEBUG]: Finish rendering entry.
qutebrowser --untrusted-args
[3.083449, 0.036903, 20372 KB][DEBUG]: Window closed, performing cleanup.
[3.086839, 0.037609, 20372 KB][DEBUG]: Finished, exiting.

Try doing tofi-drun --drun-launch=true instead, worked for me (Hyprland, Arch Linux).

Worked, thank you!

Hey, thanks for answering this @Sukarett2.
Late reply, but ideally you should pipe it into your launcher, like:
bindsym $mod+Shift+d exec tofi-drun | xargs swaymsg exec --

or for Hyprland:
bind=SUPER,D,exec,tofi-drun | xargs hyprctl dispatch exec --

This is so that the resulting program starts up on the correct monitor (the one tofi was on). With --drun-launch=true, the monitor that the program shows up on is likely to be random (though that obviously doesn't matter if you only use one monitor).


New Feature Request: Support for Tunnels and Trolls DARO/TARO

A feature to consider:
The game system Tunnels and Trolls has a thing similar to exploding dice, but slightly different. It's doubles and triples of the same value rolled get added and rolled over.
If possible, would be a nice feature to add.

So if you roll 5d6 and get 3 3 3 5 1, the 3s become 9 and all 3 dice get rerolled? If it happens again do you keep rolling?

Sorry for my being a little unclear there.  This only applies to 2d6 and 3d6 rolls.  So only doubles on 2d6 (i.e. both dice match), and only triples on 3d6 (i.e. all three dice match).  T&T uses the 3d6 TARO roll for attribute generation and the 2d6 DARO is used for what is referred to as Saving Rolls (but are actually ability checks).  The DARO (Doubles And Roll Over) and (Triples And Roll Over) keep getting rerolled and added until the condition doesn't happen again.

Ok that makes sense. Is there a standard notation for this in the system already?

David, sorry I don't understand the question?  Is there a standard notation in the Tunnels & Trolls system for this?  Not really, when talking about these types of rolls we generally just refer to them as ARO or DARO/TARO rolls.

This is now live on the beta bot. Primary bot next week. Invite it to servers you own with this link https://rollem.rocks/invite-beta/


remove unused distutils import from init.py

I think this import may be the source of some errors seen on Travis in #539
Distutils itself imports from the deprecated imp module which is causing a DeprecationWarning that is apparently making pytest unhappy.
see: https://travis-ci.org/PyWavelets/pywt/jobs/633664005#L547

Merged, thanks @grlee77


Look at hosting solutions, aside from Afrihost

Staging will live on https://addcolouragency.github.io/ueda

I LOOKED AT THESE
1.https://webhostingbuddy.com/go/bluehost/list/
2. https://webhostingbuddy.com/go/hostgator/list/
3. https://asmallorange.com/
4.https://webhostingbuddy.com/go/justhost/
5.https://www.vps.net/
6.https://webhostingbuddy.com/go/knownhost/
7.https://webhostingbuddy.com/go/liquidweb/
8.https://webhostingbuddy.com/go/godaddy/

@khanyisa12 Have you used any tool for Continuous Integration / Continuous Development?


bfloat16 CPUID flag check does not match ISA reference

Intel Architecture ISA extensions programming reference section 1.4 indicates that the following flags should be checked for bfloat16 instructions:
CPUID.(EAX=07H, ECX=**1**):EAX[bit 05]

Xbyak checks 5th bit with EAX=07H, ECX=0 instead:
getCpuidEx(7, **0**, data);
...
**if (EAX & (1U << 5)) type_ |= tAVX512_BF16;**

This leads to incorrect detection of bfloat16 support.

Thank you for your nice patch.
I've merged it.


addressed issue [#864] - expand notification message about email confirmation

@mjstealey Could you do a quick review and merge if you can give a +1? Just simple notification message expansion exactly as @dtarb suggested in the issue.

Can one of the admins verify this patch?

+1


"Docker Images" portion of blog post out of sync

The code sample in the Docker Images portion of your blog post is a little out of sync with this template code. 13c52205924ad6df8 removed defaultPackage that's referenced in the code sample:
# flake.nix

# after defaultPackage
packages = {
  docker = let
    web = self.defaultPackage.${system};
...

Updating the blog post or this template would help newcomers like me.
Also, thank you thank you thank you for the nix flake blog series! These posts are immensely helpful! :bow:

I'll fix the post later today. Thanks for letting me know!


fix: test script doesn't fail

I added a fail test in this PR so unit tests should fail. :/

@MoOx I'm not sure why I'm throwing on main process but the process doesn't exit. Can you take a look ?

Use setTimeout to throw when in a promise

Use setTimeout to throw when in a promise

Nice catch. But I prefer setImmediate. It's cleaner.

It doesn't fail when run in serial mode
https://travis-ci.org/MoOx/statinamic/jobs/122192604

Heh, nice one. :+1:

Craps. Unit tests fail on Windows all the time without us knowing about it.
Shame :(
I saw this error message before when enabling node 4 on Appveyor

If AVA is so annoying and does not fix perf issue soon, I am going to use tape again.

Yes. I'm losing so much time on AVA and node 4. I saw the perf issue was assigned. Maybe please wait a little longer. I'm too lazy to learn another test runner

FYI, AVA is highly inspired by tape.
Anyway, I think we should remove this way to run AVA tests, and skip node 4 until they fix https://github.com/sindresorhus/ava/issues/78

Haha. looks like AVA 0.14 has some performance improvements. All tests passed

This blocks other PR so I merge this :)


How To stop the crawling process for some problematic website ?

Hi all,
I need  to crawl websites and sometimes it is "bad designed  websites" with thousands (huge quantity) of links in a single page. I have a handler like that
c.OnHTML("a[href]", func(e *colly.HTMLElement){
//some logic here
})
I don't need to visit each link (html anchor tag with an href) in those pages so I don't call c.visit(url).
I want to limit my crawling logic to a max limit of links and after abort.
but calling e.Request.Abort() don't  really abort the colly crawling process. it continues for the web page in current process to call the handler func(e *colly.HTMLElement){} previously registered in c.OnHTML()
even using a counter and incrementing it atomically doesn't really help me for stopping this function to be called
Any Idea of how to limit this ?

e.Request.Abort aborts only the current request which is already served if the OnHTML callback is called, so it doesn't have much effect at this time.
You can subscribe to the body tag instead of a[href] tags and manually iterate through the links with e.ForEach [0] or with e.ForEachWithBreak [1]. This way you can count how many links do you visit.
[0] https://pkg.go.dev/github.com/gocolly/colly/v2?tab=doc#HTMLElement.ForEach
[1] https://pkg.go.dev/github.com/gocolly/colly/v2?tab=doc#HTMLElement.ForEachWithBreak


use nn.ModuleList

The _add_to_parameters method that you've used works, but there's actually a (fairly new) class in core PyTorch that does what you need here: nn.ModuleList. Similarly nn.ParameterList does what you need in the TDNN implementation.

Fixed


use instruct models?

the instruct models seem more suitable for structured responses,
esp the GPT3.5 is so much cheaper than GPT4 so would be nice to use.
https://community.openai.com/t/instructgpt-vs-gpt-3-5-turbo/434241/2
but they don't support the chat.completions
I was wondering how to use with instructor? is there another way to call the client.... ?
const user = await client.chat.completions.create({
  messages: [{ role: "user", content: "Jason Liu is 30 years old" }],
  model: "gpt-3.5-turbo",
  response_model: {
    schema: UserSchema,
    name: "User"
  }
})

Instructor only implements chat.completions today: https://github.com/instructor-ai/instructor-js/blob/main/src/instructor.ts#L303
You could use Mixtral-8x7B-Instruct-v0.1 though -- should perform better & cost less. See this example


rbac targets needed to be renamed as well

@jboyd01 this should fix it

fixed my RBAC issue.

credentials to bindings as well


Production

Hi,
I wanna ask if you have prepared solution for production.For example delete hot reloading or create webpack build and so on..
Thanks for answer

Hi @JohnyFreeze, if you run npm run dist the buid will be optimized for production. This includes invoking webpack with the -p option, building the app with NODE_ENV production, leaving out hot module replacement, and making use of some further Webpack plugins.
You can take a look at cfg/Dist.js to see the Webpack config that is used for npm run dist.


BF: hint to editors to highlight for YAML; retain --- in assets

These changes address two bugs:

#644 : temp files now simply have .yaml appended, which is an easy enough hack to have editors pickup on the content type and provide some helpful syntax highlighting.
#659 : preserve (by force adding) the --- document start token to YAML files. They will only be added to new assets and existing assets when modified.

I see that the tests still need work, but I want to already thank you for addressing this!
It is really bugging me, and will greatly improve the cat-ability of multiple assets! :)

Ahh, the commit hashes changed due to the new file content. I have updated the reference log, and it should pass now. :-)

Thanks, LGTM!


Where is E2E_FAUCET_ADDRESS set?

Context
I'm trying to run make deploy-contracts in https://github.com/celestiaorg/celestia-zkevm-ibc-demo. It calls
https://github.com/rootulp/celestia-zkevm-ibc-demo/blob/f47386e0029d5e1047b82195ceb6241c08b1095c/Makefile#L135-L138
which fails because:
    ├─ [0] VM::envString("E2E_FAUCET_ADDRESS") [staticcall]
    │   └─ ← [Revert] vm.envString: environment variable "E2E_FAUCET_ADDRESS" not found
    └─ ← [Revert] vm.envString: environment variable "E2E_FAUCET_ADDRESS" not found

Related: https://github.com/cosmos/solidity-ibc-eureka/blame/66bed7cfbbe19b979e3a2fa06a4f098f6fe7c200/scripts/E2ETestDeploy.s.sol#L41
Question
Where is the E2E_FAUCET_ADDRESS env variable set? It doesn't appear present in https://github.com/cosmos/solidity-ibc-eureka/blob/main/.env.example

Nvm worked around this by commenting out the minting of tokens from the e2e test deploy script.

Out of curiosity, how do ya'll deploy the E2E script?
$ forge script E2ETestDeploy.s.sol:E2ETestDeploy
[⠊] Compiling...
No files changed, compilation skipped
Traces:
  [964566] Create2Deployer::create2()
    ├─ [930385] → new ICS20Lib@0xa4eF977E511763f52B4bF680d1141B22a0877921
    │   └─ ← [Return] 4647 bytes of code
    └─ ← [Return] 0xa4ef977e511763f52b4bf680d1141b22a0877921

  [15768949] → new E2ETestDeploy@0x9f7cF1d1F558E57ef88a59ac3D47214eF25B6A06
    └─ ← [Return] 78601 bytes of code

  [13254] E2ETestDeploy::run()
    ├─ [0] VM::projectRoot() [staticcall]
    │   └─ ← [Return] "/Users/rootulp/git/rootulp/celestiaorg/celestia-zkevm-ibc-demo/solidity-ibc-eureka"
    ├─ [0] VM::readFile("/Users/rootulp/git/rootulp/celestiaorg/celestia-zkevm-ibc-demo/solidity-ibc-eureka/scripts/genesis.json") [staticcall]
    │   └─ ← [Return] <file>
    ├─ [0] VM::parseJsonBytes("<stringified JSON>", ".trustedClientState") [staticcall]
    │   └─ ← [Return] 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000363018000000000000000000000000000000000000000000000000000000000012750000000000000000000000000000000000000000000000000000000000001baf800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000076d6f6368612d3400000000000000000000000000000000000000000000000000
    ├─ [0] VM::parseJsonBytes("<stringified JSON>", ".trustedConsensusState") [staticcall]
    │   └─ ← [Return] 0x0000000000000000000000000000000000000000000000000000000067566a3041c66ad6475cd11a8a93fadde98b0fef027bcf7e37092dc37924a8a17c7655273622de9ad2e807bb784b601fe2f841af7c45fc64ed2c00d506f73d9ea200d3bd
    ├─ [0] VM::parseJsonBytes32("<stringified JSON>", ".updateClientVkey") [staticcall]
    │   └─ ← [Return] 0x00e50c69193e0e34bc1b2699e969610a91ac0279ccde66c9a9a92f28017fafa2
    ├─ [0] VM::parseJsonBytes32("<stringified JSON>", ".membershipVkey") [staticcall]
    │   └─ ← [Return] 0x007a9e5c5b178c25d51c83d76ee796a791613ecf693e19cdabee41b7c06dcb86
    ├─ [0] VM::parseJsonBytes32("<stringified JSON>", ".ucAndMembershipVkey") [staticcall]
    │   └─ ← [Return] 0x009f94bbf3336bb206a756e1a8e7a942f7eeafab848d6e7ba6e63c664638a790
    ├─ [0] VM::parseJsonBytes32("<stringified JSON>", ".misbehaviourVkey") [staticcall]
    │   └─ ← [Return] 0x00dd10574c6c22476e0eda028e042eebb328ce406038b2c6f9e64bfaa556515d
    ├─ [0] VM::envString("E2E_FAUCET_ADDRESS") [staticcall]
    │   └─ ← [Revert] vm.envString: environment variable "E2E_FAUCET_ADDRESS" not found
    └─ ← [Revert] vm.envString: environment variable "E2E_FAUCET_ADDRESS" not found

Gas used: 34318
Error: script failed: vm.envString: environment variable "E2E_FAUCET_ADDRESS" not found

It is set by the e2e tests written in golang here.
We use this script to deploy in our own e2e suite and not the testnets.

Cool thanks!