Make Unknown Functions Reply to Client

Changed the default case in handle_req_fc to respond instead of silently erroring. This should be done to avoid the connection timing out.
Most clients expect a response even when the function is unsupported.

Right, this was probably made when the calling function was supposed to call send_exception_msg() with the returned error. Shame that tests didn't catch this.
Thank you


generate token JWT in envoy

hello.
I'm trying to make it depend on each regex to use filters for each use case, but at compile time it fails me,
is it possible to have filters for each "route" ?

Like https://github.com/envoyproxy/envoy/issues/20867?
And if the title is error?

Yes, I was wrong,
I think you can't make independent filters depending on the use case.
i close the issue!
thankis!!!

resolved


COPY does not handle empty arguments well

cat <<EOF >Dockerfile
FROM centos
COPY Dockerfile "" /tmp/
RUN ls /
RUN ls /tmp
EOF
imagebuilder .

This will create a file /tmpDockerfile. in / docker build ignores the empty string.
Use case: An empty ARG variable that could be used to copy extra files in.

This will create a file /tmpDockerfile. in / docker build ignores the empty string.
Just to add to this, imagebuilder puts anything in the source directory on the host into / (not limited to Dockerfile)
docker/podman build does something similar, but instead puts all the files into /tmp

This will create a file /tmpDockerfile. in / docker build ignores the empty string.
Just to add to this, imagebuilder puts anything in the source directory on the host into / (not limited to Dockerfile)
docker/podman build does something similar, but instead puts all the files into /tmp

@derekhiggins Thanks for clearing things up!


segfault with cairo transform and matrix

Hello, I am trying to use cairo tranform with this code, but I get a segfault, it looks like matrixIinit doesn't initialize the matrix or that transform doesn't understand it
  var mtx: cairo.Matrix
  matrixInit(mtx, 1.0, 0.0, 0.5, 1.0, 0.0, 0.0)
  ctx.transform(mtx)

I tried to understand the declarations in cairo.nim but I dont really get it
the doc tells this:
typedef struct {
    double xx; double yx;
    double xy; double yy;
    double x0; double y0;
} cairo_matrix_t;

and cairo.nim
type
  Matrix00* {.pure.} = object
  Matrix* = ref object of RootRef
    impl*: ptr Matrix00
    ignoreFinalizer*: bool

I wonder if matrixInit should call cairo_matrix_init with Matrix.impl instead
proc matrixInit*(matrix: var Matrix; xx, yx, xy, yy, x0, y0: float) =
  cairo_matrix_init(matrix, xx.cdouble, yx.cdouble, xy.cdouble, yy.cdouble, x0.cdouble, y0.cdouble)

Thanks for reporting. Please excuse the late response, I had some trouble with my PC monitor, the old one suddenly dyed, so I had to order a new one. The new one is a 32-inch 4k, really nice. Have some other work still, including fixing a few remaining issues in the Nim book, but will try to investigate your concern soon.

Hello. Your observation is correct, the gintro Cairo matrix definition is very wrong. It should be a plain stack entity like cairo Rectangle and IntRectangle. Unfortunately, it is nearly impossible to detect automatically, which entities are stack allocated, and which are library created and have a proxy object in gintro. GtkTextIter is another example of such a stack entity, but we have a few more, in the generator script gen.nim is a list. So my initial idea was to just add cairo.Matrix to that list and be done. But surprisingly, in the GIR file the fields of that cairo matrix are not defined. That is strange, IntRectangle for example has fields. So the only solution is to define the Matrix type manual. Not difficult, but then we should test if it works.
So my question: Do you really intend to use Cairo with gintro? I ask, because my impression is, that we have currently very very few gintro users. GTK has generally few users. And for cairo, the alternatives may be Pixie of Mr. treeform. Or Blend2d, for which we currently have no Nim bindings. And there are rumors that they try hard to break gintro for upcomming v2.0.
I am currently not using Nim anymore. I try from time to time, but the fun and motivation is just gone. There have been a few insulting posts in Nim forum like https://forum.nim-lang.org/t/10101#66729 -- from Rumpf himself and his moderator fanboys. Nim  is not a bad language, but when the fun is gone, it is just hard to continue using it. At least when no one pays for the work. I try to fix the remaining typos in the book, but even finding motivation for that is hard. Maybe I will try in next winter, or in a few years again some Nim? But well, there are enough other languages.
So when you really should intend to use cairo with gintro, I can ship a patch tomorrow, but you would have to test it yourself. I will ask in Gnome forum why the GIR matrix has no fields. But whatever the answer is, it is very easy to fix manually.

After the reply from Mr. Bassi, I have just pushed the fix.
Cairo Matrix is now manually defined in cairoimpl.nim, and I patched gen.nim to skip the Matrix type. My feeling is, that the other procs in cairoimpl.nim are not affected by this change. But actually, I have no test code available for testing. I hope that this fix will not break gintro for other people, I don't think so, as the fix is tiny.
Note that there are rumors that gintro will not install with latest Nim devil compiler! But v1.6.12 should work, I used that version myself some months ago.

And of course head install with
nimble uninstall gintro
nimble install gintro@#head
as we do not create releases any more, due to the 0.9.9 version number and for some other reasons as well.


[QUESTION] Separate database for tests

Could you help me with testing question, please? What is right way to run tests under test database connection? How can i change default conncetion from default to test? In laravel there is DB_CONNECTION=sqlite env variable so i can change connection by using another env, unfortunaly i cant find such way in hyperf( Maybe i can do this in test/bootstrap.php, but still no luck

I don't use SQLite very often.
You can take a look at this project biz-skeleton
I write some tasks in gitlab-ci.yml and github actions, I think these will help you for tests.

If someone interest. Found solution: I'm define separate test database config and made little tweak in test/bootstrap.php. There is also migrations integrated:
test/bootstrap.php
<?php

...

$container = require BASE_PATH . '/config/container.php';

$config = $container->get(\Hyperf\Contract\ConfigInterface::class);
$config->set('databases.default', $config->get('databases.test'));
$config->set('redis.default', $config->get('redis.test'));

$container->get(Hyperf\Contract\ApplicationInterface::class);

run(function () use ($container) {
    $container->get('Hyperf\Database\Commands\Migrations\MigrateCommand')->run(
        new Symfony\Component\Console\Input\StringInput(''),
        new Symfony\Component\Console\Output\ConsoleOutput()
    );
});

For anyone who don't want to change code, we define testing only environmental variables in phpunit.xml, (overwriting DB_HOST etc.) and make use of them in config/database.php.


seems like resource x is not available in the physical cluster or vcluster has no access to it

I am a bit confused by this error, though I am sure the answer is simple.
I have made a syncer which allows the syncing of an ArgoCD Application.
The error is: "panic: init syncer application: seems like resource argoproj.io/v1, Kind=Application is not available in the physical cluster or vcluster has no access to it"
I have the ArgoCD Application CRD installed on the host machine, and the plugin config looks like this:
      plugin:
        argocd-sync:
          image: x
          imagePullPolicy: "IfNotPresent"
          rbac:
            role:
              extraRules:
                - apiGroups:
                    - "argoproj.io"
                  resources:
                    - "applications"
                  verbs:
                    - "create"
                    - "delete"
                    - "patch"
                    - "update"
                    - "get"
                    - "list"
                    - "watch"
            clusterRole:
              extraRules:
                - apiGroups:
                    - "apiextensions.k8s.io"
                  resources:
                    - "customresourcedefinitions"
                  verbs:
                    - "get"
                    - "list"
                    - "watch"
      rbac:
        clusterRole:
          create: true

Since I am using a different target namespace, I also have a custom role, for the host to access that namespace:
- apiGroups:
  - argoproj.io
  resources:
  - applications
  verbs:
  - create
  - delete
  - patch
  - update
  - get
  - list
  - watch

Am I missing something or is this error implying something else?

I had to change the groupversion_info.go


How to deal with subqueries, or cross-rule-group dependencies?

For measuring non-event based things, I find it useful to use sum_over_time and count_over_time queries. For example, here's an SLO that ensures every prometheus shard has at least one working replica:
sum_over_time(
    (sum(count by (statefulset)(kube_statefulset_status_replicas_ready{namespace="prometheus-operator", statefulset=~"prometheus-prometheus-operator-prometheus.*"}>0))
    /
    max(prometheus_operator_spec_shards{namespace="prometheus-operator"}))
[{{.window}}:])
/
sum_over_time(vector(1) [{{.window}}:])

Using x_over_time functions almost always necessitates using a subquery. The above example achieves the desired effect, but subqueries are not recommended within recording rules. Therefore, instead of feeding the query directly into SLOth, I first build it up from recording rules:
groups:
- name: prometheus-scrape-coverage-pre-rules
  rules:
  - expr: |
      sum(count by (statefulset)(kube_statefulset_status_replicas_ready{namespace="prometheus-operator", statefulset=~"prometheus-prometheus-operator-prometheus.*"}>0))
    record: prometheus_operator:shards_ready:sum
  - expr: |
      max(prometheus_operator_spec_shards{namespace="prometheus-operator"})
    record: prometheus_operator:shards:max
  - expr: |
      prometheus_operator:shards_ready:sum
      /
      prometheus_operator:shards:max
    record: prometheus_operator:shards_ready:ratio
  - expr: |
      vector(1)
    record: prometheus_operator:vector_1

Then the PrometheusServiceLevel can be defined without subqueries
  errorRatioQuery: |
    1-
    sum_over_time(
      prometheus_operator:shards_ready:ratio
    [{{.window}}])
    /
    sum_over_time(
      prometheus_operator:vector_1
    [{{.window}}])

The problem is that I've now introduced a dependency across rule groups (the one I defined myself, and the ones generated by SLOth). These dependencies are unsafe because rule groups are evaluated concurrently. The real-world effect I'm seeing is that the raw query works fine, but the recordings generated by SLOth show bogus results (error rates in the negative):

What would be the recommended way to deal with this situation? Just put the subquery directly into the SLO and take the performance hit? It would be nice if there were a field to include arbitrary recording rules into the same rule group SLOth generates.

This issue can be assigned to me since I am working on it :)


Nested functions in gcc are not working

Your Windows build number:
Microsoft Windows [Version 10.0.16299.309]

What you're doing and what's happening:
I've wrote C code with lambda function.

#include <stdio.h>

#define LAMBDA(c_) ({ c_ _;})

void funct2(void (*f)()) {
        f();
}

void func() {
        funct2(LAMBDA(void _() {
                printf("Hello world\n");
        }));
        return;
}

int main() {
        func();
        return 0;
}

This code successfully compiles in WSL using gcc, in real Ubuntu 16.04 too.
But when I try to run it, I get this:
user@z510-laptop:~/work$ gcc -z execstack -o lambda lambda.c
user@z510-laptop:~/work$ ./lambda
Segmentation fault (core dumped)

What's wrong / what should be happening instead:
Seems like stack memory is not executable, but on Ubuntu it is executable.
And as far as I know gcc using executable stack for trampoline code for nested functions.
On real Ubuntu or any other linux it runs successfully and echoes "Hello world":

user@ubuntu:~$ gcc -z execstack -o lambda lambda.c
user@ubuntu:~$ ./lambda
Hello World

Strace of the failing command, if applicable:

user@z510-laptop:~/work$ strace -ff ./lambda
execve("./lambda", ["./lambda"], [/* 17 vars */]) = 0
brk(NULL)                               = 0x891000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=28837, ...}) = 0
mmap(NULL, 28837, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6bbe1e6000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1868984, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6bbe1e0000
mmap(NULL, 3971488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6bbda30000
mprotect(0x7f6bbdbf0000, 2097152, PROT_NONE) = 0
mmap(0x7f6bbddf0000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7f6bbddf0000
mmap(0x7f6bbddf6000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6bbddf6000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6bbe1d0000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6bbe1c0000
arch_prctl(ARCH_SET_FS, 0x7f6bbe1d0700) = 0
mprotect(0x7f6bbddf0000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ)     = 0
mprotect(0x7f6bbe025000, 4096, PROT_READ) = 0
munmap(0x7f6bbe1e6000, 28837)           = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7fffe4fc0e80} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)

GDB stacktrace:
(gdb) r
Starting program: /home/user/work/lambda

Program received signal SIGSEGV, Segmentation fault.
0x00007ffffffde030 in ?? ()
(gdb) bt
#0  0x00007ffffffde030 in ?? ()
#1  0x00000000004005ad in funct2 (f=0x7ffffffde030) at lambda.c:6
#2  0x0000000000400612 in func () at lambda.c:10
#3  0x0000000000400637 in main () at lambda.c:17
(gdb)

And stack info from /proc/< pid >/maps:
7fffff7df000-7ffffffdf000 rw-p 00000000 00:00 0 [stack]

#286 #916 #2562 #2553 (message)  etc etc.


Is targeted_structure ever different from imaging_plane.location?

They are the same in 571099190.nwb

According to https://github.com/catalystneuro/visual-coding-to-nwb-v2/blob/64ec2f2f296156b1768e04db043db4575595ce08/src/visual_coding_to_nwb_v2/visual_coding_ophys/scripts/check_target_structure_and_imaging_plane_location.py they are indeed always the same


console or service? may be we need a proper way to check its name

RancherOS Version: (ros os version)
v0.5.0-rc2
Where are you running RancherOS? (docker-machine, AWS, GCE, baremetal, etc.)
barematel
when I type the command sudo ros service enable ubuntu, It pull rancher/os-ubuntuconsole image and the output sudo ros config get rancher.services_include is
$ sudo ros c get rancher.services_include
ubuntu: true

ubuntu is a console not a service. so I think we need a proper way to check console and service name when user enable/disable services  or switch consoles.

Verified with v0.8.0-rc4.
Consoles/Services/Engines are checked independently, but still able to create custom services


Getting weird editor positions in Firefox

I was doing some browser testing with my app and found this weird positioning bug in Firefox:
Confirmed to work fine in Edge, Chromium and Safari in sane versions
it seems to only affect annotations that spawn the editor below the note, as all notes that spawn above the target get drawn correctly

I can't seem to recreate it with the demo's on the project page, going to try do it via JSFiddle

Yikes... so the offset placement also happens for the "small note" and "page 3" annotation in your case? Is there something special about the image container? E.g. is there any page scroll involved? Or things like absolute positioning (or other CSS styles) on the image element directly?

Small note does the offset but page 3 works fine cause it puts the editor on top.
When changing the page, I destroy the annotations, change the background page and then set the size of the element so that the document always fits on the page

think it could be an issue where the canvas bounds don't get updated on page change?
here is the style stack for the img element:

here is an extreme case :

Hm, I think if it were the Canvas bounds not getting updated, it should probably affect all browsers. FWIW, the default editor orientation (= editor below the note) works by grabbing the shape bounding client rect, and then setting the
// wrapperEl is the DIV created by Annotorious, around the image element (=common parent to image + SVG layer)
const containerBounds = wrapperEl.getBoundingClientRect();

// selectedEl is the SVG group element of the annotation (= the one with the .a9s-annotation class)
const { left, top, right, height, bottom } = selectedEl.getBoundingClientRect();

editorEl.style.top = `${top + height - containerBounds.top}px`;
editorEl.style.left = `${left - containerBounds.left}px`;

I wonder if there's a case of FF vs. the rest interpreting coordinate space in a different way, under some circumstances?

It seems to weirdly double an axis on the editor but always works in the case of annotation creation, in my first screenshot, the editor is floated below by the exact amount that the annotation is from the top, but sometimes it changes from doubling the y axis to the x axis
so it seems it could be something in how relative coords is handled in FF

The Div that the img sits in has position: relative; but playing around with that doesn't seem to do much

No, that just causes the editor's top/left props to be relative to the wrapper DIV. Hm, it's really weird because the default orientation seems fairly fool-proof.  getBoundingClientRect returns coordinates relative to the viewport, i.e. the code simply gets the bounds of the annotation (relative to the viewport) and then corrects that by the viewport offset of the parent, making top/left relative to the parent.
Either something has to be wrong with the top or height of the SVG shape bbox, or containerBounds.top. My guess is that the height might be the cause of the error. (I used to have problems with incorrect height values in some browsers previously.) Anyways: if you can post a JSFiddle, that would be ideal. That way I can try to play with things in the browser console & see if I find anything.

Here is a video of the bug in action

Ah - wait. Now maybe I'm compeletely on the wrong path here. But what I did see is that Firefox has a weird bug (or, at least, alternative interpretation of the standard) when it comes to SVG element sizes. My hunch is it may actually be caused by the shape label element, which then stretches the annotation shape height prop.
That would also explain why you can't reproduce it with the demos on the Annotorious website (because they don't use the shape labels plugin). In principle, that should be easy to verify with a JSFiddle. (Checking what the actual bbox size is in FF.) And then it probably needs a change in the Annotorious code, to make sure the bbox used for position is that of the inner rectangle + the inner shape label DOM element, not the outer container which might get messed up by FF.
Anyways: I could be wrong with this though. But my best (and only :-) guess now.

Hit the nail on the head, I took out my label code on the formatter and lo, its working properly
so really accurate guess there 😁

Yay! So at least we have the issue diagnosed. I'll put that on the list - should be easy to fix now that we know how to reproduce it.

For posterity. Here's what Chrome thinks the size & position of the SVG shape label is (=correct):

And here's what Firefox thinks:

The nested SVG has the correct x/y/width/height attributes set. But FF extends the size of the nested SVG to top left of the parent SVG, leading to the false offset. I don't quite know how to deal with that.
Note to self: the nested SVG seems necessary, since it allows people to position elements inside it, using coordinates relative to the annotation, rather than the whole image. But perhaps another way to achieve that would be by using an SVG group (instead of a nested SVG) and applying a transform that updates accordingly.

PS: alternative approach might be to tweak the way editor positioning works, and use bottom of the annotation rather than top + height. (Which is how it works now.) Probably more sane, anyway.

Turns out size computation/interpretation is terminally broken in Firefox. I managed to find a fairly simple solution that works in FF, but not Chrome. So the fix now includes browser sniffing which applies the FF solution if FF is detected, and keeps standard formatting otherwise. Not ideal, but does the trick.
Incidentially, I wanted to roll a new release this weekend, anyway, so this will be live ASAP.


Problem with ping-pong demo - topic does not echo/list after running the node

Issue template
Hey! I have issues running the Ping Pong example from https://micro.ros.org/docs/tutorials/core/first_application_linux/. After running the agent I am unable to see the ping or pong topic listed. As a result, ros2 topic echo /microROS/ping  produces:
WARNING: topic [/microROS/ping] does not appear to be published yet
Could not determine the type for the passed topic

I would very much appreciate if someone can help me resolve this error.
Setup

Hardware description: using a host PC with Ubuntu 22.04 on WSL
Installation type: ROS2 Humble Hawksbill installed using https://docs.ros.org/en/humble/Installation.html and microROS installed as per https://micro.ros.org/docs/tutorials/core/first_application_linux/.
Version or commit hash: humble

Steps to reproduce the issue
Following the Tutorial on https://micro.ros.org/docs/tutorials/core/first_application_linux/:
Installing the micro-ROS build system
# Source the ROS 2 installation
source /opt/ros/$ROS_DISTRO/setup.bash

# Create a workspace and download the micro-ROS tools
mkdir microros_ws
cd microros_ws
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

# Update dependencies using rosdep
sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y

# Install pip
sudo apt-get install python3-pip

# Build micro-ROS tools and source them
colcon build
source install/local_setup.bash

Creating the firmware workspace:
# Create firmware step
ros2 run micro_ros_setup create_firmware_ws.sh host

Building the firmware
# Build step
ros2 run micro_ros_setup build_firmware.sh
source install/local_setup.bash

Creating the micro-ROS Agent packages:
# Download micro-ROS-Agent packages
ros2 run micro_ros_setup create_agent_ws.sh

Building the agent packages:
# Build step
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash

Running the micro-ROS app:
# Run a micro-ROS agent
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888

In a different terminal, running the ping-pong node:
source /opt/ros/$ROS_DISTRO/setup.bash
source install/local_setup.bash

# Use RMW Micro XRCE-DDS implementation
export RMW_IMPLEMENTATION=rmw_microxrcedds

# Run a micro-ROS node
ros2 run micro_ros_demos_rclc ping_pong

This proceeds to create a timer with a period of 2000 ms.
Testing the micro-ROS app (problem)
source /opt/ros/$ROS_DISTRO/setup.bash

# Subscribe to micro-ROS ping topic
ros2 topic echo /microROS/ping

Expected behavior
user@user:~$ ros2 topic echo /microROS/ping
stamp:
  sec: 20
  nanosec: 867000000
frame_id: '1344887256_1085377743'
---
stamp:
  sec: 25
  nanosec: 942000000
frame_id: '730417256_1085377743'
---

Actual behavior
suer@user~/microros_ws$ ros2 topic echo /microROS/ping
WARNING: topic [/microROS/ping] does not appear to be published yet
Could not determine the type for the passed topic

Additional information
When checking the active ros2 topics I have this output:
user@user:~/microros_ws$ ros2 topic list
/parameter_events
/rosout

Your help would be incredibly appreciated please.
Thank you very much.

Is it possible for you to share the micro-ROS Agent log with the flag -v6 set?

Is it possible for you to share the micro-ROS Agent log with the flag -v6 set?

By this do you mean what appears in the terminal after running ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v6 while running ros2 run micro_ros_demos_rclc ping_pong?
Thank you for your quick reply.

By this do you mean what appears in the terminal after running ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v6 while running ros2 run micro_ros_demos_rclc ping_pong?

That's it

 ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v6
[1695212353.797570] info     | UDPv4AgentLinux.cpp | init                     | running...             | port: 8888
[1695212353.797960] info     | Root.cpp           | set_verbose_level        | logger setup           | verbose_level: 6
[1695212438.424341] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x00000000, len: 24, data:
0000: 80 00 00 00 00 01 10 00 58 52 43 45 01 00 01 0F 79 93 AC 16 81 00 FC 01
[1695212438.424553] info     | Root.cpp           | create_client            | create                 | client_key: 0x7993AC16, session_id: 0x81
[1695212438.424640] info     | SessionManager.hpp | establish_session        | session established    | client_key: 0x7993AC16, address: <IP_ADDRESS>:64142
[1695212438.424764] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 19, data:
0000: 81 00 00 00 04 01 0B 00 00 00 58 52 43 45 01 00 01 0F 00
[1695212438.425050] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 44, data:
0000: 81 80 00 00 01 07 24 00 00 0A 00 01 01 03 00 00 16 00 00 00 00 01 00 00 0E 00 00 00 70 69 6E 67
0020: 70 6F 6E 67 5F 6E 6F 64 65 00 00 00
[1695212438.442756] info     | ProxyClient.cpp    | create_participant       | participant created    | client_key: 0x7993AC16, participant_id: 0x000(1)
[1695212438.442924] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 14, data:
0000: 81 80 00 00 05 01 06 00 00 0A 00 01 00 00
[1695212438.442970] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 01 00 00 00 80
[1695212438.443086] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 01 00 00 00 80
[1695212438.445028] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 80, data:
0000: 81 80 01 00 01 07 47 00 00 0B 00 02 02 03 00 00 39 00 00 00 11 00 00 00 72 74 2F 6D 69 63 72 6F
0020: 52 4F 53 2F 70 69 6E 67 00 00 01 25 1D 00 00 00 73 74 64 5F 6D 73 67 73 3A 3A 6D 73 67 3A 3A 64
0040: 64 73 5F 3A 3A 48 65 61 64 65 72 5F 00 00 01 00
[1695212438.445198] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x7993AC16, topic_id: 0x000(2), participant_id: 0x000(1)
[1695212438.445324] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 14, data:
0000: 81 80 01 00 05 01 06 00 00 0B 00 02 00 00
[1695212438.445387] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 02 00 00 00 80
[1695212438.445399] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 02 00 00 00 80
[1695212438.445550] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 24, data:
0000: 81 80 02 00 01 07 10 00 00 0C 00 03 03 03 00 00 02 00 00 00 00 00 00 01
[1695212438.445647] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x7993AC16, publisher_id: 0x000(3), participant_id: 0x000(1)
[1695212438.445775] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 14, data:
0000: 81 80 02 00 05 01 06 00 00 0C 00 03 00 00
[1695212438.445830] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 03 00 00 00 80
[1695212438.445886] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 03 00 00 00 80
[1695212438.445942] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 36, data:
0000: 81 80 03 00 01 07 1C 00 00 0D 00 05 05 03 00 00 0E 00 00 00 00 02 01 52 03 00 01 00 0A 00 00 00
0020: 00 00 00 03
[1695212438.446353] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x7993AC16, datawriter_id: 0x000(5), publisher_id: 0x000(3)
[1695212438.446463] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 14, data:
0000: 81 80 03 00 05 01 06 00 00 0D 00 05 00 00
[1695212438.446502] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 04 00 00 00 80
[1695212438.446522] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 04 00 00 00 80
[1695212438.446644] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x7993AC16, len: 80, data:
0000: 81 80 04 00 01 07 47 00 00 0E 00 12 02 03 00 00 39 00 00 00 11 00 00 00 72 74 2F 6D 69 63 72 6F
0020: 52 4F 53 2F 70 6F 6E 67 00 00 01 00 1D 00 00 00 73 74 64 5F 6D 73 67 73 3A 3A 6D 73 67 3A 3A 64
0040: 64 73 5F 3A 3A 48 65 61 64 65 72 5F 00 00 01 00

Is this fine? If not, I can attach an image.

Yes, this is fine.
Your micro-ROS client (the ping pong application) is creating first entities correctly, at least up to this line: https://github.com/micro-ROS/micro-ROS-demos/blob/70f3cbf27ce12dc9e57e5095b4233553e207d866/rclc/ping_pong/main.c#L89
Could you debug (or at least printf-debug) if the client code is going beyond this line?

Sure, I will do that and give feedback. I copied more of the logs in the attached text file. I thought the previous logs were sufficient, but I see that it logged some more. Apologies for that, I think it is more appropriate in a txt file than flooring the issue. Thanks again
ping_pong_logs.txt

Ok, this complete logs shows that DDS communication is happening, just check those incoming (==>> DDS <<==) and outcoming (<<DDS>>) DDS messages:
[1695212631.084205] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5706AC8C, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 16 00 00 00 80
[1695212631.084283] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5706AC8C, len: 46, data:
0000: 81 01 07 00 09 01 26 00 00 14 00 06 57 E4 0A 65 31 27 FB 04 16 00 00 00 31 31 33 32 37 36 35 30
0020: 38 39 5F 32 30 37 35 33 37 34 39 30 30 00
[1695212633.083380] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5706AC8C, len: 48, data:
0000: 81 80 16 00 07 01 25 00 00 21 00 05 59 E4 0A 65 30 2A F7 04 15 00 00 00 38 35 37 39 32 38 32 31
0020: 30 5F 32 30 37 35 33 37 34 39 30 30 00 00 00 00
[1695212633.083597] debug    | DataWriter.cpp     | write                    | [** <<DDS>> **]        | client_key: 0x00000000, len: 33, data:
0000: 59 E4 0A 65 30 2A F7 04 15 00 00 00 38 35 37 39 32 38 32 31 30 5F 32 30 37 35 33 37 34 39 30 30
0020: 00
[1695212633.083653] debug    | DataReader.cpp     | read_fn                  | [==>> DDS <<==]        | client_key: 0x00000000, len: 33, data:
0000: 59 E4 0A 65 30 2A F7 04 15 00 00 00 38 35 37 39 32 38 32 31 30 5F 32 30 37 35 33 37 34 39 30 30
0020: 00
[1695212633.083763] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5706AC8C, len: 13, data:
0000: 81 00 00 00 0A 01 05 00 17 00 00 00 80
[1695212633.083827] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5706AC8C, len: 45, data:
0000: 81 01 08 00 09 01 25 00 00 14 00 06 59 E4 0A 65 30 2A F7 04 15 00 00 00 38 35 37 39 32 38 32 31
0020: 30 5F 32 30 37 35 33 37 34 39 30 30 00
[1695212635.083357] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5706AC8C, len: 48, data:
0000: 81 80 17 00 07 01 26 00 00 22 00 05 5B E4 0A 65 44 9D F5 04 16 00 00 00 31 31 31 35 38 35 37 35
0020: 33 32 5F 32 30 37 35 33 37 34 39 30 30 00 00 00
[1695212635.083548] debug    | DataWriter.cpp     | write                    | [** <<DDS>> **]        | client_key: 0x00000000, len: 34, data:

That means that your micro-ROS ping pong application is working properly and publising to DDS.
So lets check the ROS 2 CLI command. When you are calling
source /opt/ros/$ROS_DISTRO/setup.bash

# Subscribe to micro-ROS ping topic
ros2 topic echo /microROS/ping

Are you changing the ROS_DOMAIN somewhere? Maybe in your .bashrc?
Are you running in the same machine? Inside a docker? In an external machine?
What is the output of ros2 topic list?

That is the problem! Your micro-ROS nodes are publishing in the Domain 0, just set export ROS_DOMAIN_ID=0 in the terminal before doing the ros2 topic echo /microROS/ping

BTW if you need to change the domain ID of the micro-ROS nodes, just take a look here:
https://github.com/micro-ROS/micro-ROS-demos/blob/70f3cbf27ce12dc9e57e5095b4233553e207d866/rclc/configuration_example/configured_publisher/main.c#L49-L50

Try to make it a clean environment, this is a very typical configuration problem. When 2 ROS 2 instances have different Domain ID, they won't even discover each other.
As far as your micro-ROS code is working properly, this must be the problem.

Could it be anything to do with anything else set in bash during the installation? ROS_LOCAL_HOST, etc... ?

Make sure that you are not overriding ROS 2 configuration (Domain ID, Local host only)...

Try to make it a clean environment, this is a very typical configuration problem. When 2 ROS 2 instances have different Domain ID, they won't even discover each other.
As far as your micro-ROS code is working properly, this must be the problem.

Could it be anything to do with anything else set in bash during the installation? ROS_LOCAL_HOST, etc... ?

Make sure that you are not overriding ROS 2 configuration (Domain ID, Local host only)...

To clarify. Keep Domain ID as 0 and Local host only as 1? It is nice to know the micro-ROS is working. I can get a fresh install/config of ROS going and then see where that leads me. Thanks :)

I'm not sure about Local host only = 1... try to disable it.
You can use a ROS 2 docker to ensure a clean install, for example running: docker run -it --rm ros:iron and launching your topic echo there

Definitely, disable the ROS_LOCALHOST_ONLY env var. There is "bug" in Fast DDS that fails to communicate when one side has the variable enabled and the other disabled: https://github.com/eProsima/Fast-DDS/pull/3733
By default the micro-ROS Agent does not take the ROS 2 env variables, so the situation can be this.
My recommendation: make sure that disabling ROS_LOCALHOST_ONLY makes your tests work and then once the Fast DDS PR is merged, an update will fix the situation.

Definitely, disable the ROS_LOCALHOST_ONLY env var. There is "bug" in Fast DDS that fails to communicate when one side has the variable enabled and the other disabled: eProsima/Fast-DDS#3733
By default the micro-ROS Agent does not take the ROS 2 env variables, so the situation can be this.
My recommendation: make sure that disabling ROS_LOCALHOST_ONLY makes your tests work and then once the Fast DDS PR is merged, an update will fix the situation.

You were correct! A clean environment did the trick. I just avoided any of the additional configuration and setting of optional environment variables during the installation.
Muchisimas gracias Pablo, aprecio mucho tu ayuda :)

Nice to hear that. Let us know if you have any other problem!


API documentation needs prettifying

Currently it wraps in an ugly way, and it also looks different to all the other gcloud API docs. We're using the plain docfx default template at the moment, but it's not clear whether the solution is to build our own template or move the API doc generation to something else.
Chris is looking into this.

Trying to track down the common template, etc. From JJG:

It's an angular app that renders a common format for docs across languages -- basically accepts a JSON doc set with all the documentation parsed, and spits out a pretty page.
Documentation of all sorts is here: https://github.com/GoogleCloudPlatform/gcloud-common/tree/master/site
Note that in the long run the goal is to have c.g.c consume this common doc format (or ask us to change it) so that docs can live there rather than github.io.

I'll try to create the page for PowerShell, and then the more ambitious project of doing that for C#.

Would love it to be prettier, but I'm not the right person to do this work as both my design and HTML/CSS skills are poor...

The front page needs work as per #663, around resizing.

Closing this for now, as realistically it's not going to be a priority any time soon.


How can keybindings be unset?

There are many keybindings in the default configuration that conflict with other keybindings on my system. I'd like to unset them. I attempted alt-shift-z = '' for example, but that does not work. Is this possible?

I see now that [] is sufficient. The other workaround I found was just to use an entirely alternate mode and just stay in that mode.

Actually, this is insufficient. I really would like to be able to unset keys, or at least have them pass through to the system. I use colemak and type in norwegian. So to type "å" I use ⌥a, to type "ø" I use ⌥o, and to type "æ" I use ⌥'. That last one works, but the former two do not.
The work around is simple enough. I created an "empty" mode, such that when I'm typing prose I can switch to that, but this isn't very ergonomic to require that switch.
alt-x = 'mode empty'

[mode.empty.binding]
esc = 'mode main'

So I guess this is a feature request to unset keys entirely.

Just drop the binding from config to unset it

Only scalar values are merged (because you need to have a default value). "Bindings" is an array => it's not merged
There is one practical exception though. [exec.env-vars] is not scalar and if you don't touch it, it's merged into your config. But [exec.env-vars] is a convenience feature to automatically bring homebrew to exec-and-forget PATH. Unfortunately, I didn't come up with a consistent mental model on how to describe it, that's why it's not yet covered in the docs

Okay. This help a lot. Thank you so much.

default-config.toml describes the configuration that is loaded unless you have your own config file. If you have your own config file, default-config.toml is ignored
The real fallback defaults are described in the code https://github.com/nikitabobko/AeroSpace/blob/main/Sources/AppBundle/config/Config.swift#L27
If you or somebody else comes up with a consistent and easy-to-explain way to describe the logic, contribution to the docs is welcome


[Tooling] Prompt playground should preserve leading whitespace on lines

Describe the bug
In the prompt playground leading whitespace is not respected when displaying the rendered prompt.
Source:

In playground:

Fixed in 0.6.0.


Refactoring: Add to HLA the DbValidator objects.

Enhancement: Remove the support to IDbValidator and IDbOperation. #337


Display initialization progress and index asynchronously

This causes e.g. VSCode to display initialization progress in the status bar. This PR also moves the indexing to a forkIO thread, since otherwise the progress will not show up.

In the future we may also consider displaying more fine-grained progress.
One problem with asynchronous initialization is that the client will eagerly emit errors while the modules are still compiling (unless a .curry/language-server directory with previously compiled artifacts already exists):

Hence why this PR is marked as a draft for now.

Alternatively we could also look into LSP/VSCode's support for progress reporting during initialization, which requires using the progress token provided in the initialize params: https://hackage.haskell.org/package/lsp-types-<IP_ADDRESS>/docs/Language-LSP-Protocol-Types.html#t:InitializeParams
For that it would probably also make sense to move out all of our heavy lifting (compiling/indexing) from the initialized notification handler to doInitialize, where we can actually access these params. This could be done in a separate PR, essentially we'd just have to migrate the function signature of initializedHandler to whatever doInitialize expects and then remove the handler from the notification handlers.


Outdated Addresses in Consul

I have multiple Consul services with the same address but different ports. I register multiple instances with Consul in Quarkus, but when one or more of the instances are closed, it still keeps the old address in memory.  Even if I use refresh-period in the settings, the addresses remain old. Instances need to be updated periodically.
Note: Even if I write a special Load Balancer, it does not make sense because the examples from Consul are the same.
quarkus.stork.red-service.service-discovery=consul
quarkus.stork.red-service.service-discovery.consul-host=localhost
quarkus.stork.red-service.service-discovery.consul-port=8500
quarkus.stork.red-service.service-discovery.type=consul
quarkus.stork.red-service.load-balancer.type=round-robin
quarkus.stork.red-service.refresh-period=2s

Quarkus Version:  3.6.3
Java Version: 21

The bug was fixed when I made the following setting
quarkus.stork.red-service.service-discovery.refresh-period=10s

Hi, thank you!


Unable to change policy assignment parameters

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Versions

terraform: 1.4.2
azure provider: 3.45.0
module: 3.3.0
Description
Unable to change policy assignment parameters using an archetype extension.
Describe the bug
I am following the doc here: expand an existing archetype to set parameter values for Policy Assignments, via expanding an existing archetype.
The archetype I am expanding is the es_identity and I am using the following archetype_extension_es_identity.json file in archetype_extensions folder :
{
    "extend_es_identity": {
        "policy_assignments": [],
        "policy_definitions": [],
        "policy_set_definitions": [],
        "role_definitions": [],
        "archetype_config": {
          "parameters": {
            "Deny-Subnet-Without-Nsg": {
              "effect": "Audit"
            }
          },
          "access_control": {}
        }
      }
}

The policy assignment Deny-Subnet-Without-Nsg is a custom policy included in the built-in archetype definition es_identity.

NOTE: I am using the custom_landing_zones block to define subscription placements :

"${local.root_id}-identity" = {
      display_name               = "Identity"
      parent_management_group_id = "${local.root_id}-platform"
      subscription_ids = [
        local.subscription_id_identity1,
        local.subscription_id_identity2
      ]
      archetype_config = {
            archetype_id = "es_identity"
            parameters = {}
        }
        access_control = {}
      }

The workaround I have is to use the custom_landing_zones block to also define the parameter :
    "${local.root_id}-identity" = {
      display_name               = "Identity"
      parent_management_group_id = "${local.root_id}-platform"
      subscription_ids = [
        local.subscription_id_identity1,
        local.subscription_id_identity2
      ]
      archetype_config = {
        archetype_id = "es_identity"
        parameters = {
          Deny-Subnet-Without-Nsg = {
            effect = "Audit"
           }
        }
        access_control = {}
      }
    }

I would expect that extending the archetype would suffice, and have one place to declare the policy assignments.

Steps to Reproduce

use custom_landing_zones using an archetype_id without any policy assignment parameters
extend the archetype to input policy assignment parameters
the parameter remains the policy default

Screenshot

Additional context

I tried to remove the archetype_id block in custom_landing_zones, but it errors out:

Hey @ptsouk, thank you for bringing this to our attention using the archetype_extension should work as is detailed here [Examples] Set parameter values for Policy Assignments. Running the archetype_extension case myself I have noticed that using your example for es_landing_zones (Also contains that specific policy) works fine, but using es_identity fails.
In the mean time, it will be best to use the archetype_config_overrides parameter since the identity archetype already exists by default. Try this instead:
  archetype_config_overrides = {

   identity = {
      archetype_id = "es_identity"
      parameters = {
        Deny-Subnet-Without-Nsg = {
          effect = "Audit"
        }
      }
      access_control = {
      }
    }
  }

Hi @luke-taylor , thank you for the reply. I can confirm in my case that using the archetype_config_overrides option is also not working.

The proposed workaround with the archetype_config_overrides actually worked after removing the identity block from the custom_landing_zones.
Thx!


Work Package wp-gh.csv

I would like to work on this, please!

Manually assigned you (@Ashwinshankar98) to this issue. Please use the correct phrase from the workflow in the future. :)

Results of Phase 1
wp-gh-results.csv

Results of Phase 1
Abhishek Arvindkumar-Upadhyay_HW2.csv

Results of Phase 2
wp-gh-results.csv

Results of Phase 2
wp-gh-results.csv


fix(build): fix publishing gh-pages

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


[Connect modal] Missing Metamask

Seems like sometimes Metamask doesn't show up for some people when trying to connect to the KlimaDAO dapp. See blankslate's message about the issue (first reported by a user who later resolved it by apparently accessing the website through the a different link):
"I just tried Firefox on macOS and Windows and also only got Coinbase and Walletconnect as an option. In the past, Metamask 100% would come up. Tried clearing cache on both and still don't get Metamask as a connection option. We had something like this in the past [referring to conflicting wallets], but I don't have any other wallets installed." Works fine for him on Brave though, so maybe the issue is some unrelated add-on only installed on Firefox.
His console spits out this error when hitting the connect button:

Since blankslate doesn't have any other wallets installed, it doesn't seem to be the same conflicting wallets bug we had a while ago. Tufnel speculates it might be related to WalletConnect: "it looks like the app might be using walletConnect v1. afaik walletConnect v1 was shut down end of June and only v2 is supported now."
I could not reproduce this bug on any of my four browsers.

Hello @0xtapi i will suggest you contact wallet support because this looks like a wallet related type of issue WALLET SUPPORT


milliseconds resolution in Gelf Decoder.

We would like to be able to send up to milliseconds resolution message in gelf_decoder.rs since it is supported by Graylog. Is it possible ? (I know the answer since the patch does not seem too big :-)

This requires an update to all the decoders and encoders, and that will be a breaking change for capnp.
But that remains fairly easy to do and that can definitely be done.

Finally done, although this still requires testing and a documentation update.
Please note that this is a breaking change for CapnProto users, although backward compatibility can be added if needed.
Version 0.2.0 should be tagged in the next few days.


Update like, repost, and bookmark UI based on Micropub server support

Here's a quick proposal for returning what properties a Micropub server supports, so that a client like Indigenous could know to hide or rename the common choices in the UI. This needs to be discussed more in the IndieWeb community, but want to file this issue so that there's a place for it.
https://indieweb.org/Micropub-brainstorming#Query_for_supported_vocabulary
I'm specifically thinking of Micro.blog, which currently has no public "Like" feature, and where bookmarks are called "Favorites". Another extremely-hypothetical example would be an IndieWeb-powered Tumblr, where reposting would be named "Reblog".

@manton One great thing about the IndieWeb, is that the standards are often based on real-world implementations. So after we get some feedback from people, if you want micro.blog to be the first publisher of the support vocabulary query, I can commit to be the first consumer.
The lessons we learn from implementing it in micro.blog and Indigenous could help discover things we'd never know when keeping it at the theory level. So I definitely would be open to trying to add this soon rather than later. I think this one might require a bit of experimentation and implementation before people really want to join in.

@EdwardHinkle Sounds great! I can implement it at any time on Micro.blog, although first I wonder if anyone has feedback on the JSON key names.

One thing to note is these are all properties of the h-entry vocabulary, whereas other kinds of posts support totally different properties. Things like h-event or h-review where they are completely different things. Continuing down this path it would make sense to scope these properties to note that they are part of the h-entry vocabulary.
The other question is how many of the supported properties would need to be defined? If not all of them, (e.g. photo, category, published)  why these ones in particular?
Is it because these correspond with post types? If that's the case, then maybe this should be somehow tied to the Post Type Discovery spec which spells out what properties map to what kinds of posts.
In that case, it may make more sense to have the server advertise which of these post types it supports, and then clients would look at the spec to know which properties to send to create those posts.

From a client perspective I’m good with either scoping the vocabulary or using reverse post-type discovery. I do feel like the reverse post-type discovery is a pretty elegant solution. I think having scoped vocabulary could cause the response and parsing to be pretty verbose.
Manton do you feel like there are any specific of the two that would work best for you from a server/service side?
(Originally published at: https://eddiehinkle.com/2018/02/20/3/reply/)

Let's move this discussion over to the micropub-extensions repo: https://github.com/indieweb/micropub-extensions/issues/1

Sounds good!

Note to self, micro.blog now supports a draft version of this: https://github.com/indieweb/micropub-extensions/issues/1#issuecomment-367106122

Nope, this is not active in the current beta. So nothing wrong on your side necessarily. Definitely hoping to get this in soon. Either this next build or the one after


upgrade addon-framework version

Ref: https://github.com/open-cluster-management-io/ocm/issues/355

/assign @clyang82 @yanmxa

Thanks to @haoqing0110 for synchronizing the addon updated version.
/lgtm


Fixes Issue #7023 in Release_2023_09 branch

This fixes #7023 by backporting the pieces of code in #6903 that fix (or at least sidestep) the issue by allowing dative bonds to carry stereo bond directions. It also adds a test.

I don't think the invariant which is being checked is actually required, so I think it would be better to just remove lines 299-209 of Canon.cpp entirely.

I don't think the invariant which is being checked is actually required, so I think it would be better to just remove lines 299-309 of Canon.cpp entirely.

I thought we decided to backport the portion of #6903 that fixed this issue so that we could have it in the 2023.09 release branch without porting back the whole atropoisomer while still  fixing the issue.

I don't think the invariant which is being checked is actually required, so I think it would be better to just remove lines 299-309 of Canon.cpp entirely.

I thought we decided to backport the portion of #6903 that fixed this issue so that we could have it in the 2023.09 release branch without porting back the whole atropoisomer while still fixing the issue.

Yeah, but given that the backport isn't actually a fix (it just causes an alternate code path to be used), I thought we could just remove the invariant that triggers the problem.


Co-Plaintiffs and Co-Defendants

This form should add capability for user to add co-plaintiffs and co-defendants

resolved by PR 18


Add ability to set video encoder bitrate based on source video stream bit rate

Did some work to support a bt-ratio configuration option. This value is basically multiplied by the source file's video bit rate to set a new encoding bit rate for the video source.
My use case is mainly around converting my massive video library to hevc where I want to be able to encode at 60% of the source streams bit rate to get basically the same quality since hevc compression is so much better. I'd rather not use -qp or -crfand have had better results using this, esp vs. setting different crf-profiles.
Few notes:

Setting a crf value will still always use crf or qp for hevc.
setting a crf-profile will override this.
max-bitrate should still kick in (I think)
basically all crf options override bt-ratio.

I'm not a Python expert so unsure if my code could be better but Works on my Machine™ 😄

Been very busy with work so haven't had a chance to address this directly.
Interesting concept but I think before merge I would like to make a few changes. What I think would be beneficial for this feature would be a dict type setting where you can specify source codecs and multipliers for each so that it's a little more dynamic depending on the source material
Setting sample would look something like:
bitrate-ratio = h264:0.6, divx:0.3
I would also shift the bitrate adjustment out of the converter and just calculate the adjusted bitrate rather than passing a multiplier and bitrate, but that's more stylistic than anything but it leaves the converter code alone. When I get a chance I'll put together a test and link it here

Been very busy with work so haven't had a chance to address this directly.
Interesting concept but I think before merge I would like to make a few changes. What I think would be beneficial for this feature would be a dict type setting where you can specify source codecs and multipliers for each so that it's a little more dynamic depending on the source material
Setting sample would look something like:
bitrate-ratio = h264:0.6, divx:0.3
I would also shift the bitrate adjustment out of the converter and just calculate the adjusted bitrate rather than passing a multiplier and bitrate, but that's more stylistic than anything but it leaves the converter code alone. When I get a chance I'll put together a test and link it here

Alright finally got around to this
https://github.com/mdhiggins/sickbeard_mp4_automator/tree/bitrate-ratio
There's a branch for testing that has the new bitrate-ratio setting under video
You can specify a dict with key:float values. The default ratio will be 1.0
Here is a sample setting
bitrate-ratio = h264:0.6, hevc:0.8
This allows you to have a different ratio depending on the incoming source codec. Looks like its all working on my end but if you could test it out before I merge things into the master branch it would be appreciated. Bitrate settings still respect max-bitrate and all the CRF settings take priority if specified

Alright finally got around to this
https://github.com/mdhiggins/sickbeard_mp4_automator/tree/bitrate-ratio
There's a branch for testing that has the new bitrate-ratio setting under video
You can specify a dict with key:float values. The default ratio will be 1.0
Here is a sample setting
bitrate-ratio = h264:0.6, hevc:0.8
This allows you to have a different ratio depending on the incoming source codec. Looks like its all working on my end but if you could test it out before I merge things into the master branch it would be appreciated. Bitrate settings still respect max-bitrate and all the CRF settings take priority if specified

So awesome, thank you @mdhiggins 🎉

So awesome, thank you @mdhiggins 🎉

Shall I take it to mean that's working for you? 👍 if so I'll merge it in and update the wiki

Shall I take it to mean that's working for you? 👍 if so I'll merge it in and update the wiki

Got a batch of videos I'll test it on shortly. Just waiting for a new ffmpeg to compile (don't ask :P).

Got a batch of videos I'll test it on shortly. Just waiting for a new ffmpeg to compile (don't ask :P).

I initially got a little tripped up because I didn't notice that the bitrate-ratio diict was actually specifying the source codec and the ratio to use for that source. I had it the otherway around (always use this ratio when encoding with this encoder).
Your process makes a lot more sense than my original thought pattern as it allows for way more flexibility.
Anyways, yep. Worked great on this batch of videos. Thank you, @mdhiggins.

I initially got a little tripped up because I didn't notice that the bitrate-ratio diict was actually specifying the source codec and the ratio to use for that source. I had it the otherway around (always use this ratio when encoding with this encoder).
Your process makes a lot more sense than my original thought pattern as it allows for way more flexibility.
Anyways, yep. Worked great on this batch of videos. Thank you, @mdhiggins.

Thanks for merging. Updated the wiki to reflect the new option. Gonna close this out since the feature is implemented

Thanks for merging. Updated the wiki to reflect the new option. Gonna close this out since the feature is implemented


[ruff-0.8] [FAST] Further improve docs for fast-api-non-annotated-depencency (FAST002)

This PR is stacked on top of #14466.
Summary
This PR updates the docs for FAST002 to note that typing.Annotated was added in Python 3.9, but that typing_extensions.Annotated can be used on older versions of Python.
Alternatively, we could consider reverting the stabilisation of this rule, since not everybody will necessarily be happy to add typing_extensions as a dependency, but the autofix assumes that it is available to be imported on Python 3.8 and lower. However, nobody has raised this issue, and Python 3.8 is now end-of-life, so while this isn't ideal I think it probably shouldn't block the rule being stabilised. If you are on an older version of Python and don't want typing_extensions as a dependency, you can always just disable the rule.
I don't have a strong opinion here, though; this does feel sort-of borderline to me. Maybe we should revert the stabilisation?
Test Plan
cargo test -p ruff_linter

Thinking about this some more, I think we should at least mark the autofix as unsafe if the target version is set to Python 3.8 or lower, since the autofix adds imports of typing_extensions on these older Python versions, which the user might not have or want as a dependency. So the fix could easily break working Python code on older Python versions.

Landing for now; this is an improvement on the status quo, and we can always add more docs on the safety of the fix as a followup

I opened https://github.com/astral-sh/ruff/issues/14484


[Regression] V2 - Company Not Found - Company Owner role is not assigned to the user

Prerequisite

Create a CLA group with CCLA enabled
Add github repository for the CLA group
Generate template

Steps to Follow

Login to Github as corporate contributor
Navigate to the repository used in prerequisite
Create PR
CLA check fails
Click on CLA NOT SIGNED
Contributor is redirected to Contributor Console
Click on Proceed as a Corporate Contributor
Click on building icon
Click on Organization not listed? + Click Here
Enter company name and website that does not exist
Click Next
Click Proceed
Click Yes
Click Proceed
Login to SSO
User is redirected to Contributor console and CLA Manager settings are configured
Observed that only CLA Manager designee role is assigned and company owner role is not assigned
NOTE: Observed the same issue when user is already logged into SSO and then navigates to contributor console and tried to create Company

@amolsontakke3576 @wanyaland
Looks like only cla manager designee endpoint is called and invite company admin is not called at this point. Not sure if it is api issue or UI issue, but company owner role is never assigned to user

Verified that the issue is fixed


Training Configuration and Model Performance

@ChenYi99
Hello,
First and foremost, I want to express my gratitude for providing such an excellent paper and code.
I am reaching out because I encountered an issue while using your provided codebase. Specifically, I have concerns regarding the correctness of the training configuration parameters.
I followed your publicly available train_config and trained the model for 10 epochs with 3000 iterations. However, when evaluating the model on EpicKitchen dataset, the achieved accuracy was only around 44%.
I also experimented with the pretrained weights from EgoPlanVideoLLaMA that you have shared, which yielded approximately 54% accuracy, consistent with the results reported in the paper.
I am keen on achieving similar results to those reported in the paper. Therefore, I am reaching out to inquire whether there might be any discrepancies in the parameters or if there are any additional considerations I should take into account.
Best regards

Thanks for your interest in our work. I will check the codes as soon as possible.

Hi,
I have checked my codes again and reimplemented the experiments. The results are consistent with our paper. Can you describe more details about your settings?

@ChenYi99
Thank you for taking the time to review.
I appreciate your effort and time spent on this.
Upon checking on my end, it appears that I was running torch.distributed with a setting of 1 due to computational constraints.
In this scenario, when setting torch.distributed to 8, it seems that the batch_size differs. Therefore, I am currently running and verifying with a gradient accumulation of 8.
Once the results are available, I will communicate them again.
Thank you.

@ChenYi99
Due to having only one GPU, I executed the code with accum_grad_iters set to 8, but the evaluation at 10 epochs still reached only about 45%.
I plan to try running it with 8 GPUs and nproc=8 around next week.(hardware limitation)🙇
I'm getting the following message during execution; is this something I should be concerned about?
Failed to load examples with video: P04_120. Will randomly sample an example as a replacement.
Failed to extract key frames: vlen(=4) < n_frms !!!
sample_id: 7097, video_id: P08_01
start_frame_idx: 34921, stop_frame_idx: 34924
current_observation_frame_idx: 35337
action_metadata: {'narration_text': 'open drawer', 'start_frame': 34921, 'stop_frame': 35088}
most_recent_actions_metadata: [{'narration_text': 'open drawer', 'start_frame': 34921, 'stop_frame': 35088}, {'narration_text': 'open dishwasher', 'start_frame': 34924, 'stop_frame': 34994}, {'narration_text': 'place chopping board', 'start_frame': 35124, 'stop_frame': 35260}, {'narration_text': 'close drawer', 'start_frame': 35267, 'stop_frame': 35337}]

And, for reference, the loss turned out as follows, but if it could go lower?
epoch 10
{"train_lr": "0.000", "train_loss": "1.402"}
{"train_lr": "0.000", "train_loss": "1.198"}
{"train_lr": "0.000", "train_loss": "1.199"}
{"train_lr": "0.000", "train_loss": "1.159"}
{"train_lr": "0.000", "train_loss": "1.153"}
{"train_lr": "0.000", "train_loss": "1.145"}
{"train_lr": "0.000", "train_loss": "1.127"}
{"train_lr": "0.000", "train_loss": "1.109"}
{"train_lr": "0.000", "train_loss": "1.090"}
{"train_lr": "0.000", "train_loss": "1.091"}

Hi, when you set "accum_grad_iters" to 8, did you also increase "iters_per_epoch" from 3000 to 24000?
Additionally, you can ignore the message, and the loss you presented is within the expected range.

@ChenYi99
Thank you for the advice.
With your help, by setting batch_size=2, accum_grad_iters=8, and iters_per_epoch=24000, I was able to achieve accuracy on the EpicKitchen evaluation comparable to that reported in the paper.
Thank you very much.
I have another question.
Since the execution takes about 2 days, I'm considering changing batch_size=4, accum_grad_iters=4, and reducing iters_per_epoch=12000. Do you think this will yield the same results?
I would appreciate any insights you might have. Apologies for the repeated questions, but thank you in advance for your assistance.

The value of iters_per_epoch×n_gpus is the total number of samples the model sees per epoch (n_samples), for example, 3000×8=24000×1=24000.
The value of batch_size×accum_grad_iters×n_gpus corresponds to the actual global_batch_size, for example, 2×1×8=2×8×1=16.
If you adjust the parameters to batch_size=4, accum_grad_iters=4, and iters_per_epoch=12000, but still keep n_gpus=1, you can maintain the global_batch_size=batch_size×n_gpus×accum_grad_iters=4×4×1=16 unchanged.
However, the total number of samples the model sees per epoch will change to n_samples=iters_per_epoch×n_gpus=12000×1=12000, which is half the amount. So the results may still be somewhat different.

@ChenYi99
Thank you for your reply.
I will try changing the parameters and check again.
I was able to reproduce the results as described in the paper, so I would like to close this issue.
Thank you very much for your prompt and courteous responses to my questions.


verify_boilerplate.py should support accept arbitrary content before the license header

As seen in https://github.com/terraform-google-modules/terraform-google-container-vm/pull/43#pullrequestreview-304188817, there are cases where files are required to have content before the license header. verify_boilerplate.py should be updated to support this use case.

@omazin please take this on.

This may be a non-issue. Please hold.


[Bug]: Audio glitches. Chromium, Node js server for serving static files, Raspberry Pi

Bug description
Hello there. Looking for advice/help.
I am using puppeteer to automate playing my web-player (wrote on js with Howler library).
When I manually open Chromium, then go to http://localhost:8080 and click on #play-button - music plays well.
When I reproduce such a behaviour with puppeteer - I am getting glitches, pausing (even for 1-2sec) during playing.
Don't know how to solve it and where to look for an answer.
I am using pre-installed Chromium (v 88.0.4324.127) on my Raspberry Pi.
Steps to reproduce the problem:

Turn on http-server on node js (goal - serving local music mp3 files)
Run puppeteer script in headless or headful mode. (command in terminal "node puppeteer-script.js". tried also with "&" at the end - didnt work, everything stoped after 10-30 seconds)

Puppeteer script itself:
const puppeteer = require ('puppeteer-core');
(async () => {
const browser = await puppeteer.launch ({
headless: false,
executablePath: '/usr/bin/chromium-browser'
});
const page = await browser.newPage();
await page.setDefaultNavigationTimeout(0);
await page.goto('http://localhost:8080');
await page.setCacheEnabled(false);
await page.waitForSelector('#play-button').then(()=> page.click('#play-button'));

})();
Puppeteer version
puppeteer-core 10.4.0
Node.js version
16.10.0
npm version

What operating system are you seeing the problem on?
Linux
Relevant log output
No response

Here is my Player code:
		var intervaller;

		sound1 = new Howl ({
			src: [playingList[i]],
			preload: true,
			html5: true,
			onplay: function() {
						var time1 = sound1.duration();
						var timetoswitch1 = time1 - fadeTime;

						intervaller = setInterval(() => {
							if (sound1.seek() >= timetoswitch1) {
								sound2.play();
								clearInterval(intervaller);
							};
						},500);
						},
			onpause: function () {clearInterval(intervaller)},
			onend: function () {
						console.log('i = ' + i + 'k = ' + k);

						sound1.unload();

						listLength = playingList.length;
						i = i + 2;
				 		loadingSound1 (i, playingList);
			}
		})
}

function loadingSound2 (k, playingList) {
		var intervaller;

		sound2 = new Howl ({
			src: [playingList[k]],
			preload: true,
			html5: true,
			onplay: function() {
				var time2 = sound2.duration();
				var timetoswitch2 = time2 - fadeTime;

				intervaller = setInterval(() => {

					if (sound2.seek() >= timetoswitch2) {
						sound1.play();
						clearInterval(intervaller);
								};
						},500);
					},
			onend: function () {
						listLength = playingList.length;

						sound2.unload();

						k = k + 2;
			 			loadingSound2 (k, playingList);
			}
		})
	}	``


Human readable actor names

This makes actor names more readable. Made sure there were no N+1 queries like @jnunemaker suggested!
I also wrote a deserializer to convert actor identifiers to ActiveRecord fields:
def self.humanize_identifiers(keys, field)
  grouped_keys = {}
  actor_names = {}

  keys.each do |key|
    parts = key.split(";")
    grouped_keys[parts.first] ||= []
    grouped_keys[parts.first] << parts.second
  end

  grouped_keys.each do |model, ids|
    model.constantize.where(id: ids).find_each do |resource|
      actor_names["#{resource.class.name};#{resource.id}"] = resource.send(field)
    end
  end

  actor_names
end

I'm not sure how that can fit in the project, apart from adding it to the README. Suggestions appreciated.

@jevin this looks great! Nice work. I'll get it merged and released soon.


⚠ ESPN has degraded performance

In 570f8f5, ESPN (https://espn.com) experienced degraded performance:

HTTP code: 200
Response time: 1898 ms

Resolved: ESPN performance has improved in ae23153.


fix(update-react-version): update React version from 17.0.1 to ^17.0.2

Updates React version and includes caret support to allow any minor future React updates to work
without updating package.
fix #14

Thank you !


Admin_mailer translations

Profile published mail should be translated in regard to locale that user is using.
"Your are now published on the Speakerinnen-Website"

done!


chore: increase version and build numbers for 4.2.0

Commit to sync main branch with newest version

@the0neyouseek @waydabber Everything is signed and ready to go, awaiting approval so I can tag the correct commit!


typo Fix a parameter error

Proposed changes
Issue Number: close #xxx

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

run buildall

run buildall


Store a copy of the signed certificate on the Order resource after Finalize

What this PR does / why we need it:
Instead of calling GetCertificate in the ACME Issue function, we now store a copy of the final signed certificate on the Order resource.
This will also allow us to verify that a Certificate is up-to-date/issued without additional calls to the ACME server.
Release note:
NONE

Rebased, re-adding lgtm


Prevent dragging outside root node

Let's say I have this model:
{
 id: 'root',
 title: 'root',
 items: [
  {
   id: 'child1', title: 'child1'
  }
 ]
}
];```
How can I prevent dragging child1 outside of of root node?

Mh do you think this is related to #317?

It now works for me.
All I had to do was remove the place holder (so you can't add new roots) and make sure you can't switch away from your root (in the case there are many roots) in my accept function (by adding some meta data to my roots and nodes - telling which node belongs to which root).
Thanks :)


Fly over AR View and example

This implements the AR fly over view (FlyOverSceneView) an an example.
You will need branch ryan3***4/flyOver of the SDK as well in order to build and test this.
I think flyover is pretty much complete based on the done criteria:

there is a demo
You can pinch to zoom (change scale)
You can tap to identify

Note: Double tap to zoom does not work. My guess is this is because of the use of the TransformationMatrixCameraController.
Still todo, can be done later:

Need to figure out preference bug
We can easily switch to reality kit if we wanted

The approach taken in this PR is that the user passes in the scene view. This is so they can set it up exactly how they want to. If we didn't do this then we would need to duplicate the whole scene view API onto the FlyOverSceneView.
When we get the scene view that the user passes us, we then override a few things (camera controller, view drawing mode, etc).
The user can perform operations (ie. identify, etc) because we give them access to the proxy through the scene view ViewBuilder closure.
Usage of FlyOverSceneView:
    var body: some View {
        FlyoverSceneView(
            initialCamera: initialCamera,
            translationFactor: 3_000
        ) { _ in
            SceneView(scene: scene)
        }
    }

Instead of opacity, I added a modifier to the ARSwiftUIView to hide the video feed

The tap to identify and pan gestures are not working with these changes. I'm looking into the exact change that caused the issue.

Correct. It is because the ARSCNView was shown over the SceneView, eating the touches. I've fixed it. Just needed to disable the AR view.

Should RealityKit.ARView be integrated in place of ARKit.ARSCNView in a separate PR? If so, I can work on that once this PR is merged.


Routines supplied by class Cool/ Any/ Mu

From my point of view, I think it would be better if the routines or method from the classes mentioned above were not included and explained in each and every class that inherits from them, and instead just show the methods which are unique to the class.

It's probably sensible to not go all the way down to Mu in all pages. Not good SEO, either. Any other opinion?

The default for .^methods and related bits of introspection is to hide things from Any, Cool, and Mu by default, so there's at least precedent for doing that (there's also :all for asking for those to be included).

Just to add to this, I think its more confusing to include Any/Cool/Mu than it is helpful. For example what does .sort from Any actually mean for using say Proc::Async? It adds to confusion of the function and meaning of a class by presenting a lot of the more internal methods that make Perl 6 work rather than are specific to the class you are looking at.

There's going to be a problem now with hash-links from other pages. I have seen at least one. We'll have to fix them on a one by one basis. Also refs #561

IMO this change is ill-considered and is causing real-world user confusion as new users are reading code samples and trying to look up the methods in the docs and fail to find them. I think that's far more important than purely speculative conjectures about "not good SEO".
Even with more experienced users it's now tougher to find which type in the inheritance chain overrides the method. If I'm trying to lookup gist and do an in-page search that turns up nothing does that mean the class uses Mu.gist or did I make a typo in my search term?

above were not included and explained in each and every class that inherits from them

The Any/Mu docs were tacked away at the bottom—you don't have to read them if you don't want to. The Type docs are reference docs but this change made it so you have to look up three different pages to figure out what provides a particular method—and that's only if you already know most objects inherit from Any/Mu and that Any/Mu methods aren't listed on individual pages since, confusingly, inherited methods from all other types are listed.

For example what does .sort from Any actually mean for using say Proc::Async?

Well, exactly! What does it mean? What answer does the Proc::Async documentation now give? It doesn't give any. And If someone reading a piece of code that's calling .sort on a variable with a Proc::Async object, they now have a difficult time trying to find that information.
I don't follow that argumentation at all. If it's not clear what Any.sort does with Proc::Async, fix the documentation of Any.sort instead of pretending the method that's inherited by a type doesn't exist.


Saving interleaved files

When interleaving laser colors during a run, it would be convenient to be able to save the frames to separate file corresponding to the laser color used.

related to acquire-driver-zarr #44?


[Question] Should prisma use http_proxy env var to connect to database

Greetings,
Should Python Prisma client use http_proxy env var to connect to the database? It does and I think it really should not!
Thanks for your time!

The python client doesn't have any specific handling of http proxies, so this behaviour is coming from the core prisma internals and will be the same in the JS client. Please ask this question in the https://github.com/prisma/prisma repi