It stopped

Hi,
I set the monitor few days ago and it worked fine. Then, this morning it stopped and I was getting connection refuse,
Ok, I cleared the Docker and run the setup.sh again and used saved details.  The problem seems to be that the influxdb stops running after few seconds then is starting for few minutes and does it over and over. I can connect now but I can see only the PW live graphic and no other data whatsoever.
[+] Running 6/6
✔ Network powerwall-dashboard_default Created 0.1s
✔ Container influxdb Started 1.9s
✔ Container pypowerwall Started 1.9s
✔ Container weather411 Started 2.0s
✔ Container grafana Started 2.1s
✔ Container telegraf Started 2.1s
Waiting for InfluxDB to start...
The Docker is :
Client: Docker Engine - Community
Version: 27.4.0
API version: 1.47
Go version: go1.22.10
Git commit: bde2b89
Built: Sat Dec 7 10:38:58 2024
OS/Arch: linux/amd64
Context: default
Watching in the  Docker Desktop, I can see what I described above (starting/run/starting....)
I'm monitoring PW3, I've bridged the networks so I got direct acces to it. This is on Ubuntu 24.04.
I'm not the Linux guru but I can do basic stuff. Also, I'm pretty new to the Docker.
Is there any way to see the logs to see what is happening with influxdb ?
Any help appreciated.
Thank you
BTW: it is so good when it runs!

Right, I'm getting lots of this error:
http2: server: error reading preface from client @: read unix /run/docker.sock->@: read: connection reset by peer
What does it mean?
Thanks

Where you are seeing that error?
Can you run verify.sh?
Give us some snapshots of logs:
docker logs pypowerwall
docker logs influxdb
docker logs telegraf

Could it be a docker issue?
sudo systemctl restart docker
journalctl -u docker.service

Got this from the logs:
run: open server: open tsdb store: lstat /var/lib/influxdb/data/powerwall: permission denied

ls -la
ls -la influxdb

cannot access 'influxdb': No such file or directory
should I be in particular directory doing this?

Yes, it would be the Powerwall-Dashboard folder that you create during the git clone.  It sounds like the permission or ownership of your files are off somehow. It could also be a disk full issue df -hf . would show disk free.

Can you run verify.sh?

ichal@NUC:~/Powerwall-Dashboard$ ./verify.sh
Verify Powerwall-Dashboard 4.6.0 on Linux - Timezone: Australia/Perth
This script will attempt to verify all the services needed to run
Powerwall-Dashboard. Use this output when you open an issue for help:
https://github.com/jasonacox/Powerwall-Dashboard/issues/new
Checking pypowerwall

Config File pypowerwall.env: GOOD
Container (pypowerwall): GOOD
Service (port 8675): GOOD
Version: 0.12.0 Proxy t66
Powerwall State: CONNECTED - Firmware: 24.36.11
Site Name: Michal Borkowski
Gateway TEDAPI: Available (<IP_ADDRESS>)
TEDAPI Vitals: Connected - Mode: full
Cloud Mode: NO

Checking telegraf

Config File telegraf.conf: GOOD
Local Config File telegraf.local: GOOD
Container (telegraf): GOOD
Version: Telegraf 1.28.2 (git: HEAD@8d9cf395)

Checking influxdb

Config File influxdb.conf: GOOD
Environment File influxdb.env: GOOD
Container (influxdb): GOOD
Service (port 8086): ERROR: Not Listening
Filesystem (./influxdb): Error response from daemon: Container 8eaf47026d1006bcc193d5aad320c9f5bc27f2bed0225478e2e4f5695a2f8535 is restarting, wait until the container is running
ERROR: Unable to write to filesystem - check permissions
Version: Unknown

Checking grafana

Config File grafana.env: GOOD
Container (grafana): GOOD
Service (port 9000): GOOD
Filesystem (./grafana): GOOD
Version: Grafana CLI version 9.1.2

Checking weather411

Container (weather411): GOOD
Service (port 8676): GOOD
Weather: {"temperature": 30.64}
Version: 0.2.3

One or more tests failed.
michal@NUC:~/Powerwall-Dashboard$

ichal@NUC:~/Powerwall-Dashboard$ df -hf
df: invalid option -- 'f'

df -h
Filesystem                                          Size  Used Avail Use% Mounted on
tmpfs                                               1.6G  5.8M  1.6G   1% /run
/dev/mapper/vgubuntu-root                           914G   54G  814G   7% /
tmpfs                                               7.6G  2.8M  7.6G   1% /dev/shm
tmpfs                                               5.0M  8.0K  5.0M   1% /run/lock
efivarfs                                            192K   89K   99K  48% /sys/firmware/efi/efivars
tmpfs                                               7.6G     0  7.6G   0% /run/qemu
/dev/nvme0n1p1                                      511M   44M  468M   9% /boot/efi
<IP_ADDRESS>:/volume1/NAS                           21T   13T  8.9T  58% /nfs
tmpfs

There is  873 GB free on the local disk

So, it looks like the permission issue (?). How I can fix that?
Thanks

Can you run these:
ls -la
ls -la influxdb

from the Powerwall-Dashboard

~/Powerwall-Dashboard$ ls -la influxdb
total 96
drwxr-xr-x  5 michal pusers  4096 Dec 17 14:45 .
drwxr-xr-x 12 michal pusers  4096 Dec 17 14:45 ..
drwxr-xr-x  3 root   root    4096 Dec 14 19:27 data
-rw-r--r--  1 michal pusers  1436 Dec 14 18:04 dropcq.sql
-rw-r--r--  1 michal pusers 24172 Dec 17 14:45 influxdb.sql
-rw-r--r--  1 michal pusers 24172 Dec 17 14:45 influxdb.sql.bak
drwxr-xr-x  2 root   root    4096 Dec 17 07:31 meta
-rw-r--r--  1 michal pusers  1089 Dec 14 18:04 run-once-2.8.0.sql
-rw-r--r--  1 michal pusers     3 Dec 14 19:06 run-once-2.8.0.sql.done
-rw-r--r--  1 michal pusers   508 Dec 14 18:04 run-once-2.8.3.sql
-rw-r--r--  1 michal pusers     3 Dec 14 19:06 run-once-2.8.3.sql.done
-rw-r--r--  1 michal pusers  3590 Dec 14 18:04 run-once-2.9.2.sql
-rw-r--r--  1 michal pusers     3 Dec 14 19:06 run-once-2.9.2.sql.done
drwx------  3 root   root    4096 Dec 14 19:27 wal

~/Powerwall-Dashboard/influxdb$ ls -la
total 96
drwxr-xr-x  5 michal pusers  4096 Dec 17 14:45 .
drwxr-xr-x 12 michal pusers  4096 Dec 17 14:45 ..
drwxr-xr-x  3 root   root    4096 Dec 14 19:27 data
-rw-r--r--  1 michal pusers  1436 Dec 14 18:04 dropcq.sql
-rw-r--r--  1 michal pusers 24172 Dec 17 14:45 influxdb.sql
-rw-r--r--  1 michal pusers 24172 Dec 17 14:45 influxdb.sql.bak
drwxr-xr-x  2 root   root    4096 Dec 17 07:31 meta
-rw-r--r--  1 michal pusers  1089 Dec 14 18:04 run-once-2.8.0.sql
-rw-r--r--  1 michal pusers     3 Dec 14 19:06 run-once-2.8.0.sql.done
-rw-r--r--  1 michal pusers   508 Dec 14 18:04 run-once-2.8.3.sql
-rw-r--r--  1 michal pusers     3 Dec 14 19:06 run-once-2.8.3.sql.done
-rw-r--r--  1 michal pusers  3590 Dec 14 18:04 run-once-2.9.2.sql
-rw-r--r--  1 michal pusers     3 Dec 14 19:06 run-once-2.9.2.sql.done
drwx------  3 root   root    4096 Dec 14 19:27 wal

Try:
# stop and remove container
docker stop influxdb
docker rm influxdb

# change ownership from Powerwall-Dashboard folder
sudo chown -R michal influxdb

# restart
./compose-dash.sh up -d

OK, I will leave work shortly and do that when back at home (using remote desktop now, but need to do something else now). I will comment after done. Thank you very much for your time and coping with me !

No worries. It is very unusual for permission to get messed up on a clean install using setup.sh.  Is it possible you ran sudo, changed users or otherwise made some permission changes?
Also, as a TODO: I'm wondering if we should have verify.sh not only detect the permission issue as it did your case, but also offer to correct it.

OK, very good news, it seams to run now, still no graphs or values under it, but I think it needs time (all comes back while I write this).
To be honest, I have no idea how that ownership has been changed. Yes, I was plying around with this, I installed the Docker Desktop and tried from there different things. I messed it up somewhere on the way, GUILTY. The main reason I started thou is because all of the sudden it stopped and when I was trying to log in via the browser again, the connection was refused. Next time if it happens, I will check the logs.
The option to fix the ownership would be a very good and useful addition :)
Once again, big THANK YOU, it is a great and useful utility.

That's great news! Thanks @michalperth

@jasonacox I ran into the same issue today. Running verify.sh I get
Checking pypowerwall

Config File pypowerwall.env: GOOD
Container (pypowerwall): GOOD
Service (port 8675): ERROR: Not Listening
Version: Unknown
Powerwall State: ERROR: Not Connected - Firmware: Unknown
Powerwall Gateway TEDAPI: Not Available (<IP_ADDRESS>)
Cloud Mode: NO

Those were the only ones that generated an error.
I re-ran setup.sh and reentered the credentials but to no avail

Powerwall Gateway TEDAPI: Not Available (<IP_ADDRESS>)

This indicates you do not have a route to the TEDAPI endpoint. If you switched to using that endpoint, that is the core problem. Look at pypowerwall.env to see what IP address it is set to use.
If you are using <IP_ADDRESS> you need to fix the route - you could try:
./add_route.sh

If it is not the IP, rebuild the container and watch the logs:
docker stop pypowerwall
docker rm pypowerwall
./compose-dash.sh up -d
docker logs pypowerwall -f

and let us know what you see...

@jasonacox I ran into the same issue today. Running verify.sh I get
Checking pypowerwall

Config File pypowerwall.env: GOOD
Container (pypowerwall): GOOD
Service (port 8675): ERROR: Not Listening
Version: Unknown
Powerwall State: ERROR: Not Connected - Firmware: Unknown
Powerwall Gateway TEDAPI: Not Available (<IP_ADDRESS>)
Cloud Mode: NO

Those were the only ones that generated an error.
I re-ran setup.sh and reentered the credentials but to no avail
I followed the steps here: #464 and my TZ is populated

This just happened today to me too, except my TDAPI shows Available. The only thing I have being reported is PW Temp that we fixed last week ha. A quick reboot this morning didn't fix it.

Powerwall Gateway TEDAPI: Not Available (<IP_ADDRESS>)

This indicates you do not have a route to the TEDAPI endpoint. If you switched to using that endpoint, that is the core problem. Look at pypowerwall.env to see what IP address it is set to use.
If you are using <IP_ADDRESS> you need to fix the route - you could try:
./add_route.sh

If it is not the IP, rebuild the container and watch the logs:
docker stop pypowerwall
docker rm pypowerwall
./compose-dash.sh up -d
docker logs pypowerwall -f

and let us know what you see...

That did it. Thanks for your assistance. I am not sure why it took so long to error out. I was playing with the TEDAPI like last week.

@wiltocking
are you saying the pw temp is fixed?
It does not work for me

Powerwall Gateway TEDAPI: Not Available (<IP_ADDRESS>)

This indicates you do not have a route to the TEDAPI endpoint. If you switched to using that endpoint, that is the core problem. Look at pypowerwall.env to see what IP address it is set to use.
If you are using <IP_ADDRESS> you need to fix the route - you could try:
./add_route.sh

If it is not the IP, rebuild the container and watch the logs:
docker stop pypowerwall
docker rm pypowerwall
./compose-dash.sh up -d
docker logs pypowerwall -f

and let us know what you see...

This is what I see after running the above, authentication errors again.
12/20/2024 01:53:23 PM [proxy] [INFO] pyPowerwall [0.12.0] Proxy Server [t66] - HTTP Port 8675
12/20/2024 01:53:23 PM [proxy] [INFO] pyPowerwall Proxy Started
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 105, in _get_session
self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in getitem
return self._find_no_duplicates(name)
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
KeyError: "name='AuthCookie', domain=None, path=None"
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/server.py", line 210, in
site_name = pw.site_name() or "Unknown"
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 498, in site_name
payload = self.poll('/api/site_info/site_name')
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 318, in poll
payload = self.client.poll(api, force, recursive, raw)
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 196, in poll
self._get_session()
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 114, in _get_session
raise LoginError("Invalid Powerwall Login")
pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
12/20/2024 01:53:28 PM [proxy] [INFO] pyPowerwall [0.12.0] Proxy Server [t66] - HTTP Port 8675
12/20/2024 01:53:28 PM [proxy] [INFO] pyPowerwall Proxy Started
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 105, in _get_session
self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in getitem
return self._find_no_duplicates(name)
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
KeyError: "name='AuthCookie', domain=None, path=None"
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/server.py", line 210, in
site_name = pw.site_name() or "Unknown"
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 498, in site_name
payload = self.poll('/api/site_info/site_name')
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 318, in poll
payload = self.client.poll(api, force, recursive, raw)
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 196, in poll
self._get_session()
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 114, in _get_session
raise LoginError("Invalid Powerwall Login")
pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
12/20/2024 01:53:32 PM [proxy] [INFO] pyPowerwall [0.12.0] Proxy Server [t66] - HTTP Port 8675
12/20/2024 01:53:32 PM [proxy] [INFO] pyPowerwall Proxy Started
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 105, in _get_session
self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in getitem
return self._find_no_duplicates(name)
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
KeyError: "name='AuthCookie', domain=None, path=None"
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/server.py", line 210, in
site_name = pw.site_name() or "Unknown"
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 498, in site_name
payload = self.poll('/api/site_info/site_name')
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 318, in poll
payload = self.client.poll(api, force, recursive, raw)
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 196, in poll
self._get_session()
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 114, in _get_session
raise LoginError("Invalid Powerwall Login")
pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
12/20/2024 01:53:37 PM [proxy] [INFO] pyPowerwall [0.12.0] Proxy Server [t66] - HTTP Port 8675
12/20/2024 01:53:37 PM [proxy] [INFO] pyPowerwall Proxy Started
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 105, in _get_session
self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in getitem
return self._find_no_duplicates(name)
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
KeyError: "name='AuthCookie', domain=None, path=None"
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/server.py", line 210, in
site_name = pw.site_name() or "Unknown"
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 498, in site_name
payload = self.poll('/api/site_info/site_name')
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 318, in poll
payload = self.client.poll(api, force, recursive, raw)
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 196, in poll
self._get_session()
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 114, in _get_session
raise LoginError("Invalid Powerwall Login")
pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login
12/20/2024 01:53:42 PM [proxy] [INFO] pyPowerwall [0.12.0] Proxy Server [t66] - HTTP Port 8675
12/20/2024 01:53:42 PM [proxy] [INFO] pyPowerwall Proxy Started
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 105, in _get_session
self.auth = {'AuthCookie': r.cookies['AuthCookie'], 'UserRecord': r.cookies['UserRecord']}
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 334, in getitem
return self._find_no_duplicates(name)
File "/usr/local/lib/python3.10/site-packages/requests/cookies.py", line 413, in _find_no_duplicates
raise KeyError(f"name={name!r}, domain={domain!r}, path={path!r}")
KeyError: "name='AuthCookie', domain=None, path=None"
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/server.py", line 210, in
site_name = pw.site_name() or "Unknown"
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 498, in site_name
payload = self.poll('/api/site_info/site_name')
File "/usr/local/lib/python3.10/site-packages/pypowerwall/init.py", line 318, in poll
payload = self.client.poll(api, force, recursive, raw)
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 196, in poll
self._get_session()
File "/usr/local/lib/python3.10/site-packages/pypowerwall/local/pypowerwall_local.py", line 114, in _get_session
raise LoginError("Invalid Powerwall Login")
pypowerwall.local.exceptions.LoginError: Invalid Powerwall Login

@wiltocking are you saying the pw temp is fixed? It does not work for me

Yes, with a PW+ it's working now that we updated it with the correct password.

Ok, I have PW3 that's why mine is not.
Thanks.

From another thread this advice to PW3 owners from lignumaqua:

You don't say but do you happen to have PW3 rather than an earlier model? If so it is the PW3 password you need, not the Gateway one. This password is printed on the label under the PW3 glass cover, visible during installation. If you have multiple PW3 then it's the password from the primary PW3.

For Powerwall 3 setup, the pypowerwall.env file should be something like this:
<EMAIL_ADDRESS>PW_PASSWORD=
PW_HOST=<IP_ADDRESS>
PW_TIMEZONE=America/Los_Angeles
TZ=America/Los_Angeles
PW_DEBUG=no
PW_STYLE=grafana-dark
PW_GW_PWD=ABCDEFGXYZ

Where PW_GW_PWD would be the PW3 password that is mentioned above. I don't have a PW3 so I can't test, but that seems logical.
If that is correct, I need to update the README and setup instructions to be more clear to help PW3 owners.

Yes, that's correct, that's how I got it with my PW3.
Also, if I remember correctly, you can just scan located outside the unit picture with your phone and the password will show up (no need to take the front cover) I will check it after work and let you know.
Cheers.

Nope, the external QR image can not be used, unfortunately.


var/media/upload/ permission to change logo

When you are not connected, you dont have permission on var/media/upload/ so you cant see the images uploaded (logo, favicon...).
Mentionned in INITIAL DATA from https://github.com/makinacorpus/Geotrek/blob/master/docs/deployment.rst

Fixed, isnt it ?


How to know which network interface is used ?

Hi,
To be able to access my ISP newsgroups with a NNTP newsreader, I have to use the Windows VPN to reach from anywhere a modem connected to this ISP network.
I found a way to force Gravity (the newsreader) to work with the VPN network interface by using ForceBindIP.
This seems to work... (is there a simpler way ?)
To be certain, could SI show me if the gravity process truly uses the proper  IP address, (those dedicated to the VPN)?
Thanks

This seems to work... (is there a simpler way ?)

You need to configure the interface metric (aka priority) for each adapter:

Set the metric for the VPN adapter to 1 and all other adapters a higher number (2,3,4,5 etc...) and the VPN adapter (lower number) becomes high priority (the default outgoing connection). You need configure the metric for all the adapters making sure the VPN has the lower number for this configuration to work: https://www.google.com/search?q=interface+metric+windows+10+11

could SI show me if the gravity process truly uses the proper IP address, (those dedicated to the VPN)?

Yes. The application will have local addresses matching the IP address of the VPN. If the network tab shows any application with the local address identical to the VPN connection then the program is using the VPN connection:


DNM WIP: CHERIfy via PAL

This is not yet ready for merge, but I would like to solicit feedback on the general idea.  Specifically, while the previous attempt at CHERIfication of snmalloc relied on a pile of ifdefs everywhere (including SNMALLOC_PAGEMAP_POINTERS), this attempt vectors everything through the platform abstraction layer.  There are some caveats:

The PAL is very early in the toposorting of dependencies, and so almost everything pagemap related needs to be passed in as template parameters.
It uses higher-order templates, which is... somewhat exciting.
While this compiles for CHERI, it should not be expected to actually work; at the very least, the set method of the CHERI chunkmap is wrong and, besides, most of the calls to the requisite hooks are not actually in place, just enough to ensure that we generate some code to test compilation.

This builds on #104, sorry for the duplicate commits at the moment.

Here's an updated version that provides an entire CHERI-compatible PAL as a worked example.  Because the existing ChunkMap implementations rely on static dispatch, I've marked them final to prevent accidental inheritance.

CHERI is certainly architectural, but the current implementations also all support hybrid code, so I wasn't sure whether it was a PAL or AAL thing; if you'd rather it be in the AAL, I think I'm OK with that and can push it over there.  I'm travelling until Monday, but I can get you something to look at next week.
The general idea of passing in both the PagemapProviderTemplate and ChunkmapPagemapTemplate seems OK?

This is so old now, I think it should be closed.  Please feel free to update and resubmit.  I am super keen for CHERI support, especially with the Morello work.  But I think this PR is too old to be of use.


Doument DJANGO_TABLES2_TEMPLATE setting for responsive tables

django-tables2's default template doesn't accommodate wide tables, but allows setting a different (global) template via the DJANGO_TABLES2_TEMPLATE variable, which affects the CSS of the table-container class.
It would be a good idea to document this, or maybe even consider what they propose in the docs:

If you use bootstrap 5 for your site, it makes sense to set the default to the bootstrap 5 template

and set this to the *-responsive.html template of whatever Bootstrap version we are using in APIS-Core and let users override this on an individual basis (should they really wish to).
Before
... table with lots of data/many columns spills over containing element:

After
... table can be scrolled thanks to overflow being added to container:

The latter was achieved by adding
DJANGO_TABLES2_TEMPLATE = "django_tables2/bootstrap5-responsive.html"

to settings.

Relatedly, it might make sense to provide defaults for DJANGO_TABLES2_TABLE_ATTRS for better accessibility.
E.g. when we last used webpage, our tables were set to be hoverable + striped by default (the docs give an example for the former, not the latter).

It is already documented in the upstream django tables documentation, which is linked from our documentation. Do we have the resources to copy documentation from an upstream project and keep it up to date in our own documentation? Which of the settings of django-tables2, django-fitlersets, django-rest-framework, django crispy forms, django autocomplete light, reversion ... should we copy to our documentation?

Which of the settings of django-tables2, django-fitlersets, django-rest-framework, django crispy forms, django autocomplete light, reversion ... should we copy to our documentation?

Probably everything that's relevant to UX/accessibility if we don't provide it ourselves, out of the box, tbqh.


Enable pad_sequences to operate on sequences of numpy arrays

Hello,
As I am working  with LSTM using w2v embeddings, enabling pad_sequences to operate on sequence of numpy arrays would be very useful for such applications!
Robert

What's your use case?
From the documentation:

pad_sequences
Transform a list of nb_samples sequences (lists of scalars) into a 2D numpy array of shape (nb_samples, nb_timesteps).

If what you're doing is significantly different from that, then rolling out another function would seem reasonable.

The difference is in the embedding you chose for the word representations which are continuous np arrays.
To use the same terminology than in the documentation:
pad_sequences transforms a list of nb_samples sequences (list of scalars/ list of numpy arrays) into a 2D/3D numpy array of shape  (nb_samples, nb_timesteps)/(nb_samples, nb_timesteps, nb_dimension_embeddings)

I made the changes accordingly to your comments.
(btw in the current version, an empty sequence provides an error)

Yes, the only problem would be the edge case you mentioned before where the first sequence of the list of sequences is empty.
But this is very degenerate.

But that index error would be caught and then would generate the exception, which would be a reasonable behavior.

Here the exception would catch two different errors: the case where the input is empty and the case where the input is not empty but its first element is empty: [] against [ [] , [array, array] , [array,array,array] ]

Now it makes sense


NAS-125815 / 23.10.2 / Add enclosure2 query output to debug (by Qubad786)

Context
It has been requested that we include enclosure2.query output to our debug as it's being used in our middleware stack and can help in potentially debugging problems.
Original PR: https://github.com/truenas/ixdiagnose/pull/139
Jira URL: https://ixsystems.atlassian.net/browse/NAS-125815

This PR has been merged and conversations have been locked.
If you would like to discuss more about this issue please use our forums or raise a Jira ticket.


Documentation reform

The User manual is broken into more manageable units. The error generation documentation is reworked substantially. Also, the master document page is made more legible and welcoming.

Codecov Report

Merging #169 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #169   +/-   ##
=======================================
  Coverage   56.34%   56.34%
=======================================
  Files          13       13
  Lines        1269     1269
=======================================
  Hits          715      715
  Misses        554      554

Continue to review full report at Codecov.

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


Trying to build the sample Azure_IoT_Hub_ESP8266 but get an  error: 'X509List' does not name a type

Describe the bug
Trying to build the sample Azure_IoT_Hub_ESP8266 but get an  error: 'X509List' does not name a type
Exception or Stack Trace
Azure_IoT_Hub_ESP8266:68:8: error: 'X509List' does not name a type
static X509List cert((const char*)ca_pem);
^
C:\Users\PATRIK~1\AppData\Local\Temp\arduino_modified_sketch_25349\Azure_IoT_Hub_ESP8266.ino: In function 'void initializeClients()':
Azure_IoT_Hub_ESP8266:145:15: error: 'class axTLS::WiFiClientSecure' has no member named 'setTrustAnchors'
wifi_client.setTrustAnchors(&cert);
^
Azure_IoT_Hub_ESP8266:145:32: error: 'cert' was not declared in this scope
wifi_client.setTrustAnchors(&cert);
exit status 1
'X509List' does not name a type
To Reproduce
Just create a new project in Arduino IDE and make appropriate changes in the iot_configs.h file and build the sketch
Code Snippet
static X509List cert((const char*)ca_pem);
Expected behavior
I would expect the sample to work or at least in the code explain how this X509List has to be created
Screenshots

.
Setup (please complete the following information):

OS: Windows 10
IDE: Arduino 1.8.19
Version of the Library used

Additional context
I'm looking for a way to connect an ESP8266 to a IotEdgeGateway 1.1 sending data to be relayed to Azure IoTHub. This sample looked as if it was using X.509 cert and i wanted to find out if this sample could lead the way to my solution. I have been working  this problem for weeks googling everything but i can't find any working samples for my Leaf/child device to connect to my IotEdgeGateway and pass the telemetry data
Information Checklist
Please make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

This relates with: https://stackoverflow.com/questions/70754868/how-to-connect-esp8266-through-iotedgegateway-running-on-rpi-ubuntu-using-azur


If a date filter is implied by the days_back parameter in a data volume alert, filter by the timestamp_column in the monitored_table CTE

Is your feature request related to a problem? Please describe.
Unless I'm misunderstanding how the package works, adding a days_back config to a data volume anomaly detection test means no more than days_back days worth of data will be used in evaluating the test.
I created a data volume test on a very large table that's well-optimized when queried with a filter on the table's partition timestamp column. I was surprised that my tests against this table with days_back parameters configured were timing out. I was then surprised to see that, in the code executed on the Databricks cluster, the first CTE was the following:
with monitored_table as (
  select
    *
  from
    {{very_large_table}}
),

If I hadn't set an appropriate timeout on the cluster where these tests ran it could have run up very large infra costs!
It may be the case that other anomaly tests follow a similar pattern but I have not tested.
This makes adoption of elementary more painful than it needs to be because:

It creates a predictable (and potentially costly) failure state for anomaly detection tests
The developer must dig into the compiled code and troubleshoot why a test that should run easily timed out
The documentation doesn't make it clear that the days_back parameter doesn't filter the table in question using the timestamp_column as one might expect

Describe the solution you'd like
Given that the test already knows the timestamp_column and the number of days_back I would expect the compiled code to look something like the following (in Spark SQL syntax), designed to filter the table down to the date range needed to evaluate the test:
monitored_table as (
  select
    *
  from
    {{very_large_table}}
  where
    date_trunc('{{time_bucket}}', {{timestamp_column}}) between
        date_trunc('{{time_bucket}}', datesub(current_date(), {{days_back}} + 1) and
        last_day('{{time_bucket}}',   datesub(date_trunc('{{time_bucket}}', current_date()), 1))
),

Describe alternatives you've considered

Update the documentation to make it clearer that the days_back parameter does not filter the table in question, and those filters need to be applied using the where_expression parameter instead
Do nothing--it's may be complicated to implement this filtering given all of the parameters that can be applied to a test

Additional context
Somewhat related to but distinct from issue #1329
Would you be willing to contribute this feature?
May be willing to contribute at some point Oct 2023 or later

Hi @garfieldthesam !
Thanks for opening this issue and sorry for the delay.
Similar to my response to the other issue, I believe this filtering is now done as you'd expect, so I'm tending to think this is no longer an issue.
Closing but feel free to re-open if you feel otherwise.


Absolute HREFs of assets

Description
This PR adds conditional modification of Item asset hrefs so that relative paths to image assets in the DB are rendered as absolute for users. While adding this feature, it was also clear that tilejson and metadata assets could be rendered as absolute on the assumption that the only change necessary is replacement of /stac/ with /data/ - I could use a second pair of eyes on this assumption as it is possible I'm not imagining a failure condition which makes this solution unworkable.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
I've manually tested this behavior and added an item with ID al_m_3008501_ne_16_060_20191109_20200114_relative_path_test that should trigger relative->absolute path transformation. As pgstac 0.4.5 is necessary to run things locally, a couple of tests are commented out due to incompatibility with changes on this version of pgstac.
Checklist:
Please delete options that are not relevant.

[x] I have performed a self-review
[x] Changelog has been updated
[x] Unit tests pass locally (./scripts/test)
[x] Code is linted and styled (./scripts/format)

One difficulty I ran into when developing this was that caching on get_item made it difficult to see changes/print out values at the locations I was hoping to. What's the quick fix for this and should there be some kind of cache busting/duration shortening in the dev environment?

#59 has the fix for the broken data links, thanks for catching that. I also had friction with the caching in development while testing that fix, we don't have a known-good workaround, but I think disabling the behavior altogether by default in dev is probably a good idea.


TST: address tolerance violations with SciPy 1.14.0rc1 on linux-{aarch64,ppc64le}

Reference issue
Closes gh-20938
What does this implement/fix?
Bumps tolerances to address local test failures reported in gh-20938.
Additional information
The test_differentiate adjustment is already needed in another PR and seems safe to me (the author). The hyp2f1 adjustments are very small, but I'll let @steppi check that they're acceptable.
@h-vetinari Can you check that this addresses the failures?

The tolerance bumps for hyp2f1 look fine to me.

I bumped to 1e-12 because I think that was needed with another array library (maybe PyTorch) in my other PR. Probably some smaller difference was causing it to not detect convergence and an additional iteration makes the absolute error a little worse. So it will become 1e-12 shortly if not here.


feat: As a user, I want to be able to call any method on the AttestationRegistry via the SDK

What does this PR do?
Related ticket
Fixes #203
Type of change

[ ] Chore
[ ] Bug fix
[x] New feature
[ ] Documentation update

Check list

[ ] Unit tests for any smart contract change
[x] Contracts and functions are documented

Codecov Report

Merging #304 (2bc42e5) into dev (ec646e4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #304   +/-   ##
=======================================
  Coverage   93.40%   93.40%
=======================================
  Files          13       13
  Lines         197      197
  Branches       46       46
=======================================
  Hits          184      184
  Misses          8        8
  Partials        5        5

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[core] Fix handling of binary data in core-client-rest

Packages impacted by this PR

@azure-rest/core-client

Describe the problem that is addressed by this PR

Remove conversion of Uint8Array to binary string with application/octet-stream content type

core-rest-pipeline handles Uint8Array as a request body type so this conversion should not be necessary

Remove conversion of Uint8Array to binary string in multipart/form-data requests and convert to Blob instead

With the new multipart work, support for Blob is much improved and this workaround should no longer be required.

API change check
API changes are not detected in this pull request.

I ran the recorded tests locally last week and they worked OK. I can't see a live test pipeline to run though. It would be good to check the live service, I will try provision something


Seperate the models and action filters into seperate packages

If a user has their API models in a seperate assembly and wants to use the HateoasObject class in that assembly, that assembly would need a dependency on this package, resulting in a dependency on ASP.NET Core.
This is not desirable!
That is why we should have 2 packages. munisio and munisio.abstractions (or something). Munisio should have a dependency on munisio.abstractions.

Hey, can i claim this one? :)

fixes #23


Secure wallet

Moved to Hard Fork 1.0 since #2252 is scheduled for then and the other linked issues are closed


[SIS-090] Replace all colors with colors from colors constants file

As a user of the Sistema Lesson Planner, I want my app to be in a consistent colour palette!

Technical Information
Small QoL micro-ticket!

[ ] Replace all instances of colour hex code styling with variables from the colours constants file!

Quick question, what's the status on this?

i think @MinGi-K 's working on it atm

@helenaglow did you end up working on this? :0

No! I didnt even know I did that! oops! I must have done the wrong ticket sorry omg


OBO community health does not show ODK config correctly

hp, cl, uberon, omrse, pato all have ODKs..

I would also rename the metric to ODK repo or Uses ODK or some such.. Config isn't really all that meaningful.

the ODK flag doesn't currently get populated by real information because the GitHub search has a pretty restrictive rate limit and I don't know a better way to get this. I will have to write a new script that runs slower and less frequently

Solved in c420fed


It should be possible to specify an AGENT_SECRET_FILE to be compatible with Docker Secrets

To be more compatible with Docker Swarm secrets, which are files passed into the swarm not via compose files, it would be more secure and closer to convention if the agent secret could be given as a path to a file (which would be a path to a docker secret).
This seems to be currently not possible, at least according to the documentation at:
https://portainer.readthedocs.io/en/stable/agent.html#configuration

I'll close this as it should be opened against the agent repo, which I see you have already done here

Hi @itsconquest, I think this should be re-opened as this should be possible in both, Portainer and the Agent (they both require to know the Agent Secret). At the moment they both only support passing it via env variable.

@hhromic I closed this here, as the feature itself is the agent feature so will be tracked through the ticket in the agent codebase. I have updated the associated ticket in the agent codebase to reflect this fact


Move Limit/Offset Fields to AbstractScanPlanNode

IndexScanPlanNode has a single field to support limits:
https://github.com/cmu-db/terrier/blob/master/src/include/planner/plannodes/index_scan_plan_node.h#L236
There is no reason that we should have the same field in SeqScanPlanNode. Therefore, we should move it into AbstractScanPlanNode.
Furthermore, we should also add the offset field with the limit to have the same semantics as LimitPlanNode.

Can I try this one out?

@jkosh44 Yes!

Cool, I'm hoping it'll help me get a better understanding of the code base, C++, and CLion.
I have a couple of quick questions/notes

Just wanted to note that adding these two fields to AbstractScanPlanNode will add them to CSVScanPlanNode as well since it's not mentioned in the issue.
For the constructors should we
a. Create new constructors with limit and offset and initialize these to some default/null in the old constructors?
or
b. Modify existing constructors?
In CLion what executable am I supposed to pick when running a CMake goal (I'm new to CMake and wasn't able to find this in the wiki)?

Adding them to AbstractScanPlanNode automatically adds them to CSVScanPlanNode.
You have to add the fields to the builder classes and then modify the existing constructors.
Cmake goal = terrier binary

Closing because https://github.com/cmu-db/terrier/pull/938 was merged


Hide shadow blocks in tutorial toolbox

Build: https://minecraft.makecode.com/app/16a847ed1f296a6e6697f06e19a83586e5dd8bb6-e532db8929

Before
After

Can you add before/after screenshots?

Updated with a couple minecraft tutorials' before/after

Looking pretty good


ENH: introduce versioning of the schema itself

Note -- it is not a version of the content of the schema, it is
a version over organization of the schema (e.g. we could add some
schema to describe how schema is organized).
The 'desire' for having a version over the BIDS schema's version
is somewhat described in README.md in added section.  Just to facilitate
tools to know what versions of bids schema they can read without explicitly
whitelisting BIDS versions themselves.  Might become more relevant as more
versions start to appear in https://github.com/bids-standard/bids-schema
I will feel totally Ok if we just drop this PR for now entirely.

I think this is a great idea. From what I can tell, we have four concurrent versions we need to track in this repository:

the specification, which is handled outside of the schema
the schema structure
the schema contents
the schemacode version, which is tracked with versioneer I think

Does that sound right? And this would track the schema structure, correct?

Does that sound right?

pretty much.  I feel that 1 and 3 are coming together, ie. I don't really see a need to separate out specification as what is outside or inside schema in respect of versioning.
code, as long as it is not distributed as a usable thing outside of this repo, is probably not worth its own versioning.  But we should aim indeed to move good portion of the code outside (and thus it would get its own versioning), and leave only the code needed for specification rendering etc.

And this would track the schema structure, correct?

correct

attn @bids-standard/schema -- I am starting the campaign to decide on the destiny of adding versioning of schema's schema!  Please review/approve/request changes.

@yarikoptic @sappelhoff @tsalo Our plan this week is to continue work in separate schema branches (kept synced with changes in master). By the end of the week, we will very likely have sufficient changes to justify bumping the version in some way, so I would suggest finalizing this and merging before the end of the week so that we can have a clear break in pre/post workshop.

@yarikoptic @sappelhoff @tsalo Our plan this week is to continue work in separate schema branches (kept synced with changes in master). By the end of the week, we will very likely have sufficient changes to justify bumping the version in some way, so I would suggest finalizing this and merging before the end of the week so that we can have a clear break in pre/post workshop.

can only wholeheartedly support the "Merge this PR" initiative!  I force pushed rebase to resolve conflicts (if I got it right due to "folder" -> "directory", so I used "directory" too)


Changeable Price and power?

Just wanted to ask if at some point you could make the mod more configurable so I could edit the price and battery life because its a really cool mod and I want to be able to use it longer but not for how cheap it currently is! (Ps Please add your mod to the LC Modded Discord so its easier to talk/update us on the mod! https://discord.gg/X3uj8BZKMr ) (PPS A couple of less needed features I would love to see is being able to hold it closer to your face to see more of the map and the og proxy view with only about 75 degrees of vision and proximity "arrows" instead of the full 360 we have now)

I created a fork and implemented the configs, until the creator of the mod approves my pullrequest you can use my version.https://github.com/Entity378/LethalCompany_MotionTracker/releases/tag/Release

Thanks for the PR @Entity378! Do you know how this will behave in multiplayer if the players have different configs?

It should use the host's config, but since i don't have anyone to test with, i don't actually know if it's as i said

Thanks for the update. I think I know how that should be implemented. I'll take a look over the weekend

Thanks for the update. I think I know how that should be implemented. I'll take a look over the weekend
Since no updates have been made anymore, I thought of implementing Networking myself.
If you are still interested, I created another PR  #7 since the previous one did not include syncing the config with the host.


Cannot import name SigmoidCrossEntropyLoss

Hi, when i tried to run the MNIST tutorial from TensorFlow, I had this issue "  File "Keras.py", line 14, in
from keras.layers import SigmoidCrossEntropyLoss, Activation, Input
ImportError: cannot import name SigmoidCrossEntropyLoss"

I'm running the model in Tensorflow (it is running normally). I just installed Keras using the Keras's website instructions. If i code "python" and "import keras" I have this message.  "import keras
Using TensorFlow backend.
Couldn't import dot_parser, loading of dot files will not be possible." I don't know well if Keras is working. But just to add information to help you to fix it. :)

Hi, @RomuloThiago
Thanks for raising the bug.
We have resolved the issue. Please check and close the bug.

Thank you.


Update for PR #4174

A few simplification and fixes for PR #4174 (see comments)

looks good to me


Imports in imported file fails

Problem
Import in imported file fails.
generics/connectors.ato fails to import WJ15EDGRC_3_81_2P from "elec/src/WJ15EDGRC_3_81_2P.ato"
How to reproduce
Create ato project according to Getting started.
$ ato --version
ato, version 0.2.21

ato.yml
ato-version: ^0.2.0
builds:
  default:
    entry: elec/src/test-imports.ato:TestImports
dependencies:
- generics

elec/src/test-imports.ato
from "generics/connectors.ato" import Header2Pin

module TestImports:
    signal gnd

    header = new Header2Pin

Build
Running ato build results in:
$ ato build
[20:13:32] INFO     Using project …/tmp/test-atopile-import/test-imports                              common.py:73
           INFO     Building default                                                                  build.py:36
           INFO     Writing outputs to …/tmp/test-atopile-import/test-imports/build                   build.py:64
           INFO     Building copy-footprints                                                          build.py:77
           INFO     Building netlist                                                                  build.py:77
           ERROR    ImportNotFoundError                                                               errors.py:78
                    …/tmp/test-atopile-import/test-imports/.ato/modules/generics/connectors.ato:1
                    --> File 'elec/src/WJ15EDGRC_3_81_2P.ato' not found.

Thanks, ill take a look

Looks like actually a mistake in the import statement:
import WJ15EDGRC_3_81_2P from "elec/src/WJ15EDGRC_3_81_2P.ato"
import WJ15EDGRC_3_81_2P from "elec/src/WJ15EDGRC-3.81-2P.ato"
not actually used anyway, I have just deleted it and updated generics, tagging a new release for it now.


KeystoreController derivationMatchesAnotherScriptType() check prevents wallet import

When setting up a Software Wallet Keystore, the dialog permits specifying a custom derivation path. However the wallet Settings tap will not allow a derivation path if it matches a default for another script type. The help icon explains as much:

The derivation path to the xpub from the master private key.
For safety, derivations that match defaults for other script types are not valid.

This feature is enforced in the KeystoneController.java, line 150, where it checks derivationMatchesAnotherScriptType():
derivation.textProperty().addListener((observable, oldValue, newValue) -> {
    if(KeyDerivation.isValid(newValue) && !walletForm.getWallet().derivationMatchesAnotherScriptType(newValue)) {
        keystore.setKeyDerivation(new KeyDerivation(keystore.getKeyDerivation().getMasterFingerprint(), newValue));
        EventManager.get().post(new SettingsChangedEvent(walletForm.getWallet(), SettingsChangedEvent.Type.KEYSTORE_DERIVATION));
    }
});

And on line 249 in the setup for the derivation validator:
validationSupport.registerValidator(derivation, Validator.combine(
        Validator.createEmptyValidator("Derivation is required"),
        (Control c, String newValue) -> ValidationResult.fromErrorIf( c, "Derivation is invalid", !KeyDerivation.isValid(newValue)),
        (Control c, String newValue) -> ValidationResult.fromErrorIf( c, "Derivation matches another script type", walletForm.getWallet().derivationMatchesAnotherScriptType(newValue))
));

Unfortunately, this feature prevents importing wallets created by other software which does not have this restriction. For example, bisq uses derivation path m/44'/0'/1' for its native SegWit wallets. The KeystoreController derivation check appears to prevent importing these wallets into Sparrow.
Note: The KeystoreController check does not stop non-standard xpub/zpub entry or use. It is possible to paste the zpub that bisq presents and import it as a watch only wallet in Sparrow. The form field for the derivation path is outlined red to show the problem, but the Apply button is enabled, and clicking it works to initialize the watch only wallet.
Recommendation: Offer a checkbox to allow the user to override this check in special circumstances.

Recommendation: Offer a checkbox to allow the user to override this check in special circumstances.

You can disable derivation path validation in the Preferences.

@kiwihodl I don't think it's worth complicating the UI in this way. Further, this is intended friction - reusing derivation paths across different script types risks the reuse of public keys and loss of privacy, apart from the issues that result from trying to restore wallets with non-default configuations.


Config for overwrite image

Added config to overwrite image on change, very useful in our case where we want an easy way to update changed images.

Great idea! Could you also update README.md and add this option next to saveNewImageOnError in https://github.com/burnpiro/puppeteer-screenshot-tester#optional-arguments-1 ?

@all-contributors please add @JacobJust for code and doc


Add --yes/-y flags to devspace up #322

What issue type does this pull request address? (keep at least one, remove the others)
/kind enhancement
/kind feature
What is this pull request for? Which issues does it resolve?
resolves #322
Does this pull request has user-facing changes?
new flags in devspace up to answer all question by the default
Does this pull request add new dependencies?
nothing
What else do we need to know?
flags naming, I offer to be changed to “-d/ —default”. because some default answers is not yes.

@u5surf: Thank you for your contribution!


Correction to ADOT Documentation Partners (Datadog) Section

Within the ADOT documentation (https://aws-otel.github.io/docs/partners/datadog) under Partners, the left side navigation reads "DataDog". The second d in Datadog should not be capitalized. Please update this to read "Datadog".

@alyspapp please file this request on https://github.com/aws-otel/aws-otel.github.io/issues Thanks!

Thanks @alyspapp - sent https://github.com/aws-otel/aws-otel.github.io/pull/82 to fix

Thanks for the fix @anuraaga

Thank you!


Split code

The code has been reorganized into the src/climsight directory and modularized into several files to prepare for packaging. Additionally, launch.py has been introduced. This enhancement allows users to execute climsight directly after installing the package with pip install -e .

I see I have to install it and then just cilmsight works :)

Seems to work, merging. Please do another PR with updated instructions for README :)


Add NASA/Openscapes docs to the list of external resources

https://nasa-openscapes.github.io/earthdata-cloud-cookbook/our-cookbook.html

specifically to https://nasa-impact.github.io/veda-docs/external-resources.html


coerce_field not working

I have an event content model that has a datetime field that I want to coerce into a Datetime
class Contentful::Event < ContentfulModel::Base
  self.content_type_id = 'event'

  coerce_field datetime: :Date
end

When I call datetime on an event instance I get the error no implicit conversion of DateTime into String
Somehow, the value of the field is coerced twice, once on initialization & the second time on accessing the value. The second time https://github.com/contentful/contentful.rb/blob/master/lib/contentful/coercions.rb#L64 throws the error as it tries to parse an already coerced value.
I've added a PR with a failing test - #120.

Thanks @aldreth I'll take a look into this.
Cheers

This has been now fixed and merged.
Cheers

Thanks very much @dlitvak.


[Improvement](inverted index) delay inverted index col read to reduce IO (#26080)

Proposed changes
Issue Number: close #xxx
pick from #26080
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


ECSql BindIdSet support

Allows ECSQL parsing to bind arrays of id strings to statements (like InVirtualSet)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 3 committers have signed the CLA.:white_check_mark: grigasp:x: scsewall:x: Aurora-LaneYou have signed the CLA already but the status is still pending? Let us recheck it.

You will probably want to make a new branch off of imodel02 and cherry-pick your one commit over to that branch, to fix merge issues.

You will probably want to make a new branch off of imodel02 and cherry-pick your one commit over to that branch, to fix merge issues.

I'm working on extracting Grigas' commit now and creating a separate PR for that.  I should have that open shortly.

It looks like something went wrong with the merge.

I really think it would be easier just to make a new branch off imodel02 and cherry-pick your single commit, @Aurora-Lane.

Try this branch.


keptn incubation review

Due diligence document: https://docs.google.com/document/d/14qFAc6kxhWX_JLMUKddgELcymaRw6jmhsq0OYxrHtc0
TOC PR: https://github.com/cncf/toc/pull/670
Presentation to TAG App Delivery: https://github.com/cncf/tag-app-delivery/issues/132#issuecomment-901242290

#132

I will send the update once I have the new version of Due Diligence fully ready for review.
Any feedback is always welcome! https://docs.google.com/document/d/14qFAc6kxhWX_JLMUKddgELcymaRw6jmhsq0OYxrHtc0/edit


pino-datadog-transport return deprecated warning

There are two things,

max Listner court exceeded
return deprecated warning

Need more info. What does your pino config look like?


Support Dockerfile

We have a draft dockerfile in OAP v1.0, but there are some other driver issues in Pmem during the previous testing.
Check if we can bring dockerfile back with Native SQL Engine since after OAP v1.1 release, every sub-project has become independent and we believe Native SQL Engine can be well support and extend to Docker environment.

#144


Fixed ##4802 always show "Select Connection" when change kernel

Always show "Select Connection" when change kernel except for "Python 3"

As we discussed, we would like to redesign the UI. So we don't want to make any change for this area right now.


Update Dockerfile

Switch to ENTRYPOINT
Entrypoint allows us to do docker run <image_name> -c "--flags" which is what we have set up with ansible.
Warning! untested

@coderabbitai review


Can't add a user?

I have a NodeMCU connect to my wifi network. I have configured the pins for a RC522 scanner. I double checked to make sure all pins are correct.
When I select users, and scan a rfid tag, nothing happens. I have tried restarting and rebooting.
For some reason it cannot see my RFID tag and register a new user.
I have my hardware settings set as a RC522. And can see the red light on the RC522 device.
Any ideas??

Have you set the correct SPI SS gpio pin under hardware settings?

Keep on it.  Make sure all pins are set correctly and all wiring is correct.  If when it comes down to it you don't get a reading, try a different RC522 scanner.

Have you set the correct SPI SS gpio pin under hardware settings?

Yes I have it sent to GOIO 15. I watched DrZzs setup and figured I’d set one up myself. No clue why tags are not registering. I believe it is the GUI perhaps messing up as sometimes my setting won’t update. Any other ideas? I am on generic bin.

I have the same problem.
Currently using NodeMcu V3 and RC522 (Set as MFRC522). I'm sure the reader is ok because I just test it using a simple code that reads UID.
My pinout is as describe in README file:
D8 -> SDA
D7 -> MOSI
D6 -> MISO
D5 -> SCK
G -> GND
3V -> 3.3V
CONFIG FILE:
 {

  "command": "configfile",
  "network": {
    "bssid": "",
    "ssid": "esp-rfid",
    "wmode": 1,
    "hide": 0,
    "pswd": "",
    "offtime": 0,
    "dhcp": 1,
    "ip": "",
    "subnet": "",
    "gateway": "",
    "dns": "",
    "apip": "<IP_ADDRESS>",
    "apsubnet": "<IP_ADDRESS>"
  },
  "hardware": {
    "readertype": 0,
    "wgd0pin": 4,
    "wgd1pin": 5,
    "sspin": 15,
    "rfidgain": 32,
    "wifipin": 255,
    "rtype": 1,
    "ltype": 0,
    "rpin": 16,
    "rtime": 400,
    "buttonpin": 255,
    "doorstatpin": null,
    "openlockpin": null
  },
  "general": {
    "hostnm": "esp-rfid",
    "restart": 0,
    "pswd": "admin"
  },
  "mqtt": {
    "enabled": 0,
    "host": "",
    "port": 1883,
    "topic": "",
    "user": "",
    "pswd": "",
    "syncrate": 180,
    "mqttlog": 0
  },
  "ntp": {
    "server": "pool.ntp.org",
    "interval": 30,
    "timezone": 0
  }
}

Got it working.
Erased the flash memory, then flashed the DEBUG firmware.
Boot the NodeMcu making sure the RC522 is wired before powering it up, if not, reboot NodeMcu.
Make sure the serial debugging posts:
[ INFO ] MFRC522 Version: 0x92 = v2.0
Connect using web interface and modify only:
Reader Type: MFRC522
SPI SS: GPIO-15 (D8)
Antenna Gain: Max (48 db)
I tried using other pins, but it did not work.
Don't modify Relay Pin, leave it as default GPIO-4. Whenever I modified it, it stopped working.
If by any chance the RC522 gets disconnected from the NodeMcu, you must restart it to make it work again.
When it scans a valid card, debug will show:
21:30:21.553 -> [ INFO ] PICC's UID: xxxxxx MIFARE 1KB = known PICC
21:30:21.600 -> [ INFO ] User Name: bip have access
21:30:21.600 -> mili : 33155
21:30:21.647 -> activating relay now
21:30:21.953 -> 33555
21:30:21.953 -> 33155
21:30:21.953 -> 400
21:30:21.953 -> 0
21:30:21.953 -> deactivate relay after this
21:30:21.999 -> mili : 33555

I used Arduino IDE to debug using COM3.
If you want to make sure your RC522 is working, flash this using Arduino IDE.
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN D8
#define RST_PIN D2

MFRC522 mfrc522(SS_PIN, RST_PIN); // Instance of the class
void setup() {
   Serial.begin(9600);
   SPI.begin();       // Init SPI bus
   mfrc522.PCD_Init(); // Init MFRC522
   Serial.println("RFID reading UID");
}
void loop() {
if ( mfrc522.PICC_IsNewCardPresent())
    {
        if ( mfrc522.PICC_ReadCardSerial())
        {
           Serial.print("Tag UID:");
           for (byte i = 0; i < mfrc522.uid.size; i++) {
                  Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
                  Serial.print(mfrc522.uid.uidByte[i], HEX);
            }

            Serial.println();
            mfrc522.PICC_HaltA();
        }
}
}

My pinout for both firmwares is this:
D8 -> SDA
D7 -> MOSI
D6 -> MISO
D5 -> SCK
G -> GND
3V -> 3.3V
D2 -> Relay
D0 -> RST

I hope it's helpfull.

Thank you so much for all the info.
I am going to try again to see if I get it working, will update you.
From: MrAlester<EMAIL_ADDRESS>Reply-To: esprfid/esp-rfid<EMAIL_ADDRESS>Date: Saturday, July 13, 2019 at 8:55 PM
To: esprfid/esp-rfid<EMAIL_ADDRESS>Cc: brumfieldtate<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [esprfid/esp-rfid] Can't add a user? (#283)
Got it working.
Erased the flash memory, then flashed the DEBUG firmware.
Boot the NodeMcu making sure the RC522 is wired before powering it up, if not, reboot NodeMcu.
Make sure the serial debugging posts:
[ INFO ] MFRC522 Version: 0x92 = v2.0
Connect using web interface and modify only:
Reader Type: MFRC522
SPI SS: GPIO-15 (D8)
Antenna Gain: Max (48 db)
I tried using other pins, but it did not work.
Don't modify Relay Pin, leave it as default GPIO-4. Whenever I modified it, it stopped working.
If by any chance the RC522 gets disconnected from the NodeMcu, you must restart it to make it work again.
When it scans a valid card, debug will show:
21:30:21.553 -> [ INFO ] PICC's UID: xxxxxx MIFARE 1KB = known PICC
21:30:21.600 -> [ INFO ] User Name: bip have access
21:30:21.600 -> mili : 33155
21:30:21.647 -> activating relay now
21:30:21.953 -> 33555
21:30:21.953 -> 33155
21:30:21.953 -> 400
21:30:21.953 -> 0
21:30:21.953 -> deactivate relay after this
21:30:21.999 -> mili : 33555
I used Arduino IDE to debug using COM3.
If you want to make sure your RC522 is working, flash this using Arduino IDE.
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN D8
#define RST_PIN D2
MFRC522 mfrc522(SS_PIN, RST_PIN); // Instance of the class
void setup() {
Serial.begin(9600);
SPI.begin();       // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
Serial.println("RFID reading UID");
}
void loop() {
if ( mfrc522.PICC_IsNewCardPresent())
{

    if ( mfrc522.PICC_ReadCardSerial())

    {

       Serial.print("Tag UID:");

       for (byte i = 0; i < mfrc522.uid.size; i++) {

              Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

              Serial.print(mfrc522.uid.uidByte[i], HEX);

        }

        Serial.println();

        mfrc522.PICC_HaltA();

    }

}
}
My pinout for both firmwares is this:
D8 -> SDA
D7 -> MOSI
D6 -> MISO
D5 -> SCK
G -> GND
3V -> 3.3V
D2 -> Relay
D0 -> RST
I hope it's helpfull.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/esprfid/esp-rfid/issues/283?email_source=notifications&email_token=AHZNSXXPGMLX6QUVRGSI54LP7KBSBA5CNFSM4H4GJOSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ34RCQ#issuecomment-511166602, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHZNSXXMYDQVCKTZOZR7AM3P7KBSBANCNFSM4H4GJOSA.

Make sure the serial debugging posts:

Is this via Arduino>tools>serial monitor ?
or should I be on Arduion_debug program? This program just gets stuck on "Using proxy DIRECT"
Sorry, inexperienced with debugging esp8266 devices.
Also, i only changed the settings you listed, still no user can be added. I did not change the network/wirless settings either, should i change these so my rfid program can connect to my network as opposedto creating its own access point?
I am trying this on a new nodemcu, and rfid scanner (yes i bought two lol)

First you should select the right COM, it depends on what USB you connect your NodeMcu.
I used [Ctrl] + [Shift] + M  to open the Serial Monitor and set baudrate at 9600.
Check the booting messages displayed at the Serial Monitor and check that it recognizes the rfid scanner.
In my case I used RC522, and if the NodeMcu didn't boot with it connected it wouldn't work, I had to reset it to make it work.

[ INFO ] MFRC522 Version: 0xFF (unknown)
Thats what I am getting, should it have my version? could it be a wiring issue maybe, not sure?

I'm closing this for now, please feel free to reopen if you want additional help.


Solution section is internally inconsistent and mismatches the major use-case

In the "Solution" section of this page the Diagram/Image indicates:

Request => 202 Accepted (with location header set to status URL)
Status Query (in progress) => 200 OK      <== this is what is most obviously wrong
Status Query (completed) => 302 Found (with redirect to completed resource)

Meanwhile the Text underneath indicates:

Request => 202 Accepted (with location header set to status URL)
Status Query (in progress) => 202 Accepted
Status Query (completed) => 302 Found (with redirect to completed resource)

The Logic Apps HTTP shape (with default 'Asynchronous Pattern' = true setting) expects:

Request => 202 Accepted (with location header set to status URL)
Status Query (in progress) => 202 Accepted (with location header set to status URL)
Status Query (completed) => 200 OK (no redirect) (Errors if given a 302)

Further down the example code implements:

Request => 202 Accepted (with location header set to status URL)
Status Query (in progress) => 202 Accepted (with location header set to status URL)
Status Query (completed) => 200 OK (no redirect) OR 302 Found (with redirect to completed resource) - depending.

So what exactly IS the official pattern?

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

ID: 6fea460c-4fac-723f-8df4-9d0811855a68
Version Independent ID: 4be364ca-aee7-7b49-13e1-3a94408ed7b9
Content: Asynchronous Request-Reply Pattern - Azure Architecture Center
Content Source: docs/patterns/async-request-reply.yml
Service: architecture-center
Sub-service: design-pattern
GitHub Login: @EdPrice-MSFT
Microsoft Alias: edprice

Hi @endintiers , thanks for bringing this to our attention. I have assigned the issue to the content author to evaluate and update as appropriate

#please-close


ol.Feature.setGeometryName

I have  a Feature which default geometry name is 'geometry',when i used 'drawfeature.setGeometryName('geom')',the values_ still  keep 'geometry'. i think it is  a bug because when i used 'var pFeature=new ol.Feature({...}),pFeature.setGeometryName('geom');pFeature.setGeometry(pgeom)' is right.The values_   has a property which name is 'geom'.
so,i find use setGeometryName can not change the property of geometry in values_ ,but  new a feature can change

ol.interaction.Draw has a geometryName property, which you should set to 'geom'.
The behavior you are seeing is not a bug. setGeometryName on a feature only sets a pointer to the property that holds the main geometry, it does not change property names.


Issue from website page Get signals

From URL: https://www.daskeyboard.io/api-ressources/signal/get-signals.md
There is no documentation for using the localhost API. The page says Q Cloud Only but below that has a deprecation notice saying to use the localhost API or Q Applet API.
I have tried calling /api/1.0/signals and /signals and both resources return the following message:
Cannot GET /api/1.0/signals

Hi @rideron89 ,
https://www.daskeyboard.io/api-resources/signal/get-signals/
This route can be used only with the cloud API, which is now deprecated but still works.
To get the signals from the local API I advice you to use this endpoint instead:
https://www.daskeyboard.io/api-resources/signal/get-all-shadow-signals/

Do not hesitate to contact our support if any further help is needed.
Closing.


Field VirtualSize in ImageInfo and ImageDetails was removed from docker api v1.44 and newer

See: https://github.com/moby/moby/pull/45469
This affects machines running docker 25.0 and newer.
The structs ImageInfo and ImageDetails should add #[serde(alias = "Size")] to its fields virtual_size or rename it.

See #331


Seems to be losing connection

I was testing out the new changes after project structure change, i was running local on SQL Server, commented the code in Host, Programs.cs to not create docker.
//builder.AddContainer("grafana", "grafana/grafana")
//       .WithBindMount("../../../compose/grafana/config", "/etc/grafana", isReadOnly: true)
//       .WithBindMount("../../../compose/grafana/dashboards", "/var/lib/grafana/dashboards", isReadOnly: true)
//       .WithHttpEndpoint(port: 3000, targetPort: 3000, name: "http");
//builder.AddContainer("prometheus", "prom/prometheus")
//       .WithBindMount("../../../compose/prometheus", "/etc/prometheus", isReadOnly: true)
//       .WithHttpEndpoint(port: 9090, targetPort: 9090);
After about 5 minutes, staying on Tenant Page in Blazor, I navigated to user, and got error, had to log out and back in.

Duplicate of #904


Column datatype optimization

lychee_albums.id: bigint to unsigned smallint (limit of 65'535, high enough I think (: )
lychee_albums.password: varchar(100) to char(60) (Blowfish always outputs a 60 chars hash)
lychee_albums.sysstamp: int to datetime or timestamp (that what they store)
lychee_photos.id: bigint to unsigned mediumint (limit of 16'777'215), see comment after
lychee_photos.album: varchar(30) to unsigned smallint to match lychee_albums.id
lychee_photos.checksum: varchar(100) to char(40) (sha1_file outputs 40 hexadecimal char hashes)
lychee_photos.takestamp: int to datetime or timestamp
lychee_photos.size: varchar(30) to char(10)
lychee_photos.thumbUrl: varchar(50) to char(37) (all filenames will be 36 or 37 chars long)

by @qligier from #513

lychee_settings.key: varchar(50) to varchar(20)
lychee_settings.value: varchar(200) to varchar(60)
lychee_log.id: int to unsigned mediumint
lychee_log.time: int to datetime or timestamp
lychee_log.type: varchar(11) to char(6)
lychee_log.line: int to unsigned smallint

by @qligier from #513

Agree to all of them. They could be updated using a database-update-script. One question:
lychee_albums.id and lychee_photos.id store similar values since the last version of Lychee. Shouldn't they have the same  datatype?

lychee_log => Yes
lychee_settings => No. The fields are bigger because the content is dynamic. It might contain another setting (one day) which uses the full field length.

lychee_albums.id and lychee_photos.id store similar values since the last version of Lychee. Shouldn't they have the same datatype?

Why should they? We expect to have much more photos than albums, the datatype must be chosen accordingly.

lychee_settings => No.

Okay. That was more for the design, I don't expect any change of the performances for this; that's why I labelled them as non-important.

Why should they? We expect to have much more photos than albums, the datatype must be chosen accordingly.

They are both using the micro-timestamp as the ID. The length doesn't depend on the amount of albums/photos.

True, I was watching the older version database. My response also applies to album IDs.

This issue will be closed because I'm not actively working on Lychee anymore. The repository of Lychee will stay available, but the main development continues under the Lychee Organisation. A fork maintained by the community. Important issues have been migrated. Feel free to re-add your issue(s) when necessary.


Dependence on neuralprophet.df_utils

Problem
Currently, the test-of-time framework frequently uses the neuralprophet.df_utils. Thereby, it is dependent on the neuralprophet.df_utils. That means, in case the a used neuralprophet.df_uitils methods changes, test-of-time has to be adapted as well. Or worse, becomes not aware of a change.
Proposal
Rebuild the functionalities of the relevant neuralprophet.df_utils , e.g. the neuralprophet.df_utils.prep_or_copy_df in the test-of-time framework.

Problem Currently, the test-of-time framework frequently uses the neuralprophet.df_utils. Thereby, it is dependent on the neuralprophet.df_utils. That means, in case the a used neuralprophet.df_uitils methods changes, test-of-time has to be adapted as well. Or worse, becomes not aware of a change.
Proposal Rebuild the functionalities of the relevant neuralprophet.df_utils , e.g. the neuralprophet.df_utils.prep_or_copy_df in the test-of-time framework.

One more example is the neuralprophet.df_utils.split_df. This one should be rewritten without giving n_lags as input.

closed by PR #35


Remove deadlink for Java book.

Does not look dead to me.

If you click through to the next set of url's contained within the index they all sql fetching error's.  I tried finding an alternate source however I was unable to do so.


Falco supported events

What to document
After discussing with @Andreagit97 about recent changes and minor breaking changes (eg,e.g.-Awill not be applied anymore when reading from.scap` files), we decided to create a table, so it was clear what will be the expected outcome for Falco 0.33.0.
Ref falcosecurity/falco#2201
The documentation (and maybe other places like the help usage of the command line) may need to be updated accordingly.
/milestone 0.33.0
cc @falcosecurity/falco-maintainers @falcosecurity/libs-maintainers
Falco supported events

Category
evt.type
Default (without -A)
With -A
.scap file

EC_PLUGIN
plugin
Yes
Yes
Yes

EC_SYSCALL
various
Only syscalls in simple_set
All
All, including EF_OLD_VERSION

EC_TRACEPOINT
procexit, switch, signaldeliver, page_fault
procexit
All
All, including EF_OLD_VERSION

EC_INTERNAL
container, useradded, userdeleted, groupadded, groupdeleted and other internal events
Only container, useradded, userdeleted, groupadded, groupdeleted
All
All, including EF_OLD_VERSION

Notes:

EF_OLD_VERSION are never generated when live mode, but they may be present in .scap files
Since the new Falco version won't apply any userspace pre-filtering, -A is implicit when reading from .scap
EC_PLUGIN is not yet present in libs, but our plan is to insert it soon

Hey @Andreagit97 @jasondellaluce
I've lost track of this. Any progress?

This still has to be documented

Is it possible to obtain this information automatically from the falco binary or any other single source of truth (like a file in the falco repo)?
Instead of updating the website whenever this changes, we should import the information automatically.

Is it possible to obtain this information automatically from the falco binary or any other single source of truth (like a file in the falco repo)?

I don't think it's possible now, but perhaps we can do something using our libs? cc @FedeDP @Andreagit97

Instead of updating the website whenever this changes, we should import the information automatically.
:+1:

let's say we still need to work on the code side (we have to add a new flag about internal events and discuss which events Falco should receive) so let's say I will keep the issue opened just to remember us to document it but before doing that we need to complete the feature with all the details in this way we can avoid to change the doc the next month :laughing:
And yes @vjjmiras the unique source of truth will be in libs repo, in the source code, not exposed by a binary, but we can talk about that when the feature will be complete, so probably next Falco release :)

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

/remove-lifecycle stale

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

/remove-lifecycle stale


More informative error messages

There are lots of cases out there of users confused by cases of Capistrano apparently failing to find a version of Ruby that was installed with rbenv. In such cases we see output like this:
$ bundle exec cap staging deploy
00:00 rbenv:validate
      WARN  rbenv: 3.1.2 is not installed or not found in $HOME/.rbenv/versions/3.1.2 on <IP_ADDRESS>

I was recently baffled by a case like this, because I knew for sure that this version of Ruby was installed in the specified location, and I hadn't changed anything.
It turned out that the underlying problem was simply that Capistrano was unable to log into the server, because the relevant user's password had expired and needed to be changed.
I would have been saved a lot of head scratching if the output from the rbenv:validate command had reflected this problem rather than seeming to imply that it had connected to the server in question but found Ruby absent at the specified path.

Great point! Thanks for bringing this up.
I think the underlying issue here is that rbenv:validate uses the test method, which simply returns true or false depending on whether the command succeeds, without printing any output. So when a command fails for unexpected reasons, like:

because the relevant user's password had expired and needed to be changed

then the user gets an unhelpful error message.
Source code of test method: https://github.com/capistrano/sshkit/blob/de8f33e4df6be1878b4143d61660c98e97a0d791/lib/sshkit/backends/abstract.rb#L59-L62
A simple solution might be to override the verbosity option used by test so that at least the underlying output from the command can be seen.
--- lib/capistrano/tasks/rbenv.rake
+++ lib/capistrano/tasks/rbenv.rake
@@ -7,7 +7,7 @@ namespace :rbenv do
       end

       # don't check the rbenv_ruby_dir if :rbenv_ruby is not set (it will always fail)
-      unless rbenv_ruby.nil? || (test "[ -d #{fetch(:rbenv_ruby_dir)} ]")
+      unless rbenv_ruby.nil? || (test("[ -d #{fetch(:rbenv_ruby_dir)} ]", verbosity: Logger::INFO))
         warn "rbenv: #{rbenv_ruby} is not installed or not found in #{fetch(:rbenv_ruby_dir)} on #{host}"
         exit 1
       end

That said, I don't actually use this gem, so I don't feel comfortable making this change without being able to test it.
I'll put a help wanted label on this issue for now.


NIFI-12669 Fix EvaluateXQuery processor to encode result attr correctly on Windows

Summary
NIFI-12669
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[X] Apache NiFi Jira issue created

Pull Request Tracking

[X] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-12669
[X] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-12669

Pull Request Formatting

[X] Pull Request based on current revision of the main branch
[X] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[X] Build completed using mvn clean install -P contrib-check

[X] JDK 21

UI Contributions
No UI Changes
Licensing
No new dependencies
Documentation
No documentation changes required

+1 LGTM, thanks for the fix! Merging to main and support/nifi-1.x


⚠ Itaca Gallery has degraded performance

In 6bd71c1, Itaca Gallery ($SITE_TCGLR) experienced degraded performance:

HTTP code: 200
Response time: 5118 ms

Resolved: Itaca Gallery performance has improved in 3f7dbf9 after 6 minutes.


Implementing addition of custom headers for login process

This is required when piping the LoginAsync call through Azure API Management services. API Management requires a Subscription key to be sent with every request. This is just one example of a use of custom headers with this SDK.

Hi @salmangadit, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (mogadit). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

Thanks for the PR Salman.  This is going to sit in our queue for a while as we discuss the appropriate methodology to implement this.   As a discussion point, I think making the HttpClient used for auth public and implementing a DelegatingHandler() is probably a better way to go.

Thanks @adrianhall, I agree that would give developers more options to modify the requests as required with ease :) Thanks again!

Also, see issue #197

Hi @salmangadit - we are going to do the exposing of the MobileServiceHttpClient instead of this, so I am closing this PR.  I appreciate the submission!


BEIT：How to fix the parameters of the pre-trained model for fine-tuning

When the model is fine-tuned, I want to fix its parameters and only update the parameters of the classifier. How should i set ？

This is a general pytorch question. Please refer to the pytorch document https://pytorch.org/docs/stable/generated/torch.no_grad.html


Support modifiers

Fixes #84, at least the special case of modifiers with exactly 1 output.
cc @mrmonday

I confirmed that libpnet cargo build succeeds using this commit and made a PR https://github.com/libpnet/libpnet/pull/211.

@homu r+

:( no homu here


Alt/Option on macOS don't act as meta, but insert special characters

Which operating system does the issue occur on? macOS 10.13.6 (17G65)
If on linux, are you using X11 or Wayland? N/A
In iTerm2 there's an option to turn off the default macOS behavior of Option, where for example Option-b inserts ∫, instead of acting as "move one word back" as it would in a regular UNIX/Emacs setting. There is however the option to turn the Emacs behavior back on, as shown here (bottom right)

Is there any such thing possible in Alacritty?

Yes, looks like it's the same issue. Thanks! I'll close this one.


GUI

Outsourced for now until there is something usable. See README.md

Merge tauri gui back into main repo. Far from done, but actually useable. Closed.


Improve text

Tracking issue for improved text rendering

[x] Wrapping text mid-word (https://github.com/emilk/egui/issues/55)
[x] Emoji
[x] More fonts than those in TextStyle (https://github.com/emilk/egui/pull/1154)
[ ] Right-to-left scripts
[ ] "All" of Unicode

A few links (thanks @parasyte):

https://raphlinus.github.io/rust/skribo/text/2019/02/27/text-layout-kickoff.html
https://yeslogic.com/blog/allsorts-rust-font-shaping-engine.html
https://kas-gui.github.io/blog/why-kas-text.html

I think storing the text has a signed distance field instead of a simple white on black bitmap should also be considered. (scales better and uses less memory)
https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
It also allows for all sorts of effects (outline, shadows...)

I think storing the text has a signed distance field instead of a simple white on black bitmap should also be considered. (scales better and uses less memory)
https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
It also allows for all sorts of effects (outline, shadows...)

@msklywenn SDF text has some benefits, like being able to scale text, but come with the downside that the Egui fragment shader will no longer be a simple texture sampler. Currently the same shader supports showing text as well as images. If we switch to a distance field font we would need a more complicated shader taking in both a distance field texture and a normal texture to conveniently support both use cases (or have two shaders and switch between them which comes with its own downsides). I'd like to keep Egui integration as simple as possible for now.
I would also dispute that SDF fonts use less memory - that is only really true for when one want to write really large characters (which Egui doesn't really need). For small characters SDF:s actually tend to use more texels (margin for the blurry "glow").

@msklywenn SDF text has some benefits, like being able to scale text, but come with the downside that the Egui fragment shader will no longer be a simple texture sampler. Currently the same shader supports showing text as well as images. If we switch to a distance field font we would need a more complicated shader taking in both a distance field texture and a normal texture to conveniently support both use cases (or have two shaders and switch between them which comes with its own downsides). I'd like to keep Egui integration as simple as possible for now.
I would also dispute that SDF fonts use less memory - that is only really true for when one want to write really large characters (which Egui doesn't really need). For small characters SDF:s actually tend to use more texels (margin for the blurry "glow").

Basic SDF rendering only needs alpha testing. To have one shader compatible with bitmap and SDF rendering, a solution would be to have an offset be sent to the shader and applied before discarding. With an offset of 0, discarding would never happen and bitmap display would occur just like it does now. With a -0.5 offset, negative alpha values would be discarded. That offset could then also be negated and added so that the pixels that pass don't look alpha translucent.
In my experience, SDF looks better even at low resolution as it can be thought of a cheap antialiasing. Also, the scaling of SDF resolves the problem of hi-DPI screens, it is not just to render big texts.

Basic SDF rendering only needs alpha testing. To have one shader compatible with bitmap and SDF rendering, a solution would be to have an offset be sent to the shader and applied before discarding. With an offset of 0, discarding would never happen and bitmap display would occur just like it does now. With a -0.5 offset, negative alpha values would be discarded. That offset could then also be negated and added so that the pixels that pass don't look alpha translucent.
In my experience, SDF looks better even at low resolution as it can be thought of a cheap antialiasing. Also, the scaling of SDF resolves the problem of hi-DPI screens, it is not just to render big texts.

On low-DPI screens alpha-tested text will look horrible, but I take your point of having a single texture sampler and the programmatically controlling whether to treat it as an SDF or as a color image. Still, there is a lot of complexity here:

Quickly generating SDF:s from TTF:s
Adding new vertex attributes to switch shader mode
More complicated shader

The major benefit would include being able to have dynamic text size instead of picking from a small set of sizes. Is there an urgent need for this? Otherwise I don't see SDF text as being a high priority. If you feel differently please open a separate issue on it and we can continue the discussion there!

On low-DPI screens alpha-tested text will look horrible, but I take your point of having a single texture sampler and the programmatically controlling whether to treat it as an SDF or as a color image. Still, there is a lot of complexity here:

Quickly generating SDF:s from TTF:s
Adding new vertex attributes to switch shader mode
More complicated shader

The major benefit would include being able to have dynamic text size instead of picking from a small set of sizes. Is there an urgent need for this? Otherwise I don't see SDF text as being a high priority. If you feel differently please open a separate issue on it and we can continue the discussion there!

There's no urgent need. I just thought it would fit nicely into that todo list up there :)

There's no urgent need. I just thought it would fit nicely into that todo list up there :)

The major benefit would include being able to have dynamic text size instead of picking from a small set of sizes.

Meanwhile, there could be a way to specify a specific font and size in text widgets instead of limiting it to TextStyles. Perhaps adding a TextStyle::Custom(String) variant where String could be something like "noto-sans-14", add that to the family_and_size map and use that custom style in text widgets.

The major benefit would include being able to have dynamic text size instead of picking from a small set of sizes.

Meanwhile, there could be a way to specify a specific font and size in text widgets instead of limiting it to TextStyles. Perhaps adding a TextStyle::Custom(String) variant where String could be something like "noto-sans-14", add that to the family_and_size map and use that custom style in text widgets.

Platform
GPU. Intel hd graphics 620 Mesa 20.3.4
OS. Fedora 33
egui-platform. egui_wgpu_backend 0.4
I override font by under code but japanese text is blank.
I checked font and rusttype but there is no problem.
Is there any platform dependent problem in text rendering?
    let mut font_def=FontDefinitions::default();
    let mut font_data:BTreeMap<String,Cow<'static,[u8]>> =BTreeMap::new();
    let mut fonts_for_family:BTreeMap<FontFamily, Vec<String>>=BTreeMap::new();

    font_data.insert("NotoSans".to_owned(), Cow::Borrowed(include_bytes!("../NotoSans-Light.ttf")));
    font_data.insert("NotoSansCJKjp".to_owned(), Cow::Borrowed(include_bytes!("../NotoSansCJKjp-Light.otf")));
    font_def.font_data=font_data;

    //font_def.family_and_size.insert(TextStyle::Body,(FontFamily::Proportional,24.0));
fonts_for_family.insert(FontFamily::Monospace,vec![
        "NotoSans".to_owned(),
        "NotoSansCJKjp".to_owned(),
           ]);
fonts_for_family.insert(FontFamily::Proportional,vec![
        "NotoSans".to_owned(),
        "NotoSansCJKjp".to_owned(),
    ]);
    font_def.fonts_for_family=fonts_for_family;

I squashed 40000+ chars to 3000+ chars NotoSansCJKjp-Light and expand texture atlas to 0x4000 by 0x4000 from original 2048 by 64 but all japanese texts are tofu (white block) and  hit some limits in GPU(MAX_TEXTURE_SIZE)
we may need to introduce 3d texture to texture atlas

rusttype image sample use layout and i tried generate glyph atlas for some short japanese text in my code below
"日本語" by notoSansCJKjp-Light.otf font
glyph.pixel_bounding_box() returns None
    pub fn add_new_glyph_to_atlas(&mut self,c:GlyphId){
        let glyph=self.font.glyph(c).scaled(Scale::uniform(self.scale as f32));
        let glyph =glyph.positioned(Point{ x: 0.0, y: 0.0 });
        match glyph.pixel_bounding_box(){
            None => {
                // no glyph
              println!("no glyph for GlyphId {}",c.0)
            }
            Some(bb) => {
                //if texture size over allocate new line
                println!("origin.x {} max.x {}",self.texture.origin[0],bb.max.x);
                if (self.texture.origin[0]+ bb.max.x as usize )>self.texture.dimension[0] {
                    //add line
                    self.texture.origin[1]+=self.scale as usize;
                    //extend texture height
                    self.texture.dimension[1]+=self.scale as usize;
                    //allocate new line
                    self.texture.data.extend_from_slice(&vec![0;self.texture.dimension[0]*self.scale as usize]);
                    // origin.x to 0
                    self.texture.origin[0]=0;
                    println!("alloc new line")
                }else {
                    self.texture.origin[0]+=bb.max.x as usize;
                }
                    glyph.draw(|x, y, v| {
                        //write data to texture
                        self.texture.data[
                            (self.texture.origin[1] + y as usize) * self.texture.dimension[0] +(self.texture.origin[0] + x as usize)
                                ] = (v * 255.0) as u8;
                    });
                //write where the top left
                self.font_cache.insert(c,Rect{ position: [self.texture.origin[0],self.texture.origin[1]], size: [self.scale as usize,self.scale as usize] });
                //
                }

        }
    }

I found darty workable font caching for japanese  but NotoSansCJKjp-Light.otf is not workable with rusttype
use std::collections::HashMap;
use rusttype::{Scale, Point, GlyphId, point, PositionedGlyph};
use image::ImageFormat;
use std::sync::Arc;

pub struct Texture{
    dimension:[usize;2],
    data:Vec<u8>,
    origin:[usize;2],
}

pub struct Font{
    font_cache:FontCache,
    scale:i32,
    texture:Texture,
    glyph_per_line:i32,
    font:Arc<rusttype::Font<'static>>,
    name:&'static str
}
impl Font{

   pub fn new_from_bytes(data: &'static[u8],name:&'static str,gpl:i32,scale:i32) ->Self{
        let font=rusttype::Font::try_from_bytes(data).expect("Invalid font data");
        println!(" glyphs {}", font.glyph_count());
       // left one pixel margin for avoid debris
       let one_line=( scale+1)*gpl;
       Self{ font_cache: Default::default(), scale, texture: Texture { dimension: [one_line as usize,1+scale as usize], data:vec![0;(one_line*(scale+1))as usize], origin: [0,0] }, glyph_per_line: gpl, font:Arc::new(font), name }
    }

    pub fn add_new_glyph_to_atlas(&mut self,c:char){
       // is font_cache contains glyph for c?
      // then skip rasterize
        if self.font_cache.contains_key(&c){
            return
        }
        let tmp_str=c.to_string();

        let fc=self.font.clone();
        let glyphs=fc.layout(&tmp_str,Scale::uniform(self.scale as f32),point(0.0,0.0));
        for glyph in glyphs{
            if let Some(bounding_box)=glyph.pixel_bounding_box(){
                //if texture size over allocate new line
                if (self.texture.origin[0]+1+self.scale as usize )>self.texture.dimension[0]  {
                    //add line
                    self.texture.origin[1]+=1+self.scale as usize;
                    //extend texture height
                    self.texture.dimension[1]+=1+self.scale as usize;
                    //allocate new line
                    self.texture.data.extend_from_slice(&vec![0;self.texture.dimension[0]*(2+self.scale as usize)]);
                    // origin.x to 1
                    self.texture.origin[0]=1;
                    println!("alloc new line")
                }else {
                    self.texture.origin[0]=self.texture.origin[0] +1+ self.scale as usize;
                }
                glyph.draw(|x, y, v| {
                    //write data to texture
                    println!("Debug {}",self.texture.origin[1] );
                    let address=(self.texture.origin[1] + y as usize) * self.texture.dimension[0] +(self.texture.origin[0] + x as usize);
                    if address<self.texture.data.len() {
                        self.texture.data[address] = (v * 255.0) as u8;
                    }
                });
                //write where the top left
                self.font_cache.insert(c,Rect{ position: [self.texture.origin[0],self.texture.origin[1]], size: [self.scale as usize,self.scale as usize] });
            }else{
                println!("No glyph for {}",c)
            }
        }

    }
}

#[derive(Copy, Clone,Eq, PartialEq,Ord, PartialOrd)]
pub struct Rect{
    position:[usize;2],
    size:[usize;2],
}
pub type FontCache=HashMap<char,Rect>;
#[test]
fn text_rusttype_texture_atlas(){
    let test_text="日本語でレンダリング!";
    let mut font =Font::new_from_bytes(include_bytes!("../WenQuanYiMicroHei.ttf"), "WenQuanyiMicroHei", 10,32);
    for ch in test_text.chars(){
        font.add_new_glyph_to_atlas(ch)
    }
    let img =image::GrayImage::from_raw(font.texture.dimension[0] as u32,font.texture.dimension[1] as u32,font.texture.data).expect("Failed to create image");
        img.save_with_format("WenQuanYiMicroHei-32.bmp",ImageFormat::Bmp);
}

I tested WenQuanYiMicroHei with unmodded epaint works fine so i recommend WenQuanYiMicroHei font include

I'll link swash, though tests are still a WIP.

You probably also want to look into font hinting, it nudges the edges of the vectors to make text look more crisp on older screens. It used to be standard, for newer higher resolution screens it's not so important. I just wish that the old screens wouldn't be left behind :older_adult: :shinto_shrine:

I think swash supports that as well, but I'm not entirely sure.

pop-os is doing some stuff which might of interest to this issue. https://github.com/pop-os/cosmic-text

I can't use this for my purpose without right-to-left character support. Is there a workout I can use until this is added?

Maybe this should be included as part of your category "All" of Unicode.
Is there currently a way to use font icons, such as Material Symbols and iconfont? If possible, it will be very convenient to use some simple plain icons.
Reasons to use font icon instead of image: When I use png or svg as the icon, there will be obvious distortion (such as jagged or missing elements) when the size is small.


Picovoice Console Issue:

How can I add my word to your dictionary.Would I like to add the word "Астра" to use further in my voice assistant?

For Porcupine and Rhino it is not currently possible to add a word directly. A workaround can be to use a homophone that is in our dictionary or use a couple of existing words to approximate the sounds. E.g) Picovoice -> peek oh voice


BUG: maintain dtype of SphericalVoronoi regions

Reference issue
Closes #13412
What does this implement/fix?

The sort_vertices_of_regions method calls numpy.ndarray.tolist which converts the region types to built-in Python types. This produces a crash on Windows machines when sort_vertices_of_regions is called again.
Here I have replaced the .tolist() call with list(), which maintains the dtype
@tylerjereddy

Thanks @pmla and @mueslo (if you want to confirm this fixed the Windows machine crash that's great too).

Thanks @pmla and @mueslo (if you want to confirm this fixed the Windows machine crash that's great too).