Embed images

It looks like specifying embed=True for Image(...) embeds images into notebook. Also, because getThumbURL() does not provide an extension in the URL, format='png' needs to be passed explicitly.

removes file added by mistake
adds  embed=True, format='png' to Image()


Most values don't update

Thanks for making this integration!
I've installed the integration and I'm able to authenticate and see my values just fine. The problem I'm having is that nearly all values aren't updated continuously, unless I reload the integration manually. The only entities that do get continuous updates are sensor.last_glucose_level_mmol and sensor.last_glucose_level_mg_dl. All the other ones are just stuck on the value at the time the integration was last reloaded.
I've looked at the logs, and the DEBUG (MainThread) [custom_components.carelink] _async_update_data: logs contain accurate, up to date information. So the _async_update_data function seems to be working fine. But for one reason or another, only those two keys are then propagated properly into my Home Assistent on each poll.
Any idea what could be causing this?

When i upgraded this morning to the latest release of homeassistant i have exactly the same problem. Before this update of HA all was running fine.

It's a problem on my end. Just checked and saw the same as @hhuitema after the update. It looks like the sensors do not have the correct state class. I'll keep you posted about a fix.

I don't think this has fixed it for me, I'm seeing the same behavior as before. 😕

Hmm, I see it now too. Found some new issues in the logs. I'll make a quick fix for now and will take a longer look later.

I just updated to 2023.2.2, and it seems to work perfectly now! Thanks a lot for the quick fix 🙂

Nice. Good to hear. Is yours working a again too @hhuitema? If so I close this issue.

Hi all, I can confirm that it works as before for me also. :)
Thanks for the quick fix.


docs(useInfiniteQuery): Correction of two mistakes in the code sample

This code sample has two problems:
"oldPagesArray?.pages" only contains an array of different page arrays, so we should not write "page.data" to filter because "page.data" is undefined and we should write "page" instead.
Another mistake is the value pushed to the "newPagesArray" and the following value must be replaced: "newData"

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Latest version of Stencil changes demo alignment

@edgarordonez
Ref: https://github.com/edgarordonez/d3-stencil/issues/41 This is how the earlier versions look:

@edgarordonez
I am not sure if this is due to a Stencil bug or feature.
Direct comparison of the latest version in #46 for Stencil 1.1.1

Please check and let me know. I can open a ticket upstream if you think it is Stencil.
It would be most helpful if you could add a link to the breaking code, if any.
Plan a new release once this is resolved.

PR updated with https://github.com/edgarordonez/d3-stencil/pull/46/commits/61842cfc2c6f00e150a97b83545746e37b0a5206
and it resolves the issue.

@edgarordonez You are good to merge this now. Verify and create a new release tag, npm and close the ticket.


[0.8.6] Collapse -> Accordion still not working

look at this app,
https://stackblitz.com/edit/vue-xex82z?file=src/App.vue
it is not working according to the bootstrap vue docu:
Accordion support
Turn a group of  components into an accordion by supplying an accordion group identifier via the accordion prop. Note that only one collapse in an accordion group can be open at a time.

thank you for your help
it would be helpful if the documentation was correct, complete and, above all, would work.
where can I find help for BAccordion ?
What is the problem with the documentation ?

You're free to submit any information you find out as a PR to fix incorrect information on the docs.

What is the problem with the documentation ?

Its difficult to explain. Vuepress is just not great. Part of this has to do with the original implementation, among multiple other issues. I'd like to use Nuxt, but pure nuxt for the docs is proving to be unfeasable as writing examples requires a lot of manual work (you have to escape each <> manually... So for examples this is a lot of manual writing).  So, I may just convert them to Vitepress, but even this has issues as even though they have a starting script, it weirdly doesn't generate and add npm dependencies... So it makes it difficult to determine what you need to install to get vitepress to work. Many issues. In addition to the docs being generally out of date.

I understand you.
But the documentation should also be your requirements - you have to get your feature list somewhere
for example, BAccordion , it's great that it exists, but how do i use it ?

I just generally check the playground: https://github.com/bootstrap-vue/bootstrap-vue-next/blob/main/apps/playground/src/components/Comps/TAccordion.vue
to se what the component is capable of, and then look at source code. It's quite easy to grok these components and not confusing mess like BootstrapVue.

In addition to this, the accordion prop is completely out. Bootstrap vue implemented this is a custom component prop since its the functionality didnt exist in Bootstrap v4.


[Bug]

Describe the Bug
BD seems to not be working with the new discord update, after starting BD on discord the app would appear to run in browser mode with no access to the close or minimise buttons in the upper right corner of the app. The BD logo also doesnt appear on the top left corner of the app and themes do not run properly
To Reproduce
On running discord with BD installed
Expected Behavior
The app should start with BD and run themes etc.
Screenshots

Discord Version
Stable
Additional Context
Only started recently today when i turned on my pc. I assumed it might be due to a discord update

You need to reinstall BD.

Same problem here, tried reinstalling and repair as well as restarting the computer, doesn't seem to work for me.

Ok so, press Win + R type: %appdata%\BetterDiscord\data\stable and delete plugins.json and reload Discord.

Finally worked for me. Uninstalled discord and BD altogether, and a fresh reinstall fixed it.

See the above


Some error

I reinstalled Windows 10 system. After install python and run the bot, i got this error, the last line.
Fetching origin
HEAD is now at fd49544 Merge pull request #5645 from PokemonGoF/dev
From https://github.com/PokemonGoF/PokemonGo-Bot

branch            master     -> FETCH_HEAD
Already up-to-date.
Requirement already up-to-date: numpy==1.11.0 in e:\master\lib\site-packages (from -r requirements.txt (line 1))
Requirement already up-to-date: networkx==1.11 in e:\master\lib\site-packages (from -r requirements.txt (line 2))
Obtaining pgoapi from git+https://github.com/pogodevorg/pgoapi.git/@3a02e7416f6924b1bbcbcdde60c10bd247ba8e11#egg=pgoapi (from -r requirements.txt (line 3))
Skipping because already up-to-date.
Complete output from command python setup.py egg_info:
d:\p\python27\Lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: invalid command 'egg_info'

Command "python setup.py egg_info" failed with error code 1 in e:\master\src\pgoapi\

Actually, this error comes from the command:

pip install -r requirements.txt --upgrade

From Windows 10 manual install instructions:
cd C:\Python27\
pip2 install --upgrade pip
pip2 install --upgrade virtualenv
pip2 install --upgrade protobuf==3.0.0b4
git clone --recursive -b dev https://github.com/PokemonGoF/PokemonGo-Bot
pip2 install --upgrade -r C:/Python27/PokemonGo-Bot/requirements.txt

Try that and see how you go.

Also make sure you've installed the requirements:
- [Python 2.7.x](http://docs.python-guide.org/en/latest/starting/installation/) *Be sure to tick "Add python.exe to Path" during install*
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [Microsoft Visual C++ Compiler for Python 2.7](http://www.microsoft.com/en-us/download/details.aspx?id=44266)

@Gobberwart I did a clean install of the bot and it works. However, there is a line contains a bit error, but I guess it doesn't matter. The last line.
Obtaining pgoapi from git+https://github.com/pogodevorg/pgoapi.git/@3a02e7416f6924b1bbcbcdde60c10bd247ba8e11#egg=pgoapi (from -r requirements.txt (line 3))
Cloning https://github.com/pogodevorg/pgoapi.git/ (to 3a02e7416f6924b1bbcbcdde60c10bd247ba8e11) to e:\others\master\src\pgoapi
Could not find a tag or branch '3a02e7416f6924b1bbcbcdde60c10bd247ba8e11', assuming commit.


Add mutation to allow authenticated user to change password

What I'm trying to achieve
I would like to use setPassword mutation for changing users password but I need one time token and there is no query right now for obtaining it.
setPassword mutation receives:
token String! - A one-time token required to set the password
password String! - Password
There is need for new mutation that will allow change of password for authenticated user that will take only new password.

@mateuszkula Operations like password reset require email confirmation. Flow to obtain the token in that case would be as follows:

users request an action (e.g. password reset, email change etc),
the server sends an email with a link containing an expirable token,
when users click the link they're redirected to a "password reset" view in the storefront that takes the token from URL and passes it to the mutation.

@maarcingebala I agree that such flow for password reset and email change is reasonable  but what if I am logged in and I want to change password? Changing password by email sounds a little bit inconvinient for the end user. Right now in the storefront desing for password change user is required to use current password + new password typed twice. I checked it on few sites and it looks like a popular pattern(current pass + 2x new password). Maybe we need a new mutation for that particular case. What do you think?

You're right, I was thinking about resetting the password when user forgot it. In a case when you're authenticated and you just want to change your password we don't need any emails. @fowczarek will work on a mutation for that.

👍

Also, we won't need any tokens here, we just need a mutation that takes the new password in the input.

Changed description and title of issue.

P.S.
We should also take current password in mutations input - what if I forgot to logout from public computer? Someone could change my password easily. This is justa bit of extra security.

We'll need to merge #4510 first to unify account mutations. Then the signature for this one should be something like:
accountPasswordChange(oldPassword: String!, newPassword: String!): AccountPasswordChange

type AccountPasswordChange {
  errors: [Error!]
  user: User
}


[feature request]Adding shell to microsoft store application?

[feature request]Adding shell to microsoft store application?
Because It is hard to keep updated on shell application.

yea

A simple installer compatible with MS store is currently being developed


No error, but I can't read the body

Sorry for the newbie question in advance,
I'm unable to read the response when using http3.RoundTripper
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"

	"github.com/lucas-clemente/quic-go/http3"
)

func main() {
	fmt.Println("Sending QUIC request to <IP_ADDRESS>...")

	hclient := &http.Client{
		Transport: &http3.RoundTripper{}, // Works fine with http/2 when ommiting this line
	}

	resp, err := hclient.Get("https://<IP_ADDRESS>/cdn-cgi/trace")

	if err != nil {
		log.Fatal(err)
	}

	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)

	fmt.Println(string(body))
}

Error Log:
Sending QUIC request to <IP_ADDRESS>...
2020/10/23 20:18:17 Failed to sufficiently increase receive buffer size. Was: 208 kiB, wanted: 2048 kiB, got: 416 kiB.
2020/10/23 20:18:27 Get "https://<IP_ADDRESS>/cdn-cgi/trace": NO_ERROR: Handshake did not complete in time
exit status 1

Is there anything that I'm missing?
Thanks!

As the error says, the handshake is timing out. Please use a released version of quic-go.

I just tried with v0.18.1, I still seem to get this error, any pointers?
go: downloading github.com/lucas-clemente/quic-go v0.18.1
go: downloading google.golang.org/protobuf v1.23.0
go: downloading github.com/marten-seemann/qtls-go1-15 v0.1.0
go: downloading github.com/golang/protobuf v1.4.2
Sending QUIC request to <IP_ADDRESS>...
2020/10/24 10:14:09 Get "https://<IP_ADDRESS>/cdn-cgi/trace": NO_ERROR: Handshake did not complete in time
exit status 1

Maybe <IP_ADDRESS> doesn't do QUIC?

They do, it works with Firefox when you enable http3. I also tried google and youtube which both seem to time out.

It works for me for Google and for cloudflare.com. Not for <IP_ADDRESS> though. I suggest you open an issue with Cloudflare, if you believe that <IP_ADDRESS> is supposed to offer QUIC.

I think this was a firewall issue on my end, I switched to a different computer and it started working!
Thanks for the help!


Update 'release/3.1' => 'pre-arcade' SBRP branch in bootstrap CI

See https://github.com/dotnet/source-build-reference-packages/pull/137
Removing this branch reference is tracked by https://github.com/dotnet/source-build/issues/1498

macOS error is https://github.com/dotnet/source-build/issues/1685.


Support for Stateless Components

React recently introduced the Stateless Components http://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html#stateless-function-components.
By looking at the createComponent() code, it seems that React-Combinators currently creates "Stateful" Components.
Do you think it's worthwhile to introduce a way to create Stateless Components, e.g. createStateComponent()?

@milankinen This is amazing. Thanks!


[When min PyNWB >=v2.1.0]: remove manual fillers for optional ElectrodeTable cols

What would you like to see added to nwb-conversion-tools?
With PyNWB v2.1.0, various electrode columns (x,y,z, location, imp) are no longer required so we could remove those corresponding lines of our write_recording tools using coded defaults to just not propagate them at all if the recording object doesn't have the information set, and let PyNWB handle all the setting automatically.
What we need to decide (likely best at next group meeting) is if we want to enforce the minimal version of the conversion tools to use most recent of PyNWB, et al.
Is your feature request related to a problem?
No response
What solution would you like?
Remove https://github.com/catalystneuro/nwb-conversion-tools/blob/main/src/nwb_conversion_tools/tools/spikeinterface/spikeinterface.py#L368-L380 and dependent lines.
Do you have any interest in helping implement the feature?
Yes.
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] Have you ensured this bug was not already reported?

I vote for the minimal version being the latest version.
There is also this code over there that maybe should go:
https://github.com/catalystneuro/nwb-conversion-tools/blob/5969e2074dfd16acd8640f76fe88c6c147edc8a4/src/nwb_conversion_tools/tools/spikeinterface/spikeinterface.py#L269-L274

I vote for the minimal version being the latest version.

Yeah, probably the best approach. Just waiting for Ryan to debug that thing with it before we can change it here: https://github.com/NeurodataWithoutBorders/pynwb/issues/1497


Request support for Avatto Underfloor Heating Thermostat WT200W-EH

Log Message

Device matches simple_switch_timerv2 with quality of 50%. DPS: {"updated_at":<PHONE_NUMBER>.2913554, "1": false, "9": 0, "38": "off", "42": "", "43": "", "44": ""}
Device matches simple_switch_timerv2 with quality of 50%. DPS: {"updated_at":<PHONE_NUMBER>.4679646, "1": false, "9": 0, "38": "off", "42": "", "43": "", "44": ""}
Device matches garage_door_opener with quality of 12%. DPS: {"updated_at":<PHONE_NUMBER>.6020806, "1": false, "3": 274, "4": "cold", "5": "0", "8": false, "13": true, "16": 0, "20": 0, "21": 40, "25": "3", "26": false, "31": false, "41": "1", "101": false, "105": 10, "107": 50}
Device matches garage_door_opener with quality of 12%. DPS: {"updated_at":<PHONE_NUMBER>.652968, "1": false, "3": 274, "4": "cold", "5": "0", "8": false, "13": true, "16": 0, "20": 0, "21": 40, "25": "3", "26": false, "31": false, "41": "1", "101": false, "105": 10, "107": 50}
Device matches hydrotherm_dynamic_x8_water_heater with quality of 29%. DPS: {"updated_at":<PHONE_NUMBER>.944128, "1": true, "2": 350, "3": 248, "4": "cold", "5": "1", "8": false, "13": true, "16": 0, "20": 0, "21": 40, "25": "3", "26": false, "31": false, "41": "1", "101": false, "105": 10, "107": 50}
Information about DPS mappings

{
"result": {
"model": "{"modelId":"00000035fb","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":
[
{"abilityId":1,"accessMode":"rw","code":"switch","description":"","extensions":{"iconName":"icon-dp_power"},"name":"开关","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":2,"accessMode":"rw","code":"temp_set","description":"int 型数据传输 如 250 则表示温度为25.0°","extensions":{"iconName":"icon-dp_temp"},"name":"设置温度","typeSpec":{"max":950,"min":50,"scale":1,"step":5,"type":"value","typeDefaultValue":50,"unit":"℃"}},
{"abilityId":3,"accessMode":"ro","code":"temp_current","description":"","extensions":{"iconName":"icon-dp_sun"},"name":"室内温度","typeSpec":{"max":999,"min":0,"scale":1,"step":1,"type":"value","typeDefaultValue":0,"unit":"℃"}},
{"abilityId":4,"accessMode":"rw","code":"mode","description":"制冷，制热，送风，根据实际情况自由配置","extensions":{"iconName":"icon-dp_mode"},"name":"工作模式","typeSpec":{"range":["cold","hot","wind"],"type":"enum","typeDefaultValue":"cold"}},
{"abilityId":5,"accessMode":"ro","code":"work_state","description":"继电器输出状态 指示 ","extensions":{"iconName":"icon-eco"},"name":"工作状态","typeSpec":{"range":["0","1"],"type":"enum","typeDefaultValue":"0"}},
{"abilityId":8,"accessMode":"rw","code":"child_lock","description":"童锁开关","extensions":{"iconName":"icon-dp_fresh"},"name":"童锁","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":13,"accessMode":"rw","code":"sound","description":"","name":"声音","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":16,"accessMode":"ro","code":"fault","description":"根据实际情况设置","extensions":{"scope":"fault"},"name":"故障告警","typeSpec":{"label":["1","2","3"],"maxlen":3,"type":"bitmap","typeDefaultValue":0}},
{"abilityId":20,"accessMode":"rw","code":"temp_correction","description":"","name":"温度校准","typeSpec":{"max":99,"min":-99,"scale":1,"step":1,"type":"value","typeDefaultValue":-99,"unit":""}},
{"abilityId":21,"accessMode":"rw","code":"upper_temp","description":"","name":"设置温度上限","typeSpec":{"max":95,"min":15,"scale":0,"step":1,"type":"value","typeDefaultValue":15,"unit":"℃"}},
{"abilityId":25,"accessMode":"rw","code":"sensor_choose","description":"内置、外置 双温","name":"传感器选择","typeSpec":{"range":["1","2","3"],"type":"enum","typeDefaultValue":"1"}},
{"abilityId":26,"accessMode":"rw","code":"frost","description":"","name":"防霜冻功能","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":31,"accessMode":"rw","code":"reset","description":"","name":"恢复出厂设置","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":41,"accessMode":"rw","code":"backlight","description":"背光亮度3挡位","name":"背光亮度","typeSpec":{"range":["0","1","2","3"],"type":"enum","typeDefaultValue":"0"}},
{"abilityId":42,"accessMode":"rw","code":"work_days","description":"1：5+2\n2:  6+1\n3:  7","name":"工作日设置","typeSpec":{"range":["1","2","3"],"type":"enum","typeDefaultValue":"1"}},
{"abilityId":43,"accessMode":"rw","code":"week_program3","description":"","name":"周程序3（工作日休息日）","typeSpec":{"maxlen":128,"type":"raw"}},
{"abilityId":101,"accessMode":"rw","code":"zhufan","description":"常闭型 正逻辑  常开型 反逻辑","name":"常闭型_常开型","typeSpec":{"type":"bool","typeDefaultValue":false}},
{"abilityId":105,"accessMode":"rw","code":"qidongwencha","description":"继电器 启动或者关闭 温差值","name":"输出启动温差","typeSpec":{"max":95,"min":5,"scale":1,"step":5,"type":"value","typeDefaultValue":5,"unit":""}},
{"abilityId":107,"accessMode":"rw","code":"xianwen","description":"双温双控时 外置传感器限温值 默认45","name":"传感器限温值","typeSpec":{"max":60,"min":5,"scale":0,"step":1,"type":"value","typeDefaultValue":5,"unit":""}}
]
}]}"
},
"success": true,
"t":<PHONE_NUMBER>798,
"tid": "b6b4ef416a1b11eebdf0a64fb2ede3b1"
}

Data points finding script result (from "Find Tuya Data Points" article):
{"1":"Switch","2":"Set Temperature","3":"Current Temperature","4":"Mode","5":"Working status","8":"Child lock","41":"Backlight brightness","101":"常闭型_常开型","105":"Temperature control switch difference"}
Product ID

"product_id": "gw173aldekvpzalg"
Information about how the device functions

User manual:
https://thermostat.guide/avatto/avatto-wt200-smart-wifi-thermostat-user-manual/
Screenshots from SmartLife app

Also, i've just received the excel file with DPS from seller. There is the list of same DPS, with same codes but with different IDs. I don't know if you need it, but just in case i'll attach it here)
Temp-2(jaovfquhkmbydxyp)_10_06.xlsx

I took the yaml file for WT100 as a prototype and made this file. Actually, they are almost identical, i've just made few changes, and now it works perfectly with my WT200.
I think, WT100 file just have too many dps that lack attribute "optional: true", otherwise it could serve.
avatto_wt200_thermostat.zip

Should I make a pull request?

I'll compare with the WT100 file again. I previously had a quick look, and they seemed different, but maybe you are right and making some dps optional will be enough.

The temperature ranges are a little different.  I don't know whether the WT100 ones are correct, as there was a long list of modes in the original info the user reported, but only the ones in the config worked (which matches the modes listed here), so that info was suspect.


Devicelab test running for 53 years #2

I'm getting another instance of https://github.com/flutter/flutter/issues/134828 which is a manifestation of https://github.com/flutter/flutter/issues/131501.  This is the same test but I had to move it to a new device which caused it to get stuck again.
cc @drewroengoogle (gardener)

I took a look at some tasks that are showing an unreasonably long run time, and the tasks for those have all been scheduled but are currently pending due to all of the bots being in use. It probably would be clearer if the dashboard showed something like "Pending" over the unreasonably long build time, though. This is only occurring on builds that are scheduled but have to wait to start.
@ricardoamador Is it expected that builds are scheduled to start before there is capacity for them? Every build that has an unreasonably long run time also has an associated build that is pending like this:

I should also note that once these pending builds start, the tile on the dashboard looks normal

@drewroengoogle @gaaclarke there have been pretty recent changes to this, I think less than a month or two old that might affect this. I can check the logic again. But I believe they should be put to pending as that is the state when the task is waiting for the bot. I will take a look.

@gaaclarke is it showing queueing for 53 years? We should have an open issue for that. We see that from time to time.

Oh, I see another issue here. Some of the tasks that are skipped like the yaml rollers have a pending clock that just keeps running even though the tasks will never get scheduled.

The big problem isn't the reporting of the 53 years so much as the fact that the devicelab test seems stuck and the last 20 or so runs are just grey boxes.  The original tasks appear to be stuck in the 53 years positions.

The hello_world target seems to be running again.
My theory is that it looks like the initial target from a couple of weeks ago was triggered during a LUCI outage, and perhaps our datastore marked it as in progress, but the LUCI build never actually started as a result. This may have caused cocoon to constantly be waiting for the "in progress" build to finish even though it was never going to. After rerunning the latest build and the previously in progress ones, the builder is starting to backfill the old targets.
Perhaps a feature to be filed to automatically reset any tasks that are clearly over the timeout period that is defined in ci.yaml?

Okay @drewroengoogle @gaaclarke , I was able to dig some more and found the culprit. It appears that someone tried to reset the tasks twice which lead to two instances of the task being stuck in the "In Progress" state. When the request is made we (the scheduler) sets the status to "In Progress" before sending the request to LUCI.
As found in the log:

And as seen in the dashboard:

Since LUCI had an outage it was not scheduling anything and we can see errors in the logs for the tasks that we were trying to schedule:

This LUCI outage coupled with the two tasks stuck in "In Progress" means that the scheduler will not schedule more than one at a time for a given column in Flutter resulting in the deadlock here. This also means that the backfiller could schedule newer tasks.
So yeah just a perfect storm of circumstances.

Thank you @ricardoamador!
Are there any issues that need to created from this do you think?

Marking this as "Fixed" in the queue, since the original issue has been mitigated.

We should probably open an issue for reseting stuck tasks as you said. Though we can currently do this with reset prod task. But I can open an issue for Infra to follow up on this and see what can be done.

Does reset prod task automatically run, or is that only triggered manually?

You would need to automatically trigger it currently.


Inconsistent lighting with lines in Filled Boundary plots.

When you take a three slice of a surface mesh, the lines that are generated have lighting applied, which results in the lines being rendered in a range from their color to black depending on the orientation. It seems to be particularly bad when looking at an angle perpendicular to one of the axes since the normals are arbitrarily chosen to be perpendicular to one of the axes, resulting in the lines being either the color you expect or black. In the case of taking a volume mesh, taking the external surface and then doing a three slice, the lines that are generated don’t have lighting applied, resulting in the lines always being the color you expect for any orientation.
This was reported by Oliver Cessenat  to the visit-developers mailing list. He provided a silo file showing the issue, which I have attached.
Here are the steps to reproduce:

Create a Filled Boundary plot of matv_d1(mesh_d1)
Apply external surface operator
Apply three slice operator

The lines are unlit.

Create a Filled Boundary of allsurfmat(allsurfmesh)
Apply three slice operator

The lines are lit.
The lines should probably be unlit.

extern6mono_grf_p0.zip

Difference between the two scenarios above is that (1) doesn't produce normals, while (2) does. This is due to the use of Topological Dimension by avtVertexNormalsFilter to screen out instances where normals shouldn't be created (topodim != 2).

First scenario
Silo reader sets Topodim to 3 (make sense, its a volume).
External surface decrements topodim (now 2)
ThreeSlice decrements topodim (now 1)
avtVertexNormals filter does not process data

Second scenario
Silo reader sets topodim to 3 (wrong, because it is an all-quad mesh).
Three slice decrements topodim (now 2)
Vertex filter processes the data.

I think the data producer should have specified the correct topological dimension.
I also think that avtVertexNormalsFilter should not process poly data that contains only lines.


osx: how to use the mozjpeg methods?

trellisQuantisation() / trellisQuantization()
overshootDeringing()
optimiseScans() / optimizeScans()
Every time I try to use these options I get the following message
vips warning: vips2jpeg: Ignoring trellis_quant (Similar for the other operations)
How exactly are these methods use?

Hello, as you'll probably have seen in the docs, these features require "libvips 8.0.0+ compiled against mozjpeg 3.0+".
You'll need to remove any existing vips installation before installing mozjpeg (via homebrew?). You can then install vips, telling it where you installed mozjpeg via its --with-jpeg-includes and --with-jpeg-libraries configure-time flags.
Good luck!

Alright that works.
I also added a --with-mozjpegoption to the brew.

Good news - looks like https://github.com/Homebrew/homebrew-science/pull/2740 is what you're referring to.
/cc @jcupitt

Closing as the homebrew patch has landed - feel free to re-open if there are still problems. Thanks!

Hi,
I may be missing something, but I installed  mozjpeg via this link: http://mozjpeg.codelove.de/binaries.html
then I did: curl -s https://raw.githubusercontent.com/lovell/sharp/master/preinstall.sh | sudo bash -s -- --with-openslide --with-jpeg-includes=/opt/mozjpeg/include --with-jpeg-libraries=/opt/mozjpeg/lib64 --with-mozjpeg=/opt/mozjpeg/bin
but still have the warning : vips warning: vips2jpeg: Ignoring trellis_quant and same warnings for others:
overshootDeringing()
optimiseScans() / optimizeScans()
Can someone help please ?
Thank you.

@ram-you I assume this is on Linux (rather than the OS X discussed previously).
The (deprecated) preinstall script won't help here, or at least doesn't know about the flags you're trying to pass to it.
You'll need to manually run the steps to install libvips, passing your --with-jpeg-includes and --with-jpeg-libraries options to its ./configure stage.

Thank you @lovell . Yes I'm on Linux (ubuntu 14.04)
I'll make a try and will inform you.

Now I start having a new problem :

Error: libjpeg.so.62: cannot open shared object file: No such file or directory

As of v0.12.0, sharp no longer has any external runtime dependencies for Linux and Windows users as it bundles a pre-compiled version of libvips.

My question is why the pre-compiled version of libvips is not compiled against mozjpeg or as an option ?

"libjpeg.so.62: cannot open shared object file"

This looks like a runtime problem, in that you need to tell it where the shared libraries you've compiled and linked against are. Perhaps set LD_LIBRARY_PATH=/opt/mozjpeg/lib64. Please open a new issue if you can't get this working.

"why the pre-compiled version of libvips is not compiled against mozjpeg"

The pre-compiled version is provided to get people going as fast as possible with the most popular web-based formats. I don't intend to offer any optional nature to these as the support overhead will be too high.
sharp will always look for a global installation of libvips first so you will always be able roll your own combination of libvips' dependencies :)


Javascript Waypoint Instructions not displaying correctly

This doesn't look right?

It looks normal

Yes those are the test that are used to run your code.
Happy Coding!


Live reloading package.json produces an error

This has always happened and is harmless but I know the reason so fixing it.
https://github.com/stealjs/system-npm/issues/90

This is fixed.


Seed/frame problem

I encounter this last night. I threw a wp on my desired den (den50 bridge field 2), the after i got my purple beam I save the game closed it and back it up. Open my pkhex check the den and raid calculator i saw my den and mu shiny was on 208 frames, i did rng now on my switch checked it again and now its on 186 after 30 more frames i checked it again and it was gone. When i looked up on it i saw that it was on 6133 frame but all i did was spam the den using 1 day skipped method so what seems to be the

problem?

Also i checked that the ability changes

Those are totally different seeds you've selected.
Without seeing full screenshots (pls use PrintScreen instead of taking photos with your phone), can't really tell unless you're not entering in your data correctly. The bottom most screenshot has a 3* Hatterene, while the top one is 5*.


contributors

@all-contributors please add @cope for creating this package

@all-contributors please add @cope for Code, Documentation, Ideas & Planning, Infrastructure, Maintenance, Project Management, Research, Tools and Tests


Disable warning when opening a project without Vitest

Describe the bug
Vitest shows a warning every time I open a project that uses Vite but does not use Vitest. https://github.com/vitest-dev/vscode/blob/49d8e8306dc46e68ffbb434a524bfc497646e306/src/api/pkg.ts#L41
I do not always use Vitest for various reasons, so I should be able to disable this warning with a setting like vitest.warnIfNotInstalled = false. A button on the warning like "Don't remind me again" could set this setting.
Reproduction
Open any project that uses Vite but does not use Vitest
Output
[INFO 13:50:07] [v0.10.7] Vitest extension is activated because Vitest is installed or there is a Vite/Vitest config file in the workspace.
[Error 13:50:07] [API] Vitest not found for file:///Users/*/projects/*/vite.config.ts.
[Error 13:50:07] [API] Failed to start Vitest: No vitest config files found

Version
0.10.7
Validations

[X] Check that you are using the latest version of the extension
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

I don't think it makes sense to have an option to do that, but we should ignore the warning automatically if there is no Vitest config/vitest in dependencies


updating with Markdig references and removing DFM

@meganbradley @Jemash

hey, just a little comment on the changes here (markdig author speaking)
First, I'm very glad to see Markdig mentioned in the doc, that's some accomplishment milestone for the library!
Though, there is a slightly unfortunate merge of term between markdig with DFM, which could be a bit confusing. Docfx relies on Markdig which is a CommonMark compliant markdown engine and also provides several Markdown extensions including support for the GFM syntax. But DocFX has also added many Markdig extensions to the Markdig engine (e.g the Include extension of docfx for example is not part of Markdig extensions)
Removing entirely the concept of DFM is maybe too much imo. DFM is somehow, GFM + specific markdown extensions (include...etc.), DFM implies a specific supported markdown flavor, so it's not a library (as docfx is or markdig), so replacing entirely the term DFM by Markdig can be confusing.
Markdig is a Markdown engine, not a Markdown flavor, apart the core CommonMark part, it doesn't enforce the usage of a particular flavor, you can compose whatever you want with it. That's what docfx did with its DFM flavor.
Not sure If it clear. Hope you can better reflect this in the documentation!
Best


Make Soundboard App

ding dong
Build a simple soundboard that plays different sound effects when a user presses a key or clicks a button.

#93 PR for the Soundboard App :)


Map Illuminate\Support\ItemNotFoundException to 404 Not Found HTTP error

The pull request aims to map the Illuminate\Support\ItemNotFoundException exception, thrown by the firstOrFail() methods both in Collection and LazyCollection, to a 404 HTTP error in Illuminate\Foundation\Exceptions\Handler.
The main reason is I think the exception should throw the same error code as of the firstOrFail() method of the Eloquent query.
When I, for some reason, must fetch all results of an eloquent query and filter them using the filter() method of Illuminate\Support\Collection, I get a different error code when executing the firstOrFail() method.
Here is an example of what I'm talking about: in both cases, I'm working with models, but the exception thrown is different, which should not be correct.
// throws 404 not found exception
User::query()
  ->where('created_at', '>=', now())
  ->firstOrFail();

// throws 500 internal server error exception
User::query()
  ->where('created_at', '>=', now())
  ->get()
  ->filter(
      fn ($user) => $user->someMethod()
  )
  ->firstOrFail();

I think in both cases the exception is about an entry not found (whether it is a model, a string, or whatever), so the exception should always be a 404 Not Found error.

Wouldn't that throw a 404 when I use a generic collection with strings or numbers (or some other data) in it and firstOrFail() fails?
collect([1, 2, 3])->filter(fn ($value) => $value > 5)->firstOrFail()

Wouldn't that throw a 404 when I use a generic collection with strings or numbers (or some other data) in it and firstOrFail() fails?
collect([1, 2, 3])->filter(fn ($value) => $value > 5)->firstOrFail()

Yes, it would - but isn't that correct? The exception is about an item not found in the collection, which should indeed be a 404 error and not a 500 internal server error.

I don't know IMO a 404 is for an actual resource that could not be found. When I request GET /users/423 and receive a 404 I assume the User with the ID 423 does not exist (anymore). But the 404 would also appear when I have a collection of some data like email addresses that belongs to the user and for some reason the collection is empty.
I would consider this a server error because the requested resource exists.

Not sure I want this to map to 404 all the time.


[Bug]: Disabled fields in JSON form are shown as not disabled

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I have a JSON form that is linked to a table so that, when a row in the table is selected its info is shown in the JSON form to be edited.
However, I don't want all of the fields to be editable, thus I've configured them as disabled = true . But I'm facing a bug that causes some of this fields to become editable.

I've been able to narrow it down to the following escenario.

As i load the page, all the disabled fields are correctly disabled.
When i select another row (different than the first one, which is selected by default), some of the disabled fields become active
Thay stay active no matter what I do.

Things I've tried to disable the fields:

Using the toogle and setting it as true
Using js

Using appsmith.user.email to check for a condition that always evaluates to true
Using true === true

But, even though this options disable the given field initially, they still become active afterwards. So, after a bit more testing I've realized that the JS expression I'm evaluating for checking if it is disabled or not seems to 'disappear' as i click another row in the table:

The field becomes active
The js expression dissappears from the disabled input container
I can not change to non-JS mode because it tells me that the container first needs to be empty

Steps To Reproduce

Link database to JSON Form
Disable some of the fields in the JSON form
Select a row different than the default one
Some of the disabled fields will become active

Public Sample App
No response
Environment
Production
Severity
Critical (Broken Production apps)
Issue video log
No response
Version
Self hosted

@marcjaner instead of {{true===true}} can you simply add {{true}} in the field?
Can you also please share a video of the issue?
If you can share a public application that can reproduce this, that would be the best way for us to debug why this is happening

@marcjaner I am unable to reproduce this, can you please send a video or public sample app?


Stat buff placeholder

The code removed automatically populated values with no value to 0, which was leading to users insert values greater than intended.
ie.
with a populated 0, adding 300 would result in 3000.
By removing the prepopulation, placeholder 0s still show, but allow users to have the desired functionality to type in a full value.
Note: If you remove a value entirely from an input field and then click outside of it, the field will default to placeholder.

This breaks tabbed buffs. Closing for now.


feat: include rarity metadata for each looted item

Closes #463

Worked in-game for NPC that dropped single item (aside from bones)
would be good to test a npc drop with multiple simultaneous items (with non-zero probability)

since this only impacts metadata, i'll merge now & more rigorous in-game testing can happen with follow-up perf pr


HW2: part1

created project repo and added link to README
Hi professor, I accidentally deleted the branch of homework1, although I created a new branch, but there is no way to reopen the previous pull request, what should I do with part2 of homework2?

my last pull request is here: https://github.com/ColumbiaOSS/project-proposals-s2023/pull/228
But because I deleted the old branch by mistake, I can't reopen. Can I just use this new pull request?


Testing: Create tests for opendistro_for_elasticsearch role

Is your feature request related to a problem? Please describe.
We don't have specific tests for OpenDistro.
Describe the solution you'd like
We want to have specific tests for OpenDistro.
Describe alternatives you've considered
No.
Additional context
No.

@to-bar and @przemyslavic can you please check if that task isn't already implemented?

@to-bar and @przemyslavic can you please check if that task isn't already implemented?

Still valid. We have only indirect tests, i.e. for logging role that is based on opendistro_for_elasticsearch.

Changing this for OpenSearch as we don`t want todo this for Opendistro anymore.


Create a new flavor of the app

(This bug needs to be solved before tomorrow)
Create a new flavor of the app called opf
It should introduce the following behaviours:
- support for weirder barcodes
- disable nutriscore
- add new intro slides (ask @teolemon in private)
- disable allergen detector
- specific branding (ask @teolemon in private)
- disable advanced search and charts
- replace Open Beauty Facts promo by Open Food Facts promo```

Working


provider.mine_block does not exists

Clarity cli does not have a command mine_block (anymore?)
(node:24839) UnhandledPromiseRejectionWarning: ExecutionError: Mine block failed with bad exit code 1: Usage<EMAIL_ADDRESS>[command]
where command is one of:

  initialize         to initialize a local VM state database.
  check              to typecheck a potential contract definition.
  launch             to launch a initialize a new contract in the local state database.
  eval               to evaluate (in read-only mode) a program in a given contract context.
  eval_at_chaintip   like `eval`, but does not advance to a new block.
  eval_at_block      like `eval_at_chaintip`, but accepts a index-block-hash to evaluate at,
                     must be passed eval string via stdin.
  eval_raw           to typecheck and evaluate an expression without a contract or database context.
  repl               to typecheck and evaluate expressions in a stdin/stdout loop.
  execute            to execute a public function of a defined contract.
  generate_address   to generate a random Stacks public address for testing purposes.

    at NativeClarityBinProvider.mineBlock (/home/clarity-smart-contracts/node_modules/@blockstack/clarity/src/providers/clarityBin/index.ts:280:13)

Relevant code:
https://github.com/blockstack/clarity-js-sdk/blob/4317cce1bd94f48cc2866bb15abbcb63d55249bc/packages/clarity/src/providers/clarityBin/index.ts#L272
Is it possible to let time pass in the VM? Does it make sense at all?
I want to test a condition based on block height

Yes, it is possible! Check out the rocket tutorial tests. It's not very well documented, but each time you query or make a TX, the block height increases. You can use that to "mine blocks" in a somewhat hacky way. Because you might not want calling a read-only function to advance a block, there is an atChaintip option for eval, which will not advance by a block.


once-twice-thrice

Your checklist for this pull request
Author name
Xinyang Wang
About your game
A little puzzle game about getting from somewhere to somewhere else. Takes inspiration from mobile games and games on Cool Math Games about puzzle solving. As you progress along, more and more mechanics are added, including boxes, keys and... your doppelganger?
How do you play your game?
WASD to move
j to go back a level
l to go forward
k to reset the level
i to turn off music
Get yourself to the checkered flag! Do what ever it takes.
Code
Check off the items that are true.

[x] The game was made using the Sprig editor.
[x] The game is placed in the in the /games directory.
[x] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[x] The game runs without errors.
[x] The name of the file/game contains only alphanumeric characters, -s, or _s.
[x] The game name is not the same as the others from gallery

Image (If an image is used)

[ ] The image is in the /games/img directory.
[ ] The name of the image matches the name of your file.

Thanks for your PR!

Nice job with this game- I especially enjoyed the art and music. I'm merging this, and you should see it in the gallery starting next week.
If you're a teenager, you can request a free Sprig console at this link and join our online Slack community to chat with other people making Sprig games.


Add AIOZ Network Mainnet

Does a pool for AIOZ exist yet? Will need it for validation.

Any desire to proceed with this? Or should we close?

Sorry for the late response, let's close it for now as I will get back later for the pool creation.

Closing for now as per submitter's request--expect to continue soon


Advantage computation fix - Chapter 8 models.py

Fixing bug that computes advantage values as an average across the minibatch, instead of one advantage value per sample. See: https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On/issues/6

Thanks!


Export utils to make it easier to make custom components

It would make life much easier if the utils were exported, so you can make custom mdl components.
What's your vision on this?

Good idea :+1: .
I think that mdlUpgrade and MDLComponent should be a public API.

Why would you want to create MDL components?
Every MDL components should be available in this repo. If something doesn't exists in MDL, you can probably create them using a simple basic React way instead of using the mdlUpgrade function.

It's good for better customization, though, we can just leave note in readme about that, something like:
"If some feature is missing you can use MDLComponent/mdlUpgrade to temporarily recreate this functionality and don't forget to submit an issue :-)"
And give some example.
For example, I think that it should be possible to set custom tags everywhere.
Or I want to pass some props to some tag/component and I can't, because it's impossible in current implementation.
We should make that possible by making API public or by documenting how to achieve it (like documenting a hack).

Awesome thanks!


Trojan detected

What version of Butler Sheet Icons are you using?
3.1.0
What version of Node.js are you using? Not applicable if you use the standalone version of Butler Sheet Icons.
/
What command did you use to start Butler Sheet Icons?
doesn't matter
What operating system are you using?
Windows
What CPU architecture are you using?
x64
What Qlik Sense versions are you using?
May 2023
Describe the Bug
VirusTotal found a trojan in the compiled windows version : link
The anti virus tool of my company found one too.
Expected Behavior
File should be clean
To Reproduce
No response

Ouch.
Which antivirus do you use?
From time to time a single scanner in VirusTotal flag malware, but the
other 60 scanners do not report anything.
Difficult to say if it’s a false positive or not, should def be looked into
of curse.
On Tue, 1 Aug 2023 at 11:24, cuthulino @.***> wrote:

What version of Butler Sheet Icons are you using?
3.1.0
What version of Node.js are you using? Not applicable if you use the
standalone version of Butler Sheet Icons.
/
What command did you use to start Butler Sheet Icons?
doesn't matter
What operating system are you using?
Windows
What CPU architecture are you using?
x64
What Qlik Sense versions are you using?
May 2023
Describe the Bug
VirusTotal found a trojan in the compiled windows version : link
https://www.virustotal.com/gui/file/231c18e20c244c337b1b2d461a46343d5af065cbd38fb0ac37f5deefb0789468?nocache=1
The anti virus tool of my company found one too.
Expected Behavior
File should be clean
To Reproduce
No response
—
Reply to this email directly, view it on GitHub
https://github.com/ptarmiganlabs/butler-sheet-icons/issues/421, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH3JDSBN7EJDNAF43WEYRLXTDDMBANCNFSM6AAAAAA27OZJQA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Sent from mobile

We are using symantec endpoint protection here.

Vast majority of scanners don’t detect anything.
Which of course is no guarantee there isn’t a problem.
Checking with some of the major scanner companies it looks like they claim
to detect this specific Trojan. But still don’t report it as found.
All in all I would think this is a false positive, but I cannot guarantee
that.
On Tue, 1 Aug 2023 at 11:45, cuthulino @.***> wrote:

We are using symantec endpoint protection here.
—
Reply to this email directly, view it on GitHub
https://github.com/ptarmiganlabs/butler-sheet-icons/issues/421#issuecomment-1659959097,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH3JDQDG3C6MKOSWVBGSELXTDF2BANCNFSM6AAAAAA27OZJQA
.
You are receiving this because you commented.Message ID:
@.***>

--
Sent from mobile

It is marked as "Unproven.Insight"
risk type "Insight Network Threat"
on our systems

Not been able to reproduce, in spite of significant tests.


feat: switch to GatewayAPI v1.1.0

Please describe the Improvement and/or Feature Request

Scope (please mark with X where applicable)

New Functionality          [ ]
Install                    [ ]
SMI Traffic Access Policy  [ ]
SMI Traffic Specs Policy   [ ]
SMI Traffic Split Policy   [ ]
Permissive Traffic Policy  [ ]
Ingress                    [ ]
Egress                     [ ]
Envoy Control Plane        [ ]
CLI Tool                   [ ]
Metrics                    [ ]
Certificate Management     [ ]
Sidecar Injection          [ ]
Logging                    [ ]
Debugging                  [ ]
Tests                      [ ]
CI System                  [ ]
Demo                       [ ]
Project Release            [ ]

Possible use cases

[ ] #247
[ ] #248


Compiler Error C3867 documentation does not mention "non-standard syntax"

The documentation for compiler error C3867 does not list the "non-standard syntax" portion of the error message.
The following code (https://rextester.com/BAK56719)
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
struct Bar
{
   void baz() {}
};

int main()
{
    Bar::baz;  // Not valid.
}

gives the following error:
error C3867: 'Bar::baz': non-standard syntax; use '&' to create a pointer to member

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

ID: a35332f4-30f3-58eb-46fe-98fb371dd285
Version Independent ID: 4555e45d-c485-0419-6862-499e0a9d8faa
Content: Compiler Error C3867
Content Source: docs/error-messages/compiler-errors-2/compiler-error-c3867.md
Product: visual-cpp
Technology: cpp-diagnostics
GitHub Login: @corob-msft
Microsoft Alias: corob

We are in the process of moving away from GitHub issues for C++ documentation (we still accept pull requests). For details, please see Announcing a new way to give feedback on Microsoft Learn This issue will be closed after it is copied to an internal tracking system.


Incorrect data type for mount parameters MNT_OB_LOCK_MODE and MNT_OB_NORM_MODE

The parameter reference specifies that the two parameters MNT_OB_LOCK_MODE and MNT_OB_NORM_MODE are type float.
However, src/drivers/vmount/vmount.cpp has them declared as
	int32_t mnt_ob_lock_mode;
	int32_t mnt_ob_norm_mode;

This may not cause a problem for most users, as these parameters are only used in AUX output mode, and due to the parameter type system, user entered values of 0, 1, and -1 will end up getting range limited to PWM_AUX_MAX and PWM_AUX_MIN by the mixer as expected.
However, intermediate floating point values such as 0.2 or -0.2 get interpreted as int32 then range limited by the mixer, so instead of an expected PWM output, say, of 1600 for a MNT_OB_LOCK_MODE of 0,2, we might get 2000.
Changing the type declarations to float fixes the problem.

That's wrong indeed. Can you send a PR? And please take note of #8149 for potential conflicts (fyi @mje-nz)

OK, done! The type is correct everywhere else in vmount. My manual testing gives correct PWM output of 1600 and 1400 for +0.2 and -0.2 with default PWM_AUX parameters and the default mixer.

Hey, this issue has been closed because the label status/STALE is set and there were no updates for 30 days. Feel free to reopen this issue if you deem it appropriate.
(This is an automated comment from GitMate.io.)


NULL::text for 38 out of 50 states with near method

Gem Version: 1.3.1
I don't know why the near method isn't working most of the time.  I'll likely have to downgrade my geocode gem to get it working again.  Running this test I get this output:
# For each of the 2 letter states do the following
US::STATES.each do |state|
  if Address.near("New York, #{state}").to_sql == \
    "SELECT addresses.*, NULL::text AS distance, NULL::text AS bearing FROM \"addresses\"  WHERE (false)"
    @null_count = @null_count.to_i + 1
  end
end
puts @null_count
# => 38

More than half of the queries are failing in this way.

In case it helps I have two Address records in the DB during this test.  Both for New York, NY.

I switched from Yandex to GeoCod.io and I still get the errors but for different states.
US::STATES.each do |state|
  if Address.near("New York, #{state}").to_sql == \
    "SELECT addresses.*, NULL::text AS distance, NULL::text AS bearing FROM \"addresses\"  WHERE (false)"
    @null_count = @null_count.to_i + 1
  end
end
puts @null_count
# => 32

With Yandex "New York, NY" would consistently fail and "New York, VA" would work.  Now with GeoCod.io It is reversed.  VA brings up a NULL query and NY works.
Address.near("New York, NY").to_sql
# => "SELECT addresses.*, 3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((40.68863 - addresses.latitude) * PI() / 180 / 2), 2) + COS(40.68863 * PI() / 180) * COS(addresses.latitude * PI() / 180) * POWER(SIN((-74.018244 - addresses.longitude) * PI() / 180 / 2), 2))) AS distance, MOD(CAST((ATAN2( ((addresses.longitude - -74.018244) / 57.2957795), ((addresses.latitude - 40.68863) / 57.2957795)) * 57.2957795) + 360 AS decimal), 360) AS bearing FROM \"addresses\"  WHERE (addresses.latitude BETWEEN 40.399166433778305 AND 40.9780935662217 AND addresses.longitude BETWEEN -74.39998923744648 AND -73.63649876255352 AND (3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((40.68863 - addresses.latitude) * PI() / 180 / 2), 2) + COS(40.68863 * PI() / 180) * COS(addresses.latitude * PI() / 180) * POWER(SIN((-74.018244 - addresses.longitude) * PI() / 180 / 2), 2)))) BETWEEN 0.0 AND 20)  ORDER BY distance ASC"
Address.near("New York, VA").to_sql
# => "SELECT addresses.*, NULL::text AS distance, NULL::text AS bearing FROM \"addresses\"  WHERE (false)"

It looks like what's happening is that the city you're using as the center point of your search radius is not being found. Make sure the first argument to near can be geocoded successfully before you look for objects near it.

New York, NY is a valid location and it failed with Yandex.  Is there a built-in way to have the query raise an InvalidLocationError rather than quietly process a NULL query?

Without an API key Yandex is limited to certain regions in Asia.
There is no built-in way to raise an exception for a query returning zero results, but you could check for an empty response and raise your own exception or do something else.

I've implemented the :near! scope method in #1003 .  The test is there in the comment with results.
Would you be okay with me adding the test and two additional gems to the Gemfile?  With my test script you'd be able to test all the other scope methods as well.  Although we might have to do something in case the test namespace would conflict with existing tests.  I may be able to do it.  Let me know.


metaprogramming lesson translated to japanese

This is awesome @m0a!  Could you please squash your commits? :grinning:

Hey @m0a, could you squash these commits so I can merge your changes?  Thank you again!
Let me know if you have any questions.


Add precision (standard deviation) parameter posterior plots

Aim to show what proportion of variance is attributable to different factors
Might be a paper of Jon Wakefield's that does this nicely
Not saving the standard deviation posteriors at the moment so this would be included in the aaa_fit scripts

Directly output a .tex or .txt file for the table?

Could add cloropleths like Li, Hsiao, Godwin et al. Figure 1. but unsure if they add much to the stacked barplots

I think this is close to the best version of this plot to convey the message about which random effects are most important in the model and how that varies over country. Closing this issue now, may reopen if there is coauthor feedback to warrant further changes.

Note that these are sometimes called Sobol indices.
Might also want to investigate Shapley values.


Correct SQS shutdown to avoid crashes

Description
Improve the SQS shutdown process such that it does not prevent the pipeline from shutting down and no longer results in failures.
The previous approach to shutting down the SQS thread closed the SqsClient. However, with acknowledgments enabled, asynchronous callbacks would result in further attempts to either ChangeVisibilityTimeout or DeleteMessages. These were failing because the client was closed. Also, the threads would remain and prevent Data Prepper from correctly shutting down. With this change, we correctly stop each processing thread. Then we close the client. Additionally, the SqsWorker now checks that it is not stopped before attempting to change the message visibility or delete messages.
Additionally, I found some missing test cases. Also, modifying this code and especially unit testing it is becoming more difficult, so I performed some refactoring to move message parsing out of the SqsWorker.
Issues Resolved
Resolves #4575
Check List

[ ] New functionality includes testing.
[ ] New functionality has a documentation issue. Please link to it in this PR.

[ ] New functionality has javadoc added

[ ] Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Were you able to test this new shutdown behavior locally?

Yes, I used the hold_forever sink (#4737) to reproduce the original issue and then showed that it stopped after this change.


ARTEMIS-1545 Support JMS 2.0 Completion Listener for Exceptions

@clebertsuconic re-sending so we can work through

@clebertsuconic https://builds.apache.org/job/ActiveMQ-Artemis-PR-Build/4660/ full test suite passed, what issue did you see?

The Pr build is not the full the testsuite.
I ran mvn test -Ptests

The full testsuite is stale on this...
On my personal CI box, when I run the following grep:
http://my-ci-box:8080/view/Artemis/job/novm-artemis-param/2294/consoleText
curl -s --insecure -0 http://my-ci-box:8080/view/Artemis/job/novm-artemis-param/2294/consoleText | grep -a -e "222105" -e Running -e "Tests run" -e "Finished Test" -e "Run test" -e "Start test" -e "Stop test"

I see the following:
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.103 sec - in org.apache.activemq.artemis.tests.integration.client.JMSMessageCounterTest
Running org.apache.activemq.artemis.tests.integration.client.JMSPagingFileDeleteTest
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 31.121 sec <<< FAILURE! - in org.apache.activemq.artemis.tests.integration.client.JMSPagingFileDeleteTest
Running org.apache.activemq.artemis.tests.integration.client.JmsNettyNioStressTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.205 sec - in org.apache.activemq.artemis.tests.integration.client.JmsNettyNioStressTest
Running org.apache.activemq.artemis.tests.integration.client.JournalCrashTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.646 sec - in org.apache.activemq.artemis.tests.integration.client.JournalCrashTest
Running org.apache.activemq.artemis.tests.integration.client.LargeMessageAvoidLargeMessagesTest

``

@clebertsuconic sorry could you expand on what you mean by the test suite is stale on this.

@michaelandrepearce it hangs on that test..  never finish.. freezes on that last test.

@clebertsuconic nudge nudge wink wink.... :)


Feature/finishing task

This PR introduces two features:

Fix https://github.com/open-rmf/rmf_ros2/issues/36 Adds a bool automatic parameter to Request to discern requests that are user and auto generated
Fix #27 . A new pure abstract RequestFactory is introduced with a make_reqeust() function that returns a ConstReqeustPtr. This RequestFactory can be optionally passed into TaskPlanner::optimal_plan(). Once the planner finds an solution for the set of requests, it will append the assignment for the RequestFactory->make_request() at the end. Requests generated by the factory must have automatic == true so that they are not confused with user submitted ones. This will help downstream fleet adapters ignore such requests when replanning.

When the reservation system is completed, we can add a NavigateToReservedSpot factory that will always make an agent navigate to its assigned spot.

I just noticed that the implementations ChargeBatteryFactory and ReturnToChargerFactory are included inside rmf_task/requests/factory/ while the namespacing is simply rmf_task::requests::. is this ok or should I update the namespacing to rmf_task::requests::factory?

I think it's a good idea to have the namespacing match the file system, but in this case I'd recommend moving the implementations of those classes into rmf_task/requests/ rather than adding a factory namespace, since the classes already have the word Factory in their names. Alternatively we could name the classes rmf_task::requests::factory::ChargeBattery, but that might create confusion if we ever expose a rmf_task::requests::ChargeBattery class to the public API.

Secondly, should we replace TaskPlanner::greedy_plan() and TaskPlanner::optimal_plan() with a single TaskPlanner::plan() method that accepts a greedy boolean parameter?

Let's provide some kind of TaskPlanner::Options PIMPL class that contains a bool greedy() field. Then whenever we want to offer more options for the planner, we add it to that class instead of changing the function signature (making the API+ABI more stable).

Let's provide some kind of TaskPlanner::Options PIMPL class that contains a bool greedy() field.

Tiny clarification: currently the fleet adapter calls the optimal planner on the main thread. In the future we might want to call the greedy planner on the main thread to quickly respond to bids and have the optimal planner run on a different thread. The results from the optimal planner will be used to update assignments if the bid is awarded. I could be wrong here, but would changing the greedy value in the Options class in one thread, affect the other planner running in the other thready?

I could be wrong here, but would changing the greedy value in the Options class in one thread, affect the other planner running in the other thready?

This is something that we need to make sure to implement correctly. But if we implement it following the model of rmf_traffic::agv::Planner then this not an issue at all.
To be clear, each Options instance will belong to each separate call to the TaskPlanner::plan(~) function in the exact same way that each bool greedy instance would belong to each separate call to TaskPlanner::plan(~) if we were to add a bool greedy parameter. The purpose of the Options class is simply to bundle up any additional parameters that are needed by the plan(~) function into a class that provides API+ABI stability. If you're familiar with kwargs in Python, it's roughly similar to that.

The purpose of the Options class is simply to bundle up any additional parameters that are needed by the plan(~) function into a class that provides API+ABI stability so that we can add more parameters at any time in the future without any harm to the API or ABI.

ooh so you're suggesting to modify the signature of TaskPlanner::plan() to accept a TaskPlanner::Options object? I originally assumed you meant to modify the constructor of TaskPlanner to take in TaskPlanner::Options similar to the planner in rmf_traffic

Right, but notice that the constructor of rmf_traffic::agv::Planner is taking in a parameter for the default options, meaning those options will be only used when someone calls Planner::plan without providing any options. Anytime someone calls Planner::plan while specifying some options, those specified options will be used instead of the default. Each call to Planner::plan is completely independent from each other.

Aah that's cool! Will modify accordingly.

Yeah, that's a great idea. Bundling all of those into Options makes perfect sense :+1:

@mxgrey  I've added TaskPlanner::Options class that presently accepts greedy, interrupter and finishing_request parameters.
optimal_plan and greedy_plan have been replaced with plan(). There is an overloaded plan() which accepts Options to override the default ones.


Add method to check for public key equality

This is useful when comparing a provided public key with a key from
another source such as a certificate.
Signed-off-by: Hayden Blauzvern<EMAIL_ADDRESS>
Summary

Ticket Link

Fixes
Release Note

Added method to check for public key equality

cc @dlorenc @bobcallaway


feat: RegisterGameKeybind Method

Adds a method for listening to in-game keypresses, where a panel is not currently being given focus. This has a nearly identical function signature to RegisterKeyBind, but listens exclusively to in-game keypresses.

Proposal has been rejected


Get-CsOnlineUser missing uservalidationerrors

When running Get-Csonlineuser and returning more than one user the results are missing the property uservalidationerrors. This does not happen when working with a single identity.
For example if you run "Get-csonlineuser -identity userUPN", uservalidationerrors is included in the results
Instead when running "Get-CsOnlineUser -filter {AccountEnabled -eq $true}" the results do not include this property.
I think it has something to do with the object returned with each command Selected.Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.UserMas and Selected.Microsoft.Teams.ConfigAPI.Cmdlets.Generated.Models.User respectively.
This is impacting the organization reports as we depend on this in order to take remediate actions.
This is happening on MicrosoftTeams module veersion 4.5.0

As a matter fact below is the entire list of properties missing when running the above mentioned command:
CountryAbbreviation
LastProvisionTimeStamps
LastPublishTimeStamps
LastSyncTimeStamp
OptionFlags
RegistrarPool
ServiceInstance
SipProxyAddress
TeamsMediaLoggingPolicy
UserValidationErrors
WhenCreated

Hi @LuisEmilioR we're working on changes to reintroduce these relevant properties by November timeframe for cases when not using the "-Identity" parameter

@isrumnon Thank you very much for sharing this information. @LuisEmilioR Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.

Hi @LuisEmilioR reaching out to you regarding a use case in Teams PowerShell Module - Do you have a requirement to filter based on UservalidationErrors?


[Feature]: Support transformation of snapshots

Self-service

[ ] I'd be willing to implement this feature

Template name
jest
Input code
Test source in toMatchSnapshot.spec.js
it("toMatchSnapshot", () => {
  expect("foobar".toUpperCase()).toMatchSnapshot();
});

Snapshot source in `snapshots/toMatchSnapshot.spec.js.snap
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`toMatchSnapshot 1`] = `"FOOBAR"`;

Expected Output
Test source in toMatchSnapshot.spec.js
import { expect, it } from "vitest";
it("toMatchSnapshot", () => {
  expect("foobar".toUpperCase()).toMatchSnapshot();
});

Snapshot source in `snapshots/toMatchSnapshot.spec.js.snap
// Vitest Snapshot v1

exports[`toMatchSnapshot 1`] = `"FOOBAR"`;

Additional context
Docs on Snapshot testing:

Jest: https://jestjs.io/docs/snapshot-testing
Vitest: https://vitest.dev/guide/snapshot.html#use-snapshots

The transformation of snapshots is not required, as the comments in snapshot tests will automatically get updated when vitest runs on it.
i.e. the following comment
// Jest Snapshot v1, https://goo.gl/fbAQLP

will update to
// Vitest Snapshot v1

The existing codemod already transforms the test file.
No additional change is needed, we'll add test for snapshot testing though.


GUI startup issue in v0.9.0

I am unable to open the GUI under Hyprland/Wayland on NixOS.
The log ends with double free or corruption (!prev) without ever showing a window.
Additionally, I see two initialization errors in the log.
Forcing GLFW to use X11 using XDG_SESSION_TYPE=x11 gets to an initial window, but no interaction is possible. It also seems that after the first interaction attempt, the log freezes as well.
Execution log:
$ ./vkdt -d all IMG.NEF
[gui] vkdt 0.9.0 (c) 2020--2024 johannes hanika
[pipe] base directory /nix/store/4d4h4sfj1vfygy5qb2nn74by4k5cy43k-vkdt-0.9.0/lib/vkdt
[pipe] home directory /home/korrat/.config/vkdt
[pipe] loaded 84 modules
[gui] glfwGetVersionString() : 3.4.0 Wayland X11 GLX Null EGL OSMesa monotonic shared
[gui] monitor [0] HDMI-A-6 at 0 0
[gui] monitor [1] DP-3 at 0 0
[gui] monitor [2] DP-4 at 0 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_wayland_surface
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD Radeon RX 7900 XT
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range<PHONE_NUMBER>
[qvk] dev 1: vendorid 0x8086
[qvk] dev 1: Intel(R) Graphics (RPL-S)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range<PHONE_NUMBER>
[qvk] num queue families: 3
[qvk] picked device 0 with ray tracing and without float atomics and without coopmat support
[qvk] queue 0 is idx 0 family 0
[qvk] available surface formats:
[qvk] B8G8R8A8_UNORM
[qvk] B8G8R8A8_SRGB
[qvk] using B8G8R8A8_UNORM and colour space 0
[gui] no joysticks found
[gui] you have more than 2 monitors attached! only the first two will be colour managed!
[gui] no display profile file display.HDMI-A-6, using sRGB!
[gui] no display profile file display.DP-3, using sRGB!
[qvk] available surface formats:
[qvk] B8G8R8A8_UNORM
[qvk] B8G8R8A8_SRGB
[qvk] using B8G8R8A8_UNORM and colour space 0
[qvk] error VK_ERROR_INITIALIZATION_FAILED executing vkCreateSwapchainKHR(qvk.device, &swpch_create_info, NULL, &win->swap_chain)!
[qvk] error VK_ERROR_INITIALIZATION_FAILED executing dt_gui_create_swapchain(win)!
[db] allocating 1024.0 MB for thumbnails
[perf] upload source total:	  0.016 ms
[perf] create raytrace accel:	  0.000 ms
[perf] record command buffer:	  0.025 ms
[mem] images : peak rss 0.000244141 MB vmsize 0.000244141 MB
[mem] buffers: peak rss 0 MB vmsize 0 MB
[mem] staging: peak rss 0.000244141 MB vmsize 0.000244141 MB
[perf] record cmd buffer:	  0.185 ms
[perf] i-bc1    main    :	  0.004 ms
[perf] total time:	  0.004 ms
[perf] [thm] ran graph in   0ms
[perf] upload source total:	  0.225 ms
[perf] create raytrace accel:	  0.000 ms
[perf] record command buffer:	  0.007 ms
[mem] images : peak rss 0.078125 MB vmsize 0.078125 MB
[mem] buffers: peak rss 0 MB vmsize 0 MB
[mem] staging: peak rss 0.100708 MB vmsize 0.100708 MB
[perf] record cmd buffer:	  0.329 ms
[perf] i-bc1    main    :	  0.006 ms
[perf] total time:	  0.006 ms
[perf] [thm] ran graph in   0ms
[perf] [rawloader] load IMG.NEF in 135ms
[perf] upload source total:	  5.427 ms
[perf] create raytrace accel:	  0.000 ms
[perf] record command buffer:	  0.123 ms
[mem] images : peak rss 644.86 MB vmsize 931.344 MB
[mem] buffers: peak rss 0 MB vmsize 0 MB
[mem] staging: peak rss 158.127 MB vmsize 158.127 MB
[perf] record cmd buffer:	154.248 ms
[perf] i-raw    main    :	  1.244 ms
[perf] denoise  noop    :	  0.105 ms
[perf] hilite   half    :	  0.074 ms
[perf] hilite   reduce  :	  0.361 ms
[perf] hilite   reduce  :	  0.118 ms
[perf] hilite   reduce  :	  0.020 ms
[perf] hilite   reduce  :	  0.014 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.007 ms
[perf] hilite   reduce  :	  0.007 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.007 ms
[perf] hilite   assemble:	  0.002 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.010 ms
[perf] hilite   assemble:	  0.016 ms
[perf] hilite   assemble:	  0.060 ms
[perf] hilite   assemble:	  0.222 ms
[perf] hilite   doub    :	  0.100 ms
[perf] sum hilite:	  1.056 ms
[perf] demosaic down    :	  0.024 ms
[perf] demosaic gauss   :	  0.131 ms
[perf] demosaic splat   :	  0.348 ms
[perf] demosaic fix     :	  1.074 ms
[perf] sum demosaic:	  1.577 ms
[perf] crop     main    :	  0.228 ms
[perf] colour   main    :	  0.402 ms
[perf] filmcurv main    :	  0.405 ms
[perf] llap     curve   :	  1.228 ms
[perf] llap     reduce  :	  0.834 ms
[perf] llap     reduce  :	  0.165 ms
[perf] llap     reduce  :	  0.032 ms
[perf] llap     reduce  :	  0.009 ms
[perf] llap     reduce  :	  0.003 ms
[perf] llap     reduce  :	  0.002 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.008 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.009 ms
[perf] llap     assemble:	  0.022 ms
[perf] llap     assemble:	  0.069 ms
[perf] llap     assemble:	  0.260 ms
[perf] llap     assemble:	  1.049 ms
[perf] llap     colour  :	  0.283 ms
[perf] sum llap:	  4.014 ms
[perf] hist     collect :	  1.930 ms
[perf] hist     map     :	  0.006 ms
[perf] total time:	 11.285 ms
[perf] [rawloader] load IMG.NEF in  89ms
[perf] upload source total:	  5.648 ms
[perf] create raytrace accel:	  0.000 ms
[perf] record command buffer:	  0.105 ms
[mem] images : peak rss 230.923 MB vmsize 245.938 MB
[mem] buffers: peak rss 0 MB vmsize 0 MB
[mem] staging: peak rss 31.6333 MB vmsize 31.6333 MB
[perf] record cmd buffer:	 99.891 ms
[perf] i-raw    main    :	  1.243 ms
[perf] denoise  noop    :	  0.108 ms
[perf] hilite   half    :	  0.076 ms
[perf] hilite   reduce  :	  0.369 ms
[perf] hilite   reduce  :	  0.122 ms
[perf] hilite   reduce  :	  0.020 ms
[perf] hilite   reduce  :	  0.014 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.007 ms
[perf] hilite   reduce  :	  0.008 ms
[perf] hilite   reduce  :	  0.007 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.003 ms
[perf] hilite   assemble:	  0.010 ms
[perf] hilite   assemble:	  0.016 ms
[perf] hilite   assemble:	  0.062 ms
[perf] hilite   assemble:	  0.228 ms
[perf] hilite   doub    :	  0.102 ms
[perf] sum hilite:	  1.081 ms
[perf] demosaic halfsize:	  0.034 ms
[perf] shared   resample:	  0.030 ms
[perf] crop     main    :	  0.008 ms
[perf] sum crop:	  0.072 ms
[perf] colour   main    :	  0.006 ms
[perf] filmcurv main    :	  0.003 ms
[perf] llap     curve   :	  0.006 ms
[perf] llap     reduce  :	  0.004 ms
[perf] llap     reduce  :	  0.002 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     reduce  :	  0.001 ms
[perf] llap     assemble:	  0.006 ms
[perf] llap     assemble:	  0.008 ms
[perf] llap     assemble:	  0.008 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.007 ms
[perf] llap     assemble:	  0.008 ms
[perf] llap     assemble:	  0.013 ms
[perf] llap     colour  :	  0.002 ms
[perf] sum llap:	  0.086 ms
[perf] colenc   main    :	  0.007 ms
[perf] total time:	  2.857 ms
[perf] [thm] ran graph in 106ms
double free or corruption (!prev)

Hey Jo, I see this too, vkdt opens under wayland, but none of the controls in the window are clickable.
Additionally I noticed that we no longer get the binary vkdt-wayland though it isn't clear to me if that's on the nix side of things or here.
Sorry I skipped packaging 0.8 because I was too busy :(

oh man, wayland makes me sad. not clickable might be related to https://github.com/hanatos/vkdt/issues/137
but in the log above (this is with wayland startup, not with x11 glfw, right?) it is unable to create the swapchain:
[qvk] error VK_ERROR_INITIALIZATION_FAILED executing vkCreateSwapchainKHR(qvk.device, &swpch_create_info, NULL, &win->swap_chain)!
[qvk] error VK_ERROR_INITIALIZATION_FAILED executing dt_gui_create_swapchain(win)!

which is what i regularly get from nvidia on wayland. @korrat this is a laptop right? with dedicated AMD GPU that is confused about access to the display..
@paperdigits : glfw now ships both for runtime switching. as korrat mentioned, you can steer it via environment variable, so there is no need for an explicit binary for wayland any more.
@korrat : which driver is this? amdgpu, amdgpu-pro, or radv? also, is this a debug build (make debug)? i.e. are the validation layers actually active or just some initial messages are printed in the beginning of the log?
will try to install wayland/something once again..

this is with wayland startup, not with x11 glfw, right?)

Right. The x11 startup does not produce that error.

@korrat this is a laptop right? with dedicated AMD GPU that is confused about access to the display.

No, this is a Desktop (with an Intel CPU & AMD GPU).

which driver is this? amdgpu, amdgpu-pro, or radv?

That should be amdgpu. Both amdvlk and radv are available for Vulkan.

also, is this a debug build (make debug)?

No. Building with make debug, the log gets very short:
$ ./vkdt -d all
[gui] vkdt 0.9.0 (c) 2020--2024 johannes hanika
[pipe] base directory /nix/store/k0hcnn9lybp9mb7izr092pzzr1w57k03-vkdt-0.9.0/lib/vkdt
[pipe] home directory /home/korrat/.config/vkdt
[pipe] loaded 84 modules
[gui] glfwGetVersionString() : 3.4.0 Wayland X11 GLX Null EGL OSMesa monotonic shared
[gui] monitor [0] HDMI-A-6 at 0 0
[gui] monitor [1] DP-3 at 0 0
[gui] monitor [2] DP-4 at 0 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_wayland_surface
[ERR] error VK_ERROR_LAYER_NOT_PRESENT executing vkCreateInstance!
[ERR] did you install the vulkan validation layer package?
[ERR] init vulkan failed
[ERR] failed to init gui/swapchain

okay, great, thanks for confirming a few details there. if you could install the validation layers and re-run the debug build maybe it will tell us some more?
btw just pushed 0ee0cb34 which may or may not fix the mouse interaction for wayland. hard to tell for me since i'm currently on an nvidia machine and running wayland is.. interesting.

Sorry, took some fighting with the validation layers, but here's the log:
[gui] vkdt 0.9.0 (c) 2020--2024 johannes hanika
[pipe] base directory /nix/store/zh9x54rfz7b2nn5cg6xad38nhlvfsidb-vkdt-0.9.0/lib/vkdt
[pipe] home directory /home/korrat/.config/vkdt
[pipe] loaded 84 modules
[gui] glfwGetVersionString() : 3.4.0 Wayland X11 GLX Null EGL OSMesa monotonic shared
[gui] monitor [0] HDMI-A-6 at 0 0
[gui] monitor [1] DP-3 at 0 0
[gui] monitor [2] DP-4 at 0 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_wayland_surface
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD Radeon RX 7900 XT
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range<PHONE_NUMBER>
[qvk] dev 1: vendorid 0x8086
[qvk] dev 1: Intel(R) Graphics (RPL-S)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range<PHONE_NUMBER>
[qvk] num queue families: 3
[qvk] picked device 0 with ray tracing and without float atomics and without coopmat support
[qvk] validation layer: vkCreateDevice extension VK_EXT_debug_marker not available for devices associated with ICD /nix/store/1rg9ykilhsgrlwb5vmmc9d0schgd9h30-amdvlk-2024.Q3.2/lib/amdvlk64.so
[qvk] queue 0 is idx 0 family 0
[qvk] available surface formats:
[qvk] B8G8R8A8_UNORM
[qvk] B8G8R8A8_SRGB
[qvk] using B8G8R8A8_UNORM and colour space 0
[gui] no joysticks found
[gui] you have more than 2 monitors attached! only the first two will be colour managed!
[gui] no display profile file display.HDMI-A-6, using sRGB!
[gui] no display profile file display.DP-3, using sRGB!
[qvk] available surface formats:
[qvk] B8G8R8A8_UNORM
[qvk] B8G8R8A8_SRGB
[qvk] using B8G8R8A8_UNORM and colour space 0
[qvk] validation layer: Validation Error: [ VUID-VkSwapchainCreateInfoKHR-preTransform-parameter ] | MessageID = 0xaf5f3828 | vkCreateSwapchainKHR(): pCreateInfo->preTransform contains multiple members of VkSurfaceTransformFlagBitsKHR when only a single value is allowed. The Vulkan spec states: preTransform must be a valid VkSurfaceTransformFlagBitsKHR value (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-preTransform-parameter)
vkdt: qvk/qvk.c:105: VkBool32 vk_debug_callback(VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, const VkDebugUtilsMessengerCallbackDataEXT *, void *): Assertion `0' failed.
an error occurred while trying to execute gdb.please check if gdb is installed on your system.
backtrace written to /tmp/vkdt-bt-3903305.txt
recovery data written to /tmp/vkdt-crash-recovery.*

excellent, thank you. i am going to say this is a driver/vulkan bug, much like https://github.com/KhronosGroup/Vulkan-Docs/issues/2440
but let me force fix this on our side too. are you using a rotated screen at all?

@korrat if you have the chance to compile from git, can you confirm that the above mentioned commit fixes the issue?

but let me force fix this on our side too. are you using a rotated screen at all?

Yeah, HDMI-A-6 is rotated to portrait orientation.
Is there any way to force vkdt to use the displayport screens and ignore the HDMI one?

@korrat if you have the chance to compile from git, can you confirm that the above mentioned commit fixes the issue?

Still no dice, sadly:
[gui] vkdt 0.9.99-13-g57076ee3 (c) 2020--2024 johannes hanika
[pipe] base directory /home/korrat/workspace/github.com/hanatos/vkdt/bin
[pipe] home directory /home/korrat/.config/vkdt
[pipe] loaded 85 modules
[gui] glfwGetVersionString() : 3.4.0 Wayland X11 GLX Null EGL OSMesa monotonic shared
[gui] monitor [0] HDMI-A-6 at 0 0
[gui] monitor [1] DP-3 at 0 0
[gui] monitor [2] DP-4 at 0 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_wayland_surface
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] validation layer: Copying old device 0 into new device 0
[qvk] validation layer: Copying old device 1 into new device 1
[qvk] validation layer: Copying old device 2 into new device 2
[qvk] validation layer: Copying old device 3 into new device 3
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD Radeon RX 7900 XT
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range<PHONE_NUMBER>
[qvk] dev 1: vendorid 0x8086
[qvk] dev 1: Intel(R) Graphics (RPL-S)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range<PHONE_NUMBER>
[qvk] num queue families: 3
[qvk] picked device 0 with ray tracing and without float atomics and without coopmat support
[qvk] validation layer: vkCreateDevice extension VK_EXT_debug_marker not available for devices associated with ICD /nix/store/1rg9ykilhsgrlwb5vmmc9d0schgd9h30-amdvlk-2024.Q3.2/lib/amdvlk64.so
[qvk] queue 0 is idx 0 family 0
[qvk] available surface formats:
[qvk] B8G8R8A8_UNORM
[qvk] B8G8R8A8_SRGB
[qvk] using B8G8R8A8_UNORM and colour space 0
[gui] no joysticks found
[gui] you have more than 2 monitors attached! only the first two will be colour managed!
[gui] no display profile file display.HDMI-A-6, using sRGB!
[gui] no display profile file display.DP-3, using sRGB!
[qvk] available surface formats:
[qvk] B8G8R8A8_UNORM
[qvk] B8G8R8A8_SRGB
[qvk] using B8G8R8A8_UNORM and colour space 0
[qvk] validation layer: Validation Error: [ VUID-VkSwapchainCreateInfoKHR-presentMode-02839 ] | MessageID = 0xfb70ccdb | vkCreateSwapchainKHR(): pCreateInfo->minImageCount 0, which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR() (i.e. minImageCount = 2, maxImageCount = 16). The Vulkan spec states: If presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-presentMode-02839)
vkdt: qvk/qvk.c:105: VkBool32 vk_debug_callback(VkDebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT, const VkDebugUtilsMessengerCallbackDataEXT *, void *): Assertion `0' failed.
an error occurred while trying to execute gdb.please check if gdb is installed on your system.
backtrace written to /tmp/vkdt-bt-4124620.txt
recovery data written to /tmp/vkdt-crash-recovery.*

now i'm a bit at a loss. the code literally does exactly what the validation layer says, i.e. queries vkGetPhysicalDeviceSurfaceCapabilitiesKHR and sets the minimum. i'm going to say that amdvlk is buggy. in the slightly older phoronix tests the mesa radv driver was much faster, especially for your GPU device here, so maybe just use that driver instead? i don't know how to best do it. make sure it's installed and then
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json

or uninstall amdvlk or some such.

awesome. so i'll consider this fixed then. i don't trust any more errors coming out of amdvlk :)  such semaphore problems are pretty severe and i did debug this with validation layers that seemed to actually know what they are saying. and this works on windows, macos/intel, debian/(nvidia,intel,amd), so i doubt there is an actual deadlock here. thanks for providing these detailed validation layer outputs though, they are really helpful.
to answer your other question about monitors: this is just for colour management. for wayland it's probably broken anyways. the only thing that could be a workable approach is to determine one main monitor you care about and put the icc profile into all the profiles vkdt loads. the detection code "where is my window" does not work on wayland. i will currently ignore VCGT/correction curves, so it's essential that during profile creation the white point of the monitor matches quite well (through hardware adjustments).


Add GDAL library config module

Hi, thanks for your contribution.
Could you replace the unwrap() calls with try/? ?

I am finding that running cargo test locally fails (with a segfault) quite frequently and I see the Travis CI build also has problems.  I get the same failures without my changes too.
Running the tests using valgrind indicates a read-after-free problem in the last line of Geometry::test_spatial_reference where it calls geom.spatial_reference(). Valgrind is suggesting that some memory is being read after it has been freed after the previous line.
If I comment out the test_spatial_reference test, all the other tests pass and there are no segfaults.
I will continue to investigate, but I am confident that this PR is not the cause.

This is interesting. Travis started to fail often some time ago but i had no idea why. Could you create a new issue for this?


Extract metadata from MultipartFile

Fixes gh-11

Thanks a lot, Tomasz!

Thanks for the review @xxlabaza!


Fixed bug with vim-tmux-navigator

I had a bug where Control+motion (where motion is one of h,j,k,l) would completely freeze neovim. I tracked this down to missing configuration options in the vim-tmux-navigator. Adding the recommended config (from https://github.com/christoomey/vim-tmux-navigator) immediately fixed the bug for me.
I also took the liberty of moving this plugin out of miscellaneous to a separate file, in order not to clutter misc.lua.

Awesome, thanks for taking the initiative to fix this! Much appreciated.

No worries, I love your channel so it was my pleasure. A video explaining how to make your own dotfiles would be really helpful :)

Awesome, thanks for taking the initiative to fix this! Much appreciated.

No worries, I love your channel so it was my pleasure. A video explaining how to make your own dotfiles would be really helpful :)

Glad to hear that and thanks for the suggestion! :)


Update TryGetCollectionCount to use TryGetNonEnumeratedCount from .net6.0+ corelib

IIRC, stdlib offers no optimizations for IReadOnly*, so relying on anything from it is technically a breaking change

Yeah- figured that out with failing tests. Haven't decided what to do yet. Might do:
source.TryGetNonEnumeratedCount(out var count) ? out count :
source is IReadOnlyCollection<TSource> iroc ? out iroc.Count :
null

That would work. You could also remove special IReadOnly* handling entirely for all versions (ironic for me to suggest that, since I added it to MoreLinq to begin with... but I don't see a reason to handle it if stdlib has repeatedly and explicitly decided not to).

@Arithmomaniac I removed support for IReadOnlyCollection in #132. Technically a breaking change, but per corelib, I don't expect IReadOnlyCollection is common without also implementing ICollection. Given the lack of use of this library, number of affected users should be negligible.

Codecov Report
Base: 86.83% // Head: 86.98% // Increases project coverage by +0.14% :tada:

Coverage data is based on head (599bad5) compared to base (cb04ef7).
Patch coverage: 66.66% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #117      +/-   ##
==========================================
+ Coverage   86.83%   86.98%   +0.14%
==========================================
  Files         190      190
  Lines        5060     5062       +2
  Branches     1180     1181       +1
==========================================
+ Hits         4394     4403       +9
+ Misses        366      361       -5
+ Partials      300      298       -2

Impacted Files
Coverage Δ

Source/SuperLinq/SuperEnumerable.cs
70.58% <66.66%> (+10.58%)
:arrow_up:

Source/SuperLinq/CopyTo.cs
96.55% <0.00%> (+10.34%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.