Deep dive into colmap

Previous teams have done a wonderful job with setting up colmap and the general sfm pipeline. Some new improvemnts to colmap have made it more tolerant to shaky/unstable camera paths and quicker changing backgrounds.
Sometimes, colmap will find a large number of points ( > 20000) from a 200 image collection, but then under model reconstruction only select a small number of images ( < 5) for final output. I would super duper appreciate someone to investigate into why this is and what can be done. Looking into the .mysql file for a scene in this example shows that the two-way correlation between points should give way more final images.

Also, we should add gpu support for colmap dynamically off image resolution (it does better on low res on cpu and better at high res on gpu).

Heres an example:
sfm-worker stdout logs:
sfmworkerstdout.txt
sfmworkerlogging.txt
And a possible path from me shamelessly using  chatgpt:
Based on the logs, it appears that COLMAP successfully processed all 200 images during the feature extraction and matching stages. However, the final reconstruction only includes 3 images. This suggests that there may have been issues during the sparse reconstruction (mapping) stage. Here are some potential reasons and things to consider:
Insufficient matches: The mapper may have struggled to find enough consistent matches between most images to include them in the final reconstruction.
Scene complexity: If the scene is very repetitive or lacks distinct features, it can be challenging for COLMAP to accurately reconstruct it.
Camera motion: If the camera motion is too small between frames or if there are sudden large movements, it can cause issues in reconstruction.
Initialization: COLMAP starts with an initial image pair and then tries to register more images. If the initial pair is not well-chosen, it might fail to register most images.
Quality thresholds: COLMAP has various thresholds for considering matches and registrations as valid. These might be too strict for your dataset.
To improve the reconstruction, you could try the following:
Adjust COLMAP parameters: You can try tweaking parameters like --Mapper.min_num_matches, --Mapper.init_min_num_inliers, or --Mapper.abs_pose_min_num_inliers to be more lenient.
Use a custom image list: Instead of using all images, you could manually select a subset of images with good overlap and use --image_list_path in the mapper.
Incremental reconstruction: Try using the mapper_incremental instead of just mapper. This allows more control over the reconstruction process.
Check image quality: Ensure that the images are not blurry and have sufficient overlap.
Analyze the matches: You could use COLMAP's match_visualizer to see which images have good matches with each other.
Sequential matching: If your images are from a video sequence, using sequential_matcher instead of exhaustive_matcher might yield better results.
Increase the number of features: You could try extracting more features per image by adjusting --SiftExtraction.max_num_features.
Given that the feature extraction and matching stages completed successfully for all 200 images, it's likely that adjusting the mapper parameters or using a different mapping strategy could significantly improve your results.
The relevant colmap runner code is:
#Usage: python colmap_runner.py --flags
#Flags: --colmap_exe_path "path" ==> Path to the colmap executeable.
#                                  > Defaults to looking for COLMAP.bat in a folder called COLMAP in the
#                                  > folder this script is in
#
#       --image_path "path"      ==> Path to the folder containing the images for COLMAP's input
#                                  > Defailts to looking for a folder called "Images" in the folder
#                                  > this script is in
#
#       --name "name"            ==> Name of the folder to be created to store the data for this instance
#                                  > of colmap.
#                                  > Defaults to "colmap_output"
#
#       --output_folder "path"   ==> Directory to where colmap will put its output.
#                                  > Defaults to the folder where this script is

#run_colmap function:
#
#creates a new folder called instance_name in output_path and fills it with the colmap data
#    generated by the exe at colmap_path with data from images_path
#
#returns a status code -

#    0 = Success
#    1 = Unspecified error
#    2 = FileExistsError; happens when you try to create data in an already existing folder
#    3 = FileNotFoundError; happens when you try to use an output folder that does not exist

def run_colmap(colmap_path, images_path, output_path, use_gpu="false"):
    ### Create a new folder to store our data
    # TODO: determine GPU use on start
    Path(f"{output_path}").mkdir(parents=True, exist_ok=True)

    # sfm-worker logger
    logger = logging.getLogger('sfm-worker')

    logger.info("run_colmap()-colmap_path: " + colmap_path)
    logger.info("run_colmap()-images_path: " + images_path)
    logger.info("run_colmap()-output_path: " + colmap_path)

    #Creating a new database for colmap
    try:
        database_path = output_path + "/database.db"
        subprocess.call([colmap_path, "database_creator", "--database_path", database_path])
        logger.info("Created DB")

    except:
        logger.error("DB Creation Failed")
        return 1

    #Feature extracting
    try:
        # --SiftExtraction.use_gpu=false for docker
        # TODO: make gpu use dynamic
        subprocess.call([colmap_path, "feature_extractor","--ImageReader.camera_model","PINHOLE",f"--SiftExtraction.use_gpu={use_gpu}","--ImageReader.single_camera=1", "--database_path", database_path, "--image_path", images_path])
        logger.info("Features Extracted, Gpu: " + use_gpu)
    except:
        logger.error("Features unable to be extracted")
        return 1

    #Feature matching
    try:
        # subprocess.call([colmap_path, "exhaustive_matcher",f"--SiftMatching.use_gpu={use_gpu}", "--database_path", database_path])
        subprocess.call([colmap_path, "sequential_matcher",f"--SiftMatching.use_gpu={use_gpu}", "--database_path", database_path])
        logger.info("Feature Matched, Gpu: " + use_gpu)
    except:
        logger.error("Features unable to be matched")
        return 1

    #Generating model
    try:
        subprocess.call([colmap_path, "mapper", "--database_path", database_path, "--image_path", images_path, "--output_path", output_path])
        logger.info("Model generated")
    except:
        logger.error("Model unable to be generated")
        return 1

    #Getting model as text
    try:
        # TODO: no longer works on windows fix file paths or run in docker
        subprocess.call([colmap_path, "model_converter", "--input_path", output_path + r"/0", "--output_path", output_path, "--output_type", "TXT"])
        logger.info("Model as text successful")
    except:
        logger.error("Model as text unsuccessful")
        return 1

    logger.info("run_colmap successfully executed")
    return 0


Log authz input after evaluations

There's a regression resulted from https://github.com/Snowflake-Labs/sansshell/pull/201 that caused authz logs to contain value of input before evaluations.
This is because logger = logger.WithValues("input", input) is doing copy by value rather than by reference.
go-logr implementation can be found here
On this PR, we're fixing this issue by adding input to every log in Authorizer.Eval() so that it always contains the latest value.
Thanks @sfc-gh-srhodes for finding this problem and identifying the root cause quickly.

Verified that Eval logs contain value of input after evaluations.
{"logger":"sansshell-proxy","ts":"2023-03-29 12:25:10.665621","caller":{"file":"rpcauth.go","line":107},"level":1,"msg":"authz policy evaluation result","version":"","method":"/Proxy.Proxy/Proxy","peer":{"net":{"network":"tcp","address":"::1","port":"54618"},"cert":{"subject":"SERIALNUMBER=XXXX,O=Acme Co,POSTALCODE={\\\"username\\\":[\\\"edbertlinarditestclient\\\"]\\,\\\"groups\\\":[\\\"APP_Edbert\\\"]}","issuer":"SERIALNUMBER=XXXX,O=Acme Co","dnsnames":["localhost"],"spiffeid":""},"principal":null},"authorizationResult":true,"input":{"method":"/Proxy.Proxy/Proxy","message":{"stream_data":{"stream_ids":["17613228628879050819", "9882643378035907792"], "payload":{"@type":"type.googleapis.com/google.protobuf.Empty", "value":{}}}},"type":"Proxy.ProxyRequest","metadata":{":authority":["localhost:9501"],"content-type":["application/grpc"],"user-agent":["grpc-go/1.53.0"]},"peer":{"net":{"network":"tcp","address":"::1","port":"54618"},"cert":{"subject":"SERIALNUMBER=XXXX","issuer":"SERIALNUMBER=XXXX,O=Acme Co","dnsnames":["localhost"],"spiffeid":""},"principal":{"id":"edbertlinarditestclient","groups":["APP_Edbert","Acme Co"]}},"host":{"net":{"network":"tcp","address":"::","port":"9501"},"cert":null,"principal":null},"environment":null,"extensions":null}}


Add Quick Sort for the following Languages

The following Algorithm needs to be implemented in the following languages.

[ ] C
[ ] C++
[ ] Python
[ ] Java

Ground rules:

Whoever claims the Issue first, should send a Pull Request within 24 hours else it'll be assigned to another claimant and further Pull Requests regarding that issue will not be entertained.
Pull Requests sent without claiming and referencing the Issue will not be entertained.
Make sure your Pull Requests have just one commit in them. Squash multiple commits into one if you have to.
Make sure you put in the proper folder. If you do not know where to push the code for the Algorithm, feel free to ask in the comments section below. :smile:

I'll work on the C version.

Hi @salman-bhai I wish to claim python version of quick sort for implementation.

I'd like to take C++ Quick Sort

Go ahead! @menikhilpandey @nikitakorba

I'd like to implement the Java version

Hey Kindly check the new Issues Tab which I've created!

Hey, @mlterpstra92 Go ahead! I'm sorry for the confusion!


🧑💻 : Transition to Digital One-Click Counter

:red_circle: Title : Transition to Digital One-Click Counter
:red_circle: Enhancement Aim : The goal is to replace repetitive manual button presses with a digital one-click counter for faster, more efficient counting. This will reduce user effort and improve the app’s usability, especially for tasks requiring quick or large-scale counts.
:red_circle: Changes : To enhance the counter app, I will introduce a start and stop button, allowing users to initiate and halt automatic counting with ease. Once the start button is pressed, the counter will increment automatically, eliminating the need for manual plus and minus button presses. This change simplifies user interaction and improves efficiency, as users can focus on their tasks without constantly tapping buttons.
Screenshots 📷
screen-capture (2).webm

✅ Details to Include When Taking the Issue:
Name : Sneha Tiwari
Participant Role (Specify the Open Source Program name, e.g., GSSOC, Hacktoberfest, etc.):  GSSOC-EXT, HACKTOBERFEST

Happy Contributing! 🚀
Wishing you all the best on your open source journey. Enjoy! 😎

@iamrahulmahato Hey Rahul, Please review this enhancement once and if suitable assign it to me!!


Hypervisor: Add support for default IPv6 gateway

This commit adds support for default IPv6 gateway configuration in static mode. When a user sets this value, it would be updated in the ethernet dbus object and the same will be sync'ed with the ip address dbus object - this is because, there is only one ipv4 and ipv6 objects permitted for each ethernet interfaces.
This change keeps the "DefaultGateway6" property of ethernet interface, "Gateway" property of ip address object and the "bios table" in sync to avoid misconfigurations.
In case of dynamic configuration, patching of this property will not be permitted and error would be returned.
TestedBy:
[1] Setting "DefaultGateway6" of ethernet object:
busctl set-property xyz.openbmc_project.Network.Hypervisor \ /xyz/openbmc_project/network/hypervisor/eth1
xyz.openbmc_project.Network.EthernetInterface DefaultGateway6 \ s ""
[2] Setting from Bios table: (This should reflect in the dbus object) busctl call xyz.openbmc_project.BIOSConfigManager \ /xyz/openbmc_project/bios_config/manager
xyz.openbmc_project.BIOSConfig.Manager SetAttribute sv vmi_if1_ipv6_gateway \ s ""
Change-Id: I7c00acaf8e93c710202ffb3c24a9e13fd76da5b0

Address the following defect:
https://jazz07.rchland.ibm.com:13443/jazz/web/projects/CSSD#action=com.ibm.team.workitem.viewWorkItem&id=543926

jenkins run tests please

upstream link?


"Run Linting" command doesn't automatically show the Problems pane

This makes it look like it doesn't quite do anything, unless you happen to have that pane opened already.
(Note - this is only about the explicit activation via command, not about background linting.)

Unfortunately we cannot open the panel ourselves (not from the extension).
https://github.com/Microsoft/vscode/issues/10400


Support Windows

Currently, Mdx on Windows doesn't work well:

Line endings: https://github.com/realworldocaml/mdx/pull/294

Cram blocks don't work because Mdx is calling sh.

Calling ocaml-mdx-test doesn't work every time
argv0 cannot be trusted, also Mdx doesn't control how its installed and shouldn't. PATH is the right abstraction here.
In Mdx's testsuite, Dune gives us a path containing /, Windows' execve exits without warning and nothing happen.

In Mdx's testsuite

dune.inc files are changed because of line encoding
mli unit tests are failing because of line encoding
mdx-test/* tests use POSIX shell features (echo, heredoc, for loops) and unix tools (ls, seq)

I'm using Mdx in Odoc's testsuite and I'd like to run tests on Windows.

For point 3, this is not what's happening: execvp doesn't fail silently (when it fails, it raises an exception) but it reaches a state where it's a new process so dune doesn't know about it, and its outputs are closed so it cannot print anything. #299 fixes that!

For cram-style tests, we expect something like a posix shell so it's ok to rely on the presence of sh and use things like echo, for loops, etc.

Hello! Bumping this.
For context; Eio tests run with mdx. We recently included a Select based backend for Windows, enabling Eio to work on Windows. This issue is a blocker for Eio 1.0. It'd be nice to fix it before ideally, so we can be reasonably sure the Windows backend works (and fix issues we might run into). Happy to help with testing or other ways we can.
cc @talex5 @polytypic

Hi.
I don't think that this issue is properly scoped at the moment (in the sense that we can't easily close it), but mdx works on windows. There used to be an issue with stray programs, fixed in #299. Cram tests are tricky to do in a portable way but that's not really a problem with mdx itself. md programs should work.
What's not working in the context of eio, precisely?

Let me get back to this next week (vacationing this week) as I’ll try to get the Eio mdx tests working. I suspect most of the issues can be worked around.


Implement Authentication for the Web Part

Service Talk and JAX-RS have some primitive to handle security : https://apple.github.io/servicetalk//servicetalk-http-security-jersey/SNAPSHOT/index.html Using this to limit access to some tilesets, and admin API.

We should adapt the openapi definition accordingly. I wonder if the code generator will produce code related to authentification or if this is left to the developer.
https://swagger.io/docs/specification/authentication/


feat: 明细表行头单元格支持拖拽

👀 PR includes

✨ Feature

[x] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[x] Solve the issue and close #1637

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description
🖼 Screenshot

有序号时
无序号时

🔗 Related issue link

🔍 Self-Check before the merge

[ ] Add or update relevant docs.
[ ] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.26.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v1.26.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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


feat: TechDocs - Add vale linter to check words quality in md files.

Hey, I just made a Pull Request!
Closes #2031
Approach to solve #2031 using vale linter.

Added basic vale setup file .vale.ini. source
vale does not provide functionality to ignore folders, we have to provide files manually vale foo.md bar.md to run linter. So automatic way to achieve it is by grep & git.

list all files which are tracked by git. (node_modules and other unnecessary directories are ignored).
find md files.
pass above files to vale

git ls-files | grep -h ".md" | xargs vale

added above command in package.json as lint:docs.

Generated vocab.txt file.

Some keywords, names (eg. api, https) are considered as vale.Spelling error, so we have to add them inside vocab.txt file.
We can list all unique words which are considered as error in vocab.txt using below command.

yarn run lint:docs | grep -o "'[a-z A-Z]*'" | grep -o "[a-z A-Z]*" | sort | uniq > .github/styles/vocab.txt

Now we have to manually validate all words listed in vocab.txt, discard which are invalid and correct them in file where they were located.
Added vale github actions.

we have to add that action before node_modules are added.

Above steps are included in this PR.

Usage:
yarn run lint:docs

Limitation:

update in vocab.txt is required for false positives.

:heavy_check_mark: Checklist

[ ] All tests are passing yarn test
[ ] Screenshots attached (for UI changes)
[x] Relevant documentation updated
[x] Prettier run on changed files
[ ] Tests added for new functionality
[ ] Regression tests added for bug fixes

WOW!! This is awesome, will definitly look through it more asap 💯

Updates:

separate CI to check docs quality. All files are checked on push and only updated filese are checked on pull_request
used shx npm package to wrap grep command.
xargs is not supported in shx, to solve this issue on windows platform, I've tried to achieve similar functionality in node script at /scripts/check-docs-quality.js
Added command in pre-commit hook.

Can you please check yarn run lint:docs on windows machine
@emmaindal @andrewthauer

@hooloovooo Can you please check it again?

@hooloovooo Can you please check it again?

Now i'm getting this error when running the lint command

@hooloovooo Can you please check it again?

If running check-docs-quality.js directly using node I get this error instead
'.' is not recognized as an internal or external command,
operable program or batch file.

@andrewthauer I have removed shebang as we are using this script only once. Is it ok?
@hooloovooo This time I have checked in windows machine and is working. Can you please verify?

@Marvin9 - I'm a bit indifferent, but my default is to use executables for scripts. I would say that if the file has an executable flag the the shebang should be there if not it's pointless.

@Marvin9 Confirmed to work now! :)

Documentation updates required to mention installation of vale cli. I will update that.

@marvin9 Looks good to me, there is just a markdown files quality check that needs to pass before merge!

@spotify/silver-lining can we get a review from you since this PR makes some spelling changes to your documentation!

@Marvin9 thank you so much for your contribution 🥳


SSL: mysqlconn TLS support, better tests.

This change contains the following:

adding client and server side support for TLS in mysqlconn.

Generating test certs is annoying. Adding a go library to do it, and a go binary that calls the library. Using it in the go mysqlconn unit tests, and in the python tests. We can also use it in the java / bash tests if we want.

@sougou @michael-berlin this is not fully ready yet, I still have to validate our SSL client against a real MySQL server. (already do MySQL's 'mysql' client against our server, and our client against our server).

@sougou @michael-berlin this is now ready for review.

@sougou @michael-berlin I could really use a review here, and for the internal import CL too. Next on my list is better auth, and it somewhat depends on this code. Thanks!

LGTM (from offline discussion with Michael and Sugu)


Move boolean logic to guards in process method of RouterElement

https://github.com/IBM-Swift/Kitura/tree/develop/Sources/Kitura/RouterElement.swift#L118-121

Completed in PR #405


Install problems

i keep trying to install appkit but i keep running into the same problem. Yes i already have installed Quartz. When i try pip3 install AppKit or pip install AppKit i keep getting the following
`ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /private/tmp/pip-build-env-ejsn87m7/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo
cwd: None
Complete output (29 lines):
WARNING: The directory '/Users/xxx/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
WARNING: The directory '/Users/xxx/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting setuptools
Downloading https://files.pythonhosted.org/packages/54/28/c45d8b54c1339f9644b87663945e54a8503cfef59cf0f65b3ff5dd17cf64/setuptools-42.0.2-py2.py3-none-any.whl (583kB)
Collecting wheel
Downloading https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.whl
Collecting pycairo
Downloading https://files.pythonhosted.org/packages/3c/1a/c0478ecab31baae50fda9956547788afbd0ca563adc52c9b03cab30f17eb/pycairo-1.18.2.tar.gz (200kB)
Installing collected packages: setuptools, wheel, pycairo
Running setup.py install for pycairo: started
Running setup.py install for pycairo: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-qynd_0kn/pycairo/setup.py'"'"'; file='"'"'/private/tmp/pip-install-qynd_0kn/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-ajgenwxx/install-record.txt --single-version-externally-managed --prefix /private/tmp/pip-build-env-ejsn87m7/overlay --compile
cwd: /private/tmp/pip-install-qynd_0kn/pycairo/
Complete output (12 lines):
running install
running build
running build_py
creating build
creating build/lib.macosx-10.9-x86_64-3.8
creating build/lib.macosx-10.9-x86_64-3.8/cairo
copying cairo/init.py -> build/lib.macosx-10.9-x86_64-3.8/cairo
copying cairo/init.pyi -> build/lib.macosx-10.9-x86_64-3.8/cairo
copying cairo/py.typed -> build/lib.macosx-10.9-x86_64-3.8/cairo
running build_ext
'pkg-config' not found.
Command ['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']
----------------------------------------
ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-qynd_0kn/pycairo/setup.py'"'"'; file='"'"'/private/tmp/pip-install-qynd_0kn/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-ajgenwxx/install-record.txt --single-version-externally-managed --prefix /private/tmp/pip-build-env-ejsn87m7/overlay --compile Check the logs for full command output.
ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /private/tmp/pip-build-env-ejsn87m7/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo Check the logs for full command output.`

Thanks for opening the issue.
The fact is, I've leaved this repo for a long time without update. Maybe it's time to revamp it.

What platform and environment do you use ? Now AppKit only support for Gnome Desktop.


Regarding AWS-C++ Kinesis

Hi, Am using AWS-C++ SDK. And am only using Kinesis service and developing a kinesis client program. I want to know what and all the relevant source files required/port from AWS SDK, so that my Kinesis client program will run successfully.
Am not at all using other services like SQS,etc...
So want to make sure the required files (.h and .cpp) from SDK for my kinesis client program
Thanks,

In that case, it sounds like all you need is core and kinesis, so something like:
cmake -DBUILD_ONLY="core;kinesis"
And if shipping shared libraries, you'll only need aws-cpp-sdk-core.so/dll and aws-cpp-sdk-kinesis.so/dll

Thanks. when i tried cmake (cmake ../aws-sdk-cpp/aws-cpp-sdk-core ../aws-sdk-cpp/aws-cpp-sdk-kinesis), am getting the following error.
But if i tried cmake ../aws-sdk-cpp (full sdk source, then working)
building in linux ;
arunc@arunc-VirtualBox:~/openwrt/SDK_build_onlyKinesis$ cmake ../aws-sdk-cpp/aws-cpp-sdk-core ../aws-sdk-cpp/aws-cpp-sdk-kinesis
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:1 (add_project):
Unknown CMake command "add_project".
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present.  A line of code such as
cmake_minimum_required(VERSION 3.5)

should be added at the top of the file.  The version specified may be lower
if you wish to support older CMake versions for this project.  For more
information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Configuring incomplete, errors occurred!
See also "/home/arunc/openwrt/SDK_build_onlyKinesis/CMakeFiles/CMakeOutput.log".
arunc@arunc-VirtualBox:~/openwrt/SDK_build_onlyKinesis$

You should always point cmake at the root of the AWS SDK project. The CMakeLists.txt there has the ability to select and build a subset of the SDK:
cmake -DBUILD_ONLY="core;kinesis"  ../aws-sdk-cpp

There is a cmake_minimum_required (VERSION 2.8.12) in the top-level CMakeLists.txt

Thank you..its working.....i have a quick question,
i plan to create a new application (outside of root:aws-sdk-cpp), lets say, Application Directory: Kinesis_Client
So, if i copy only aws-cpp-sdk-core & aws-cpp-sdk-kinesis, and required shared libraries (aws-cpp-sdk-core.so and aws-cpp-sdk-kinesis.so) with my New_kinesis_client.cpp , that should be fine?
Kindly suggest, Thanks.

You shouldn't really need to copy anything.  If you're using cmake, you can follow the steps here (https://aws.amazon.com/blogs/developer/using-cmake-exports-with-the-aws-sdk-for-c/) to have your other project reference the SDK build.  If you're not using cmake, you could always do an install of the SDK at either the system level or within your project to a common dependencies location.
But yes, all that you technically will need are the headers from core & kinesis, as well as the two shared libraries.

Thanks much bretambrose....my client program is working as per the link which u provided,
full AWS-SDK-->cmake -DBUILD_ONLY="core;kinesis"--> CMakeLists.txt (New_kinesis_client.cpp)->make
its working fine in my local linux machine.
Suppose i want to port this client program to some device running linux platform. Since its compiling with cmake, whether i have to port 'full AWS-SDK' also?
or something like below will work?
(only kinesis/core source from) AWS-SDK-->cmake -DBUILD_ONLY="core;kinesis"--> CMakeLists.txt (New_kinesis_client.cpp)->make
because i am using only kinesis service, i don't want to port complete AWS-SDK source code to my device.

Given the SDK's minimal dependencies, it's likely to be easy-to-trivial (ie, just build) to port to common Linux flavors.  Either way, you won't need to do the whole SDK, you can continue to just build and use the subset you want.

That really helped. Thanks,


add AUR versioning check

Currently, pacaur considers all packages that aren't found in the repositories to be present in the AUR instead. Package names are checked, so if a packages isn't found in AUR it will be considered as "not found".
However, versioned packages not found in AUR, but whose name is currently in AUR (ie, with a different pkgver) aren't currently taken into account and they will be considered as "found in the AUR".
Check version of AUR packages too. This is a required step for implementing #173 correctly.

Done in d3f7d552da4eebdb6be5279124f1a9b0906039bc.
Using the "aura" test package as a package with complex dependency solving (and with haskell deps which are often broken), the code is a bit slower (+25%) but it does now found all missing deps and the reason they aren't found:
Before:
$ time pacaur -S aura
...
:: no results found for ghc
:: no results found for haskell-entropy
:: no results found for haskell-hashable
:: no results found for haskell-network-info
:: no results found for haskell-text

real    0m14.805s
user    0m6.730s
sys     0m1.343s

Now:
$ time pacaur -S aura
...
:: no results found for ghc=7.8.3-1
:: no results found for haskell-hashable=<IP_ADDRESS>-3
:: no results found for haskell-network-info<0.3
:: no results found for haskell-scientific=<IP_ADDRESS>-4
:: no results found for haskell-semigroups=<IP_ADDRESS>-2
:: no results found for haskell-text=<IP_ADDRESS>-3
:: no results found for haskell-cereal=<IP_ADDRESS>-2
:: no results found for haskell-entropy=<IP_ADDRESS>-2
:: no results found for haskell-tagged=0.7.3-2

real    0m19.207s
user    0m9.970s
sys     0m2.133s

Note: it might also be possible to optimize the code a bit, by avoiding all these individual awk calls.


WebSocket dependency for esm target

Trying to reproduce block example on my node environment and getting this error:
ReferenceError: WebSocket is not defined
    at proxyClient (file:///.../node_modules/capi/esm/rpc/providers/proxy.js:6:16)
    at Module.stdClient (file:///.../node_modules/capi/esm/rpc/providers/std.js:8:20)
    at Runtime.<anonymous> (file:///.../node_modules/capi/esm/effect/atoms/RpcClient.js:5:20)
    at file:///.../node_modules/capi/esm/effect/sys/run.js:51:59

capi version: 0.1.0-beta.12
I assume it's because Deno supports websocket as a part of their standart library which requires additional dependency when compiled to esm

Where are you utilizing Capi? What env / boostrap / framework?


Does not function on Mac

The program should be allowing me to use it, essentially. It opens, and I may be able to click something, before it freezes. I can't move my cursor, type, scroll, etc. I seem to be having the same issue with the Chrome Extension.
Info
Mac OS Monterey
Notion Enhanced Version 2.0.18-1
Configurations: Tweaks, font chooser (rainyhearts and Indie Flower), tray, always on top, view scale, outliner, scroll to top, indentation lines, bypass preview, top bar icons, word counter, code line numbers, calendar scroll, collapsible headers, collapsible properties, weekly view, truncated titles, focus mode, and global block link.
I’m using the themes”pinky boom” and “playful purple”

The notion-enhancer does not handle large pages very well- I recommend either a) disabling some of the more intensive mods like word counter, collapsible headers, outliner, and the themes or b) breaking up your notes into smaller pages. The individual performance issues of each of these mods are known bugs (some that can be fixed, some that can't).


Remove license provider work around

Please have a look at the individual commit messages for the details.

In chore(spdx-utils): Rerun the generateSpdxEnums task to update texts ORT is updated to use SPDX license list 3.19

No, it's not, see gradle.properties which is unmodified in this PR and still contains spdxLicenseListVersion = 3.18. The changes to the license texts solely come from ScanCode's DB (which we prefer over SPDX due to better formatting).


[TYPE HINTS] Missing some of them

Hi,
I've made a review on your function definitions as some type hints were missing (and it's important on my side to have them).
Thank you for your comprehension

Looks good to me. Merging it in.


Master

Updated tutorials for usage of newer SAP S/4HANA release (2023 FPS01)

@SibylleB please resolve the conflict as described in the pull request.


support at least API 21

fix with https://github.com/oldergod/red/commit/29487ac2d942629cf3e8a695a0ff6cf0947add02


feat(mini-cart): Display a detailed notification when products are added to cart.

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Performance issue
[x] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:

Current behavior
There is no header to display cart icon or the option to quickly view what is in cart.
Expected behavior
Mini cart will appear when a product is added to the cart. The mini cart will also appear when a user hovers or clicks on the cart icon in the header.
Mock + Prototype: https://framer.cloud/aFzwn
Minimal reproduction of the problem with instructions

What is the motivation / use case for changing the behavior?
General page structuring and UX Experience Improvement.
Environment

Daffodil version: X.Y.Z

For Tooling issues:
- Node version: XX
- Platform:

Others:

Mock + prototype: https://framer.cloud/aFzwn

Mobile Mock + Protoype: https://framer.cloud/cKTSv

Implemented here: https://github.com/graycoreio/daffodil/pull/97


Swift 4.2 Xcode 10 support

Would really appreciate a recompiled version for iOS12
Thanks again for your efforts to date.

Already in current master branch! ;)


Recruit

WE'RE HIRING!

(y)

:+1:

OMG

@Parkayun Thanks to your awesome information :) I will send my resume to email! please check it asap!


More preflight checks?

This was on TODO list.
@rdemachkovych do we need to check something more in preflight.yml?

[ ] checking prometheus_config_flags_extra map.


feat: blueprint-serde crate

Still a draft, a couple of TODOs left. Want to add some docs and some more tests
This crates lets us convert to and from the Field type easily with serde's Serialize and Deserialize traits. This will allow for custom types in job parameters, as well as making it easier overall to convert between these types.
The crate adds two public functions:

to_field - Convert any Serialize type into a Field
from_field - Attempt to convert a Field into a DeserializeOwned type

While mostly useful for Field::Struct, one can also do:
let age: u8 = gadget_blueprint_serde::from_field(Field::Uint8(40)).unwrap();

Or conversion for any primitive type, if they wanted.

Will this be compatible with no_std?

Yeah, that's the plan. I haven't made it #![no_std] yet just in case, but I don't imagine it'll need std at all.

We could have it be both too with the std feature. Just trying to keep us in the flow of doing so when we can.

I can add an std feature just in case. I can't imagine us needing it though, none of the dependencies nor any of the de/serialization logic need std.


Vert.x CRUD mission issues

You must be logged in beofre creating the database

The two sections are not in the right order.

You app1 pod should have a status of Running once its fully deployed and started. is not right

You should be running AND ready (1/1)
NAME                     READY     STATUS      RESTARTS   AGE
crud-vertx-1-deploy      1/1       Running     0          53s
crud-vertx-1-qrn65       0/1       Running     0          50s       <- running and not ready
crud-vertx-s2i-1-build   0/1       Completed   0          1m
http-vertx-1-qzttx       1/1       Running     0          17m         <- running and ready
http-vertx-s2i-1-build   0/1       Completed   0          18m

On my minishift postgresql-ephemeral is not available, I had to use postgresql-persistent

oc get route vertx-crud -o jsonpath={$.spec.host} should be oc get route crud-vertx -o jsonpath={$.spec.host}

It impacts all the output of the different commands
In addition, the output of the oc get route.... is not right. It's just a single line: the DNS name:
oc get route crud-vertx -o jsonpath={$.spec.host}
crud-vertx-myproject.<IP_ADDRESS>.nip.io

The usage of http should be described somewhere. First the user needs to have httpie installed. Should we only use CURL ?

@inoxx03 can you take a look at this?

Fixes in PR #120. Please take a look. Thank  you


Cleanup duplicate EnvoyJSONLogFormatIstio

Please provide a description of this PR:
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Please check any characteristics that apply to this pull request.

[x] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
62fc99b932770626a864e71a876f16696c93b258
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-notes


Plugin idea: Gamify the chat system

It would be a fun and unique thing if sirbot gamified the slack system and grabbed some metrics for admins:

User join date
Message counts
Consecutive days active

This could be used to gamify slack a bit and provide "rewards" or trophies for people based on contributions (comment, tenure, activity milestones). It could extend over time to have some NLP around who is a question asker vs an answerer and reward and archive for searching back.

We need to check what the slack API already offer to see what need to be added.
I don't fully understand how many old messages are sent to the bot upon re-connection in case of a crash so message count might be false.

I don't remember fully, but I think we get a last_seen timestamp and could probably query a number of them. It could be a little off and not be a big deal

With this, might as well create our on "taco" system.  And integrate this with the "tacos"

We have something similar with bdfls (Guidos), I would actually make this integrate with that system to mark a user with some credit level where they could cash out their credits for a sticker or something

It seems there is no way to get these info from the slack api


Added sles kernel upgrade

@ampintilie,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot


BIGTOP-3271: juju bundle/charm refresh (nov 2019)

This PR updates version strings, links, and charm revisions to the current bigtop-1.4 release.  Also picks up a couple zookeeper tweaks:
Closes #562
Closes #563

@kwmonroe is this still a valid patch and you want to merge it in?


Adding integration test to feature controller

Problem
Currently, the integration tests are a little bulky. They set up an entire Rancher instance and some even provision downstream clusters. While those are valuable from a end to end perspective, when developing they are often tricky to modify and run regularly for developers.
Solution
For the controllers, the envtest package provides a library that starts a minimal control plane that allows our controllers to be registered and used for integration tests. It is lightweight, fast and requires minimal set up. While most documentation for envtest refers to controller-runtime based controllers, this PR introduces envtest for a Wrangler controller.
Future work

Adding these tests to CI
Implementing envtests for a Norman based controller
More coverage!

Great work! This looks much better now! Should we run these tests in CI?

I think that should be done in a follow up PR


Research on the Invariant "ConsistentPrefix"

why
I make the model which meets the following conditions:

the model contains

Consistency <- "eventual"

the Invariant contains

ConsistentPrefix

I expect that this model should fail.
However, it continues to produce no errors.
what

[x] Check the consistences of the Invariant "ConsistentPrefix".
[x] Check the spec of the Consistent Prefix of the official document
[x] If the invariant is not correct, make new invariant.
[x] If the invariant is not correct, run model-check for 2 cases(1. Consistency is "eventual" and Invariant is "ConsistentPrefix", and 2. Consistency is "consistent_prefix" and Invariant is "Invariant")
[x] If model-check fails in some cases, change the macro read().

Additional What to do

[ ] When Consistency is "strong" and Invaliant is "ConsistentPrefix", mode-check should succeeds.
[ ] If failed, modify macro read() and modify invariant "ConsistentPrefix"

Check the consistences of the Invariant "ConsistentPrefix".
The Invariant ConsistentPrefix is the following:
ConsistentPrefix == \A r \in Regions : /\ MonotonicWritePerRegion(r)
                                       /\ AnyReadPerRegion(r)

. And those consistences are the followings:
MonotonicWritePerRegion(r) == LET writes == [i \in {j \in DOMAIN History : /\ History[j].type = "write"
                                                                           /\ History[j].region = r}
                                            |-> History[i]]
                               IN Monotonic(writes)

,
AnyReadPerRegion(r) == \A i \in DOMAIN History : /\ History[i].type = "read"
                                                 /\ History[i].region = r
                                                 => History[i].data \in SeqToSet(Database[r]) \union {0}

, and
Monotonic(h) == \A i, j \in DOMAIN h : i <= j => h[i].data <= h[j].data

MonotonicWritePerRegion means that:

Take the region r, and
Take the subset of DOMAIN History whose type is "write" and whose region is r, e.g. the element is j, and
Take the function writes from the element i of the above subset of DOMAIN to History[i], then
It is Monotonic(writes).

For any i and j in writes, if i is less than j, then the data of writes[i] is less than data of write[j].

AnyReadPerRegion means that:

Take the region r, and
Take the element i of DOMAIN History whose type is "read" and whose region is r, and then
The data of History for the element i is in the elements of Sequence Database[r] union {0}.

Check the spec of the Consistent Prefix of the official document
In the official documentation, Azure team wrote the following:

If writes were performed in the order A, B, C, then a client sees either A, A,B, or A,B,C, but never out-of-order permutations like A,C or B,A,C. Consistent Prefix provides write latencies, availability, and read throughput comparable to that of eventual consistency, but also provides the order guarantees that suit the needs of scenarios where order is important

.
From the above cite, I guess that the Invariant "ConsistentPrefix" should contain the MonotonicReadPerRegion.

Check the spec of the Consistent Prefix of the official document(2)
To add MonotonicReadPerRegion is not enough to describe the Consistent Prefix.
Because the reads are should be monotonic and it increase one by one(consistent with prefix).
So should add the following condition MonotonicOneByOneReadPerRegion instead of MonotonicReadPerRegion:
MonotonicOneByOneReadPerRegion(r) == LET reads == [i \in {j \in DOMAIN History : /\ History[j].type = "read"
                                                                                /\ History[j].region = r}
                                                  |-> History[i]]
                                     IN MonotonicAndOneByOne(reads)

, and MonotonicAndOneByOne is the following
MonotonicAndOneByOne(h) == \A i, j \in DOMAIN h : i <= j => h[i].data + 1 = h[j].data

.

Model Check on Original Module
Run model-check for the case 1 Consistency is "eventual" and Invariant is "ConsistentPrefix"
Failed(It is expected.)
Run model-check for the case 2 Consistency is "consistent_prefix" and Invariant is "Invariant")
Failed(It is unexpected)

Model Check on My Modified Module
Run model-check for the case 1 Consistency is "eventual" and Invariant is "ConsistentPrefix"
Failed(It is expected.)
Run model-check for the case 2 Consistency is "consistent_prefix" and Invariant is "Invariant")
Failed(It is unexpected)

Make New Invariant and Modify it
The failure of the invariant
The following condition is not enough to specify.
MonotonicOneByOneReadPerRegion(r) == LET reads == [i \in {j \in DOMAIN History : /\ History[j].type = "read"
                                                                                /\ History[j].region = r}
                                                  |-> History[i]]
                                     IN MonotonicAndOneByOne(reads)

, and MonotonicAndOneByOne is the following
MonotonicAndOneByOne(h) == \A i, j \in DOMAIN h : i <= j => h[i].data + 1 = h[j].data

.
Because there is the following case:

The Database[r] may contains only one data( <<1>> ).

In this case, MonotonicAndOneByOne claims that 1+1 = 1.
So the condition should be the following:
StrongMonotonicOneByOne(h) == \A i, j \in DOMAIN h : i <= j => h[i].data + 1 = h[j].data

.

Make New Invariant and Modify it(2)
From the definition of Consistent Prefix, the monotonic should be in the client.
MonotonicOneByOneReadPerClient(c) == LET reads == [i \in {j \in DOMAIN History : /\ History[j].type = "read"
                                                                                /\ History[j].client= c}
                                                  |-> History[i]]
                                     IN MonotonicAndOneByOne(reads)

Obscure Mistake
Evaluating invariant ConsistentPrefix failed.
Attempted to check equality of the function <<1, 1>> with the value:
1

The failure of the Invariant in the original case
The History is the following:
<< [type |-> "read", data |-> 0, region |-> 1, client |-> <<1, 1>>],
   [type |-> "write", data |-> 1, region |-> 1, client |-> <<1, 1>>],
   [type |-> "write", data |-> 2, region |-> 1, client |-> <<1, 2>>],
   [type |-> "read", data |-> 2, region |-> 1, client |-> <<1, 1>>] >>

.

Client A read, the data is 0
Client A write, the data is 1
Client B write, the data is 2
Client A write, the data is 2

This failure sounds good for me.
Because Client A should read his write 1, before read 2 from other client B.

The failure of the Invariant in my modified case
Toolbox shows that

Invariant ConsistentPrefix is violated.

My Modified ConsistentPrefix is the following:
ConsistentPrefix == /\ \A r \in Regions : /\ MonotonicWritePerRegion(r)
                                          /\ AnyReadPerRegion(r)
                    /\ \A c \in Clients : /\ MonotonicOneByOneReadPerClient(c)

The History is the following:
<< [type |-> "write", data |-> 1, region |-> 1, client |-> <<1, 2>>],
   [type |-> "read", data |-> 1, region |-> 1, client |-> <<1, 1>>],
   [type |-> "write", data |-> 2, region |-> 1, client |-> <<1, 2>>],
   [type |-> "read", data |-> 2, region |-> 1, client |-> <<1, 1>>],
   [type |-> "write", data |-> 3, region |-> 1, client |-> <<1, 2>>],
   [type |-> "read", data |-> 3, region |-> 1, client |-> <<1, 1>>] >>

Is this MonotonicWritePerRegion? In region 1, those histories whose type is "write" are monotonic.
Is this AnyReadPerRegion? In region 1, all of the data of those histories whose type is "write"  are in Database[1].
Is this MonotonicOneByOneReadPerClient?
In client <<1,1>>, all of the histories are monotonic read per client.
In client <<1,2>>, the types of all of the histories are "write".
Where is the Problem?

Not marked red:
<< [type |-> "write", data |-> 1, region |-> 1, client |-> <<1, 1>>],
   [type |-> "read", data |-> 1, region |-> 1, client |-> <<1, 2>>],
   [type |-> "write", data |-> 2, region |-> 1, client |-> <<1, 1>>],
   [type |-> "read", data |-> 2, region |-> 1, client |-> <<1, 2>>],
   [type |-> "write", data |-> 3, region |-> 1, client |-> <<1, 1>>] >>

Marked red:
<< [type |-> "write", data |-> 1, region |-> 1, client |-> <<1, 1>>],
   [type |-> "read", data |-> 1, region |-> 1, client |-> <<1, 2>>],
   [type |-> "write", data |-> 2, region |-> 1, client |-> <<1, 1>>],
   [type |-> "read", data |-> 2, region |-> 1, client |-> <<1, 2>>],
   [type |-> "write", data |-> 3, region |-> 1, client |-> <<1, 1>>],
   [type |-> "read", data |-> 3, region |-> 1, client |-> <<1, 2>>] >>

This error exactly occurs as expected!!!
In the following definition, the difference between the value of i and of j is not 1.
StrongMonotonicOneByOne(h) == \A i, j \in DOMAIN h : i < j => h[i].data + 1 = h[j].data

Additional What to do
Strong satisfies Consistent Prefix
I expect that when Consistency is "strong" and Invaliant is "ConsistentPrefix", mode-check should succeeds.
However, my modified macro does not meet the above expectation.

the Problem of macro read()
I wrote the following:
    macro read()
    {
        (* I check prefix token for consistent_prefix *)
        when Consistency /= "consistent_prefix" \/ Data[self[1]] =  prefix_token + 1;
        (* We check session token for session consistency *)
        when Consistency /= "session" \/ Data[self[1]] >= session_token;
        (* We check global value for strong consistency *)
        when Consistency /= "strong" \/ \A i, j \in Regions : Data[i] = Data[j];
        History := Append(History, [type |-> "read",
                                    data |-> Data[self[1]],
                                  region |-> self[1],
                                  client |-> self]);
        session_token := Data[self[1]];
        prefix_token := Data[self[1]]
    }

The await condition of Consistency = "consistent_prefix" suspend stuttering steps.
the Problem of ConsistentPrefix
As same as above, I did not consider the case of stuttering steps when writing the definition of StrongMonotonicOneByOne .
StrongMonotonicOneByOne(h) == \A i, j \in DOMAIN h : i < j => h[i].data + 1 = h[j].data

Should Use less than in Await condition.
when Consistency /= "consistent_prefix" \/ Data[self[1]] <= prefix_token + 1 ;

Should use greater than in Invariant.
StrongMonotonicOneByOne(h) == \A i, j \in DOMAIN h : i + 1 = j => h[i].data + 1 >= h[j].data


router.extendRoutes support in nuxt.config.js for Nuxt 3

Environment
PS D:\nuxt3-app> npx nuxi info
Nuxt CLI v3.0.0-27288761.d3fb512                                                                                11:17:49
RootDir: D:\nuxt3-app                                                                                11:17:52
Nuxt project info:                                                                                11:17:52

Operating System: Windows_NT
Node Version:     v16.12.0
Nuxt Version:     3.0.0-27288761.d3fb512
Package Manager<EMAIL_ADDRESS>Bundler:          Vite
User Config:      router
Runtime Modules:  -
Build Modules:    -

Reproduction
https://codesandbox.io/s/laughing-tereshkova-3byow?file=/nuxt.config.ts
(visit /topic1 in Browser)
or
https://github.com/wzdxy/nuxt3-extend-routes-issue
Describe the bug
I need a router like /topic:id(\\d+).
So I config a extendRoutes in nuxt.config.ts
export default defineNuxtConfig({
  router: {
    extendRoutes(routes, resolve) {
      routes.push({
        path: '/product:id(\\d+)',
        name: product1',
        file: join(__dirname, 'pages/product.vue'),
      })
      console.log(routes)
    },
  },
})

But I got a 404 error. And  No match found for location with path "/topic1" on terminal.

Additional context
https://github.com/nuxt/framework/pull/1757/commits/c8d8cfbbc438fcb0cccb2328b02b20e6469f3c20
I refer to this commit and rewrite my code，it worked，but very bloated.
  buildModules: [
    '~/modules/addRoutes'
  ],

Logs
No response

This is how you can do it in Nuxt 3 at the moment (with the extend:pages hook):
import { resolve } from 'path'
import { defineNuxtConfig } from 'nuxt3'
import { createCommonJS } from 'mlly'
const { __dirname } = createCommonJS(import.meta.url)

export default defineNuxtConfig({
  hooks: {
    'pages:extend' (pages) {
      pages.push({
        name: 'cmsPage',
        path: '*',
        file: resolve(__dirname, 'cms/index.vue')
      })
    }
  }
})

But this is then only possible on build time right? What about a case where you get your routes from a CMS and they can change through that CMS so need to be updated during runtime?
I am searching for a way in Nuxt 3 to create a list of routes coming from an CMS API response, but not only when application gets build

You might want to check out https://nuxt.com/docs/guide/directory-structure/pages#using-approuteroptions and you can also follow https://github.com/nuxt/nuxt/issues/13467 (it's currently possible but the issue exists to make it easier).

@danielroe thank you so much for you response, this saves me so much headache. i have one question left, the routes within router.options are not typed as async. so we cannot use async await to request routes from cms to return as value for routes, correct?

@danielroe i did not found and async solution with router.options.ts but i am now using a plugin.


v3(service) document changes of service instances in v3 vs v2

#175575306

I wonder if it makes sense to also add a note in the upgrade guide about the existence of the fields query parameters. Just to call attention to it.

I saw there is a section about the summary endpoints. That might be a better place to mention the fields since that is exactly the behaviour it replaces. We have something on the backlog to update that.

I wonder if it makes sense to also add a note in the upgrade guide about the existence of the fields query parameters. Just to call attention to it.

I saw there is a section about the summary endpoints. That might be a better place to mention the fields since that is exactly the behaviour it replaces. We have something on the backlog to update that.


Enabled linux .so loading

I've added the check for the platform which changes the name of the library to be loaded.

Done, works fine on Linux.


Bug Fix column alignment logic and support filtering…

… null values when slot is not null
Before this PR when encountering null values with some columns which is specified as NOT NULL, null values will not be filtered,this behavior does not match with the original load behavior.
Second column alignment logic has bug :
template <typename ColumnInserterFn>
void align_variant_by_name_and_type(ColumnObject& dst, const ColumnObject& src, size_t row_cnt,
                                    ColumnInserterFn inserter) {
    CHECK(dst.is_finalized() && src.is_finalized());
    // Use rows() here instead of size(), since size() will check_consistency
    // but we could not check_consistency since num_rows will be upgraded even
    // if src and dst is empty, we just increase the num_rows of dst and fill
    // num_rows of default values when meet new data
    size_t num_rows = dst.rows();

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run p0

run buildall

run clickbench

run buildall


Change bulk_theme_override variable to an integer

TL;DR: The value being a boolean caused issues with editor plugins that modified active themes. Even when the user calls begin_bulk_theme_override() themselves, engine would internally call begin_bulk_theme_override() and end_bulk_theme_override(), essentially overwriting the previous override call.
Related proposal
Bugsquad edit: Closes https://github.com/godotengine/godot-proposals/issues/9672

The new behavior needs to be noted in the documentation of bulk_theme_override methods.


InTheHand.Net.Bluetooth could not pair and connect device

When I use 32feet.net, anything works well. But when I use InTheHand.Net.Bluetooth, it seems that I could not pair and connect with my device.
Here is the function:
private` async void DeviceBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var item = DeviceBox.SelectedItem;
        foreach (BluetoothDeviceInfo device in _devices)
        {
            if (device.DeviceName == item.ToString())
            {
                _selectedDevice = device;
                break;
            }
        }

        if (_selectedDevice == null)
        {
            MessageBox.Show("Please select a device to connect to.");
            return;
        }

        // pair
        await Task.Run(() => BluetoothSecurity.PairRequest(_selectedDevice.DeviceAddress, ""));

        // connect
        await Task.Run(() => _bluetoothClient.Connect(_selectedDevice.DeviceAddress, BluetoothService.SerialPort));

        MessageBox.Show("success");
    }

What platform are you running on, I assume Windows? It would be better to capture the result of the PairRequest call before you proceed to connect - I'm not sure why you are running them in separate Tasks?

What platform are you running on, I assume Windows? It would be better to capture the result of the PairRequest call before you proceed to connect - I'm not sure why you are running them in separate Tasks?

My OS is Windows11.


Filter out string constant path parameters when generating routes

This fixes an issue introduced by #167 which made improvements to how we handle HTTP parameters in the rest library.
The issue is that there was some logic removed which was used to filter out operation path parameters that have a string literal as the parameter type.  This pattern is being used by the new interface-based ARM service modelling library to get providers/ path parts generating correctly on autoRoute operations.
The fix is to update the HttpOperationParameter array in generatePathFromParameters to remove these special path parameters once again.

Tests are green but CLA bot is hung somehow.  Merging it!


Add  CLI and required changes for running automated training against CDD.

Fixes #1087
Fixes #1083
Fixes #1089
Will need a review from @kaminow as has touched a few points in the ML training.
Developers certificate of origin

[X] I certify that this contribution is covered by the MIT license as defined in our LICENSE and adheres to the Developer Certificate of Origin.

@kaminow would you mind taking a first rough pass? Need to sand off some edges, but I think the basic ideas are in place.


⚠ Turnos 24x7 has degraded performance

In d7a63db, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 3404 ms

Resolved: Turnos 24x7 performance has improved in 9394bec.


Extending canary testing into A/B testing

/kind feature
Describe the solution you'd like
Could be useful to extend the existing implementation of canary testing into A/B testing: routing between versions, collecting an aggregate metric for each version, and computing a test of significance between versions' metrics. To discuss in Wednesday's meeting?
Anything else you would like to add:

cc @ellis-bigelow @cliveseldon @rakelkar @animeshsingh

@cliveseldon Is this fall under MLGraph ?

Yes I think this would fall under MLGraph proposal I did to add A/B tests, multi-armed bandits and ensembling. I did an initial spec in the Seldon repo: https://github.com/SeldonIO/mlgraph but these concepts will need to be discussed by the kfserving group as to what makes sense.

AB/flighting seems to have the following differences when compared to rollout:

May fork a little bit of traffic to many services that participate in an overall experiment
Not roll-forward, may just be a timebound fork to get data
Potentially finer traffic distribution granularity - may be determined by an external control tower like system on the basis of a set of variants e.g. 1% of mobile traffic

This would need a monitoring solution to be in place, and maybe a good segway into that discussion.


Input dialog – support for max length, and display current/max indicator

Hi,
Very impressed with your work here, I'm looking for the ability to set maxLength for the text and/or tell the user how many characters left have to enter.
PD: I've used a custom UI to do that, but it would be much better to implement using your library.
Best Regards,
Walter

I'm assuming you mean in the input dialog, good idea.

Sorry for the confusion, but yeah, that's what I meant!

Since stopping the user from typing altogether wasn't working too well (the user could still continue to type and suggestions on the keyboard would change, even though nothing actually went into the input field).
So, I made it so that the positive action button (which submits input) gets disabled if the user goes over the maximum length. I also made it so you pass an 'error color' in which is used on the current/max indicator and the color of the input field itself when the user goes over the max (indigo is used here but you could use red or any other color).

https://github.com/afollestad/material-dialogs/releases/tag/v<IP_ADDRESS>

Hey there, I got couple of things:

When loading the dialog the first time, it doesn't calculate the available text using the prefill, just calculates according to the maxLength selected.
After the max length was reached, I got the disabled submit button, however when I deleted some characters to fit, the button was not enabled.

I'm attaching 2 screenshots for each issue.
Regards

@afollestad I... don't think this should be included in material dialogs. There are material edit text libraries out there that provide this functionality while following the guidelines closely. People who want this functionality can just use those libraries.

Specifically this one: https://github.com/rengwuxian/MaterialEditText
I guess what I'm trying to say is this is a feature of the edittext, not of the dialog.

@plusCubed well, the code is relatively simplistic in Material Dialogs. It doesn't add too much bulk and it's a common thing used in a lot input dialogs.

I fixed the first point in that comment, but I'm unable to reproduce the second one.
@waltervr

@plusCubed you are right, however I would say that if I can avoid using multiple libraries I would do that, using a library just for the EditText doesn't seem to me a good approach.
Regards

@afollestad @waltervr I understand. The counter doesn't match the design guidelines though, regardless. I'll fix it right now.

Oh yeah, I didn't notice there were guidelines for that until now
http://www.google.com/design/spec/components/text-fields.html#text-fields-character-counter

Done. Also added the default to be the red color specified here: http://www.google.com/design/spec/patterns/errors.html#errors-user-input-errors.

@afollestad, in the second one, I did went over the maxLength until got the red colored input and then started erasing.

Yeah, that works fine for me
On Tue, Apr 28, 2015, 11:08 PM Walter Vargas<EMAIL_ADDRESS>wrote:

@afollestad https://github.com/afollestad, in the second one, I did
went over the maxLength until got the red colored input and then started
erasing.
—
Reply to this email directly or view it on GitHub
https://github.com/afollestad/material-dialogs/issues/487#issuecomment-97298662
.

https://github.com/afollestad/material-dialogs/releases/tag/v<IP_ADDRESS>

@afollestad I found the reason why it was not working for me, I did not added the .positiveText() property when creating my dialog. After I did that, finally everything worked as expected. I looked into your instructions here:
https://github.com/afollestad/material-dialogs#input-dialogs but didn't find any reference of that small detail. Do you think that's really necessary? or is it just a rare coincidence?

@afollestad Seems like the latest update .4.2 removed the feature of counting the prefill text as part of the total text to be entered?
Screen capture here: https://goo.gl/8Xf84Y

@waltervr that isn't quite what the issue there is; it is counting the prefill, that's why the counter shows the correct length. The input is just disabled by default when it shouldn't be. Looking into it.

Fixed in https://github.com/afollestad/material-dialogs/commit/490df6e9e79d18ef924feb9cdbf11fec4d7ebf20.
An update won't go out until https://github.com/afollestad/material-dialogs/issues/534 is resolved though.


Update minimal image release for EKS Go 1.20.13-14 and 1.21.5-6

Issue #, if available:
Description of changes:
Release the minimal images for golang 1.20.13-14 and 1.21.5-6
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve


How to use ypserver account  login xrdp?

Dear Sir
my xrdp ver 0.61, i use root login ok, but i don't use ypserver account login, how can i do ?

0.6.1 is no longer recommended. The latest version is 0.9.7. There's a big leap.

Hi metalefty:
i don't use yum update xrdp, so how can i do ?

use epel repository, it has the latest xrdp there


WebRTC peer connections not working?

OS/Platform
Windows
Installed
https://ungoogled-software.github.io/ungoogled-chromium-binaries/
Version
127.0.6533.99
Have you tested that this is not an upstream issue or an issue with your configuration?

[X] I have tried reproducing this issue in Chrome and it could not be reproduced there
[X] I have tried reproducing this issue in vanilla Chromium and it could not be reproduced there
[ ] I have tried reproducing this issue in ungoogled-chromium with a new and empty profile using --user-data-dir command line argument and it could not be reproduced there

Description
Webrtc does not seem to work. SDPs and ICE candidates can be generated but peer connections cannot be established
How to Reproduce?

go to https://theanam.github.io/webrtc-test-suite/
click "Start Test"
observe that the report says "Peer connection did not work"

I found this to be the case on my own project and am just using this website as it is simpler to show the problem. I just installed this browser specifically to test this so its already a new profile so I doubt creating a new profile will fix it. (and I don't understand how to do that in any case.)
Actual behaviour
The peer connection did not work
Expected behaviour
The peer connection should work
Relevant log output
No response
Additional context

related: https://github.com/ungoogled-software/ungoogled-chromium/issues/2516

Ok, you just need to set chrome://flags/#webrtc-ip-handling-policy. That was actually in the issue I linked above but I actually meant to link to another issue I read that had the same test link on it. I just read that issue I linked above now.


Feature/add psc verification patch to store psc list selection

Add functionality to populate the individual PSC list page

individualPscList.njk - radio buttons dynamically populated with PSC individual data
individualPscListRouter.ts - get and post methods call out to the IndividualPscListHandler
individualPscListHandler.ts- retrieves the company profile via the Company Profile Service to retrieve the company name; retrieves the company individual PSC list via the Company PSC Service. The company PSC list is then rendered for the view. This file has also been renamed from individualPscList.ts
new tests added and updated for the above ts files

Notes

Patch will be addressed in ticket IDVA3-1504
Radio button selection across locales will be addressed in future ticket

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found


Token cache

Implement TokenCache class in KurveIdentity.
Export TokenStorage interface in order to support external token storage provided through IdentitySettings.

Okay we satisfied John's comments in Slack. Here are mine:

I hate the name of Token, because (a) it’s not a token, and (b) it contains a token and (c) doesn’t tell you its purpose, so:
Let’s rename Token -> CachedToken and TokenDictionary => CachedTokenDictionary
I think the name of TokenStorage is good. A nice parallel to TokenCache
in getForScopes and getForResource (and anywhere else I missed) rename tokens->cachedTokens
line 75/76 and line 88/89 turns this into a helper method called deleteCachedToken
after 89 you need to return null;
scopes.every(scope => cachedToken.scopes.indexOf(scope) >= 0))
->
scopes.every(scope => cachedToken.scopes.some(cachedScope => scope.key == cachedScope.key))
inDecodeAccessToken let’s use the typed Token/CachedToken constructor here
I’d like to see the declaration for Token/CachedToken look something like this:

export class CachedToken {
constructor(
        id: string,
        scopes: string[],
        resource: string,
        token: string,
        expiry: Date
){}
}

That way we’re not duplicating all those properties.
I don’t understand the need for any the constructors that take Token and any. Both seem to be making shallow copies. Why not just use the original?
If you do need to make shallow copies, let’s just have constructor(CachedToken). And if you’re calling this with an “any” returned from the TokenStorage service, explicitly cast it to CachedToken. That’s more type safe than an any constructor, which could be randomly called with anything from anywhere. If they’re going to do something stupid, make them work for it.

The above commits should tackle the first 7 items.
Working now in 8 and 9.


whispers

I can't write whispers in chatterino. "Your settings prevent you from sending this whisper."
I cannot send whispers even to friends.
Windows 10, Chatterino 7.3.2

We can't help https://wiki.chatterino.com/Help/#i-am-unable-to-send-whispers-from-chatterino


[Task]: Update git error message when importing an app.

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks
Git file system error Error while accessing the file system. Unable to import application in workspace 6474a40759741f20ca5de3e6. Error: Internal server error while processing request
This error message needs to be updated to more useful and actionable message.

Duplicate of #21804


Support Health checks endpoints for Liveness and Readiness

The suggestion was proposed on https://github.com/Octops/gameserver-ingress-controller/issues/15#issuecomment-979433562
While adding the Health checks endpoints I decided to include the metrics endpoint. Currently those metrics are only related to the controller itself. There is another issue #16 that will cover specific metrics for the reconcile process.

 Cheers!


Improve setAuthCookies types to no be necessary passing an empty object when not setting the token

Following the get started documentation, the setAuthCookies function requires the req and res only, when playing this code using typescript it expects a third argument, that is a object that can receive a token property.

I suggest to make the whole options object as optional to not be required passing a empty object when using the function without passing any options.
reviewing the source code, I guest that just add a "?" to the user property on the line 16 will solve it

Thanks for the issue! A fix will be out shortly.


Convert AMUSE packages to pkgutil-style namespace packages

I believe this style is most appropriate for AMUSE:
https://packaging.python.org/guides/packaging-namespace-packages/#pkgutil-style-namespace-packages
The "native" alternative is not suitable since we want to be able to use alternatives to pip.
The main change will be to init.py in the AMUSE root, which should change to only this line:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)

We'll have to figure out if this will cause any troubles.
I'm not sure yet how this method deals with multiple levels of subpackages (since e.g. community codes install under amuse.community), perhaps amuse.community.init will also need to change.

I think the init.py in community, ext and perhaps elsewhere should also be just the line above.

This would mean we have to fix a lot of imports that currently use from amuse import X and from amuse.community import Y... That's probably a good thing though.

I have played aound with this, I am not yet convinced that we we match the use case (it seems this is more about joining the namespace of packages in seperate directories)..the docs for this are not super clear..the __init__.py requirement seems very limiting...

I agree it's limiting, but I do think it's similar to what we're doing (and not unworkable).
Note that one of the subpackages installs a module in the package root, which is what amuse-framework also does.

well..I don;t like the fact that apparently the inits can only contain one line - not only is that limiting, but I also do not understand why that should be the case...I can see that both packages should contain the exact same __init__.py in the shared directory..we should understand what happens if you do put something there...

I don't like that either. I'm not sure if just letting them be identical (probably with this specific top line) would also be OK, we should find out. The current situation seems to result in weird problems (like unintended consequences when you're removing one package, but possibly more).

From https://setuptools.readthedocs.io/en/latest/setuptools.html#namespace-packages:
You must NOT include any other code and data in a namespace package’s __init__.py. Even though it may appear to work during development, or when projects are installed as .egg files, it will not work when the projects are installed using “system” packaging tools – in such cases the __init__.py files will not be installed, let alone executed.

so I guess we should try to get rid of code that currently uses __init__.py...

I've done a little more investigating on this. I think the native 3.3+ method might be fine after all:

we're Python3 only now
we install via pip (either as individual packages, for which we should fix this issue, or in development mode, for which it doesn't matter)

this requires that "namespace" directories (directories in which subpackages are installed) don't have an __init__.py.
I think the relevant directories in AMUSE are

community
ext
So I am now attempting to get rid of the __init__.py files in these directories (branch patch-packaging).

(ext doesn't have an __init__.py to begin with)


Add Inception Version 4 (Closes #36)

Adds a new Inception Version Model using prescriptions from the original redshift redshift paper as well as InceptionV4 Paper. All the MaxPooling layers have been replaced with Average Pooling
layers. At current form, some adjustments to the Hyperparameters are
needed before using it for redshift classification task.
@KyleAMoore Could we use some of the lessons from the ResNet and InceptionV3 model to adjust the hyper-parameters for this InceptionV4?

Of the hyperparameters already included in the model, the only one that definitely will need to change is the input image shape, which should be (64,64,5) given no major changes to the preprocessing. The previous models did not include dropout, so I cannot comment on what would be a good value for the dropout chance. From my personal experimentation, I found little difference in the value of num_redshift_bin. Theoretically, any number greater than 1 should be usable, but it is likely that too low of values would have lower accuracy. Significant increases, such as the 1000 used here, do not seem to significantly affect accuracy in either direction as far as I have seen. I find that medium-sized powers of 2 (ex. 32 or 64) to be both intuitive and sufficient, while likely being somewhat more time-efficient.


How do I post the json file using twurl?

I am getting The JSON string format is invalid error, When I  tried to add the tailored audience user via JSON file. When I tried using the actual payload and it was successful.   Does the twurl support file upload? I am expecting something similar the curl has the support like [curl -vX POST http://server/api/v1/places.json -d @testplace.json
--header "Content-Type: application/json"]
URL:
twurl --header 'Content-Type: application/json' -X POST -H "https://ads-api.twitter.com" "/7/accounts/ddg12333/tailored_audiences/33444/users"  -r<EMAIL_ADDRESS>Response:
{
"errors": [
{
"code": "INVALID",
"message": "The JSON string format is invalid"
}
],
"request": [],
"operation_errors": []
}

The syntax here is not exactly the same as that used by curl (there's a good opportunity to improve the documentation here!).
As described in this forum post, you can try using a subshell to cat the file contents into your command using the -d option instead of -r
Trying something like
twurl --header 'Content-Type: application/json' -X POST -H "https://ads-api.twitter.com" "/7/accounts/ddg12333/tailored_audiences/33444/users" -d "$(/home/k/Downloads/2020-06-30_emails.json)"

@andypiper  I tried the above command still getting the same error
Command:
twurl --header 'Content-Type: application/json' -X POST -H "https://ads-api.twitter.com" "/7/accounts/ddg12333/tailored_audiences/333444/users" -d "$(home/k/Downloads/2020-06-30-50K_emails.json)"
Response:
{"errors":[{"code":"INVALID","message":"The JSON string format is invalid"}],"request":[],"operation_errors":[]

I'm not sure it will work with a large file (if you have 50K emails there...) but I'm using zsh and was able to get the contents of a JSON file passed to the command using
-d "$(</home/myuser/file.json)"
If you add the -t option to the twurl command, can you see the contents of the file being picked up and passed to the command?


jsonPatch / strategicMergePatch do not correctly iterate with go-templating

As a very simple use case take a directory which is just a single k8s manifest for creating a cluster role.  You plan to install this into multiple clusters by iterating over AWS regions, as part of that you jsonPatch the region into the metadata.labels.  If the release name is not dynamic (aka same release name in both clusters) then the jsonPatch for the last iteration will apply to all manifests and they will all get patched with the label of a single region, regardless of where they are actually deploying.

@jwitko Hey! Thanks for reporting. Could you confirm that you're basically saying that jsonPatches/strategicMergePatches breaks when two or more releases sharing the same chart, even if they have different kubecontexts?

@jwitko Hey! Thanks for reporting. Could you confirm that you're basically saying that jsonPatches/strategicMergePatches breaks when two or more releases sharing the same chart, even if they have different kubecontexts?

Yes that is correct.  It should be extremely easy to reproduce but if you can't let me know and I'll draw up a full example.

@jwitko Thanks for confirming! As I have a lot of issues hanging on my desk that are waiting for me to prepare reproduction examples myself, any go-to example provided by the reporter(you) is super helpful and always welcomed 😄

@jwitko Seems like I've managed to fix it #1799

@mumoshu thank you!  so sorry I did not get a chance to respond with an example.


chore: lighten tactics

Change some tactic uses to more lightweight ones (but which still automate just as much): nlinarith to positivity/linarith/gcongr, linarith to norm_num.

The changes itself look fine to me; thanks for starting this. Please fix the merge conflict.
I presume your motivation is performance - can you benchmark this PR once it builds?

Yes, I believe these are all changes which improve performance (of course, microscopically in the scale of the library -- I'm not sure our profiling tools would detect it) -- while also being "uncontroversial" in the sense that there is no loss of automation (the new tactics run without user input).
But there is no direct motivation behind the PR, these are just things I happened to notice while looking at the files for other reasons.

Thanks for explaining. I'll wait to see if benchmarking turns up anything surprising - but this PR seems non-harmful regardless, so as I already reviewed it, I'd say we can merge it as well.
maintainer merge


Integrate Testcontainers to run integration tests on docker containers

Context
Integrate Testcontainers to run an E2E test validation.

Run locally via testcontainers to start zookeeper, control-plane server, and a task executor agent.
By default built the control-plane server and agent images on the fly from their docker files. (so we are testing on the same source code in the branch).
Check all parts are connected to each other.
Use control plane API to submit a job cluster and a job instance to run on the agent container.
Validate the demo Sine job can be connected and the output validates SSE results.

Checklist

[x] ./gradlew build compiles code correctly
[x] Added new tests where applicable
[x] ./gradlew test passes all tests
[x] Extended README or added javadocs where applicable

This is a great PR! Thanks for making this change, it'll be very useful.


Feature: copy script to clipboard

Description
A button that can copy the script JSON to the clipboard. The language wouldn't matter.
Additional context
I got a feature request for the Pocket Grimoire to allow a script's JSON to be pasted directly. This seems to have been well received and, when I announced it, someone mentioned that being able to copy JSON from the script repository directly would be a cool addition.

This is what I've tried to achieve with the JSON button that currently exists but I had trouble with this writing the JSON content to clipboard. It's possible that I'm using the wrong method and need to use .write() rather than .writeText().

So I've managed to get this working but not overly keen on the result
https://github.com/AdmiralGT/botc-scripts/pull/367
It basically results in the entire JSON being inserted as a Javascript element on the page. Going to hold off merging this and have a think about the solution.

FWIW, I think this would be a great feature and your implementation of it is roughly how I'd do it as well.
Moreover, I'd look at Angular CDK's implementation here (and wrapped here) which might serve as a good reference for making the added element hidden and subsequently removing it (as well as handling some browser-specific edge cases.)


Y Axis prefix and suffix

can i add Y-axis prefix and suffix  in line or bar chart?

@mostafa3 try changing the scaleLabel template string per the global chart config docs.

thanks it's awesome


Slice underlying ArrayBuffer when reading a record

A more correct fix for avoiding individual messages holding on to the entire chunk memory.
The original attempt at this fix was in https://github.com/foxglove/rosbag/pull/62 but failed to account that the slice on a Uint8Array might still preserve the underlying ArrayBuffer array. This updated logic performs the slice on the underlying ArrayBuffer.

This mirrors what we are doing in our mcap reader when we read message records: https://github.com/foxglove/mcap/blob/main/typescript/core/src/parse.ts#L158

Is this unit testable?

Is this unit testable?

🤔 Technically could check that two consecutive messages don't have the same underlying buffer. But I'm not actually sure that node won't sometimes split the array buffer under the Uint8Array. So yes I would say the readRecordFromBuffer could be tested like this.


Past seasons data for soccer

Is it possible to add the possibility to access data from past seasons for the soccer module like the nba or the mlb module?
Right now you can only get data for the last season.
Thanks for any help.

Interested in knowing too.


RBAC Roles pages

In the rbac roles pages the apiGroup "" (empty string) is the "core v1" api group.  Currently it is being shown as "all api groups".  "All api groups" should only be if the api group is "*"

Duplicate of https://github.com/rancher/dashboard/issues/1204


Look into cl-opengl's multi context issues

https://github.com/3b/cl-opengl/issues/10

23:50 <|3b|> borodust, Baggers: cl-opengl technically doesn't
support multiple contexts, so be careful how you use
it with them (specifically if you use immediate mode
you need to add some code to make the automatic error
checking work or disable it, and on windows it won't
work with context from different drivers)
23:51 <|3b|> (and may even break on contexts from same driver, but
haven't heard of that being a problem in practice)

https://github.com/3b/cl-opengl/issues/78


DuckDB has different result for Window in fuzzer test

Description
AggregationFuzzer use DuckDB to verify result correctness, I have found a wrong result for DuckDB in Velox with PR https://github.com/facebookincubator/velox/pull/4467#issuecomment-1497233828.
To verify that is not an occasional case, I modify the Window coinToss from 0.1 to 0.9, re-run a 1 hour velox_aggregation_fuzzer_test, similar wrong results got again.
This command can reproduce in my machine:
./velox/exec/tests/velox_aggregation_fuzzer_test --seed<PHONE_NUMBER> --duration_sec 10 --logtostderr=1 --minloglevel=0 --repro_persist_path=/tmp/aggregate_fuzzer_repro --only="avg"

Related DuckDB SQL:
SELECT c0, p0, s0, s1, s2, s3, row_number, avg(c0) OVER (partition by p0 order by s0, s1, s2, s3) FROM tmp

DuckDB default window frame is RANGE, same as Presto.
Error Reproduction
Modify Window coinToss from 0.1 to 0.9
https://github.com/facebookincubator/velox/blob/9eaaa683c1e8e2082899a8720327f8e4d6ea7570/velox/exec/tests/AggregationFuzzer.cpp#L558-L559
./velox/exec/tests/velox_aggregation_fuzzer_test --seed 123 --duration_sec 3600 --logtostderr=1 --minloglevel=0 --repro_persist_path=/tmp/aggregate_fuzzer_repro
./velox/exec/tests/velox_aggregation_fuzzer_test --seed<PHONE_NUMBER> --duration_sec 10 --logtostderr=1 --minloglevel=0 --repro_persist_path=/tmp/aggregate_fuzzer_repro --only="avg"
Relevant logs
I0405 22:38:20.932768 4013141 AggregationFuzzer.cpp:532] ==============================> Started iteration 786 (seed:<PHONE_NUMBER>)
I0405 22:38:20.935362 4013141 AggregationFuzzer.cpp:624] Executing query plan:
-- Window[partition by [p0] order by [s0 ASC NULLS LAST, s1 ASC NULLS LAST, s2 ASC NULLS LAST, s3 ASC NULLS LAST] w0 := avg(ROW["c0"]) RANGE between UNBOUNDED PRECEDING and CURRENT ROW] -> c0:SMALLINT, p0:BOOLEA$
, s0:DATE, s1:SMALLINT, s2:TINYINT, s3:TINYINT, row_number:BIGINT, w0:DOUBLE
  -- Values[1000 rows in 10 vectors] -> c0:SMALLINT, p0:BOOLEAN, s0:DATE, s1:SMALLINT, s2:TINYINT, s3:TINYINT, row_number:BIGINT
I0405 22:38:20.941809 4020465 Task.cpp:825] All drivers (1) finished for task test_cursor 2959 after running for 6 ms.
I0405 22:38:20.941823 4020465 Task.cpp:1474] Terminating task test_cursor 2959 with state Finished after running for 6 ms.
I0405 22:38:20.942467 4013141 AggregationFuzzer.cpp:639] [ROW ROW<c0:SMALLINT,p0:BOOLEAN,s0:DATE,s1:SMALLINT,s2:TINYINT,s3:TINYINT,row_number:BIGINT,w0:DOUBLE>: 1000 elements, no nulls]
../velox/exec/tests/utils/QueryAssertions.cpp:1062: Failure
Failed
Expected 1000, got 1000
1 extra rows, 1 missing rows
1 of extra rows:
        23511 | null | null | 21006 | 41 | 45 | 61 | 15876.634615384615

1 of missing rows:
        23511 | null | null | 21006 | 41 | 45 | 61 | 15815.733333333334

Unexpected results
E0405 22:38:21.185443 4013141 Exceptions.h:68] Line: ../velox/exec/tests/AggregationFuzzer.cpp:960, Function:verifyWindow, Expression: assertEqualResults(expectedResult.value(), {resultOrError.result}) Velox and
DuckDB results don't match, Source: RUNTIME, ErrorCode: INVALID_STATE
I0405 22:38:21.186599 4013141 AggregationFuzzer.cpp:452] Persisted input: /tmp/aggregate_fuzzer_repro/velox_vector_jfqwe7 and plan: /tmp/aggregate_fuzzer_repro/velox_plan_Zx3AY6
terminate called after throwing an instance of 'facebook::velox::VeloxRuntimeError'
  what():  Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: Velox and DuckDB results don't match
Retriable: False
Expression: assertEqualResults(expectedResult.value(), {resultOrError.result})
Function: verifyWindow
File: ../velox/exec/tests/AggregationFuzzer.cpp
Line: 960

CC @mbasmanova

@Yohahaha I assume DuckDB results are incorrect. If so, would you file an issue at https://github.com/duckdb/duckdb ?

CC: @aditi-pandit

@Yohahaha I assume DuckDB results are incorrect. If so, would you file an issue at https://github.com/duckdb/duckdb ?

Hi @mbasmanova, I guess the problem is related with old DuckDB version but not verified, Velox use v0.4.1-dev344 currently, I will try to upgrade DuckDB version soon.

@Yohahaha

the problem is related with old DuckDB

Got it. Please, try upgrading to see if the issue goes away. Thank you for working on this.

@Yohahaha

the problem is related with old DuckDB

Got it. Please, try upgrading to see if the issue goes away. Thank you for working on this.

@Yohahaha : We have found DuckDB avg implementation problematic in other situations also. See https://github.com/duckdb/duckdb/issues/6829. Though we discovered the problems through DECIMAL type and not double.
Could you share the input data values for us to understand more if possible ? I wonder if some overflow situation is being encountered here.

Hi @aditi-pandit

Could you share the input data values for us to understand more if possible ? I wonder if some overflow situation is being encountered here.

Can I attach the saved velox_vector_xxx file in this issue? does this helpful to you? You could also modify the window cointoss to get the results.

Hi @aditi-pandit, can you please help with this issue? Thank you!

@aditi-pandit Any update?

I am following up on this.

I have started working on this, apologies for the delay.

@Yohahaha I am struggling to reproduce this issue on the latest main branch. Would you be able to attach the files necessary to trigger the problem, e.g. velox_vector... so I can run on my laptop? Thanks.

Actually, I managed to reproduce this:
/tmp/velox/cmake-build-debug/velox/exec/tests/velox_aggregation_fuzzer_test --seed<PHONE_NUMBER> --duration_sec 60 --only avg --logtostderr=1 --minloglevel=0 --gtest_filter=* --gtest_color=no
Testing started at 7:31 AM ...
W20230523 07:31:46.518414 3291783 AggregationFuzzer.cpp:336] Skipping generic function signature: a_scale(DECIMAL(a_precision,a_scale)) -> varbinary -> DECIMAL(a_precision,a_scale)
I20230523 07:31:46.519193 3291783 AggregationFuzzer.cpp:260] Total functions: 1 (6 signatures)
I20230523 07:31:46.519207 3291783 AggregationFuzzer.cpp:262] Functions with at least one supported signature: 1 (100.00%)
I20230523 07:31:46.519223 3291783 AggregationFuzzer.cpp:266] Functions with no supported signature: 0 (0.00%)
I20230523 07:31:46.519230 3291783 AggregationFuzzer.cpp:268] Supported function signatures: 5 (83.33%)
I20230523 07:31:46.519237 3291783 AggregationFuzzer.cpp:272] Unsupported function signatures: 1 (16.67%)
I20230523 07:31:46.519266 3291783 AggregationFuzzer.cpp:554] ==============================> Started iteration 0 (seed:<PHONE_NUMBER>)
I20230523 07:31:46.521207 3291783 AggregationFuzzer.cpp:652] Executing query plan:
-- Window[partition by [p0] order by [s0 ASC NULLS LAST, s1 ASC NULLS LAST, s2 ASC NULLS LAST, s3 ASC NULLS LAST] w0 := avg(ROW["c0"]) RANGE between UNBOUNDED PRECEDING and CURRENT ROW] -> c0:DOUBLE, p0:BOOLEAN, s0:DATE, s1:SMALLINT, s2:TINYINT, s3:TINYINT, row_number:BIGINT, w0:DOUBLE
  -- Values[1000 rows in 10 vectors] -> c0:DOUBLE, p0:BOOLEAN, s0:DATE, s1:SMALLINT, s2:TINYINT, s3:TINYINT, row_number:BIGINT
I20230523 07:31:46.525825 3291808 Task.cpp:875] All drivers (1) finished for task test_cursor 1 after running for 3 ms.
I20230523 07:31:46.525857 3291808 Task.cpp:1553] Terminating task test_cursor 1 with state Finished after running for 3 ms.
I20230523 07:31:46.526258 3291783 AggregationFuzzer.cpp:667] [ROW ROW<c0:DOUBLE,p0:BOOLEAN,s0:DATE,s1:SMALLINT,s2:TINYINT,s3:TINYINT,row_number:BIGINT,w0:DOUBLE>: 1000 elements, no nulls]
E20230523 07:31:46.668896 3291783 Exceptions.h:68] Line: /tmp/velox/velox/exec/tests/AggregationFuzzer.cpp:990, Function:verifyWindow, Expression: assertEqualResults(expectedResult.value(), {resultOrError.result}) Velox and DuckDB results don't match, Source: RUNTIME, ErrorCode: INVALID_STATE
libc++abi: terminating with uncaught exception of type facebook::velox::VeloxRuntimeError: Exception: VeloxRuntimeError
Error Source: RUNTIME
Error Code: INVALID_STATE
Reason: Velox and DuckDB results don't match
Retriable: False
Expression: assertEqualResults(expectedResult.value(), {resultOrError.result})
Function: verifyWindow
File: /tmp/velox/velox/exec/tests/AggregationFuzzer.cpp
Line: 990
Stack trace:
/tmp/velox/velox/exec/tests/utils/QueryAssertions.cpp:1017: Failure
Failed
Expected 1000, got 1000
1 extra rows, 1 missing rows
1 of extra rows:
	0.7175111607648432 | null | null | 21006 | 41 | 45 | 61 | 0.48453118572181736

1 of missing rows:
	0.7175111607648432 | null | null | 21006 | 41 | 45 | 61 | 0.4826726330244648

Unexpected results

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

I will follow up on the fix.

I wrote a unit test that reproduces this issue with a sample data and debugged this further. It is actually a bug in DuckDB that we bundle with Velox, not a bug in Velox.
My dataset contains 129 records of the following schema:
create table tmp (c0 double, s1 int, s2 int, s3 int);

I run the following query:
select *, avg(c0) over (order by s1 ASC NULLS LAST, s2 ASC NULLS LAST, s3 ASC NULLS LAST) as avg_c0 from tmp

NULLS LAST part depends on the database, I had to replace it with an alternative in MySQL.
Results for the query engines I tested with:
Velox (latest master):
0.7175111607648432 | null | 82 | 41 | 0.48453118572181736
Spark 3.4.0:
|  0.7175111607648432| null|  82|  41|0.48453118572181736|
Postgres 15.3:
0.7175111607648432 |       |  82 |  41 | 0.48453118572181736
MySQL 8.0.33:
|   0.7175111607648432 |  NULL |   82 |   41 | 0.48453118572181736 |
DuckDB 0.8.0
│  0.7175111607648432 │       │    82 │    41 │ 0.48453118572181736 │
DuckDB (bundled with Velox)
0.7175111607648432 | null | 82 | 41 | 0.4826726330244648
0.7175111607648432	NULL	82	41	0.4826726330244648
For some reason, DuckDB shipped with Velox that we use for query assertions produces an incorrect result. I can confirm it with a script without even running the test.
There appears to be no correctness issues in Velox with regard to this problem but we may need to consider upgrading DuckDB version in Velox.
cc @mbasmanova @majetideepak @aditi-pandit

I will open a PR to update the DuckDB version to fix this issue.

Do we have a fix for this one?  Seems still happening: https://app.circleci.com/pipelines/github/facebookincubator/velox/28332/workflows/149c3f61-7f3a-4f8f-890d-90535f4b6d9d/jobs/178622

I believe @isadikov has left the project. We need find someone to pick up DuckDB upgrade. CC: @aditi-pandit

this is same as https://github.com/facebookincubator/velox/issues/4350


Hello World Part does not work

Chrome console says the following under https://localhost:4321/temp/workbench.html after the first "gulp serve" in the article:
GET<EMAIL_ADDRESS>net::ERR_ABORTED 404 (Not Found)
workbench.html:60 GET<EMAIL_ADDRESS>net::ERR_ABORTED 404 (Not Found)
workbench.html:13 GET<EMAIL_ADDRESS>net::ERR_ABORTED 404 (Not Found)
workbench.html:60 GET<EMAIL_ADDRESS>net::ERR_ABORTED 404 (Not Found)
workbench.html:69 Uncaught TypeError: Cannot read property 'start' of undefined
at workbench.html:69
I have node v10.16.3.

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

ID: 6c25a90e-829c-b436-d8ab-f9c010588ee1
Version Independent ID: 768fa9a1-2375-fb5a-be58-cb66320cc789
Content: Build your first SharePoint client-side web part (Hello World part 1)
Content Source: docs/spfx/web-parts/get-started/build-a-hello-world-web-part.md
Product: sharepoint
Technology: sharepoint-framework
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Can you provide a bit more context, like what version of SPFx you have installed at a minimum?

Well I followed the instructions under https://docs.microsoft.com/de-de/sharepoint/dev/spfx/set-up-your-developer-tenant and https://docs.microsoft.com/de-de/sharepoint/dev/spfx/set-up-your-development-environment before. So I have installed NodeJS v10.16.3, Yeoman v3.1.0, Gulp v4.0.2 and the Yeoman SharePoint generator v1.9.1. Besides of that I did not install any Sharepoint Framework?


[MSK] Create monitoring for Amazon MSK

Create monitoring support for Amazon MSK:
https://docs.aws.amazon.com/msk/latest/developerguide/metrics-details.html

I see there are different levels of monitoring, with different dimension sets. There are multiple ways to model this, but we need a model customer to tell us what is the best way.

Closing the issue, since the original customer withdrew their request and we have no other needing this feature, as of now.