Escape namespace when using a Regexp to replace it

I experienced read_multi results coming back with nil keys.  Eventually I tracked it down to the namespace, which contained a base64-encoded component, but only when it contained the "+" character.
Normal
irb(main):009:0> Rails.cache.options[:namespace] = 'abc'
=> "abc"
irb(main):010:0> Rails.cache.write 'foo', 'bar'; puts Rails.cache.read 'foo'; Rails.cache.read_multi 'foo'
bar
=> {"foo"=>"bar"}

With special characters ("+")
irb(main):011:0> Rails.cache.options[:namespace] = 'a+c'
=> "a+c"
irb(main):012:0> Rails.cache.write 'foo', 'bar'; puts Rails.cache.read 'foo'; Rails.cache.read_multi 'foo'
bar
=> {nil=>"bar"}

Of course, other special regex characters will cause this, too, or possibly raise RegexpErrors (e.g., "[]").  Properly escaping the namespace when using a regexp to remove it from the key solves this issue.

@speckins Can you please create a spec to demonstrate the problem and provide protection against regression?   Thanks.

@petergoldstein Sure.  I almost did with the original PR but didn't think it significant enough.
Here's what they look like when they fail:
1) Failure:
Dalli#test_0001_handle special Regexp characters in namespace with get_multi:
Expected: {"a"=>1, "b"=>2}
  Actual: {"(?!):a"=>1, "(?!):b"=>2}

2) Failure:
Dalli#test_0002_support read_multi with special Regexp characters in namespace:
Expected: {"abc"=>123, "xyz"=>456}
  Actual: {nil=>456}

The Regexp.escape addition causes both to pass.  (If you sign off of both of these, I will squash them into the previous commit and push -f.)

I squashed the specs and rebased to dalli:master.  Is there anything holding up this PR?

Looks good, thanks!


windows for natten

Someone made these.
https://github.com/2kpr/ComfyUI-PMRF
https://huggingface.co/2kpr/NATTEN-Windows

Someone made these. 有人制作了这些。
https://github.com/2kpr/ComfyUI-PMRF
https://huggingface.co/2kpr/NATTEN-Windows

I love you my friend.

Great! Thanks! Will add to the readme.

Thank you! The Gradio demo has been successfully deployed and running in Windows 11.

I am a noob, but I managed to install it. Can we also colourize picture ?

@cyberbol If you refer to our blind face image restoration model, then unfortunately no. We did not train our model for image colorization, but such an extension should be straightforward! Note that we do conduct colorization experiments in section 5.2, but for a specific type of color degradation and noise.
If you decide to extend our model for blind image colorization, please share your results! Thanks :)

Thank you! The Gradio demo has been successfully deployed and running in Windows 11.

Hello my friend, I deployed it in windows11 according to the hugggingface Gradio demo, but occured this error. It might be due to an incorrect version of torchvision being used. May I ask which versions of torch and torchvision you are using? Thank you for your response!
Error Message：
Traceback (most recent call last):
File "G:\AI\PMRF\app.py", line 17, in
from basicsr.archs.rrdbnet_arch import RRDBNet
File "D:\Miniconda\envs\pmrf\lib\site-packages\basicsr_init_.py", line 4, in
from .data import *
File "D:\Miniconda\envs\pmrf\lib\site-packages\basicsr\data_init_.py", line 22, in
dataset_modules = [importlib.import_module(f'basicsr.data.{file_name}') for file_name in dataset_filenames]
File "D:\Miniconda\envs\pmrf\lib\site-packages\basicsr\data_init.py", line 22, in
dataset_modules = [importlib.import_module(f'basicsr.data.{file_name}') for file_name in dataset_filenames]
File "D:\Miniconda\envs\pmrf\lib\importlib_init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "D:\Miniconda\envs\pmrf\lib\site-packages\basicsr\data\realesrgan_dataset.py", line 11, in
from basicsr.data.degradations import circular_lowpass_kernel, random_mixed_kernels
File "D:\Miniconda\envs\pmrf\lib\site-packages\basicsr\data\degradations.py", line 8, in
from torchvision.transforms.functional_tensor import rgb_to_grayscale
ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'

@WalkingwithAI Please read https://github.com/ohayonguy/PMRF?tab=readme-ov-file#-installation

@WalkingwithAI Please read https://github.com/ohayonguy/PMRF?tab=readme-ov-file#-installation

Thank you my friend, it worked.


it is possible to use hooks install and uninstall like the wordpress plugins?

Yes, this modules uses events.


Offer to Contribute and Request for Guidance and Mentorship

Hello @Depado ,
Thank you for sharing your work with pocketbase, templ, and htmx! As someone eager to learn web development, your code is extremely helpful. I'm starting my first programming job next Monday and would love to contribute to your project in my spare time. While I'm new to contributing in open source projects and still developing my skills, I'm ready to assist wherever I can, perhaps by working on CRUD examples or improving the documentation. I'm also interested in OAuth as I develop those skills.
Could you provide some guidance on where to start? Also, do you have the capacity to offer some mentorship as I navigate my contributions?

Hello @RocketRene :wave:
I'm currently working actively on this project and don't really know how it could fit in my vision to have other people working on it. I don't really know where I'm going with this project, I'm mostly just having fun and exploring different ways of working with HTMX and PocketBase (and more generally Go).
The OAuth section will undeniably be tricky.
My advice if you want to play around would be to fork this project and play around with it. I'll get in touch with you on Twitter so we can speak more freely than on an open issue :smile:


setGame(str) function is not working

Nodejs -v 8.2.1
Discordjs -v 11.1.0
`const Discordjs = require( 'discord.js' );
const Config = require( './config.json' );
const Hacer = new Discordjs.Client();
var prefix = Config.prefix;
Hacer.on('ready', () => {
const user = Hacer.user;
console.log(user.username + " is running up now.");
user.setStatus( 'dnd' );
user.setGame( 'This is the game.' );
});
`
setGame method doesn't set my bot's game. No error, no anything else. Only no game. Status working well.

Already fixed in #1785.
If you don't want to update to the 11.1-dev branch you can use client.user.setPresence({ game: { name: 'yourGameGoesHere', type: 0 } }); as a workaround.


[BUG] ModuleNotFoundError: No module named 'snowflake'

Agent Environment
Agent 7.42.0
Describe what happened:
I'm setting the base docker image to FROM datadog/agent:7 and running snowflake custom queries
Tried to rebuild the image got an error ModuleNotFoundError: No module named 'snowflake'
Describe what you expected:
Expecting custom metrics from snowflake custom queries
Steps to reproduce the issue:
Setup snowflake connection.
Add custom queries or even let the default one enabled
Additional environment details (Operating System, Cloud provider, etc):
Operating System: Linux
Cloud provider: AWS
Operating on : ECS Fargate

@mfarouks thanks for the report! The fix for this has been merged and v7.42.1 will include it.


Get current firmware version

Hello and thanks you for this! It would be great if GCFFlasher can give use more details about the adapter, such as the current firmware version running.

Yes this will be added in future, I'd like to add some kind of command promt to execute various commands like query firmware version and store/restore configuration.

I can only agree to this request, this is really not a big deal reading out the current firmware version and add it to the printout when using the list command. I am wondering why a request is needed for such a basic funtionality...
Sometimes it is better to do smaller steps which helps users a lot instead waiting long time for the big jump, just my 2c.


02LED using IR remote Assignment_Submission(251801112)

Please do not create new directory with your name again and again everytime when you submit the assignment. You can see other student's submissions  for reference and follow the instructions given here
and then resubmit.


Add adityatelange/hugo-index

This PR adds https://github.com/adityatelange/hugo-index to hugoThemesSiteBuilder
Demo: https://adityatelange.github.io/hugo-index/

@hugo-sid Please help with build error https://app.netlify.com/sites/hugothemes/deploys/6442deccc7e3ae0007a4767c
12:37:33 AM: go<EMAIL_ADDRESS>requires
12:37:33 AM<EMAIL_ADDRESS>invalid version: git ls-remote -q origin in /opt/build/cache/hugo_cache/modules/filecache/modules/pkg/mod/cache/vcs/38e5698c428f86c098a6b34bbb725d0b8fdf5ac6305e36bc309b6e7b5a3a0a9a: exit status 128:
12:37:33 AM: 	error: RPC failed; curl 16 Error in the HTTP2 framing layer
12:37:33 AM: 	fatal: expected flush after ref listing
12:37:33 AM: Error: failed to download modules: failed to execute 'go [mod download]': failed to execute binary "go" with args [mod download]: go<EMAIL_ADDRESS>requires
12:37:33 AM<EMAIL_ADDRESS>invalid version: git ls-remote -q origin in /opt/build/cache/hugo_cache/modules/filecache/modules/pkg/mod/cache/vcs/38e5698c428f86c098a6b34bbb725d0b8fdf5ac6305e36bc309b6e7b5a3a0a9a: exit status 128:
12:37:33 AM: 	error: RPC failed; curl 16 Error in the HTTP2 framing layer
12:37:33 AM: 	fatal: expected flush after ref listing
12:37:33 AM:  *errors.errorString
12:37:33 AM: Got Hugo Modules in 20484 ms
12:37:33 AM: error: exit status 255
12:37:33 AM: exit status 1
12:37:33 AM: go failed: exit status 1

Hi @adityatelange.
Thanks for adding hugo-index theme.

Please help with build error

I see that the build is failing not because of any problems with your PR but because of some issue with github.com/kdevo/osprey-delight/ .
I am trying to resolve this issue.

@hugo-sid somehow the issue is resolved :+1: and all checks have passed


Recursive vscode task.json inputs

TL;DR: Desire a documented way for commands intended to be run to generate inputs to themselves depend on inputs
As part of a separate discussion, the seemingly intentional exclusion of task inputs that can be generated by a shell command is very strange to me.
For instance, I cannot use workbench.terminal.run as the command parameter of an input with the type of command.
I am coping with this by installing Task Shell Input, a command by Augusto César Dias (thank you!)
What this allows me to do, is prompt for user input for example, when I want to control or filter which subversion tags are displayed in a user pick list.
When the user selects my SVN - Checkout Blender Precompiled Libs Trunk on Windows, I have to ask them which windows library they want, since Blender Foundation has split up the precompiled libraries based on Visual Studio version.

What isn't working is when the user wants to first select the tag to checkout, and then I want to prompt them with a list of available Windows versions.
Here is the relevant parts of my `task.json` file (click to expand)
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "SVN - Checkout Blender Precompiled Libs Tag",
            "type": "process",
            "command": "svn",
            "linux": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/linux_centos7_x86_64/"
                ]
            },
            "osx": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/darwin/"
                ]
            },
            "windows": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/${input:BfSvnTagNTPlatform}"
                ]
            },
            "options": {
                "cwd": "${workspaceFolder}/Blender/lib"
            },
            "problemMatcher": []
        }
    ],
    "inputs": [
        {
            "id": "BfSvnTag",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "svn ls https://svn.blender.org/svnroot/bf-blender/tags/"
            }
        },
        {
            "id": "BfSvnTagNTPlatform",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "svn ls https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/ | findstr \"^win\""
            }
        }
    ]
}

Here is my complete `tasks.json`
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Python - Publish to PyPI",
            "type": "process",
            "command": "${config:python.pythonPath}",
            "args": [
                "-m",
                "twine",
                "upload",
                "${workspaceFolder}/dist/*"
            ],
            "problemMatcher": []
        },
        {
            "label": "Python - Publish to PyPI [TEST]",
            "type": "process",
            "command": "${config:python.pythonPath}",
            "args": [
                "-m",
                "twine",
                "upload",
                "--repository",
                "pypitest",
                "${workspaceFolder}/dist/*"
            ],
            "problemMatcher": []
        },
        {
            "label": "Python - Upgrade pip",
            "type": "process",
            "command": "${config:python.pythonPath}",
            "args": [
                "-m",
                "pip",
                "install",
                "-U",
                "pip"
            ],
            "problemMatcher": []
        },
        {
            "label": "Python - Install Dependencies",
            "type": "process",
            "command": "${config:python.pythonPath}",
            "args": [
                "-m",
                "pip",
                "install",
                "-r",
                "${workspaceFolder}/requirements.txt"
            ],
            "dependsOn": [
                "Python - Upgrade pip"
            ],
            "problemMatcher": []
        },
        {
            "label": "Make Blender Source & Libs Folder",
            "type": "shell",
            "linux": {
                "command": "mkdir -p ${workspaceFolder}/Blender/lib"
            },
            "osx": {
                "command": "mkdir -p ${workspaceFolder}/Blender/lib"
            },
            "windows": {
                "command": "mkdir -p ${workspaceFolder}/Blender/lib"
            },
            "problemMatcher": []
        },
        {
            "label": "Make Build Folder",
            "type": "shell",
            "linux": {
                "command": "mkdir -p ${workspaceFolder}/build/linux"
            },
            "osx": {
                "command": "mkdir -p ${workspaceFolder}/build/osx"
            },
            "windows": {
                "command": "mkdir -p ${workspaceFolder}/build/windows"
            },
            "problemMatcher": []
        },
        {
            "label": "Make OptiX Folder",
            "type": "shell",
            "linux": {
                "command": "mkdir -p ${workspaceFolder}/OptiX"
            },
            "osx": {
                "command": "mkdir -p ${workspaceFolder}/OptiX"
            },
            "windows": {
                "command": "mkdir -p ${workspaceFolder}/OptiX"
            },
            "problemMatcher": []
        },
        {
            "label": "Browser - Get OptiX [Requires Registration]",
            "type": "shell",
            "linux": {
                "command": "open https://developer.nvidia.com/designworks/optix/download"
            },
            "osx": {
                "command": "open https://developer.nvidia.com/designworks/optix/download"
            },
            "windows": {
                "command": "start https://developer.nvidia.com/designworks/optix/download"
            },
            "dependsOn": [
                "Make OptiX Folder"
            ],
            "problemMatcher": []
        },
        {
            "label": "Git - Clone Blender Sources",
            "type": "process",
            "command": "git",
            "args": [
                "clone",
                "git://git.blender.org/blender.git"
            ],
            "options": {
                "cwd": "${workspaceFolder}/Blender"
            },
            "dependsOn": [
                "Make Blender Source & Libs Folder"
            ],
            "problemMatcher": []
        },
        {
            "label": "Git - Fetch Blender Commits",
            "type": "process",
            "command": "git",
            "args": [
                "fetch"
            ],
            "options": {
                "cwd": "${workspaceFolder}/Blender/blender"
            },
            "problemMatcher": []
        },
        {
            "label": "Git - Pull Blender Commits",
            "type": "process",
            "command": "git",
            "args": [
                "pull"
            ],
            "options": {
                "cwd": "${workspaceFolder}/Blender/blender"
            },
            "problemMatcher": []
        },
        {
            "label": "Git - Checkout Blender Tag",
            "type": "process",
            "command": "git",
            "args": [
                "checkout",
                "tags/${input:BfGitTag}",
                "-b",
                "origin/master"
            ],
            "options": {
                "cwd": "${workspaceFolder}/Blender/blender"
            },
            "dependsOn": [
                "Git - Fetch Blender Commits"
            ],
            "problemMatcher": []
        },
        {
            "label": "Git - Checkout Blender Master",
            "type": "process",
            "command": "git",
            "args": [
                "checkout",
                "master"
            ],
            "options": {
                "cwd": "${workspaceFolder}/Blender/blender"
            },
            "dependsOn": [
                "Git - Fetch Blender Commits"
            ],
            "problemMatcher": []
        },
        {
            "label": "Git - Switch To Blender Master [Checkout & Pull]",
            "dependsOn": [
                "Git - Checkout Blender Master",
                "Git - Pull Blender Commits"
            ],
            "dependsOrder": "sequence",
            "problemMatcher": []
        },
        {
            "label": "Update Blender Sources [Checks out master branch]",
            "type": "shell",
            "command": "./make update",
            "options": {
                "cwd": "${workspaceFolder}/Blender/blender"
            },
            "dependsOn": [
                "Git - Checkout Blender Master"
            ],
            "problemMatcher": []
        },
        {
            "label": "SVN - Checkout Blender Precompiled Libs Trunk",
            "type": "process",
            "command": "svn",
            "linux": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64/"
                ]
            },
            "osx": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/trunk/lib/darwin/"
                ]
            },
            "windows": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/trunk/lib/${input:BfSvnTrunkNTPlatform}"
                ]
            },
            "options": {
                "cwd": "${workspaceFolder}/Blender/lib"
            },
            "problemMatcher": []
        },
        {
            "label": "SVN - Checkout Blender Precompiled Libs Tag",
            "type": "process",
            "command": "svn",
            "linux": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/linux_centos7_x86_64/"
                ]
            },
            "osx": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/darwin/"
                ]
            },
            "windows": {
                "args": [
                    "checkout",
                    "https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/${input:BfSvnTagNTPlatform}"
                ]
            },
            "options": {
                "cwd": "${workspaceFolder}/Blender/lib"
            },
            "problemMatcher": []
        },
        {
            "label": "Configure",
            "type": "shell",
            "linux": {
                "command": "cmake ${workspaceFolder}/Blender/blender -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_MODULE=ON -DWITH_CYCLES_CUDA_BINARIES=ON -DWITH_CYCLES_DEVICE_OPTIX=ON -DOPTIX_ROOT_DIR=/NVIDIA-OptiX-SDK-7.1.0-linux64-x86_64",
                "options": {
                    "cwd": "${workspaceFolder}/build/linux"
                }
            },
            "osx": {
                "command": "cmake ${workspaceFolder}/Blender/blender -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_MODULE=ON",
                "options": {
                    "cwd": "${workspaceFolder}/build/osx"
                }
            },
            "windows": {
                "command": "cmake ${workspaceFolder}/Blender/blender -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_MODULE=ON -DWITH_CYCLES_CUDA_BINARIES=ON -DWITH_CYCLES_DEVICE_OPTIX=ON -DOPTIX_ROOT_DIR=/NVIDIA-OptiX-SDK-7.1.0-linux64-x86_64",
                "options": {
                    "cwd": "${workspaceFolder}/build/windows"
                }
            },
            "problemMatcher": []
        },
        {
            "label": "Build",
            "type": "shell",
            "linux": {
                "command": "./make install",
                "options": {
                    "cwd": "${workspaceFolder}/build/linux"
                }
            },
            "osx": {
                "command": "./make install",
                "options": {
                    "cwd": "${workspaceFolder}/build/osx"
                }
            },
            "windows": {
                "command": "./make install",
                "options": {
                    "cwd": "${workspaceFolder}/build/windows"
                }
            },
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Docker - Full Clean",
            "type": "process",
            "command": "docker",
            "args": [
                "system",
                "prune",
                "--all",
                "--force",
                "--volumes"
            ],
            "problemMatcher": []
        },
        {
            "label": "Docker - Create Manylinux Wheel Build Environment",
            "type": "process",
            "command": "docker",
            "args": [
                "build",
                "--target",
                "blenderpy-manylinux-wheel-builder",
                "-t",
                "blenderpy/manylinux-wheel-builder",
                "-f",
                "${workspaceFolder}/.containers/Dockerfile",
                "."
            ],
            "problemMatcher": []
        },
        {
            "label": "Docker - Create Windows Wheel Build Environment",
            "type": "process",
            "command": "docker",
            "args": [
                "build",
                "--target",
                "blenderpy-windows-wheel-builder",
                "-t",
                "blenderpy/windows-wheel-builder",
                "-f",
                "${workspaceFolder}/.containers/Dockerfile",
                "."
            ],
            "problemMatcher": []
        },
        {
            "label": "Docker - Delete All Containers & Volumes",
            "type": "shell",
            "command": "docker rm -vf $(docker ps -a -q)",
            "problemMatcher": []
        },
        {
            "label": "Docker - Delete All Images",
            "type": "shell",
            "command": "docker rmi -f $(docker images -a -q)",
            "problemMatcher": []
        },
        {
            "label": "Docker - Delete EVERYTHING",
            "type": "shell",
            "dependsOn": [
                "Docker - Delete All Containers & Volumes",
                "Docker - Delete All Images"
            ],
            "dependsOrder": "sequence",
            "problemMatcher": []
        }
    ],
    "inputs": [
        {
            "id": "BfGitTag",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "cd Blender/blender && git tag"
            }
        },
        {
            "id": "BfSvnTag",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "svn ls https://svn.blender.org/svnroot/bf-blender/tags/"
            }
        },
        {
            "id": "BfSvnTrunkNTPlatform",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "svn ls https://svn.blender.org/svnroot/bf-blender/trunk/lib/ | findstr \"^win\""
            }
        },
        {
            "id": "BfSvnTagNTPlatform",
            "type": "command",
            "command": "shellCommand.execute",
            "args": {
                "command": "svn ls https://svn.blender.org/svnroot/bf-blender/tags/${input:BfSvnTag}/lib/ | findstr \"^win\""
            }
        }
    ]
}

What Happens:

What I Would Like (opinion)
I would like to be able to have a task input that would accept a type of shell or process (like task). The user would supply a shell command or process (optionally breaking it down by OS variant [like task]). The output of the shell or process would produce text that would be split by newline in VS Code natively. Each split would be a list item for the input.
What Could Work
If there was some documented way for commands run by inputs to gather inputs themselves, then this would work today.
See Also
https://github.com/augustocdias/vscode-shell-command/issues/10

If you need to collect many inputs, the current recommendation is that you write an extension that has a command that prompts for input. We do not want to make task inputs recursive, since that gets us into the territory of writing a new programming language.


Area routing for pedestrian/bike

Even if we already include areas/places in the routing there is still some work to do as we need to cross the polygon and the way along the lines might be suboptimal.
http://comments.gmane.org/gmane.comp.gis.openstreetmap.region.at/5213
http://openplans.org/2012/06/b-roll-david-solves-the-plaza-problem-with-help-from-de-berg-and-matt-conway/
Think about it: Instead of pre-calculation: use spline and post-processing while or after path extraction

This example was reported on the osm-website issues.

What routing over areas does GH do? The bug I filed (now closed) on the osm website repo linked to one example, here is another:
http://www.openstreetmap.org/directions?engine=graphhopper_foot&route=57.16063%2C-2.11108%3B57.16071%2C-2.11137#map=19/57.16083/-2.11150
or in GH:
https://graphhopper.com/maps/?point=57.160614%2C-2.111076&point=57.160698%2C-2.111397&vehicle=foot&locale=en-US&elevation=true&layer=Lyrk
Both involve routing over a car-park area; the first from a road to a foot way, both nodes on the area boundary, the second as the assumption would be that steps would be a preferred route down into car-park area to get to shops (simplified to simply getting 'down steps', which it doesn't do).
Happy to split this up into different issues, but I'm not sure what GH does and doesn't cope with in this regard.

I regard this as an important and fundamental gap in GraphHopper’s functionality (but also appreciate that it must be hard to implement a solution). I come across it fairly repeatedly and would expect cases to increase as the map is refined. A typical example are foot routes through pedestrian areas such as this one in Osnabrück, part of a walk that I needed to research recently. There is a specific and particularly puzzling phenomenon here because in addition to the areas, the streets have also been mapped as highway:pedestrian lines that go roughly through the middle of the areas. GH uses this highway:pedestrian section but then decides to take a short highway:footway to the edge of the area and continue going around it, forming an almost closed loop, while in fact there are further highway:pedestrian sections all the way through the two streets (Bierstraße, Heger Straße) between the start and destination. I tried to move the destination away from the edge of the area to the center where the highway objects are, but to no avail – but at some point this does make GH suddenly use the more direct route through Große Gildewart, which has the same kind of highway going through the middle of the area. Whether the middle highway objects are used or not seems quite unpredictable. They are all tagged with bicycle:yes so it is worth looking at the behaviour of bicycle routes across the whole pedestrian area too. Routes can jump quite suddenly, sometimes using the middle sections and sometimes not, often depending on whether the destination is closer to the edge of an area or to a middle highway (try varying this here).
In general I would expect a path through the middle of areas regardless of the presence of “guiding sections” or the exact location of the route’s points. And I would not restrict this issue to pedestrian/bike routing, there might well be areas that motorised vehicles can use.

Maybe old news, and lot related to GraphHopper, but this talk shows some of the difficulties (and maybe possible solutions) in routing over areas: https://www.youtube.com/watch?v=chGlRnYGvDg

All is possible but needs time and I know people that made it working with GraphHopper, but currently no one contributed it back and for us this is no high priority.

I did some experiments with routing through open spaces:

I will try to contribute the code. I did most of the changes in the https://github.com/graphhopper/graphhopper/blob/0.7/core/src/main/java/com/graphhopper/reader/OSMReader.java class.
In which part of GraphHopper would you prefer to have the code?
I guess not everybody needs this "feature". Is it possible to create a plugin for that?

Sounds really nice and would be very appreciated! Currently there is no real architecture for adding plugins. The reason mainly is that we didn't have a common case where to add stuff, but also as we plugged custom stuff via method overloading or just by configuration. But you can add it there and introduce a parameter like prepare.area_routing=no|yes
Are you doing this as a pre-processing step or some combination of pre-processing and "splines calculation"? Did you do some tests on e.g. country sized scale and have an rough value of the overhead for the graph size? (Sorry do not remember the numbers from your talk :))

Okay, I will try to do it with this parameter  prepare.area_routing=no|yes.
I preprocessed all edges in advance. Hence, the new edges within the open space are a "normal" part of the routing graph.
The overhead for the graph size depends on the algorithm. Using a Visibility algorithm that connects all nodes with each other, the overhead can be up to 15%. The routing result is very good then.
I also tried to connect only the Tower Nodes with each other. Then the overhead is less than 1%. However, it sometimes produces bad results on concave open spaces, because then very often the direct line-of-sight between some Tower Nodes is not possible anymore.

I see. Let us start with the higher precision and if necessary we make it configurable or something (?)

So far I worked only with open spaces stored as closed ways. The next step is to also integrate open spaces that are modeled as relation (multipolygon).
This definition explains  how to convert them into "normal" polygons.
I guess it is necessary to store all relations during the parsing process. Maybe at this point in the OSMReader class.
How would you store these multipolygons (relations) during the parsing process?

So far I worked only with open spaces stored as closed ways. The next step is to also integrate open spaces that are modeled as relation (multipolygon).

Let us first integrate and improve the simpler version. This way we have something that works already without other trouble.

What is the reason that this issue about pedestrian routing through areas has such low priority?
I'm asking because mappers obviously continue to add "virtual" ways over areas in OSM. This is unncessary and like "tagging for the router". In addition it looks weird in renderers, because such pedestrian ways can't be distinguished from "real" ones without guessing...

Why do you think it has "such low priority"? The community defines the priority we cannot do everything.

I'm asking because mappers obviously continue to add "virtual" ways over areas in OSM.

Sorry, but that is not ours fault. Our stance is clearly: do not map for the router!

I'll ask the question another way around: is there a way the community can support this? Even if it's just having six flower bouquets or pizzas delivered to the graphhopper team :)

There was something from @bufferclip but do not know its state.

Even if it's just having six flower bouquets or pizzas delivered to the graphhopper team :)

That would be supportive, sure. At the end we all have only limited time and there are so many things that we could improve. Coding pushes things further, even if you do not have good Java skills. Or money to contract someone etc

Sorry for bumping on this. I see that other "big" routing engines have similar problems.
I actually hoped that one engine would give a prove that "mapping fo the router" (like e.g. at Helvetiaplatz, Zürich http://www.openstreetmap.org/way/4533221) would become obsolete.
In fact, I think we're close to a solution and I'm actually advising a student thesis to clear the way for implementations.

Just an observation adding on this: a couple of months ago I have observed that HERE Maps supports routing through open spaces: https://wego.here.com/directions/walk/Hauptstraße-122,-69117-Heidelberg,-Deutschland:49.41158,8.70536/Marsiliusplatz,-69117-Heidelberg,-Deutschland:49.41048,8.70710?map=49.41089,8.70754,18,pedestrian&msg=Augustinergasse 7
Though they do not use OpenStreetMap data

There is an solution implemented here (even based on Graphhopper): https://github.com/GIScience/openrouteservice/blob/master/openrouteservice/src/main/java/heigit/ors/routing/graphhopper/extensions/graphbuilders/InFieldGraphBuilder.java
It is slightly modified version of the algorithm described here: https://www.researchgate.net/publication/305272744_Integrating_Open_Spaces_into_OpenStreetMap_Routing_Graphs_for_Realistic_Crossing_Behaviour_in_Pedestrian_Navigation
For alternative algorithms, cf. also this recent publication: http://www.tandfonline.com/doi/full/10.1080/10095020.2017.1399675

We will work with the team from GIScience and merge all core and fitting features here, but this will take time and so every helping hand is welcome :)

Forgot to mention that it can be tested here (pedestrian profile): https://labs.openrouteservice.org/

I can’t seem to get it to work: example

You are right .. here are some examples, when this was working: http://k1z.blog.uni-heidelberg.de/2017/11/27/routing-through-open-spaces-–-a-performance-comparison-of-algorithms/
But currently, it does not seem to be active. Sorry for the misinformation.

FYI: Two students just completed a semester thesis in at my Geometa Lab HSR about and implemented pedestrian routing through open urban areas by preprocessing OSM data for GraphHopper. It's called PlazaRoute https://github.com/PlazaRoute/plazaroute .

@sfkeller interesting approach, thanks for the link. I had a brief look at the project. If I understand this correctly, you transform areas to ways in a preprocessing step, which allows you to use a unmodified GraphHopper version to import the graph?
I had a look at the cited papers. So the idea of PlazaRoute was to create a "SpiderWebGraph" for areas? If yes, did you measure the impact of the change, in regards of number of ways and routing performance? How are the results?

@sfkeller @boldtrn a master thesis at Heidelberg University completed in 2016 (by @JakobMiksch) had a very similar scope. Results have been published open access: http://www.tandfonline.com/doi/full/10.1080/10095020.2017.1399675 (this paper gives some insights to your question regarding extra number of ways and impact on routing performance).
Implementation can be found here: https://github.com/GIScience/openrouteservice/blob/master/openrouteservice/src/main/java/heigit/ors/routing/graphhopper/extensions/graphbuilders/InFieldGraphBuilder.java

@boldtrn That's about right, we create new ways with the shortest paths through the areas, and then merge them back together with the original OSM data to use it with GraphHopper
We did analyze the impact on the data size (among others) and compared the two methods "visibility graph" and "SpiderWeb graph". The whole text can be found here (German): https://github.com/PlazaRoute/doc/releases

l7
On Mar 16, 2018 08:19, "stefanhahmann"<EMAIL_ADDRESS>wrote:
@sfkeller https://github.com/sfkeller @boldtrn
https://github.com/boldtrn a master thesis at Heidelberg University
completed in 2016 (by @JakobMiksch https://github.com/jakobmiksch) had a
very similar scope. Results have been published open access:
http://www.tandfonline.com/doi/full/10.1080/10095020.2017.1399675 (this
paper gives some insights to your question regarding extra number of ways
and impact on routing performance).
Implementation can be found here:
https://github.com/GIScience/openrouteservice/blob/master/openrouteservice/src/main/java/heigit/ors/routing/graphhopper/extensions/graphbuilders/InFieldGraphBuilder.java
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/graphhopper/graphhopper/issues/82#issuecomment-373625067,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AG6t7ykFBBLizg8nJehHtuIcRnyXoculks5te2efgaJpZM4AxSvx
.

@JakobMiksch Did you ever publish your code mentioned above (https://github.com/graphhopper/graphhopper/issues/82#issuecomment-267316938), I have look for it but with out success. I'd be interested in looking at using it as a starting point if it's still available.

Cf. comment from 16.03.2018: https://github.com/graphhopper/graphhopper/issues/82#issuecomment-373625067

https://github.com/GIScience/openrouteservice/blob/master/openrouteservice/src/main/java/heigit/ors/routing/graphhopper/extensions/graphbuilders/InFieldGraphBuilder.java

https://www.tandfonline.com/doi/full/10.1080/10095020.2017.1399675 Table 1 shows that open spaces are rare case in OSM though.

FYI: The repo of PlazaRoute (Open Source, mentioned above) is still available.

Just see that the openrouteservice link was broken. This one should work: https://github.com/GIScience/openrouteservice/blob/master/openrouteservice/src/main/java/org/heigit/ors/routing/graphhopper/extensions/graphbuilders/InFieldGraphBuilder.java

Awesome, thank you for the reference and code. If I can do anything useful with them I will report back.

@stefanhahmann

@sfkeller interesting approach, thanks for the link. I had a brief look at the project. If I understand this correctly, you transform areas to ways in a preprocessing step, which allows you to use a unmodified GraphHopper version to import the graph?

Correct.

I had a look at the cited papers. So the idea of PlazaRoute was to create a "SpiderWebGraph" for areas? If yes, did you measure the impact of the change, in regards of number of ways and routing performance? How are the results?

Yes there was some evaluation in the thesis. I can't answer quickly though. Did yo use see the thesis documentation. AFAIK it's also here on a better citable place: https://eprints.hsr.ch/625/


Fix resizing on Windows not triggering an event

Resizing should trigger a baseview resize event, but because we already set the new size here the WM_SIZE event was ignored.

/vote


Update Azure getting started

Fix Azure getting started to use tags instead of https to force a change.
Make create project match actual outputs.

@leezen I only see 1 file change. Are more coming or am I misreading that?

@mikhailshilkov ah, sorry, i hit push and didn't look back. i forgot i committed one of the suggestions, so had to pull that down. everything should be up now.


Easter filter doesn't work in HHVM

HHVM doesn't have easter_days, nor does it have easter_date. These will need to be reimplemented in user space to get  the tests to pass.

Fixed in ac4add20429578771e1e680b22f210543969f8e7


How required works?!?

I'm validating a simple input that should be required. Meaning it should have some text as value.
Why if I leave it blank the validation pass?
     try {
      new SimpleSchema({
        screenName: { type: String, required: true }
      }).validate(data);
    } catch (e) {
      throw new Meteor.Error('400', e.message);
    }

I think it should fail if screenName is ''... But it pass. To let it work I actually added min: 3 but it is not what I wish to achieve...
Thanks!

Required can also be a function that returns true or false.
const valdidateString = (s) => {
return (s !== "" && s!== null);
}

     try {
      new SimpleSchema({
        screenName: {
type: String,
required: validateString(s) }
      }).validate(data);
    } catch (e) {
      throw new Meteor.Error('400', e.message);
    }

https://github.com/aldeed/node-simple-schema#required

This is how it works. "" is considered a value. You can clean with the removeEmptyStrings: true option before validating, or add min: 1 to the definition.


Fix build with Intel MKL on Linux

These commits fix issues #4520 and #4521 and I can successfully build SciPy on RHEL 6.6 with GCC 4.4.7.
There are no segfaults and only one test fails:
test_iterative.test_convergence:
AssertionError: residual (0.144597) not smaller than tolerance 0.142829

Proposed fixes look OK to me. The test failure seems to be a case of tolerance slightly too tight.

Merging. I haven't tested this, but it matches the Intel docs.


#EXT-X-PROGRAM-DATE-TIME missing?

https://github.com/sethdeckard/m3u8/blob/6e2a54b7f64cf2c1c93b958e31e0aa79e343db09/lib/m3u8/segment_item.rb#L14
It looks like when this gets rendered it's missing the #EXT-X-PROGRAM-DATE-TIME, only rendering the time. I'm not sure if this was an intentional design decision or a bug? It looks like it's been in there for 5 years if it is a bug, so wanted to make sure before working on a PR.
Details:
...
playlist.items << M3u8::SegmentItem.new(program_date_time: Time.now, duration: 10, segment: 'http://example.com/segment-1.aac')
....

Expected:
#EXTINF:9.770667,
#EXT-X-PROGRAM-DATE-TIME: 2020-11-25 14:27:00 -0600
http://example.com/segment-1.aac

Actual:
#EXTINF:9.770667,
2020-11-25 14:27:00 -0600
http://example.com/segment-1.aac

the latter seems to cause players to try and request "2020-11-25 14:27:00 -0600" as a fragment url.
I worked around the issue for the timebeing by passing the "#EXT-X-PROGRAM-DATE-TIME: #{Time.now}", as the program_date_time attribute, which feels a little clunky unless I'm missing the reasoning for it being this way. Thoughts?

Thanks for reporting this @jkeen and apologies for the really late response. It's definitely a bug.


Add method to subscribe with webhooks

Add method to subscribe with webhooks

Codecov Report

Merging #25 (94386e9) into main (529d8a7) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #25   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            6         6
  Lines          291       348   +57
  Branches        29        37    +8
=========================================
+ Hits           291       348   +57

Files Changed
Coverage Δ

src/aiowithings/__init__.py
100.00% <ø> (ø)

src/aiowithings/models.py
100.00% <100.00%> (ø)

src/aiowithings/withings.py
100.00% <100.00%> (ø)

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


Command 'Gauge: create new specification' resulted in an error

I am getting this error when I am trying to create a new specification in vs code.
Gauge version:1.0.8
Python:(0.3.9)

what is the error you are seeing? Please provide details in the issue you raise, it's hard to investigate otherwise.
I am able to open a new gauge-python project, create specs, and add implementation.

Feel free to reopen if you can get more details.


gui_input not being called if the touch starts on another control

Godot version
v4.2.dev4.mono.official [549fcce5f]
System information
Windows 10
Issue description
Let's assume this setup.
You have two control nodes, with the same script. This script listens to the gui_input event signal.
Holding the touch/click. If you start your touch/click on an empty space, it will call the method when hovering over the control node, but, if that touch/click starts on top of one of the control nodes, it will not get called.
I have checked the other workarounds like checking if the point is inside the control area's and checking mouse enter exit. But at least in my case that wont work because:
-Two control areas can be overlapping, so the one at the top should win
-On mobile on_mouse_enter does not trigger
Is this by design? Or is it an error? If it's by design, what is the expected solution?
Steps to reproduce
Explained on the example
Minimal reproduction project
N/A

Using TouchScreenButton instead of Button is recommended for proper touch button handling until https://github.com/godotengine/godot-proposals/issues/3976 is implemented.

This applies to all Control nodes, not only buttons

Also, it happens on the PC version too, if you click on one Control, and holding the click move the mouse to another, it won't trigger the on_gui signal

This is fixed for the mouse_entered and mouse_exited signals since 4.1: https://github.com/godotengine/godot/issues/20881
Which on_gui signal are you referring to? There is no single signal named on_gui.
Please upload a minimal reproduction project[^1] to make this easier to troubleshoot.
[^1]: A small Godot project which reproduces the issue, with no unnecessary files included. Be sure to not include the .godot folder in the archive (but keep project.godot).Drag and drop a ZIP archive to upload it. Do not select another field until the project is done uploading.Note for C# users: If your issue is not Mono-specific, please upload a minimal reproduction project written in GDScript or VisualScript. This will make it easier for contributors to reproduce the issue locally as not everyone has a Mono setup available.

Added a video explaining it, and a MRP. It's on the .NET version since I had some trouble trying to translate the lambda to GDScript.

Which on_gui signal are you referring to? There is no single signal named on_gui.

My bad, the signal was "gui_input" on the Control node

Hitting this issue too on PC.
Basically, I'm tring to see which PanelContainer the mouse click is released at.
I have two PanelContainers next to each other. If I click on one and move the mouse to another one, the gui_input event is not triggered in the second PanelContainer, only the first one, despite get_viewport().set_input_as_handled() not being called.
Maybe this is the expected behavior and I missed it. If so, I don't see any way of having this behavior currently.

looks like the same issue as https://github.com/godotengine/godot/issues/84466


Colored output does not work with fzf

When piping tldr --list through fzf the colours are stripped even when use the the --ansi flag with fzf?
How can I fix this?

Can you try tldr --color always? By default --color auto is used, which disables colors when the output is sent to a pipe.

Found that out just after posting, probably should have read the documentation more carefully..
Appreciate the response
Thank You 👍🏽


Not Working on IE 11 and Safari 5.1.7 (windows)

On image file select this don't load in the previewer container, so it can't be exported as data url 64 img the value of this is undefined
In Google Chrome, Firefox and Opera works ok.
UPDATE
I has tested use:
$imageCropper.cropit('imageSrc', 'http://placekitten.com/g/1280/800');
and the image load in preview container, but still not working with the local image files

Safari 5.1.7 does not support FileReader, which cropit depends on.
I'm not sure about IE 11 -- it should work. Are you getting any error in the console?

I am facing this issue in IE10.
The image is not loading on IE10 (It loads though on edge/chome/firefox) once we refresh the page. loadImage function after the line
this.preImage.src = imageSrc;
throws the error "image failed to load."
This is strange. Please could someone look into it.


Do not support the windows environment？

Failure to execute on Windows

You need to run it in a bash like terminal so maybe it works with "Linux subsystem for windows" or the git bash terminal


🐞 - Form field validation state is not updated after calling form.markAllAsTouched()

Playground Link
https://stackblitz.com/edit/angular-6fjyuv
Description
Calling form.markAllAsTouched() does not mark invalid inputs in "Taiga UI" form.
Input UI state is updated only after clicking on the field or causing CD to run again some other way (ie pressing the submit button twice).
Same example works fine with Angular Material library:
https://stackblitz.com/edit/spdpnj-mh1kbe?file=src%2Fexample%2Finput-form-example.ts
Angular version
17.3.8
Taiga UI version
3.77.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Which operating systems have you used?

[ ] macOS
[X] Windows
[ ] Linux
[ ] iOS
[ ] Android

Related discussion
https://github.com/angular/angular/issues/6170#issuecomment-2104555828

This is expected, all our components use OnPush and simply marking them as touched does not notify us. You need to run updateValueAndValidity so that statusChange stream is triggered. You can use this helper for recursive trigger for entire form groups:
https://github.com/taiga-family/taiga-ui/blob/v3.x/projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts

@waterplea

The "Angular Material" example works fine with OnPush CD strategy: https://stackblitz.com/edit/spdpnj-mh1kbe?file=src%2Fexample%2Finput-form-example.ts
Your own forms demo does show tui-error error messages after calling form.markAllAsTouched() but the invalid inputs do not get red borders.

tuiMarkControlAsTouchedAndValidate(formGroup) works as advertised but I still think form.markAllAsTouched() should mark inputs as invalid like it does in Material library.

In 4.0 there will be no nesting of components so it should start behaving like material in that regard.

Any idea when it might be released?

I hope in a month, cdk is already fully refactored and we keep moving everything into standalone. I expect to finish core package this week. We still need to rework all the textfield controls, though.


EF Core 2.1.0-rc1-final - Method 'FindMapping' type 'NpgsqlTypeMappingSource' does not have an implementation.

After upgrade to EF Core 2.1.0-rc1-final, i found this problem:
Unhandled Exception: System.TypeLoadException: Method 'FindMapping' in type 'Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlTypeMappingSource' from assembly 'Npgsql.EntityFrameworkCore.PostgreSQL, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7' does not have an implementation.

Duplicate of #389, you'll have to wait for the rc1 release of Npgsql.EntityFrameworkCore.PostgreSQL - mixing preview2 and rc1 packages will not work. The release should happen very quickly.


feat: add asset_filter_kwargs for export_labels

can you add a few integration tests to check everything is well bound? Apart from that LGTM!

Yes I'm not done yet, needs tests for sure

waiting for e2e to pass: https://github.com/kili-technology/kili-python-sdk/actions/runs/4596575185/jobs/8118212836


patch: Delay balenaMachine push to finalize releases

Adding a delay to give time for finalization steps to run, release to be finalized and then push to BM
Signed-off-by: Vipul Gupta (@vipulgupta2048) <EMAIL_ADDRESS>

@balena-ci I self-certify!


ENH: Update the documentation to show the algorithm behind scipy.ndimage.measurements.label

Is your feature request related to a problem? Please describe.
I cannot find anything on how the "scipy.ndimage.measurements.label" algorithm works or how its implemented
Describe the solution you'd like.
Could you please explain in the documentation the algorithm or the theory used in  scipy.ndimage.measurements.label ?
Describe alternatives you've considered.
I have considered looking at connected component analysis algorithms however there are multiple variations of that algorithm out there the link
https://aimagelab.ing.unimore.it/imagelab/researchActivity.asp?idActivity=15
Additional context (e.g. screenshots, GIFs)
No response

Related: #14557


bot doesnt work in web chat following the steps here

[Enter feedback here]
After following all those steps the bot doesn't work when trying to test it on web chat.

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

ID: 096d934c-2856-e868-efeb-6622e2a5eafb
Version Independent ID: 8bf74926-6a35-5753-0a1a-6663ba5965b2
Content: Publish your bot to Azure - Bot Service
Content Source: articles/bot-builder-deploy-az-cli.md
Service: bot-service
GitHub Login: @JonathanFingold
Microsoft Alias: iawilt

Hi @jolienai,
Could you please provide information as to what you actually did, what didn't work, and which specific steps you followed? As it stands, I have no clue what you've done.

This issue will be closed due to inactivity.


Discord linking

Hi ShackInTheMiddle and dolosarafat,
I know this isn't the right place to tell you this, but I could not find another way to contact you...
 But there is one problem, the link is invalid. This is the same for this

link.
Thanks for this amazing project / plugin and I'll definitely be using it in my server (which I wanted to be added to the 'Servers Currently Using This Plugin', where I needed the Discord invite link for)

Hey, thanks for pointing that out, the test server is down and we are not planning on bringing it back up and the discord link is the remains of an old Minecraft server, I’ll remove the broken links, Thank you for using my plugin ❤


runtime: removing singleton access from validator

This does make the deprecation stats have the same problem as the WIP stats, which is that using getStrictValidationVisitor doesn't update deprecation stats.   I could do the same trick in source as I did in test and cast-and-set if we have concerns about that.
Risk Level: low
Testing: existing tests
Docs Changes: n/a
Release Notes: n/a
Part of https://github.com/envoyproxy/envoy/issues/19847

/retest

/retest

huh, the failing test seems unrelated.  I'll try a main merge in case something else changed.


Support for riscv

Support for riscv. All tests pass for the 64 bit target.

Instructions for testing (validated on ubuntu 20.04):
# install cross compiling toolchain
sudo apt-get install -y gdb-multiarch qemu-user gcc-10-riscv64-linux-gnu g++-10-riscv64-linux-gnu

# soft link riscv libs to the right path for qemu based execution to work
ln -s /usr/riscv64-linux-gnu/lib/* /lib

# clean old build artifacts/state (including llvm)
make distclean

# compile libs/llvm with support for X86/RISCV
make libs llvm_archs='X86;RISCV' build_flags='-j8'

# configure for X86/RISCV ponyc
make config=debug configure llvm_archs='X86;RISCV' build_flags='-j8'

# build for X86/RISCV ponyc
make config=debug build llvm_archs='X86;RISCV' build_flags='-j8'

# run tests for normal X86 ponyc
make config=debug test llvm_archs='X86;RISCV' build_flags='-j8'

# cross compile libponyrt-pic for RISCV
make config=debug cross-libponyrt CC=riscv64-linux-gnu-gcc-10 CXX=riscv64-linux-gnu-g++-10 arch=rv64gc cross_cflags="-march=rv64gc -mtune=rocket" cross_lflags="-march=riscv64"

# cross compile stdlib and run it in qemu
make config=debug test-cross-ci PONYPATH=../rv64gc/debug cross_triple=riscv64-unknown-linux-gnu cross_arch=rv64gc cross_cpu=generic-rv64 cross_linker=riscv64-linux-gnu-gcc-10 cross_ponyc_args='--abi=lp64d --features=+m,+a,+f,+d,+c --link-ldcmd=bfd' cross_runner="qemu-riscv64 -L /usr/riscv64-linux-gnu/lib/" verbose=1

Does the exception problem only happen in debug or release mode or does it happen with both?

@SeanTAllen that problem has magically gone away on it's own (you saw the old description before i edited it).

That's... concerning. So if run enough we might see the problem again?

i believe it got resolved due to the 2.5 years of changes to pony

@dipinhora can you add CI for this as part of the PR?

Hi @dipinhora,
The changelog - added label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do.
Release notes are added by creating a uniquely named file in the .release-notes directory. We suggest you call the file 3435.md to match the number of this pull request.
The basic format of the release notes (using markdown) should be:
## Title

End user description of changes, why it's important,
problems it solves etc.

If a breaking change, make sure to include 1 or more
examples what code would look like prior to this change
and how to update it to work after this change.

Thanks.

@dipinhora can you add CI for this as part of the PR?

Added riscv64 CI stuff.. will probably fail cause the container image doesn't exist...

Oh yeah. Huh. How can we get a container built.

@SeanTAllen i tried to build and push the image to the ponylang docker repo but i don't have permissions (which makes perfect sense):
$ docker push "ponylang/ponyc-ci-cross-riscv64:20220715"
The push refers to repository [docker.io/ponylang/ponyc-ci-cross-riscv64]
9fc339d915bc: Preparing
dff34515e55b: Preparing
aecbe6390165: Preparing
3fdc0d4966e3: Preparing
5e093e475d77: Preparing
259c12df0273: Waiting
9c75c22ceed8: Waiting
denied: requested access to the resource is denied

i'd appreciate it if you can build/push the new image. Let me know if i need to update the image tag in this PR if it's different from ponylang/ponyc-ci-cross-riscv64:20220715.

@dipinhora i pushed Successfully tagged ponylang/ponyc-ci-cross-riscv64:20220716

@dipinhora one final thing before this gets merged, can you update README.md to add RiscV as a supported CPU type?


process_info call in entop_collector causes out of memory

The entop_collector:get_data function calls erlang:process_info on each process. This is problematic, because the resulting process info proplist contains the 'messages' entry, with all the messages in the process message queue.
When using entop against a node which has a message leak (a message queue building up) one of the following to things can happen:

Starting entop causes the beam to crash due to an out of memory exception
The net_kernel heartbeat times out while transferring the term, causing the communication between entop and the node to break
Note that this only happens when a process queue contains several gigabytes of data (our servers have 48 GB of memory).

The entop_collector should use erlang:process_info/2 instead of process_info/1, not including the 'messages' option.

Fixed in 9660544


Scrapper, Anna Vorontsova - 22FPL2

Good progress. Please, continue implementing lab and switch to Crawler.

No significant progress since last review

good progress!


Fix regression in 1d4975: Pulsar.backend_flags need to be properly sorted

In commit 1d4975, I dropped a critical indexing step at line 266 in pulsar.py, which uses the toas sorting index to sort the backend_flags array. This resulted in scrambled selection masks when loading 12.5yr B1937 with PINT (but not with tempo2, which must do some sorting of its own). Aaron found this problem while testing PINT-BayesEphem. This one-line patch fixes the issue.

I'm also changing the content of PintPulsar.toas to match Tempo2Pulsar.toas (baricentered TDB toas). This may affect  physics at a very small level.


Feature Req: Offence Explanation

It would be nice if rubocop, provided a link to a page that describes why an offence is being reported.
For example, my code just reported
Use module_function instead of extend self.
I'd love to have a convenient link to understand the motivation behind this cop.
Thanks,
John

We've been slowly adding links to cops and we'll continue doing so. If we ever get to doing https://github.com/bbatsov/rubocop/issues/2051, we'll be able to link to even more information.


diamond: extract common setup

In the diamond exercise, every test method duplicates the construction of the instance of DiamondPrinter.
Please extract the construction into a setUp() method and use the instance data member instead.

Fixed in PR #399 :)


fix(otelzap): WithOptions(zap.Fields(...)) will keep fields with logger

This MR fixes https://github.com/uptrace/opentelemetry-go-extra/issues/32
I added a test case that creates 2 loggers:

the 1st one adds baz field and wraps the original logger
the 2nd one adds faz field and wraps the 1st one

Thanks, this is pretty cool :+1:


define dockmaster.yml configuration file

Dockmaster requires a configuration file to interact with compostions. This file is the heart of dockmaster, and defaults to "dockmaster.yml" --  see #1 for how it is found. The configuration file provides orchestration instructions for a composition, such as;

where it runs
the ability to render its docker-compose.yml file from templates
arbitrary execution of scripts through "hooks"

such as assigning a network segment as part of a "pre" up  hook.

proposal 1
where to run
Lets assign where a compostions runs through targets. Targets must specify a name and a type. Lets support the "docker-machine" type out-of-box with v1.
---
targets:
  - name: node-a
    type: docker-machine

    # optional, defaults to name
    machine: node-a

if multiple targets are defined, the compostion will be brought up/down from each. TODO allow flags to the dm command to specify targets by name

composition files
These directives should be optional with dockmaster defaulting to using a docker-compose.yml file relative to the location of dockmaster.yml. Lets allow assigning an alternative location, and to support rendering of templates (using https://github.com/jasmith590/COP).
---
file:
  path: docker-compose.j2
  config:
    - /etc/dockmaster/defaults.yml
    - env.vars

#  ^^^ renders docker-compose.j2 using /etc/dockmaster/defaults.yml and ./env.vars

command hooks
Lets allow wrapping  all commands with pre and post hooks. E.g. if dm up -d is executed, the command is up.
Hooks should be thought of as "middleware", and allow manipulating of the arguments passed to the command (this may be super weird to do w/ shell... :cry: ), and halting execution on non-zero exit codes.  For v1 lets allow arbitrary v1 shell execution and script execution, For v2 lets explore built-in hooks via plugins (such as auto-detecting network segments for v2 compostions).
----
commands:
  up:
    pre_hooks:
      - file: relative_path/to/hook.sh
      - file: /absolute/path/to/hook.sh
      - shell: rm -rf .working

hooks are always executed relative to the configuration file

arbitrary commands
Lets support non-native docker-compose commands, and use hooks for implementation.  E.g. dm wiggle --jiggle trickle (fires hooks for the wiggle command). To support this, we must not invoke docker-compose wiggle.
---
commands:
  wiggle:
    compose: false
    # ^^^ does not call docker-compose between pre- and post- hooks.
    pre_hooks:
      - file: wiggle.sh

example
Putting this together, we get:
---
file:
  path: docker-compose.j2
  config:
    - /etc/dockmaster/defaults.yml
    - env.vars

targets:
  - name: node-a
    type: docker-machine

    # optional, defaults to name
    machine: node-a

commands:
  up:
    pre_hooks:
      - file: relative_path/to/hook.sh
      - file: /absolute/path/to/hook.sh
      - shell: rm -rf .working
  wiggle:
    compose: false
    # ^^^ does not call docker-compose between pre- and post- hooks.
    pre_hooks:
      - file: wiggle.sh

One small detail is that since we are allowing arbitrary commands, I think the commands should be an array instead of a map. Maybe thats pedantic, but I decided to at least try to parse this YML in haskell, and only did so after making that change. (Of course we can marry these repos at some point if/when desired)

@SamTay interesting. What is limiting it? This should be parsable. The nice thing about the map is you can't have a duplicate key (e.g. two definitions for up) Here's a few more ideas
# your example, although has post_hooks
commands:
  - up:
      pre_hooks:
        - file: relative_path/to/hook.sh
        - file: /absolute/path/to/hook.sh
      post_hooks:
        - shell: rm -rf .working

# adds 'name' key to the array of command maps
commands:
  - name: up
    pre:
      - file: pre-up.sh
    post:
      - shell: rm -rf .working

# not sure how we can "intercept" compose on this one (e.g. to implement the wiggle command).
hooks:
  pre:
    - command: up
      file: pre-up.sh

    - command: up
      file: pre-up2.sh

We can merge in your dockmaster repo if you think it's ready. I was going to do a shell implementation first -- but if you want to go straight to haskell that's cool. Goal is to have a release soon (just after Thanksgiving weekend?).

yeah you're right -- maybe I just got confused last night, sounds like map would be better to guarantee no dupes on commands. Nah I'd get the mvp in bash.. will probably end up grabbing snippets of it anyway

are these commands global to every time you run dm or dmc or are they going to be tethered to a specific composition?
how will we specify the difference?
pre-post hooks seems important to be tethered to the specific composition(at least the way i've been writing them thus far) they're instantiating (though there is an argument for general global commands like dryrun or try or something as well)

@chrispotter

are these commands global to every time you run dm or dmc or are they going to be tethered to a specific composition?

the dockmaster.yml describes a particular composition -- and my assumption has been that a dockmaster.yml is required for dm to run.  The method of locating this file is defined in #1

how will we specify the difference?

I think we need to clear this up with verbiage -- as I'm assuming you're talking about the "compostion configuration file" (what this issue is all about),  and then the "global" or "user configuration file" we were thinking about defining the compostions paths in.
For one, I'm thinking about using .ini for the "global|user configuration file", and yaml will be used for the "compostion configuration file".
What do you think we should call these two files?

pre-post hooks seems important to be tethered to the specific composition

Yes they are -- as they're tied to the "compostion configuration file", aka dockmaster.yml as defined in this issue.

OK -- @SamTay @chrispotter @Skrath @twslade @superterran @wrsenn are we in consensus on proposal 1 in first post?

👍 meets all my needs, at least.

@briceburg i think this clears up my concerns with

and my assumption has been that a dockmaster.yml is required for dm to run

and I like the way this works out

Yup, think its the best & simplest one so far. Let's roll with it. I imagine we will tweak it a bit as we go.

@briceburg with multiple targets specified like below:
targets:
  - name: node-a
    type: docker-machine
  - name: node-b
    type: docker-machine

commands:
  - up:
      pre_hooks:
        - file: setup_machine.sh
        - file: only_run_once.sh

will we run hooks for each docker machine scope? That is, do we always do
(
  eval "$(docker-machine env node-a)"
  ./setup_machine.sh
  ./only_run_once.sh
  docker-compose up
)
(
  eval "$(docker-machine env node-b)"
  ./setup_machine.sh
  ./only_run_once.sh
  docker-compose up
)

and remove the possibility for a script that should only be run once, possibly outside of docker machine env subshell?

@SamTay That is a great question, and I believe the proper way even though my gut feels like hooks fire once.
Consider a pre-up hook that determines a network segment to assign to a composition -- it would need access to the machine to do this. Your scenario covers this, while this will not:
(
  ./setup_machine.sh
  ./only_run_once.sh

  for target in "${targets[@]"; do
    eval "$(docker-machine env $target)"
  done
)

We can perhaps come up with global single-fire hooks, or specify single-fire in the yaml (e.g. via a run_once boolean)
commands:
  - up:
      pre_hooks:
        - file: setup_machine.sh
        - file: only_run_once.sh
          run_once: True

although this may complicate things. For now lets implement firing of hooks per target.

Today's proposed changes:
---
compose:
  files:
    - path: docker-compose.yml
      type: file
    - path: docker-compose.j2
      type: template
      config:
        - fuck.vars
  flags:
    - "--project-name aaa"

env:
  files:
    - "somefile.env"
    - "somefile.json"
    - "somefile.xml"
    - "somefile.yml"
  vars:
    ROB_RULES: true

targets:
  - name: node-a
    type: docker-machine

    # optional, defaults to name
    machine: node-a

commands:
  up:
    pre_hooks:
      - file: relative_path/to/hook.sh
      - file: /absolute/path/to/hook.sh
      - shell: rm -rf .working
  wiggle:
    run_compose: false
    # ^^^ does not call docker-compose between pre- and post- hooks.
    pre_hooks:
      - file: wiggle.sh
  push:
    run_compose: false
    pre_hooks:
      - shell: docker scp $1 $ROB_RULES nginx:/var/nginx/packages/
    post_hooks:
      - file: myuploadscript.sh

# dm push myfile.zip

Latest proposed dockmaster.yml has been implemented and merged (#7) to master.


Fix broken lodash template in latest major version.

After lodash 3.0.0, the template() functionality is broken.

Thanks for the PR and sorry for the delay.
It looks like lodash 3.x has other breaking changes, hence the failed tests. I've just released version 0.6.1 of Synth, it locks to lodash 2.x, which should fix any issues.


CANNOT EXPORT IN SCG FORMAT

Hi, after I install the addons, I can import scg file but how to export it in scg format? There is no DAVA scene (.scg/.sc2) on export tab.

Sorry there is no export function yet, potentially in the future there will be.

I'm looking forward to it, I understand you are also tired of WotB monopoly mods?

i'm also wishing it can complete quickly ! But I am most concerned about when the_. sg2_ file can be read


Migrate off of using filenames to pass environment data [NEED TO INCLUDE HYPHEN FOR os_name]

As of today, as part of the SQL automation, we use a fixed format for filenames we save in our pipeline.
That fixed format allows us to build an automation that parses for keywords and query the database.
As a consequence of this, because we split the names with a hyphen "-" (i.e.: test-results-ubuntu-20.05-x64) we use the hyphen as a delimiter.
Notice how the name "ubuntu-20.05" has a hyphen in it even though its 1 atomic item we want parsed. This makes the parsing logic extra complicated, and requires all future OS_names in the YAML to include a hyphen.
In the short term, this is OK, but when we refactor, this is 1 area to be improved upon.

In the short term, should we simply use . as the delimiter?

In the short term, should we simply use . as the delimiter?

OS names like "ubuntu-20.05" also has a . in it sometimes. In the short term, I think the logic (although ugly) isn't that complicated for an immediate refactor. I wanted to have this issue to track this, once we stand CTS and everything else up.

You're right. Maybe _ then?


WIP: Add support for archival

@alexandrevilain do you have an ETA for archival support? It is mandatory for our production deployment.
Alternatively, we can implement #418 but I guess that will take longer.

Hi @yujunz ! Happy to read that you’re deploying this project in production!
Even if we are using this operator in production at work, it’s not my daily job to maintain it.
So I’m sorry but I can’t give you any ETA. Maybe during the following weeks, but not 100% confident about that.

Understood. We just need to make decisions on either turning to helm chart for flexibility and features completeness or sticking to operator to reduce maintenance overhead in the long term.
A few weeks fit our schedule well. Let me know if anything I can help to accelerate the delivery.

@yujunz Are you using EKS ? I'll need some testers to check if IAM authentication will work for archival :)

@yujunz Are you using EKS ? I'll need some testers to check if IAM authentication will work for archival :)

Yeah, glad to help. Let me know when it is ready for testing.

@alexandrevilain  I can help you with IAM at AWS EKS

Hi @yujunz and @DodgeCamaro !
I’ve tried this feature with OVHCloud’s s3 works like a charm!
If you have time could you please try it with EKS + IAM role?
If it works could you please provide me a role example so I can provide it in the documentation? Thanks!

example of trust_relationships
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::<account_id>:oidc-provider/oidc.eks.<aws_region>.amazonaws.com/id/<cluster_id>"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "oidc.eks.<aws_region>.amazonaws.com/id/<cluster_id>:sub": "system:serviceaccount:temporal:temporal-frontend"
                }
            }
        }
    ]
}

Update example at this PR #445

It won't work, because trust_relationships have conditions only from namespace - temporal, and SA temporal-frontend

I don't understand. What's missing on the operator side ?

All temporal services have their own ServiceAccount.
It can be fixed by adding SA to trust_relationships
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<account_id>:oidc-provider/oidc.eks.<aws_region>.amazonaws.com/id/<cluster_id>"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.<aws_region>.amazonaws.com/id/<cluster_id>:sub": ["system:serviceaccount:<temporal_ns>:<temporal_sa>"]
}
}
}
]
}

Alright, so with both iam role on ServiceAccount + trust relationship it works well ? No need to update the operator code ?

Thanks, last test step for me is GCS


setCircleBackgroundColor(int color not working in RecyclerView

I am setting the color in the adapter's onBindViewHolder(...) like :
holder.colorThemeImageView.setCircleBackgroundColor(Color.parseColor("#FF8C00"));
but the CircleImageView still has no color set

Solved by applying this fix:
[(https://github.com/hdodenhof/CircleImageView/issues/64#issuecomment-114917346)]


FarCry Primal low perfomance Win 10 x64 Nvidia DX11

Hello, is there a way to get similar performance from Vulkan to Windows 10 as DX 11 native?
Software information
FarCry Primal, max settings, 3440x1440 144 hz
System information

RTX 4070 Super
551.23
i7-9700K
latest dev https://github.com/doitsujin/dxvk/commit/ab3593185f45971977b956323c0a60f66f9f35e7

Apitrace file(s)
https://mega.nz/file/9GgwxByJ#SHompHfJfHS-fQOGThVREP5J9iK2731iXDwynB-xoMQ
Log files

Is it the same FPS compared to 2.3 stable?

it s native dx11 vs vulkan dxvk

How does master dxvk compare to dxvk 2.3

2.3 have more fps.
Here log and screen
FCPrimal_d3d11.log
FCPrimal_dxgi.log

I think this game doesn't like not having a working Nvapi library when running on Nvidia, which will be the case on Windows. E.g. it might be aggressively trying to load the Nvapi library when it sees a Nvapi GPU.
Normally Nvidia GPUs are hidden and shown as AMD by default in d3d10 and d3d11 to work around these issues, but some of the Far Cry games have internal logic thats differs depending on GPU vendor. These differences can cause visual issues in some areas in the game if there is a mismatch between what the game expects from a vendor and what the driver does.
So the tldr is this is one of the games where we don't hide the fact we are running on Nvidia to work around visual issues, but the game will then have a performance drop if Nvapi isn't working. There isn't a dxvk compatible Nvapi implementation on Windows.
I assume when using master dxvk if you make a file called dxvk.conf next to the exe and insert dxgi.hideNvidiaGpu = True the performance should improve.
The visual issues caused by the above in this game are not as bad as some of the other Far Cry games afaik because it mostly presents itself on buildings afaik which this game doesn't have alot of.
If later in the game when you start making buildings in your village if you notice dark or bright squares on buildings or objects in your village you could try to spoof the vendor to being Intel with dxgi.customVendorId = 8086. I don't know if this helps though.

Thanks, I try this.


replaceEach function not working and mis-documented

At https://docs.openrefine.org/manual/grelfunctions#replaceeach-s-a-find-a-replace in the GREL manual, the documentation describes a function replaceEach with syntax
replaceEach(s, a find, a replace)
But the example in the subsequent description uses a function called replaceEachFromArrays, and if you try this example you do indeed get an Unknown function error. However, using replaceEach with the syntax described also always produces an error
Error: replaceEach expects 3 arguments: string, array of strings to replace, array of replacement strings
even when using the correct argument types. Try, for instance,
"The cow jumps over the moon and moos".replaceEach(["th", "moo"], ["ex", "mee"])
I am using OpenRefine Version 3.6.2 [579a6f7] in Safari Version 16.1 on MacOS 12.6.1 .

@jquartel you are right!  it's not documented properly.
The function is just called replaceEach
But it also doesn't seem to work as internally documented:
https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google/refine/expr/functions/strings/ReplaceEach.java#L37-L53
and with the test cases @elroykanye designed:
https://github.com/OpenRefine/OpenRefine/blob/master/main/tests/server/src/com/google/refine/expr/functions/strings/ReplaceEachTest.java#L15-L22
I get this:
"abcdefghijklmnopqrstuvwxyz".replaceEach(["a","e","i","o","u"], "A")
--> Error: replaceEach: the number of replacements must be equal to or less than the number of search strings.


openj9 image pre warm

Environment:

Jib version: 3.2.0
Build tool:  maven
OS: Window11

Description of the issue:
I am using openj9 jdk. How can I execute a command similar to the following to pre warm the container?
RUN /bin/bash -c 'java -Xshareclasses -Xscmx20M -jar batch-processor-0.0.1-SNAPSHOT.jar --run_type=short &' ; sleep 15 ; xargs kill -1

You can use the container.entrypoint property to an arbitrary script that both starts and pre-warms the container. This StackOverflow answer describes the approach in more detail.

Thank you very much for your help, but this script will not be executed during the packaging process.


use ReadPreference in Cursor

Update documentation, avoid using deprecated parts

For now there are 2 .cursor variants, one deprecated without ReadPreference, one with. In the end, the deprecated one will be removed, and the new one updated with a default value for the ReadPreference, so calling cursor() will still be legal (even if for now during this transition period it raise a deprecation warning).


Cleanup clinic map

Adjusted waypoints and lanes such that all robots can go through all doors.

Thanks for the fix! Everything looks great :+1:


Scaling with k8s

In order to address PiB scale data ingestion, we should be using best of breed Kubernetes tooling as an optional deployment for Delta.
A general guide to autoscaling a Golang microservice like Delta with Kubernetes:

Containerize Delta as a microservice
The first step is to containerize Delta using Docker. This involves creating a Dockerfile that specifies how to build the container image, which includes the Golang code and any dependencies it requires. Once you have created the Dockerfile, you can build the container image and push it to a container registry such as Docker Hub. Delta currently supplies the following Dockerfile:

FROM golang:1.18 AS builder
RUN apt-get update && \
    apt-get install -y wget jq hwloc ocl-icd-opencl-dev git libhwloc-dev pkg-config make && \
    apt-get install -y cargo
WORKDIR /app/
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
RUN cargo --help
RUN git clone https://github.com/application-research/delta . && \
    RUSTFLAGS="-C target-cpu=native -g" FFI_BUILD_FROM_SOURCE=1 FFI_USE_BLST_PORTABLE=1 make

FROM golang:1.18
RUN apt-get update && \
    apt-get install -y hwloc libhwloc-dev ocl-icd-opencl-dev

Create a Kubernetes deployment
Next, create a Kubernetes deployment that specifies how to run the containerized Delta microservice. The deployment should include the container image name and any configuration settings such as environment variables and command-line arguments. The deployment also specifies the number of replicas of the microservice that should be running.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: delta-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-service
  template:
    metadata:
      labels:
        app: my-service
    spec:
      containers:
      - name: delta-service
        image: my-registry/delta-service:latest
        env:
        - name: DATABASE_URL
          value: "postgres://user:password@database:5432/deltadb"
        ports:
        - containerPort: 8080

This YAML file specifies a deployment with three replicas of the containerized Delta microservice. It also specifies an environment variable DATABASE_URL and the container port that the microservice listens on.

Add a Kubernetes horizontal pod autoscaler
Once you have a deployment running, you can add a horizontal pod autoscaler (HPA) to automatically scale the number of replicas based on CPU or memory usage. The HPA can be configured to automatically scale up or down the number of replicas based on the average CPU or memory utilization over a specified period of time. To add an HPA, you need to create a YAML file that specifies the scaling behavior and the deployment it applies to.

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: delta-service-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: delta-service
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      targetAverageUtilization: 50

Test the autoscaling behavior
Once you have set up the HPA, you can test the autoscaling behavior by generating load on the microservice and observing the number of replicas that are created or destroyed. You can use tools such as Apache Bench or JMeter to generate load on the microservice and monitor the CPU and memory usage using Kubernetes dashboard or other monitoring tools.

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"sync"
)

func main() {
	var wg sync.WaitGroup
	for i := 0; i < 100; i++ {
		wg.Add(1)
		go func() {
			defer wg.Done()
			res, err := http.Get("http://delta-service")
			if err != nil {
				fmt.Println(err)
				return
			}
			defer res.Body.Close()
			_, err = ioutil.ReadAll(res.Body)
			if err != nil {
				fmt.Println(err)
				return
			}
		}()
	}
	wg.Wait()
}

https://github.com/application-research/delta-k8s


[Bug] file update load feature is not enabled in docsum

Priority
Undecided
OS type
Ubuntu
Hardware type
Xeon-SPR
Installation method

[ ] Pull docker images from hub.docker.com
[X] Build docker images from source

Deploy method

[X] Docker compose
[ ] Docker
[ ] Kubernetes
[X] Helm

Running nodes
Single Node
What's the version?
commit id: a3f9811f7ef3d561357674218c64b4cb9d42803a
Description
The file upload feature can be found in the docsum ui, but it's not enabled in the docsum mega gateway service.

Reproduce steps
upload a file and generate docsum in the docsum ui
Raw log
/usr/local/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name_or_path" in Audio2TextDoc has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[2024-10-23 01:33:05,368] [    INFO] - Base service - CORS is enabled.
[2024-10-23 01:33:05,369] [    INFO] - Base service - Setting up HTTP server
[2024-10-23 01:33:05,370] [    INFO] - Base service - Uvicorn server setup on port 8888
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8888 (Press CTRL+C to quit)
[2024-10-23 01:33:05,381] [    INFO] - Base service - HTTP server setup successful
INFO:     <IP_ADDRESS>:43852 - "POST /v1/docsum/doc_upload HTTP/1.0" 404 Not Found

PR https://github.com/opea-project/GenAIExamples/pull/1027 https://github.com/opea-project/GenAIComps/pull/823 fix this issue. Please retest using latest code.

Same issue seen for faqgen:
[2024-10-31 02:33:59,168] [    INFO] - Base service - Uvicorn server setup on port 8888
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8888 (Press CTRL+C to quit)
[2024-10-31 02:33:59,179] [    INFO] - Base service - HTTP server setup successful
INFO:     <IP_ADDRESS>:51168 - "POST /v1/faqgen HTTP/1.0" 200 OK
INFO:     <IP_ADDRESS>:58774 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found
INFO:     <IP_ADDRESS>:34190 - "POST /v1/faqgen HTTP/1.0" 200 OK
INFO:     <IP_ADDRESS>:38604 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found
INFO:     <IP_ADDRESS>:40748 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found
INFO:     <IP_ADDRESS>:58208 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found

@lvliang-intel Same issue seen for faqgen: [2024-10-31 02:33:59,168] [ INFO] - Base service - Uvicorn server setup on port 8888 INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://<IP_ADDRESS>:8888 (Press CTRL+C to quit) [2024-10-31 02:33:59,179] [ INFO] - Base service - HTTP server setup successful INFO: <IP_ADDRESS>:51168 - "POST /v1/faqgen HTTP/1.0" 200 OK INFO: <IP_ADDRESS>:58774 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found INFO: <IP_ADDRESS>:34190 - "POST /v1/faqgen HTTP/1.0" 200 OK INFO: <IP_ADDRESS>:38604 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found INFO: <IP_ADDRESS>:40748 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found INFO: <IP_ADDRESS>:58208 - "POST /v1/faqgen/doc_upload HTTP/1.0" 404 Not Found

Created a separate issue #1066 to track faqgen thing

I can't verify this because of another blocking issue #1065

@lianhao,
please try again as the UI issue has already been fixed.

@lianhao, @lvliang-intel, @ashahba, @okhleif-IL,
The default UI only supports files up to 2KB, which is insufficient as even a half-page plain text file is around 3KB. Consequently, it is not practical for use. On the other hand, Gradio-UI supports plain text, PDF, DOC, video, and audio documents. Can we set Gradio-UI as the default interface?

@lianhao, @lvliang-intel, @ashahba, @okhleif-IL, The default UI only supports files up to 2KB, which is insufficient as even a half-page plain text file is around 3KB. Consequently, it is not practical for use. On the other hand, Gradio-UI supports plain text, PDF, DOC, video, and audio documents. Can we set Gradio-UI as the default interface?

Hi @MSCetin37, Could you please create a new Github issue for your feature request? Thanks.

Hi @lianhao, it would be great to create a new issue to track Mustafa's feature request. For this issue, could we close it?

let's close this. I see gradio-UI is already the default UI for docsum.


Add SNMP page counter and printer status support to socket and lpd backends

Version: 1.4-feature
CUPS.org User: mike
Update the socket and lpd backends to query the page counter and status bits.  Will also need to add SNMP options and advertising of those options from the SNMP backend.
The status is stored in:
HOST-RESOURCES-MIB::hrPrinterStatus.1 (idle(3), printing(4), warmup(5))
(<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>)
HOST-RESOURCES-MIB::hrPrinterDetectedErrorState.1 (bits for lowPaper, noPaper, lowToner, noToner, doorOpen, jammed, offline)
(<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>)

https://www.ietf.org/rfc/rfc1759.txt
In this Link: If you see the description: Its confusing. Please help which is right?
if you scroll to page 15 for the above shared link, you will find the below description: Which is confusing.
hrPrinterStatus OBJECT-TYPE
SYNTAX INTEGER {
other(1),
unknown(2),
idle(3),
printing(4),
warmup(5)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current status of this printer device.  When
in the idle(1), printing(2), or warmup(3) state,
the corresponding hrDeviceStatus should be
running(2) or warning(3).  When in the unknown
state, the corresponding hrDeviceStatus should be
unknown(1)."
::= { hrPrinterEntry 1 }
Syntax Integer result value is different from the description.
What is "other(1)" meaning, since i'm getting response as 1. Is it is Idle or Other?

@AnilPujar2014 Please use RFC 3805 as RFC 1759 is obsolete. The updated RFC corrects the description of this property.


command line option to tell yt-dlp which videos to download from multiple playlists

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm requesting a feature unrelated to a specific site
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
For the use of playlist functionalities
(e.g. 'treat as playlist' for YouTube channel tabs in the GUI 'ytdlp-interface')
it could be very helpful to have a command line option
to tell yt-dlp which videos to download from multiple playlists
to make this applicable on Tabs and URLs containing multiple playlists,
e.g. https://www.youtube.com/@pbsspacetime that
contains a playlist for the Videos tab, and a playlist for the Live tab.
And for https://www.youtube.com/@pbsspacetime/featured,
yt-dlp gives data that contains the three playlists that are featured.
Background:
On my request concerning playlist functionalities in ytdlp-interface:

'The 'treat as playlist' feature in ytdl-interface
has proven extremely useful
for so many URLs ending on '/videos'.
This could be even more useful
if also applicable to other channel-URLs like
such ending on '/featured' and
such only consisting of the 'Uploader URL' (without further suffix) or
ending on '/channel/' + Channel-ID,
maybe others more.'

ErrorFlynn answered:

'This is not possible because whole channels have multiple playlists.

For example, for https://www.youtube.com/@pbsspacetime yt-dlp
gives data that contains a playlist for the Videos tab, and a playlist for the Live tab.
And for https://www.youtube.com/@pbsspacetime/featured, yt-dlp gives data
that contains the three playlists that are featured.

There's no command line option
to tell yt-dlp which videos to download from multiple playlists.'

So I decided to forward the issue directly to yt-dlp, hoping also other users
and GUIs could benefit from such additional option ...
Thank you very much
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

Realistically, the only way specify --playlist-items for a particular nested playlist would be to include that nested playlist's URL in the argument syntax, and at that point it's no different than passing the inner playlist URLs to yt-dlp directly as input URLs.
See #5648, which tracks adding support for --playlist-items syntax that allows the user specify ranges at different levels of playlist nesting. This is a feasible version of your feature request.


Colorama Requirement Pinning

I'm trying to reconcile the requirements of this (wonderful) library with others in my requirement stack. Most line up; however, colorama seems to be a particular issue with a lot of libraries with the notable one for me being aws-cli. Would you be open to changing the pinned requirement with something a bit more fluid such as colorama >= 4.0.0? Not sure how you're using the specific version there, but I know being more flexible here will certainly help me/others 😄 .

I'll check 4.0.0 works, but I don't see why it wouldn't.

Fixed in v1.0.1


Macro annotation does not support Scaladoc

It seems that macro annotation are not applied when generating Scaladoc

This and REPL are known issues of the current implementation. At the moment, paradise works by hijacking the typechecker, and I suspect that we don't hijack enough for non-trivial environments.


Clarification needed on error handling when model is misspecified

In the context of the discussion in issue #300, I encountered an unclear error message while working with an SSM. Below is a simplified version of the code that produces the error:
@model function example_error(y)
    x0 ~ Normal(μ=0, γ=1)
    for i in eachindex(y)
        x[i] ~ Normal(μ=x0, γ=1)
        y[i] ~ Normal(μ=x, γ=1)
        x0 = x[i]
    end
end

infer(
    model = example_error(),
    data = (y = randn(100), ),
    showprogress = true
)

This code results in the following error message:
ERROR: Don't know how to alias interface μ in 3 for NormalMeanPrecision

Thanks to @bvdmitri, I realized that the model was incorrectly specified. In the problematic line:
y[i] ~ Normal(μ=x, γ=1)

I mistakenly used x instead of x[i]. The correct model, which addresses this error, is as follows:
@model function example_error(y)
    x0 ~ Normal(μ=0, γ=1)
    for i in eachindex(y)
        x[i] ~ Normal(μ=x0, γ=1)
        y[i] ~ Normal(μ=x[i], γ=1)
        x0 = x[i]
    end
end

It would be beneficial if the error message could be more descriptive to pinpoint mistakes such as referencing a whole array (x) instead of an array element (x[i]). A suggested error message might be:
ERROR: Incorrect variable reference. Expected an array element (e.g., 'x[i]'), but found an array ('x'). Please check your variable indices.

Thanks for posting @albertpod !
Using x as an entire array is technically okay, which is what we do in mixture nodes. I think a more practical error message for this scenario could be something like:
Error: `NormalMeanPrecision` expects 2 input arguments, but 3 have been provided `(μ = x[1], μ = x[2], γ=1)`.

or something similar. What do you think?

Yes, that's a better error message indeed.


Server-Side Blazor loses connection randomly without visible errors

I am currently trying out Blazor Server-Side with 3.0.100-preview5 and I love the newly introduced reconnection feature, if it loses the connection. It always recovers the state perfectly, which is great. But some things could be improved.
The app will be in an unresponding state (where a button click has no effect) for too long, without any visual feedback for the user (about 20-30 seconds). Then the greyed out overlay is displayed and the app will work again 2-3 seconds later. It would be nice, if the connection lose was showed/ detected earlier.
The app loses connection seemingly randomly, without any errors showing up at the console / logging output of the app or even the chrome dev tools. Which makes it hard to investigate the issues for why the connection loss happend.

Yes, this is happening to me as well.  It is quite frequent and makes my app appear very unreliable to the user.  Why are connections dropping so frequently?  And why is it taking so long to detect and recover?

Thanks for contacting us, @detachmode.
@anurse what information we can provide to customers to help understand what's going on with their SignalR connection?

Just to add some important point here: if your app is running in development mode, and you modify your project in a way which requires recompilation, your connection will drop as the server will restart. At that point you'll need to refresh the browser. It doesn't sound this is exactly what you're facing, so just a note.

It is possible the connection losses are happening due to an issue that caused a deadlock on the server. See https://github.com/aspnet/AspNetCore/issues/9683. This has been fixed in our nightly builds and will be available in preview 6.

I have the same issue, I have made a "minimal" project wich reproduces the problem :
https://dev.azure.com/glacasa/_git/BlazorRepro?path=%2FExap.Web%2FViews&version=GBmaster
Open the page, navigate between tabs, and very fast it stops responding.
Hope this helps :)

@ajaybhargavb can you please verify this repro project with Preview6 bits and see whether it repros or not. If not, there's nothing else for us to do.

I have updated the repo (in branch preview6), and it works fine now. Thanks !

Excellent! Thanks for trying out the previews :)
Closing as the original issue looks resolved.