Can't work for google or facebook

0. Before Your ASK

Try to find an answer by reading a FAQ.

Ⅰ. Issue Description
It works well when requesting github.com, but won't work for google and facebook.
Ⅱ. Describe what happened
1. request google response 502
# curl https://www.google.com/ -v -x <IP_ADDRESS>:56743
* About to connect() to proxy <IP_ADDRESS> port 56743 (#0)
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 56743 (#0)
* Establish HTTP proxy tunnel to www.google.com:443
> CONNECT www.google.com:443 HTTP/1.1
> Host: www.google.com:443
> User-Agent: curl/7.29.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 502 Bad Gateway
< Server: openresty/<IP_ADDRESS>
< Date: Thu, 15 Oct 2020 14:31:58 GMT
< Content-Type: text/html
< Content-Length: 163
< Connection: close
<
* Received HTTP code 502 from proxy after CONNECT
* Connection #0 to host <IP_ADDRESS> left intact
curl: (56) Received HTTP code 502 from proxy after CONNECT

2. response ok for github
# curl https://github.com/ -v -x <IP_ADDRESS>:56743
* About to connect() to proxy <IP_ADDRESS> port 56743 (#0)
*   Trying <IP_ADDRESS>...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 56743 (#0)
* Establish HTTP proxy tunnel to github.com:443
> CONNECT github.com:443 HTTP/1.1
> Host: github.com:443
> User-Agent: curl/7.29.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection Established
< Proxy-agent: nginx
<
* Proxy replied OK to CONNECT request
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=github.com,O="GitHub, Inc.",L=San Francisco,ST=California,C=US
* 	start date: 5月 05 00:00:00 2020 GMT
* 	expire date: 5月 10 12:00:00 2022 GMT
* 	common name: github.com
* 	issuer: CN=DigiCert SHA2 High Assurance Server CA,OU=www.digicert.com,O=DigiCert Inc,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: github.com
> Accept: */*
>
< HTTP/1.1 200 OK
< date: Thu, 15 Oct 2020 14:38:16 GMT
< content-type: text/html; charset=utf-8
< server: GitHub.com
< status: 200 OK
< vary: X-PJAX, Accept-Encoding, Accept, X-Requested-With, Accept-Encoding
< etag: W/"a9278d848c556f665531166da32eb7c5"
< cache-control: max-age=0, private, must-revalidate
< strict-transport-security: max-age=31536000; includeSubdomains; preload
< x-frame-options: deny
......

3. nginx logs
2020/10/15 22:43:10 [error] 14733#14733: *10722 connect() to [2001::1f0d:4833]:443 failed (101: Network is unreachable) while connecting to upstream, client: <IP_ADDRESS>, server: , request: "CONNECT www.google.com:443 HTTP/1.1", host: "www.google.com:443"
2020/10/15 22:43:10 [error] 14733#14733: *10722 proxy_connect: connection error while connecting to upstream, client: <IP_ADDRESS>, server: , request: "CONNECT www.google.com:443 HTTP/1.1", host: "www.google.com:443"
2020/10/15 22:43:10 [error] 14733#14733: unexpected response for www.google.com
2020/10/15 22:43:10 [error] 14733#14733: unexpected response for www.google.com
2020/10/15 22:43:10 [error] 14733#14733: unexpected response for www.google.com

Ⅲ. Describe what you expected to happen
Request for https://www.google.com works right.
Ⅳ. How to reproduce it (as minimally and precisely as possible)

install and compile
config

    server {
	    resolver <IP_ADDRESS>;
	    listen 56780;
	    location / {
		    proxy_pass http://$http_host$request_uri;
		    proxy_set_header HOST $http_host;
		    proxy_buffers 256 4k;
		    proxy_max_temp_file_size 0k;
		    proxy_connect_timeout 30;
		    proxy_send_timeout 60;
		    proxy_read_timeout 60;
		    proxy_next_upstream error timeout invalid_header http_502;
	    }
    }

    server {
	    listen                         56743;

# dns resolver used by forward proxying
	    resolver                       <IP_ADDRESS>;

# forward proxy for CONNECT request
	    proxy_connect;
	    proxy_connect_allow            443 563;
	    proxy_connect_connect_timeout  10s;
	    proxy_connect_read_timeout     10s;
	    proxy_connect_send_timeout     10s;

# forward proxy for non-CONNECT request
	    location / {
		    proxy_pass http://$host;
		    proxy_set_header Host $host;
	    }
    }

Start nginx and execute commands at  Ⅱ

Ⅴ. Anything else we need to know?

If applicable, add nginx  debug log.

Ⅵ. Environment:

Tengine/Nginx/OpenResty version (use sbin/nginx -v):
nginx version: openresty/<IP_ADDRESS>

Which patch do you use?
proxy_connect_rewrite_1018.patch

The issue is you have IPv6 setup incorrectly on your box. Ninx tries to proxy to ipv6 by default instead of ipv4, and you get a 502 because of the connection failure:
2020/10/15 22:43:10 [error] 14733#14733: *10722 connect() to [2001::1f0d:4833]:443 failed (101: Network is unreachable) while connecting to upstream, client: <IP_ADDRESS>, server: , request: "CONNECT www.google.com:443 HTTP/1.1", host: "www.google.com:443"
This is not an issue with the module. You can take one the following steps to correct your local issue:

Force the resolver to use IPv4 (resolver <IP_ADDRESS> ipv6=off;)
Configure IPv6 correctly
Disable IPv6 using sysctl, then restart nginx/openrsety

using sysctl, then restart nginx/ope

Thank you so much @AndreiG6 ! I have got it right.


DSM 7.2 the 2FA is now mandatory which looks like it is yet not supported by this version

Looks like 2FA is now mandatory and my csi user with admin group right fails to connect to DSM cause it passes only the first phase of the 2FA authentication as seen in the logs....
Trying to make my Synology CSI ISCSI work but not getting it through.
I0906 20:28:00.271711       1 event.go:282] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"busybox-pvc-tshoot-iscsi-03", UID:"6aa6fcf4-50b0-43ab-bd6c-xxxxxxxx", APIVersion:"v1", ResourceVersion:"637548", FieldPath:""}): type: 'Warning' reason: 'ProvisioningFailed' failed to provision volume with StorageClass "synostorage": rpc error: code = Internal desc = Couldn't find any host available to create Volume
I0906 20:28:00.272002       1 event.go:282] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"busybox-pvc-tshoot-iscsi-01", UID:"8a9e2772-49f5-402a-a7ad-b32034xxxxxxx", APIVersion:"v1", ResourceVersion:"637588", FieldPath:""}): type: 'Warning' reason: 'ProvisioningFailed' failed to provision volume with StorageClass "synology-iscsi-storage": rpc error: code = Internal desc = Couldn't find any host available to create Volume
#below the synology log showing my worker node trying to connect to the DSM. Only first auth passed via password.
09/06/2023 13:59:27 Info synology02 synology-k3s-csi Connection User [synology-k3s-csi] from [<IP_ADDRESS>] has successfully passed the first authentication of 2FA via [password] 09/06/2023 13:59:26 Info synology02 synology-k3s-csi Connection User [synology-k3s-csi] from [<IP_ADDRESS>] has successfully passed the first authentication of 2FA via [password] 09/06/2023 13:59:26 Info synology02 synology-k3s-csi Connection User [synology-k3s-csi] from [<IP_ADDRESS>] has successfully passed the first authentication of 2FA via [password] 09/06/2023 13:59:25 Info synology02 synology-k3s-csi Connection User [synology-k3s-csi] from [<IP_ADDRESS>] has successfully passed the first authentication of 2FA via [password] 09/06/2023 13:58:40 Info synology02 SYSTEM System System successfully stopped [SSH service].

@tzago it's possible to activate 2FA only on some users:

Thanks a log @laghoule that worked for me.
Hey maybe what is missing in the docs is a comprehensive explanation on how to best create a user for this synology csi.
What is not clear from current documentation is the right settings for the user to be able to creat iscsi luns which clearly requires admin rights.
Also what is needed to mitigate security risk while creating this user as the secret will be exposed in plain sight with the user synology user credentials.


CIS Benchmark app is trying to use image rancher/cis-operator:v1.0.8 but v1.0.9 is listed in rancher-images.txt v2.6.7-rc3

Rancher Server Setup

Rancher version: 2.6.7-rc3
Installation option: Helm chart Airgap HA

If Helm Chart, Kubernetes Cluster and version: RKE1

Proxy/Cert Details: No proxy, valid certificates

Information about the Cluster

Kubernetes version: v1.20.15-rancher2-1
Cluster Type (Local/Downstream): Downstream

If downstream, what type of cluster?: Custom RKE1

User Information

What is the role of the user logged in? Admin

Describe the bug
When installing the CIS Benchmark app v2.0.4 the chart has the cis-operator v1.0.8 but rancher-images.txt lists rancher/cis-operator:v1.0.9
This prevents the chart to install correctly with the default values.
To Reproduce

Airgap Rancher install
Downstream cluster RKE1
Navigate to Cluster -> Apps -> Charts
Click over CIS Benchmark and install with the default values.

Result
App is installed but the deployment is showing ImagePullBackOff errors in the cis-operator deployment in the cis-operator-system namespace
Expected Result
App and its deployments are active and functional in the downstream cluster. No ImagePullBackOff errors.

What you are seeing here is the intended behavior. Rancher v2.6.7-rcX will generate a rancher-images.txt with the v1.0.9 operator version because that's the latest version we have in dev-v2.6 currently for that Rancher version and the image exporter only checks the latest version of this chart for images. To get the v1.0.8 operator version you need to start with a Rancher v2.6.6 setup which should have the previously released CIS benchmark version with that operator version in its rancher-images.txt. In an airgap setup the user needs to upgrade Rancher to get the new charts/images that were bundled with the new Rancher version, so realistically they would have an older Rancher version and the old operator version in their registry before the upgrade.

@PennyScissors if there's a new chart version in dev-2.6 wouldn't that version be available too as an install option in Rancher v2.6.7-rcX ?
I will do another round of testing as the non-Airgap lists a CIS chart that use the v1.0.9, not sure why that version wasn't listed on the Airgap.

@izaac Yes, but only the images of the latest version of the chart will be in the rancher-images.txt file of the latest Rancher RC since that's what is in dev-v2.6 at the time the Rancher RC is built and the rancher-images.txt file is generated.

Rancher version: v2.6.7-rc5
rancher-cis-benchmark:2.0.5-rc6
I was able to install this chart version of CIS in the latest RC this version makes use of the cis-operator:v1.0.9 image. No need to load any images from previous Rancher versions.


Emote commands in English + Small visual improvements

Chat emote commands corrected
Small äöü replaced by capital letters e.g. from (in the menu) ZURüCK to ZURÜCK
other small improvements to the menu text

to much capital umlaute, plz change

They are there so they even show up in game. Lowercase is often bugged.

to much capital umlaute, plz change

Exactly what @ROBdk97 said.  In the game, the main menu says "ZURüCK" to go back and that looks strange, so I put the ü as a capital Ü so that the button says "ZURÜCK".

@electronicfreak what is now up with this? We gave you the reason for the capital umlauts

@Dymerz can you help us pls.?

Since @electronicfreak unfortunately no longer responds here, the changes suggested here were added with Commit ce27ab2be3cef5a69613f9c92439883401ea9765 to #168 and are ready to merge there.


DELETE

delete this

There were no commits b/c the pg driver pretty much just works. There was no apparent need, and it is actively used also as base driver for other pg based drivers.
Please refrain from being an a****le. This is open source not your free winter wonderland. If you desperately need features or support, come and pay some for it, OR, be decent and give something back to open source by contributing PRs and helping yourself others.  Just b/c no one answered your question which isn't even related to the driver, but just your lack of knowledge about the matter itself it doesn't mean it is dead. This is not free sausage land. And again.
You want desperate support? You need answers? Go find someone to help you, otherwise pay for it, but stop blaming the open source community for not pampering you.

It's hard to tell with no readme

https://giphy.com/gifs/drugs-weed-alice-in-wonderland-FdwDJ4l8RYVCU

own fault for not being able to read the main repo and only looking at a driver.


Too inefficient way to append file content, when i need to save file immediately

I use W25Q128 Flash.
My LFS adopts the following configuration.
const struct lfs_config fsCfg =
{
	.read_size = 32,
	.prog_size = 32,
	.block_size = 4096,
	.block_count =10,       //address start at 0x800
	.lookahead_size = 64,
	.block_cycles = 8,
       .cache_size = 1024,
};

I have some data that needs to be stored in flash at any time when there is a power outage. So every time I use lfs to open a file (use open type writeOnly, append) and write to it, I immediately close the file (I also used sync testing, and the results were the same).
If I don't close file it  or synchronize, then the power outage data will be lost at this time
The data is stored in a structure with a size of 64B, and the size is always 64 when writing. Because it immediately shuts down after each write, lfs saves the data back to flash after each write. In this case, when the file size is over 512 B, every time I save data, lfs erases a new sector. You know, I only wrote 64B of data, but every time lfs erases an entire sector of 4096B, there is a difference of 2 ^ 6=64 times. This is a bit too inefficient, and even less efficient than simply erasing the sectors in place.
Is it caused by my usage error.
My log is as follows。
The
"i" mean times of write.
"size"  means the total number of bytes in the file now( befor write data and close file ).
"fe" means erase sector .
- >
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 0,size=0 (file size now)
- > w25WrAdd = 0x801040,size=64    //maybe creat file
- > w25WrAdd = 0x801080,size=96   //maybe write file =64; update file info = 32; total 96
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 1,size=64
- > w25WrAdd = 0x8010E0,size=160   // maybe write file =64*2; update file info = 32;total 160.
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 2,size=128
- > w25WrAdd = 0x801180,size=224  // maybe write file =64*3; update file info = 32;total 224. Copying the entire file every time is too inefficient
- >
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 3,size=192
- > w25WrAdd = 0x801260,size=288
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 4,size=256
- > w25WrAdd = 0x801380,size=352
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 5,size=320
- > w25WrAdd = 0x8014E0,size=416
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 6,size=384
- > w25WrAdd = 0x801680,size=480
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 7,size=448
- > w25WrAdd = 0x801860,size=544
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 8,size=512
- > fe:802          //when size is over 512 ,every time close file, erase sector.
- > w25WrAdd = 0x802000,size=576
- > w25WrAdd = 0x801A80,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 9,size=576
- > fe:803
- > w25WrAdd = 0x803000,size=640
- > w25WrAdd = 0x801AA0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 10,size=640
- > fe:804
- > w25WrAdd = 0x804000,size=704
- > w25WrAdd = 0x801AC0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 11,size=704
- > fe:805
- > w25WrAdd = 0x805000,size=768
- > w25WrAdd = 0x801AE0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 12,size=768
- > fe:806
- > w25WrAdd = 0x806000,size=832
- > w25WrAdd = 0x801B00,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 13,size=832
- > fe:807
- > w25WrAdd = 0x807000,size=896
- > w25WrAdd = 0x801B20,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 14,size=896
- > fe:808
- > w25WrAdd = 0x808000,size=960
- > w25WrAdd = 0x801B40,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 15,size=960
- > fe:809
- > w25WrAdd = 0x809000,size=1024
- > w25WrAdd = 0x801B60,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 16,size=1024
- > fe:802
- > w25WrAdd = 0x802000,size=1024
- > w25WrAdd = 0x802400,size=64
- > w25WrAdd = 0x801B80,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 17,size=1088
- > fe:803
- > w25WrAdd = 0x803000,size=1024
- > w25WrAdd = 0x803400,size=128
- > w25WrAdd = 0x801BA0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 18,size=1152
- > fe:804
- > w25WrAdd = 0x804000,size=1024
- > w25WrAdd = 0x804400,size=192
- > w25WrAdd = 0x801BC0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 19,size=1216
- > fe:805
- > w25WrAdd = 0x805000,size=1024
- > w25WrAdd = 0x805400,size=256
- > w25WrAdd = 0x801BE0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 20,size=1280
- > fe:806
- > w25WrAdd = 0x806000,size=1024
- > w25WrAdd = 0x806400,size=320
- > w25WrAdd = 0x801C00,size=32
- >
- >
- > .............................Omit some conten
- >
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 62,size=3968
- > fe:806
- > w25WrAdd = 0x806000,size=1024
- > w25WrAdd = 0x806400,size=1024
- > w25WrAdd = 0x806800,size=1024
- > w25WrAdd = 0x806C00,size=960
- > w25WrAdd = 0x800180,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 63,size=4032
- > fe:807
- > w25WrAdd = 0x807000,size=1024
- > w25WrAdd = 0x807400,size=1024
- > w25WrAdd = 0x807800,size=1024
- > w25WrAdd = 0x807C00,size=1024
- > w25WrAdd = 0x8001A0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 64,size=4096
- > fe:808
- > w25WrAdd = 0x808000,size=96       //size over 4096 ,repeat the process
- > w25WrAdd = 0x8001C0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 65,size=4160
- > fe:802
- > w25WrAdd = 0x802000,size=160
- > w25WrAdd = 0x8001E0,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 66,size=4224
- > fe:803
- > w25WrAdd = 0x803000,size=224
- > w25WrAdd = 0x800200,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 67,size=4288
- > fe:804
- > w25WrAdd = 0x804000,size=288
- > w25WrAdd = 0x800220,size=32
- > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i= 68,size=4352
- > fe:805
- > w25WrAdd = 0x805000,size=352         //size over 4096 ,repeat the process
- > w25WrAdd = 0x800240,size=32

Is it my usage mistake, or is it how lfs is designed.

Create a file for each data and name it with a number as the suffix.But this will make the entire logic more complex and create a large number of files, it is unknown whether this will significantly reduce the performance of the file system. Although I am more concerned about data validity and space utilization efficiency compared to performance, low file system performance may lead to watchdog restarts.

It has to be said that there is still room for optimization of the LFS system's strategy for large files. In fact, files without sync or close are not saved to flash. Even if 16KB of data has been written, in my example, it means 4block because it exceeds the cache and has been written to flash. However, if there is no sync or close, the data cannot be successfully read. So if you want to store and read data that can be accessed at any time in flash, you must perform a sync or close operation after each write.
However, LFS's write strategy for large files is frustrating. Even if I add 1 Byte of content to this outline file, LFS will erase a new sector and then copy the contents of this 1 Byte and the previous content.
For example, if a file now has 4096+512Byte, the entire file takes up 2Block,
1 block 4096 data; 2 block 512 data 32 index. Obviously, there are still 3552B unused in block 2.
If I add 1 byte of data at this time, lfs will erase a new block to store the updated data.
Delete 2 block, move to 3 block
At this time, 1 block 4096 data; 3Block 513data 32 index.
This clearly wastes a large amount of the remaining space of the 2block, which is nearly 7 times the space used. It is difficult to imagine the rationality of this approach.
It is worth noting that if 1B more data is added, lfs will also repeat the above operation!
This waste of space confuses me.

Additionally, I noticed that updating the inline file is more reasonable and utilizes space more effectively. Can several inline files be used to maintain a large outline file without changing the source code? In short, the current outline file scheme is not a reasonable one

Hi @muguou, thanks for creating an issue, the feedback and ideas are useful.
This is a long-term issue I am currently working on, along with a number of other file data-structure changes, though it will take some time to implement and test.
I think I've more or less arrived at the same conclusion you have, that is, inlined data can be utilized better. Though any inlined data has an inherent 4x storage overhead, so there is a bit of a tradeoff.
The current plan, susceptible to change:

Detach the RAM requirement for inline data. This would allow inline data to get quite large without an unreasonable RAM requirement.
Allow a fully inlined tree of inlined data slices. This is the least clear change, since it risks adding quite a bit of complexity, and complexity brings code cost. But it may be necessary to avoid $O(n^2)$ write costs when writing large inlined files.
Allow non-inlined files to have inlined data that sort of overlays the non-inlined data. This would allow sync calls to save the cache as inlined data without needing to write potentially unaligned data to raw blocks. Which is the underlying cause of the block rewrites.

In theory, these combined should eliminate the issues with syncing files. As long as inline data is larger than the program size, writes can go into the file's inlined data until program aligned. So we should be able to avoid block rewrites even when repeatedly syncing.

Create a file for each data and name it with a number as the suffix.But this will make the entire logic more complex and create a large number of files, it is unknown whether this will significantly reduce the performance of the file system.

Currently file lookup is a $O(n)$ operation, so this is a valid concern.
Though it may still be more efficient thank one large file with the current implementation, depending on cost of rewriting the last block in a file.

I am a bit confused reading this issue, but can see the same behavior on my system.
In most issues regarding logging etc. (e.g .https://github.com/littlefs-project/littlefs/issues/104) it is advised to use append as it should be the most efficient way. Now I see that every append is one block erase, which isn't effective at all. Why then give the original advise?

@Olstyle, that's easy to answer. I'm not perfect and littlefs (any filesystem really) is a complex system.
The intention is for append to be the most efficient solution, and after the planned changes in https://github.com/littlefs-project/littlefs/issues/862#issuecomment-1681317398 (though this will take some time), it should return to being the most efficient solution for logging.
I'd also be hesitant to suggest the above many-files solution as always better than append. It's a workaround for current design issues that may have unpredicted side-effects. For 1. lookup cost in directories is currently $O(n)$, so many-files may not be great for read-heavy applications. 2. inlined files use more storage than uninlined files, at minimum 4x, and more if you consider each file has a filename + other metadata attached.
Append is also still the most efficient solution if you don't need to sync, though I realize that's not a good idea for logging. Streaming sensor data however...

How is a changed block handled now? It seems a new block is allocated and then all old data is copied with new data applied over the affected bytes. Then all later blocks are copied to new blocks to allow references to be updated?
Or, does it make a copy of the affected block, then write it back to same block number to keep all later blocks valid?
The latter does not wear level but creates less total wear and would be faster?

Hi @kyrreaa, the answer is your first description. littlefs creates a copy of any blocks being modified, and then updates any dependent blocks so references are up to date.
Modifying the affected block is not an acceptable strategy here. Wear-leveling aside, it breaks power-loss resilience, as a power-loss could leave us in a state where the block is only partially written and metadata is not up to date.
You're right it would be faster though! Which is why littlefs will probably always be less-performant than non-power-loss-resilient filesystems.

Hi guys,
I'm doing a lot of tests to check the LFS performance.
I'm trying to log events(small files, 32 bytes for a while) as quickly as possible. I was trying this approach below.

Create a file for each data and name it with a number as the suffix

After frustration tests trying to create 200 logs files with the suffix and delete the oldest files( The performance decreased linearly), I decided to overwrite the oldest files and maintain the same files names log1.txt ... log200.txt (circular buffer index to know the oldest and newest). I figured out a constant performance in this approach, no more increasing over the time and random open/close times. I did some tests creating folders and puts the files inside. I could see a better performance ( Folder 1 ->  log1, ..., log20, Folder 2 -> log21, ..., log40 ...) than 200 files in the root filesystem.

Below is the difference between using folders(10 folders to store 200logs) and putting the same files in the root directory. In this case, I could see a huge difference in the metadata compact spikes.

I also set the parameter:

metadata_max = 512

To reduce the spikes and have an acceptable performance for my application.

I think this confirm what @geky said:

I'd also be hesitant to suggest the above many-files solution as always better than append.

I think for this LFS algorithm logic, as less files do you have, better the performance. I didn't try big files yet. But for small one, looks better breaks it in folders when its possible.
I hope this can help someone else that are having performances issues with small log files.


chore(dist): remove dist from version control

chore(dist): remove dist from version control
close #347

@dami-gg @frontendherodk ping for review

:+1:

👍


Add command execution functionality to Bitbucket app and update configuration settings

Type
enhancement

Description

Introduced a new functionality to execute configured commands for Bitbucket pull requests, enhancing automation capabilities.
Updated the webhook handler in bitbucket_app.py to support new pr_commands configuration, allowing for more flexible and powerful automation options.
Documentation in Usage.md has been updated to guide users on how to configure and use the new pr_commands feature.
Configuration file configuration.toml now supports pr_commands for Bitbucket, replacing the old auto tool settings, providing an example configuration.

Changes walkthrough
Relevant filesEnhancement

bitbucket_app.pyIntroduce Command Execution for Bitbucket PRs

pr_agent/servers/bitbucket_app.py
Added a new async function _perform_commands_bitbucket to execute configured commands for Bitbucket PRs.  Updated the webhook handler to support executing commands based on the pr_commands configuration.  Enhanced logging and error handling for command execution.

+32/-12

Documentation

Usage.mdUpdate Documentation for Bitbucket Command Execution

Usage.md
Updated documentation to reflect the new pr_commands configuration for Bitbucket.  Removed old configuration instructions related to auto_review, auto_describe, and auto_improve.  Added examples of how to configure pr_commands for automatic execution.

+7/-12

Configuration changes

configuration.tomlUpdate Configuration to Support Command Execution

pr_agent/settings/configuration.toml
Replaced old auto tool settings with pr_commands configuration for Bitbucket.  Provided an example of how to configure pr_commands in the configuration.toml file.

+4/-3

✨ PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

Failed to generate code suggestions for PR


Removed sentence-transformers/distilbert-base-nli-mean-tokens as default model and added BAAI/bge-base-en-v1.5 as default model when no model param is given.

Update in hf.ts
The model page of sentence-transformers/distilbert-base-nli-mean-tokens says that: (This model is deprecated. Please don't use it as it produces sentence embeddings of low quality. here
So, We should consider using newer and better models available on huggingface. The one that performs best on MTEB right now (with 768 dimensions) is BAAI/bge-base-en-v1.5.
The problem right now is that we can't change the model now, since it will make previously written code misbehave in current applications.
So if possible please update the model for in upcoming versions.

Thanks!

Can you run yarn format?


Formatting and packaging

Hi, I found your project via your SciPost paper (which I figure is still in review). The main branch was not packaged properly, so I could not run any examples. I corrected this and by fiddling a bit with the other branches I managed to make it work.
I mostly corrected some obvious stuff (dead variables / lines, missing definitions) that were picked up by my formatter (I use Ruff). I plan to play a bit with your code and I think I might be able to help out once I have figured out how everything works.
Cheers 👍

Hi,
thanks for the interest! And many thanks for the pull request! Could you do us a favour and instead of merging to the main branch merge to v0.1? We are still working on a few things that we would like to fix before we merge it to main and it would make it easier to see what all your changes are.
In any case, I will check the changes tomorrow!

just as a first feedback: i think we would like to get the sphinx directory back. you mentioned a git bug, what was the issue?

Hi, sure I'll merge to v0.1 if I have the rights to push. For the sphinx directory, it would not allow me to checkout to a different branch when the directory was present (complaining about some sphinx files not existing). I will try copying the files back.
I think I'll add a few more commits before merging in order to set up at least some static typing hints in order to help me get through the code base 😇

Hi,
please be aware that we target older lab environments which do not necessary have recent python environments. We therefore do not have full typing support (the environment we have to get this to run on currently has python 3.8)

Since the typing module was added as part of the Python standard library since python 3.5 I think it should not be much of an issue is it ? But I totally get where you're coming from since I'm just fresh from PhD and postdoc years in academia. In any case, let me work on it and we'll see what breaks, in any case that's where tests would be useful 😉

Hi I think I adressed most of your changes let me know if that looks good on your side. I'm currently trying to adapt your example to fit my use case and I'm encoutering some errors, I'm trying to debug this as it will allow me to get a better understanding on the inner workings of the project 😄

i went ahead and hand merged the changes except the last two commits. Thanks for your contributions! If you want, we can close this PR and you can reopen a new one once you have more changes in the pipeline.

Ah man sorry for the Union stuff ... I'm so used to it now I don't even think about it ... Happy I could be of some use. I'll continue working on this !


React-native-chart-kit is not working on Expo

Hi Devs, React-native-chart-kit Library is not working  for expo. when will you upgrade this?

It totally works on expo I'm using it right now - have you installed react-native-svg?


fix: error in bootstrapping shield from fresh database

Fixes: #139

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 13 (38.46%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 50.968%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/bootstrap/bootstrap.go
5
13
38.46%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
2342

Relevant Lines:
4595

💛  - Coveralls


Fix compilation on Max OS X with lua 5.1

_POSIX_VERSION - defined at unistd.h header file.
sol2 doesn't include this header
On Mac OS this leads to an error.
Predefined macro __APPLE__ looks good option to test for strerror_r presence.

We build on Apple and this has never come up before. What platform are you compiling under for this to be necessary?

Platform as in:
Compiler
Standard Library (plain Clang? XCode Clang?)
Mac OSX version
Target (Android? iOS? Regular Mac App?)

I am building  under Mac OS X (10.12.5) for Mac OS X.
Compiler is clang bundled with recent Xcode 8.3.3
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.6.0
Thread model: posix

Works for me!

Thank you for merging!


Android Only - Problem with nesting Grids in TouchableOpacity

This does not work on Android. If you remove the TouchableOpacity it displays correctly.
<View>
    <Grid>
        <Row>
            <TouchableOpacity>
                <Gird>
                <Text>Test</Text>
                <Grid>
            </TouchableOpacity>
        </Row>
    </Grid>
</View>

This is the workaround I am using.
<View>
    <Grid>
        <TouchableOpacity>
            <Row>
                <Grid>
                <Text>Test</Text>
                <Grid>
            </Row>
        </TouchableOpacity>
    </Grid>
</View>

@MrMonotone checked this. It is working fine for me. Attaching a gif.

Grid, Row and Col supports onPress event. You can use it like
<Grid onPress={() => console.warn("Hello")}>
    <Text>Test</Text>
</Grid>

Fiddled with styling and got it working. There is still some weird styling issues that I experienced when I am using this. I just don't have the patience to track them down.


Throwing Exception in validation flow

Hello, I inspect the repository and I got an issue about the validation way in the application layer.
According to following link, there is a RequestValidationBehavior to validate input data by using FluentValidation that is similar to ValidatorBehavior in eShopOnContainers. One of the issue is throwing exception in the code below.
https://github.com/JasonGT/NorthwindTraders/blob/c942193b02762561968c3981d9172e6e6fc6d274/Northwind.Application/Infrastructure/RequestValidationBehavior.cs#L33
I like ValidatorBehavior that MediatR  have provided for us, but if throwing exception is used in handling validation there could be a big problem by using it. The problem is controlling the flow of business by exceptions that is wrong. I have thought about modifying this line of code to avoid throwing exception, but I couldn't come up with an idea.

Hi @A-Soltani - thanks for your feedback. I think about this approach sometimes too. Perhaps a better approach would be to use a RequestResult. This could include properties such as Succeeded (was the request successful) and Errors[] (if not successful, what were the errors).
In this way, we have a consistent approach to return results, errors or otherwise.
What do you think - do you like this approach better?
Feedback from everyone else welcome.

As an example:
    public class RequestResult<T>
    {
        public bool Succeeded { get; set; }

        public IEnumerable<RequestError> Errors { get; set; }

        public T Result { get; set; }
    }

    public class RequestError
    {
        public string Code { get; set; }

        public string Description { get; set; }
    }

    public class GetCustomerDetailQuery : IRequest<RequestResult<CustomerDetailVm>>
    {
        public string Id { get; set; }
    }

The problem with this approach, is that the RequestError is quite generic in nature. An error type might be required to differentiate between authorisation, validation, not found and so on. Different types will be handled differently by an API client, 401, 400, 404, etc.
Thoughts?

Just reviewing eShopOnContainers, and they take the same ValidationException approach:
if (failures.Any())
{
    _logger.LogWarning("Validation errors - {CommandType} - Command: {@Command} - Errors: {@ValidationErrors}", typeName, request, failures);

    throw new OrderingDomainException($"Command Validation Errors for type {typeof(TRequest).Name}",
        new ValidationException("Validation exception", failures));
}

The goal should be to find the simplest approach. In this case, we could state that the initial responsibility is with the client to validate the request. If the client fails to do so, then this is an exceptional circumstance - hence the ValidationException is thrown. This is therefore the simplest approach.
Thoughts?

No feedback so I am going to close this issue.
If you're interested in an alternative approach take a look at the new implementation for the UserManagerService which returns a Result type; https://github.com/JasonGT/NorthwindTraders/blob/master/Src/Infrastructure/Identity/UserManagerService.cs


Proposals / Fin Aid results mass replies

Do we want to use this system to send e-mails with CfP and Finaid results?
These templates need to be updated (and make it work actually?)
accepted_aid.tpl
accepted_sprint.tpl
accepted_talk.tpl
accepted_workshop.tpl

Also there are no templates (and probably no functionality) for refused talks which would be a common courtesy to send.

I think that we can prepare/update some manage command to do it. But we'll need to set up SMTP first.
Could you please prepare email templates?

Mailchimp or sending from<EMAIL_ADDRESS>with Thunderbird extension is probably simpler.
Reopen if you disagree


dbus module: init

@rycee

Ah yeah, that old dbus thing coming back to haunt me again! :angry:

So idea is to switch modules that call dconf, from use of main home-manager systemd service, to user services. Because there is dbus.socket user service which propagates DBUS_SESSION_BUS_ADDRESS to other user services. Just compare
systemctl status dbus.socket
and
systemctl --user status dbus.socket
Here's details https://serverfault.com/a/906224

Sorry for the delay. I've been traveling a lot and haven't had time to look into this a great deal.
I'm a bit unhappy that something like this would be necessary to have a functioning dconf import. Would it perhaps possible to instead check in the activation script whether a user dbus session is available, run systemctl --user start dbus.socket if not, and then run the dconf commands as usual?

@rycee Oh, I think I've got your idea. Please take a look.

Sorry for the delay. I've experimented with and thought about this now and am inclined towards the pure systemd unit solution, I think I was wrong earlier when I insisted on having it directly in the activation script.
I also came to think that we're currently using this module only for setting dconf options and was therefore thinking that maybe it is best to simply have a dconf module. I adapted the code in this PR in a new PR #436 which implements such a dconf module.
One thing I noticed with my tests is that requiring dbus.socket doesn't work very well for me, that is why I ended up using WantedBy = [ "graphical-session-pre.target" ] since it is reasonably certain that there is a session dbus up and running at that time, see https://github.com/rycee/home-manager/blob/07c6b8521c0ec952745832021c9c87a2476d800e/modules/misc/dconf.nix#L51-L72

@rycee Cool, thank you! Need to test though, I'm on wayland now (starting sway compositor from console), so not sure whether graphical-session-pre.target ever loads in such setup (without display manager)

I believe graphical-session-pre.target and graphical-session.target should be used for Wayland as well. That said, they may at the moment not be used sufficiently generally in Home Manager. Perhaps there should be a x-graphical-session-pre.target and x-graphical-session.target and wayland-graphical-session-pre.target and wayland-graphical-session.target for services that are only supporting one or the other?
Oh and just to demonstrate the issue with the dbus.socket. On the first run everything goes well, the DBUS_SESSION_BUS_ADDRESS value is set to something like unix:abstract=/tmp/dbus-L2nKDw2gwU,guid=aaa26abd94bb1707c655fa395be08467 which corresponds to the dbus session started by the NixOS xsession script. The requires clause causes dbus.socket unit to start (but the service is not triggered because of the above DBUS_SESSION_BUS_ADDRESS value), dbus.socket does change DBUS_SESSION_BUS_ADDRESS to unix:path=/run/user/1000/bus, though. So next time you start dconf-settings.service it will trigger dbus.service and a second dbus user session is started:
$ # Starting dconf-settings.service
$ ps ax | grep dbus
11724 ?        S      0:00 /nix/store/xsgmhmrd6hvjipdsnrn11242q8kmnp2l-dbus-1.12.10-lib/bin/dbus-launch --exit-with-session /nix/store/1nr0clr2czmh6wz4cpb2fzwidx2vwdi1-xsession-wrapper /nix/store/xlczv6n20a2fijz92zj1fkk9r9fqw2l5-xsession "home-manager"
11725 ?        Ss     0:00 /run/current-system/sw/bin/dbus-daemon --syslog --fork --print-pid 5 --print-address 7 --session
$ # Starting dconf-settings.service again
$ ps ax | grep dbus
11724 ?        S      0:00 /nix/store/xsgmhmrd6hvjipdsnrn11242q8kmnp2l-dbus-1.12.10-lib/bin/dbus-launch --exit-with-session /nix/store/1nr0clr2czmh6wz4cpb2fzwidx2vwdi1-xsession-wrapper /nix/store/xlczv6n20a2fijz92zj1fkk9r9fqw2l5-xsession "home-manager"
11725 ?        Ss     0:00 /run/current-system/sw/bin/dbus-daemon --syslog --fork --print-pid 5 --print-address 7 --session
13361 ?        Ss     0:00 /nix/store/kxxc8m9pzqv71hpzp9sk246h4b9xbhvj-dbus-1.12.10/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only

@rycee In case of pure wayland setup there is nothing that starts graphical-session.target, no display manager is used. Person just starts compositor manually from console. systemd is not involved.


Is there any way to set the position of the pickr independently of the button?

In an app I'm developing I have a key command that opens the pickr. If the trigger button isn't currently visible when the key is typed, the pickr appears in the center of the window. Is there a way to set the position in the 'show' method, independently of the button's position? I'd like to have it pop open at the current mouse position, for example, to make it easier to set the color of an object that was just selected with the mouse.

Closing this because I discovered you can set the css top and left in the 'show' method. Works great!


Create Destiny Parent Class

Destiny is planned to have several classes, all of which should inherit from the main Destiny class (aptly named Destiny()).
This class is (non-exhaustively) responsible for managing:

db connections
events
playbooks

It may also manage the raw learning data and other stuff, depending on how design goes.

Initial creation of this added w/ 2bb8d85234b66301844fb9e613d514b017e01219

Now that the two components for Destiny have been completed, or completed their core functionality (see issue #44 and issue #50 ), we should be done making additions to the Destiny parent class.
Closing this out.


DreamBooth: Option to add custom model paths insted of always download stable diffusion vanilla

hi, I love to use your colab, I would like to know if it would be possible to have an option to add custom models to train, (Like Waifu Diffusion for exemple)

I'll add that option, but you'll need a diffusers model for training not a CKPT, but there are easy ways to convert them

would be very interesting to start from a different model.
maybe you could include the conversion script from ckpt to diffusers.


"Forget password" is shown when magic link is on but basic auth is off

Version: 1.2.4
Describe the bug
"Forget password" is not needed if basic auth (user/pwd) is off but it is still displayed.
Steps To Reproduce

configure authorizer to use magic link but not basic auth
open https://auth.moochee.us/app in Chrome

Expected behavior
"forget password" should not be shown
Screenshots

Desktop (please complete the following information):

OS: MacOS latest
Browser Chrome latest
Version 119.0.6045.105

Hi @lakhansamani this problem still exists after upgrading to the latest 1.3.3.

@yangzhaox released as part of 1.3.4


Payment reference call back

cannot retrieve payment reference using the mobile widget

Hmm, I don’t really get this. I believe your payment ref was stored on a
var before use, meaning you can still call it even after a successful
transaction.
please do explain further
On Sat, 16 Sep 2023 at 15:07, Walexhino @.***> wrote:

cannot retrieve payment reference using the mobile widget
—
Reply to this email directly, view it on GitHub
https://github.com/Princewil/flutter_paystack_plus/issues/6, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJWWTE5LBELUPLXHRTJOTCDX2WXBXANCNFSM6AAAAAA425H5D4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Alright, i figured that out , but my new issue here is that , the Onsuccess doesnt navigate anywhere.

The onsuccess is a callback. You tell it what to do.
If you want to navigate them pass the function for navigation there.
On Mon, 18 Sep 2023 at 23:40, Walexhino @.***> wrote:

Alright, i figured that out , but my new issue here is that , the
Onsuccess doesnt navigate anywhere.
—
Reply to this email directly, view it on GitHub
https://github.com/Princewil/flutter_paystack_plus/issues/6#issuecomment-1724559305,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJWWTEZC57SSVY2I2EYG6ATX3DEXFANCNFSM6AAAAAA425H5D4
.
You are receiving this because you commented.Message ID:
@.***>

Thank you  for your time on this , here is my code can you take a look at it .
void paymentPage(BuildContext context, ref) async {
var amountTopay = amountToInvestController.text.toAmount() * 100;
try {
return await FlutterPaystackPlus.openPaystackPopup(
publicKey: "sk_test_3691e13a493ccce86d79f4c65f00e32d1322c278",
context: context,
secretKey: "sk_test_3691e13a493ccce86d79f4c65f00e32d1322c278",
currency: 'NGN',
customerEmail: userRepo.loginData.email!,
amount: amountTopay.toString(),
reference: _transref,
onClosed: () {
debugPrint('Could'nt finish payment');
},
onSuccess: () {
Navigator.pushReplacementNamed(context, RouteName.investmentSuccess);
debugPrint('Payment successful');
},
  );
} catch (e) {
  debugPrint(e.toString());
}

}

Cool👍.
But you passed your secret key twice. It should be your secret and public
key.
PS: Don’t share your keys publicly.
On Tue, 19 Sep 2023 at 00:25, Walexhino @.***> wrote:

Thank you for your time on this , here is my code can you take a look at
it .
void paymentPage(BuildContext context, ref) async {
var amountTopay = amountToInvestController.text.toAmount() * 100;
try {
return await FlutterPaystackPlus.openPaystackPopup(
publicKey: "sk_test_3691e13a493ccce86d79f4c65f00e32d1322c278",
context: context,
secretKey: "sk_test_3691e13a493ccce86d79f4c65f00e32d1322c278",
currency: 'NGN',
customerEmail: userRepo.loginData.email!,
amount: amountTopay.toString(),
reference: _transref,
onClosed: () {
debugPrint('Could'nt finish payment');
},
onSuccess: () {
Navigator.pushReplacementNamed(context, RouteName.investmentSuccess);
debugPrint('Payment successful');
},
);
} catch (e) {
debugPrint(e.toString());
}
}
—
Reply to this email directly, view it on GitHub
https://github.com/Princewil/flutter_paystack_plus/issues/6#issuecomment-1724612551,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJWWTE45QIWKXMRTBBSEEKDX3DKAFANCNFSM6AAAAAA425H5D4
.
You are receiving this because you commented.Message ID:
@.***>

could that be the reason my onSuccess is not navigating ?

Yup. Could be.
If after passing your public key and doing everything right, the onsuccess
is not called then it means there is a bug on the package. So you just let
me know. I will fix it.
On Tue, 19 Sep 2023 at 02:34, Walexhino @.***> wrote:

could that be the reason my onSuccess is not navigating ?
—
Reply to this email directly, view it on GitHub
https://github.com/Princewil/flutter_paystack_plus/issues/6#issuecomment-1724701704,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJWWTE7SKUB5J2H5SD2IJFTX3DZBPANCNFSM6AAAAAA425H5D4
.
You are receiving this because you commented.Message ID:
@.***>

I will close this issue for now. Reopen if need be.


chore:  make PX stand out

people have to notice that when the current_px is 0.
etc.

https://github.com/pixelaw/p_war_client/pull/60


Update readme.md & add build in local guideline

Hi all, @Remi-Gau  @anibalsolon @PeerHerholz  @SamGuay @htwangtw
I created a separate .md for building in local with some additional explanations regarding basics that I took from the contribution guideline to make it clear with its all steps. But since it is comprehensive it might have crowded the README so rather than merging them together I gave link to it under Locally (Mac / Linux Only) section of the README.
But if you think it is better to be merged, then I might try to get rid of the additional bits and just add some building info there only. Let me know.

@complexbrains
I think you wanted to send this PR to the upstream repo and not to my fork, correct? :wink:

Closing as replaced by #2


FactoryBot/CreateList problem

Hey,
rubocop-factory_bot version 2.26.0 causes problem, described here https://github.com/rubocop/rubocop-rspec/issues/1916 May I ask you to check it?

Can confirm, latest version 2.26.0 fails with:
Error: Property AutoCorrect of cop FactoryBot/CreateList is supposed to be a boolean and contextual is not.

Rolling back to ~> 2.25.0 as a temporary workaround appears to work.

The latest version is 2.26.1, and it's fixed there.
Just the bundle update --conservative rubocop-factory_bot won't be sufficient, you have to update rubocop, too.

This fails with both RuboCop and rubocop factory bot open ended, but I'll double check when I get home to confirm exact versions.


A couple comments that would help newbies like me

I stumbled over these while adding openmaize to a fresh Phoenix project.
I'm curious why there's no equivalent config in the prod.exs. (I'm not very far along in my understanding of Phoenix.)

Thanks!
I'll add a few more comments and a prod config file later this week.


Explicit relation tables

As far as I aware of, the following feature from Prisma:
type MyRelation @relationTable {
  user: User!
  profile: Profile!
}

is somehow implemented in Prisma2. But there is no documentation. How to use it?

Hey Victor, thanks for opening this issue. This topic indeed lacks proper documentation at the moment. You can however learn about the intended behaviour in our spec here.
In short: The @relationTable attribute is not needed any more. Instead you define a relation table in the same way you'd define any other model:
model MyRelation {
  user: User!
  profile: Profile!
}

@nikolasburk will it be included in the today's release? Or when do you this will be fixed? Just want to plan further work based on availability of this feature.

It won't be included in today's release and might take a few more weeks (possibly months) until it is available.

We dropped this for now but this will be picked up again in coming weeks. We have noted that community wants this feature. It is blocked on some internal refactoring around supporting multiple unique ids and would be picked up in a bigger epic.

@divyenduz What is status of this? A lot of weeks passed :)

@victordombrovskiy If I understand it correctly, this feature is being worked on from the perspective of introspection https://github.com/prisma/prisma2/issues/1083 and is in the current milestone.

@divyenduz : We are working on it right now. But it will take a few more weeks until this will be finished.

This is now implemented and can be used with the syntac @nikolasburk posted above 🚀


Broadcast flag for the BusHandler socket

Had to include the broadcast flag for the socket, to be able to send broadcast messages on a UNIX system.
"If the socket protocol supports broadcast and the specified address is a broadcast address for the socket protocol, sendto() shall fail if the SO_BROADCAST option is not set for the socket."
See https://pubs.opengroup.org/onlinepubs/009695399/functions/sendto.html

Kudos for Eduard

You closed, but did not merge the pull request. I also have 2 additional minor changes that I would like to add to this PR, if you reopen it.

sorry, its open again now

AWESOME 😊
Von: Zero545 @.>
Gesendet: Dienstag, 23. Mai 2023 19:01
An: hausbus/homeassistant @.>
Cc: Hermann Hoeschen @.>; State change @.>
Betreff: Re: [hausbus/homeassistant] Broadcast flag for the BusHandler socket (PR #2)
Works both under Windows and Linux!
—
Reply to this email directly, view it on GitHubhttps://github.com/hausbus/homeassistant/pull/2#issuecomment-1559830086, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHEIMDRR4B5QA5L653KLACTXHTUOFANCNFSM6AAAAAAYJGYZBI.
You are receiving this because you modified the open/close state.Message ID<EMAIL_ADDRESS>


Questions about the code in detail

I have read the code in detail, and I got some questions about some corner cases, I hope you guys could help me. Thanks!

at 841 - 846 line, linkLists_[cur_c] = (char *) malloc(size_links_per_element_ * curlevel + 1); why we need a '+1' here? size_links_per_element_ stands for the space allocated for each level, so size_links_per_element_ * curlevel is enough, no need for a '+1'?
About the prefetch command, I have several questions, when we use addPoint function to build index, it invokes searchBaseLayer function, at 198-199 line,

 _mm_prefetch(getDataByInternalId(*datal), _MM_HINT_T0);
 _mm_prefetch(getDataByInternalId(*(datal + 1)), _MM_HINT_T0);

when use searchKnn function to find knn, it invokes searchBaseLayerST function, at 276-277 line,
_mm_prefetch(data_level0_memory_ + (*(data + 1)) * size_data_per_element_ + offsetData_, _MM_HINT_T0);
_mm_prefetch((char *) (data + 2), _MM_HINT_T0);

Actually, the first line of two methods is the same(to fetch the next neighbor's feature vector), but why the second line is different?

In addition, when we use prefetch in a for loop, would it cause the index-out-of-boundary problem at the last position of the for loop since it always tries to fetch the next region of the data array?

Hi @chasingegg ,
Thank you for looking trough the code. And sorry for long response (moving with family to another country). As far as I remember, +1 is supposed to handle the problem with prefetching inside the loop that you've described. It is definitely not essential.
Prefetching outside of the valid memory should not affect the outcome of the function. It can potentially hurt performance (https://stackoverflow.com/questions/40128151/what-happens-if-an-invalid-address-is-prefetched), but I didn't observed any
Methods  searchBaseLayerST and searchBaseLayer are indeed should be the same (still plan to unite them in one templated method), so it is more a of a bug.
Actually, most (but not all) of the prefetches have minor effect on the performance which is not so easy to measure.

Hi, do you think it is feasible to do inner-one-query parallelism, because it seems a wonderful feature but seems none of the graph-based algorithms have done this?

Hi @chasingegg
I think it is feasible, but comes at some QPS loss compared to data-parallelism. The main problem with inner-query parallelism is that most graph algorithms use list and queues associated with each query.
And if there are multiple threads accessing the  collection structures, this leads to having locks every time a thread  reads/writes and, thus, performance loss compared to data-parallelism. However, I never measured actual performance loss in practice.
Another way to do this is to have independent parallel searches for the same element and then unite the results. We did that in our work on NSW with a simpler search method (SISAP 2012) - it scaled ok with the number of cores, but the simpler search method was less efficient. It also was easy to implement because we used random enter points in the graph.
For HNSW you can do the same by adding several versions of upper level graphs (with little overhead), or, probably, you can some stochasticity (e.g. like relaxed dropout in neural networks) to have different results for search trials for the same query.


Learning doesn't work when following the lab, it calls the new animal null

Workaround: importing the Assistant.zip from solution solves the problem.
The reason is that when I create my own "Guess is Correct" intent, I just add an input context guess to it. The intent provided by the solution has a more complete context setup, which includes the welcome context as output.

Although theoretically we don't even touch "Guess is Correct" intent in this scenario, so it might be some glitch in the system.

hi @MrCsabaToth I imported Assistant.zip from solution but it still show null, i dont know if its a bug or a challenge 👍

@joaquinperaza that's interesting. Are you using your own Firebase functions backend?

I had the same problem, even after loading the Assistant.zip from the solution.
I saw https://github.com/firebase/assistant-codelab/issues/5 which seemed incorrect but I tried it anyway, and it was then able to identify the animal but got all confused in the next step where the question would be supplied.
Based on the json for the step where I name the animal, I would expect that const new_thing = assistant.getArgument(GUESSABLE_THING_PARAM); would work:
...   "result": {     "source": "agent",     "resolvedQuery": "I'm thinking of a lizard.",     "action": "learn-thing",     "actionIncomplete": false,     "parameters": {       "guessable-thing": "lizard"     }, ...

I have finally solved with #5
Enviado desde mi iPhone

El 20 may. 2017, a las 23:18, Steve Furtwangler<EMAIL_ADDRESS>escribió:
I had the same problem, even after loading the Assistant.zip from the solution.
I saw #5 which seemed incorrect but I tried it anyway, and it was then able to identify the animal but got all confused in the next step where the question would be supplied.
Based on the json for the step where I name the animal, I would expect that const new_thing = assistant.getArgument(GUESSABLE_THING_PARAM); would work:
... "result": { "source": "agent", "resolvedQuery": "I'm thinking of a lizard.", "action": "learn-thing", "actionIncomplete": false, "parameters": { "guessable-thing": "lizard" }, ...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Another note: I moved on (put the code back the way the tutorial tells you to) and tested the app on an actual Google Home device and it worked correctly but still doesn't work in the API.AI "Try it Now" panel on the right.


Validate/Ignore turbo-cartocss rules

turbo-cartocss adds support for new features that are not available at cartocss. The editor validates client side the cartocss before sending it to the server.
Right now it's not possible to write turbo-cartocss expressions as the validation will fail client side.
TODO

[ ] We need to ignore turbo-cartocss specific expressions when validating cartocss.
[ ] Ideally we should be able to validate turbo-cartocss expressions as well.

Requires https://github.com/CartoDB/cartodb/issues/6711

cc @saleiva

There has been no activity on this issue for more several months. We are closing it. If you think this still needs to be addressed please open a new issue.


Fix https://github.com/jenkinsci/puppet-jenkins/issues/673

This fixes https://github.com/jenkinsci/puppet-jenkins/issues/673

:-1: This is not working; still reload is triggirid

@jhoblitt this looks reasonable to me, any downsides to merging?

@rtyler The Gemfile change should be dropped.  Otherwise, it looks good to me.


Travis stop failed biuld

Reduce logs. Terminate job if compilation failed.

[205] - https://transfer.sh/LINpo/jdi-dark-tests.tar.gz

[205] - https://transfer.sh/X2G1K/jdi-dark-bdd-tests.tar.gz

[205] - Allure report on Netlify: https://5e39231d9202db088fbbd963--jdi-dark.netlify.com


[Admin] AreaView Search/Sort

searching and sorting on the area view

/cib areaview search sort

Branch 184-areaview-search-sort created!


Update to 1.4.1

Fixed file being there that shouldn’t have been, updated to 1.4.1
DCO1.1 Signed-off-by: Thomas Boop<EMAIL_ADDRESS>

Hi boopt2,
Thanks for submitting this pull request!
I can confirm that the DCO1.1 sign-off has been included. It is okay to process this pull request.
dco-bot


Any way of not using GPU optimization?

 Is there any way to not use the GPU?

Running on CPU is possible with the newly-added VGG model. I won't be able to get to it until later today or tomorrow, but in the meantime the fix is pretty simple: just comment out the :cuda() calls.

Added CPU support.

I still can't run it. I tried commenting out cuda() calls, but I still get the "no CUDA-capable device is detected at .../torch/extra/cutorch/lib/THC/THCGeneral.c:16". I'm using Virtualbox, with Ubuntu 15.04. Any ideas?

I finally made it work doing this: (or so I think, it's taking ages to run..)
$ git diff
diff --git a/main.lua b/main.lua
index 566c9a2..1748a1d 100644
--- a/main.lua
+++ b/main.lua
@@ -6,9 +6,9 @@
 --

 require 'torch'
-require 'cutorch'
+--require 'cutorch'
 require 'nn'
-require 'cunn'
+--require 'cunn'
 require 'image'
 require 'paths'
 require 'optim'

Fixed in the latest commit. You can verify that it's running correctly by using a small image size (--size 200) and displaying every update (--display_interval 1).


ASOC 2022: Downstream tasks code implementation of StructBERT

Background
This is an advance subject of ASoC 2022 and https://github.com/alibaba/AliceMind/issues/44 .
Supplementing the implementation of common downstream tasks such as regression/multi-label classification/sequence labeling/machine reading comprehension of StructBERT.
Target
Design and implement regression/multi-label classification/sequence labeling/machine reading comprehension code of StructBERT.
Difficulty
Normal
Mentor
Wei Wang (@wangwei7175878 <EMAIL_ADDRESS>背景
这是一个阿里巴巴编程之夏 2022 的基础课题 https://github.com/alibaba/AliceMind/issues/44
补充StructBERT在回归/多标签分类/序列标注/机器阅读理解等常见下游任务的代码实现。
目标
补充StructBERT在回归/多标签分类/序列标注/机器阅读理解等常见下游任务的代码实现。
难度
正常
导师
Wei Wang(@wangwei7175878 <EMAIL_ADDRESS>

Hello, this project is very appealing to me. But I still have some doubts about its specific works. As far as I know, the Huggingface Transformers provide many downstream tasks' APIs (e.g., BertForTokenClassification) in Bert and other PLMs. Does this project want to implement such interfaces on StructBert, or do corresponding API implementations for the given tasks (e.g., sentiment analysis, NER)?


Ability to hook in afterEach after the transition

What problem does this feature solve?
When implementing analytics with vue-router, we often rely on the router.afterEach hook. For example:
router.afterEach((to, from) => {
  ga('set', 'page', to.fullPath)
  ga('send', 'pageview')
})

However, when there is a page transition (and obviously the page transition will use mode="out-in"), the new component will wait for the old component to fade out first, but the afterEach hook was already fired.
In the about example, say the user was originally on the home page with page title "home" and clicks on the /about link:

The url changes immediately, and afterEach hook fires. ga called to track pageview, but got the old title "home" by calling document.title.
The home page fades out, and finally destroyed.
The about page gets mounted (and fades in), page title and other metadata get modified (in my case I'm using vue-meta

In this comment, @posva recommend using Vue.nextTick. I tried adding multiple nextTicks but doesn't work...
What does the proposed API look like?
Is it possible to perhaps dynamically register a mounted hook (without overriding original one) to the to component in afterEach?
For example:
router.afterEach((to, from) => {
  // some kind of way to get the page component
  to.$el.mounted = () => {
    ga('set', 'page', to.fullPath)
    ga('send', 'pageview')
  }
})

Or maybe add a new hook that will wait for page transition to finish, and the new component mounted?
router.afterEachMounted((to, from) => {
  ga(...)
})

Thank you all so much!!!
Dax

I wonder if there is any temporarily workarounds? Without hard-coding something like setTimout(trackingCode, transitionDuration) in router.afterEach

Leverage Vue.nextTick to wait for DOM updates before firing analytics events
router.afterEach((to, from) => {
  Vue.nextTick(() => {
    ga(...)
  })
})

@studstill
Thank you! In a lot of case nextTick is really useful.
However, in the case where router-view is wrapped in transition mode="out-in", router.afterEach is actually called right when the old page starts to fade out.
Even with nextTick, the ga(...) call is called one tick after the old page starts to fade out, still resulting in getting the old document.title...

Any updates on this? I'm having the same issues.

I'm closing this in favor of https://github.com/vuejs/vue-router/issues/2079

@posva sorry for hijacking this issue, hope you don't mind.
For anyone looking into this issue with nuxt 3 - vue-router stack , and trying to send events to GA after the DOM title has been updated (for example) vue-router is not where you should look into!
Instead of navigation guards, which handles navigation we need to hook into unhead to know when meta params has changed.
Heres the relevant code:
import { getActiveHead } from "unhead";

export const useHeadChange = (cb: (() => Promise<void>) | (() => void)) => {
  const lastDomRenderState = useState("unhead:dom-render-state", () => ({}));
  const head = getActiveHead();
  head?.hooks.addHooks({
    "dom:rendered": async (ctx) => {
      const stringifiedCtx = JSON.stringify(ctx);
      if (lastDomRenderState.value !== stringifiedCtx) {
        lastDomRenderState.value = stringifiedCtx;
        await cb();
      }
    },
  });
};


Force Sensitive List Values to be Object

Garrett Amstutz — 06/10/2024 9:37 AM
So I did look into the issue from Marcia. The problem that was occurring was that one of the columns from the "sensitive_list" was being treated as a float column, while the rest were of type object. This was causing the join to fail. More of a band-aid fix was just to convert all of the columns to type object. Not sure if this covers any "real" issues, but it did seem to fix the issue at hand.
I told her something to try would be to convert those columns into a string in the data source (ex. 2020 -> 2020-0) in hopes that it too would be an "object" data type at the point of trying to join
Seth Taylor — 06/10/2024 9:56 AM
Should we just be opinionated and convert any sensitive columns to object in the initialization function?
Garrett Amstutz — 06/10/2024 9:57 AM
I think that would solve this issue at least. Not sure if it would cause any others
Seth Taylor — 06/10/2024 9:58 AM
@Drew_Bennett-Stein🎯 No need to respond now, but is there any case where we'd need to keep a sensitive column numeric? I think we're functionally treating all the sensitive columns as categorical variables anyways with how we do the cross supression.
Drew_Bennett-Stein🎯 — 06/10/2024 10:03 AM
I do not believe so, but I thought we already forced the sensitive columns to be strings. I can look into that on Thursday. I am currently wrapping up some Vermont work.
Seth Taylor — 06/10/2024 10:04 AM
Yeah I thought we did as well, but I haven't looked at the code yet.
aemnathanclinton — 06/10/2024 11:36 AM
Thanks for working on Garrett!  I'm glad you were able to find a solution for Marcia.  And that you Seth & Drew for looking for a long-term solution.

Adding this piece of code to resolve the issue.


Datadog dashboards should not include url in hcl

If you delete the manually created dashboard and run Terraform on the files created by terraformer, the URL will always be seen as different during terraform plan because a new ID and a new URL will be created after the resource is created by Terraform. Therefore, since the URL can't be used by dashboards, it should not be configured in the hcl for dashboards.
See also https://github.com/DataDog/terraform-provider-datadog/issues/1596

Datadog provider now ignores this, but might be less confusing to avoid generating a URL.

I think this should still be done. It's noise to continue to include it.


Does cpp-torch supports image input？

Actually we have image input in  most time. Save image to .t7 format then load it is kinda unnecessary. Does cpp-torch supports image input currently？

You needs other libraries like OpenCV to read images.


Plugin allows non-admins to remove guarded metadata with imeta rmw

I'm running iRODS 4.2.10 on CentOS 7.
The plugin is <IP_ADDRESS> Release
Any metadata that is wanted to be protected seems vulnerable against imeta rmw -C myCollection % % and imeta rmw -d test.txt % %
I guess seems tested only by imeta rm https://github.com/irods/irods_rule_engine_plugin_metadata_guard/blob/main/packaging/test_rule_engine_plugin_metadata_guard.py#L218

We see three ways to implement this.

Remove all unprotected metadata and leave the protected ones in place

similar to rm * in the terminal
requires iterating through the resultset and attempting a delete on each item
returns an error message to the client for each AVU that was guarded

return code will be non-zero

slower than today, but correct

We treat the operation as an atomic request and exit if some of the metadata is protected (i.e. the operation becomes a NOP)

getting the resultset
then, attempting to remove all of them atomically

returns non-zero on failure

slower than today, but correct

Do not allow users to use rmw

detect the use of the wildcard option (option = 1) and return an error (not supported)

We think (1) is the way to go.

It seems the option 1 is a more generic solution,  however I have some non expertize questions:

What is the impact of 'slower than today'? Depending on the attached metadata size (iteration layer), it may vary but at the end, is this something users can feel?

I guess guarded metadata is not recorded in the catalog specially, correct?

Yes, 'slower than today' because this would need to find all matching AVUs, then iterate through them one-by-one, and try to remove each.  So it will be slower linearly with the number of existing AVUs that match the wildcard.   If 10 AVUs match the wildcard, then there will be 1 operation to find the 10, and then 10 individual roundtrips to the database to remove the 10 matches (so total of 11).   If there are 100 AVUs that match, then 101 roundtrips total.
No, metadata is just metadata - it only 'matches' or is 'guarded' once the string comparison is performed by the PEP which is part of the metadata guard plugin.

Then is the following technically doable?
Remove all attached metadata, treat special for the protected metadata (somehow keep somewhere - pep_api_mod_avu_metadata_pre may send to pep_api_mod_avu_metadata_post to add) and add the protected one.

I'm not sure what you mean.     As a rodsadmin, metadata would not be guarded, it can be manipulated/edited/removed.
As a rodsuser, if things are working as designed/intended... then guarded metadata should not be allowed to be changed.

Sorry for this late reply and imperfect question. I see what I wanted to say is impossible because pep_api_mod_avu_metadata_pre doesn't have any attributes (avu) in regards to imeta rmw % % whereas it has for the imeta add and imeta rm operations.
If it had, I would wondering an option/possibility keeping in mind Kory's first option for the possible solution and your explanation about slowness. So I meant rmw % % would have removed all metadata and so that would trigger pep_api_mod_avu_metadata_pre and save/pass guarded metadata somewhere and finally add them back to the object.
Thanks.

It would not 'save' them anywhere and 'add' them back - each would be attempted (to be deleted) but would error out, just like rm * on the command line if you don't have permission to remove something.
If there are five AVUs, and two are guarded... option 1 above would match all five, walk through each and try to remove them, and two would throw errors because they were guarded/protected, the other three would be removed, and the overall return code would be non-zero.

As of iRODS 4.3.0, imeta rmw is deprecated.
That means the metadata guard no longer needs to handle that case. Users of imeta rmw should use an alternative command/API.
With that said, we should at least make the plugin block use of imeta rmw entirely.

Noting here that addw and lsw have also been deprecated (see https://github.com/irods/irods/issues/6766), in case that affects anything.

deprecating lsw now has an issue as well... https://github.com/irods/irods/issues/7488


search error when including an absolute path

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.64.2
OS Version: Win 11

Steps to Reproduce:

Use an absolute path, seems to be fine.

When a relative path to a same file, error occurred.

This works with a folder, but not a file https://github.com/microsoft/vscode/issues/20530


Add pyproject.toml for Custom Node Registry

Hey! My name is HaoHao and I'm from comfy-org! We would love to have you join the Comfy Registry, a public collection of custom nodes which lets authors publish nodes by version and automate testing against existing workflows.
Eventually, the registry will be integrated as a backend for the UI-manager where all nodes will go through a security scan. Nodes that pass these checks will have a verification flag (✅) beside their name on the UI-manager. Feel free to read up more on the registry here
Action Required:

[x] Go to the registry. Login and create a publisher id (everything after the @ sign on your registry profile).
[x] Add the publisher id into the pyproject.toml file.
[x] Merge the separate Github Actions PR, then merge this PR.

If you want to publish the node manually, install the cli by running pip install comfy-cli, then run comfy node publish
Otherwise, if you have any questions, please message me on discord at haohao_81202 or join our server!

I'm having some issues
I think the tasks maybe have been done according to the standard
But [(https://github.com/MakkiShizu/comfyui_reimgsize/actions/runs/10124704864/job/27999340929)]
Where could the problem have occurred, and how should I correct it?
warn: The recent workspace None is not a valid ComfyUI path.
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 💻 Environment                       ┃ Value                                 ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Python Version                       │ 3.10.14                               │
│ Python Executable                    │ /opt/hostedtoolcache/Python/3.10.14/… │
│ Virtualenv Path                      │ Not Used                              │
│ Conda Env                            │ Not Used                              │
│ Config Path                          │ /home/runner/.config/comfy-cli/confi… │
│ Default ComfyUI workspace            │ No default ComfyUI workspace          │
│ Default ComfyUI launch extra options │ None                                  │
│ Recent ComfyUI workspace             │ No recent run                         │
│ Tracking Analytics                   │ Disabled                              │
│ Background ComfyUI                   │ No                                    │
│ Comfy Server Running                 │ No                                    │
│ Current selected workspace           │ → /home/runner/comfy/ComfyUI          │
└──────────────────────────────────────┴───────────────────────────────────────┘
warn: The recent workspace None is not a valid ComfyUI path.
Validating node configuration...
Publishing node version...
{'Failed to publish node version: 400 {"message":"Unmarshal type error:
expected=string, got=object, field=node.license, offset=212"}\n'}
Error: Process completed with exit code 1.


feat(esl-event-listener): add a group key to process batch subscription operations

Closes: #2381

:tada: This PR is included in version 5.0.0-beta.17 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Minecraft keeps crashing ill send my log files

I honestly need a concrete answer why this is happening.
2024-05-16-7.log.gz

latestlog.txt

I've been having this issue fir days now

Use version 1.6.2a for now, your linux system (Android in this case) is using an outdated version of SDL for the game, which is causing this problem

I hope  you know how people play on android And thank you this genuinely helps


Don't call into native destroy/cancel when not needed

Calling destroy() or stop() will cause a NullPointerExeception crash if the voice module hasn't yet been initialized. I expected to be able to call Voice.isRecognizing() to check to prevent this, but on Android at least that method always seems to return false.
It would probably be a better solution to have Voice.isRecognizing() work, but I don't have the desire to dig into Java so here is my bandaid.

@mattbreeden This is a good idea! I will squash this and merge soon.

@mattbreeden only one thing changed since the previous release, but your initial goal is still open for contribution! If you would like to still make the changes, keep me posted!

It looks like you already got this in in one of your 0.2.0 commits


feat: port CategoryTheory.Functor.LeftDerived

[x] depends on: #3740

This PR/issue depends on:

leanprover-community/mathlib4#3740
By Dependent Issues (🤖). Happy coding!

This PR/issue depends on:

leanprover-community/mathlib4#3740
By Dependent Issues (🤖). Happy coding!

bors merge


Segfault in glutin::winimpl::WindowDelegate::class::window_did_resize when using Amethyst WM

OS: OS X Yosemite 10.10.2
Hardware: MacBook Pro (Retina, 15", Late 2013)
"Window manager": Amethyst (https://github.com/ianyh/Amethyst)
The bug can be reproduced by using the minimal window example (cargo run --example window) on OS X while Amethyst is set to any window layout except for floating (as floating does not resize or modify window sizes or positions in any way). Resizing manually without Amethyst (or with Amethyst in floating mode) does not trigger this crash.
The line which seems to be the culprit (I have managed to use gdb to get that at least, I am not very proficient in gdb usage yet and macros makes it kinda hard for me to debug further) is https://github.com/tomaka/glutin/blob/ee2a5e4a2f020e79cfa2d34bfb82fab574a61bff/src/cocoa/mod.rs#L84
This function is only triggered once in both scenarios, but only causes a crash when Amethyst does the window resizing. And I cannot seem to be able to dump the contents of the state variable, getting an error along the lines of Cannot access memory at address 0x436400 from gdb whenever I try, no matter if it is going to crash or not.
Stacktrace of crash:
Crashed Thread:        1  Dispatch queue: com.apple.libdispatch-manager

Exception Type:        EXC_CRASH (SIGSEGV)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Thread 0:: Dispatch queue: com.apple.main-thread
0   window                        	0x000000010efd4eda sys::stack_overflow::imp::signal_handler::h1831eab9b541d1cc3yH + 922
1   libsystem_platform.dylib      	0x00007fff9bacdf1a _sigtramp + 26
2   ???<PHONE_NUMBER>00000000 0 + 0
3   window                        	0x000000010efb0dc6 winimpl::WindowDelegate::class::window_did_resize::h258067217522b3a7zla + 70
4   com.apple.CoreFoundation      	0x00007fff8f371cdc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
5   com.apple.CoreFoundation      	0x00007fff8f263244 _CFXNotificationPost + 3140
6   com.apple.Foundation          	0x00007fff93b22c31 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
7   com.apple.AppKit              	0x00007fff978674bc -[NSWindow _setFrameCommon:display:stashSize:] + 2801
8   com.apple.AppKit              	0x00007fff97eb8f36 -[NSWindow(NSWindowAccessibility) accessibilitySetSizeAttribute:] + 646
9   com.apple.AppKit              	0x00007fff97c715a4 NSAccessibilityEntryPointSetValueForAttribute + 656
10  com.apple.AppKit              	0x00007fff97a9f8cf SetAttributeValue + 371
11  com.apple.HIServices          	0x00007fff9b155674 _AXXMIGSetAttributeValue + 454
12  com.apple.HIServices          	0x00007fff9b15f169 _XSetAttributeValue + 624
13  com.apple.HIServices          	0x00007fff9b13ba13 mshMIGPerform + 199
14  com.apple.CoreFoundation      	0x00007fff8f2d38f9 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
15  com.apple.CoreFoundation      	0x00007fff8f2d386b __CFRunLoopDoSource1 + 475
16  com.apple.CoreFoundation      	0x00007fff8f2c53e7 __CFRunLoopRun + 2375
17  com.apple.CoreFoundation      	0x00007fff8f2c4858 CFRunLoopRunSpecific + 296
18  com.apple.HIToolbox           	0x00007fff94a8baef RunCurrentEventLoopInMode + 235
19  com.apple.HIToolbox           	0x00007fff94a8b86a ReceiveNextEventCommon + 431
20  com.apple.HIToolbox           	0x00007fff94a8b6ab _BlockUntilNextEventMatchingListInModeWithFilter + 71
21  com.apple.AppKit              	0x00007fff97776f81 _DPSNextEvent + 964
22  com.apple.AppKit              	0x00007fff97776730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
23  window                        	0x000000010efc2afc message::_$LP$A$C$$u20$B$C$$u20$C$C$$u20$D$RP$.MessageArguments::send::h13802515626889427100 + 236
24  window                        	0x000000010efc29f1 appkit::id.NSApplication::nextEventMatchingMask_untilDate_inMode_dequeue_::h11f4d971a7c96cffGTa + 305
25  window                        	0x000000010efb73a0 winimpl::WaitEventsIterator$LT$$u27$a$GT$.Iterator::next::he24ae6f876159b6clEa + 464
26  window                        	0x000000010efc1ca1 window::WaitEventsIterator$LT$$u27$a$GT$.Iterator::next::hcca2377f9fa5f19fnFd + 65
27  window                        	0x000000010efa638a main::haea97222d1fda9a9ere + 506
28  window                        	0x000000010efd7609 rust_try_inner + 9
29  window                        	0x000000010efd75f6 rust_try + 6
30  window                        	0x000000010efd6dff rt::lang_start::h6baf6e572388f6251fJ + 1151
31  window                        	0x000000010efa649f main + 79
32  libdyld.dylib                 	0x00007fff94d655c9 start + 1

Thread 1 Crashed:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib        	0x00007fff99874232 kevent64 + 10
1   libdispatch.dylib             	0x00007fff95fa8a6a _dispatch_mgr_thread + 52

Thread 2:
0   libsystem_kernel.dylib        	0x00007fff9987394a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8f5eb40d start_wqthread + 13

Thread 3:
0   libsystem_kernel.dylib        	0x00007fff9987394a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8f5eb40d start_wqthread + 13

Thread 4:
0   libsystem_kernel.dylib        	0x00007fff9987394a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8f5eb40d start_wqthread + 13

Thread 5:
0   libsystem_kernel.dylib        	0x00007fff9987394a __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fff8f5eb40d start_wqthread + 13

Thread 6:

Thread 1 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000004  rbx: 0x0000000000000000  rcx: 0x000000010f1065b8  rdx: 0x0000000000000000
  rdi: 0x0000000000000003  rsi: 0x0000000000000000  rbp: 0x000000010f106640  rsp: 0x000000010f1065b8
   r8: 0x0000000000000001   r9: 0x0000000000000000  r10: 0x000000010f1065d0  r11: 0x0000000000000246
  r12: 0x00007fff95fc8258  r13: 0x00007fff7ec28ec0  r14: 0x000000010f1065d0  r15: 0x000000010f106600
  rip: 0x00007fff99874232  rfl: 0x0000000000000247  cr2: 0x0000000108f78000

Logical CPU:     0
Error Code:      0x02000171
Trap Number:     133

It appears that the window resize handler is being called without the delegate's state ever being set. The delegate's state is only ever set temporarily during the PollEventsIterator, and here it looks like the WaitEventsIterator is running. That means the glutinState pointer of the WindowDelegate is null and when we try to access the context of it we segfault.
Possible solutions:

Never late the state be null. We'd probably have to box some part of the window's state and then we could always share that pointer with the delegate.
Only register as the delegate of the window when we have state and deregister when it's unset.

The first solution might be best, since then we don't risk missing events. On the other hand if we don't even want to handle events while we're waiting, maybe the second is best.

Hey @m4rw3r, can you try this again on the latest master and confirm that it doesn't crash?

Works fine now, no crash and window resizes and responds to events as expected. Thanks @SSheldon !


VimPerformanceState cleanup

Small changes in an effort to simplify the code

@Fryguy @blomquisg @matthewd Please review

@Fryguy @blomquisg @matthewd Please review


Upgrade prettier to v2

Upgrading prettier is required to use modern TypeScript syntax.Originally done in #680, but the other changes bundled in that PR broke things. Lame! So this PR is just prettier.
This is a trivial 2 minutes of work, but probably makes a lot of annoying merge conflicts. Yay!

Description

Types of Changes

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Documentation update
[ ] Breaking change (could cause existing functionality to not work as expected)
[ ] Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

Removing a public function or component or prop
Adding a required argument to a function
Changing the data type of a function parameter or return value
Adding a new peer dependency to package.json

Changes

(change1)

How to Test-Drive This PR

(step1)

Checklists

General

[ ] Changes are covered by test cases
[ ] CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance
You must check off all items in one of the follow two lists:

[ ] There are no changes to UI

or...

[ ] Changes were tested with a Screen Reader (iOS VoiceOver or Android Talkback) and had no issues
[ ] Changes comply with WCAG 2.0 guidelines levels A and AA
[ ] Changes to common UI patterns and interactions comply with WAI-ARIA best practices

Localization

[ ] Changes include a UI text update in the Retail React App (which requires translation)

@wjhsf quick clarification.
Correct me if I'm missing something important.

Also tests failing with this


WIP: Data migration from STH-Comet to QuantumLeap

created dataMigration.md to describe about Migration tool which can be used to migrate data from STH-Comet to QL.

Excellent, thank you very much!. The only missing thing is to refer this from the menu file mkdocs.yml after grafana so that the page is readable in the documentation.
Don't worry about the build, we're having a look at the timeouts now. I'll take it from there.

Hi @taliaga, Thank you for the appreciation.
My team is working on creation of new repository having same name as that of the tool.
I'll update you once it gets completed and will update menu file mkdocs.yml (as suggested by you) for reference to this document.
Till then I request you to not to merge this PR and also do not update any link for the same as the repository for this tool will be changed.

Hi @taliaga , I have updated the link for the tool in dataMigration.md and mkdocs.yml.
You can merge this PR now.

Thanks!


Identifier containing a space in transparency-obligation-organization

Question
@giorgialodi is this correct? https://github.com/italia/daf-ontologie-vocabolari-controllati/blob/f58478950109bcfeb712bd274618fed685e6faaf/VocabolariControllati/classifications-for-transparency/transparency-obligation/transparency-obligation-organization.ttl#L380
The identifier is  040102%20040201 -> the URL contains a space
Issue related to
[ (ioggstream-125) rpolli@rpolli daf-ontologie-vocabolari-controllati]$ frictionless validate VocabolariControllati/classifications-for-transparency/transparency-obligation/transparency-obligation-administration.csv
# -------
# invalid: VocabolariControllati/classifications-for-transparency/transparency-obligation/transparency-obligation-administration.csv
# -------

====  =====  ==========  ======================================================================================================================
row   field  code        message
====  =====  ==========  ======================================================================================================================
1379      1  type-error  Type error in the cell "040102 040201" in row "1379" and field "id_obbligo" at position "1": type is "integer/default"
1476      1  type-error  Type error in the cell "040102 040201" in row "1476" and field "id_obbligo" at position "1": type is "integer/default"
1573      1  type-error  Type error in the cell "040102 040201" in row "1573" and field "id_obbligo" at position "1": type is "integer/default"
1670      1  type-error  Type error in the cell "040102 040201" in row "1670" and field "id_obbligo" at position "1": type is "integer/default"
1767      1  type-error  Type error in the cell "040102 040201" in row "1767" and field "id_obbligo" at position "1": type is "integer/default"
1864      1  type-error  Type error in the cell "040102 040201" in row "1864" and field "id_obbligo" at position "1": type is "integer/default"

I think it is like that when it is generated automatically from some fields containing spaces. This RDF file was generated probably automatically from some tables and in one case the code in the table had a space ( I am guessing, I did not create personally this RDF file). When this happens, in the URI the space is replaced with % by some automatic systems. It is not a bug/error. Obviously, if you refer to that URI you have to include %. I do not like that much to be honest, but change a URI is a critical operation. I would leave it as it is.

I tracked down<PHONE_NUMBER>01 to transparency obligation... it seems that there only exists the 040102 identifier.
Can we check/ask whether the correct value is 040102?

@giorgialodi URLs cannot include %20 nor blank in a path segment. The blank/%20 terminates the URI and the following part is ignored. This must be fixes

Sorry @ioggstream  but when there is a space and the URI is automatically generated the space is encoded with %20 because space is not admitted in URIs. So there is an encoding of the space that is added. As I said above, this is possible. I do not like very much but you are changing a persistent URIs, which is a critical operation to avoid as much as possible.
The problem that I think is the most relevant one is that the identifier contains two values instead one only. I have to check this before proceeding with this critical modification.

@giorgialodi ok, so pls check if that's the correct URI since I am quite sure that this value is a typo :)

@bfabio @mfortini @Clou-dia la questione dell'URI sballato è stata risolta quando sono state apportate le modifiche al vocabolario. Io chiuderei l'issue.


NTLM authentication over ssl does not work

Hello,
I am using powershell core 6.2.2, the remote powershell is the latest version on windows 10, not sure which one it is...
I have configured winrm manually to accept remote connections including over ssl, and I have installed ntlm plugins for libgssapi for powershell core to be able to do ntlm auth.
However when I try to login from linux (powershell core) to windows, it does not work...
This is the actual session:
[webczat@wlap powershell]$ ./pwsh
PowerShell 6.2.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.
PS /home/webczat/powershell> $cred=get-credential

PowerShell credential request
Enter your credentials.
User: webczat
Password for user webczat: xxx

PS /home/webczat/powershell> $opt=new-pssessionoption -skipcacheck -skipcncheck
PS /home/webczat/powershell> new-pssession -computername <IP_ADDRESS> -auth Negotiate -credential $cred -usessl -sessionoption $opt
new-pssession : [<IP_ADDRESS>] Connecting to remote server <IP_ADDRESS> failed with the following error message : Authorization failed For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:6
+ new-pssession -computername <IP_ADDRESS> -auth Negotiate -cred ...
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : 2,PSSessionOpenFailed
PS /home/webczat/powershell>

However:

It does work when using basic authentication when it is enabled on windows side.
It works when ntlm is used and ssl is disabled, like -usessl is left out in new-pssession.
It works in ssl and non ssl case when logging into localhost from the windows side, or when logging via pywinrm library remotely from linux.

It is by design - PowerShell Core can use existing SSH-based authenticate mechanisms like passwords or private keys.

I am not doing remoting over ssh. I am trying to use ntlm over ssl

Same issue here, winrm is perfectly capable to use ntlm over ssl, I seriously don't get why we can't use it even after disabling the verification at all.

I want to reopen and discuss this issue. I can understand that ntlm has it's own mechanism to encrypt data but I seriously can't accept the fact that it wouldn't work with SSL. We can use ntlm with ssl in many other libraries, how Microsoft expect us to use powershell inside of linux by simply ignoring the very basic level of security.

@PaulHigin Make sense to continue tracking the issue? Is it real to implement the enhancement?

NTLM is not fully supported for remoting connections using WinRM/OMI.  AFAIK there are no plans to provide more support for NTLM and instead remoting over SSH is encouraged.

note remoting over winrm is far better if you connect linux powershell to windows. no one would probably do remoting over ssh on a windows server.

@PaulHigin thanks for response. I do want to use ssh over winrm but as stated above, how can we use something on productions while it's barely supported. Afaik, there's still no official support for older server version support for ssh

@mertcelen  MSFT stated in docs https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/ssh-remoting-in-powershell-core?view=powershell-6

Eventually we'll implement a general hosting model, similar to WinRM, to support endpoint configuration and JEA.

MSFT team still hasn't shared publicly their specific plans. I guess because it is security sensitive area and huge work.
You could look #8233 for better understanding the problem. As result you will say that it is not PowerShell but external issue :-)

I see, thanks for explanation. Since I find someone experienced to talk with, what would you recommend to use it in production servers while keeping it secure. Ssh is superior and secure way to communicate but it's not quite there at windows servers, winrm over ntlm is I guess ok, but it has lack of security (as in bruteforce attacks).

@webczat one scenario where remoting over SSH is very viable is where you're accessing non-domain machines, Setting up and using SSH may be easier than using certificate based remoting

@mertcelen If we are talking about business, today I would not force and use what works well.
As for ntlm (NTLM2 only!) you must use complex passwords and strongly protect management by firewall.


Prevent manual slide in carousel

Description
How can I prevent that the user slides/drags into view the next slide/page in the carousel component? I only want to change the slide/page programmatically (with a button click).

I was able to do this by putting the CSS class pointer-events-none on the wrapper.


Ensure iPhone spatial pictures are well supported

Spatialify seems to allow taking spatial pictures: https://apps.apple.com/us/app/spatialify/id6471922894
We need a sample

Here are some samples using the spatial photo capture mode on spatialify. Mostly half width sbs, one full width sbs. It can also export to anaglyph.

![1704619753708_H

SBS](https://github.com/steren/stereo-img/assets/155880208/b8d76443-892f-4146-8f8b-428cccc3734d)

Thanks a lot!
Two things will make supporting these images out of the box challenging:

there are absolutely no exif data. Try loading these images on https://mutiny.cz/exifr/, and note that there is no information like focal length, camera used, software used...

There is no way to know the images are half with side by side of full width side by side.


Add user agent string for new Edge Chromium

this page doesn't show the new user agent string for Edge (Chromium) Edg/79.0.309.43 as described in this document
https://docs.microsoft.com/en-us/microsoft-edge/web-platform/user-agent-string

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

ID: cd7eb3f6-c00a-453f-a596-6f8bde452cb7
Version Independent ID: 3250a24b-8e71-a36c-a9a0-7c46bc36acd4
Content: Configure browsers to use Windows Integrated Authentication (WIA) with AD FS
Content Source: WindowsServerDocs/identity/ad-fs/operations/Configure-AD-FS-Browser-WIA.md
Product: windows-server
Technology: identity-adfs
GitHub Login: @billmath
Microsoft Alias: billmath

at this point, probably need to just put the more generic Edg/* as its already at 80.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 Edg/80.0.361.48

(Ref. #4342)

(ref. #3875)

#please-close (see commit https://github.com/MicrosoftDocs/windowsserverdocs/commit/7b5ee81198368494ce1df12c021cb5d89a5fbbf8)

#please-close

Possibly related: #5098