Edit Command

Implement the following variations of the edit command

[ ] #78 Edit Category
[ ]  #79 Edit Expense

Call has to be from the model, this call has to then propagate down to the ExpenseTracker


using analytics

how would I use analytics from Vercel, Google, or Goatcounter on my garden?

Take a look at this thread to see if you find the answer here:
https://github.com/oleeskild/obsidian-digital-garden/discussions/195
If you do perhaps take notes and share to help augment any details needed so docs can be updated.

I managed to use GoatCounter Analytics by simply editing the index page (editing index.njk) and then re-building the site.


ArgumentError

I'm a beginner on Elixir. After modifying the code according to the tutorial:
$ mix test
** (ArgumentError) argument error
    :erlang.apply({ElchemyInit, []}, :init, [])
    mix.exs:11: KaiseisaiBackend.MixProject.project/0
    (mix) lib/mix/project.ex:676: Mix.Project.get_project_config/1
    (mix) lib/mix/project.ex:111: Mix.Project.push/3
    (stdlib) erl_eval.erl:677: :erl_eval.do_apply/6

In iex:
iex(1)> Code.eval_file(".elchemy.exs")
{ElchemyInit, []}

It's returning a tuple, which doesn't seem to match what we expect.
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Elixir 1.6.6 (compiled with OTP 21)

@ishitatsuyuki It is supposed to be returning a tuple.
{Module, something}.function
alwasy was an appropriate function call to Module.function({Module, something}
I hope they didn't remove that from Elixir 1.6.6 (or Erlang 21). I'll investigate what's the cause

It looks like Erlang 21 removes tuple calls.
That means we're gonna need a redesign in how Elchemy is initiated

Yeah tuple calls were deprecated in OTP 20, disabled in OTP 21 requiring a switch to re-activate, and is expected to be entirely removed sometime later, it has indeed saddened me...


fix(curriculum): intellisense suggenstion box should not be visible

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #41533

This fix disables the intellisense suggestion box by overriding the shortcut ctrl + space  whith an empty function.
Only tested on Windows.

@raisedadead , What do you suggest here?

We leave it as is. I do not see a burning need to restrict users further.

Pulled this down and tested, and it resolves the issue.
Before merging, do we want to have someone test this on a non-Windows machine?

Pulled this down and tested, and it resolves the issue.
Before merging, do we want to have someone test this on a non-Windows machine?

I did a quick search and found that is should work for mac as well.


fix(predictions): add equatable conformance to errors

Issue #

Description

adds Equatable conformance to errors.
add some error mapping test cases

General Checklist

[x] Added new tests to cover change, if needed
[x] Build succeeds with all target using Swift Package Manager
[x] All unit tests pass
[x] All integration tests pass
[x] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
[ ] ~Documentation update for the change if required~
[x] PR title conforms to conventional commit style
[ ] ~New or updated tests include Given When Then inline code documentation and are named accordingly testThing_condition_expectation()~
[ ] ~If breaking change, documentation/changelog update with migration instructions~

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Unit test is failing

Unit test is failing

Yup, the previous PR #2912 fixes that. They should pass on merging.


Selectively import parts of external library, e.g. lodash to reduce bundle size

https://lacke.mn/reduce-your-bundle-js-file-size/

for now utilities such as lodash does not seem to be necessary

Will be handled in different issue. Closing


Circle top incorrect

This is intentional. This mimics how when you draw a circle by hand you don’t quite meet the end exactly right.
cc @pshihn who can tell you more about the effect

@lidedongsn Take a piece of paper and try drawing a many circles as quickly as you can in one continuous motion. Here's what it looks like when I did that:

Notice that that the start and end point of the loop don't actually meet unless you are very careful. Trying to replicate the effects in roughjs. See these 4 circles:

This discontinuity of ends not meeting is represented in the shapes. Because of randomness, it seems more pronounced in your shape.
The circle is essentially drawn like this - by estimating points around the circle and not intentionally meeting them accurately:

I think the corner case for excalidraw is 'architect' mode. Perhaps I should remove this behavior completely if roughness === 0.

For anyone interested, here is the original paper that described the technique:

Closing this is, as it's by design!


fix :   If use prop exclude or include  , click categories will scroll  to  next one

…l  to  next one

Thanks! 🙂


Mesh Card / Node Card - Reboot Options

Looking for an enhancement or fix to the Reboot function of the cards

I receive this error when pressing the reboot button on the Garage Node

Picture of the Nodes and Mesh

I think the error comes in play BC the mesh isn't defined in card. But reviewing the code I didn't see where mesh: data was located.
Calling this service Does work to reset the Nodes.

Request:
Can you move or add the "actions" from the Node cards to the Mesh Card and Add reboot Primary Node, Secondary (Garage) and Secondary node options with the data mesh included.  Maybe add a notification that states if you reset the Primary Both get rebooted...
And/Or
Help me fix or determine Why actions reboot doesn't work in the Node Cards.  I see the reboot under the second node but its not showing for the primary node.  I don't get why it doesn't show up under the Primary node, with the option to reboot there.
Thanks for all you do, love these cards.  Great for helping me troubleshot the network and find IP addresses for devices when needed.  Maybe one day, you could add a service to add devices, or rename them!

Help me fix or determine Why actions reboot doesn't work in the Node Cards. I see the reboot under the second node but its not showing for the primary node. I don't get why it doesn't show up under the Primary node, with the option to reboot there.

It isn't shown on the Primary node because as you've pointed out it will cause the whole mesh to reboot so I made the decision that it was a bit dangerous.  As you've spotted the Primary node can be rebooted easily enough using a service call so and the additional parameter, which makes doubly sure that you intended to do the reboot and didn't accidentally and blindly click a couple of buttons.
You are correct that it is broken though.  It's missing the reference to the mesh device.  I know exactly when this problem occurred as well, I just never got round to adding the functionality in after making the changes to the integration to allow multiple instances of it.  I'll have a look and see if I can get the information from the code used to build the buttons and let you know what I come up with.

Thanks for all you do, love these cards. Great for helping me troubleshot the network and find IP addresses for devices when needed. Maybe one day, you could add a service to add devices, or rename them!

Adding devices seems a little redundant as they will appear once they have been connected to the Mesh.  Renaming them is a possiblity that I'll add to the list of things to look at.

Right, could you test this please before I update the README with it.
type: custom:auto-entities
card:
  type: vertical-stack
card_param: cards
sort:
  method: friendly_name
filter:
  exclude:
    - entity_id: /mesh/
  include:
    - entity_id: /binary_sensor\..*_status/
      or:
        - attributes:
            guest_network: true
        - attributes:
            guest_network: false
      options:
        type: custom:config-template-card
        variables:
          BUTTONS: |
            () => {
              let ret = []
              let entity_prefix = "button." + "this.entity_id".split(".")[1].split("_").slice(0, -1).join("_")
              for (let entity_id in states) {
                if (entity_id.startsWith(entity_prefix) && states[entity_id] != undefined) {
                  let entity_action = states[entity_id].attributes.friendly_name.replace(vars['ROOM_NAME'], '').replace(/velop|:/gi, '').trim()
                  let config_entry = this.hass.entities[entity_id].config_entry_id
                  let mesh_object = Object.entries(this.hass.devices).filter(([device_id, device_details]) => device_details.config_entries.indexOf(config_entry) != -1 && device_details.model.startsWith("pyvelop"))
                  if (mesh_object) {
                    let entity_name = vars['ROOM_NAME']
                    ret.push({
                      'entity': entity_id,
                      'name': entity_action,
                      'tap_action': {
                          'action': 'call-service',
                          'service': 'linksys_velop.' + entity_action.toLowerCase() + '_node',
                          'service_data': {
                            'mesh': mesh_object[0][0],
                            'node_name': entity_name,
                          },
                          'confirmation': {
                            'text': 'Are you sure you want to reboot the ' + entity_name + ' node?'
                        }
                      }
                    })
                  }
                }
              }
              return ret
            }
          ROOM_NAME: >
            states["this.entity_id"].attributes.friendly_name.replace(/Status|Velop|:/gi,
            "").trim()
          ID_BACKHAUL: >
            "sensor." + "this.entity_id".split(".")[1].split("_").slice(0,
            -1).join("_") + "_backhaul"
          ID_CONNECTED_DEVICES: >
            "sensor." + "this.entity_id".split(".")[1].split("_").slice(0,
            -1).join("_") + "_connected_devices"
          ID_ENTITY_PICTURE: >
            "sensor." + "this.entity_id".split(".")[1].split("_").slice(0,
            -1).join("_") + "_image"
          ID_LAST_UPDATE_CHECK: >
            "sensor." + "this.entity_id".split(".")[1].split("_").slice(0,
            -1).join("_") + "_last_update_check"
          ID_MODEL: >
            "sensor." +
            "this.entity_id".split(".")[1].split("_").slice(0,-1).join("_") +
            "_model"
          ID_PARENT: >
            "sensor." +
            "this.entity_id".split(".")[1].split("_").slice(0,-1).join("_") +
            "_parent"
          ID_SERIAL: >
            "sensor." +
            "this.entity_id".split(".")[1].split("_").slice(0,-1).join("_") +
            "_serial"
          ID_UPDATE_AVAILABLE: >
            "update." +
            "this.entity_id".split(".")[1].split("_").slice(0,-1).join("_") +
            "_update"
          CONNECTED_DEVICES_TEXT: |
            (entity_id) => {
              let ret = `
            | # | Name | IP | Type |
            |:---:|:---|---:|:---:|
            `
              if (states[entity_id] != undefined && states[entity_id].attributes.devices) {
                states[entity_id].attributes.devices.forEach((device, idx) => {
                  let connection_icon
                  switch (device.type.toLowerCase()) {
                    case "wireless":
                      connection_icon = "wifi"
                      break
                    case "wired":
                      connection_icon = "ethernet"
                      break
                    case "unknown":
                      connection_icon = "help"
                      break
                  }
                  ret += "| " + (idx + 1) + " | " + device.name + ((device.guest_network) ? " <ha-icon icon='hass:account-multiple'></ha-icon>" : "") + " | " + device.ip + " | <ha-icon icon='hass:" + connection_icon + "'></ha-icon> |\n"
                })
              }
              return ret
            }
          getEntityPicture: |
            () => {
              if (states[vars['ID_ENTITY_PICTURE']]) {
                return states[vars['ID_ENTITY_PICTURE']].state
              } else {
                if (states[vars['ID_MODEL']]) {
                    return '/local/velop_nodes/' + states[vars['ID_MODEL']].state + '.png'
                }
              }
            }
        entities:
          - this.entity_id
          - ${ID_BACKHAUL}
          - ${ID_CONNECTED_DEVICES}
          - ${ID_LAST_UPDATE_CHECK}
          - ${ID_MODEL}
          - ${ID_PARENT}
          - ${ID_SERIAL}
          - ${ID_UPDATE_AVAILABLE}
        card:
          type: entities
          card_mod:
            style:
              .: |
                #states { padding-top: 0px; }
              fold-entity-row:
                $:
                  template-entity-row:
                    $: |
                      state-badge { display: none; }
                      state-badge + div { margin-left: 8px !important; }
                      .info.pointer { font-weight: 500; }
                      .state { margin-right: 10px; }
          entities:
            - type: custom:button-card
              entity: this.entity_id
              size: 100%
              show_entity_picture: true
              show_last_changed: true
              show_state: true
              tap_action:
                action: none
              entity_picture: ${ getEntityPicture() }
              name: ${ROOM_NAME}
              state_display: |
                [[[
                  return `<ha-icon
                    icon="hass:checkbox-blank-circle"
                    style="width: 24px; height: 24px;">
                    </ha-icon>`
                ]]]
              custom_fields:
                attr_label_model: Model
                attr_model: '${((states[ID_MODEL]) ? states[ID_MODEL].state : undefined)}'
                attr_label_serial: Serial
                attr_serial: '${((states[ID_SERIAL]) ? states[ID_SERIAL].state : undefined)}'
                attr_parent: >-
                  ${(states[ID_PARENT] != undefined && states[ID_PARENT].state
                  && states[ID_PARENT].state != 'unknown') ? 'Connected to ' +
                  states[ID_PARENT].state : 'N/A'}
                attr_label_ip: IP Address
                attr_ip: '[[[ return entity.attributes.ip || ''N/A'' ]]]'
                attr_update: |
                  [[[
                    let ret
                    let entity_update = 'update.' + entity.entity_id.split('.')[1].split('_').slice(0, -1).join('_') + '_update'
                    if (states[entity_update] != undefined) {
                        let update_available = states[entity_update].state
                        if (update_available == 'on') {
                          ret = `<ha-icon
                              icon="hass:package-up"
                              style="width: 24px; height: 24px;"
                            >
                            </ha-icon>`
                        }
                    }
                    return ret
                  ]]]
              extra_styles: >
                div[id^="attr_"] { justify-self: end; } div[id^="attr_label_"] {
                justify-self: start; margin-left: 20px; } #label, #attr_parent {
                padding-top: 25px; font-size: smaller; }
              styles:
                card:
                  - border: 0
                  - box-shadow: none
                  - padding: 16px 8px
                grid:
                  - grid-template-areas: >-
                      "n n attr_update s" "i attr_label_model attr_label_model
                      attr_model" "i attr_label_serial attr_label_serial
                      attr_serial" "i attr_label_ip attr_label_ip attr_ip" "l l
                      l attr_parent"
                  - grid-template-columns: 15% 1fr 30px 30px
                name:
                  - font-size: larger
                  - justify-self: start
                  - padding-bottom: 20px
                label:
                  - justify-self: start
                custom_fields:
                  attr_label_last_update_check:
                    - margin-left: 0px
                  attr_last_update_check:
                    - justify-self: end
                  attr_parent:
                    - justify-self: end
                  attr_update:
                    - color: darkred
                    - justify-self: end
                    - padding-bottom: 20px
                state:
                  - justify-self: end
                  - padding-bottom: 20px
                  - color: |-
                      [[[
                        return (entity.state == 'on' ? 'darkcyan' : 'darkred')
                      ]]]
            - type: custom:auto-entities
              show_empty: false
              card:
                type: custom:fold-entity-row
                head:
                  type: section
                  label: Additional Information
                padding: 0
              filter:
                include:
                  - entity_id: ${ID_LAST_UPDATE_CHECK}
                    options:
                      name: Last update check
                  - entity_id: ${ID_BACKHAUL}
                    options:
                      type: custom:template-entity-row
                      name: Backhaul
                      secondary: >-
                        {% set backhaul_speed = state_attr(config.entity,
                        "speed_mbps") | round(2) %} {% if (backhaul_speed |
                        string).split('.')[1] == '0' %}
                          {% set backhaul_speed = backhaul_speed | int %}
                        {% endif %} {{ state_attr(config.entity, "connection")
                        }} ({{ backhaul_speed }} Mbps)
                      state: |-
                        {% if is_state(config.entity, 'unknown') %}
                          N/A
                        {% else %}
                          {{ state_attr(config.entity, 'signal_strength') }} ({{ states(config.entity) }} {{ state_attr(config.entity, 'unit_of_measurement') }})
                        {% endif %}
            - type: custom:auto-entities
              show_empty: false
              filter:
                include:
                  - domain: button
                    entity_id: >-
                      ${"/" +
                      "this.entity_id".split(".")[1].split("_").slice(0,-1).join("_")
                      + "/"}
              card:
                type: custom:fold-entity-row
                padding: 0
                head:
                  type: section
                  label: Actions
                entities:
                  - type: buttons
                    entities: ${BUTTONS()}
            - type: section
            - type: custom:fold-entity-row
              padding: 0
              head:
                type: custom:template-entity-row
                tap_action:
                  action: fire-dom-event
                  fold_row: true
                entity: ${ID_CONNECTED_DEVICES}
                name: Connected Devices
              entities:
                - type: custom:hui-element
                  card_type: markdown
                  content: ${CONNECTED_DEVICES_TEXT(ID_CONNECTED_DEVICES)}
                  card_mod:
                    style:
                      .: >
                        ha-card { border-radius: 0px; border: 0; box-shadow:
                        none; }

                        ha-markdown { padding: 16px 0px 0px !important; }
                      ha-markdown$: >
                        table { width: 100%; border-collapse: collapse; }

                        tbody tr:nth-child(2n+1) { background-color:
                        var(--table-row-background-color); }

                        thead tr th, tbody tr td { padding: 4px 10px; }

Right, could you test this please before I update the README with it.
Code works, the Secondary node worked.

I just never got round to adding the functionality in after making the changes to the integration to allow multiple instances of it.

By chance can you share with me on how I can manually have the instance show for the Primary Node?  Not sure if that would work because 'is_primary': true would be missing...

Hmmm... that area of the card is built automatically based on the reboot button being available and there is no reboot button for the Primary node, so it won't get created.  You'd have to completely redo the code for that area to push a button in for all nodes and then tell it to only apply is_primary to the Parent node (in fact you can pass that with all calls and it won't cause an issue).
As, I think I mentioned previously, I've moved away from using this UI now (the one I use now has been posted in the Home Assistant forums).

Oh what do you use now by chance have a direct link?
On Wed, Nov 16, 2022 at 1:50 PM uvjim @.***> wrote:

Hmmm... that area of the card is built automatically based on the reboot
button being available and there is no reboot button for the Primary node,
so it won't get created. You'd have to completely redo the code for that
area to push a button in for all nodes and then tell it to only apply
is_primary to the Parent node (in fact you can pass that with all calls
and it won't cause an issue).
As, I think I mentioned previously, I've moved away from using this UI now
(the one I use now has been posted in the Home Assistant forums).
—
Reply to this email directly, view it on GitHub
https://github.com/uvjim/linksys_velop/issues/322#issuecomment-1317511149,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2CAJZ4DZ52OUNME5TGGV3LWIUUHLANCNFSM6AAAAAASCNZAH4
.
You are receiving this because you authored the thread.Message ID:
@.***>

https://community.home-assistant.io/t/custom-integration-linksys-velop/342874/244?u=uvjim
I don't mind doing updates to these examples though if there are things broken.  It's unlikely it'll get too much work done on them though.
In fact the new UI that I've done also doesn't allow you to reboot the Primary node so you'd have to rely on the service.

On a side note... it really wasn't difficult to add the ability to rename a device so I've added that to the upstream library.  I'll look to add it to the Home Assistant integration in the future.

Thats great, im glad adding that ability was easy.  let me know when you do
add it I will have to figure out a way to apply it my dashboard.  It will
come in handy and save me the time from opening another app.
Also your other integration looks nice and compact.  I dont know how to try
that out or even if it available yet.
On Wed, Nov 16, 2022 at 1:57 PM uvjim @.***> wrote:

On a side note... it really wasn't difficult to add the ability to rename
a device so I've added that to the upstream library. I'll look to add it to
the Home Assistant integration in the future.
—
Reply to this email directly, view it on GitHub
https://github.com/uvjim/linksys_velop/issues/322#issuecomment-1317519066,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2CAJZ66CQ7AEPPMQIWCRB3WIUVCZANCNFSM6AAAAAASCNZAH4
.
You are receiving this because you authored the thread.Message ID:
@.***>

I'll close this off then.  I've updated the README so that card 3 reflects the code in this issue.
The lack of button for the parent node is a design decision.
The feature for renaming is now in the upstream library and will make its way into the integration shortly.


fix: dependency graph generator

Fixes #3900
Powershell script fixed.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.003%) to 84.514%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
86.21%

Totals

Change from base Build<PHONE_NUMBER>:
0.003%

Covered Lines:
19636

Relevant Lines:
22008

💛  - Coveralls

/azp run

/azp run

/azp run

/azp run


Quick Question

When i just get my bot to the play the first time, how can i make it so both the enqueuing message and the now playing doesn't show. So like i can have it so just the now playing message shows and then the enqueuing message shows when you add another song to the queue.
Hopefully this makes sense

Very easy. Check the queue size and go from there.

How would i check the queue size?

Thank You !


Background task support

We should support plugins that execute tasks in the background and stop them later. This is useful in cases like running uperf, where a server needs to be started, then other tasks need to be executed, and then cleaned up later.
This could be achieved, by giving the plugin the option to declare a "cleanup" function in the @plugin.step declaration, which would be passed the output ID and output data from the step itself. The cleanup step has no option to return any data itself.
Standalone operation
When running a plugin as a standalone, the starting step would be run, and the cleanup step would be run immediately afterwards. Alternatively, a command-line flag could be passed to keep the service running for a specified amount of time, or indefinitely. If a SIGINT or SIGTERM is received, the cleanup function should be called and the plugin stopped gracefully.
Engine operation (ATP)
When a plugin is executed in the engine, the cleanup steps are executed in reverse order as they have been started at the end of the current workflow. After executing the step, the SDK needs to wait until it receives a signal. When a SIGINT or SIGTERM is received, the SDK needs to call the cleanup function to let the plugin cleanup any background tasks that are running.

Superseded by https://github.com/arcalot/arcalot-round-table/blob/signals/art-decisions/proposals/2022-11-20-arcaflow-signals.md


Partial update on position field fails despite HTTP 200

Hello! I have a position field called latLong and when trying to do a partial update (via HTTP PUT at via HTTP PUT /document/v1/cluster/sd/docid/1 like so
{
 "fields": {
        "latLong": {
            "assign": "N37.401;W121.996"
        }
    },
    "create": true
}

I get back an HTTP 200. However, issuing a subsequent HTTP GET at the path /document/v1/cluster/sd/docid/1 does not show a latLong field at all. If I do a PUT (via HTTP POST /document/v1/cluster/sd/docid/1) like so:
{
    "fields": {
        "latLong": "N37.401;W121.996"
    }
}

doing a subsequent HTTP GET then shows that the latLong field is correctly inserted.
"latLong": { "x": -121996000, "y": 37401000 },

It looks like an incremental update of latLong will now work, but not when latLong never previoiusly existed previously on the document. This seems like a bug since I get the expected behavior for other field types (i.e. that an incremental update creates it if it doesn't exist)?

I'm attempting to reproduce this locally, but from what I can see things work as expected. Can you verify if what I'm trying to do matches your observations?
Search definition excerpt:
    field my_location type position {
        indexing: attribute
    }

Commands run:
$ cat myupdate.json
{
  "create": true,
  "fields":{
    "my_location":{
      "assign":"N37.401;W121.996"
    }
  }
}

$ curl -s -H "Content-Type: application/json" -T myupdate.json 'http://localhost:19020/document/v1/storage_test/music/number/2/8'
{"id":"id:storage_test:music:n=2:8","pathId":"/document/v1/storage_test/music/number/2/8"}

$ curl -s 'http://localhost:19020/document/v1/storage_test/music/number/2/8' | python -m json.tool
{
    "fields": {
        "my_location": {
            "x": -121996000,
            "y": 37401000
        }
    },
    "id": "id:storage_test:music:n=2:8",
    "pathId": "/document/v1/storage_test/music/number/2/8"
}

Those look to be the same steps. This is on Vespa version 7.132.16 (also tried on 7.128.18). Tried recreating with your steps.
search definition excerpt:
field latLong type position {
    indexing: attribute
}

commands run:
$ cat myupdate.json
{
    "create": true,
    "fields": {
        "latLong": {
            "assign": "N37.401;W121.996"
        }
    }
}

$ curl -s 'http://localhost:5555/document/v1/user/userFull/docid/5' | python -m json.tool
{
    "id": "id:user:userFull::5",
    "pathId": "/document/v1/user/userFull/docid/5"
}

$ curl -s -H "Content-Type: application/json" -T myupdate.json 'http://localhost:5555/document/v1/user/userFull/docid/5'
{"id":"id:user:userFull::5","pathId":"/document/v1/user/userFull/docid/5"

$ curl -s 'http://localhost:5555/document/v1/user/userFull/docid/5' | python -m json.tool
{
    "fields": {
        "isIncognito": false,
        "pictureActive": false
    },
    "id": "id:user:userFull::5",
    "pathId": "/document/v1/user/userFull/docid/5"
}

The only fields that appeared in the final GET were booleans (I've removed a few from the response above), with no latLong present
The two fields highlighted above are:
        field isIncognito type bool {
            indexing: summary | attribute
        }
        field pictureActive type bool {
            indexing: attribute
        }

(the rest that were removed from the response would be similar too)

Update: when I tried to reproduce this earlier it was on top of an existing test application which had mode="store-only" for the document type. Using mode="index" I get the same results as you do (i.e. the update is silently discarded).
That narrows the problem location down to somewhere in the indexing document processing pipeline, and happens before reaching the content node backends.

Turns out this issue also applies to partial updates for existing documents when the previous document version did not originally have the position field set by a Put operation.
A position field in an indexed setup is backed by an internal "shadow" Z-curve attribute that acts as the source of truth of the field's contents. When doing a document Put, the backend receives a document containing the position struct and the zcurve shadow field (added in the indexing document processing pipeline). When doing a partial update, an update is only received for the zcurve field. This includes updates that clear the position field.
There is an inconsistency in how the search core handles position fields when retrieving them (for Gets etc), since it currently checks if the position struct field from the document store is present when deciding whether to include the field or not. If the position struct field is present, the zcurve is decoded and whatever it contains will be returned as the X/Y values regardless of what's in the docstore. The latter is fine since the zcurve attribute is authoritative, but the former causes several issues:

If a position field is created via a partial update to the zcurve attribute there will be no position struct field present. The document should still give correct results for position searches, as these use the zcurve directly, but from the perspective of Get operations it's as if the field is not set
If a position field is cleared, the struct field does not receive a ClearValueUpdate, only the zurve. Since the position field is still present in the docstore, the position field will be rendered with bogus X/Y coordinates decoded from the "no value set" sentinel zcurve attribute value.

Consulting the zcurve attribute instead of the docstore when deciding field presence resolves both these.


visualize_attention.py will only work on GPU

It seems like the script was designed to only run on GPU:
https://github.com/facebookresearch/dino/blob/6f51bb16fb5dfd16ea8fb36786f144dbd3cfe228/visualize_attention.py#L106
Wouldn't it be more flexible if it was instead:
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model.to(device)

Thanks a lot @xhlulu
I have commited your suggestion: https://github.com/facebookresearch/dino/commit/1d06521adfc53c80dece1a74902f718873e9821d

Thank you!


Client disconnect not recognized on linux machine

I am using MapTus to add file uploading to my dotnet backend, which is dockerized and deployed in a linux environment.
Everything is working great as I can pause and start again etc. However, if I disconnect the ethernet adapter on the client side while uploading and enable it once again all requests to continue results in error 409. It has been really frustrating to troubleshoot because if I deploy the exact same docker container on my local windows machine and disconnects it the same way it continues like nothing happened afterwards.
I investigated and found that the error is due to the FileLock not being released. In the windows enviroment the FileLock is released as soon as it detects the client is disconnected. This is not the case for the linux environment as it is never detected that the client is disconnected.
As far as I can tell the ClientDisconnectGuardedPipeReader is responsible for detecting when a client is disconnected in my case.  To resolve the issue I added a CancelationTokenSource with a timeout in the GuardedPipeReaderFactory and pass the token to the reader. This is not an optimal solution, so I would be happy if it could be resolved some other way.

Hi! This is a known issue when running directly on Kestrel without a reverse proxy. The ClientDisconnectGuardedPipeReader handles some cases but is still dependent on somehow knowing that the connection has been cancelled. See earlier issue on the same thing with a work around: https://github.com/tusdotnet/tusdotnet/issues/156#issuecomment-979348495

Thanks for the response! You mention the problem is due to connecting directly to Kestrel. However, I am using a reverse proxy (traefik), but maybe it doesn't have a request timeout set by default. I'll look into it.

Please do and let me know what you find out :) It doesn't necessarily need to be that traefik does not support request timeouts (really idle timeouts). It might be that it does but does not notify the backend service which would end up being the same issue from tusdotnet's point of view.  I think this might be worth fixing once and for all in tusdotnet. The last time this was brought up I considered it an issue with Kestrel but if it's a real issue with other reverse proxies it would be a good idea to add a read timeout in this project too, similar to how you implemented the workaround.

This definitely should get documented better, if not outright fixed.
Right now, the sample from the front page of the repo doesn't actually support one of the key features tus (transparent upload resume on unreliable networks).

@lwahonen While I agree with you that this could be a good improvement to tusdotnet and it's on the todo list, this part is just false:

Right now, the sample from the front page of the repo doesn't actually support one of the key features of tus (transparent upload resume on unreliable networks).

The example works perfectly well as long as you have a RP that follows the http spec.
If you need the feature quickly, feel free to submit a PR that fixes the code or send a PR in this repo for the changes to docs.

I think this is mostly a documentation issue, not a code fix issue. The .net 6.0 sample app doesn't actually do the transparent upload unless you have a reverse proxy in front of it, but the need for that transparent proxy isn't really mentioned anywhere.

@lwahonen That's a very valid point that I overlooked. I have updated the wiki and the readme to include more info on configuring Kestrel and/or reverse proxies. Ideally I would like this automatically solved within tusdotnet but I don't really have the time to invest right now. Please let me know if the docs are now better (or possibly worse) :)

Looks much better in my opinion. Just trying to make sure nobody gets bitten by this one, as it’s easy to avoid if you know how :)

It's very much appreciated :)

A new configuration setting to handle timeouts now exists in tusdotnet 2.8. See ClientReadTimeout on this wiki page


Added Jellyfin logo, readme entry and reference

This should complete #430

Hey! This looks really good. Could you please make a few tweaks and I'll merge the PR.

Remove the preserveAspectRatio="xMidYMid meet"  it isn't needed.
Remove the xmlns:v="https://vecta.io/nano" it isn't needed.
Add a white background.
Add an Aria Label.

So, the start of the file should look like this (exact formatting):
<svg xmlns="http://www.w3.org/2000/svg"
aria-label="Jellyfin" role="img"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512 512"><rect
width="512" height="512"
rx="15%"
fill="#fff"/>

Done :)


WEB9JA-44—Ensure application does not start accepting request until d…

…b is connected

Awesome. Thanks for fixing!


open a normal UTF-8 file failed !

I think this is a bug

It should be a file spesific problem.
could you go to debug>show developer tools and copy the console logs here?
Also, Could you attach a sample file that failed to open in brackets?

I can open it with notepad++ , and Its encoding is indeed utf8 , but when I open with brackets it warning this message

you can see this

Brackets only support utf8 encoding. We can only investigate something if we have a sample file that causes the problem. You could strip out the sensitive parts of the file and give a minimal file with the problem in brackets and attach it here for us to take a look.

Maybe related to that one weird issue from while back where near empty json file didn't open without BOM. On mobile right now, Ill dig out the issue soon

I found my file there is a garbled which can not be used to open brackets, maybe brackets will be better as soon as possible to support GBK

I am using Brackets 1.5 for Windows 10 and getting this error for files that have only 1 character (spaces don't count) followed by one or more new lines.  It makes no difference whether the character is preceded by one or more newlines or not.  If there is more than one character then its working ok.  If there only one character and not a following newline then its working ok.
I've tried this with the characters 'a' and 'b', I have not tested other characters.

Same issue here. With Bracket's own Getting Started index.html file.
This happens on a fresh installation of Manjaro Minimal Net Edition (16.08) with the Linux kernel updated from 4.4 to 4.8.5. And then a medium sized installation of KDE (plasma group package; not the mammoth plasma-meta meta package).
This Google Chrome package was then installed (with pacman) from here : https://aur.archlinux.org/packages/google-chrome/
This Brackets package was then installed (with pacman) from here : https://aur.archlinux.org/packages/brackets/
As usual with these issues, other editors open the file without a hitch and recognise it as UTF-8 showing it in their status bar.
I also attempted to open the index.html file as a separate file (not as part of the default Getting Started folder open at first startup). But I got the same result.
The Getting Started main.css file opens OK.
I already removed the Brackets and Chrome packages, then reinstalled them. With the same result.
Here are some screenshots of the issue.
With the issue in the English language version (root folder):
![brackets-index html-error_20161109_193330]
(https://cloud.githubusercontent.com/assets/22870070/20153057/485bafa2-a6c1-11e6-856b-3f91bdbe7971.png)
With the issue in the Dutch language folder (nl folder). I also tried other language folders with the same issue as a result.:

The exact same Getting Started folder (English, root folder) opens without any problems in Atom and index.html is marked as UTF-8 in the status bar :

The exact same Getting Started folder (English, root folder) opens without any problems in Sublime Text and index.html is marked as UTF-8 in the status bar :

OK, I fixed the issue. But it happened accidentally, as a positive side effect of another issue.
When I installed KDE, a non-existent locale was created : "en_NL.UTF-8".
This caused an irritating message after using the man command : "man: can't set the locale; make sure $LC_* and $LANG are correct".
I found this fix : https://github.com/PanderMusubi/locale-en-nl
After installing this fix for the locale issue, the issue with Brackets was also fixed.
I know this for a fact because I fired up Brackets prior to installing the locale fix, and was still shown the error popup. And I fired up Brackets right after I had installed the locale fix.
Then I updated Brackets from v1.7 to v1.8 and it's still OK.
en_NL.UTF-8 error:

en_NL.UTF-8 error fixed:

Brackets fixed (after installing the locale fix):


Do not review and do not close it, just used to trigger the CI

To be clear we do not agree with this approach. Happy to discuss what you would like to achieve in the Gitter channel.


Rerunning tests does not reflect new code

This was posted in The dart lang issues repo but they said to post it here. This is on 2 different flutter/dart versions.
Dart VM version: 2.8.0-dev.0.0.flutter-32ce9c7872 (Sat Jan 11 20:39:02 2020 +0000) on "macos_x64"
Flutter 1.12.13+hotfix.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f139b11009 (5 weeks ago) • 2020-03-30 13:57:30 -0700
Engine • revision af51afceb8
Tools • Dart 2.7.2
Often times, when I'm running Dart only tests (tests package, not flutter_test) in a Flutter application, I have to run a flutter clean or at least an rm -rf build in order for new changes in my code to be reflected in a new test.
It seems like code from the test is what fails to update, but code from the library being tested updates correctly

This has been this way for years, I just worked around it, but now I can't get it to work reliably

/cc @jensjoha Jens, can it be a bug in the incremental compiler failing to pickup changes for some reason? If so could we add some checks to detect this somehow (e.g. checks or verbose logging hidden under environment variable)

@ThinkDigitalSoftware would it be possible for you to provide an example?

I could, but it would be arbitrary. You want video or code?

I don't think it's the incremental compiler. It happened again yesterday and this time it was before the first run for that file. It gave me a runtime error saying a method was missing parameters, as if it had taken a snapshot of the file while I was creating it  and ran that instance. The parameters were typed in by the time the tests ran the very first time. I believe I killed all the dart processes and ran it again and it worked.

The video would be good, the code would be even better.
Incremental compiler saves some state on the disk - so its state can carry over even if you kill all Dart processes.
One other hypothesis I have is that there is some sort of race between application startup and flutter tools pushing new Kernel binaries to the device.

Alright, I'll try to get around to that asap

Sorry I've been lagging with providing examples. They seem to show up on a private project in which I'm not able to share the code.

When running from the IDE, it often doesn't reflect new code. When running the same command from the terminal, I don't have the issue. And then it's gone from the IDE after running it from the terminal. The command I'm using is
flutter --no-color test --machine test/path_to_test_file.dart

Am I understanding you right, that this issue only happens through IntelliJ?
@mraleph who could know something about that?

Yes, only on IntelliJ. I've been testing all day back and forth and got the same results every time. Old results on IntelliJ and always fresh results on the terminal and VS code

@devoncarew Devon could you help us to loop relevant people in? Seems like IntelliJ has some sort of problem? (maybe there is a race between saving file and starting the test?)

Even after the test would run and rerun, it would still have stale code. Also, when coding in vs code and switching to IntelliJ, IntelliJ would still be behind

@mraleph it seems like you're right. There's no race though, it's just how IntelliJ works. It's because of the delay in saving that IntelliJ has, vs VS Code's autosave. Someone found the issue here and I was able to confirm.

Thanks @ThinkDigitalSoftware and @andrasferenczi for the investigation! I'm going to close this issue in favor of https://github.com/flutter/flutter/issues/34382 (since is sounds like they're duplicates), and will likely move the other issuer into the flutter/flutter-intellij repo.

(moved to https://github.com/flutter/flutter-intellij/issues/4548)

Thank you as well


build(frontend): update agent-js patch v2.1.2

Motivation
There is a potential issue that was reverted in agent-js v2.1.2.
Changes

Update agent-js latest
Update released ic-js (which use latest agent-js)
Add two scripts to repeat updates in package.json

Shall I maybe include the scripts in some CI?

We can potentially add a manually triggered CI but, I would not automate it because there is no clear pattern one when and how. Sometimes we need this, sometimes that etc. it's handy to have the all upgrade in scripts that way we can either update all or have a reference script.


Remove unused reference from XR SDK Config Checker

Overview
Looks like I previously left a reference to the Unity.XR.ARSubsystems package in the XR SDK configuration checker, but nothing in the assembly actually references this. Removing.

/azp run


Can't initialise new AppPreferences(getContext())

Hi everyone, here asking for some help!
It crashed in the TrayContract.java
I get a nullpointerexpection, in this method
@NonNull
private static String getAuthority(@NonNull final Context context) {
return TextUtils.isEmpty(sTestAuthority) ?
context.getString(R.string.tray__authority) :
sTestAuthority;
}
I believe it can't get the context.getString(R.string.tray__authority) in here.

I set the the tray__authority and I cleaned the project.
I set one different value for every flavour, based on the the ApplicationId.
if I do context.getString(R.string.tray__authority) I get the right value.
It's the same context has the one I gave to your AppPreferences.

I don't understand the issue, can somebody help?

When you get a NullPointer that it seems that your context you put in is
null. Have you checked if that is really non null?
On Mar 10, 2017 7:26 PM, "Diogo Loureiro"<EMAIL_ADDRESS>wrote:

Hi everyone, here asking for some help!
It crashed in the TrayContract.java
I get a nullpointerexpection, in this method
@NonNull https://github.com/NonNull
private static String getAuthority(@NonNull https://github.com/NonNull
final Context context) {
return TextUtils.isEmpty(sTestAuthority) ?
context.getString(R.string.tray__authority) :
sTestAuthority;
}
I believe it can't get the context.getString(R.string.tray__authority) in
here.

I set the the tray__authority and I cleaned the project.
I set one different value for every flavour, based on the the
ApplicationId.
if I do context.getString(R.string.tray__authority) I get the right
value.
It's the same context has the one I gave to your AppPreferences.

I don't understand the issue, can somebody help?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/grandcentrix/tray/issues/90, or mute the thread
https://github.com/notifications/unsubscribe-auth/AJwYe0srS4b9-BfNcJRn4-pPGQjZekLtks5rkZW-gaJpZM4MZtYa
.

I'ts not null :(

Can you post some code how do you use initialize tray and how your
build.gradle looks...
On Mar 10, 2017 9:19 PM, "Diogo Loureiro"<EMAIL_ADDRESS>wrote:

I'ts not null :(
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/grandcentrix/tray/issues/90#issuecomment-285774270,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJwYe-xMEI2mgQk-Ht6iS6Jcu2oDsPLqks5rkbBbgaJpZM4MZtYa
.

I detected the problem!
ContentProviderStorage.java
public ContentProviderStorage(@NonNull final Context context, @NonNull final String module,
@NonNull final Type type) {
super(module, type);
mContext = context.getApplicationContext();
mTrayUri = new TrayUri(mContext);
mProviderHelper = new TrayProviderHelper(mContext);
}
mContext is null! why aren't you using the context I gave you instead?
My ApplicationContext() at this point is, in fact, null!

Maybe we should check if the Application Context is available and otherwise use the context itself.
This can happen in Tests.

I can't be happen that the app context is null but an activity context (for
example) is not null.
Anyway. On which platform are you seeing this issue? As far as I can
remember that I saw that in specific platforms getApplicationContext can
return null... But don't remember exactly...
On Mar 13, 2017 4:08 PM, "jannisveerkamp"<EMAIL_ADDRESS>wrote:

Maybe we should check if the Application Context is available and
otherwise use the context itself.
This can happen in Tests.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/grandcentrix/tray/issues/90#issuecomment-286135904,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJwYe5g3kOTqGp_OOnotsTALmuNFhV5rks5rlVvigaJpZM4MZtYa
.

The context I used is the getBaseContext() from a class that extends android.app.Application
Does this answer your question?

basically you should not assume you can call getApplicationContext() from any context.
If I give you a context on attachBaseContext() from an android.app.Application, the this.getApplicationContext() will return null!
I think what @jannisveerkamp suggested is a nice solution for this.

Probably yes, this answer my question 😀
I really didn't know what getBaseContext returns. But as far as I know this
can be the wrong (or null) context...
So probably you have to change the context which you put in into the
AppPreferences...
Why not just using this, when you init Tray in your Application?
On Mar 13, 2017 7:20 PM, "Diogo Loureiro"<EMAIL_ADDRESS>wrote:

basically you should not assume you can call getApplicationContext() from
any context.
If I give you a context on attachBaseContext() from an
android.app.Application, the this.getApplicationContext() will return null!
I think what @jannisveerkamp https://github.com/jannisveerkamp
suggested is a nice solution for this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/grandcentrix/tray/issues/90#issuecomment-286197572,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJwYe6JhYSj4Ij1oqjJEky_O4ZSOSQlkks5rlYkCgaJpZM4MZtYa
.

I want to use tray to load some remote "app settings" that need to be loaded on the very launch (like theme and stuff like that).
My idea is to have an alarmmanager that will start a service on background, to update this remote settings, save them using tray, that will load once the app is opened. As you know, without tray or a content provider, the app will not load the latest shared preferences (that was what I was using previously).
The problem is, at this very start, this is the only context I have.
I'm afraid that if I delay this process because of the context, some of this settings will not be applied at the very start. But I'll try to improvise a solution 😄
Anyway, I think it would be cool if you could do this improvement/fix in a next release 😄
Thank you for your help!

I've manage to solve the issue on my code already by changing the given context 😃
Please consider this modification in the future. Thank you for your time!


JSON key with a dot ('.')

I think this issue is actually in the jsonpath library, so I opened an issue there, but I'm hoping someone here may know the answer. That issue is here: https://github.com/kubernetes/client-go/issues/1000
Imagine the following JSON:
{
'one': 2,
'example.three': 'four',
}
A query like ".one" or "$.one" works fine. However, I can't find a way to query for the second key. As I understand, "$.['example.three']" should do it, but this fails because it is interpreted as an array.
Is there any way I can escape the dot?

Faced same issue, just escape dot with '':
    example: '{.example\.three}'```

Since the above solution works, I will close this issue.


copy.deepcopy breaks comparability of REQUIRED, OPTIONAL, and MISSING.

Because REQUIRED, OPTIONAL, and MISSING are intended to be immutable singletons they should still be comparable after a copy.deepcopy.
Setup
from copy import deepcopy
from dataclass_builder import REQUIRED, OPTIONAL, MISSING

Result
>>>REQUIRED is REQUIRED
True
>>>REQUIRED is deepcopy(REQUIRED)
False

Expected Result
>>>REQUIRED is REQUIRED
True
>>>REQUIRED is deepcopy(REQUIRED)
True

copy.copy also breaks comparability as well.

This was based on the MISSING value from CPython's dataclass module so there might be a similar bug in that module as well.

Closed by #12


Get ready for local E2E

What does this PR do?
Get ready for local E2E by adding the dd_environment fixture
Cleanup docker usage to use new utils provided by checks_base
Fix the tox environment, the 4.1.7 tests were broken (not being run) due to a typo in the tox file.
Motivation
Cleanup and test :allthethings: Also get ready for local E2E
Review checklist

[ ] PR has a meaningful title or PR has the no-changelog label attached
[ ] Feature or bugfix has tests
[ ] Git history is clean
[ ] If PR impacts documentation, docs team has been notified or an issue has been opened on the documentation repo
[ ] If PR adds a configuration option, it has been added to the configuration file.

Additional Notes
Anything else we should know when reviewing?

@nmuesch I love this. e2e everywhere ✊


cleos push action how transfer parameters symbol_type?

have   a interface in abi file:
void buy(symbol_typesymbol);
cleos push action test buy '["4,EOS"]'
that have error!and how put this parameter in put action?

Try defining the type as symbol_name rather than symbol_type.

@jgiszczak and how put data in cleos push action ? thank you

i use that solve this problem:
void buy(string symbol)
{
    uint64_t symboltmp = ::eosio::string_to_symbol(4,symbol.c_str());
}


App not refreshed when pressing push alarm

Related to #300

Related to #300

Thanks for reporting. 🙏
This issue is fixed and will be included in the next release.

Thanks for reporting. 🙏
This issue is fixed and will be included in the next release.


[Illustration] Get Involved > Donate

as discussed on call, this could work, but curious if there is an creative way to convey what the $$ donated allows us to do, support, etc.

@Katbaloo What we are thinking: the content next to the illustration will help convey the message about what the donated amount allows MapSwipe to do.

sounds good. of the options in the Figma we prefer the hand/heart version


Add CSV output option for build artifacts

Notes / refs:

so you would try match on project prefix, try match on Manifest dev / clones (if any) prefixes, match on the resolution order of depot prefixes, do nothing as fallback

https://buildkite.com/docs/pipelines/links-and-images-in-log-output


[BUG] Tool bar, menu bar and scroll bar are not disabled in emacs 27 (macOS)

What did you expect to happen?
Tool bar, menu bar and scroll bar are disabled.
What actually happened?
Tool bar, menu bar and scroll bar are not disabled.
Additional details:
According to the documentation of variable tool-bar-mode,
Setting this variable directly does not take effect;
either customize it (see the info node (emacs)Easy Customization)
or call the function tool-bar-mode.

So I changed
(setq tool-bar-mode nil)

to
(tool-bar-mode 0)

However, it still doesn't work until I move the code from early-init.el to init.el. (Using the setq method in init.el doesn't work.)
Similarly, I removed
(setq menu-bar-mode nil)

in early-init.el
and add
(menu-bar-mode 0)

in init.el.
Finally, I moved
 (when (fboundp 'set-scroll-bar-mode)
   (set-scroll-bar-mode nil))

from early-init.el to init.el to remove the scroll bar.
System information:

((emacs
  (version . "27.0.60")
  (features . "RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS JSON PDUMPER LCMS2 GMP")
  (build . "Jan 12, 2020")
  (buildopts "--disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs-plus/HEAD-f0ebd91/share/info/emacs --prefix=/usr/local/Cellar/emacs-plus/HEAD-f0ebd91 --with-xml2 --without-dbus --with-gnutls --with-imagemagick --with-json --with-modules --with-rsvg --with-ns --disable-ns-self-contained")
  (windowsys . batch)
  (daemonp . server-running))
 (doom
  (version . "2.0.9")
  (build . "HEAD -> develop 18301b0b9 2020-01-10 05:59:54 -0500")
  (dir . "~/.config/doom/"))
 (system
  (type . darwin)
  (config . "x86_64-apple-darwin19.2.0")
  (shell . "/usr/local/bin/zsh")
  (uname . "Darwin 19.2.0 Darwin Kernel Version 19.2.0: Sat Nov  9 03:47:04 PST 2019; root:xnu-6153.61.1~20/RELEASE_X86_64 x86_64")
  (path "/usr/local/Cellar/zplug/2.4.2/bin" "/usr/local/opt/zplug/bin" "/usr/local/sbin" "~/bin" "~/sbin" "~/.local/bin" "/usr/local/bin" "/usr/bin" "/bin" "/usr/sbin" "/sbin" "/Library/TeX/texbin" "/opt/X11/bin" "/Applications/Wireshark.app/Contents/MacOS" "/usr/local/Cellar/emacs-plus/HEAD-f0ebd91/libexec/emacs/27.0.60/x86_64-apple-darwin19.2.0"))
 (config
  (envfile . envvar-file)
  (elc-files . 2)
  (modules :completion company ivy :ui doom-dashboard hl-todo modeline (popup +all +defaults) vc-gutter vi-tilde-fringe window-select workspaces :editor (evil +everywhere) file-templates fold multiple-cursors rotate-text snippets word-wrap :emacs dired electric ibuffer vc :term shell :checkers syntax :tools (eval +overlay) (lookup +docsets) lsp macos magit pdf :lang (agda +local) (cc +lsp) data emacs-lisp (latex +latexmk) markdown (org +dragndrop +present) (python +conda +cython +lsp) sh :config (default +bindings +smartparens))
  (packages "(ccls :disable t)" doom-themes solarized-theme "(conda :recipe (:host github :repo \"howsiwei/conda.el\"))")
  (elpa "n/a")))

Is it possible that you installed a version of Emacs 27 before it early-init.el was implemented? These lines are disabled in Emacs 27 because they're redundant with the work done in early-init.el.

Is it possible that you installed a version of Emacs 27 before it early-init.el was implemented?

I don't think so. I installed Emasc 27 with
brew install emacs-plus --with-emacs-27-branch --HEAD --with-jansson --with-modern-icon

and the resulting Emacs is built using commit f0ebd919c16c71d1010f2625425932e46b58f8b4, which is the latest commit on emacs-27 branch with the latest commit committed 13 hours ago.
Also note that the documentation of early init file says that
   We do not recommend that you move into ‘early-init.el’ customizations
that can be left in the normal init files.  That is because the early
init file is read before the GUI is initialized, so customizations
related to GUI features will not work reliably in ‘early-init.el’.  By
contrast, the normal init files are read after the GUI is initialized.
If you must have customizations in the early init file that rely on GUI
features, make them run off hooks provided by the Emacs startup, such as
‘window-setup-hook’ or ‘tty-setup-hook’.  *Note Hooks::.

I understand that. The purpose of those settings were to set them so early enough that Emacs won't initialize them when they eventually load. I don't have a mac to test on, but these lines correctly disable these GUI elements in 28 on NixOS.
I'll investigate on macOS when I get a chance.

Just in case anyone else finds this like I did: Chemacs 2 solves the issue as it has support for early_init.el. Works very nicely with Doom.


Live Demo on fusejs.io is not working

I have used the demo before while considering using fuse.js for a project, but now it is not working (the page seems to hang).  I have tried on multiple machines, with multiple browsers.

same here.
Also using it in a project seems to hang the page, so I don't think it's a problem with the demo... Maybe with the latest release?

Thanks, @rasteiner.  I was wondering that but I'm not using it in any projects yet so I wasn't sure.

Just checked, downgrading to 6.0.2 solved my issue :)
So it definitely seems to be a regression in 6.0.3

Thanks for flagging. Just updated.

Thanks for the quick fix!


book: update the resources chapter

see individual commit messages for details.
what's still left to do is adjust the very last section about #[task_local] and #[lock_free] but I plan to do that as a follow up. I didn't find an in-tree example for those two attributes (are they field attributes? where do they fit in the syntax?); a quick scan of the rtic-syntax crate seems to indicate that task_local has been removed (?) and that lock_free still exists.

I believe task_local attribute has been removed in favor of using the locals-resource instead.

@AfoHT CI is green again

while I was at it I updated the last section of this chapter (see last commit)


Fail on invalid VSTS_WORK environment variables

When invalid VSTS_WORK variables are specified, return non-zero exit code and alert.

@stepro @dakale

Can you describe the scenario where this failure occurs?  Or was there something about the $(exec echo $VSTS_WORK) call that didn't work?

Not using an absolute path causes this to fail in some scenarios.


NavSatFix message: Longitude is in the wrong format

The longitude value in a NavSatFix message shouldn't be larger than 180. Source: http://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/NavSatFix.html
Currently, the driver reports values from 0 to 360 (instead of -180 to 180)

Hi @RGoulartns
Good catch!
Thank you for your report, a fix is on its way.

Hi @RGoulartns
Good catch!
Thank you for your report, a fix is on its way.


feat(controller): fine grained permissions for normal users through etcd

Changing permissions in etcd affects all normal users.
This allows cluster owners to control what permissions their normal users have. For example, they could prevent normal users from creating apps or give full app access to every user (for small development clusters).
This is the first step towards resolving #4150
Fixes #4052

The integration tests are failing due to some permissions stuff cleaned up by #4256

Needs rebasing against master.

@mboersma Rebased!

Rebased!

Rebased! If somebody has some time in the next few weeks, I would really appreciate some reviews on this. :smiley:

LGTM

Accidentally closed the PR.

@Joshua-Anderson Afraid this needs a rebase now!

@carmstrong Rebased!

Rebased!

Rebased!

Is there still interest in this or is this something you want to hold off on until V2?

@Joshua-Anderson yes, I think this would be a valuable addition, and the current controller implementation will persist for the foreseeable future through Deis v2. We can still add features to Deis v1.12, but after that the intent is for all energy to go into v2.
I apologize for neglecting this one. We will review this tomorrow. Thanks again!

@mboersma In that case, there seems to be a test failure around app transferring, so I'll go and fix it up in the next few days.

I'll look into porting this to V2, since this no longer looks like a V1 target.


[feature] Use .env file preferably

I think separation of exposed shell variables is better.
ps: I could work on this if you like but later in the following days.

fixed!


In Ember 1.10, first example returns empty arrays

I just downloaded and tried Enumerology with Ember 1.10, and the first example with characterNames and castNames returns an empty array that prints to console like this:
[_super: function, nextObject: function, firstObject: undefined, lastObject: undefined, contains: function…]
It works when I removed the .sort(). so perhaps a few things are broken.
It would help to know how to run the spec tests written in Coffeescript.  I'm looking into it..

Can you paste in the code that you're using?  It looks like you're not calling finalize() on it.

(I really would like to get this working -- this is the library I've been wanted for Ember)
I ran the tests in the spec folder with the latest Ember production release.  173 specs ran with 16 failures.
I analyzed the failures and here's what I found:
All tests outside of the acceptance_spec.js file worked. (I converted all the .coffeescript files to .js for debugging) The tests that failed in acceptance_spec.js failed due to a problem with the 'filter' transform.  Many of the tests are using 'compact()' which uses 'filter', so I'd recommend changing the tests so that compact isn't need in multiple acceptance tests.  For example, create a charactersWithNull to test compact by itself and remove the null from the characters array.
Here's a pass-through filter that make make a good addition:
itCalculatesCorrectly('filter2', (function() {
return Enumerology.create('characters').filter(function(i) { return true; }).length().finalize();
}), 3);
As far as my analysis goes, when stepping through the pipeline processing, I found that:
Em.defineProperty(pipeline, pipeline.get('lastKey'), computed)
doesn't set the result_N and it is undefined.  I haven't found the precise problem, but my guess is that something in Ember's handling of computed properties changed.
Any help to resolve this would be very much appreciated!


Feature/adding campinhodigital

add college campinhodigital

@wesleyosantos91 First stage of verification passed, official domain is campinhodigital.org as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

Name: Campinho Digital
Description:  Companies invest in digital training scholarships for people with social and economic barriers.
Official Website: https://www.campinhodigital.org/
Email for students example<EMAIL_ADDRESS>Email for teachers and administration example<EMAIL_ADDRESS>

@wesleyosantos91 I am sorry, this domain seems to represent an umbrella institution, not a specific single university or a college. Please apply for free educational license with an official document which proves that you are a student. You can do it using "OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students.
I have to close the request without merging.
Thank you for your understanding!


bug: when debug log level enabled octokit error are not printed as error in logs

Not reproduced with latest changes in main branch. Closing for now.


Move hideLoadingUI() call to Engine & WebGPEngine from AbstractEngine

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/15214/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15214/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15214/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/15214/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/15214/merge
https://gui.babylonjs.com/?snapshot=refs/pull/15214/merge
https://nme.babylonjs.com/?snapshot=refs/pull/15214/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/15214/merge#BCU1XR#0

WebGL2 visualization test reporter:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15214/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/15214/merge/testResults/webgpuplaywright/index.html


return empty book if book.json not found

Fixes https://github.com/pietroppeter/nimibook/issues/21
The reason I chose to explicitly return Book() is if we in the future make Book a ref object for some reason it won't give is nil.

Forgot that you wanted a warning as well if no book.json was found


Stray socket connections when sendning Emails

I'm using the api client to send out scheduled emails through Gmail and that all works as expected. However, since the code runs through the Laravel scheduler, the code is kept in memory at all times and every sent email causes a connection to stay open.
After a while, the server reaches the "Maximum open files" limit and further processing fails because of it. At first I though that it might be an issue with my code and added unset explicitly to any references to gmail objects but the issue still remains.
To track it down, i used the following command to list out the open file count and the process IDs.
lsof | awk '{print $2}' | sort | uniq -c | sort -n

This returns a list that looks like the one below:

Next, with the PID of the troubling process, which is the same as the process processing the Laravel queue I'm running the following command to see the open files of it. (590981 is the current process ID)
ls -l /proc/590981/fd

And that shows that all of the open files are actually socket connections.

To explore further what those connections are, I used the command below to get a list of open connections for that process:
lsof -i -a -p 590981

As visible on the image, all those open socket connections are made to the 1e100.net domain that is owned by Google, and from my understanding, it is used for tracking the requests.
I did not find any direct reference to it in the code, nor a way how I can properly close this connection after the email is sent.
Environment details

OS: Ubuntu 20.04
PHP version: 8.1
Package name and version: google/apiclient - v2.12.1

Code example
$client = new Client();
$client->setAuthConfig(base_path('/') . config('services.google.service_file'));
$client->addScope([
  Gmail::GMAIL_SEND,
  Gmail::GMAIL_READONLY,
  Gmail::GMAIL_MODIFY
]);
$client->setRedirectUri(url('/api/emails/callback'));
$client->setAccessType('offline');
$client->setPrompt("consent");
$client->setIncludeGrantedScopes(true);

$service = new Gmail($client);

//$this->entry is obtained from the created job

$message = (new Swift_Message($this->getMessageSubject($this->entry['sending_message'], $this->entry['type'])))
  ->setFrom($this->entry['email']['email'], $this->entry['email']['name'])
  ->setTo($this->entry['sending_message']['email'])
  ->setContentType('text/html')
  ->setCharset('utf-8')
  ->setBody($this->getMessageBody($this->entry['sending_message'], $this->entry['type']));

//other code

$msg_base64 = base64_encode($message->toString());
unset($message);

$message = new Message();
$message->setRaw($msg_base64);
if ($this->entry['sending_message']['google_thread_id'] != null) {
  $message->setThreadId($this->entry['sending_message']['google_thread_id']);
}
$message = $service->users_messages->send('me', $message);

//other code to save the sent state

unset($message);
unset($service);
unset($client);

I found several other instances where people had the similar issue with the 1e100.net domain, here, here and here but none of them are for PHP nor Gmail.
I'm basically clueless as to what might open these connections and how to have them properly closed. Any ideas are more than welcome.
Thanks!

Hello @bkolicoski
There is a call to file_get_contents in the API client to read your credentials. You could try passing in a simple cache object, setting the credentials manually, or passing in a stream context to see if this is where the issue is happening - I am not sure if this could be causing your issue or not.

OK @bshaffer , I've added the stream_context as suggested but it seems that it has no difference whatsoever on the number of created connections.
I thought that the default logger might be the culprit and I replaced it with the built-in logger in Laravel but that did not make a difference as well.
I'm convinced that the line causing the issue is:
$message = $service->users_messages->send('me', $message);

but I have no way of proving that and I've been exploring the source code for hours to try and understand where and how it might happen. I have other background jobs that read and check emails and they do not have this issue. Only the job that sends the emails is showing this issue.
For the time being, I have a workaround to reset the worker every few hours in order to prevent it from ever reaching the limit but I would rather have the connections closed without reloading the worker.

Without the ability to reproduce the issue, and without being able to find evidence in the code that this is indeed an error on our end, I am going to close this out.


Some Authors are misplaced in Help -> About

4.0<PHONE_NUMBER>9eec42d097b426fc7aa4359e40fae8

Create a new Vulkan project and switch to Script in the editor
Open Help -> About
Scroll down to see some Authors misplaced

Duplicate of #36164.


feat(mailchannels): show errors

Gives insight into why the api request failed.
cc @GregBrimble

Thanks for your contribution. Unfortunately, I don't think exposing these errors in the response is the best course of action as these could leak information about the configuration that might be sensitive, so I'm going to close out this PR.


Add filtering based on Rule, Tag, and Result Kind

For triaging, especially a large sarif, it is helpful to be able to filter based on attributes of the results.

Filtering based on Rule is supported via the text field. We do not have a dedicated dropdown for Rule.
Filtering for Tag is not currently supported. It can be added by way of the text field. If we add a dedicated dropdown, there might be a load-time perf consideration was we would need to gather all possible tags first.
Filtering for Kind is not currently supported. We can potentially add a dropdown for it.
Filtering based on Level is supported. The dropdown is visible unless configured otherwise.

Filtering based on Rule is supported via the text field. We do not have a dedicated dropdown for Rule.

Is it documented somewhere what "keyword" means in the context of the search bar? Could I search for two rules? is it regex? What fields is it searching against?

Filtering for Tag is not currently supported. It can be added by way of the text field. If we add a dedicated dropdown, there might be a load-time perf consideration was we would need to gather all possible tags first.

Filtering for Kind is not currently supported. We can potentially add a dropdown for it.

That would be great.


Mazda: Add CX-5 2023 to supported cars

Confirmed working by a couple of users.

Do you have a dongle id for a user? Are their fingerprints already in openpilot?

@sshane
e36424ef0cb55df0

Confirmed with VIN that it's a 2023. It was missing a camera FW version.

Ah,  make sense sense OP falls  back to fuzzy matching and new users may not know what that means. Thanks @adeebshihadeh


#7743 introduced weird glibc dep

The current GCE run started at 1:55pm and is still spinning unable to launch a cluster. GKE-CI has been failing since 1:40pm.

@zmerlynn is looking into the root cause. Based on the GKE-CI failure, the candidate changes are:
security context initial implementation - squash (Commit 982bf19c205045259cf778ce4fe99df849daa20d)
update swagger (Commit 5e5b904e8c462b2ccf0660a6f0fa7c4d45cd4252)
Inject dependencies to rkt (Commit 5d0e5d7d6177bf7883896640abea8531b3f4400e)
Add rkt runtime to Kubelet init (Commit 22297d316a5964c9b154c0a6f172507802a732ad)

The root cause was the injection of a GLIBC_2.14 dep in kubelet:
zml@zml:~/kubernetes$ ldd -v _output/release-stage/server/linux-amd64/kubernetes/server/bin/kubelet
        linux-vdso.so.1 =>  (0x00007ffc6538a000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd23420e000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd233e49000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd234454000)

        Version information:
        _output/release-stage/server/linux-amd64/kubernetes/server/bin/kubelet:
                libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0
                libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
                libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
        /lib/x86_64-linux-gnu/libpthread.so.0:
                ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2
                ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
                ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
                libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6
                libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6
                libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6
                libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
        /lib/x86_64-linux-gnu/libc.so.6:
                ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
                ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

Our containervm image only ships with 2.13:
Package: libc6
Source: eglibc
Version: 2.13-38+deb7u6

So kubelet didn't come up at all on GCE-Debian.

#7792 added the dep, and I reverted it in #7809

What's the process for updating the containervm image?  Is there one?

There is. I'm actually in the middle of updating it right now, but at the tail. Updating libc, though... hmm. I can look into it.

Trying to find where #7343 included an updated libc.

And I may be wrong. My build is confused.

Dammit. There's something weird going on. I may have gotten them backwards, sorry.

Yeah, mea culpa. The culprit was #7743. Reassigning this to @vmarmol to figure out next steps.

My hacky way to fix such issue for my rkt demo is building kublet statically. :-(

building kubelet statically has one benefit since we are working toward running kubelet as a docker containe, statically linking release kubelet image not based on large base image, such as ubuntu, like what we did in #7797

@dchen1107 I'm super-curious about what you had to do to get the kubelet built statically.  I want to have a scratch image w/ just kubelet and nsenter eventually.

I don't think building the kubelet statically is a hack, unless I'm missing something.

cAdvisor has issues when built statically after Go 1.4 since we'd require running gcc which we don't want to do.
Closing in favor of #7850.

@pmorie, Yes I built kubelet statically, but sacrificed cAdvisor functionalities. Since my goal is demonstrating k8s + rkt integration on GCE, and I didn't have time to look into cAdvisor issues then. This is one cons we have to pay for integrate cAdvisor library into Kubelet, but there are a lot of pros too.
@vmarmol What are the exact reasons we don't want to running gcc?

@vmarmol

cAdvisor has issues when built statically after Go 1.4 since we'd require running gcc which we don't want to do.

What requires gcc?

@pmorie cAdvisor uses C for some queries to the kernel. We may be able to move them to raw syscalls with some work. I'd just want to make sure we need to :)
@dchen1107 because we won't be able to cross-compile. To cross-compile we'd need to specify a compiler in the other architectures and OSes we target.


Add complexity report to HTML output

Expected Behavior
The complexity report is only printed in console output. To get a count of code smells and McCabe Complexity in order to keep a tab on them, we have to push the console output to a file and parse that. This would break if the format of console reporter changes.
Current Behavior
Currently, the HTML output gives a summary of project metrics, but not the complexity report. It would be good to have the complexity report as well as part of some reporter.
Context
We are trying to get more metrics out of detekt in one place. This could enable people to get these values and represent them graphically over time to keep a tab on the code quality of their project.
P.S. - I have gone through the code and it is a small change. If you think this feature request is good to have, I can raise a PR for the same. Please let me know.

We would very much appreciate this. Please go ahead and submit a PR. Thanks for your time and contribution. If you have any questions please fell free to ask.

Thank you for the response. I will raise the PR in some time.

Closed by 85c93ea


Make loader platform specific

Fixes an issue when running with --platform all makes assets overwrite each other (Android overwrites iOS and then, iOS keeps returning Android back icon for instance).

This is not yet ready for merging as I am working on unit tests for that file & adding few more comments here and there.
Feedback appreciated.

I think the simplest fix is to change path.join('assets', url, name); to path.join('assets', query.bundle ? '' : query.platform, url, name); and path.join('/assets', url) to path.join('assets', query.bundle ? '' : query.platform, url)) (store the later in a variable and reuse)
This change changes the meaning of the url variable which was supposed to be the relative URL to the destination. It will likely break bundling assets for iOS. Not sure what else it will break since it was the original assumption while writing the code.
Can we do the change I mentioned above instead? I'll add some comments to the code so it's easier to understand.

This change changes the meaning of the url variable which was supposed to be the relative URL to the destination. It will likely break bundling assets for iOS. Not sure what else it will break since it was the original assumption while writing the code.

Not really sure, url is used only in two places, in those path.join calls. How concept of relative url fits in there?

So it won't break anything else, but it'll definitely break bundling assets for iOS. Can we do the change I mentioned instead? I'll add comments later.

So it won't break anything else, but it'll definitely break bundling assets for iOS

It shouldn't break bundling for any platform since we don't change the code when query.bundle is true. Your code suggestion is just moving where path.join happens.

This will break iOS because iOS expects the assets to be folder inside assets which this PR removes.

This will break iOS because iOS expects the assets to be folder inside assets which this PR removes.

While bundling, Xcode specifies --assetsDest that already points to that folder.

This will break iOS because iOS expects the assets to be inside a folder assets which this PR removes.

@satya164 Yeah, I'll revert that change. Sorry for that. I had a folder assets already and it got me confused.

Also I think assets/ios/path/to/my/images/image.png will be better rather than path/to/my/images/ios/image.png, because the former preserves the actual path to the file and prepends a path, as opposed to modifying the path.

url = path.join('assets', query.bundle ? '' : query.platform, path.relative(...)) seems much better

Oh, url is also used in longname, so url needs to be the relative path.

I am going to resubmit it again in a clean state.


[WIP - discussion] - Alternate Method of Seq.map chaining #2

@liboz in #1528 introduced a method of chaining consecutive map statements, this is a bit more general approach which allows combining both filter and map, hopefully making it a bit more useful.
It could be extended to a range of other functions as well, as well as potentially more efficent generators (i.e. indexing through an array etc.)
Anway, feel like I'm bombing the PRs, without finishing off things. Sorry about that. But if you think any of them are actually wanted, then nag me for that one, and then I'll have more inspiration to complete it.

Sorry all, looks like my git skills are letting me down again. I tried to pick an earlier spot to go from, as I'm having problems with nuget and VisualCppTools, but looks like the file list is just bad... Anyway, the files changed seems to be correct...

I've reworked this, and going to branch from a cleaner spot. So killing this PR.


Create stakr-space.toml

Can you open a new one?

reopened, create new branch or commit to main?

I just need you to make a new PR that only adds the new file to public-testnet-9. I.e go to https://github.com/anoma/namada-testnets/tree/main/namada-public-testnet-9 and create a new pr

https://github.com/anoma/namada-testnets/pull/940


WinUI 3.0: Why print functionality of WebView2 not working?

According to this GitGub post,, we can now use window.print() to print webpage in WebView2. But the following code is not printing:
In my WinUI 3.0 - UWP project, I have a WebView2 control that displays a simple html as follows. But when I call the following javascript code using ExecuteScriptAsync (as shown below), I get the following error:
Error:

Check your printer or select another printer. The printer you chose isn't available or isn't installed correctly.

Screenshot of Error:

Remarks: There is nothing wrong on my Windows 10's default Print to PDF printer as I can print the exact same html page from a browser (MS Edge or Google).
Question: What I may be doing wrong here, and can we resolve the issue? Note: wvTest, as you may have guessed, is the name of WebView2 control.
Code:
//Correctly displays the html page with a simple text: `Test paragraph`
private async void myButton_Click(object sender, RoutedEventArgs e)
{
    string sHTML = "<!DOCTYPE html>" +
        "" +
        "" +
            "<meta charset=\"utf-8\" />" +
            "<title>Test Title</title>" +
        "" +
        "" +
            "
Test paragraph
" +
            "" +
        "" +
        "";
    //System.Diagnostics.Debug.WriteLine(sHTML);
    wvTest.NavigateToString(sHTML);
}

//This event opens the Print Dialog with the message shown above:
private async void btnPrint_Click(object sender, RoutedEventArgs e)
{
    await wvTest.ExecuteScriptAsync(javascriptCode: "myFunction();");
}

This is due to that print dialog not being compatible currently with the UWP AppContainer.  It works fine in a WinUI Desktop project.  At least for UWP, the print request will likely need to be proxied by the WebView2 element out to the WinRT PrintDialog API, but we haven't gotten to that task yet.

@codendone Thank you for providing a reason for the issue and hence saving my time for investigating further.

Adding a link for my convenience: The work to support this is internally tracked here: internal link


Refactor Geography and add (scalar) creation functions

This PR refactors the Geography (sub)classes in spherely and adds geography creation scalar functions.
Supersedes #26.
Closes #41.
Closes #27.

Goal is to remove the Geography subclasses (Point, Polygon, etc.): only one Geography wrapper class remains
Geography type (and also whether the geography is empty or not) is inferred at object creation
Geography objects are created via the top level creation functions (only scalar for now except for points)

TODO:

[x] fix segfault when creating a geography collection itself including collection(s)
[x] add multipolygon creation function
[x] add EMPTY geographies creation function overloads (+ tests errors when trying to build MULTI geographies from EMPTY geographies)
[x] move geography creation tests into test_creation.py
[x] raise when trying to create linestring with one point only

Yes I've been working further on this (last updates not uploaded yet) but that might be too much of a change indeed. I'll restrict this PR to the refactoring of Geography wrapper classes.
Also I'm not exactly sure whether we should closely reuse Shapely's API for creation functions. I find that API convoluted with the mixing of a unique coords argument vs. separate x, y (and z) arguments as well as the different behavior depending on indices. We should probably reuse the same API for compatibility although it makes things more cumbersome to implement.

Yeah, the vectorized creation functions in shapely are quite complex, and I am also not sure if they are always that useful (like creating polygons from a single 3D array, which I think in practice is only useful to generate some random triangles or to create bboxes), and agreed we should carefully think about which API we exactly want here.
That's also the reason I mentioned leaving out the vectorized creation functions for now, and only providing the scalars ones (that already exist and that are used in the tests). For points, I would keep the vectorized function you already have, since in this case it is quite simple, I think? (and you already have that)

For points, I would keep the vectorized function you already have, since in this case it is quite simple, I think? (and you already have that)

Yes. For a single array this is currently limited to 2D (i.e., not a true ufunc like in shapely) but that's fine for now. I don't think that we can use pybind11.vectorize to extend support to a single nD input array (https://github.com/pybind/pybind11/issues/1294).
I wouldn't be too hard I think to mimic the behavior of a ufunc by relying on pybind11's array view & indexing capabilities (+ some manual computation of nD indices), though. That would be even easier to let xtensor(-python) takes care of all of that (also for creating temporary arrays of geographies on the C++ side while releasing the GIL), but I'm not sure if adding such build dependencies is worth it.

Nice progress!
One thought on the API: given that we don't follow exact shapely anymore with the subclass constructors (shapely.Point(..) etc), we could also follow the naming of s2 and bigquery and others for the scalar creation functions, and use something like make_point() instead of point(), etc.
(although I see they are also not consistent in it, as they have st_geogpoint and st_makeline/st_makepolygon ...)
(I am not necessarily convinced myself that this is better (it's longer to type, but tab completion will put them all together, and there is a clearer distinction from being a type), mostly just mentioning it in case you would have a stronger opinion)

Thanks for the review comments @jorisvandenbossche.
I also have been thinking about the naming... Likewise I'm still not fully convinced myself and I don't have strong opinions either.
We could also use the create_ prefix for what we call "geography creation" functions...

This is getting close.
A few other comments that we can address later:

Agreed! Let's indeed get this in (to have the basics working, and will also be easier for other PRs adding features), and the things below can be handled in follow-ups.

Empty geographies: there is no overload function to create MULTI geographies without argument (or with None) ; also when empty or 1-length sequences are given the multi-types are demoted (see Singleton Multi-types automatically demoted paleolimbot/s2geography#17)

Personally I am fine with that limitation for now, especially given that s2geography essentially does not make the distinction between single and multi geometries anyway (as you linked), and that it is only for output (like WKT, or asking for the type) that the distinction is introduced, based on the number of elements stored in the object.

The collection type is named GeographyType::GeographyCollection but both the Geography repr and WKT have the  GEOMETRYCOLLECTION name. Do we want to uniformize things and rename GeographyType::GeographyCollection to GeographyType::GeometryCollection?

I would maybe lean towards GeographyType::GeometryCollection, although that is certainly odd as well ..
Another case where this occurs is in the spherely.geography_collection(..) constructor. For that case, we could also shorten it to just collection() to avoid that issue? (or at least when we add a prefix like create_.., that might be sufficient)

It is not currently possible to create a MULTIPOLYGON with duplicate rings, due to the fact that s2geography::PolygonGeography reuse the same underlying S2Polygon for multi-polygons. Maybe if we deactivate s2 normalization and/or validity check it will pass but will it work ?

A multipolygon with duplicate rings also sounds like "wrong" .. (in shapely / GEOS, that would be an invalid geometry anyway, and thus give unexpected results), so I am personally fine with not allowing to create it.
Although I suppose at some point we should allow to create invalid geographies, end then have a method to check if they are valid / what the reason is for the invalidity (for example s2_make_polygon has a check keyword to disable validation when constructing a polygon)
This is also another case (together with the geometrycollection / geographycollection above) where it points the the mismatch between the "simple features" model we try to emulate and how s2 works.
For the constructor functions you implemented here, it is nice to make the distinction between all the types, I think (as it gives a more user friendly interface), but for accessors like the geography type, we could also stay more closely to s2geography and have a function that just returns point/line/polygon/collection

Scalar creation function naming: still no strong opinion, although I would lean towards either point(), linestring(), etc. or create_point(), create_linestring(), etc.

Let's open a separate issue for this and see if we can get some more opinions

I would maybe lean towards GeographyType::GeometryCollection, although that is certainly odd as well ..

Another case where this occurs is in the spherely.geography_collection(..) constructor. For that case, we could also shorten it to just collection() to avoid that issue?

I renamed GeographyType::GeographyCollection -> GeographyType::GeometryCollection and geography_collection() to collection(), I also think it looks nicer for now.

OK, merged this, so we can move forward with other PRs and follow-ups. Thanks @benbovy!


Scrobbler Not Getting Track Information

Seemed like it was working earlier today judging by my track list at last.fm, but now it just sits at the magnifying glass icon in the address bar with the pop up "Looking up" whatever the track name is. Tried it at both Slacker and Google Music.

I have the same problem. Tried on Bandcamp and Youtube.

Same problem here as well. What the method for getting any sort of logs to assist in debugging?

How to debug the extension

403 forbidden errors in my logs.
The URL it points to shows me the following:
{"error":4,"message":"Invalid authentication token supplied"}
In short, songs are being recognized but they cannot be scrobbled (Soundcloud).
At the same time the console throws me the same error for Youtube except that the scrobbling does work.

Try the Re-authenticate with Last.fm button in the extension's options.

Thanks, fixed it. The scrobbler has been working pretty bad for a while now. I've tried re-authenticating before but I guess it hasn't been working for me. The re-authentication button did not bring me to the Last.FM page before, it did now :) (That's the reason I hadn't tried it today)


Add header asserts in discogapic unit test

Codecov Report

Merging #1899 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #1899      +/-   ##
============================================
- Coverage     85.23%   85.23%   -0.01%
  Complexity     4769     4769
============================================
  Files           440      440
  Lines         18846    18844       -2
  Branches       2009     2009
============================================
- Hits          16063    16061       -2
  Misses         2082     2082
  Partials        701      701

Impacted Files
Coverage Δ
Complexity Δ

...n/transformer/java/JavaSurfaceTestTransformer.java
92.57% <100%> (-0.06%)
32 <0> (ø)

Continue to review full report at Codecov.

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

PTAL


fix #500 change version to 0.2.4-SNAPSHOT

Ⅰ. Describe what this PR did
change version to 0.2.4-SNAPSHOT
Ⅱ. Does this pull request fix one issue?
fix #500 change version to 0.2.4-SNAPSHOT
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #501 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop     #501   +/-   ##
==========================================
  Coverage      28.23%   28.23%
  Complexity       649      649
==========================================
  Files            193      193
  Lines           7456     7456
  Branches         910      910
==========================================
  Hits            2105     2105
  Misses          5127     5127
  Partials         224      224

Impacted Files
Coverage Δ
Complexity Δ

...java/com/alibaba/fescar/core/protocol/Version.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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