Does geotorch.orthogonal is a mapping from Euclidean space onto the corresponding manifold space?

Hello, lezcano, I am a beginner in the field of manifolds. I am glad to see your open-source implementation code about manifold structures.
I have the following questions to ask you:
Question 1. I have reviewed your two papers and found that both of them apply orthogonalization to linear layers in code implementation.
If our intermediate output value is X, is the output result also on the corresponding manifold after passing through such an orthogonal constrained linear layer? Finally, get Y on manifold.
For example, the following code: https://github.com/lezcano/geotorch/blob/ba38d406c245d609fee4b4dac3f6427bf6d73a8e/examples/sequential_mnist.py#L114
Can I assume that geotorch.orthogonal provides a mapping that allows it to project vectors from Euclidean space onto the corresponding manifold space. X ->Y?
Question 2. I see that you are using geotorch.orthogonal to apply in RNN networks. Can it be used for classification tasks in a regular multi-layer perceptron network? If the geotorch.orthogonality in question 1 is a projection operation, should special operations be performed on the projected values? (Because at this point it is already in manifold space). I see that you used a special nonlinearity layer in the ExpRNNCell class. Is its purpose to project points located on the manifold back into Euclidean space?
Code location: https://github.com/lezcano/geotorch/blob/ba38d406c245d609fee4b4dac3f6427bf6d73a8e/examples/sequential_mnist.py#L116
Because you are using an RNN network, you are using a nonlinearity layer for the conversion. If I am using a regular multi-layer perceptron network for classification tasks, how can I project the parameterized output values of geotorch.orthogonality onto the Euclidean space?
Question 3: Because I want to project the eigenvectors of Euclidean space (such as the output of a simple linear layer) onto a manifold, and then calculate the distance between different output features on the manifold. May I ask if you have any suggestions? Can we directly use some metric methods in Euclidean space to measure the distance between two different Y value.
Thank you very much for answering these questions, and thank you for opening up such an excellent project!

What do you mean by "project vectors from the Euclidean space into a manifold"? Into which manifold?
You can use GeoTorch in any network you want, RNN or otherwise.
I think you have confused what is considered in a manifold here. This library allows to put constraints on parameters of an NN. It does not constrain inputs, outputs or intermediary values of the computations of the network. Just the parameters.

Thank you very much for your prompt reply. I will explain your questions
1. "Project vectors from the Euclidean space into a manifold" means that if I have a vector output from the intermediate layer of a neural network, I want to map the output features to the manifold space (such as a stiefel manifold), and then process these features on the manifold. For example, in the Minist handwriting recognition classification task, I want to map the features of the fully connected layer of Minist handwriting recognition from the traditional Euclidean space to the manifold space, and then obtain the final classification result. It would be even better if you could give me some ideas on this issue.
2 and 3: Based on your answer, can I assume that the function of geotorch libraries or similar orthogonal neural network weight parameters is only to improve the generalization performance of the network and reduce the risk of gradient explosion and disappearance?
This is my confusion:
4. But I have read some articles: https://arxiv.org/pdf/1702.00071.pdf . The orthogonalization constraints on neural network weights can be achieved using the following methods
4.1 Forced orthogonality: For example, performing singular value decomposition on weight parameters during training to enforce their orthogonality.
4.2 Soft orthogonality: For example, when using regularizers with penalty terms, encourage their orthogonality. For example: min f (x)+|| W.T@W -I||
The geotorch method seems to be the same approach as the 4.1 method, which involves parameterization to constrain weight parameter orthogonality. Is the purpose also to improve the generalization performance of the network and reduce the risk of gradient explosion and disappearance? Can I use method 4.2 to have the same effect as method 4.1, but the final accuracy may differ?
5. The weight parameters of neural networks are constantly updated and optimized during the training process (based on different parameter optimizers). Can I understand that this orthogonalization of weight parameters is actually optimizing them by placing them on the corresponding manifold (such as a stiefel) and updating these weight parameters according to the manifold optimization method?
Thank you again for your patient answer.

What do you mean by "project vectors from the Euclidean space into a manifold"? Into which manifold?
You can use GeoTorch in any network you want, RNN or otherwise.
I think you have confused what is considered in a manifold here. This library allows to put constraints on parameters of an NN. It does not constrain inputs, outputs or intermediary values of the computations of the network. Just the parameters.

Thank you very much for your prompt reply. I will explain your questions

"Project vectors from the Euclidean space into a manifold" means that if I have a vector output from the intermediate layer of a neural network, I want to map the output features to the manifold space (such as a stiefel manifold), and then process these features on the manifold. For example, in the Minist handwriting recognition classification task, I want to map the features of the fully connected layer of Minist handwriting recognition from the traditional Euclidean space to the manifold space, and then obtain the final classification result. It would be even better if you could give me some ideas on this issue.

2 and 3: Based on your answer, can I assume that the function of geotorch libraries or similar orthogonal neural network weight parameters is only to improve the generalization performance of the network and reduce the risk of gradient explosion and disappearance?
This is my confusion:
4. But I have read some articles: https://arxiv.org/pdf/1702.00071.pdf . The orthogonalization constraints on neural network weights can be achieved using the following methods
4.1 Forced orthogonality: For example, performing singular value decomposition on weight parameters during training to enforce their orthogonality.
4.2 Soft orthogonality: For example, when using regularizers with penalty terms, encourage their orthogonality. For example: min f (x)+|| W.T@W -I||
The geotorch method seems to be the same approach as the 4.1 method, which involves parameterization to constrain weight parameter orthogonality. Is the purpose also to improve the generalization performance of the network and reduce the risk of gradient explosion and disappearance? Can I use method 4.2 to have the same effect as method 4.1, but the final accuracy may differ?

The weight parameters of neural networks are constantly updated and optimized during the training process (based on different parameter optimizers). Can I understand that this orthogonalization of weight parameters is actually optimizing them by placing them on the corresponding manifold (such as a stiefel) and updating these weight parameters according to the manifold optimization method?

Thank you again for your patient answer.

This library does not work with features. I think you are misunderstanding what this library does, and what lies on the manifold. Again, this library constraints parameters, not outputs of layers.
2-3 It'ss for whatever you want to use it for. This library does not limit what you can use it with.
Soft vs forced orthogonality. You should look into the literature on that topic, and run experiments yourself see if it works for your problem. Both are different approach to the same issue.
That's exactly what geotorch is doing, yes.

In general, if you have doubts, I would recommend you look at the internal implementation of geotorch to understand better how it works.

Thank you very much for your patient answer. I understand now.


Can USB Wifi Adapters Be Used?

I have just a normal usb wifi adapter that can be used on all OS's (linux, macOS and windows 10) does this work with iot core?
(using a raspberry pi 2)

Document details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 563b22e3-1c62-eaad-eb29-6f95b01316ba
Version Independent ID: 385c19a8-007a-f000-496c-0521606cbf9c
Content: Overview of Windows 10 IoT Core - Windows IoT
Content Source: windows-iotcore/windows-iot-core.md
Product: windows-iot
GitHub Login: @saraclay
Microsoft Alias: saclayt

Hi @EnderNightLord-ChromeBook ,
You can verify with the list here:
https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/hardwarecompatlist
If what you have is not listed, I would still encourage you to give it a try and, if it works, please submit a PR to contribute to the document and let others know that it's also supported. As mentioned in the article, the list is not exhaustive.

sounds good thanks!


Bindings are stateful

As the title states, Bindings is stateful for QueryFactory. I'm using it like so:
            var rows = new[]
            {
                new object[] {Guid.NewGuid(), -10.0, 40},
            };
            var columns = new[] {"id", "lat", "lng"};
            // This is okay
            _db.Query(_tableName).Insert(columns, rows);
            _db.Query(_tableName).First<Node>();

this fails because after Insert, the Bindings for the PostgresCompiler / SqlResult has the bindings set to the row values, which causes First to fail, as the LIMIT clause gets an unexpected parameter (the UUID in this case).
I am unsure whether this i intended, but the proper usage right now for me is to reinstantiate the PostgresCompiler and QueryFactory every time

Yes you are right, this was caused by recent update, what version are you using ?

@ahmad-moussawi I'm using 1.0.0-eta-484

related to #80, could you check the version beta-510 and confirm ?

@ahmad-moussawi i don't see it in nuget, is it already out there?

it's hosted in myget for now,
check https://sqlkata.com/docs#add-sqlkata-myget-feed-to-your-project

@ahmad-moussawi seems like that works :+1:


add angshuBHADRA

resolve #464

LGMT 🚀 think you can/should close the other Pull Request #465

Okay, sir.!

@schmelto Thanks for reviewing


Integrate all contributors

Current Behavior

@all-contributors please add @gunjanmimo for tool

@all-contributors please add @venilnoronha for tool

@all-contributors please add @leecalcote for tool

@all-contributors please add @girishranganathan  for tool

@all-contributors please add @ashiscs  for tool

@all-contributors please add @subhamkrai  for tool

@all-contributors please add @LeTrovoes  for tool

@all-contributors please add @antweiss  for tool

@all-contributors please add @jesuslerma  for tool

@all-contributors please add @Harshini-M  for maintainer

All, my perspective it that this tool isn't flexible enough for what we need to recognize our code and non-code contributors. Barring hearing otherwise from others, I'll close this issue this week.

@gunjanmimo, given the community's decision to use meshery.io/community instead of All Contributors, will you close this issue when ready?


Configure outputs with make, model, serial in rootston

This allows for instance to configure the screen you plug in your HDMI connector at home differently from the one you plug in the same connector at work.
Also added fallbacks in DRM backend in case EDID extension data for model and serial is missing.
Test plan: get your output name in rootston logs:
2017-12-07 13:57:23 - [rootston/output.c:293] Output 'LVDS-1' added
2017-12-07 13:57:23 - [rootston/output.c:296] 'Chimei Innolux Corporation 0x1484 0x00000000' 310mm x 174mm

Add it to your config:
[output:Chimei Innolux Corporation 0x1484 0x00000000]
scale = 2

Check that the config is applied to the output.
Updates #403

Personally I'd rather use connector names in my config. Can you make this support both forms?

Yeah that's still the case!

Sweet.


Add side-by-side usage of preview index and AVPR packages

Currently, only packages hosted on github via https://github.com/nfdi4plants/arc-validate-package-registry/releases/tag/preview-index are used in the cli tool.
This PR adds support for installing packages provided by our AVPR web api at https://avpr.nfdi4plants.org

Thanks for your work @caroott


Aggregate Command with Cursor Doesn't Work

Calling Aggregate with a Cursor parameter as below:
def sumPerUser(appId: String, date: DateTime): Future[Seq[UserImpressionSums]] = {
import collection.BatchCommands.AggregationFramework._

collection.aggregate(
  Match(BSONDocument(APP_ID -> appId, DATE_CREATED -> BSONDocument("$gte" -> BSONDateTime(date.getMillis)))),
  List(Project(BSONDocument(USER -> 1, DATE_CREATED -> 1, IP -> 1, CAMPAIGN_ID -> 1, "imp" -> BSONDocument("$literal" -> 1) )),
    Group(BSONDocument(USER -> "$user", IP -> "$ip", CAMPAIGN_ID -> "$campaign_id"))
    ("totalImps" -> SumField("imp"), DATE_CREATED -> First(DATE_CREATED)),
    Sort(Ascending(DATE_CREATED))
  ), false, true, Some(Cursor(100)))

  .map(_.result[UserImpressionSums])
}}

throws an exception upon execution:
reactivemongo.api.commands.bson.DefaultBSONCommandError: CommandError[code=14, errmsg=cursor field must be missing or an object, doc: {
  ok: BSONDouble(0.0),
  errmsg: "cursor field must be missing or an object",
  code: BSONInteger(14)
}]

Digging deeper, the cursor isn't being serialized properly. In Aggregation.scala, cursor should be serialized as
"cursor" -> agg.command.cursor.map(c =>BSONDocument("batchSize" -> BSONInteger(batchSize)
instead of
"cursor" -> agg.command.cursor.map(c => BSONInteger(c.batchSize))
But ArggregationResult should also be reworked to handle cursor results

Hi, thanks for reporting. There is a serialization issue about that, but not only as it needs to add the cursor (not the aggregate option, but the read cursor). Working on it at the same time as #442 . Best regards.

The fix can be tried with 0.12-SNAPSHOT

Some commands that used to work fine now have Futures that are timing out. Any idea why?
[error] r.api.Cursor - fails to send request
java.util.concurrent.TimeoutException: Futures timed out after [3000 milliseconds]
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) ~[scala-library-2.11.7.jar:na]
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:153) ~[scala-library-2.11.7.jar:na]
	at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169) ~[scala-library-2.11.7.jar:na]
	at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169) ~[scala-library-2.11.7.jar:na]
	at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2$$anon$4.block(ExecutionContextImpl.scala:48) ~[scala-library-2.11.7.jar:na]
	at scala.concurrent.forkjoin.ForkJoinPool.managedBlock(ForkJoinPool.java:3640) [scala-library-2.11.7.jar:na]
	at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$2.blockOn(ExecutionContextImpl.scala:45) ~[scala-library-2.11.7.jar:na]
	at scala.concurrent.Await$.ready(package.scala:169) ~[scala-library-2.11.7.jar:na]
	at reactivemongo.api.DefaultCursor$Impl$$anonfun$awaitFailover$1.apply(cursor.scala:476) ~[reactivemongo_2.11-0.12.0-SNAPSHOT.jar:0.12.0-SNAPSHOT]
	at reactivemongo.api.DefaultCursor$Impl$$anonfun$awaitFailover$1.apply(cursor.scala:476) ~[reactivemongo_2.11-0.12.0-SNAPSHOT.jar:0.12.0-SNAPSHOT]

Please use the MailingList to discuss/give details.


Legal has reviewed and approved subscription terms for Terraform

Describe the issue
We need to meet with Legal to review the subscription terms for Terraform.
Which Sprint Goal is this issue related to?

Note: 'Milestone' is a ZenHub term that we use synonymously with 'Sprint'.

The 'Milestone' description (created in ZenHub) should clearly list Sprint Goals. This section should indicate which 'goal' this issue is related to.
Additional context
Add any other context, attachments or screenshots
Definition of done

Meeting with LSB happens
LSB approves the terms

Not doing for now


Add autodeploy github actions step with nginx auth script

Removed Dockerhub autodeploy weebhooks
Added new step for the autodeploy request after the image is built
Added auth to autodeploy service, now is more secure the deployment of new versions.
Added nginx auth script

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 88.484%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
11733

Relevant Lines:
13260

💛  - Coveralls

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA


5.0 - Serializing Nested Data Structure Causing 502

I have Visit and Visitor models. There is a oneToMany relationship such that a visitor hasMany Visits. I have added an appends property for returning the count of a visitor's visits. When querying for all Visits, and eager-loading the Visitors, the toJSON() and toArray methods cause the app to return a 502 (not an Exception, but a HTTP 502 error). I can die dump the data without issue, and use it in the collection, but toJSON or toArray causes some type of error.
Below I have the output of the dd on the collection:
Collection {#365
  #items: array:5 [
    0 => Visit {#366
      #fillable: array:4 [
        0 => "visitor_id"
        1 => "visit_reason_id"
        2 => "status"
        3 => "checked_in"
      ]
      #with: array:2 [
        0 => "visitor"
        1 => "reason"
      ]
      #connection: null
      #table: null
      #primaryKey: "id"
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:8 [
        "id" => 1
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 19:12:43"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #original: array:8 [
        "id" => 1
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 19:12:43"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #relations: array:2 [
        "visitor" => Visitor {#378
          #fillable: array:4 [
            0 => "first_name"
            1 => "last_name"
            2 => "email"
            3 => "language_id"
          ]
          #appends: array:2 [
            0 => "returning"
            1 => "name"
          ]
          #connection: null
          #table: null
          #primaryKey: "id"
          #perPage: 15
          +incrementing: true
          +timestamps: true
          #attributes: array:8 [
            "id" => 1
            "first_name" => "DERP"
            "last_name" => "HERP"
            "email" =><EMAIL_ADDRESS>            "created_at" => "0000-00-00 00:00:00"
            "updated_at" => "2015-05-22 21:40:11"
            "deleted_at" => null
            "language_id" => 2
          ]
          #original: array:8 [
            "id" => 1
            "first_name" => "DERP"
            "last_name" => "HERP"
            "email" =><EMAIL_ADDRESS>            "created_at" => "0000-00-00 00:00:00"
            "updated_at" => "2015-05-22 21:40:11"
            "deleted_at" => null
            "language_id" => 2
          ]
          #relations: []
          #hidden: []
          #visible: []
          #guarded: array:1 [
            0 => "*"
          ]
          #dates: []
          #casts: []
          #touches: []
          #observables: []
          #with: []
          #morphClass: null
          +exists: true
          #forceDeleting: false
        }
        "reason" => VisitReason {#380
          #fillable: array:1 [
            0 => "name"
          ]
          #connection: null
          #table: null
          #primaryKey: "id"
          #perPage: 15
          +incrementing: true
          +timestamps: true
          #attributes: array:5 [
            "id" => 1
            "name" => "Checking"
            "created_at" => "2015-05-22 16:04:03"
            "updated_at" => "2015-05-22 16:04:03"
            "deleted_at" => null
          ]
          #original: array:5 [
            "id" => 1
            "name" => "Checking"
            "created_at" => "2015-05-22 16:04:03"
            "updated_at" => "2015-05-22 16:04:03"
            "deleted_at" => null
          ]
          #relations: []
          #hidden: []
          #visible: []
          #appends: []
          #guarded: array:1 [
            0 => "*"
          ]
          #dates: []
          #casts: []
          #touches: []
          #observables: []
          #with: []
          #morphClass: null
          +exists: true
          #forceDeleting: false
        }
      ]
      #hidden: []
      #visible: []
      #appends: []
      #guarded: array:1 [
        0 => "*"
      ]
      #dates: []
      #casts: []
      #touches: []
      #observables: []
      #morphClass: null
      +exists: true
      #forceDeleting: false
    }
    1 => Visit {#367
      #fillable: array:4 [
        0 => "visitor_id"
        1 => "visit_reason_id"
        2 => "status"
        3 => "checked_in"
      ]
      #with: array:2 [
        0 => "visitor"
        1 => "reason"
      ]
      #connection: null
      #table: null
      #primaryKey: "id"
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:8 [
        "id" => 2
        "visitor_id" => 2
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 19:21:32"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #original: array:8 [
        "id" => 2
        "visitor_id" => 2
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 19:21:32"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #relations: array:2 [
        "visitor" => Visitor {#379
          #fillable: array:4 [
            0 => "first_name"
            1 => "last_name"
            2 => "email"
            3 => "language_id"
          ]
          #appends: array:2 [
            0 => "returning"
            1 => "name"
          ]
          #connection: null
          #table: null
          #primaryKey: "id"
          #perPage: 15
          +incrementing: true
          +timestamps: true
          #attributes: array:8 [
            "id" => 2
            "first_name" => "asdfasdf"
            "last_name" => "asdfasdf"
            "email" => "asdfasdf"
            "created_at" => "0000-00-00 00:00:00"
            "updated_at" => "0000-00-00 00:00:00"
            "deleted_at" => null
            "language_id" => 0
          ]
          #original: array:8 [
            "id" => 2
            "first_name" => "asdfasdf"
            "last_name" => "asdfasdf"
            "email" => "asdfasdf"
            "created_at" => "0000-00-00 00:00:00"
            "updated_at" => "0000-00-00 00:00:00"
            "deleted_at" => null
            "language_id" => 0
          ]
          #relations: []
          #hidden: []
          #visible: []
          #guarded: array:1 [
            0 => "*"
          ]
          #dates: []
          #casts: []
          #touches: []
          #observables: []
          #with: []
          #morphClass: null
          +exists: true
          #forceDeleting: false
        }
        "reason" => VisitReason {#380}
      ]
      #hidden: []
      #visible: []
      #appends: []
      #guarded: array:1 [
        0 => "*"
      ]
      #dates: []
      #casts: []
      #touches: []
      #observables: []
      #morphClass: null
      +exists: true
      #forceDeleting: false
    }
    2 => Visit {#368
      #fillable: array:4 [
        0 => "visitor_id"
        1 => "visit_reason_id"
        2 => "status"
        3 => "checked_in"
      ]
      #with: array:2 [
        0 => "visitor"
        1 => "reason"
      ]
      #connection: null
      #table: null
      #primaryKey: "id"
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:8 [
        "id" => 3
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 21:48:53"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #original: array:8 [
        "id" => 3
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 21:48:53"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #relations: array:2 [
        "visitor" => Visitor {#378}
        "reason" => VisitReason {#380}
      ]
      #hidden: []
      #visible: []
      #appends: []
      #guarded: array:1 [
        0 => "*"
      ]
      #dates: []
      #casts: []
      #touches: []
      #observables: []
      #morphClass: null
      +exists: true
      #forceDeleting: false
    }
    3 => Visit {#369
      #fillable: array:4 [
        0 => "visitor_id"
        1 => "visit_reason_id"
        2 => "status"
        3 => "checked_in"
      ]
      #with: array:2 [
        0 => "visitor"
        1 => "reason"
      ]
      #connection: null
      #table: null
      #primaryKey: "id"
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:8 [
        "id" => 4
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 21:49:21"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #original: array:8 [
        "id" => 4
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-22 21:49:21"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #relations: array:2 [
        "visitor" => Visitor {#378}
        "reason" => VisitReason {#380}
      ]
      #hidden: []
      #visible: []
      #appends: []
      #guarded: array:1 [
        0 => "*"
      ]
      #dates: []
      #casts: []
      #touches: []
      #observables: []
      #morphClass: null
      +exists: true
      #forceDeleting: false
    }
    4 => Visit {#370
      #fillable: array:4 [
        0 => "visitor_id"
        1 => "visit_reason_id"
        2 => "status"
        3 => "checked_in"
      ]
      #with: array:2 [
        0 => "visitor"
        1 => "reason"
      ]
      #connection: null
      #table: null
      #primaryKey: "id"
      #perPage: 15
      +incrementing: true
      +timestamps: true
      #attributes: array:8 [
        "id" => 5
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-26 17:23:56"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #original: array:8 [
        "id" => 5
        "visitor_id" => 1
        "visit_reason_id" => 1
        "checked_in" => "2015-05-26 17:23:56"
        "status" => "Checked-In"
        "created_at" => "0000-00-00 00:00:00"
        "updated_at" => "0000-00-00 00:00:00"
        "deleted_at" => null
      ]
      #relations: array:2 [
        "visitor" => Visitor {#378}
        "reason" => VisitReason {#380}
      ]
      #hidden: []
      #visible: []
      #appends: []
      #guarded: array:1 [
        0 => "*"
      ]
      #dates: []
      #casts: []
      #touches: []
      #observables: []
      #morphClass: null
      +exists: true
      #forceDeleting: false
    }
  ]
}

I have had to add a hidden property on my model to hide visits (the hasMany relationship) which has halted the issue, but it seems like maybe the eager loading and serialize combination is causing an issue.
I realize it's hard to pick through the data, but I hope that it helps. If this isn't enough information I can try and create a new project with the same issue and share that.

This is to be expected surely?

Classic GrahamCampbell response.

I'm not sure how that is considered expected behavior? No exception is thrown, and nothing indicates there was a programming error. The fact that I can return a functioning collection that can't be serialized into an array or JSON I feel is totally unexpected behavior.

Not serializing a nested relation would also be wrong.

I do consider this an issue. Defining appendable accessors on both sides of a relation (while using a relation to the other object) causes an infinite loop when the toJson() respectively toArray() method is being called on the eloquent object. It does however work when using the collection.
Given we have an ITEM and an HOUR object. The item object holds the hours that should be worked (among other data), the hour object contains the actually worked hours (among other data).
class Item extends Model
{
    protected $appends = ['status'];

    public function hour()
    {
        return $this->hasOne('App\Hour', 'item_id');
    }

    public function getStatusAttribute()
    {
        return (count($this->item)) ? 'registered' : 'open';
    }
}

class Hour extends Model
{
    protected $appends = ['overtime'];

    public function item()
    {
        return $this->belongsTo('App\Item');
    }

    public function getOvertimeAttribute()
    {
        return $this->registeredTime - $this->item->originalTime;
    }
}

Because both accessors on both models have relations to the other one, an infinite loop will be created, when trying to cast the objects to array/json with the appendable values.
echo $hour->toJson() will cause the script to break without any warning or exception. It will just time out.

:+1:

Same problem here... any solution??

Ran into this issue as well. Thank you for posting the issue on this. Was not sure where to start looking for the culprit until I read this.
Perhaps the solution would be to not serialize relationships that refer back the original model. In my case it was the Profile model that was referred by a User model, and referring back to another User model. Adding the hidden attribute in the Profile model did the trick.


⚠ Thumbnails API Endpoint has degraded performance

In 96f1768, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 5698 ms

Resolved: Thumbnails API Endpoint performance has improved in ed6bbfb after 23 minutes.


Missing Error codes for common status code errors eg 401?

Hi
I am using the latest AF4 and for the case where the user puts in an incorrect username / password combo-  AF is returning an error which is fairly unfriendly which states:
Failure Reason: unacceptableStatusCode(401)
Response status code was unacceptable: 401

how do I get AF to return the message that says that the user's creds are "Unauthorized"

I am using the code from the Readme.

A 401 error is the standard Unauthorized HTTP error code. However, Alamofire does not provide a translation of codes to standard descriptions, mainly because it wouldn't be that useful for most people and also because some servers use different response codes to mean different things. Plus, not all possible codes have good descriptions.
If you want you can wrap the errors returned by Alamofire in your own errors, which gives you a chance to add your own descriptions to be printed. I've used that behavior myself. Would that accomplish what you want?

That makes sense @jshier.  Thanks so much for the quick response.
What approach did you use to wrap?  Just running a switch after the case: failure (let error): to " an error message prettifier" class?
I didn't realise that people used 401 for different errors - always learning new things with AF.

It's easiest if you're already using your own custom ResponseSerializer and could be a good reason to create your own (they're straightforward). It hasn't been updated for Alamofire 4, but this gist should show you what I mean. As you can see, at each step of the process I wrap the possible errors in different cases of my own Error conforming enum. Then within that enum you can parse out the errors and provide your own localizedDescription for them.

Thanks I have been doing a lot of reading on Alamofire after this and that looks like a great approach.
I tried to add it as an extension to Request but I keep getting errors which don't seem to make sense
eg Dedodable is returning as unknown, despite the fact I have AF added in already

Yes, the particulars of the generic serialization are up to your particular implementation. In my example I'm using the Argo library to decode my JSON responses, hence the use of its Decodable protocol. If you don't already have custom serialization you may want to start simple and just duplicate the existing responseJSON function, but with your own error handling. Custom response serializers really start to shine when you create your own generic decoding into strong types, as demonstrated in our README.

Will give it a go - massive thanks for the guidance @jshier
Will share what I come up with - but will close this off for now.

@jshier Hi- I have hit a brick wall with this. Have spent ages googling for the answer - and it seems a lot of people are just as confused as I am.  Would be massively greatful for some more  guidance.
It seems that the implementation that is done in the Readme does not match up with the implementation. in 'ResponseSerialization.swift' file.
I have tried copying the current implementation for ResponseJSon, renaming it to "ResponseJsonSimple" and adding a switch statement to the error code however the old property that xcode says is has is error.localized Description.
Can you run through the exact steps I should follow in order to add these custom error codes in for these common error codes like 404, and 403.  It feels like something that should be quite basic to add in - and a common use case.

Ignore what I said above.  I think I have cracked it.  I also think I might be in love with Custom Serializers even though I haven't fully got to grips with them - I really see the promise now..  Very painful getting to this point- but it was completely worth it.


Add redirect paths for extensions

Summary

some extensions need to map routes outside their scope (and under the root path)

by default extension endpoints are under /ext_id

Examples

lnurlp must map /.well-known/lnurlp/
nostrrelay should serve relay info under / (if a particular header is set)

GET 'http://localhost:5000/' --header 'Accept: application/nostr+json'

Solution

an extension can specify a {ext_id}_redirect_paths variable in __init__.py (similar to {ext_id}_static_files)
nostrrelay example (here)[https://github.com/lnbits/nostr-relay-extension/blob/main/init.py#L23]:

nostrrelay_redirect_paths = [
  {
    "from_path": "/",
    "redirect_to_path": "/api/v1/relay-info",
    "header_filters": {
        "accept": "application/nostr+json"
    }
  }
]

this means: WHEN a request is made to / AND has the header "accept": "application/nostr+json" THEN redirect the call to the extension endpoint nostrrelay/api/v1/relay-info
for this functionally a new middleware is added (ExtensionsRedirectMiddleware)

Subpaths
The sub-path will be appended to the redirect (/abc in the below example):
GET 'http://localhost:5000/abc' --header 'Accept: application/nostr+json'

will be redirected to
GET 'http://localhost:5000/nostrrelay/api/v1/relay-info/abc' --header 'Accept: application/nostr+json'

Note:

the middleware classes have been extracted to their own file
only ExtensionsRedirectMiddleware is new (InstalledExtensionMiddleware was just moved)

LGTM

It wasn't immediatelly clear to me that the redirect will only work with local paths of the extension, i.e.
"redirect_to_path": "/api/v1/relay-info" redirects to nostrrelay/api/v1/relay-info.

Adding a redirect that listens for a path that has the same name as the extension causes an infinite loop:

cashu_redirect_paths = [
    {
        "from_path": "/cashu",
        "redirect_to_path": "/wallet",
    }
]

LGTM, tested.


Generate token

Is there a technical reason the extension can't run the scripts in the README on initial authorization?

No, good idea. I'm not really using vscode much anymore, but happy for a PR...

I'm not using gist much but if I tackle #5 I'll circle back.

This is implemented in https://github.com/dbankier/vscode-gist/commit/62cb880372ecd6b4a04cb70bf03ef777feab9dc3 currently in master. I will update here when published to the Marketplace.


falco logs contaminating /var/log/messages

Describe the bug
falco writing logs in /var/log/messages and contaminating syslogs.
After having changed the configuration in /etc/falco/falco.yaml by disabling syslog_output:
syslog_output:
  enabled: false

Falco seems to ignore this configuration and continues to write to /var/log/messages
How to reproduce it

add falco repositories to systems curl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repo
install falco i.e. deb/rpm yum install falco (or apt install falco)
check the '/var/log/messages`

Expected behaviour
After disabling syslog_output falco should not write logs into /var/log/messages
Environment

Falco version: 0.28.2
System info:

{
 "machine": "x86_64",
 "nodename": "demo-milan.acsia.io",
 "release": "3.10.0-1160.11.1.el7.x86_64",
 "sysname": "Linux",
 "version": "#1 SMP Fri Dec 18 16:34:56 UTC 2020"
}

Cloud provider or hardware configuration: AWS
OS: CentOS/Debian/Ubuntu/Suse
Kernel:3.10.0-1160.11.1.el7.x86_64
Installation method: RPM/DEB from repo

This creates 2 particular issues:

contaminating /var/log/messages (compliance)
generating big volume of logs in messages (syslog)

I have found the same bug in the last version of Falco 0.28.1 (after the packages 0.28.2 have been removed from Falco repos)

I used Falco 0.28.1-34+0f24448 (driver version 17f5df52a7d9ed6bb12d3b1768460def8439936d) on the following system:
{
  "machine": "x86_64",
  "nodename": "REDACTED",
  "release": "5.4.0-1045-aws",
  "sysname": "Linux",
  "version": "#47-Ubuntu SMP Tue Apr 13 07:02:25 UTC 2021"
}

Disabling syslog_output I'm not able to reproduce this behavior. Meaning, I don't see Falco alerts in /var/log/messages, I only see boot/shutdown Falco outputs in /var/log/messages.

Jun 17 13:10:07 ip-172-31-46-109 kernel: [1127048.565977] falco: deallocating consumer 00000000fea1a8d2
Jun 17 13:10:07 ip-172-31-46-109 kernel: [1127048.581148] falco: no more consumers, stopping capture

Are you referring to all the Falco logs or only to the Falco alerts?

Hi Leo, thank for you answer.

Are you referring to all the Falco logs or only to the Falco alerts?

All Falco logs AND Falco alerts are written in var/log/messages
I am going to do other tests now and add as much detail as possible in another task.

Machine
I used AWS to perform this test:
CentOS 7 (x86_64) - with Updates HVM
https://aws.amazon.com/marketplace/pp/prodview-qkzypm3vjr45g?ref=cns_srchrow
Prepare machine
update and restart
# sudo yum update -y
# sudo reboot now

OS info
# cat /etc/*release*
CentOS Linux release 7.9.2009 (Core)
Derived from Red Hat Enterprise Linux 7.9 (Source)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.9.2009 (Core)
CentOS Linux release 7.9.2009 (Core)
cpe:/o:centos:centos:7

Installation
following https://falco.org/docs/getting-started/third-party/install-tools/
# curl -o install_falco -s https://falco.org/script/install
# sudo bash install_falco

Installation output
* Detecting operating system
* Installing EPEL repository (for DKMS)
warning: /var/tmp/rpm-tmp.EhxjMc: # curl -o install_falco -s https://falco.org/script/installHeader V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
* Installing Falco public GPG key
* Installing Falco repository
* Installing kernel headers
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
Warning: RPMDB altered outside of yum.
* Installing Falco
warning: /var/cache/yum/x86_64/7/epel/packages/dkms-2.8.4-1.el7.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Public key for dkms-2.8.4-1.el7.noarch.rpm is not installed
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7<EMAIL_ADDRESS> Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-13.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

Creating symlink /var/lib/dkms/falco/5c0b863ddade7a45568c0ac97d037422c9efb750/source ->
                 /usr/src/falco-5c0b863ddade7a45568c0ac97d037422c9efb750

DKMS: add completed.

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
make -j2 KERNELRELEASE=3.10.0-1160.31.1.el7.x86_64 -C /lib/modules/3.10.0-1160.31.1.el7.x86_64/build M=/var/lib/dkms/falco/5c0b863ddade7a45568c0ac97d037422c9efb750/build....
cleaning build area...

DKMS: build completed.

falco.ko.xz:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.10.0-1160.31.1.el7.x86_64/extra/
Adding any weak-modules

depmod....

DKMS: install completed.
modprobe: FATAL: Module falco_probe not found.

Update Falco configuration
In /etc/falco/falco.yaml disable syslog output
syslog_output:
  enabled: false

Check and start Falco
Check status
# systemctl status falco -l
● falco.service - Falco: Container Native Runtime Security
   Loaded: loaded (/usr/lib/systemd/system/falco.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://falco.org/docs/

Jun 17 14:52:15 ip-172-31-36-116.eu-west-3.compute.internal systemd[1]: [/usr/lib/systemd/system/falco.service:19] Unknown lvalue 'ProtectKernelTunables' in section 'Service'
Jun 17 14:52:15 ip-172-31-36-116.eu-west-3.compute.internal systemd[1]: [/usr/lib/systemd/system/falco.service:20] Unknown lvalue 'RestrictRealtime' in section 'Service'
Jun 17 14:52:27 ip-172-31-36-116.eu-west-3.compute.internal systemd[1]: [/usr/lib/systemd/system/falco.service:19] Unknown lvalue 'ProtectKernelTunables' in section 'Service'
Jun 17 14:52:27 ip-172-31-36-116.eu-west-3.compute.internal systemd[1]: [/usr/lib/systemd/system/falco.service:20] Unknown lvalue 'RestrictRealtime' in section 'Service'
Jun 17 14:52:36 ip-172-31-36-116.eu-west-3.compute.internal systemd[1]: [/usr/lib/systemd/system/falco.service:19] Unknown lvalue 'ProtectKernelTunables' in section 'Service'
Jun 17 14:52:36 ip-172-31-36-116.eu-west-3.compute.internal systemd[1]: [/usr/lib/systemd/system/falco.service:20] Unknown lvalue 'RestrictRealtime' in section 'Service'

Start Falco
# systemctl status falco -l
● falco.service - Falco: Container Native Runtime Security
   Loaded: loaded (/usr/lib/systemd/system/falco.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-06-17 14:53:08 UTC; 1min 8s ago
     Docs: https://falco.org/docs/
  Process: 12338 ExecStartPre=/sbin/modprobe falco (code=exited, status=0/SUCCESS)
 Main PID: 12342 (falco)
   CGroup: /system.slice/falco.service
           └─12342 /usr/bin/falco --pidfile=/var/run/falco.pid

Jun 17 14:53:08 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Thu Jun 17 14:53:08 2021: Falco initialized with configuration file /etc/falco/falco.yaml
Jun 17 14:53:08 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Thu Jun 17 14:53:08 2021: Loading rules from file /etc/falco/falco_rules.yaml:
Jun 17 14:53:08 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Falco initialized with configuration file /etc/falco/falco.yaml
Jun 17 14:53:08 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Loading rules from file /etc/falco/falco_rules.yaml:
Jun 17 14:53:08 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Loading rules from file /etc/falco/falco_rules.local.yaml:
Jun 17 14:53:08 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Thu Jun 17 14:53:08 2021: Loading rules from file /etc/falco/falco_rules.local.yaml:
Jun 17 14:53:09 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Loading rules from file /etc/falco/k8s_audit_rules.yaml:
Jun 17 14:53:09 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Thu Jun 17 14:53:09 2021: Loading rules from file /etc/falco/k8s_audit_rules.yaml:
Jun 17 14:53:09 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Starting internal webserver, listening on port 8765
Jun 17 14:53:09 ip-172-31-36-116.eu-west-3.compute.internal falco[12342]: Thu Jun 17 14:53:09 2021: Starting internal webserver, listening on port 8765

Reproduce error
Generate alert
# touch /etc/domenico

log in /var/log/messages
Jun 17 14:55:23 ip-172-31-36-116 falco: 14:55:23.315542901: Error File below /etc opened for writing (user=root user_loginuid=1000 command=touch /etc/domenico parent=bash pcmdline=bash file=/etc/domenico program=touch gparent=sudo ggparent=bash gggparent=sshd container_id=host image=<NA>)
Jun 17 14:55:23 ip-172-31-36-116 falco: 14:55:23.315542901: Error File below /etc opened for writing (user=root user_loginuid=1000 command=touch /etc/domenico parent=bash pcmdline=bash file=/etc/domenico program=touch gparent=sudo ggparent=bash gggparent=sshd container_id=host image=<NA>)

/cc @leodido

It looks like enabling stdout_output makes falco logs in var/log/messages
We have an old machine with falco 0.20 with stdout_output enabled falco do not writes in messages, so something changed between version 0.21 and 0.28.

It looks like enabling stdout_output (enabled by default) makes falco logs in var/log/messages
We have an old machine with falco 0.20 with stdout_output enabled and falco does not write in messages, so something changed between version 0.21 and 0.28.

By 0.28 we migrated from initd to systemd :point_right: https://github.com/falcosecurity/falco/pull/1448
I haven't tried yet with systemd, but my guess is that systemd is copying the stdout of Falco to /var/log/messages.
The behavior should be configurable by the systemd unit configuration (see StandardOutput= in https://manpages.debian.org/wheezy/systemd/systemd.exec.5.en.html)
Also, I can confirm the problem is not present when manually running Falco (without using systemd).

I didn't have time to perform another test but in my last test on CentOS 7 (https://github.com/falcosecurity/falco/issues/1673#issuecomment-863331825) I got 2 identical log entries in /var/log/messages
Jun 17 14:55:23 ip-172-31-36-116 falco: 14:55:23.315542901: Error File below /etc opened for writing (user=root user_loginuid=1000 command=touch /etc/domenico parent=bash pcmdline=bash file=/etc/domenico program=touch gparent=sudo ggparent=bash gggparent=sshd container_id=host image=<NA>)
Jun 17 14:55:23 ip-172-31-36-116 falco: 14:55:23.315542901: Error File below /etc opened for writing (user=root user_loginuid=1000 command=touch /etc/domenico parent=bash pcmdline=bash file=/etc/domenico program=touch gparent=sudo ggparent=bash gggparent=sshd container_id=host image=<NA>)

I will try to do some other tests on the last release.

With systemd, disabling stdout_output prevent falco to write in syslog:
stdout_output:
  enabled: false

With systemd, disabling stdout_output prevent falco from writing in syslog:
stdout_output:
  enabled: false

Have you tried leaving stdout_output enabled and adding StandardOutput=null to Falco's systemd config file (falco.service)?

With systemd, disabling stdout_output prevent falco from writing in syslog:
stdout_output:
  enabled: false

Have you tried leaving stdout_output enabled and adding StandardOutput=null to Falco's systemd config file (falco.service)?

I did not. I will.

With systemd, disabling stdout_output prevent falco from writing in syslog:
stdout_output:
  enabled: false

Have you tried leaving stdout_output enabled and adding StandardOutput=null to Falco's systemd config file (falco.service)?

@leogr my colleague did a test and with StandardOutput=null Falco do not write in syslog.


Add a type definition that accepts ThunkAction provided redux-thunk to useDispatch

What is the new or updated feature that you are suggesting?
From react-redux v8, it provides own type definitions.
Along with that, a difference arose from the type definitions that were provided by volunteers in TypesDefinitions.
What I am having trouble with is the type definition of useDispatch.
https://github.com/reduxjs/react-redux/blob/26ddc6a6fc1238408ae5a0cbc18f15be225786dc/src/hooks/useDispatch.ts#L25-L31
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/b153e7ef5fb60b1a20dc5120c55058fd24c2cc39/types/react-redux/index.d.ts#L538-L540
The current react-redux type definition only allows pure actions to be passed to dispatch.
Why should this feature be included?
It is helpful to maintain an ecosystem with third-party libraries surrounding react-redux.
What docs changes are needed to explain this?
Maybe nothing.

Hiya.  The issue here is that there's no guarantee that the actual Redux store being used was configured to have the thunk middleware.  So, if we just automatically have the types include support for thunks, we're actually lying to our users about how the runtime behavior will work.
Because of that, we specifically teach and show how to infer the final real type from store.dispatch, and create a "pre-typed" hook that captures that for use within the rest of the app:
https://react-redux.js.org/using-react-redux/usage-with-typescript#standard-redux-toolkit-project-setup-with-typescript

Sorry, but this is very confusing. I was not able to find an end to end typescript guide that works with thunks.
Trying to decrypt the documentation you linked :

For useDispatch, the default Dispatch type does not know about thunks or other middleware. In order to correctly dispatch thunks, you need to use the specific customized AppDispatch type from the store that includes the thunk middleware types, and use that with useDispatch. Adding a pre-typed useDispatch hook keeps you from forgetting to import AppDispatch where it's needed.

Can you clarify the bold part?

Take a look at one of the two TypeScript "Quick Start"s at https://redux-toolkit.js.org/tutorials/typescript or https://redux.js.org/tutorials/typescript-quick-start

I've already read carefully these articles, without matching the missing piece.
The CRA template is using the same setup than mine, but is working perfectly.
I narrowed my issue to AppDispatch typing. At right, it seems ok :

At left, however, I "lost" part of the expected type:

Comparing the CRA template :
Right is :

While left is :

Still looking for the difference :(

Found the difference I guess. My thunk was named UploadFilesStep while my slice was uploadFilesStep.
Seems it matters homehow.
thx for the help


Update AppSettingsHelper.cs

add catch { ... } section
see issue: https://github.com/microsoft/PowerPlatform-DataverseServiceClient/issues/326

We will accept this update and merge to our mainline,  will close this PR when we push the overall updates.


Migrate to Go Modules

This PR is generated by a tool I wrote that helps migrate Go packages that are tagged +2 to Semantic Import Versioning.
Note that this change should be backwards compatible and can still be imported without the /vX suffix when Go Modules is off.

Thanks for this. This looks like a backwards incompatible change. I need to look into this a little bit to ensure we don't violate semver, but it looks like it's time for this to land.

@dgrijalva yes the recommendation from the Go team is that this should be a new major version upgrade :)

any news on this @dgrijalva ? would love to see this merged

Since the current release is v3 this PR would not work well with modules, I made a change to make it v4 instead of v3.

I would definitely like to see this integrated into the v4 release.


cant install opencv package

hi, when i run get_pi_requirements.sh i get this error:
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
opencv-python==<IP_ADDRESS> from https://www.piwheels.org/simple/opencv-python/opencv_python-<IP_ADDRESS>-cp37-cp37m-linux_armv6l.whl#sha256=f9696c2ec0f34b7bf2fd748f927c422e1d09f63cab8898285c84220a4853ec9f:
Expected sha256 f9696c2ec0f34b7bf2fd748f927c422e1d09f63cab8898285c84220a4853ec9f
Got        5001235f5bfde4e330def03b75d40002cccdc553ba1873f6c6df31d24aa5a269

nvm solution was sudo pip3 install python-opencv and then https://github.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi/issues/18

how do i delete this issue?

also i need help solution didnt work


Getting error "import osascript osascript/init.py:21: in      @public.add E   NameError: name 'public' is not defined"

Getting this error in latest build

fixed. thx


Add compiled binaries to repo

To make it easy for people who do not have rust installed to use it, we should host and provide install instructions for various architectures.
Archs

[ ] MacOs
[ ] Windows
[ ] Ubuntu
[ ] Debian

Feel free to comment with additional arch's that are needed and I'll add them to the list.

Maybe some crates are out of date now. On Manjaro, with openssl-1.1.1 installed, it fails when compile openssl v0.9.24.


Fix #108: Update with links to Python OM and tutorials

The Specification section at the top is now titled Specification and documentation, and contains a new button to "Study the tutorials":

The Python area of the Tools and libraries section, for so long "Coming soon", has now come, and links to the Python OM repo and downloadable module:

It's not beautiful -- feel free to sic a web designer on it, which I'm not -- but let's get this merged first, and prettied up later or never.

Published and merged. Feel free to comment post hoc.


Split out pytest plugins

This pull request takes a fork of the pkglib repository and trims it down to just the testing code that can be encapsulated in discrete pytest plugins. It's my believe this is a more digestible way of distributing the code.

"It's my belief this is a more digestible way of distributing the code." +1!

24KLOC removed -- impressive!
Yeah, looks really good to me. Now it just needs a snappy description at https://github.com/manahl/pytest-plugins :)
Do we have any plans to reduce/remove any of our internal testing packages in favour of this package?

Yep - this will hollow out our main internal testing package, as part of the current packaging revamp.


Error: Could not satisfy dependency: image

When I use the command
luarocks make

in the iTorch folder I get the Error:
Error: Could not satisfy dependency: image

And when I try to install the dependency image manually it responds:
luarocks install image
Error: No results matching query were found.

Regards

@JulianHill are you using your own installation of luarocks and/or luajit?
Giving the output of "which luarocks" will be helpful.
in short, apart from the luarocks server, we add our own server to luarocks' search path, which has some much needed packages:
https://github.com/torch/rocks

The problem seems to be Anaconda.
http://stackoverflow.com/questions/23992612/torch7-mac-installation-error
When I renamed the Anaconda folder to something different, the script finished successfully.
After the installation I could set the name to Anaconda again.

The command
which luarocks

gave the output:
/Users/julian/torch/bin/luarocks

after I changed the name of the Anaconda folder to something else.
The problem seems to be Anaconda. It seems to overwrite some paths. Do you have a better installation guide about how to to install torch and iTorch in combination with Anaconda?

Ok I could manage to run it with Anaconda installed but had to specify
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

But now when I run itorch notebook and try to load the images from the example with
require 'image';
 itorch.image({image.lena(), image.lena(), image.lena()})

The console output says:
libpng warning: Application built with libpng-1.4.12 but running with 1.6.16
[write_png_file] png_create_write_struct failed

Do I have to downgrade the libpng version to use itorch?
Regards

@JulianHill interesting. anaconda seems to also be shipping with its own libpng, if i understand correctly. i would say this is what we do already with the default torch install as of yesterday:
1. before installing torch, scrub anaconda from PATH
2. install all torch packages except iTorch
3. Now, put back anaconda into PATH and install iTorch

If I understand this, what would fix it is to reinstall the "image" package with anaconda IN path.
So, with anacond in the path, and as is, reinstall:
luarocks install image

Hopefully that should fix it.

The problem is then that the new torch install script http://torch.ch/docs/getting-started.html#_
installs the libpng 1.6.16. I removed it from brew, and after I run the torch installer script the 1.6.16 version is back again in brew.

ok, then i suggest manually removing it from brew and reinstalling the image package. (luarocks install image).

If I remove it manually, the luarocks install imagecommand does not install the version 14 needed. This seems to be a problem with the torch install script or? This shouldn´t install the version 16 at all.

i dont understand.
Basically there's two parts to the torch install.
(1) installing dependencies. You have already done this once, so dont do it again. This is the part that installs libpng from brew.
(2) installing torch itself. You have also done this, but when you did this earlier, torch's image package linked against libpng 16. You say you want to link against libpng14 that you already have.
So, remove the homebrew libpng, and then just run "luarocks install image". that WILL NOT install libpng.

got similar problem recently turn out the problem because CMake using Mono.Framework libpng, because its installed in /Library/Frameworks/Mono.Framework which CMake find its library. find out using
$ locate libpng-config
/Library/Frameworks/Mono.framework/Versions/3.12.0/bin/libpng-config
/usr/X11/bin/libpng-config
/usr/local/Cellar/libpng/1.6.16/bin/libpng-config
/usr/local/bin/libpng-config
/usr/local/octave/3.8.2/bin/libpng-config

and execute libpng-config version and found match version 1.4.12 with mono version, move this Mono.Framework folder to other place and re install torch fix the problem

I am having trouble installing image as well (on OS X 10.10):
$ luarocks install  --server=https://raw.githubusercontent.com/torch/rocks/master  image
Installing https://raw.githubusercontent.com/torch/rocks/master/image-1.1.alpha-0.rockspec...
Using https://raw.githubusercontent.com/torch/rocks/master/image-1.1.alpha-0.rockspec... switching to 'build' mode

Missing dependencies for image:
sys >= 1.0
xlua >= 1.0

Using https://raw.githubusercontent.com/torch/rocks/master/sys-1.1-0.rockspec... switching to 'build' mode
Cloning into 'sys'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 9 (delta 1), reused 6 (delta 1), pack-reused 0
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.
Checking connectivity... done.
Note: checking out '1bf9056edeefacf4a7e2b87260efd29dae92992e'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

cmake -E make_directory build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/usr/local/bin/.." -DCMAKE_INSTALL_PREFIX="/usr/local/lib/luarocks/rocks-5.2/sys/1.1-0" && make
-- The C compiler identification is AppleClang <IP_ADDRESS>20053
-- The CXX compiler identification is AppleClang <IP_ADDRESS>20053
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found Torch7 in /usr/local
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/luarocks_sys-1.1-0-5173/sys/build
Scanning dependencies of target sys
[ 50%] Building C object CMakeFiles/sys.dir/sys.c.o
/tmp/luarocks_sys-1.1-0-5173/sys/sys.c:48:39: error: array has incomplete element type 'const struct luaL_reg'
static const struct luaL_reg routines [] = {
                                      ^
/tmp/luarocks_sys-1.1-0-5173/sys/sys.c:48:21: note: forward declaration of 'struct luaL_reg'
static const struct luaL_reg routines [] = {
                    ^
/tmp/luarocks_sys-1.1-0-5173/sys/sys.c:56:3: warning: implicit declaration of function 'luaL_openlib' is invalid in C99 [-Wimplicit-function-declaration]
  luaL_openlib(L, "libsys", routines, 0);
  ^
1 warning and 1 error generated.
make[2]: *** [CMakeFiles/sys.dir/sys.c.o] Error 1
make[1]: *** [CMakeFiles/sys.dir/all] Error 2
make: *** [all] Error 2

Error: Failed installing dependency: https://raw.githubusercontent.com/torch/rocks/master/sys-1.1-0.rockspec - Build error: Failed building.

Is there any fix to this problem?
I have:
/usr/local/bin/luarocks```

locate libpng-config
/Applications/_anaconda/bin/libpng-config
/Applications/_anaconda/pkgs/libpng-1.6.17-0/bin/libpng-config
/Applications/_anaconda2.7/anaconda/bin/libpng-config
/Library/Frameworks/UnixImageIO.framework/Versions/E/Programs/libpng-config
/_anaconda/bin/libpng-config
/_anaconda/pkgs/libpng-1.6.17-0/bin/libpng-config
/opt/X11/bin/libpng-config
/usr/local/Cellar/libpng/1.6.17/bin/libpng-config
/usr/local/Cellar/libpng/1.6.18/bin/libpng-config
/usr/local/Cellar/libpng/1.6.21/bin/libpng-config
/usr/local/bin/libpng-config

I tried to purge and reinstall `libpng` with `brew`, still getting the same problem with itorch.


Some requests

[x] First

After editing an image and saving it. If you click return to exit the app, it give you a message "unsaved changes will be lost". How to skip this exit confirmation message? Because we are already saved the changes !

[x] Second

Hey there! I've got an idea that could enhance the image saving functionality of your awesome ImageTool app. Currently, saving an image is just a single tap away, which is great. However, it would be fantastic if we could add an option to long-press and select a different folder to save the image in.
This alternative folder could keep a history of the most recently used save locations. That way, instead of navigating through multiple levels of directories every time, we could quickly add images to our frequently used save spots with just a few taps.

Done everything


Extract tapping next button to focus on next textfield into one function for ConfigureTransactionViewController.swift

This is now done at 2 places:
A. https://github.com/AlphaWallet/alpha-wallet-ios/blob/fba12770c72080521a0cf1666d26afa46943fff9/AlphaWallet/Transfer/ViewControllers/ConfigureTransactionViewController.swift#L493
B. https://github.com/AlphaWallet/alpha-wallet-ios/blob/fba12770c72080521a0cf1666d26afa46943fff9/AlphaWallet/Transfer/ViewControllers/ConfigureTransactionViewController.swift#L365
This is a refactoring that also cleans up some spurious code because the if-else in (A)  checks for  ( and ) but those will never match and is handled (B). Better to call a single function which groups all the if-else's together.

there is different types of text field TextField, SlidableTextField
func nextButtonTapped(for textField: TextField) and func nextButtonTapped(for textField: SlidableTextField)

Made #6479. Help see if it works right?


Add FlatCAM project and G-Code files of PCB V2

Maybe you want these files... If not, just close this PR.

Thanks!


Copy/Paste from far2l (wxWidgets GUI) to Telegram Desktop not working

Windows build number:
10.0.22631.3296
Your Distribution version:
Ubuntu 23.10
Your WSL versions:
WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>-2
WSLg version: 1.0.60
MSRDC version: 1.2.5105
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22631.3296
Steps to reproduce:

Install far2l-gui from ppa:
https://launchpad.net/~far2l-team/+archive/ubuntu/ppa
Install Telegram Desktop
https://desktop.telegram.org/
(Linux version)
Run far2l like this:

FAR2L_WSL_NATIVE=1 far2l

Try to copy some text from far2l gui to Telegram Desktop

WSL logs:
No response
WSL dumps:
No response
Expected behavior:
Then I copy text from far2l (Linux port of Far Manager, gui wxWidgets-based version), to Telegram Desktop, text should be copied fine.
Actual behavior:
Then I copy text from far2l (Linux port of Far Manager, gui wxWidgets-based version), to Telegram Desktop, text is not copied at all.
In native Ubuntu 23.10 such copy-paste works fine.
far2l ppa
https://launchpad.net/~far2l-team/+archive/ubuntu/ppa
far2l sources
https://github.com/elfmz/far2l
Telegram Desktop
https://desktop.telegram.org/
Related far2l issue:
https://github.com/elfmz/far2l/issues/1658

In native Ubuntu 23.10 such copy-paste works fine.

It's worth nothing that even a very simple call to gtk fails to place the text in the Windows clipboard:

    GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
    gtk_clipboard_set_text(clipboard, "Hello World!", -1);

https://github.com/wxWidgets/wxWidgets/issues/23544#issuecomment-1859639216

Implemented workaround on our side.
Please run
far2l --wayland

after it is accepted to master to reproduce bug as far2l will use x11 by default otherways.

Also please note that even with GDK_BACKEND=x11 clipboard has problems under wslg under Wayland: you can't copy/paste multi line text. I guess that some kind of \n -> \r\n conversion and vice versa should be added, but I am not actually sure.

See also: #1044


Responsive slider with fixed slide size

Hello!
I need to make a responsive slider, but I don't want the slides width and height to change. I want the slider container width to change according to the number of visible slides and to add padding so the slider will stay in the same place. I tried to do that with breakpoints and slidesPerView,
but the slides width changes every time I change the screen size.
Now the container size according to the clientWidth, Is there a way to update the container width every time the screen size changes by the next calculation:  ( amount of visible slide * slide fixed width) + (spaceBetween * (amount of visible slide – 1).
The goal is that the slides width will not change, but the amount of visible slides will change according to the breakpoints by changing the slider container width.
Example of a site the uses a slider with the functionality that I need:
www.viewster.com/
Thanks!
Orit

If i understand correctly, you want fixed width/height of your container. In this case you need to customize with some css your .swiper-container

If you want the size of your slides to remain fixed regardless of the dimensions of the container, the parameter for that is slidesPerView:'auto'


feat(ssa): Loop invariant code motion

Description
Problem*
Resolves #6517
The issue references both hoisting instructions into their earliest ancestors or simply hoisting instructions out of loops. This PR looks to add a pass that simply tries to hoist loop invariants into their pre-header.
Summary*
Description of the pass in the codebase:
The loop invariant code motion pass moves code from inside a loop to before the loop
if that code will always have the same result on every iteration of the loop.

To identify a loop invariant, check whether all of an instruction's values are:
- Outside of the loop
- Constant
- Already marked as loop invariants
-
We also check that we are not hoisting instructions with side effects.

Additional Context
I re-used some of the context structures and methods from the unrolling and constant folding passes. I felt we could do some consolidation of the loop optimization passes.
Documentation*
Check one:

[ ] No documentation needed.
[X] Documentation included in this PR.
[ ] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[X] I have tested the changes locally.
[X] I have formatted the changes with Prettier and/or cargo fmt on default settings.

The blob binary goes from ~760 million executed opcodes on master to ~474 million opcodes executed when compiled with this branch.


Build failed

Hello.
I try to build it:
mvn -s settings.xml install
But I have the following error described below:
[INFO] Dependency-Check ................................... SUCCESS [  2.513 s]
[INFO] Dependency-Check Utils ............................. SUCCESS [ 20.802 s]
[INFO] Dependency-Check Core .............................. SUCCESS [06:56 min]
[INFO] Dependency-Check Command Line ...................... SUCCESS [  4.767 s]
[INFO] Dependency-Check Ant Task .......................... FAILURE [ 15.853 s]
[INFO] Dependency-Check Maven Plugin ...................... SKIPPED
[INFO] Dependency-Check Plugin Archetype .................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  07:40 min
[INFO] Finished at: 2020-02-27T14:33:54+05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.22.2:verify (default) on project dependency-check-ant: There are test failures.
[ERROR]
[ERROR] Please refer to /home/soier/src/DependencyCheck/ant/target/failsafe-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :dependency-check-ant

Additional info:
1.txt

The solve is https://dl.bintray.com/jeremy-long/owasp/dependency-check-5.3.0-release.zip


Refactor ciscospark Migrate Avatar to packages

Partially Migrate avatar to packages as part of ongoing reorganization
Change to latest batch and store standards. Add template files
issue #62 Migrate Avatar
I am still having trouble with tests and will update this PR once I have them running without error.
This PR includes new implementation of avatar, batch and store, moving files into package src tree and removal from the existing tree.

Note tests have not yet been included in this PR.

Uploaded a minimal unit test that fails with the following:
Running "mochaTest:node" (mochaTest) task
Services
Avatar
AvatarUrlBatcher
#fingerprintRequest(item)
1) "before each" hook for "returns 'uuid - size'"
0 passing (134ms)
1 failing

Services Avatar AvatarUrlBatcher "before each" hook for "returns 'uuid - size'":
TypeError: _testHelperMockSpark.MockSpark is not a function
at Context. (packages/plugin-avatar/test/unit/spec/avatar-url-batcher.js:17:17)

Warning: Task "mochaTest:node" failed. Use --force to continue.
Aborted due to warnings.

TypeError: _testHelperMockSpark.MockSpark is not a function

I think you're doing import {MockSpark} instead of import MockSpark.

yeah, that was it Ian. thanks. Lastest commit builds and passes the trivial unit test. I'll work on getting the others ported

avatar should now pass circleci, unit and integration tests.

well hell, yeah I forgot to push. Integration tests are now up, I'll have the "it"s returning Promises shortly

Latest commit return promises fro unit tests appropriately

fix lint errors by fixing Promise.all cal to actually invoke the function, fixed resultant associated errors as well


Bowls, wood tool, and stone tool recipes no longer work.

Core Section

[X] I have searched for this issue on this repository
[X] This bug persist and I need help
[X] I'm using the latest version of this project
[X] I'm try to reinstall it on a clean instance (common issue)

Environment
Singleplayer/Local | NO LAN
Modpack Version
0.9.c HOTFIX
Description
Bowls, wood tool, and stone tool recipes no longer work. (I started a new game for shits and giggles.)
Procedure
N/A
Additional things
N/A

fixed on https://github.com/DevDyna/IronBerry/commit/498af8ebd58f3d15b7d7a3127196ac27d2727372
(probably was caused by filters so maybe one day will come back and i need to remove them)


closeTab should accept an index param

Similar to the other closetab actions being introduced in #7176.
This is being tracked with the other support for customizing the new-tab dropdown, which will need the ability to specify and action for the "close tab" menu item

@KimKiHyuk Pretty much yea - except, it'll be more like how it's implemented in #7390. So the implementation would be more like:
void TerminalPage::_HandleCloseTab(const IInspectable& /*sender*/,
                                       const TerminalApp::ActionEventArgs& args)
{
    if (const auto& realArgs = actionArgs.ActionArgs().try_as<TerminalApp::CloseTabArgs>())
    {
        if (realArgs.Index()) {
            // The user provided an `index`

            const auto index = realArgs.Index().Value();
            const bool handled = _CloseTheNthTab(index); // TODO: This function would need to be implemented of course
            args.Handled(handled);
        }
        else
        {
            // No index was provided - close the currently active tab.
            _CloseFocusedTab();
             args.Handled(true);
        }
    }
}


Broken Indonesian links - HELP REQUESTED

Below is a list of failing links in our Indonesian lists
You can help improve this repo by resolving the problems.
A failing link may be a website or resource that has disappeared. You can submit a PR

removing the link (maybe the resource is obsolete.)
correcting the link (sometimes things move)
replacing the link (make sure the link is authorized, or the resource is open-licensed). Often a link to internet archive's wayback machine is useful.

Sometimes a link is only temporarily failing, or the site blocks link-checkers. If that's the case, leave a note on this issue.
In your PR, reference this issue.
Thanks for your help!
free-programming-books-id.md

[ ] 404 Not Found https://www.gitbook.com/book/novalagung/dasarpemrogramangolang

Hello @eshellman
Just created PR #3277 for fixing the broken link


At least on BN3 there is only 75 favour needed to donate

Is there a possibility to check how much favour is needed for donating at factions? Or at least implement that only 75 are needed in BN3.

I already check for the actual favour to donate everywhere as far as I know. What makes you think it doesn't?

I'm on BN3, there you need only 75 favour. The calculations of work-for-faction thus go up to needed rep for 150 Favour as a target for rep gain in a faction.
When the favour ist over 75 on reset, the Script Sees that I can donate and It's okay.

Check out this line 164 of the script:
    repToDonate = 150 * ((await tryGetBitNodeMultipliers(ns))?.RepToDonateToFaction || 1);

It already checks for this in the only way possible.
It seems that the problem you're having is that the "getBitnodeMultipliers" function is an intelligence (SF5) function, so until you complete BN5, there's no way to programatically determine the rep to donate.
You can manually edit that line for now in your situation, but you'll have to complete BN5 to unlock permanent access to that feature.

OK, thank you. I'm on bitnode 9.2 now to get the home server RAM, then I go to BN5. Then BN8 for stock API.


Using key in a child-component twig

I have a list twig:

  {% for item in list %}
      {% mount './item' with {
        id: item.id
        text: item.text
      } %}
  {% endfor %}

And an item twig:

{{text}}</id>

This doesn't seem to work, except if I move the li tag to the list twig.
What is the preferred way to solve this?

Can you try to pass key to the sub element on mount tag

  {% for item in list %}
      {% mount './item' as 'li{{item.id}}' with {
        id: item.id
        text: item.text
      } %}
  {% endfor %}

Thanks for the quick reply, but it doesn't interpret the {{item.id}} part. The result of this is that only one item is added (the last in the list)

As a workaround(not best practice), you can change the key with loop.index0 as
 {% mount './item' as loop.index0 with {

Not promising, but I will try to find time to reproduce it.

I figured it out, if you use it this way it should work.
 {% mount './item' as 'li'+item.id with {

Sorry for misleading you at the first hand, inside a mount tag you can use the variables directly without mustaches.
Happy Hacking,

Yes, that works. Thanks.
I'd recommend adding a note for this on your website tho, as this is not obvious.

Twig (and thus Melody) has a (not so intuitive) different syntax for interpolation within strings. An expression like "li#{item.id}" should also work, see https://twig.symfony.com/doc/2.x/templates.html#string-interpolation for reference. Additionally it only works within double quoted strings.
I agree that it'd probably be worth it to document that explicitly but I'd be very interested to know what didn't work about the first example. Did you get a list with only one item (that'd be the missing string interpolation) or something entirely different (that might be a bug)?

Yes, that syntax does work as well.
It was only one item on the first example.


Port async-aware CultureInfo property from CoreCLR.

The following two tests are ActiveIssued onthis:
System.Globalization.Tests
-method  System.Globalization.Tests.CultureInfoAsync.TestCurrentCulturesAsync
-method System.Globalization.Tests.CultureInfoAsync.TestCurrentCulturesWithAwait

Now tracked as TFS451287

I have reassigned the TFS back to you @AtsushiKan.
@AtsushiKan, is this for UAP scenario? or in general for aot? if it is in general for aot (even when running as non UAP, then you may assign it back to me). also I am wondering why we are tracking this as TFS and not here?

Issue moved to dotnet/corefx #21093 via ZenHub

ActiveIssue, reopen it, test methods:
TestCurrentCulturesAsync
TestCurrentCulturesWithAwait
https://github.com/dotnet/corefx/blob/master/src/System.Globalization/tests/CultureInfo/CultureInfoAsync.cs#L16

@Jiayili1 could you please tell more why you activated this one? and add a pointer to the failures with the platform information?

@tarekgh the platform is:
TargetFrameworkMonikers.UapAot
windows desktop framework
And @danmosemsft could you help to tell why reactive this issue?

@danmosemsft this issue is not shipping scenario for UWP because the current culture work differently inside the app containers. uapaot tests running outside app containers which is not the shipping scenario of UWP.
Also we already have a TFS bug tracking this for PN future release. I understand it is good to fix this but I wanted to clarify that it is not UWP6.0 issue. I'll leave it to @danmosemsft to decide if we need to mark it as 2.1 or keep it for UWP6.0

Thanks @tarekgh . @Jiayili1 reactivated it as it is marked active issue against this issue. I moved to Future.

@danmosemsft This issue is tracked in TFS as 451287 as per Ati's closing comment above. This includes a bunch of other issues @Jiayili1 reactivated on the same day for the same reasons in this repo (such as #3651 and #3650).
What's the motivation to keep duplicate issues in two bug databases? I would prefer we close these as originally done by @AtsushiKan and track this in TFS only (because that's where our shipping queries point at). Having duplicates makes it difficult to figure out how our backlog looks like. Unusable backlog leads to people taking drastic measures such as bulk closing all issues older than a year.

@MichalStrehovsky I'm happy to close it, the problem is annotations like this in the code
  [ActiveIssue("https://github.com/dotnet/corert/issues/3747 - Port async-aware CultureInfo property from CoreCLR", TargetFrameworkMonikers.UapAot)]

We have to pass over these periodically to check for forgotten isssues that got closed. So as long as there is markers like this in the code this may get periodically reactivated.

already tracked in TFS

So as long as there is markers like this in the code this may get periodically reactivated.

Since the different behavior on UAPAOT is by design, the ActiveIssue marker should be removed so that this is not getting reactivated again and again...


⚠ PrivateHD has degraded performance

In f237d69, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2407 ms

Resolved: PrivateHD performance has improved in 3e7c7c8.


Inspector - Next Growth column not updated when growth rates changed

When the collection runs for Database growths it checks if growth rates have been changed since the last time it was ran, if this is the case then the new growth rate is updated in Inspector.DatabaseFilesSizes however the NextGrowth column is not - this needs to be reclaculated and updated accordingly.
A new line of code needs to be added to the stored procedure Inspector.DatabaseGrowthsInsert as follows:
Snippet from Old code:
--Keep the base table in sync by checking if the growth rates have changed - if they have then update the base table
UPDATE    [Sizes]
SET
[GrowthRate] = [GrowthCheck].[GrowthRate_MB],
[Is_percent_growth] = [GrowthCheck].[is_percent_growth],
[LastUpdated] = @LastUpdated
Revised code:
--Keep the base table in sync by checking if the growth rates have changed - if they have then update the base table
UPDATE    [Sizes]
SET
[GrowthRate] = [GrowthCheck].[GrowthRate_MB],
[Is_percent_growth] = [GrowthCheck].[is_percent_growth],
[NextGrowth] = ([Sizes].[PostGrowthSize_MB] + [GrowthCheck].[GrowthRate_MB]),
[LastUpdated] = @LastUpdated

Whilst getting the fix in place for this one I also noticed another bug where the PostGrowthSize column update could be skipped if growth rates had been adjusted as this would update the LastUpdated column and the logic for the update of the PostgrowthSize_MB was to not make an update if LastUpdated has a date of today (this was there to stop multiple updates occuring during the same day which would mess with calculations) however this can be fixed by removing the date filtering from the below statement:
     UPDATE [Sizes]
     SET    [PostGrowthSize_MB] = (CAST([Masterfiles].[size] AS BIGINT) * 8) / 1024,
			[LastUpdated] = @LastUpdated
     FROM   [sys].[master_files] [Masterfiles]
            INNER JOIN [SQLUndercoverDB].[Inspector].[DatabaseFileSizes] [Sizes] ON [Masterfiles].[database_id] = [Sizes].[Database_id]
                                                                                AND [Sizes].[File_id] = [Masterfiles].[file_id]
     WHERE  [Masterfiles].[database_id] > 3
            AND ((CAST([Masterfiles].[size] AS BIGINT) * 8) / 1024 != [Sizes].[PostGrowthSize_MB])
            AND [Servername] = @Servername
			AND (CAST(LastUpdated AS DATE) < CAST(GETDATE() AS DATE) OR LastUpdated IS NULL)

and instead wrapping this statement and the update statement that follows with an IF statement where SCOPE_IDENTITY() IS NOT NULL (a growth has occurred) as the growth check already conducts a check to ensure that it is not duplicate logging growths during the same day.
Will commit changes to this issue aswell.

Unfortunately SCOPE_IDENTITY() will not evaluate correctly across linked server so instead I will replace the SCOPE_IDENITY() IS NOT NULL check with a MAX( Log_Date ) comparison:
IF (SELECT CAST(MAX(Log_Date) AS DATE) FROM [SQLUndercoverDB].[Inspector].[DatabaseFileSizeHistory] WHERE Servername = @Servername) = CAST(GETDATE() AS DATE)
I will include a new index for the DatabaseFileSizeHistory table too:
CREATE NONCLUSTERED INDEX [IX_Servername_Includes_Log_Date] ON [Inspector].[DatabaseFileSizeHistory]
(
[Servername] ASC
)
INCLUDE ([Log_Date])


Add support for Python 3.13

Description
This PR will add Python 3.13 support to inboard.
Changes
Code changes

Add Python 3.13 to GitHub Actions workflows
Add Python 3.13 classifier to pyproject.toml
Set Python 3.13 as default version in Dockerfile

Results

inboard will now run tests with Python 3.13, in addition to 3.9-3.12
inboard will now build and publish its PyPI package using Python 3.13
inboard will now include a Python 3.13 classifier in its PyPI package
inboard will now ship Docker images running Python 3.13, in addition to 3.9-3.12, and Docker images tagged with latest will now use 3.13

Related

[x] I have reviewed the Guidelines for Contributing and the Code of Conduct.

Related projects that have released support for Python 3.13 include:

AnyIO (4.6.2 - 2024-10-13)
Hatch (1.13.0 - 2024-10-13)
Pydantic (2.8.0 - 2024-07-01)
Starlette (0.38.3 - 2024-09-01)
Uvicorn (0.32.0 - 2024-10-15)

Related projects that have not released support for Python 3.13 include:

pipx
FastAPI (has not released or tested Python 3.13 support)
Gunicorn (has not released Python 3.13 support, but is testing with Python 3.13 in development)

Waiting on dependencies that have not released support for Python 3.13 (pipx, FastAPI, Gunicorn).


Rsz add h vrc set wire rc

Fixes #3236
This PR updates the command set_wire_rc to separate the values used to estimate wire parasitics for vertical and horizontal wires. The command now can receive a list of layers using the key -layers, the resistance and capacitance values of the layers passed will be used for wires according to their preferred direction. If more than one layer passed has the same preferred direction the average value will be used.
Also the keys -h_resistance -h_capacitance -v_resistance -v_capacitance can be used to set these values directly.

Is this ready to go?  There is a conflict to resolve.


[Feature] Support tag

Search before asking

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

Motivation
Paimon's snapshots can support to query historical data without cost of merging. Paimon's data storage will generate snapshot for each commit, so we can find historical data at any snapshot (usually called time travel query in SQL).
But in most scenarios, a table will generate too many snapshots, so Paimon lets users to configure snapshot expiration time to clean old, unused snapshots. Thus the snapshot of a specified time point may have expired when user want to query it.
To solve this problem, we propose to introduce a new mechanism Tag. A tag is created from snapshot and can keep longer. The purposes of tag are:

Fault recovery (or we can say disaster recovery). Users can ROLL BACK to a tag if needed. If user rollbacks to a tag, the table will hold the data in the tag and the data committed  after the tag will be deleted. In this scenario the tag is like backup, but more lightweight because the tag only record the metadata of data files instead of copying them.

Record versions of data at a longer interval (typically daily or weekly). With tag, user can query the old data in batch mode. In this scenario the tag is like long-lived snapshot.

Solution
Design: https://cwiki.apache.org/confluence/x/NxE0Dw
Anything else?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

### Sub tasks
- [ ] https://github.com/apache/incubator-paimon/issues/1270


[build-script] Fix build args passed to cmake commands that run tests.

@swift-ci please smoke test

@swift-ci please smoke test

@gribozavr, can you double-check my shell-script skills? The symptom was that only the first argument in BUILD_ARGS ("-j4") was being passed to these cmake commands. Other values like "-v" from --verbose-build were dropped.

@gparker42 LGTM, thanks!


Sidebar no longer visible (sidebar === null) since 0.9

Kudos on the quick fixes of all the issues coming in!
Just noticed however, that when updating to 0.9.0, the sidebar no longer shows. There's no error, just nothing. I noticed that changing the formatting function to just return the regular string fixes it. Might be something wrong with the capitalize script.

Strange I can't repro. In 0.9.2 I added a debug option to request handlers which may help us uncover what's wrong. Could you please upgrade and try the following in [dir].sidebar.json.js:
import { createSidebarRequestHandler } from '@svelteness/kit-docs/node';

export const get = createSidebarRequestHandler({
  debug: true,
});

Let me know if any error logs in your console after doing so.

If this fails, a repro of your exact setup would be help me fix it.

This is really weird, I can't repro...?

This might be a Windows specific bug again?

If anyone can give me a repro of their exact setup I'll happily try to debug. Let me know what version of Node, if you're using NPM/PNPM (+ version) and anything else that might matter.

@mihar-22 I'll try to make a repro later this week!


Implement april tag prototype

Implement the first version of April Tags
Acceptance criteria:

[ ] robot should be able to proceed autonomously for 5 feet
[ ] something else

@apumapho take a look at this


Add option to skip blocks of 0 bytes

Some files (e.g. disk images) can have very large runs of 0 bytes. It would be nice to have an option to omit these - e.g. the BSD hexdump by default emits a * for arbitrarily large groups of zero bytes:
00000250  04 00 00 00 80 00 00 00  33 5b 58 fd 00 00 00 00  |........3[X.....|
00000260  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400  28 73 2a c1 1f f8 d2 11  ba 4b 00 a0 c9 3e c9 3b  |(s*......K...>.;|
00000410  7f 1b 07 69 76 54 e7 11  a3 8b 90 2b 34 36 13 49  |...ivT.....+46.I|

Hm, hexd does this automatically but i removed it from pixd since it doesn't make as much sense when the output is graphical, at least to me, and it also gets a bit tricky with the way output currently works since I use ‘▀’ to output two "pixels" in each character cell.
In principle it could be added back though, perhaps it'd be a good idea to have it as an option like you say.


AttributeError: module 'snappy' has no attribute 'compress'

I am trying to run the example.sh file and getting the following error. Can someone help?
The model is set to Training
Max training Iteration: 20000
Initial lr: 0.001000
CamVid Image dir: /Users/username/Downloads/Tensorflow-SegNet-master/CamVid/train.txt
CamVid Val dir: /Users/username/Downloads/Tensorflow-SegNet-master/CamVid/val.txt
Batch Size: 5
Log dir: /Users/username/Downloads/Tensorflow-SegNet-master/Logs/--image_dir=/Users/username/Downloads/Tensorflow-SegNet-master/CamVid/train.txt
Filling queue with 146 CamVid images before starting to train. This will take a few minutes.
Filling queue with 146 CamVid images before starting to train. This will take a few minutes.
Traceback (most recent call last):
File "main.py", line 52, in
tf.app.run()
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 48, in run
_sys.exit(main(_sys.argv[:1] + flags_passthrough))
File "main.py", line 49, in main
model.training(FLAGS, is_finetune=False)
File "/Users/username/Downloads/Tensorflow-SegNet-master/model.py", line 369, in training
loss, eval_prediction = inference(train_data_node, train_labels_node, batch_size, phase_train)
File "/Users/username/Downloads/Tensorflow-SegNet-master/model.py", line 180, in inference
conv1 = conv_layer_with_bn(norm1, [7, 7, images.get_shape().as_list()[3], 64], phase_train, name="conv1")
File "/Users/username/Downloads/Tensorflow-SegNet-master/model.py", line 131, in conv_layer_with_bn
conv_out = tf.nn.relu(batch_norm_layer(bias, train_phase, scope.name))
File "/Users/username/Downloads/Tensorflow-SegNet-master/model.py", line 171, in batch_norm_layer
lambda: tf.contrib.layers.batch_norm(inputT, is_training=False,
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 296, in new_func
return func(*args, **kwargs)
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1819, in cond
orig_res_t, res_t = context_t.BuildCondBranch(true_fn)
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 1694, in BuildCondBranch
original_result = fn()
File "/Users/username/Downloads/Tensorflow-SegNet-master/model.py", line 169, in
lambda: tf.contrib.layers.batch_norm(inputT, is_training=True,
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/util/lazy_loader.py", line 53, in getattr
module = self._load()
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/python/util/lazy_loader.py", line 42, in _load
module = importlib.import_module(self.name)
File "/Users/username/anaconda/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 978, in _gcd_import
File "", line 961, in _find_and_load
File "", line 950, in _find_and_load_unlocked
File "", line 655, in _load_unlocked
File "", line 678, in exec_module
File "", line 205, in _call_with_frames_removed
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/init.py", line 31, in
from tensorflow.contrib import factorization
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/factorization/init.py", line 24, in
from tensorflow.contrib.factorization.python.ops.gmm import *
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/factorization/python/ops/gmm.py", line 27, in
from tensorflow.contrib.learn.python.learn.estimators import estimator
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/init.py", line 88, in
from tensorflow.contrib.learn.python.learn import *
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/init.py", line 23, in
from tensorflow.contrib.learn.python.learn import *
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/init.py", line 25, in
from tensorflow.contrib.learn.python.learn import estimators
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/init.py", line 297, in
from tensorflow.contrib.learn.python.learn.estimators.dnn import DNNClassifier
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn.py", line 30, in
from tensorflow.contrib.learn.python.learn.estimators import dnn_linear_combined
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn_linear_combined.py", line 31, in
from tensorflow.contrib.learn.python.learn.estimators import estimator
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 49, in
from tensorflow.contrib.learn.python.learn.learn_io import data_feeder
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/learn_io/init.py", line 21, in
from tensorflow.contrib.learn.python.learn.learn_io.dask_io import extract_dask_data
File "/Users/username/anaconda/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/learn_io/dask_io.py", line 26, in
import dask.dataframe as dd
File "/Users/username/anaconda/lib/python3.6/site-packages/dask/dataframe/init.py", line 5, in
from .io import (from_array, from_pandas, from_bcolz,
File "/Users/username/anaconda/lib/python3.6/site-packages/dask/dataframe/io/init.py", line 6, in
from .csv import read_csv, to_csv, read_table
File "/Users/username/anaconda/lib/python3.6/site-packages/dask/dataframe/io/csv.py", line 14, in
from ...bytes import read_bytes
File "/Users/username/anaconda/lib/python3.6/site-packages/dask/bytes/init.py", line 4, in
from .core import read_bytes, open_files, open_text_files
File "/Users/username/anaconda/lib/python3.6/site-packages/dask/bytes/core.py", line 9, in
from .compression import seekable_files, files as compress_files
File "/Users/username/anaconda/lib/python3.6/site-packages/dask/bytes/compression.py", line 32, in
compress['snappy'] = snappy.compress
AttributeError: module 'snappy' has no attribute 'compress'

I figured out the issue. It was an issue with a different-version of snappy module being called. Weird! (Why do they have to name modules that are same? - Python should have a common site to see what names exist for a module- I guess!) I uninstalled the other module and got the right one working.


Mechanical completion migration

Migrate Mechanical completion to the new CC app api. Today Fusion dataproxy is being used.

@aman-riaz @BenSvend
Need mechanicalCompletionPackageUrlId in the following views
Equinor.TI.Fam.Api.Models.Generated.Completion.Custom_MechanicalCompletionPackageWorkOrders
Equinor.TI.Fam.Api.Models.Generated.Completion.Custom_MechanicalCompletionPackagePunch
Equinor.TI.Fam.Api.Models.Generated.Completion.Custom_MechanicalCompletionPackageMilestone
Also, in Equinor.TI.Fam.Api.Models.Generated.Completion.Custom_MechanicalCompletionPackageV1 it currently looks like this
"m01_Actual": "Yes",
"m02_Actual": "Yes",
"m03_Actual": "No",
"m04_Actual": "No",
These should be changed to Boolean true/false.

Missing mechanicalCompletionPackageUrlId in Custom_MechanicalCompletionPackagePunch @aman-riaz

@espenkalle its added, will be available soon today


Update README.dev.md

Description
Update README.dev.md
Related issues:

#24

Instructions to review the pull request
Review online.

No problemo, no work lost.

Thanks for the review.