some issues with pacehrh::SetRoundingLaw

(1)
The function set GPE$roundingLaw but returns the previous state, this cause confusion as it prints out the previous state and confuses people https://github.com/InstituteforDiseaseModeling/PACE-HRH/blob/4ec5fd19e5e05c146964e2b46345e90bf90025a1/pacehrh/R/pace_config.R#L208
(2) When @rhanIDM tried with Bogus values it is not accepted but no warning message which can also cause confusion

Returning the previous value when setting a configuration option is a common pattern, and is used by R's option() command. From the documentation for option():
#set the editor, and save previous value
old.o <- options(editor = "nedit")
old.o

If you want to print the current state, SetRoundingState(NULL).
I'll add a trace message for bogus values.


Fix wording in description of creating |+> state

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/quantum-techniques-1-Qsharp_FileStructure.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Feature Request: Add simple example project that can be used for testing during development.

I thought it could be a nice idea if there was a simple example project within the repository that could be launched with an express server using a grunt dev task and then edited while debugging.
Within this dev task, the watch task could be run to rebuild all files on any changes utilising livereload and css injection. This could make for really nice debugging.
So for example, in the grunt file you could have something like this:
....

express: {
      all: {
        options: {
          port: 6080,
          hostname: "<IP_ADDRESS>",
          bases: ['example'],  // working on the assumption that the example project is in root/example
        }
      }
    },

watch: {
     options: { livereload: true }
     stylesheets: {
        files: ['dist/timesheet.css'],
      }
      sass: {
        files: ['source/stylesheets/timesheet.css.sass'],
        tasks: ['sass'],
        options: {livereload: false } // dont live reload on sass changes, but on css changes instead for injection
      },
      scripts: {
        files: ['Gruntfile.js', 'source/javascripts/timesheet.bubble.js', 'source/javascripts/timesheet.js'],
        tasks: ['jshint', 'uglify']
      }
    },
  });

  grunt.registerTask('lint', 'Perform a lint on all the js source files', ['jshint']);
  grunt.registerTask('build', 'minify all js source files', ['lint', 'uglify']);
  grunt.registerTask('dev', 'Watch all js and css files for changes and rebuld appropriatly',
                    ['lint', 'build', 'express', 'watch']);

Furthermore, a source map could be used in the uglify task for nice in browser debugging in the chrome tools:
 uglify: {
      target: {
        options: {
          sourceMap: true,
          sourceMapIncludeSources: true,
          sourceMapRoot: 'source/javascripts'
        },
        files: { 'dist/timesheet.js': 'source/javascripts/timesheet.bubble.js', 'source/javascripts/timesheet.js' }
      },
    },

I have a js project template i usually use, it has a working build file with these features, here is the gruntfile and a blog post describing it.
Is this something anybody would want me to implement ?

You can run a development server using middleman which will host the site available at https://sbstjn.github.io/timesheet.js on localhost:4567. middleman build creates the static files for the gh-pages branch.
grunt runs the unit tests and performs JSHint checks, grunt build will create the minified .js and .css files …
Feel free to migrate the middleman part to grunt :heart_eyes:

https://github.com/sbstjn/timesheet.js/pull/41/
I removed the middleman dependencies …


Proposed dirty fix for #473

This adds the Capitalised versions of the Function & Variable scopes though this could perhaps be done much cleaner than in this way

This change is

That's not the right fix for this issue, because you could have scope identifiers with all caps, mixed upper and lowercase, etc.  The comparison/lookup logic is simply doing a case sensitive lookup, and it should change to do a case insensitive lookup instead.

@KirkMunro  - I agree that the logic should be case insensitive however this is outside of my experience with C# - hence the "dirty fix"

I wouldn't bother proposing dirty fixes in that case, because you're just
creating more work by submitting a pull request that needs to be rejected.
Better to simply comment that the issue seems to be that the current logic
does a case sensitive comparison with the scope label when it should be
doing a case insensitive comparison and then leave it for someone who can
do the fix properly.
--
*Kirk Munro *
Poshoholic, Microsoft MVP
Blog http://poshoholic.com/ | Twitter http://twitter.com/poshoholic |
LinkedIn http://ca.linkedin.com/in/kirkmunro | GitHub
http://github.com/KirkMunro | Facebook
http://www.facebook.com/#!/kirk.munro
Need a PowerShell SME for a project at work? Contact me
http://poshoholic.com/contact-me/!
On Tue, Mar 22, 2016 at 11:40 AM, Ryan Yates<EMAIL_ADDRESS>wrote:

@KirkMunro https://github.com/KirkMunro - I agree that the logic should
be case insensitive however this is outside of my experience with C# -
hence the "dirty fix"
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/PowerShell/PSScriptAnalyzer/pull/474#issuecomment-199843670

I'm going to attempt to get this fixed properly by the end of the weekend with additional tests in place to cover additional scenarios suggested by @KirkMunro
I think I'm almost there with it.

Now updating the tests for this

Thanks for the fix.

Reviewed 1 of 1 files at r2, 1 of 1 files at r3.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


feat(chat command): to continue without an immediate newline

The workaround for now is to type a space followed by one or more words that are likely to be continued as a sentence. A space followed by [ or * or /think works well to induce an action or thought (if your prompt uses this syntax) without biasing the content.

Oh, this should be easy. Just zero out the probability of a newline.


Godotfrees

Godot version:

OS/device including version:

Issue description:

Steps to reproduce:
Minimal reproduction project:

Ups


Microsoft stealing our Project, slandering online and then claiming they have the right to do so as private person

This project: https://github.com/decentralized-identity/ion copied 1 to 1 our name and even functionality described on ioncoincore.
Their slandering is still online:
https://twitter.com/csuwildcat/status/1376001271065235458

as well as further slander after he was politely approached by @korvasc .
@adammatlack send a request to them to get in contact with us but they igored it and deciding to spread false accusations and slander.
After they were approached by me, in particular @csuwildcat who says he is Microsoft employee and is running that project, his name is Daniel Buchner and after talking today to Microsoft who could not confirm that Microsoft is behind the project, also nobody could confirm to me that Mr. Buchner is employee from Microsoft, they could not find that information in their databases, the only what Microsoft suggested was to get in touch with partner.microsoft.com and they raised the issue now and check it.
In the meantime I contacted those people who have no problems to steal, lie and falsely accuse and the only they could reply was few times that I am harassing them.
Mr. Buchner claimed his statements have nothing to do with the project and he is allowed to slander and spread lies harming not only our project but everybody personally.
Their team was not capable of contacting or reaching to us, even not after discussion.
@csuwildcat , you are gladly invited here to our project to talk about it and we will not delete, shadown ban and deny you ability to explain your slandering on twitter.
@nembal you claim it is private nature, but it is not, even no lawyer agrees with it.  I would gladly also visit your Microsoft office if Microsoft could confirm that they indeed support you. This is an issue for you and for us, closing it there means only you are trying to get it under the carpet.
So, @nembal, if Mr. Buchner deleted now his tweet, why could not he appologize? Does it mean he is sorry? Does it mean I did not scam anybody? Etc.., please make some public statement, our and your community expects it.

My crisp, clear opinion, served ice cold: https://twitter.com/csuwildcat/status/1378936975676243974?s=19

Mr Buchner I'm cc'd on your clear opinion, served ice cold: https://twitter.com/csuwildcat/status/1378936975676243974?s=19 but you have banned me so I cannot see what you wrote.
What is your clear opinion, served ice cold?

Mr Buchner, You have blocked me from responding to your rubbish.

Scammy Blockchain Token? Again what is so scammy about ION?
Your sad to see folks got confused? Really? I don't believe you are sorry, words without substance.

Mr Buchner
To be clear everything I've said and will say is without prejudice. I'm not an ION developer I'm just me, an investor who in April 2016 started investing in ION.
 Your response if you decide to give one should be to the ION community https://discord.gg/CYzhwJKv. I'm just one of the many small fish your misspoken words have hurt.
Two reasons why I posted here.

If Lawyers on behalf of the ION community become involved I would like this Github issue to be a repository they can use as a point of reference.

If ION is as you say is scammy trash why is Microsoft not only using the name ION but also it seems has taken inspiration from the ION logo too.
Microsoft - ION

ION - Community driven project

NO acknowledgement from you/Microsoft just a baseless SCAM accusation against ION. This is not how decentralised projects work
You said you are confused why people are confused if they mistake ION for ION, really ???
https://bitcoinmagazine.com/culture/microsoft-ions-daniel-buchner-wants-to-decentralize-our-identities-with-bitcoin
https://www.coindesk.com/micorosfts-ion-digital-id-network-live-bitcoin
https://www.nasdaq.com/articles/microsoft-ions-daniel-buchner-wants-to-decentralize-our-identities-with-bitcoin-2021-04-05
https://finance.yahoo.com/news/microsoft-launches-decentralized-identity-platform-223201801.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8&guce_referrer_sig=AQAAAHEoK_E8vgUmRVsBpEwXEXa8HusLEi3XhPJPutU7ac0p3df3PU4o8NZ0ctcZCcUAwOAZllhf5ooA11kJvU5Z8ylVXOlZ3Pkteqefz08tVM8kUCRwJpGs-KRVAkAg4ADnoxiFFslz6vPDGtGm7pJyNadJiNvqgskdfTN_m_LjS0p6
And it goes on..... It's nice to have the resources of a $100+ billion corporation at your disposal, How many people do you think your media communication team is able to reach ??
I don't think you or Microsoft understand or cares for decentralisation

This is a visual I took from a truly inspirational crypto community I'm also a very big fan of DOGE.   https://www.reddit.com/r/dogecoin/. Just because the ION project is open source and your a $multi-billion corporation you have no right to just take. You see Mr Buchner for many years I have lived in the world you operate in. I know the resources you have available and the process you/Microsoft follow when choosing a name/logo. Why of all options you had available did you choose ION ?.


Hacky fix for air bench headers

Updates the headers to have a list of strings that can be ignored (instead of just one). This includes the AIR Bench header.

Thanks!


Getting started using an IKEA outlet?

Please forgive me for filing this, I just am unable to figure out how to get started using your library which seems awesome!
Setup
I'm running on zigbee2mqtt 1.16.2 through docker. Previously I had a working setup using deCONZ + Homebridge Hue, but I wanted to mix it up again since it seems like z2m has evolved very nicely over the past year.
I'm on a fresh setup and just added a single IKEA control outlet (E1603/E1702) to z2m. It sets up successfully:
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:11: Device '0x000d6ffffe7cb852' joined
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:11: Starting interview of '0x000d6ffffe7cb852'
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:11: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"0x000d6ffffe7cb852"},"type":"device_connected"}'
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:11: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_started","meta":{"friendly_name":"0x000d6ffffe7cb852"},"type":"pairing"}'
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:26: Successfully interviewed '0x000d6ffffe7cb852', device has successfully been paired
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:26: Device '0x000d6ffffe7cb852' is supported, identified as: IKEA TRADFRI control outlet (E1603/E1702)
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:26: Configuring '0x000d6ffffe7cb852'
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:26: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"description":"TRADFRI control outlet","friendly_name":"0x000d6ffffe7cb852","model":"E1603/E1702","supported":true,"vendor":"IKEA"},"type":"pairing"}'
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:25:26: Successfully configured '0x000d6ffffe7cb852'
zigbee2mqtt    | Zigbee2MQTT:info  2020-12-05 11:26:08: MQTT publish: topic 'zigbee2mqtt/bridge/config/devices', payload '[{"dateCode":"0x26660700","friendly_name":"Coordinator","ieeeAddr":"0x00212effff054339","lastSeen":1607196368683,"networkAddress":0,"softwareBuildID":"ConBee2/RaspBee2","type":"Coordinator"},{"dateCode":"20180528","description":"TRADFRI control outlet","friendly_name":"0x000d6ffffe7cb852","hardwareVersion":1,"ieeeAddr":"0x000d6ffffe7cb852","lastSeen":1607196326506,"manufacturerID":4476,"manufacturerName":"IKEA of Sweden","model":"E1603/E1702","modelID":"TRADFRI control outlet","networkAddress":6447,"powerSource":"Mains (single phase)","softwareBuildID":"1.4.020","type":"Router","vendor":"IKEA"}]'

Based on the instructions in the readme, I gathered the device identifier and put it into my homebridge config as a device:
{
    "mqtt": {
        "base_topic": "zigbee2mqtt",
        "server": "<server>",
        "user": "<username>",
        "password": "<password>",
        "reject_unauthorized": false,
        "keepalive": 60,
        "version": 4
    },
    "devices": [
        {
            "id": "0x000d6ffffe7cb852"
        }
    ],
    "platform": "zigbee2mqtt"
}

I checked the homebridge logs for homebridge-z2m, and found a few logs:
[12/5/2020, 11:26:08 AM] [zigbee2mqtt] Connected to MQTT server
[12/5/2020, 11:26:08 AM] [zigbee2mqtt] New accessory: 0x000d6ffffe7cb852
[12/5/2020, 11:26:08 AM] [zigbee2mqtt] Publish to 'zigbee2mqtt/0x000d6ffffe7cb852/get': '{}'

However, the outlet doesn't show up in homebridge as a device. I tried restarting it a few times to no avail.
I feel like I'm probably missing something. I'm unsure whether I need to somehow fill in the capabilities of the device in my config? Or how I might even do that. Maybe I'm missing something obvious in the documentation, and if so please feel free to tell me to RTFM. 😄
Versions used

This plugin: v0.0.10
Homebridge: v1.2.3
Zigbee2mqtt: v1.16.2
Homebridge Config UI X: v4.35.0

Hi @ouvoun. Thanks for giving the plugin a try.
The current version of the plugin needs to have seen an MQTT status message of the device in order to determine what kind of device it is (this is mentioned in the README).
It might help changing the state "manually" (on the device or by publishing a message to MQTT).
That usually also triggers a status update, as the state changed.
Please note that, due to recent improvements in zigbee2mqtt, I'm currently working on a new version of the plugin for which this "status message" requirement is no longer applicable.
See #18 for some more info and updates.

Ah, thank you @itavero!
Power cycling the outlet seemed to send a status update to MQTT and was picked up by the plugin. Excellent! Sorry I don't fully understand how MQTT works so I didn't realize that's what was meant by the paragraph in the readme.
Looking forward to the updated version, and thank you for making such a lovely plugin!


Vault Liquidation Recovery

Prerequisite: https://github.com/interlay/interbtc/issues/636
Background
Vaults can be liquidated either by becoming undercollateralized or by being reported for Bitcoin theft. More specifically, liquidation occurs per VaultId, which is a tuple of (AccountId, CollateralCurrency, WrappedCurrency). The VaultId tuple is an identity in and of itself, which enables Vault operators to reuse the same AccountId to back wrapped Bitcoin with multiple collateral currencies. It provides an isolation of risk and responsibilities per each VaultId identity. Thus, liquidation of an operator for one collateral currency does not bear any consequences on the other collateral currencies the operator is using, because they are separate VaultIds. Once liquidated, there is no way for an operator to reinstate a VaultId; its assets are seized and its status is permanently set to Liquidated or CommittedTheft respectively.
Is your feature request related to a problem? Please describe.
A complication arises when operators reuse the same AccountId to register VaultIds for multiple collateral currencies, which is indeed what the official Vault client does. If one of the registered VaultIds gets liquidated but the operator wishes to keep using the collateral type that was liquidated, they need to create a new AccountId. The new AccountId allows for registering a new VaultId with the same currency pair as the liquidated one (wrapped_currency, collateral_currency), to enable the operator to maintain exposure to the same basket of collateral assets as before the liquidation.
Due to how the Vault client is implemented, using an additional AccountId creates two operational burdens:

Requires operators to secure a new pair of private keys (Substrate and Bitcoin).
Requires a separate Vault binary to be run.

Describe the solution you'd like
If the Vault's status is Liquidated or CommittedTheft but there are no more pending requests of any kind in the system (issue, redeem, replace, refund), meaning all of them have either been executed or cancelled, the VaultId can no longer be interacted with and is effectively "sandboxed" by the protocol. Due to this, a recover_vault_id(vault_id, active_status) extrinsic can be added to check the conditions above and then set the Vault status to Active(active_status).
In case the Vault was liquidated for undercollateralization and already spent its Bitcoin, theft reports can be recovered from using the Vault Theft Recovery feature.
Describe alternatives you've considered
Instead of ensuring there are no more pending requests associated with the VaultId, the recover_vault_id(...) extrinsic could check that the to_be_issued, issued, to_be_redeemed fields in the Vault struct are all zero. However, this introduces a dependency on the internal representation of Vault state, which may change in the future. Relying on finalized requests encapsulates this internal representation. Correctness is still preserved by the proposed solution, because the fields mentioned above can only be changed by new and pending requests.

I initially assumed all of the vault state on the chain would need to be cleared, but on second thought, it may not have to. We might even be able to resume normal operation even when there are still open redeems if the extrinsic locks sufficient new collateral

However, this introduces a dependency on the internal representation of Vault state, which may change in the future.
I don't think that's relevant - if the internal representation were to change, the check could be just be changed as well. It's far more difficult to determine there are no more open requests than to check the issued tokens, since you'd have to iterate over all of the requests

I'd be happy for you to start working using the to_be_issued, issued, to_be_redeemed approach.

Allowing a vault to recover while to_be_redeemed is non-zero creates an edge case where collateral may remain frozen indefinitely. It would happen when a vault is reported for theft with to_be_redeemed tokens; the vault calls recover_vault_id(...) and then redeem::execute_redeem(...). In this scenario, decrease_liquidated_collateral() no longer gets called here, since the execution branch is different.
If you want to avoid this edge case and require zero to_be_redeemed, then liquidated vaults have zero issued and to_be_issued anyway, so it wouldn't make sense to keep the Optional<collateral> parameter.

Closed by #647


CLI support for preferred language

In v0.1.2 support for providing a list of preferred languages was added. However this is not accessible using the CLI as of now, although it should be.

Implemented in #9

Released in v0.1.3


[Feature Request] Table header click optional behaviour

Existing Component
Yes
Component Name
Table
Description
Clicking on the column header sorts the table if column is sortable.
Clicking on the column header filters the table if column is filterable.
But if a column is sortable and filterable clicking on the column header does nothing.
It would be nice to have an option to choose what happens when clicking the header.

Sorry, we have no plan to support this.

It is really frustrating when you have rendered an input-box inside table header. And table sorts on its focus. -_- . @jikkai
At least fix that.


⚠ Processors has degraded performance

In 61eafa5, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 88 ms

Resolved: Processors performance has improved in c0d7dae.


Add Ethereum name or address to package.json

I would like to see an Ethereum name or address added to the ethereum field of the package.json file. This will allow consumers of the project to know a canonical address to send funds to. For example, I'm building an application that will allow developers to automatically donate ETH to all of their npm dependencies that have an Ethereum address in their package.json file.
Having an Ethereum address would allow various cryptocurrencies to be donated, including stablecoins pegged to USD, like USDC or DAI. Essentially it is another payment network like PayPal, but open and decentralized like the internet. Getting an address is relatively straightforward through something like MetaMask or Coinbase. You could also generate one on your own.

@lastmjs This should probably be opened as an RFC on the npm project, to add crypto addresses to the package.json funding section.  I'd use it if it was adopted.  https://github.com/npm/rfcs


Fix version.json import errors

Fixes #2992 and #2983 by updating version.json to packageMetadata.ts with named exports

Coverage increased (+10.03%) to 92.708% when pulling 6dc3bc9e2148bc53b181d9f079f6e11e0159620b on fix-version-json-import-errors into 2b2cd49c53643076baf09387d6ac2e22093048ab on dev.


Support for Webhooks

Instead of polling on a given interval, it might be more efficient to use webhooks instead so when a release is published, it would send a request to a endpoint which will update it's cache.
https://github.com/:user/:repo/settings/hooks/new

The reason why we have chosen not to go with webhooks (like Nuts, for example) is that they simply don't scale that well:
Assuming that you have 10 instances of Hazel up and running, only one instance of those will retrieve the notice that a new release was created over the webhook. In turn, only that single instance will get the new application update.
That's why we're polling. 😊

I feel that is more a problem with how this server is implemented that one inherited from the use of webhooks.
If you wanted something more scalable, then you would have a master service which receives the ping then notifying each of the platform nodes of the update.

Talking about Now's way of scaling deployments, instances are completely separated from each other and therefore not able to determine whether or not other ones exist, where they exist and what their status is.
Since I don't think that this will change in the near future and we're basically focused on making it work perfectly on Now first, it doesn't make sense to introduce webhooks.

I fully understand and appreciate that, i am just stating in general independent of platform used.

Actually we only need to run this when a certain path (let's say /refresh) is accessed. In addition, we need a new environment variable for a secret to compare with the secret contained in the payload.

@leo indeed you do, i wasn't suggesting this blindly (there was reason behind it) 😄
The biggest reason i suggested it is if enough people started using this with multiple instances, you are basically a DDOS attack waiting to happen, with this, you only ever do something when needed (making it way more efficient).

That's not completely correct. With the interval mechanism, Hazel respects the limits of GitHub's API and that's far away from a possible DDoS attack (even when scaled to multiple instances).
What I just proposed only makes sense when Hazel is running on a single instance, so there won't be many use cases. But still, it's worth implementing.

@leo Ah, so it does, my apologies. Yes, it's not something everyone will use but it makes your tool more flexible to a wider array of cases.


Bluetooth: Host: Avoid registering a callback twice

When a callback is registered twice, the slist becomes circular and we get stuck in a loop
In this PR we have choosen to ignore the second registration call if the callback has already been registed. The alternative is to trigger an assertion. That doesn't work if the assertions are turned off.

Tangentially relevant: I added an issue on thread-safely of bt_conn_cb_register and bt_conn_cb_unregister: https://github.com/zephyrproject-rtos/zephyr/issues/74173


Implement /summarize submessage command.

posting /summarize should summarize all the messages in a topic, we would prefer not to use any external API for this.
Discussion:
https://chat.zulip.org/#narrow/stream/2-general/subject/Summarize/near/544452

@zulipbot label "help wanted"

Closing this since such an open source program does not yet exist and we will not create it. Summarizing conversations cannot be done with a regular text summarizing algorithm and requires machine learning (see for example this paper). The best thing that would be feasible is a word cloud, which frankly is not that helpful.


save/load leaflet.draw and use editing/delete buttons

I've looked into similar questions, but apparently I'm missing something
(https://github.com/Leaflet/Leaflet.draw/issues/398, https://github.com/Leaflet/Leaflet.draw/issues/364, https://github.com/Leaflet/Leaflet.draw/issues/187, https://github.com/Leaflet/Leaflet.draw/issues/253
https://stackoverflow.com/questions/53463078/leaflet-draw-cannot-read-property-enable-of-undefined-adding-control-to-geoj
https://stackoverflow.com/questions/24018630/how-to-save-a-completed-polygon-points-leaflet-draw-to-mysql-table)
When I create a figure, I attach a bindpopup to it with a button that saves the figure in the database.
I have a layer, activating which I request saved figures from the database, they are successfully loaded, drawn, I place them in drawitems,
but at the same time I do not have the ability to edit newly added layers
I DON'T UNDERSTAND T_T
async function saveText(layerId) {
    var layer = drawnItems.getLayer(layerId);
    var textareaValue = document.querySelector('.leaflet-popup-content textarea').value;
    var type = layer instanceof L.Marker ? 'Point' : 'Polygon';
    var coordinates = type === 'Point' ? layer.getLatLng() : layer.getLatLngs();

    var shape = layer.toGeoJSON()
    var shape_for_db = JSON.stringify(shape);

    var data = {
        type: type,
        coordinate: shape_for_db,
        comment: textareaValue,
    };

    fetch(`${http}://${IP}:/mark/save-mark/`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(data)
    })
}

function view_mark(date) {
    const apiUrl = `${http}://${IP}:/mark/`;
    fetch(apiUrl)
        .then(response => {
            if (!response.ok) {
                throw new Error(` ${response.status}`);
            }
            return response.json();
        })
        .then(data => {
            addMarkersToMap(data);
        })
        .catch(error => {
            console.error('Error:', error);
        });
}

async function addMarkersToMap(data) {
    data.forEach(item => {
        const coordinates = JSON.parse(item.coordinate);
        if (coordinates) {
            if (item.type === 'Point') {
                L.geoJSON(coordinates, {
                pointToLayer: function (feature, latlng) {
                    return L.marker(latlng, {icon: myicon});
                    }
                }).addTo(drawnItems)
                .bindPopup(item.comment);
            } else if (item.type === 'Polygon') {
                    L.geoJSON(coordinates,option).addTo(drawnItems)
                    .bindPopup(item.comment);
            }
        }
    });
}

i also used this code to make sure i don't have groups
function addNonGroupLayers(sourceLayer, targetGroup) {
  if (sourceLayer instanceof L.LayerGroup) {
    sourceLayer.eachLayer(function(layer) {
      addNonGroupLayers(layer, targetGroup);
    });
  } else {
    targetGroup.addLayer(sourceLayer);
  }
}

The problem was solved, if I understood correctly, the problem was that I had previously written data to the database in a different format
and he didn't want to build next


ORTOptimizer support for ORTModelForCausalLM

System Info
optimum[onnxruntime-gpu] 1.6.4

Who can help?
No response
Information

[ ] The official example scripts
[X] My own modified scripts

Tasks

[ ] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
[X] My own task or dataset (give details below)

Reproduction
I have a script the loads HF CodeGen model and store it in ONNX format. It then loads from local stored model path and encounters an error.
Error message
Traceback (most recent call last):
  File "model2ort-minimal.py", line 21, in <module>
    optimizer = ORTOptimizer.from_pretrained(ort_model)
  File "/opt/conda/lib/python3.8/site-packages/optimum/onnxruntime/optimization.py", line 87, in from_pretrained
    onnx_model_path.append(model_or_path.model_path)
AttributeError: 'ORTModelForCausalLM' object has no attribute 'model_path'

This script can be used to reproduce it.
import time
import onnx
import onnxruntime
from optimum.onnxruntime import ORTModelForCausalLM
from optimum.onnxruntime import ORTOptimizer, AutoOptimizationConfig

model_name = "Salesforce/codegen-350M-multi"
onnx_model_dir = "./models/ort"
cache_dir = "~/.cache/huggingface/transformers/"
use_cache = True
ort_model = ORTModelForCausalLM.from_pretrained(model_name,
                                            cache_dir=cache_dir,
                                            from_transformers=True,
                                            use_cache=use_cache)
ort_model.save_pretrained(onnx_model_dir)
optimized_model_dir = onnx_model_dir+"_opt"
optimizer = ORTOptimizer.from_pretrained(ort_model)

Expected behavior
Expect the stored onnx model to be loaded without an error

Thank you, we will be working on it!

My local patch is as the following:
File: optimum/onnxruntime/optimization.py
Add an elif for ORTModelForCausalLM
...
from .modeling_decoder import ORTModelForCausalLM
...
        if isinstance(model_or_path, ORTModel):
            if isinstance(model_or_path, ORTModelForSeq2SeqLM):
                onnx_model_path += [
                    model_or_path.encoder_model_path,
                    model_or_path.decoder_model_path,
                ]
                # Add the decoder with past key/values if present
                if model_or_path.use_cache:
                    onnx_model_path.append(model_or_path.decoder_with_past_model_path)
            elif isinstance(model_or_path, ORTModelForCausalLM):
                onnx_model_path.append(model_or_path.decoder_model_path)
                if model_or_path.use_cache:
                    onnx_model_path.append(model_or_path.decoder_with_past_model_path)
            else:
                onnx_model_path.append(model_or_path.model_path)
...

Thank you, I did pretty much the same in https://github.com/huggingface/optimum/pull/794 . The PR just adds a few tests on top.

Hi @cyang49 , #794 has been merged.
One issue I have yet to investigate:

GPT-J with past key values and fp16 conversion fails at inference.

Note as well that I have not yet tested how much the optimizations help on the speed side, so it is kind of experimental. But at least it provides a decent front end to ONNX Runtime optimizations.

Is the issue similar to this?
RuntimeError: Error in execution: Non-zero status code returned while running Transpose node. Name:'Transpose_token_96' Status Message: /onnxruntime_src/onnxruntime/core/framework/op_kernel.cc:83 virtual OrtValue* onnxruntime::OpKernelContext::OutputMLValue(int, const onnxruntime::TensorShape&) status.IsOK() was false. Shape mismatch attempting to re-use buffer. {1,16,1024,64} != {1,16,1025,64}. Validate usage of dim_value (values should be > 0) and dim_param (all values with the same string should equate to the same size) in shapes in the model.

Which version of Optimum are you using? Is it with GPT-J? Could you share your branch and a script/model to reproduce?

It's optimum-1.6.4 and the model is Salesforce/codegen-350M-multi.
Here is a script to reproduce the problem:
import os
import time
import onnx
import onnxruntime
from optimum.onnxruntime import ORTModelForCausalLM
from optimum.onnxruntime import ORTOptimizer, AutoOptimizationConfig
from transformers import AutoTokenizer

model_name = "Salesforce/codegen-350M-multi"
onnx_model_dir = "./models/ort"
cache_dir = "~/.cache/huggingface/transformers/"
use_cache = True

ort_model = ORTModelForCausalLM.from_pretrained(model_name,
                                            cache_dir=cache_dir,
                                            from_transformers=True,
                                            use_cache=use_cache)

ort_model.save_pretrained(onnx_model_dir)

optimized_model_dir = onnx_model_dir+"_opt"
optimizer = ORTOptimizer.from_pretrained(ort_model)

optimization_config = AutoOptimizationConfig.O4(for_gpu=False, disable_shape_inference=True)
optimizer.optimize(save_dir=optimized_model_dir, optimization_config=optimization_config)

opt_model = ORTModelForCausalLM.from_pretrained(optimized_model_dir,
                                            cache_dir=cache_dir,
                                            use_cache=use_cache,
                                            provider="CUDAExecutionProvider")

tokenizer = AutoTokenizer.from_pretrained(model_name)
tokens = tokenizer("hello world", return_tensors='pt')
output = opt_model.generate(tokens['input_ids'].to('cuda:0'),
                do_sample=False,
                num_return_sequences=1,
                temperature=0.2,
                max_new_tokens=16,
                top_p=0.95,
                use_cache=use_cache,)

Error:
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Non-zero status code returned while running Transpose node. Name:'Transpose_token_96' Status Message: /onnxruntime_src/onnxruntime/core/framework/op_kernel.cc:83 virtual OrtValue* onnxruntime::OpKernelContext::OutputMLValue(int, const onnxruntime::TensorShape&) status.IsOK() was false. Shape mismatch attempting to re-use buffer. {1,16,2,64} != {1,16,3,64}. Validate usage of dim_value (values should be > 0) and dim_param (all values with the same string should equate to the same size) in shapes in the model.

This error is likely the same as mentioned in onnxruntime issue
https://github.com/microsoft/onnxruntime/issues/14582

Thank you @cyang49 , I can reproduce the issue. Not sure there is much we can do on our end, it looks like an issue either in the ONNX for codegen, or a bug in ONNX Runtime.
So far I disabled the test for codegen due to an other bug in ONNX Runtime I encountered with this architecture: https://github.com/huggingface/optimum/blob/0d948ae48d66b98055302f8363b19628b4ef335b/tests/onnxruntime/test_optimization.py#L331

@cyang49 Looks to be the same issue: https://github.com/huggingface/optimum/issues/800

Hi @cyang49 , https://github.com/huggingface/optimum/pull/871 may have fixed your issue. Could you try on optimum main?
I was able to use codegen with ORT fp16 optimization: optimum-cli export onnx --model hf-internal-testing/tiny-random-CodeGenModel --task causal-lm-with-past --device cuda --optimize O4 codegen_onnx & then loading into ORTModelForCausalLM.

Hi @fxmarty I tested the optimization quickly and loaded the model. I don't encounter the same error as before.
However, I still need to set disable_shape_inference=True for the optimization to be successful.
optimization_config = AutoOptimizationConfig.O4(for_gpu=args.for_gpu, disable_shape_inference=True)

The shape inference error may be something else and maybe in your environment you don't encounter this. Can you check whether you also disabled shape inference, and if you didn't need to do that, let me know what onnxruntime version it is in your environment?
Thank you so much

Hi @cyang49 , yes sorry for being unclear, I meant that the issue Shape mismatch attempting to re-use buffer should be fixed. The incomplete shape inference is a classic and I have no better solution than disabling shape inference for now.
Note that I am for now not sure if it's a good practice or not to pass disable_shape_inference=True when using O4 (aka ORT fp32 to fp16 conversion), for reference https://github.com/microsoft/onnxruntime/issues/15063

@fxmarty thanks for the info.
Yes, I've tested the latest code and didn't run into the same runtime error anymore. I think you can close this


Add separator parameter

This PR adds a separator parameter to allow for multiple filters. With something like (PR syntax):
      - uses: GuillaumeFavelier/ci-skip@enh/separator
        with:
          commit-filter: '[skip ci];[ci skip];[skip github]'
          separator: ';'

What do you think @mstachniuk ?

Locally, I have an issue with my docker:
ERRO[0000] failed to dial gRPC: cannot connect to the Docker daemon.

So I added 2 tests... blindly :sweat_smile:
Also I'm not sure about the hash used: b5634847ae9760ee46cf8a1c928cd8689a821744 since the others are available on master

It's also possible to create a skip job instead of repeating if: ${{ env.SKIP == 'false' }}
jobs:
  check_skip:
    runs-on: ubuntu-20.04
    outputs:
      skip: ${{ steps.result_step.outputs.result }}
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - uses: GuillaumeFavelier/ci-skip@enh/separator
        with:
          commit-filter: '[skip ci];[ci skip];[skip github]'
          separator: ';'
      - run: echo "::set-output name=result::${CI_SKIP}"
        id: result_step

  main_job:
    needs: check_skip
    if: ${{ needs.check_skip.outputs.skip == 'false' }}
...

@GuillaumeFavelier I will merge your PR and fix tests and small things soon. I will also rename separator to commit-filter-separator - I have more ideas to implement and this rename helps me avoid misunderstandings.
Thanks a lot for submitting Pull Request!

Ok it's done.
Btw. An idea with skip job looks interesting. Would you add it to Readme and full working example in /.github/workflows ?

I'm ont it


Merge smithy-rs-release-1.x.y into main

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Closing this in favor of smithy-rs#3737


hugo: update dependencies

Generated a new deps.nix by installing hugo into a clean
GOPATH with go get and running go2nix save.
Motivation for this change
Follows on from @adisbladis's comment in #33181.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

cc @adisbladis

@GrahamcOfBorg eval
@GrahamcOfBorg build hugo

Thanks :+1:


Expect delivery notification

User story 6.1:
As a receiver I want to be notified when I have mail so that I expect it
Acceptance criteria:
The receiver should receive a notification via the app to expect a delivery
The mailman should define delivery destinations

The reciver will notify when the car outside

This has nothing to do with the pick up, the user story is to notify the receiver before he delivery so that the receiver expects a delivery and waits for it


Question: support for Greek characters

Hello,
I'm wondering if sonic could support Greek characters as part of expressions, like
ρ_i+1
If I try with it in the Demo App, I get:

Stacktrace:
   at Adletec.Sonic.Parsing.TokenReader.Read(String expression) in Adletec.Sonic\Parsing\TokenReader.cs:line 296
   at Adletec.Sonic.DemoApp.MainWindow.calculateButton_Click(Object sender, RoutedEventArgs e) in Adletec.Sonic.DemoApp\MainWindow.axaml.cs:line 50.`

I had a look on the source, and I found that 'IsPartOfTextToken' uses, as one could expect, ASCII characters. So my question is: is there a way to make sonic work with Greek characters and to avoid that any non-ASCII is traslated as "?" ? Maybe using unicode string (e.g. "\u03C1" is ρ).
I tried to change that function as follows:
        private bool IsPartOfTextToken(char character, bool isFirstCharacter)
        {
            return (character >= 'a' && character <= 'z') ||
                   (character >= 'A' && character <= 'Z') ||
                   (!isFirstCharacter && character >= '0' && character <= '9') ||
                   (!isFirstCharacter && character == '_') ||
                   (character >= 'α' && character <= 'ω') || (character >= 'Α' && character <= 'Ω');
        }

and it seems to be working properly, at least with simple expression.
Do you see any potential issue with that?
thanks in advance

Hi, from version 1.5.0 on, you can use arbitrary characters if you put them in single quotes in your expression.
Example:
// use single-quotes to allow for arbitrary unicode strings as variable names in expressions
var expression = "sin('α') + 'ω'";
Dictionary<string, double> variables = new Dictionary<string, double>();
variables.Add("α", 0); // no need for quotation outside, just refer to your variables as you usually would
variables.Add("ω", 3.4);
double result = engine.Evaluate(expression, variables);

Thanks for your reply, but the proposed change would allow to use them without quotation - anyway, good to know, thanks!

Hi! You're right, and that's worth considering. However, there are also some downsides to extending the parser for additional character classes and some benefits from a technical and maintenance perspective of the quotation-method:

Parsing ASCII is fast; adding new conditions to the parser logic will come with a performance penalty which is bad for users who parse a lot of expressions and evaluate them only once.
If everything which is not ASCII is enclosed by ASCII single quotes (') we can skip a lot of logic and just look for the closing quote;
Quotation also works for spaces and even reserved characters, which makes things like 'result of a+b' + c a valid expression. It's powerful, but also universal, which makes it one additional condition which tackles your greek characters as well as anything else.
It's pretty error proof. Handling Unicode directly sometimes introduces nasty edge-cases.

However - I see the benefit in being able to use Greek characters directly. They are universally used in Math and Physics and I'll think about adding direct support similar to what you proposed :)


Changing release ZIP filenames on SourceForge to not contain whitespace

A small idea, however I don't think I am the only one who struggles with using a filename such as nana 1.7.1.zip in a Makefile for instance - if automatically downloading and unpacking it from https://netcologne.dl.sourceforge.net/project/nanapro/Nana/Nana%201.x/nana%201.7.1.zip.
Even though there are multiple ways to handle such a filename in make, I think on the long term having a release filename without a space - nana_1.7.1.zip for example - would make sense.

Hi, I don't recommend dowloading from the sourceforge. Because when a mirror provider doesn't get updated a new file, the downloading URI always refers to a page to redirect the download.
I uploaded 1.7.2, please try the filename nana_1.7.2.zip


GPG_AGENT_INFO not populated

When enabling the gpg module the GPG_AGENT_INFO env only gets populated when starting up the gpg-agent. When the gpg-agent is already started, the env doesn't get set.

Hey @danilobuerger  this repo is not being maintained, see #1239
The community fork is here https://github.com/zsh-users/prezto, you may have better luck over there.
zsh-users is an organization dedicated to host Zsh community projects and therefore became the rational home for a community maintained version of prezto.
Please move this issue to zsh-users and we will be able to help you!

@facastagnini thanks for telling me about this, I didn't even know. It's a shame that he just disappeared and nobody can even change the README...

@danilobuerger I ran into the same situation a few months ago. It would be great if we could more easily guide users to the new repo.
If you star it, that helps. Also as we start to build up activity there, perhaps the new fork will start to show up in Google results.

Awesome, I already made the switch and starred it!

thanks for following us @danilobuerger , once the issue is on the forked project put the reference here and please close this ticket 👍

I've pushed a small change which should fix this issue. If you're still having problems, feel free to ping me or open a new issue.


Links to II interface spec and other links in Search broken

Links like this:
https://internetcomputer.org/docs/current/developer-docs/ic-overview/docs/current/references/ii-spec
that show up in search are broken
You can find these links by searching for let's say "maxTimeToLive"
The issue is these links need to be updated to their working counterpart. In this case:
https://internetcomputer.org/docs/current/references/ii-spec/
The issue over here is the "/docs/current/developer-docs/ic-overview" is redundant and shouldn't be present in the hyperlink for the search result

Cannot reproduce with the given example, it works for me. Can you try again and see if it might have changed in the meantime?

Cannot reproduce with the given example, it works for me. Can you try again and see if it might have changed in the meantime?

Here is a screenshot

Notice the URL at the bottom of the screen when I hover over the first search result


Change LogObjectContextMenu to immediately close when refreshing logs

Request Template Witsml Explorer
Fixes #293
Description
Please include a summary of the change and which issue is fixed. List any dependencies that are required for this change.
Context menu is now closed immediately, rather than waiting for log to refresh.
Type of change
Put an x in the boxes that apply. You can also fill these out after creating the PR.

[ ] Bugfix
[ ] New feature (non-breaking change which adds functionality)
[x] Enhancement of existing functionality
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Impacted Areas in Application
List general components of the application that this PR will affect:

Log object context menu

Checklist:
Put an x in the boxes that are fulfilled.

[x] PR is related to an issue
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have used descriptive naming on components, functions and variables to avoid additional explanatory comments in the code
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...
This is a general issue for all options in the context menus. It is worth considering if we should do this fix everywhere, or ignore the issue until we can implement proper loading indication.

Closed until more work can be done to cover all context menus.


ObjectSelect objects key, value changes to value, key after update

My Pain
I'm trying to dynamically update the objects from which a user can select. But the behavior of param.ObjectSelector.objects is different before and after update.
$ python 'issue_object_selector.py'
Traceback (most recent call last):
  File "issue_object_selector.py", line 12, in <module>
    app.value=3
  File "C:\Users\masma\source\repos\orsteddcsmarketsanalytics\api\.venv\lib\site-packages\param\parameterized.py", line 294, in _f
    instance_param.__set__(obj, val)
  File "C:\Users\masma\source\repos\orsteddcsmarketsanalytics\api\.venv\lib\site-packages\param\parameterized.py", line 296, in _f
    return f(self, obj, val)
  File "C:\Users\masma\source\repos\orsteddcsmarketsanalytics\api\.venv\lib\site-packages\param\parameterized.py", line 823, in __set__
    self._validate(val)
  File "C:\Users\masma\source\repos\orsteddcsmarketsanalytics\api\.venv\lib\site-packages\param\__init__.py", line 1242, in _validate
    "valid options include %s"%(val,attrib_name, items))
ValueError: 3 not in Parameter value's list of possible objects, valid options include [Third, Fourth]

import param
OBJECTS_ALL = {"First":1 , "Second": 2}

class App(param.Parameterized):
    value = param.ObjectSelector(default=1, objects=OBJECTS_ALL)

app=App()
app.value=2

app.param.value.objects = {"Third": 3, "Fourth": 4}
app.value=3

This is also strange. WHY DOES THE DICT BECOME A LIST OF CONSTRUCTION?
$ python 'issue_object_selector.py'
[1, 2]
2
{'Third': 3, 'Fourth': 4}
Third
(.venv)

import param
import panel as pn
OBJECTS_ALL = {"First":1, "Second": 2}

class App(param.Parameterized):
    value = param.ObjectSelector(default=1, objects=OBJECTS_ALL)

    @param.depends("value", watch=True)
    def update(self):
        print(self.param.value.objects)
        print(self.value)

app=App()
app.value=2

app.param.value.objects = {"Third": 3, "Fourth": 4}
app.value="Third"

Ahh. I can see on construction of ObjectSelector that it changes the objects dict to a list
def __init__(self,default=None,objects=None,instantiate=False,
                 compute_default_fn=None,check_on_set=None,allow_None=None,**params):
        if objects is None:
            objects = []
        if isinstance(objects, collections_abc.Mapping):
            self.names = objects
            self.objects = list(objects.values())
        else:

The question is then how would you expect a user to change the objects dynamically in the program?
For example if you have a region ObjectSelector and you change the value then I would expect the country ObjectSelector objects to only be the countries in that region?

Workaround
A workaround is
import param
OBJECTS_ALL = {"First":1, "Second": 2}

class App(param.Parameterized):
    value = param.ObjectSelector(default=1, objects=OBJECTS_ALL)

    @param.depends("value", watch=True)
    def update(self):
        print(self.param.value.objects)
        print(self.value)

app=App()
app.value=2

object_dict = {"Third": 3, "Fourth": 4}
objects = list(object_dict.values())
names = list(object_dict.keys())
app.param.names = names
app.param.value.objects = objects
app.value=3

$ python 'issue_object_selector.py'
[1, 2]
2
[3, 4]
3
(.venv)

Yeah, we should really make sure ObjectSelector supports dict as objects instead of converting in the constructor.

By the way @philippjfr . The one thing I don't like about param is actually the order of the key, value in the objects dict. Its simply the opposite of what I normally see.
I would expect
objects = {1: "Denmark", 2: "Germany", ....}

not
objects = {"Denmark": 1, "Germany": 2}

I'm simply confused every time I use the ObjectSelector.

Please Consider Creating a new Selector that fixes both these problems. I guess there are a lot of dependencies out there unfortunately.

Please Consider Creating a new Selector that fixes both these problems. I guess there are a lot of dependencies out there unfortunately.

Sadly this is very unlikely, we already added a param.Selector and I doubt we'll add another one again. I think the change to support a dictionary objects can be done without breaking backward compatibility. I agree that the key: value ordering is weird, but I think it was deliberate to mostly get around the problem of supporting only hashable objects (this is a huge source of pain in Panel's Select/MultiSelect widgets). You can see the relevant PRs here:
https://github.com/holoviz/param/pull/258
https://github.com/holoviz/param/pull/316

There is a user reporting the same problem here https://github.com/holoviz/param/issues/331

Oddly enough, I'm still struggling with the same issues this week! I've hit all the things discussed above, but I had issues boiling them down to reproducible examples and explanations. Thank you for reporting!

To help understand the underlying (and as far as I can see unsolvable) problem here, what's happening is a conflict between a Param-centric view of the world and a Panel-centric view of the world. Actually, it's more generally a conflict between Python-centric and GUI-centric worldviews.
For normal Python usage, a param.Parameter is fundamentally a Python attribute with a certain value stored in the attribute dictionary of an object. E.g. an Integer parameter x of object a might have a value of 3, such that a.x==3 and you can set it with a.x=2. The same is true if x is of a Selector type given a list allowing [1,2,3]; again a.x==3 and you can set it with a.x=2; Selector is just a more constrained version of Integer in this case. Fundamentally, Selectors aren't any different from any other Parameter type; they let you set a value (the actual item you want to work with in Python), and only intervene if you set it to a value not allowed by the type. The design of Param is that the same code should still run if you simply delete the Parameter declaration and simply that attribute directly, in normal cases.
That's the view from Param in Python code, so what about for a GUI?  For objects with a straightforward textual representation (strings, integers, objects with a "name" parameter), GUI support is easy, because we can inspect the current parameter value and all allowable values, construct text labels for all those, let the user select between the text labels, and set the underlying values. No problem -- going back and forth between labels and objects is easy in that case.
But what about other objects that have no inherent name like lists, arbitrary Python class instances, dicts, and other unhashable items?  Now we have a problem.  Sure, we can ask the user to provide explicit text labels for each object, which is what Selector does in that case.  But now what do we do when we start up the GUI and need to show the current state, from reading out the value of that attribute? Fundamentally the current attribute state is a value, not a label, so we have to somehow look up the label (e.g. find 1, for a value we encounter of "Denmark").  The same is true if we want the GUI to reflect a value changed in Python while the GUI runs; again the GUI must map from values to labels, which is precisely the opposite of how a GUI author thinks.  The GUI author thinks of mapping from labels to objects, because the GUI operations all start with labels.  But in Python, the parameter is never accessed or set by label, it is set directly as a value. Labels are an afterthought or a hint for printing, and have nothing to do with the attribute value.
Hypothetically, if we were to create a new Selector type that worked the other way, users would no longer be able to access the value from Python directly.  E.g. if it worked like objects = {1: "Denmark", 2: "Germany", ....}; the value of that Parameter would have to be 1, not "Denmark", and a user would need to explicitly use a lookup table to get "Denmark" every time they access the value. Such a Parameter could be supported, but it would be entirely unlike any other Parameter, and would only really make sense for GUI programming. In Python no one wants to find that the country is 1; they want to find that the country is "Denmark".  Unlike Panel, Param is designed for GUI support to be an afterthought or a bonus, with actual Python usage of the attribute always being the primary consideration. Such a Parameter would be the only one breaking that rule, and I guarantee Python users would now come back and say that they are deeply confused about why this one Parameter behaves this way.
Hopefully you can see why we're having this problem -- we can't make it straightforward for the GUI (where labels are meaningful and real) without destroying its use as a normal Python attribute, and since Param (as opposed to Panel) is fundamentally not a GUI library, we have to side with Python usage, even when it makes GUI usage more confusing. In general the Python-centric and GUI-centric views are quite compatible (or else using Param for building GUIs wouldn't work!), but in this case there is a direct and unavoidable conflict; only one of those two viewpoints can be supported properly.

Thanks @jbednar for taking the time.
I will have to spend a little time to digest and maybe respond. Have a feeling I actually don't agree. :-)

A user is experiencing this problem here https://discourse.holoviz.org/t/replacing-options-dictionary-doesnt-replace-keys-choices-as-expcected/1244/6

Opened a possible PR: https://github.com/holoviz/param/pull/440


#1825 Features/improvements multiplexing middleware

Closes #1825

#1825

Proposed Changes

Reviewed Multiplexing middleware with comments and code splitting
Shouldn't create a new HttpContext if only 1 downstream Route
Should Process the downstream Route directly, without parallelization logic if 1 Route

Some benchmarks (based on develop branch 30.11.2023):

Before

After
We have a performance increase of around 6% if only 1 downstream route.
@raman-m @RaynaldM

nice job !

@ggnaegi

Should Process the downstream Route directly, without parallelization logic if 1 Route

But Multiplexing (Aggregation) should not be done for definitions with one route included only.
Is this PR about this case only?
So isn't any validation now for this border case?
Can we define Aggregation which consists of one route only?
Seems this PR is small improvement (from feature point of view) because it touches design refactoring only...

@RaynaldM @ggnaegi
Guys, if you want to prioritize this PR and delivery let me know plz.

@ggnaegi

Should Process the downstream Route directly, without parallelization logic if 1 Route

But Multiplexing (Aggregation) should not be done for definitions with one route included only. Is this PR about this case only? So isn't any validation now for this border case? Can we define Aggregation which consists of one route only?

Not only, the code refactoring and readability improvement are important too, but by design the logic is handling definitions with one downstream route only, the same way it would handle a route with multiple downstream routes:

creating a useless copy of HttpContext
calling Tasks.WhenAll

 var routeKeysConfigs = httpContext.Items.DownstreamRouteHolder().Route.DownstreamRouteConfig;
            if (routeKeysConfigs == null || !routeKeysConfigs.Any())
            {
                var downstreamRouteHolder = httpContext.Items.DownstreamRouteHolder();

                var tasks = new Task<HttpContext>[downstreamRouteHolder.Route.DownstreamRoute.Count];

                for (var i = 0; i < downstreamRouteHolder.Route.DownstreamRoute.Count; i++)
                {
                    var newHttpContext = Copy(httpContext);

                    newHttpContext.Items
                        .Add("RequestId", httpContext.Items["RequestId"]);
                    newHttpContext.Items
                        .SetIInternalConfiguration(httpContext.Items.IInternalConfiguration());
                    newHttpContext.Items
                        .UpsertTemplatePlaceholderNameAndValues(httpContext.Items.TemplatePlaceholderNameAndValues());
                    newHttpContext.Items
                        .UpsertDownstreamRoute(downstreamRouteHolder.Route.DownstreamRoute[i]);

                    tasks[i] = Fire(newHttpContext, _next);
                }

                await Task.WhenAll(tasks);

Seems this PR is small improvement (from feature point of view) because it touches design refactoring only...

Yes, it's a small improvement, but it will allow further improvements since a contributor can now easily understand what's achieved here.

@RaynaldM @ggnaegi Guys, if you want to prioritize this PR and delivery let me know plz. I have no idea how we will deliver... and what release to include this improvement?!...

December? It's not such a big deal, I can add a few more unit tests.

Lack of unit tests!
Add acceptance tests too, or rework current ones.

Yes I wrote it somewhere. It was a kind of draft 🤣
But the unit tests for the middleware and the acceptance are already written.

As I said, it's a draft, I'm working on the test cases. I will let you know.

@raman-m Should be part of January 24 Release. Not much work left, only the unit tests.

@ggnaegi Are you sure adding it to Jan'24? Tomorrow is the last day of the milestone. But we will not release tomorrow for sure: a lot of tasks to close...
OK No problem I'm going to add to the current release...

@raman-m please review, I have modified the docs too. It seems the functionality "advanced request aggregation" is still in its early stages. Whether or not this functionality should be still maintained in the future is not part of the PR.


OCPBUGS-4343: update apf configuration to use v1beta3

/hold
it has dependency on kube rebase (1.26 has flowcontrol v1beta3)

once https://github.com/openshift/cluster-openshift-controller-manager-operator/pull/272 merges, we might need to rebase it

1.26 has landed
/hold cancel
/retest

/approve
/lgtm


[REQ] Pin input widget

How hard would it be to add a pin input widget so that I could unlock my tablet with hyprlock? I would even change my password to a number based one if it would be easier to implement. Might even try to implement it myself with some helpful hints. Thanks

How hard would it be to add a pin input widget so that I could unlock my tablet with hyprlock? I would even change my password to a number based one if it would be easier to implement. Might even try to implement it myself with some helpful hints. Thanks

Just set up a pin using pam, and some pam module

Thanks for the suggestion. I started looking a bit in the code yesterday evening.
My question is more on the widget side.  Or maybe send the button input to the password field widget.

I played around a bit but it seams to be crashing without an error in the log. So I am asking myself if there is kind of a dev-mode, where things get rendered but not really locked, because it is a real pain. Can't recover from the red screen. Only by killing Hyprland from anothe tty. Looked through the code but didn't find anything obvious.


Can I install the toolbox in a Golf 2016 SW: MST2_EU_VW_P0216D? Car only has a 1 SD slot

Can I install the toolbox in a Golf 2016 SW: MST2_EU_VW_P0216D? Car only has a 1 SD slot

Consider looking into the readme :)


Chapter 6 - physical layer

The changes are extremely trivial, at least so far.

@kjetilkjeka I suppose the changes here are trivial enough for this to be safe to merge. If you find any issues, please open a ticket.


[AutoRelease] t2-security-2023-03-13-42247(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/3920
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=1028

issue link:https://github.com/Azure/sdk-release-request/issues/3920


cargo-careful: 0.4.2 -> 0.4.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/RalfJung/cargo-careful/releases.
meta.description for cargo-careful is: Tool to execute Rust code carefully, with extra checking along the way
meta.homepage for cargo-careful is: https://github.com/RalfJung/cargo-careful
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.4.3 with grep in /nix/store/1yf3zgrmqcfhpdv3pgvn96g54q3si20x-cargo-careful-0.4.3
found 0.4.3 in filename of file in /nix/store/1yf3zgrmqcfhpdv3pgvn96g54q3si20x-cargo-careful-0.4.3

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

cargo-careful

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1yf3zgrmqcfhpdv3pgvn96g54q3si20x-cargo-careful-0.4.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cargo-careful https://github.com/r-ryantm/nixpkgs/archive/7031ede61a639186c046238b5d21f531a3b4016f.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/7031ede61a639186c046238b5d21f531a3b4016f#cargo-careful

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1yf3zgrmqcfhpdv3pgvn96g54q3si20x-cargo-careful-0.4.3
ls -la /nix/store/1yf3zgrmqcfhpdv3pgvn96g54q3si20x-cargo-careful-0.4.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cargo-careful

Maintainer pings
cc @figsoda @matthiasbeyer for testing.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 333673 run on x86_64-linux 1

1 package built:

cargo-careful


Complement README.md

What do we need to add?

goal of this repository?
.?

Please add ideas to this issue

Maybe point to the contributing guidelines?

Yes, I added that the Readme file now.

@chrisweij , can we close this issue for now then?

@ruudvdent I think it is not merged yet (and it should probably be updated with the new analysis)


Create "most common" tags section

Create a section on the bookmarks page or the search page (or both) that lists the most common tags a user has to make those more accessible. In the user account section, let the user set the threshold that cause them to be displayed.

Add this along with an option to turn it off in the user account section.


Few fixes

!!ap fixed
!!ms fixed for local files
!!destroy if music stops added to !!s and !!n need to be added to "On.Completed"

wait for destroy on inactivity (beta) still testing it.

Nadeko now leaves voice channel if its paused for 15mins, if resumed before 15mins it wont leave the voice channel but if resumed at 14mins and paused again before the 15mins timeline bot will leave the voice channel.
Also Destroy on Finished added, if no songs left to play.

Removed auto destroy if paused for 15mins.

DO NOT MERGE!!! Its a lil outdated

Awesome, looks good! 💯

Already added and optimized https://github.com/Kwoth/NadekoBot/commit/108a9fb1560da923d1b6e97c521618ca4cab23ad 😄


[ISSUE #1375]Clear compressed flag of half message

What is the purpose of the change
Fix issue #1375
Brief changelog
Modify TransactionalMessageBridge.java, add msgInner.setSysFlag(MessageSysFlag.clearCompressedFlag(msgInner.getSysFlag())); to clear compressed flag of half message.
Verifying this change
Use TransactionMQProducer and send messages larger than 4KB, see if the issue occurs.
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage increased (+0.09%) to 50.626% when pulling 45090a6a68ddb363835301ee4cbddc4a1fb34fb8 on liuruiyiyang:fix_issue1375 into 90ae1167981ad586e84dd433c08395aeb92a4111 on apache:develop.

it is not enough to modify the bug here . when trigger callback to producer,the msg compress flag is still wrong.
the code is here
TransactionalMessageServiceImpl#
listener.resolveHalfMsg(msgExt);

@ymhh could you please describe how to reproduce that case and how to verify whether the problem is solved?  Thank you !

@liuruiyiyang  try prepare a message larger than 4k ， and do not commit the message。it will never trigger the checkLocalTransaction in producer

@ymhh I have modified the code, could you please help me review and verify it? Thank you.

The way I solve this problem is this：
Modify TransactionalMessageBridge.java decodeMsgList method
replace MessageDecoder.decode(bb) to  MessageDecoder.decode(bb, true, false);
can you help me ? thank you!

@muuzisoft Indeed using MessageDecoder.decode(bb, true, false) may also solve the problem, however the message's sysflag is still wrong(inconsistent) and may cause some potential issues. Therefore IMO the better solution is to correct the sysflag

@liuruiyiyang The way I solve this problem is this：
Modify TransactionalMessageBridge.java decodeMsgList method
replace MessageDecoder.decode(bb) to MessageDecoder.decode(bb, true, false);
can you help me ? thank you!

I think you are right.

This issue has been fixed in this PR :)


feat(#769): Add j$ Prefix For All Method Names

In this PR I added the j$ prefix for all method names. This prevents some problems in EO and PHI naming.
For example, the $φTerm java method will be converted to the j$φTerm.
During the back transformation jeo removes this prefix and saves pure φTerm to bytecode.
Related to: #769.

PR-Codex overview
This PR introduces the PrefixedName class to enhance method name handling by adding a prefix to method names in the DirectivesMethod and XmlMethod classes. It also includes a test to verify that the prefix is correctly applied.
Detailed summary

Updated DirectivesMethod to use PrefixedName for encoding method names.
Added a test in DirectivesMethodTest to confirm the prefixing of method names.
Updated XmlMethod to use PrefixedName for decoding method names.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@yegor256 Could you take a look this one as well, please?

@rultor merge

@rultor merge

@volodya-lombrozo OK, I'll try to merge now. You can check the progress of the merge here.

@rultor merge

@volodya-lombrozo Done! FYI, the full log is here (took me 9min).


Authentication controller migration to v2

refs https://github.com/TryGhost/Ghost/issues/10060
This is a prep work to extract logic into v2 authentication controller.
@allouis just heads up that this is in progress. The plan is to first extract logic into manageable components/services then copy code across to v2. This extraction is meant to save time and code duplication when we'll be copying the code from v2 to v3.
TODO:

[x] extract logic out of authentication's setup methods
[x] extract logic out of authentication's notifications methods
[x] extract logic out of authentication's passwordreset methods

[x] extract logic out of authentication.resetPassword method
[x] extract logic out of authentication.generateResetToken method

Will come in follow up PR:

[ ] define authentication v2 controller using new extracted modules

@allouis reminding ping to check changes so far :wink:

Doing a little of manual testing on this and putting it into master :ship:  The rest of suggested improvements could be done in follow up PR as v2 controller is introduced and usages are clearer :+1:


visual mode: gj/gk not working in wrapped lines

This is based on issue #90 but for visual mode instead of normal mode.
Currently it is not possible to jump over wrapped lines with gj/gk when visual mode is on.
I tried to copy these lines:
https://github.com/asvetliakov/vscode-neovim/blob/6469c216f30c4bf29d5718f6d3fe99d517a33db0/vim/vscode-motion.vim#L15-L16
and changed them to vnoremap:
vnoremap gk <Cmd>call VSCodeNotify('cursorMove', { 'to': 'up', 'by': 'wrappedLine', 'value': v:count ? v:count : 1 })<CR>
vnoremap gj <Cmd>call VSCodeNotify('cursorMove', { 'to': 'down', 'by': 'wrappedLine', 'value': v:count ? v:count : 1 })<CR>

Afterwards the movement works but it doesn't update the selection. Here the cursor is in line 17 but the selection is still stuck in line 18.

I checked the API and there is the select argument for cursorMove.
vnoremap gk <Cmd>call VSCodeNotify('cursorMove', { 'to': 'up', 'by': 'wrappedLine', 'value': v:count ? v:count : 1, 'select': true})<CR>
vnoremap gj <Cmd>call VSCodeNotify('cursorMove', { 'to': 'down', 'by': 'wrappedLine', 'value': v:count ? v:count : 1, 'select': true})<CR

But i get an error that the variable true is undefined: emsg: E121: Undefined variable: true
Any ideas how i can use the select argument?

From https://devhints.io/vimscript:

"No booleans. 0 is false, 1 is true."

I tried to google around to see if the neovim package for node.js (which is the thing vscode-neovim uses) supports some magic for sending booleans, but I couldn't find anything yet. I'll look further if sending 0 and 1 don't work for you.

Related: #580

Any update on this? Thank you!

Not a priority, but the problem is that vscode moves the cursor but then does not tell nvim about the new cursor position to extend the visual selection. Either the gj/gk hack could be removed, or there needs to be some code that extends the visual selection.

That's too bad. Would love to see this functionality added into VSCode Neovim.

The following code will work, but only in charwise visual mode. There is no plan to add it to the internal default mapping. It is recommended to use vim's native gj/gk
local function move(d)
  return function()
    -- Only works in charwise visual mode
    if vim.api.nvim_get_mode().mode ~= 'v' then return 'g' .. d end
    require('vscode-neovim').action('cursorMove', {
      args = {
        {
          to = d == 'j' and 'down' or 'up',
          by = 'wrappedLine',
          value = vim.v.count1,
          select = true,
        },
      },
    })
    return '<Ignore>'
  end
end

vim.keymap.set({ 'v' }, 'gj', move('j'), { expr = true })
vim.keymap.set({ 'v' }, 'gk', move('k'), { expr = true })

The following configurations work in my env.
vnoremap gk <Cmd>call VSCodeNotify('cursorMove', { 'to': 'up', 'by': 'wrappedLine', 'value': v:count ? v:count : 1})<CR>
vnoremap gj <Cmd>call VSCodeNotify('cursorMove', { 'to': 'down', 'by': 'wrappedLine', 'value': v:count ? v:count : 1})<CR>

VSCode: v1.88.0
vscode-neovim: v1.8.1
neovim: v0.9.5

Sorry, VSCodeNotify is deprecated now
The lua codes from xiyaowong work fine for me
https://github.com/vscode-neovim/vscode-neovim/issues/576#issuecomment-1835799743
This works without charwise visual mode, thanks!!


break(url): handle decodes correctly; trim ParsedURL properties

Took the opportunity to make it a breaking change:

removed useless keys on ParsedURL interface
use named parse export instead of default function

Technically, this means it's a breaking change for Polka too. Specifically, the req.url is no longer fully decoded.
Now, req.url is the decoded req.path segment concatenated with the NOT-decoded req.search segment. Before this change, the req.url was comprised of a decoded req.search segment too... which often caused problems in userland.
The raw, fully-encoded value is always still available as req.originalUrl ... unless you change it.
Lastly, revamped the @polka/url benchmarks and it looks like it got a bit of a speed boost too 🚀

Closes #150

Codecov Report

Merging #165 (8e45667) into next (de206c3) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              next      #165   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          117       108    -9
=========================================
- Hits           117       108    -9

Impacted Files
Coverage Δ

packages/polka/index.js
100.00% <100.00%> (ø)

packages/url/index.js
100.00% <100.00%> (ø)

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 de206c3...8e45667. Read the comment docs.


Script editor font size zoom gets stuck at maximum

Operating system or device - Godot version: MacOS 10.12.6 - Godot 3.0a1
Issue description:
When using zoom keys (Meta+Equal, Meta+Minus) in the Script Editor, font size zooms once and then jumps bigger on its own. After 2 or 3 zooms (in either direction) font becomes very large and will no longer change.
Steps to reproduce:
See attached gif:

open script
press Command+Equal , font zooms in once, then jumps bigger on its own
press Command+Minus, font zooms out once, then jumps to a huge value
after this, no further zoom commands work and setting persists after restart

Only way I found to fix is to edit the editor_settings-3.tres and change  interface/source_font_size to a reasonable value.

This might just be a Mac only issue since i just tried replicating this on windows and cannot get the same bug to happen.

I attempted to replicate the issue on a mac mini but was not able to reproduce it.

I'm not able to reproduce this in Linux either with a91d12ab945222b0fc89d4634e3e781ba8941f33

After some further testing with SwitchResX, this only happens in HiDPI video modes. Does not occur when in non-HiDPI modes.

Following up: I haven't been able to reproduce this in recent builds, so I think we can probably close.


Command line argument parsing improvements

The following three PR's, when taken jointly, represent a significant enhancement to existing command line parsing behaviour: https://github.com/spectreconsole/spectre.console/pull/1036, https://github.com/spectreconsole/spectre.console/pull/1029, https://github.com/spectreconsole/spectre.console/pull/1040
However, they all make changes to CommandTreeTokenizer and introduce their own unit tests specifically for the CommandTreeTokenizer, and as such, merge conflicts will arise once any one of the PR's has been merged.
This PR encompasses all three PR's, successfully merged and with all conflicts resolved. The respective git histories have also been squashed so the changes for each issue can be more clearly examined.
All issues addressed by this single combined PR are: https://github.com/spectreconsole/spectre.console/issues/959, https://github.com/spectreconsole/spectre.console/issues/842, https://github.com/spectreconsole/spectre.console/issues/890, https://github.com/spectreconsole/spectre.console/issues/193 (and its open duplicate, https://github.com/spectreconsole/spectre.console/issues/825), https://github.com/spectreconsole/spectre.console/issues/587
As it's quite a big change, I'm happy to help in any way required @patriksvensson for you to accept in full, in part, with or without amendment etc.

@FrankRay78 From a quick look, it looks ok to me! I will set aside some time this weekend to dig into it a bit more.
Does this one cover other pull requests? If so, could you close the other ones to avoid confusion?
Thanks!

Anything you would want to be addressed before merging?

Nothing that you haven't addressed already. 👍

@FrankRay78 There are currently conflicts with the main branch. Could you rebase your PR branch with an updated main branch?
If you're uncertain how to do this, we've got a guide for it in our Contribution Guidelines

I've rebased and fixed the merge conflicts @patriksvensson.  It all seems good, however I get the following message (which I'm not convinced is unrelated to the merge):

Build started...
1>------ Build started: Project: Spectre.Console, Configuration: Debug Any CPU ------
1>C:\Users\info.nuget\packages\tunnelvisionlabs.referenceassemblyannotator\1.0.0-alpha.160\build\TunnelVisionLabs.ReferenceAssemblyAnnotator.targets(58,5): error RA0000: Add a 'PackageDownload' project item to include Microsoft.NETCore.App.Ref at the desired version to obtain nullability information from.

I started seeing that on some of my other branches today after I refreshed them from upstream.
Any ideas how I fix this?

@FrankRay78 Merged!
Thank you for this. Stellar work! Really happy with your work! 👍


[Data grid] Add keyboard navigation

(see: https://www.w3.org/WAI/ARIA/apg/patterns/grid/#keyboardinteraction-settingfocusandnavigatinginsidecells)
Patterns and documentation:
Pagination
When using pagination it is a good idea to let the user know there is pagination and on which page they are before "entering" the table. If a teacher opens the page with a table of all students in a class, of which they know there are 30, it might be confusing to start reading the table and have the table say it's "row 1 of 11". If thesl-paginator-status is placed above the table a screen reader, but also a low vision user using a magnifier will know they are not getting the full table.
compare:

With

Because of shadow dom boundaries i couldn't get it to work with aria-described by and point to the sl-paginator-status
Size and tabstops
Be clear there is a limit on the amount of rows and tab stops per row. 300 rows, with a text field and 3 buttons means 1200 tabstops, it is better make selectable rows and make the actions bulk actions or use pagination.
### Tasks
- [ ] styling of skip links (Roald)

Some interesting examples: https://www.w3.org/WAI/ARIA/apg/patterns/grid/examples/data-grids/

[ ] Set tab-index of all elements that are only child of cell to -1 and focus that element when the cell is active

when navigating:
arrow keys: move around
enter -> go in edit mode
when in edit mode:
enter-> confirm and go to cell below, already in edit mode
esc -> exit edit mode and focus current cell
arrow keys -> like in "normal, single" input field/select

https://inclusive-components.design/data-tables/
https://adrianroselli.com/2020/02/block-links-cards-clickable-regions-etc.html#Update02

research screenreader usage virtual list, both in role table and role grid
table
only data, no edit fields or selection column
clickable row
sorting
filtering
grid
interactive; edit fields, selection columns
clickable row
sorting
filtering
selection (multi select row)
all cells focusable by keyboard?
In both NVDA and voiceover there is no difference in navigating a table when it has role grid and when it has not.
Tested on https://cdpn.io/pen/debug/mdNwqNQ?authentication_hash=VGkWNpwEgaeA
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/table_role
An element with role="table" is a static tabular structure with rows containing cells. The cells are not focusable or selectable, though widgets within individual cells of the table can be interactive.
If the interaction provides for the selection state of individual cells, if left to right and top to bottom navigation is provided, or if the user interface allows the rearranging of cell order or otherwise changing individual cell order such as through drag and drop, use grid or treegrid instead.
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/grid_role
The grid role is a composite widget containing a collection of one or more rows with one or more cells where some or all cells in the grid are focusable by using methods of two-dimensional navigation, such as directional arrow keys.
Accessibility concerns
Even if the keyboard use is properly implemented, some users might not be aware that they have to use the arrow keys. Make sure that the functionality and interaction needed can be best achieved using the grid role.

Skip table link:
Skip links work with hash links; <a href="#content">... and a tag that has id="content". This adds the #content in the url and jumps to the element in the page. In frameworks/sites with a complex routing this might cause problems.
https://medium.com/@belwerks/a-quick-note-on-skip-links-in-angular-3641a0e32a7a

Together with Roald, I created a design for the skip link to further improve keyboard navigation in Grid (see design). For this, we introduced 3 new tokens within our new contextual token setup:

color.background.focused (Used for the background color of navigation aids, such as skip links, to ensure contrast and visibility on focus.)
color.text.focused (Used for the text color of navigation aids, such as skip links, when they are focused or visible.)
color.border.focused (Used for focus rings of elements in a focus state.)

Because the skip link is behind the table (because of the animation when showing it) I can't get the focus border to lay above the table, as it is in the design:

I've moved the button a bit from the edge of the table, so the outline doesn't look so weird, poking out on the side of the table
Also, it is not possible to have a round outline on a square corner (at the bottom here):


feat(oidc): Add new package @tsed/jwks to generate jwks key pairs

Pull Request Test Coverage Report for Build 850262563

24 of 24 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.005%) to 96.127%

Totals

Change from base Build 848743644:
0.005%

Covered Lines:
7995

Relevant Lines:
8003

💛  - Coveralls

:tada: This PR is included in version 6.49.0 :tada:
The release is available on:

v6.49.0
GitHub release

Your semantic-release bot :package::rocket:


Add warning and pin next version

📝 Changed routes:

/rsc.server
/slow.server

(view full size)
(view full size)

Commit b7c22e41d344c09ec0ef382737e94a024ecda07f (https://next-rsc-news-i1jy4t8ze.vercel.sh).


Filtering NLDI WaDE sites against WaDE database

On our last call with DPL, an efficiency challenge was raised on how to filter NLDI WaDE sites (thousands) against the WaDE database sites (2 million sites). Narrowing the filtering to a boundary of interest would be more efficient which would search for a fraction of sites in the WaDE database. NLDI does return the upstream basin boundary but it does not return the downstream one.
Potential workaround to get both downstream and upstream boundaries together

Get the downstream NLDI mainstem features.
Get comid for the last feature in downstream geojson
Use comid form (2) to get the upstream basin boundary. This boundary will be for both the lower and upper streams (in the original question in (1)) of the river (the entire basin boundary). (see screenshot below)
Use the boundary in (3) to narrow the NLDI matching in the WaDE database.
Let's run a small test and see how this may work.

Working now as intended


No support commissionee device to delete fabric

Problem
On some devices with a screen(more  for the Android platform), if user want to delete a fabric that has commissioned,how to do it?
Proposed Solution
I think this is a very common feature for users, I hope it can be supported

Please check out the RemoveFabric command on the OperationalCredentialsCluster. That requires a fabric-index of the fabric to be deleted to be passed in. The fabric index that corresponds to the right fabric can be retrieved by reading the Fabrics list and upon finding the right entry, to retrieve the 'fabric-index' field from within that entry.

Please close if the above comment resolves your question.

Thank you for the response, @mrjerryjohns
OperationalCredentialsCluster is responsible for commissioner ->commissionee, I mean that adding fabric deletion methods to allow the user to delete a fabric on device side,not through commissioner

Generally speaking, the intent is that only a valid administrator of the device will be able to remove fabrics, right?

yes, For example:

Yes, For example I want to manager fabrics on TV, GUI like this


Does DeepL API Free work

Not sure, will test this weekend

Both google and openai work for me, but not deepl free API. I haven't been able to solve the problem.

deepl free api do not support for now
check the deepl readme link

problem solved, Thanks!

how did you solve the issue @Royhowtohack? I want to try to use deepl free version


(Feature) Favorite Mount

Hello,
I am really enjoying using this addon, great work.
I have an idea I think would be cool to have, and that is an option to pick a favorite (maybe a radio button next to each mount you can select) and have that chosen favorite be in the middle. I know that this would then require you to be able to put that fifth mount in either of the other locations depending on which is the favorite, or have the favorites original location be blank if the extra mount option isn't enabled. For most who have that fifth mount it would probably be their favorite anyways, but since a lot of people don't have it yet, it might be nice.
To mimic this feature currently I've just set the hotkey for the fifth mount to be the same as what I'd consider my current favorite.

Anyway, just a thought, thank you again.

So I'd like to have the ability to basically reorder the mounts however you like, but the problem is that the art for each mount only works in the current configuration, so in order to support that I'd have to change the art entirely and, well, I'm an absolutely dreadful artist.
If someone can provide me with mount art that can easily be rearranged to fit any of the five locations, I'd be more than happy to make them all customizable.


Build fails while using Maven project with Artifactory

Hi,
I configured Jenkins my Win 10 desktop and managed to build successfully using freestyle project. Next I ran the .bat file for Artifactory, managed to login and create a repository.
After adding Artifactory plugin in Jenkins I created a Maven project. But this time build fail after a long time, with one of the errors being:-  No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
I tried installing jdk again but choco said it is already installed and I may force a reinstall.
I've attached the console logs herewith.
Console Logs.txt
I tried restarting my system, still, the Maven Project fails but the Freestyle Project with or without artifactory, both build successfully. With Artifactory option, the freestyle project's build history doesn't show any artifactory link, nor is it stored in the repository.
Please help.
-Ramesh

Hi Ramesh,
It Seems jenkins not able to find out JDK in your machine.
In windows 10 Machine JAVA MUST BE INSTALLED AND ENVIRONMENT VARAIBLES you need to set like this below
JAVA_HOME : C:\Program Files\Java\jdk1.8.0_112
PATH      : C:\Program Files\Java\jdk1.8.0_112\bin
IN JENKINS UI Do below setting
Go To Jenkins -> Manage Jenkins -> Configure System -> JDK.
Configure path to the JDK under JAVA_HOME field.
Thanks
Ravi

Hi Ramesh,
Can you post full log here.  did you configure security and security-settings.xml  in .M2 folder
Regards
Kothandaraman

default

release
release
http://localhost:8081/artifactory/libs-release-local

true

false

snapshot
snapshot
http://localhost:8081/artifactory/libs-snapshot-local

false

true
always

default

release
admin
{*** Insert password here ***}

snapshot
admin
{*** Insert password here ***}

===============

{NX9diPDU5akHDhjJGGkUabq8A2ETpgix2/R9GeAFnr4=}

=====
mvn -emp password
mvn -ep password
place these two files in .M2 folder.
Please cross check Java_home and M2 home also.
Regards
Kothandaraman

Hi Kothandaraman,
I have already attached the console logs in the file Console Logs.txt in my first post. Please let me know if some other logs need to be extracted. If yes, how?
Where can I get the "settings and setting-securit.xml files" from? Let me know, so that I can place it in the .M2 folder.
How do I cross check between Java_home and M2 home?
My M2 folder looks as follows:-

The Environmental variables are set as follows:-

Please help me proceed.
Regards
Ramesh

Thank you very much Kothandaraman.
After adding the JAVA_HOME path in Global configuration, my build was successful and it saved in artifactory.

Where should I add the two xml files you have given?
It contains some encrypted passwords also, where will I get those from, in my system?

Dear Ramesh,
Thanks. Your results saved in artifactory your steps are correct if you want to send encrypted password from maven to artifactory only you have to follow these steps. I am also not sure, I am new to devops and learning,
KAJA SIR has to answer.
regards
Kothandaraman.

Dear Kothandaraman,
Thanks a lot for all the help.
Regards
Ramesh


Need to first face detection?

Hi MarekKowalski,
Sorry for this question, but I am a newbie in this field, I wonder what if need to firstly face detection?
Thanks!

Hi,
I am having trouble understanding your question, could you rephrase it?
Thanks,
Marek

Hi,
I am sorry, It means if I use DAN for the face alignment problem so I need to execute face detection? or the DAN algorithm has face detection on it?
Thanks!

Hi Marek,
Thank you for your response, because OpenCV's face detection not exactly for some situation so now I    will use deep learning for face detection problem, but I am considering I will have more capability in my app :( Do you have any suggestion for me?
Thanks!

Hi,
I am not sure what you mean by " I am considering I will have more capability in my app ", could you elaborate?

Hi Marek,
That means when I use this model for my app (on mobile) which use more Ram

Hi,
You might want to consider a method that does both face detection and alignment, such as this:
https://arxiv.org/abs/1604.02878
Marek

HI Marek,
Thanks for your response, I will try it 👍


captcha

Error occured when checking captcha result : ERROR_CAPTCHA_UNSOLVABLE, Captcha could not be solved by 5 different workers.
I am getting an error like this.

Seems like an intermittent issue  but if this persist , can you contact anticaptcha support to resolve the issue
https://anti-captcha.com/clients/help/tickets/list/all

Seems like an intermittent issue  but if this persist , can you contact anticaptcha support to resolve the issue
https://anti-captcha.com/clients/help/tickets/list/all


Update README.md

Kindly review changes, and I am pretty sure the changes are a bit vague. So I am ready to clarify.

Coverage remained the same at 97.398% when pulling 940e60fc8f92918cba5e1e24b7b75fecff33515d on AhsenKh:patch-1 into 61f27b747de3797e91617ba69ee68582bc9de858 on giakki:master.

@AhsenKh ping?

Closing for lack of response.


Accessing formParameters passed from openForm

This article is linked to as reference for the formParameters parameter of Xrm.Navigation.openForm, but it doesn't actually say how to access those parameters. These at least appear to be available as input.data, but I can't find this documented anywhere.
If input.data is supported, I'd be more than happy to create a PR updating the docs :), otherwise, how are parameters accessed?

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

ID: 70ab1a46-e673-1783-7bc5-09725a878c4a
Version Independent ID: 3e54ebd6-296b-815a-e502-cc9e19726013
Content: Configure a form to accept custom querystring parameters (model-driven apps) - Power Apps
Content Source: powerapps-docs/developer/model-driven-apps/configure-form-accept-custom-querystring-parameters.md
Service: powerapps
Sub-service: mda-developer
GitHub Login: @Nkrb
Microsoft Alias: nabuthuk

I think this was addressed in #3453
No documentation about this because it isn't supported.