cudatoolkit: reintroduce version 11.7.0 to master

Description of changes
This patch fixes https://github.com/NixOS/nixpkgs/pull/179912 which has been reverted on master due to https://gist.github.com/GrahamcOfBorg/45ac7f5bc9e02a74cb1e4264f365417f

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Could we refactor pkgs/development/libraries/science/math/tensorrt/extension.nix a bit such that upgrading cudatoolkit can be done without breaking the evaluation of tensorrt?

@samuela Sorry, I only just saw this PR.  Since I introduced TensorRT to nixpkgs, I feel I should take this on.  Could you elaborate a bit on what exactly you're proposing?

Hi @aidalgol, I think you nailed it in https://github.com/NixOS/nixpkgs/pull/192958. IIRC the issue was that TensorRT's evaluation would break if cudaVersion was upgraded without editing TensorRT's derivation. But it looks like https://github.com/NixOS/nixpkgs/pull/192958 should fix that!

@dguibert If you rebase off of https://github.com/NixOS/nixpkgs/pull/192958, then I think this should be good to go. Note that adding 11.7 to the supported versions of cudnn and TensorRT is still necessary in order to prevent those packages from being marked meta.broken but we shouldn't have any evaluation issues from here on out (thanks @aidalgol!!)

Hi @samuela and @SuperSandro2000,
I took time to rebase this PR and apply your suggestions ;-)

Result of nixpkgs-review pr 185557 run on x86_64-linux 1

4 packages marked as broken and skipped:

cudaPackages.nvidia_driver
python310Packages.cupy
python39Packages.cupy
truecrack-cuda

9 packages failed to build:

cudaPackages.tensorrt (cudaPackages.tensorrt_8_4_0)
ethminer (ethminer-cuda)
mathematica-cuda
python310Packages.numbaWithCuda
python310Packages.pyrealsense2WithCuda
python310Packages.tensorrt
python39Packages.numbaWithCuda
python39Packages.pyrealsense2WithCuda
python39Packages.tensorrt

59 packages built:

colmapWithCuda
cudaPackages.cuda_cccl
cudaPackages.cuda_cudart
cudaPackages.cuda_cuobjdump
cudaPackages.cuda_cupti
cudaPackages.cuda_cuxxfilt
cudaPackages.cuda_demo_suite
cudaPackages.cuda_documentation
cudaPackages.cuda_gdb
cudaPackages.cuda_memcheck
cudaPackages.cuda_nsight
cudaPackages.cuda_nvcc
cudaPackages.cuda_nvdisasm
cudaPackages.cuda_nvml_dev
cudaPackages.cuda_nvprof
cudaPackages.cuda_nvprune
cudaPackages.cuda_nvrtc
cudaPackages.cuda_nvtx
cudaPackages.cuda_nvvp
cudaPackages.cuda_sanitizer_api
cudatoolkit (cudaPackages.cudatoolkit ,cudatoolkit_11)
cudaPackages.cudnn (cudaPackages.cudnn_8_4_0)
cudaPackages.cudnn_8_3_2
cudaPackages.cutensor
cudaPackages.fabricmanager
cudaPackages.libcublas
cudaPackages.libcufft
cudaPackages.libcufile
cudaPackages.libcurand
cudaPackages.libcusolver
cudaPackages.libcusparse
cudaPackages.libnpp
cudaPackages.libnvidia_nscq
cudaPackages.libnvjpeg
cudaPackages.nccl
cudaPackages.nsight_compute
cudaPackages.nsight_systems
cudaPackages.nvidia_fs
forge
gpu-burn
gromacsCudaMpi
gwe
katagoWithCuda
librealsenseWithCuda
magma
nvtop
nvtop-nvidia
python310Packages.TheanoWithCuda
python310Packages.pycuda
python310Packages.pynvml
python310Packages.tensorflowWithCuda
python310Packages.torchWithCuda
python39Packages.TheanoWithCuda
python39Packages.pycuda
python39Packages.pynvml
python39Packages.tensorflowWithCuda
python39Packages.torchWithCuda
xgboostWithCuda
xpraWithNvenc

Result of nixpkgs-review pr 185557 run on x86_64-linux 1

4 packages marked as broken and skipped:

cudaPackages.nvidia_driver
python310Packages.cupy
python39Packages.cupy
truecrack-cuda

9 packages failed to build:

cudaPackages.tensorrt (cudaPackages.tensorrt_8_4_0)
ethminer (ethminer-cuda)
mathematica-cuda
python310Packages.numbaWithCuda
python310Packages.pyrealsense2WithCuda
python310Packages.tensorrt
python39Packages.numbaWithCuda
python39Packages.pyrealsense2WithCuda
python39Packages.tensorrt

59 packages built:

colmapWithCuda
cudaPackages.cuda_cccl
cudaPackages.cuda_cudart
cudaPackages.cuda_cuobjdump
cudaPackages.cuda_cupti
cudaPackages.cuda_cuxxfilt
cudaPackages.cuda_demo_suite
cudaPackages.cuda_documentation
cudaPackages.cuda_gdb
cudaPackages.cuda_memcheck
cudaPackages.cuda_nsight
cudaPackages.cuda_nvcc
cudaPackages.cuda_nvdisasm
cudaPackages.cuda_nvml_dev
cudaPackages.cuda_nvprof
cudaPackages.cuda_nvprune
cudaPackages.cuda_nvrtc
cudaPackages.cuda_nvtx
cudaPackages.cuda_nvvp
cudaPackages.cuda_sanitizer_api
cudatoolkit (cudaPackages.cudatoolkit ,cudatoolkit_11)
cudaPackages.cudnn (cudaPackages.cudnn_8_4_0)
cudaPackages.cudnn_8_3_2
cudaPackages.cutensor
cudaPackages.fabricmanager
cudaPackages.libcublas
cudaPackages.libcufft
cudaPackages.libcufile
cudaPackages.libcurand
cudaPackages.libcusolver
cudaPackages.libcusparse
cudaPackages.libnpp
cudaPackages.libnvidia_nscq
cudaPackages.libnvjpeg
cudaPackages.nccl
cudaPackages.nsight_compute
cudaPackages.nsight_systems
cudaPackages.nvidia_fs
forge
gpu-burn
gromacsCudaMpi
gwe
katagoWithCuda
librealsenseWithCuda
magma
nvtop
nvtop-nvidia
python310Packages.TheanoWithCuda
python310Packages.pycuda
python310Packages.pynvml
python310Packages.tensorflowWithCuda
python310Packages.torchWithCuda
python39Packages.TheanoWithCuda
python39Packages.pycuda
python39Packages.pynvml
python39Packages.tensorflowWithCuda
python39Packages.torchWithCuda
xgboostWithCuda
xpraWithNvenc

Result of nixpkgs-review pr 185557 run on x86_64-linux 1

4 packages marked as broken and skipped:

cudaPackages.nvidia_driver
python310Packages.cupy
python39Packages.cupy
truecrack-cuda

9 packages failed to build:

cudaPackages.tensorrt (cudaPackages.tensorrt_8_4_0)
ethminer (ethminer-cuda)
mathematica-cuda
python310Packages.numbaWithCuda
python310Packages.pyrealsense2WithCuda
python310Packages.tensorrt
python39Packages.numbaWithCuda
python39Packages.pyrealsense2WithCuda
python39Packages.tensorrt

59 packages built:

colmapWithCuda
cudaPackages.cuda_cccl
cudaPackages.cuda_cudart
cudaPackages.cuda_cuobjdump
cudaPackages.cuda_cupti
cudaPackages.cuda_cuxxfilt
cudaPackages.cuda_demo_suite
cudaPackages.cuda_documentation
cudaPackages.cuda_gdb
cudaPackages.cuda_memcheck
cudaPackages.cuda_nsight
cudaPackages.cuda_nvcc
cudaPackages.cuda_nvdisasm
cudaPackages.cuda_nvml_dev
cudaPackages.cuda_nvprof
cudaPackages.cuda_nvprune
cudaPackages.cuda_nvrtc
cudaPackages.cuda_nvtx
cudaPackages.cuda_nvvp
cudaPackages.cuda_sanitizer_api
cudatoolkit (cudaPackages.cudatoolkit ,cudatoolkit_11)
cudaPackages.cudnn (cudaPackages.cudnn_8_4_0)
cudaPackages.cudnn_8_3_2
cudaPackages.cutensor
cudaPackages.fabricmanager
cudaPackages.libcublas
cudaPackages.libcufft
cudaPackages.libcufile
cudaPackages.libcurand
cudaPackages.libcusolver
cudaPackages.libcusparse
cudaPackages.libnpp
cudaPackages.libnvidia_nscq
cudaPackages.libnvjpeg
cudaPackages.nccl
cudaPackages.nsight_compute
cudaPackages.nsight_systems
cudaPackages.nvidia_fs
forge
gpu-burn
gromacsCudaMpi
gwe
katagoWithCuda
librealsenseWithCuda
magma
nvtop
nvtop-nvidia
python310Packages.TheanoWithCuda
python310Packages.pycuda
python310Packages.pynvml
python310Packages.tensorflowWithCuda
python310Packages.torchWithCuda
python39Packages.TheanoWithCuda
python39Packages.pycuda
python39Packages.pynvml
python39Packages.tensorflowWithCuda
python39Packages.torchWithCuda
xgboostWithCuda
xpraWithNvenc

Here are the failure logs:
error: builder for '/nix/store/ybsmhdrmjy8xarlvf53kzlj4bbfw7b20-Mathematica_13.1.0_BNDL_LINUX.sh.drv' failed with exit code 1;
       last 8 log lines:
       >
       > ***
       > This nix expression requires that Mathematica_13.1.0_BNDL_LINUX.sh is
       > already part of the store. Find the file on your Mathematica CD
       > and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
       >
       > ***
       >
       For full logs, run 'nix log /nix/store/ybsmhdrmjy8xarlvf53kzlj4bbfw7b20-Mathematica_13.1.0_BNDL_LINUX.sh.drv'.
error: 1 dependencies of derivation '/nix/store/nas8dqxwnya0h3bc5ddnygbzhi1ydjr6-mathematica-cuda-13.1.0.drv' failed to build
error: builder for '/nix/store/yg5akr0m7llg7d4ngjwd9i96jw6sz1qw-TensorRT-<IP_ADDRESS>.Linux.x86_64-gnu.cuda-11.6.cudnn8.3.tar.gz.drv' failed with exit code 1;
       last 10 log lines:
       > download the <IP_ADDRESS> Linux x86_64 TAR package for CUDA 11.7 from
       > https://developer.nvidia.com/tensorrt.
       >
       > Once you have downloaded the file, add it to the store with the following
       > command, and try building this derivation again.
       >
       > $ nix-store --add-fixed sha256 TensorRT-<IP_ADDRESS>.Linux.x86_64-gnu.cuda-11.6.cudnn8.3.tar.gz
       >
       > ***
       >
       For full logs, run 'nix log /nix/store/yg5akr0m7llg7d4ngjwd9i96jw6sz1qw-TensorRT-<IP_ADDRESS>.Linux.x86_64-gnu.cuda-11.6.cudnn8.3.tar.gz.drv'.
error: 1 dependencies of derivation '/nix/store/9lqc02hrkn62fv9nsd6iw81kdyy55qmj-cudatoolkit-11.7-tensorrt-<IP_ADDRESS>.drv' failed to build
error: 2 dependencies of derivation '/nix/store/1qlmd5zrk7l2bm77r0p36qg76mnygcr2-python3.10-tensorrt-<IP_ADDRESS>.drv' failed to build
error: 2 dependencies of derivation '/nix/store/7lim89bfbd19k8rbgjcpkkkdh4cysh1r-python3.9-tensorrt-<IP_ADDRESS>.drv' failed to build
error: builder for '/nix/store/052hqk4l07mmx9vzyh0zx6ppmgr99iw0-python3.10-numba-0.56.2.drv' failed with exit code 1;
       last 10 log lines:
       > unpacking source archive /nix/store/s69sx2va20j7casl68dsf0b2xjjv0ic2-numba-0.56.2.tar.gz
       > source root is numba-0.56.2
       > setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file numba-0.56.2/numba/_version.py
       > patching sources
       > applying patch /nix/store/hmp6p98pg3gkjcr9nvb5a825dhcch41n-cuda_path.patch
       > patching file numba/cuda/cuda_paths.py
       > Hunk #2 FAILED at 32.
       > Hunk #3 succeeded at 61 with fuzz 2 (offset -10 lines).
       > Hunk #4 succeeded at 77 (offset -10 lines).
       > 1 out of 4 hunks FAILED -- saving rejects to file numba/cuda/cuda_paths.py.rej
       For full logs, run 'nix log /nix/store/052hqk4l07mmx9vzyh0zx6ppmgr99iw0-python3.10-numba-0.56.2.drv'.
error: builder for '/nix/store/h9q30xk65f89k4lnw68gdm3zffkka41g-python3.9-numba-0.56.2.drv' failed with exit code 1;
       last 10 log lines:
       > unpacking source archive /nix/store/s69sx2va20j7casl68dsf0b2xjjv0ic2-numba-0.56.2.tar.gz
       > source root is numba-0.56.2
       > setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file numba-0.56.2/numba/_version.py
       > patching sources
       > applying patch /nix/store/hmp6p98pg3gkjcr9nvb5a825dhcch41n-cuda_path.patch
       > patching file numba/cuda/cuda_paths.py
       > Hunk #2 FAILED at 32.
       > Hunk #3 succeeded at 61 with fuzz 2 (offset -10 lines).
       > Hunk #4 succeeded at 77 (offset -10 lines).
       > 1 out of 4 hunks FAILED -- saving rejects to file numba/cuda/cuda_paths.py.rej
       For full logs, run 'nix log /nix/store/h9q30xk65f89k4lnw68gdm3zffkka41g-python3.9-numba-0.56.2.drv'.
error: builder for '/nix/store/ylafyjflmppbnxq5zjypqhxpdyg39ciz-ethminer-0.19.0.drv' failed with exit code 2;
       last 10 log lines:
       > /nix/store/5i10bszy2380gn0z1a6d4gf4pyhg51ps-cli11-2.2.0/include/CLI/App.hpp:594:35: note:   no known conversion for argument 2 from 'unsigned int' to 'CLI::callback_t' {aka 'std::function<bool(const std::vector<std::__cxx11::basic_string<char> >&)>'}
       >   594 |                        callback_t option_callback,
       >       |                        ~~~~~~~~~~~^~~~~~~~~~~~~~~
       > /nix/store/5i10bszy2380gn0z1a6d4gf4pyhg51ps-cli11-2.2.0/include/CLI/App.hpp:701:13: note: candidate: 'CLI::Option* CLI::App::add_option(std::string)'
       >   701 |     Option *add_option(std::string option_name) {
       >       |             ^~~~~~~~~~
       > /nix/store/5i10bszy2380gn0z1a6d4gf4pyhg51ps-cli11-2.2.0/include/CLI/App.hpp:701:13: note:   candidate expects 1 argument, 4 provided
       > make[2]: *** [ethminer/CMakeFiles/ethminer.dir/build.make:76: ethminer/CMakeFiles/ethminer.dir/main.cpp.o] Error 1
       > make[1]: *** [CMakeFiles/Makefile2:516: ethminer/CMakeFiles/ethminer.dir/all] Error 2
       > make: *** [Makefile:156: all] Error 2
       For full logs, run 'nix log /nix/store/ylafyjflmppbnxq5zjypqhxpdyg39ciz-ethminer-0.19.0.drv'.
error: builder for '/nix/store/bam31rgddbrr4k4awcv30f2y8yvskiz6-librealsense-2.45.0.drv' failed with exit code 1;
       last 10 log lines:
       >    84 |             self.deleter = [](void* ptr){ delete[] ptr; };
       >       |                                                    ^~~
       > /build/source/wrappers/python/pyrs_internal.cpp: In lambda function:
       > /build/source/wrappers/python/pyrs_internal.cpp:100:52: warning: deleting 'void*' is undefined [-Wdelete-incomplete]
       >   100 |             self.deleter = [](void* ptr){ delete[] ptr; };
       >       |                                                    ^~~
       > [182/219] Building CXX object wrappers/python/CMakeFiles/pyrealsense2.dir/pyrs_sensor.cpp.o
       > [183/219] Building CXX object wrappers/python/CMakeFiles/pyrealsense2.dir/c_files.cpp.o
       > [184/219] Building CXX object wrappers/python/CMakeFiles/pybackend2.dir/pybackend.cpp.o
       > ninja: build stopped: subcommand failed.
       For full logs, run 'nix log /nix/store/bam31rgddbrr4k4awcv30f2y8yvskiz6-librealsense-2.45.0.drv'.
error: builder for '/nix/store/i5gfqsph1rnff5q674y7wdpf5zc1ql9w-librealsense-2.45.0.drv' failed with exit code 1;
       last 10 log lines:
       > /build/source/wrappers/python/pyrs_internal.cpp:100:52: warning: deleting 'void*' is undefined [-Wdelete-incomplete]
       >   100 |             self.deleter = [](void* ptr){ delete[] ptr; };
       >       |                                                    ^~~
       > [174/219] Building CXX object wrappers/python/CMakeFiles/pyrealsense2.dir/pyrs_frame.cpp.o
       > [175/219] Building CXX object CMakeFiles/realsense2.dir/src/rs.cpp.o
       > [176/219] Building CXX object wrappers/python/CMakeFiles/pyrealsense2.dir/pyrs_sensor.cpp.o
       > [177/219] Building CXX object wrappers/python/CMakeFiles/pyrealsense2.dir/c_files.cpp.o
       > [178/219] Building CXX object wrappers/python/CMakeFiles/pybackend2.dir/pybackend.cpp.o
       > [179/219] Building C object CMakeFiles/realsense2.dir/third-party/sqlite/sqlite3.c.o
       > ninja: build stopped: subcommand failed.
       For full logs, run 'nix log /nix/store/i5gfqsph1rnff5q674y7wdpf5zc1ql9w-librealsense-2.45.0.drv'.
error: 9 dependencies of derivation '/nix/store/pa79sf239g5x61lvv6zbv951gyyq8xc0-env.drv' failed to build
error: 1 dependencies of derivation '/nix/store/394lrlh4bpkaxnafknlfwadp3qardczh-review-shell.drv' failed to build

TensorRT and mathematica require special downloads.
ethminer, numbaWithCuda, and pyrealsense2WithCuda  are all failing on master. We should mark them as broken.
So this change LGTM modulo the formatting changes mentioned above.

I've amending the formatting changes.
Thx for reviewing this.
(it's time to package version 11.8 released few days ago :wink: )

Thanks so much for your PR @dguibert, and thank you for your patience getting it merged! Can't believe that 11.8 is already here haha

11.8 update has been proposed in https://github.com/NixOS/nixpkgs/pull/194705


Update commonError for Transacting-3

Updates the commonError following the update to the logic to accept the scriptPubKeyBytes string

I really like this addition suggestion.
It catches the flow where a player tries to do something similar to the challenge 1.
Tagging @GBKS and @satsie for their thoughts.

Yes, love it. That's exactly the type of custom responses we want.


[Bug] [Module Name] 主干分支编译报错

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened

What you expected to happen
idea编译 build通过
How to reproduce
dev 分支： 09452e8d85d18cc7be33740a29f4fbaa88d438b5
intellij idea  run app 报错。
Anything else
No response
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

https://github.com/DataLinkDC/dlink/pull/1389


existing deployments of lb-csi-node and lb-csi-controller are not updated

with the new duros-controller

Fixed in v0.2.0.


The local cache issue.

I use coursier launch to boot my application. The command is
coursier launch -r HTTP://<my-private-repo/ -i <some_dependency_A>  <my_prog_group>:<my_prog_name>:<version>

Coursier will download the dependency from my-private-repo without any problem. I use coursier API to resolve the same dependency A inside my program. But this time it can not find the dependency even the dependency is in the local cache because my prog does not know the private repo.
The coursier's cache the artifacts in folder structure like <protocol>/<host_name>/<repo_path>/xxxxx, if another program using coursier to resolve some artifact that already exists in local cache, if may fails. Because it has differrent resolver settings. It tries to find that artifact in cache but under some other repo.
Why to seperate each repo's artifact in the cache? Is there a way to orgnize local cache like ivy/maven does?

Currently, there's no way to organize the cache the same way Maven or Ivy do. The cache is made this way so that a missing repo in one's build definition will always trigger an error, no matter the cache state. The required repositories should be specified wherever they are needed.

Likewise, if two repositories provide different artifacts (most likely in a SNAPSHOT scenario), you will get the same, consistent one.
It has some downsides, but the upsides much outweigh them IMO.


Wyner and exact common informations

Implements both the Wyner and Exact common informations, largely from a common code base.
Some further improvements could certainly be made, for example seeding the optimization with the functional markov chain random variable. Also, the various parameters (temperature, step size) to basinhopping might benefit from tweaking, but doing so requires some knowledge of what the basins look like (approx radius, relative depth).
Overall, this seems to work well.
Closes #9 and #11

Looks very good. I def still need to read through all this more carefully but was able to reason well about what you were doing. Seems like we've settled on a few coding paradigms.
Going to merge this now. If you want to add the polish comment adter, go ahead.

Opps, holding off due to travisCI.

I'm glad the code was overall pretty readable. I know stuff like the slicing in construct_joint can be hard to wrap one's head around.

Yeah the ellipsis and colons are always fun (and powerful).


Add step feature in the pipeline

Which type of feature are you implementing?

[X] I have selected (at least) one of the following Label for the feature

Is there an existing issue / PR for this?

[X] I have searched for existing issues
[X] I have searched for existing PRs

Is there already an implementation for this feature?

[X] I have searched for existing nf-modules
[X] I have searched for existing biocontainers

Describe the feature
Add the parameter --step following the guidelines to allow the user to choose whether to perform a final merge of the selected methods or not.
"_- By default, pipelines will run from start to finish. However, pipelines will allow for the selection of steps to execute:

An argument (--steps) will be included to decide which steps to execute. This argument will take a comma-separated string of steps to perform. Exact matches between the steps included in the argument and the available options will be required."

Background
No response
Proposed implementation
No response
Anything else?
No response
Related Issues
No response
Are you going to work on this?

[ ] If I'm planning to work on this feature, I added myself to the Assignees to facilitate tracking who is working on this.

Add option to begin processing from FQ files.


Language updates

Hi dev, assisting with some language/grammar/spelling updates in English. I don't code and can't translate but English is fine, so trying to help where I can.
Thanks for the project, Robby

Thank you very much!


UART fifo synchronization problem (IDFGH-362)

I have set up a simple serial to tcp bridge on Serial2, Serial is also used for monitoring.
After 30 minutes or so of operations the bytes arriving from Serial2 start to have a delay.
The last character of a message is kept by te ESP and is send along the next message.
My environment configuration is arduino under esp-idf
After a lot of experimentation I have narrowed may search and written the following test code:
In esp32-hal-uart.c
unsigned uart_isr_counter=0;
unsigned uart_rxfifo_cnt_wrong_counter=0;

static void IRAM_ATTR _uart_isr(void *arg)
{
    uint8_t i, c;
    BaseType_t xHigherPriorityTaskWoken;
    uart_t* uart;

    uart_isr_counter++;

    for(i=0;i<3;i++){
        uart = &_uart_bus_array[i];
        if(uart->intr_handle == NULL){
            continue;
        }
        uart->dev->int_clr.rxfifo_full = 1;
        uart->dev->int_clr.frm_err = 1;
        uart->dev->int_clr.rxfifo_tout = 1;

        while(uart->dev->status.rxfifo_cnt || (uart->dev->mem_rx_status.wr_addr != uart->dev->mem_rx_status.rd_addr)){
            if(uart->dev->status.rxfifo_cnt==0 &&  (uart->dev->mem_rx_status.wr_addr != uart->dev->mem_rx_status.rd_addr))
                uart_rxfifo_cnt_wrong_counter++;
            c = uart->dev->fifo.rw_byte;
            if(uart->queue != NULL && !xQueueIsQueueFullFromISR(uart->queue)) {
                xQueueSendFromISR(uart->queue, &c, &xHigherPriorityTaskWoken);
            }
        }
    }

    if (xHigherPriorityTaskWoken) {
        portYIELD_FROM_ISR();
    }
}

I have added two counter: one that counts irs calls, and one that counts when the queue seems to get out of sync.
Here is what I get after running my application for a while:
uart_isr_counter: 22443, uart_rxfifo_cnt_wrong_counter: 2

So it seems like the fifo gets out-of-sync with the  rxfifo_cnt
I would suggest to make the following permanent (I'll post a PR).
Can anyone that is familiar with the internals please confirm or comment?
Thanks!

Is there any pattern you see from the values of rxfifo_cnt, rd_addr, wr_addr?
https://github.com/espressif/esp-idf/issues/2204

I did not go into additional investigation at this point, so I don't have information about the exact behavior of the FIFO.
As far as I remember there is a known hardware bug related but I don't know the details.
I hope someone from ESP can check this in more details and maybe provide a more accurate workaround..

This pull request is a simple fix (taken from flush),
https://github.com/espressif/arduino-esp32/pull/1849
It seems to fix the problem for me.
It should be reviewd by someone that understands the internals of the uart . Wrong condition may cause reading of random characters from the fifo..

Has the problem been solved?

@xiongyumail I think you can close this because it was fixed in arduino-esp32 and https://github.com/espressif/esp-idf/issues/2204 is still open here

@qt1 Thanks for reporting the issue. Feel free to reopen if the issue still exists. Thanks.


Spring cleanup

This is py-gitguardian version of https://github.com/GitGuardian/ggshield/pull/491.

chore: run pyupgrade
chore: update actions/checkout to v3

Codecov Report

Merging #42 (509f6bc) into master (9cf9ea4) will not change coverage.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##           master      #42   +/-   ##
=======================================
  Coverage   96.55%   96.55%
=======================================
  Files           5        5
  Lines         377      377
=======================================
  Hits          364      364
  Misses         13       13

Flag
Coverage Δ

unittests
96.55% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pygitguardian/client.py
91.17% <100.00%> (ø)

pygitguardian/models.py
99.50% <100.00%> (ø)

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


Fix missing NSGestureRecognizer extensions

Also, update them to use ReactiveKit v3.13.0 API

Thanks @tonyarnold !


Make InfiniInt generic over Element

The current InfiniInt<T> is generic over a proxy type, rather than its element type, to satisfy the requirement machine:
struct InfiniInt<Source: SystemsInteger>: ArbitraryInteger {
    typealias Element =  Source.Element
}

I would prefer it being generic over its element type, but the compiler burns the world to ashes when I try. I'm unsure why:
struct InfiniInt<Element: SystemsInteger>: ArbitraryInteger { }

Wow. Slava_Pestov 's fake protocol trick is magic :sparkles:


eslint-plugin-tsdoc plugin AST to convert jsdoc to tsdoc on --fix

I'm tinkering around to see if this is possible but would love to avoid going down a rabbit hole if not likely to work.
https://github.com/wvbe/experimental-jsdoc-to-tsdoc-tool
I've been using a local version of this library to convert any jsdoc blocks autogenerated by a team member's IDE to tsdoc prior to calling @microsoft/api-extractor and before eslint --fix in CI.
It would be awesome if there was an experimental/opt-in way to have eslint-plugin-tsdoc (which already has identified the problem blocks) to auto-convert jsdoc comments to their tsdoc equivalent (and remove non-conforming tags) in real-time via the IDE's eslint integration.
I've been encouraged by the way eslint-plugin-prefer-arrow seems to be able to rewrite function foo() {} to const foo = () => {} reliably, but haven't dug deep enough into eslint to be sure the scenario described above is feasble.
Separate from any sort of official support or implementation - does this sound like something that is actually possible with eslint?

The approach of experimental-jsdoc-to-tsdoc-tool seems pretty good. Thanks for sharing that link BTW -- I wasn't aware of it!
I'd also be in favor of providing an ESLint "fixer" so that comments can be converted without having to install and invoke a separate CLI tool.  For big bulk conversions, the CLI tool is maybe a superior approach (since it can have more options and controls), but certainly for quick fixes the ESLint integration would be handy.
For details about how ESLint fixers are defined, see these docs.
I probably don't have time to work on this myself, but if someone else wants to a contribute a PR, I can help with the design & approval.

someone else wants to a contribute a PR, I can help with the design & approval.

Is there a style guide for the tsdoc repo that should be referenced for PRs?


Continue refactor loggerd rotations

After reading https://github.com/commaai/openpilot/pull/2247 and got  @ZwX1616 's  ideas, I think it is not appropriate to continue refactor based on my initial PR,that will make the code  complicated and require a lot of locks.
I am trying to simplify it in this PR:

Minimize the use of locks and let the threads run at full speed
Subscribe and log frame message in the encoder thread.
Rotate to the next segment after all encoders have recorded (segment_length * MAIN_FPS) frames(except DCAMERA on QCOM)
All encoder threads write to the next segment synchronously.

If I am doing something wrong, please let me know  @ZwX1616

Hey, just a heads up - I just merged the 2247 because we decided there might be another release shortly after 079 and we want master to have something stable and tested. I will continue to work with you on reducing the code complexity here. Thanks for all the great efforts so far! :)

my pleasure:smiley:

Since all threads write to the same log file now. we can simplify the LoggerState based on this.

Now it's basically done. It works.

now the dcamera's fps is accurate after https://github.com/commaai/openpilot/pull/2305/files .
@ZwX1616  Do we need to sync dcamera with oghers  based on it's bitrate?

The test has not encountered any problems so far
 99%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▏| 132/133 [09:31<00:04,  4.32s/it]selfdrive/loggerd/loggerd.cc: camera 1 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--290. 0
selfdrive/loggerd/loggerd.cc: rotated to /data/media/0/realdata/2020-10-30--02-35-35--291
selfdrive/loggerd/loggerd.cc: camera 0 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--291. 0
selfdrive/loggerd/loggerd.cc: camera 1 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--291. 0
selfdrive/loggerd/loggerd.cc: rotated to /data/media/0/realdata/2020-10-30--02-35-35--292
selfdrive/loggerd/loggerd.cc: camera 0 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--292. 0
selfdrive/loggerd/loggerd.cc: camera 1 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--292. 0
selfdrive/loggerd/loggerd.cc: rotated to /data/media/0/realdata/2020-10-30--02-35-35--293
selfdrive/loggerd/loggerd.cc: camera 0 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--293. 0
selfdrive/loggerd/loggerd.cc: camera 1 rotate encoder to /data/media/0/realdata/2020-10-30--02-35-35--293. 0
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████|

Closing since the code has changed so much. Though I feel better about loggerd PRs now that we have some tests.

Closing since the code has changed so much. Though I feel better about loggerd PRs now that we have some tests.


time: Add a way for the client application to provide fallback zoneinfo data

This is a feature addition to the Abseil time library. It adds the functions absl:::LoadStaticZoneInfoFile() and absl:::UnloadStaticZoneInfoFiles() which allows a client application to provide its own zoneinfo data, loaded through whatever means it finds appropriate. These are used as a fallback when no other zoneinfo data is present on the system. The client application calls this function once per zoneinfo file at startup. I am using this to support two use cases:

Non-standard Linux environments such as an empty chroot or "distroless" Docker container where only the application binary itself is present on the filesystem.
Standard Windows environments.

By shipping my own statically linked zoneinfo data, I can ensure there is a fallback in these cases.
I did my best but it's my first Abseil contribution, so I'm sure this code needs some rework. The code change is trivial and I'm happy to rewrite it to address any review guidance. There are two main points I was unsure about:

The implementation touches the internals of CCTZ. Should I try to upstream the change to the CCTZ project first, or has Abseil's fork of CCTZ fully diverged? I've assumed the latter.
The new functionality is not thread safe. A client application would need to ensure they aren't loading or unloading zoneinfo files at the same time they are querying for time zones. Should we protect the static storage with a mutex or is that not appropriate to do here? I've assumed the latter.

Abseil's primary purpose is to be used as a dependency by Google's open source C++ projects. While we do hope that Abseil is also useful to the C++ community at large, this added constraint also means that we are unlikely to accept a contribution of utility code that isn't already widely used by Google. As implemented, this feature isn't something we need.
We do however use almost exactly this feature ourselves, we just implement it differently.
You will note that CCTZ contains a weak symbol zone_info_source_factory that we override to provide CCTZ with exactly this type of static data that can be linked into a binary.
While this method isn't 100% portable, it does have the advantage that we can use it without calling an initialization function first (LoadStaticZoneInfoFile in your implementation), which means that CCTZ and the Abseil time library can be used at any point in the program's lifetime. This is important for us.
In Abseil, the weak symbol is in an "internal" namespace, which means we could take it away or change it at any time, but you are free to use it at your own risk.
As for your question about the relationship between CCTZ and Abseil, they have not diverged. We pull in changes to CCTZ automatically all the time. Changes to CCTZ must go to the CCTZ project.
@devbww for thoughts as the primary owner of CCTZ.

Hi Derek, thanks so much for the response. zone_info_source_factory appears to be exactly what I need. I'll close this PR--it's now clear this functionality already exists. I appreciate you taking the time.


No sound when play TrueHD track in MKV

No sound when play TrueHD track in MKV. Same file is ok to play with PotPlayer.
media_kit: ^1.1.11
media_kit_video: ^1.2.5
media_kit_libs_video: ^1.0.5
media_kit_libs_audio: ^1.0.5
Tested on both Windows (with headphone) and Android.
Attached a 10-second file for testing. It's extracted with ffmpeg 4.4.4. It's a zip file. After decompressing, there's test.mkv.
test.zip
It's loaded as external audio track in flutter as: player.setAudioTrack(AudioTrack.uri("..../test.mkv"));
It's ok to play DTS-X, DDP in same method though. When load TrueHD track, flutter is able to show codec is truehd, however no sound. I guess that it's caused by wrong audio channel mapping. Currently I bypass this problem temporarily to re-encode TrueHD track to AAC format.

Update: I tried to update libmpv-2.dll from different mpv windows build sites. However it still does not work.
For example:
mpv.exe in mpv-x86_64-v3-20240913-git-2b8da78.7z works well with TrueHD in test.mkv.
libmpv-2.dll in mpv-dev-x86_64-v3-20240913-git-2b8da78.7z does not work with TrueHD in test.mkv, no sound, quiet output.
I tried to turn media_kit into customized flutter package, and modified LIBMPV* in media-kit/libs/windows/media_kit_libs_windows_video/pubspec.yaml. After modification and clean and rebuild, I noticed libmpv-2.dll has been correctly updated to larger file. And the file itself should support TrueHD format. However still no sound with TrueHD track.

Hi @singnoo,
If you found a solution, may you write it here as well for future visitors?
Thanks.

The solution to this problem:

Download media-kit
mkdir plugins cd plugins git clone https://github.com/media-kit/media-kit cd ..

Modify ./pubspec.yaml to use customized media-kit plugin:
dependencies: media_kit: ^1.1.11 media_kit_video:  path: ./plugins/media-kit/media_kit_video media_kit_libs_video:  path: ./plugins/media-kit/libs/universal/media_kit_libs_video

Modify ./plugins/media-kit/libs/universal/media_kit_libs_video/pubspec.yaml to use customized media-kit plugin:
dependencies: media_kit_libs_android_video:  path: ../../android/media_kit_libs_android_video media_kit_libs_ios_video:  path: ../../ios/media_kit_libs_ios_video media_kit_libs_linux:  path: ../../linux/media_kit_libs_linux media_kit_libs_macos_video:  path: ../../macos/media_kit_libs_macos_video media_kit_libs_windows_video:  path: ../../windows/media_kit_libs_windows_video media_kit_native_event_loop:  path: ../../../media_kit_native_event_loop

Modify ./plugins/media-kit/libs/windows/media_kit_libs_windows_video/windows/CMakeLists.txt to use other mpv on windows:

Part1:
`# libmpv archive containing the pre-built shared libraries & headers.
#set(LIBMPV "mpv-dev-x86_64-20230924-git-652a1dd.7z")
set(LIBMPV "mpv-dev-x86_64-v3-20240913-git-2b8da78.7z")
Download URL & MD5 hash of the libmpv archive.
#set(LIBMPV_URL "https://github.com/media-kit/libmpv-win32-video-build/releases/download/2023-09-24/${LIBMPV}")
#set(LIBMPV_MD5 "a832ef24b3a6ff97cd2560b5b9d04cd8")
set(LIBMPV_URL "https://github.com/dyphire/mpv-winbuild/releases/download/mpv_own-2024-09-13/${LIBMPV}")
set(LIBMPV_MD5 "863d1f4bd4f2ddf4647945c3b390e05a")`
Part2:
set(   media_kit_libs_windows_video_bundled_libraries   "${LIBMPV_SRC}/libmpv-2.dll"   "${LIBMPV_SRC}/lua51.dll"   "${ANGLE_SRC}/api-ms-win-core-console-l1-1-0.dll"

Modify ./plugins/media-kit/libs/android/media_kit_libs_android_video/android/build.gradle to use full mpv on android:

Part1:
`// Download all *.jar dependencies & verify their MD5 checksums.
/*
def urlDefaultARM64 = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/default-arm64-v8a.jar"
def urlDefaultARMEABI = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/default-armeabi-v7a.jar"
def urlDefaultX86_64 = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/default-x86_64.jar"
def urlDefaultX86 = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/default-x86.jar"

def destDefaultARM64 = file("$buildDir/v1.1.5/default-arm64-v8a.jar")
def destDefaultARMEABI = file("$buildDir/v1.1.5/default-armeabi-v7a.jar")
def destDefaultX86_64 = file("$buildDir/v1.1.5/default-x86_64.jar")
def destDefaultX86 = file("$buildDir/v1.1.5/default-x86.jar")
 */

def urlDefaultARM64 = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/full-arm64-v8a.jar"
def urlDefaultARMEABI = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/full-armeabi-v7a.jar"
def urlDefaultX86_64 = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/full-x86_64.jar"
def urlDefaultX86 = "https://github.com/media-kit/libmpv-android-video-build/releases/download/v1.1.5/full-x86.jar"

def destDefaultARM64 = file("$buildDir/v1.1.5/full-arm64-v8a.jar")
def destDefaultARMEABI = file("$buildDir/v1.1.5/full-armeabi-v7a.jar")
def destDefaultX86_64 = file("$buildDir/v1.1.5/full-x86_64.jar")
def destDefaultX86 = file("$buildDir/v1.1.5/full-x86.jar")`

Part 2:
    //if (md5DefaultARM64 != "5f521b08692d7fef73c5df9bcc00ca4d") {     if (md5DefaultARM64 != "2f6f8019061b0deedac14372bcbea0ad") {         throw new GradleException("media_kit: arm64-v8a JAR verification failed.")     }     //if (md5DefaultARMEABI != "08d500ca1116c13e9c1296cc6f2207b0") {     if (md5DefaultARMEABI != "f8ddb68ed125325a2d31f760db9f115d") {         throw new GradleException("media_kit: armeabi-v7a JAR verification failed.")     }     //if (md5DefaultX86_64 != "0880d5fbc3ff0053409704617f54cb55") {     if (md5DefaultX86_64 != "1cf34ae184d01a0c28e2d7bc5818ed62") {         throw new GradleException("media_kit: x86_64 JAR verification failed.")     }     //if (md5DefaultX86 != "f6f51aa42b30d747099506cdc3277352") {     if (md5DefaultX86 != "e098f38ac524806e4e873c4f64dcaf2f") {         throw new GradleException("media_kit: x86 JAR verification failed.")     }
Do flutter clean and then rebuild. After rebuilding, TrueHD will work on both Windows and Android.

@singnoo Does this way support hdmv_pgs subtitle? It seems not working to me. I verified transitive dependencies and local build folder, it shows full-xxx.jar packages. But the hdmv_pgs

Sorry but I do not have any file with hdmv_pgs to do test. If you could provide a short test file, I could test it on my build.
I did notice difference between windows build and android *.jar build. For example, Dolby Vision encoded file will be decoded as Dolby Vision in windows build, however it's only decoded as compatible HDR in android build. So I guess that current "full" android build is bundled with earlier mpv or with fewer features.
You may test it on windows build. If it works on windows build, you may have to rebuild anroid build with newer mpv and extra features enabled.
For subtitle processing, I load external srt file to an overlay in flutter, to archieve better result, such as, sharp font rendering, regular/3D, HDR color, bilingual colored rendering.

@singnoo thanks for your reply, can you try this? Thank you
https://drive.google.com/file/d/1HsAcaTw9RJm605PcF2RldNkm1Tc48gkL/view?usp=drive_link
Screenshot is in macOS MPV app

I tested your file on both windows build and android build. Both builds could recognize the subtitle track correctly. However it's not rendered. You may have to do it as a flutter overlay by yourself.
for (final t in player.state.tracks.subtitle) {
  print(t);
  if (t.id == "3") {
    player.setSubtitleTrack(t);
  }
}
flutter: SubtitleTrack(3, AI Vietnamese, vi-x-nm21, image: false, albumart: false, codec: hdmv_pgs_subtitle, decoder: null, w: null, h: null, channelscount: null, channels: null, samplerate: null, fps: null, bitrate: null, rotate: null, par: null, audiochannels: null)

@singnoo I did. But it's not rendered on my android phone. Is your phone rendering it? (With full-x mpv lib)

No, It's not rendered on android phone. It's also not rendered on windows.
I guess that you may have to implement that with flutter overlay by yourself.

Thank you @singnoo it seems I have to extract it as an external subtitle file

@andynvt
You likely need to enable libass:
https://github.com/media-kit/media-kit/blob/e1c5f5dc8b9c4174c59530bdf192e2f95622f702/media_kit/lib/src/player/platform_player.dart#L474-L479

@andynvt
You likely need to enable libass:
https://github.com/media-kit/media-kit/blob/e1c5f5dc8b9c4174c59530bdf192e2f95622f702/media_kit/lib/src/player/platform_player.dart#L474-L479

But it's not working on other platforms, right?

Wdym?

oh thank you @alexmercerind it works

@alexmercerind I've checked https://github.com/media-kit/media-kit/issues/255#issuecomment-1646868981 and https://github.com/media-kit/media-kit/issues/952#issuecomment-2466067518
But the libassAndroidFont not working with assets ttf file.

@alexmercerind  Here is what I found in the log
I/flutter ( 8266): [LOG] PlayerLog(prefix: global, level: debug, text: config path: 'fonts' -/-> '/data/user/0/package.name/files/com.alexmercerind.media_kit/fonts')
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: debug, text: ASS library version: 0x1701000 (runtime 0x1701000))
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: libass API version: 0x1701000)
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: libass source: commit: 0.17.1-0-ge8ad72accd3a84268275a9385beb701c9284e5b3)
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: Shaper: FriBidi 1.0.12 (SIMPLE) HarfBuzz-ng 7.2.0 (COMPLEX))
I/flutter ( 8266): [LOG] PlayerLog(prefix: global, level: debug, text: config path: 'subfont.ttf' -/-> '/data/user/0/package.name/files/com.alexmercerind.media_kit/subfont.ttf')
I/flutter ( 8266): [LOG] PlayerLog(prefix: global, level: debug, text: config path: 'fonts.conf' -/-> '/data/user/0/package.name/files/com.alexmercerind.media_kit/fonts.conf')
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: Setting up fonts...)
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: Done.)
I/flutter ( 8266): [LOG] PlayerLog(prefix: cplayer, level: v, text: Starting playback...)
I/flutter ( 8266): [LOG] PlayerLog(prefix: mkv, level: v, text: queuing seek to 499.000000)
I/flutter ( 8266): [LOG] PlayerLog(prefix: cplayer, level: v, text: hr-seek, skipping to 499.000000)
I/flutter ( 8266): [LOG] PlayerLog(prefix: mkv, level: v, text: execute seek (to 499.000000 flags 32))
I/flutter ( 8266): [LOG] PlayerLog(prefix: ffmpeg, level: v, text: stream level seek from 31794 to 533813729)
I/flutter ( 8266): [LOG] PlayerLog(prefix: mkv, level: v, text: deselect track 3)
I/flutter ( 8266): [LOG] PlayerLog(prefix: mkv, level: v, text: select track 2)
I/flutter ( 8266): [LOG] PlayerLog(prefix: global, level: debug, text: config path: 'fonts' -/-> '/data/user/0/package.name/files/com.alexmercerind.media_kit/fonts')
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: debug, text: ASS library version: 0x1701000 (runtime 0x1701000))
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: libass API version: 0x1701000)
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: libass source: commit: 0.17.1-0-ge8ad72accd3a84268275a9385beb701c9284e5b3)
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: Shaper: FriBidi 1.0.12 (SIMPLE) HarfBuzz-ng 7.2.0 (COMPLEX))
I/flutter ( 8266): [LOG] PlayerLog(prefix: global, level: debug, text: config path: 'subfont.ttf' -/-> '/data/user/0/package.name/files/com.alexmercerind.media_kit/subfont.ttf')
I/flutter ( 8266): [LOG] PlayerLog(prefix: global, level: debug, text: config path: 'fonts.conf' -/-> '/data/user/0/package.name/files/com.alexmercerind.media_kit/fonts.conf')
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: Setting up fonts...)
I/flutter ( 8266): [LOG] PlayerLog(prefix: ffmpeg, level: debug, text: tcp: Starting connection attempt to ip.ip port 443)
I/flutter ( 8266): [LOG] PlayerLog(prefix: sub/ass, level: v, text: Done.)

![ScreenShot 2024-11-12 at 10 09 50](https://github.com/user-attachments/assets/f71a91ba-c20f-411d-a504-e6ce26dbb4ed)

Use main branch.

@alexmercerind I want to use full libmpv, and with this customization, I cannot use main branch
https://github.com/media-kit/media-kit/issues/952#issuecomment-2351386968

I've fixed it by copying your main branch code here. Thanks @alexmercerind
media_kit/lib/src/player/native/player/real.dart:
if (Platform.isAndroid &&
          configuration.libass &&
          configuration.libassAndroidFont != null &&
          configuration.libassAndroidFontName != null) {
        try {
          // On Android, the system fonts cannot be picked up by libass/fontconfig. This makes libass subtitle rendering fail.
          // We save the subtitle font to the application's cache directory and set `config` & `config-dir` to use it.
          final subfont = await AndroidAssetLoader.load(
            join(
              'flutter_assets',
              configuration.libassAndroidFont,
            ),
          );
          if (subfont.isNotEmpty) {
            final directory = dirname(subfont);
            // This asset is bundled as part of `package:media_kit_libs_android_video`.
            // Use it if located inside the application bundle, otherwise no worries.
            options.addAll(
              {
                'config': 'yes',
                'sub-fonts-dir': directory,
                'sub-font': configuration.libassAndroidFontName ?? '',
              },
            );
            print(subfont);
            print(directory);
          }
        } catch (exception, stacktrace) {
          print(exception);
          print(stacktrace);
        }
      }

FlutterWidget的。

Can you display embedded hdmv_pgs_subtitle subtitles in android? I have used full-xxx.jar

@singnoo我做到了。但它没有在我的 Android 手机上呈现。你的手机在呈现它吗？（使用 full-x mpv lib）

Can you display embedded hdmv_pgs_subtitle subtitles in Android? I have used full-xxx.jar

@singnoo I did. But it's not rendered on my android phone. Is your phone rendering it? (With full-x mpv lib)

Do you know how to display embedded hdmv_pgs_subtitle subtitles in Android? I have the same problem. I have used full-xxx.jar

@singnoo我做到了。但它没有在我的 Android 手机上呈现。你的手机在呈现它吗？（使用 full-x mpv lib）

我也遇到了同样的问题，我已经替换了full-xxx.jar，但是无法显示内嵌hdmv_pgs_subtitle，你现在知道如何显示吗

@singnoo I did. But it's not rendered on my android phone. Is your phone rendering it? (With full-x mpv lib)
I have the same problem. I have replaced full-xxx.jar, but the embedded hdmv_pgs_subtitle cannot be displayed. Do you know how to display it now?

@singnoo I did. But it's not rendered on my android phone. Is your phone rendering it? (With full-x mpv lib)

I have the same problem. I have replaced full-xxx.jar and can play Truehd audio successfully, but cannot display the embedded hdmv_pgs_subtitle. Do you know how to display it now?


Update get-geolocation-data-to-find-a-users-gps-coordinates.english.md

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

Thanks for the PR @Vrajsingh, closing this as stale. Please open a fresh PR if you are still interested.


“This post is scheduled” line missing in previews?

Looking through a blog post for tomorrow and realized the preview copy we used to have (“This post is in the queue but has not yet been published” etc.) doesn't seem to be showing up on the blog now. Feel free to ping me on Slack for links if that's helpful!

So, noticed something odd with this—I was able to see the message on a preview of a post when it hadn't been scheduled and set to "open," but once the post was scheduled, the message seemed to have disappeared. The message that used to say something like "this post is in the queue but has not yet been published," isn't appearing on blog posts currently in the queue.

Thanks for the update, Michelle. Do you need any help testing various
scenarios, or do you have some ideas on how to proceed?
On Tue, May 19, 2015 at 9:22 PM, Marie Connelly<EMAIL_ADDRESS>wrote:

So, noticed something odd with this—I was able to see the message on a
preview of a post when it hadn't been scheduled and set to "open," but
once the post was scheduled, the message seemed to have disappeared. The
message that used to say something like "this post is in the queue but has
not yet been published," isn't appearing on blog posts currently in the
queue.
—
Reply to this email directly or view it on GitHub
https://github.com/alistapart/AListApart/issues/199#issuecomment-103712575
.

We have a fix for this, I think it just didn’t make it out to all the affected templates.

On May 20, 2015, at 7:54 AM, Aaron Parkening<EMAIL_ADDRESS>wrote:
Thanks for the update, Michelle. Do you need any help testing various
scenarios, or do you have some ideas on how to proceed?
On Tue, May 19, 2015 at 9:22 PM, Marie Connelly<EMAIL_ADDRESS>wrote:

So, noticed something odd with this—I was able to see the message on a
preview of a post when it hadn't been scheduled and set to "open," but
once the post was scheduled, the message seemed to have disappeared. The
message that used to say something like "this post is in the queue but has
not yet been published," isn't appearing on blog posts currently in the
queue.
—
Reply to this email directly or view it on GitHub
https://github.com/alistapart/AListApart/issues/199#issuecomment-103712575
.

—
Reply to this email directly or view it on GitHub https://github.com/alistapart/AListApart/issues/199#issuecomment-103857327.

No I have an idea how to proceed with this I will test it tomorrow.


fix scraping code for new celestrak website

fixes #91

Looks good.  Will require some updates to work with the update YAML config setup, which I will make after this merge.


Running racecar with --daemonize option triggers NoMethodError: undefined method `exists?' for File:Class

Correct spelling for this method is File.exist? without s.
https://docs.ruby-lang.org/en/3.2/File.html#method-c-exist-3F

While this was a bug with beta1, looks like it has been fixed in master already.


Sign COBs, simplify use

See commits

@FintanH I found it odd that cob::remove doesn't need a signer, but it actually makes sense, since you're just removing refs.. However is it correct that we need to sign refs after removal?

@FintanH I found it odd that cob::remove doesn't need a signer, but it actually makes sense, since you're just removing refs.. However is it correct that we need to sign refs after removal?

Aha, I was looking at your other PR but I knew I'd seen this message somewhere but couldn't think of where :sweat_smile:
Yes and yes, that makes sense to me :+1: I would say we sign refs after removal since we want the state to say that those refs no longer exist on our side.


The color of the folder edge and tree is grey instead of black

The color of the folder edge, "+" signs and the tree branches is grey instead of black

Original:
http://storage4.static.itmages.ru/i/17/0919/h_1505825396_3777912_92ff09bce8.png

https://github.com/Microsoft/winfile/blob/master/src/wbbitmap.bmp vs. https://github.com/Microsoft/winfile/blob/master/src/bitmap.bmp

So, what should I do to make them black?

@NazmusLabs It is even running under the same OS (Win 8.1)

The original branch contais the black version of the images:
https://raw.githubusercontent.com/Microsoft/winfile/original_plus/src/wbbitmap.bmp

this was changed sometime ago (i.e., "before my time").  When I looked at the two bitmap files (wbbitmap.bmp and bitmap.bmp) it appears that the differences are non-trivial.  If someone wants to propose a specific change to revert to the older look, go for it!

I am not sure this should be changed if we are still waiting for someone to fix it.

@Anixx yes, I was actually planning to test out the older bitmap to see how it looks. But trying to figure out the High DPI solutions took my focus off of this. But, now that you reminded me of this, I guess I'll take a shot at doing this now, Insh'Allah, and report back the results, if the application compiles. :)

The fix is trivial as the original_plus branch contains the original bitmap with black icons.

Or, alternatively change the color in the new one (I don't think changing one fixed color should be difficult).

@ttsirkia ouch! does it?? Well I should have thought about this before, given that I spent about an hour updating the image pixel by pixel to create a new, sharp, and more pleasing looking version. I'll need to see how my hand made version compares with the one in the Original_plus. I ensured that no existing details while decided to take some creative approach to add some additional details I felt would look better than how it originally looked (judging by the first picture you posted earlier).
Anyway, I've updated the image and successfully compiled the application with the new bitmap. Here's the before and after. The results speak for themselves.
Before: gray file icon outlines:

After: sharp dark file icon outlines:

And now, I will have to go back and take a look at the original bitmap that is supposedly still in the original_plus release. :)

Wrote this already five days ago :)

@ttsirkia haha oopse.  Well, in that case, I'll put the original bitmap as well as my version side by side to see how mine differs from the original. And it'll also allow you to see if I have accidently damaged an icons and also see the intentional changes I made, which, in my opinion, makes the folders look better than they do in the original.
Original bitmap found in Original_Plus:

My update of the bitmap used in the latest master branch commit:


[Core] Fix aiohttp auto-headers

Currently aiohttp is automatically giving us a content-type header for Put/Post/Patch requests if one is not specified in the pipeline.
This behaviour is inconsistent with the requests transport.

Can one of the admins verify this patch?

@rakshith91 - could you please sign off once you've confirm that this change resolves the tests issues in Storage (and doesn't cause any new ones!) :)

@xiangyan99 is there a "preview3" branch that I should be PRing to rather than master?


HTML Reporter: Fix escaping of diffs

Attempts to address #824.
The root cause was that the actual and expected values were escaped before getting passed into QUnit.diff(). This in odd behavior for diffs that included entities. The proposed solution is to allow QUnit.diff() to perform the escaping as it constructs the output HTML.
One open question on this: I've copied the escapeText function from the reporter, this causes duplicate code. However, it seems like the alternative would be to add it to the QUnit global. Which approach seems better? I tend to think the latter, but went with the former to prevent polluting the global more.

First of all, thanks! Addressing the deep issues here is long overdue.

One open question on this: I've copied the escapeText function from the reporter, this causes duplicate code. However, it seems like the alternative would be to add it to the QUnit global. Which approach seems better? I tend to think the latter, but went with the former to prevent polluting the global more.

I'd rather see QUnit.diff itself move into the HTML reporter, since that is the site of its only internal use (which is fitting, since the function returns HTML). I'd also be open to rearchitecting it for external separation of patch generation from presentation, but let's start with just a move.

I'd rather see QUnit.diff itself move into the HTML reporter

Makes sense; I hadn't considered that option before. Will try that approach.

@gibson042 I moved QUnit.diff into the HTML reporter closure. Note that without additional work, this means that the function will no longer be available to non-browser environments. Not sure if that is what we want or not.
One other option would be to move the html-reporter closure into the main closure and pull escapeText into the main utilities file. This would preserve the current scoping of diff while also allowing us to not change the available environments.

I moved QUnit.diff into the HTML reporter closure. Note that without additional work, this means that the function will no longer be available to non-browser environments. Not sure if that is what we want or not.

That is acceptable to me because QUnit.diff returns HTML. Later fixes will separate patch generation from presentation, and presumably include deprecating the public diff name altogether rather than give it a completely different signature.

That is acceptable to me because QUnit.diff returns HTML.

agreed.

Okay, makes sense. I added the requested tests, let me know if anything else is needed.

LGTM.
@gibson042 ?

LGTM.


Standarize Readme and add License

See https://github.com/ipfs/community/issues/124

Would be good to add Install and usage before this is merged.

LGTM otherwise :)


Use heap allocated buffer instead of char collection in ecma_strings

Remove char collection from ecma_strings, and use a heap buffer instead, where we also store string size and length.
Results (measured on rpi2):
                           Benchmark |         RSS
(+ is better) |        Perf
(+ is better) |
                           --------- |                          --- |                         ---- |
                          3d-cube.js | 136 -> 136  (0) | 3.728 -> 3.71  (0.4828) |
                      3d-raytrace.js | 304 -> 264  (13.1579) | 5.918 -> 5.554  (6.1507) |
              access-binary-trees.js | 88 -> 92  (-4.545) | 2.72 -> 2.72  (0) |
                  access-fannkuch.js | 52 -> 52  (0) | 10.03 -> 9.94  (0.8973) |
                     access-nbody.js | 68 -> 68  (0) | 4.65 -> 4.63  (0.4301) |
         bitops-3bit-bits-in-byte.js | 40 -> 40  (0) | 3.18 -> 3.13  (1.5723) |
              bitops-bits-in-byte.js | 40 -> 40  (0) | 4.35 -> 4.36  (-0.23) |
               bitops-bitwise-and.js | 36 -> 36  (0) | 4.26 -> 4.26  (0) |
            controlflow-recursive.js | 224 -> 224  (0) | 3.23 -> 3.17  (1.8576) |
                       crypto-aes.js | 156 -> 152  (2.5641) | 5.96 -> 5.71  (4.1946) |
                       crypto-md5.js | 216 -> 212  (1.8519) | 33.57 -> 10.53  (68.6327) |
                      crypto-sha1.js | 156 -> 152  (2.5641) | 15.1 -> 5.71  (62.1854) |
                date-format-xparb.js | 104 -> 96  (7.6923) | 2.03 -> 1.82  (10.3448) |
                      math-cordic.js | 48 -> 48  (0) | 4.25 -> 4.23  (0.4706) |
                math-partial-sums.js | 40 -> 40  (0) | 2.55 -> 2.5  (1.9608) |
               math-spectral-norm.js | 52 -> 52  (0) | 3.22 -> 3.18  (1.2422) |
                    string-base64.js | 192 -> 164  (14.5833) | 235.22 -> 38.6  (83.5898) |
                     string-fasta.js | 60 -> 60  (0) | 5.54 -> 4.72  (14.8014) |
                     Geometric mean: |       RSS reduction: 2.2246% |           Speed up: 21.6495% |

3d-raytrace.js fails for me. Please check your measurements.
egavrin@ubuntu:~/jr$ ./jr-native-str ../jsperf/sunspider-1.0.2/3d-raytrace.js
egavrin@ubuntu:~/jr$ echo $?
1

Measurements on rasp pi 2:
$ clear; setarch linux32 -R  ../tools/run-perf-test.sh ./jr-master ./jr-native-str 5 5000 ../jsperf/sunspider-1.0.2/

                           Benchmark |         RSS
(+ is better) |        Perf
(+ is better) |
                           --------- |                          --- |                         ---- |
                          3d-cube.js |         132->   136 (-3.030) |        3.676-> 3.652 (0.653) |
                         3d-morph.js | <FAILED>
                      3d-raytrace.js | <FAILED>
              access-binary-trees.js |           88->    88 (0.000) |       2.712-> 2.724 (-0.442) |
                  access-fannkuch.js |           40->    40 (0.000) |        9.824-> 9.772 (0.529) |
                     access-nbody.js |           64->    64 (0.000) |        4.608-> 4.604 (0.087) |
                    access-nsieve.js | <FAILED>
         bitops-3bit-bits-in-byte.js |           36->    36 (0.000) |        3.272-> 3.236 (1.100) |
              bitops-bits-in-byte.js |           36->    36 (0.000) |       4.448-> 4.452 (-0.090) |
               bitops-bitwise-and.js |           32->    32 (0.000) |        4.288-> 4.164 (2.892) |
               bitops-nsieve-bits.js | <FAILED>
            controlflow-recursive.js |          224->   224 (0.000) |        3.196-> 3.172 (0.751) |
                       crypto-aes.js |          156->   148 (5.128) |        5.928->  5.68 (4.184) |
                       crypto-md5.js |          208->   200 (3.846) |      31.132->10.072 (67.647) |
                      crypto-sha1.js |          148->   148 (0.000) |        13.9->  5.54 (60.144) |
                date-format-tofte.js | <FAILED>
                date-format-xparb.js |         100->    88 (12.000) |       2.012-> 1.808 (10.139) |
                      math-cordic.js |           48->    48 (0.000) |        4.852-> 4.836 (0.330) |
                math-partial-sums.js |           40->    40 (0.000) |       2.544-> 2.616 (-2.830) |
               math-spectral-norm.js |           52->    52 (0.000) |       3.172-> 3.176 (-0.126) |
                       regexp-dna.js | <FAILED>
                    string-base64.js |          208->   200 (3.846) |     216.588->34.792 (83.936) |
                     string-fasta.js |           56->    52 (7.143) |        5.52-> 4.692 (15.000) |
                  string-tagcloud.js | <FAILED>
               string-unpack-code.js | <FAILED>
            string-validate-input.js | <FAILED>
                     Geometric mean: |       RSS reduction: 1.7676% |           Speed up: 21.9761% |

This patch greatly improves performance, nice work!
Allocation of strings with continuous native array increases fragmentation, so engine won't be able to allocate new strings if there is not enough continuous heap space. Since. our primary concern is reduction of memory consumption and fragmentation, I'd propose to mix both approaches and implement strings on top of recordset, which effectively manages non-continuous memory.
Heap state before allocation of string:
+---------------------------------------+
|-------|       |-------|       |-------|
|-------|       |-------|       |-------|
+---------------------------------------+

Current implementation:
              +-----+-----+
          +---+     |     +---+
          |   +-----+-----+   |
         Fits.                Fits.
          |                   |
+---------v-------------------v---------+
|-------|       |-------|       |-------|
|-------|       |-------|       |-------|
+---------------------------------------+

PR's implementation:
              +-----------+
          +---+           +---+
          |   +-----------+   |
    Does not fit.        Does not fit.
          |                   |
+---------v-------------------v---------+
|-------|       |-------|       |-------|
|-------|       |-------|       |-------|
+---------------------------------------+

a = []

for (i = 0; i < 3000; i++)
{
   a[i] = i + '.';
}

Master: OK
PR: OUT_OF_MEMORY

Mem stats for the following code:
a = []

for (i = 0; i < 1000; i++)
{
   a[i] = i + '.';
}

./jerry.master --mem-stats ./t.js ; echo $?
Heap stats:
   Heap size = 258048 bytes
   Chunk size = 64 bytes
   Allocated chunks count = 0
   Allocated = 0 bytes
   Waste = 0 bytes
   Peak allocated chunks count = 636
   Peak allocated = 40632 bytes
   Peak waste = 205 bytes

Pools stats:
  Chunk size: 8
   Pools: 0
   Allocated chunks: 0
   Free chunks: 0
   Peak pools: 631
   Peak allocated chunks: 5041

./jerry.new --mem-stats ./t.js ; echo $?
Heap stats:
   Heap size = 258048 bytes
   Chunk size = 64 bytes
   Allocated chunks count = 0
   Allocated = 0 bytes
   Waste = 0 bytes
   Peak allocated chunks count = 1386
   Peak allocated = 33469 bytes
   Peak waste = 55235 bytes

Pools stats:
  Chunk size: 8
   Pools: 0
   Allocated chunks: 0
   Free chunks: 0
   Peak pools: 380
   Peak allocated chunks: 3039

The most important difference is the following, waste is 2 times higher than allocated memory:
                                        master -> new
   Peak allocated chunks count =           636 -> 1386
   Peak allocated =                40632 bytes -> 33469 bytes
   Peak waste =                      205 bytes -> 55235 bytes

@dbatyai, could you, please, describe causes of the performance / memory consumption changes and also try to figure out ways to prevent fragmentation and reduce amount of waste space?
Maybe, improvement of "literal storage" and switching to it for storage of strings can solve this. Could you, please, share your opinion about this?

Most of the performance gain comes from storing the length of strings, and not having to iterate over them every time it's needed.
Using a continuous heap space for storing strings also caused notable improvement, since the previous char collection had significant overhead both in memory usage (2 bytes form each 8 byte chunk was used by a compressed pointer) and performance (copying character from and into the collection).
The least significant part is that this way string concatenation no longer requires intermediate buffers, instead it can be done directly inside the space of the new string.
The cause of the large amount of wasted memory is that  blocks are allocated as 64 byte chunks, and since short strings don't need that much, the rest will be unused.
Using literal storage could solve this issue, as it manages this unused space pretty well. The problem is that is currently does not support freeing allocated records, and as far as I can tell, this would require serious changes. Also, we could no longer treat strings as continuous data.
Adding a special case for shorter strings, and only allocating a pool chunk if they fit into it could help in the test case mentioned by @egavrin , but there would still be other cases where wasted space would be large.
On the other hand, using smaller heap chunks would reduce the waste effectively, but that could affect other parts of the engine as well. (A little radical, but with 16 byte heap chunks the allocated memory with the patch applied was less than the current master, even with the additional waste.)
What do you think?

Most of the performance gain comes from storing the length of strings

Length of string is in unit_number (see ecma_new_chars_collection).
/**
 * Description of a collection's header.
 */
typedef struct
{
  /** Number of elements in the collection */
  ecma_length_t unit_number;

  /** Compressed pointer to first chunk with collection's data */
  mem_cpointer_t first_chunk_cp;

  /** Compressed pointer to last chunk with collection's data */
  mem_cpointer_t last_chunk_cp;
} ecma_collection_header_t;

unit_number stored the size of the string, see ecma-helpers-string.cpp:73.
The actual length, as in number of unicode characters, was not stored previously.
Instead, ecma_get_chars_collection_length (ecma-helpers-string.cpp:113) was called every time it was requested.

@dbatyai, I see. Thanks. Could we add the length to beginning of a string's storage?

The problem is that is currently does not support freeing allocated records, and as far as I can tell, this would require serious changes.

I would say that is big, but needed change regardless the string optimization.
16 byte heap chunks the allocated memory with the patch applied was less than the current master

Could you share the exact measurements for sunspider using both run-perf-test and mem_stats?
My current understanding is that usage of 16 byte chunks will decrease performance, so we could try increase chunk size to 128 byte.

@dbatyai, what about this PR? The initial results were really promising. Could you update your patch?

Closing, as this is no longer relevant.


Consider not forcing users to type a password for drive encryption on boot

It's annoying to type in a special password at the system boot. It would be great just to input the account's password instead.
On Android, you type the password for the user, after the system boots, but before the user does. E.g., system UI boots, but features are limited until you log in. Also, you can't log in with a fingerprint for some reason. Switching users is also locked. The password you have to use is for the primary one.

Windows optionally can rely on TPM to store encryption keys such that the boot disk is is unusable outside the system. This might not be of taste for everyone, but TPM support out of the box (linux LUKS can currently be set up similarly, but requires manual setup) can ease growing pains and a combination TPM protected boot+password while signing in to unlock home dir would be a nice solution for many.

Maybe store encryption keys for the system partition on TPM, so it can boot to the Display Manager.
However, users partitions might be too easy to decrypt, since users don't always choose strong passwords. Anyway, it probably won't be worse then it is now with LUKS


Support password protected MPD server

Hi Andrew,
Do you see any chance to merge this pull request?

Hi Andrew,
Do you see any chance to merge this pull request and push this package to npm?
The mpd supporting package of ioBroker https://github.com/instalator/ioBroker.mpd relies on this library and due to the missing merge still suffers from password protection.
Thank you very much and have a nice weekend.


Unexpected behavior when used with databinding

About this issue

When used with Databinding, Abnormal recycling of views happens, items overlapping, keeps changing after i scroll back, wrong image scaling, incorrect onclick
How can the issue be reproduced : By incorporating Databinding in item adapter's .  Works perfect without Databinding. Tried returning incorrect id in public int getType() which i guess disables the recycling of views and it works but then memory allocation is off the chart & ultimately crashes.
Even setHasStableIds(true);  still its glitching  all over the RecyclerView.

Details

[ ] Used AndroidX
[ ] Used gradle build tools version 3.3.0
[ ] enabled setHasStableIds(true);

Checklist

[x] Searched for similar issues
[x] Checked out the sample application
[x] Read the README
[ ] Checked out the CHANGELOG
[ ] Checked out the MIGRATION GUIDE

Hi, please show how you have implemented the data binding inside an item.

You could try to override https://github.com/mikepenz/FastAdapter/blob/develop/library-core/src/main/java/com/mikepenz/fastadapter/items/AbstractItem.java#L291 instead of getViewHolder(View v). There you have more control when doing
                LayoutInflater.from(parent.getContext());
        ViewDataBinding binding = DataBindingUtil.inflate(
                layoutInflater, viewType, parent, false);
        return new ViewHolder(binding);

any news on this ?

Nope. If you wanna use databinding in recyclerview, use generic Recyclerview Adapter.

Was there any resolution to this issue. Seems there was no more activity since

Please report back to re-open


Slow exit on Windows

In Windows, it takes about 20 seconds from the time I press the quit button to the time it exits. During that time, it appears to be frozen. However, the deno process CPU usage is 0%. This issue occurs with minimal demo.

Windows 10 Home x64 build 19043.1415
Ryzen 5 3500
16GB Mem

This is no longer reproduced. I think #48 resolved this issue. great work! @littledivy


Please add capturing of project submissions

First of all... I'm SO glad I found your project here! Just downloaded 7.25GB of my Self-Driving Car Engineering ND (orig Ver 1.0 of the ND, which consists of 3 terms. Udacity reduced it down to only 2 terms later on by removing some materials.)
THANK YOU!!!
Is your feature request related to a problem? Please describe.
One thing I did not see captured is my submitted project reviews.
Looking at the very bottom of Udacity's project page (usually the last page within the project lesson, which your tool already captured), there's a line that read

Congratulations! You've completed this project

with a [view submission] button next to it.
When clicking that button, a new browser page opens up that contains my project submission + reviewer feedbacks. Often the feedback contains very useful info & links (to additional resources) that would be good to capture as well.
The url of the review page has the following format: https://review.udacity.com/#!/reviews/SOME_5_TO_7_DIGIT_NUMBER
Describe the solution you'd like
Is it possible to also capture the project contents from the review.udacity.com page(s)?
Describe alternatives you've considered
The less desirable alternative is to capture the unique url link that opens up the project review on review.udacity.com site, and leave the content availability to the mercy of Udacity (hoping they don't remove it in the future).
Additional context
Below is screenshot of the [view submission] button at bottom of the project submission page.

Thanks again!
-Dean

Thanks @AeroGeekDean
I decided not to develop this feature due to time constraints.
Outputting project review is a bit complicated due to the Code Review section, which requires showing each code file with their comments. This will require downloading the project, open the code files, generating HTML, embedding the comments into them, etc.

@udacimak
Ah, gotcha! Ok, now that you mentioned it... I could definite see the complexity of this now. (My background is in mech/aero engineering. I can design some airplane autopilots & rockets for you. But I'm pretty much clueless on web related technologies! 😆)

Given that, perhaps I could ask for some recommendations/advices from you on how I could preserve these myself...?
Currently, I've bookmarked the url of all of my submitted project reviews. Thus I could access them off Udacity's server... for now.
For my situation, I had near zero CODE REVIEW comments. Majority of the feedback contents are within the REVIEW section. (Of 13 submitted projects, only had 1 code review feedback. And THAT only contained 5 brief comments.)
I tried to 'Save Page As...' from my browser (Mac/Chrome) with no success. If save html only, I got a blank page. if save complete, the local .htm file opens up to a 404 error. (I'm guessing the original actual page was doing some sort of dynamic query into Udacity's API, that browser save doesn't capture.)
If I browser: print->pdf, I could capture the text. But any embedded links are lost. I would like to capture both. Is there a way I could do this? (short of manually saving the embedded url via browser bookmarking)
thanks!

@udacimak
Oh, disregard my prior...!!!
Turns out that Mac/Safari: print->pdf does preserve embedded links!
I'll just preserve my submitted project reviews that way then! 😊

:smile: Wish I had time to develop that, too. But I hardly got time to provide more features to udacimak now.

😄 Wish I had time to develop that, too. But I hardly got time to provide more features to udacimak now.

No worries. Totally understand!
What you've done with udacimak thus far is already an EXCELLENT resource for alumni! Thanks much!!!


Crash in release mode on Xcode 9.4.1 with CDTDatastore version 2.0.3

Bug Description
datastore?.find([:]) crashes consistently in release mode but works in debug mode.
1. Steps to reproduce and the issue
Run the sample app provided in release mode, it will crash on the following lines of code
                //print results
                resultSet = (datastore?.find([:]))!

Release mode can be enabled by going to edit scheme and selecting release in build configuration

2. What you expected to happen
Not to crash!
3. What actually happened
It crashed!

Environment details

Version affected by this issue.
CDTDatastore 2.0.3
iOS version tested on
iOS  11.4
Swift Version
4.1

Sample attached below
DataStore Sample.zip

We have reproduced the issue, please find the diff linked here and apply if possible to see if it fixes your issue.
We don't have an ETA for a release with the fix, but will keep you notified.

Thanks for the quick reply, we tested the git diff by manually changing the code in the cocoapod, here are our observations:

The crash no longer happens

We get the following error message when deleting a datastore with the aforementioned diff

2018-06-26 12:35:19.407206+0530 Sample[957:80749] [logging] BUG IN CLIENT OF libsqlite3.dylib: database integrity compromised by API violation: vnode unlinked while in use: /private/var/mobile/Containers/Data/Application/682AEC61-FA0F-434A-A160-08A9459932D8/Documents/databases/flight_extensions/com.cloudant.sync.query/indexes.sqlite
2018-06-26 12:35:19.407246+0530 Sample[957:80749] [logging] invalidated open fd: 4 (0x11)

Hi, we kind of have a beta release on 15th of this month so was wondering if there are any updates on this issue. We just need to know if it will be ready by that timeline. If not, we will plan accordingly as we also have to notify our clients.

We are aiming for a release by the end of the week and will keep you updated.

@navaneet we have released 2.1.0 - please try and see if it works for you.

@tomblench Thank you, let me try it out

@tomblench I checked the latest with our sample code that was also shared with this ticket.
So far so good, no issues with the document insertions, however still see the issue with the datastore deletion, not exactly sure what to do, this I see you guys are looking into it already, any updates on when this one will be merged. https://github.com/cloudant/CDTDatastore/issues/437
2018-06-26 12:35:19.407206+0530 Sample[957:80749] [logging] BUG IN CLIENT OF libsqlite3.dylib: database integrity compromised by API violation: vnode unlinked while in use: /private/var/mobile/Containers/Data/Application/682AEC61-FA0F-434A-A160-08A9459932D8/Documents/databases/flight_extensions/com.cloudant.sync.query/indexes.sqlite
2018-06-26 12:35:19.407246+0530 Sample[957:80749] [logging] invalidated open fd: 4 (0x11)

If you still hold a reference to the datastore you will get this message. This is because the extensions directory is deleted regardless of whether the underling indexing database is still active.
We have a test for this - see https://github.com/cloudant/CDTDatastore/blob/master/CDTDatastoreTests/CDTLifecycleTests.m#L266
Note how in the test the datastore is created within its own autoreleasepool and the delete happens outside. If you need to store a reference to that datastore somewhere else (in a property, a dict, etc) then you will still get the "BUG IN CLIENT" log message because the indexing database can't be deallocated whilst there are still references to it.
Note also from our changelog:
"- [NEW] Add method -closeDatastoreNamed: on CDTDatastoreManager."
This may be of use to you if you are dealing with large numbers of databases but instead of deleting them you wish to re-open them later in the lifecycle of your application. There is some more detail about this in doc/crud.md:
"Calling datastoreNamed on an already open datastore will return the same reference to that
datastore.
Datastores are held open for as long as they are needed and are automatically closed when the
CDTDatastoreManager is deallocated. This will typically happen at the end of the program or
earlier (for instance if autoreleasepools are used or the manager is explicitly set to nil).
In applications which open large numbers of Datastores it may be necessary to explicitly close
datastores after use to avoid exhaustion of file handles and other native resources."

DataStore Sample.zip
@tomblench I tried with both calling closeDatastoreNamed before deleting the datastore and without it however still getting the issue. Can you help us point out the issue.
I have shared the DataStore Sample that mimics our code. As far as I know we are not anymore holding an explicit reference to the datastore so, we are kind of out of ideas on this at the moment.

@tomblench Thanks let me try out the gist


Soda Experience first commit, splash screen, project intro and navgat…

SODA Experience first commit, following features  implemented

Project scaffolding
Splash screen
Project intro
Navigation to project details

@prostil Could you please share some screenshots ?
It will help in review as the CI still needs to be setup for this.
Thanks.


Use debug build in CircleCI.

This reduces build time so that a full build can occour in the aloted time.

WIth no ccache, unable to build with in CircleCI allotted time.


WindowsError: [Error 193] %1 is not a valid Win32 application

WindowsError                              Traceback (most recent call last)
<ipython-input-4-b6efe7b2e6d3> in <module>()
----> 1 rouge_eval('../Documents/rslt/cp/reference/', '../Documents/rslt/pg/decoded/')

<ipython-input-2-17db6565b0ff> in rouge_eval(ref_dir, dec_dir)
      7     r.system_dir = dec_dir
      8     logging.getLogger('global').setLevel(logging.WARNING) # silence pyrouge logging
----> 9     rouge_results = r.convert_and_evaluate()
     10     return r.output_to_dict(rouge_results)

C:\Anaconda\lib\site-packages\pyrouge-0.1.3-py2.7.egg\pyrouge\Rouge155.pyc in convert_and_evaluate(self, system_id, split_sentences, rouge_args)
    362             self.split_sentences()
    363         self.__write_summaries()
--> 364         rouge_output = self.evaluate(system_id, rouge_args)
    365         return rouge_output
    366

C:\Anaconda\lib\site-packages\pyrouge-0.1.3-py2.7.egg\pyrouge\Rouge155.pyc in evaluate(self, system_id, rouge_args)
    337         self.log.info(
    338             "Running ROUGE with command {}".format(" ".join(command)))
--> 339         rouge_output = check_output(command).decode("UTF-8")
    340         return rouge_output
    341

C:\Anaconda\lib\subprocess.pyc in check_output(*popenargs, **kwargs)
    565     if 'stdout' in kwargs:
    566         raise ValueError('stdout argument not allowed, it will be overridden.')
--> 567     process = Popen(stdout=PIPE, *popenargs, **kwargs)
    568     output, unused_err = process.communicate()
    569     retcode = process.poll()

C:\Anaconda\lib\subprocess.pyc in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags)
    709                                 p2cread, p2cwrite,
    710                                 c2pread, c2pwrite,
--> 711                                 errread, errwrite)
    712         except Exception:
    713             # Preserve original exception in case os.close raises.

C:\Anaconda\lib\subprocess.pyc in _execute_child(self, args, executable, preexec_fn, close_fds, cwd, env, universal_newlines, startupinfo, creationflags, shell, to_close, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite)
    957                                          env,
    958                                          cwd,
--> 959                                          startupinfo)
    960             except pywintypes.error, e:
    961                 # Translate pywintypes.error to WindowsError, which is

WindowsError: [Error 193] %1 is not a valid Win32 application

It looks like pyrouge generated all the files necessary for running ROUGE, but the actual command for running it fails.
You can try running ROUGE manually, with this in a console:
..\RELEASE-1.5.5\ROUGE-1.5.5.pl -e ...\RELEASE-1.5.5\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m C:\Users...\AppData\Local\Temp\tmpwbiw8z7b\rouge_conf.xm
If this fails, it means that Perl has probably not been installed correctly on your system. This is what you should see when you run the commands
assoc .pl
type PerlScript
in a console:
C:>assoc .pl
.pl=PerlScript
C:>ftype PerlScript
PerlScrip=C:\bin\perl.exe "%1" %*
If this works, then .py files may not have been correctly associated with python.exe on your system. You can check with this:
C:>assoc .py
.py=Python.File
C:>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*

Thanks for you reply! I have installed perl properly. I wonder what is the input (system and model) command? And what is the proper format of the file? Same with the one of your code? Thx!

Before the error happens, you should see something like this:
Running ROUGE with command ..\RELEASE-1.5.5\ROUGE-1.5.5.pl -e ...\RELEASE-1.5.5\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m C:\Users...\AppData\Local\Temp\tmpwbiw8z7b\rouge_conf.xml
This is the command pyrouge uses to call ROUGE.
You can run ROUGE manually by copy&pasting this command into a terminal and then see if this works or not.

So the rouge_conf contains the processed data?

@bheinzerling  Sorry, I just found that the output of  assoc .pl is good but the one of ftype PerlScript is File type 'PerlScript' not found or no open command associated with it. But I have downloaded and installed perl in a proper way. Why this happens?


Using dropdown as class is confusing

Two concerns about `dropdown':

Since it is a directive, is would be much easier to recognise as separate attribute, not inside the class, where it blends with other class declarations used for styling. It seems that this directive is allowed to use inside class, which I wouldn't allow, don't know why the folks did that ...

Naming this directive dropdown goes against best practices to prefix it with something recognizable. In this case, it should be ui-drowpdown.

@dmitriz Thanks for raising this issue!  I was having the same problem locating this directive!


UploadCare not working on Netlify CMS (Loading...)

Hello,
I've just tested a fresh copy of the yellowcake, created an API Key on UploadCare (to set as "publicKey" on the /static/admin/config.yml) and I've logged into netlify-cms and tried to add a file on the "media", but it's not working... Just shows the message "Loading..." and doesn't resolve.
Can anyone help, and see if something has changed, please?
I've the impression it was working, like, 2 weeks ago.
I am new to Gatsby and I didn't know about this tool,
it seems to be a must have on a modern website :)
Thank you for the help!

same. also unable to make new posts

@ositaka @LeibGarber, I submitted a PR to hopefully resolve the issue in this starter repo: https://github.com/thriveweb/yellowcake/pull/29
I just deployed the PR updates to my Netlify test site and UploadCare was working for me.
Until I hear back on review/approval of my PR, perhaps you can test it out for yourselves and let me know if it works for you as well.
Note: I wasn't able to validate it in a local Dev environment when I switched static/admin/config.yml branch: name: to test-repo, but it did work fine when I published it to Netlify.

Hello @SpacemanPete, thanks for the answer. I've tried to make a codesandbox from the PR and it is still not working. I get a message on the console referring to a
cms.js:sourcemap:1 Uncaught TypeError: Cannot read property 'replace' of undefined     at t.default.listFiles (cms.js:sourcemap:1)     at t.default.getMedia (cms.js:sourcemap:1)     at t.default.getMedia (cms.js:sourcemap:1)     at R.getMedia (cms.js:sourcemap:1)     at cms.js:sourcemap:1
Here is the link for the sandbox: https://codesandbox.io/s/yellowcake-uploadcare-fix-9dlom
The netlify url is this one: https://csb-qmv41.netlify.com/ and you can register on the /admin/ to try it out.

hi @ositaka,
I'm not sure about testing in the codesandbox, since you need to have Netlify Identity and Git Gateway enabled to login and publish changes from the backend. I was able to register and login to your Netlify site and I see the Media box is still showing "Loading..."
Before deploying it to Netlify, did you create your own API KEY on UploadCare and add your site domain to the UploadCare domain whitelist in the settings panel?

I am trying to fix this with this run npm i --s netlify-cms-media-library-uploadcare and registering this dependency on /src/cms/cms.js
I think it will work now, I will reply in a few minutes.

My PR makes those two changes already so I assume that somehow your latest Netlify build didn't include them in the deployment. If you test the build by merging my PR with your deployment branch (master, staging, etc ) locally then pushing your changes to trigger a deployment, then it should work

@SpacemanPete Now it is working, but I believe something is not at 100%.
The "media" page it disappears from the home at /admin/ but I am able to upload an image with the UI of UploadCare.

Yeah, I discovered that the other day as well, I assume it's a limitation of the Uploadcare API similar to the issue netlify-cms#2966, since there's no logic to pull details of the images already uploaded.
To be honest, given these issues I'm not convinced the UploadCare integration is robust enough for real-world usage yet. The inability to reuse images already uploaded is a bit of a deal-breaker for me at the moment.
I'm planning on refactoring my fork of Yellowcake starter this weekend to use Netlify Large Media since it seems like it would be a more robust integration of media files right in the same git repo and is has transformation service up to 25k a month on the free tier, which should be plenty fine for most small projects. Keep an eye on my repo if you're interested.

@SpacemanPete I will be watching that repo! I really thought this UploadCare would be a nice solution, with the ability to "connect" to 3rd-party storage, like G-Drive, Dropbox and even the photos of the smartphone... It is a shame then :(
Thanks for your time and patient! all the best*

I would also like to mention that upload care recently increased their middle tier from $20ish to $45ish.
I'm looking forward to changing integrations as well.

@baldeagle and @SpacemanPete I think you guys can solve this issue just by switching from the UploadCare to Cloudinary (it's free).
I am making a website for a photographer and I've just realized I couldn't really send the raw photo-files of +10mb to GitHub, so, I had in mind it was there another media library cloud system - Cloudinary! I've just added this on my config.yml file:
media_library:
  name: cloudinary
  config:
    cloud_name: username
    api_key: to_replace_with_api_key

You can find more info here:
https://www.netlifycms.org/docs/cloudinary/
PS: I've added this Cloudinary on the website and it works like a charm, very professional and you are sure the photos are uploaded and not lost in the Space!

I'll look into this. Great info here.

Thanks @SpacemanPete


Static hashing fine-tune

@l1npengtul a couple issues:

let value = f(); in get_or_init seems to be run every call; instead it needs only be run once when the value should be set.

Is there a way for get and get_or_init to return a reference to the data instead of copying it?  Although copying four 64-bit words during each call is not a big deal, but still it might be faster to just return an Option<&T> instead.  I see that you do a read to copy that value (which is an array)... maybe just return cast itself as a reference?

Ive made #666 to address this.


LNUrl withdrawal links generated with LNPay are invalid

I've cloned LNBits and run it locally with LNPay as a wallet. Whereas the invoices work properly (both generate and get status), the LNUrl withdrawal links generated are invalid, even though the link looks fine (ie: LNURL1DP68GU...). Not sure if this is an issue with LNBits or LNPay though. Have you guys had any luck getting LNPay to generate valid LNUrls?

LNURLS need to be served over HTTPS or else the wallets will reject it.
Try using ngrok to make a reverse https proxy ./ngrok http https://<IP_ADDRESS>:5000, then make an LNURL and try it
If you run LNbits yourself you'll need HTPPS, either through something like certbot or some reverse ssh tunnel service


Integrity constraint violation

Hi
I've just installed your plugin on one of our customer sites and wanted to test it with an entry. However, I receive the following error when duplicating the entry to another site:
Integrity constraint violation – yii\db\IntegrityException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '98698-2' for key 'craft_content_elementId_siteId_unq_idx'
The SQL being executed was: UPDATE craft_content SET elementId=98698, siteId=2, title='Test Mischa', field_newsSubtitle=NULL, field_newsShorttext=NULL, field_newsImageCrop='left top', field_embedYoutubeVideo=NULL, field_newsShowHome='auto', field_newsShowCurrent='auto', field_showAds=1, field_showLogos=1, field_newsNewsletterDate=NULL, dateUpdated='2019-07-17 10:30:10' WHERE id='51959'
Error Info: Array
(
[0] => 23000
[1] => 1062
[2] => Duplicate entry '98698-2' for key 'craft_content_elementId_siteId_unq_idx'
)
↵
Caused by: PDOException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '98698-2' for key 'craft_content_elementId_siteId_unq_idx'
in /home//public_html//vendor/yiisoft/yii2/db/Command.php at line 1290
Any idea what the reason for the error could be?
Best,
Mischa

Hi Mischa
What Craft version are you using?
Den ons 17 juli 2019 12:34MischaSz<EMAIL_ADDRESS>skrev:

Hi
I've just installed your plugin on one of our customer sites and wanted to
test it with an entry. However, I receive the following error when
duplicating the entry to another site:
Integrity constraint violation – yii\db\IntegrityException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'98698-2' for key 'craft_content_elementId_siteId_unq_idx'
The SQL being executed was: UPDATE craft_content SET elementId=98698,
siteId=2, title='Test Mischa', field_newsSubtitle=NULL,
field_newsShorttext=NULL, field_newsImageCrop='left top',
field_embedYoutubeVideo=NULL, field_newsShowHome='auto',
field_newsShowCurrent='auto', field_showAds=1, field_showLogos=1,
field_newsNewsletterDate=NULL, dateUpdated='2019-07-17 10:30:10' WHERE id
='51959'
Error Info: Array
(
[0] => 23000
[1] => 1062
[2] => Duplicate entry '98698-2' for key
'craft_content_elementId_siteId_unq_idx'
)
↵
Caused by: PDOException
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'98698-2' for key 'craft_content_elementId_siteId_unq_idx'
in /home//public_html//vendor/yiisoft/yii2/db/Command.php at line 1290
Any idea what the reason for the error could be?
Best,
Mischa
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/naboo/craft-siteduplicate/issues/2?email_source=notifications&email_token=AAJJ3TNAEMLJZLIJFJTNXIDP73YRTA5CNFSM4IEO5M5KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G7WESVQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJJ3TMAYAV7IMNMS4IIFXLP73YRTANCNFSM4IEO5M5A
.

PHP version	7.1.30
OS version	Linux 3.10.0-962.3.2.lve<IP_ADDRESS>.el7.x86_64
Database driver & version	MySQL 5.7.26
Image driver & version	Imagick 3.4.3 (ImageMagick 6.9.4-10)
Craft edition & version	Craft Pro 3.1.29
Yii version	2.0.19
Twig version	2.11.2
Guzzle version	6.3.3
Imagine version	0.7-dev

Is this error happening across all sections or just one in particular?
The error is a little wierd and related to a duplicate index on the table -
which shouldn't be something the Plugin has anything to do with.
Den ons 17 juli 2019 13:31MischaSz<EMAIL_ADDRESS>skrev:

PHP version 7.1.30
OS version Linux 3.10.0-962.3.2.lve<IP_ADDRESS>.el7.x86_64
Database driver & version MySQL 5.7.26
Image driver & version Imagick 3.4.3 (ImageMagick 6.9.4-10)
Craft edition & version Craft Pro 3.1.29
Yii version 2.0.19
Twig version 2.11.2
Guzzle version 6.3.3
Imagine version 0.7-dev
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/naboo/craft-siteduplicate/issues/2?email_source=notifications&email_token=AAJJ3TLK2N3LVSLPT4FNUSLP737J3A5CNFSM4IEO5M5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2D4TSY#issuecomment-512215499,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJJ3TIYQWSC6JAXQZASMNDP737J3ANCNFSM4IEO5M5A
.

See https://github.com/craftcms/cms/issues/3716
It looks like this is a known issue with duplicateElements() in combination with supertables - should be solved in Craft 3.2
So we will wait for Craft 3.2. Thanks!

Perfect. I'll close this.


Merge DEV ke UAT 10 Mar 2018

Coverage increased (+0.09%) to 77.643% when pulling 43f5e2c939c3582ec6e91470eb0ec4a07afadeec on dev into d5bf71fed4ae921bb87d1ced4706f1867699d803 on uat.