ImportError: No module named video

Hello everyone,
When I make import ardrone
it gives me the following error;
Traceback (most recent call last):
File "", line 1, in
File "ardrone/init.py", line 4, in
from ardrone.drone import ARDrone
File "ardrone/drone.py", line 12, in
import ardrone.network
File "ardrone/network.py", line 15, in
import ardrone.video
ImportError: No module named video
Any help would be perfect :)

This means for some reason, the video C module was not compiled when you installed the package. Did you install it with './setup.py install' or something similar? If so, what was the output for the command?

Yes, I did python setup.py install.
There were 3 fatal errors due to ffmpeg libraries but I installed them one by one. However, Im not sure about the exact final output. I will post it as soon as possible.

Issuing the command
sudo python setup.py install gave me this result;
running install
running build
running build_py
running build_ext
running install_lib
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/ardrone-0.1.egg-info
Writing /usr/local/lib/python2.7/dist-packages/ardrone-0.1.egg-info
Then the same error occured during import ardrone.

Do a python setup.py clean then a python setup.py build and paste the output (and if you wouldn't mind, could you put it in a code block?).

This is the output it gives.
running build
running build_py
copying ardrone/network.py -> build/lib.linux-aarch64-2.7/ardrone
running build_ext

It still isn't rebuilding the whole package which is what I need the output for. Try deleting the 'build' folder and doing python setup.py build again.

It should look something like this:
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.5
creating build/lib.linux-x86_64-3.5/ardrone
copying ardrone/__init__.py -> build/lib.linux-x86_64-3.5/ardrone
copying ardrone/at.py -> build/lib.linux-x86_64-3.5/ardrone
copying ardrone/client.py -> build/lib.linux-x86_64-3.5/ardrone
copying ardrone/constant.py -> build/lib.linux-x86_64-3.5/ardrone
copying ardrone/drone.py -> build/lib.linux-x86_64-3.5/ardrone
copying ardrone/navdata.py -> build/lib.linux-x86_64-3.5/ardrone
copying ardrone/network.py -> build/lib.linux-x86_64-3.5/ardrone
running build_ext
building 'ardrone.video' extension
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/ardrone
x86_64-pc-linux-gnu-gcc -pthread -fPIC -I/usr/include/python3.5m -c ardrone/video.c -o build/temp.linux-x86_64-3.5/ardrone/video.o
ardrone/video.c: In function ‘video_decode’:
ardrone/video.c:183:2: warning: ‘avcodec_decode_video2’ is deprecated [-Wdeprecated-declarations]
  frame_size = avcodec_decode_video2(context, frame, &got_frame, &packet);
  ^
In file included from ardrone/video.c:3:0:
/usr/include/libavcodec/avcodec.h:4812:5: note: declared here
 int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
     ^
ardrone/video.c:192:2: warning: ‘avpicture_get_size’ is deprecated [-Wdeprecated-declarations]
  image_size = avpicture_get_size(AV_PIX_FMT_RGB24, image_width, image_height)*sizeof(uint8_t);
  ^
In file included from ardrone/video.c:3:0:
/usr/include/libavcodec/avcodec.h:5468:5: note: declared here
 int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
     ^
x86_64-pc-linux-gnu-gcc -pthread -shared build/temp.linux-x86_64-3.5/ardrone/video.o -L/usr/lib64 -lavcodec -lavformat -lavutil -lswscale -lpython3.5m -o build/lib.linux-x86_64-3.5/ardrone/video.cpython-35m-x86_64-linux-gnu.so

running build
running build_py
creating build
creating build/lib.linux-aarch64-2.7
creating build/lib.linux-aarch64-2.7/ardrone
copying ardrone/client.py -> build/lib.linux-aarch64-2.7/ardrone
copying ardrone/navdata.py -> build/lib.linux-aarch64-2.7/ardrone
copying ardrone/network.py -> build/lib.linux-aarch64-2.7/ardrone
copying ardrone/at.py -> build/lib.linux-aarch64-2.7/ardrone
copying ardrone/__init__.py -> build/lib.linux-aarch64-2.7/ardrone
copying ardrone/drone.py -> build/lib.linux-aarch64-2.7/ardrone
copying ardrone/constant.py -> build/lib.linux-aarch64-2.7/ardrone
running build_ext
building 'ardrone.video' extension
creating build/temp.linux-aarch64-2.7
creating build/temp.linux-aarch64-2.7/ardrone
aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c ardrone/video.c -o build/temp.linux-aarch64-2.7/ardrone/video.o
aarch64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-aarch64-2.7/ardrone/video.o -lavcodec -lavformat -lavutil -lswscale -o build/lib.linux-aarch64-2.7/ardrone/video.so

I take the video stream via a very simple opencv code:
import cv2

cam = cv2.VideoCapture('tcp://<IP_ADDRESS>:5555')
while (True):
    _, im = cam.read()
    cv2.imshow('frame',im)
    cv2.waitKey(1)

It works great with your client.py. However when I make a process on images it does it frame by frame and I think it's related with TCP connection of the Ar drone. It constantly sends images and I cannot take image unless I process it. So, is there a way around it? Any TCP configuration for python or any arrangement that I can make?

The C module for decoding the video is a lot faster. It seems to build alright, so I'm not sure why it wouldn't be running.
Can you try importing ardrone from the 'build/lib.linux-aarch64-2.7' directory?

Okey, thank you I got it working now. But, I don't know how to use C module.

It should automatically work, assuming there is communication with the drone and the package was built correctly. Since you say it is working now, I'm going to assuming you are now using the C module. If this is not the case or if you would like to persue this issue further, feel free to reopen the issue.


Mobile wallet login screen "NEW INSTANCE" AND "RESTORE" Buttons are not clickable.

Description:
In the Mobile wallet login screen "NEW INSTANCE" AND "RESTORE" Buttons are not clickable.
Steps to reproduce:

Login to the mobile wallet.
Perform some operations.
Logout from the mobile wallet.
In the Login screen try to click the "NEW INSTANCE"/ "RESTORE" Buttons.

After Logout from the wallet instance, New Instance and Restore buttons has been removed.
Verified with the latest build, hence closing this ticket.


Multiple import from external sources isn't shown when the user is member of several groups

Describe the bug
I think there is some kind of limit that if you are o user (not admin) that is member of several groups (the system didn't worked as expected with 16), you aren't presented with the proper interface options for Importing from External Sources. We tested the same environment with just 2 groups and it worked as expected.
To Reproduce
Steps to reproduce the behavior:

Using DSpace 7.6.1
The user must be a member of 16 different groups as a Collection Admin, Reviewer and Supervisor, all are for Collections of type Publication, and one (the last added) is a Submitter in a Collection of type Person
Before the /import-external request you aren't confronted the the possibility to choose the type of data to import (Person/Publication), and you only can import metadata for Publications

Expected behavior

Needs investigation as to why this might be occurring.  It definitely sounds like a bug.  We may want to verify that this is reproducible in 7.6.2 as well.  Needs a volunteer.


MIC-126 add an interview

Codecov Report
Attention: Patch coverage is 90.90909% with 2 lines in your changes missing coverage. Please review.

Project coverage is 84.96%. Comparing base (2d4a345) to head (e69d443).

Files
Patch %
Lines

...lengeSupportInterventionPlanApiExceptionHandler.kt
0.00%
0 Missing and 1 partial :warning:

...nterventionplanapi/service/InvestigationService.kt
90.00%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##               main      #83      +/-   ##
============================================
+ Coverage     81.99%   84.96%   +2.96%
- Complexity      514      537      +23
============================================
  Files           111      111
  Lines          1805     1822      +17
  Branches         89       91       +2
============================================
+ Hits           1480     1548      +68
+ Misses          288      235      -53
- Partials         37       39       +2

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


feat: upgrade to Go 1.17

Upgrade to Go 1.17
from release notes

Because the number of explicit requirements may be substantially larger in an expanded Go 1.17 go.mod file, the newly-added requirements on indirect dependencies in a go 1.17 module are maintained in a separate require block from the block containing direct dependencies.

This might need some more testing, will investigate further until then marking as draft


Upgrade nodejs and npm

Upgrade nodejs and npm

@johnaohara opening PR against 11.x?

@shivam-sharma7 yes, please open a backport PR, Thanks

Backport: https://github.com/Hyperfoil/Horreum/pull/1095


ConfigurationParseTrait use_paging ignored

In ConfigurationParseTrait.php on line 57
return array_filter($existingConfig);
Removes use_paging when the value is false.

Fixed in https://github.com/ldaptools/ldaptools/commit/852299e30d267aa3f2d507ade924eba4c1fdbb30. Thanks for reporting this!


Update diskmaker-x to 6rc5

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] If the sha256 changed but the version didn’t,
provide public confirmation by the developer: {{link}}

Thank you for the contribution. It was merged directly as e0db5ca2573a10a7cf80cfaa64c60da67173b909. Your contribution is still credited to you.


Unexpected accuracy for float32

When running this UnitTest: tf.sin, tf.net losts accuracy. This problem will lead to the vanishing of the gradient in the case of multilayer neural networks, especially more than 8 layers deep.

Same unexpected result for Sigmoid test.
What's wrong with it?

float in python is not equal float32 in .net.


Replace chrono with time

This PR replaces the chrono dependency with time. The current version of the chrono crate (v0.4.19) depends on an old version of the time crate (v0.1.43) that can segfault under certain conditions. Since chrono is currently unmaintained, it has been replaced with a version of the time crate (v0.3.9) that does not expose users to possible segfaults.
I bumped the version to 0.9 and updated the changelog as well.

Hey, sorry for the delayed response
Thanks! I'm in favor of switching to time.
Seems like some unrelated changes made it into the changelog.

I finally got around to looking at this and I can't reproduce the test failure locally

Could you post more about what system you're testing on, the test command you're running (if other than cargo test), and the error you're seeing? Once I figure out what's expected I can write a with function.


All classes need a "get" method

combined with a "set" method it'll be very easy to go to and from JSON representations which will make creating and saving presets very simple.

base class has a get method which returns all of the attributes in JSON


installation error

Disclaimer: I am an absolute newbie to node.
I just tried to follow the installation instructions and this is what happened:
myusername@debian:~/home/node/$ mkdir atlas
myusername@debian:~/home/node/$ cd atlas
myusername@debian:~/home/node/atlas$ wget https://github.com/martgnz/es-atlas/archive/refs/heads/master.zip
myusername@debian:~/home/node/atlas$ unzip master.zip
myusername@debian:~/home/node/atlas$ cd es-atlas-master
myusername@debian:~/home/node/atlas/es-atlas-master$ npm install

><EMAIL_ADDRESS>prepare /home/node/atlas/es-atlas-master
> bash prepublish $npm_package_config_with_names $npm_package_config_simplification $npm_package_config_quantization $npm_package_config_autonomous_regions

Autonomous regions: all
Simplification: 0.0001
Quantization: 10000
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  118M    0  118M    0    46  2477k      0 --:--:--  0:00:49 --:--:-- 2303k
Archive:  build/lineas_limite.zip
caution: filename not matched:  recintos_municipales*
caution: filename not matched:  recintos_provinciales*
caution: filename not matched:  recintos_autonomicas*

  error: ENOENT: no such file or directory, open 'build/recintos_autonomicas_inspire_peninbal_etrs89.shp'

  error: ENOENT: no such file or directory, open 'build/recintos_autonomicas_inspire_canarias_wgs84.shp'

  error: expected GeometryCollection, not null

  error: ENOENT: no such file or directory, open 'build/recintos_provinciales_inspire_peninbal_etrs89.shp'

  error: ENOENT: no such file or directory, open 'build/recintos_provinciales_inspire_canarias_wgs84.shp'

  error: expected GeometryCollection, not null

undefined:1

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Socket.<anonymous> (/home/node/atlas/es-atlas-master/node_modules/topojson-client/bin/topomerge:76:46)
    at Socket.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)

  error: ENOENT: no such file or directory, open 'build/recintos_municipales_inspire_peninbal_etrs89.shp'

  error: ENOENT: no such file or directory, open 'build/recintos_municipales_inspire_canarias_wgs84.shp'

  error: expected GeometryCollection, not null

undefined:1

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Socket.<anonymous> (/home/node/atlas/es-atlas-master/node_modules/topojson-client/bin/topomerge:76:46)
    at Socket.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
undefined:1

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Socket.<anonymous> (/home/node/atlas/es-atlas-master/node_modules/topojson-client/bin/topomerge:76:46)
    at Socket.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
undefined:1

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at ReadStream.<anonymous> (/home/node/atlas/es-atlas-master/node_modules/topojson-client/bin/topo2geo:31:46)
    at ReadStream.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
cat: es/_border.jsoncat: es/_autonomous_regions.json: No such file or directory
: No such file or directory
undefined:1

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at ReadStream.<anonymous> (/home/node/atlas/es-atlas-master/node_modules/topojson-client/bin/topo2geo:31:46)
    at ReadStream.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
cat: es/_autonomous_regions.jsoncat: es/_border.json: No such file or directory
: No such file or directory
cat: es/_provinces.json: No such file or directory
rm: cannot remove 'es/_provinces.json': No such file or directory
rm: cannot remove 'es/_autonomous_regions.json': No such file or directory
rm: cannot remove 'es/_border.json': No such file or directory
undefined:1

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at ReadStream.<anonymous> (/home/node/atlas/es-atlas-master/node_modules/topojson-client/bin/topo2geo:31:46)
    at ReadStream.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1221:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
cat: es/_provinces.json: No such file or directory
cat: cat: es/_municipalities.json: No such file or directoryes/_autonomous_regions.json
: No such file or directory
cat: es/_border.json: No such file or directory
rm: cannot remove 'es/_municipalities.json': No such file or directory
rm: cannot remove 'es/_provinces.json': No such file or directory
rm: cannot remove 'es/_autonomous_regions.json': No such file or directory
rm: cannot remove 'es/_border.json': No such file or directory
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>prepare: `bash prepublish $npm_package_config_with_names $npm_package_config_simplification $npm_package_config_quantization $npm_package_config_autonomous_regions`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>prepare script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/myusername/.npm/_logs/2021-04-01T17_39_43_775Z-debug.log

My only interest in installing this is to run it using the with-names option
So if this linked file contained geographical names, it would probably be just OK for me:
https://unpkg.com/es-atlas/es/municipalities.json
But when I upload the json to postgresql with ogr2ogr there are no names in it: only ids for geographical entities.
myusername@debian:$ ogr2ogr -f "PostgreSQL" PG:"dbname=mydatabase user=myusername" "/path/to/municipalities.json"
myusername@debian$ sudo -i -u postgres
postgres@debian:$ psql
postgres=# \c mydatabase
mydatabase=# \d municipalities

... which produces the following output:
Table "public.municipalities"

Column
Type
Collation
Nullable
Default

ogc_fid
integer

not null
nextval('municipalities_ogc_fid_seq'::regclass)

wkb_geometry
bytea

id
character varying

Indexes:
"municipalities_pkey" PRIMARY KEY, btree (ogc_fid)

Is there any quick way I can download the geographical names corresponding to each id, even if they are in a separate table?
Of course, if @martgnz or anyone else could generate a municipalities_with_names.json file for me, I would be so grateful !!
Many thanks in advance

Sorry, for some reason the build stopped working, I think the folders inside the zip file changed a bit. I have pushed a new release, maybe you can try again?

Thanks a lot @martgnz
Now it worked !!
But I have detected what I think is a different bug.
This is what I did:

Deleted everything and followed the same steps above, except that I edited package.json file and changed config.add_names parameter from false to true
Then, after running npm install, everything worked: no errors
So a new /es folder was generated, which contains 3 files: autonomous_regions.json (the smallest), provinces.json (a bit bigger) and municipalities.json (much bigger than the others).
Then, I tried to visualize them into mapshaper.org

autonomous_regions.json works: it contains border and autonomous_regions layers, and feature names are shown on hovering mouse over regions.
provinces.json works like the previous file, but contains also a layer provinces, with their names shown on hover as well.
But municipalities.json doesn't work: it contains also a layer named municipalities, and when hovering mouse over them, their names are shown. The problem is that the other two layers (autonomous_regions and provinces) do NOT contain the names. They only show FID value on hovering.


Configuration=Release - Release folder is ignored

Hello,
I try to run your sample
RSuter\NSwag\src\NSwag.Sample.NETCore22
and I got errors that I don't understand why they emerge.
What did I do:

git clone https://github.com/RSuter/NSwag.git

open up a console cmd and go to:
RSuter\NSwag\src\NSwag.Sample.NETCore22

run
dotnet build NSwag.Sample.NETCore22.csproj --configuration Release
As expected it uses the release folder under
RSuter\NSwag\src\NSwag.SwaggerGeneration\bin\Release\netstandard2.0
to generate dll's.

run
dotnet "C:\Users\user.nuget\packages\nswag.msbuild\12.0.13\build../tools/NetCore22/dotnet-nswag.dll" run .\nswag_project.nswag /runtime:NetCore22 /variables:Configuration=Release

I'm using the cached nswag.msbuild from nuget version 12.0.13 of nswag to run nswag to generate typescript code from the compiled assemblies in the bin/Release folder
By the way
dotnet --version
shows 2.2.104
I receive the following error:
System.InvalidOperationException: Project outputs could not be located in 'C:\Projects\github\RSuter\NSwag\src\NSwag.Sample.NETCore22\bin\Debug\netcoreapp2.2'. Ensure that the project has been built.
at NSwag.Commands.SwaggerGeneration.AspNetCore.AspNetCoreToSwaggerCommand.RunAsync(CommandLineProcessor processor, IConsoleHost host) in C:\projects\nswag\src\NSwag.Commands\Commands\SwaggerGeneration\AspNetCore\AspNetCoreToSwaggerCommand.cs:line 173
at NSwag.Commands.NSwagDocumentBase.GenerateSwaggerDocumentAsync() in C:\projects\nswag\src\NSwag.Commands\NSwagDocumentBase.cs:line 268
at NSwag.Commands.NSwagDocument.ExecuteAsync() in C:\projects\nswag\src\NSwag.Commands\NSwagDocument.cs:line 81
at NSwag.Commands.Document.ExecuteDocumentCommand.ExecuteDocumentAsync(IConsoleHost host, String filePath) in C:\projects\nswag\src\NSwag.Commands\Commands\Document\ExecuteDocumentCommand.cs:line 77
at NSwag.Commands.Document.ExecuteDocumentCommand.RunAsync(CommandLineProcessor processor, IConsoleHost host) in C:\projects\nswag\src\NSwag.Commands\Commands\Document\ExecuteDocumentCommand.cs:line 31
at NConsole.CommandLineProcessor.ProcessSingleAsync(String[] args, Object input)
at NConsole.CommandLineProcessor.ProcessAsync(String[] args, Object input)
at NConsole.CommandLineProcessor.Process(String[] args, Object input)
at NSwag.Commands.NSwagCommandProcessor.Process(String[] args) in C:\projects\nswag\src\NSwag.Commands\NSwagCommandProcessor.cs:line 54
Unfortunately it seems that the release folder is ignored since it has been configured as /variables:Configuration=Release
and nswag is looking inside the bin/debug folder and this folder is empty.

The nswag config file is probably fixed to the debug output path

The debug path is always used:
https://github.com/RSuter/NSwag/blob/master/src/NSwag.Sample.NETCore22/nswag_assembly.nswag#L48
We'd need to change this to a variable placeholder and inject the variable in the nswag run cmd line call... (see wiki for sample)

Hi @RSuter,
Ok, I see, thanks.
I try to set a variable to the defaultVariables section and then assign it to the Configuration by using $(variable) syntax.

I'm not sure I understand: Is there a way to take some other configuration than Debug?

I figured it out myself.
One just needs to forward it through the file "nswag.json", like this:

For future visitors, i will clarify what is needed.
In the nswag.json set this "configuration": "$(Configuration)".
And then in the .csproj set $(NSwagExe_Net60) run nswag.json /variables:Configuration=$(Configuration)

Ran into the exact same error a year later and wasted hours too.. Very frustrating.
I've followed the instructions in the wiki and there's no mention of it, just "Use a configuration file". Perhaps this can be added to the wiki? 🤔 That would be greatly appreciated. 🙂


[Question] Did you use MOD in pretrain stage?

Question
No response

Hi, thank you for your interest in our work!
We only use MoD in SFT stage. We tried inserting MoD during pretraining (while freezing the LLM) but the loss diverges.
We think it might be worth trying to add MoD in pretraining and unfreeze the LLM. However, this approach increases training costs and makes it difficult to ensure a fair comparison with the LLaVA baseline. As a result, we leave this exploration for future work.

Thank you for your response and for clarifying!


app craches on android below api23

hi @GovindaPaliwal
I've set Camera permissions in android manifest, but the app crash when i start the scanner preview on android below api23.
can you confirm.
thank you.

@silverSY please post crash log here.


Fixes issue #14 : "Add features to add image"

[x ] Fixes issue #IssueNo : "Name of issue here"
[x] Other checks

Reason for pull request:
"To add mutiple images in a post"
Description of changes or additions:
"For now, a maximum of 6 images can be uploaded. We can increase this maximum limit easily. The only problem is while updating, one has to upload all the images again."
Screenshots:
"Insert screenshots here if available"

@nikunjagarwal321 There's some merge conflict please resolve it and update your PR.

@deepak2431 I have resolved the merge conflicts. Please check once.

@nikunjagarwal321 You have put a lot of efforts for sure. But all the images are displayed on the top. Can you please make it to add images inbetween of the post too as I think it would be easy for you now. Thanks:)

@nikunjagarwal321 Thanks!


How firstly finetune model with freezed encoder?

Now I can train model with different losses this way:
# define model
model = Unet(BACKBONE, encoder_weights='imagenet')

model.compile('Adam', loss=bce_dice_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=5,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

model.compile('Adam', loss=bce_jaccard_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=20,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

I know there is encoder_freeze parametr while Unet class is initialized, but can we use it as to freeze encoder and then unfreeze to finetune model with freezed encoder

I believe we use Trainable to deal with the problem, somethink like this:
But how to get just encoder layers

# Freeze the layers except the last 4 layers
for layer in vgg_conv.layers[:-4]:
    layer.trainable = False

# Check the trainable status of the individual layers
for layer in vgg_conv.layers:
    print(layer, layer.trainable)

Is that working solution, what do you think?
model = Unet(BACKBONE, encoder_weights='imagenet', encoder_freeze = True)

model.compile('Adam', loss=bce_dice_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=2,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

model = Unet(BACKBONE, encoder_weights='imagenet', encoder_freeze = False)
model.compile('Adam', loss=bce_dice_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=2,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

model.compile('Adam', loss=bce_jaccard_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=2,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

Hi @Diyago
If you create model second time it is a new object. To unfreeze encoder you just need to set traineble for all layers of model:
for layer in model.layers:
    layer.trainable = True

# and then compile it
model.compile(...)

There is a function set_trainable which make it inplace:
from segmentation_models.utils import set_trainable

# set all layers trainable and recompile model with the same optimizer, loss and metrics
set_trainable(model)

I think this is correct way:
# pretrain
model = Unet(BACKBONE, encoder_weights='imagenet', encoder_freeze = True)

model.compile('Adam', loss=bce_dice_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=5,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

# unfreeze encoder
set_trainable(model)

history = model.fit_generator(training_generator,
                  epochs=5,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)

# change loss
model.compile('Adam', loss=bce_jaccard_loss, metrics=[iou_score])
history = model.fit_generator(training_generator,
                  epochs=50,
                  validation_data=(x_val, y_val),
                  callbacks=callbacks, verbose = 1)


Allow compression-webpack-plugin v10

https://github.com/webpack-contrib/compression-webpack-plugin/blob/c53cd6e508f744f108701ab7826c3ae2b302bae9/CHANGELOG.md#1000-2022-05-17
Unrelated, but regarding the breaking changes of v10, perhaps we can think about dropping nodejs 12 support for shakapacker as well? Security support ended 2 weeks ago.
Edit: Fixes this warning:
warning " ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>
Edit 2: The node v12 failures in CI are to be expected, but I'm not sure what the best way to work around them is. I was hoping it would pick the compatible npm package version.

Got a feeling that package resolution would work if not for the fact that we've got a frozen lockfile and resolution to 10.0.0 there.
Could drop a Node 12 support but I think that's one for the major version bump. Thoughts @justin808 ?

Could drop a Node 12 support but I think that's one for the major version bump.

Since these are mostly webpack plugins and the maintainers seem to be releasing new major versions to drop node 12, maybe it's justifiable to do the same? I'm not sure about swc and esbuild however.

Nice one @aried3r Are you able to add changelog entry under unreleased at https://github.com/shakacode/shakapacker/blob/master/CHANGELOG.md and then it will be good to merge. Thanks!

Merged! Thanks!


Disable SELinux via Puppet

SELinux prevents containers from attaching to overlay networks.
Could use the puppet module below in pre_deploy stage:
https://forge.puppet.com/puppet/selinux
And then issue a reboot before deploy stage.

@maarten-litmaath @ejr004 should be an automated step or should we insist a site admin to manually disable selinux?

Hi all,

should be an automated step or should we insist a site admin to manually disable selinux?

Disabling SELinux must not be a long-term approach!  It exists for good reasons...

Changing to get_selinux_status and raise an exception.
puppet module install puppet-selinux --version 2.0.0 required

@ejr004 Can you create a PR. Also, we will have to update the metadata.json for the puppet module. https://github.com/WLCG-Lightweight-Sites/simple_grid_puppet_module/blob/master/metadata.json (dependencies section)

This is still open for discussion. Pushing to 1.1


Get number of a table row.

Hi,
I have a datatable in my project and i can't display the number of row in the first column of my table; how to get the number (position) of any row?
here's my code:
$('#myTable').datatable({
    data: json,
    identify: 'field1',
    lineFormat: function (id, data) {
    var tr = $('

') ;
	// First  element, here display number of row.
        tr.append('	') ;
        tr.append(''+data['field1']+'	') ;
        tr.append(''+data['field2']+'	') ;
        tr.append(''+data['field3']+'	') ;
        return tr ;
     }
 });

Consider: when delete rows using $('#myTable').datatable('delete', id); or add new rows $('#myTable').datatable('insert', json);  the numbers of table rows update automatically, is there a way to do this ?.
thanks.

id is the index of the row in the unfiltered dataset, so you could simply use it. Or am I misunderstanding what you want?

What do you want to see when you have filtered data? Something like this?
#|    Field1    Field2
1|
3|
4|
6|

If so, you can simply use the id (maybe id + 1).

nop, let's suppose to I have 6 rows in my datatable in first time, so when I filtered data (for example this filter get me only 3 rows) I want to see :
**
#|    Field1    Field2
1|
2|
3|
**
I don't want this:
**
#|    Field1    Field2
1|
4|
6|
**
Another example: if I have 6 rows in first time and I delete the row 5, I want:
**
#|    Field1    Field2
1|
2|
3|
4|
5|
**
I don't want:
**
#|    Field1    Field2
1|
2|
3|
4|
6|
**

There is no built-in way, but the row are appended to the tbody element sequentially, so you could simply count the number of tr in the tbody, e.g. (not tested):
lineFormat: function (id, data) {
    var rowNum = $(this).find('tbody tr').length + 1;
    // Whatever you want...
}

it works !!, thanks so much.


添加数据库的支持

能否再flask、django里面添加数据库的支持，比如MySQL。这样通过MySQL的数据，可以直接显示。
另外在前端上能否添加bootstrap或者其他的框架？从而可以增加效果？

I don't think this library should become "God" package that does all things. The example codes of Flask and Django is to show how you can integrate it by yourself.
If you would like to have specailist libraries that do it for you , I would recommend you to checkout one of my libraries: https://github.com/pyexcel/pyexcel-echarts, which is still under development and is supposed to bring in tighter integration with databases and tabula data. Together with pyexcel,  the database tables, and tabular data can be visualized.

@ideaplat  我也同意 @chfw 的看法，这个库应该有这个库所要关注的重点。


x/mobile: Not able to create files with os package

I tried the following code on Galaxy S4 with Android 4.4.2:
package main
import (
"golang.org/x/mobile/app"
"golang.org/x/mobile/event/lifecycle"
"golang.org/x/mobile/event/paint"
"os"
)
func main() {
os.Create("zzz.txt")
app.Main(func(a app.App) {
for e := range a.Events() {
switch e := a.Filter(e).(type) {
case lifecycle.Event:
_=e
case paint.Event:
a.Publish()
}
}
})
}
However no file is created in the phone. I tried to specify a path but doesn't help.
I also tried an app called "AnGoIde" which allow us to write Go and compile directly in Android, and the following code is able to create the "zzz.txt" file:
package main
import  "os"
func main(){
os.Create("zzz.txt")
}

What is the error returned from os.Create?
Probably it's because the current working directory
is not in pre-application writable data area.

Please remove my comment if it should not appear in a bug report, but I have no idea what error os.Create is having since I don't know how to see the errors from phones, so I would like to write errors to a file with os.Create . Do you know any way I can see the errors without write to a file? thx..

cc @rakyll any advice on debugging this?
@kyle11rd https://golang.org/wiki/Questions

Just printing to stderr (e.g. use println builtin), I think Android
application's
stderr is connected to device log so you should be able to view with
adb logcat.


Day text becomes bold when using decorator of open circle.

From attached screenshot, you can see the dates above open circle decorators are bold. If decorators are solid circles the dates are not bold. Please help! Thanks.

I would check what your decorators is doing. Please provide more information in order to help. Maybe a sample app with just enough code to reproduce?

Thanks Quentin for reply. The problem is resolved. The problem is on my
side.
Josh
On Fri, Jun 22, 2018 at 12:49 PM, Quentin Colle<EMAIL_ADDRESS>wrote:

I would check what your decorators is doing. Please provide more
information in order to help. Maybe a sample app with just enough code to
reproduce?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/prolificinteractive/material-calendarview/issues/761#issuecomment-399508277,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AONOPppHrgPSGu0GsR6YRQ9PNpzYVCwGks5t_SAhgaJpZM4T1LAZ
.


OP-16992 : Added parameter for PipelineAndPolicy summarycoun

https://devopsmx.atlassian.net/browse/OP-16992

This PR  triggered this build in this execution, please wait for it  and child pipelines to succeed before merging:  https://isd.prod.opsmx.net/deck/#/applications/gcp-gitprtrigger/executions/details/01G9PA1JTX26P5DEQDTDP78YYW

This PR  triggered this build in this execution, please merge to v3.12 branch only if this succeeds:  https://spin.prod.opsmx.com/#/applications/isd312/executions/details/01G9PA2AAKTYTF6V6VFJCVYDBF

RunTestJar RESULT: Tests run: 269, Failures: 8, Errors: 0, Skipped: 16, Time elapsed: 597.191 sec <<< FAILURE! Reviewers , please check that the changes in this PR did not cause the failures in  http://jenkins.opsmx.net:8181/jenkins/job/Dev-run-tests-on-gitpr-parallel/ws/emailable-report-226.html


SliverOverlapAbsorber widget on stable version does not support sliver parameter

Steps to Reproduce

Look at the SliverOverlapAbsorber widget at the stable branch https://github.com/flutter/flutter/blob/stable/packages/flutter/lib/src/widgets/nested_scroll_view.dart#L1329
Look at the same widget on the beta branch https://github.com/flutter/flutter/blob/beta/packages/flutter/lib/src/widgets/nested_scroll_view.dart#L1487

Expected results:
As shown in the beta branch, the child parameter was supposedly 'deprecated after v1.10.16,' and replaced by the sliver parameter. However, the current flutter stable version is 1.12.13+hotfix.8 and those changes has not been reflected in the stable version

/cc @Piinks

Hey @healer2030 thanks for bringing this to our attention!
It turns out that this change was first tagged at v1.13.0, so no, it is not on stable yet - but that means the deprecation warning isn't either! :)
When we make these sort of changes that add deprecations, we use the current version at the time of the change. What version it actually gets rolled into is not determined until after the change lands, so it is deprecated after v1.10.16, but not specifically at v1.10.16.
You can see the versions a change was applied to by looking at the commit: https://github.com/flutter/flutter/commit/2a5e528a18bf04d48483a8e493438f907171994d
I hope this has answered your question. If not, leave a comment and we can re-open this to discuss further! Thanks!


Html a with data-confirm inside a form should not submit a form

What steps will reproduce the problem?
<?php $form = ActiveForm::begin(['action' => ['form-controller/action'], 'method' => 'get']); ?>
<?= Html::a('Click me', ['controller/action'], ['data-confirm' => 'Are you sure?']) ?>
<?= Html::a('Another click me', ['controller/action']) ?>
<?php ActiveForm::end(); ?>

What is the expected result?
Clicking the 'Click me' link should NOT submit the form and should navigate browser to the link URL ('controller/action') as usual (after the confirmation dialog). In other words the 'Click me' link should work exactly like 'Another click me' link but with confirmation dialog.
Such behavior is important for the following use case. There is GridView with checkboxes inside  form. Multiple submit buttons outside GridView are used to submit the form with the value of selected checkboxes. Also GridView uses the ActionColumn with simple URLs for per-row actions such as row deletion (which requires confirmation). So the ActionColumn URLs need confirmation but must not submit the form.
What do you get instead?
Clicking the "Click me" link submits the form to 'form-controller/action'.
Additional info

Q
A

Yii version
2.0.28

PHP version
7.3.1

This is an old "mistake".

If you just need a confirm for a link,
Html::a('Click me', ['controller/action'], ['onclick' => 'return confirm("test")']);

Can you have the GridView outside the form and link the checkboxes using the form attribute?
<input type="checkbox" form="my-form" />

If you just need a confirm for a link,
Html::a('Click me', ['controller/action'], ['onclick' => 'return confirm("test")']);

This was a temporary workaround I used. The drawback: you mix HTML with JavaScript and if you have a lot of such buttons with confirm (GridView with a lot of rows, button for each row) you increase the size of the HTML page (the text onclick='return confirm("test")' is duplicated many times in generated HTML).

Can you have the GridView outside the form and link the checkboxes using the form attribute?
<input type="checkbox" form="my-form" />

I don't know how well it is supported by browsers for HTML 5 but HTML 4 does not have such feature at all.
Besides, it would be strange to sometimes use Yii2-like code for confirms:
Html::a('Click me', ['controller/action'], ['data-confirm' => 'Are you sure?']) ?>

and sometimes do it manually like that:
Html::a('Click me', ['controller/action'], ['onclick' => 'return confirm("test")']);

depending on where you put the code in HTML (inside or outside the form).

The data methods are designed to work with forms so workarounds are limited.
You could always have your own event handler,
$(document).on('click', 'a[data-my-confirm]', e => {
  return confirm($(e.target).data('my-confirm'));
});

Html::a('Click me', ['controller/action'], ['data-my-confirm' => 'Are you sure?']) ?>

@alex-code The built-in Yii2 'data-confirm' should work like you show. Afterwards, if there is also a 'data-method' specified the existing form-related submit code of Yii2 should execute.

The data-confirm option is part of the data methods code which uses forms.
https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.js#L475

The data-confirm option is part of the data methods code which uses forms.
https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.js#L475

So what?
In the Yii2-based projects I am working on, this Yii2 feature is used alot but exclusively for confirm, not to submit a form using Javascript. I am willing to bet this may be the primary use case in many other projects too. So the design of the feature in Yii2 framework needs to reflect that.
Besides, it doesn't make any sense to allow using confirm ONLY if you want to submit a form. So, as I said previously, the design of this feature in Yii2 should be: 'data-confirm' attribute does NOT dictate if any form will be submitted or not, it just deals with confirm. The 'data-method' attribute, on the other hand, will deal with form submittal.
I don't see any problem with modifying or fully rewriting the code you linked to achieve the above design.

As an example, how should this work with your proposed changes?
Html::beginForm('/logout');
Html::a('Logout', '#', ['data-confirm' => 'Are you sure?']);
Html::endForm();

Rewriting the data methods could cause BC issues.

As an example, how should this work with your proposed changes?
Html::beginForm('/logout');
Html::a('Logout', '#', ['data-confirm' => 'Are you sure?']);
Html::endForm();

As if:
Logout

Rewriting the data methods could cause BC issues.

Only if new code functions differently to the correctly documented behavior. And even then it can be easily dealt with in UPGRADE.md.

Can you link to the docs that mention the data-methods? It could be they are wrong and causing confusion.
As far as i can see from the code the data-methods, inc data-confirm are for submitting data via forms. The confirm option is for convenience and not for separate use.
What you want can easily be done with one line,
$(document).on('click', 'a[data-my-confirm]', e => confirm($(e.target).data('my-confirm')));

Can you link to the docs that mention the data-methods? It could be they are wrong and causing confusion.

I am not sure those docs even exist.

As far as i can see from the code the data-methods, inc data-confirm are for submitting data via forms. The confirm option is for convenience and not for separate use.
What you want can easily be done with one line,
$(document).on('click', 'a[data-my-confirm]', e => confirm($(e.target).data('my-confirm')));

It does not really matter what and how was initially implemented. What metters is how it is used and how to make it better. See my reasons in previous posts.


Avoid B015,B018 for last expression in a cell

Summary
This PR updates B015 and B018 to ignore last top-level expressions in each
cell of a Jupyter Notebook.
Part of #8669
Test Plan
Add test cases for both rules and update the snapshots.

Current dependencies on/for this PR:

main

PR #8813

PR #8814

PR #8815   👈

This stack of pull requests is managed by Graphite.


[Trouver Parchment alert] Add config group to onConfigChanged

Currently your ConfigChanged event is firing for every config changed in any plugin. Please use https://static.runelite.net/api/runelite-client/net/runelite/client/events/ConfigChanged.html#getGroup()
Additionally, it'd be nice to disable the warning if the non-parched item is protected, and to add a couple tags to the plugin such as "lock" so people can actually find the plugin when searching for the overlay text.

Closing issue. Update has been made, waiting on runelite approval.
Thanks for the comment 👍


slashes in component names

Ember unification modules does not support slashes in module names that mean's that this will not work
https://github.com/offirgolan/ember-light-table/blob/5ebc87115839e2e1ab9775f2ea8e5c63e97fe713/addon/templates/components/lt-row.hbs#L2
could we make a change where I can set a setting on the table to not concat the path and use the absolute path for the cellType component

This is unfortunate. Thanks for being on the bleeding edge and reporting this.

could we make a change where I can set a setting on the table to not concat the path and use the absolute path for the cellType component

Is an option. Another option is to add another property that takes precedence over cellType and will be more absolute and will fallback on the concat behavior with cellType.
I'm curious what the greater vision is here though.
Would we basically want packages (thinking in Java terms) where we could support protected components, that are specific to particular addons (packages), and can be resolved functionally like private component lookup, but are provided in by a consuming app.

We might be able to use local lookup components.
Useful blog post: https://madhatted.com/2017/7/12/embercamp-module-unification-update

where we could support protected components, that are specific to particular addons (packages), and can be resolved functionally like private component lookup, but are provided in by a consuming app.

This is very interesting not sure if has been thought about, would be like creating a local lookup for light table but produced by the application using light table.

First of all, we have not documented or created a migration path for addons yet. This conversation is slightly premature. You could try porting this addon to a src/ dir, but I don't really know what would happen. I almost certainly wouldn't be the same as our final goal.
Local lookup seems like the correct pattern here. Given:
ember-light-table/src/ui/components/lt-row/template.hbs
ember-light-table/src/ui/components/lt-row/cells-base/template.hbs

You can invoke via local lookup:
{{! ember-light-table/src/ui/components/lt-row/template.hbs }}
{{component (concat 'cells-' cellType)}}

If the case was appropriate you could also yield a closure component. local lookup components are indeed "protected". They can only be invoked from a single template, in the case of {{cells-base}} from the template of {{lt-row}}.

Another aspect I would love to see covered in a migration plan is backwards compatibility with non-MU apps, if that is possible at all.

@buschtoens yeah that is something we need to figure out for the migration path. We want as much compatibility as possible to ensure everyone can make the migration without blocking others (both apps and addons)


Bump version to 2.8.0

#39  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @jklein24 and the rest of your teammates on  Graphite

Merge activity

May 14, 8:20 PM EDT: @jklein24 merged this pull request with Graphite.


Added support for bop.fm

Simple implementation that uses the V2 connector.
I noticed that the bop.fm site also has a really nice Bop.Player JavaScript object which we could bind too and listen to events and get further meta data from, such as duration.
refs #528

Nice! That's the simplicity what I wanted v2 connectors to be :)
Hope you didn't hit any problems.

Nothing wrong at all - was super easily! For sites that have such players it's great!


/v1/update-operation-key logic to exclude updating operation-key of AA

In test-suite,
SERVICELAYER / BASICPART /V1/UPDATE-OPERATION-KEY / ACCEPTANCE / ATTRIBUTE CONFIGURED? / NEW-OPERATION-KEY UPDATED? , operation-key is expected to be updated with a dummy value. Very rarely it chooses AA as input op-c, in such cases, the following OAM requests are failing with 401 unauthorized. This causes severe effect in further test results.
In test-suite, a fix needs to be included that could avoid considering AA op-c for updating operation-client

Implementation also excluded ElasticSearch for choosing operation client as ES instance doesnot have operation-key attribute


Add CRD upgrade to helm upgrade instructions

Description
Helm doesn't upgrade CRDs.
We've had a few users follow the helm upgrade instructions here and find that the uplevel Calico doesn't work because the uplevel CRDs are not present.
Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

Upgrade instructions for Helm now include a step to upgrade the CRDs.

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

I believe that this needs a run of make generate in order to clean up the pre-flight checks

It's great that https://github.com/projectcalico/calico/pull/7216 was merged, but without this documentation changes the upgrade changes is still broken/incomplete - at least for CRDs. It would be great to merge this. Thanks!

Docs have moved out of this repo since this PR was raised, so raising https://github.com/tigera/docs/pull/637 with this change instead.


Rotation on iPad broke all UI

Display camera view on iPad, then rotate it.

@thierrybucco Nice catch. The picker only works in portrait mode, we need to lock its orientation from our side. This will be fixed in next version :)

Well forcing supportedInterfaceOrientations to portrait in YPImagePicker works for phones but the orientation callbacks are not called on iPads. No idea at the moment :/

I've had issues like this before with iPad in landscape, to make it at least useable instead of completely broken perhaps you could just make the views left and right constraints based around the readable content guides on iPad.
This way it will be heavily inset on iPad but it should at least make it look decent and be functional 🙂

Still an issue also with selecting photos. I receive support requests from users indicating they can not select multiple photos on iPad.

There is 2022 year outside🎉 Old outdated issues are closing. Please search if there are already existing issues with the same problem before opening new ☮


Scrolling on iPhone is weired

Thank you for a such good library, it works as expected. But the only problem is that scroll doesn't work like a native. On iPhone it works really bad.
I tried to set virtual=false, but it renders all items at once.
Also I cannot understand how fullHeight works. When I use fullHeight=true, the whole list is rendered.

You can try Chinese mobile phone repair PHONE

I have decided to see what fullHeight prop does and I have seen this:

It just changes max-height to height...


Problem about online classifier.

Well, i am learning the online classifier part of the siamfcpp ,but i can not find a paper discribe similar structure.Could you please give me some advice on the structure about the online classifier?

the online version of siamfcpp is the combination of siamfc++ and ATOM, there is no paper to illustrate it. You can refer to DROL for some suggestions.

the online version of siamfcpp is the combination of siamfc++ and ATOM, there is no paper to illustrate it. You can refer to DROL for some suggestions.

Thanks a lot！This repo is a great resource for learning!

Thanks a lot！This repo is a great resource for learning!


🎁 [Feature Request]: Display total amount of assets under the asset name in Category page

What is the feature you would like to see?
Right now, we display the following:

the logo
the name (symbol)
total value
value change
percentage change

We should also display the total amount.

The place for total amount can be right under the symbol


Move/tweak ENS name display in the navigation bar for Wallet tab

We don't have a way to customize the area around the (big title) in the navigation bar other than setting the title. Can we figure out somewhere else to move it or tweak the display? (eg. a simple alternative is just replace "Wallet" with the ENS name), but it'd affect #2273
Context: #2266

Concluded in #2266


Optional Parameters to Customize Class Names

.. would be awesome.  Thanks.

Could you explain your specific use case?
Did you already use the class names for other means and are running into conflicts?

Just for personal preferences, haven't had any conflicts

Hi David,
sorry for the delay in getting back to you. Been a bit busy recently...
I've pushed a commit to implement this in the 'dev' branch. Would you mind checking out the 'dev' branch to see if this is what you're looking for?
One particular question I have is the following: is it acceptable for you to modify parameters in the script directly? Or would you prefer constructing an options object in your own script, which calls something like ScrollPosStyler.init(options); ?
I'm really not sure about this one - because the way it is implemented right now doesn't require the average user to write any custom JS code at all...
Thanks for your feedback - all the best!
Achim

Either way, modifying the script directly would be fine.  It was really just a suggestion I thought I'd throw out there that would make it more attractive to those who, like myself, use BEM or some specific opinionated naming convention.  I can be insane and picky about these things :) .
An optional parameter that if undefined would default to the way it is now.  Some use an options object that's merged with a default one and overrides only what's defined (I think Lodash has a vanilla module  that can be used standalone that provides this functionality),  Maybe check for an override and start automatically if none is found.
For dependencies that I update frequently, I prefer setting options so I can update the core with a though.package manager, but this is smaller and modifying the script wouldn't be an issue.,

Thanks for the insight.
I'll go ahead an mark this closed for the time being. I'll add "Initialization via options object that's merged with a default one" to my TODO-list.
Again, thanks for your help and all the best!


Errors with json-asff in CentOS: tr: range-endpoints of '~-\012' are in reverse collating sequence order

When running in a CentOS docker image and using the json-asff output mode I am seeing errors in the output:
tr: range-endpoints of '~-\012' are in reverse collating sequence order
The script is completing successfully, and if I pipe stderr to a file or to /dev/null I see all the output that I would expect in stdout, so it does appear to be working properly otherwise, I just get tons of those errors in stderr that I have to sift through or filter out.
I don't see those errors when I run from MacOS.

I've tracked the issue down to the "generateJsonAsffOutput" function in include/output:
  --arg UNIQUE_ID "$(LC_ALL=C echo -e "${message}" | tr -cs '[:alnum:]._~-\n' '_')" \
I'll submit a PR to suppress the error, but I wonder if it wouldn't make more sense to just switch to sed instead of tr since that "reverse collating sequence order" is a known issue that can come up with tr from time to time anyway. (Even with the error suppressed, the script still exits with error code 3 regardless if there are any test fails in the results, regardless of which OS I've tested on or what output mode I choose.)

I'll submit a PR to suppress the error, but I wonder if it wouldn't make more sense to just switch to sed instead of tr since that "reverse collating sequence order" is a known issue that can come up with tr from time to time anyway. (Even with the error suppressed, the script still exits with error code 3 regardless if there are any test fails in the results, regardless of which OS I've tested on or what output mode I choose.)

Actually it seems that error code 3 is coming from somewhere else, so ignore that and just take a look at that PR for now please. I'll just have to factor non-zero exit codes into my own scripts when I invoke yours. :)

From googling there are some possible other fixes for this issue which I'll test on my CentOS VM - we should be able to resolve the error without suppressing it I reckon

@marcjay I like your solution better. I'm withdrawing my PR in lieu of the one you've opened.

@toniblyx Please take a look at this issue when you can. Turns out this isn't just causing error output, it's also affecting the data itself, because the "UNIQUE_ID" variable definition is failing and results in the "Id" field in json-asff output being incomplete for every result when run in CentOS. The PR from @marcjay resolves both aspects for me.

Thank you both for helping out with this fix!


413 implement creating new playlists

Issue: https://github.com/xou816/spot/issues/413
Hi,
I've been working on implementing creating new playlists.
The current state is this:
There's a new sidebar entry 'New Playlist'. If you click on it, a popover appears to the right of the sidebar entry, where you can put in the name of the new playlist. You can press the 'Enter' key or click 'Create' to confirm.
A request is made to the spotify API to create the playlist with name $NAME without additional parameters (which means that spotify uses it's default: public=true, collaborative=false).
Once the playlist is created, a Notification appears saying that a new playlist with $NAME has been created.
I'm happy with the changes apart from two things:

We had originally discussed to include a button in the toast, which brings the user to the newly created playlist
After creating a new playlist, the sidebar entry below 'New Playlist' will always appear to be selected, even though another one was selected before. This will also be inconsistent with what is actually shown in the leaflet.

Regarding 1): As I understand it, we currently have the AppAction ShowNotification(String) (which is what I am using currently). It might make sense to have a more generalized ShowNotification, but I'm not sure what signature that should have. I wanted to get somebody else's opinion before working on that.
Regarding 2): My idea for how to change that was this: I wanted to save the activated row of the listbox whenever a row is activated. If we always know the row that was activated before, we can activate it again after the popover pops down. That does not work however, since ListBox::connect_row_activated expects a closure that implements 'Fn', not only 'FnMut'. We need it to be FnMut since we want the closure to mutate the previously activated row.
I haven't had a good idea how we would fix that yet.
As usual, it probably also makes sense to discuss the UI:

I'm looking forward to feedback and suggestions.

Hi there! Off to a good start I see!!
I am no expert with the aesthetics part, but one suggestion I would have is to have "Name" be a placeholder to the input so that we can be rid of a label and the extra space it takes.
As for your other two points:

Try and find something that works for you, as a separate action, we might not need to generalize just yet :) if I were to do it, I'd suggest something like ShowActionNotification { message: String, action_label: String, action: Box } if you see what I mean]

I am not entirely sure what you are trying to achieve, but I doubt you actually need FnMut -- Gtk widgets usually implement interior mutability in some way and a plain ref is enough to mutate them. Could you give some details about what you're trying to do? But really what we should be doing is apply the usual pattern here (so you don´t have to worry about cloning a bunch of widgets inside closures), and have some model that reads the app state to know where we stand navigation-wise. I understand it might not be so easy atm since I never took the time to properly manage the sidebar state as part of the app state. I could handle some of that boilerplate over the weekend if you feel this might help!

Nice work otherwise, looking forward to see it in action :)

ShowActionNotification { message: String, action_label: String, action: Box }

Box? Toasts take a GAction: Adw.Toast

Ooops, I missed a word -- I meant Box, as in, this action wraps another action that would be triggered within a Toast indeed

Hi there! Off to a good start I see!!
I am no expert with the aesthetics part, but one suggestion I would have is to have "Name" be a placeholder to the input so that we can be rid of a label and the extra space it takes.
As for your other two points:
1. Try and find something that works for you, as a separate action, we might not need to generalize just yet :) if I were to do it, I'd suggest something like ShowActionNotification { message: String, action_label: String, action: Box } if you see what I mean]

2. I am not entirely sure what you are trying to achieve, but I doubt you actually need FnMut -- Gtk widgets usually implement interior mutability in some way and a plain ref is enough to mutate them. Could you give some details about what you're trying to do? But really what we should be doing is apply the usual pattern here (so you don´t have to worry about cloning a bunch of widgets inside closures), and have some model that reads the app state to know where we stand navigation-wise. I understand it might not be so easy atm since I never took the time to properly manage the sidebar state as part of the app state. I could handle some of that boilerplate over the weekend if you feel this might help!

Nice work otherwise, looking forward to see it in action :)

Good idea about the label. I got rid of the label and put in a placeholder text for the Entry.

Regarding 1):
Sorry, I can't quite follow. I thought you meant something like this:
ShowActionNotification(String, String, Boxgio::Action)
But that won't work, since we can't send actions across threads because they contain some mutable references that are not thread safe.
Regarding 2):
I looked into this myself over the weekend. I had actually already introduced a 'HomeModel' and am using that to call the dispatcher. I haven't made much progress on using it to access the app state etc.
A little help here would be appreciated, but I understand if you can't make the time for it.
Thanks for the help so far!

Having the title be in placeholder presents bit of an accessibility issue, so I'd just advise copying what Nautilus does here:

I will have a proper look a bit later but I meant Box<AppAction>... sorry, just realized GitHub gobbles words if you use chevrons in plain text... Otherwise you can just have a PlaylistCreated event that's handled by the notification component, that's fine too!

Having the title be in placeholder presents bit of an accessibility issue, so I'd just advise copying what Nautilus does here:

Copying the .ui file from Nautilus with only renaming always gives me something very odd looking:

I'm going to go back to what I had before with the label, see above.
I also worked on the Toast for a while but got stuck:
The button appears to be deactivated:

I haven't figured out why, maybe one of you has an idea?

Looks like you haven't defined the gio::Action you mean to trigger I'd say!

Looks like you haven't defined the gio::Action you mean to trigger I'd say!

I don't think that's it, I have defined it, but probably not quite correctly. If I set action_name on the Toast to an action that doesn't exist, it behaves exactly the same. I'll keep looking into it.

oh okay saw it now, I think you have to call it as app.open_playlist (you can also use the Gtk inspector to see actions)

oh okay saw it now, I think you have to call it as app.open_playlist (you can also use the Gtk inspector to see actions)

Oh wow, thanks, that works. I could have sworn I had already tried that. Thanks for the tip about GTK inspector too, I hadn't heard of that before, it's pretty neat.
I also just rebased on /development, hence all the new commits.
I think that mostly leaves the issue of making sure that the state of the app is consistent with the Sidebar listbox, which I'll be working on.

Hi there, sorry about the hiatus, I was busy with other things.
I went into the direction you mentioned here under 2.:

Hi there! Off to a good start I see!!
I am no expert with the aesthetics part, but one suggestion I would have is to have "Name" be a placeholder to the input so that we can be rid of a label and the extra space it takes.
As for your other two points:
1. Try and find something that works for you, as a separate action, we might not need to generalize just yet :) if I were to do it, I'd suggest something like `ShowActionNotification { message: String, action_label: String, action: Box<AppAction> }` if you see what I mean]

2. I am not entirely sure what you are trying to achieve, but I doubt you actually need FnMut -- Gtk widgets usually implement interior mutability in some way and a plain ref is enough to mutate them. Could you give some details about what you're trying to do? But really what we should be doing is apply the usual pattern here (so you don´t have to worry about cloning a bunch of widgets inside closures), and have some model that reads the app state to know where we stand navigation-wise. I understand it might not be so easy atm since I never took the time to properly manage the sidebar state as part of the app state. I could handle some of that boilerplate over the weekend if you feel this might help!

Nice work otherwise, looking forward to see it in action :)

Basically, I am saving the currently and previously selected row in a SidebarState class and then, when 'All Playlists' receives a 'select' signal, I check if it is selected even though I don't have it as selected in the app state. If that's the case, then I reselect the row that I have saved as selected in the app state.
This is sort of hacky but it's the best I could come up with.
Before, I selected the 'correct' row in the popdown signal of the Popover, which would result in the correct row being selected for a split second, then 'All Playlists' would be selected. So that was simply to soon.
The one remaining issue (apart from design decisions that are probably also worth discussing) is this:
When I click 'New Playlist', then close the popover, the ListBoxRow underneath it ('All Playlists') is not selected (because I am overriding it with what  I described above) but it does receive this green outline. I don't know what that is, what to call it (so I can research how to stop it) and I don't think there's another scenario where it appears. Some help in that direction would be much appreciated!

So for this screenshot, I had 'Now Playing' selected, then clicked 'New Playlist'. After the Popover pops down, the correct row is selected again, it just has this green line around it.

Hi! First of all: no worries at all!! I am not being very active either, and no one pressures you, hopefully :) thanks for working on this!
The whole selecting the correct row business seems very complicated. Do you have a previous commit reference I could checkout to help you investigate this split-second selection thing? Maybe there is something we can do that would avoid all this complex state management to solve it? Maybe not, but let's double check! I wonder what's the behavior if we make that New Playlist row not selectable for instance?
Otherwise, I added a few more comments on the other changes. Give me a heads up if something does not make sense!
Thanks again!

Regarding the split-second selection: I will whip something up and post a link to that later. I had tried making 'New Playlist' non-selectable, that didn't help though, it just changed the styling when 'New Playlist' was activated IIRC.

Just to re-iterate: What I was talking about with the split second selection was this: If I select the correct row on close of the new playlist popover, it will shortly select the previous/correct item, then go back.
I re-implemented what I had and pushed it here:
https://github.com/abegert/spot/commit/69fd2c121b7041a1feee126a0c2a571eaae44817
But that only slightly simplifies things, we still need to save the state.

And one last thing: Do you have a tip what the green outline thing is called? I would also like to get rid of that. (see my comment https://github.com/xou816/spot/pull/462#issuecomment-1055314883)

Right! State management is good, but it seems fairly convoluted at the moment. Ideally it should not allow storing invalid states (eg New playlist being selected) and avoid storing purely technical details when possible.
So in our case I´d expect the state to only actually store the name of one of the selectable rows and no other, this way it can be read and restored at any point and yield something correct

Right! State management is good, but it seems fairly convoluted at the moment. Ideally it should not allow storing invalid states (eg New playlist being selected) and avoid storing purely technical details when possible.
So in our case I´d expect the state to only actually store the name of one of the selectable rows and no other, this way it can be read and restored at any point and yield something correct

That sounds reasonable but I don't know how to implement it that way with the current approach. I just slightly rewrote it to update the state when the select signal is emited (only if the row is not the new playlist one) and then reselect the currently selected one. So that would override the selections that were done implicitly, such as the select of all playlists after creating a new one.
However, that approach doesn't work, it will always go back to the previously selected row. I think this is because when the reselect is called, the state has not been updated, since that happens asynchronously.
Hope I am explaining it well enough. So I can't think of an approach that does not involve keeping both the previously and the currently selected row.

I think I don't have a good grasp on what's happening, I'll run it for myself asap. Thanks!

Okay so upon further inspection I think I see what's happening (well not fully)
When we exit the popover, keyboard focus is transferred back to the main window as it should, and seems to be moved to the next focusable element that it finds (the All Playlists row), I don't know why it focuses and triggers selection too, though
Not so easy to fix however we handle it!
I guess one possible workaround would be to change the widget hierarchy so that the next focusable element when coming back from the popover would be something else, maybe the button that shows the popover itself. I wonder if having something like
box
|_ popover
|_ button
would work.

Okay so upon further inspection I think I see what's happening (well not fully)
When we exit the popover, keyboard focus is transferred back to the main window as it should, and seems to be moved to the next focusable element that it finds (the All Playlists row), I don't know why it focuses and triggers selection too, though
Not so easy to fix however we handle it!
I guess one possible workaround would be to change the widget hierarchy so that the next focusable element when coming back from the popover would be something else, maybe the button that shows the popover itself. I wonder if having something like
box |_ popover |_ button
would work.

Thanks for the tip, I'm going to look into it in detail soon. I also saw that I actually hadn't set a parent for all widgets. Could also be interesting to set the parent of popover to the listbox and then utilize set_pointing_to to have it pointing at the correct spot. Thanks!

if this proves too much right now, we can probably work with that for now, i want to do some work in this area anyway so there'll be other occasions to fix this little glitch!

Hey, so I have been trying to get it to work by setting the parent of the popover to listbox, but I can't stop it from segfaulting in gtk_list_box_get_next_visible. I'm not sure what that's about, but I think the approach of getting rid of this appstate stuff I wrote most recently and try to get it working with correctly setup parents and attributes for the ListBoxRows is more promising and less hacky.
Regarding how we should proceed: Totally up to you.

hey sorry I forgot about this being the original PR! I continued your work on a different branch as I was doing some refactoring, and I merged it recently, thanks a lot @abegert !! if there's something you'd like to see changed feel free to open up issues/PRs


#dugeon -> #dungeon

This PR changes #dugeon to #dungeon in the short description field. Sorry this is quite trivial :p

oh ty


How can I watch without deploying?

Problem
I want to watch files locally, deploy them locally and see changes using BrowserSync. Basically slate watch but without the deploy.
I want to deploy when I am ready.
Replication steps
Run slate watch, it deploys, how do I make it not deploy.
More Information
Nope.

This isn't possible with the tool.  There's no "true local" development with Slate, but a link to a specified environment in your config.yml file.

I want to deploy when I am ready.

It's recommended to specify a separate environment in your config.yml for development, staging, production, etc.  An example can be seen in sample-config.yml


'import type' declarations can only be used in TypeScript files inside .tsx files

Bug Report
The error is simple. On latest installation of any react project (NextJS in my case) in WSL 2(Ubuntu 22) Windows 11(latest); VSCode (1.80.2) throws this error:

'import type' declarations can only be used in TypeScript files: ts:8006
Type annotations can only be used in TypeScript files. ts: 8010

Note the file extension. It's .tsx already.

🔎 Search Terms
I used 8006, 8010, the complete message I am getting and also commented in one previous post with similar issue which got closed few years back. Was told to create a new issue.
🕗 Version & Regression Information
It started in all new projects for all version 5 and above typescript in NextJS App Router version in Windows WSL 2.
💻 Code
layout.tsx
import "./globals.css"
import type { Metadata } from "next"
import { Inter } from "next/font/google"

const inter = Inter({ subsets: ["latin"] })

export const metadata: Metadata = {
  title: "Some Name",
  description: "Lorem ipsum",
}

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <body className={inter.className}>{children}</body>
    </html>
  )
}

tsconfig file:
{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "bundler",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "plugins": [
      {
        "name": "next"
      }
    ],
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
  "exclude": ["node_modules"]
}

🙁 Actual behavior
it is not understanding tsx file as typescript file.
🙂 Expected behavior
tsx files should be recognised easily.

I can't repro this. Can you post a TS Server log? Does this repro under tsc ? Have you turned off any VS Code extensions that might be doing weird stuff?

It mainly happens in VSCode in Windows 11 WSL2. I'll provide the logs by tomorrow.

I can't repro this. Can you post a TS Server log? Does this repro under tsc ? Have you turned off any VS Code extensions that might be doing weird stuff?

It mainly happens in VSCode in Windows 11 WSL2. I'll provide the logs by tomorrow.

I can't repro this. Can you post a TS Server log? Does this repro under tsc ? Have you turned off any VS Code extensions that might be doing weird stuff?

Added TS Server Logs. I noticed that .tsx file by default also gets evaluated as JSX JavaScript File. Then I changed it to TSX Typescript and then restart the typescript and the error goes away for sometime.

This server trace doesn't show that diagnostic getting posted - in other words, it's for the wrong server. I'm guessing the next plugin is doing something wrong

I see. Can you point the line in the Server Logs where this information is? I should post it to NextJS repo afterwards.

When you have an error, it'll appear in the server log looking something like this:
Info 523  [15:46:00.131] event:
    {"seq":0,"type":"event","event":"semanticDiag","body":{"file":"^/untitled/ts-nul-authority/D:/Throwaway/adt/decl.d.ts","diagnostics":[{"start":{"line":2,"offset":31},"end":{"line":2,"offset":38},"text":"Cannot find module 'react' or its corresponding type declarations.","code":2307,"category":"error"},{"start":{"line":10,"offset":15},"end":{"line":10,"offset":20},"text":"Cannot find module 'a/b' or its corresponding type declarations.","code":2307,"category":"error"}]}}

When you have an error, it'll appear in the server log looking something like this:
Info 523  [15:46:00.131] event:
    {"seq":0,"type":"event","event":"semanticDiag","body":{"file":"^/untitled/ts-nul-authority/D:/Throwaway/adt/decl.d.ts","diagnostics":[{"start":{"line":2,"offset":31},"end":{"line":2,"offset":38},"text":"Cannot find module 'react' or its corresponding type declarations.","code":2307,"category":"error"},{"start":{"line":10,"offset":15},"end":{"line":10,"offset":20},"text":"Cannot find module 'a/b' or its corresponding type declarations.","code":2307,"category":"error"}]}}

Thanks. Will take it to NextJS team.

I have the same  problem too. I feel very confused!!
The vue3 + vite:

We don't control behavior in .vue files

hey @WangZhenHao have you fixed it? can you please share if yes?

hey @WangZhenHao have you fixed it? can you please share if yes?

yes，I make a mistake. You should select the language mode for "vue"


listener: add support for multiple protocol sniffers.

Previously, TLS Inspector set detected transport protocol to either "tls"
or "raw_buffer", however, such approach didn't allow multiple sniffers to
be installed at the same time, since they would overwrite results from
each other.
After this change, protocol sniffers will set detected transport protocol
only when they find the one they know about it, and listener will set the
default one ("raw_buffer") in case no known transport protocol was found.

cc @ggreenway @lizan


Compatibility with BLE Stack

Dear Sir,
Wonder if I can use your IR receiver code and run as a GATT server as well?
Regards,
Brian

It should work as the IR receiver is entirely dependent on PPI channels and not the CPU. so even if the GATT Server interrupts the CPU, IR Receiver is not effected much


Pick #1162 for dev branch

Change the length of the commit messages
Now the commit messages and the default length of the rulers is 72.
(Surely this wasn't a hotfix 😬, I want this in dev for testing.)

(Actually how is the release story here anyway. Just never do it?)

(Actually how is the release story here anyway. Just never do it?)

Sorry for not being around because I was busy moving during the summer. Will try to pick up. @stoivo may know more about current development, are we ready for a release?
PS: @divmain are you still around? I highly recommend joining the team.

I was thinking to go throught the open PR week, freeze dev, then release.  I feel bad for not having time to look at the PR before.


HL7 filters

Will add documentation on Filter Syntax in documentation.
For PR testing purposes:
PID-5-1 EQUALS Blah    -- Filter on a single field.
[PID-5-1 CONTAINS Blah] AND [PID-5-2 STARTS_WITH A]    -- Filter on more than one field
(MSH-8-4() EQUALS Foo)   -- Any repetition of MSH-8-4 equals Foo.  If multiple terms appear inside the parentheses, they must all be part of the same repetition.
These can be combined at any level of nesting.
[MSH-8-4 EQUALS Foo] OR*([OBSERVATION()/OBX-3-1 CONTAINS Blah] AND [OBSERVATION()/OBX-9-1 EQUALS N])   -- Matches off "Foo" or "Blah" and "N" in the same repetition.

I think this is a great start.  Going forward we will need to make the syntax parsing a bit more robust to deal with unmatched brackets and parentheses.


Looking for Developer to Create Simple Software for Hikvision DS-TCG406-E ANPR Camera

Hello, Dear Partners!
We are very interested in your project involving Hikvision equipment. My name is Denis, and I am with Skyvision Co. Ltd., based in Azerbaijan. We are about to launch a project focused on developing our own software for a management parking system, and we plan to use the Hikvision DS-TCG406-E ANPR camera. As you know, this is one of the latest Hikvision models suitable for creating a fully integrated parking solution.
We are currently looking for an expert who can assist us in developing this program. If you have source code for the DS-TCG406-E camera that could be integrated into our solution, we would be interested in purchasing it. Our preferred programming language is C++. As a startup in the early stages, we are hoping to keep costs reasonable. We look forward to your support and the opportunity to work with you.
Please feel free to reach me at<EMAIL_ADDRESS>With best regards,
Denis Vlasov
Director for Infrastructure Solutions
Skyvision Co. Ltd.

Hello, Dear Partners! We are very interested in your project involving Hikvision equipment. My name is Denis, and I am with Skyvision Co. Ltd., based in Azerbaijan. We are about to launch a project focused on developing our own software for a management parking system, and we plan to use the Hikvision DS-TCG406-E ANPR camera. As you know, this is one of the latest Hikvision models suitable for creating a fully integrated parking solution. We are currently looking for an expert who can assist us in developing this program. If you have source code for the DS-TCG406-E camera that could be integrated into our solution, we would be interested in purchasing it. Our preferred programming language is C++. As a startup in the early stages, we are hoping to keep costs reasonable. We look forward to your support and the opportunity to work with you. Please feel free to reach me at<EMAIL_ADDRESS>With best regards, Denis Vlasov Director for Infrastructure Solutions Skyvision Co. Ltd.

Hi, I have sent you back an email about the same. Waiting to hear back from you.
Regards, Tanay Kedia.
You can contact me here-<EMAIL_ADDRESS>

Hi @vlasov7979 , I have sent you an email regarding the same. Kindly reply back at the earliest. Thank You


Feature/aerospike cache improvements

thank you, I will take a look today. unfortunately i was on a sick leave today 🙁

@reugn @roimenashe i've left some comments. i think, we can make fixes to the current implementation in this PR, what do you think?

@Aloren agree.

@Aloren There was a design change to overcome some issues we had and for better readability, please review the latest changes.
Regarding your comments, i've addressed them in the new design and replied.
Thanks

@Aloren I addressed your latest comments and added a little refactor in the configuration area, also removed a few constructors from the cache manager since we felt they are adding more confusing than helpful.
Please review the latest changes and approve\reply, Thank you.


assigning class weight to each class during training and access to the each class map and recall

As it is obvious, access to the each class map and recall in an object detection task is so helpful. But, I cannot find a function that returns each class accuracy during testing in this repository. Can anybody help me in this regard?
Also, I want to assign class weight to each class during training to improve my object detection model by considering the importance of each class. I set “class_weights” in “model.fit” but I wasn’t successful. I will appreciate any guidance in this regard, too

Temp added a class_weight parameter for AnchorFreeLoss and YOLOV8Loss. Currently it's a list value with length equal to num_classes. You can call them be given class_weight like:
class_weight = [ii / 80 for ii in range(80)]  # num_classes=80
aa = losses.AnchorFreeLoss(input_shape=(640, 640), class_weight=class_weight)

As class_weights in model.fit is mainly for classification task, cannot be applied in this situation.

Thank you for adding the class_weight parameter. I have a dataset with 5 classes: 4 classes represent objects, and 1 class represents the background. The samples of background class is much more than the others. The class labels are defined as 0, 1, 2, 3, and 10, respectively. The class label 10 represents the background class, which is not important to me. My main focus is on defining the objects of class 0, 1, 2, 3. Should I set class_weight=[1, 1, 1, 1, 0]? Additionally, what should I do if I want to have sample_weight, too? I believe it may be more suitable for my case as described in "https://stackoverflow.com/questions/32492550/what-is-the-difference-between-sample-weight-and-class-weight-options-in-scikit". Thank you for your guidance

So you have num_classes=11, I think it should be class_weight=[1, 1, 1, 1] + [0] * 7.
For sample_weight, I didn't try it for training, just according to keras/losses.py#L102, it should be still able to apply on loss level, via model.fit.from keras_cv_attention_models.coco import losses, anchors_func
aa = losses.AnchorFreeLoss(input_shape=(640, 640), use_l1_loss=True)

from keras_cv_attention_models import yolox, test_images
from keras_cv_attention_models.coco import anchors_func, data
mm = yolox.YOLOXS()
img = test_images.dog_cat()
pred = mm(mm.preprocess_input(img))

bbs, lls, ccs = mm.decode_predictions(pred)[0]
bbox_labels_true = tf.concat([bbs, tf.one_hot(lls, 80), tf.ones([bbs.shape[0], 1])], axis=-1)

# Fake y_true y_pred with batch_size=3
y_true = tf.concat([tf.expand_dims(bbox_labels_true, 0)] * 3, axis=0)
y_pred = tf.concat([pred] * 3, axis=0)
print("\n", aa(y_true , y_pred , sample_weight=1))
# - l1_loss: 0.31445995 - obj_loss: 0.887720227 - cls_loss: 0.390695155 - bbox_loss: 0.128081948
# tf.Tensor(2.233285, shape=(), dtype=float32)
print("\n", aa(y_true , y_pred , sample_weight=[1, 2, 3]))
# - l1_loss: 0.31445995 - obj_loss: 0.887720227 - cls_loss: 0.390695155 - bbox_loss: 0.128081948
# tf.Tensor(4.46657, shape=(), dtype=float32)

Just wondering should current class_weight be also applied to bbox_loss and others or not, currently it's only for class_loss.

Thank you for your guidance. Would you please explain how can I set sample_weight parameter if I want to train my model using coco_train_script.py function? Should I add sample_weight to AnchorFreeLoss function in losses.py or set it in model.fit?


Disable analytics for publicId with question mark

@maoznir , in the code it would be better to include a comment, saying why we exclude analytics for public IDs with ?. Nobody will remember it in 6 months or so.


Add 2.6 to version history

Add 2.6 to version history
Checklist

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

@hdhalter Could you provide a suggestion with what we need to add please? We are also linking to release notes, where all the features should be enumerated.

I just heard that search backpressure is now production ready.

Search backpressure was never experimental.


user settings

allows users to declare if they want to join a live play stream or contribute to literature or code reviews

another settings:

"notify me when another turn is available (at most once per day)"
"notify me when another turn is available (every time)"


i156 connect_graph_to_backend

Change Summary
connect graph
Change Form

[x] The pull request title has an issue number
[ ] The change works by "Smoke testing" or quick testing
[ ] The change has tests
[ ] The change has documentation

Related Issue

Resolve #156

@ChantelleKerr i implemented the changes pls have a look to see if it works correctly or not


Question about English Phonemes

I noticed that your txt file type does not use phones. But, Why?
I use packages such as g2p, but I can't get accurate phonemes and often get wrong phonemes.
Do you have any suggestions to get accurate phonemes?

I have found it.


Receiving topology updates

Created by Luis Marin Vera via monday.com integration. 🎉

Receiving topology updates (label: epic_topo_update): when supported by OXPO, OXPO should push topology updates to the SDX-LC that will push to the SDX Controller. (Luis)


Port to 1.19.2

Would you like to make a 1.19.2 branch?
Worked version: 1.19～1.19.2

Can you please update your branch to 1.19.2 ?
Thank you

For those impatient like me, PTOM has kindly provided a release in their repo: https://github.com/PTOM76/vanilla-hammers/releases/tag/v3.4.2-1.19


Added namespace to build.gradle file to support Gradle 8

Description

Adding Gradle 8 support

Thanks @dancout ! Fixed in 720ea9c124297e5e4c955a9cdb07c426a48fc878 following your PR.


Subgrid data Load from Server

It does not seem possible to load data into the subgrid by URL. The request is running, the data is returned correctly but is not displayed. In 1.4 works this.
With 1.5 not

Subgrids are refactored. Use children property of the record, here is a sample for you:
records: [{
  "recid": "rec-2",
  "personid": 2,
  "fname": "Katsia",
  "lname": "Yadav",
  "email"<EMAIL_ADDRESS>  "manager": "--",
  "snumber": "20801",
  "sdate":<PHONE_NUMBER>625,
  "stime": "2017-04-11T16:05:15.625Z",
  "style1": "background-color: #efefef",
  "w2ui": {
    "children": [
      {
        "recid": "rec-15",
        "personid": 15,
        "fname": "Olivia",
        "lname": "Johnson",
        "email"<EMAIL_ADDRESS>        "manager": "--",
        "snumber": "76918",
        "sdate":<PHONE_NUMBER>237,
        "stime": "2017-04-15T18:29:12.237Z",
        "style1": "background-color: #efefef",
        "w2ui": {
          "children": [],
          "colspan": {
            "personid": 2,
            "icon": 0
          },
          "parent_recid": "rec-2"
        }
      },
      {
        "recid": "rec-16",
        "personid": 16,
        "fname": "Sue",
        "lname": "Vaishnav",
        "email"<EMAIL_ADDRESS>        "manager": "--",
        "snumber": "24014",
        "sdate":<PHONE_NUMBER>076,
        "stime": "2017-04-08T06:31:16.076Z",
        "style1": "background-color: #efefef",
        "w2ui": {
          "children": [],
          "colspan": {
            "personid": 2,
            "icon": 0
          },
          "parent_recid": "rec-2"
        }
      },
      {
        "recid": "rec-17",
        "personid": 17,
        "fname": "Sergei",
        "lname": "Johnson",
        "email"<EMAIL_ADDRESS>        "manager": "--",
        "snumber": "10696",
        "sdate":<PHONE_NUMBER>071,
        "stime": "2017-04-12T07:56:06.071Z",
        "style1": "background-color: #efefef",
        "w2ui": {
          "children": [],
          "colspan": {
            "personid": 2,
            "icon": 0
          },
          "parent_recid": "rec-2"
        }
      }
    ],
    "colspan": {
      "personid": 5,
      "icon": 0,
      "fname": 0,
      "lname": 0
    },
    "hideCheckBox": true,
    "expanded": true
  }
}]

You can load it async after grid data is loaded, just call grid.refresh() after that. The old way was to create a nested grid inside a grid that proved to be a bad idea. You can still do it using expandable property, but you are on your own.
Close this, if it fixes you problem.

@mrg2001 This issue can probably be closed due to inactivity.

Closing issue: no response


Fix bug in provider docs

When running the first provider example, I get this error:
Error: ens name not found: 0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359`

I managed to fix this by parsing the string to a H160 type.
I'm new to rust so not 100% sure why it's behaving this way. The get_code (https://docs.rs/ethers-providers/0.6.2/src/ethers_providers/provider.rs.html#639) function uses
let at = match at.into() {
    NameOrAddress::Name(ens_name) => self.resolve_name(&ens_name).await?,
    NameOrAddress::Address(addr) => addr,
};

yet when I try doing the same outside of the get_code function:
    let address = "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359".parse::<H160>()?;
    let at = match address.into() {
        NameOrAddress::Name(ens_name) => println!("ens name"),
        NameOrAddress::Address(addr) => println!("addr"),
    };

I get an error:
the trait bound `ethers_core::types::NameOrAddress: From<ethers::prelude::H160>` is not satisfied
the following implementations were found:
  <ethers_core::types::NameOrAddress as From<&str>>
  <ethers_core::types::NameOrAddress as From<ethers_core::types::H160>>
required because of the requirements on the impl of `Into<ethers_core::types::NameOrAddress>` for `ethers::prelude::H160`rustcE0277

Motivation

Solution

PR Checklist

[ ] Added Tests
[ ] Added Documentation
[ ] Updated the changelog

thanks for flagging!


[Question]: How exactly do the title, keyword, summary and question answer metadata extractors work?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
I'm struggling to understand how the metadata extractor class functions as a feature extractor. Could you provide a simplified explanation using one of the extractors except for the entity extractor as an example?

node text + llm prompt = extracted summary/keywords/qa pair

node text + llm prompt = extracted summary/keywords/qa pair

What happens when I don't give the llm prompt - or when I dont use the llm parameter , does it implicitly still use a llm , if yes which one?

llm: LLMPredictorType = Field(description="The LLM to use for generation.")
  nodes: int = Field(
      default=5,
      description="The number of nodes to extract titles from.",
      gt=0,
  )
  node_template: str = Field(
      default=DEFAULT_TITLE_NODE_TEMPLATE,
      description="The prompt template to extract titles with.",
  )
  combine_template: str = Field(
      default=DEFAULT_TITLE_COMBINE_TEMPLATE,
      description="The prompt template to merge titles with.",
  )

Snippet from the title extractor , is this the LLM you are talking about?

Also where can we find this prompt?

Ok got an answer to what prompts are used by finding the templates in metadata_extractors.py.
Still couldn't find what LLM the base LLM points to but have a feeling it may be a version of llama.

Happy to close this once there is an answer to what LLM is used for the metadata extractors , I have been able to gather answers to other parts of my original question.

@TitasDas any component that uses an llm uses what Settings.llm points to (which by default is gpt-3.5)
You can change this by modifying the settings or passing in your own llm to the extractor constructor.

Thank you so much for sharing that.


Add-TeamUser - update the method to allow external users not in our AD - currently it fails.

Please add the ability to use Add-TeamsUser to allow adding users not in our AD already as a guest.
I regularly need to add 50 - 1000 users to a Team where the majority of the users are not in the Microsoft domain and not in our AD.  The Add-TeamsUsers method fails. I understand this is a current limitation, but for my scenario, I really need to enhance this to support other emails not in our domain (maybe add the users to AD in the background like Teams does when using the UI?)

Hello @rickmcguire Rick,
Here we are limited to documentation issues and fixes, for feature request you can use https://feedbackportal.microsoft.com/feedback/forum/ad198462-1c1c-ec11-b6e7-0022481f8472


CFI-3496: Inspire KG technical documentation

This PR contains only the README.md that contains a handful of practical use cases for the Inspire KG, in the form of SPARQL queries.
In order to test the queries out:

Go to our GraphDB instance on staging.
Make sure the inspire repository is selected (top-right corner).
Go to the SPARQL tab.
Run the queries (i.e., copy-paste the SPARQL excerpts and press RUN) and verify whether a result-set is retrieved.
Suggest additional SPARQL queries that may be illustrative enough for potential end users.

Looks good to me. I would just maybe one more query: top 5 sensory features per ingredient.

Looks good to me. I would just maybe one more query: top 5 sensory features per ingredient.

Thanks a lot @miguel-santo! I will add a query like the one you suggested.