.minetest/mods/drops/init.lua:96: attempt to index field 'settings' (a nil value)

I just downloaded this mod and put it in .minetest/mods/drops
I get this error when running the server:
/../.minetest/mods/drops/init.lua:96: attempt to index field 'settings' (a nil value)

Removing the three last lines (seems to just logging) remove the error, but the mod has no effect (not seeing items before loot)


[FEATURE] Option for Grave robbing at specific decay level

Is your feature request related to a problem? Please describe.
No.
Describe the feature you would like to see.
Option to have graves be safe from robbers until they reach a specific decay level. For e.g. safe until it becomes a forgotten grave.
Describe any alternatives you've considered.
Not really, since this option would allow for robbing graves, but only after a set amount of time.
Additional context
No. Cool mod.

I like this idea. I'm not sure when I'll get around to implementing it but I definitely will at some point!

I'm closing this as it has been added in 3.2.0 (which has been released for 1.19.2 so far, the later versions will likely come later this week).


record the screen while testing

add two apis

startRecordingScreen
stopRecordingScreen

in my local environment, there is no issue as like ci error
/home/travis/build/appium/appium-android-driver/test/functional/commands/recordscreen-e2e-specs.js
4:24  error  Unable to resolve path to module 'sample-apps'  import/no-unresolved
I am not sure why it happens..

imurchie,
I can't check the period and test result in your test debugging message, and I can't check adb returns message.
Please check user level test case and the debugging message.
and check the transpiled code of the getPerformanceData API.

Then I will change the code like the function of "getPerformanceData", But it can cause the problem in user level usage.
So, I will add the current code as comment in the file. Is it ok?
If you agreed with this, I will change the code.

I changed the looping code from while~sleep statement to retryInterval statement.
please review the changed code.

@imurchie @heeseon screenrecord is no longer supported on android 7+

@vrunoa I can't find that android 7+ does not support the 'adb shell screenrecord' command. can you show me the document for it?

@heeseon sorry I cant find any documentation but it's not working for any android 7+ emulator with the latest tools.

@imurchie CI failed because of the Error: Android screen recording does not work on emulators.

@heeseon you try it running ./node_modules/.bin/gulp transpile && ./node_modules/.bin/mocha --compilers js:babel-core/register -t 0 test/functional/commands/recordscreen-e2e-specs.js

@vrunoa as your guide, I did it. it passed, but still the e2e-tests are pending.

@imurchie I'd like to finish this.

@imurchie @vrunoa how I complete this?

I still cannot get this to do anything. Does it work locally for you, @heeseon ?

I can get it to work with the following: https://gist.github.com/imurchie/82dff49f5580289e66875fbaa5cf3c73

the difference is using the retryInterval-exception statement. so I changed it.

@imurchie I applied the code as your guide. but the ci test is failed. so I rollback the code.

Please provide a link to the pertinent failed job on Travis. I cannot tell which one it is to have any advice.

Merging since it doesn't break any existing functionality.


NTV stream not working

Hello, I am not an experienced github user so I apologize if I'm not really using this correctly. I saw on iptv-org that I should report any issue with the database here. I've been using the lists over there for a few months now and have noticed that the NTV (Newfoundland TV) stream always just displays color bars.

This repository only stores channel descriptions. If you want to report any problems with the broadcast it is better to do it here: https://github.com/iptv-org/iptv/issues


Release Google.Cloud.VmwareEngine.V1 version 1.6.0

Changes in this release:
New features

Adding autoscaling settings (commit 7384b74)

Created release for Google.Cloud.VmwareEngine.V1-1.6.0


[JBTM-2650] Remove typo from BAControler interface

Please can you raise a WFLY for this one ASAP so we don't lose it (if it doesn't exist)


Force table format and crosstab to excel

Thank you so much for this package, I've been looking for something like this for ages. Some features from Tableau I would like to see:
1 - Force table format, as I very much like it for basic data exploration.
2 - Crosstab to excel, to download the data being shown in the viz to Excel, CSV or something.
Also, reinforcing #11, support for streamlit would very much be appreciated and would increase the potential of this package by a lot.

Those features are supported in the latest version of pygwalker.


fixing bug where reported metrics lagged by one tick interval

Fixes #268
Basically ticked collectors like rates and histograms were reporting metrics off by 1 interval (and dropping the very first interval of data) due to the fact that two operations, ticking the collector and getting the data, were happening in the wrong order.  Those metrics always return data from the last tick period (to always show the last fully collected period), but since the tick was happening after the collection, it was actually returning data from the previous tick interval, not the one that just ended.
Turns out these two operations were implemented in separate methods that didn't actually need to be separate, so now they're merged and in the right order.

Current coverage is 82.71%

Merging #275 into master will increase coverage by +0.10% as of d50d463

@@            master    #275   diff @@
======================================
  Files           54      54
  Stmts         2973    2973
  Branches         0       0
  Methods
======================================
+ Hit           2456    2459     +3
  Partial          0       0
+ Missed         517     514     -3

Review entire Coverage Diff as of d50d463

Powered by Codecov. Updated on successful CI builds.

:+1:

+1


NTR: check if configuratorSet is empty

this has thrown exceptions on staging
i guess this could also happen if supplier has old plugin version and
merchant newer

Coverage increased (+1.2%) to 44.218% when pulling f3a9b0f44a57d92f9e1fd6af80c7da307fa01813 on NTR-fix-configurator-set-empty into 385c90d6a1451822f2098af9f55d8c05f4ef8d19 on master.

Coverage increased (+0.1%) to 43.078% when pulling 0fd31132bfa93f4df3aeff43665a3fa227ba7aed on NTR-fix-configurator-set-empty into 385c90d6a1451822f2098af9f55d8c05f4ef8d19 on master.


Added recursive update method

Added support for recursively merging dict-like stuff into a Dict instance.
old = Dict()
old.foo.a = 1
old.foo.b = 2
old.bar = 42

new = Dict()
new.foo.b = 3
new.foo.c = 'new kid on the block'
new.bar.asd = 42

old.update(new)

print old

… gives:
{'foo': {'a': 1, 'c': 'new kid on the block', 'b': 3}, 'bar': {'asd': 42}}

Coverage decreased (-5.21%) to 94.79% when pulling 4ced423e449251a9a088e610464035fbee5a4ed6 on sbillaudelle:master into 055d7cd853f453cdc5d255c48b5ddbf3030c6c2c on mewwts:master.

Hi @sbillaudelle, thanks for the pull request.
Would you mind writing out some tests for this? Also, what happens when you have dictionaries inside, say, a list? Other methods recursively turns those into addicts as well.

Please make sure the coveralls coverage is back to 100% (should tell you what tests you should be writing :+1:)

Coverage remained the same at 100.0% when pulling 637a6bd4b5e0b8e880bd364788ba23978e871f7f on sbillaudelle:master into 055d7cd853f453cdc5d255c48b5ddbf3030c6c2c on mewwts:master.

Coverage remained the same at 100.0% when pulling 4e001e229dde09b6fe8fbfe9f481531d30e34a65 on sbillaudelle:master into 055d7cd853f453cdc5d255c48b5ddbf3030c6c2c on mewwts:master.

Coverage remained the same at 100.0% when pulling 4e001e229dde09b6fe8fbfe9f481531d30e34a65 on sbillaudelle:master into 055d7cd853f453cdc5d255c48b5ddbf3030c6c2c on mewwts:master.

I implemented a simple and far from complete test case. Just checks the basic functionality.
@mewwts, what do you mean by dictionaries inside a list?

I'm not quite sure why the Travis CI build failed… Does not seem to be an issue with my commits, though.

Thanks @sbillaudelle, it seems like pip install coveralls failed on 3.4.2. I'll have a look over the weekend.

Coverage remained the same at 100.0% when pulling 0a327e0cd063501aed2d094eaa10ab4e076ac2da on sbillaudelle:master into 055d7cd853f453cdc5d255c48b5ddbf3030c6c2c on mewwts:master.

Coverage remained the same at 100.0% when pulling 0a327e0cd063501aed2d094eaa10ab4e076ac2da on sbillaudelle:master into 055d7cd853f453cdc5d255c48b5ddbf3030c6c2c on mewwts:master.

Hi @sbillaudelle! The copy function was neet :+1:
Is this PR behaviour consistent with #25 or do they differ?

Also, if it is consistent with #25, should it be named extend instead?
Also to answer a previous question.
What happens in this case:
>>> old = Dict()
>>> old.a = 2

>>> new = Dict()
>>> new.b = {'a': 2} # regular dict

>>> old.update(new)
>>> old
{'a': 2, b: {'a': 2}}

At this point I think doing old.b.a will result in a AttributeError. I think today I'd expect the behaviour to be turning dicts into addicts, but that might change soon as I am thinking heavily about it, see #29. Feel free to post an comment on that issue. I'd love to hear your thoughts :+1:

@mewwts, currently old.b.a will correctly return 2.

Oh, woops! Was a bit fast in constructing that example. I meant
>>> old = Dict()
>>> old.a = 2

>>> new = Dict()
>>> new.b = [{'a': 2}] # regular dict

>>> old.update(new)
>>> old
{'a': 2, b: [{'a': 2}]}

Then a.b[0].a will raise AttributeError. However I saw your comment to #29 and I realize that we can solve this issue.

Yes, you are right about that one, @mewwts! In the end, this will be a design decision.

I agree @sbillaudelle. Just want to make sound and consistent decisions at this point. Please excuse me for needing some time with this PR. This is merely a time where addict might undergo big changes. Appreciate your sound comment over at #29.

This is rebased and merged, don't know why it's not saying so. Thanks for helping out @sbillaudelle, I appreciate it and hope you continue to do so :+1:


Docker images, volumes, containers disappeared

Hi
This closed issue comes close, but couldn't resolve my issues, apologies if this is a repeat https://github.com/docker/docker/issues/21718
My data volumes, images and existing containers have all disappeared! The data volumes had all my databases, local cache data, etc.
How do I retrieve/reinstate them?
Any data volume backup strategies to mitigate this? Will using flocker resolve this?
Version and OS history below - this is on Win 8.1
$ docker version
Client:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   4dc5990
 Built:        Wed Apr 13 18:13:28 2016
 OS/Arch:      windows/amd64

 Server:

 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      linux/amd64

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.11.1
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 0
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 4.4.8-boot2docker
Operating System: Boot2Docker 1.11.1 (TCL 7.0); HEAD : 7954f54 - Wed Apr 27 16:36:45 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 995.9 MiB
Name: default
ID: CFBP:WS4S:E6TE:ZPSN:ATG3:5YMI:GPRA:MBOO:OVIJ:KOQK:ZK6N:P5G4
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug mode (client): false
Debug mode (server): true
 File Descriptors: 12
 Goroutines: 29
 System Time: 2016-05-24T14:46:02.365165011Z
 EventsListeners: 0
Username: harpreetsg
Registry: https://index.docker.io/v1/
Labels:
 provider=virtualbox

`

I don't think this is related to https://github.com/docker/docker/issues/21718, that was a device mapper issue.
I see you're running Docker Toolbox / boot2docker; Your images and containers are stored inside the VirtualBox VM. Did you happen to remove/recreate the virtual machine, or create a new one? If you're running docker-machine ls do you see just a single machine configured, or multiple? Also see https://github.com/boot2docker/boot2docker/#persist-data

Thanks for the quick response, really appreciate it -
I usually run 3-4 services - 2 DB containers with 2 mounted data volumes, and 1-2 webapp containers. Sometimes when the system crawls, I do 2 docker-compose downs and then kill VirtualBox instances from Windows Task Manager, before starting Quickstart terminal again
docker-machine ls below, but just opened the VIrtualBox GUI - never noticed this before - there is a 'default' and a 'TESTENV' instance there - the first is a linux and the second a Win7? Not sure if that is related?
About the link - I do not have boot2docker - installed the toolbox, so I have docker-machine. tried docker-machine provision but no effect.
$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://<IP_ADDRESS>:2376           v1.11.1

True, although docker-machine uses boot2docker Linux inside the VM, and I think some parts are still the same (i.e. the way the persistent storage is setup). The Win7 machine is not related to Docker, possibly something you tried in the past?
I'm not really sure what happened in your case. You could try logging into the VM (docker-machine ssh default) and check if the /var/lib/docker directory contains directories for other storage drivers (e.g. if there's an overlay driver there); that could explain your containers/images not being there if you happened to use the overlay driver before

Thanks - the networks I set up are unaffected in my docker-machine, but everything else is invisible - this mirrors the permissions below. Tried changing permissions to 755 for all the folders, but didn't work. Hopefully it is related to folder permissions below, and hope someone can show the way.
docker@default:/mnt/sda1/var/lib/docker$ sudo ls -al
total 36
drwx--x--x    9 root     root          4096 May 24 14:16 .
drwxr-xr-x    4 root     root          4096 May 24 14:16 ..
drwx------    5 root     root          4096 May 24 14:16 aufs
drwx------    2 root     root          4096 May 24 14:16 containers
drwx------    3 root     root          4096 May 24 14:16 image
drwxr-x---    3 root     root          4096 May 24 14:16 network
drwx------    2 root     root          4096 May 24 14:46 tmp
drwx------    2 root     root          4096 May 24 14:16 trust
drwx------    2 root     root          4096 May 24 14:16 volumes

Harpreet@HSG-PC MINGW64 ~
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Harpreet@HSG-PC MINGW64 ~
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

Harpreet@HSG-PC MINGW64 ~
$ docker volume ls
DRIVER              VOLUME NAME

Harpreet@HSG-PC MINGW64 ~
$ docker network ls
NETWORK ID          NAME                DRIVER
fc8dcdcb223a        bridge              bridge
5eed1dfa0d4a        host                host
e022f5816a7e        none                null
afc211e599bb        npml_npmlnet        bridge
4e327cf6fc1b        reactflux_rrnet     bridge

sorry, I don't have other ideas at this point. perhaps @nathanleclaire has some thoughts?

Ok, thanks for looking at it. For anyone who looks at this next, I did a "sudo chmod -R 755 ." in the docker folder to see what's inside. Hope this helps with a debug.
docker@default:/mnt/sda1/var/lib/docker$ sudo ls -al -R
.:
total 36
drwxr-xr-x    9 root     root          4096 May 24 14:16 .
drwxr-xr-x    4 root     root          4096 May 24 14:16 ..
drwxr-xr-x    5 root     root          4096 May 24 14:16 aufs
drwxr-xr-x    2 root     root          4096 May 24 14:16 containers
drwxr-xr-x    3 root     root          4096 May 24 14:16 image
drwxr-xr-x    3 root     root          4096 May 24 14:16 network
drwxr-xr-x    2 root     root          4096 May 24 14:46 tmp
drwxr-xr-x    2 root     root          4096 May 24 14:16 trust
drwxr-xr-x    2 root     root          4096 May 24 14:16 volumes

./aufs:
total 20
drwxr-xr-x    5 root     root          4096 May 24 14:16 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..
drwxr-xr-x    2 root     root          4096 May 24 14:16 diff
drwxr-xr-x    2 root     root          4096 May 24 14:16 layers
drwxr-xr-x    2 root     root          4096 May 24 14:16 mnt

./aufs/diff:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    5 root     root          4096 May 24 14:16 ..

./aufs/layers:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    5 root     root          4096 May 24 14:16 ..

./aufs/mnt:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    5 root     root          4096 May 24 14:16 ..

./containers:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..

./image:
total 12
drwxr-xr-x    3 root     root          4096 May 24 14:16 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..
drwxr-xr-x    5 root     root          4096 May 24 14:16 aufs

./image/aufs:
total 24
drwxr-xr-x    5 root     root          4096 May 24 14:16 .
drwxr-xr-x    3 root     root          4096 May 24 14:16 ..
drwxr-xr-x    2 root     root          4096 May 24 14:16 distribution
drwxr-xr-x    4 root     root          4096 May 24 14:16 imagedb
drwxr-xr-x    2 root     root          4096 May 24 14:16 layerdb
-rwxr-xr-x    1 root     root            19 May 24 14:16 repositories.json

./image/aufs/distribution:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    5 root     root          4096 May 24 14:16 ..

./image/aufs/imagedb:
total 16
drwxr-xr-x    4 root     root          4096 May 24 14:16 .
drwxr-xr-x    5 root     root          4096 May 24 14:16 ..
drwxr-xr-x    3 root     root          4096 May 24 14:16 content
drwxr-xr-x    3 root     root          4096 May 24 14:16 metadata

./image/aufs/imagedb/content:
total 12
drwxr-xr-x    3 root     root          4096 May 24 14:16 .
drwxr-xr-x    4 root     root          4096 May 24 14:16 ..
drwxr-xr-x    2 root     root          4096 May 24 14:16 sha256

./image/aufs/imagedb/content/sha256:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    3 root     root          4096 May 24 14:16 ..

./image/aufs/imagedb/metadata:
total 12
drwxr-xr-x    3 root     root          4096 May 24 14:16 .
drwxr-xr-x    4 root     root          4096 May 24 14:16 ..
drwxr-xr-x    2 root     root          4096 May 24 14:16 sha256

./image/aufs/imagedb/metadata/sha256:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    3 root     root          4096 May 24 14:16 ..

./image/aufs/layerdb:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    5 root     root          4096 May 24 14:16 ..

./network:
total 12
drwxr-xr-x    3 root     root          4096 May 24 14:16 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..
drwxr-xr-x    2 root     root          4096 May 24 16:16 files

./network/files:
total 52
drwxr-xr-x    2 root     root          4096 May 24 16:16 .
drwxr-xr-x    3 root     root          4096 May 24 14:16 ..
srwxr-xr-x    1 root     root             0 May 24 16:04 6b99ddc773f7b10f0617f9a6816768b8d7404fe37afc717a24979fca15d20905.sock
srwxr-xr-x    1 root     root             0 May 24 16:16 9a15adb71f0c00b72d7f232eb79b2d94b0bc6e9f3f37e4d7b6f0a4aebdd9ff29.sock
srwxr-xr-x    1 root     root             0 May 24 14:31 eb50abffd0b8cd3b9cfbb0391c2b248fbbdd2d75c990027b2f8b6da5e101fb72.sock
-rwxr-xr-x    1 root     root         65536 May 24 16:16 local-kv.db

./tmp:
total 62288
drwxr-xr-x    2 root     root          4096 May 24 14:46 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..
-rwxr-xr-x    1 root     root            32 May 24 14:28 GetImageBlob227923459
-rwxr-xr-x    1 root     root          1442 May 24 14:28 GetImageBlob466840454
-rwxr-xr-x    1 root     root      39161720 May 24 14:30 GetImageBlob539803700
-rwxr-xr-x    1 root     root           215 May 24 14:28 GetImageBlob871104301
-rwxr-xr-x    1 root     root      24599606 May 24 14:30 GetImageBlob905365160

./trust:
total 8
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..

./volumes:
total 32
drwxr-xr-x    2 root     root          4096 May 24 14:16 .
drwxr-xr-x    9 root     root          4096 May 24 14:16 ..
-rwxr-xr-x    1 root     root         32768 May 24 16:16 metadata.db

Did you switch storage drivers?  This can re-set the state of your container images.
Since it sounds like you may have been shutting down the VMs in an "unsafe" manner, that could also potentially contribute to data loss, although it seems unlikely.
Flocker is for migrating volumes across hosts IIRC, so I don't know if it will help you here, but backups should always be possible using the usual utilities (mysqldump etc.) and a bit of glue.
If you can't find the files you're after from the root directory of the VM, it's likely the data is just gone.  Generally we recommend that you should aim to be able to do a from-scratch restore of your application (including seeding and migrating the database) with relative ease, specifically to prevent coupling the application's state to one particular machine.

I 'tried' using a --driver flocker option about a week back on a new disposable data container, but the data didn't go then, think it went just yesterday. But the driver command errored, so doubt that could have caused it.
But as the issue cannot be easily reproduced, and no one else has reported similar, I guess you can consider this a one-off case and close the issue. The explanations above have given enough perspectives, will be better prepared if it happens again.
Thanks a ton for your help. Docker is amazing by the way, very liberating.
PS:
Feature suggestion: For non-glue backups,  'docker volume export/import <data_volume>' > tar? Just a thin wrapper around the recommended backup method - this will promote named volumes, i feel definitely a good practice over container backups.

@hgill yes volume export/import or cp command was suggested a while back; it was rejected first, but perhaps we could give it another though (although the official method works indeed)
Let me close this issue then


NR 3.0, Node 16, Pi 3B, 11 IoT devices, using node-red-contrib-tuya-smart-device modules, load consistently over 100%?

NR 3.0, Node 16, Pi 3B, 11 IoT devices, using node-red-contrib-tuya-smart-device modules, load consistently over 100%?  Anyone else seeing something similar?  The Pi is running 64 bit OS 11, BTW.  Just a sanity check question.
Pi is doing no other work, only NR environment, 1 single flow as noted above, 11 IoT switches.  I disable all the IoT control nodes to 1, the 100% loading still occurs still.
Then switched off 64 bit kernel via /boot/config.txt via #ARM_64bit=1.  Still load over 100%.
Memory loading is always around 15 to 16% in all tests.
Disable of the TUYA Smart based flow.  And of course NR loading disappeared.
So then enabled another flow, which happen to be a WiFi scan audit using exec node to use iwlist linux CLI.  Still using the 32 bit kernel.  During wifi active scan, loading can go from 10% to 50% but once the scan is done drops almost to 0 for NR process(es).
So the way I see it, the node-red-contrib-tuya-smart-device modules are load intensive, so asking if anyone else seen similar or comparable behavior?

I've been using two Android servers 24/7, with no problems for at least a year (NR+ MySQL + Apache).
The problem, in my opinion, is not the processing load, which is always acceptable: in a benchmark process 448 / 10s ( zeroTask) messages, but rather the reliability of the WIFI communications.
I use two levels of recovery in case of disconnected devices and UPS for the server and the main devices.
Best regards
m.s.

Thanks for the information.  You suggest an interesting point.  I have not yet, setup a test to watch the WiFi behavior per se.  I did watch my WiFi routers, and did not see any obvious issues, such as frequent disconnects/reconnects.  But to qualify your suggestion, I would of course have to setup deeper level of monitoring.  I will get back to this in due course, at the moment I am working other issues.

As a starting point I use a simple algorithm:

if one or more devices are disconnected, the default is to wait: it can be physiological (e.g. mobile plugs or devices) or accidental (e.g. the passage of a car). One caveat: for mobile devices I randomly increase the request timeouts (dynamic timeout: from 2s to 10 min).
If all WiFi devices are disconnected and if there is electricity on the grid, then an alarm siren sounds. The causes are either the Router breakdown or an attacker uses a jammer: immediate action is required.

Enjoy

Another observation came to mind, to avoid load peaks: in dynamic timeouts I use numbers created randomly at the moment, while in static timeouts I use all different prime numbers: this is to prevent 10+ devices from trying to connect all together, and then there are a few seconds of quiet with then another peak ...

I don't have a UPS, but I am familiar with them, I am still debating such, given if the grid is now, all realistic communication external is down.
I use a different method to sample the traffic, that is randomized and smoothed for sampling of local devices, for my wifi scan/polling.  Also, I have a dedicated Pi device with a rather strong receiver antenna, which I scan with, and upload the results to database and then parse the results.  The interesting thing is, that given the time of year, and ambient temperature (I live in a desert) the scan results change significantly.  Nothing like catching Google scanning the street in real time.
As for my IoT devices, they are isolated, but I now have a better/non-consumer wired router, that will let me setup various VLANs so that is the next be project on the list.  Once I have the VLANs set, monitoring and control will be almost painless and I can identify exceptions with specific ease.


Question: Concatenate list of indexed parallel iterators?

This is admittedly more of a question than a pull request but I thought that it might be easiest to answer this with the code at hand.
I have a situation in which I basically want to concatenate a
Vec<I> where I: IndexedParallelIterator

into a single indexed parallel iterator with the same semantics as if I would .into_iter().flatten() the vector.
I tried to implement this by looking at the existing Chain adapter which however handles a fixed number of inner iterators with possibly heterogeneous types instead of a unknown number of iterators with homogeneous types.
I am currently stuck at trying to collect the producers created by the inner iterators into a vector. This does not seem to work as it seems possible that each invocation of
<I as IndexParallelIterator>::with_producer

will call the given callback with a different producer type.
Leaving aside the overhead, boxing does not seem possible due to Producer not being object safe. I did consider defining a simpler DynProducer trait that would be, but I think this would end with
trait IntoIter<T>: Iterator<Item = T> + DoubleEndedIterator + ExactSizeIterator;
type IntoIter = Box<dyn IntoIter<Self::Item>>;

which feels prohibitively expensive.
I also considered building a producer out of a list of iterators also recording a list of split positions for each one and only turn this into producers and split those when e.g. Producer::into_iter is actually called. But that does seem to imply at least sharing (and hence synchronizing) the original list between tasks if a split happens to saddle the boundary between two of original iterators. Also, I am not sure if this would avoid the issue of different producer types eventually.
Does anybody know whether this is possible at all and if so how?

because any callback style with Vec would still have len() recursion levels,

As presented here, I think there should be no recursion. I am willing to pay collecting into producers into newly allocated vectors though. However, I do not think GAT alone would help with this approach as the lifetime associated with the producer is currently generative, i.e. it is created inside the closure and cannot be named outside to e.g. store this outside of the scope created by the callback as I am trying to do here.
I think this would be possible if the signature were something like
fn with_producer<'iter, CB, R>(&'iter mut self, callback: CB) -> R where CB: FnOnce(Self::Producer<'iter>) -> R;

to connect the producer lifetime with the lifetime of the reference to inner iterator. Making it a mutable reference would allow moving things out of the iterator at the price of having to perform the option dance or resort to MaybeUninit.

Well I'm hoping for a normal closure instead, but yes I suppose you could push to a captured &mut Vec.
I'm going to experiment with this -- first trying to make it a GAT closure, then perhaps &mut self. This is definitely a breaking change in any case, so we're talking about a possible Rayon 2.0 here, but it might be nice!

I do wonder whether there are exist "insidious" implementations as considered above today which do pass completely unrelated producer types as e.g. optimizations. :thinking:

It's also weird that a &mut self method implies it can be called multiple times.

I think this is the same issue as for Drop, i.e. https://github.com/rust-lang/rfcs/issues/998

which also constrains the lifetime of that state, e.g. nothing self-referential.

It would not be possible to move the producer around otherwise, so that appears consistent to me.

It's also weird that a &mut self method implies it can be called multiple times.

I think this is the same issue as for Drop, i.e. rust-lang/rfcs#998

Yeah, sort of, but the compiler forbids explicit calls to Drop::drop altogether, so multiple calls are out of the question.

which also constrains the lifetime of that state, e.g. nothing self-referential.

It would not be possible to move the producer around otherwise, so that appears consistent to me.

I meant with that state in the iterator type, not the producer, but still. A concrete example is:
https://github.com/rayon-rs/rayon/blob/2991c044832f4667ec1489804b626a8084700a70/src/collections/binary_heap.rs#L103-L110

Is the DoubleEndedIterator requirement on Producer::IntoIter essential?

That's for rev() -- see #150 and #224. I think the indirect nature of producers would make conditional constraints fall afoul of rust-lang/rust#20671, even if they weren't used opaquely.

I am also trying to solve this problem. Conceptually it seems like it should be possible to construct an IndexedParallelIterator for a vector of IndexedParallelIterators. Has anyone managed it in another crate? Or is there another way around the problem?
In my specific use case I am trying to zip the elements of range maps (where keys are usize and values are stored in contiguous ranges), while providing None for the elements that are outside a range. I can construct a ParallelIterator using Flatten, but then I can't MultiZip all of those up.

I have quite a naive (to me) implementation that uses Vec::pop and rayon::iter::chain that compiles:
pub struct Concat<I>(Vec<I>);

impl<I: IndexedParallelIterator> ParallelIterator for Concat<I> {
    type Item = I::Item;

    fn drive_unindexed<C>(self, consumer: C) -> C::Result
    where
        C: rayon::iter::plumbing::UnindexedConsumer<Self::Item> {
        rayon::iter::plumbing::bridge(self, consumer)
    }
}

impl<I: IndexedParallelIterator> IndexedParallelIterator for Concat<I> {
    fn len(&self) -> usize {
        self.0.iter().map(IndexedParallelIterator::len).sum()
    }

    fn drive<C: rayon::iter::plumbing::Consumer<Self::Item>>(mut self, consumer: C) -> C::Result {
        use rayon::iter::plumbing::Reducer;

        let len = self.len();
        if let Some(tail) = self.0.pop() {
            let (left, right, reducer) = consumer.split_at(len - tail.len());
            let (a, b) = rayon::join(|| self.drive(left), || tail.drive(right));
            reducer.reduce(a, b)
        } else {
            rayon::iter::empty().drive(consumer)
        }
    }

    fn with_producer<CB: ProducerCallback<Self::Item>>(mut self, callback: CB) -> CB::Output {
        if let Some(tail) = self.0.pop() {
            self.chain(tail).with_producer(callback)
        } else {
            rayon::iter::empty().with_producer(callback)
        }
    }
}

It compiles, but you can't use it as it hits the recursion limit while instantiating the big nest of Chains. Any thoughts?

Here's another implementation which compiles and runs, but my tests show that it's dropping some elements (summing a 1000x1000 vector of 1's comes out to 736605 instead of 1_000_000) - so I think my splitting is off by one in at least one place - but maybe this is a workable solution?
pub struct Concat<I>(Vec<I>);

impl<I: IndexedParallelIterator> ParallelIterator for Concat<I> {
    type Item = I::Item;

    fn drive_unindexed<C>(self, consumer: C) -> C::Result
    where
        C: rayon::iter::plumbing::UnindexedConsumer<Self::Item>,
    {
        rayon::iter::plumbing::bridge(self, consumer)
    }
}

impl<I: IndexedParallelIterator> IndexedParallelIterator for Concat<I> {
    fn len(&self) -> usize {
        self.0.iter().map(IndexedParallelIterator::len).sum()
    }

    fn drive<C: rayon::iter::plumbing::Consumer<Self::Item>>(mut self, consumer: C) -> C::Result {
        use rayon::iter::plumbing::Reducer;

        let len = self.len();
        if let Some(tail) = self.0.pop() {
            let (left, right, reducer) = consumer.split_at(len - tail.len());
            let (a, b) = rayon::join(|| self.drive(left), || tail.drive(right));
            reducer.reduce(a, b)
        } else {
            rayon::iter::empty().drive(consumer)
        }
    }

    fn with_producer<CB: ProducerCallback<Self::Item>>(mut self, callback: CB) -> CB::Output {
        return callback.callback(ConcatProducer(vec![], self.0, vec![]));

        struct ConcatProducer<T: IndexedParallelIterator>(Vec<T::Item>, Vec<T>, Vec<T::Item>);

        impl<T: IndexedParallelIterator> Default for ConcatProducer<T> {
            fn default() -> Self {
                Self(vec![], vec![], vec![])
            }
        }

        impl<T: IndexedParallelIterator> rayon::iter::plumbing::Producer for ConcatProducer<T> {
            type Item = T::Item;

            type IntoIter = std::vec::IntoIter<Self::Item>;

            fn into_iter(self) -> Self::IntoIter {
                let mut vs: Vec<Self::Item> = self.0;
                vs.extend(self.1.into_par_iter().flatten().collect::<Vec<_>>());
                vs.extend(self.2);
                vs.into_iter()
            }

            fn split_at(self, index: usize) -> (Self, Self) {
                let (_, left, right) = self.1.into_iter().fold(
                    (0, ConcatProducer::default(), ConcatProducer::default()),
                    |(mut n, mut left, mut right), vs| {
                        let iter_len = vs.len();
                        if n + iter_len <= index {
                            // we have not yet accumulated enough for the split,
                            // everything goes in left
                            left.1.push(vs);
                        } else if n >= index {
                            // we already meet our split quota, everything goes in right
                            right.1.push(vs);
                        } else {
                            // we have to split this vec
                            let mut vs = vs.into_par_iter().collect::<Vec<_>>();
                            let vs_left = vs.splice(0..=(index - n), std::iter::empty());
                            left.2.extend(vs_left);
                            right.0.extend(vs);
                        }
                        n += iter_len;
                        (n, left, right)
                    },
                );
                (left, right)
            }
        }
    }
}

I realize now that impl is pretty broken, I didn't take into account the lefts and rights. I have another impl which passes tests, but I'm fairly certain it's pretty whack. I'm struggling a bit to understand the relationship between with_producer and drive:
impl<I: IndexedParallelIterator> IndexedParallelIterator for Concat<I> {
    fn len(&self) -> usize {
        self.0.iter().map(IndexedParallelIterator::len).sum()
    }

    fn drive<C: rayon::iter::plumbing::Consumer<Self::Item>>(mut self, consumer: C) -> C::Result {
        use rayon::iter::plumbing::Reducer;
        println!("drive self.len(): {}", self.len());
        let len = self.len();
        if let Some(tail) = self.0.pop() {
            println!("  tail.len: {}", tail.len());
            println!("  len - tail.len: {}", len - tail.len());
            let (left, right, reducer) = consumer.split_at(len - tail.len());
            let (a, b) = rayon::join(|| self.drive(left), || tail.drive(right));
            reducer.reduce(a, b)
        } else {
            rayon::iter::empty().drive(consumer)
        }
    }

    fn with_producer<CB: ProducerCallback<Self::Item>>(mut self, callback: CB) -> CB::Output {
        return callback.callback(ConcatProducer(vec![], self.0, vec![]));

        struct ConcatProducer<T: IndexedParallelIterator>(Vec<T::Item>, Vec<T>, Vec<T::Item>);

        impl<T: IndexedParallelIterator> Default for ConcatProducer<T> {
            fn default() -> Self {
                Self(vec![], vec![], vec![])
            }
        }

        impl<T: IndexedParallelIterator> ConcatProducer<T> {
            fn total_len(&self) -> usize {
                self.0.len()
                    + self
                        .1
                        .iter()
                        .map(IndexedParallelIterator::len)
                        .sum::<usize>()
                    + self.2.len()
            }
        }

        impl<T: IndexedParallelIterator> rayon::iter::plumbing::Producer for ConcatProducer<T> {
            type Item = T::Item;

            type IntoIter = std::vec::IntoIter<Self::Item>;

            fn into_iter(self) -> Self::IntoIter {
                let mut vs: Vec<Self::Item> = self.0;
                vs.extend(self.1.into_par_iter().flatten().collect::<Vec<_>>());
                vs.extend(self.2);
                vs.into_iter()
            }

            fn split_at(mut self, index: usize) -> (Self, Self) {
                let mut lines = vec![];
                lines.push(format!(
                    "split_at: index:{} left:{}  center:{},{}  right:{}",
                    index,
                    self.0.len(),
                    self.1.len(),
                    self.1
                        .iter()
                        .map(IndexedParallelIterator::len)
                        .sum::<usize>(),
                    self.2.len()
                ));
                let total_len = self.total_len();
                let mut left = ConcatProducer::<T>::default();
                let taken_from_left = self
                    .0
                    .splice(0..index.min(self.0.len()), std::iter::empty())
                    .collect::<Vec<_>>();
                left.0 = taken_from_left;
                if !left.0.is_empty() {
                    lines.push(format!("  took {} from left", left.0.len()));
                }

                let (mut left, mut right) = std::mem::take(&mut self.1).into_iter().fold(
                    (left, self),
                    |(mut left, mut right), vs| {
                        let left_len = left.total_len();
                        let iter_len = vs.len();
                        if left_len + iter_len < index {
                            lines.push(format!("    {} + {} < {} - going left", left_len, iter_len, index));
                            // we have not yet accumulated enough for the split,
                            // everything goes in left
                            left.1.push(vs);
                        } else if left_len >= index {
                            lines.push(format!("    {} >= {} - going right", left_len, index));
                            // we already meet our split quota, everything goes in right
                            right.1.push(vs);
                        } else {
                            lines.push(format!(
                                "    index:{} splitting with splice 0..{}",
                                index,
                                index - left_len
                            ));
                            // we have to split this vec
                            let mut vs = vs.into_par_iter().collect::<Vec<_>>();
                            let vs_left = vs.splice(0..(index - left_len), std::iter::empty());
                            left.2.extend(vs_left);
                            right.0.extend(vs);
                        }
                        (left, right)
                    },
                );

                let left_len = left.total_len();
                if left_len < index {
                    left.2.extend(right.2.splice(0..(index - left_len), std::iter::empty()));
                }

                std::thread::sleep_ms(10);
                println!("{}", lines.join("\n"));
                assert_eq!(left.total_len(), index, "{} /= {}", left.total_len(), index);
                assert_eq!(
                    left.total_len() + right.total_len(),
                    total_len,
                    "{} + {} /= {}",
                    left.total_len(),
                    right.total_len(),
                    total_len
                );
                (left, right)
            }
        }
    }
}

Doing this would be a lot easier with #513, because we could easily split the iterator that's on the index.


Add offset param

"postsOffset" param allows you to start the download at a number of posts away from the first (the offset param in the Tumblr api). This is helpful if you have a ton of posts to download and want to do them in batch (i.e. 100, offset at 0; 100 offset at 100; 100 offset at 200).
It only uses the offset param the first time the likes are retrieved, then it is removed for the subsequent requests that use the timestamp.
Run it a few times on my blog and it seems to be working.
see also https://github.com/andresdavid90/tumblr-lks-downldr-cli/pull/6

Current coverage is 27.41% (diff: 20.00%)

Merging #7 into master will decrease coverage by 0.65%

@@             master         #7   diff @@
==========================================
  Files             1          1
  Lines            57         62     +5
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits             16         17     +1
- Misses           41         45     +4
  Partials          0          0

Powered by Codecov. Last update b62d18c...77993d8

@derikb Thank you for this! I'll try to review this at night.

@derikb I already merge this but can you please explain how are you testing it?

I used it to download my own likes, which is not the most scientific method, but it did work.

@derikb But you're passing epoch right? Because I thought the first time that it was expecting integers, ie. 100 but it doesn't seem to work. Can you please double check and add that in the docs? Right now it's merged but it's not appearing in our docs. :)

It is expecting an integer where 0 is default.
I just tried a few more times and it worked fine for me, just using a simple test js inside the code directory:
'use strict';
const tumblrLksDownldr = require('../tumblr-lks-downldr');
tumblrLksDownldr.setGlobalParams(
  {
    postsToLoad: 8,
    postsOffset: 2,
    path: 'some/path',
    url: 'some.tumblr.url'
  }
);
tumblrLksDownldr.getLikedPosts();

Tried a few variations of postsToLoad and postsOffset and compared to my page of likes on Tumblr. Got all the expected results.


Ch3: Subtitles react to the player's plays after the true position of the other's card has been revealed

Yeah that'll fix it

This had been fixed by disabling dragging of cards after confirming their value


Preloader feature addition

I wish to add a preloader to the website which improves user experience as they wait for the site to load.
Please assign this issue to me @sethshivam11

@Sypher0Dronzer What type of preloader are you thinking to implement?
Please note: The site https://campus-space.onrender.com takes 50 seconds to load because render has a setup in which if no inbound traffic is there then it will spin off the server and the server will be spun again for new requests.

https://github.com/sethshivam11/campus-space/assets/83546205/0d58a614-d702-4c64-82c9-ade2bc491075
This is the preloader that I have in mind for the website. Its something people would like to watch while they wait. Its catchy and elegant.
I have other alternatives as well such as this
https://github.com/sethshivam11/campus-space/assets/83546205/2a05fddb-ca84-41f6-968a-db28193d58fb

@@Sypher0Dronzer I don't think these loaders will work, because these are much different from the overall theme.

How about a normal rotation preloader

@sethshivam11 don't think there is a need because the page is loading fast, and doesn't require one.


Make MaximumNumberOfResults and MaximumNumberOfEvents configurable

Describe the feature request
Right now only 100 checks and 50 events are stored. If we have frequent checks, for instance with 10s internal, we will store results only for 16 last minutes which is not enough for retrospective analysis. It would be very great to configure the numbers.
Why do you personally want this feature to be implemented?
We would like to store old data. Currently, for this we have to do checks less frequently.
How long have you been using this project?
No response
Additional information
No response

I like this :)

I also ran into this, and decided to work around this limitation manually. Turns out, increasing the hard coded values is relatively easy. For anyone else who runs into this limitation until #476 is merged:
diff --git a/storage/store/common/limits.go b/storage/store/common/limits.go
index 92007220..a5187bb8 100644
--- a/storage/store/common/limits.go
+++ b/storage/store/common/limits.go
@@ -2,8 +2,8 @@ package common

 const (
 	// MaximumNumberOfResults is the maximum number of results that an endpoint can have
-	MaximumNumberOfResults = 100
+	MaximumNumberOfResults = 1000

 	// MaximumNumberOfEvents is the maximum number of events that an endpoint can have
-	MaximumNumberOfEvents = 50
+	MaximumNumberOfEvents = 500
 )
diff --git a/web/app/src/components/EndpointGroup.vue b/web/app/src/components/EndpointGroup.vue
index dbc1fa63..aa801014 100644
--- a/web/app/src/components/EndpointGroup.vue
+++ b/web/app/src/components/EndpointGroup.vue
@@ -18,7 +18,7 @@
       <slot v-for="(endpoint, idx) in endpoints" :key="idx">
         <Endpoint
             :data="endpoint"
-            :maximumNumberOfResults="20"
+            :maximumNumberOfResults="40"
             @showTooltip="showTooltip"
             @toggleShowAverageResponseTime="toggleShowAverageResponseTime" :showAverageResponseTime="showAverageResponseTime"
         />
diff --git a/web/app/src/components/Pagination.vue b/web/app/src/components/Pagination.vue
index 3f909e1f..d88ab31d 100644
--- a/web/app/src/components/Pagination.vue
+++ b/web/app/src/components/Pagination.vue
@@ -1,7 +1,7 @@
 <template>

-      <button v-if="currentPage < 5" @click="nextPage" class="bg-gray-100 hover:bg-gray-200 text-gray-500 border border-gray-200 px-2 rounded font-mono dark:bg-gray-700 dark:text-gray-200 dark:border-gray-500 dark:hover:bg-gray-600"><</button>
+      <button v-if="currentPage < 25" @click="nextPage" class="bg-gray-100 hover:bg-gray-200 text-gray-500 border border-gray-200 px-2 rounded font-mono dark:bg-gray-700 dark:text-gray-200 dark:border-gray-500 dark:hover:bg-gray-600"><</button>

       <button v-if="currentPage > 1" @click="previousPage" class="bg-gray-100 hover:bg-gray-200 text-gray-500 border border-gray-200 px-2 rounded font-mono dark:bg-gray-700 dark:text-gray-200 dark:border-gray-500 dark:hover:bg-gray-600">></button>
diff --git a/web/app/src/views/Details.vue b/web/app/src/views/Details.vue
index 18706475..41894380 100644
--- a/web/app/src/views/Details.vue
+++ b/web/app/src/views/Details.vue
@@ -9,7 +9,7 @@

       <Endpoint
           :data="endpointStatus"
-          :maximumNumberOfResults="20"
+          :maximumNumberOfResults="40"
           @showTooltip="showTooltip"
           @toggleShowAverageResponseTime="toggleShowAverageResponseTime"
           :showAverageResponseTime="showAverageResponseTime"
@@ -112,7 +112,7 @@ export default {
   methods: {
     fetchData() {
       //console.log("[Details][fetchData] Fetching data");
-      fetch(`${this.serverUrl}/api/v1/endpoints/${this.$route.params.key}/statuses?page=${this.currentPage}`, {credentials: 'include'})
+      fetch(`${this.serverUrl}/api/v1/endpoints/${this.$route.params.key}/statuses?page=${this.currentPage}&pageSize=40`, {credentials: 'include'})
       .then(response => {
         if (response.status === 200) {
           response.json().then(data => {
diff --git a/web/app/src/views/Home.vue b/web/app/src/views/Home.vue
index 21b95d55..dfae7957 100644
--- a/web/app/src/views/Home.vue
+++ b/web/app/src/views/Home.vue
@@ -32,7 +32,7 @@ export default {
   emits: ['showTooltip', 'toggleShowAverageResponseTime'],
   methods: {
     fetchData() {
-      fetch(`${SERVER_URL}/api/v1/endpoints/statuses?page=${this.currentPage}`, {credentials: 'include'})
+      fetch(`${SERVER_URL}/api/v1/endpoints/statuses?page=${this.currentPage}&pageSize=40`, {credentials: 'include'})
       .then(response => {
         this.retrievedData = true;
         if (response.status === 200) {

After applying the patch:
cd web/app
npm install
npm run build
cd ..
docker build .


Fix loading models with special characters in the path

This fixes loading models with utf8 characters (ie: ß) in the path.
This comes up a lot as a problem in the Facebook group.

Ignore those extra commits - my fork was just a bit twisted up. If you look at "Files changed" you can see that it is just a one-line change.


/fixes api requires a source offset but it's optional in the discovery protocol and ignored

See: http://stackoverflow.com/questions/41942921/dart-services-api-how-to-access-the-fixes-through-the-api-service

@devoncarew Is this one still an issue? If so, what needs to be done here?

I don't have context here, but if the arg is not used in the dart-services implementation, we should likely remove from the protocol spec.

Attempting to drop the offset argument to the fixes call winds up with a failing test, so I don't think this is actually ignored.
For context, here's the fixes call that is made to the analysis server, which does indeed reference a cursor location.
  /// Return the set of fixes that are available for the errors at a given
  /// offset in a given file.
  Future<FixesResult> getFixes(String file, int offset) {
    final Map m = {'file': file, 'offset': offset};
    return _call('edit.getFixes', m).then(FixesResult.parse);
  }


kwiver test failing

I cannot reproduce this error outside of the tox testing environment:
https://github.com/ResonantGeoData/ResonantGeoData/runs/5993156571?check_suite_focus=true#step:7:60
I added a skip for the failing test in
https://github.com/ResonantGeoData/ResonantGeoData/commit/cd01ca20c99be4e69500d1bc1732b29a92c2214e
The error logs are:
stderr.txt
the most likely culprit is
terminate called after throwing an instance of 'pybind11::error_already_set'
  what():  ImportError: /usr/local/lib/python3.8/lib-dynload/_posixsubprocess.cpython-38-x86_64-linux-gnu.so: undefined symbol: PyTuple_Type

I cannot figure out why this is all of a sudden failing - no obvious packages have recently been upgraded

The ETL routines are still working fine and it's only the test case that is failing so putting this in the icebox


Region of interest

I don't think region of interest is working. No big deal as I am not sure what real use this is.
I had noticed a problem in the command handling of the ri command where it wasn't picking the right parameters but even with that corrected the display just breaks up into noise.

To be honest, I never used this setting, so we could ask in the forum if
everyone uses it and what's the idea behind it.
On 2 May 2015 17:46, "roberttidey"<EMAIL_ADDRESS>wrote:

I don't think region of interest is working. No big deal as I am not sure
what real use this is.
I had noticed a problem in the command handling of the ri command where it
wasn't picking the right parameters but even with that corrected the
display just breaks up into noise.
—
Reply to this email directly or view it on GitHub
https://github.com/silvanmelchior/RPi_Cam_Web_Interface/issues/63.

OK will do

fwiw never used it either, but my limited understanding of it is to simply crop the image to a smaller area you really care about. So for example if you were filming a street and had houses and trees on the sides/edges that you don't care about because you only want the street in the middle, you could set your region of interest to that. This allows you to keep a wide angle lens to capture a longer stretch of the street while isolating the road from the rest of the image. I can definitely see how this could come useful in some scenario, but as I said haven't used it yet myself.

That sounds what it should be used for but it doesn't work at the moment. If I try to set it big so it has no effect (like the 0,0,65536,65536) then then the camera connection errors. If I set it smaller than video height, width the whole display cracks up.
Either way I think it is a low priority item.

agreed on the low priority

I need it to do zooming in on image by the user.  I can crop in the browser but then I'm still using the full bandwidth.  Is it still broken?

I'll check the status of this.

The ROI feature does work but it can be confusing how to set the parameters. It is also worth noting that ROI sets the area of the image sensor used as the source of data into the main GPU. It does not directly control the size or resolution of the processed data (see later)
The ROI area is actually set in fractional terms of the image area multiplied by 65536, not in absolute pixel terms.
so the default values of 0,0,65536,65536 represent a starting top left at 0,0 and a width, height of 1,1 which is no cropping.
If you were to set 16384,16384,32768,32768 then represent would be 0.25,0.25,0.5,0.5 and would crop out a half size image starting at a quarter way across and down the screen.
Note that

the size of the live data stream sent to the browser is being controlled by the preview parameters and not directly by the ROI. If you want to adjust this these parameters

The resolutions of the recordings is still set by the resolution parameters not by the ROI. You can of course adjust these to be appropriate to any ROI you set.

I will add ths to wiki to help others.


Some small changes and bugfixes

Rest looks good.

@FinnStutzenstein I'll merge it already to get your improvements into master today... But please check error message in users list again.


Daniel/dockerfile setup

The motivation behind this is that we are getting a lot of difficult-to-understand dependencies, between the apache spark plugins to interact with google cloud buckets and TFRecords, as well as DSAlign, which is its own mess.
DSAlign isn't 100% there yet. It's complicated by the fact that we have to do an "editable" install within a dockerfile.
@greg1232 @agnusmaximus

Another commit. Much more stable now:
Initial debug of DSAlign.
I've been running
docker run -p <IP_ADDRESS>:8080:8080 -it -v
~/lingvo-copy/:/development/lingvo-source galvasr2:latest /bin/bash
Followed by  ./galvasr2/align/align.sh
Note that I had to download the data with this:
gsutil cp gs://the-peoples-speech-west-europe/archive_org/Nov_6_2020/ALL_CAPTIONED_DATA/Highway_and_Hedges_Outreach_Ministries_Show_-Show_49/Highway_and_Hedges_Outreach_Ministries_Show-_Show_49.mp3
gsutil cp gs://the-peoples-speech-west-europe/archive_org/Nov_6_2020/ALL_CAPTIONED_DATA/Highway_and_Hedges_Outreach_Ministries_Show_-Show_49/Highway_and_Hedges_Outreach_Ministries_Show-_Show_49.asr.srt
Use Max's method of creating per-document language models. Note that
it doesn't work yet due to missing pip dependencies. Working on it.
Delete accidentally committed ~ files.

More summary: https://100k-hours.slack.com/archives/C01FGD1CCRZ/p1606809076013400 (It's corerecursive!)


Fix console to better track progress of notification sending process

Comment out logging JSON.stringify(result) as it will crash the terminal when there are 10000 users to send
Send incremental console.logs so that we can track the processing status

Pull Request Test Coverage Report for Build 1342

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

Totals

Change from base Build 1339:
0.008%

Covered Lines:
948

Relevant Lines:
1074

💛  - Coveralls


Update filterState (from extension)

Just take from extension, for support predicate option on remote-redux-devtools & react-native-debugger.

Thanks for these PRs! It's great to move those parts out from the extension, it's something I was postponing for long time.


use bazel6

this matches what we use internally

Created a patch that fixes mac compilation, but as far as I can see upstream v8 includes a different fix for the issue, so it won't be needed. Let's wait for #437 to be merged and then switch to bazel v6.


SDS loss Questions

Hello, thanks for your great work!
I have one question about SDS loss implementation.
According to the pseudocode presented in Figure 8 of the original paper, the SDS loss involves a dot product of
g = matmul(weight(t) * (epshat t - eps), grad(x, params)).
I want to know where grad(x,params) was implemented on the code that was implemented.
Please let me know if I misunderstood something :)
Thanks.

You should take a look at the asset folder, I have the same question as you before until I found that.

당신은 자산 폴더를 살펴봐야 합니다. 나는 그것을 찾을 때까지 당신과 같은 질문을 가지고 있습니다.

class SpecifyGradient(torch.autograd.Function):
@staticmethod
@custom_fwd
def forward(ctx, input_tensor, gt_grad):
ctx.save_for_backward(gt_grad)
# we return a dummy value 1, which will be scaled by amp's scaler so we get the scale in backward.
return torch.ones([1], device=input_tensor.device, dtype=input_tensor.dtype)
@staticmethod
@custom_bwd
def backward(ctx, grad_scale):
    gt_grad, = ctx.saved_tensors
    gt_grad = gt_grad * grad_scale
    return gt_grad, None

grad = grad_scale * w[:, None, None, None] * (noise_pred - noise)
grad = torch.nan_to_num(grad)
loss = SpecifyGradient.apply(latents, grad)
I checked the above code. In the code above, Specify Gradient.apply(latents, grad) doesn't seem to mean grad(x,params), so I wonder where grad(x, params) is implemented.
If I misunderstood and this part of Specify Gradient.apply(latents, grad) means grad(x,params), please explain.

I think the term grad(x, params) is calculated in the backward process.
You can see pseudocode in the appendix as follows:
or refer to this discussion
params = generator.init()
opt_state = optimizer.init(params)
diffusion_model = diffusion.load_model()
for nstep in iterations:
  t = random.uniform(0., 1.)
  alpha_t, sigma_t = diffusion_model.get_coeffs(t)
  eps = random.normal(img_shape)
  x = generator(params, <other arguments>...) # Get an image observation.
  z_t = alpha_t * x + sigma_t * eps # Diffuse observation.
  epshat_t = diffusion_model.epshat(z_t, y, t) # Score function evaluation.
  g = grad(weight(t) * dot(stopgradient[epshat_t - eps], x), params)
  params, opt_state = optimizer.update(g, opt_state) # Update params with optimizer.
return params

But I don't know why use latents in loss_sds = (latents * grad.detach()).sum()., refer to this link.


cargo install mdbook-footnote --locked fails

Thanks for the library!
Would it be possible to bump Cargo.lock and release a new version? Currently installing with those dependencies fails: https://github.com/PRQL/prql/actions/runs/4503756308/jobs/7927364965?pr=2295

Done.
(By the way, I think you could have worked around this by dropping the --locked option in your CI.)


Failure on Gitea/Forgejo

This Action fails with the following error on Forgejo (and I am guessing on Gitea as well):
Persisted git credentials restored
[command]/usr/bin/git config --global --unset safe.directory /workspace/ketan/nix-config
  ❓  ::endgroup::
::endgroup::
  ❌  Failure - Main Create PR
exitcode '1': failure
expression '${{ steps.create-pr.outputs.pull-request-number }}' rewritten to 'format('{0}', steps.create-pr.outputs.pull-request-number)'
evaluating expression 'format('{0}', steps.create-pr.outputs.pull-request-number)'
expression 'format('{0}', steps.create-pr.outputs.pull-request-number)' evaluated to '%!t(string=)'
  ⚙  ::set-output:: pull-request-number=
expression '${{ steps.create-pr.outputs.pull-request-operation }}' rewritten to 'format('{0}', steps.create-pr.outputs.pull-request-operation)'
evaluating expression 'format('{0}', steps.create-pr.outputs.pull-request-operation)'
expression 'format('{0}', steps.create-pr.outputs.pull-request-operation)' evaluated to '%!t(string=)'
  ⚙  ::set-output:: pull-request-operation=
  ❌  Failure - Main Update flake.lock
exitcode '1': failure

As you can see, it fails in the last step while trying to create a pull request. I think that's because a dependency - peter-evans/create-pull-request@v6 here - is hard coded to use GitHub and doesn't support Gitea/Forgejo. (See this issue on that project.)

I don't really believe that it's really related to this. I've forked this and changed the version to v7 (currently v7.0.5) and I get the following error:
Create or update the pull request
Attempting creation of pull request
::error::Not found.%0A

So far I wasn't able to get enough more information on why this fails. This happens with both the original version and my modified version. I'll try to get more information as I learn how GitHub Actions are created.

I was able to track down the issue!
The issue is upstream at https://github.com/peter-evans/create-pull-request
The action uses the wrong API URL for Forgejo/Gitea:
https://github.com/peter-evans/create-pull-request/blob/16e0059bfd236716f0191bfcfa63d9ded4cf325f/dist/index.js#L1287
The API endpoint is set to /api/v3 but the API endpoint for Forgejo/Gitea is /api/v1 so this results in a 404 and the error I mentioned above.
This issue is already tracked upstream: https://github.com/peter-evans/create-pull-request/issues/3569
If you want to get a working action until this gets fixed upstream and updated here you I have a working workflow file:
https://forgejo.stefka.eu/jiriks74/nix.nvim/src/commit/a0065cc3da604a5c1867356df82b49294bb05f92/.github/workflows/update.yml

[!Note]
Don't forget to modify the file to your liking. It's made for my use so you should probably change some things.


getting couldn't find file 'cocoon' with type 'application/javascript'

I am using cocoon within a gem I am developing.I get this error when I am using the gem in a host application.
Thanks in advance.

So for the record: you are developing a gem, using cocoon, and in the host application using your gem the cocoon gem cannot be found? And somehow you think this is a bug inside cocoon?
My guesses:

Did you correctly declare the dependencies of your gem you are developing?
did you do bundle install?
is cocoon installed?

You will have to investigate your Gemfile (Gemfile.lock) to see if cocoon is installed, add it manually in the host-application or fix your gem dependencies.

My apologies for miscommunication,Thanks for pointing me in the right direction.I have include cocoon gem in the host application and it works, but I need to figure out how to include it in the my Gem.
-R
  From: Nathan Van der Auwera<EMAIL_ADDRESS>
To: nathanvda/cocoon<EMAIL_ADDRESS>Cc: Thirumal Gonguntala<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Sent: Monday, December 18, 2017 11:08 AM
Subject: Re: [nathanvda/cocoon] getting couldn't find file 'cocoon' with type 'application/javascript' (#474)
So for the record: you are developing a gem, using cocoon, and in the host application using your gem the cocoon gem cannot be found?
You will have to investigate your Gemfile (Gemfile.lock) to see if cocoon is installed, add it manually in the host-application or fix your gem dependencies.—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Unless I misunderstood, it looks like you are hitting an issue with authoring your own gem.
If it's not something in cocoon that is broke, that is a question you need to research in a tutorial or on stackoverflow.
Some helpful hints:
... are you following the ruby tutorial for it?  Link
If you are correctly following the tutorial, then this answer (will only work if you gem is setup right) might provide specific directions ... Link

Thank you very much, I got the solution from the links below, and cocoon works like a charm in my gem.I missed putting the require 'cocoon' in the engine.rb file.
-R
  From: Mirv<EMAIL_ADDRESS>
To: nathanvda/cocoon<EMAIL_ADDRESS>Cc: Thirumal Gonguntala<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Sent: Tuesday, December 19, 2017 7:33 AM
Subject: Re: [nathanvda/cocoon] getting couldn't find file 'cocoon' with type 'application/javascript' (#474)
Unless I misunderstood, it looks like you are hitting an issue with authoring your own gem.If it's not something in cocoon that is broke, that is a question you need to research in a tutorial or on stackoverflow.Some helpful hints:... are you following the ruby tutorial for it? LinkIf you are correctly following the tutorial, then this answer (will only work if you gem is setup right) might provide specific directions ... Link—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Error with ExpandedNodeId

Generated exception when ExpandedNoId has server index.

Can you share a Wireshark capture of this case?

Apr 30, 2023

LibUA used as OPC client.
opcua.zip

Sorry, I haven't implemented support for ExpandedNodeId. To add that, you might implement VariantCodingSize, VariantEncode and VariantDecode here and the lines under that:
https://github.com/nauful/LibUA/blob/8462ab98c820c87a82e8b0a1e418eb6365c7fb01/NET Core/LibUA/Encoding.cs#L967
Otherwise I will add this to my research list and implement this type in the future.


#3811 range filter changed error

Description
When the date of the range filter is changed, other dates are also changed.
Related Issue : #3811

How Has This Been Tested?

Create a dashboard by adding a time range filter.
When you change the time range, make sure the other date ranges change.
Check if the filter is applied normally.

Need additional checks?
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have read the CONTRIBUTING document.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.

Additional Context

deploy to 2

deploy to 2


added concurrent save and save for crpd + ceos

@karimra maybe you spot some wildly suboptimal steps in that approach?

@karimra maybe you spot some wildly suboptimal steps in that approach?


Add Swarm multicodecs

Hi,
I'd like to add these two Swarm primitive types that we'd like to be able to reference from ENS resolver contracts.
Please let me know if I should shift the codes around (although obviously lower numbers = less data on chain).
Cheers

So we can correctly categorize these, how are they being used?

@Stebalien These are Swarm notions of base layer primitives that resolve automagically to actual content.
My assumption is that users would want to point to either one of them when setting an ENS resolver contract content hash as discussed in EIP-1577.
So if I understand the question, they will be used by users to point to content.
In general I don't see any need to represent any other Swarm notions inside multicodecs as we define file metadata inside manifests; not as a self defining hash. So in fact the purpose of this PR is to define the standard of how to set content hashes in the revised ENS resolvers.

Also, if I may ask to put us in an address space where we could have a few more subsequent future entries reserved.
Many thanks

Should I revise anything in this PR?

So, are these used to identify the type of content? I'm asking because I think these should be categorized as IPLD codecs: they tell you how to understand the addressed content (which I'm guessing isn't self-describing).

On the original swarm PR, there was a lot of discussion around using CIDs. That is, ENS records would have values of the format <namespace (multicodec)><CID><path?>. For example, <swarm-ns><CID (codec=swarm-manifest)>/path/to/file.

@Stebalien I suspect I'm not 100% following you and I'm not 100% sure how CID/Multicodecs/IPLD come into play altogether in this case.
I guess that the decision whether to classify these as IPLD codecs is up to you (aren't IPLD codecs using multicodecs anyway? why does it even matter if we specify them as one codec or another? I'm afraid I don't really understand the relationships between the different (many) moving parts in the multiformat/ipld specs). The discussions that were made on the topic were not very clear from our side, not to mention that a significant part of them was conducted off-band without any documentation or resolution.
Please advise, and in any case it would be nice to hop on a call and maybe say hello and work this out more quickly as we want to merge the new ENS public resolver changes.

@Stebalien, I had a talk with @zelig and we have concluded that we'd like to add a new multihash code for bmt (as Swarm hashes are actually binary merkle tree hashes, not keccak256 hashes per-se).
You could see how we've added local support for that at the time in Swarm (as of a few months ago we have dropped usage of multiformats, but this will be reintroduced with the changes to the resolver).

Sorry, github notifications tend to fall through the cracks. This looks good to me.
With respect to IPLD: IPLD is really just a (poorly documented...) attempt at unifying all merkle formats into a single system. It does so by using CIDs (content identifiers) which are (multicodec, multihash) tuples (where the multicodec == "ipld codec"). This allows us to point to an object in a merkle dag while recording the type of merkledag we're pointing to.
TL;DR: IPLD is to merkledags as Multihash is to hash functions.


Changes related to AFM COS

cc: @digvijay-ukirde

This Old PR and the latest AFM  changes will be raised in another branch with the latest changes.


[5.2] Filesystem::get with offset and limit

Minor modification based on this Issue: https://github.com/laravel/internals/issues/111

Thanks for the PR, but:

You forgot to update the phpdoc
This should probably go to 5.3

Ok, I'll updated it and think I'll just push it to 5.3.
Should I just close this PR then?

Closed PR. It was missing some alterations and in the wrong branch.


Grammatical Error

Typo in Data Security section - missing preposition.

@rburrs : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Verified the update; merging.
@rburrs - Thank you for making this fix.


always jump to a CODE cell by default

when in markdown cell,
press shift+enter will jump to a new MARKDOWN cell,
but the expected result is jumping to a CODE CELL.

Verified Jupyter behaves the way the user is asking for.
If the last cell is a markdown cell and you hit SHIFT+ENTER, it will generate a new 'code' cell and not a new 'markdown' cell.


Icons broken when using Nuxt

Reproduction
https://github.com/MalachiDraven/Nuxt_FormKit_BrokenIcons
Describe the bug
The prefix, suffix, and other icons are broken when using Nuxt (@formkit/nuxt). They're gigantic lol.
My site:

app.vue:
<template>

Hello World!

    <FormKit type="text" prefix-icon="eye" name="password" />

</template>

nuxt.config.ts
export default defineNuxtConfig({
  devtools: { enabled: true },

  modules: ['@formkit/nuxt'],
})

package.json
{
  "name": "nuxt-app",
  "private": true,
  "type": "module",
  "scripts": {
    "build": "nuxt build",
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "postinstall": "nuxt prepare"
  },
  "dependencies": {
    "@formkit/nuxt": "^1.6.1",
    "nuxt": "^3.11.2",
    "vue": "^3.4.21",
    "vue-router": "^4.3.0"
  }
}

This is on a fresh install / new Nuxt project. No other modules/plugins installed.
Environment
• OS: Windows 10
• Browser: Firefox
• Version: 1.6.1

This is a theming issue. I'd suggest taking a look at the theming section of the installation guide: https://formkit.com/getting-started/installation

This is a theming issue. I'd suggest taking a look at the theming section of the installation guide: https://formkit.com/getting-started/installation

You were right. Installing the Genesis them fixed it. The documentation for the new Tailwind themes is very confusing though. How exactly do I add a basic/starter theme to my existing project? I tried following the documentation here - https://formkit.com/essentials/styling#tailwind-css - but it didn't work.


feat: separated events from react state

Signed-off-by: wadeking98<EMAIL_ADDRESS>Moved events from react state to DeviceEventEmitter

Depends on bifold submodule update

Are you running the linter + prettier?

Are you running the linter + prettier?
my bad, I thought it ran automatically

Are you running the linter + prettier?

okay I've updated with linting completed

my bad, I thought it ran automatically

I think it should, you just might have to run npx<EMAIL_ADDRESS>install in the root of bc-wallet-mobile

@wadeking98 Ready to merge.


When I use dice_metric in multiple processes, the following happens when I call dice_metric.aggregate() in the main process.

CUDA out of memory. Tried to allocate<PHONE_NUMBER>.41 GiB (GPU 0; 44.56 GiB total capacity; 2.20 GiB already allocated; 40.30 GiB free; 2.54 GiB reserved in total by PyTorch). unable to sync buffer contents: [[tensor([0.0925, 0.0137, 0.0055], device='cuda:0'), tensor([0.0103, 0.0024, 0.0013], device='cuda:0'), tensor([0.0223, 0.0008, 0.0015], device='cuda:0'), tensor([0.0561, 0.0042, 0.0034], device='cuda:0'), tensor([0.0800, 0.0065, 0.0041], device='cuda:0'), tensor([0.0890, 0.0091, 0.0054], device='cuda:0'), tensor([0.0727, 0.0123, 0.0001], device='cuda:0'), tensor([0.0182, 0.0013, 0.0009], device='cuda:0'), tensor([0.0195, 0.0009, 0.0012], device='cuda:0')

it's difficult to debug based on this description, could you provide more information?
perhaps you can try detach() the relevant input tensors.


Representation of permanent generic part hood

From<EMAIL_ADDRESS>on May 07, 2013 13:11:24
see https://groups.google.com/d/msg/bfo-owl-devel/jbU2sPTexK4/gPcL4UMRXssJ
Original issue: http://code.google.com/p/bfo/issues/detail?id=168

From<EMAIL_ADDRESS>on June 05, 2013 11:42:28
Include in paper and documentation
Status: Done


Issue 350 memo field on transfer

🗃 Github Issue Or Exmplanation for this PR. (What is it supposed to do and Why is needed)
User are now able to send a memo along with a transfer
Enter Issue number here
#350
✅ Checklist

[x] Github issue details are up to date for people to QA.
[x] I have tested all my changes.

🕵♂ Notes for Code Reviewer
Optional Text field was added to transfer_form.dart
🙈 Screenshots
For all UI changes
| description 1 |
|

|
| img1 |
👯♀ Paired with
"nobody"

LGTM
Do we need a task to show the memo later on?

Yes I think it will be a good idea. to have the memo somewhere in the profile for users to have access to it.


Move alert from camera-error customEvent

⚠ Important: please check the old AR.js repository's issues: https://github.com/jeromeetienne/AR.js/issues probably your question had been already answered there ⚠
=> I see this issue on the old repo https://github.com/jeromeetienne/AR.js/issues/672
feature / bug
We can't catch the customEvent Camera-error before the default Alert
What is the current behavior?
The default alert are displayed before fired camera-error event
https://github.com/jeromeetienne/AR.js/blob/08a720e359a18ba7bf6cac6077c3d9472aa40d28/three.js/src/threex/threex-artoolkitsource.js#L164
What is the expected behavior?
Be able to catch the event before displaying the default alert.
Right now I catch the event through
window.addEventListener(
        "camera-error",
        function(e) {
          console.log("FREEEEEEED =>", e);
        },
        false
      );

The only way I found to display my console.log is to click ok on the default alert.
Maybe we can move the alert after the dispatchEvent, like that:
onError = onError || function(error){
		var event = new CustomEvent('camera-error', {error: error});
		window.dispatchEvent(event);
		alert('Webcam Error\nName: '+error.name + '\nMessage: '+error.message)
	}

easy fix but important one. Just made it on master branch. It's available with v3.2.1
thanks!


Remove penalty for amphibious and aquatic unarmed strikes underwater

They don't take those penalties on their unarmed strikes per their traits.

This would be limited to NPCs

I'm not sure that's the case actually. You don't gain the benefits of actor traits from your ancestry, like construct, but this isn't a benefit of the trait itself, it's a rules interaction.

I would agree except the benefit comes from the trait description itself


Keyboard accessibility: Strange behavior when focusing item after text editor

#3246
When tab focus mode is on, doing the following:

Select text editor
Press tab
At this point I have no idea what is focused as I can't see anything on the UI with a border.
Pressing enter will add a new line where the cursor was, pressing enter again will not add another line
Pressing enter will add a new line, pressing backspace and enter will add another new line

@Tyriar Can you please get the workbench in the same state as you had (the tab order is dependent on what you have opened) and open the developer tools and run this snippet:
setInterval(function() { console.log(document.activeElement); }, 1000);

This will print every second the DOM element where the focus is. We then need to figure out who owns that elements and why there's no focus indication on it.

It's focusing body:
<body class="monaco-shell vs-dark vscode-theme-colorful-defaults-themes-dark_plus-tmTheme">

Immediately after the textarea.

Duplicate of #2327


November 30 does not appear

Sorry,
It was some bug in the browser

@Giovani-Silva  how done you solve this prroblem?

#109  solve @Giovani-Silva @djulianm have done one solution

Great,  solution works .
Thank´s @djulianm for solution
Thank´s @hallss93


fix(structure): fix crash when students has no functions

:tada: This PR is included in version 1.3.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


build(axios): move axios to dependencies from peerDependencies

BREAKING CHANGE: move axios from dependencies to peerDependencies

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Sharp/Vips crashed in almost all latest Linux

Hi,
We have an linux app which is using<EMAIL_ADDRESS>and there is no way to update due to some reason, but after upgrading system it crashed everytime with this error:
ERROR:/__w/sharp/sharp/vendor/8.10.6/include/vips/VImage8.h:125:vips::VObject& vips::VObject::operator=(const vips::VObject&): assertion failed: (!a.vobject || VIPS_IS_OBJECT( a.vobject ))
Bail out! ERROR:/__w/sharp/sharp/vendor/8.10.6/include/vips/VImage8.h:125:vips::VObject& vips::VObject::operator=(const vips::VObject&): assertion failed: (!a.vobject || VIPS_IS_OBJECT( a.vobject ))

We have this library in the sharp folder:
sharp/vendor/8.10.6/lib/libvips-cpp.so.42
The sharp is installed by npm.
Working: Debian12, Ubuntu20.04 (With Gnome43/45)
Not Working: Latest Debian, Ubuntu and Arch Linux (With Gnome46)
Is seems like the whole linux distros are getting some libraries upgraded, but we dont know which it is.
VIPS issue on build (gatsby) #2684
This thread can't solve the problem because this app is not able to upgrade Sharp. But I've upgrade to<EMAIL_ADDRESS>and get the same error.
Here is the ldd dependencies:
ldd sharp.node

        linux-vdso.so.1 (0x00007ffee43f6000)
	libvips-cpp.so.42 => /home/xxx/../../vendor/8.10.6/lib/libvips-cpp.so.42 (0x00007f7d6e000000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7d6dc00000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7d6f721000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7d6facf000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7d6faca000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7d6de1f000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7d6fab7000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7d6fab2000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f7d6fb08000)

ldd libvips-cpp.so.42

        linux-vdso.so.1 (0x00007fff94725000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f11ec4f8000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f11ec4e7000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f11ec4e2000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f11eaa00000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f11ead1e000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f11ea81b000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f11ec516000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f11ec4b3000)

System info:
OS: Debian GNU/Linux trixie/sid x86_64
Kernel: 6.7.12-amd64
Uptime: 44 mins
Packages: 1918 (dpkg)
Shell: bash 5.2.21
Resolution: 3840x2160
DE: GNOME 44.9
WM: Mutter
WM Theme: Adwaita
Theme: Adwaita [GTK2/3]
Icons: Adwaita [GTK2/3]
Terminal: gnome-terminal
So, could anyone help point out some possible libraries which causing this error so we can downgrade to fix it?
Thanks!

there is no way to update due to some reason, but after upgrading system it crashed everytime

Please upgrade sharp; if you can upgrade Linux then you can upgrade sharp. You might be able to use npm overrides to achieve this. There have been many improvements to sharp during the last 3 years that will help avoid this entire class of error.
I cannot provide any support for old versions.


Display version on home page

Added display of Phenopolis version number to the home page, at the end of the “About” section. The version number is the github tag number, e.g. v1.0.2, which you can set. If the code has not been tagged, nothing will display. If it has been tagged it will display “Version v1.0.2” between “British Heart Foundation” and “Samples”.
To add a tag -
git tag -a v1.0.2 -m "Added some new feature..."
git push origin v1.0.2
You can set things up to deploy code whenever you add a tag to github. I.e. you can use the action of adding a tag to trigger deployment. To do this, add your deployment script to the deploy section at the end of travis.yml and set it to deploy only when tags: true and only on master branch. See https://docs.travis-ci.com/user/deployment/script/

Coverage increased (+0.1%) to 27.08% when pulling 4488edb003563a539133e0160e3a43ae5ff22f1c on Withington:tag_version into e1827de7850d798d60bf979b6a1c0b9286d24b68 on pontikos:master.

Thanks for the merge @pontikos .
Can you add a tag so I can check it?


Confusing content

"To use the authorized IP range functionality, a public IP address is exposed on the node pool by deploying a basic NGINX service"
==> can you give more details ? by default on AKS there is no basic NGNIX pod running with a public IP address. If you are talking about Ingress Controller, it's not enabled by default (add on http routing that is not recommended for production deployment).
"The API server communicates with the node pool through this authorized public IP address. You then define additional IP address ranges that can access the API server"  ==> Where can we find this Public IP address ? Is it the Public IP address that is on the default route (using azure router x.y.z.1 on each subnet) ?

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

ID: 660320d4-fad5-3307-e29f-5f4cfad4b7f7
Version Independent ID: 85ac2e8b-633f-6e1a-e642-0645ca92e129
Content: API server authorized IP ranges in Azure Kubernetes Service (AKS)
Content Source: articles/aks/api-server-authorized-ip-ranges.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

Thanks for the feedback! We are currently investigating and will update you shortly.

#31721
#31726
#31729

@squasta are you seeing any specific issues while following this doc? Or are you just looking to have a bit more information added?

Hi, not sure it's an issue or an explanation that is unclear. The sentence about the NGNIX service seems to have no place here (there is no additional info about this NGNIX in this page)  or I missed something.

@iainfoulds anything you can add here?

As part of the preview functionality, an NGINX service is deployed by the AKS platform to handle the correct routing of the cluster traffic. It's not a user-configurable option, which is why there's no mention of deploying NGINX from a Helm chart and configuring it. You may, however, see an NGINX pod running in the cluster.
As the preview functionality changes, this NGINX service may no longer be required.
@MicahMcKittrick-MSFT For now, #please-close

Thanks @iainfoulds that helps a lot :)
@squasta just let us know if you have further questions.


Correctly Identify AWS Glue as the Metastore when running Spark on Amazon EMR

Describe the bug
When using Apache Spark on Amazon EMR, you have the ability to replace Apache Hive with AWS Glue as the Hive-compatible metastore, with the underlying data being stored in S3. When doing so, the lineage metadata sent to DataHub incorrectly identifies the data catalog tables as Apache Hive Datasets and not AWS Glue Datasets. Additionally, the tables do not contain the schema, nor do they have an upstream link to the underlying data in Amazon S3.
To Reproduce
Steps to reproduce the behavior:

Create a PySpark job that reads data from one or more AWS Glue Data Catalog tables, transforms the data, and writes back to an AWS Glue Data Catalog table. Create the SparkSession configuration as follows, updating it to your own DataHub REST endpoint:

spark = SparkSession \
    .builder \
    .appName("Spark Glue DataHub Test App") \
    .config("hive.metastore.client.factory.class",
            "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory") \
    .config("spark.jars.packages", "io.acryl:datahub-spark-lineage:0.8.27") \
    .config("spark.extraListeners", "datahub.spark.DatahubSparkListener") \
    .config("spark.datahub.rest.server", "http://111.222.333.444:55555") \
    .enableHiveSupport() \
    .getOrCreate()

Run the PySpark job on Amazon EMR; I am using EMR v6.5.0 (Spark v3.1.2)

Expected behavior
I would expect that when using Apache Spark on Amazon EMR and substituting Apache Hive with AWS Glue as the metastore with the underlying data is stored in S3, the data catalog tables (Datasets) identified as part of the lineage graph are of type AWS Glue. Additionally, it would be a bonus if they contained the schema and an upstream link to the underlying Amazon S3 data associated with the Glue table.
Screenshots

Desktop (please complete the following information):

OS: macOS 11.6 (20G165)
Browser: Google Chrome
Version 99.0.4844.51 (Official Build) (x86_64)

Additional context
None.

@MugdhaHardikar-GSLab please take a look at this one! @treff7es, hoping you can help with review.

@garystafford  Can you please get the debug level enabled logs with latest version?
To enable debugging logs, add below configuration in log4j.properties file
log4j.logger.datahub.spark=DEBUG
log4j.logger.datahub.client.rest=DEBUG

I think the Spark Execution plan doesn't know if it is Glue or Hive. We should add some options to identify Hive tables as Glue if user wants that.

@treff7es @garystafford  I encountered the same issue and especially on AWS blog
https://aws.amazon.com/blogs/big-data/part-2-deploy-datahub-using-aws-managed-services-and-ingest-metadata-from-aws-glue-and-amazon-redshift/
Bt in my case, my DataHub can only capture the Spark task without any Hive or Glue task/dataset. Is there any new solution for this?

I'm facing some similar issues and have made some progress. I think the root problem of the issue is now solved with a spark config.
To get Spark Job -> Glue table to work I had to

Configure the spark extractor with spark.datahub.metadata.table.hive_platform_alias=glue connector config. This made the spark job properly extract the glue platform. However, since 0.10.1 (See the breaking changes) these tables won't get displayed since they don't have any "aspects"
Re-ingest the related glue-catalog, which then populated the glue table node created by spark, so that it appears in the UI

Same here. Any update on this one?
Have some more details here

@denystyshetskyy can you try the new spark plugin?
https://datahubproject.io/docs/metadata-integration/java/spark-lineage-beta
if you set spark.datahub.metadata.dataset.hivePlatformAlias to glue then it should properly capture glue datasets.


Dialog character

In the screenshot, there are various dialogs with different characters. How do I create a new character other than "Anonymous"?

Hi @premedios
In the Inspector panel,  switch to the Characters tab.
If the tab is not visible use the arrow shaped buttons in the top-right corner of the panel to move tabs.
In the Characters tab click new, and in the form you'll see type a name for your character and choose a color.
Click set to keep the changes.
Now you can go back to any dialog node and choose this new character.
I'll update Arrow's wiki on this as soon as possible. You may check it out later.
Thanks for using Arrow


Adds Cookbook for Euclidean distance.

This adds a cookbook for Euclidean distance.

@vigsterkr @karlnapf @lgoetz
Please review and comment. I would like to improve and merge this cookbook.

@vigsterkr @karlnapf @lgoetz
Please review and comment. I would like to improve and merge this cookbook.

Closing this PR for now and will reopen it soon.


Fixing typo in links to previous/next pages

Removed a ( that broke the links to the previous/next pages and added a colon so that the links are consistent with other pages.

@dotnet-policy-service agree


Video trimmer is not movable.

Hello, Your Package is awsome and it is very useful.
But there is no option for video trimmer to move on video timeline like whatsapp. and also there is no option available to change trimmer color.

But there is no option for video trimmer to move on video timeline like whatsapp

I did have this in Android before, but then I found that it's not good in UX (let say user imports a long video file and have to scroll all the way to the right to find correct part to trim)
Then learn from what giants do (ios/android), you can try doing trim from Gallery/Photos app, that's what I'm following :)

there is no option available to change trimmer color.

I'll add support for this

Thank You For Your Response.
Actually in my case there is a limit of video trim i.e 30 seconds so i have to put maxDuration = 30 but in this case it is difficult to move trimmer to that particular point that i actually want to trim.
if you will help in this case than it will be a great for help for me.

Thank You For Your Response.
Actually in my case there is a limit of video trim i.e 30 seconds so i have to put maxDuration = 30 but in this case it is difficult to move trimmer to that particular point that i actually want to trim.
if you will help in this case than it will be a great help for me.


caddy browse with subdirectory

1. Version ?
Caddy 0.9.5
2. What are you trying to do?
Serve files via browse from a directory.
3. What is your entire Caddyfile?
example.de/files {
        root /home/caddy/files
        browse
}

4. How did you run Caddy?
Via a systemd service as user caddy.
ref: caddyserver/examples/systemd
6. + 7.
If i klick on a link, i get https://example.com/testfile.txt instead of https://example.com/files/testfile.txt

hi @janstuemmel  thanks for the issue.
I have reproduced this.  A workaround in the time being seems to be
example.de {
     root /home/caddy/
    browse /files
 }

which seems to work as expected.

@tobya  I was just about to open an issue on the same thing.   Using  0.9.5 downloaded binary (OSX).
localhost:2015 {
log / stdout "{combined}"
}

localhost:2015/tmp {
 root /tmp
 browse
}

All of my links under /tmp  have a href link of  instead of
I think this might be the problem line 241 in browse

Does it happen on master too? Or just 0.9.5?

@tobya   @janstuemmel ,  I can reproduce with this config
localhost:2015 {
log / stdout "{combined}"
}

localhost:2015/tmp {
 root /tmp
 browse
}

However,  If I add a trailing slash  to tmp, to become  localhost:2015/tmp/  all of the HREF links render correctly.    So I think this is more of a trailing slash issue?
Caddy 0.9.5 /  Chrome 57

@mholt  see my comment above,  0.9.5 OSX binary

@jamesboswell I know, I was talking to @tobya. Sorry.

hi guys, thanks for the quick response. i came up to this cause' of playing around a bit with caddy before going to the pub. love your software btw, and never go back to apache :smile:
@mholt, i pulled caddy with go get github.com/mholt/caddy/caddy (should be master, am i wrong?) and doesnt works as described above...
@jamesboswell, yes right, it works with a trailing slash!
@tobya, i think you understand me wrong (but maybe my english is too bad),
i wanted an apache-like alias e.g. Alias /files /var/www/files to browse files.
Reproduce
Caddyfile in /home/user/tmp/foo:
localhost/files {
    root /home/user/Downloads
    browse
}

in shell
~/go/bin/caddy

after that, the files are displayed at localhost:2015/files, but if i klick on a file, i get the address localhost:2015/testfile.txt instead of localhost:2015/files/testfile.txt, which is obviously a 404

I see this too, I'll see what I can do. Thanks for the clear instructions.

@janstuemmel

If i visit localhost:2015/files/, the scenario works!

This is expected; it's a quirk that mixes URL and path conventions and how browsers render links. The browser sees a path like "/files" as a file even though in this case it's neither a file or a directory. Normally, directories have a trailing slash like "/files/" so if you want your site root to behave like a directory, append a trailing slash: localhost/files/
I'm fixing the breadcrumb links though. For a site defined as localhost/files/ and a path of "localhost/files/subfolder/" do you prefer a breadcrumb of:
A) /subfolder/
or
B) /files/subfolder (with the ability to navigate to / instead of just /files/)

Nevermind, I'm gonna go with (A). Seems most correct I think. Pushing fix soon!


Couchbase extension methods returning IRoundTrip types not initializing result?

Jack ran into trouble using Cassandra extension methods like UpsertSafeAsync<T>().  The return value doesn't seem to be initializing the __O.__T property and a NullReferenceException ends up being thrown later because the __T property doesn't exist.

It looks like this is by design for Couchbase.  The IOperationResult.Value property is null for upsert operations.  This makes some sense because the client already has the value that was upserted so there's no reason to send the same thing back to the client.


Environment Parameter for Add-AzureRmAccount is incorrect

Line 102 has the parameter of -Evironment but should be -EnvironmentName

@J0R3D1N I don't quite understand what you mean:
> Get-Help Add-AzureRmAccount -Parameter Environment

-Environment <string>
    Name of the environment containing the account to log into

EnvironmentName is an alias, the original parameter name is Environment


fix(receive): lower cjit LSP balance

Description

lower CJIT LSP balance to be 2,5 x invoice amount
fixes CJIT fee estimation

Linked Issues/Tasks
Closes #1703  #1644
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactoring (improving code without creating new functionality)

Tests

[ ] Detox test
[ ] Unit test
[x] No test

QA Notes
Get a CJIT channel, check the "You will receive" amount matches the actual amount received, check that the receive capacity is not at the maximum

Receiving the following errors when attempting to create a CJIT invoice. The "You Will Receive" amount seems to exceed the specified amount. Tapping "Continue" results in "Failed to create cjit entry".

Receiving the following errors when attempting to create a CJIT invoice. The "You Will Receive" amount seems to exceed the specified amount. Tapping "Continue" results in "Failed to create cjit entry".

Yeah that is because the MINIMUM_AMOUNT is not dynamic yet. Needs to be fixed but not in the scope of this PR. For now you have to put in something larger like 200 000.
https://github.com/synonymdev/bitkit/blob/c55c045f58b7e76ee82acdc1419bccf9db8490ae/src/screens/Wallets/Receive/ReceiveAmount.tsx#L27-L29


Righclick deselects

Steps to reproduce:

start editor
open scene
create a node
select a node
press and release RMB
observe the node gets deselected

Expected behaviour: selected node should not be deselected after RMB press

Press and release RMB where? Empty space in scene viewport?

Yes