having trouble when it comes to  HTML element

i seem to be running into a problem if i ask it to chose an item from an html  list of  values.  here's the output as one can see it's struggling with the pulldown selector:
INFO     [agent] 🚀 Starting task: go to https://edeliverables.com/tts/openai.html. from Predefined Tasks, chose the "eli5" option. print the index of the "eli5" option to the console.
> INFO     [agent]
> 📍 Step 1
> INFO     [agent] 🤷 Evaluation: Unknown: The task requires navigating to a specific URL.
> INFO     [agent] 🧠 Memory:
> INFO     [agent] 🎯 Next Goal: Navigate to the URL https://edeliverables.com/tts/openai.html.
> INFO     [agent] 🛠 Action: {"go_to_url":{"url":"https://edeliverables.com/tts/openai.html"}}
> INFO     [agent]
> 📍 Step 2
> INFO     [agent] 👍 Evaluation: Success
> INFO     [agent] 🧠 Memory:
> INFO     [agent] 🎯 Next Goal: Choose the 'eli5' option from the Predefined Tasks dropdown.
> INFO     [agent] 🛠 Action: {"click_element":{"index":1}}
> INFO     [agent] 📄 Result: 🖱  Clicked element 1: html/body/div/div/div/div/table/tbody/tr/td[2]/div/div/select
> INFO     [agent]
> 📍 Step 3
> INFO     [agent] 👍 Evaluation: Success
> INFO     [agent] 🧠 Memory:
> INFO     [agent] 🎯 Next Goal: Print the index of the 'eli5' option to the console.
> INFO     [agent] 🛠 Action: {"done":{"text":"The index of the 'eli5' option is 2."}}
> INFO     [agent] 📄 Result: The index of the 'eli5' option is 2.
> RESULT   [agent] The index of the 'eli5' option is 2.
> INFO     [agent] ✅ Task completed successfully

for some reason the markdown codes did not work in my initial post. here's an image of the output showing that it is struggling (clicked on element 1  even though it knows the correct  is located at index 2, it did not select it properly):

We already have a version locally that fixes it, but requires just a little more testing. We will fix in the next version (should be a day or so)

Thanks for finding this! We already have a version locally that fixes it, but requires just a little more testing. We will fix in the next version (should be a day or so)

I found that this project has a similar problem to yours, it obviously has completed the task, but it will continue to perform the task by itself, perform some actions that may have nothing to do with the task, I added prompt words to it, the effect is not very good. But this project is really great!

Can we confirm this issue is now fixed ?

thank you @gregpr07 it works correctly now


Change contentViewShadowColor property to strong

Changed assign to strong to avoid deallocation of content view shadow

When program first run， just first install and run, The Shadow is show purple color，I had set the shadowShow  is No. also have a problem with first install and run,I had set the panGestureEnabled  is No but the sideMenu still can pan。

I'm sorry about that my English is really poor, I hope you can help reslove this problem. Thank you!


Dependencies are underspecified in docs

I tried to build Traffic Server 9.1.2 from source. It turned out that build process depends on perl, but it is not listed in dependencies in the documentation.
Also, I recommend you specifying which of the dependencies are build-time or run-time.

We removed the check for Perl for 9.2.0. I set it to be backported to the 9.1.3 release: #8611

But you still need perl to build ATS perl module?


[Suggestion] Expanded Storage support

Any chances it will support expanded storage?

I've built the ability to add custom mod containers to the list of supported ones for the mod, but it'll ultimately be up to the mod's author to make the integration. Generally any mods that extend vanilla containers will work automatically, but if they wrote completely custom code they would need to make the integration themselves. If there's a particular mod you want compatibility with, I'd suggest reaching out to its author (or open an issue in their tracking system). I'm happy to assist mod creators in creating the integration if they need any help.

I would be interrested in implementing support for inmis backpacks, could you maybe provide some documentation on what would need to be implemented for that?


ACCESS DENIED - GIVE NEW API

Access Denied
You don't have permission to access "http://ca.account.sony.com/api/authz/v3/oauth" on this server.
Guys if there is new api pls update it
I try send a POST request
with POST DATA
access_type=offline&client_id=09515159-7237-4370-9b40-3806e67c0891&redirect_uri=com.scee.psxandroid.scecompcall://redirect&response_type=code&scope=psn:mobile.v2.core psn:clientapp
Keep getting Access Denied

Again same thing
https://ca.account.sony.com/api/authz/v3/oauth
Response code: 403 (Forbidden)
Is a there an updated like maybe a v4/oauth

Guys if there is new api pls update it

Friendly reminder: psn-api is provided for free to you and is built on hundreds of hours of collective work, also done for free. There's a way to ask for support, and making demands in all caps text isn't it.


Performance consideration about OpenDAL WASM

From my limited understant about WASM, it would be helpful to port some CPU intentsive job into it, but may less helpful for I/O intentsive job and OpenDAL is much more about network I/O. Maybe we could compare the performance between the node.js binding and OpenDAL WASM one day.
It's still meaningful to make effort on this from enriching the ecosystem perspective.

Hi, does this issue have a specific action that needs to be taken?

No for now since OpenDAL WASM isn't ready.

No for now since OpenDAL WASM isn't ready.

Got it, let's track this until we are ready.


Add new collection 500 squares #2868

can I get some help with merging my project please.
I really appreciate everything you guys are doing and I know you must really busy.
Please help, I'm new to github and am really struggling to work this out on my own.
@MillHaus33
@cliobitcoinbank

I commented on your other thread, do not make multiple threads.  Can I confirm that you have your folder renamed to your slug and it doesnt have spaces or other characters??  Dont even reply here, close this and reply on the other Issue

No no no no no you did not make a pull request and open an issue 10 minutes later did you?  Did you?

Sorry bro,
Have been trying to get help on this for days and I have no-one I know who uses github so I'm really reliant on you guys and myself to work out these problems.
Sorry if I stuffed something up.
I closed the other thread as I have stopped trying to clone to my local and instead have uploaded the files through the repo on the browser. This seemed to have worked but the checks failed?...I don't believe there is anything wrong with the code and have used a validator to verify which returns a positive result.
Appreciate your help and any advice will be appreciated.
Thanks

The previous problem was possibly related to the folder names, not sure tho.  I'll take a look at the files but it'll be 24 hours before somebody who can merge your pull request will get to it.  Come check back and if most of the pull requests in front of yours are gone, then we can open an issue on it and get to the bottom of it.  Until then, try to look at some of the examples in the instructions on the main page, each file is layed out a little differently so make sure you are in compliance.  I could be wrong, but some errors might not be totally disqualifying so let the maintainers check it first just in case you're correct about your code being right and you're already on your way to being listed.  If you want to go get more listing done while you are waiting, lookup the Ordswap twitter, follow their discord link, and you can apply to have your collection listed on Ordswap, a market site who do not use this repository and instead ask you to follow a listing process in their discord channel.

Try removing the comment codes maybe?

thanks for getting back to me, really appreciate it
I'll check back tomorrow
already removed comment codes

https://github.com/ordinals-wallet/ordinals-collections/pull/2876/files

@cliobitcoinbank
Hi bro, what is the link for?...  2876 isn't my project?

@cliobitcoinbank
this is my collection:
https://github.com/ordinals-wallet/ordinals-collections/pull/2868

@cliobitcoinbank @MillHaus33
Please can you help me......not sure why my pull request isn't getting merged?

  Apologies for the long wait, unfortunately the manual human review process is the only thing that prevents theft, lawsuits over IP, and "bad stuff" from making it into major collections.  That is what makes this github repository so popular, you know if you use it for your tool or website you won't go to jail or be sued.
Ordinals started alpha in January.  "We are early.TM"  Parent-Child Ordinals are a way of Organizing collections into child parent grandparent relationships that is a planned update of the Ord protocol that will decentralize the collection process.  In time, you may grow to appreciate standing in this line because of the early mover advantage that creating ordinals this early will grant you and your collection. Thats why I'm spending time meeting the other OG's like you, and reviewing their questions while I wait and trying to help solve them or smooth the process for maintainers.  Personally and professionally, I have been waiting almost 2 months for them to update my collection and add some new ordinals to it.  https://github.com/ordinals-wallet/ordinals-collections/issues/2323  I guess my point is, we feel your pain but your collection will do better and make more money if, instead of posting about the wait times, you help others that might be stuck with an issue you can fix.  I hope this helps, you can go into ordswaps discord and start the process to get your collection listed on ordswap, they use a separate process of applying to be a collection in their discord tech support section.  Good luck.

Thanks for for your response, I appreciate all the assistance.
I will continue to be patient wit this process which is new to me as I have never really used github before.
We are all learning I guess.
Sorry to hear you have been waiting so long.
I guess my initial experience with this repository seemed very efficient a few months ago, I guess there are alot more pople adding collections now.
I have seen alot of pull request being merged after mine.
I initially submitted mine over a  month ago but as I'm new removed it because I thought there was something wrong.
I will always help others if I can but currently my skills are quiet limited.
Thanks again for your time and support

Hi I have added a new Pull Rquest for my collaection as the previous one was closed ( https://github.com/ordinals-wallet/ordinals-collections/commit/29fd5d6ea3d6354769cddc86821c1506ac0d97f9 ) without any info why.?
@MillHaus33
Just trying to understand what the issue is so I can fix this, Any advice appreciated.
New Pull request #2953

@MillHaus33
disappointed I can't get my collection merged, really poor assistance.
bad experience and poor communication
thanks for your help or lack of it


Plumbing in conf types

Plumbs in type NBytes* = Natural to represent a number of bytes. This is used in to both document the code where units are in bytes. It also provides the ability to add bytes units for confutils (see https://github.com/codex-storage/nim-codex/issues/466).
With this PR this now works: ./build/codex --storage-quota=5MB. Units are always in 1024 powers (not base 10).
I settled changing Manifest and CacheStore to use NBytes while not using it in the more low level stream objects. It mostly adds value at that layer which more describes the system behavior.
Also, I tried out a couple of naming variants, but found Bytes too confusing and ByteSize or SizeBytes less aesthetics.

Added ability to parse a subset of times units from seconds to weeks.
This now works: ./build/codex --storage-quota=5MB --block-ttl=1h.

Thank you for the update!
Did some tests with the following values
--storage-quota=2m/2M/2mb/2MB
--block-ttl=2s/2S/2m/2M/2h/2H/2d/2D/2w/2W

Tests shows that TTL is applied only at app start, but it is another question.

Results
Size

Set 2MB limit
./build/codex --storage-quota=2m
./build/codex --storage-quota=2M
./build/codex --storage-quota=2mb
./build/codex --storage-quota=2MB

Upload 1MB.bin
curl -X POST localhost:8080/api/codex/v1/upload \
  -H "Content-Type: application/octet-stream" \
  -H "Expect: 100-continue" \
  -T 1MB.bin

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100 1024k  100    49  100 1024k    578  11.8M --:--:-- --:--:-- --:--:-- 11.9M

zdj7WcsMtmM1zsXqHJ7RFwkFvatMbedh8ajUdSAGm5qANLUZTroot

Time

Set different ttl
./build/codex --storage-quota=12mb --block-ttl=2s
./build/codex --storage-quota=12mb --block-ttl=2S
./build/codex --storage-quota=12mb --block-ttl=2m
./build/codex --storage-quota=12mb --block-ttl=2M
./build/codex --storage-quota=12mb --block-ttl=2h
./build/codex --storage-quota=12mb --block-ttl=2H
./build/codex --storage-quota=12mb --block-ttl=2d
./build/codex --storage-quota=12mb --block-ttl=2D
./build/codex --storage-quota=12mb --block-ttl=2w
./build/codex --storage-quota=12mb --block-ttl=2W

Set 2m ttl
./build/codex --storage-quota=12mb --block-ttl=2m

Upload file
curl -X POST localhost:8080/api/codex/v1/upload \
  -H "Content-Type: application/octet-stream" \
  -H "Expect: 100-continue" \
  -T upload.txt

Download file
curl localhost:8080/api/codex/v1/download/zdj7WX952632SDRjjDVe7ipiBzHi3Uce1rHJE7tnVyNy9S2p8 \
  -o zdj7WX952632SDRjjDVe7ipiBzHi3Uce1rHJE7tnVyNy9S2p8.txt

Restart app

Download file again - Ok

Wait ~ 2 minutes

Restart app

Download file again - Failed, because TTL was expired

And one more note about the size - not sure, maybe this it's the right behaviour

Run app with 2m limit

Upload 1MB.bin file

Restart app with 1m limit and get the error about Current bytes used for cache quota

output
/opt/build/plumbing/nim-codex/codex.nim(126) codex
/opt/build/plumbing/nim-codex/codex/codex.nim(107) start
/opt/build/plumbing/nim-codex/vendor/nim-chronos/chronos/asyncfutures2.nim(369) futureContinue
/opt/build/plumbing/nim-codex/codex/codex.nim(110) start
/opt/build/plumbing/nim-codex/codex/stores/repostore.nim(351) start
/opt/build/plumbing/nim-codex/vendor/nim-chronos/chronos/asyncfutures2.nim(372) futureContinue
/opt/build/plumbing/nim-codex/codex/stores/repostore.nim(385) start
/opt/build/plumbing/nim-codex/vendor/nimbus-build-system/vendor/Nim/lib/system/assertions.nim(28) raiseAssert
/opt/build/plumbing/nim-codex/vendor/nimbus-build-system/vendor/Nim/lib/system/fatal.nim(54) sysFatal
[[reraised from:
/opt/build/plumbing/nim-codex/codex.nim(126) codex
/opt/build/plumbing/nim-codex/codex/codex.nim(107) start
/opt/build/plumbing/nim-codex/vendor/nim-chronos/chronos/asyncfutures2.nim(369) futureContinue
/opt/build/plumbing/nim-codex/codex/codex.nim(110) start
/opt/build/plumbing/nim-codex/codex/stores/repostore.nim(351) start
/opt/build/plumbing/nim-codex/vendor/nim-chronos/chronos/asyncfutures2.nim(391) futureContinue
]]
[[reraised from:
/opt/build/plumbing/nim-codex/codex.nim(126) codex
/opt/build/plumbing/nim-codex/codex/codex.nim(107) start
/opt/build/plumbing/nim-codex/vendor/nim-chronos/chronos/asyncfutures2.nim(391) futureContinue
]]
Error: unhandled exception: All storage quota used, increase storage quota! [AssertionDefect]


feat(google): Add support for Google Load Balancer

Issue #469

Looks like I merged too soon as there was another comment too - sorry, my bad. @NeverovDS can you plz send another PR?


Black possible landing points don't show when black has some hit checkers

https://github.com/danialm/backgammon/pull/8


Can freeRDP use hardware acceleration on the server?

I have Quadro 5000 graphics and graphics-intensive software on my server. When using this software after connecting to the server through mstsc, the hardware acceleration function cannot be used. Can hardware acceleration be enabled in this situation through freeRDP? (VNC can only provide a single session, not considered)

no.


fix: fetch js collections after page clone

Description
Fetch js collections API was missing after page clone
Fixes #10142
Type of change

Bug fix (non-breaking change which fixes an issue)

Checklist:

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

Test coverage results :test_tube:
:white_circle: Total coverage has not changed
// Code coverage diff between base branch:release and head branch: fetch-js-collection-after-clone

Status
File
% Stmts
% Branch
% Funcs
% Lines

:red_circle:
app/client/src/sagas/PageSagas.tsx
23.88 (-0.07)
6.1 (0)
14.71 (0)
25.78 (-0.09)

/ok-to-test sha=38b3202


#3142, parse SQLs which database types are unidentified using SQL92 parser

Fixes #3142.

Pull Request Test Coverage Report for Build 468

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

Totals

Change from base Build 423:
0.007%

Covered Lines:
9739

Relevant Lines:
14784

💛  - Coveralls


Lines wrongly marked as changed on ISO-8859 files

Description
Lines with accented characters on ISO-8859 files are wrongly marked as changed:

Furthermore the whole file is unchanged:

Neovim version
NVIM v0.7.0-dev+674-g24f9463dd
Operating system and version
Ubuntu 20.04.4 LTS
Expected behavior
Only lines with actual changes should be marked as changed.
Actual behavior
Lines with accented characters on ISO-8859 files are wrongly marked as changed.
$cfg['dados']['cliente']              = $option->getOption('dados_cliente');

/*****************************************************************
			CONFIGURAÇÕES GERAIS
*****************************************************************/
// Dados do editor do evento
// para uso em assinaturas de email

Minimal config
vim.o.packpath = '/tmp/nvim/site'

local plugins = {
  gitsigns = 'https://github.com/lewis6991/gitsigns.nvim',
  -- ADD OTHER PLUGINS _NECESSARY_ TO REPRODUCE THE ISSUE
}

for name, url in pairs(plugins) do
  local install_path = '/tmp/nvim/site/pack/test/start/'..name
  if vim.fn.isdirectory(install_path) == 0 then
    vim.fn.system { 'git', 'clone', '--depth=1', url, install_path }
  end
end

require('gitsigns').setup{
  debug_mode = true, -- You must add this to enable debug messages
  -- ADD GITSIGNS CONFIG THAT IS _NECESSARY_ FOR REPRODUCING THE ISSUE
}

-- ADD INIT.LUA SETTINGS THAT IS _NECESSARY_ FOR REPRODUCING THE ISSUE

Steps to reproduce

nvim --clean -u minimal.lua
...

Gitsigns debug messages
No response

Sorry, I am not able to reproduce. A minimal config will be needed.
You can try running :Gitsigns preview_hunk or :Gitsigns diffthis to see what Gitsigns is getting as the index version.

I'm not really sure. All I know is that CONFIGURA<c7><d5>ES GERAIS is what we are getting from git show :0:<filename>. I guess the process output needs to be decoded somehow.

Steps to reproduce:

Unzip the file gitsigns.zip
Change into the uncompressed gitsigns directory
Initialize git: git init && git add . && git commit -m "adding latin1 encoded file"
Open vnim nvim .
Open the file  :e latin1.php

The file will show lines 3 and 8 as changed (2 and 7 in the image below):

Ok, I've been able to reproduce this by setting set fileencoding=latin1. The fix for this will be very difficult as we will need to pass this through something like iconv.
If it doesn't impact you too much, I will close this, but it's good to know about these kinds of edge cases.
I'm currently experimenting using iconv via ffi, but I'm doubtful I'll be able to get it to work.

@lpanebr I've got a VERY rough PR (#525) to use iconv via FFI. From my usage it appears to "just work".

@lpanebr , I've cleaned up #525 quite a bit. Are you able to give it a try?

wow! cool! Unfortunately it still the same problem and the same :Gitsigns preview_hunk 😞

Do you know if your Neovim build has LuaJIT? Your build must also have icov but I'm assuming most builds will have.

I've updated the PR with some additional debug messages. You can see these with :Gitsigns debug_messages. Look for a message with the prefix doiconv: .... If it works, you should see doiconv: Converting latin1 to utf-8.

Do you know if your Neovim build has LuaJIT?

Not sure how to check that. I know I've built it with the Release build type:
make CMAKE_BUILD_TYPE=Release

I've enabled debug (I think...) with this

Uninstalled and reinstalled the gitsigns extension.
Open the my latin1.php file and still no change

When I run :Gitsigns debug_messages I get nothing
I then try :messages but nothing... 🤔

If :Gitsigns debug_messages isn't showing anything, then something is wrong. Maybe you need to run PackerCompile or something?
To know if you have luajit just run nvim --version.

Well, I do have LuaJIT:
NVIM v0.7.0-dev+1453-g8486c87e5
Build type: Release
LuaJIT 2.1.0-beta3

Deleted the packer_compiled.lua file

and recreated it

Same results...
Now with the minimal.lua (no changes in it):

Same results.
But at least now I've got output from :Gitsigns debug_messages.
However no doiconv: Converting latin1 to utf-8 in it:
signs.init: Using vimfn signs
run_job: git --no-pager --literal-pathspecs --version
fn: Deriving GitSignsAdd from DiffAdd
fn: Deriving GitSignsChange from DiffChange
fn: Deriving GitSignsDelete from DiffDelete
fn: Deriving GitSignsAddNr from GitSignsAdd
fn: Deriving GitSignsChangeNr from GitSignsChange
fn: Deriving GitSignsDeleteNr from GitSignsDelete
fn: Deriving GitSignsAddLn from DiffAdd
fn: Deriving GitSignsChangeLn from DiffChange
fn: Deriving GitSignsDeleteLn from DiffDelete
fn: Deriving GitSignsCurrentLineBlame from NonText
fn: Deriving GitSignsAddInline from TermCursor
fn: Deriving GitSignsDeleteInline from TermCursor
fn: Deriving GitSignsChangeInline from TermCursor
fn: Deriving GitSignsAddLnInline from GitSignsAddInline
fn: Deriving GitSignsChangeLnInline from GitSignsChangeInline
fn: Deriving GitSignsDeleteLnInline from GitSignsDeleteInline
fn: Deriving GitSignsAddLnVirtLn from GitSignsAddLn
fn: Deriving GitSignsChangeVirtLn from GitSignsChangeLn
fn: Deriving GitSignsDeleteVirtLn from GitSignsDeleteLn
fn: Deriving GitSignsAddLnVirtLnInLine from GitSignsAddLnInline
fn: Deriving GitSignsChangeVirtLnInLine from GitSignsChangeLnInline
fn: Deriving GitSignsDeleteVirtLnInLine from GitSignsDeleteLnInline
run_job: git --no-pager --literal-pathspecs rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
attach(1): Attaching (trigger=BufRead)
run_job: git --no-pager --literal-pathspecs config user.name
run_job: git --no-pager --literal-pathspecs rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
run_job: git --no-pager --literal-pathspecs --git-dir=/home/lpanebr/tmp/gitsigns/.git -c core.quotepath=off ls-files --stage --others --exclude-standard --eol /home/lpanebr/tmp/gitsigns/latin1.php
watch_gitdir(1): Watching git dir
run_job: git --no-pager --literal-pathspecs --git-dir=/home/lpanebr/tmp/gitsigns/.git show :0:latin1.php
update(1): updates: 1, jobs: 6
update(1): updates: 2, jobs: 6
update(1): updates: 3, jobs: 6
update(1): updates: 4, jobs: 6
update(1): updates: 5, jobs: 6
update(1): updates: 6, jobs: 6
Press ENTER or type command to continue

I also do have iconv:

There is no doconv: ... message in there. There should be one whether it works or not. Are you sure you have the necessary commit?

well.. that's embarrassing... I assumed it was on main already.
I'll learn how to install a specific commit and try. SORRY

With packer I could install the commit with:
use {
    "lewis6991/gitsigns.nvim",
    commit = "de91d35443d3dfdf744aa144eb978691012d6081"
  }

and now I get this errors only when opening my latin1.php file:

Still don't know how to install a specific commit in the mininal.lua.

Ok. Looks like your Neovim isn't built with iconv. The error just means this would have failed:
local iconv_lib = require'ffi'.load'iconv'

Can you try running that directly in nvim. I suspect it will error.

:lua local iconv_lib = require'ffi'.load'iconv'

:local iconv_lib = require'ffi'.load'iconv'

Just found out nvim has a builtin iconv() function we can use. No need for this wacky ffi stuff. I've updated the PR. Instead of checking out a commit, just checkout the iconv branch.

IT WORKS!!
🥇 👏👏👏 🤩🤩
@lewis6991 ROCKS!!!

Nice!
Using the builtin makes this so much easier.


XDG Base Directory Specification compliance

Yard uses ~/.yard to store configuration, gem index, etc. It would be really nice to split this data to respectful folders defined by XDG Base Dir Spec. Mainly config should go into $XDG_CONFIG_HOME/yard/, gem index and other generated data can be stored in $XDG_CACHE_HOME/yard/.
This would help with backups, keeping configuration separated from cache. But most importantly is that $HOME would be kept clear from unnecessary top level dotfiles. Check out how git, htop, systemd, mc and other CLI tools implement this spec.

I would accept support for XDG base directory support as a pull request, but I am going to close this issue out since we have a policy to not keep feature requests open.
If you want to take a look at implementing this I don't see any reason why we can't support it, as long as we fallback to Dir.home when these variables are not present.

@lsegal this seems more a bug than a feature request. the default should be the XDG default values not the $HOME/.yard, even when XDG_* environment variables are not set.


Release 3.9.3

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (e757999) 91.93% compared to head (7fbdcd7) 91.95%.
Report is 1 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #489      +/-   ##
==========================================
+ Coverage   91.93%   91.95%   +0.02%
==========================================
  Files          55       55
  Lines        4796     4800       +4
==========================================
+ Hits         4409     4414       +5
+ Misses        387      386       -1

Files
Coverage Δ

sentinelhub/_version.py
100.00% <100.00%> (ø)

sentinelhub/commands.py
78.72% <100.00%> (ø)

sentinelhub/config.py
96.22% <100.00%> (+1.12%)
:arrow_up:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add standard_deviation to aggregate rules

Introduced the "Standard Deviation" rule to the aggregate rules in the full.json, full.php, and full.yml files. This involved the creation of a new PHP class and updates to the testing files. The number of aggregate rules in the README has been subsequently updated.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.006%) to 94.554%

Totals

Change from base Build<PHONE_NUMBER>:
0.006%

Covered Lines:
816

Relevant Lines:
863

💛  - Coveralls


Using FTPES with New-SFTPSession

See Wikipedia FTPS article (https://en.wikipedia.org/wiki/FTPS) under heading Methods of Invoking Security.
I can't seem to get New-Session to connect to an SFTP server that requires explicit mode.  Is there a setting to do this?

As the Wikipedia article you link to there points out FTPS is not the same as SFTP, with the former being a TLS/SSL extension of FTP (a la HTTPS vs. HTTP), while SFTP is the SSH File Transfer Protocol, which is an extension of the SSH protocol for file transfers.
This module is meant for the latter, not the former. If you're using FTPS, you'll need to look elsewhere, and if you're using SFTP, you'll want to make sure you're careful about calling it the right thing.

Thanks for the clarification Kenny - when I first started the project I
didn't realize our client was using FTPS because they kept saying SFTP.
And then it all became clear that they are two different animals and I was
using the wrong one!  I appreciate your response.
On Fri, Jul 27, 2018 at 11:50 AM Kenny Barnt<EMAIL_ADDRESS>wrote:

As the Wikipedia article you link to there points out FTPS is not the same
as SFTP, with the former being a TLS/SSL extension of FTP (a la HTTPS vs.
HTTP), while SFTP is the SSH File Transfer Protocol, which is an extension
of the SSH protocol for file transfers.
This module is meant for the latter, not the former. If you're using FTPS,
you'll need to look elsewhere, and if you're using SFTP, you'll want to
make sure you're careful about calling it the right thing.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/darkoperator/Posh-SSH/issues/212#issuecomment-408460289,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMTip3PQJXL6re6jZmxSqAQ3ZGRWkvNYks5uKza2gaJpZM4UOFEC
.


config: Require RFC 3339's more restricted version of ISO 8601

This brings us into compliance with JSON Schema, whose current validation draft requires RFC 3339 for date-times.  I've modeled the reference phrasing on the draft JSON Schema's date-time definition.
Fixes #389.
Obsoletes #480 (which still hasn't grown a Signed-off-by).

LGTM

LGTM


Handle passthrough copied files in Eleventy

re: https://github.com/webpro/knip/pull/454#issuecomment-1898688280

Thanks for the PR, this is so cool! I'm going to review it closely tomorrow.

const exts = DEFAULT_EXTENSIONS.map(extname => extname.slice(1)).join(',');
const copiedPackages = new Set<string>();
const copiedEntries = new Set<string>();

for (const path of Object.keys(dummyUserConfig.passthroughCopies)) {
  const isDir = !path.includes('*') && isDirectory(join(dirname(configFilePath), path));
  if (isDir) {
    copiedEntries.add(join(path, `**/*.{${exts}}`));
  } else if (isInternal(path)) {
    copiedEntries.add(path);
  } else {
    copiedPackages.add(path);
  }
}

Makes sense to me!

Awesome, can I merge it?

:rocket: This pull request is included in v4.0.4. See Release 4.0.4 for release notes.

@uncenter Maybe hard to find  4⃣0⃣4⃣  but you are still the center of v4.0.4 - thank you! 🙏

No, thank you! Glad to help, I've been loving this tool. Working on another possible plugin at the moment to make Knip work even better for some Eleventy users!

{ path: 'src/_includes/components/throbber.js', isDir: false }
neither, so added to copiedPackages
{ path: 'src/_includes/components/throbber.css', isDir: false }
neither, so added to copiedPackages
{ path: 'src/_includes/components/intl-number.js', isDir: false }
neither, so added to copiedPackages
{ path<EMAIL_ADDRESS>isDir: false }
neither, so added to copiedPackages
{ path<EMAIL_ADDRESS>isDir: false }
neither, so added to copiedPackages
{ path<EMAIL_ADDRESS>isDir: false }
neither, so added to copiedPackages
{ path<EMAIL_ADDRESS>isDir: false }
neither, so added to copiedPackages
{ path<EMAIL_ADDRESS>isDir: false }
neither, so added to copiedPackages
{
  path: 'node_modules/speedlify-score/speedlify-score.js',
  isDir: false
}
neither, so added to copiedPackages
{
  path<EMAIL_ADDRESS>  isDir: false
}
neither, so added to copiedPackages
{
  path: 'node_modules/lite-youtube-embed/src/lite-yt-embed.js',
  isDir: false
}
neither, so added to copiedPackages
{
  path: 'node_modules/artificial-chart/artificial-chart.{css,js}',
  isDir: false
}
neither, so added to copiedPackages
{ path: 'netlify-email', isDir: true }
isDir so added plus glob to copiedEntries
{ path: 'src/img', isDir: true }
isDir so added plus glob to copiedEntries
{ path: 'src/blog/*.png', isDir: false }
neither, so added to copiedPackages
{ path: 'src/blog/pretty-atom-feed-v3.xsl', isDir: false }
neither, so added to copiedPackages
{ path: 'src/favicon.ico', isDir: false }

Hmm I feel like paths like src/_includes/components/throbber.js shouldn't be considered "packages". What is isInternal checking?

This looks like it will fix it:
if (isDir) {
    copiedEntries.add(join(path, `**/*.{${exts}}`));
} else if (isInNodeModules(path)) {
    copiedPackages.add(path);
} else {
    copiedEntries.add(path);
}


ReplyTo should also allow voice metadata to be specified.

At https://github.com/praekelt/vumi-http-api/blob/develop/vumi_http_api/resource.py#L146, the reply-to options should also allow voice metadata to be specified.

Since we have decided to not yet support reply_to for this API, a better solution would be to remove ReplyToOptions, since it is not being used anywhere.


FEAT: support kserve with authorino

Activate extauth for grpc traffic
Set host on requests from activator to trigger authconfig
Temp Authorization header fix to workaround https://issues.redhat.com/browse/OSSM-4873

@aslakknutsen how can I test it?

Not much to test beyond that they get installed. This depends on a few other PRs coming elsewhere

You can always setup a echo service with label "component: predicator" and;

call it by ip and use header k-original-host with a host name and see it end up as Host in the echo request
call something that's "pass_through" in extAuth with an Authorization header and see it's still there when it reach the target

As for the linter errors, I will soon push cleanup to the target branch so we will see if there's anything left in your PR


Clarity on debug libraries further settings

People might waste hours/days trying to find out why their debug ros2 does not work while it is to do with missing python debug symbols and binaries.
https://github.com/ros2/ros2/issues/525#issuecomment-490069329
https://github.com/ros2/ros2/issues/525#issuecomment-658771320

@christophebedard  Thanks for approving the run. I have removed the whitespace. Request to reapprove the workflow run.

@Mergifyio backport rolling galactic

@clalancette : Thank you.
Galactic and rolling uses
.. include:: _Windows-Install-Prerequisites.rst
unlike foxy.
This has caused conflicts in backports.
#2256 #2257


security/acme-client: add a -4 "IPV4" only option to the plugin

Issue: When renewing / issuing licenses using Namecheap API and your WAN address is both IPv4 and IPv6, the call via curl to ifconfig.co/ip will retrieve an IPv6 instead of IPv4.
This is a problem because the Namecheap API requires an IP address be registered but DOES NOT allow IPv6 addresses. Thus the issue/renew will fail every time.
Editing the file: /usr/local/sbin/acme.sh and changing line1748 from
_ACME_CURL="curl --silent --dump-header $HTTP_HEADER "

TO
_ACME_CURL="curl -4 --silent --dump-header $HTTP_HEADER "
Resolves the issue.
As i know an upcoming update would overwrite acme.sh, it would be nice to have a GUI option to choose this override. with this change i was immediately issued an LE cert for my domains.

I'm running into this problem as well -- my cert was requested no problem in March, but now I can't renew it. Particularly frustrating is that there is a field for "Source IP" which I would expect to be used instead of checking ifconfig.co (or anything else) but it seems to be ignored.
This isn't just a feature request -- it's a full on bug because until one of those two issues are fixed it's not possible (as far as I can tell) to use namecheap DNS validation at present and if it's not fixed before my certs expire I'll have to renew them by hand.

Also having this problem and I also thing this is a bug, not a feature request. Since there is no way to force ipv4, and the Source Ip field is ignored, there is currently no way to use namecheap dns validation if you have an ipv6 address returned by the ifconfig.co/ip.
Either adding a toggle with the code fix ysguy proposed, and/or fixing the Source IP field to actually use the supplied ip address should fix this issue. Both options should be added in my mind.

I am also running into this issue and would love to get it fixed

Editing the file: /usr/local/sbin/acme.sh and changing line1748 from

You are proposing to update acme.sh, so you need to request this feature on their issue tracker:
https://github.com/acmesh-official/acme.sh/issues
This cannot be fixed in OPNsense, we are just using acme.sh and rely on the features that are available.


Update README.md

This is part of #115

[x] Removed examples in favor of using the website
[x] Removed DOCUMENTATION.md in favor of using the website

@juanazam can you review it?


Eliminate margin on artist follow cards

artists cards get cut off by white margin but they should bleed all the way to the edge of the device

Styling property to not clip.


docs: updated "Installation" description in README.md

After testing, in the case of removing the redis-7 api, v9 can pass the test of redis6-server.
We should allow users using redis6 to install go-redis/v9.
@vmihailenco  Do we have other situations where redis6 cannot be used in v9?

Looks good, I am using v9 with Redis 6 and it works fine :+1:


RefCounted bound by Callable do not unreference when multithreading using WorkerThreadPool

Godot version
v4.1.3.stable.custom_build [fc7920185]
System information
Godot v4.1.3.stable (fc7920185) - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1080 Ti (NVIDIA; <IP_ADDRESS>56) - AMD Ryzen 7 5800X 8-Core Processor (16 Threads)
Issue description
Hello!
I dug down in an issue hanging my game and I suspect this is not intended behaviour.
All code from the minimal reproduction project:
Behaviour
The Issue occurs when a WorkerThreadPool task has a bound RefCounted parameter:
var ref_counted := RefCounted.new()

func _process(delta: float) -> void:
	prints("References:", ref_counted.get_reference_count())
	var id = WorkerThreadPool.add_task(_task.bind(ref_counted))

func _task(ref_counted: RefCounted) -> void:
	pass

The reference count of that parameter is increased, but never decreased.
Output:
References: 1
References: 2
References: 3
References: 4
References: 5
References: 6
References: 7
References: 8
References: 9
References: 10

I suspect this is also what happens in regular threads, as described here:
#82513
Significance
This is a problem if you run a lot of WorkerThreadPool tasks or pass around a lot of objects.
Any RefCounted created for a task and then bound, will persist in memory alongside, apparently, the task itself as a HashMapElement.

Apart from the memory leak itself being an issue, in the context of WorkerThreadPool it could hang the application.
I couldn't verify this, but if the task is kept in, what I presume a WorkerThreadPool lookup hashmap, the hashmap will grow to a problematic size. Sadly my C++ skills have reached their limit and I am just guessing at this point.
Solution
A workaround to this is to manually unreference the RefCounted parameter.
BUT if this is a bug, and gets fixed, this workaround will create unexpected behaviour!
var ref_counted := RefCounted.new()

func _process(delta: float) -> void:
	prints("References:", ref_counted.get_reference_count())
	var id = WorkerThreadPool.add_task(_task.bind(ref_counted))

func _task(ref_counted: RefCounted) -> void:
	# Enable this manual unreferencing to stop the leaking.
	ref_counted.unreference()

Output:
References: 1
References: 1
References: 1
References: 1

Steps to reproduce
See both scenes in the attached project, for reference and object leaking.
Or execute the code above.
Minimal reproduction project
reference_and_object_leaking.zip

I think #84888 might also be caused by this.

Interestingly enough, in your scene "leaking_object.tscn" adding ref_counted.unreference() doesn't actually solve the issue. The number of references grows by one each time either way.
extends Node2D

func _process(delta: float) -> void:
	var ref_counted := RefCounted.new()

	prints("References before task added:", ref_counted.get_reference_count())

	var id = WorkerThreadPool.add_task(
			func():
				ref_counted
				ref_counted.unreference()
	)

	prints("References after task added:", ref_counted.get_reference_count())

@synalice are you sure you have actually switched scenes and run the current scene? Because the count in that scene should not increase, only leak memory.

@synalice are you sure you have switched scenes and run the current scene? Because the count in that scene should not increase, only the memory should leak, since we are creating a new object each frame.

Yep, I did. I was accidentally pressing F5 and not F6 to run a scene. Please delete your comment, this is too embarrassing (；′⌒`)

Right, I'm not a C++ programmer, but is it possible that WorkerThreadPool dosn't actually ever remove finished tasks from the hashmap, except when wait_for_task_completion is called on the task id?
'worker_thread_pool.cpp'  writes the tasks with its ids as key to the  'tasks' hashmap:
WorkerThreadPool::TaskID WorkerThreadPool::_add_task(const Callable &p_callable, void (*p_func)(void *), void *p_userdata, BaseTemplateUserdata *p_template_userdata, bool p_high_priority, const String &p_description) {
   ...
	tasks.insert(id, task);

But the task only gets erased here, which is only ever called if done so explicitly by the user:
Error WorkerThreadPool::wait_for_task_completion(TaskID p_task_id) {
   ...
       tasks.erase(p_task_id);

If I do so in the sample project.... the references don't accumulate any more.
var ref_counted := RefCounted.new()

func _process(delta: float) -> void:

	prints("References:", ref_counted.get_reference_count())

	var id = WorkerThreadPool.add_task(_task.bind(ref_counted))
	WorkerThreadPool.wait_for_task_completion(id)

func _task(ref_counted: RefCounted) -> void:
	pass

Can someone confirm this?

From the looks of it, this also messes with is_task_completed, since it looks up the task id in the hashmap.
This code prints 'true':
var ref_counted := RefCounted.new()
var id: int

func _ready()-> void:
	id = WorkerThreadPool.add_task(_task.bind(ref_counted))

func _process(delta):
	prints(WorkerThreadPool.is_task_completed(id)) # TRUE

func _task(ref_counted: RefCounted) -> void:
	pass

Adding is_task_completed now prints 'false':
var ref_counted := RefCounted.new()
var id: int

func _ready()-> void:
	id = WorkerThreadPool.add_task(_task.bind(ref_counted))
	WorkerThreadPool.wait_for_task_completion(id)

func _process(delta):
	prints(WorkerThreadPool.is_task_completed(id)) # FALSE

func _task(ref_counted: RefCounted) -> void:
	pass

Sounds like the same restrictions as for threads apply, namely:
Thread:

Warning:
To ensure proper cleanup without crashes or deadlocks, when a Thread's reference count reaches zero and it is therefore destroyed, the following conditions must be met:

It must not have any Mutex objects locked.
It must not be waiting on any Semaphore objects.
wait_to_finish should have been called on it.

If this is intended to apply to WorkerThreadPool as well it would be rather unfortunate, since that would require the user to track and wait for task ids, which would pretty much eliminate the ease of use of WorkerThreadPool (fire and forget).

Seems to be similar to https://github.com/godotengine/godot/issues/84888, which was linked previously. And yes, every created WorkerThreadPool task must be waited at some point so that any task-specific allocated resources can be freed: https://github.com/godotengine/godot/issues/84888#issuecomment-1811706807. So this is a documentation issue.
As for having to manually track and wait task id's, in some situations it might be possible for WorkerThreadPool to automatically free these resources when the task callback function has returned, but that would need a new API call and it would be easy to accidentally run into some thread race conditions.

And yes, every created WorkerThreadPool task must be waited at some point so that any task-specific allocated resources can be freed

Why would you need to call WorkerThreadPool.wait_for_task_completion manually at all? I understand this now an API "problem", but why was it created like this at all? What are the situations where you don't immediately call WorkerThreadPool.wait_for_task_completion after calling WorkerThreadPool.add_task?

What are the situations where you don't immediately call WorkerThreadPool.wait_for_task_completion after calling WorkerThreadPool.add_task?

I think this may be one of the reasons people don't think threads improve performance. If you launch a thread and then immediately block until the thread completes, you may as well do the work of the thread directly, without incurring all the overhead to launch a thread.
In order to improve performance the thread must be allowed to run in the background. This requires storing the task (or thread) id and periodically checking if it has completed using is_task_completed (or is_alive for threads). As far as I know there is no signal available for this, so it must be polled.
Only once is_task_completed returns true should wait_for_task_completion be called in order to avoid blocking the main thread.
I would have hoped that WorkerThreadPool handles this automatically (so that it "can be used for simple multithreading", unfortunately this does not appear to be the case.

I would have hoped that WorkerThreadPool handles this automatically

Would it make senese to add a flag for that to happen automatically?
Something like:
add_task ( Callable action, bool high_priority=false, String description="", bool free_after_completion=false )

Would it make senese to add a flag for that to happen automatically?
I would really expect this to happen automatically. is_task_completed and wait_for_task_completion could simply return true/return immediately if the task has already been cleaned up (i.e., the task id is no longer found in the tasks hashmap).

Would it make senese to add a flag for that to happen automatically?

Not the flag hell, please. This behavior needs to be default for WorkerThreadPool to be easy to use as it is intended to be.
I think there is even a way to do it without breaking backwards compatibility.

is_task_completed and wait_for_task_completion could simply return true/return immediately if the task has already been cleaned up (i.e., the task id is no longer found in the tasks hashmap).

Yes, this.

What are the situations where you don't immediately call WorkerThreadPool.wait_for_task_completion after calling WorkerThreadPool.add_task?

There are plenty of scenarios like that, many used inside Godot itself. For example writing Vulkan pipeline cache into a file, scene culling, navigation mesh generation, resource loading etc. Probably more. One feature of manual task id management is to maximize parallelism when managing concurrent tasks and this is best done manually by the programmer who writes and understands the code.
The problem with not manually managing task id lifetimes also becomes apparent for example when the application is closing or if the calling node is deleted from the scene tree while running a task. Without waiting, the threaded code will become very difficult to manage, because there is no longer any reliable way to sync the task state safely. For example, how will the task thread communicate its results to a node or object that might have been already freed? The waiting is there to also guard against these problems so a programmer can choose how to react to these situations.
If you think there is a way to impove the API, it's always to make a proposal and see if the idea is workable: https://github.com/godotengine/godot-proposals/issues.


Document Sink Owners

We have quite a few sinks, and there are several more being proposed in PRs.  The main Heapster maintainers aren't necessarily familiar with all the sinks, so we should have one or two known "maintainers" for each sink.  If we can't find a sink owner, we should probably deprecate the sink unless someone steps up.

These are the current likely candidates based on a quick check of git history.  The ones with ? next to them I was unsure about, general due to lack of recent activity on the sink.  If you're on this list, please chime in and let us know if you're ok being pinged for reviews on the listed sink.

ElasticSearch: @AlmogBaku / @andyxning
GCM: @kubernetes/heapster-maintainers
Hawkular: @burmanm / @mwringe
InfluxDB: @kubernetes/heapster-maintainers
Metric: @kubernetes/heapster-maintainers
Kafka: @huangyuqi ?
Monasca: @taimir / @cheld ?
OpenTSDB: @petergardfjall ?
Riemann: @jsoriano ?

I wouldn't say that I'm actively maintaining the Riemann sink :) But sure, you can ping me if reviews are needed.
And in principle I could also help with Graphite sink if #1341 is merged. Maybe you can also ask to @theairkit after his great work reviewing and testing my PR.

@jsoriano are you still using the Riemann sink?  If nobody is actively using it, we might want to put out the call for interest, and if nobody is interested, simply deprecate it.

We are using it to forward metrics to Graphite, but in parallel we are also testing the Graphite sink of the PR and we could really promote it in any moment and stop using the Riemann one, so no problem for me to deprecate it.
There is an open PR (#1339) by @shmish111 for the events sink, I don't know if he is using heapster with Riemann.

Hi, @DirectXMan12 I can maintain ES and Kafka Sink;

I'll maintain the Wavefront sink (once it is merged)

@DirectXMan12 I may maintain InfluxDB, too. We currently use InfluxDB to store metrics internally.

@DirectXMan12: I only submitted a small patch for a piece of code that wasn't working properly. I'm not sure who wrote the majority of the OpenTSDB sink, but I would assume that that person is a more suitable candidate.

@DirectXMan12 Yes, I can take care of the Hawkular sink (and I assume @mwringe will also)

@DirectXMan12 I can take care of Graphite Sink, jointly with @jsoriano of course)
Also, I can do some tests and reviews for others sinks, if needed.

I think the Monasca sink could be removed, because support for Kuberentes has been added directly to Monasca.
WDYT?

Thanks for the honor 🗡
I'll be glad to do that :)

I've updated the list above.  It seems Monasca and Riemann could soon become candidates for deprecation, although I'd like to hear from @shmish111 about the latter.  The original author for the OpenTSDB sink seems to have been @bluebreezecf, so if they're no longer interested, we may wish to consider our options for that one as well.
Ping @piosz @mwielgus any other comments?

@DirectXMan12 I can take care of OpenTSDB sink. Sorry to reply so late.

Thanks, I've updated the list.

@piosz  @fgrzadkowski ok to officially commit this list in the repo?  Thoughts on the deprecation?

@DirectXMan12 is that means we'll get writing privileges ?

It would be nice to get that, or something like the main Kubernetes repo OWNERS functionality.  I'll keep you posted :-)

As discussed offline SGTM

FYI @fgrzadkowski added all sink maintainers to @kubernetes/heapster-reviewers team.

I'd be happy to take care of the Riemann sink.

I can take care of the Riemann sink too (i just need some time to dig into the code).

@jamtur01 @mcorbin please send a PR with appriopriate docs update

To be clear, one of you can do it. I doesn't have to be two separate PRs.

@jamtur01 @mcorbin great! If you have any doubt with the code of this sink I can try to help :)
There is currently an open pull-request for the events sink (#1339)

@jamtur01 @piosz I did a PR.


InconsistentAnalysisException from DartChangeBuilderImpl.createFileEditBuilder while typing

Analyzer Feedback from IntelliJ
Version information

IDEA IC-183.4886.37
2.2.0-edge.0df70ab15b9aec042046399e9c768cece51e04d6
IC-183.4886.37, JRE 1.8.0_152-release-1343-b26x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.13.6, screens 1680x1050  Retina

Exception
Please append the contents of:
file:///private/var/folders/t6/ghq95c9n0xx7qb0kmk21bm6w003j4x/T/report.txt
Dart analysis server, SDK version 2.2.0-edge.0df70ab15b9aec042046399e9c768cece51e04d6, server version 1.21.1, error: Failed to handle completion domain request: {id: 1620, method: completion.getSuggestions, params: {file: /Users/devoncarew/projects/google/codemirror.dart/lib/codemirror.dart, offset: 48880}, clientRequestTime:<PHONE_NUMBER>617}
InconsistentAnalysisException: Requested result might be inconsistent with previously returned results

#0      AnalysisSessionImpl._checkConsistency (package:analyzer/src/dart/analysis/session.dart:199:7)
#1      AnalysisSessionImpl.getResolvedUnit (package:analyzer/src/dart/analysis/session.dart:164:5)
#2      DartChangeBuilderImpl.createFileEditBuilder (package:analyzer_plugin/src/utilities/change_builder/change_builder_dart.dart:67:47)
<asynchronous suspension>
#3      ChangeBuilderImpl.addFileEdit (package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart:68:41)
<asynchronous suspension>
#4      DartChangeBuilderImpl.addFileEdit (package:analyzer_plugin/src/utilities/change_builder/change_builder_dart.dart:50:18)
#5      OverrideContributor._buildReplacementText (package:analysis_server/src/services/completion/dart/override_contributor.dart:80:19)
<asynchronous suspension>
#6      OverrideContributor._buildSuggestion (package:analysis_server/src/services/completion/dart/override_contributor.dart:102:39)
<asynchronous suspension>

I imagine this was fixed for https://github.com/dart-lang/sdk/issues/35169.

Closing this as stale. Sorry we didn't get a chance to look at this issue. It was reported against a version of Dart that is at least 6 months old; please re-open if you encounter this on the latest version of Dart (or Flutter).


Having a bubbles legend, if you apply an analysis, JS error is thrown

STR

Create a map of points (I've used paradas_metro_madrid one).
Style size by value, it should create a bubbles legend automatically.
Style color by value, it should create a categories legend automatically.
Reload the page.
Open the browser console.
Go to the points layer and add a new analysis (subsample for example 💃 ).
Apply the analysis.
💥 .

It fails because it needs a color for the bubble legend but in this moment the style model doesn't have one because none type is applied, so everything fails, and the worst thing, this is one of the reasons of a ghost node.

Deployed 🚀


Any way to pass in custom map options?

On smaller screens (iPhone 4s, e.g.), the input box is not usable. I'd like to move it outside of the map area. Also I'd like to remove the satellite option entirely, and allow gesture zooming. Is there any simple way to modify the map options?

I opened a pull request which supports the map-options attribute where you can pass in your options object which is just the underlying google maps options object. Not sure if it will be accepted yet but it does what I need for the time being.


Expire local tracks

@maxtaco, This mainly makes sure locally stored tracks get aged out instead of lasting forever, but I'm unsure whether this covers the intent of 2447. Would appreciate at least a first look at this draft.

This is a start, but there's a lot missing here.  There are several cases to consider:

We still want regular local tracking to work and not to expire.
Expiring local tracking is only for when some of the proofs are broken
The command-line experience needs to change in the case of tracking someone who has broken proofs. You should have the ability to drop into one of three outcomes: remote track with broken proofs, permanent local track with broken proofs, or an expiring local track.  If all proofs work, no need to show the option for a local expiring track.
The electron UI needs to access to these sorts of features, likely we'll have to change TrackOptions to express it.

I'm not fully sure if we can get away with storing the temporary and permanent local tracking links in the same slot in level DB.  It might be simplest to store them in two different locations.

Thanks for all the further info, but I have been spinning my wheels on this and it still doesn't seem quite right. Possibly bit off more than I could chew - or maybe it's close and just another tweak or two?

Seems like good progress. What seems not quite right?

In the test (copied from the soft fail test), Identify2 fails after the locally stored track has been read back out. I thought that if the rooter check fails and the track is stored locally that way, Identify2 should use it next time - or maybe that's not the case? It's unclear when this local, temporary track will come to bear and save the user another interaction before it expires. My test doesn't quite capture that.

BTW, we need another test to make sure this feature works with permanent local tracking.

The high-level points are:
1.your test was broken, since it was using hard proof check failures, which should never be snoozed; I fixed the test for you so I could get to bug 2 which is....

there are bugs in either your storing, or loading, or using of your temporary local tracks that you should look into; I didn't get a chance to dig any deeper

I recommend putting in some more Debug/Vlog1 code to track down what local tracking statement you're writing to LevelDB, and what statement you're reading back out.  Also, you should make your test more robust and it should query the results of identify to assert that the right tracking components failed, as I do in my snooze test.

See my comments in ff7cef6 for what was wrong with your test...

Hard proof failures: I thought all along this was for hard failures; we discussed the case where the site hosting the proof goes down, as opposed to just rate limiting. Isn't that a hard failure? Anyway, good to know, thanks again, I'll figure out the reading/writing.

No no no definitely only for soft errors.  Soft errors are of the form: 429 rate limits, or 503 server not available, etc.  The mental model is that GitHub went down, and now all of your tracker statements are failing.  So GitHub is sending you a 503, and you just want put off any decision for a day or so.

track.go:386: [D] | := local track created 2016-02-11 13:23:03 -0800 PST, expires: 2016-02-13 13:23:03 -0800 PST, it is now 1984-04-06 00:01:00 +0000 UTC
I at first thought this creation date was from the server but probably it is just using time.Now() instead of the global context clock.

Right, that's why I recommended not resetting the fake clock to now, to make these issues more obvious.  Almost certainly you are correct, most of the code uses time.Now(), but we've migrated over to using the clock dangling off of the global context as we've needed it.

Seems like this PR is currently failing test...

Also, how did you test the CLI interaction? I want to try to walk through it myself.

As for the CLI UX, here is a potential design:
Setup
alice runs keybase track bob
New UX Behavior:
If alice previously tracked bob, but one of the proofs that alice previously tracked is now soft-failing, alice is prompted:

Some of previously tracked proofs are failing. Ignore for 24 hours, Accept these new changes or Cancel? [I/a/c]

If the User answers Accept, then follow up:

Publish these changes publicly to keybase.io? [Y/n]

I would bracket the first letters (not just colorify), just to make it clearer: [I]gnore for 24 hours, [A]ccept these new changes or [C]ancel? [I/a/c]

To close to "Abort / Retry / Fail" ?

Anyways, as for testing, I was thinking:

Dial down expiration time to ~10s, so we can test they expire properly
Put something like github.com <IP_ADDRESS> in /etc/hosts.conf or the windows equivalent. That should give you a soft failure.

OK so I squashed/rebased onto current master and force-pushed this branch, hope that's ok!

Took a brief skim --- looking good, but I will go over it tomorrow.
BTW, what did you decide about outputting more information in the case of an expiring local track masking a failure?

I decided not to do it right now! What I did do was attempt to make the
letters bold with ColorString(), etc., and figured out those prompts are
rendered in miniterm, which didn't seem to do it right, at least on windows

something about the square brackets and the color codes maybe? I took
that back out but that's as far as I got tonight.

On Tue, Feb 16, 2016 at 7:26 PM, Maxwell Krohn<EMAIL_ADDRESS>wrote:

Took a brief skim --- looking good, but I will go over it tomorrow.
BTW, what did you decide about outputting more information in the case of
an expiring local track masking a failure?
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/pull/1934#issuecomment-184997964.

I'm putting in some UX for saying it's a temporary track. Good thing I did!
You last locally tracked t_charlie on 2016-02-17 09:38:10 EST (track expires on 2032-02-13 09:38:10 EST)

WAT?
Looking into it...

I fixed the UI issue we spoke of in commit 8a00288 above.  There's a big problem though.
The problem is this:

I track alice, everything works
I track alice, github fails, but I commit an expiring local track
I track alice, github is back up, but my expiring local track is still valid

I now get a crazy experience, that's asking me to track something that appears to work.  I'm not really sure what to do about this problem, thinking about it... Thoughts?
One proposal is to load the local track and the permanent track into the identify state, and to try the permanent track first, and fallback to the temporary.  If the permanent track works without a problem, then use that, otherwise use the expiring local track.  And update the UI accordingly. This might involve a lot of disruption though to the identify logic.

One proposal is to load the local track and the permanent track into the identify state, ...

From the user experience perspective, that seems to produce the right result. I think from a user's perspective as long as the state of the user satisfies either the expiring local track or the full track, then the user shouldn't be bothered.

There is some last-minute messaging --- if you didn't need the local track at all, the UX shouldn't show that it was used.

I suppose that comparing each individual proof result between expiring and
permanent tracks isn't any simpler than what you've proposed.
On Wed, Feb 17, 2016 at 8:22 AM, Maxwell Krohn<EMAIL_ADDRESS>wrote:

There is some last-minute messaging --- if you didn't need the local track
at all, the UX shouldn't show that it was used.
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/pull/1934#issuecomment-185281427.

That sounds like what I've proposed.  The order of operations would be to favor the permanent over the expiring, but to fall back to the expiring.  We keep a bit of the form "was the expiring track used" and bubble that back up to the CLI

(you couldn't do the whole operation twice, since that sends all sorts of UI RPC side-effects)

nit: can you make the input accept upper or lower case?

Sure
On Feb 17, 2016 9:55 AM, "Maxwell Krohn"<EMAIL_ADDRESS>wrote:

nit: can you make the input accept upper or lower case?
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/pull/1934#issuecomment-185325203.

Will this be acceptable in the hint?
Some previously tracked proofs are failing. [I]gnore for 1m0s, [A]ccept
these changes or [C]ancel? (I, i, A, a, C, c):
On Wed, Feb 17, 2016 at 9:57 AM, Steve Sanders<EMAIL_ADDRESS>wrote:

Sure
On Feb 17, 2016 9:55 AM, "Maxwell Krohn"<EMAIL_ADDRESS>wrote:

nit: can you make the input accept upper or lower case?
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/pull/1934#issuecomment-185325203.

hmmm, that is pretty ugly.  i'd say the hint should stay the same, but the user can user either?

Still missing:

New test for this new case (mentioned above)
To say in the header when the local temporary track expires
To clean up potentially GetDiff

Remaining issues:

Input of c doesn't cancel like C does at prompt
Still need to display when temporary tracks will expire.

Well at least C/I is passing!

All systems go with my latest commits!

@zanderz do you want to take a read over them, and then we can merge?

Will do.
On Feb 18, 2016 8:23 AM, "Maxwell Krohn"<EMAIL_ADDRESS>wrote:

@zanderz https://github.com/zanderz do you want to take a read over
them, and then we can merge?
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/pull/1934#issuecomment-185800437.

Everything seems to work, LGTM. Got a question or 2:

don't I still need to make a test for the case where the proof stops
failing before the temporary track expires?
Are we sure the temp local track gets deleted after it expires?

On Thu, Feb 18, 2016 at 8:55 AM, Steve Sanders<EMAIL_ADDRESS>wrote:

Will do.
On Feb 18, 2016 8:23 AM, "Maxwell Krohn"<EMAIL_ADDRESS>wrote:

@zanderz https://github.com/zanderz do you want to take a read over
them, and then we can merge?
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/pull/1934#issuecomment-185800437.

Never tested (2).  (1) is good, you're right, if you can crank it out...


🌐 Add Japanese translation for Tutorial - Security - OAuth2 with Password (and hashing), Bearer with JWT tokens

Relates to https://github.com/tiangolo/fastapi/issues/1572
This translates tutorial/security/oauth2-jwtr.md into Japanese.

@tokusumi
Thanks for pointing out all the details!
All fixed!!😀

Also I'd appreciate if you can join reviewing my works as you commented there @sattosan ;)
https://github.com/tiangolo/fastapi/pull/2631, https://github.com/tiangolo/fastapi/pull/2681

@sh0nk
Thanks for pointing out all the details!
All fixed!!😀

Awesome, thanks a lot @sattosan! :bow:
And thank you for the reviews @tokusumi and @sh0nk! :rocket: :coffee:


Failed to run tests with flask templates on Windows and Mac

Describe the issue:
When test Running tests with flask templates on Windows and Mac, run python3 -m pytest, get error as follow:

Repro Steps:

Clone the repo to local.
Create a Python virtual environment and activate it.
Install requirements:
python3 -m pip install -r requirements-dev.in
playwright install --with-deps
Run the tests: python3 -m pytest

Environment:

OS: Windows and Mac.
Azd version: 1.4.1  (commit https://github.com/Azure/azure-dev/commit/1cbed85cf47ed235b5ed31868eda79619525bfcc)
Python : 3.9
Template:
https://github.com/Azure-Samples/azure-flask-postgres-flexible-aca
https://github.com/Azure-Samples/azure-flask-postgres-flexible-appservice
https://github.com/Azure-Samples/azure-flask-cosmos-postgres-aca
https://github.com/Azure-Samples/azure-flask-cosmos-postgres-appservice
https://github.com/Azure-Samples/azure-flask-postgres-addon-aca
https://github.com/Azure-Samples/azure-flask-cosmos-mongodb-aca
https://github.com/Azure-Samples/azure-flask-cosmos-mongodb-appservice

Expected behavior:
Running python3 -m pytest with flask templates can pass on Windows and Mac
@pamelafox  for notification.

cc @kjaymiller I think we need to ditch pytest-flask given all the issues (and no 3.12 compat) and roll own. The pickle issue is discussed here: https://github.com/pytest-dev/pytest-flask/issues/54

@pamelafox as I read this, did you mean that it WILL work on Windows?

Sorry, typo, it was meant to say "now work on Windows", not "not work on Windows". Thanks for clarifying Jay!

@v-jiaodi Can you see if you are still having issues? We completely changed our local testing approach for Flask and I'm hopeful it'll now work on Windows.

@pamelafox Test again, this issue still exists.

Can you share the exact error? It should be different since we changed testing package.

Error log as follow:

@v-jiaodi I have pushed a fix that should hopefully help for Windows, could you pull again and try?

@pamelafox Test again, the error message is as follows：


Add data grid view of metrics

Adds an accessible alternative to metric graphs
As mentioned in #1123, the existing plots are inaccessible and cannot easily be made accessible. The approach taken in this pull request is:

Show two tabs, Graph (this is shown by default), and Table
In the table view, display a fluent data grid with two boolean settings, and varying columns based on whether we are to show a histogram or not.
Append the content of new rows to an offscreen element that has role=log

There are two settings. The first toggle is whether to show the last 10 values or all values (especially in histogram views when data can update every second, the number of rows can get quite large), and by default the last 10 is selected. The second toggle is whether to only show value changes (I'm looking for a better name for this setting) - i.e. we hide a metric value if it isn't different than the previous one. A good example is shown below:

You can see, based on a down arrow appearing in all rows, that there was a change in each visible row.
Histograms

Both tables have a start and end column, but histograms show P50/P90/P99 in separate columns. Values in each cell are highlighted according to the color representing that percentile in the plotly graph, and are meant to aide in column differentiation. For any given data, if there was a difference with the previous value for that percentile, an arrow icon is shown (info up if the value increased, warning down if the value decreased), and a gray right arrow if there was no change.
Simple metrics
The same value change indicator is shown in the value (if value is comparable) and count columns

Screen reader support
Time-based metrics are a good fit for the log role; unfortunately, fluent data grid does not support any live regions or roles. To work around this (& could be applied to other data grids in the future), we read out the row textual content when new rows are added. This works by:

Computing which indices were added (this could be extended to changed values as well)
Invoking a javascript function which parses the generated content for rows with those indices, and creates/adds that content to an offscreen element with role=log.

For example, as those 5 new metric values are added to visible content, we read this to screen readers:

Note that 1+2 and 4+5 appear on the same line because they were added nearly instantaneously. We can likely expect that, similar to navigating a data grid with a keyboard, users will navigate through the data grid header columns either initially or after logs begin being read out.
fixes #1123, future improvements could consist of allowing users to control the data refresh spacing
Microsoft Reviewers: Open in CodeFlow

I think you should remove column resizing and sorting in the table. Sorting doesn't make sense when only showing the 10 most recent values. And we should wait for a reason to allow resizing rather than enabling it by default.
In the tab control, How come the graph option has an icon and table doesn't?
The filters used to appear to the right of the graph on a larger display. It's stopped doing that.
Changing the text next to the switches when the value changes is unusual.

I think a more useful grid view is the latest value for each counter (rather than having to look at a grid per counter).

@davidfowl I don't understand what you mean - are you still talking about the view of a specific metric

I think you should remove column resizing and sorting in the table. Sorting doesn't make sense when only showing the 10 most recent values. And we should wait for a reason to allow resizing rather than enabling it by default.

Good idea, I've made this change.

In the tab control, How come the graph option has an icon and table doesn't?

That was an intentional decision to draw attention to the graph, and not the table, but I can add an icon to the table too!

The filters used to appear to the right of the graph on a larger display. It's stopped doing that.

Changing the text next to the switches when the value changes is unusual. The switches are to the left of text. Switches normally appear to the right (at least that it what I saw when looking through Windows UI for switches). It's inconsistent with the "Show count" switch on histogram graphs.

Good call, changed.

Histogram + show count + table doesn't display a good value.

That's due to Histogram's ToString, which is currently being displayed; I've removed the value column in the case where show counts is enabled for a histogram

Playing with it for a bit with different metrics, I don't particularly like having the "Show the latest 10 values" disabled when there aren't yet 10 items. I understand the initial inclination to do so, but I think it just adds friction to the user if they know there will be more than 10 and they have to wait for all 10 to appear and then toggle it. It also gets disabled again as data disappears.
I think we should attempt to layout the page such that the grid doesn't grow as data gets added. It looks like right now its got a max-height of 60vh. But for the first while, as the data gets added, the toggles and the filters all get pushed down the page.
The data disappearing from the grid (as it scrolls off the left side of the chart) is a bit awkward and I worry a bit about how well that will work from an accessibility/screen reader perspective. Don't have any real good suggestions at the moment, just wanted to call it out to see how others felt.
The gray right arrow (I believe indicating the value didn't change) and the little chart icon in the start column don't meet contrast in the dark background (neither does the disabled text of the switches, but disabled controls don't need to meet contrast)

The order of data is oldest at the top, newest at the bottom. I know that is the order of structured logs and traces (chosen to make those pages feel like a terminal) but it doesn't feel right for this metrics table. I don't know how to articulate why.

Need margin on the bottom of the table to create space between Filters header:

Add 5 pixels between icon and text in tab:

And add 5 pixels between tabs and content below.

Graph has the wrong size when switching between metrics as table and then switching back to the graph:

Playing with it for a bit with different metrics, I don't particularly like having the "Show the latest 10 values" disabled when there aren't yet 10 items. I understand the initial inclination to do so, but I think it just adds friction to the user if they know there will be more than 10 and they have to wait for all 10 to appear and then toggle it. It also gets disabled again as data disappears.

Changed to always being enabled.

I think we should attempt to layout the page such that the grid doesn't grow as data gets added. It looks like right now its got a max-height of 60vh. But for the first while, as the data gets added, the toggles and the filters all get pushed down the page.

I set the height to 40vh now!

The data disappearing from the grid (as it scrolls off the left side of the chart) is a bit awkward and I worry a bit about how well that will work from an accessibility/screen reader perspective. Don't have any real good suggestions at the moment, just wanted to call it out to see how others felt.

Sorry, what do you mean by this?

The gray right arrow (I believe indicating the value didn't change) and the little chart icon in the start column don't meet contrast in the dark background (neither does the disabled text of the switches, but disabled controls don't need to meet contrast)

This is a problem more generally with the --info, --warning, and --success colors. I brightened all of them

The order of data is oldest at the top, newest at the bottom. I know that is the order of structured logs and traces (chosen to make those pages feel like a terminal) but it doesn't feel right for this metrics table. I don't know how to articulate why.

Changed.

Need margin on the bottom of the table to create space between Filters header:

Added margin

There should be a consistent space between switch text and switch

Done

Add 5 pixels between icon and text in tab

5px appears too spaced out, but I added 2px.

And add 5 pixels between tabs and content below.

Done

Graph has the wrong size when switching between metrics as table and then switching back to the graph:

There seems to be an issue with plotly here, as the svg width is being set to 700 instead of 650 somehow? Regardless, an easy workaround is to hide the plot overflow.

Colors were changed just enough to meet the 3:1 required contrast

The data disappearing from the grid (as it scrolls off the left side of the chart) is a bit awkward and I worry a bit about how well that will work from an accessibility/screen reader perspective. Don't have any real good suggestions at the moment, just wanted to call it out to see how others felt.

Sorry, what do you mean by this?

Since the table only shows the data currently displayed in the chart, it doesn't just grow in length, it can also shrink. For instance if you look at the requests metric, hit the page a few times, there will be a bunch of data in the table. Now wait 5 min (or whatever the selected time range is) and most of the data will disappear from the table (at the same time that it scrolls off the left side of the chart).
It's an odd user experience to have rows disappear from a table of data. Beyond that, I just wonder about accessibility (for instance, if a screen reader is trying to read the data (which takes much longer than visually seeing it) and then it  scrolls off. I guess the answer there could be to use a longer time frame. I just want to make sure we're aware of the implications.

From call:

I fixed plotly chart. The problem is the chart is initialized when switching metric, but it's not rendered if the table is selected, and so can't figure out what size it should be. Fix is to be explicit.

Made arrows filled, added tooltip
Removed latest values switch
Made sure start/ends add up when Show only value changes is selected
Fixed filter popups not showing up (TIL that even though there could only be one instance of it, we could still run into id issues)
Made scroll bar auto
Added 1px to histogram value underlines

I might be misunderstanding, but after putting some breakpoints, I think the small window where the old data appears with the updated data grid might be a fluentui-blazor issue? At the point where that is occurring, the bound data is empty.
After taking a look, I think it might be a good idea to do pause & data window selection together, later, as it will also affect the chart 😄

Latest source code errors for me:

2024-01-26T07:12:36.9023688 warn: Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer[100]
      Unhandled exception rendering component: Failed to fetch dynamically imported module: http://localhost:15888/_content/Aspire.Dashboard/Components/Controls/MetricTable.razor.js
TypeError: Failed to fetch dynamically imported module: http://localhost:15888/_content/Aspire.Dashboard/Components/Controls/MetricTable.razor.js
      Microsoft.JSInterop.JSException: Failed to fetch dynamically imported module: http://localhost:15888/_content/Aspire.Dashboard/Components/Controls/MetricTable.razor.js
TypeError: Failed to fetch dynamically imported module: http://localhost:15888/_content/Aspire.Dashboard/Components/Controls/MetricTable.razor.js
         at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
         at Aspire.Dashboard.Components.Controls.MetricTable.OnAfterRenderAsync(Boolean firstRender) in C:\Development\Source\aspire\src\Aspire.Dashboard\Components\Controls\MetricTable.razor.cs:line 38
         at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
2024-01-26T07:12:36.9214161 fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
      Unhandled exception in circuit 'hJrn4jK0KXZZLoY1eO8to3-G6pbi7-WauTnDtOOQ9JE'.
      Microsoft.JSInterop.JSException: Failed to fetch dynamically imported module: http://localhost:15888/_content/Aspire.Dashboard/Components/Controls/MetricTable.razor.js
TypeError: Failed to fetch dynamically imported module: http://localhost:15888/_content/Aspire.Dashboard/Components/Controls/MetricTable.razor.js
         at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
         at Aspire.Dashboard.Components.Controls.MetricTable.OnAfterRenderAsync(Boolean firstRender) in C:\Development\Source\aspire\src\Aspire.Dashboard\Components\Controls\MetricTable.razor.cs:line 38
         at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)

The table doesn't have live updates when showing only unchanged values:

The end date of the latest value doesn't update.

I pushed an update to fix the flash of bad content shown here: https://github.com/dotnet/aspire/pull/1755#issuecomment-1909010699
The problem appears come from the UI updating the columns of the data grid before the data grid updates its data. I tried to find a clean way to fix it but ended up just duplicating the table 3 times. That forces the data grid to be recreated with new data when switching between instruments. It would be great if you could reduce the duplication between the 3 grids.

After my change the end date with "Only show value updates" updates. Most of the time it works, but on some tables I saw two rows with the end date updated to now:

I think some unit tests are required for calculating these metrics. The code is complicated and we could start fixing bugs in one place and create new ones in another.

I still see multiple end dates update:

What do you think about making the selected view (chart vs table) a query string parameter? It would be persisted and restored from state.
I think it would be an improvement but I'm happy for it to be a separate issue that comes later.

making the selected view (chart vs table) a query string parameter

I have opened issue: #1989 for tracking

@tlmii could I get a re-review

This is ok, we are receiving multiple metrics whose end dates are updating

I'm confused what this means. In this comment's image, isn't the chart showing a value of 1? What does the updated value for 0 mean?
The two rows that are being updated, are they different dimensions? In the chart the dimensions are merged together to show a single value. The table should do the same thing.

You can remove the icon

I'd like to keep it, it is the indicator that there's a tooltip for that column.

I'd like to keep it, it is the indicator that there's a tooltip for that column.

Ok.

We should consider customer feedback on this before we look at aggregating the dimensions. "Aggregate by Dimension" could be an option we add based on feedback. I can see for screensupport users needing to tune into individual events and aggregated events both.

I think that's the wrong direction. We should consider customer feedback before deciding not to aggregate the dimensions.
The default behavior for the table should be to display the same data as the chart. The chart sums dimensions together so the table should follow that. The current difference in behavior between the two views will be confusing. For example, someone viewing the active connections chart will see there are 10 active connections and then view the table and see the top value is 1 (because other values are in other dimensions). They would expect the table to report the latest value of 10.
I'm not against adding an option to break down values by dimension, but I think it should wait for customer feedback. And enabling it should apply to both the chart and the table, i.e. setting it to true would change the chart to display a different line for each dimension. That would keep the UI behavior between the chart and table in sync.

We don’t need to keep parity between the table and the chart - they fundamentally serve different audiences

No one has ever said they're confused by the chart showing a sum of all dimensions. Why would it be different for the table? And knowing what the filters are is possible today. They're on the screen in the filters section.
If anything, having aggregate values seems like it would be more friendly to screen readers. The dimensions don't need to be read out for every row. They're the same. The reader just needs the date and value. It would be much faster. And I believe there would only be one row updating at a time. That would be faster still.
Here is another problem with the current UI that would be solved by aggregating them together:

Imagine a metric has 10 dimensions
One of those dimensions is constantly increasing and decreasing
Because the table is ordered by start date, all the user sees in the grid is that one dimension changing value.
The other 9 dimensions have had the same value for a long time, so the start date is far in the past so aren't visible. The user would have no idea where to find them in the table.

The default behavior for the table should be to display the same data as the chart.
While I do like consistency in views, this table display was intended to display raw data so users could determine deltas in updated dimensions (similar to otel data being ingested in Azure data explorer : https://learn.microsoft.com/en-us/azure/data-explorer/open-telemetry-connector?tabs=command-line).

That being said, we took a step back to evaluate what information we were attempting to display and realized we had taken the approach to display events  specific data(which is better suited for the trace approach) rather than a histogram specific data points (more suited for metrics). We agreed that this could change the measurements on %ile distribution when the dimension data is viewed individually and could cause confusion between the views, more so now, since they will be displayed side by side in the UI.
Adam is working on the changes & Ill open another issue to track creating an option to break down values by dimension - most likely post GA
Thanks everyone for weighing in to ensure we have a great user experience.

I see your point James, and now that I understand, I agree with you. I've changed it such that metric values with the same end date get collapsed

This tooltip doesn't make sense because the reported value includes other dimensions:

It has a server port of 16031 but the total includes values from other server ports.

Histogram table count doesn't show the total count. It just repeats 1. That's inconsistent with other counters and with the chart.
Compare the table with the chart which does show the actual increasing count:

When I looked at all the code in the metric table code behind, it feels like there is a lot of duplication. They should be showing the same data but in a different view. If that was happening, then this issue wouldn't exist.
Couldn't the table view reuse the same logic as the chart page? The chart page is calculating what a metric should be each second. The table could then reuse that. That would avoid bugs like this one.
Having one source of truth for a metrics value at each point in time can then be used by both views, and each view modifies it when needed (i.e. the table collapsing duplicate rows if enabled).

A small variation in when metrics are exported and received by the dashboard means they aren't all received the exact same time. See:

The metrics chart starts displaying data a second in the past to avoid this: https://github.com/dotnet/aspire/blob/55c192136fd3c547e7ad1feac60858588fc0f23a/src/Aspire.Dashboard/Components/Controls/PlotlyChart.razor.cs#L88-L91

Thanks I am hoping these will be the last bit of changes before we merge. Any further defects can be tracked as new issues. To summarize the changes requested are:

Histogram table count doesn't show the total count. It just repeats 1.
The "Show count" setting isn't preserved when switching back and forth between the views. -> I would file this as a separate bug
A small variation in when metrics are exported and received by the dashboard means they aren't all received the exact same time.
Having one source of truth for a metrics value at each point in time can then be used by both views -> We will create a new issue to track. This would be a larger update since the graph view regenerates data model every update, in contrast the table updates the existing model on presence of data in order to figure out what has changed for screen reader support.

Created issue to track - Have one source of truth for a metrics value at each point in time can then be used by both views: https://github.com/dotnet/aspire/issues/2104

Having one source of truth for a metrics value at each point in time can then be used by both views, and each view modifies it when needed (i.e. the table collapsing duplicate rows if enabled, adding a column to indicate whether the row value is increasing or decreasing, etc).

This is a good idea; I had initially taken a different approach because the table had to be aware of what points had changed, but there is a lot duplicated.

@JamesNK I cannot reproduce the multiple values updating, but now values within the last second are filtered out like the plot.

Show count isn't updating.
It's over 1000 in the graph but stopped counting at 329 in the table:

The histogram chart and table are now in sync when "Show count" is changed, but the actual toggle isn't in sync.

@JamesNK  please confirm if anything else is required here. There are bugs filed for the remaining items. Since this is a larger PR would like to avoid pushing it towards the end of preview.

Any chance we can provide padding on the precision measurements? the pixel person in my is hurting when I see this:

where because 0.05 and 0.025 drop the conssitency of the width and in a left-aligned view (especially with icons) it looks kinda wonky.  Pad all numbers to .000 precision? so this would have been 0.050 and 0.025

@tlmii padded histogram values to 3 decimal points

I refactored PlotlyChart and MetricTable to use the same data source (thanks @JamesNK), both derive from ChartBase and implement OnChartUpdated to update their respective views.

The table view thus now always shows the same values as the plot.
Additionally, the view you have currently selected is saved in the query

I think that was @timheuer but I agree it looks better, nice job!

Can we change this to "HH:mm:ss" as we don't need the date (its only the last 5 minutes). I was going to suggest the milliseconds, but as the metrics get aggregated by default on a second basis, I am not sure how much use that is?

I got the latest changes in this branch and ran the app. Unfortunately all the metric data tables are empty:

I get this for all counters and options.

Any chance we can provide padding on the precision measurements? the pixel person in my is hurting when I see this:
where because 0.05 and 0.025 drop the conssitency of the width and in a left-aligned view (especially with icons) it looks kinda wonky. Pad all numbers to .000 precision? so this would have been 0.050 and 0.025

That would be an improvement in this particular example. However, the problem with giving all numbers .000 precision is not all numbers will have decimal points.
It will be noisy if the data was 1000, 1001, 1002, etc, but they were displayed in the table as 1000.000, 1001.000, 1002.000, etc, instead.
I don't think it should be done everywhere. We can do this smarter. For example, histograms have a known set of values (the buckets). We could look at the histogram bucket with the most precision and then give all values that level of precision. And for regular charts, if we have any non-whole numbers then include decimal points then.
Those are more complicated. I recommend undoing the change to add precision everywhere and creating a follow up issue to make an improvement that works everywhere.

@tlmii padded histogram values to 3 decimal points

Can you look into why the table columns have uneven sizes. P50, P90, P99 should be evenly sized.

got the latest changes in this branch and ran the app. Unfortunately all the metric data tables are empty

I do not see this

I did a git pull on the branch, verified my local SHA was the same as the PR's server SHA, did a git clean, and rebuilt the app. I don't see any data:

@adamint I found the issue. UpdateMetrics is testing xValues against DateTime.UtcNow:
if (DateTime.UtcNow - xValue < TimeSpan.FromSeconds(2))
{
    continue;
}

These values are already local. All values always pass on your timezone (after UTC) and always fail in my timezone (before UTC).

@adamint It's late for you. If you'd like I can make changes based on testing rather than waiting. That would speed things up.

Ah, I see now… I saw UtcNow was being used elsewhere, so erroneously used it here too

@adamint It's late for you. If you'd like I can make changes based on testing rather than waiting. That would speed things up.

Yes, thank you!

I made some changes - 7991177 (#1755)
The only odd issue remaining that I noticed is there is slightly weird data added when the next row is added to the chart. The previous row time changes by a second, and sometimes an extra row briefly appears.

Thank you again james! 😄


Feature Columns to Preprocessing Layer

Following the current recommendation , refactor Feature Columns/DenseFeatures based codes to Preprocessing Layers

Environment
Please test with Tensorflow>=v2.8.0
Some labs are using HashedCrossing layer that was introduced in 2.8.0.
Target Files (excluding non vertex labs)
introduction_to_tensorflow

[ ] 2b_loading_filedata.ipynb (Using this?)
[x] 3_keras_sequential_api_vertex.ipynb -> #195
[x] 4_keras_functional_api.ipynb -> #196

feature_engineering

[ ] 3_keras_basic_feat_eng.ipynb (Using this?)
[x] 4_keras_adv_feat_eng.ipynb -> #197

building_production_ml_systems

[x] 1_training_at_scale_vertex.ipynb -> #199
[x] 2_hyperparameter_tuning_vertex.ipynb -> #200
[x] 4b_streaming_data_inference_vertex.ipynb -> #202 (Using this?)

end-to-end-structured

[x] 4b_keras_dnn_babyweight.ipynb -> #204
[x] 4c_keras_wide_and_deep_babyweight.ipynb -> #205
[x] 5a_train_keras_ai_platform_babyweight_vertex.ipynb and 5b_deploy_keras_ai_platform_babyweight_vertex.ipynb -> #206

time_series_prediction

[x] 4_modeling_keras.ipynb -> #201

tfx_pipelines

[ ] walkthrough
[ ] pipeline
[ ] cicd
[ ] guided_project (template itself is written in feature column?)

@takumiohym regarding 2b_loading_filedata.ipynb Let's update it too. We have not been using it in the virtual ASL but once in-person resumes, we might use it.
And, regarding 3_keras_basic_feat_eng.ipynb yes, I used it in my last cohort and we plan to use it in the next cohort.

OK thanks for your input!
I will add those next week.


How to convert program code to kicad files

Hello from Japan.
I want to add the .lib and .kicad_mod files of teensy3.5,
but I don't know how to convert your C programing language(？) to those files.
I’m so sorry trouble you, but please teach me how to do.

Hello from Germany!
This repository holds libraries for KiCAD the PCB creation tool. What C files do you mean?

(module Teensy35_36_All_Pins (layer F.Cu) (tedit 6026F021)
(fp_text reference REF** (at 0 -10.16) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value Teensy3.5/3.6 (at 0 10.16) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_poly (pts (xy 1.27 -3.81) (xy 1.524 -3.556) (xy 1.143 -3.302) (xy 0.889 -3.556)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 1.397 -4.572) (xy 1.651 -4.318) (xy 1.27 -4.064) (xy 1.016 -4.318)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 1.651 -3.429) (xy 1.905 -3.175) (xy 1.524 -2.921) (xy 1.27 -3.175)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 1.143 -3.048) (xy 1.397 -2.794) (xy 1.016 -2.54) (xy 0.762 -2.794)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 1.778 -4.191) (xy 2.032 -3.937) (xy 1.651 -3.683) (xy 1.397 -3.937)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 0.635 -2.667) (xy 0.889 -2.413) (xy 0.508 -2.159) (xy 0.254 -2.413)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 0.762 -3.429) (xy 1.016 -3.175) (xy 0.635 -2.921) (xy 0.381 -3.175)) (layer F.SilkS) (width 0.1))
(fp_poly (pts (xy 1.016 -4.953) (xy 1.27 -4.699) (xy 0.889 -4.445) (xy 0.635 -4.699)) (layer F.SilkS) (width 0.1))
(fp_line (start -30.48 8.89) (end -30.48 -8.89) (layer F.SilkS) (width 0.15))
(fp_line (start 30.48 -8.89) (end 30.48 8.89) (layer F.SilkS) (width 0.15))
↑Like this. this is just a example. I found this in the repository for pretty

I am not very familiar with kicad yet. Sorry.

How can I get these codes to load in PCB editor or eeschema?

This is how you add footprints:
https://youtu.be/CBfGG5TKc6o
It is the same for libraries. Hope this helps.

Thanks so much! I'll check out this video.

Glad I could help.


ETM - How to use pretrained word embeddings

@silviatti Hello again,
I have another silly question for you.
The original ETM package allows the user to use pre-trained word embeddings (the file name is 'skipgram_emb_300d.txt')
How do I tell the model to look for the pretrained embedding file instead?
Is it something like:
model = ETM(num_topics=25, embeddings_path = '...\path\to\embeddings'skipgram_emb_300d.txt'') ?
Thank you again for your assistance :)
Luke

Hi Luke,
yes, you have to set the parameter "train_embeddings" to False and set the parameter "embeddings_path" to the path of the pre-trained embeddings. Now we support the only embeddings in the word2vec format, but after PR #36 we will also support pre-trained embeddings in gensim's KeyedVector format.
Code example:
model = ETM(num_topics=25, train_embeddings=False, embeddings_path = '.../path/to/embeddings/skipgram_emb_300d.txt')

Silvia

Thank you a million!


launch error on vps running arm oracle

exec /bin/sh: exec format error
exec /bin/sh: exec format error
exec /bin/sh: exec format error
I'm running it on oracle's vps running arm cpu and it gives me the error exec /bin/sh: exec format error
exec /bin/sh: exec format error
exec /bin/sh: exec format error.
I used the v2 version normally before.
Please fix it for me

Same here

This issue is being actively worked on, we face lots of issues when attempting to build on ARM, some systems work some don't so its more or less a "get lucky" situation when using ARM. Hopefully we can solve this.

Yh thats fine, next update will have migration support for V2 to V3, we are just holding off until we resolve this ARM issue :)

This issue is now resolved