az ad user show has an error when used with guest AAD account

When I try to use az ad user show with a guest account, I get an error stating The specified api-version is invalid
az ad user show --upn-or-object-id<EMAIL_ADDRESS>The specified api-version is invalid. The value must exactly match a supported version.
Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/azure/cli/main.py", line 36, in main
    cmd_result = APPLICATION.execute(args)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/application.py", line 212, in execute
    result = expanded_arg.func(params)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 377, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 630, in _execute_command
    raise client_exception
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 618, in _execute_command
    exception_handler(ex)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/util.py", line 49, in empty_on_404
    raise ex
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 602, in _execute_command
    result = op(client, **kwargs) if client else op(**kwargs)
  File "/opt/az/lib/python3.6/site-packages/azure/graphrbac/operations/users_operations.py", line 220, in get
    raise models.GraphErrorException(self._deserialize, response)
azure.graphrbac.models.graph_error.GraphErrorException: The specified api-version is invalid. The value must exactly match a supported version.

az ad user list is an acceptable workaround, so this is a non-blocking issue
az ad user list --upn<EMAIL_ADDRESS>
az ad user show for a member originating in the same tenant works, so this seems to be isolated to certain accounts:
az ad user show --upn-or-object-id<EMAIL_ADDRESS>

Environment summary
apt-get / 2.0.20 / Windows 10 Build 17017 / Bash on Windows
Full version info:
azure-cli (2.0.20)

acr (2.0.14)
acs (2.0.18)
appservice (0.1.19)
backup (1.0.2)
batch (3.1.6)
batchai (0.1.2)
billing (0.1.6)
cdn (0.0.10)
cloud (2.0.9)
cognitiveservices (0.1.9)
command-modules-nspkg (2.0.1)
component (2.0.8)
configure (2.0.12)
consumption (0.1.6)
container (0.1.12)
core (2.0.20)
cosmosdb (0.1.14)
dla (0.0.13)
dls (0.0.16)
eventgrid (0.1.5)
extension (0.0.5)
feedback (2.0.6)
find (0.2.7)
interactive (0.3.11)
iot (0.1.13)
keyvault (2.0.13)
lab (0.0.12)
monitor (0.0.11)
network (2.0.17)
nspkg (3.0.1)
profile (2.0.15)
rdbms (0.0.8)
redis (0.2.10)
resource (2.0.17)
role (2.0.14)
servicefabric (0.0.5)
sql (2.0.14)
storage (2.0.18)
vm (2.0.17)

Python location '/opt/az/bin/python3'
Extensions directory '/home/noel/.azure/cliextensions'

Python (Linux) 3.6.1 (default, Oct 18 2017, 20:41:18)
[GCC 4.8.4]

Legal docs and information: aka.ms/AzureCliLegal

@lmazuel, this is not a CLI issue, rather the generated code doesn't encode the #
Could you please recommend what needs to be fixed either at the graphrbac spec or the code-gen?

@noelbundick could you reexecute in debug mode (--debug) and drop the result here? Thanks!

@lmazuel, here is the relevant verbose log in my box:
msrest.http_logger : Request URL: 'https://graph.windows.net/54826b22-38d6-4fb2-bad9-b7b93a3e9c5a/users/yugangw_microsoft.com#EXT#@AzureSDKTeam.onmicrosoft.com?api-version=1.6'
msrest.http_logger : Request method: 'GET'
msrest.http_logger : Request headers:
msrest.http_logger :     'Accept': 'application/json'
msrest.http_logger :     'User-Agent': 'python/3.5.3 (Windows-10-10.0.10586-SP0) requests/2.18.4 msrest/0.4.18 msrest_azure/0.4.15 graphrbacmanagementclient/0.31.0 Azure-SDK-For-Python AZURECLI/2.0.21'
msrest.http_logger :     'Connection': 'keep-alive'
msrest.http_logger :     'Accept-Encoding': 'gzip, deflate'
msrest.http_logger :     'Authorization': '*****'
msrest.http_logger :     'CommandName': 'ad user show'
msrest.http_logger :     'x-ms-client-request-id': '3fb3eb6c-bdda-11e7-9ccd-f4b7e2e85440'
msrest.http_logger :     'Content-Type': 'application/json; charset=utf-8'
msrest.http_logger :     'accept-language': 'en-US'
msrest.http_logger : Request body:
msrest.http_logger : None
msrest.http_logger : Response status: 400
msrest.http_logger : Response headers:
msrest.http_logger :     'Cache-Control': 'private'
msrest.http_logger :     'Content-Type': 'application/json; odata=verbose'
msrest.http_logger :     'Server': 'Microsoft-IIS/8.5'
msrest.http_logger :     'ocp-aad-diagnostics-server-name': '7akEoJBB3jXdCcddmuqIriGupZolWpVIrAvUTJndNgo='
msrest.http_logger :     'request-id': 'f0a723df-6e3b-48c3-844f-eab8badfc2aa'
msrest.http_logger :     'client-request-id': 'b48e6918-1277-409a-8f61-30d89c8bb92a'
msrest.http_logger :     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
msrest.http_logger :     'Access-Control-Allow-Origin': '*'
msrest.http_logger :     'X-Powered-By': 'ASP.NET, ASP.NET'
msrest.http_logger :     'Duration': '349835'
msrest.http_logger :     'Date': 'Tue, 31 Oct 2017 01:24:32 GMT'
msrest.http_logger :     'Content-Length': '183'
msrest.http_logger : Response content:
msrest.http_logger : b'{"odata.error":{"code":"Request_DataContractVersionMissing","message":{"lang":"en","value":"The specified api-version is invalid. The value must exactly match a supported version."}}}'
msrest.exceptions : The specified api-version is invalid. The value must exactly match a supported version.

In my understanding, following this link:
https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations#performing-rest-operations-on-users

/users/{user_id} targets an individual user in your tenant. You specify the user_id either as the object ID (GUID) or the user principal name (UPN) of the target user. You can use this resource path to get the declared properties of a user, to modify the declared properties of a user, or to delete a user. Note: For an external user, you must specify the user’s object ID (GUID).

If I understand correctly and "external user" == "guest user", even encoding the URL it will not work :/
But I didn't actually tried, so let me try first if it works.

I tried with encoding through fiddler and it worked
/54826b22-38d6-4fb2-bad9-b7b93a3e9c5a/users/yugangw_microsoft.com%23EXT%23%40AzureSDKTeam.onmicrosoft.com?api-version=1.6 HTTP/1.1
My concern is whether we are encoding everything which can appear as part of the url. I think we should

The Swagger explicitly says to do NOT encode:
https://github.com/Azure/azure-rest-api-specs/blob/8844dc849f917785e7722e4fe492dd8143c111a7/specification/graphrbac/data-plane/1.6/graphrbac.json#L1235
I need to test a little more, since changing this behavior will impact all SDK

Yep, this is why I originally asked whether the spec should change. Please give it enough thinking :)

Note that you can workaround this by encoding yourself whatever data the user passes to "az ad user show". Since the SDK will never touch the string and pass it "as-is". If in a future version, I decide to finally encode the string, you will just have to remove the code to avoid double-encoding.

> az ad user create --user-principal-name<EMAIL_ADDRESS>--display-name LMazuel#TEST --password Hush456!
{
  "displayName": "LMazuel#TEST",
  "mail": null,
  "mailNickname": "lmazuel#EXT",
  "objectId": "beef7378-be23-4942-bea9-8a1a61fe6b22",
  "objectType": "User",
  "signInName": null,
  "usageLocation": null,
  "userPrincipalName"<EMAIL_ADDRESS>}
> az ad user show --upn-or-object-id beef7378-be23-4942-bea9-8a1a61fe6b22
{
  "displayName": "LMazuel#TEST",
  "mail": null,
  "mailNickname": "lmazuel#EXT",
  "objectId": "beef7378-be23-4942-bea9-8a1a61fe6b22",
  "objectType": "User",
  "signInName": null,
  "usageLocation": null,
  "userPrincipalName"<EMAIL_ADDRESS>}
> az ad user show --upn-or-object-id<EMAIL_ADDRESS>The specified api-version is invalid. The value must exactly match a supported version.
Traceback (most recent call last):
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\main.py", line 36, in main
    cmd_result = APPLICATION.execute(args)
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\core\application.py", line 212, in execute
    result = expanded_arg.func(params)
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\core\commands\__init__.py", line 377, in __call__
    return self.handler(*args, **kwargs)
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\core\commands\__init__.py", line 630, in _execute_command
    raise client_exception
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\core\commands\__init__.py", line 618, in _execute_command
    exception_handler(ex)
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\core\util.py", line 49, in empty_on_404
    raise ex
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\cli\core\commands\__init__.py", line 602, in _execute_command
    result = op(client, **kwargs) if client else op(**kwargs)
  File "C:\Users\lmazuel\Git\AzureCli\lib\site-packages\azure\graphrbac\operations\users_operations.py", line 220, in get
    raise models.GraphErrorException(self._deserialize, response)
azure.graphrbac.models.graph_error.GraphErrorException: The specified api-version is invalid. The value must exactly match a supported version.
> az ad user show --upn-or-object-id lmazuel%23EXT%40AzureSDKTeam.onmicrosoft.com
{
  "displayName": "LMazuel#TEST",
  "mail": null,
  "mailNickname": "lmazuel#EXT",
  "objectId": "beef7378-be23-4942-bea9-8a1a61fe6b22",
  "objectType": "User",
  "signInName": null,
  "usageLocation": null,
  "userPrincipalName"<EMAIL_ADDRESS>}

@yugangw-msft Since encoding manually when calling the CLI works, any fix might break people that figured this out and manually encoded the call :/
Thoughts?

I tried using online GraphAD tester:
https://msdn.microsoft.com/Library/Azure/Ad/Graph/api/users-operations#GetAUser

The official RestAPI tester is encoding the UPN, so I'm 100% sure now that the Swagger is incorrect.

@yugangw-msft Since encoding manually when calling the CLI work, any fix might break people that figured this out and manually encoded the call :/

Agreed. We should not workaround in CLI

Fixed in https://pypi.python.org/pypi/azure-graphrbac/0.33.0

@lmazuel can we close issue? Is there any pending action on CLI side?

@troydai , yes CLI needs to update the dependency from 0.31.0 to 0.33.0 and check that everything is ok. Best scenario it's just a dependency update, but since it's critical package that impact a lot of commands, should be done carefully.

@yugangw-msft are you taking up the CLI side action?

CLI has been updated to use newer graphrabc package.
Please reactivate if you still see the issue.


add libraries/:username route

Coverage remained the same at 84.62% when pulling 40e25e3cfef2077bdc694c0e4b545d75974246be on libraries-show into 4a20eb800677418371cd9cfb8d9168859b7583dc on master.


[WFLY-13495] Add missing dependencies for last json-patch update

Replacement PR for https://github.com/wildfly/wildfly/pull/13311

Dependency Tree Analyzer Output:
New Dependencies:

com.github.fge:btf:jar:1.2:compile
com.github.fge:msg-simple:jar:1.1:compile

CC @wildfly/prod

Here's one thing I can see so far. I took the org.wildfly:wildfly-parent pom.xml, stripped out all of the modules, and ran mvn dependency:tree four times, each with exaclty one dependency:

com.github.fge:btf
com.github.fge:msg-simple
com.github.fge:jackson-coreutils
com.github.fge:json-patch

I got four trees, each was a subtree of the next, and the final tree was
[INFO] org.wildfly:wildfly-parent:pom:20.0.0.Beta1-SNAPSHOT
[INFO] \- com.github.fge:json-patch:jar:1.9:compile
[INFO]    \- com.github.fge:jackson-coreutils:jar:1.8:compile
[INFO]       +- com.github.fge:msg-simple:jar:1.1:compile
[INFO]       |  \- com.github.fge:btf:jar:1.2:compile
[INFO]       +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.4:compile
[INFO]       |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.4:compile
[INFO]       |  \- com.fasterxml.jackson.core:jackson-core:jar:2.10.4:compile
[INFO]       +- com.google.guava:guava:jar:25.0-jre:compile
[INFO]       \- com.google.code.findbugs:jsr305:jar:3.0.2:test

When I look at module.xml files

com.github.fge.btf: no dependencies
com.github.fge.msg-simple: depends on and exports com.github.fge.btf
com.github.fge.jackson-coreutils: depends on and exports com.github.fge.msg-simple
com.github.fge.json-patch: depends on but doesn't export com.github.fge.jackson-coreutils
org.jboss.resteasy.resteasy-jackson2-provider: depends on but doesn't export com.github.fge.json-patch

Also,  com.github.fge:btf, com.github.fge:msg-simple, com.github.fge:jackson-coreutils, and  com.github.fge:json-patch all have
    <properties>
        <property name="jboss.api" value="private"/>
    </properties>

So, if I understand the wildfly module structure (which I don't, really), it looks like everything is hidden behind org.jboss.resteasy.resteasy-jackson2-provider.

So, if I understand the wildfly module structure (which I don't, really), it looks like everything is hidden behind org.jboss.resteasy.resteasy-jackson2-provider.

That is correct and the best way to handle it. If they are not private we have to support them. For example say a new version of RESTEasy decides it doesn't want to use one of those API's it can be removed if it's private.

This question shouldn't block merging this, but I'm wondering, @jbliznak, why the 'export="true"' stuff is needed. If X exports Y that implies the consumers of X need classes or resources from Y, but the maven dependency info from @ronsigal doesn't show an obvious need for that here.

@bstansberry the reason I added the export=true is simply it doesn't work for me without it.
eg. with this the original problem reported in jira is still there
diff --git a/feature-pack/src/main/resources/modules/system/layers/base/com/github/fge/jackson-coreutils/main/module.xml b/feature-pack/src/main/resources/modules/system/layers/base/com/github/fge/jackson-coreutils/main/module.xml
index 292abb72af..9cdf274551 100755
--- a/feature-pack/src/main/resources/modules/system/layers/base/com/github/fge/jackson-coreutils/main/module.xml
+++ b/feature-pack/src/main/resources/modules/system/layers/base/com/github/fge/jackson-coreutils/main/module.xml
@@ -33,7 +33,7 @@
     </resources>

     <dependencies>
-        <module name="com.github.fge.msg-simple" export="true"/>
+        <module name="com.github.fge.msg-simple"/>
         <module name="com.fasterxml.jackson.core.jackson-annotations"/>
         <module name="com.fasterxml.jackson.core.jackson-core"/>
         <module name="com.fasterxml.jackson.core.jackson-databind"/>

re: "why the 'export="true"' stuff is needed."
I was wondering about that, but I suppose if A needs a class from B and a class from C, then either

A could import B and C, or
A could import B and B could export C.

@jbliznak, what happens if you replace
<module name="com.github.fge.msg-simple" export="true"/>

with
<module name="com.github.fge.msg-simple"/>

in jackson-coreutils and add
<module name="com.github.fge.msg-simple"/>

to json-patch?

And, similarly, replace
 <module name="com.github.fge.btf" export="true"/>

with
 <module name="com.github.fge.btf"/>

in msg-simple, and add
<module name="com.github.fge.btf"/>

to jackson-coreutils?

I guess my question is, does
[INFO]    \- com.github.fge:jackson-coreutils:jar:1.8:compile
[INFO]       +- com.github.fge:msg-simple:jar:1.1:compile
[INFO]       |  \- com.github.fge:btf:jar:1.2:compile

imply that jackson-coreutils doesn't depend directly on btf, i.e., doesn't explicitly use a class from btf?

OK so the export is needed because json-patch directly accesses the msg-simple classes
https://github.com/java-json-tools/json-patch/blob/1.9/src/main/java/com/github/fge/jsonpatch/JsonPatchMessages.java#L22-L24
Furthermore, jackson-coreutils directly accesses btf https://github.com/fge/jackson-coreutils/blob/1.8/src/main/java/com/github/fge/jackson/JsonNodeReader.java#L30
@ronsigal hope it clarifies.

re: "hope it clarifies."
Yes, that's exactly what I was wondering. I think our last posts crossed in the mail.

Yes, these artifacts have either wrong encapsulation or wrong pom.xml which should state direct dependencies (so that we can easily design our modules tree)

So msg-simple has
    <dependency>
      <groupId>com.github.fge</groupId>
      <artifactId>btf</artifactId>
      <version>1.2</version>
      <scope>compile</scope>
    </dependency>

and jackson-coreutils has
    <dependency>
      <groupId>com.github.fge</groupId>
      <artifactId>msg-simple</artifactId>
      <version>1.1</version>
      <scope>compile</scope>
    </dependency>

and compile scope is transitive, so, in effect, msg-simple is exporting btf.

Ah, that's a good point, mvn dependency:tree isn't going to show that kind of thing.


cannot read properties of undefined (reading 'excludedFile')

I can't see a negative effect of this error, just spotted it in developer console and thought to share it...

Thank you for reporting. I don't like unresolved console errors :-)
Will address this in a day or two.

@zsviczian I was not able to reproduce the error, but its clear to me where it might be coming from. Please let me know after updating to 1.0.9 if the error still occurs. I have a few more things I can do if it does.


Rename module

With Swagger being the property of SmartBear, this project needs to be renamed to something either referencing the new OSS foundation OpenAPI, or something entirely new (but still related).
After a new named is picked we need to:

[ ] Make a new npm registry for the new module
[ ] Rename this GitHub repo to reflect.
[ ] Point the old npm registry (swagger-test-templates) to the new repo
[ ] use npm deprecate on the latest cut of the old registry so that we notify users upon download that this module has been renamed

Does smartbear object to using the swagger reference? or do you just think its better this way?
do not have a idea for a name though

With new release out we should begin the renaming.
I have not been specifically contacted by SmartBear but it is good to respect their IP and we should be following the new OpenAPI OSS foundation anyways.
Lets get a new name! :)

Whoohoo, great job on the release all!
1.4 here we come ;-)
First the new name:
how about

openAPI-test-generator
openAPI-test-templates
openAPI-integration-test-generator
...

There are some obvious names that utilize the description framework's name, but let me suggest something more fun.
I've been talking with some folks at work and we think we've decided on a name, let me know what you think.
This module creates test templates that, at their core, give you the basic structure and organization necessary to build a robust unit test suite. Another way to think about this is the scaffolding on a building. Scaffolding forms an outer shell around the structure-to-be and gives workers space to build. A fascinating example of this is the use of bamboo as scaffolding for sky scrapers in Hong Kong (google "bamboo scaffolding"). As such I am putting forward the name bamboo.
It might seem kind of tangential or random, but we believe this name captures the basic essence of this module and will help us build a fun open source brand in the project.

Nice idea but consider the overlapping with the Bamboo product of Atlassian, which might confuse a lot of people. Just my 2 cents :)

hehe @Benny-Beermann I was immediately thinking the same....
I is nice to know how the guys at Atlassian  came up with the name of their build tool (and I admit, the name makes sense ;-))
So, I would not name it Bamboo, too much confusion.
But I like where you want to go with a name.
Now I'm thinking of it that way: I actually use this module to generate integration tests to make sure we do not break backwards compatibility with frontend without noticing.
Looking from integration, the word 'fuse' pops in my head.
openApiFuse something (sorry, don't have much inspiration, nor do I appear to be very funny atm :-)

btw, it is still your module! so if you feel like naming it bamboo after all: don't hold back :-)
just giving an opinion here

Oh, it's suddenly quit here ! I hope your not disappointed by the existence of the bamboo of atlassian ;-)
Are we moving on with this?


Upgrade Node.js version of  webportal & rest server to 8 (Carbon)

Replace npm run yarn (which stands for yarn --ignore-engines) to yarn directly

[ ] Document

Coverage increased (+6.4%) to 69.908% when pulling 96d52200c3f0a435926000dfb4e353fb58ef5913 on qixcheng/upgrade-node-js-8 into 3e0b503ebcb5390f2a71f820012be95bb9831d2c on master.

Coverage increased (+6.4%) to 69.908% when pulling 96d52200c3f0a435926000dfb4e353fb58ef5913 on qixcheng/upgrade-node-js-8 into 3e0b503ebcb5390f2a71f820012be95bb9831d2c on master.

Coverage increased (+6.4%) to 69.908% when pulling 96d52200c3f0a435926000dfb4e353fb58ef5913 on qixcheng/upgrade-node-js-8 into 3e0b503ebcb5390f2a71f820012be95bb9831d2c on master.


tooltip not well  stylized when use the full last version of jquery ui [css or js conflict ?]

with this contexte (os x safari)
bs alpha 4
jquery 3.1.1
jquery ui 1.12.1
tether
==> the tooltip are  not well  stylized
if i use the same contexte with a jquery ui 1.12.1 build without the tooltip widget
==>  the tooltip are ok
So it's seems this conflict belong to this widget...
somebody have already experimented this ?...
is it a css or js conflict ?
if is not good place for this please move this post elsewhere
Thanks

Probably a conflict with jQuery UI, which we don't integrate with.

Actually, there is a conflict with bootstrap tooltip. Both (jQuery UI and Bootstrap tooltip) uses the same namespace "tooltip()" for triggering tooltip. I'm also experimenting this issue. Was about to post an issue before I found this post. I've tried everything proposed on the web to solved this ( $.widget.bridge('uitooltip', $.ui.tooltip); - var bootstrapTooltip = $.fn.tooltip.noConflict();  $.fn.bstooltip = bootstrapTooltip; ), but none has worked.
I will be glad if anyone can help on this. I'm using it with meteor with<EMAIL_ADDRESS>


Feature/mdm attachments

Load all mdm attachments.
We need to loop through the unordered_map to fetch all it's keys. With the keys, we directly load values by string.

Hm I'm thinking now: this might be unsafe since I'm using an unordered set in phoenix. Reading out the keys like this might produce different results for different indices.
I'm willing to just leave it this way for now until it causes a problem, but a better solution could be to use a callback-based iterator instead:
typedef void (*PxMdmAttachmentCallback)(char const* key, PxMultiResolutionMesh const* mrm);

void pxMdmEnumerateAttachments(PxModelMesh* mdm, PxMdmAttachmentCallback* cb) {
    for (auto& a : mdm->attachments) {
        cb(a.first.c_str(), &a.second);
    }
}

I see your point. Best way for DLLExport would be if it's a list with a class/struct value of the two properties. But I think this would add complexity on your end.
CB would potentially work, but we have a string and an IntPtr. From experience this can't be send together. And a CB just for this is also more overhead.
So I think the current idea is kind of a non-complex result with "interesting" loop usage. ;-)
If it causes a problem, I will report and fix. For now it looks promising.


Select all is broken

Expected behaviour
Select all in inbox should mark all emails as selected
Actual behaviour
K-9 mail crashes
Steps to reproduce

Select all
2.Crash

Environment
K-9 Mail version:
5.008
Android version:
6.0
Account type (IMAP, POP3, WebDAV/Exchange):
POP3

Depending on the type of crash (and whether you installed it from an AppStore), we might be able to resolve this from the AppStore provided crash logs. However, if not, and it's reproducible, it would be useful to see the debug logs. See:  Logging Errors

K-9 has been installed from the Amazon App-Store. It is running on a Sony Xperia Z4 tablet.
I have the developer mode on in Android, I habe adb.exe running on my Windows 10 64 bit PC, but I get stuck in connecting the device (connected via USB)
I downloaded the driver as described but it does not seem to work with 64 bit.
I am not a programmer but certainly willing to help.
Regards,
Bernie


Improve the throughtput of fabric

Description
According to the claim of fabric, 100,000 TPS is the aim to achieve if there are about 15 validating nodes running in close proximity. However, according to my stress testing under production environment, the result is far from that aim:
Describe How to Reproduce
I am using the simplest example2 of chaincode to perform the test, and create 4 peers on 4 different machines. In order to reduce the docker networking overhead as much as possibe, I am using the project calico as the docker SDN solution.
The simple query performance for each peer could reach 7000 QPS per second, while the simple invoke performance for each peer is only 700 TPS. This is my hardware environment: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz 64G DRAM 1T SATA Disk
In terms of transaction per second, 700 is the current status, I've not tested a P2P networking of 15 nodes, even if the throughput could be linear scalable, the peak TPS of current system is only 10,000 , which is only 1/10 of the aim, I'm not sure whether it could be linear scalable given 15 nodes, although it has been proven for 4 nodes, since the overhead of PBFT consensus would grow exponentially with the increasing number of nodes.

@yingfeng we are constantly striving to improve the performance and throughput. The consensus redesign will hopefully yield significant improvements.

So , was it determined by fabric team what contributes mostly to latency ? Network latency ? Consensus overhead ? What is the status of TPS now ?

@christo4ferris is that redesign of consensus protocol completed? Any updates so far ?


Not Work (N64 - Revision 03)

I used an F-1 World Grand Prix cartridge as a donation and only kept the 4kb save chip.
However, there is no signal in the game, I have already tested all the contacts on the cartridge, there are no broken tracks, I have recorded the firmware several times and nothing, not even the test ROM works.
What could I be doing wrong?
My Nintendo 64 board model is 03.
I've already tried powering directly via the USB-C peak and nothing either.

not even the test ROM works

Start there and get the test rom to work first. Check your soldering and signal integrity.

not even the test ROM works

Start there and get the test rom to work first. Check your soldering and signal integrity.

I tried running the test rom several times and was unsuccessful.
I measured each point from the peak to the plate pad and they are all ok. I spent several hours trying and nothing.
Not what could be wrong.

I updated the build environment and made stable releases end of October, please try with those. If those don’t work, the root cause is probably a hardware problem.


New AnimationPlayer bezier editor should be f-curve editor to be useful

@reduz you did a huge improvement on the AnimationPlayer and it's definitely gonna get even better I have a feeling. There are a few usability problems with how things are at the moment (8bf5b50).
The bezier curve editor to be really useful it should be like the f-curve editor in Blender otherwise it's very very difficult to control precisely which needs to be done for good animations. So missing stuff are basically ways to deal with interpolation and snapping. At the moment the key frames are introduced with horizontal default handles and say you want to do a parabola for a jump, it's impossible to do precisely.
Note the default key frames have horizontal handles which means that the X motion is not linear and it's going to be pain to make it linear or at least much more complicated than needed.

Blender solves these things by giving interpolation options per point (line between current point and next one if there is one)

Furthermore there should also be a vector handles type in the list where there's: free, balanced, mirror. I think Blender got these things right, perhaps even the extrapolation method could be looked into, instead of the clamp/wrap loop option.
handle types:

extrapolation methods

If you want this kind of more custom transitions, then just use a regular
property track, which lets you choose from a wider range of curves. Bezier
curves are more meant for traditional, per component animation.
From my part, no further work will be done on this, as I believe it's by
far good enough, so it's up to anyone else who may want to contribute
improvements.
On Fri, Jun 22, 2018, 18:01 Răzvan C. Rădulescu<EMAIL_ADDRESS>wrote:

@reduz https://github.com/reduz you did a huge improvement on the
AnimationPlayer and it's definitely gonna get even better I have a feeling.
There are a few usability problems with how things are at the moment (
8bf5b50
https://github.com/godotengine/godot/commit/8bf5b502223d48ee1b7b88ab8613be7bacbb63d2
).
The bezier curve editor to be really useful it should be like the f-curve
editor in Blender otherwise it's very very difficult to control precisely
which needs to be done for good animations. So missing stuff are basically
ways to deal with interpolation and snapping. At the moment the key frames
are introduced with horizontal default handles and say you want to do a
parabola for a jump, it's impossible to do precisely.
Note the default key frames have horizontal handles which means that the X
motion is not linear and it's going to be pain to make it linear or at
least much more complicated than needed.
[image: image]
https://user-images.githubusercontent.com/1177508/41798785-4424249e-766f-11e8-8875-22050e62ed20.png
Blender solves these things by giving interpolation options per point
(line between current point and next one if there is one)
[image: image]
https://user-images.githubusercontent.com/1177508/41798914-c726aa60-766f-11e8-9cf0-359757520b94.png
Furthermore there should also be a vector handles type in the list
where there's: free, balanced, mirror. I think Blender got these things
right, perhaps even the extrapolation method could be looked into, instead
of the clamp/wrap loop option.
handle types:
[image: image]
https://user-images.githubusercontent.com/1177508/41799003-0f4f65d4-7670-11e8-8187-c1cd3d3f05a1.png
extrapolation methods
[image: image]
https://user-images.githubusercontent.com/1177508/41799019-202aae90-7670-11e8-9900-512f576ab00e.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/19722, or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z28CCZDMkhzAytvhm8nfe9h8ILlyEks5t_VsxgaJpZM4U0a2e
.

Note: the Curve resource does have per-point interpolation options ;)

Bezier curves are really flexible. The only issues I had trying this out were linked to UX: no time snapping and having to use the interface to toggle between linked and free handles, and the absence of snapping on bezier handles (e.g. hold shift to force horizontal, vertical or tangent handle scaling).
Having hold, linear, and bezier interpolations all in one graph is useful for 3d animators: you often use the hold mode for blocking/posing, the first animation phase, then turn everything into Beziers curves. Now you'll still want to do that in a feature-complete program, where you can rig your characters... for 2d animation, it may not be as essential.

@Zylann you mean the curve resource used as bezier curve in the new animation player?
If Godot takes the stance that it isn't meant for animating, but more like just tweaking and quick animations for testing then ya it's fine, if it wants to be more complete then it isn't fine. Again, do a simple experiment of trying to make a parabola work in 2D. You can't do it with the property track because you need to work separately on x & y. I mean sure you can do it, but you'll have to manually key frame each individual frame.
I just noticed that when you select the points on bezier curve track their properties show up in the inspector but if you enter inside of the curve editor the inspector isn't used any longer. I think the key frame properties should be visible when inside the curver editor too, it will be easier to understand what values you want the handles to have if you see them update in real time while in the curve editor instead of jumping in and out of it... should you want to tweak the handles (and possibly key value) in the inspector. And yes, the snapping.
I understand you're not gonna work on improving it any more @reduz, but I think this issue still has merit if only for discussion.

Again, the fact I won't do any further work does not mean anyone else can't. I always just write initial implementation of stuff so others can work on top of them and improve them.
If a feature is really wanted and really necessary, community will work out a way and contribute it. If no one works on it, it's usually because there it's not so important.
If many ask for it and after some time no one contributes to it, I may work on it again. In the meantime I do other stuff. If I were to work on every feature down to the smallest detail every time I implement something, my time would be wasted and this would be a lot less of a community effort.

@reduz yeah sorry, I think you misunderstood, I didn't mean to imply that you should work on it. I'm just starting a conversation about what I think it's missing.

@Zylann you mean the curve resource used as bezier curve in the new animation player?

Actually it's not ;) AnimationPlayer is brand new.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


the istioctl binary is tagged as osx while uname lists darwin

Bug description
IMO the binaries should match the operating system uname.  on Linux - this is linux on OSX this is darwin. The images are currently named osx which makes executing a simple curl operation difficult for those that don't like to run magic install-everything shell scripts that require root from the internet...
Expected behavior
https://gcsweb.istio.io/gcs/istio-prerelease/prerelease/1.4.0-alpha.0
those images should be named istioctl-${GOOS}_${GOARCH}.tar.gz - not some other derived form of these platforms.  This is consistent with nearly every other project release process in the cloud native landscape.
Cheers
-steve

@sdake Go itself https://golang.org/dl/ does <project><version>.<os>-<arch>.<compressor>.

Is there a name for the convention?  I didn't know what to call this convention and couldn't figure out how to search for best practices.
You request <project>-<os>-<arch>.tar.gz which is slightly different than what Go itself uses.
Does anyone know how to test istioctl on a non-OSX Darwin?  It would be a pity if we went to all this work and then discovered we call some OSX-specific API.

@esnible

I am not aware of a name for this convention, but I think you will be hard-pressed to find osx in the majority of darwin binary naming conventions.
I think golang has it right by including the version (my original request was incomplete).
Is there such a thing as a non-osx darwin?
I am not sure we have any ci around our darwin binaries at this time.


Cleaning up the readme

These are cleanups from earlier conflicts that I didn't resolve properly :(

Coverage remained the same at 42.424% when pulling c8f2c3730492b5feb8f47ffd84670cf67a0496cd on capncodewash:master into f554a528ce03d6d72b52f6d03d50ea3bff10ad38 on acrolinx:master.


Should mention .NET Framework Developer Pack prerequisite for Win builds

On Windows 7 Home x64, after manually installing roslyn for omnisharp-vim, I was getting Connection Refused and Could Not Connect errors. I found out by testing in command line that I had to install .NET Framework Targeting Pack 4.7.1.
https://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers
(I also had to downgrade roslyn to 1.32.1 and edit omnisharp.exe.config)
  <runtime>
    <loadFromRemoteSources enabled="true"/>
  ...
  </runtime>

This was resolved by https://github.com/OmniSharp/omnisharp-roslyn/pull/1469 as OmniSharp will now display a popup to install the missing .NET 4.7.2 framework

@filipw Why current omnisharp still require 4.7.1 ?


Added info about uninstalling older powershell module to avoid problems.

@aavdberg Thoughts?

A force does not always work, better to uninstall and install the newer one.

@aavdberg : Thanks for your contribution! The author, @MicrosoftGuyJFlo, has been notified to review your proposed change.

@MicrosoftGuyJFlo changed the document, do you mean something like this?

Looks good.

The note still doesn't make sense.
Uninstall the older Azure Active Directory V2 Powershell Module before you install the understanding. Else you cloud have problems running the powershell command.
Maybe this instead of the note.
Ensure you have the latest version of the Public Preview release of Azure Active Directory V2 PowerShell Module. You may wish to uninstall and reinstall to confirm this by executing the following commands:

Uninstall-Module -Name AzureADPreview
Install-Module -Name AzureADPreview -force

You can enable the password-less phone sign-in preview using the following PowerShell commands:

Connect-AzureAD

In the authentication dialog, sign in with an account in the tenant. The account must either be a Security Administrator or Global Administrator.

New-AzureADPolicy -Type AuthenticatorAppSignInPolicy -Definition '{"AuthenticatorAppSignInPolicy":{"Enabled":true}}' -isOrganizationDefault $true -DisplayName AuthenticatorAppSignIn

Yes now i am happy and you also so let commit it.
Thank you very much for thinking with me.

@aavdberg if you want to make the tweak to the markdown I will approve the change.

Resolved by https://github.com/MicrosoftDocs/azure-docs-pr/pull/57458

Strange that my PR is close by @ktoliver without comment and link https://github.com/MicrosoftDocs/azure-docs-pr/pull/57458 is not working.

@aavdberg because there was no update to the content of the PR after two days I assumed you were ok with what I proposed and went ahead and completed the change in our private repo.


weird web-indexing issue

Search in google with the request
pdb-dev site:wwpdb.org

returns a bunch of weird results with displayed IDs like PDBDEV_PDBDEV_XXXXXXXX or PDBDEV_XXXX

The issue is still there. Might want to diagnose/fix before rebranding to avoid similar links for a new name.


app just wont launch

http://prntscr.com/12ekvr8
no idea what this means or what i can do, but this is what pops up. nothing to do with firewall or virusprograms atleast

If you are running the program from program files try run it from your desktop or run as admin.


Save Tree feature and Nodes labeling

Dear all,
First of all, thanks for developing Arboretum. I was wondering if it was possible to add a feature to save the lineage tree visualized.
Additionally, it would be nice if on the nodes, we could have a small circle with the ID inside, instead of having the ID numbers on the branches.
Thanks!
Ciro

Hi Ciro - this is a great idea, thanks!
For saving the lineage tree - would it be OK just to save the visualisation itself, kind of like a screenshot, or did you have something else in mind? I know @KristinaUlicna was interested in this feature too.

Hi there! Ideally, saving in .svg would be the best option. In this way the trees would have a good quality and the file format would offer the possibility to modify it elsewhere I have tried to save it in .png, but the resolution was too low.

@Ciro1990 - this PR (#95) should enable basic export to SVG.


(alpha) language spec in docs website: exhaustive source-of-truth for users

Description
We would like

inventory of functions
syntax
to be well documented for users to have an exhaustive source of truth, as opposed to the more example-driven documentation.

Original issue as written by Ozzie:
Quinn put together an early Squiggle spec, in LaTeX. I think it would be better to have it converted to Markdown as is possible, then stored somewhere in the Squiggle project.
It could be the case that we want critical grammar in LaTex. If so, that's fine, but I think the majority of the descriptions of available functions should be in Markdown.
Maybe a top-level file called SPEC.md or something similar.
Part of me wants to have a separate Git repo, just to track language-specific requests and stuff, but that probably should be saved for later.

@quinn-dougherty This is less urgent than other stuff.

BNFs are generally fine in markdown without latex rendering, so I could easily be convinced to convert https://github.com/QURIresearch/squiggle/pull/110 into markdown. (pandoc can also easily do a latex/markdown hybrid)
Also keep in mind github can render latex in .ipynb cells, so people reading on github could foreseeably get any benefits of latex.

If there's much latex, then .ipynb could work. It's much less common/available than markdown though.
Some markdown could allow for some latex, like with $$.
Markdown would make it fairly trivial to add to our docs/blog, for example.

I think there are two things:

there's the #26 / #110 material which should go in the direction of reference grammar to aid in parser development
there's what I think you wanted to raise in this issue which is exhaustive source of truth that users care about.

A .mdx file for docusaurus to render is undoubtedly the correct move for the latter, and latex may be unnecessary (though I'm sure it's trivial to get docusaurus to render latex from .mdx files).

@OAGr it looks this has been begun https://github.com/QURIresearch/squiggle/blob/staging/packages/website/docs/Functions.mdx but could use another pass right before alpha release to make sure it's an exhaustive source of truth.

@OAGr it looks this has been begun https://github.com/QURIresearch/squiggle/blob/staging/packages/website/docs/Functions.mdx but could use another pass right before alpha release to make sure it's an exhaustive source of truth.

Yea, we definitely have more work to do here. That pass is fairly far from being fully done.

Part of me wants to have a separate Git repo, just to track language-specific requests and stuff, but that probably should be saved for later.

Precedent: rescript-lang keeps a syntax repo separate from the rescript-compiler repo.
However, I think we're better off with either a spec subdirectory at the top level and we have issues and PRs against it for discussion, or just beefing up the Internal folder of the docs website.
Unless we stop monorepo-ing altogether in the next few months, of course. But in that world, I think I'd still want specification discussion and changes to be in the same repo as the rescript codebase.

#401 incremented on this.

I think this aspect of documentation is in a good spot for alpha. I'm gonna close.


Replace project icon and website in Directory.Build.props

Just got Jasper stuff in there now

Temped for now.


fix(ecdsa): don't pad ecdsa secret MPIs

I've broken out the MPI padding-related part of #304.
I believe this fixes cases where the secret key MPI starts with a zero byte, but very much invite scrutiny.
For testing, I increased the number of rounds in key_gen_ecdsa_p256 to include the first test case where the generated secret key has a leading zero byte. Without the changes in this PR, that test fails.

this still confuses, but if the tests pass I am happy

My mental model is that right-padding changes the value of the MPI, while left-padding doesn't. But I also remain somewhat confused.
I still want to do some manual interop testing between implementations with this PR (and with the released version) to see if this generates any new insights for me.

Change of plans: I now think the secret can be left padded, but there's no upside to padding the secret key material that I can figure out.
So i now dropped padding for the secret key material, and only left-strip on ingress (i'm not sure if that's necessary for anything, but i can't currently imagine how it would cause problems).
(Unrelated note, while I'm thinking about this: The MPIs for public key material are a different beast, because they form the basis for calculating OpenPGP fingerprints. The rpgp code takes care to roundtrip ECDSA public key MPIs, and that is probably important, especially if rpgp interacts with public keys that have malformed (but otherwise working) public MPIs. Normalizing a public MPI will "break" a key's fingerprint, so that's good to avoid.)

Documenting my manual test artifacts and findings.
I generated two NIST P-256 keys, one "normal key", with GnuPG 2.4.3
$ gpg --full-generate-key  --expert
[..]
-----BEGIN PGP PRIVATE KEY BLOCK-----

lHcEZeNMwxMIKoZIzj0DAQcCAwTlsFhoWA5JnALLxccjtAyRYPFJjw0KEW8qG5qT
DV6e0z52JWuVfL/XQ/wvmZAau0fBFqZ1koMF5fmxL7GViHziAAEAsgslUWseTo59
38y0E48xKJUWkBB+eAHKT+mFPaF7BQQMm7QQcDI1NkBleGFtcGxlLm9yZ4iTBBMT
CAA7FiEEGY9/XsVNtsbeojWflQk5hYtvEKoFAmXjTMMCGwMFCwkIBwICIgIGFQoJ
CAsCBBYCAwECHgcCF4AACgkQlQk5hYtvEKoTMQD+OciUJCCfUbf9ipqo3xWadQOL
8LN5uecfGTsTGal+zYsBAIw+skq/S5wGMpfwQ6oas7XzelqlHGPws6+cXHPL3WRG
=LIJH
-----END PGP PRIVATE KEY BLOCK-----

This TSK is stored as p256.tsk.

And one with rpgp. It is specifically selected for having a "short" private key value (the leading byte of the private key is 0). This key is output 175 in the loop in key_gen_ecdsa_p256:
-----BEGIN PGP PRIVATE KEY BLOCK-----

xXYEZeNGgBMIKoZIzj0DAQcCAwSIG45JeY7X0++T/J0v/3u3NO37kCwiVwsDIZ2T
GFW24MLtMC8QcEP2tD4Enru25PERuz/YAIRTeLYJbPPEyed/AAD45EVwSxO+Nqy/
T8/og2nt++oZ21j7A0Yurb+QDHdHvxFVzRhNZS1YIDxtZS1lY2RzYUBtYWlsLmNv
bT7CiwQQEwgAMwIZAQUCZeNGgAIbAwQLCQgHBhUICQoLAgMWAgEWIQSdxjQSWkA1
xKPkUri7Su2kIgtiFQAKCRC7Su2kIgtiFQcMAP9qhv0BCespURZegLEX6CTZPIZH
finNAcanc8rAgT/4tAEAngW0NjeaaPzI7125apSmt/TtV1hgCC9FSmZxD1gLETnH
XQRl40aAEgorBgEEAZdVAQUBAQdAUhZ1KNCjdkweuWQbv/3OjsaTPQQBY6pUN/UR
UJ7GGUQDAQgHAAD/cGSnhjng0Jty6NYE7RLaxRg3XCPLztqLbubs+rx/ATASyMJ4
BBgTCAAgBQJl40aAAhsMFiEEncY0ElpANcSj5FK4u0rtpCILYhUACgkQu0rtpCIL
YhVWLwD/Xh1t+INWQcpokxrj5QjZRjPIRpkC6kAPZ5fp4YEw+zAA/315xxy4S44I
UqvY1zNknrtNBJ//8fMATBPXz7BAu3bw
=B6x3
-----END PGP PRIVATE KEY BLOCK-----

This TSK is stored as short-p256.tsk.
Notice the short esdsa_secret value:
Secret-Key Packet, new CTB, 2 header bytes + 118 bytes
    Version: 4
    Creation time: 2024-03-02 15:32:16 UTC
    Pk algo: ECDSA
    Pk size: 256 bits
    Fingerprint: 9DC634125A4035C4A3E452B8BB4AEDA4220B6215
    KeyID: BB4AEDA4220B6215

    Secret Key:

        Unencrypted

    00000000  c5                                                 CTB
    00000001     76                                              length
    00000002        04                                           version
    00000003           65 e3 46 80                               creation_time
    00000007                       13                            pk_algo
    00000008                           08                        curve_len
    00000009                              2a 86 48 ce 3d 03 01   curve
    00000010  07
    00000011     02 03                                           ecdsa_public_len
    00000013           04 88 1b 8e 49  79 8e d7 d3 ef 93 fc 9d   ecdsa_public
    00000020  2f ff 7b b7 34 ed fb 90  2c 22 57 0b 03 21 9d 93
    00000030  18 55 b6 e0 c2 ed 30 2f  10 70 43 f6 b4 3e 04 9e
    00000040  bb b6 e4 f1 11 bb 3f d8  00 84 53 78 b6 09 6c f3
    00000050  c4 c9 e7 7f
    00000054              00                                     s2k_usage
    00000055                 00 f8                               ecdsa_secret_len
    00000057                       e4  45 70 4b 13 be 36 ac bf   ecdsa_secret
    00000060  4f cf e8 83 69 ed fb ea  19 db 58 fb 03 46 2e ad
    00000070  bf 90 0c 77 47 bf
    00000076                    11 55                            checksum

For convenient handling, we extract the corresponding public keys/certificates:
$ cat p521.tsk | rsop extract-cert > p521.cert
$ cat short-p521.tsk | rsop extract-cert > short-p521.cert

Testing with the regular key:
$ echo "hello world" | rsop sign p521.tsk > sig

$ echo "hello world" | rsop verify sig p521.cert
2024-03-02T16:02:38Z 198f7f5ec54db6c6dea2359f950939858b6f10aa 198f7f5ec54db6c6dea2359f950939858b6f10aa mode:binary

$ echo "hello world" | gpg --verify sig -
gpg: Signature made Sat 02 Mar 2024 05:22:58 PM CET
gpg:                using ECDSA key 198F7F5EC54DB6C6DEA2359F950939858B6F10AA
gpg: Good signature from<EMAIL_ADDRESS>[ultimate]

$ echo "hello world" | sqop verify sig p521.cert
2024-03-02T16:22:58Z 198F7F5EC54DB6C6DEA2359F950939858B6F10AA 198F7F5EC54DB6C6DEA2359F950939858B6F10AA mode:binary

The signature generated with rsop can be verified with all implementations.
(Not shown) A signature generated with other implementations can be verified with rsop.

In the analogous test with short-p521.tsk/short-p521.cert, without the patch in this PR, when a signature is generated with rpgp, it cannot be successfully verified with any implementation (including rpgp).
With the patch in this PR, sign/verify tests for this "short key" work as expected between the implementations, in various combinations.

I've removed the stripping, which happened at the serialization side.
If there's padding during export, then I'd say something went wrong before, and we should fix whatever caused us to hold a padded secret key MPI.
(The manual tests remain happy with this patch.)


Execution failed for task ':react-native-fabric:prepareComAndroidSupportAppcompatV72301Library' - on Android Only

:react-native-fabric:prepareComAndroidSupportAppcompatV72301Library FAILED
...
...
Execution failed for task ':react-native-fabric:prepareComAndroidSupportAppcompatV72301Library'.
> Could not expand ZIP 'C:\Users\MyUser\AppData\Local\Android\sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.0.1\appcompat-v7-23.0.1.aar'.

Getting this issue while building for Android only.
The Android SDK directory has full permissions.
My app's directory has full permissions, including the node_modules.
I have
react-native-cli: 1.3.0
react-native: 0.39.2

Any one faced this issue so far ?

As i noticed, this issue is SOLELY related to react-native.
Got it resolved 👍
Just clean your project at least once, before running it for android.
First
cd android
gradlew clean

and then run this from the projects's main directory
react-native run-android
You are good to go !


Critical Error Object Reference not set to an instance.

I got this log today while letting the city run. I hope this helps. I saw someone reported something but they didn't give you specific on the thread.
LogReport_24-07-16_13-29.zip

Hey,
Does this consistently happen or was it a one-time thing?


1078 LegacyClientSecret support in Client and MigratingKeychainCompatStorage

The legacyClientSecret is used in the old SDK to log users in.
On upgrading from old to new SDK there are use-cases where old SDK endpoints need to be called using the clientSecret

All the changes in here are included in #5 are they not?


[Nephilim-Legende] Added incarnation period

Changes / Comments
Added incarnation period (Empire serbe)
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[x] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Seperate Outline for the Country part

I want to show 2 Outlines

How is this possible? I can do the Outline for phone number field but I can not find any decoration for the Country part

I'm also needing to be able to do the same.

Facing this same issue at the moment


impl H2G for TE curves

Description
Implement hash to group features for twisted edwards curves

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

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

Thanks for finishing this up.
On a related note:
Arkworks at the moment only have the trait definitions for Wahby-Boneh hash-to-group: https://github.com/arkworks-rs/algebra/tree/master/ec/src/hashing/curve_maps
We cannot really use those until the actual WBParams are defined.

For both SW and TE, y has a sign bit. So they can share a same API.

so basically we can have HashToGroup: ModelParameters instead? and unify the two TEHashToGroup and SWHashToGroup, correct? @zhenfeizhang


Put SCRAM methods under try/except in kafka_protocol.py

Looks like an indentation error when SCRAM methods where added to kafka_protocol.py

Hello,
Thank you for the PR.
Is this supposed to fix any issue? As far as I can tell, and as the comment is suggesting, the try/except logic is there to implement some Kafka protocol requests/responses that would be available in the kafka-python lib when a release is cut. In the meantime (which has been 3years+, but with the latest changes on the kafka-python project, there is still hope), and to avoid asking our users to pin the kafka-python lib version to a git commit, we decided to get it back in this project.
On the other hand, the DescribeUserScramCredentialsResponse_v0 and others implementations are our own, and not part of the kafka-python lib, hence the reason why they are not part of the try/exept logic.

Hello,
Yes I see the point and effectively, it seems there is a new hope on kafka-python side. However it seems that the project while revived is still not releasing new versions for now.
Of course it fixes some issues :-). From what I've seen there is curently two problems :

First we see errors related to DescribeUserScramCredentials*v0  and AlterUserScramCredentials*v0 in kafka_manager.py when using any kafka-admin modules in ansible 2.13 to 2.16. Schemas inside moved blocks are relying on some custom types definition into try/except block logic like CompactArray, CompactString, CompactBytes, TaggedFields.
=> Maybe we could import them from kafka-python for code outside of try/except block but as we have a custom one into try/except, it may be confusing to do both.

Secondly, we see headers errors on kafka (at least on kraft enabled kafka 3.6.0 clusters) when using kafka_user(s) module to manage SCRAM users. It is related to FLEXIBLE_VERSION logic allowing to shift from RequestHeader to RequestHeaderV2 which sits into try/except too. Moving DescribeUserScramCredentials*v0  and AlterUserScramCredentials*v0 into try/except block solves it too.

I opened #163 where I removed the logic around using stuff from kafka-python if it is there. Can you please try it and let met know whether if fixes your issue or not?

I merged #163 and will now close this one, please let me know if it does not fix your issue.


DataSource pagination

I was using this in my project to handle pagination, which was trying to follow the Relay spec for pagination algorithm and I though it would be helpful to support in DataSource.
This adds a ton of complexity, so I'm happy to iterate on this if you want changes. I also believe the documentation could be improved, but I didn't want to commit a ton of effort if we need to change this.
Relies on #49 because I forgot to export the Cursor type.

This is exactly the topic I was working on :D
I agree that some utility functions around Connection object would be nice!

I believe "slice" can be made much better and more efficient for scenarios where overfetching from the database is okay. I just wanted to get this proof of concept submitted so it's not hidden in my project.

This is what I was about to go with:
use async_graphql::{Cursor, FieldError, FieldResult};
use std::convert::TryFrom;
use std::ops::Range;

#[async_graphql::InputObject]
pub struct ConnectionArgs {
    #[field]
    pub first: Option<i32>,
    #[field]
    pub after: Option<Cursor>,
    #[field]
    pub last: Option<i32>,
    #[field]
    pub before: Option<Cursor>,
}

impl ConnectionArgs {
    pub fn get_range<E, T>(&self, nodes: &[(Cursor, E, T)]) -> FieldResult<Range<usize>> {
        let first = self.first.map(usize::try_from).map(Result::ok).flatten();
        let last = self.last.map(usize::try_from).map(Result::ok).flatten();
        let len = nodes.len();

        match (self.after.as_ref(), self.before.as_ref()) {
            (Some(after), None) => {
                let start = nodes
                    .iter()
                    .position(|(cursor, _, _)| *cursor == *after)
                    .map(|i| i + 1)
                    .unwrap_or(0);
                let end = (start + first.unwrap_or(len)).min(nodes.len());

                Ok(start..end)
            }
            (None, Some(before)) => {
                let end = nodes
                    .iter()
                    .position(|(cursor, _, _)| *cursor == *before)
                    .unwrap_or(len);
                let start = end.saturating_sub(last.unwrap_or(len));

                Ok(start..end)
            }
            (None, None) => match (first, last) {
                (Some(first), None) => Ok(0..first.min(len)),
                (None, Some(last)) => Ok(len.saturating_sub(last)..len),
                (None, None) => Ok(0..len),

                (Some(_), Some(_)) => Err(FieldError::from(
                    "[ConnectionArgs] first and last are mutually exclusive.",
                )),
            },
            (Some(_), Some(_)) => Err(FieldError::from(
                "[ConnectionArgs] before and after are mutually exclusive.",
            )),
        }
    }
}

@phated Thanks for your PR, the support of the relay specification is a big step forward.😁


MacOS Saving Problem

When trying to save an image, MacOS Ventura asks for permission for Ditherista to access 'Home', 'Downloads', 'Desktop', or any filesystem folder each time a save is attempted.
I have tried going into system settings in MacOS, Privacy & Security settings, and selected Files and Folders > Ditherista > and each setting for those folders are enabled, but the problem persists.

I managed to replicate the behavior. It seems to be related to the File dialog - I'll try compiling with a newer Qt version and see if that helps.
Workaround: dragging from Ditherista to the e.g. the Desktop or Documents doesn't trigger this warning.

fwiw i am so grateful for this software and thank you for your time! didn't think to drag--will use this until a new release is rolled out!

It seems building with the latest Qt version 6.6.1 solves the problem.
Please find a new build here: https://github.com/robertkist/ditherista/releases/tag/2023-05-12b
Let me know if this fixes the problem :)

This looks to have worked! Loving it! Thank you.


Mafalda SFU

Hi piranna,
I hope you're doing well! Big thanks for your recent pull request. Mafalda SFU it's really caught our eye.
We noticed it uses mediasoup, a tech we're big fans of. So, we're thinking Mafalda SFU could be a great fit in our Media Servers section. Could you please moving it there?
We're all about open-source projects, and Mafalda SFU looks promising, even if we don't find its repo (source code) on github. It could be cool to see how it works with other projects like Edumeet or even better on MiroTalk SFU. Exploring that could give us some insights into how practical and useful it might be.
Thanks a bunch for your work on this.
Cheers!

Mafalda SFU it's really caught our eye.

Glad you like it :-)

We noticed it uses mediasoup, a tech we're big fans of. So, we're thinking Mafalda SFU could be a great fit in our Media Servers section. Could you please moving it there?

Yes, it uses Mediasoup, although not sure if it should go to the Media Servers section. What Mafalda SFU does, it's a wrapper on top of Mediasoup that offers the same API, but internally manages the vertical and horizontal scalability, so yeah, it should go to the same section where Mediasoup is, but the fact is that Mediasoup should not be considered as a media server by itself because it works mostly as a library... so in fact, it's Mediasoup the one that should be in the SFU category, meanwhile EduMeet or Jitsy should be in the Media Servers section... What do you think?
Said that, Remote-Mediasoup-server could be considered a media server itself, since it's a standalone process offering a WebSockets API, just only that's not intended to be used by clients but instead but by tools or app servers.

We're all about open-source projects, and Mafalda SFU looks promising, even if we don't find its repo (source code) on github. It could be cool to see how it works with other projects like Edumeet or even better on MiroTalk SFU. Exploring that could give us some insights into how practical and useful it might be.

Mafalda SFU is closed source, although some parts are open source. I have been suggested to open source some parts of it, still considering about that. You have some documentation on the project website, but meanwhile I'm writing some drafts about how it works to be published soon. Also I have a pending article about how to migrate EduMeet to use it (spoiler: 5 minutes of work, and less than 25 lines of code :-) ), but didn't know about MiroTalk, definitely something to look for, thanks! :-D

We concur that relocating MediaSoup alongside Mafalda SFU in the Library section is appropriate.

Ok, should I move them, then?

Considering that EduMeet and Jitsi are WebRTC applications utilizing SFU technology, we believe their current placement is fitting.

That's not like that... EduMeet is a videoconference app, the same as OpenVidu, the fact they use a SFU is an implementation detail. In fact, OpenVidu started build on top of Kurento, that's a MCU. OTOH, Jitsi is a suite of packages, not just only a media server but a full technology stack itself.

Although Mafalda SFU seems like an excellent product to us, and we are eager to see it in action. the reason we are aiming for Open Source here and not for Closed Source are the following:

I'm a proud advocate of Open Source and Open Standards myself, Mafalda is in fact the first product I'm developing closed source because it got a lot of commercial interest on its beginning. Regarding your points, I agree on most of them regarding Mafalda SFU, except for the Vendor Lock-In and Incompatibility with Open Source points, since Mafalda SFU have by design the same API of Mediasoup, so you can migrate both directions at any time.

We believe that the incorporation of Mafalda SFU could propel it to a revolutionary step forward, further enhancing its capabilities and solidifying its position as a cutting-edge solution, as well as giving even more visibility to Mafalda SFU!

Definitely, I think so too :-)

While the most fitting category for Mafalda SFU would be in the libraries section alongside mediasoup, our repository aims to gather all open source projects associated with WebRTC. We appreciate Mafalda SFU, but given its closed-source nature, we are uncertain if it aligns with the repository's intent. If there is any interest or potential in the future to open source Mafalda SFU, we would gladly welcome its inclusion here with enthusiasm!

I think It would make sense to have a Showcase of both open and closed source project, cleirly identifying them. There are no so much of any of them in any case.

I think It would make sense to have a Showcase of both open and closed source project, cleirly identifying them. There are no so much of any of them in any case.

Our fundamental mission of this repository is to meticulously curate an expansive collection of exclusively open-source projects, ensuring accessibility to the broader community. These projects stand as invaluable educational assets, empowering developers to refine their skills and actively contribute to the ongoing enhancement of these cutting-edge initiatives. Our overarching objective is to streamline the maintenance process by establishing a repository renowned for its top-tier projects, capable of competing with closed-source counterparts in prominent sectors such as Google Meet, Zoom, Teams, and other industry leaders.

I think you are confusing closed source / privative, with online silos, that are the real cáncer of Tech stacks today...

Given your enthusiasm for WebRTC and your contributions to open-source projects, we'd like to make a special exception for you. Feel free to relocate Mafalda SFU under the Libraries category,  and we are enthusiastic about the prospect of continuing this journey together. 😉

Given your enthusiasm for WebRTC and your contributions to open-source projects, we'd like to make a special exception for you. Feel free to relocate Mafalda SFU under the Libraries category, and we are enthusiastic about the prospect of continuing this journey together. 😉

Done, also moved Mediasoup there.
For easier maintability, it should be changed for a Markdown table, it's easier to modify and update...


message_edit: Tune message-edit buttons and layout.

This PR places the message-edit buttons on their own line along with the editing timer, leaving the format buttons to their own line above.
Note that there's nothing fancy about how the lines of buttons are created: they're each just flex containers, each behaving as a block with regard to the other.
There are also some Frankensteined button styles in effect here; they draw on colors and styles from the modal buttons (e.g., on the Delete message modal), as well as the color and dimensions of the new send button to try and suggest a parallel between sending a message and editing and saving it later.
CZO discussion: None public yet; will update this.
Screenshots and screen captures:

Source View, Before
Source View, After

Editing, Before
Editing, After

Time's Up, Light
Time's Up, Dark

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

lgtm, though I note one thing we consider on our interaction design TODO list is whether we want to make the "Save" input be disabled if you haven't made any changes yet. I kinda feel like that might be more annoying than helpful depending on the exact styles; from an editor standpoint, you probably don't care if you click into edit, fiddle a bit, and then happen to save a version that is what you started with, and it might be a distraction to make it feel like you should need to click a different button if you do that.

It feels weird to me to have no hover effect at all on the "Cancel" button in dark theme. This is not an issue in modals, because the button there changes size.
Is there something from @terpimost 's designs we can draw on to fix this?

We can probably just do what happens in light mode, and slightly shift the background color so that it gets a bit lighter in dark mode.

lgtm, though I note one thing we consider on our interaction design TODO list is whether we want to make the "Save" input be disabled if you haven't made any changes yet. I kinda feel like that might be more annoying than helpful depending on the exact styles; from an editor standpoint, you probably don't care if you click into edit, fiddle a bit, and then happen to save a version that is what you started with, and it might be a distraction to make it feel like you should need to click a different button if you do that.

I think that's probably unnecessary. Right now, it's disabled because you cannot make a save. I think there's nothing wrong with having Save continue to work as it does, which is to silently do nothing (right?) if there are no changes.

How did you pick the spacing between the two buttons? They feel a little tight together to me, but if we're matching something else, that's fine.

Yeah, I'm happy with leaving the "Save" button enabled when no changes are made. It feels pretty natural.

That's all the feedback I've got! Looks good otherwise.

How did you pick the spacing between the two buttons? They feel a little tight together to me, but if we're matching something else, that's fine.

I actually opened them up a bit further than they were previously. In the name of expedience,I eyeballed the value, based on what was there before and what seemed to me a bit more comfortable.

Just pushed a fix that does a 3% lightness shift in dark mode on Cancel, just like the 3% shift in light mode.

Merged, thanks @karlstolley!


Project Feedback!

:+1: Nice work Gabby. It's great to see how far you've come after the first two weeks of the course! This past week we focused a lot on navigation with intents, customizing the App Bar / ToolBar, debugging, and using device SDK's (like camera and maps). We also got more practice sending network requests and passing parameters to the Twitter API. We hope you found this assignment useful and learned a lot while building your own Twitter app!
We put together a detailed Project 3 Feedback Guide here which covers the most common issues with this project. Read through the feedback guide point-by-point to determine how you could improve your submission.
Let us know if you have any other thoughts or questions about this assignment. Next week we'll be extending our Twitter Client to learn how to use tabbed navigation and add extra functionality.

:+1: Nice work Gabby. This week we covered some of the more advanced topics in Android with Fragments and Persistence, spent some time focusing on making polished apps with Material Design, Styles, Themes, and Drawables, and also worked with Parse as a backend for our Chat Client Lab. Fragments in particular is a challenging part of Android so we hope getting practice using Fragments in your Twitter app has helped solidify your knowledge of how they work.
We put together a detailed Project 4 Feedback Guide here which covers the most common issues with this project. Read through the feedback guide point-by-point to determine how you could improve your submission.
We hope you enjoyed the course and learned a lot in the process and look forward to see what you build for your final internship project!


PHP 8.2 deprecation warnings

Description
PHP 8.2 throws deprecation warning on using ${var} in strings.
Steps to reproduce
Just use PHP 8.2
Expected Behavior
No error shown.
Actual Behavior
PHP message: PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/starfish/vendor/typesense/laravel-scout-typesense-driver/src/Typesense.php on line 195

Metadata
Typesense Version: any
OS: linux

Hi @laacz,
Deprecation warning is fixed.


Flush the monitor's read region on stop if and only if it has already been initialized

In acquisitions where we call
runtime.start()
runtime.stop()

without inspecting the data at any point in between, the read-region flush on acquire_stop initializes the monitor. Calling this multiple times fills the monitor without ever flushing it, causing the runtime to hang. This fixes that problem.

Confirm that the test in the new file repeat-start-no-monitor.cpp will hang without the change made in acquire.c.

Closed in favor of #44


Add order as module property and use it when is present before using name for ordering modules

Allows to set up an order for listing the modules in the home page and the header menu. Also it renames the App inspector to just Inspector as it Apache Brooklyn can manage more than applications.

Thank you for the comments @grkvlt. I merge the code addressing


New Rule for AWS::ECS::CapacityProvider resource

*cfn-lint version: 0.24.3
Description of issue.
Fails to validate AWS:ECS:CapacityProvider resource. Cloudformation support added recently.
E3002 Invalid Property Resources/Cluster/Properties/CapacityProviders
E3001 Invalid or unsupported Type AWS::ECS::CapacityProvider for resource CapacityProvider

CapacityProvider:
    Type: AWS::ECS::CapacityProvider
    Properties:
      AutoScalingGroupProvider:
        AutoScalingGroupArn: !Ref AutoScalingGroup
        ManagedScaling:
          Status: ENABLED
          TargetCapacity: 100
          MinimumScalingStepSize: 1
          MaximumScalingStepSize: 100
        ManagedTerminationProtection: DISABLED

cfn-lint 0.24.3 was released in Sep 2019
pip3 install cfn-lint --upgrade


Does the genieacs-sim be able to login by using https://ACS_IP:7547 ?

My Genieacs-CWMP is assigned SSL certificate but I can't use genieacs-sim to register successfully by using the https://ACS_IP:7547.
Did I do something wrong or genieacs-sim can not register by using HTTPS?
My SSL certificate is self signed not by the trust CA.
Thank you for answering.
Mason

If your SSL is invalid, you need to switch to node not checking SSL.
Check it out here: https://github.com/genieacs/genieacs-sim/issues/22


Extremely large logs that don't seem to be rotating.

RaspiBlitz 1.7.0 - but running bitcoind v22.
I have extremely large logs that don't seem to be rotating.
The files syslog.1, auth.log.1, and daemon.log.1 start with entries at Sep-28 - about 3 weeks ago at this point, which is when I last rebooted.
Not sure what else you'd like for debugging purposes ... let me know if there's something I can add (also I'm not sure what /var/log should look like on a raspiblitz with properly functioning log rotate...)
Attached files:

debug.log
logrotate service status
ls -l of /var/log
rsyslog service status

I also ran out of disk spacfe with those files in /var/log. Journal was also 1GB big. In my case my daemon, syslog and auth log was at 2GB each and with 15GB overall my sd card was full. Deleted the files and restarted rsyslog to fix the problem for now.
this should help for the journal part:
sudo journalctl --vacuum-size=100M

Thanks. Will revisit this issue for v1.8 release.

Found some ways to reduce log load in the future:
Some apps like mempool have a heavy debug logging - have to go deeper there for v1.8.1
May 17 17:26:10 raspberrypi node[248305]: May 17 17:26:10 [248305] DEBUG: New mempool size: 4161 Change: 10
May 17 17:26:10 raspberrypi node[248305]: May 17 17:26:10 [248305] DEBUG: Mempool updated in 0.288 seconds
May 17 17:26:12 raspberrypi node[248305]: May 17 17:26:12 [248305] DEBUG: Updating mempool
May 17 17:26:12 raspberrypi node[248305]: May 17 17:26:12 [248305] DEBUG: Fetched transaction 1 / 8

Also the 00infoBlitz.sh has still some sudo calls to gather information - those also produce quite some logging footprint in the auth.log - for v1.8.1 those information gatherings should move into the background script (where sudo is not needed) and infodisplay should just get values from cache. Also makes sense for the WebUI to get access to those status informations.

Why are those logs on the SD at all? Can't they be moved to the SSD by default like other logs?

Considering that the SSD is/might not always be connected/available so far we did not moved the logs.


BSQL Q28 fails multi-node SF10K with UVM off

BSQL Q28 fails at SF10K on the 17-node cluster with TCP and UVM off ("existing" allocator for blazing)

Resolved


Spacing broken when search bar is open on filled order and open orders section of portfolio in mobile

There should be the same amount of spacing below the dropdown here as there is above. Please check throughout all pages of portfolio and account summary

looks good. closing


Public VM [Tracking ticket]

Roadmap
Development stages

AVM.mini Minimal instruction subset, no gas tracking
AVM.alpha  Nearly complete instruction set without nasty operations, but with gas tracking & reverts
AVM.v0 Full VM with complete instruction set and integration
AVM.v1 Optimal simulation and optimized implementation

## Tracking subtickets
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/3312
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/3309
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/3310
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/3311
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/3313
- [ ] https://github.com/AztecProtocol/aztec-packages/issues/3314

## Related tasks
- [x] Brillig > Public VM transpiler (for e2e starting with `AVM.alpha`)
- [x] Noir > Brillig compiler modifications for Public
- [ ] Bytecode validation circuit

old


RUN-2020: Handle global creation events properly

Re-initialize things on new windows and also root frame navigation: https://linear.app/replay/issue/RUN-2020#comment-c2aba5a0
This is probably also the culprit behind SCS-1187.
Improve navigation events not showing up (will need a follow-up): https://linear.app/replay/issue/RUN-1100/fix-chromium-navigation-events-they-dont-always-show-up

Tests were looking good but not anymore ❌

After this commit, these tests stopped working.
→ RUN-2239

Approving from the SCS-1187 standpoint. Verified this change adds the annotation hook after navigations.

Some tests seem to fail during recording. I'll need to double check that by Monday 🤷

Still working on blocker RUN-2239.

We are unblocked. Things work fine again. The underlying race condition (RUN-2239) might still occur in some cases, but is not blocking us anymore.
Since @ryanjduffy already tested this and said it works fine, I am going to go ahead and launch the nuke 🔴


Cancel message sending to the chat

Hi, I'm new to the Slack API and wanted to ask for your help.
I just want to know is it possible to catch the user's message and prevent it's sent to the chat if needed? (e.g I want to filter some messages by content)
Maybe, there are some alternatives I can do?

Hi @koren-v, I'll answer this question at https://github.com/slackapi/python-slack-sdk/issues/1186 ! (please avoid cross-posting)

@seratch Sorry, thanks for your answer!


Restore nvidia usage of latest driver

a6aa59dbd0306947475e2594d67ee66472b64acc
changed 440 to latest, this commit
updates build.sh and initgfx_device.db
accordingly.

Thanks @jsm222


Bug in PelcoBus::send_raw

https://github.com/Pixelbo/Pelco_And_Arduino/blob/5c4c4367be48858c0e1fbb1efee25626cd4064a0/src/PelcoBus.cpp#L104
messFromCamera shold be instead raw_command; indeed, the command is properly sent, but wrong string is displayed in serial monitor:
Cam 1: Wrong checksum, updating to right checksum
Cam 1: sending message 00 00 00 00 00 00 00

Indeed, thank you for noticing! It will be fixed in the next release.


Image and set-up flatbradley

Flatbradley doesn't have an OS installed so that 8cores, 16GB ram, a 970m GPU and some storage thats offline at the moment.
We should get that operational

Done!


order and payment creation order

The documentation provided here suggests order creation should be performed after payment is complete.
https://github.com/commercetools/commercetools-adyen-integration/blob/master/extension/docs/WebComponentsIntegrationGuide.md#web-components-integration-guide
Is there any particular reason you suggest that flow?
The common and I believe best practice is to create an order first and then update its status after the payment is complete.

@jakinluk This practice makes sure that order is created only payment is successfully authorized by Payment company. Otherwise we need to update/cancel the order after payment is authorized/rejected, which means extra traffic over the network is required.
Can you raise out any use case which requires order creation beforehand?

@leungkinghin there are many reasons for the order to be created as a first thing.
We know the payment process is in its nature an asynchronous thing, right?
Consider following scenarios

the payment gateway had a delay in the payment processing,
there was an issue on the webhook side, and there was an error while handling notification about payment completion and the order couldn't be created.
In those scenarios, the customer is left alone confused, without an error message, without an order, and still with a non-empty cart.

But if we place an order first, the customer will find that order in the orders tab, the order with the status 'awaiting payment'.
According to:

Otherwise we need to update/cancel the order after payment is authorized/rejected, which means extra traffic over the network is required.
Updating, canceling, or changing the state of the order is something natural for the Order model in the context of an e-commerce subdomain. Extra traffic over the network is not an argument at all.

I would reference that discussion here as well https://softwareengineering.stackexchange.com/questions/319658/do-you-create-an-order-before-or-after-payment-on-an-ecommerce-site

Hi @jakinluk, please check the FAQ section here since it should address your question.

@butenkor thanks. I went over it.
I won't make you change your mind but the possible issues for https://github.com/commercetools/commercetools-adyen-integration/blob/master/docs/FAQ.md#what-to-consider-when-creating-an-order-after-a-successful-commercetools-payment- are far way more critical than those listed here: https://github.com/commercetools/commercetools-adyen-integration/blob/master/docs/FAQ.md#what-to-consider-when-creating-an-order-before-a-successful-commercetools-payment-, which are honestly stretched arguments.

If the shopper never finishes (according to the stats most shoppers jump out of checkout when they actually have to pay) or cancels a payment the reserved stock with an order will not be released and thus there is a risk that simple automation (or even many users) will run the shop out of stock.
There will be orders which will never be paid but shown in commercetools Merchant Center dashboard as revenue - which is not true.
Not paid orders will falsely boost the concept of “best sellers” index of its products.

I do not know how small stock we should have or how many of failed payments you expect, but with a standard rate of failed payments and stock having a sensible quantity is not a problem. BTW unpaid orders expire and stock should be restored.

Creating an order does not allow you to modify the original cart anymore. What happens if a shopper forgot something and would like to change the cart just after the initiation of the payment?

Usually, you need to cancel an order and create another one.

How to handle vouchers that can be applied only once but the shopper decided not to finish the payment and change the cart instead? It might require a new cart based on the old cart. The creation of a new cart with the same item might be an issue if an item had only stock = 1 and it has been used in not paid order already.

And here as well, usually, you need to cancel an order and create another one. I do not know how Commercetools work with vouchers for canceled orders but I expect the voucher will be still valid.
I personally think the approach you suggest might be very harmful. Think about how the system behaves, in case you have an error on the asynchronous piece of code responsible for creating an order. What would be the user experience?  What do you will to if due to that error hundred of customers were charged but the order wasn't created? What will then customers do? call support or maybe even worse they will try to make another payment?

I do not know how small stock we should have or how many of failed payments you expect, but with a standard rate of failed payments and stock having a sensible quantity is not a problem. BTW unpaid orders expire and stock should be restored.

It is more about for example your competition or script kiddies which with a simple script can just run out your store out of stock, for all the products.

BTW unpaid orders expire and stock should be restored.

While you restore your stock customers during this time can not buy it. There are many articles where stock is limited.

Usually, you need to cancel an order and create another one.

Canceled order just changes its order state but order statistically stays an order.

I do not know how Commercetools work with vouchers for canceled orders but I expect the voucher will be still valid.

Canceled order does not give you back a voucher - as mentioned, it just changes its state. You would have to re-create and re-send the voucher to the customer.

Think about how the system behaves, in case you have an error on the asynchronous piece of code responsible for creating an order. What would be the user experience? What will you do if due to that error hundred of customers were charged but the order wasn't created? What will then customers do? call support or maybe even worse they will try to make another payment?

If you followed the guide it also mentions commercetools-payment-to-order-processor which is an example implementation, which shows how you can ensure that for every successful payment you can always create asynchronously (lets say on schedule base, every 3 mins) an order. Implementation also covers error case and has retries in place. If you like, you can also do the same in a message/event driven architecture.

commercetools-payment-to-order-processor - I am not saying this code is not working. But what if there will be a bug introduced in future improvements or there will be something wrong with your infrastructure and you won't receive the notification about payment completion? The order won't be created until your infrastructure is back working again or after you fix an error. During that time customer have no order, just still the same, still non-empty cart they were charged for. Or I am missing something?

But what if there will be a bug introduced in future improvements

Then you fix it and make sure it never happens again ;)
The PSP notification delivery system as also the linked solutions here are build for resiliency. You can surely question everything but no-body in IT world will ever provide a 100% guarantee all the time. Thats why SLAs are mostly 99.8 and similar.

Did you try to buy something over amazon.com or ebay? Both follow the "Order first approach"

Amazon and similar do not depend on PSPs and do not allow redirect payments which lead to many edge case issues like accidentally closed tabs. Also, Amazon does not allow to create an order as long as they do not have your credit card or bank data which has been already verified and can be charged any time. They do not have cases like:
no payment data collected -> create order -> redirect user to PayPal -> user closes the tab or does not finish payment -> problem.

Then you fix it and make sure it never happens again
If you have introduced a bug in the code responsible for handling a successful payment notification and no orders are being created. before you fixed it you may have 1, 10 1000... affected customers, that will try to contact support, and some of them will retry the payment.

Amazon does not allow to create an order as long as they do not have your credit card or bank data which has been already verified and can be charged any time.

Of course, Amazon requires form you a payment method. It might be a new valid credit card or prepaid card without money on it or even your old no more valid card Amazon had saved in the past. Here is my order on amazon. I used my old card which appeared to be no more valid.

With Amazon and I believe it is the right approach after you provide all shipping details and choose a payment method, and click submit (by the way "place your order"), the order is created and the payment process is initiated.
The same approach is valid whenever you introduce redirection to Paypal or 3d secure page. Of course - you must do everything that is possible to block invalid payment methods before creating an order. Payment processing with PayPal is often delayed, you just obtain the Billing agreement that will be used to complete the payment.  But still it does not mean there is enough money on the account.
The other common scenario is to provide a delayed payment option when you place an order, you sent then a proforma invoice that has to be linked with an existing order.

They do not have cases like:
no payment data collected -> create order -> redirect user to PayPal -> user closes the tab or does not finish payment -> problem.

And exactly these cases, with redirection, are the cases your approach is most vulnerable to. There are so many things that may happen in between. And for that case, you need to have the order as the trace of the process that had already started.

We may just suggest when you could create an order but depending on your case, it is up to you when you do it. I explained our reasoning behind the suggestion. Is there still anything you would like to know or the ticket can be closed?

Thank you for the discussion. Please go ahead and close the ticket.
On Tue, Feb 7, 2023, 17:14 Roman Butenko @.***> wrote:

We may just suggest when you could create an order but depending on your
case, it is up to you when you do it. I explained our reasoning behind the
suggestion. Is there still anything you would like to know or the ticket
can be closed?
—
Reply to this email directly, view it on GitHub
https://github.com/commercetools/commercetools-adyen-integration/issues/1068#issuecomment-1421036678,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACRIZN5JHWPCIEZ5BM762ZDWWJYFTANCNFSM6AAAAAAUMH3Q4U
.
You are receiving this because you were mentioned.Message ID:
<commercetools/commercetools-adyen-integration/issues/1068/1421036678@
github.com>


Problems with timeout when dealing with big datasets

I've been experimenting some problems with a CSV dataset containing ~ 8 million points. The CSV file weights 800MB. The problems are:

I couldn't import the file using cdb_import.sh. The job id return by the script was always empty, and the process never ended
I could import the file using GUI (drag&drop), but I got an error from the web interface, even when the file was correctly imported (at least I can see it in the editor and work with it)
I couldn't perform single operations over the table using editor, like changing a column type (from integer to boolean). The operation never ends.
Some SQL queries raised from the editor thrown an error, complaining about SQL syntax. The real error was a timeout (directly checked with psql console, from the vm).

Are those problems still appearing?

Also for @CartoDB/data-services-admin-team to handle I guess

Kind of duplicated.
https://github.com/CartoDB/cartodb/issues/1683
https://github.com/CartoDB/cartodb/issues/5009


Create widget rule that widget label must be descriptive

Widget rule 12 in now implements this rule in OAA library <IP_ADDRESS>


feature request: scope lead-in peek / lens (vscode)

For particularly long scopes it can be easy to get lost while scrolling, especially if the code is similar throughout the function. I then scroll back up to double-check which if/else, match etc I'm in.
Just to clarify, I'm using the work scope here for sections of code between brackets -- so the inside of an if or match etc.
I was thinking of having a view of the current scope lead-in pinned at the top while scrolling through long sections. Say for example you're in an if statement, then the if condition would be pinned to the top once its out of view. One could have multiple pinned levels for nested scopes. Multi-line condition / scope entry text would need special consideration, but I'm sure one can make a compromise somehow.
This is not an issue for functions themselves since vscode can show the function path at the top already.
Similar extensions

bracket lens
bracket peek (doesn't work at all for me)

Issue with these extensions is that they just don't take into account the language, but simply use the text of the line prior to the scope.

cc https://github.com/rust-analyzer/rust-analyzer/issues/7315

cc #7315

Thanks I would never have found that.


"Data Plot" is read as "Data Points, group" when tab

It should be Data Plot instead of Data Points.

From what I've read I think it adds group to the end because it is called a group, meaning it can be interacted with. Its like when it adds html to the end. I don't think there is a way to get rid of it. As for fixing Data Points, in line 40 of index.html if you change the title from "Data Points" to "Data Plot" it should work.