Does using @model go against DynamoDB best practices?

** Which Category is your question related to? **
API - GraphQL
** What AWS Services are you utilizing? **
DynamoDB
** Provide additional details e.g. code snippets **
The GraphQL Documentation for uses a Blog as an example, and hows the use of the @model to define Blogs, Posts, and Comments. By following this example we end up with three DynamoDB tables (Blog, Post, Comments). This all makes perfect sense, especially for someone coming from a relational database background. However, when I read up on DynamoDB best practices here: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.html
It is emphasized multiple times that well designed applications should only use one table. Does this go against best practices?

I've also been thinking about this and others have been asking this question often online (see https://www.reddit.com/r/aws/comments/8skuh0/appsync_lambda_aurora_a_good_idea/). It would be nice if AWS team writes up a whitepaper or something to update what the dynamodb best practice is in the context of appsync / graphql. I've been reading Amazon's DynamoDB whitepaper lately (https://www.amazon.ca/Amazon-DynamoDB-Developer-Web-Services-ebook/dp/B0763ZV7JG/) and their chapters on how to model relational data is very different than what the graphql transformer is doing.
My 2 cents is that with the graphql layer on top of dynamodb, it makes it a little closer to a RDBMS. The only thing I miss is transactions as you can have an operation fail midway and with dynamo you have to deal with that yourself. There is no rollback, except if you use their java transactions library but that's not used by appsync. That being said the nosql design makes it easier to prototype and change the data model in the early phases of the app but the graphql type checking is nice and sort of replaces the type checking / constraint checking that an RDBMS would give you.
Maybe as an app grows and you need ACID type operations you can move part of your app to an RDBMS and AppSync definitely works with that but you won't be able to use the graphql transformer at that point in its current form.

Looks like AppSync recently announced some support for RDS in the same way as Dynamo: https://aws.amazon.com/blogs/mobile/aws-appsync-releases-pipeline-resolvers-aurora-serverless-support-delta-sync/
So looks like they're closer to giving people an option to use RDS with AppSync (and maybe) the graphql transformer in the future. That's awesome!

Oh and transaction support is in DynamoDB now: https://aws.amazon.com/blogs/aws/new-amazon-dynamodb-transactions/
Next item on my wishlist is cascade delete functionality :).
So looks like things are moving in the right direction...

Thanks for the note. This is a great question and I think it would be helpful to clarify some of the design decisions we made when building the @model directive.
The GraphQL transform was first designed to help make common real-world use-cases easier to build. We ultimately decided to store @model types in different tables because it provided more flexibility for those that were in the design phase and might not totally understand the semantics of their data model or query pattern. We actually had a first implementation that stored all information in a single table but ultimately decided that it would limit certain use cases we were hoping to solve that it sacrificed certain features that we wanted to do down the line.
For example, the operations we wanted to support first were create, update, delete, get, and list on a per type basis. In the single table example, we can generally support these operations for any number of data types if we have a KeySchema where the HASH key is __typename and the SORT key is id (some uuid). With this setup we can:

get: DynamoDB GetItem where __typename = Post and id = "123".
list: DynamoDB Query where __typename = Post.
create: DynamoDB PutItem and set __typename = Post and id = $util.autoId().
update: DynamoDB UpdateItem and the same.
delete: DynamoDB DeleteItem and the same.

This design works but is subject to "hot" keys if a specific data type is particularly write heavy. Thus in the general case, it was difficult to say that this pattern would work for everyone. We can of course optimize this but doing so often requires some amount of domain knowledge such that you design the table specifically for your application's access pattern.
Another example is seen when looking at how we would model relationships created by the @connection directive the transform. For example, there is a great write up here that describes how you can use an adjacency list pattern for many-to-many relationships (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html#bp-adjacency-lists). Although this pattern works great when you need to associate things by id, it does not make it easy to do things like get all messages for a conversation sorted by createdAt time desc. It allows us to get all the related objects by id but adding additional filters and sort conditions becomes much more difficult in the general case.
With this being said, we are working on building the features into the transform that allow you to be more specific when defining the shape of your table. You can see the discussion here #56. This feature request has come up multiple times since then and I think deserves more attention. These features would allow you to have full control of the key schema, LSIs, and GSIs on a table managed through the transform and would thus allow you to implement optimized tables that work for your specific access pattern.

Closing this issue. Please feel free to re-open if you think its still an issue.


Shadow inside button Style

How do I to add shadow on buttonStyle?
I try to apply using coding below, but had no effect.
buttonStyle: {
    width: '100%',
    padding: 20,
    marginTop: 5,
    height: 40,
    paddingLeft: 10,
    paddingRight: 10,
    color: '#666666',
    borderBottomColor: '#fff',
    borderWidth: 1,
    backgroundColor: '#fff',
    shadowColor: "#000",
    shadowOffset: {
      width: 0,
      height: 2,
    },
    shadowOpacity: 0.18,
    shadowRadius: 2.62,
    elevation: 4,
  },

Same issue, do you have a solution ?

Have you tried to wrap it inside a View component and apply the shadow? because button style has overflow: 'hidden' and it's the reason that makes shadow doesn't work


Cannot pass a string param with a space to a custom parser plugin

Describe the bug
When passing parameters to a custom made plugin in the parser, if a space is present, each word is a different value in the array.
CodeIgniter 4 version
v4.0.0-rc.2.1
Affected module(s)
Parser
Expected behavior, and steps to reproduce if appropriate
Here is my code:
app/Views/pages/home.html
{+header title="My website"+}

Welcome to m website!

{+footer+}

in app/Config/View.php
public $plugins = [
    'header' => 'App\Controllers\BaseController::header',
    'footer' => 'App\Controllers\BaseController::footer'
];

in app/Controllers/BaseController.php
public static function header($params = [])
{
    var_dump($params);
    …
}

Value of the var_dump()
array(2) {
    ["title"]=>
    string(4) ""My"
    [0]=>
    string(8) "website""
}

Expected value of the var_dump()
array(1) {
    ["title"]=>
    string(10) "My website"
}

Context

OS: Linux Fedora 30
Web server Apache 2.4.41
PHP version 7.3.10

I am trying to fix

Hmm. str_getcsv should use the double quote as a default enclosure symbol, so it should keep items within quotes grouped already.

According to this repl, str_getcsv is not the problem.


Need clarification about the min_pose_presence_confidence in pose landmark detection

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
None
OS Platform and Distribution
Ubuntu 18.04
MediaPipe Tasks SDK version
No response
Task name (e.g. Image classification, Gesture recognition etc.)
Human Pose Landmark
Programming Language and version (e.g. C++, Python, Java)
Python
Describe the actual behavior
The min_pose_presence_confidence seems not work in the demo
Describe the expected behaviour
Show different results with different setting
Standalone code/steps you may have used to try to get what you need
When I pass the parameter to the PoseLandmarkOption, there is a `min_pose_presence_confidence` parameter, and I\'m not sure of the usage of this parameter. Then I tried the online demo https://mediapipe-studio.webapps.google.com/demo/pose_landmarker, and adjusted the `min_pose_presence_confidence`. The results are the same.

I want to know:
1. Is this `min_pose_presence_confidence` applied on each landmark or the mean of all landmarks
2. What happens if the actual confidence is below `min_pose_presence_confidence`? What happens to the detection result for the frame? Will I still get the detected landmark results or not?
3. What exactly is the `min_pose_presence_confidence` used for?

Thanks

Other info / Complete Logs
No response

Duplicate of #4859.


Update to Event Hubs getting started sample to 5.7.0

Update Event Hubs getting started sample to 5.7.0. (This is the version with reliability fixes.)
Update Event hub to Event Hub and trim trailing whitespace.

/cc @spelluru

@conniey please use the azure-docs-pr repo so that you get a richer set of preview and checks.

#sign-off

@spelluru @JasonWHowell Hey. I don't have access to azure-docs-pr. I was trying to contribute to this as I read through the docs on Microsoft and saw a gap.

@conniey - I will send you links to DOCS Contributor Guide (to the Get Started section) and the Learn training. Thanks for the update!

@conniey When you refer to an instance of Azure Event Hubs, you use event hub (lowercase and singular). This is described in the Microsoft-internal Microsoft Cloud + AI Style Guide. I've made the edit and will merge the pull request. Thanks!


The theorem T131

I think that it is important to emphasize that the subspace topology of a connected GO-space coincides with its order topology, as has been done in the proof of T125 (the subspace topology of a compact GO-space coincides with its order topology).
Could we write something like "The subspace topology and the topology induced by the order on a {P36} (connected) subset of {P133} (LOTS) coincide. See Lemma 6.1 ..."?
Thank you in advance.

Sure, we could add something.  Note however that there is maybe a little confusion in the above.
T125 (GO-space + compact ==> LOTS) can be explained in several ways, depending on what we choose for the definition of GO-space.  The proof of T125 that is in pi-base makes no mention of any subspace topology.  You keep talking about the "subspace topology of a compact GO-space".  There is no such thing. (I can guess what you are trying to say, but it should be said correctly ...)
The proof of T125 uses the characterization of GO-spaces in terms of an ordered set $(X,<)$ together with a topology admitting a base consisting of order-convex sets (and such that the topology contains the order topology $\sigma$ induced by the order $<$).  (I used $\sigma$ instead of $\lambda$ from the paper.) There is no enclosing LOTS space anywhere, and no subspace of anything in the argument.  But the conclusion is that $\tau = \sigma$, that is, the topology on $X$ was in fact the same as teh order topology induced by the order $<$.
One could phrase things similarly for T131, without giving any details of the argument, but with precise statements at least, plus the reference to the paper.
Alternatively, one could phrase things with the alternate characterization in terms of subspaces of LOTS.  But that's a different thing.
With this said, can you propose again what you have in mind?

Sure, we could add something. Note however that there is maybe a little confusion in the above.
T125 (GO-space + compact ==> LOTS) can be explained in several ways, depending on what we choose for the definition of GO-space. The proof of T125 that is in pi-base makes no mention of any subspace topology. You keep talking about the "subspace topology of a compact GO-space". There is no such thing. (I can guess what you are trying to say, but it should be said correctly ...)
The proof of T125 uses the characterization of GO-spaces in terms of an ordered set (X,<) together with a topology admitting a base consisting of order-convex sets (and such that the topology contains the order topology σ induced by the order <). (I used σ instead of λ from the paper.) There is no enclosing LOTS space anywhere, and no subspace of anything in the argument. But the conclusion is that τ=σ, that is, the topology on X was in fact the same as teh order topology induced by the order <.
One could phrase things similarly for T131, without giving any details of the argument, but with precise statements at least, plus the reference to the paper.
Alternatively, one could phrase things with the alternate characterization in terms of subspaces of LOTS. But that's a different thing.
With this said, can you propose again what you have in mind?

Thanks for the clarification.
Can just making it simple do? T125 goes: "Let $\tau$ be the topology on $X$ and let $<$ be the order on $X$ in the definition of GO-space, with corresponding order topology $\tau$". So I propose for T131: "The given topology on $X$ and the order topology induced by the order in the definition of GO-space coincide", or "The given topology on $X$ is precisely the order topology induced by the order in the definition of GO-space".

"The given topology on $X$ and the order topology induced by the order in the definition of GO-space coincide"

I like this one.  Feel free to add it.


Skipped Chapter Warning

Description of the new feature / enhancement
Sometimes when downloading a series a chapter may be missed due to an error, if it's possible it would be great to add a feature that detects when you go to the next chapter, if it's a skipped chapter.
Regarding the logic I guess it can improve over time when people report problems in certain naming sequences etc...
Scenario when this would be used?
When someone is reading a manga that has numbered chapters.
In other cases one should be able to disable this warning in the settings / or in the side panel in the reader.
Supporting information
I think it would look good if the warning is added to the transition screen at the end

Unfortunately, it's very impractical.
As @omodia said.

I don't think it's possible / easy to add this, because yomikiru is not the one downloading the chapters.

I attempted this a while ago, but since yomikiru doesn't handle downloads, I have limited control over chapters because they can be named anything, for example, Vol.2 ch.30, 30. Chapter Title, etc.
It also creates the issue of bad sorting order, but nothing can be done about it.
Although there is no "warning", you can still see which chapter will be opened next using the "Chapter Transition Screen" option.

In Vertical scroll mode

In LTR  or RTL mode

Feel free to ask if you have more questions or feature requests.


Text line edits

I'm so so sorry that I pushed without a pr. I forgot to make a separate branch for it and then it wouldn't let me make a pr with my changes

No worries ;) I will look at your changes when i get home from school.

Btw what is text line edits supposed to be?

ignore that, i see what you were going for. i did some fixes for the dark title bar on windows

what is this issue for? is it only to tell me about your changes?

To apologize for my forgetfulness. As for the sizing I'm going to make it redone with grid and I think it would be better to resize to different systems dynamically so that no matter how people make their computer it will look good

Btw what do you mean with text line edits?

I fixed the proxy


Require IPython >= 7.31.1 due to CVE-2022-21699 ?

In light of CVE-2022-21699 and its severity, should Spyder require patched IPython versions? Considering that dropping 3.6 is planned (https://github.com/spyder-ide/spyder/issues/16971) and IPython >= 8 is not currently supported this should mean the requirement of ipython >=7.31.1,<8.0.0

Hey @rhkarls, thanks a lot for the suggestion! We'll request that IPython version in our next version (5.3.0), to be released in a couple of months.

Thanks for the follow up @ccordoba12 .It appears that at least 5.2.2 Windows installer is already packaged with 7.31.1, so that's great!


Highlight deinit the same as init.

@IronHam notes that it seems jarring to see an init and then deinit method declared in succession where only one gets a special highlighting.


Modify raw iam resources to terraform-aws-iam module

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

What is the outcome that you are trying to reach?

The idea is to give less maintenance to code that already exists in another repository and create association with the work already done by the community. Furthermore, all code modifications in terms of iam will be implemented in the terraform-aws-iam/module/iam-role-for-service-accounts-eks module.
Describe the solution you would like

Instead of using pure Terraform resources and maintaining potentially duplicated code, we can utilize the terraform-aws-iam/module/iam-role-for-service-accounts-eks module to create pre-created roles and policies in policies.tf for various addons, such as:

Cluster Autoscaler
EFS CSI Driver
External DNS
External Secrets
EFx for Lustre CSI
AWS Load Balancer Controller
Velero
VPC CNI Addon

Describe alternatives you have considered

Additional context

Once IRSAv2 is released, we plan on revisiting the approach used for permissions. The current implementation here is a 1:1 of addon to IRSA, but IRSAv2 intends to provide better support for sharing roles (i.e. - you can create a VPC CNI IRSA and share that with n-number of clusters) which potentially makes the IRSA roles provided here less useful.
(Postulating) I suspect that with IRSAv2 that https://github.com/terraform-aws-modules/terraform-aws-iam/tree/master/modules/iam-role-for-service-accounts-eks will be more heavily used due to this improvement in role sharing. At that time it would make sense to use that module here and then users can simply opt in or out of this module creating the IRSA roles (if it creates it - its the 1:1 approach, if not, you can use the shared approach)


Rasterplot options

Options for raster plots:
Adjust size of markers
Colors for different populations (eg red for E, blue for SOM, green for PV)
Text labels indicating which population on vertical axis
We have some code for this on neurosim but not currently fit into NetPyne

Ok, will provide markersize and colors as optional arguments, and add option to include pop labels in vertical axis -- will check neurosim code when get to it.


[MRG] Fix to plot_joint title.

Closes https://github.com/mne-tools/mne-python/issues/4259
Are we happy with this @jona-sassenhagen  @mmagnuski ?

Codecov Report

Merging #4447 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4447      +/-   ##
==========================================
+ Coverage   82.82%   82.82%   +<.01%
==========================================
  Files         349      349
  Lines       64424    64425       +1
  Branches     9915     9916       +1
==========================================
+ Hits        53361    53362       +1
  Misses       8324     8324
  Partials     2739     2739

apart from my comment - looks good.

@mmagnuski  merge if you're happy

I am happy, merging 🚀
Thanks @jaeilepp !


redux-crud-example to 0.0.1

Promote redux-crud-example to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


(PUP-9689) Make Integer.new accept leading 0 for explicit base 10 conv

Before this, the input to Integer.new was checked with a regexp such
that if a value started with a leading zero it must also be a valid
octal number. That was bad because it prevented an explicit conversion
from for example "08" with radix 10.
This is now changes so that leading zeros are accepted by the function,
and that any error is instead triggered when the conversion takes place.
Additional test cases added.

CLA signed by all contributors.


update version to 2.4.1

Pull Request Test Coverage Report for Build 277

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 67.941%

Totals

Change from base Build 276:
-0.01%

Covered Lines:
2026

Relevant Lines:
2982

💛  - Coveralls

fix #103


[Bug] build with PFS  report an error

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

./polardb_build.sh --with-pfsd

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: debian9
Version POLARDB_11_STABLE

Additional context
Add any other context about the problem here.

@xu-chaojie The compilation of this part requires OpenSSL 1.1.1, in which SM2/SM3/SM4 algorithm of China standard is supported. You can see the release notes of OpenSSL 1.1.1, and check OpenSSL version on your Debian system.

ok, thanks

/close


update README

What this PR does / why we need it?
update README
Summary of your change
Please indicate you've done the following:

[ ] Made sure tests are passing and test coverage is added if needed.
[ ] Made sure commit message follow the rule of Conventional Commits specification.
[ ] Considered the docs impact and opened a new docs issue or PR with docs changes if needed.

Codecov Report

Merging #254 (7db5d3b) into main (1ae8a83) will decrease coverage by 1.85%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main     #254      +/-   ##
============================================
- Coverage     71.52%   69.67%   -1.86%
+ Complexity     9395     9203     -192
============================================
  Files           420      420
  Lines         46561    46408     -153
  Branches       9416     9378      -38
============================================
- Hits          33304    32336     -968
- Misses         9360    10237     +877
+ Partials       3897     3835      -62

Impacted Files
Coverage Δ

...n/java/com/alibaba/fastjson2/util/UnsafeUtils.java
24.63% <0.00%> (-46.38%)
:arrow_down:

...main/java/com/alibaba/fastjson2/util/JDKUtils.java
40.25% <0.00%> (-30.07%)
:arrow_down:

...va/com/alibaba/fastjson2/reader/ValueConsumer.java
16.66% <0.00%> (-16.67%)
:arrow_down:

...in/java/com/alibaba/fastjson2/JSONReaderASCII.java
65.06% <0.00%> (-16.16%)
:arrow_down:

...main/java/com/alibaba/fastjson2/JSONReaderStr.java
22.32% <0.00%> (-12.96%)
:arrow_down:

...java/com/alibaba/fastjson2/JSONWriterUTF8JDK9.java
73.41% <0.00%> (-8.87%)
:arrow_down:

...in/java/com/alibaba/fastjson2/JSONWriterJSONB.java
52.04% <0.00%> (-6.32%)
:arrow_down:

.../main/java/com/alibaba/fastjson2/util/IOUtils.java
55.06% <0.00%> (-5.07%)
:arrow_down:

...in/java/com/alibaba/fastjson2/JSONWriterUTF16.java
73.56% <0.00%> (-4.70%)
:arrow_down:

...baba/fastjson2/reader/FieldReaderObjectMethod.java
78.43% <0.00%> (-3.93%)
:arrow_down:

... and 43 more

Continue to review full report at Codecov.

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

JSONArray ary = JSON.parseArray(text);

ary这个缩写不是很好，改成array吧？


signout doesn't work when testing on remote servers in certain conditions

more testing needed..

problem resolved by removing the CorsFilter from the owner webapp.


How add MQTT in time series tutorial?

Based on the IoT-over-MQTT tutorial, I have enabled MQTT instead of HTTP for the communication between sensor and agent. So far I have not been able to find the error in my configuration?
This is the configuration for the IoT Agent:
  # IoT-Agent JSON
  iot-agent:
    image: fiware/iotagent-ul:${ULTRALIGHT_VERSION}
    hostname: iot-agent
    container_name: fiware-iot-agent
    restart: always
    depends_on:
      - mongo-db
      - mosquitto
    networks:
      - default
    expose:
      - "${IOTA_NORTH_PORT}"
    ports:
      - "${IOTA_NORTH_PORT}:${IOTA_NORTH_PORT}" # localhost:4041
    environment:
      - IOTA_CB_HOST=orion # name of the context broker to update context
      - IOTA_CB_PORT=${ORION_PORT} # port the context broker listens on to update context
      - IOTA_NORTH_PORT=${IOTA_NORTH_PORT}
      - IOTA_REGISTRY_TYPE=mongodb #Whether to hold IoT device info in memory or in a database
      - IOTA_LOG_LEVEL=DEBUG # The log level of the IoT Agent
      - IOTA_TIMESTAMP=true # Supply timestamp information with each measurement
      - IOTA_CB_NGSI_VERSION=v2 # use NGSIv2 when sending updates for active attributes
      - IOTA_AUTOCAST=true # Ensure Ultralight number values are read as numbers not strings
      - IOTA_MONGO_HOST=mongo-db # The host name of MongoDB
      - IOTA_MONGO_PORT=${MONGO_DB_PORT} # The port mongoDB is listening on
      - IOTA_MONGO_DB=iotagentul # The name of the database used in mongoDB
      - IOTA_MQTT_HOST=mosquitto # The host name of the MQTT Broker
      - IOTA_MQTT_PORT=1883 # The port the MQTT Broker is listening on to receive topics
      - IOTA_DEFAULT_RESOURCE= # Default is blank. I'm using MQTT so I don't need a resource
      - IOTA_PROVIDER_URL=http://iot-agent:${IOTA_NORTH_PORT}
      - IOTA_DEFAULT_TRANSPORT=MQTT
    healthcheck:
      interval: 5s

This is the configuration for the IoT Sensor:
# Tutorial acts as a series of dummy IoT Sensors over HTTP
  iot-sensors:
    image: fiware/tutorials.context-provider
    hostname: iot-sensors
    container_name: iot-sensors
    restart: always
    depends_on:
      - orion
      - quantumleap
    expose:
      - "${TUTORIAL_APP_PORT}"
      - "${TUTORIAL_DUMMY_DEVICE_PORT}"
    ports:
      - "${TUTORIAL_APP_PORT}:${TUTORIAL_APP_PORT}" # localhost:3000
      - "${TUTORIAL_DUMMY_DEVICE_PORT}:${TUTORIAL_DUMMY_DEVICE_PORT}" # localhost:3001
    environment:
      - "MONGO_URL=mongodb://mongo-db:27017"
      - "DEBUG=iot-sensors:*"
      - "WEB_APP_PORT=${TUTORIAL_APP_PORT}" # Port used by the content provider proxy and web-app for viewing data
      - "IOTA_HTTP_HOST=iot-agent"
      - "IOTA_HTTP_PORT=${IOTA_SOUTH_PORT}"
      - "IOTA_DEFAULT_RESOURCE=/iot/d"
      - "MQTT_TOPIC_PROTOCOL=ul"
      - "DUMMY_DEVICES_PORT=${TUTORIAL_DUMMY_DEVICE_PORT}" # Port used by the dummy IOT devices to receive commands
      - "DUMMY_DEVICES_TRANSPORT=MQTT" # Default transport used by dummy IoT devices
      - "CONTEXT_BROKER=http://orion:${ORION_PORT}/v2" # URL of the context broker to update context
      - "NGSI_LD_PREFIX="
      - "CRATE_DB_SERVICE_URL=http://crate-db:4200/_sql"
      - "DUMMY_DEVICES_API_KEY=4jggokgpepnvsb2uv4s40d59ov"
      - "MQTT_BROKER_URL=mqtt://mosquitto"
    networks:
      - default

This is the configuration for the MQTT Broker:
  # MQTT broker
  mosquitto:
    image: eclipse-mosquitto:1.6.14
    hostname: mosquitto
    container_name: mosquitto
    restart: always
    expose:
      - "1883"
      - "9001"
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
    networks:
      - default

Following the time series tutorial recommendation I have tried to unlock the door:

... and this is the log obtained in the IoT Sensor with MQTT:

... this is the log obtained for the IoT Sensor without MQTT:

... this is the log obtained in the IoT Agent with MQTT:

... this is the log obtained in the Orion with MQTT:

It is probably because the dummy devices are still listening on HTTP and are not subscribing to MQTT Topics. Just set  DUMMY_DEVICES_TRANSPORT=MQTT to switch the transport as shown here

Alternatively it could be to do with the provisioning of the device - make sure you have the MQTT transport like here

Thanks !!!
I got this message when I provisioned the sensor:
{"name":"DUPLICATE_DEVICE_ID","message":"A device with the same pair (Service, DeviceId) was found:motion001"}

I guess it will be because I have provided this configuration as part of the provision-devices file:
#!/bin/bash
#
#  curl commands to reload the data from the previous tutorial
#
#

set -e

printf "⏳ Provisioning IoT devices "

#
# Create a service groups for all UltraLight IoT devices
#

curl -s -o /dev/null -X POST \
  "http://iot-agent:$IOTA_NORTH_PORT/iot/services" \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "services": [
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "'"http://orion:$ORION_PORT"'",
     "entity_type": "Motion",
     "resource":    "/iot/d",
     "protocol":    "PDI-IoTA-UltraLight",
     "transport":   "MQTT",
     "timezone":    "Europe/Berlin",
     "attributes": [
       { "object_id": "c", "name":"count", "type":"Integer"}
      ],
      "static_attributes": [
          {"name": "category", "type":"Text", "value": ["sensor"]},
          {"name": "controlledProperty", "type": "Text", "value": "motion"},
          {"name": "function", "type": "Text", "value":["sensing"]},
          {"name": "supportedProtocol", "type": "Text", "value": ["ul20"]},
          {"name": "supportedUnits", "type": "Text", "value": "C62"}
      ]
   },
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "'"http://orion:$ORION_PORT"'",
     "entity_type": "Bell",
     "resource":    "/iot/d",
     "protocol":    "PDI-IoTA-UltraLight",
     "transport":   "MQTT",
     "timezone":    "Europe/Berlin",
     "commands": [
        {
          "name": "ring",
          "type": "command"
        }
      ],
      "static_attributes": [
          {"name": "category", "type":"Text", "value": ["actuator"]},
          {"name": "controlledProperty", "type": "Text", "value": "noiseLevel"},
          {"name": "function", "type": "Text", "value":["onOff"]},
          {"name": "supportedProtocol", "type": "Text", "value": ["ul20"]}
      ]
   },
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "'"http://orion:$ORION_PORT"'",
     "entity_type": "Lamp",
     "resource":    "/iot/d",
     "protocol":    "PDI-IoTA-UltraLight",
     "transport":   "MQTT",
     "timezone":    "Europe/Berlin",
     "commands": [
        {"name": "on","type": "command"},
        {"name": "off","type": "command"}
     ],
     "attributes": [
        {"object_id": "s", "name": "state", "type":"Text"},
        {"object_id": "l", "name": "luminosity", "type":"Integer",
          "metadata": {"unitCode": {"type": "Text","value": "CDL"}}
        }
     ],
     "static_attributes": [
          {"name": "category", "type":"Text", "value": ["actuator","sensor"]},
          {"name": "controlledProperty", "type": "Text", "value": "light"},
          {"name": "function", "type": "Text", "value":["onOff", "sensing"]},
          {"name": "supportedProtocol", "type": "Text", "value": ["ul20"]},
          {"name": "supportedUnits", "type": "Text", "value": "CDL"}
     ]
   },
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "'"http://orion:$ORION_PORT"'",
     "entity_type": "Door",
     "resource":    "/iot/d",
     "protocol":    "PDI-IoTA-UltraLight",
     "transport":   "MQTT",
     "timezone":    "Europe/Berlin",
     "commands": [
        {"name": "unlock","type": "command"},
        {"name": "open","type": "command"},
        {"name": "close","type": "command"},
        {"name": "lock","type": "command"}
      ],
     "attributes": [
        {"object_id": "s", "name": "state", "type":"Text"}
      ],
     "static_attributes": [
          {"name": "category", "type":"Text", "value": ["actuator", "sensor"]},
          {"name": "controlledProperty", "type": "Text", "value": "state"},
          {"name": "function", "type": "Text", "value":["openClose", "eventNotification"]},
          {"name": "supportedProtocol", "type": "Text", "value": ["ul20"]}
      ]
   }
 ]
}'

####################################################
#
# Provision sensors for Store 001
#

curl -s -o /dev/null -X POST \
  "http://iot-agent:$IOTA_NORTH_PORT/iot/devices" \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "devices": [
   {
     "device_id":   "motion001",
     "entity_name": "Motion:001",
     "entity_type": "Motion",
     "static_attributes": [
         {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
     ]
   },
   {
      "device_id": "bell001",
      "entity_name": "Bell:001",
      "entity_type": "Bell",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/bell001"'",
      "static_attributes": [
          {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
      ]
    },
    {
      "device_id": "door001",
      "entity_name": "Door:001",
      "entity_type": "Door",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/door001"'",
      "static_attributes": [
          {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"}
       ]
    },
    {
      "device_id": "lamp001",
      "entity_name": "Lamp:001",
      "entity_type": "Lamp",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/lamp001"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:001"},
        {"name":"location", "type":"geo:json", "value": {
            "coordinates": [52.5547,13.3986],
            "type": "Point"
          }
        }
      ]
    }
  ]
}
'

####################################################
#
#
# Provision sensors for Store 002
#

curl -s -o /dev/null -X POST \
  "http://iot-agent:$IOTA_NORTH_PORT/iot/devices" \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "devices": [
   {
     "device_id":   "motion002",
     "entity_name": "Motion:002",
     "entity_type": "Motion",
     "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:002"}
     ]
   },
   {
      "device_id": "bell002",
      "entity_name": "Bell:002",
      "entity_type": "Bell",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/bell002"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:002"}
      ]
    },
    {
      "device_id": "door002",
      "entity_name": "Door:002",
      "entity_type": "Door",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/door002"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:002"}
      ]
    },
    {
      "device_id": "lamp002",
      "entity_name": "Lamp:002",
      "entity_type": "Lamp",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/lamp002"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:002"},
        {"name":"location", "type":"geo:json", "value": {
          "coordinates": [52.5075,13.3903],
          "type": "Point"}
        }
      ]
    }
  ]
}
'

####################################################
#
#
# Provision sensors for Store 3
#

curl -s -o /dev/null -X POST \
  "http://iot-agent:$IOTA_NORTH_PORT/iot/devices" \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "devices": [
   {
     "device_id":   "motion003",
     "entity_name": "Motion:003",
     "entity_type": "Motion",
     "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:003"}
     ]
   },
   {
      "device_id": "bell003",
      "entity_name": "Bell:003",
      "entity_type": "Bell",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/bell003"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:003"}
      ]
    },
    {
      "device_id": "door003",
      "entity_name": "Door:003",
      "entity_type": "Door",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/door003"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:003"}
      ]
    },
    {
      "device_id": "lamp003",
      "entity_name": "Lamp:003",
      "entity_type": "Lamp",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/lamp003"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:003"},
        {"name":"location", "type":"geo:json", "value": {
          "coordinates": [52.5031,13.4447],
          "type": "Point"}
        }
      ]
    }
  ]
}
'

####################################################
#
#
# Provision sensors for Store 4
#

curl -s -o /dev/null -X POST \
  "http://iot-agent:$IOTA_NORTH_PORT/iot/devices" \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "devices": [
   {
     "device_id":   "motion004",
     "entity_name": "Motion:004",
     "entity_type": "Motion",
     "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:004"}
     ]
   },
   {
      "device_id": "bell004",
      "entity_name": "Bell:004",
      "entity_type": "Bell",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/bell004"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:004"}
      ]
    },
    {
      "device_id": "door004",
      "entity_name": "Door:004",
      "entity_type": "Door",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/door004"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:004"}
      ]
    },
    {
      "device_id": "lamp004",
      "entity_name": "Lamp:004",
      "entity_type": "Lamp",
      "endpoint": "'"http://iot-sensors:$TUTORIAL_DUMMY_DEVICE_PORT/iot/lamp004"'",
      "static_attributes": [
        {"name": "refStore", "type": "Relationship","value": "urn:ngsi-ld:Store:004"},
        {"name":"location", "type":"geo:json", "value": {
          "coordinates": [52.5208,13.4094],
          "type": "Point"}
        }
      ]
    }
  ]
}
'

echo -e " \033[1;32mdone\033[0m"

resource should be left blank for MQTT - see here

Thanks. Still troubleshooting ...
I have skipped the configuration of the provision-devices file to provide the provisioning recommended:
First, the provisioning of services:
curl -iX POST \
  'http://localhost:4041/iot/services' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "services": [
   {
     "apikey":      "4jggokgpepnvsb2uv4s40d59ov",
     "cbroker":     "http://orion:1026",
     "entity_type": "Thing",
     "resource":    ""
   }
 ]
}'

... and then, the provisioning of devices:
curl -iX POST \
  'http://localhost:4041/iot/devices' \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
 "devices": [
   {
     "device_id":   "door001",
     "entity_name": "urn:ngsi-ld:Door:001",
     "entity_type": "Door",
     "protocol":    "PDI-IoTA-UltraLight",
     "transport":   "MQTT",
     "timezone":    "Europe/Berlin",
     "attributes": [
       { "object_id": "c", "name": "count", "type": "Integer" }
     ],
     "static_attributes": [
       { "name":"refStore", "type": "Relationship", "value": "urn:ngsi-ld:Store:001"}
     ]
   }
 ]
}
'

I have applied next troubleshoot:
docker run -it --rm --name mqtt-publisher --network   fiware_default efrecon/mqtt-client pub -h mosquitto -m "s|ON|0|1"   -t "/ul/4jggokgpepnvsb2uv4s40d59ov/lamp001/attrs"

As you can see, it enables MQTT messages, however the lamp doesn't turn on:

Measures and commands are sent over different MQTT topics:

Measures are sent on the /<protocol>/<api-key>/<device-id>/attrs topic
Commands are sent on the /<api-key>/<device-id>/cmd topic.

So you sent a northbound measure, not a command. Only the IoT Agent is subscribed to the   /<protocol>/<api-key>/<device-id>/attrs MQTT topic, the dummy actuator devices are subscribed to /<api-key>/<device-id>/cmd .
In this case, the on screen display you highlight is just showing all of the MQTT topics going both directions, it doesn't mean that the devices are subscribed to /attrs.

Understood, thank you !!!
Now, I am able to publish commands going southbound using POST:
curl -iX POST \
  http://localhost:4041/v2/op/update \
  -H 'Content-Type: application/json' \
  -H 'fiware-service: openiot' \
  -H 'fiware-servicepath: /' \
  -d '{
    "actionType": "update",
    "entities": [
        {
            "type": "Motion",
            "id": "urn:ngsi-ld:Motion:001",
            "on" : {
                "type": "command",
                "value": "on"
            }
        }
    ]
}'

As you can see the commandStatus is PENDING I guess because I don`t have the Context-Provider connected now.
{"id":"urn:ngsi-ld:Motion:001","type":"Motion","TimeInstant":{"type":"DateTime","value":"2022-08-15T11:08:50.640Z","metadata":{}},"count":{"type":"Integer","value":"99","metadata":{"TimeInstant":{"type":"DateTime","value":"2022-08-15T09:11:10.396Z"}}},"luminosity":{"type":"Integer","value":"335","metadata":{"TimeInstant":{"type":"DateTime","value":"2022-08-15T09:14:06.611Z"},"unitCode":{"type":"Text","value":"CDL"}}},"off_info":{"type":"commandResult","value":" ","metadata":{}},"off_status":{"type":"commandStatus","value":"UNKNOWN","metadata":{}},"on_info":{"type":"commandResult","value":" ","metadata":{}},"on_status":{"type":"commandStatus","value":"PENDING","metadata":{"TimeInstant":{"type":"DateTime","value":"2022-08-15T11:08:50.640Z"}}},"refStore":{"type":"Relationship","value":"urn:ngsi-ld:Store:001","metadata":{"TimeInstant":{"type":"DateTime","value":"2022-08-15T11:08:50.640Z"}}},"state":{"type":"Text","value":null,"metadata":{}},"on":{"type":"command","value":"","metadata":{}},"off":{"type":"command","value":"","metadata":{}}}

I will close the issue, thank you very much!!!


Relative Difference of Mean not detecting large change

A change detection variable defined with the following relative difference of means

is not detecting large changes after the first 2 changes have been detected;

the reason it was not fired was due to the number of proceeding datapoints in the configuration is set to 5.  The relative difference of means requires 5 data points from the last change point. so in this case the large changes were not analysed as there were not enough datapoints from the previous change.

Hello John. What would be a fix here? Given our specific data, would you have a recommendation on change detection config?

@jhutar if your case, you can reduce the "Minimal Number of preceeding datapoints" to 1, although I would keep the threshold quite high to stop noisy alerts.
I think we need to improve the docs on threshold configuration and the implications


Bump leptos to 0.6

Nice, thanks for doing this. Will wait with merging until I get home so I can make a new release

Thanks for the PR, i have released a new version 0.3


Italian language for Numsense

I implemented the Italian language support for Numsense.
All existing tests passed; I also added some new test cases to test some
"Italian cases". :-)

 All committers of the pull request should sign our Contributor License Agreement in order to get your pull request merged.0 out of 2 committers have signed the CLA.:x: Alberto Dallagiacoma:x: albertodallAlberto Dallagiacoma seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account ([for further information, click here] (https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user/#commits-are-not-linked-to-any-user)).

Thank you for your interest in contributing to Numsense. This pull request touches 41 files. Could you please narrow the focus of it?

My apologies,
I think this happened because I committed the xunit.runner.visualstudio.2.1.0 package in the "packages" folder, and because, meanwhile, I merged once from origin.
Do I have to remove those commits?

@ploeh I should have "narrowed the focus" of this pull request, as requested.

Thank you. Please, however, take a look at the diff view. The pull request is still difficult to review due to files that look like they've been changed wholesale.


Set of unit tests

Set of tests for the functions of KerrGeodesics including tests of random numbers (and analytic formulae where possible)

Thanks for the extra unit tests! I've merged these with the ones from Sam.


KontentDownloadImages support for Config

Is your feature request related to a problem?
I'd like to customize paths of downloaded images based on contextual data.
Describe the solution you'd like
Similar to other modules that come OOTB with Statiq, I think the KontentImageProcessor should accept Config<string> localPath in the constructor.
Describe alternatives you've considered
public KontentImageProcessor WithLocalPath(string path)
-> this allows some level of customization, however, it doesn't allow me to load things from the IDocument and IExecutionContext.

Seems like a good enhancement, I'm picking this up for the next release


OpenSSL verify should not be set to NONE

https://github.com/Kong/httpsnippet/blob/1855a742777d52a74c58bbc9482539327b03d71d/src/targets/ruby/native.js#L32
This disable the check of the SSL certificate and should be prevented. Can this be changed to have SSL verified?

This was likely added so that a certificate was not needed in order to make an SSL request. I'm not a ruby developer, wouldn't you also need http.cert param and a way to pass in a cert/key? Can you elaborate on desired behavior?

This is indeed to make integration easier at the expense of security. The integrator could be following these instructions blindly and end up with a MITM vulnerability.
The alternatives are:

Change to OpenSSL::SSL::VERIFY_PEER and let the integrating party deal with the possible certificate verify failed. error. Solutions can be found here: https://www.engineyard.com/blog/ruby-ssl-error-certificate-verify-failed#updatecacertificates
Add a Ruby comment above http.verify_mode = OpenSSL::SSL::VERIFY_NONE stating to change in production: # This is insecure, ensure you update the verify_mode to OpenSSL::SSL::VERIFY_PEER in 3. Leave as is and inadvertently create security holes in production systems.

I suggest solution 1 with the addition of a comment above it referencing the EngineYard article.
Happy to create a PR if it'll get merged.

WDYT @darrenjennings ?

@trev your suggestion to change it to VERIFY_PEER LGTM. Users can change to VERIFY_NONE if desired, while it keeps the snippets secure by default. Important to note also that this code doesn't even work currently so would also hope to get #123 in as well. Can treat as two separate PRs.

I was talking with @gschier who mentioned it could be good to be secure by default but since clients are not limited in the number of options they can have we can always make it an option with sane defaults. Open to bikeshedding the name of the options for VERIFY_PEER vs VERIFY_NONE

Here are some examples from various places:

NodeJS: rejectUnauthorized
Curl CLI: --insecure
Go: InsecureSkipVerify
Python: verify

My vote is for the most descriptive: insecureSkipVerify

Good find @gschier. Let's go with insecureSkipVerify then. @trev or @RolphH do you want to submit a pull request? If not @gschier or I can do it, but glad to take contributions from the community.

The line .push('http.verify_mode = OpenSSL::SSL::VERIFY_NONE')  should be removed from the ruby target.
It's a huge security problem to not verify HTTPS certificates, since any MITM can swap out the certificate without any warning.
https://brakemanscanner.org/docs/warning_types/ssl_verification_bypass/


Add regression test for #20226

Original GH: https://github.com/Expensify/App/issues/20226
Please add the following regression test:

Go to Settings -> Payments -> Add PayPal method -> PayPal.me
User enters more than 20 characters and press "Add payment method"
The form error of "Invalid Paypal.me username" should be shown.
If user enters <= 20 characters and press "Add payment method", it should succeed.

@applausebot bump!


UI - show volume errors in Longhorn

Volume errors in UI could help troubleshoot what caused it to fault

You should be able to find more information in the event log. I think #990 should help.

You should be able to find more information in the event log. I think #990 should help.

I think seeing volume specific logs would help a lot too, that way you wouldn't have to filter the log for the specific volume
We can close this one for yours

@ainiml I think wen can reveal more information by using the event, as I mentioned in #990. Log can be used for debugging, but it shouldn't be something users need to deal with on a daily basis IMO.

True, similar to Rancher pod events, where you temporarily see what has happened (because the events disappear after the log rotates)
Just a visual piece of mind to see that it has passed each of its steps, so it doesn't feel like a black box, where you dig around to find out if what you're looking at worked or not (let that be either a pod or a deployment)
In Longhorn's case, either a node or a volume, replica, backup, or snapshot

Another current example for Longhorn, would be why a volume faulted
For example, the backend seems to be communicating well with S3, but we're getting buffer I/O errors, medium errors, and async page read errors
Jan 14 04:38:22 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/00020002
Jan 14 04:38:22 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/00020001
Jan 14 04:38:22 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/0002000c
Jan 14 04:38:22 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/0002000d
Jan 14 04:38:22 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/0002000e
Jan 14 04:38:22 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/0002000f
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00020000
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/0002000d
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00020002
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/0002000f
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/0002000e
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00020001
Jan 14 04:38:22 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/0002000c
Jan 14 04:38:52 dream s3backer: GET https://s3.amazonaws.com/skynet-longhorn/00000000
Jan 14 04:38:52 dream s3backer: success: GET https://s3.amazonaws.com/skynet-longhorn/00000000
Jan 14 04:38:53 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/00040007
Jan 14 04:38:53 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00040007
Jan 14 04:38:53 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/00000000
Jan 14 04:38:53 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00000000
Jan 14 04:39:23 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/00040007
Jan 14 04:39:23 dream s3backer: PUT https://s3.amazonaws.com/skynet-longhorn/00000000
Jan 14 04:39:23 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00040007
Jan 14 04:39:23 dream s3backer: success: PUT https://s3.amazonaws.com/skynet-longhorn/00000000

─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
[13353.083661] print_req_error: critical medium error, dev sdm, sector 2097024
[13353.085810] sd 14:0:0:1: [sdm] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[13353.085815] sd 14:0:0:1: [sdm] tag#0 Sense Key : Medium Error [current]
[13353.085818] sd 14:0:0:1: [sdm] tag#0 Add. Sense: Unrecovered read error
[13353.085822] sd 14:0:0:1: [sdm] tag#0 CDB: Read(10) 28 00 00 1f ff 80 00 00 08 00
[13353.085825] print_req_error: critical medium error, dev sdm, sector 2097024
[13353.087673] Buffer I/O error on dev sdm, logical block 262128, async page read
[13353.093035] sd 14:0:0:1: [sdm] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[13353.093038] sd 14:0:0:1: [sdm] tag#0 Sense Key : Medium Error [current]
[13353.093040] sd 14:0:0:1: [sdm] tag#0 Add. Sense: Unrecovered read error
[13353.093042] sd 14:0:0:1: [sdm] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[13353.093044] print_req_error: critical medium error, dev sdm, sector 0
[13353.094654] sd 14:0:0:1: [sdm] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[13353.094660] sd 14:0:0:1: [sdm] tag#0 Sense Key : Medium Error [current]
[13353.094665] sd 14:0:0:1: [sdm] tag#0 Add. Sense: Unrecovered read error
[13353.094675] sd 14:0:0:1: [sdm] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[13353.094677] print_req_error: critical medium error, dev sdm, sector 0
[13353.095760] Buffer I/O error on dev sdm, logical block 0, async page read
[13353.098524] Buffer I/O error on dev sdm, logical block 0, async page read
[13353.101045] Buffer I/O error on dev sdm, logical block 0, async page read
[13353.102732] Buffer I/O error on dev sdm, logical block 0, async page read
[13353.104845] Buffer I/O error on dev sdm, logical block 0, async page read
[13353.110009] Buffer I/O error on dev sdm, logical block 0, async page read
[13357.976794] sd 14:0:0:1: [sdm] Synchronizing SCSI cache

@ainiml Block device/iSCSI on Linux has expectations on how fast the storage system should respond to the request. IMO, this kind of error most likely due to the speed of S3 backed FS is too slow to respond or missed a response, caused the read to error out.
The speed and latency is the main reason we don't recommend using any device other than physical hard drive or cloud provider's block devices for Longhorn.

@ainiml Block device/iSCSI on Linux has expectations on how fast the storage system should respond to the request. IMO, this kind of error most likely due to the speed of S3 backed FS is too slow to respond or missed a response, caused the read to error out.
The speed and latency is the main reason we don't recommend using any device other than physical hard drive or cloud provider's block devices for Longhorn.

We managed to fix it, thankfully, thanks to the help of the developer. Looks like we'll be able to keep using Longhorn, now that we can use an S3 backend for it


ARROW-506: Java: Implement echo server for integration testing.

While implementing this, it became clear it made sense for the stream writer to
have an API to indicate EOS without closing the stream. The current message the
reader is expecting is a 4 byte size for the next batch. This patch proposes we
allow 0 as the size to indicate EOS.

LGTM


Change format from enums to string type

this is recreation of https://github.com/guardian/libs/pull/376
What does this change?
This changes the format types from enums to string.
Why?
This helps bring DCR in line with the Frontend string properties reducing the number of transformations.
Secondly this will overcome difficulties of working with enums such as here:
https://github.com/guardian/dotcom-rendering/blob/main/dotcom-rendering/scripts/gen-stories/get-stories.js#L119

I know it wasn't part of the original PR because the old repo didn't use changesets, but it would be great to fill out the changeset with some more info if possible e.g. what a consumer will need to do etc


split tests

Splitting tests methods into separated files.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.35%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
379

Relevant Lines:
406

💛  - Coveralls


"data type not understood" when passing Python lists to Numpy functions

from __future__ import print_function

import jax.numpy as np
import numpy as onp

print("numpy", onp.concatenate([[], [1]], 0))
print("jax", np.concatenate([[], [1]], 0))

numpy [ 1.]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-13-b152465c43b6> in <module>()
      5
      6 print("numpy", onp.concatenate([[], [1]], 0))
----> 7 print("jax", np.concatenate([[], [1]], 0))

jax/numpy/lax_numpy.py in concatenate(arrays, axis)
   1285     raise ValueError("Zero-dimensional arrays cannot be concatenated.")
   1286   axis = _canonicalize_axis(axis, ndim(arrays[0]))
-> 1287   arrays = _promote_dtypes(*arrays)
   1288   # lax.concatenate can be slow to compile for wide concatenations, so form a
   1289   # tree of concatenations as a workaround especially for op-by-op mode.

jax/numpy/lax_numpy.py in _promote_dtypes(*args)
    158     return args
    159   else:
--> 160     from_dtypes = map(_dtype, args)
    161     to_dtype = xla_bridge.canonicalize_dtype(result_type(*from_dtypes))
    162     return [lax.convert_element_type(x, to_dtype)

TypeError: data type not understood

Thanks for the issue report! The issue is not actually with concatenating arrays; it is that JAX is a little bit less permissive than Numpy when it comes to accepting non-array values (e.g., lists) as arguments to Numpy functions.
If the arguments to concatenate are actually arrays, everything works:
print("jax", np.concatenate([np.array([]), np.array([])], 0))

Now, I think I agree that JAX should probably accept more list-like values as arguments across the board, although there isn't universal agreement on that point. For now, the workaround would be to cast arguments to arrays yourself.

Ah, thanks for clarifying, I can easily make the necessary change in my code.

This is an old issue, but today it gives a much better error:
In [25]: import jax.numpy as np
    ...: import numpy as onp
    ...:
    ...: print("numpy", onp.concatenate([[], [1]], 0))
    ...: print("jax", np.concatenate([[], [1]], 0))
numpy [1.]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-25-7b88e765149d> in <module>
      3
      4 print("numpy", onp.concatenate([[], [1]], 0))
----> 5 print("jax", np.concatenate([[], [1]], 0))

~/p/jax/jax/_src/numpy/lax_numpy.py in concatenate(arrays, axis)
   3401   if isinstance(arrays, (np.ndarray, ndarray)):
   3402     return _concatenate_array(arrays, axis)
-> 3403   _stackable(*arrays) or _check_arraylike("concatenate", *arrays)
   3404   if not len(arrays):
   3405     raise ValueError("Need at least one array to concatenate.")

~/p/jax/jax/_src/numpy/lax_numpy.py in _check_arraylike(fun_name, *args)
    557                     if not _arraylike(arg))
    558     msg = "{} requires ndarray or scalar arguments, got {} at position {}."
--> 559     raise TypeError(msg.format(fun_name, type(arg), pos))
    560
    561 def _check_no_float0s(fun_name, *args):

TypeError: concatenate requires ndarray or scalar arguments, got <class 'list'> at position 0.

That's the intended behavior, so closing this issue...


[dbbs-mod-collection] Issues with KINETIC block

Compiling https://github.com/dbbs-lab/dbbs-mod-collection/blob/master/dbbs_mod_collection/mod/glia__dbbs_mod_collection__cdp5__CR.mod with
nmodl glia__dbbs_mod_collection__cdp5__CR.mod verbose --debug host --c passes --inline sympy --analytic

generates a parser error:
NMODL] [debug] :: KineticBlockVisitor :: -> adding statement: mg' = ()/(diam*diam*vrat)
terminate called after throwing an instance of 'std::runtime_error'
  what():  NMODL Parser Error : syntax error, unexpected ) [Location : 1.28]
---------------------------^

Aborted (core dumped)
make: *** [/home/magkanar/bbp_repos/robin/nrn/build/install/share/coreneuron/nrnivmodl_core_makefile:204: x86_64/corenrn/mod2c/glia__dbbs_mod_collection__cdp5__CR.cpp] Error 134

Fixed this here: https://github.com/BlueBrain/nmodl/commit/315a52c4909da324a7f660c66b9e7f0ea0672641 but there are more issues:
[NMODL] [debug] :: SympySolverVisitor :: -> instead of Euler eq using CONSERVE equation: pumpca = (TotalPump*parea*(1e10)-((1e10)*parea*1*pump))/((1e10)*parea*1)
terminate called after throwing an instance of 'pybind11::error_already_set'
  what():  ModuleNotFoundError: No module named 'nmodl'

At:
  <string>(3): <module>

[1]    87303 IOT instruction (core dumped)  ../nrn/external/nmodl/build/install/bin/nmodl  --verbose debug passes --inlin

It seems like the issue with the empty parenthesis comes from the KineticBlockVisitor, before launching anything related to ODEs and sympy.
The failing output gets generated by https://github.com/BlueBrain/nmodl/blob/master/src/visitors/kinetic_block_visitor.cpp#L401.
ode_rhs seems to be empty because additive_terms for the mg state variable is empty.
Looking at the mod file I don't see anywhere mg being used so it shouldn't matter whatever is done with it.
However when I launch the simulation after ~50ms:
 Memory (MBs) :     After nrn_finitialize : Max 1368.8477, Min 1322.6758, Avg 1350.8843

python: x86_64/corenrn/mod2c/glia__dbbs_mod_collection__cdp5__CR.cpp:1344: void coreneuron::nrn_state_glia__dbbs_mod_collection__cdp5__CR(coreneuron::NrnThread *, coreneuron::Memb_list *, int): Assertion `false && "Newton solver did not converge!"' failed.
MPT ERROR: Rank 1(g:1) received signal SIGABRT/SIGIOT(6).
        Process ID: 7536, Host: ldir01u13.bbp.epfl.ch, Program: /gpfs/bbp.cscs.ch/ssd/apps/bsd/2023-02-23/stage_externals/install_gcc-12.2.0-skylake/python-3.10.8-rvn6l5/bin/python3.10
        MPT Version: HPE HMPT 2.25  10/22/21 03:18:39

I'm not sure whether this is because of the mg variable or some other issue with this complicated KINETIC block

I have added in https://github.com/BlueBrain/nmodl/commit/c4b3b87fdf416254c7e55d61d082df72d98b66c1 a unit test which includes the KINETIC block of the mod file as well as the DERIVATIVE block generated by NMODL.
The test output is based on my change in https://github.com/BlueBrain/nmodl/commit/5b9bbbd016904aff76b29eb4b04fa52301821573 so that the KineticBlockVisitor doesn't crash.
Some background. NMODL transforms the KINETIC block to a DERIVATIVE block so that it's possible to use the regular solvers.
Could someone with more mathematics knowledge have a look on the above and see whether there is any obvious mistake with the DERIVATIVE block generation? Or if there is an issue with the definition of the KINETIC block, as commented above?
cc: @pramodk @cattabiani @nrnhines

checking this https://github.com/BlueBrain/nmodl/commit/5b9bbbd016904aff76b29eb4b04fa52301821573
it looks like you want a 0 in case the ode_rhs is empty, not a 1. But then, you can keep it empty anyway and change the line before:
if (!compartment_factors[j].empty() && !ode_rhs.empty()) {

The more I think about it the more I think 1 is not correct


Cannot read property 'write' of undefined

I'm getting tons of these errors (about 4000 under a 24h period) in my z-way-server.log

[2017-01-05 15:01:10.706] [E] [core] Callback execution error: TypeError: Cannot read property 'write' of undefined
at MQTTClient.ping (automation/userModules/MQTT/lib/mqtt.js:578:18)
at Function. (automation/userModules/MQTT/lib/mqtt.js:164:14)
[2017-01-05 15:01:11.106] [I] [core] [MQTT_45] Error: Error: Timeout
at MQTT.BaseModule.error (automation/userModules/BaseModule/index.js:122:17)
at null._errorCallback (automation/userModules/MQTT/index.js:105:8)
at MQTTClient._onError (automation/userModules/MQTT/lib/mqtt.js:449:10)
at MQTTClient._onTimeout (automation/userModules/MQTT/lib/mqtt.js:443:8)
at Function. (automation/userModules/MQTT/lib/mqtt.js:575:12)
[2017-01-05 15:01:11.110] [I] [core] [MQTT_45] Error: Disconnected, will retry to connect...
at MQTT.BaseModule.error (automation/userModules/BaseModule/index.js:122:17)
at null._disconnectCallback (automation/userModules/MQTT/index.js:109:8)
at MQTTClient._onClose (automation/userModules/MQTT/lib/mqtt.js:459:10)
at MQTTClient._onTimeout (automation/userModules/MQTT/lib/mqtt.js:444:8)
at Function. (automation/userModules/MQTT/lib/mqtt.js:575:12)

I'm currently trying to find out why my entire z-way-server crashes at intermittent intervals and I noticed these error messages in the log. Please note that these messages appear even when the z-way-server is working.

Hi @mrnmukkas, sorry to hear to running into these! Personally I haven't seen them on my install.
The relevant function is:
MQTTClient.prototype.ping = function () {
  var self = this;
  if (!this.connected) {
    this._onError(Error('Please connect to server first'));
    return;
  }

  var buffer = new Buffer(2);
  buffer[0] = MQTTClient.PINGREQ << 4;
  buffer[1] = 0x00;

  this._wait_for_pingresp = true;
  setTimeout(function () {
    if (self._wait_for_pingresp)
      self._onTimeout();
  }, this.options.alive_timer * 1000);

  this.connection.write(buffer);
};

The error seems to indicate that when the this.connection.write(buffer); is reached the connection is closed (happens in MQTTClient.prototype._onClose). As the ping function does check if it is connected this should normally not be possible. As this could be related to timeouts some users experience, maybe @i8beef has an idea?

Yes my changes were hacks around your existing code to try and implement something it wasn't built to do. Unfortunately, the connection management here isn't really easy to follow, so I didn't want to change it much. There is no reconnect throttling here for instance, which you might be able to put into index.js with a setTimeout and a isReconnecting lock? That would at least help with the log growing so quickly as it tries to reconnect over and over.
I also have concerns over the paths to _onClose, and being called multiple times on a disconnect. Again, maybe a check there on isConnected before executing callbacks, etc. to make sure its only called once on a given connection cycle?
Honestly, I would have written this on top of MQTT.js instead, or some other mature upstream library. That would handle these reconnects transparently and you wouldn't have to deal with a lot of this. I might take a look at reimplementing on top of that at some point if I can figure out how the hell you package a node library up into something that ZWay can include... I can't find ANY examples of that though.

It's clear now this is the same issue as in #16, so I'll close this issue. I'll look into your suggestions @i8beef!

Honestly, I would have written this on top of MQTT.js instead, or some other mature upstream library. That would handle these reconnects transparently and you wouldn't have to deal with a lot of this. I might take a look at reimplementing on top of that at some point if I can figure out how the hell you package a node library up into something that ZWay can include... I can't find ANY examples of that though.

I would love to! However as you already mention there are no examples available for adding a node library. When I set this up I looked into this and experimented with several JS MQTT libraries. Basically they all either are NodeJS, or they need WebSockets. WebSockets would be ideal, but the JS version provided by Z-Way doesn't support this. It's a pity the JS available to Z-Way apps is very limited!


add scripts to make qcd templates

add two main scripts to make histograms in the lepton anti-isolated region, and to run linear extrapolations from the anti-isolated regions to the isolated region, along with the systematic uncertainties from signal contaminations.
1). collect the MC normalizations:
 python get_norms.py --fileset filefetcher/aram_samples_lpc.json
2). collect the histograms in the lepton anti-isolated CR:
python runner.py --workflow wptqcd --output hists_wptqcd_filefetcher_aram_samples_lpc_aI.coffea --json filefetcher/aram_samples_lpc_aIso.json
3). make the QCD templates in different W pT bins and different lepton charges (works well for muons now. more checks on electrons.)
python PrepareQCDTemplates.py
which should produce a root file output_qcd_templates.root and a lot of plots

@yongbinfeng can you pip install pre-commit and then pre-commit run --all-files and commit the results? Thanks!

A bit more flake8 and other comments - lemme see if I can fix them.


feature request: api support for loading textures from obj/mtl file

i asked (via email)

We're making pretty heavy use of meshcat in class again this term.  I'm working on getting it into drake proper so the in-tree examples can use it, too:
https://github.com/RobotLocomotion/drake/pull/9833
But the current implementation that we have uses MeshLambertMaterial for all of the objects -- including the ones loaded from obj files.  It looks like Meshcat does support texture maps.  But if I leave the materials field = None for that call to SetObject, then I still don't see e.g. the kuka's textures.
Is there an easy fix that is right under my nose?

and the response was

The way textures are handled in meshcat is currently pretty manual. You need to set the map field to an ImageTexture, and that texture in turn needs its image field set to a PngImage. This is much
easier to explain with an example: https://github.com/rdeits/meshcat-python/blob/8b24ac3a72ea56fbb64fca5fcdb1782daa0961bf/src/meshcat/tests/test_drawing.py#L50-L57
Currently, I don't try to do something clever like parse the .mtl file to load the texture, but I suspect  that would be possible, perhaps with a Mesh.from_file() constructor.

This would be nice for getting textures drawn on e.g. Drake's flashy new Skydio quadcopter model, which has relatively complex material setup on its different parts. Would this be easy to do using _meshfile_object parsing that looks like has come into existence on the javascript side over the last year?
(I'm happy to take a crack at it some time, just don't have a birds-eye view if that's the right strategy.)

Yeah, that's the right thing to do. I'm happy to help out with the details!
There's an example of _meshfile_object usage from javascript here: https://github.com/rdeits/meshcat/blob/master/test/meshfile_object_obj.html . Adding support in python would just mean creating a MeshFileObject type in geometry.py which lowers to the same data format as that example json data.
The hardest part of this actually getting the texture file into the right format. I'm using the native object loader in Three.js, which expects that the texture files will be at some URL that it can access. Since that's annoying, I'm instead relying on the fact that you can create a data URI which includes the actual contents of the image file as base-64 encoded data. That means that texture loading just works, as long as you're willing to jump through some hoops to encode the data. The example linked above does that. In case it's helpful, the relevant Julia code that parses an obj file for its associated .mtl and then parses that .mtl for its necessary image textures is here: https://github.com/rdeits/MeshCat.jl/blob/8fbf7286a1bd721d80d990f5ea744911fb1adc2f/src/mesh_files.jl#L77-L101


Allow as_bytes to return from borrowed data

These changes allow functions to return data that borrows from the domain provided to the different List methods.

Nice! Thanks!

Released as v2.0.9.


Relicense under dual MIT/Apache-2.0

This issue was automatically generated. Feel free to close without ceremony if
you do not agree with re-licensing or if it is not possible for other reasons.
Respond to @cmr with any questions or concerns, or pop over to
#rust-offtopic on IRC to discuss.
You're receiving this because someone (perhaps the project maintainer)
published a crates.io package with the license as "MIT" xor "Apache-2.0" and
the repository field pointing here.
TL;DR the Rust ecosystem is largely Apache-2.0. Being available under that
license is good for interoperation. The MIT license as an add-on can be nice
for GPLv2 projects to use your code.
Why?
The MIT license requires reproducing countless copies of the same copyright
header with different names in the copyright field, for every MIT library in
use. The Apache license does not have this drawback. However, this is not the
primary motivation for me creating these issues. The Apache license also has
protections from patent trolls and an explicit contribution licensing clause.
However, the Apache license is incompatible with GPLv2. This is why Rust is
dual-licensed as MIT/Apache (the "primary" license being Apache, MIT only for
GPLv2 compat), and doing so would be wise for this project. This also makes
this crate suitable for inclusion and unrestricted sharing in the Rust
standard distribution and other projects using dual MIT/Apache, such as my
personal ulterior motive, the Robigalia project.
Some ask, "Does this really apply to binary redistributions? Does MIT really
require reproducing the whole thing?" I'm not a lawyer, and I can't give legal
advice, but some Google Android apps include open source attributions using
this interpretation. Others also agree with
it.
But, again, the copyright notice redistribution is not the primary motivation
for the dual-licensing. It's stronger protections to licensees and better
interoperation with the wider Rust ecosystem.
How?
To do this, get explicit approval from each contributor of copyrightable work
(as not all contributions qualify for copyright) and then add the following to
your README:
## License

Licensed under either of
 * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.

and in your license headers, use the following boilerplate (based on that used in Rust):
// Copyright (c) 2016 iso8601 developers
//
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. All files in the project carrying such notice may not be copied,
// modified, or distributed except according to those terms.

Be sure to add the relevant LICENSE-{MIT,APACHE} files. You can copy these
from the Rust repo for a plain-text
version.
And don't forget to update the license metadata in your Cargo.toml to:
license = "MIT/Apache-2.0"

I'll be going through projects which agree to be relicensed and have approval
by the necessary contributors and doing this changes, so feel free to leave
the heavy lifting to me!
Contributor checkoff
To agree to relicensing, comment with :
I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option

Or, if you're a contributor, you can check the box in this repo next to your
name. My scripts will pick this exact phrase up and check your checkbox, but
I'll come through and manually review this issue later as well.

[ ] @badboy
[ ] @hoodie
[ ] @homu

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to chose either at their option

Guess that's a good move, just waiting for @hoodie then.
@cmr You might want to ignore @homu everywhere you submit this. And a direct link to both licenses somewhere in the text might help for maintainers to quickly jump and read the licenses.

✔


Do not write tels with trigger in pointing table

This column is not needed (even unwanted there) and basically makes merging impossible.

why was it in there to begin with? Just to write the mean trigger time?   Perhaps we need a better place to keep track of subarray event time.  It's not even clear we have a good definition of subarray time : i.e. is it the the mean telescope time?

Yes, to write the time. Which is a hack for simtel array files since these do not have monitoring data with timestamps, so we use the event time (which makes sense in trigger).

This probably needs further fixing as soon as I can use the LST event source with the dl1 tool and inspect the output.


ci: Java 21 in TOML

Update common files

@wetted ci fails

@wetted ci fails

@sdelamo works now. micronaut-build stepped on my fixes and broke it.

Superseded by #153 to avoid the force push madness


[Bug] dubbo3 don't support zookeeper upper than 3.5.5;  Curator5ZookeeperClient.createEphemeral() node fail when register consumer/provider cause zookeeper loss connection

Pre-check

[X] I am sure that all the content I provide is in English.

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache Dubbo Component
Java SDK (apache/dubbo)
Dubbo Version
DUBBO java 3.2.12, dubbo-zookeeper-curator5-spring-boot-starter 3.2.12 ; springboot 2.6.1; jdk17;  zookeeper: 3.9.2
Steps to reproduce this issue
In the Spring Boot 2.6.1 environment, Dubbo 3.2.12 version is introduced, and Dubbo is integrated into the Spring Boot service through dubbo-spring-boot-starter 3.2.12 and dubbo-dependencies-zookeeper 3.2.12. Since JDK 17 does not support ZooKeeper version 3.4, ZooKeeper is separately introduced to version 3.9.2. Then, when registering Dubbo producers and consumers through zk, Curator5ZookeeperClient/CuratorZookeeperClient will create temporary nodes for producers/consumers through the public void createEphemeral(String path, boolean faultTolerant) method, at which point an error occurs indicating that ZooKeeper has disconnected.
What you expected to happen
dubbo-zookeeper-curator5-spring-boot-starter 3.2.12 or dubbo-dependencies-zookeeper 3.2.12 does not provide compatibility for higher versions of ZooKeeper (beyond 3.5.5), because I am able to connect to the zk cluster and create ephemeral nodes using a newly created Zookeeper client.
Anything else
No response
Are you willing to submit a pull request to fix on your own?

[X] Yes I am willing to submit a pull request on my own!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I have tried, if using dubbo-dependencies-zookeeper 3.2.12 and zookeeper 3.5.1-alpha, consumers can be successfully registered through CuratorZookeeperClient.createEphemeral(String path, boolean faultTolerant). However, if switched to dubbo-dependencies-zookeeper-curator5 3.2.12, when the zookeeper version exceeds 3.5.5, an error occurs during service registration with Curator5ZookeeperClient.createEphemeral(String path, boolean faultTolerant), resulting in KeeperErrorCode = NoNode for /dubbo/**.


Eventually, major rewards never happen

Need to reassess the formula for earning a Major Reward. Based on real game results, it appears that the combination of splitting currency and Major Rewards into the three modes while still earning XP in every mode, cutting currency earnings in half when environmental limit is broken, and possibly the way catch-up mode postpones Major Reward checks until after potentially multiple level-ups, is causing Major Rewards to be much harder to come by. They should be long-term enough to keep the player engaged over a long-ass period, but right now it seems a little crazy - I’m talking 6642 Reputation total but only 2 Connections made.

Try cutting reward costs in half or divide by 3 even. Would there be a way to delay Trial Major Rewards at the beginning at least? The other two have a natural progression, but for Trial Mode it’s basically just getting three of each, and then they just cycle through. Maybe cut Trial cost in half, divide the others by 3?


Unable to compile complex games anymore

Hi, I tried many things with configurations but I wasn't able to identify the real cause of this issue.. In complex games which have many dependencies compilation doesn't work producing this strange $$__annotations__$$ error
#################################################################
|
| DEPENDENCY_ANALYSIS
|
#################################################################
|||||||||||||||||||||||||||||||||||||java.lang.IllegalArgumentException: Illegal type signature: Lcom/badlogic/gdx/graphics/VertexAttributes$ReadonlyIterable;$$__annotations__$$
	at org.teavm.model.ValueType.parse(ValueType.java:313)
	at org.teavm.dependency.DependencyAnalyzer.getSuperClassFilter(DependencyAnalyzer.java:854)
	at org.teavm.dependency.DependencyNode.getFilter(DependencyNode.java:249)
	at org.teavm.dependency.DependencyNode.filter(DependencyNode.java:235)
	at org.teavm.dependency.DependencyNode.propagate(DependencyNode.java:64)
	at org.teavm.classlib.java.lang.reflect.AnnotationDependencyListener.createAnnotationClass(AnnotationDependencyListener.java:193)
	at org.teavm.classlib.java.lang.reflect.AnnotationDependencyListener.lambda$reachGetAnnotations$0(AnnotationDependencyListener.java:164)
	at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:373)
	at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:215)
	at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
	at org.teavm.dependency.Transition.propagate(Transition.java:61)
	at org.teavm.dependency.Transition.consume(Transition.java:151)
	at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:347)
	at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:189)
	at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
	at org.teavm.dependency.Transition.propagate(Transition.java:61)
	at org.teavm.dependency.Transition.consume(Transition.java:151)
	at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:347)
	at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:189)
	at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
	at org.teavm.dependency.Transition.propagate(Transition.java:61)
	at org.teavm.dependency.Transition.consume(Transition.java:151)
	at org.teavm.dependency.DependencyAnalyzer.processNodeToNodeTransitionQueue(DependencyAnalyzer.java:676)
	at org.teavm.dependency.DependencyAnalyzer.processQueue(DependencyAnalyzer.java:641)
	at org.teavm.dependency.DependencyAnalyzer.processDependencies(DependencyAnalyzer.java:683)
	at org.teavm.vm.TeaVM.build(TeaVM.java:378)
	at org.teavm.tooling.TeaVMTool.generate(TeaVMTool.java:462)
	at com.github.xpenatan.gdx.backends.teavm.TeaBuilder.build(TeaBuilder.java:112)
	at games.rednblack.hyperrunner.teavm.Build.main(Build.java:31)

I'm really lost because I'm sure that the same project in the past was working and compiling with TeaVM.. Test repo can be found here to reproduce the issue: https://github.com/rednblackgames/tutorial-space-platform
Thanks

Yeah, very hard to know what makes annotations error.  The only way to try to understand I think is to make a very simple test and reproduce it.
Maybe it's the Field generator annotation.

Hey @konsoletyper,  can help with this error?
I managed to get a very simple test and for some reason when I add artemis World object the build fails with $$annotations$$ error.  Every build show a different class with this annotation error.

Adding a breakpoint in AnnotationDependencyListener#createAnnotationClass, it also create a new classworld for Object class.

to build you can use this gradle cmd: "./gradlew buildExampleCoreArtemisTest". It will try to build the ArtemisTest class.
Artemis is a popular entity component system used by many java games.
@fgnm You were using artemis when build was working?

Yes, the code was exactly the same when I tried TeaVM for the first time. If you remember I also PR some emu classes to make Artemis working #43

Fixed thanks a lot! ;)


Request textDocument/hover failed

@david-waterworth commented on Wed Feb 20 2019
Environment data

VS Code version: 1.31.0
Extension version (available under the Extensions sidebar): 2019.1.0
OS and version: ubuntu 18.04
Python version (& distribution if applicable, e.g. Anaconda): 3.7.1
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): pyenv

Expected behaviour
If you create a new file and change language mode to magic python Output panel shouldn't fill with error messages when you move the mouse over code before saving the file
Actual behaviour
If you create a new file and change language mode to magic python Output panel fills with error messages when you move the mouse over code before saving the file
Steps to reproduce:
Ctrl+N to create a new file, change language mode to magic python but don't save file. Add code and move mouse over it.
log becomes full of error messages (made worse by an issue I've already submitted resulting in Output panel grabbing focus anytime a message is logged to it.
Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
Error - 12:12:38 pm] Request textDocument/hover failed.
  Message: unknown document
  Code: -32000
   at Microsoft.Python.LanguageServer.Implementation.ProjectFiles.GetEntry(Uri documentUri, Boolean throwIfMissing)
   at Microsoft.Python.LanguageServer.Implementation.ProjectFiles.GetEntry(TextDocumentIdentifier document, Nullable`1 expectedVersion, ProjectEntry& entry, PythonAst& tree)
   at Microsoft.Python.LanguageServer.Implementation.Server.Hover(TextDocumentPositionParams params, CancellationToken cancellationToken)
   at Microsoft.Python.LanguageServer.Implementation.LanguageServer.Hover(JToken token, CancellationToken cancellationToken)

Duplicate of #480.


Thanks for the PR, but it is already fixed.


Bare metal support

Absolutely love the idea of scripting the installation of my distro though docker.
This could especially be useful when attempting to run a immutable base distro which uses containers for applications.
Bare metal support would be highly appreciated!

@GrabbenD Thank you for your interest in the project 😀 !
We don't have the infrastructure to test d2vm on bare-metal.
Perhaps this is already possible with raw mode.  We need to be able to test it.
If it works in raw mode, we could either detect whether a kernel is already installed beforehand so as not to add the kernel optimised for virtual machines, or add an option to choose the kernel flavour.


adding new translations strings

adding new translations strings with Paeties
When Paeties plugin create a party:
"Players added to this party may perform quests together!"
delete party:
"The quest [arty was disbaned"
"you can no longer perform quests with party"
people can edit this to other lang

and also having more about Paeties strings: https://github.com/FlyingPikachu/Quests/commit/c99159993659099f9407dd4f53be55e3dbf211bb

Thanks for your interest in Quests. The next release on Spigot will make this possible.


export_import_between_pageserver: remove add_missing_rels

Following https://github.com/neondatabase/neon/pull/2743#pullrequestreview-1165654659, it seemed feasible to clean up the scripts/export_import_between_pageservers.py. Removes the add_missing_rels and all that follows. Might be a good win for test running perf, if these old pageservers no longer exist anywhere.
There is still a verification in tests that all relations are now accessible.

The old pageservers have all been migrated a while ago. The changes look good.
I'll leave it to @hlinnaka to confirm that the "return size 0 if rel doesn't exist" hack is fully removed in the current pageservers. If not, we might still need this reconstruction logic.

e2e failure seems unrelated: https://github.com/neondatabase/cloud/actions/runs/3380891853/jobs/5614383237#step:34:405

This just needs ... rebasing, and review. Drafting.


Provide Fedora RPM spec file

I do not see the fedora RPM spec file used to package the RPM for Fedora.
Could you please add it to the sources?

There is no RPM spec file, all of the packages are built using pkger with this recipe file: https://github.com/ilya-zlobintsev/LACT/blob/master/pkg/recipes/lact/recipe.yml


[WIP] acm-registration-scripts

/assign @oglok

Shouldn't this script go to the microshift-demo repo instead of here?

Agree with @oglok, it's not a core component of MicroShift (which we try to keep minimal), but it's an option of how to use/manage it. Therefore, I'd also put it into the microshift-demos repo.

Fair enough, will push other there


Error Code 3 on User Authentication

I'm unsure as to why I would be continually receiving a fail response on user authentication with the error code 3.
Project Repo

I see the following parameters: /services/json/?method=auth.userLogin&partner_id=42
Your user login request is missing the auth token. http://6xq.net/playground/pandora-apidoc/json/errorcodes/
http://6xq.net/playground/pandora-apidoc/json/ explains the url parameters that should be in most requests. And here's an example of what values should be in the URL: https://github.com/HermesApp/Hermes/blob/master/Sources/Pandora/Pandora.m#L806-L814
Hope this helps.

Whoops, completely skipped over reading everything passed User auth token. Thanks so much for your reply.

Good luck on your Pandora client! :pizza:


NXP cortexm7 platform set flexspi_nor in device type by MPU need avoid unaligned data access.

Describe the situation
according to the DDI0403E_d_armv7m_arm.pdf A3.5.7 paragraph 3
An instruction that generates an unaligned memory access to Device or Strongly-ordered memory is
UNPREDICTABLE.

so if set the flexspi_nor memory area to device type in MPU, then we shall be careful not to generate unaligned memory access to those area.

@MaureenHelm

I think this also applies to any Cortex-M4 or Cortex-M7 supported by Zephyr. I don't think it's possible to do configure the flash region as device or strongly ordered in practice.

@hakehuang this is an old item and I'm trying to understand what is being requested for us to do?

@hakehuang this is an old item and I'm trying to understand what is being requested for us to do?
I don't think it's possible to do configure the flash region as device or strongly ordered in practice.

@dleach02  the thing is in two ways:

in normal application, we need ensure the flash region is not configure as device or strongly ordered.
in boot loader, we need ensure the flash access is aligned.

@aurel32 comment seems to suggest that this would be a generic thing across all platforms.


Listing NFT for sale: Showing approximate price in USD

Example that is already working
Its possible to see the approximate price in USD if you are using the Teleport Bridge feature on KodaDot.  Like this:

Suggestion - Listing NFT for Sale
It would be very cool to have this option (to see the price in USD) also when you list NFT for sale:

After you create a collection and decide to add NFT to the collection and directly list it for sale. I checked on rmrk2 and assethub we don't have it now.
Create - NFT:

When you decide to list the NFt you own for sale:
Profile - Collected/Created NFTs - List for sale

Both these options should show how much you are setting the price for approximately. To make it easier for people to decide what price should their NFT have. And to make it more user friendly.

3. When you decide to list the NFt you own for sale:
Profile - Collected/Created NFTs - List for sale

As mentioned in last week's meta :D

https://github.com/kodadot/nft-gallery/issues/7026

we could add it to simple mint v2 design, lets add the USD value to the price input field

Please follow the same design pattern as in the teleport


can you provide a sample to send miniprogram? [FEAT]WorkPro:

import { ScanStatus, WechatyBuilder,types} from '@juzi/wechaty'
if i do import { ScanStatus, WechatyBuilder,types, MiniProgram} from '@juzi/wechaty' doesn't seem to work.
// 6. send MiniProgram to bot itself
// const miniPayload = new MiniProgram ({
//   username           : 'gh_xxxxxxx',     //get from mp.weixin.qq.com
//   appid              : '',               //optional, get from mp.weixin.qq.com
//   title              : '',               //optional
//   pagepath           : '',               //optional
//   description        : '',               //optional
//   thumbnailurl       : '',               //optional
// })
// message.say(miniPayload)
this thing from wechaty doesn't seem to work.

The best way is to receive a miniprogram and use the data to send.

暂无反馈，关闭该issue。


Refactor Balancer pool initialization

This PR refactors Balancer pool initialization.
Specifically, we used to need to (depending on the network) fetch some pool data on-chain (i.e. with eth_calls). This is no longer the case, so this PR lets us remove a bunch of code that is no longer needed in addition to speeding up initialization.
Additionally, this PR also refactors how the initialization is done to remove even more code duplication between weighted and stable pools.
This is a follow up to #1439.
Test Plan
Adjusted unit tests to refactor. Additionally, run the manual tests:
$ cargo test -p shared -- balancer_subgraph_query --ignored --nocapture
...
### Mainnet
Retrieved 149 total pools at block 13708699
- 72 Weighted pools from factory 0xa5bf2ddf098bb0ef6d120c98217dd6b141c74ee0
- 3 Stable pools from factory 0xc66ba2b6595d3613ccab350c886ace23866ede24
- 74 Weighted pools from factory 0x8e9aa87e45e92bad84d5f8dd1bff34fb92637de9
### Rinkeby
Retrieved 26 total pools at block 9727120
- 18 Weighted pools from factory 0x8e9aa87e45e92bad84d5f8dd1bff34fb92637de9
- 8 Weighted pools from factory 0xa5bf2ddf098bb0ef6d120c98217dd6b141c74ee0
test sources::balancer_v2::graph_api::tests::balancer_subgraph_query ... ok
...
$ cargo test -p shared -- balancer_subgraph_initialization --ignored --nocapture
...
### Mainnet
Retrieved 149 total pools at block 13708705
- 74 weighted pools
- 72 weighted two-token pools
- 3 stable pools
### Rinkeby
Retrieved 26 total pools at block 9727124
- 18 weighted pools
- 8 weighted two-token pools
- 0 stable pools
test sources::balancer_v2::pool_init::tests::balancer_subgraph_initialization ... ok
...

Codecov Report

Merging #1440 (de1fb76) into refactor-balancer-graph-fetching (cd23914) will decrease coverage by 0.24%.
The diff coverage is 77.66%.

@@                         Coverage Diff                          @@
##           refactor-balancer-graph-fetching    #1440      +/-   ##
====================================================================
- Coverage                             66.08%   65.83%   -0.25%
====================================================================
  Files                                   155      155
  Lines                                 30553    30313     -240
====================================================================
- Hits                                  20190    19958     -232
+ Misses                                10363    10355       -8


Quicklook ar placement

Fixes #3989
Also had to fix the boom_2_.glb model because the model was offset quite a lot, which messed with the rotation required for quicklook AR.
I tried a few different approaches to reset the rotation of the model (like keeping a copy of the matrix). Only rotating it back worked for me though.

@pixlhero Ping - are you planning to come back to this?

@pixlhero Ping - are you planning to come back to this?

Not in the near future unfortunately. We worked around this issue by just not placing it on the wall in our project. So until I have some spare time between projects I won't be able to work on this.

@pixlhero - has this been fixed or still being worked on?

any news how to enable vertical placement on IOS Quicklook?

If anyone would like to take over this PR, it would be great to merge it. I may get to it eventually, but not sure when.

Sorry about turning silent on this PR. I think I might be able to come back to this during next month. Probably not in the next two weeks though, but I put it in my calendar.

Thanks!

Working on this now 🚀

Thanks! Let me know if you have any questions.

I tested the changes here with model-viewer 3.4.0, it works fine for my models.
But it seems we have an issue when auto-rotate attribute is used on model-viewer tag, the usdz generated has a different y rotation each time we generate the usdz, and after the 90° rotation here it gives really weird results. The bounding box seems wrong and will result of bad snapping on the wall, the shadow is ok but the model is not correctly on the wall.


Some issues about code in finetune.py?

Hi, thanks for your nice work!
https://github.com/yuyangw/MolCLR/blob/fe603e04807eab7a6c1e02e28881f72e2c67bcde/finetune.py#L124
The name of the prediction section is ‘’pred_head“ in [ginet_finetune.py].If I use GIN to finetune, should 'pred_lin' be changed to 'pred_head' on line 124?

Hi, thanks for pointing this out! I didn't notice this when doing code clean-ups.
I have pushed a commit and fixed the issue.
Best,
Yuyang


update README.md

Current coverage is 97.57%

Merging #237 into master will not affect coverage as of b4a3274

@@            master    #237   diff @@
======================================
  Files           26      26
  Stmts          371     371
  Branches         0       0
  Methods         81      81
======================================
  Hit            362     362
  Partial          0       0
  Missed           9       9

Review entire Coverage Diff as of b4a3274

Powered by Codecov. Updated on successful CI builds.