domain inside pods doesn't resolved

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
This is a issue from dns i think.
inside of pods domain can't resolve.
ping google.com
ping gluster-svc
ping: unknown host
my dns config

# Can be dnsmasq_kubedns, kubedns or none
dns_mode: kubedns

# Can be docker_dns, host_resolvconf or none
resolvconf_mode: docker_dns

Environment:

Cloud provider or hardware configuration:
digitalocean

OS (printf "$(uname -srm)\n$(cat /etc/os-release)\n"):
centos

Version of Ansible (ansible --version):
2.2.1

Kargo version (commit) (git rev-parse --short HEAD):
commit e877cd2874da1625bf41c332989a52054ab2aa22
Merge: 203ddfc 732ae69
Author: Antoine Legrand<EMAIL_ADDRESS>Date:   Mon Feb 13 17:53:57 2017 +0100
Merge pull request #1024 from holser/bug/961

Install pip on Ubuntu

Network plugin used:
flannel
Copy of your inventory file:
## Configure 'ip' variable to bind kubernetes services on a
## different ip than the default iface
node1 ansible_ssh_host=pro.1  ip=<IP_ADDRESS>    ansible_user=root
node2 ansible_ssh_host=pro.2    ip=<IP_ADDRESS>    ansible_user=root
node3 ansible_ssh_host=pro.3    ip=<IP_ADDRESS>  ansible_user=root
## configure a bastion host if your nodes are not directly reachable
bastion ansible_ssh_host=x.x.x.x
[kube-master]
node1
[etcd]
node1
node2
node3
[kube-node]
node2
node3
node4
node5
node6
[k8s-cluster:children]
kube-node
kube-master
Command used to invoke ansible:
ansible-playbook -i inventory/inventory cluster.yml -b
Output of ansible run:

Anything else do we need to know:
UPDATE:
When i use private ip this issue Appears, with public ip every thing work like a charm!

I was about to file my own issue but then noticed this one. I am having what looks like a related issue, but with:
dns_mode: dnsmasq_kubedns
resolvconf_mode: docker_dns

Cluster service name resolution used to work for me, but now it seems broken. When I looked at logs of dnsmasq pods I saw this on all my nodes:
$ kubectl --namespace=kube-system logs po/dnsmasq-6c7t1 | uniq -c
      1 dnsmasq[1]: started, version 2.72 cachesize 1000
      1 dnsmasq[1]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect
      1 dnsmasq[1]: using nameserver <IP_ADDRESS>#53
      1 dnsmasq[1]: using nameserver <IP_ADDRESS>#53
      1 dnsmasq[1]: using local addresses only for domain com.svc.cluster.local
      1 dnsmasq[1]: using local addresses only for domain svc.cluster.local.svc.cluster.local
      1 dnsmasq[1]: using local addresses only for domain cluster.local.svc.cluster.local
      1 dnsmasq[1]: using local addresses only for domain com.default.svc.cluster.local
      1 dnsmasq[1]: using local addresses only for domain default.svc.cluster.local.default.svc.cluster.local
      1 dnsmasq[1]: using local addresses only for domain cluster.local.default.svc.cluster.local
      1 dnsmasq[1]: using nameserver <IP_ADDRESS>#53 for domain cluster.local
      2 dnsmasq[1]: read /etc/hosts - 7 addresses
  53523 dnsmasq[1]: Maximum number of concurrent DNS queries reached (max: 150)

NOTE: dnsmasq[1]: Maximum number of concurrent DNS queries reached (max: 150) is repeated over 50,000 times, on each node's pod. I am not sure how to go about further debug...
OS ansible host: Darwin 16.4.0 x86_64
nodes (Ubuntu installs)
Linux 4.4.0-63-generic x86_64
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
...

Version of Ansible : ansible <IP_ADDRESS>
Kargo version (commit): 410438a

I reset and brought back up cluster, and so far I am not seeing those errors in the dnsmasq pod logs. Crossing fingers...

This is probably fixed by @holser's tuning for kubelet monitoring and my patch for etcd heartbeat interval. If these aren't flapping, kubedns behaves much better.

One thing different I just noticed was this output line in the old "non-working" cluster:
dnsmasq[1]: using nameserver <IP_ADDRESS>#53
It's no longer in the configuration/output in the "new" cluster (just the svc/kubedns IP and the one on the external router/gateway remain).
Since OP had dns_mode: kubedns and since my setup is related to dnsmasq and I had dns_mode: dnsmasq_kubedns I'll stop commenting on this issue...

@mattymo
i try with kubedns but host and svc can't resolve inside pods.

@alirezaDavid I had the same issue and it was iptables.
What i did was to remove the option --iptables=false
vim /etc/systemd/system/docker.service.d/docker-options.conf
systemctl daemon-reload
systemctl restart docker

had the same problem and solved it like @dberuben
The question is why --iptables=false is used by default ?

@dberuben Do you using ip in inventory file (private ip of digitalocean droplet)?
Because i try your solution but issue still appear.
Can you please send your k8s_cluster file?

I'm running into the same issue:
I0812 17:19:17.507710       1 nanny.go:108] dnsmasq[13]: Maximum number of concurrent DNS queries reached (max: 150)
I've tried raspbian, hypriot, and ubuntu... all with the same result :(
/etc/systemd/system/docker.service.d/docker-options.conf doesn't exist.... any ideas?


pull request for e2e test at 01/27/2017 16:56:16

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Should be velocity sensitive

@maxsolomonhenry "well the velocity will be modulating other parameters. might be linked to volume, filter cutoff, lfo speed..." we want our synth to be velocity sensitive too

@jorshi ?


how to generate BEV maps on nuScenes?

Hi @poodarchu! You should be able to use this script [might need some modification] which calls viz_bev. It's used in several other places for reference


fix: some dependencies bumped to latest versions

azure-sdk-for-go, go-autorest and gruntwork-cli dependencies bumped to the latest versions

@polatengin, we should probably regenerate go.sum file with this PR similar to PR #609.

Closing as requested, so that it can be moved to the Microsoft fork.


I'm posting a PR soon to fix this.

Fixed by your pull request


test just modifying paths

Description

Provide details of the change, and generalize the change in the PR title above.

Testing

Describe how you've tested these changes. Link any manually triggered Integration tests or CPP binary SDK Packaging Github Action workflows, if applicable.

Type of Change
Place an x the applicable box:

[ ] Bug fix. Add the issue # below if applicable.
[ ] New feature. A non-breaking change which adds functionality.
[ ] Other, such as a build process or documentation change.

Notes

Bug fixes and feature changes require an update to the Release Notes section of release_build_files/readme.md.
Read the contribution guidelines CONTRIBUTING.md.
Changes to the public API require an internal API review. If you'd like to help us make Firebase APIs better, please propose your change in a feature request so that we can discuss it together.

Current dependencies on/for this PR:

compnerd/swift

PR #11   👈

This stack of pull requests is managed by Graphite.

Closing in favor of https://github.com/thebrowsercompany/firebase-cpp-sdk/pull/13


Bootstrap 5.0.0-beta1: Modals with static backdrop static dismissable when created using modal.show()

I try to create a Modal Dialog with a static backdrop. The Dialog should not be dismissed when the backdrop is
clicked. But every time I open the Dialog using show() it is dismissable by clicking the backdrop.
The only way this works is when the Modal is created using data-bs-toggle='modal' on the button (as it is in the
Documentation).
I created a JSFiddle to show this: https://jsfiddle.net/triple5even/y69xeh5t/12/
This Bug was tested an confirmed on Linux Mint 20, 64Bit using

Chromium 88.0.4324.96 Official Build
Opera 73.0.3856.344
Firefox 85.0

When you create the modal, the options should be passed as the second parameter in the constructor, not the show func.
Try with this:
new bootstrap.Modal(document.getElementById('modal1'), {backdrop: 'static'}).show()

You are right! Omg I don't know how I managed to overlook this. Tried for hours and could not find the reason why it wasn't working and was so sure this was a bug. This is embarrassing :)
Thank you!


preload/2 ends up with error if nested bindings

Elixir version
1.14.1
Database and Version
PostgreSQL 14.5
Ecto Versions
v3.9.3
Database Adapter and Versions (postgrex, myxql, etc)
postgrex 0.16.5
Current behavior
When i do preload with ^ operator and nested bindings Ecto checking field2 association on Schema2 which doesn't have one, looks like in case with ^ we have wrong preload expanding
Schema1
|> preload(^[:field1, :field2, schema2: [:field1]])
|> Repo.all()

** (ArgumentError) schema App.Schemas.Schema2 does not have association or embed :field2
    (elixir 1.14.1) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ecto 3.9.3) lib/ecto/repo/queryable.ex:235: Ecto.Repo.Queryable.execute/4
    (ecto 3.9.3) lib/ecto/repo/queryable.ex:19: Ecto.Repo.Queryable.all/3
    iex:27: (file)

Actually expand has a bug
iex(11)> Ecto.Query.Builder.Preload.expand([:field1, :field2, schema2: [:field1]], [])
{[{:schema2, [:field1, :field2, :field1]}, :field2, :field1], []}

Expected behavior
Should work like without ^

Does it work on v3.9.2 by any chance? :)

Yes. it works on v3.9.2. Actually this new clause leads to wrong expanding https://github.com/elixir-ecto/ecto/blob/9561024c0ae494b7c1d3d9822fa079f00b127fdd/lib/ecto/query/builder/preload.ex#L138

Hi @zachallaun, can you please take a look into this? It my affect you too. :)

On it o7


bare-bones functions for CBPE

If it doesn't already exist in the NannyML package (I didn't find it), it would be nice to have a collection of bare-bones functions to predict performance using only a list / array / series of y_pred_proba values.

Hi Andrew,
these functions do exist within the nannyml.performance_estimation.confidence_based.cbpe module, but they were kept protected up until now.
I don't see any issues with making these public, people will just have to specify the input data themselves instead of relying on all of the machinery (metadata, estimators) and built in checks.
There are some big changes incoming due to support for multiclass classification, but we can make the required changes as soon as those are done.


HEROKU_API_KEY usage differences from 2.0.5 to 3.0.2

HEROKU_API_KEY set as environment variable in Travis CI
One artifact deployed from Travis CI using heroku-maven-plugin version 2.0.5 -> OK
Same exact artifact deployed from Travis CI using heroku-maven-plugin version 3.0.2 -> Error
[ERROR] Failed to execute goal com.heroku.sdk:heroku-maven-plugin:3.0.2:deploy (default-cli) on project project-name: Unexpected error!: peer not authenticated -> [Help 1]
Could not find info about HEROKU_API_KEY change or deprecation.

With verison 2.0.16 deploys without problems.
From my .travis.yml:
language: java

sudo: false

cache:
  directories:
    - $HOME/.m2/repository

jdk:
- openjdk11

services:
- docker

addons:
  sonarcloud:
    organization: "my-org"

before_install:
- mvn clean
- echo "$DOCKER_PASSWORD" | docker login  -u "$DOCKER_ID" --password-stdin
- docker pull adoptopenjdk/openjdk11:alpine-jre

script:
  - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install sonar:sonar -Dsonar.projectKey=my-project package dockerfile:build verify dockerfile:push heroku:deploy

after_success:
- bash <(curl -s https://codecov.io/bash)
  # Generating Site
- mvn site

Form my pom.xml:
      <!--
      Heroku Maven Plugin - Deploy Java applications directly to Heroku without pushing to a Git repository
      https://github.com/heroku/heroku-maven-plugin
      -->
      <plugin>
        <groupId>com.heroku.sdk</groupId>
        <artifactId>heroku-maven-plugin</artifactId>
        <configuration>
          <appName>my-app</appName>
          <jdkVersion>11</jdkVersion>
          <processTypes>
            <web>java $JAVA_OPTS -jar -Dserver.port=$PORT ${full-artifact-name}</web>
          </processTypes>
          <includeTarget>false</includeTarget>
          <includes>
            <include>${full-artifact-name}</include>
          </includes>
        </configuration>
      </plugin>

The app is a Spring Boot 2.3.0.RELEASE application.

@rubensa i don't see any obvious reason why this is happening. We may need to wait until @Malax (the repo's owner) is back from vacation to dig in. Sorry for the delay.

@rubensa HEROKU_API_KEY definitely wasn't deprecated, so this is most likely a bug. I'll update this issue as soon as I know more. Thank your for your patience!

@rubensa HEROKU_API_KEY definitely wasn't deprecated, so this is most likely a bug. I'll update this issue as soon as I know more. Thank your for your patience!

No problem.  I'm using the old plugin version for now.  Thanks for looking into this.

It turned out to be an SSL/TLS issue and has nothing to do with HEROKU_API_KEY or authentication with Heroku in general. The error message is indeed a bit confusing since it's just the message of a javax.net.ssl.SSLPeerUnverifiedException.
I believe this is caused by JDK-8220723, Travis is installing OpenJDK 11.0.2 by default which is affected by this issue. In fact, we ran into the same problem and have a workaround in heroku-maven-plugin itself. You can emulate this in your own repo to get 3.0.x working reliably on Travis. Please note this issue does not always manifests itself, it's really annoying. ;-)
If I debugged this correctly, 2.0.x is not using TLS 1.3 and is therefore not affected by this bug. I will disable TLS 1.3 for 3.0.x as well to make sure it works on Travis with Java 11 out of the box in the future. I track this under https://github.com/heroku/heroku-maven-plugin/issues/71.


Updated sbt to 0.13.13

Updated sbt version to 0.13.13 and fixed deprecations:

/app/build.sbt:158: warning: <+= operator is deprecated. Use lhs += { x.value }.
sourceGenerators in Compile <+= Def.task {
^
/app/build.sbt:170: warning: value previousArtifact in class BaseMimaKeys is deprecated: Please use mimaPreviousArtifacts which allows setting more than one previous artifact.
previousArtifact := {
^
/app/build.sbt:231: warning: value Resource in object EclipseCreateSrc is deprecated: Always enabled
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource,

See https://github.com/sbt/sbt/releases/tag/v0.13.13
Checklist

[x] Unit test all changes
[x] Update README.md if applicable
[x] Add [WIP] to the pull request title if it's work in progress
[x] Squash commits that aren't meaningful changes
[x] Run sbt scalariformFormat test:scalariformFormat to make sure that the source files are formatted

@getquill/maintainers

@mxl thanks!


Converting ROW with all fields (including ListFields) to JSON C# string

I have tried with
var rowJson = JsonConvert.SerializeObject(row);
and
var rowJson = row.ToJson();
but both of these give me the JSON with only table fields. How can I get the JSON with all the fields including ListField etc.
Thanks

initially row returns only table fields. If you want to get relational fileds you must select these fileds first. Also you have ListField you must populate list before converting to json.


Fix notification for new module releases

Is your request related to a new offering from AWS?

No
Is your request related to a problem? Please describe.

Hi. We configured github custom notification to get an email when new module released. See screenshot

And this notification works for eks module, (as i understand) because,  when new version released, @barryib  created github release, so it looks like this https://github.com/terraform-aws-modules/terraform-aws-eks/releases
For other modules (iam, vpc, cloudfront) repos there aren't really github releases created, just automatically based on tags, and in that way github don't sent notifications (as i think). I checked what all repos notifications configured exactly as for eks repo
Describe the solution you'd like.

May question mostly to @antonbabenko. Is it possible to create github releases every time when you release new module, to give opportunity to get github notifications, please?
Describe alternatives you've considered.

Additional context

Thanks for any explanation why it works for eks module and doesn't work for others.

+1

+1 @antonbabenko

Hi @antonbabenko
What do you think? Is it possible to use Release functionality for this module?

I have just updated the release script a bit, so the next release of terraform-aws-modules should be a proper GitHub Release (see example release).
We are going to implement a slightly better approach in the foreseen future using GitHub Actions.


Enhance description property for external vocabs

ids:Described (super class of ids:Resource) has the property ids:description. As far as I understand it, that's the best entry point for any explanation on the actual content of a resource.
However, ids:description has range PlainLiteral. In case I want to supply structured information (e.g. using other RDF ontologies), I am stuck here.
In case we do not have a better construct to append such vocabs I suggest to change the range to rdf:Resource and provide best practices how to add both textual and machine-readable descriptions.

I really like this proposed enhancement, as it is something we currently stumble upon.
I’m not quite sure if the ids:description property is the best field, as we like to introduce new properties that are not an description per se. Also that will make it more complex to write descriptions for all entities of the information model, making it possibly (depending on the Java representation) harder to understand for developers.
My suggestion would be to introduce an new optional field to ids:Described with a field like ids:additionalProperties or ids:extension to ids:Described.
In our use-cases we often have a need for simple extensions, like a key-value map with specific domain or sector properties.

We need an example for our intended pattern for 2.0.0. @HaydarAk can you add one? For instance with an DBpedia entitiy.

It appears that we can do this via ids:theme, see: https://github.com/IndustrialDataSpace/InformationModel/blob/fb494ba2513f6799262751abe2d44b57507090b3/model/content/DigitalContent.ttl#L106
Issue seems to be resolved.


PIE-1858: Infrastructure for exposing PoA metrics for plugins.

PR description
Implements functionality for exposing PoA metrics for plugins.
Outstanding: Missing ability to add PicoCLI converters for MetricCategory objects registered from plugins.
Fixed Issue(s)
PIE-1858

Does the PicoCLI bit go here or in the plugin repo?


Merge branch 'develop' into feature/allow-connect-api-to-emqtt

Closes #72

What is the purpose of this PR?


Update favicon props in manifest.json

changed favicon sizes description to an array 64x64 32x32 24x24 16x16 as file contains multiple sizes. See w3c, mdc
changed favicon mime type from image/png to image/x-icon, as per this SO answer

This looks right to me. Thanks.

BTW it's recommended that favicon has sizes of 16x16, 32x32 and 48x48, see this SO question.
We would need to generate new file and change dimensions again.

Happy to take a PR. This is an SVG you can use as a base icon: https://github.com/facebook/react-devtools/blob/master/shells/webextension/icons/production.svg
It would be nice to find out what's the recommended sizes for manifest, and make sure we include those.

What is the hex code for the blue/ azure color used in logo?
In the file you provided it's #59c9f1, but current favicon as well as colors on https://reactjs.org/ site it's #61dafb

We should add size that is 144x144 or larger. Otherwise Chrome, Edge etc won't allow it to be added to the homescreen as a web app. Though I'm not 100% sure how .ico with multiple sizes work, I could create a PR to try fix this if you don't have time atm.


Add Accordion

I think a rich UI library like this needs an accordion.

@sslgeorge Hello! can I work in this issue?

@sslgeorge Hello! Is this issue taken?

Not yet

Me and @tcho0501 are on this

Hey folks -- Evergreen is heavily influenced by our own internal component needs at Segment. We don't have plans to include an Accordion component yet, but when we do, we'll be happy to let y'all know. Going to close this out for now.


SuperCharge enchant 0 damage level 4+

src/main/java/com/infamous/dungeons_gear/enchantments/ranged/SuperchargeEnchantment.java

This part of the code makes the damage zero when the enchantment is level 4 or higher :
double damageModifier = 0;
if (superchargeLevel == 1) damageModifier = 1.2D;
if (superchargeLevel == 2) damageModifier = 1.4D;
if (superchargeLevel == 3) damageModifier = 1.6D;
arrow.setBaseDamage(originalDamage * damageModifier);

It may need to be modified to something like this:
double damageModifier = 1.0D + 0.2D * superchargeLevel;
arrow.setBaseDamage(originalDamage * damageModifier);

Duplicate of #264


DNSRecord reconciler can fall into a continuous loop on AWS API errors

What
When an error is returned from the AWS API during a DNSRecord update the reconciler appears to continually try and make the same request forever.
There also seems to be some issue with the status update of the DNSRecord where the endpoints list is incorrectly updated in certain cases, such as when there is an error returned.
To reproduce create a DNSRecord with an invalid spec and apply it.

[ ]  add status condition to reflect error
[ ]  Add exponential back off for retry ensuring status reflects success or failure on retry

@mikenairn add issue for ManagedZone


Pipeline: Namespace management update.

versions files should be corrected with future core, computation and neuroimaging commits.
update_commits.py is updated but not tested.

@Raphael-Gazzotti sorry for causing the conflict here by merging #28 . can you please update?

PR#6 in neuroimaging should be accepted before this one and I will update the versions-dev.json file accordingly.


feat: adding a year selector to datepicker

Solving issue #116

Accidentally included commit f71e251, apologies.

Love that @jelleag! One thing I found while testing it:
The month selector buttons are aligned relative to the text in the middle, while the year selectors are always fixed outside. That causes the margins between month-selector-buttons and year-selector-buttons to vary based on the length of the name of the currently selected month.
It's a small thing, but maybe you can fix it easily :) Happy coding!

Bigger margins:

Many thanks @jelleag and @eykrehbein for this lovely discussion and contribution. We are working hard on release v1.2.0 right now. We just decided to consider year selection in this upcoming release and will use this PR as the base. Will probably adjust the styling a little bit.
Many thanks for this again! 🙏 😍

Sorry for the many commits, we messed up the branches a bit.. Thanks for the awesome PR!


fix: transform spread operator for Hermes

Summary
Hermes doesn't support spread operator. Added the necessary plugins to transform them to ES5 syntax.
Test plan
All tests should pass.

cc @zamotany, @thymikee


Add: Community Higher Technical Institute

Official Website: https://www.itsc.edu.do/
Academic Offer: https://www.itsc.edu.do/index.php/academicos/
Software engineering associate degree program: https://www.itsc.edu.do/index.php/informatica/
Contact Info: https://www.itsc.edu.do/index.php/directorio/

@Dennys04 First stage of verification passed, official domain is itsc.edu.do as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@philipto Thanks so much, I waiting for the final decision, It would be an honor for the students of the institute to have the student license, because that way they will be able to take better advantage of the Jetbrains tools

I have a problem, when I try to renew my student license, it won't let me.


Lazy Load Asynchronously?

Is there a mechanism to load the data async where the data contains something like "hasChildren" or "childCount" so we can set the appropriate icon (turndown or leaf icon), and then if the user expands that node, we get the next level async (send expanded node id)?

you can do that using the isLeaf function
http://wix.github.io/angular-tree-control/#isleaf
On Thu, Apr 28, 2016 at 7:48 PM, esinek<EMAIL_ADDRESS>wrote:

Is there a mechanism to load the data async where the data contains
something like "hasChildren" or "childCount" so we can set the appropriate
icon (turndown or leaf icon), and then if the user expands that node, we
get the next level async (send expanded node id)?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/wix/angular-tree-control/issues/213

I also tried lazy load using isLeaf and on-node-toggle.
https://gist.github.com/tyru/96a6afd47314f271c4b8695e1419c698
P.S. Thanks for inventing a great component :)


:sparkles: Get a resource by his model FQCN

New method getResource(string $model): ?Resource on FilamentManager to get a resource by his associated model FQCN.
In my case this method is useful when I want make a link to a resource page on morph relation. I can get directly the resource associated to the model_type in morph relation.
Example of my usage :
Tables\Columns\TextColumn::make('relation')
    ->label(__('relation'))
    ->getStateUsing(fn(Media $record) => $record->model_type . ': ' . $record->model_id)
    ->url(fn(Media $record) => Filament::getResource($record->model)::getUrl('edit', ['record' => $record->model]), true)

Render of this example :

Thanks, I've renamed it to getModelResource().


Recording Timelapse Video

Hi Konrad,
I'm trying to record a timelapse video but something seems not right. I first set the Timelapse Video mode through this:
'gopro = GoProCamera.GoPro(constants.gpcontrol)
gopro.mode(constants.Mode.VideoMode, constants.Mode.SubMode.Video.TimeLapseVideo)
gopro.gpControlSet(constants.Video.VIDEO_TIMELAPSE_INTERVAL, constants.Video.VideoTimeLapseInterval.IHalf1)'
I tried using shoot_video after this but I think it sets to video mode. After that I tried
gopro.shutter(constants.start).
Can you please help me with this? Also, how to set the timelapse video duration?
Thanks.

Hi,
It should be:
gopro = GoProCamera.GoPro(constants.gpcontrol)
gopro.mode(constants.Mode.VideoMode, constants.Mode.SubMode.Video.TimeLapseVideo),
gopro.gpControlSet(constants.Video.VIDEO_TIMELAPSE_INTERVAL, constants.Video.VideoTimeLapseInterval.IHalf1)
gopro.shutter(constants.start)

I had these commands as well but was not working before. Works now though, thanks!

Hi Konrad,
Can you please let me know what do the VideoTimeLapseInterval values indicate?
IHalf1 = 1 frame recorded every 0.5 sec
I1 = 1 frame/1 sec
I2 = 1 frame/2 sec
I5 = 1 frame/5 sec
Is that correct?

Yes.


[BUG] Issue deleting file in cellfinder_cell_standard on Windows

See https://github.com/SainsburyWellcomeCentre/cellfinder/issues/108#issuecomment-626306738
File in use, so can't delete. cellfinder_cell_standard doesn't run on Windows without the --debug flag

Fixed in 58d4c1a85cc0436c7f2f22adec41d9d79a5bb796


Test codecs linux

There seems to be a race condition in __inport__ in CPython 3.4 on Linux, that a 10 ms delay solves.

CI will fail because changes in 02c5376e4dc04f61a4e568536552d803aac778d1 depend on d3c3de30e6e3b926f7f59cf55814c6113d638af4 from master (#705), but I have merged to workdir with master on all three platforms to verify and it works after merging.

I suppose CI tests the merged version, after all it is called CI :blush:

Thanks for the PR!

My thanks.


deprecate module currentweather and weatherforecast

Adding logging when using deprecated weather-modules (had to add a NodeHelper for each)
Updating sample config file to use the new weather module
Added comment in code about not accepting new features
Added warning in the old weather modules readme

Codecov Report

Merging #2433 (948b6c8) into develop (a3cb0b7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2433   +/-   ##
========================================
  Coverage    39.40%   39.40%
========================================
  Files           20       20
  Lines         1609     1609
========================================
  Hits           634      634
  Misses         975      975

Impacted Files
Coverage Δ

modules/default/currentweather/currentweather.js
1.40% <ø> (ø)

modules/default/weatherforecast/weatherforecast.js
22.96% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a3cb0b7...948b6c8. Read the comment docs.

Codecov Report

Merging #2433 (948b6c8) into develop (a3cb0b7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2433   +/-   ##
========================================
  Coverage    39.40%   39.40%
========================================
  Files           20       20
  Lines         1609     1609
========================================
  Hits           634      634
  Misses         975      975

Impacted Files
Coverage Δ

modules/default/currentweather/currentweather.js
1.40% <ø> (ø)

modules/default/weatherforecast/weatherforecast.js
22.96% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a3cb0b7...948b6c8. Read the comment docs.

Thanks. I like this. Might give some issues with your other weather PR. Which one would you like me to merge first?

Thanks. I like this. Might give some issues with your other weather PR. Which one would you like me to merge first?

The other one, this one is easier to redo :)

The other one, this one is easier to redo :)

Merged the other one. Is the weatherEndpoint still necessary in the config?

Merged the other one. Is the weatherEndpoint still necessary in the config?

Yes, both before and after the other pull request.
Using forecast/daily will just get stuck on "Loading..." without specifying it, that's why I defined it like that in the sample config.
Could possibly make it so it makes sane guesses for weatherEndpoint based on type when it's not specified?

Yes, both before and after the other pull request.
Using forecast/daily will just get stuck on "Loading..." without specifying it, that's why I defined it like that in the sample config.
Could possibly make it so it makes sane guesses for weatherEndpoint based on type when it's not specified?

I think indeed it's a good idea to use a default one that works no matter what type of account you have. The simpler the necessary config, the better.

I think indeed it's a good idea to use a default one that works no matter what type of account you have. The simpler the necessary config, the better.

Removed the default value for weatherEndpoint and if it's not set have sane defaults.

Removed the default value for weatherEndpoint and if it's not set have sane defaults.

Thanks for your great contribution!

Thanks for your great contribution!


⚗ Testing doc builder

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Markers - Add edge markers

Add edge ability so we can point out the direction of important markers when they scroll out of view:
https://github.com/ubergesundheit/Leaflet.EdgeMarker

Maps are generally too small for this. Will close for now but reopen if it's requested


Report the old version of the dependency

For example, instead of just<EMAIL_ADDRESS>it should be<EMAIL_ADDRESS>=><EMAIL_ADDRESS>

Just came here to say this too. It would also be great if it said what SemVer range was being bumped.
For example in this PR: https://github.com/lukechilds/node-browser-environment/pull/9 I have to check the diff to see that it is updating from 6.9.0 to 6.14.0 and that it's a minor SemVer bump.
It would be great if you added to the table:

State
Update 🚀

SemVer Bump
Minor

Previous version
6.9.0

New version
6.14.0

Thanks for suggestion.
We're considering this, please track the status here https://github.com/greenkeeperio/greenkeeper/issues/77


Copy over IP Adress in the README.md file

Saw this while looking at the repo ^^

Thank you! :heart:


Update video-indexer-embed-widgets.md - Fixed Origin of video events

@MACEL94 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Change property tests to use tape-check

It is better to do things a standard way. We should remove helpers.js and changes the tests to tape-check. We should do this sooner rather than later, before new tests are added.
The format of tape-check is very similar to the existing specs. It should not be a big deal.

Closed by #14


All modal should have close button

Need to implement all modal should have a close button on the right side.

Reference XD link:- https://xd.adobe.com/view/a14b2273-19ad-4c4c-976f-09bac56e5fa6-f418/screen/cab3c7c9-acf2-4974-b801-6ba8fc0055c1/

No x button on log in or wallet creation modal or any such modal.

to test and close @Deveshshankar

Completed


Should gko::Array be gko::array?

According to our contribuiting guideline naming scheme - structures and classes, gko::array should be the correct term not gko::Array.
If we keep following the guideline, we can create the alias in release 1.x and annouce a interface change/breaking in release 2.
if not, we need to adjust the guideline.

+1. I think to make it consistent, we should change it to gko::array. I dont think we can really update the rule to make it consistent. This would also mean updating ConstArrayView to const_array_view and so on.


Multi-input MTL

Most of the research papers for the implemented architectures and weighting methods seem to deal with single-input-multi-output tasks such as simultaneous object detection and segmentation from a single image. However, LibMTL also supports multi-input tasks, where each task has its own data (e.g. MNIST where each digit has its own task-specific layers). Is there a set of research papers that discuss this approach? I'm curious to learn how LibMTL evaluates the loss in these situations. I can dig into the code to get a deeper understanding, but in the meantime, if there are papers that discuss this, it would really help to have some links (and maybe update the docs).
Thanks!

Many papers conduct experiments on those datasets with multi-input tasks. For example, the multilingual problems on the XTREME benchmark are used by GradVac and RLW. Moreover, we have provided a multi-input example in examples/office.

Thank you for the resources!


cabana: default factor to 1

Qt cabana is very usable, and so much faster :)

I'm happy you like it :)

If you've got any feedbck: https://github.com/commaai/openpilot/discussions/26091


Fix filtering step

Some occurrence records have no climate data, or share a raster cell with a second occurrence record (eg, P. machaon).  We're notified of the problem when we run a maxent with ENMeval. Possible solution: do NA and shared cell filtering with both terra and raster objects.

TL;DR: I think this problem lies with ENMeval::ENMevaluate() and one that we are unlikely to fix. Thoughts, @ezylstra ? I have refrained from pushing the updated gbif-2-filter.R script, as I think it adds compute that doesn't solve our problem.
Working on this, testing with P. machaon. Implemented climate NA removal and thinning via terra and raster approaches, but did not fix the issue when running MaxEnt in butterfly-sdms-spatialCV.R. Two observations removed (one for NA climate, one for shared cell.)

row
gbifID
Longitude
Latitude
Reason

20
2466530611
-112.0000
68.25000
Climate data NA

368
3350920166
-108.9200
49.50000
Shared cell with another point

Likely related to the fact that these points are on grid cell intersections:
bio1 <- terra::rast(x = "data/wc2-1/bio1.tif")

# The point excluded due to climate NA:
bio1_crop <- terra::crop(x = bio1, y = terra::ext(-112.2, -111.8, 68.15, 68.3))
plot(bio1_crop)
points(x = -112, y = 68.25, col = "red", pch = 19)

# The point excluded due to sharing a cell with another point:
bio1_crop <- terra::crop(x = bio1, y = terra::ext(-109, -108.8, 49.4, 49.6))
plot(bio1_crop)
# The point that gets removed (on cell boundary)
points(x = -108.92, y = 49.5, col = "red", pch = 19)
# The point that is retained
points(x = -108.9536, y = 49.50181, col = "black", pch = 19)

Point removed due to missing climate data:

Point removed (red) because there is another point (black) in the same cell:

Furthermore, when running the line of code in ENMeval::ENMevaluate() that produces the warning on the original data set (i.e. the occs object from lines 83-85 in butterfly-sdms-spatialCV.R), it does not indicate any duplicates (see lines 444-446 in https://github.com/jamiemkass/ENMeval/blob/199bf0181716b25ea5033be16ed8c6efadcfbd95/R/ENMevaluate.R#L447).
Just looking at the three original points, they appear to (1) be in cells with climate data and (2) be in different cells when using the raster::extract() function (below) and terra::extract() function (results not shown).
bio1_raster <- raster::raster(x = "data/wc2-1/bio1.tif")
unfiltered <- read.csv(file = "data/gbif/downloaded/papilio_machaon-gbif.csv")
cell_nums <- raster::extract(x = bio1_raster,
                             y = unfiltered[, c("longitude", "latitude")],
                             cellnumbers = TRUE)
cell_nums <- data.frame(cell_nums)
# Add GBIF ids so we can pull out specific observations
cell_nums$gbifID <- unfiltered$gbifID
cell_nums[cell_nums$gbifID %in% c(2466530611,<PHONE_NUMBER>,<PHONE_NUMBER>), ]

ID
cells
bio1
gbifID

115
1775786
3.803565
3335373107

319
471817
-4.358409
2466530611

846
1778690
4.083460
3350920166

So I'm just stumped. :-/

@jcoliver Thanks for looking into this in depth!  We do have a workaround if necessary, but I'll look more at things tomorrow morning just in case (though I'm sure you're right).  I'll let you know either way.

I think I solved it!  The problem isn't due to ENMeval, but actually occurs when cropping and masking the rasters.  If we add an argument: snap = "in", to the terra::crop() function, we don't run into problems with NA climate values or multiple occurrence records in one cell. This means that the gbif-2-filter.R script is fine as is. All changes will need to be made downstream (eg, in template-CV.R) when cropping rasters for a particular species. Given that, I'm going to go ahead and create new presence-absence datasets with the spatial folds.


support ESTABLISHED but not accepted conn or SYN_RECEIVED conn lossless migrate

Mosn support ESTABLISHED but not accepted conn or SYN_RECEIVED conn lossless migrate now?
or only support ESTABLISHED and accepted conn lossless migrate?

I think that MOSN support ESTABLISHED and SYN_RECEIVED conn，and MOSN will support SYN_RECEIVED conn by migrating listen socket.
But I have not verified this，try it！

I think that MOSN support ESTABLISHED and SYN_RECEIVED conn，and MOSN will support SYN_RECEIVED conn by migrating listen socket. But I have not verified this，try it！

Sure support? I will check Mosn's source code later.
afaik, actually, Linux kernel 5.14 supports socket migration just now.

https://mosn.io/docs/concept/smooth-upgrade/
Maybe it will help you to read the source code 😄


docs: refactor search modal

This PR refactors the Search logic to allow you to launch a search from the landing page and cleans up the Search component generally.

state/Modal has been moved into a SearchProvider and passed down via context
<Search /> is basically just the UI "button" and doesn't render the modal anymore
keyboard shortcut works everywhere (even without rendering <Search />)
rendering <Search /> twice won't cause the keyboard shortcut to render 2 modals
removed props, states, and variables that were unused/misspelled
renders the Search "button" in the nav for larger displays (not changed on tablet/mobile)

WOW! Love this change.
I did notice some weird layout squish when you get smaller with the menu:

With that fixed, I love it! Would you be willing to apply the same changes to the React Table documentation? (It uses the exact clone of these docs)

Interesting, I'll take a look. I tested each of the device breakpoints in chrome but forgot to try resizing the window itself. Also, looks like a force pushed commit changed some commit hashes in master

@tannerlinsley I fixed the layout issue and made the same change in react-table, which was torturous because I'm still on v6 so none of those shiny new docs are any good to me 😾

Yeah, there was a bad commit message in the history that was causing a major version increment, so I had to go in and clobber some things. Thanks for updating! :)

:tada: This PR is included in version 2.5.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Locations page doesn't render

On the deployed site, when you try to navigate to a locations page from the search page it takes you to the following url /locations/null

 Locations page doesn't render

For clarification, this does only happen on the deployed site

Disregard this issue, looks like the server was just a little slow


Retain previous MartenCommandException ctor and introduce a new one (…

…instead of optional arg) for binary compatibility.
Idea to contain known exceptional cases + related info in KnownExceptionCause.
Refine FullTextSearchNeedsAtLeastPostgresVersion10 detection so it's not fooled by other datatypes not supported by to_tsvector.
Introduce tests for said features.

@jokokko I'm closing this PR, as I cherry picked manually your commits into https://github.com/JasperFx/marten/pull/1286/files.


Revert "[yyyy] [name of copyright owner]"

Sneaky Apache boilerplate is sneaky.


Add skip element to hook object AND allow root DOM with children in patch

Allow the root DOM element to have children when used as original patch target: patch(document.getElementById('container'), vtree). Without this patch the original child would be ignored and therefore duplicated if included in the vtree. This problem can also be overcome with toVNode but not always preferable to use it.

you can solve this today by doing:
patch(toVNode(document.getElementById('container')), vtree)

no changes needed.

@caridy, do you see any problems adding a for loop in the emptyNodeAt function?
Some benefits from expanding the emptyNodeAt DOM conversion to include possible children in the root DOM element are: to simplify the interface, i.e. not having to figure out you need toVNode, and in situations where Snabbdom and it's patch function are buried within a hierarchy of modules and the patch implementation is limited or inaccessible, and if toVNode is not needed elsewhere it simplifies the program to not have to include it.

@bloodyKnuckles yes, that's part of #359 (which is implemented by #362) in which such ambiguity is not longer a problem since you're forced to always use toVNode.

I have updated my Snabbdom fork by adding a "skip element" flag to the hook object. This allows preparing of a particular DOM element prior to Snabbdom patching when that element has complex HTML/JS and is manipulated by a separate process other than the Snabbdom patch that patches the skip element's parent DOM element.

@bloodyKnuckles you don't need any of these to just skip the element. You can create a simple vnode without data or children, and a unique key, and snabbdom will not touch it.

@caridy how does the key in the vnode correspond with the DOM element to be skipped? I'm using Snabbdom through CycleJS so access to the DOM element and Snabbdom are limited. For example, here's a code example: https://codesandbox.io/s/01qjkpwv5v How can the id="preserve" element be preserved with existing Snabbdom functionality as it is accessible through CycleJS? Keep in mind that the id="preserve" is complex, changing, and manipulated by a separate process. So simply adding div('#preserve', 'preserve') to the VDOM stream does not accomplish the goal.

@caridy how does the key in the vnode correspond with the DOM element to be skipped?

this is not really required! you can probably go without the key if there is no ambiguity with the siblings, that's all.

How can the id="preserve" element be preserved with existing Snabbdom functionality as it is accessible through CycleJS?

that's probably a question for @staltz. I'm just explaining how snabbdom works internally. If two vnodes are the same (via key, or selector), and there is no data, and no children specified in those vnodes, they modules will not attempt to mutate the element, which seems to be what you want. That means that you can have another process that makes changes to it (via a different patch routine, or just direct mutations on the DOM).

@caridy I appreciate you looking at it. I think you've summed up my problem with "If two vnodes are the same...". The target DOM element is not the same as the new vnode. So my goal is to be able to skip patching an element regardless of vnode similarity. The simplest solution I can think of is a skip flag.

@bloodyKnuckles maybe I don't understand that. Snabbdom is very simple, you have two children collection, the oldVnode.children and the newVnode.children, and you have to compare them, independently of what is really in the DOM (snabbdom assumes that oldVnode.children is an accurate representation of what is in the DOM at the moment of the patching).
now, if you want to maintain an element corresponding to a vnode from oldVnode.children, it must exists as a vnode in newVnode.children, and it must be distinguishable from the rest. attempting to just skip things from newVnode.children as if it wasn't part of the children collection in the first place can have undesirable results because the diffing algo may decide to add things before or after, so the final result is a non-deterministic order of childNodes. That's why we are suggesting to use the vnode identify in old and new vnode to produce the exact output that you want.

...the diffing algo may decide to add things before or after, so the final result is a non-deterministic order of childNodes.

@caridy I agree, this is important. I added 5 more tests that reorder, add, and remove nodes—all pass. I'm trying to think of more potential pitfalls. Can you think of any more situations that need testing?

It is hard to tell because I haven't understand what are you trying to do. Those changes are definitely not something that we can do because it will impact the perf by adding those extra checks and string computations during the critical path, so there must be another way to do what you want/need, but someone has to understand those requirements so we can help you.

@caridy yes, performance is another important consideration. Regarding adding a "skip element" flag, if there is no skip flag in the code the only additional code to run is:
'undefined' !== typeof vnode.data && hasSkip(vnode.data)
hasSkip is:
function hasSkip(s) { return isDef(s = s.hook) && isDef(s = s.skip) && s === true; }
Those are all &&s so as soon as a false is hit it's done.
How is Snabbdom performance tested? That'd be nice to know the performance hit these checks bring.
Regarding purpose, simply put, I want to create a "black hole" in the VDOM that corresponds to a DOM element. The reason for this is to allow an element to be manipulated by a separate process other than the one that manipulates the DOM surrounding the "black hole". If I was only using Snabbdom toVNode does the trick. However I'm using CycleJS and don't have the same kind of direct access to the DOM when building the VDOM.

@bloodyKnuckles I think what you want to achieve can be done with thunks (see the thunk docs in snabbdom). They basically exist to enable a hook into "patch".

@staltz that was one of the first things that came to mind but didn't
figure out how. I can take another look.
On Feb 5, 2018 5:47 AM, "André Staltz"<EMAIL_ADDRESS>wrote:

@bloodyKnuckles https://github.com/bloodyknuckles I think what you want
to achieve can be done with thunks (see the thunk docs in snabbdom). They
basically exist to enable a hook into "patch".
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/snabbdom/snabbdom/pull/363#issuecomment-363061932,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADadK16zOP12A7I7FepXNtkJJJQEggSLks5tRuo7gaJpZM4R0Dvb
.

@staltz The problem I have with thunk is it overwrites the pre-existing DOM element.
For example, plain Snabbdom: https://codepen.io/anon/pen/WMxzQe?editors=1010
And CycleJS: https://codesandbox.io/s/k229v302vv
I need a way to tell Snabbdom to skip the element entirely, even on initial vtree render. I've also looked at the various hooks, init, prepatch, create, etc. but have not found a way with Snabbdom as-is to create this "black hole" in the VDOM, (other than toVNode but as mentioned I don't see how to access the DOM element in a CycleJS cycle in order toVNode it.

@bloodyKnuckles You're getting close.
In snabbdom, a patch is avoided when the next vnode is the same object as prev vnode. The initial patch, as you said, occurs by default because the prev vnode in this case is actually a so-called emptyVNode, and emptyVNode === myFirstVNode usually evaluates to false.
To fix that, you need to use toVNode so that the first comparison is not with emptyVNode. If the diff always occurs with the same vnode object, no patch will ever happen. So you need to create that constant vnode once, with toVNode, then use it in the thunk every time:
var patch = snabbdom.init([]), h = snabbdom.h, p1;
var tovnode = tovnode.default
var thunk = snabbdom.thunk
var contentTree = tovnode(document.getElementById('container'))
var middleEl = document.getElementById('middle')
var vmiddle = tovnode(middleEl)

console.log(vmiddle);

var vtree = h('div#container', [
  h('div#top', 'a'),
  thunk('div#middle', (a) => vmiddle, ['donotwritethis']),
  h('div#bottom', 'c'),
])
p1 = patch(contentTree, vtree)

I tested this in the codesanbox and it worked. :)

@staltz I have experimented with toVNode but have not figured out how to access the skippable DOM element within a CycleJS app: https://codesandbox.io/s/k229v302vv

Curious about the performance hit, I ran this test with and without the proposed hasSkip hook:
var vtree = sh('div#app', [
  sh('div#one', 'a'),
  sh('div#two', 'b'),
  sh('div#three', 'c')
])
p1 = patch(document.getElementById('app'), vtree)

var t0 = performance.now(), ii = 0
while ( 1000000 > ii ) {
  var vtree = sh('div#app', [
    sh('div#one', 'a ' + ii),
    sh('div#two', 'b ' + ii),
    sh('div#three', 'c ' + ii)
  ])
  p1 = patch(p1, vtree)
  ii++
}
var t1 = performance.now()
console.log(t1-t0)

I ran the test 10 times, switched bundles, ran 10, switched bundles, ran 10, switched bundles, ran 10. And here's the results I got:
hasSkip:  3214.5999999993364
hasSkip:  3143.6000000030617
hasSkip:  2923.6999999993714
hasSkip:  3179.7000000005937
hasSkip:  3099.39999999915
hasSkip:  3126.299999996263
hasSkip:  2972.3999999987427
hasSkip:  3102.999999995518
hasSkip:  2979.800000000978
hasSkip:  3230.8999999950174
sd:  2855.0000000032014
sd:  2988.2999999972526
sd:  2882.7999999994063
sd:  2970.000000001164
sd:  2970.900000000256
sd:  3062.2999999977765
sd:  2949.1999999954714
sd:  2965.7999999981257
sd:  3011.500000000524
sd:  3000
hasSkip:  2906.4999999973224
hasSkip:  2932.0000000006985
hasSkip:  2813.6000000013155
hasSkip:  3036.2999999997555
hasSkip:  2932.700000004843
hasSkip:  3059.500000003027
hasSkip:  3131.3000000009197
hasSkip:  3051.500000001397
hasSkip:  2967.499999998836
hasSkip:  3118.399999999383
sd:  2966.3000000000466
sd:  2742.7000000025146
sd:  2939.699999995355
sd:  2776.5999999974156
sd:  3036.2999999997555
sd:  3042.699999998149
sd:  3004.800000002433
sd:  2969.2999999970198
sd:  3104.0999999968335
sd:  3026.2000000002445

hasSkip AVG:	3046.1349999998 (3097.3399999988/2994.9300000007)
sd AVG:		2963.2249999991 (2965.5799999993/2960.869999999)

And here's the test bundles DIFF:
144a145
> function hasSkip(s) { return isDef(s = s.hook) && isDef(s = s.skip) && s === true; }
145a147,149
> function sameVnodeId(vnode1Sel, vnode2Sel) {
>     return vnode1Sel.indexOf('#') > -1 && vnode1Sel.split('.')[0] === vnode2Sel.split('.')[0];
> }
147c151,154
<     return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;
---
>     return ((vnode1.key === vnode2.key && vnode1.sel === vnode2.sel)
>         || ('undefined' !== typeof vnode2.data && hasSkip(vnode2.data)
>             && 'undefined' !== typeof vnode1.sel && 'undefined' !== typeof vnode2.sel
>             && sameVnodeId(vnode1.sel, vnode2.sel)));
183,184c190,197
<         var c = elm.className ? '.' + elm.className.split(' ').join('.') : '';
<         return vnode_1.default(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);
---
>         var c = elm.className && 'string' === typeof elm.className ? '.' + elm.className.split(' ').join('.') : '';
>         var elmvnode = vnode_1.default(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);
>         for (var child = elm.firstChild, ii = 0; child !== null; child = child.nextSibling, ii++) {
>             if (1 === child.nodeType && 'undefined' !== typeof elmvnode.children) {
>                 elmvnode.children[ii] = emptyNodeAt(child);
>             }
>         }
>         return elmvnode;
384c397
<         if (oldVnode === vnode)
---
>         if (oldVnode === vnode || ('undefined' !== typeof vnode.data && hasSkip(vnode.data)))
507,510c520,523
< //var init = require('../../modules/snabbdom/snabbdom.js').init
< //var sh = require('../../modules/snabbdom/h.js').h
< var init = require('../snabbdom/snabbdom.js').init
< var sh = require('../snabbdom/h.js').h
---
> var init = require('../../modules/snabbdom/snabbdom.js').init
> var sh = require('../../modules/snabbdom/h.js').h
> //var init = require('../snabbdom/snabbdom.js').init
> //var sh = require('../snabbdom/h.js').h
531c544
< console.log('sd: ', t1-t0)
---
> console.log('hasSkip: ', t1-t0)
533c546
< },{"../snabbdom/h.js":1,"../snabbdom/snabbdom.js":4}]},{},[7]);
---
> },{"../../modules/snabbdom/h.js":1,"../../modules/snabbdom/snabbdom.js":4}]},{},[7]);


Refactor realm domains code to create RealmAuditLog entries and perform database operations atomically.

First three commits are for creating the RealmAuditLog entries. For now I have added three separate codes for creating, changing and removing the domains.
Last three commits are for doing DB operations atomically.

Other places where we do not create RealmAuditLog entries are -

For changes to RealmEmoji, RealmPlayground and RealmFilter table.
changing max_invites, message_visibility_limit and upload_quota_gb values which are changed only on chaning realm plan.

This looks correct but I'm wondering if this is the format we want for these audit log entries.  @alexmv @mateuszmandera I'd be curious for your opinion, but it seems like it might be nicer to just have the new set of domains be what we record in these audit entries, rather than these more tactical changes, but I'm not really sure and I expect you to have a more informed opinion on what feels convenient for parsing.

changing max_invites, message_visibility_limit and upload_quota_gb values which are changed only on changing realm plan.

Probably a good discussion topic for #backend whether we want these to have independent RealmAuditLog entries, and if so, whether we want to backfill these with our historical plan-change data.

Merged, thanks for doing this @sahil839!


Feature: Add Infobox to link to individual DC pages

Summary
This branch adds an Infobox element to link to the individual DC pages on the website.
Changes
The changes made in this PR are:

Adds a clickable Infobox.
...

Check

[x] All checks pass
[x] That the Infobox link works
[x] The tutorial works with the new Infobox element.
[x] The travis.ci and R CMD checks pass.

(OPTIONAL) Note
This "fixes #<issue_number>"
<other things, such as how to incorporate new changes>

Is this ready for me to review, @martinctc?

Thanks for this, a couple of further thoughts:

What do you plan to show on the webpage that's different to the Shiny app?

Currently, it's showing the same information as the Shiny app. I think we could build on the extra space the webpage has by including stuff like polling information, voting record etc.
Though, should be mixing the website and Shiny app together? If we think about the website and this dashboard as products, then we should ask ourselves, what need does each product serve. I was thinking the website serves the purpose in being a central place to access all our projects whilst the Shiny app serves the purpose of providing District Councillor information.
In this regard, would putting the extra information on a separate tab on the Shiny app work better in terms of keeping things focussed? This might work better from a UX perspective as the user can easily go back and change the DC they want more information on.

There's a bit of a difference in style between the web page and the Shiny app.

This can indicate to the user that the Shiny app is separate to the webpage, when they are actually linked in terms of being within the same umbrella organisation.

All great points! If I'm completely honest, this was driven by a desire to see whether it's possible to generate programmatically an individual page for each District Councillor, and the ability to link to each individual DC (currently not possible with the Shiny app). But if you think about it, it could work this way (elaborating on your suggestion):
(1) The app acts as a starting point for users to get basic information about the DC, which is pretty much what we've got now. If they want to see more, they can visit the individual DC page which is linked on the app. The app is supposed to make it easier for the user to search for DCs, versus searching on the site; e.g. it's not possible to do checkbox toggles on the website.
(2) The individual page, as you said, could provide much richer detail about the DC, including charts, voting records, or even a line of introduction that we could ask DCs to submit. It could well be a mini portfolio for the DC - the possibilities are quite endless.
I agree also with the styling point, but that's more minor and we can sort out down the line - at least we've got the same logo being shown!

Thanks for this, a couple of further thoughts:

What do you plan to show on the webpage that's different to the Shiny app?

Currently, it's showing the same information as the Shiny app. I think we could build on the extra space the webpage has by including stuff like polling information, voting record etc.
Though, should be mixing the website and Shiny app together? If we think about the website and this dashboard as products, then we should ask ourselves, what need does each product serve. I was thinking the website serves the purpose in being a central place to access all our projects whilst the Shiny app serves the purpose of providing District Councillor information.
In this regard, would putting the extra information on a separate tab on the Shiny app work better in terms of keeping things focussed? This might work better from a UX perspective as the user can easily go back and change the DC they want more information on.

There's a bit of a difference in style between the web page and the Shiny app.

This can indicate to the user that the Shiny app is separate to the webpage, when they are actually linked in terms of being within the same umbrella organisation.

All great points! If I'm completely honest, this was driven by a desire to see whether it's possible to generate programmatically an individual page for each District Councillor, and the ability to link to each individual DC (currently not possible with the Shiny app). But if you think about it, it could work this way (elaborating on your suggestion):
(1) The app acts as a starting point for users to get basic information about the DC, which is pretty much what we've got now. If they want to see more, they can visit the individual DC page which is linked on the app. The app is supposed to make it easier for the user to search for DCs, versus searching on the site; e.g. it's not possible to do checkbox toggles on the website.
(2) The individual page, as you said, could provide much richer detail about the DC, including charts, voting records, or even a line of introduction that we could ask DCs to submit. It could well be a mini portfolio for the DC - the possibilities are quite endless.
I agree also with the styling point, but that's more minor and we can sort out down the line - at least we've got the same logo being shown!

I like the use of the website because of the different webpages and so if we incorporate GA tracking on it also, then we really can see how people visit different pages and then further down the line, if we can get this information from BigQuery, we could do some user-journeys analysis. Currently, the Shiny app exists as 'one' page, so we can't actually see what people do on the app.

One thing that's on the back of my mind is to add some bookmarking functionality to the app which could be a way we get around this.

I thought more about the extra information like voting records, charts etc. and I think they will suit the format of the Shiny app, though better if it's placed on a different tab to avoid overloading mobile screens. This has the benefit of strengthening our entry to the Shiny Competition as we have more to show the panel (though I think the app in its current state is impressive as is).
Nevertheless, that's a minor point. My big questions surrounding the use of the website in this way are:

What is the focus of the website from a product perspective? My understanding was it acts as a gateway for all our projects, providing high-level descriptions for them and links to them. (Like the diagram below) Should we start mixing it with DC information, then we will need to revise what the website's aim is.
I link to instantly go back to the dashboard would be useful so that they can easily view another DCs information.

From the perspective of the website as a product, what is the focus of it? My understanding was it acts as a gateway for all our projects, providing high-level descriptions for them and links to them. (Like the diagram below) Should we start mixing it with DC information, then we will need to revise what the website's aim is.

Thus, the website is like the public frontend to the GitHub organisation that you set-up.

The ease of switching back and forth between the Shiny app and the website so users can look at the more granular detail for each DC.

Just on this, I think you're right that the website is intended to be a gateway for all our projects. But since our projects are unified by a common theme (i.e. Hong Kong districts), having individual pages for the District Councillors is actually fine because we have the flexibility to connect traffic collision insights in the individual DC pages (for example). So it need not conflict with the original intent of the website? I'm kind of inclined to let these individual pages evolve more organically and see what we can populate on these - simply being able to have everything in one place by constituency is adding so much value already.

Just went through your conservations. Sorry guys, am I correct that we are thinking to add the new data (e.g. voting records, polling information) into the website (e.g. https://hong-kong-districts-info.github.io/dc/k-07/) instead of the shiny app?
I am personally more inclined to adding these new data to the shiny app. My reasons are as follow:

Like @avisionh said, the website is a gateway to all our projects. We may want to keep it at high level to accomplish only basic tasks such as providing district councillors' contact information quickly and releasing blog articles. At the moment I see each project as an app to provide information on a specific area of a district council (e.g. district councillors analysis, traffic analysis). They are reserved for people who are interested in more in-depth, specific data visualisation.
Once we have identified more data related to each district councillors, the interactive features from shiny will become handy to allow users to draw insights from all the data (which may be difficult to perform on the website?). The user stories could be: 1) Finding out which of the candidates won the election by small amount of votes; 2) Finding out the top 10 candidates with the lowest attendance to their district regular meeting.

I do acknowledge that limitation that we cannot do much user-tracking with shiny app.

Great work on making the iframe more responsive - happy with this!


Migrate Angular router link tests to use RouterTestingHarness

Pull Request
🤨 Rationale
We have several tests that verify Angular router link behavior by clicking links and inspecting router state. These tests exhibit a couple problems:

currently they report warnings in the output log like: [web-server]: 404: /_karma_webpack_/page1?param1=true
In #2387 when we bring in a newer version of Chromium, these cause other tests to fail to execute and report timeouts

The root cause of these issues is that the tests are actually trying to navigate the page when the link is clicked.
👩💻 Implementation
"with-href" nimbleRouterLink tests
In researching best practices for writing tests like this I learned that the RouterTestingModule we had been using has been deprecated and replaced with a more powerful RouterTestingHarness. This blog and video does a good job of explaining it, much better than the angular docs. The basic idea is that the harness sets up a parent component and router which host your component under test. When something tries to navigate the harness captures information about the navigation but doesn't actually navigate the page.
The fixes in this PR are to use RouterTestingHarness instead of RouterTestingModule. This has these side effects:

The routes are configured with provideRouter instead of withRoutes
The navigated route started to be relative to the current route, so starting from /start and clicking a link to page resulted in a URL of /start/page. The simplest fix I found for this was to change the starting page to /.
Some setup code could be deleted and made sync/async instead of fakeAsync.

In addition even if the router doesn't navigate the page we are still invoking click handlers on anchors which try to navigate the page. To address that I'm calling preventDefault() from those handlers.
error routerLink tests
These tests included a RouterTestingModule but didn't actually need it or RouterTestingHarness so I deleted them
package.json
Added a couple dev scripts that I found useful while running tests locally. We didn't have an obvious way to debug angular tests or to run just the tests for one project and now we do.
🧪 Testing

Verified the 404 warnings are no longer printed to the console
Verified the tests don't navigate the page in the newer version of Chromium
TODO: verify tests fail with various changes

✅ Checklist

[ ] I have updated the project documentation to reflect my changes or determined no changes are needed.

@m-akinc I think I found a fix to the router test issues we talked about this week. Could you buddy the approach in this one test? If it looks good I'll apply it to the other router link tests.

Looks good to me. The only thing I would suggest is that when updating the rest of the tests, there might be a way to simplify the reuse (and reduce duplication) by introducing a NimbleRouterTestingHarness that abstracts all the common configuration and stuff like:
public get anchor(): Anchor {
    return this.harness.fixture.debugElement.query(By.css('nimble-anchor')).nativeElement as Anchor;
}

@m-akinc I've applied the pattern to all the tests and reset your vote. I considered this suggestion but didn't end up using it. For test code I'm ok with a bit more duplication in the interest of readability / transparency so it didn't seem worth it to share just this one line.


breaking: precompress by default

I'd like to merge this together with https://github.com/sveltejs/kit/pull/11653 where we're already doing a major version bump in adapter-node.
I was looking at a major SvelteKit project and they were just using the default options and not precompressing assets, which would have made their site much faster. It made me wonder why we weren't doing it by default as I believe we should have our defaults align with making sites fast. This feature was originally introduced in https://github.com/sveltejs/kit/pull/1693. It was made false by default there as they were worried about adding to build time. I tried building the site with both true and false and there was minimal if any difference in speed, so I don't think we should let that block us
Should we just remove the option and always do it by default? I don't really see why you'd want to be able to disable it. There are potentially other options you'd want to be able to set though (https://github.com/sveltejs/kit/issues/10789). Removing the option would free up space for new options. Or perhaps we should make it precompress.enabled as another way of freeing up the namespace

How does precompress work with reverse proxies like nginx that might also precompress? Having a reverse proxy was something we recommended for adapter-node in past issues.

It sounds to me like it handles it just fine. It says it:

does not “double compress” responses that are already compressed

https://docs.nginx.com/nginx/admin-guide/web-server/compression/

Sounds like it's fine leaving it on by default then? But I'm not well versed with node servers and nginx. I think @Conduitry and @gtm-nayan might know more.


Fix OS storage move propagation

Propagating on the source path failed because the source path does not exist any more after moving. This fix makes it start the propagation on the parent of the source.
I've also fixed the error handling because while debugging this it caused memory pointer errors as the errors were not propagated to the outside.
@butonic

=> this makes the litmus webdav move tests pass!

@PVince81 just lint and is good to merge

I've removed the stray debug code and fixed the linter errors by properly returning the error objects.

all green, please merge :-)


Modernize docs some more

More more doc modernization.
I have come across a problem though.
from attr import define, fields, resolve_types

@define
class A:
    a: list["A"]
    b: "B"

@define
class B:
    a: A

print(fields(A).a.type)
fields(A).b.type
resolve_types(A, globals(), locals())
print(fields(A).a.type)
fields(A).b.type

This is from the docs but it doesn't actually work. typing.List["A"] will produce a ForwardReference by itself, but list["A"] won't, so typing.get_annotations doesn't process it. What a nasty surprise.

So uh what should we do about it?

Well I can do one of the following:

change the example back to typing.List (ugly)
change the example to use ForwardRef explicitly (ugly)

I'm just a little stunned. Is this a Python bug? https://www.python.org/dev/peps/pep-0585/ makes no mention of these differences in ForwardRefs. Should we report this?

My gut feeling is when Łukasz wrote PEP 585 he was assuming PEP 563 would be active. This is not really the case just yet, since 563 is essentially being replaced from what I understand, and there's no implementation of its replacement yet. So old Python versions are kinda screwed.

Well, why rely on gut feelings, when @ambv can just tell us? ;)

Got a suggestion from @ambv on Twitter, so I went with:

wrap the entire expression in quotes

Given how it surprised you, I think we really should explain it?

ping?

Added a note!


[CU-86er3p8qz] Fix badge about CI state error in README

Target

Fix badge about CI state error in README.
Task ticket: CU-86er3p8qz

Effecting Scope

Fix display issue.

Description

Fix the badge error in GitHub repro home page and documentation home page.

Task linked: CU-86er3p8qz Fix badge about CI state error in README


fix: "Jira PR Review" actions

@doniyor2109 There were some updates that @geekkun did. Currently, carrier-monolith uses an action version directly from the branch. I want to publish release so Carrier team could start using proper action version.

Closing it for now. Feel free to re-open it


Detect temporary errors returned by W3C API

From time to time, the W3C API probably returns something wrong, probably an error, and the structure Reffy expects to receive is not the one it receives. This leads to weird error messages, typically:
TypeError: Cannot read property 'version-history' of undefined TypeError:
 Cannot read property 'version-history' of undefined
    at fetch.then.then.s (reffy/crawl-specs.js:133:34)

It would be good to catch these errors and report them more nicely.

Note the specific W3C API bug was fixed, but Reffy should still expect to receive non 200 OK HTTP responses and report these errors nicely.

Closing the issue. Switch to browser-specs means that Reffy no longer depends on the W3C API.


hibImport issues

I build the hipImport with gradle but when i use the hibImport tool to create a HIB from a collection of images ,nothing happens ??!!!

so am I. Do you solve it? If that ,please tell me . thx

Yes, but i have another problem, i integrated Hipi in eclipse project , but there an issue that i cant resolve it even i added all necessary jar files .
This is the error " metadata.getDirectories() " ;


Curious performance issue when keyword matches potential variable

I built an expression library using Eval with about 50 operators (most of them taken from sample code – thanks a lot for that!) and noticed a curious drop in performance when defining a prefix function like not X and then having an expression like nothing == true where nothing could potentially be a variable. The performance drop is quite significant in my case, where by having adding that not prefix function slows down the overall evaluation by a factor of 5-6 compared to just having a ! prefix function.
I wonder if the evaluate method of the interpreter could be improved by introducing at the appropriate place a check that a function name shouldn't be evaluated against a substring. Though that might be done on purpose for some use case. In that case an alternative would be to provide a PatternOptions which allows telling the parser that this specific function keyword can't be a substring.
I can try to do those adjustments, though I'm not sure where to do them in the code. Any hints would be appreciated.
Some sample code which reproduces the slowdown (less than in my big library, but still by a factor of 3): https://gist.github.com/nighthawk/c7daa27285da406e5b2a71f8b789bf3f

Thanks a lot for your feedback and detailed bug report! It’s a really interesting issue indeed, I’ll look into it as soon as possible

Great, thanks. The behaviour makes sense when thinking about a negation operator and doing something like !foo but would be good to disable this for word-only operators. Or maybe the parser can detect word boundaries so that it knows !foo can really be treated like ! foo.


API : Benificiary list

@manishadk @awemulya @varun2948
Question : Do the benificiary belongs to all the activity group ?

Benificaty belongs to project.


feat: Update Glance Keystone Jobs to match common architecture

What is the purpose of this pull request?: To bring Glance Keystone Jobs inline with other services.
What issue does this pull request address?: Fixes # N/A
Notes for reviewers to consider:
This PR should bring Glance Keystone Jobs inline with Cinder and Heat, and is part of the effort to standardize the common elements in charts prior to moving to OpenStack.
Specific reviewers for pull request:
@alanmeadows @v1k0d3n @larryrensing @wilkers-steve

referenced as prerequisite to #289


Supporting MySQL Connector

I want to enquire about when its possible to start supporting the MySQL and if the MariaDB version is safe to be adopted on a MySQL DB,

Both are supported by DIH.


[Discovery] HttpLongPolling Sync DiscoveryData

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #4795 (6cc8807) into master (a5a0779) will increase coverage by 0.00%.
The diff coverage is 33.33%.

@@            Coverage Diff            @@
##             master    #4795   +/-   ##
=========================================
  Coverage     65.21%   65.21%
- Complexity     8138     8147    +9
=========================================
  Files          1136     1138    +2
  Lines         33374    33413   +39
  Branches       2975     2971    -4
=========================================
+ Hits          21765    21791   +26
- Misses         9878     9891   +13
  Partials       1731     1731

Impacted Files
Coverage Δ

...yu/admin/listener/AbstractDataChangedListener.java
81.39% <0.00%> (-13.20%)
:arrow_down:

...tener/http/HttpLongPollingDataChangedListener.java
5.69% <0.00%> (-0.20%)
:arrow_down:

...he/shenyu/admin/model/dto/ProxySelectorAddDTO.java
19.04% <0.00%> (-0.96%)
:arrow_down:

...u/admin/service/impl/ProxySelectorServiceImpl.java
20.23% <0.00%> (ø)

...ata/http/refresh/DiscoveryUpstreamDataRefresh.java
42.85% <42.85%> (ø)

...u/sync/data/http/refresh/ProxySelectorRefresh.java
42.85% <42.85%> (ø)

...rter/sync/data/http/HttpSyncDataConfiguration.java
84.21% <100.00%> (+1.85%)
:arrow_up:

...che/shenyu/sync/data/http/HttpSyncDataService.java
82.65% <100.00%> (+21.42%)
:arrow_up:

...nyu/sync/data/http/refresh/DataRefreshFactory.java
100.00% <100.00%> (ø)

... and 16 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Evaluate PluginPlayer Templates prior to BCP

Summary
This PR extends the behavior of PluginPlayer to find and evaluate placeholder templates prior to sending player events over BCP. The following PluginPlayers will be affected: BusPlayer, SlidePlayer, SoundPlayer, WidgetPlayer
Examples
This new behavior works with both path-based templates like player variables, as well as event kwarg templates.
Player Variable Example
sound_player:
  mode_rampage_started:
    rampage_music:
      bus: music
      start_at: (current_player.rampage_music_last_played_time)

Event Kwarg Example
event_player:
  some_triggering_event:
    play_music_starting_at:
      the_time: 65

sound_player:
  play_music_starting_at:
    victory_music:
      bus: music
      start_at: (the_time)

Nested Logic
PluginPlayer events are nested dictionaries because a triggering event may have multiple items to play (e.g. a mode_started event triggering both music and voice callouts via sound_player). Therefore this code must nest one level deep to look for placeholder templates on each played item.
For efficiency (?) a separate dictionary is made to hold the evaluated values and only item dicts that have templates will be copied and their values overridden. The settings argument comes from the raw parsed config itself, so it should not be modified in place. Instead, the temporary evaluated dictionary is passed as additional args into the settings dict, preserving the original values with (hopefully) minimum overhead.
This feels a bit clunky but in the past MPF has been bottlenecked by huge numbers of dict.copy() and dict.deepcopy() calls, which were the primary function call during profiling. My hope is that the implementation here will be low-profile enough to have negligible impact in almost all cases, and the occasional dict copy for template evaluations is an acceptable price.

I have been testing this and in some cases the value for starts_at is set to <NativeTemplate 0.0> (but not always).
This is the snippet that I have that sometimes causes this behavior - keep in mind over on the Godot side I have added delay support for playing media which was previously ignored but should not have an bad side-effects for this use case.
    song1:
      delay: 5s
      action: play
      start_at: (current_player.active_song_seconds if current_player.active_song == "song1" else 0)
      events_when_stopped: song_finished

I have been testing this and in some cases the value for starts_at is set to <NativeTemplate 0.0> (but not always).
This is the snippet that I have that sometimes causes this behavior - keep in mind over on the Godot side I have added delay support for playing media which was previously ignored but should not have an bad side-effects for this use case.
    song1:
      delay: 5s
      action: play
      start_at: (current_player.active_song_seconds if current_player.active_song == "song1" else 0)
      events_when_stopped: song_finished

Actually, after some further testing it has nothing to do with that snippet. It has to do with this snippet:
  song_name_completed:
    song1:
      delay: 5s
      action: play
      start_at: 0 # not being sent through as just the value
      events_when_stopped: song_finished

Ah, good catch. Template properties with static values have a different python type that is escaping the template-detection code path.
I'm out of town this week but know exactly what the fix will be!

Ah, good catch. Template properties with static values have a different python type that is escaping the template-detection code path.
I'm out of town this week but know exactly what the fix will be!

No probs... I thought you were busy as I hadn't heard from you, but no stress. I can workaround it in the meantime.


How to set password from secrets ? (when external database)

Hello,
I want to use external secrets in env block ?
...
env:
  database: "postgres"
  ...
  pg_user: valueFrom: secretKeyRef:  name: kong-secrets key: db-user
  pg_password: valueFrom: secretKeyRef:  name: kong-secrets key: db-user
  ...

Thanks you
In chart template there is no way to use secrets :(, why this restriction ?
...
{{- $userEnv := dict -}}
{{- range $key, $val := .Values.env }}
  {{- $upper := upper $key -}}
  {{- $var := printf "KONG_%s" $upper -}}
  {{- $_ := set $userEnv $var $val -}}
{{- end -}}
...

You can, you'll just need to indent them as you normally would. https://github.com/Kong/charts/blob/main/charts/kong/README.md#the-env-section shows an example
The multiline secretKeyRef block will be preserved in the $val variable in that template segment, and will later be rendered in the Deployment's env block. The template there only modifies the key, to properly format it into a KONG_WHATEVER environment variable.


[benchmark] auto define BENCHMARK_STATIC_DEFINE at static-md triplet

Is your feature request related to a problem? Please describe.
if u installed benchmark with  x64-windows-static-md as triplet its gona throw some external resolve error
I was puzzled why it dint work at static-md i thought its not compatible xD until I read on the export.h it seems u have to define BENCHMARK_STATIC_DEFINE if u want to use it on static-md.. but that breaks the convenience of vcpkg static-md triplet config.
Proposed solution
please just auto define BENCHMARK_STATIC_DEFINE this when static-md was used.
Describe alternatives you've considered
for now im doing this.. if I dint stumble on export.h I probably gave up on it right now xD
#define BENCHMARK_STATIC_DEFINE
#include <benchmark/benchmark.h>
#pragma comment ( lib, "Shlwapi.lib" )

Additional context

Error occurred by default that will puzzle you when u are in static-md mode.

@FrankXie05 "Burn-in library linkage" to resolve the issue for msbuild.


[WIP] Update point goal while doing point nav for mobile gaze design

@tusharsangam @KavitShah1998 This is a WIP PR for changing the point goal location while the robot is using a nav skill. I need your help to complete the function that computes the distance given the arm depth and rgb images. Thanks a lot!

For 3D object Detection, please refer to this branch - experiment/3d_object_detection_with_spotcamera

def detect_3d_point_from_image_coordinate(Z:float, rgb_uv, camera_intrinsics):
u, v = rgb_uv
focal_x, focal_y = camera_intrinsics.focal_length.x, camera_intrinsics.focal_length.y
principal_point_x, principal_point_y = camera_intrinsics.principal_point.x, camera_intrinsics.principal_point.y
X = (rgb_uv[0] - principal_point_x)*Z / focal_x
Y = (rgb_uv[1] - principal_point_y)*Z/ focal_y
return (X,Y,Z)
We convert X.Y,Z coordinate back to dock coordinates


chore: add Makefile for linting and unit tests

added a Makefile to introduce common shortcuts during development
added golangci-lint for linting (default config for now, we would need to add .golangci.yml once we get familiar with its checks)
moved development and testing instructions to a separate development.md doc
fixed failed linting checks

pkg/processor/processor.go:87:37: Error return value of `wait.ExponentialBackoffWithContext` is not checked (errcheck)
                wait.ExponentialBackoffWithContext(
                                                  ^
pkg/processor/incidents.go:679:23: SA4010: this result of append is never used, except maybe in other appends (staticcheck)
                mappedGroupIDsStr = append(mappedGroupIDsStr, k)
                                    ^
cmd/simulate/simulate.go:345:14: Error return value is not checked (errcheck)
                fmtInterval(w, "ALERTS", i.Metric.MLabels(), i.Start, i.End, step, 1)
                           ^
cmd/simulate/simulate.go:353:14: Error return value is not checked (errcheck)
                fmtInterval(w, "cluster:health:components", map[string]string{

just small nitpick


Add Galician & catalan translations

This PR adds Galician translations to the Typst compiler. Furthermore, it recovers the Catalan translations from #3181 that got lost during the change to the custom key-value localization format in #3728.

Thank you!


Use org-store-new-agenda-file-list to add files to org-agenda-files

Describe the bug
Org allows org-agenda-files to be a directory, or a file on disk. In this case the org-agenda-files are added one line at a time. (I use this because it syncs my Org agenda files nicely between machines using Syncthing.)
To Reproduce

In your config:

(setq org-agenda-files "~/org/org-agenda-files.txt")

Expected behavior
I expect that when enabling the org agenda integration for org journal, journal files should be added to org-agenda-files using Org's built-in mechanism for this, rather than manipulating the variable directly. This should result in new lines added to the ~/org/org-agenda-files.txt files.
Desktop (please complete the following information):

OS: macOS
Emacs Version: GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin19.5.0, NS appkit-1894.50 Version 10.15.5 (Build 19F101)) of 2020-06-15

Your Emacs Configuration
#+begin_src emacs-lisp
(setq org-agenda-files "~/org/org-agenda-files.txt")
(use-package org-journal
  :bind (("C-c j j" . org-journal-new-entry)
	 ("C-c j o" . org-journal-open-current-journal-file))
  :custom
  (org-journal-dir "~/org/journal/")
  (org-journal-date-prefix "#+title: ")
  (org-journal-time-prefix "* ")
  (org-journal-file-format "%Y-%m-%d.org")
  (org-journal-date-format "%A, %d %B %Y")
  (org-journal-enable-agenda-integration t)
  (org-journal-skip-carryover-drawers (list "LOGBOOK")))

Good catch! Thank you @stig.


[Question]: The format of message

Describe the issue
hello! Just a simple question: for the Group Chat, is the message formatted like the following?
[
        {"role": "system", "content": "xxx"},
        {"role": "user", "content": "yyy"},
        {"role": "assistant", "content": "zzz"}, # agent No.1
        {"role": "assistant", "content": "aaa"}, # agent No.2
        {"role": "assistant", "content": "bbb"} # agent No.3
    ]

Steps to reproduce
No response
Screenshots and logs
No response
Additional Information
No response

My understanding is -- "assistant" is the agent itself and "user" are others. So it should be
[
        {"role": "system", "content": "xxx"}, # for me
        {"role": "user", "content": "yyy", "name": "..."}, # other 1
        {"role": "user", "content": "yyy", "name": "..."}, # other 2
        {"role": "assistant", "content": "zzz"}, # me
        {"role": "assistant", "content": "aaa"}, # me
        {"role": "assistant", "content": "bbb"} # me
    ]

@victordibia can double confirm.


Adding CameraEncode example

This is a simple example to use the ImageEncode component to convert live video into a stream of jpeg files. The purpose is to use this data flow to create a set of jpeg images to push to a browser using websockets.
However, the size that I get in the socket is all the time the same, regardless of the actual jpeg size, and I do not know how to find out the actual buffer length.

I hae here a proposed solution for the length problem:
  readDone(outputBuffer) {
    var buffer: Buffer = outputBuffer.buf;

    // Catch EOF
    if (outputBuffer.header.nFlags & 0x00000001/*BUFFERFLAG_EOS*/) {
      this.info("Received BUFFERFLAG_EOS");
      if (this.autoClose) {
        this.close();
      }
      return;
    } else {
      buffer.onBufferDone = () => {
        this.fillBuffer(outputBuffer.header);
      };
    // ADDING THE ACTUAL USED LENGTH IN THE BUFFER!!
      buffer.usedLength = outputBuffer.header.nFilledLen;
    }
    this.push(buffer);
  }

I added the property buffer.usedLength so that I can use the part of the buffer which is actually used.

Updated cameraEncode example: sample output
Received compressed frame with length:  81920  but used:  66985
Received compressed frame with length:  81920  but used:  66798
Received compressed frame with length:  81920  but used:  66920
Received compressed frame with length:  81920  but used:  66913
Received compressed frame with length:  81920  but used:  67026
Received compressed frame with length:  81920  but used:  66885
Received compressed frame with length:  81920  but used:  66949
Received compressed frame with length:  81920  but used:  67040
Received compressed frame with length:  81920  but used:  67073
Received compressed frame with length:  81920  but used:  67070
Received compressed frame with length:  81920  but used:  67066
Received compressed frame with length:  81920  but used:  66995
Received compressed frame with length:  81920  but used:  66932
Received compressed frame with length:  81920  but used:  66987
Received compressed frame with length:  81920  but used:  67140
Received compressed frame with length:  81920  but used:  67131
Received compressed frame with length:  81920  but used:  67149
Received compressed frame with length:  81920  but used:  67048
Done

Cool, I am thinking to write some code to write the files to the disk for sample purpose.


Rounded rectangles

This is getting close to feature creep but I wonder if rounded rects were considered. Not as a separate shape but as an option, similar to Stroke Style or Sloppiness. My use cases would only be limited to rectangles and not any of the other shapes. I would be happy with a fixed predetermined radius.

Hand crafting one and saving it in the library is a workaround: https://twitter.com/excalidraw/status/1281520753691828224?s=20 You can then replicate it easily whenever you need it

@pshihn I don't think we can create it with a single shape because we only support roughCanvas.curve: https://github.com/rough-stuff/rough/wiki
Lately, I've been thinking if we would need to support path, but let us know if you have any ideas to draw something like rounded rectangles and more complicated shapes.

yes, I wasn't thinking of a single shape.  create something like this: https://excalidraw.com/#json=5643242062217216,pbsWg6KNCnymGMP0mk-H0A Group it. Add to the library. Now whenever you need a rounded box, pick it from the library. Not ideal, but a decent workaround.
As to implement it, you can use the path, or use multiple draw steps, like we do in arrows. 4 lines and 4 arcs.

Nice.
Filling is not that bad either: https://excalidraw.com/#json=5643242062217216,pbsWg6KNCnymGMP0mk-H0A
(Honestly, I like this kind of creativity out of limitations.)

or draw one with the linetool carefully and close it. then you'll be able to have a filler and resize it to any size.
https://excalidraw.com/#json=5644779392073728,5Wkha79ezS8QXMzOJi-x2w (could be better)

@lipis  true. Updated yours a bit https://excalidraw.com/#json=4878539174182912,su5PdfsA54zavYLCHoz_0A

https://github.com/excalidraw/excalidraw/pull/1931 Looks very promising :)


Discussion about Project Future Philosophie

"zesty" is the current ubuntu version servers and desktops are running on.
even our Google OS (Internal Ubuntu fork) is based on zesty its installed on every desktop inside the Google Organization.
Kernel > 4.10 has so many improvements that no normal user would use anything below 3.8 on a Desktop PC or Server that is not running old legacy code.
I think in general this should be discussed if the goal of DoneJS is to run on legacy machines or on current once and only be backward compatible on best effort base.
the Software Industrie overall has changed a lot release come more stable and faster even Monthly and Daily. I think with the wrong overall project philosophie this project can't be adopted by Fortune Companys.
For example i my self forked donejs 100 times only to update the packages and get them current its not acceptable that i need to run a legacy os to code with a framework or use Abstraction like docker and vms for coding and producing code that after that runs on Current releases of the Operating Systems.
Its the Same with Browsers Chrome Simply won and has the most installs IE and FIREFOX simply don't matter and can be addressed on best effort this project should also make its point is it for the People of the Future or is it for the People with old desktops thats also want to code :).
http://gs.statcounter.com/#desktop-browser-ww-monthly-200807-201507
http://gs.statcounter.com/browser-market-share

DoneJS should work on commonly used systems that take a reasonable time to maintain. It's mostly a judgment call. Do you have any specific suggestions?


Carry through and return the C++ script verification errors?

in C++ interpreter.cpp, there are detailed errors of why a script verification fails, such as:
#grep -nr 'SCRIPT_ERR_' ./depend/bitcoin/src/script/interpreter.cpp | grep -o 'SCRIPT_ERR_[A-Z_]*' | sort | uniq | paste -sd, -

SCRIPT_ERR_BAD_OPCODE,SCRIPT_ERR_CHECKMULTISIGVERIFY,SCRIPT_ERR_CHECKSIGVERIFY,SCRIPT_ERR_CLEANSTACK,SCRIPT_ERR_DISABLED_OPCODE,SCRIPT_ERR_DISCOURAGE_UPGRADABLE_NOPS,SCRIPT_ERR_DISCOURAGE_UPGRADABLE_WITNESS_PROGRAM,SCRIPT_ERR_EQUALVERIFY,SCRIPT_ERR_ERROR_COUNT,SCRIPT_ERR_EVAL_FALSE,SCRIPT_ERR_INVALID_ALTSTACK_OPERATION,SCRIPT_ERR_INVALID_STACK_OPERATION,SCRIPT_ERR_MINIMALDATA,SCRIPT_ERR_MINIMALIF,SCRIPT_ERR_NEGATIVE_LOCKTIME,SCRIPT_ERR_NUMEQUALVERIFY,SCRIPT_ERR_OK,SCRIPT_ERR_OP_CODESEPARATOR,SCRIPT_ERR_OP_COUNT,SCRIPT_ERR_OP_RETURN,SCRIPT_ERR_PUBKEY_COUNT,SCRIPT_ERR_PUBKEYTYPE,SCRIPT_ERR_PUSH_SIZE,SCRIPT_ERR_SCRIPT_SIZE,SCRIPT_ERR_SIG_COUNT,SCRIPT_ERR_SIG_DER,SCRIPT_ERR_SIG_FINDANDDELETE,SCRIPT_ERR_SIG_HASHTYPE,SCRIPT_ERR_SIG_HIGH_S,SCRIPT_ERR_SIG_NULLDUMMY,SCRIPT_ERR_SIG_NULLFAIL,SCRIPT_ERR_SIG_PUSHONLY,SCRIPT_ERR_STACK_SIZE,SCRIPT_ERR_UNBALANCED_CONDITIONAL,SCRIPT_ERR_UNKNOWN_ERROR,SCRIPT_ERR_UNSATISFIED_LOCKTIME,SCRIPT_ERR_VERIFY,SCRIPT_ERR_WITNESS_MALLEATED,SCRIPT_ERR_WITNESS_MALLEATED_P,SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH,SCRIPT_ERR_WITNESS_PROGRAM_WITNESS_EMPTY,SCRIPT_ERR_WITNESS_PROGRAM_WRONG_LENGTH,SCRIPT_ERR_WITNESS_PUBKEYTYPE,SCRIPT_ERR_WITNESS_UNEXPECTED

The only error that the Rust lib returns however is error::ERR_SCRIPT for all these cases. Is there a way to return (or at least to print) these detailed errors?

Most definitely! Thanks for raising the issue.

It looks to me like VerifyScript is called from verify_script with a null error pointer so we do not get the errors from interpreter.cpp back. From my reading of the code we pass in mutable error pointer accross the ffi layer to bitcoinconsensus_verify_script_with_amount and return it if it was set to one of the error variants.

For now, in our fork of rust-bitcoinconsensus we pass in a mutable error pointer to VerifyScript, just for the sake of printing out the error if VerifyScript returns false. It would be great if there were rust error variants for all C++ error cases, and these errors are returned. Thank you.

How do you pass a mutable error pointer to VerifyScript if Bitcoin Core passes nullptr?
https://github.com/bitcoin/bitcoin/blob/498994b6f55d04a7940f832e7fbd17e5acdaff15/src/script/bitcoinconsensus.cpp#L113

The call chain looks to me like:

rust-bitcoinconessenus calls bitcoinconsensus_verify_script_with_amount
bitcoinconsensus_verify_script_with_amount calls ::verify_script
::verify_script calls VerifyScript with the line linked above

Or am I missing something?

yes, that's the call chain in our case as well.
for now, to get the errors in the log, I just changed the code in VerifyScript in our local fork to this:
...
// Regardless of the verification result, the tx did not error.
set_error(err, bitcoinconsensus_ERR_OK);
ScriptError* serror = nullptr;
serror = new ScriptError;
    PrecomputedTransactionData txdata(tx);
    bool ret = VerifyScript(tx.vin[nIn].scriptSig, CScript(scriptPubKey, scriptPubKey + scriptPubKeyLen), &tx.vin[nIn].scriptWitness, flags, TransactionSignatureChecker(&tx, nIn, amount, txdata), serror);
    if (!ret) {
        std::cout << "VerifyScriptError: " << *serror << " txid: " << tx.GetHash().ToString() << " inp: " << nIn << "\n";
    }
    delete serror;
    serror = nullptr;
    return ret;

...
thank you for looking into this issue

Oh my goodness I'm a wombat, we vendor that code so technically can change it. My bad, the whole time I was confused as to how this would be possible. This is a totally different thing from what the issue description describes IMO
The issue implies (to me at least) that the problem is in how we call the C++ code from Rust when in fact what you are describing is an issue with how the C++ code calls itself. I'm not convinced we should be patching that. Can you convince me further? Doing this adds a non-trivial maintenance burden on us, we do this in secp256k1.