text:
Can not open Neo4J browser or connect to Neo4J remotely via BOLT protocol after recent Neo4J v4 update

first - I want to thank you for your work you did here summarizing different Neo4J datasets and bootstraping Cosmos migrations. This is great work and really helpful.
I did found the issue though after your recent update where it seems that both Neo4J browser and also BOLT connectivity both not working anymore after deploying those sample sets to container when I tried to use neo_to_cosmos library .
HTTP/HTTPS browser connections are timing out and
BOLT connection showing transport error:
Unhandled Exception: Neo4j.Driver.V1.ServiceUnavailableException: Connection with the server breaks due to SecurityException: Failed to establish encrypted connection with server bolt://52.167.184.189:7687/. ---> Neo4j.Driver.V1.SecurityException: Failed to establish encrypted connection with server bolt://52.167.184.189:7687/. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.

Many thanks @sesmyrnov for opening the issue. Apologies for the late response. At first glance it seems like neo-to-cosmos is unable to reach the dataset container on a public IP (52.167.184.189 from your example). I'm trying to repro the issue and need some help clarify a few items;

If you just deploy one of the dataset containers (without starting neo-to-cosmos), does the Neo4J browser work for you on https://<azure_container_instance_ip_or_dns>:7473 ?
Does the Neo4j browser work if you deploy the dataset in a local docker container? (instead of Azure Container Instance)
After deploying the dataset container, how do you start neo-to-cosmos? Did you deploy everything using the ARM template provided in the repo? Or did you run neo-to-cosmos yourself? If you ran neo-to-cosmos yourself, did you run it locally or also in an Azure Container Instance?

Many thanks @sesmyrnov for opening the issue. Apologies for the late response. At first glance it seems like neo-to-cosmos is unable to reach the dataset container on a public IP (52.167.184.189 from your example). I'm trying to repro the issue and need some help clarify a few items;

If you just deploy one of the dataset containers (without starting neo-to-cosmos), does the Neo4J browser work for you on https://<azure_container_instance_ip_or_dns>:7473 ?
Does the Neo4j browser work if you deploy the dataset in a local docker container? (instead of Azure Container Instance)
After deploying the dataset container, how do you start neo-to-cosmos? Did you deploy everything using the ARM template provided in the repo? Or did you run neo-to-cosmos yourself? If you ran neo-to-cosmos yourself, did you run it locally or also in an Azure Container Instance?

1- If I deploy just a dataset to Container Service (without starting neo-to-cosmos) - I can see that it deployed successfully - but after that I fail to connect to it :
from container log:
Changed password for user 'neo4j'.
Starting Neo4j.
2021-01-11 16:49:00.182+0000 WARN  Unrecognized setting. No declared setting with name: dbms.memory.heap.maxSize
2021-01-11 16:49:00.188+0000 INFO  Starting...
2021-01-11 16:49:02.855+0000 INFO  ======== Neo4j 4.1.3 ========
2021-01-11 16:49:07.581+0000 INFO  Initializing system graph model for component 'security-users' with version -1 and status UNINITIALIZED
2021-01-11 16:49:07.584+0000 INFO  Setting up initial user from auth.ini file: neo4j
2021-01-11 16:49:07.584+0000 INFO  Creating new user 'neo4j' (passwordChangeRequired=false, suspended=false)
2021-01-11 16:49:07.646+0000 INFO  Setting version for 'security-users' to 2
2021-01-11 16:49:07.665+0000 INFO  After initialization of system graph model component 'security-users' have version 2 and status CURRENT
2021-01-11 16:49:07.695+0000 INFO  Performing postInitialization step for component 'security-users' with version 2 and status CURRENT
2021-01-11 16:49:19.190+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2021-01-11 16:49:20.412+0000 INFO  Remote interface available at http://localhost:7474/
2021-01-11 16:49:20.413+0000 INFO  Started.
-- but https://40.118.242.86:7474 is still timing out.
2- I have not tried to deploying same dataset to local Docker -  but I do have my own latest 4.x local neo4j docker instance for which browser is working on http://localhost:7474/browser/  ..
3 - for testing BOLT connection I basically define powershell ENV variables (like $env:COSMOSDB_ENDPOINT, $env:COSMOSDB_AUTHKEY and rest) and then run the dotnet NeoToCosmos.dll

1- If I deploy just a dataset to Container Service (without starting neo-to-cosmos) - I can see that it deployed successfully - but after that I fail to connect to it :
from container log:
Changed password for user 'neo4j'.
Starting Neo4j.
2021-01-11 16:49:00.182+0000 WARN  Unrecognized setting. No declared setting with name: dbms.memory.heap.maxSize
2021-01-11 16:49:00.188+0000 INFO  Starting...
2021-01-11 16:49:02.855+0000 INFO  ======== Neo4j 4.1.3 ========
2021-01-11 16:49:07.581+0000 INFO  Initializing system graph model for component 'security-users' with version -1 and status UNINITIALIZED
2021-01-11 16:49:07.584+0000 INFO  Setting up initial user from auth.ini file: neo4j
2021-01-11 16:49:07.584+0000 INFO  Creating new user 'neo4j' (passwordChangeRequired=false, suspended=false)
2021-01-11 16:49:07.646+0000 INFO  Setting version for 'security-users' to 2
2021-01-11 16:49:07.665+0000 INFO  After initialization of system graph model component 'security-users' have version 2 and status CURRENT
2021-01-11 16:49:07.695+0000 INFO  Performing postInitialization step for component 'security-users' with version 2 and status CURRENT
2021-01-11 16:49:19.190+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2021-01-11 16:49:20.412+0000 INFO  Remote interface available at http://localhost:7474/
2021-01-11 16:49:20.413+0000 INFO  Started.
-- but https://40.118.242.86:7474 is still timing out.
2- I have not tried to deploying same dataset to local Docker -  but I do have my own latest 4.x local neo4j docker instance for which browser is working on http://localhost:7474/browser/  ..
3 - for testing BOLT connection I basically define powershell ENV variables (like $env:COSMOSDB_ENDPOINT, $env:COSMOSDB_AUTHKEY and rest) and then run the dotnet NeoToCosmos.dll

Thanks for the details @sesmyrnov A small clarification - in Neo4J default HTTPS port is 7473 and default HTTP port is 7474.
There were 2 changes in Neo4j 4.0 due to which connectivity broke in Azure Container Instances.
a) Some configuration environment variables have been renamed e.g. NEO4J_dbms_memory_heap_max__size instead of the old name NEO4J_dbms_memory_heap_maxSize
b) Enabling HTTPS now requires more configuration. Previously it worked by simply enabling the Neo4j HTTPS port (7473).
My latest commit fixes above 2 issues. I've removed HTTPS for now until I figure out how to inject a valid TLS certificate in Azure Container Instances. Using the latest ARM template, you should now be able to browse the data on http://<ip_address>:7474

Thanks for the details @sesmyrnov A small clarification - in Neo4J default HTTPS port is 7473 and default HTTP port is 7474.
There were 2 changes in Neo4j 4.0 due to which connectivity broke in Azure Container Instances.
a) Some configuration environment variables have been renamed e.g. NEO4J_dbms_memory_heap_max__size instead of the old name NEO4J_dbms_memory_heap_maxSize
b) Enabling HTTPS now requires more configuration. Previously it worked by simply enabling the Neo4j HTTPS port (7473).
My latest commit fixes above 2 issues. I've removed HTTPS for now until I figure out how to inject a valid TLS certificate in Azure Container Instances. Using the latest ARM template, you should now be able to browse the data on http://<ip_address>:7474

thank you. I confirmed that it is working now. But BOLT connection still not working/depending on those additional SSL/cert configs you mentioned  (as I believe it is require SSL by default)..
[18:27:40 INF] {"ShouldRestart": false, "TotalInstances": 1, "InstanceId": 0, "PageSize": 1000, "LogLevel": "Information", "$type": "CommandLineOptions"}
[18:27:40 INF] bolt://52.252.30.101:7687
[18:27:41 INF] MATCH (n) RETURN COUNT(n)
Unhandled Exception: Neo4j.Driver.V1.ServiceUnavailableException: Connection with the server breaks due to SecurityException: Failed to establish encrypted connection with server bolt://52.252.30.101:7687/. ---> Neo4j.Driver.V1.SecurityException: Failed to establish encrypted connection with server bolt://52.252.30.101:7687/. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
FYI - on my local Neo4J docker instance I was able to get around SSL  for HTTPS/BOLT connections with following env vars at least for initial BOLT connection (I did not went down to configuring SSL certs stuff yet as it looks quite complex):
NEO4J_dbms_ssl_policy_bolt_enabled="true"
NEO4J_dbms_connector_bolt_advertised__address="localhost:7687"
NEO4J_dbms_connector_http_advertised__address="localhost:7474"
NEO4J_dbms_connector_https_advertised__address="localhost:7473"
see if this will work here as well without complexity of settings certs/folders .

thank you. I confirmed that it is working now. But BOLT connection still not working/depending on those additional SSL/cert configs you mentioned  (as I believe it is require SSL by default)..
[18:27:40 INF] {"ShouldRestart": false, "TotalInstances": 1, "InstanceId": 0, "PageSize": 1000, "LogLevel": "Information", "$type": "CommandLineOptions"}
[18:27:40 INF] bolt://52.252.30.101:7687
[18:27:41 INF] MATCH (n) RETURN COUNT(n)
Unhandled Exception: Neo4j.Driver.V1.ServiceUnavailableException: Connection with the server breaks due to SecurityException: Failed to establish encrypted connection with server bolt://52.252.30.101:7687/. ---> Neo4j.Driver.V1.SecurityException: Failed to establish encrypted connection with server bolt://52.252.30.101:7687/. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
FYI - on my local Neo4J docker instance I was able to get around SSL  for HTTPS/BOLT connections with following env vars at least for initial BOLT connection (I did not went down to configuring SSL certs stuff yet as it looks quite complex):
NEO4J_dbms_ssl_policy_bolt_enabled="true"
NEO4J_dbms_connector_bolt_advertised__address="localhost:7687"
NEO4J_dbms_connector_http_advertised__address="localhost:7474"
NEO4J_dbms_connector_https_advertised__address="localhost:7473"
see if this will work here as well without complexity of settings certs/folders .

@sesmyrnov I was able to get the bolt working without any changes, here are the E2E steps I followed, let's compare it with yours to see if I didn't miss something.

Deploy Neo4j dataset on ACI (I chose the Game of Thrones image)
az deployment group create -g <resource_group> --template-file ./azuredeploy.json --parameters image=syedhassaanahmed/neo4j-game-of-thrones neo4jPassword=Neo4j
Run Cosmos DB Emulator (don't think this is an issue, real Cosmos DB would work just fine)
Start Neo-to-cosmos tool, first I set all the environment variables

$Env:COSMOSDB_ENDPOINT="https://localhost:8081"
$Env:COSMOSDB_AUTHKEY="C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
$Env:COSMOSDB_DATABASE="graphdb"
$Env:COSMOSDB_CONTAINER="graphcont"
$Env:COSMOSDB_PARTITIONKEY="name"
$Env:COSMOSDB_OFFERTHROUGHPUT=1000
$Env:NEO4J_ENDPOINT="neo4j://<ACI_IP>:7687"
$Env:NEO4J_PASSWORD="Neo4j"

Note: The NEO4J_ENDPOINT starts with neo4j:// in v4.0 and not bolt:// unlike previous versions.
Finally I just did dotnet NeoToCosmos.dll and the migration to Cosmos DB started.

@sesmyrnov I was able to get the bolt working without any changes, here are the E2E steps I followed, let's compare it with yours to see if I didn't miss something.

Deploy Neo4j dataset on ACI (I chose the Game of Thrones image)
az deployment group create -g <resource_group> --template-file ./azuredeploy.json --parameters image=syedhassaanahmed/neo4j-game-of-thrones neo4jPassword=Neo4j
Run Cosmos DB Emulator (don't think this is an issue, real Cosmos DB would work just fine)
Start Neo-to-cosmos tool, first I set all the environment variables

$Env:COSMOSDB_ENDPOINT="https://localhost:8081"
$Env:COSMOSDB_AUTHKEY="C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
$Env:COSMOSDB_DATABASE="graphdb"
$Env:COSMOSDB_CONTAINER="graphcont"
$Env:COSMOSDB_PARTITIONKEY="name"
$Env:COSMOSDB_OFFERTHROUGHPUT=1000
$Env:NEO4J_ENDPOINT="neo4j://<ACI_IP>:7687"
$Env:NEO4J_PASSWORD="Neo4j"

Note: The NEO4J_ENDPOINT starts with neo4j:// in v4.0 and not bolt:// unlike previous versions.
Finally I just did dotnet NeoToCosmos.dll and the migration to Cosmos DB started.

Ah, I completely missed the fact that in v4.x bolt:// was replaced by neo4j:// in URI.. Thanks for pointing this out. This now works for me as well for Game of Thrones dataset.
I also tried it for other dataset "neo4j-retail-recommendations" (this is the one I'm actually interested in ) and while I see a successful connection  and count of nodes/relationships - I see that it is exiting right away with no error after successfull Cosmos connection (see full log below):
[10:33:22 INF] {"ShouldRestart": false, "TotalInstances": 1, "InstanceId": 0, "PageSize": 1000, "LogLevel": "Information", "$type": "CommandLineOptions"}
[10:33:22 INF] neo4j://52.167.9.75:7687
[10:33:23 INF] MATCH (n) RETURN COUNT(n)
[10:33:23 INF] MATCH ()-[r]->() RETURN COUNT(r)
[10:33:23 INF] Nodes = 126, Relationships = 357
[10:33:23 INF] startNodeIndex = 0, endNodeIndex = 126
[10:33:23 INF] startRelationshipIndex = 0, endRelationshipIndex = 357
[10:33:23 INF] https://neo-to-cosmos-ssm2.documents.azure.com:443/
[10:33:25 INF] {"IndexingPolicy": {"Automatic": true, "IndexingMode": "Consistent", "IncludedPaths": [{"Path": "/*", "Indexes": [], "$type": "IncludedPath"}], "ExcludedPaths": [{"Path": "/\"_etag\"/?", "$type": "ExcludedPath"}], "CompositeIndexes": [], "SpatialIndexes": [], "$type": "IndexingPolicy"}, "DocumentsLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/docs/", "StoredProceduresLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/sprocs/", "TriggersLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/triggers/", "UserDefinedFunctionsLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/udfs/", "ConflictsLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/conflicts/", "PartitionKey": {"Paths": ["/name"], "Version": null, "$type": "PartitionKeyDefinition"}, "DefaultTimeToLive": null, "TimeToLivePropertyPath": null, "UniqueKeyPolicy": {"UniqueKeys": [], "$type": "UniqueKeyPolicy"}, "ConflictResolutionPolicy": {"Mode": "LastWriterWins", "ConflictResolutionPath": "/_ts", "ConflictResolutionProcedure": "", "$type": "ConflictResolutionPolicy"}, "PartitionKeyRangeStatistics": [], "Id": "neo_migration_test", "ResourceId": "TqYHANXqsR8=", "SelfLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/", "AltLink": "dbs/graphdb/colls/neo_migration_test", "Timestamp": "2021-01-12T16:10:00.0000000Z", "ETag": "\"00003304-0000-0200-0000-5ffdc9d80000\"", "$type": "DocumentCollection"}

I did added MATCH (n) WHERE EXISTS(n.orderid) SET n += {name: "order"} RETURN n to have common partition key  as name in Noe4J before that (this worked before).

Ah, I completely missed the fact that in v4.x bolt:// was replaced by neo4j:// in URI.. Thanks for pointing this out. This now works for me as well for Game of Thrones dataset.
I also tried it for other dataset "neo4j-retail-recommendations" (this is the one I'm actually interested in ) and while I see a successful connection  and count of nodes/relationships - I see that it is exiting right away with no error after successfull Cosmos connection (see full log below):
[10:33:22 INF] {"ShouldRestart": false, "TotalInstances": 1, "InstanceId": 0, "PageSize": 1000, "LogLevel": "Information", "$type": "CommandLineOptions"}
[10:33:22 INF] neo4j://52.167.9.75:7687
[10:33:23 INF] MATCH (n) RETURN COUNT(n)
[10:33:23 INF] MATCH ()-[r]->() RETURN COUNT(r)
[10:33:23 INF] Nodes = 126, Relationships = 357
[10:33:23 INF] startNodeIndex = 0, endNodeIndex = 126
[10:33:23 INF] startRelationshipIndex = 0, endRelationshipIndex = 357
[10:33:23 INF] https://neo-to-cosmos-ssm2.documents.azure.com:443/
[10:33:25 INF] {"IndexingPolicy": {"Automatic": true, "IndexingMode": "Consistent", "IncludedPaths": [{"Path": "/*", "Indexes": [], "$type": "IncludedPath"}], "ExcludedPaths": [{"Path": "/\"_etag\"/?", "$type": "ExcludedPath"}], "CompositeIndexes": [], "SpatialIndexes": [], "$type": "IndexingPolicy"}, "DocumentsLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/docs/", "StoredProceduresLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/sprocs/", "TriggersLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/triggers/", "UserDefinedFunctionsLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/udfs/", "ConflictsLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/conflicts/", "PartitionKey": {"Paths": ["/name"], "Version": null, "$type": "PartitionKeyDefinition"}, "DefaultTimeToLive": null, "TimeToLivePropertyPath": null, "UniqueKeyPolicy": {"UniqueKeys": [], "$type": "UniqueKeyPolicy"}, "ConflictResolutionPolicy": {"Mode": "LastWriterWins", "ConflictResolutionPath": "/_ts", "ConflictResolutionProcedure": "", "$type": "ConflictResolutionPolicy"}, "PartitionKeyRangeStatistics": [], "Id": "neo_migration_test", "ResourceId": "TqYHANXqsR8=", "SelfLink": "dbs/TqYHAA==/colls/TqYHANXqsR8=/", "AltLink": "dbs/graphdb/colls/neo_migration_test", "Timestamp": "2021-01-12T16:10:00.0000000Z", "ETag": "\"00003304-0000-0200-0000-5ffdc9d80000\"", "$type": "DocumentCollection"}

I did added MATCH (n) WHERE EXISTS(n.orderid) SET n += {name: "order"} RETURN n to have common partition key  as name in Noe4J before that (this worked before).

@sesmyrnov  I think I know why that might be happening :) Most likely you had a previous successful run of a migration. Neo-to-cosmos creates a local RocksDB cache to store the vertex and edge indices that were successfully migrated. This exists to provide resume support in case of a large Neo4j DB migration. To clear the cache, you should either pass the -r flag to neo-to-cosmos or remove the cache directory (default location is where neo-to-cosmos is running from).

@sesmyrnov  I think I know why that might be happening :) Most likely you had a previous successful run of a migration. Neo-to-cosmos creates a local RocksDB cache to store the vertex and edge indices that were successfully migrated. This exists to provide resume support in case of a large Neo4j DB migration. To clear the cache, you should either pass the -r flag to neo-to-cosmos or remove the cache directory (default location is where neo-to-cosmos is running from).

thanks for the gotcha. Yes -r flag worked like a charm..

thanks for the gotcha. Yes -r flag worked like a charm..

authors: sesmyrnov syedhassaanahmed


text:
🛑 GMB Power is down

In 8784c8c, GMB Power (https://gmbpower.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: GMB Power is back up in ef4b2da after 10 minutes.

source: gharchive/issue

repo: symapex/upsite

license: MIT

license_type: permissive

license_source: github-api


text:
🛑 Rigid Ground Work is down

In 6b9f8b5, Rigid Ground Work (https://rigidgroundwork.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Rigid Ground Work is back up in ea7f501 after 10 minutes.


text:
🛑 Concrete Elementz is down

In 163f83e, Concrete Elementz (https://concreteelementz.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Concrete Elementz is back up in 0ffe2fa after 20 minutes.


text:
🛑 Alpha Landscaping is down

In 7d7edf3, Alpha Landscaping (https://alpha-landscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Alpha Landscaping is back up in abba4cc after 1 hour, 16 minutes.


text:
🛑 GMB Power is down

In cfe853a, GMB Power (https://gmbpower.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: GMB Power is back up in 540372b after 40 minutes.


text:
🛑 Blooming Pots Landscaping is down

In d210ba0, Blooming Pots Landscaping (https://bloomingpotslandscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Blooming Pots Landscaping is back up in a38238a after 48 minutes.


text:
🛑 Blooming Pots Landscaping is down

In dda1643, Blooming Pots Landscaping (https://bloomingpotslandscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Blooming Pots Landscaping is back up in 7093bdc after 1 hour, 50 minutes.


text:
🛑 The Great Gardens is down

In 60b79e0, The Great Gardens (https://thegreatgardens.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: The Great Gardens is back up in d67efaa after 10 minutes.


text:
🛑 GMB Power is down

In 1808598, GMB Power (https://gmbpower.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: GMB Power is back up in a872117 after 10 minutes.


text:
🛑 The Great Gardens is down

In d91c2aa, The Great Gardens (https://thegreatgardens.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: The Great Gardens is back up in d3b5eb1 after 10 minutes.


text:
🛑 Cleanwagon Ohio is down

In b6579b0, Cleanwagon Ohio (https://cleanwagonohio.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Cleanwagon Ohio is back up in b6a31d5 after 47 minutes.


text:
🛑 Brick Zone Works is down

In 03d305d, Brick Zone Works (https://brickzoneworks.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Brick Zone Works is back up in e3fd8b0.


text:
🛑 Great Oakland Landscaping is down

In 0cf2a4d, Great Oakland Landscaping (https://greatoaklandscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Great Oakland Landscaping is back up in e38de0e.


text:
🛑 Pestero Bug Fortworth is down

In 38da314, Pestero Bug Fortworth (https://pesterobugfortworth.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Pestero Bug Fortworth is back up in 7576b0f after 46 minutes.


text:
🛑 Global Translation is down

In e252302, Global Translation (https://globaltranslationsrvs.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Global Translation is back up in 640983a after 14 minutes.


text:
🛑 Tidy Train Cleaners is down

In 0d0b13c, Tidy Train Cleaners (https://tidytraincleaners.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Tidy Train Cleaners is back up in 3b4d024 after 17 minutes.


text:
🛑 Pest Scout Pros is down

In 5705fd1, Pest Scout Pros (https://pestscoutpros.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Pest Scout Pros is back up in 23fc41b after 1 hour, 42 minutes.


text:
🛑 Pest Scout Pros is down

In 135808d, Pest Scout Pros (https://pestscoutpros.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Pest Scout Pros is back up in e39c795 after 1 hour, 32 minutes.


text:
🛑 Pest Scout Pros is down

In eefa503, Pest Scout Pros (https://pestscoutpros.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Pest Scout Pros is back up in 8eca74b after 39 minutes.


text:
🛑 Brickyard Fence is down

In 1a4ef86, Brickyard Fence (https://brickyardfence.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Brickyard Fence is back up in b4abae5 after 1 hour, 7 minutes.


text:
🛑 Wellspring Tampa is down

In c9740f4, Wellspring Tampa (https://wellspringtampa.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wellspring Tampa is back up in a4347ef after 47 minutes.


text:
🛑 Bricktically is down

In d684608, Bricktically (https://bricktically.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bricktically is back up in b66cf1f after 40 minutes.


text:
🛑 Alpha Landscaping is down

In 3ee9112, Alpha Landscaping (https://alpha-landscaping.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Alpha Landscaping is back up in 087c096 after 49 minutes.


text:
🛑 Earth Works Lawn Cares is down

In e2de2c9, Earth Works Lawn Cares (https://earthworkslawncares.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Earth Works Lawn Cares is back up in 23b92a9 after 38 minutes.


text:
[Autocomplete] + [LiveComponent] Infinite loop of requests with data-model on autocomplete.

Hi,
I've got a LiveComponent with two selects whose have data-model on them. First one to choose a "groupType", second one to choose a "companyGroup". "companyGroup" is the one with autocomplete.
So when I change my groupType, my companyGroups list has to change too. But when I change the groupType, it actually launch an infinite loop of requests on my component...
Here is my code :
Component :
#[LiveProp(writable: true)]
public ?CompanyGroupType $companyGroupType = null;

#[LiveProp(writable: true)]
public ?CompanyGroup $companyGroup = null;

#[LiveAction]
public function onCompanyGroupTypeUpdated(): void
{
      $this->companyGroups = $this->groupRepository->findByType($this->companyGroupType);
      $this->companyGroup = $this->companyGroups[0];
}

Twig :
<select class="form-control" data-model="companyGroupType" data-action="live#action" data-action-name="onCompanyGroupTypeUpdated">
    {% for type in groupTypes %}
        <option value="{{ type.id }}">
            {{ type.name }}
        </option>
    {% endfor %}
</select>
<select class="form-control my-1" data-model="companyGroup" {{ stimulus_controller('symfony/ux-autocomplete/autocomplete') }}>
    {% for group in companyGroups %}
        <option id="{{ group.id }}" value="{{ group.id }}">
            {{ group.name }}
        </option>
    {% endfor %}
</select>

Screen of the console after changed the first select :

I tried with a data-action instead of data-model="companyGroup" to manually change companyGroup value, same problem.
If I remove the {{ stimulus_controller('symfony/ux-autocomplete/autocomplete') }} everything work well (but no autocomplete...)
If i downgrade symfony/ux-autocomplete to 2.13.3 it works well too.
I know autocomplete and liveComponent not work very well together, but maybe is there something I miss to make this work ?
Thanks,
Pierre

Do you see a difference in the order the Controller are initalized / connected ?

Fixed in #1502
To fix your issue before that PR is merged (and also verify that my fix addresses your issue), add an empty <option> to each select:
<select class="form-control" data-model="companyGroupType" data-action="live#action" data-action-name="onCompanyGroupTypeUpdated">
    <option value="">Choose a group type></option>
    {% for type in groupTypes %}
        <option value="{{ type.id }}">
            {{ type.name }}
        </option>
    {% endfor %}
</select>
<select class="form-control my-1" data-model="companyGroup" {{ stimulus_controller('symfony/ux-autocomplete/autocomplete') }}>
    <option value="">Choose a group></option>
    {% for group in companyGroups %}
        <option id="{{ group.id }}" value="{{ group.id }}">
            {{ group.name }}
        </option>
    {% endfor %}
</select>

Let me know if this workaround addresses the issue :).
Cheers!

Hi @weaverryan,
Thanks a lot for your time ! It fix well the infinite loop of requests :)
But, I see another problem (with both your PR and the empty <option>) : the companyGroup select don't follow my companyGroup component value when I modify companyGroupType. In my first post, you can see I change the companyGroup value on the onCompanyGroupTypeUpdated but it's not reflect in the companyGroup select, the select is empty after the change while I have a companyGroup not null (and with a value which have a corresponding option in the select).

authors: Pierre90 smnandre weaverryan

repo: symfony/ux


text:
Twig-components see different _context when rendered with twig:Test</twig:Test> instead of twig:Test/

Twig-components see different _context when rendered with <twig:Test></twig:Test> instead of <twig:Test/>
Template variables passed from controller to template are only visible inside the twig-component when the twig-component is rendered with opening and closing tag.
Is this the normal and expected behavior?
What am I doing wrong?
Could this possibly be a bug?

Environment: Current standard skeleton created with
symfony new projectname --webapp
Symfony 7.1
"symfony/ux-twig-component": "^2.18"
See screenshot and reproducer project.

Controller:
    #[Route('/', name: 'app_test')]
    public function index(): Response
    {
        return $this->render('test/index.html.twig', [
            'controller_name' => 'TestController',
            '_______test_variable_from_controller' => '*****CAN YOU SEE ME???????******',
            'syntax1' => '<twig:Test></twig:Test>',
            'syntax2' => '<twig:Test/>',
        ]);
    }

Template:
{% extends 'base.html.twig' %}

{% block body %}

look for "*****CAN YOU SEE ME???????******" inside of the following dumps.

dump of _context in template

variable is visible

    {{ dump({'templates/test/index.html.twig': _context}) }}

dump of _context inside of the component, when the component is integrated into the template with syntax "{{ syntax1 }}"

variable is visible

    {# when using this syntax the component DOES SEE the variables passed from the controller #}
    <twig:Test></twig:Test>

dump of _context inside of the component, when the component is integrated into the template with syntax  "{{ syntax2 }}"

variable is NOT VISIBLE

    {# when using this syntax the component DOES NOT SEE the variables passed from the controller #}
    <twig:Test/>
{% endblock %}

Twig-Component:

    {{ dump({'templates/components/Test.html.twig': _context}) }}

Screenshot:

Reproducer:
twig-component-reproducer.zip

<twig:Test></twig:Test> is more or less equivalent to a Twig embed.
It should be used to pass content into a block of your Test component.
# Calling template
<twig:Test>
Like that
</twig:Test>

# Component template

 ...
{% block content %}{% endblock %}
...

<twig:Test /> is similar to a Twig function, and so work in a isolated scope.
So yes they do not work in the same way. Moreover, i think you only obtain this behaviour because you did not pass block to embed
(or.. to be more precise, you should not expect sharing context with the calling context in your component template, this is more a side effect than some real feature :) )

Ah ok, thank you :). So that's a really subtle detail one just has to be aware of I guess.
The Documentation in https://symfony.com/bundles/ux-twig-component/current/index.html#context-variables-inside-of-blocks
states "Conveniently, in addition to the variables from the Alert component, you also have access to whatever variables are available in the original template:", but perhaps this caveat is mentioned somewhere, i will have to read more carefully.
The Problem is, that for the thing I am working on right now i would like to use this "side effect". i would like to see a special variable from the controller inside some twig-component without having to manually transport it there :) if that makes sense...
Do you think it is a "reliable" side effect if I stick to the opening/closing tag syntax :-) ?

I won't recommand it.
The documentation you mentionned is related to blocks.
So from the calling template, you can include a component and write inside its block using the current context.
But from the template of a component, you shoud never have knowledge of who is calling, or what the context is.

Ok, thank you for clarifying and for responding so quickly :+1:

You’re welcome!

authors: gewait smnandre


text:
[Turbo] simplify returning entity class name

Q
A

Bug fix?
no

New feature?
yes/no

Issues
Fix #

License
MIT

credit goes to nicolas, but alternate way to return the class name

Thanks Jesse!

source: gharchive/pull-request

authors: jrushlow weaverryan


text:
WP-5831 Prevent page zoom

Description
Pinch-zooming in and out on the graph was leading to the whole page zooming in and out. The goal was to prevent such behavior.
It is usually done by intercepting the 'zoom' event and preventing its default behavior. The 'zoom' event for pinch-zoom is the 'wheel' event with truthy ctrlKey property.
Our version of react-diagrams already has the onWheel handler with some custom logic. Preventing the default behavior from inside of this handler wasn't working - it is considered a passive event listener by Chrome. Some details on this can be found here
I haven't found any react-specific ways to make an event handler active. As a workaround, I have added an active vanilla js event listener on the graph element.
I have also checked how React Flow handling this situation. This library prevents pages from zooming in and out too and seems to be using the same approach with native preventDefault.
JIRA Ticket
WP-5831

I think you need to run yarn build:ts:prod and then commit the changes in the dist folder as well (I know not ideal), see ui/README.md. Other than that looks good.

Ah, I see. Thanks, I'll correct

repo: symon-ai/react-diagrams


text:
[SYM-4834] Update advanced/mysql_temp_user_strategy example

Summary

Updates the example to use runtime-connector v2.x
Updates the example to use Sym provider 3.x

Current dependencies on/for this PR:

main

PR #86   👈

This comment was auto-generated by Graphite.

repo: symopsio/examples


text:
Use squizlabs/php_codesniffer:^3.6

Based on https://github.com/symplify/symplify/pull/3107#issuecomment-822255227

All checks have passed 🎉 @TomasVotruba it is ready for review.

rebased.

All checks have passed 🎉 @TomasVotruba it is ready for review.

Thanks!
The root composer.json should be updated too. Not sure why CI didn't fail on monorepo validate here

updated

Thanks

authors: TomasVotruba samsonasik

repo: symplify/symplify


text:
WIP 308 conditional delete integration editor

Changes:

Check and hide ability to delete if step is API provider or CBR
Move most logic to AddStepPage for ease of use with history

Outstanding:

Check for first and last step of integration flow, on confirmation of delete redirect the user to that position step select page. The check works fine, but the redirect does not. See comments below.

fix #308

PR Storybook available here

PR Storybook available here

authors: kahboom riccardo-forina

repo: syndesisio/syndesis-react


text:
what about gdAlignRows, and other gd* attributes from flex-layout?

is it planned to support?
there is a hint: https://github.com/angular/flex-layout/issues/1426#issuecomment-1302184078

Yes, I didn't have much time to work on this lately as you can tell, but this CLI will support all attributes that are possible to migrate (because some aren't sadly).

yep, this is a great starting tool, then what I do is

I keep the flex-layout package installed because some fx* attributes are either stay in the code or not converted properly
I go page by page and review the conversion, fixing and converting the remaining fx* attributes
also converting gd* manually
when all done - uninstall flex-layout

just having the gd* implemented would help a bit with this process. thanks!

@synopss I can give some examples, while I still migrate to one of the projects. When I run CLI, these are pieces of code that I have left, and I go fix them manually.
<div
      fxLayoutAlign="start"
      fxLayoutAlign.md="center"
      fxLayoutAlign.sm="center"
      class="xs:flex xs:flex-col xs:justify-center xs:content-stretch xs:items-stretch xs:w-full flex flex-row"
    >

here probably only fxLayoutAlign.xs="center" was handled, but the rest left as it was before
<div
                mat-subheader
                gdAlignRows="stretch"
                class="job-header flex justify-between content-end items-end sm:flex sm:flex-col gap-[5px] h-full w-full min-h-full min-w-full"
                fxLayout="row"
                fxLayout.xs="column"
                fxLayoutAlign.xs="space-between"
                fxLayoutAlign.sm="space-between"
              >

<div
  gdAlignRows="stretch"
  fxLayout="row"
  fxLayout.xs="column"
  class="sm:flex sm:flex-col flex gap-2.5 h-full w-full min-h-full min-w-full"
>

hope this helps.

I see, so looks like it only handles the very first breakpoint they keep the rest.

One more example. Converted but not removed
<div fxShow.gt-md class="gt-md:basis-[35%] hidden gt-md:block">

authors: seyfer synopss

repo: synopss/flex-layout-to-tailwind


text:
Error in Demographics module

I have just downloaded synthea and tried to follow the instructions.
I am able to run it successfully with or without parameters for only Massachusetts.
Any time I try to specify any other state or state [city], I get either unknown city error or unable to load demographics module. I checked the demographics.csv file and verified that the state or state city pairs I specify are actually available. Even the same example from the readme, ./run_synthea Utah "Salt Lake City" causes the same error. Can anyone help me to understand what  I am missing as i dont see this error on the issues previously

Could you post the full output and error message that you're seeing?

./run_synthea Utah "Salt Lake City"

Task :run FAILED
ERROR: unable to load demographics
java.lang.Exception: The city Salt Lake City was not found in the demographics file.
at org.mitre.synthea.world.geography.Location.(Location.java:47)
at org.mitre.synthea.engine.Generator.init(Generator.java:133)
at org.mitre.synthea.engine.Generator.(Generator.java:106)
at App.main(App.java:83)
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.mitre.synthea.world.geography.Location.(Location.java:63)
at org.mitre.synthea.engine.Generator.init(Generator.java:133)
at org.mitre.synthea.engine.Generator.(Generator.java:106)
at App.main(App.java:83)
Caused by: java.lang.Exception: The city Salt Lake City was not found in the demographics file.
at org.mitre.synthea.world.geography.Location.(Location.java:47)
... 3 more

The error is being caused by the options processing. It is checking against an empty state at: https://github.com/synthetichealth/synthea/blob/master/src/main/java/App.java#L68
but the state is initially set to Massachusetts at:
https://github.com/synthetichealth/synthea/blob/master/src/main/java/org/mitre/synthea/engine/Generator.java#L65
If you follow the option parsing logic, the initial set to DEFAULT_STATE causes it to ignore what was passed in. This means you can only ever do cities in the DEFAULT_STATE, Massachusetts.

I ran the changes that you committed to GitHub and these work perfectly!  Thank you!
Also, I ram for Miami, FL with no issues.

Hello,
For some reason, I am getting the same error when I try  ./run_synthea Michigan "Baraga". Please how can I resolve it?

I changed .csv export to true and tried the latest version and v3.1.1. I am using ubuntu vm.

sudo ./run_synthea -p 18  Michigan “Houghton” --config covid19

Task :run FAILED
ERROR: unable to load demographics
java.lang.Exception: The city “Houghton” was not found in the demographics file for state Michigan.
at org.mitre.synthea.world.geography.Location.(Location.java:74)
at org.mitre.synthea.engine.Generator.init(Generator.java:226)
at org.mitre.synthea.engine.Generator.(Generator.java:208)
at org.mitre.synthea.engine.Generator.(Generator.java:184)
at App.main(App.java:229)
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.mitre.synthea.world.geography.Location.(Location.java:102)
at org.mitre.synthea.engine.Generator.init(Generator.java:226)
at org.mitre.synthea.engine.Generator.(Generator.java:208)
at org.mitre.synthea.engine.Generator.(Generator.java:184)
at App.main(App.java:229)
Caused by: java.lang.Exception: The city “Houghton” was not found in the demographics file for state Michigan.
at org.mitre.synthea.world.geography.Location.(Location.java:74)
... 4 more

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':run'.

Process 'command '/usr/lib/jvm/java-11-openjdk-amd64/bin/java'' finished with non-zero exit value 1

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org/

BUILD FAILED in 3s
4 actionable tasks: 2 executed, 2 up-to-date

sudo ./run_synthea -p 18 Michigan “Houghton” --config covid19
It looks like those quotes are the special character versions “” and not the usual "", so the program is looking for a city with the literal name “Houghton” including those quotes which doesn't exist.
Can you try running it without the quotes?
If you want to run it for a city or state with a space in the name you will still need to use quotes but make sure they are the standard "" and not for example the smart quotes that MS Office products sometimes replace them with.

authors: dehall ieezeume murflaw7424 romulus sshellmann

repo: synthetichealth/synthea

license_source: bigquery


text:
some serialization fixes

Fix pretty print to really not print pretty (it was printing pretty with indentation 0).
Default value for sampler.wrapR, uninitialized value was causing the operator== to fail. It was serialized with an uninitialized value. I remember adding the serialization, but in fact, looking through the code, it never even seems to be deserialized... Merging error? Legacy?

Thanks!

I remember adding the serialization, but in fact, looking through the code, it never even seems to be deserialized... Merging error? Legacy?

Hmm... I have no idea...

authors: Selmar syoyo

repo: syoyo/tinygltf


text:
test

first issue.

oh! close close close close close close close !!!

oh! close close close close close close close !!!


text:
Clarification: Using wrapUnmanagedSession in sr_plugin_init_cb called by sysrepo plugin deamon

I'm running sysrepo plugins which are being initialized by the sysrepo plugin daemon calling sr_plugin_init_cb(sr_session_ctx_t *running_session, void **private_data).
Here I found an issue where wrapUnmanagedSession has been exported as a public API so that it can be used to create a sysrepo object from the incoming running_session. However, this effectively takes over the ownership of running_session meaning that the underlying session will be destroyed in the object's destructor so that any other plugin, that's running in parallel, may crash afterwards since the sysrepo plugin daemon calls sr_plugin_init_cb of all plugins with the very same session.
Is my understanding correct?

Nope, the session is considered "unmanaged", which means that the C++ wrappers won't manage the lifetime of that object. You're supposed to somehow guarantee that the session doesn't get destroyed from outside of the C++ bindings as long as there are no C++ objects which reference that session. Also, make sure that someone closes the session once you've ceased using the C++ class instance.
However, this is "tricky". For example, any libyang::DataNode instances that are derived from this unmanaged session must not outlive the actual C-level sysrepo session. If you use the native C++ approach, this will be guaranteed, but if you (for example) want to store a libyang::DataNode after some out-of-band C code has closed the unmanaged session, this will crash.
To bring this into perspective with the C plugin API, the problem here (as I understand it) is that "something" which is outside of the C++ bindings will decide that "now it's the time to close the session". The C++ code cannot do anything with that, and there's no mechanism in place to invalidate all the data structures which reference data obtained through the session (and that's by design).
TL;DR: if you make sure that you never access anything after sr_plugin_cleanup_cb is called, you'll be fine. Just remember that the C++ bindings hide a lot of there relations, so this "never access stuff" is a transitive requirement which also applies to libyang data.

Got it, thanks a lot for the clarification!

repo: sysrepo/sysrepo-cpp


text:
enhance: Add type declaration

What

変数や関数の定義で型宣言ができるようになった。
存在しない型が使用された場合はエラーが発生する。
まだ変数代入時の型の互換性チェックや推論は行われない。将来的に実装する時のベースとなる処理を追加。

Related to #143
Why

Additional info (optional)

いらないコード消した

YOSASOU

authors: marihachi syuilo

repo: syuilo/aiscript


text:
APIに対して虚無JSONを送るとレスポンスが帰ってこない

https://misskey.xyz/notes/5b5ab8e040c98369543c4422

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

おそらく原因はundefinedチェックをしていないため。

(もう？) 起きない
$ curl -v -w '\n' -H 'Content-Type: application/json' -d '' http://host/api/notes/show
> POST /api/notes/show HTTP/1.1
> Host: host
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 0
>
< HTTP/1.1 400 Bad Request
< Vary: Accept-Encoding, Origin
< Cache-Control: private, max-age=0, must-revalidate
< Content-Type: application/json; charset=utf-8
< Content-Length: 84
< Date: Tue, 25 Dec 2018 11:51:33 GMT
< Connection: keep-alive
<
{"error":{"code":"INVALID_PARAM","param":"noteId","reason":"must-be-not-undefined"}}

いいえ、虚無とは{}のことで、現在もおきます。

いや起きない
$ curl -v -w '\n' -H 'Content-Type: application/json' -d '{}' http://host/api/notes/show
> POST /api/notes/show HTTP/1.1
> Host: host
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 2
>
< HTTP/1.1 400 Bad Request
< Vary: Accept-Encoding, Origin
< Cache-Control: private, max-age=0, must-revalidate
< Content-Type: application/json; charset=utf-8
< Content-Length: 84
< Date: Tue, 25 Dec 2018 11:55:15 GMT
< Connection: keep-alive
<
{"error":{"code":"INVALID_PARAM","param":"noteId","reason":"must-be-not-undefined"}}

自環境だと起きる……
  <-- POST /api/users/show
TypeError: Cannot read property 'toLowerCase' of undefined
    at Promise (/Users/acid-chicken/misskey/built/server/api/endpoints/users/show.js:64:48)
    at new Promise (<anonymous>)
    at exports.default.define_1.default (/Users/acid-chicken/misskey/built/server/api/endpoints/users/show.js:38:62)
    at Object.exec (/Users/acid-chicken/misskey/built/server/api/define.js:17:16)
    at Promise (/Users/acid-chicken/misskey/built/server/api/call.js:43:24)
    at new Promise (<anonymous>)
    at Object.exports.default (/Users/acid-chicken/misskey/built/server/api/call.js:6:56)
    at exports.default (/Users/acid-chicken/misskey/built/server/api/api-handler.js:34:35)
    at process.internalTickCallback (internal/process/next_tick.js:77:7)

% curl -v -w '\n' -H 'Content-Type: application/json' -d '{}' http://localhost:3000/api/users/show
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 3000 (#0)
> POST /api/users/show HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 2
>
* upload completely sent off: 2 out of 2 bytes

あーparamのValidate依存

この場合パラメータのバリデーションはちゃんと通過しているみたい
たぶんendpoint固有の問題だと思う
バリデーションではuserIdかusernameはどちらも未定義であることを許容しているけど
使用しているときにはuserIdとusernameの両方が未定義であることを想定してないので
usernameでエラーが出る
https://github.com/syuilo/misskey/blob/fa03c172f211f84dd9747fcf312ec41a92d1102b/src/server/api/endpoints/users/show.ts#L66-L68

なるほど。
では両方undefinedならばエラーにする処理入れれば良さそうですね

なるほど。
では両方undefinedならばエラーにする処理入れれば良さそうですね

可能であればバリデーションの強化か、オーバーロードへの対応などをした方が良さそう。

ではオーバーロードにしませんか。見た目が非常に良くなると思います。

めっちゃ古い、Issueを見つけたのですが、さすがに直ってますよね…？

めっちゃ古い、Issueを見つけたのですが、さすがに直ってますよね…？

まだ残ってる

まだ残ってる

API console は JSON以外のものを入れるとクライアント側でエラーになるのでそれは別のエラー

SyntaxError: JSON5: invalid end of input at 1:1

API console は JSON以外のものを入れるとクライアント側でエラーになるのでそれは別のエラー

SyntaxError: JSON5: invalid end of input at 1:1

ちゃんと users/show はエラー返す
$ curl -w '\n' -H 'Content-Type: application/json' -d '{}' https://misskey.io/api/users/show
{"error":{"message":"Internal error occurred. Please contact us if the error persists.","code":"INTERNAL_ERROR","id":"5d37dbcb-891e-41ca-a3d6-e690c97775ac","kind":"server","info":{"e":{"message":"Cannot read property 'toLowerCase' of undefined","code":"TypeError","stack":"TypeError: Cannot read property 'toLowerCase' of undefined\n    at /misskey/built/server/api/endpoints/users/show.js:91:48\n    at Object.exec (/misskey/built/server/api/define.js:22:16)\n    at Object.exports.default (/misskey/built/server/api/call.js:64:21)\n    at /misskey/built/server/api/api-handler.js:26:23\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (internal/process/task_queues.js:93:5)"}}}}

他のエンドポイントがどうかはわからん

ちゃんと users/show はエラー返す
$ curl -w '\n' -H 'Content-Type: application/json' -d '{}' https://misskey.io/api/users/show
{"error":{"message":"Internal error occurred. Please contact us if the error persists.","code":"INTERNAL_ERROR","id":"5d37dbcb-891e-41ca-a3d6-e690c97775ac","kind":"server","info":{"e":{"message":"Cannot read property 'toLowerCase' of undefined","code":"TypeError","stack":"TypeError: Cannot read property 'toLowerCase' of undefined\n    at /misskey/built/server/api/endpoints/users/show.js:91:48\n    at Object.exec (/misskey/built/server/api/define.js:22:16)\n    at Object.exports.default (/misskey/built/server/api/call.js:64:21)\n    at /misskey/built/server/api/api-handler.js:26:23\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (internal/process/task_queues.js:93:5)"}}}}

他のエンドポイントがどうかはわからん

APIでなにか起きると何も返ってこないのは https://github.com/syuilo/misskey/commit/2756f553c68082342a784ef716c62da6cea6f3ca でなおってるはず
どれかのパラメーターが必要だけどパラメーターエラーにしてくれないエンドポイントは結構ある
users/show {} => INTERNAL_ERROR が返るけど INVALID_PARAM を返して欲しい
pages/show {} => NO_SUCH_PAGE が返るけど INVALID_PARAM を返して欲しい
:

APIでなにか起きると何も返ってこないのは https://github.com/syuilo/misskey/commit/2756f553c68082342a784ef716c62da6cea6f3ca でなおってるはず
どれかのパラメーターが必要だけどパラメーターエラーにしてくれないエンドポイントは結構ある
users/show {} => INTERNAL_ERROR が返るけど INVALID_PARAM を返して欲しい
pages/show {} => NO_SUCH_PAGE が返るけど INVALID_PARAM を返して欲しい
:

authors: AyaMorisawa Xeltica acid-chicken mei23 rinsuki syuilo tamaina

repo: syuilo/misskey


text:
1時間ごと/1日ごとのハッシュタグチャート

Summary

Environment

Translations (#2954)
1時間ごと/1日ごとのハッシュタグチャートHourly/daily hashtag charts.

authors: acid-chicken syuilo


text:
Tests failing in contracts package

Our tests are failing in the contracts package on our main branch.
To Reproduce

Checkout main
npm i from within packages/contracts to install packages.
Run npm test from within the same directory.
1/4 tests are passing. The error is the same for the 3 failing tests and is as follows...
ExecutionError: Eval expression on contract failed with bad exit code 1: Program execution error:  Unchecked(UndefinedFunction("get-counter"))

Expected behavior
All tests should pass.
Additional context
Perhaps this is due to a lack of understanding on my behalf of how to run these tests. In which case, let me know the appropriate steps, and I will close the erroneously filed bug report. I can investigate this after #37 is merged if this remains unassigned.

All tests related to counter contract can and should be removed. Same thing applies to counter.clar contract. It is just an initial contract created by stacks library, but we don't need it as we have to write our own contracts and test suites.

All tests related to counter contract can and should be removed. Same thing applies to counter.clar contract. It is just an initial contract created by stacks library, but we don't need it as we have to write our own contracts and test suites.

Ok thanks.

authors: JMKJR LNow

repo: syvita/daoos


text:
Add PyCon Philippines 2017

cc @pythonph

thanks

authors: szabgab zakame

repo: szabgab/conferences


text:
Changing maxWidth (penWidth) affecting entire canvas?

Changing the pen width affects the entire canvas.
Is there something I need to do in order to stop this occurring? Looks like a bug maybe?
signaturePad.maxWidth = 10
Video of issue (Cannot embed):
https://i.gyazo.com/a26825aa236ec234e65957cf219f8127.mp4

Doesn't seem like a valid use of this library. There shouldn't be any reason to change the pen width in the middle of the signature.

Thanks for the fix @UziTech

authors: Committing UziTech


text:
missing circles with fast signing speed

I found out that there are single circles (when signing dots) missing sometimes especially when using higher signing speed and slower processors (smartphones). Is there a workaround?

You could try turning off throttling https://github.com/szimek/signature_pad#options

I can't reproduce this. There is a sensitivity setting on smartphones to prevent accidental touches. My guess is that is too high for fast signatures

I tried on a different smartphone and browser with the same result. So probably you can reproduce it by yourself.

I have tried many times to reproduce it. It doesn't happen for me. If you could get the data points I could try debugging it.

Did you tapped very quick to generate circles? I will export a data array for you...

Can you paste the data here so I can copy it?

I did a new one in the previous post. Here is the array for that:
[
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903762076,
"x": 70.58169555664062,
"y": 49.69459533691406,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903762230,
"x": 122.27616882324219,
"y": 58.09330749511719,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903762400,
"x": 134.39480590820312,
"y": 58.76930236816406,
"pressure": 0.5
},
{
"time": 1682903762486,
"x": 159.71324157714844,
"y": 61.18104553222656,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903762552,
"x": 206.69993591308594,
"y": 68.80174255371094,
"pressure": 0.5
},
{
"time": 1682903762649,
"x": 213.41241455078125,
"y": 71.71488952636719,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903762707,
"x": 238.54481506347656,
"y": 75.45240783691406,
"pressure": 0.5
},
{
"time": 1682903762792,
"x": 245.17222595214844,
"y": 74.35498046875,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903762864,
"x": 277.57354736328125,
"y": 72.26296997070312,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903763023,
"x": 305.44012451171875,
"y": 76.86459350585938,
"pressure": 0.5
},
{
"time": 1682903763100,
"x": 311.1852111816406,
"y": 77.54058837890625,
"pressure": 0
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903763189,
"x": 343.868408203125,
"y": 77.73008728027344,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903763345,
"x": 356.86761474609375,
"y": 77.73008728027344,
"pressure": 0.5
}
]
},
{
"penColor": "black",
"dotSize": 0,
"minWidth": 0.5,
"maxWidth": 2.5,
"velocityFilterWeight": 0.7,
"points": [
{
"time": 1682903763486,
"x": 381.2281188964844,
"y": 80.11546325683594,
"pressure": 0.5
}
]
}
]

It looks like the svg is the same as loading the canvas with fromData

I wonder if this isn't a bug in toSvg but a race condition when adding points.

I do not understand. What´s a race condition?

A race condition is when two events happen fast and the order of events gets mixed up. For example when adding two dots to the canvas signature_pad expects the events to come in as "begin dot 1", "end dot 1", "begin dot 2", "end dot 2". If the dots are added very fast  the events might be able to come in as "begin dot 1", "begin dot 2", "end dot 1", "end dot 2". That would be a race condition.
Most likely I am not able to recreate it because my phone is fast enough to call the events in the right order. You said at the beginning that this seems to happen with slower processor speeds.
What we need to figure out is how to get signature_pad to do the correct thing when these events come in out of order.

Ok, got that. That sounds plausible.

authors: UziTech opa-rudi


text:
Error with nested classes order

I got the following error when trying to nest models...:
Error: There is no metadata for the "job" property. Check if emitDecoratorMetadata is enable in tsconfig.json
at [...]/node_modules/typegoose/src/prop.ts:148:11
... if the nested model is defined after the parent one (this is the same example of your md file, without the Car ref):
import { prop, Typegoose } from 'typegoose';

class User extends Typegoose {
    @prop()
    name?: string;

    @prop({ required: true })
    age: number;

    @prop()
    job?: Job;

}

class Job extends Typegoose {
    @prop()
    title?: string;

    @prop()
    position?: string;
}

export const UserModel = new User().getModelForClass(User);

The work around is to define Job before User.
I'm using:
Hapi 16.4.3,
typegoose 3.0.0,
typescript 2.4.1,
ts-node 3.1.0,
And yes, I have "emitDecoratorMetadata": true in tsconfig :wink:
Let me know if you can reproduce this!
Thanks!

Thank you for your report @joseluisgarciaott. Yes currently Job must be defined before User. I will investigate this further and update you about this.

@joseluisgarciaott I investigated the issue, and came up with a solution: you could pass the Job class explicitly to the prop decorator as a subdoc property for example. I've implemented the feature quickly, then the following TypeScript error rose:

So it means that TypeScript won't actually let me use the class before declaration. The example provided in the documentation is wrong, i will update it, however the "workaround" must be used.
Or if you put each class to a separate file, then the import order should not matter (take a look at the tests for an example structure).
And I will try to add a more clear error message to prevent this happening in the future.

I've created #9 as an enhancement task in which I add documentation and error message to make it more clear.

You are right. I thought classes definitions were hoisted, but only their bindings are... just like in the case of let and const: they indeed exist, but aren't yet initialized.
So yes, just change the doc and we are done :)

Right! :) Closing this one.

authors: joseluisgarciaott szokodiakos

repo: szokodiakos/typegoose


text:
[Snyk] Security upgrade python from 3.9-slim to 3.14.0a1-slim

Snyk has created this PR to fix 3 vulnerabilities in the dockerfile dependencies of this project.
Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.
Snyk changed the following file(s):

Dockerfile

We recommend upgrading to python:3.14.0a1-slim, as this image has only 33 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.
Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Integer Overflow or Wraparound SNYK-DEBIAN12-ZLIB-6008963
  500

Improper Verification of Cryptographic Signature SNYK-DEBIAN12-APT-1541449
  150

Information Exposure SNYK-DEBIAN12-UTILLINUX-2401083
  150

Information Exposure SNYK-DEBIAN12-UTILLINUX-2401083
  150

Information Exposure SNYK-DEBIAN12-UTILLINUX-2401083
  150

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

:tada: Snyk checks have passed. No issues have been found so far.
:white_check_mark: security/snyk check is complete. No issues have been found. (View Details)


text:
Demonstrate pagination

Methods like FindProjectDevices accept a FindProjectDevicesParams parameter which includes the Page and Include parameters that packngo offers. What does it look like to use these parameters in this client? (provide a new example/ for this). How do we access the total page count when we are making a single page request?
Is it possible to have the client pre-fetch all paginated results, as we do in packngo?
https://github.com/packethost/packngo/blob/4d8131c50dd3045729772fa5a92f88b1d93556a0/devices.go#L342-L363
What does that look like with a go-swagger generated client?
This may require #3.
Can we include the Sort parameter in these requests?
Can we include the Search parameter in these requests?
Is the swagger spec reporting these metadata fields correctly? (We can patch in support, can we do this broadly so that one common type is generated instead of duplicating these fields in each Params definition?)

Basic pagination was demonstrated in #23.
I'd like to find a way to introduce a pagination helper or add generated autoscrolling List methods whenever we generate a Find method.  https://github.com/jsilland/go-swagger-cli is an example of how we can add generators using go-swagger.
I tried to use that project to generate a cli for gometal, but some of the types were not handled: https://github.com/t0mk/gometal/compare/main...displague:cli?expand=1
Another approach would be to use a custom RoundTripper to paginate. This is apparently not a good idea according to the RoundTripper docs (don't look at the response):

https://lanre.wtf/blog/2017/07/24/roundtripper-go/
https://pkg.go.dev/net/http#RoundTripper

Include is included in the parameters of the FindFoo client methods. This parameter can be modified with SetInclude.
Search is also made available this way.
SortBy and Exclude are not included in the API docs.  I have made a contribution to these docs to introduce Exclude. I will make another for SortBy (and SortDirection).

Auto-pagination methods were added in #150 and we have examples of their usage in a few places.

authors: ctreatma displague


text:
Added method to access Future[Result]

Because there is no way to use Future[Result] in StackableController, I added a method having request and result as arguments.
It is only Action(ActionBuilder) which is able to access both parsed request body and result. So I believe it is useful in some cases.

Thanks for sending PR!
I agree your motivation.
And it is good this PR keeps source compatibility.
However, I have a concern.
We should follow ControlThrowable.
If a user override cleanupOnSucceeded(request, result) only,
when a ControlThrowable is thrown, the cleanupOnSucceeded is not called.
So users need override two cleanupOnSucceeded.
Is is a bit painful.
I consider following API
  def cleanupOnSucceeded[A](request: RequestWithAttributes[A], result: Option[Result]): Unit = ()

What do you think?

@gakuzzzz That is good point.
I pushed new commit.

Fixed!

Thank you!!
Would you squash these commits to one commit?

I just pushed the squashed commit.

Thanks!!

Hi @h-kishi
Do you need releasing early?
This change breaks compatibility, So we will add some features with this into release 0.5.0.
If you need early, we provide 0.4.x.

@gakuzzzz No need to hurry.
I am looking forward to 0.5.0.

Alright, thanks again :)

authors: gakuzzzz h-kishi


text:
bug: Manually thrown TRPC errors do not behave as expected on the client

Provide environment information
System:
OS: Linux 6.1 Ubuntu 20.04.6 LTS (Focal Fossa)
CPU: (2) x64 AMD EPYC
Memory: 2.17 GB / 4.01 GB
Container: Yes
Shell: 5.0.17 - /bin/bash
Binaries:
Node: 20.12.1 - /home/codespace/nvm/current/bin/node
Yarn: 1.22.19 - /usr/bin/yarn
npm: 10.5.0 - /home/codespace/nvm/current/bin/npm
pnpm: 8.15.6 - /home/codespace/nvm/current/bin/pnpm

"ct3aMetadata": {
"initVersion": "7.36.2"
},
Describe the bug
Hi!
I've just started playing around with TRPC so this could be a result of my lack of understanding of how things work, but I've tried to check the documentation and troubleshoot this issue without any luck. So here goes:
Errors thrown in the server does not seem to resolve in a failed request in the browser or trigger the expected onError callback in react-query.
Given this example query:
  const { data: helloData, error: helloError } = api.post.hello.useQuery({
    text: "from tRPC",
  });

and this procedure
  hello: publicProcedure
    .input(z.object({ text: z.string() }))
    .query(({ input }) => {
      throw new TRPCError({
        code: "INTERNAL_SERVER_ERROR",
      });
    }),

Expected result: A response with the correct error code.
Actual result: The response is appears to be pending infinitely in the browser and a 200 in the logs.

I'd really like to use this setup for a project of mine. I must be doing something wrong - please help! :)
Reproduction repo
Link
To reproduce

Run npm create t3-app@latest
Choose Typescript, Tailwind CSS, tRPC, No authentication, Prisma, Nextjs App Router
Throw a TRPC error in any query.

Sandbox has been created and linked.
Additional information
The query also seems to be retried infinitely when null is returned on the server. Other people in this thread have also been experiencing this: https://github.com/trpc/trpc/discussions/5919?sort=new Not sure if it's related to the bug with errors though?

Sounds awfully familiar to https://github.com/t3-oss/create-t3-app/issues/1965
I'm not sure if it is a duplicate though? If so, feel free to close this!

Closing because I realised that error object does seem to resolve after the request has been retried three times. This does result in some latency, but I think that this is something I can configure.


text:
bug: the side menu href to the en docs when the locale is arabic

Provide environment information
https://create-t3-ods0zsr9b-t3-oss.vercel.app/ar/introduction
Describe the bug
the link href is host/[..path]/en/foo instead of host/[..path]/ar/foo

To reproduce
foo
Additional information
No response

opened a pr for this just now :)
https://github.com/t3-oss/create-t3-app/pull/820
until it's merged, i guess you will have to navigate manually by typing in the urls

Follow the translation guide for setting up the sidebar for your language and this will work

authors: a4addel c-ehrlich juliusmarminge


text:
refactor: turborepo with cli and www

Closes #210, #231
cc @kroucher @nexxeln
✅ Checklist

[ ] I have followed every step in the contributing guide (updated 2022-08-15).
[ ] The PR title follows the convention we established conventional-commit
[ ] I performed a functional test on my final commit

Changelog

Installed turbo, refactor into two packages

pnpm is now installing packages but ESLint isn't happy about the /cli directory, not sure why so many unless it's using different linting rules than before with the turborepo addition

There are definitely styling that can be improved ;)

I thought we were using astro?

authors: juliusmarminge kroucher nexxeln


text:
feat: safeguards for git repos

Closes #378
cc @c-ehrlich
✅ Checklist

[x] I have followed every step in the contributing guide (updated 2022-08-15).
[x] The PR title follows the convention we established conventional-commit
[x] I performed a functional test on my final commit

Changelog

fixes #378 by deleting the .git repo first. Copying files to hidden directories didn't seem to overwrite them.
adds some safeguards for initializing git repos in current worktrees etc
allow user to keep the current git repo if there is one

Note: Also updated some scripts I noticed didn't work properly

Screenshots
[Screenshots]

This makes sense to me. An existing git repo should be either left alone, or wiped. Writing new files into it seems like a terrible idea, even if the user selected "overwrite".

This makes sense to me. An existing git repo should be either left alone, or wiped. Writing new files into it seems like a terrible idea, even if the user selected "overwrite".

Do you mean writing files in the .git? That will be prevented indeed.
But the 'continue' option here would still let the scaffolding proceed (well, in the order we do things, it's already done) and the files would be added to the existing git repository.

Would you be willing to give this a proper review too @c-ehrlich ?

lgtm :)

authors: c-ehrlich juliusmarminge


text:
Issue with next-auth while signIn (Generic Error page)

Heello, first of all, thanks for all work in this repo 😄
I started a blank project and encountered this issue while trying to auth
https://user-images.githubusercontent.com/1855125/206151080-c80f1295-857b-4547-899f-59d6109ecdbc.mov
I don't know why exactly that happened, and no errors were being logged (even with next-auth debug mode on).
After exploring it a bit, I managed to solve it by changing the [...nextauth].ts API route and just spread the authOption variable
import NextAuth from "next-auth";
import { authOptions } from "@acme/auth";

export default NextAuth({
  ...authOptions,
});

https://user-images.githubusercontent.com/1855125/206151125-3bea27d7-abfa-477e-9d19-c4e05f77d224.mov
I don't know if someone else faced the same issue, if that is the case I can create a PR with the change 😅

Node: v18.12.1
pnpm: 7.18.0
Brave: 1.45.133

Might be the same bug as https://github.com/t3-oss/create-t3-app/pull/932
Can pin the nextauth to 4.17

https://github.com/t3-oss/create-t3-app/pull/932#issuecomment-1341907346 should be fixed in next-auth@latest! Let me know.

authors: balazsorban44 juliusmarminge kuroski


text:
fix(discord): v13 update

This PR Addresses #594 where older versions of the Discord API will stop working. Currently, txAdmin runs Discord.JS v11 which is a far outdated version and uses old API's that will soon be discontinued.
Hopefully some time with some assistance from @tabarra I'd like to be able to add slash commands as a configurable option and work on some new commands. I don't want to go anywhere near adding settings without a bit of help haha
webpack is a bitch, this tool me a lot longer than id like to admit

Since I couldn't commit to your fork, I committed and merged locally: c2cb039b8ba715ba9e2d7208be85c3147d9024bd
Thanks again for the help!

authors: DamonOnYT tabarra

repo: tabarra/txAdmin


text:
TabMon can't start because Cannot set column 'machine'

log:
2016-05-03 12:43:09,094 [5] INFO Topshelf.Runtime.Windows.WindowsServiceHost - [Topshelf] Started
2016-05-03 12:43:09,094 [6] INFO TabMon.Sampler.CounterSampler - Polling..
2016-05-03 12:43:09,109 [6] FATAL Topshelf.Runtime.Windows.WindowsServiceHost - The service threw an unhandled exception
System.ArgumentException: Cannot set column 'machine'. The value violates the MaxLength limit of this column.
at System.Data.DataColumn.CheckMaxLength(DataRow dr)
at System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent)
at System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException)
at System.Data.DataTable.InsertRow(DataRow row, Int64 proposedID, Int32 pos, Boolean fireEvent)
at TabMon.Sampler.CounterSampler.SampleAll()
at TabMon.TabMonAgent.Poll(Object stateInfo)
at System.Threading.TimerQueueTimer.CallCallbackInContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.TimerQueue.AppDomainTimerCallback()

See: https://github.com/tableau/TabMon/issues/56

oh, I used '-'.
but if the BIOS computer name can't be changed, do we have other way to resolve it.

Yes you can rename your server. That's what we did. If you don't know how, ask your ops team. Good luck!

Thanks for helping out, GirlMeetsData!
Closing this out.

authors: Gavin-Zhao GirlMeetsData jmangue

repo: tableau/TabMon

license: mit


text:
Cleanup OAuth Docs and Updates for 2023.1

Clean up the OAuth docs.
Add updates for 2023.1 Multi-IDP, BYO IDP

Can you update the assets/connection-dialog-oauth-configs.png to either remove the checkbox with unlocalized string or fix it so it shows an English string correctly.

authors: jkoskela rosswbrown

repo: tableau/connector-plugin-sdk


text:
Idea - Event hooks for various dashboard operations

Hello,
Can we have various events that can be triggered on different dashboard level operations such as whenever a sheet is removed from the dashboard, or the current extension is closed/deleted? My use case is, the extension that I am trying to build is linked to a Sheet of the user's choice and if the sheet is removed from the Dashboard or if the fields used in that sheet changed, I should get a callback to ensure I can reflect the changes without taking the overhead to check for changes manually.
The biggest requirement would be to be able to access the state of the extension's own state, like when it is removed from the Dashboard. I tried to use the DOM's unload and beforeunload event listeners on the window and the parent of the window (Since the extension is embedded in an iframe) but none get triggered. This would help us make a clean-up API call to update something like let's say usage.
Which brings me to the next and final requirement, can we have some way to identify the user via some ID or session ID? I need to license my plugin to ensure it complies to our FUP (Fair Usage Policy) but I am unable to do that since I cannot who is viewing the extension right now. Since the dashboards are shared instances across users, I cannot correctly track how many users are viewing my extension.
If there is any way to do this right now, please let me know or are these feasible or if this is intentionally left out, can you brief about that?
Thanks in advance.

Parts of the original request here have been included as part of Extensions API Release 1.7 where several new event types are now available.

repo: tableau/extensions-api


text:
Switch to polygon mumbai default

Signed-off-by: Carson Farmer carson.farmer@gmail.com
Includes some README fixes/updates
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Actually we don't need to wait for those changes, because we're making the default explicit here directly. However, yes we'll wait to do the release flow for both tomorrow.

repo: tablelandnetwork/js-tableland-cli


text:
give output CSV the same name as the input PDF

e.g. sierra_leone_ebola.pdf when processed should output sierra_leone_ebola.csv rather than tabula-asdfasdf1234567890.csv. Or perhaps something to disambiguate, like sierra_leone_ebola-1.csv

The best way to to do this might involve creating a File Library API in tabula_web.rb that takes a PDF_ID and gives back its metadata.

hell, let's put the filename in the header of the selection/extraction pages (in case you have multiple open in tabs, etc.)

done in 62c5e08

Pending better design ideas...

Any design thoughts, @floodfish, @mtigas, @jazzido?

I like using the PDF's filename as a default. And yes, some kind of auto-incremented naming sounds good if the app knows there are multiple extractions from the same PDF.
I'd been planning that the user would only see and (potentially) edit it via the system "save" dialog box. This is pretty typical when saving a new file in most apps, right, including web browsers?

The default download option in Firefox on Ubuntu does not give such a default option (for Tabula or anything). Likewise Chrome on Ubuntu.
There's no need to add the filename-renaming option if it applies only to software hippies like myself; that is, if Windows and Mac include this option natively. I'll have to do some research on a Mac and on my Windows box...

I think you only get the system dialog if you manually "save as" or if your browser is set to "Ask where to save each file before downloading". Otherwise most modern browsers automatically dump to wherever it's set up to download files.
And I'm fine with that and just using the input filename as the basis for the output filename. Don't think there's any need to muck with the filename within Tabula, since if your browser skips the system dialog, I'm 95% sure it'll tack on a " (1)" or some other serial number after the duplicated filename.

Ok. So I guess the question is, is system/browser default file saving behavior good enough? Or, is it at least the appropriate standard to be consistent with?

On Mar 11, 2015, at 00:38, Mike Tigas notifications@github.com wrote:
I think you only get the system dialog if you manually "save as" or if your browser is set to "Ask where to save each file before downloading". Otherwise most modern browsers automatically dump to wherever it's set up to download files.
And I'm fine with that and just using the input filename as the basis for the output filename. Don't think there's any need to muck with the filename within Tabula, since if your browser skips the system dialog, I'm 95% sure it'll tack on a " (1)" or some other serial number after the duplicated filename.
—
Reply to this email directly or view it on GitHub.

I guess my thought is that the browser mechanism is fine... I can pretty easily transform that little text input back into just a  -- but maybe there's somewhere better it can go?

for now, d5a5bba turns off editable filenames. it's easy to turn on again (or move) if we decide we want it.

authors: floodfish jeremybmerrill mtigas

repo: tabulapdf/tabula


text:
[DebeziumTransform] Allow _cdc.ts to be derived from source.ts_ms rather than .ts_ms.

We are relying on the nested field source.ts_ms to track creation/update times where the source table doesn't have or misuses corresponding columns. It would be great if the SMT could be configured to support this, or better yet if both timestamps were kept around.

I stumbled in this issue too, examining the SMT code it should be very easy to expose the fields you want with simple changes there:

authors: braislchao megri

repo: tabular-io/iceberg-kafka-connect


text:
Bug: CLI not recognizing data-source files if they have a different name

Versions

Node: 8.12.2
OS: Ubuntu 20.04

Reproduction
Steps to reproduce
I'm using NestJs.
Configure your package.json like this:
"seed": "ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -- -d src/database/database.config.ts"

Add a database.config.ts under src/database in your project with the following code:
import { DataSource, DataSourceOptions } from 'typeorm';
import { ConfigService } from '@nestjs/config';
import { config } from 'dotenv';
import { SeederOptions } from 'typeorm-extension';

config();

const configService = new ConfigService();

const options: DataSourceOptions & SeederOptions = {
  type: 'mysql',
  host: configService.get<string>('MYSQL_HOST'),
  port: configService.get<number>('MYSQL_PORT'),
  username: configService.get<string>('MYSQL_USER'),
  password: configService.get<string>('MYSQL_PASSWORD'),
  database: configService.get<string>('MYSQL_DB_NAME'),
  entities: ['dist/**/*.entity{.ts,.js}'],
  migrations: ['dist/migrations/**/*{.ts,.js}'],
  timezone: 'Z',
  logging: true,
  migrationsRun: true,
  synchronize: false,
  ssl: {
    rejectUnauthorized: false,
  },
  seeds: ['src/database/seeds/**/*{.ts,.js}'],
  factories: ['src/database/factories/**/*{.ts,.js}'],
};

export const AppDataSource = new DataSource(options);

Now, if you run the seed script the following error will occur:
TypeORMError: No connection options were found in any orm configuration files.
    at ConnectionOptionsReader.all (/home/jph/zenbit/HiveIn_be/node_modules/src/connection/ConnectionOptionsReader.ts:46:19)
    at async ConnectionOptionsReader.get (/home/jph/zenbit/HiveIn_be/node_modules/src/connection/ConnectionOptionsReader.ts:58:28)

What is Expected?
It would be expected to connect with the database, if I change the file to data-source.ts it will find the connection file.
What is actually happening?
Can't run the CLI script if I have a configuration file with a name that isn't data-source.ts

Can you try if the following command is working for you?
"seed": "ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -- -r src/database -d database.config.ts"

@tada5hi Unfortunately not, same error
> ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -- -r src/database -d database.config.ts

typeorm-extension seed

Populate the database with an initial data set or generated data by a factory.

TypeORMError: No connection options were found in any orm configuration files.
    at ConnectionOptionsReader.all (~/zenbit/HiveIn_be/node_modules/src/connection/ConnectionOptionsReader.ts:46:19)
    at async ConnectionOptionsReader.get (~zenbit/HiveIn_be/node_modules/src/connection/ConnectionOptionsReader.ts:58:28)

@jphinning damm, i forgot to remove the .ts extension in the command :see_no_evil:
The library automatically checks for .ts and .js extension.

@tada5hi Hi. I have the same trouble.

@tada5hi Didn't work as well, same error, unfortunately. Strange because according to the scr code in the module.ts file your suggestion should work 🤔
 const fileNames : string[] = [
        'data-source',
    ];

 if (
        context.fileName &&
        context.fileName !== 'data-source'
    ) {
        fileNames.unshift(context.fileName);
    }

 for (let i = 0; i < fileNames.length; i++) {
        const info = await locateFile(`${fileNames[i]}.{js,ts}`, {
            path: paths,
            ignore: ['**/*.d.ts'],
        });
    }

When I tried to reconstruct your problem and didn't encounter the same problem, I looked at your command again and found out that you use double hyphen  -- in the command. When i also added the hyphens in the command, i encountered the same problem.
@jphinning can you try the following command:
"seed": "ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -- -r src/database -d database.config"

@Spartaques
"seed": "ts-node ./node_modules/typeorm-extension/dist/cli/index.js seed -- -r src/common/typeorm -d data.source"

authors: Spartaques jphinning tada5hi


text:
Added visibilitychange handler to stop not active tab http requests -…

… fix

I already did that on master :)

repo: tadeoos/house-of-refuge


text:
[프로그래머스 -입양시각구하기] 조하늘

Coding Test Study Pull Request

문제 정보
문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/59413

문제 관련 알고리즘 or 자료구조

sql이라 딱히 없던 것 같아요(?!)

해결 과정
작성 코드
WITH RECURSIVE TIMETABLE(HOUR) AS (
        SELECT 0
    UNION
        SELECT T.HOUR + 1
        FROM TIMETABLE T
        WHERE T.HOUR < 23
)

SELECT HOUR, COUNT(A.ANIMAL_ID)
FROM TIMETABLE T
    LEFT JOIN ANIMAL_OUTS A
    ON T.HOUR = HOUR(A.DATETIME)
GROUP BY HOUR
ORDER BY HOUR

어려웠던 점

WITH RECURSIVE 구문이 좀 생소했다

궁금한 점

기타

sql 너무 오랜만에 보는데, with recursive 구문은 어렵네여.. ㅎㅎ

recursive subquery부분이 어떤 역할을 하는건가요??

오 recursive 처음봐요!! 좋은 방법 감사합니다~!
저는 변수 사용해보고 싶어서 이렇게 풀어봤습니당
SET @hour := -1; -- 변수 선언

SELECT
    (@hour := @hour + 1) as HOUR, -- 0부터 하나씩 증가
    (SELECT count(*) FROM ANIMAL_OUTS WHERE hour(DATETIME) = @hour)
    as COUNT -- 변수랑 DATETIME의 hour 부분이 같은 수 세기
FROM ANIMAL_OUTS
WHERE @hour < 23 -- 23까지

authors: Kimyungi SeoroMin jayleenym jo999999


text:
Rewrite parser without nom

I was struggling with nom lack of good diagnostic messages, and I
decided that it's easier to rewrite parser without nom.
The new parser in particular properly reports error location (line and
column) which was a big pain of old parser (fixes #13).
New parser correctly accepts syntax which is specified in syntax = ... header.
New parser successfully parses (although doesn't check for correctness)
all protobuf .proto files:
cargo run --example test_against_protobuf_protos ~/devel/protobuf/

Wow. This is a lot of work!
I agree that not using nom might be better (performance is definitely not an issue) for support purpose.
I do have several comments though, some esthetics (e.g. function names not consistent ...), some more practical (I think parser should implement Iterator<Item=char> which is a line/column augmented version of std::str::char_indices).
I am wondering if making a PR on your PR is better or not.
Alternatively, I think, if you want, you should be owner of that repo because well, you've put lot of work in it and have probably rewritten most of it!
Thanks again for all your work.

I tried to make it more readable and decided to try to rewrite it as lexer+parser. It will take a little time.

Alternatively, I think, if you want, you should be owner of that repo because well, you've put lot of work in it and have probably rewritten most of it!

If you intend to use it in quick-protobuf codegen, I'd appreciate if you make me an owner or give me push permissions so I could push simple changes without waiting for merge. However, I would still appreciate code review for larger changes like this one.
However, if you are not going to use this parser in quick-protobuf, I should simply merge it into the rust-protobuf project.

Updated with lexer+parser.

Hello!
I guess it's a bit late to try and convince you to keep the nom parser, but did you see https://github.com/fflorent/nom_locate ?
It solves the issue of getting line and column info for any part of the input that's returned, and for errors too.

@Geal I've seen nom-locate, but I couldn't easily understand how to obtain line and column number of error from it.
But the biggest issue is that I found nom parser (with programmable macros) to be too hard to use: documentation is not perfect, and reading the sources is hard (you cannot cmd-click on tag! to understand what it does). I think a hand-written parser is easier to work with.

I've copied contents of the PR into protobuf-codegen-pure crate to unblock development of new features. So protobuf-codegen-pure doesn't use protobuf-parser crate now. Maybe I'll switch to using protobuf-parser back later.

authors: Geal stepancheg tafia

repo: tafia/protobuf-parser


text:
feat(protocol): Testing gas consumption maximums (DO NOT MERGE)

As discussed, here is a test which provides information on gas consumption when:

proposeBlock() with 10 verification, 120K bytes of non-zero TxList input calldata + cacheTxListInfo true (Tho the latter has no significant addition).
proveBlock() with 10 verifications

Gas used by proveBlock() with 10 verifications: 263.414
Gas used by proposeBlock() with 10 verifications: 2.012.363
DISCLAIMER: this is a worst-case scenario, in theory can be that much but proposers/provers will independently verify blocks in practice. (See current testnet for behavior).
You can run the tests yourselves by :
forge test -vv --match-test "test_gasConsumption"
(We should not merge this PR because the foundry.toml had to be changed in order to these tests not gassing-out)

As of now, verifying a block has no token reward (all reward for that block goes to the prover, not the transactor). Maybe we should split block reward into 2 parts, for example, 97.5% to the prover, and 2.5% to the transactor?

repo: taikoxyz/taiko-mono


text:
Javascript Extensions API

This feature will allow developers to integrate a custom Javascript hook on every outgoing HTTP requests and incoming HTTP responses. The developer can intercept these requests and body to modify them or trigger new requests or responses.
Proposal V1
The design is highly inspired from Cloudfront Functions but comes with additional capabilities and a more powerful JS runtime.
The script would have the function of the following signature:
type Headers = {[name: string]: string}

type Request = {
  url: string,
  headers: Headers,
  body: string
}

type Response = {
  status: number,
  headers: Headers,
  body: string
}

type Event = Request | Array<Response>
type Command = Array<Request> | Response

function onEvent(event: Event): Command {
   // Can modify the request
}

[ ] Add Timeout @meskill  #1005
[x] Integration tests for script execution #1005
[x] Remove unwraps #1005
[x] Add Closure #1005
[x] Client Integration #1005
[x] Link JS via HTTP/File #1005
[x] Request + Response codecs for mini_v8::Value #1005
[x] Unit Test for Script Loading #1005
[x] Config.merge_right #1005
[x] Handle empty command #1005
[x] Fix IOException on n + 1 #1005
[x] WASM CI Fix #1005
[x] Use deno_core instead of mini_v8 ##1088
[x] Drop existing JS "unsafe-js" integration
[x] Move Event and Command in their files.
[x] Use serde_v8 instead of custom implementation #1088
[x] Delete MiniV8 Code #1088
[x] console.log support
[ ] support source_map
[ ] Support fetch @meskill
[x] Unit Tests for JsRequest, JsResponse codecs
[ ] JS Threadpool vs Tokio Worker Threadpool options @meskill
[ ] Micro Benchmarks
[ ] Whitelist/Blacklist of HTTP calls
[ ] Add Typescript SDK
~Store Closure in Blueprint~
[ ] Script validation at the time of loading @meskill
[ ] Lazy Request/Response Body
[ ] WASM Compat
[ ] Moving @server {script} to @link #1103
[ ] Headers should be sent to and from jsruntime bytes
[ ] Unit test for runtime and http_filter

Links

Cloudfront Function Schema
Typescript Schema for CFF

After spending many hours/days trying to optimize the JS integration with Tailcall, we have come to realize there are a few issues with all JS runtimes.

We tried - mini_v8, deno_core, and rquickjs and they all have similar problems.
None of them are thread-safe, and a lot of thread management needs to be done by tailcall to make it work.
The main performance degradation is when we need to move Request and Response body into the JS real and then even bigger degradation happens when we need to parse that body and transform it.
Adding async support in JS requires a full-fledged event-loop integration. Which seems like an overkill architecturally and again impact performance.
We also see the application size increase by 20Mb when we embed v8. V8 also doesn't work on a platforms and hence has to be disabled on those.
For the above reasons I propose a simpler yet effective API to integrate JS

Proposal V2
The key modifications are —

We will make sure only sync API is supported via JS, meaning no fetch, not setTimeout etc.
We will never pass the whole request or response body to the JS side. Passing complete body to the JS side, makes our solution perform very poorly. I would rather build a custom Rust based proxy for very specialized orchestration requirements and run it as a side car with Tailcall.
We will provide an API to call js by function names instead. We should be able to do that not only for HTTP resolvers but also for any arbitrary graphQL field.

schema
  # Link a JS worker into the tailcall
  @link(src: "worker.js" type: Worker)

  # Add onRequest and onResponse handlers of upstream
  @upstream(script: {onRequest: "onRequest", onResponse: "onResponse"}) {
  query: Query
}

type Query {
  # Special js handlers added to override the ones set by default in upstream
  users: [User] @http(path: "/users", onRequest: "onUsersRequest", onResponse: "onUsersResponse")
}

type User {
  id: ID

  # This is a usecase where allow performing any arbitrary JS transformations
  # `toUpperCase` should get a lazily encoded `ctx` object as a parameter.
  name: String @script(name: "toUpperCase")
  address: Address
}

Technical Requirements
Use https://docs.rs/rquickjs/0.5.0 instead of v8 for it's size and faster bootup time.

Proposal V2

How the onResponse and onUserResponse should work in that case? Do they also get response body, or only other response info like status and headers? If they do it's sounds like the same problem that can drop performance significantly depending on usecase. For cases when upstream returns list of data and we want to filter it from js feels like deserialization should happen anyway...
Also for @script does it accept ctx with all fields from parent value or only the value for field it's defined on?
Any ideas on how the laziness should be implemented? for deno_core passing the string involved copying all the time, bytes are almost free but its slow to parse on js side. deno using approach of decoding bytes to string with rust function that is called from js when needed and I wonder how that affects performance because that means many context switching from rust to js and backward for every entry in response lists

authors: meskill tusharmath

repo: tailcallhq/tailcall


text:
Fix background-image placement in checkbox/radios

Update: Turns out the fix I really needed was background-origin: border-box (thank this fucking legend: https://twitter.com/Nentify/status/1131666230518132740)
None of this stuff below is relevant anymore but leaving it for anyone interested in the back story.

This PR changes how checkboxes and radio buttons render their borders in order to display the background image icons at the proper resolution.
The basic issue is we want to display background images at 100% so we can use a 16x16 SVG for a 16x16 checkbox. But when a checkbox has a border (say 1px), the background positioning area shrinks (14x14 with 1px border). That means the background-image is scaled down slightly, which looks crappy, especially in IE 11, and is just in general a little annoying since it was drawn to be rendered at 16x16.
One fix is to draw the icons on a 14x14 background but then they scale funny when you change the checkbox size. For example, a 20x20 checkbox (1.25x) now uses a 17.5x17.5 checkmark (1.25x) instead of a 19x19 checkmark. You also get weird scaling issues when you change the border size.
In a perfect world, we want to specify the size of the background to be 100% of the container, ignoring any borders. *(Update: This is what we are now doing using background-origin: border-box)
This is possible in evergreen browsers using background-size: calc(100% + ${options.borderWidth} * 2) but this doesn't work in IE 11, it just renders nothing, so it doesn't even fall back in any useful way.
The only fully cross browser solution I have been able to come up with is this PR, where we use an inset box shadow to simulate borders on checkboxes and radios, since box shadows don't affect an elements background positioning area.
The only other remotely viable option is using 14x14 icons by default, and just accepting that they don't scale quite as nice. This sucks but may be the lesser of two evils if it's too surprising for people that these borders are secretly box shadows, and that adding a box-shadow utility to these elements actually overrides the existing box shadow that they thought was a border.
Checkboxes and radio buttons are straight up satan.

Turns out this box-shadow approach looks like shit in IE11 anyways, checkbox is too small and radio has some weird extra outline:

Thanks to this complete hero this is all totally fixed now, no need for shadows.
Just needed background-origin: border-box and everything behaves exactly the way I wanted it to.

@adamwathan worth it considering mergin this into core? 👀
https://github.com/hacknug/tailwindcss-background-extended

authors: adamwathan hacknug

repo: tailwindcss/custom-forms


text:
Docs: divide- examples are failed

Hi,
Just to report, in the new divide- documentation: 90% of the examples are failed:

It's simple enough though but I had to report :)

Please, post in the Docs repo instead: https://github.com/tailwindcss/docs

Sorry, didn't know about the docs repo!

authors: RomainMazB estevanmaito

repo: tailwindcss/tailwindcss


text:
Update listpack.go

is this a bug?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

也许是一个 bug，但是不影响正确性。

也许是一个 bug，不影响正确性，因为要经过 lpEncodeBacklen 函数。

authors: CLAassistant FrancoZhangVip suxb201

repo: tair-opensource/RedisShake


text:
Update sbt-scoverage to 2.0.8

About this PR
📦 Updates org.scoverage:sbt-scoverage from 1.9.3 to 2.0.8 ⚠
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scoverage", artifactId = "sbt-scoverage" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scoverage", artifactId = "sbt-scoverage" }
}]

labels: sbt-plugin-update, early-semver-major, semver-spec-major, commit-count:1

Superseded by #198.

repo: takayahilton/sql-formatter


text:
DEPRECATION WARNING: Single arity template handlers are deprecated

Hi,
When I updated my Rails application to Rails 6.0.3.2 and tested it, following messages was shown:
DEPRECATION WARNING: Single arity template handlers are deprecated. Template handlers must
now accept two parameters, the view object and the source for the view object.
Change:
  >> ThinreportsRails::TemplateHandler.call(template)
To:
  >> ThinreportsRails::TemplateHandler.call(template, source)

This issue appears to have been resolved at https://github.com/takeshinoda/thinreports-rails/pull/18.

Oh, sorry to bother you...

repo: takeshinoda/thinreports-rails


text:
I tried the train , but "Failed to find a checkpoint".

I tried the train using the test dataset , but "Failed to find a checkpoint". (in google colaboratory , tensorflow1.14.0)
How can I solve this problem?
!python main.py --dataset train --phase train
...
[] Reading checkpoints...
[] Failed to find a checkpoint
[!] Load failed...
^C

Having same issue did you solved it ?

Okay the fix is to set --light True .

I tried the method you said and the learning went well!
Thank you!


text:
Add ui test for yaml extension presence

Test to cover changes made in #80. Especially to check that extension dependency is installed.

Fixed by https://github.com/talamer/vscode-knative/pull/92.

repo: talamer/vscode-knative