periodic boundary conditions

Thanks for developing and maintaining Palace. It's awesome to have an open-source EM solver for superconducting circuits. I have a few questions about periodic boundary conditions in Palace:

Does Palace support periodic boundary conditions? I searched the code and docs and did not see it, but may have missed it.
Are periodic boundary conditions a feature you plan to add?
If not, would you potentially accept a PR adding this feature?

A bit of motivation for the request: For periodic structures (eg. metamaterials, traveling wave parametrric amplifiers (TWPAs), antenna arrays, etc) it is important to have periodic boundary conditions, so that one can simulate a single unit cell and extract properties of the larger system. In addition, for many of these applications, it is important to be able to apply a phase between the periodic boundaries in order to simulate wave propagation along that axis. This is sometimes called Floquet or Bloch periodicity.

Hi @kpobrien, thanks a lot for your interest! The short answer is that currently Palace does not have a periodic BC support but we would absolutely welcome it. I'd be happy to work with you or whomever else to try to design and implement it.
The longer answer: MFEM (the finite element library on which Palace is based), does have native support for periodic meshes and thus traditional periodic BCs (no phase delay). See for example this comment: https://github.com/mfem/mfem/issues/649#issuecomment-432773499. If you are sure that your mesh is periodic, we could add the necessary vertex matching as a preprocessing step and everything else should just work.
For the phase delay, this requires a more general approach since instead of constraining the dofs on the slave boundary which map 1:1 with counterparts on the master, there is an added coefficient (dof_slave = alpha * dof_master). I think for this we likely will have to not use MFEM's periodic mesh approach and instead will have to do the elimination on the assembled linear systems by augmenting the current way of handling Dirichlet BC.
Maybe this was too in the weeds but hopefully it is helpful in starting down this path. Thanks again for your interest and willingness to contribute this feature!

Thank you @sebastiangrimberg! Your going into the weeds was very helpful.

If you are sure that your mesh is periodic, we could add the necessary vertex matching as a preprocessing step and everything else should just work.

I think it is a good idea to enforce a periodic mesh for both the periodic and periodic with phase delay cases, especially given how MFEM works. In my experience as a FEM user, even if the software supports periodic boundary conditions with an arbitrary mesh, a periodic mesh results in a lower error.
I did some digging and found this issue https://github.com/mfem/mfem/issues/1553 where the MFEM developers recommend solving a periodic system with phase delay by incorporating the phase delay into the PDE so that the modified PDE is periodic and one can use the native periodic boundary conditions. In other words, applying Bloch's theorem. What do you think of this approach?

Sorry for the slow response here! This (https://github.com/mfem/mfem/issues/1553) makes total sense and makes the implementation nicer too I think. If I follow correctly, for the actual BC Palace sees we only will have to deal with the exactly periodic case which is handled already by MFEM and will require probably one or two lines of code in Palace to set up the periodic mesh boundaries from the configuration file data.
Then, for enforcing a particular phase delay, it seems like it will just take someone going through the frequency domain formulation (https://awslabs.github.io/palace/stable/reference/#Mathematical-background) with the correct expansion for the E-field phasor with the delay term and see where the coefficients or extra terms show up as functions of the wave number, propagation direction, and phase delay. I can help with adding these to the frequency domain operators in Palace once we get there. It might take a bit to settle on a nice way to describe these boundary pairs in the configuration file (probably OK to restrict to periodic boundary pairs exactly aligned with the X/Y/Z axes for now, so that the vector wavenumber in the e^{ik \cdot x} simplifies when plugged into the PDE).

Thanks @sebastiangrimberg!

If I follow correctly, for the actual BC Palace sees we only will have to deal with the exactly periodic case which is handled already by MFEM and will require probably one or two lines of code in Palace to set up the periodic mesh boundaries from the configuration file data.

That's my understanding as well. Great to hear this won't require major changes to Palace.

Then, for enforcing a particular phase delay, it seems like it will just take someone going through the frequency domain formulation (https://awslabs.github.io/palace/stable/reference/#Mathematical-background) with the correct expansion for the E-field phasor with the delay term and see where the coefficients or extra terms show up as functions of the wave number, propagation direction, and phase delay.

I will happily volunteer to do this and post the results here (unless someone beats me to it). I'll try to find time to look at this in the next few days.

I can help with adding these to the frequency domain operators in Palace once we get there.

Perfect! That sounds like the hard part to me, so I greatly appreciate your help.

It might take a bit to settle on a nice way to describe these boundary pairs in the configuration file (probably OK to restrict to periodic boundary pairs exactly aligned with the X/Y/Z axes for now, so that the vector wavenumber in the e^{ik \cdot x} simplifies when plugged into the PDE).

Yes, I agree we might have to iterate a bit to find the right path, even at the level of whether the user should specify the k vector or phases. That restriction of pairs aligned with the axes would be reasonable, as long as we can apply X,Y,Z phases simultaneously. For example, for mapping out the band structure of a photonic crystal you may want to simultaneously create phase differences along different axes. Let's see if it turns out to be simpler to add these restrictions or solve the more general case!

I am wondering how mfem to enforce the two side of Bloch boundary have exact same mesh, this usually done in the mesh engine.

Here is a first pass (following the conventions and formatting in the docs except switching from \bm to \mathbf due to limitations of Github's markdown):
We assume that the electric field is a periodic field  $\mathbf{E}_p$  multiplied by a phase  factor $\mathbf{E}(\mathbf{x})=\mathbf{E}_p(\mathbf{x})e^{-i \mathbf{k}_p \cdot \mathbf{x}}$ where $\mathbf{k}_p$ is the user specified Bloch wavevector. The curl operator acting on $\mathbf{E}(\mathbf{x})$ gives:
\begin{aligned}
\nabla\times\mathbf{E} &= (\nabla\times\mathbf{E_p})e^{-i \mathbf{k}_p \cdot \mathbf{x}} -i\mathbf{k}_p\times \mathbf{E}_p e^{-i \mathbf{k}_p \cdot \mathbf{x}} \\  &= ((\nabla-i\mathbf{k}_p)\times\mathbf{E_p})e^{-i \mathbf{k}_p \cdot \mathbf{x}}
\end{aligned}

We can either modify the curl operator $\nabla \to \nabla -i\mathbf{k}_p$ and multiply the electric field by $e^{-i \mathbf{k}_p \cdot \mathbf{x}}$ (outside the curl) or substitute it in and include the extra terms:
\begin{aligned}
\nabla\times\mu_r^{-1}\nabla\times\mathbf{E}_p
    -i\mathbf{k}_p\times\mu_r^{-1}\nabla\times\mathbf{E}_p
    -i\nabla\times(\mu_r^{-1}\mathbf{k}_p\times\mathbf{E}_p)
    -\mathbf{k}_p\times\mu_r^{-1}\mathbf{k}_p\times\mathbf{E}_p
    + i\omega\sigma\mathbf{E}_p
    - \omega^2\varepsilon_r\mathbf{E}_p &= 0 \,,\; \mathbf{x}\in\Omega \\
\mathbf{n}\times\mathbf{E}_p &= 0 \,,\; \mathbf{x}\in\Gamma_{PEC} \\
\mathbf{n}\times(\mu_r^{-1}\nabla\times\mathbf{E}_p)
    -i\mathbf{n}\times(\mu_r^{-1}\mathbf{k}_p\times\mathbf{E}_p) &= 0 \,,\; \mathbf{x}\in\Gamma_{PMC} \\
\mathbf{n}\times(\mu_r^{-1}\nabla\times\mathbf{E}_p)
    -i\mathbf{n}\times(\mu_r^{-1}\mathbf{k}_p\times\mathbf{E}_p)
    + \gamma\mathbf{n}\times(\mathbf{n}\times\mathbf{E}_p) &= \mathbf{U}^{inc}e^{i \mathbf{k}_p \cdot \mathbf{x}} \,,\; \mathbf{x}\in\Gamma_{Z}
\end{aligned}

Nice!! Any chance you want to derive the weak form too? Or is this something I should work on 😁 (I am not certain the best way to handle the discretization yet, need to either find it in literature or derive it ourselves).

I am wondering how mfem to enforce the two side of Bloch boundary have exact same mesh, this usually done in the mesh engine.

@EMinsight, yes, MFEM requires the mesh is actually periodic before performing a matching: https://github.com/mfem/mfem/blob/master/mesh/mesh.cpp#L4973C44-L4973C44.

@sebastiangrimberg, do you have a writeup or could you point me to a reference or the location in the code where you have the weak form of the unmodified Maxwell's equations as used in Palace? It's getting to a busy point in the semester for me, but I'll help out as I can.

Here's one: https://arxiv.org/pdf/1910.10069.pdf (and associated textbook).
Anyway, I've gone ahead and started looking at the extra terms. Changing the convention to $\mathbf{E}=\mathbf{E}_pe^{+i\mathbf{k}_p\cdot\mathbf{x}}$ to be consistent with the phasor definition we use ($\mathcal{E}(t)=\mathbf{E}e^{+i\omega t}$), the weak form for the curl-curl term becomes (for some vector test function $\mathbf{F}$, and with $\hat{\nabla} = \nabla + i\mathbf{k}_p$):
\begin{aligned}
(\hat{\nabla}\times(\mu^{-1}\hat{\nabla}\times\mathbf{E}_p), \mathbf{F})_{\Omega} &= (\mu^{-1}\nabla\times\mathbf{E}_p,\nabla\times\mathbf{F})_{\Omega}  \\
&\quad+ i(\mu^{-1}\mathbf{k}_p\times\mathbf{E}_p,\nabla\times\mathbf{F})_{\Omega}  \\
&\quad- i(\mu^{-1}\nabla\times\mathbf{E}_p,\mathbf{k}_p\times\mathbf{F})_{\Omega}  \\
&\quad+ (\mu^{-1}\mathbf{k}_p\times\mathbf{E}, \mathbf{k}_p\times\mathbf{F})_{\Omega}  \\
&\quad- (\mu^{-1}\hat{\nabla}\times\mathbf{E}_p,\mathbf{n}\times\mathbf{F})_{\partial\Omega}
\end{aligned}

The first term on the RHS is the standard stiffness term, and fourth is just a contribution to the standard mass term with coefficient $[\mathbf{k}_p\times]^T\mu^{-1}[\mathbf{k}_p\times]$ where $[\mathbf{k}_p\times]$ is the matrix representation of the cross-product with $\mathbf{k}_p$.
The last term comes from the integration by parts and is the natural boundary condition.
The second and third terms are new, and should be fine to implement. One thing that worries me is that $ i(\mu^{-1}\mathbf{k}_p\times\mathbf{E}p,\nabla\times\mathbf{F}){\Omega} -i(\mu^{-1}\nabla\times\mathbf{E}_p,\mathbf{k}p\times\mathbf{F}){\Omega}$ is skew symmetric, which is the first symmetry-breaking term we have encountered. This might have implications for linear solver performance, and it should probably be double checked that I haven't messed up a minus sign somewhere in my algebra.
Anyway, I think this is a reassuring starting point if we can double check that this is correct. The \mathbf{k}_p vector should be specified in the configuration file and will end up in a new PeriodicBoundaryOperator class, which SpaceOperator should handle for the addition of the new terms in the governing equations (the new entries will be described by MixedVectorWeakCurl and MixedVectorCurl integrators, I believe).
Then we'll have to figure out what will need to be done about the asymmetry of the operator and if the current linear solver will need any adjustments.
Lastly, for my own understanding, what kind of driving excitations do you need for these types of simulations? I imagine what is currently in Palace might not be sufficient. Relatedly, what are the quantities of interest you care about postprocessing from the computed fields?

Thanks for the references and for starting on the weak form derivations! Regarding the sign convention, the argument for my choice of $\mathbf{E}(\mathbf{x}) = \mathbf{E}_p e^{-i \mathbf{k}_p \cdot \mathbf{x}}$ is that using the phasor convention for Palace, a plane wave propagating in the direction  $\mathbf{k}_p/|\mathbf{k}_p|$ would be $\mathbf{E}_0 e^{-i \mathbf{k}_p \cdot \mathbf{x}+i\omega t}$. Imagining solving this in a box with periodic boundary conditions on all sides with user specified wavevector $\mathbf{k}_p$, the periodic field $\mathbf{E}_p$ should be constant. If we drop the $i\omega t$ term, then $\mathbf{E}_0 e^{-i \mathbf{k}_p \cdot \mathbf{x}} = \mathbf{E}_p e^{-i \mathbf{k}_p \cdot \mathbf{x}}$ which implies $\mathbf{E}_0 =  \mathbf{E}_p$ or in other words, the field we would solve in MFEM would be constant as desired in this case.

Anyway, I think this is a reassuring starting point if we can double check that this is correct. The \mathbf{k}_p vector should be specified in the configuration file and will end up in a new PeriodicBoundaryOperator class, which SpaceOperator should handle for the addition of the new terms in the governing equations (the new entries will be described by MixedVectorWeakCurl and MixedVectorCurl integrators, I believe).

I'll try to double check that and this all sounds good.
The use case I had in mind was eigenmode simulations where there is no excitation. The output of that simulation would be the fields / eigenmode for the user defined $\mathbf{k}_p$ and the (potentially complex) eigenfrequency. In postprocessing, assuming the mode is TEM, I would compute line integrals of E and H to calculate voltage and current and/or flux with the end goal of calculating the characteristic impedance and wavevector as a function of frequency. For different applications like antennas, driven simulations from a lumped port or current source or with a background field (eg. a plane wave) which is scattered by the antenna are typical excitation conditions.

This would be a great addition I would be using now if it existed.
An example of using eigenmode solver with swept periodic boundary phase in competing HFSS (Master+Slave GUI definition) to compute dispersion diagram is added in links below. These links give more detail on how this periodic boundary change is used and would be a welcome addition to palace.
Tutorial on Dispersion Diagram I: Parallel Plate
Youtube: (1/3) Dispersion diagram plot-HFSS (Part-1: Simulation setup for periodic boundary condition) by RF Design Basics


enumerate duplicate packages in exception

To useful feedback to the user in case this happens.

thanks for tackling it I didnt have time to submit the PR yet

Are you also working on changing the default source path or should I submit a PR for that ?

Are you also working on changing the default source path

I would rather keep it as it is (which is the current directory). The src directory is a pretty ROS specific thing. It should still work and find the package in the src directory though.

Codecov Report

Merging #17 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #17      +/-   ##
==========================================
+ Coverage   77.23%   77.27%   +0.03%
==========================================
  Files          48       48
  Lines        2438     2442       +4
  Branches      387      389       +2
==========================================
+ Hits         1883     1887       +4
  Misses        544      544
  Partials       11       11

Impacted Files
Coverage Δ

colcon_core/package_selection/__init__.py
100% <100%> (ø)
:arrow_up:

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 93dec09...7446c3c. Read the comment docs.

I would rather keep it as it is (which is the current directory). The src directory is a pretty ROS specific thing. It should still work and find the package in the src directory though.

We should then make a note for ament users to either nuke their build/install folders or to specify the source path when running colcon on an ament workspace for the first time.
Context: ament doesn't drop AMENT_IGNOREs in the build/install space. So running colcon at the root of an ament workspace will complain about duplicated packages (that will have more meaningful error message once this PR is validated and integrated).

ament doesn't drop AMENT_IGNOREs in the build/install space

Can you double check the build space. The ament_tools code indicates it does: https://github.com/ament/ament_tools/blob/e978d4ff07f2c4e1a59a58429a6b8f48cd730715/ament_tools/verbs/build_pkg/cli.py#L321-L326
For the install space we could add a check for local_setup.sh|bat and _order_isolated_packages.py. If both of these files or in a given directory then conclude that it is an ament install space and ignore it. Does that sound like a good approach?

Can you double check the build space. The ament_tools code indicates it does

I meant the root of the build space. You're right that we added AMENT_IGNORE in package specific in the build space so this shouldn't be an issue :+1:

For the install space we could add a check for local_setup.sh|bat and _order_isolated_packages.py. If both of these files or in a given directory then conclude that it is an ament install space and ignore it. Does that sound like a good approach?

Yeah that sounds like a good approach


Update free-courses-de.md

What does this PR do?
Add resource
For resources
Description
This allows people that know deutsch to learn how to code
Why is this valuable (or not)?
This allows people that know deutsch to learn how to code
How do we know it's really free?
its a free youtube video
For book lists, is it a book? For course lists, is it a course? etc.
its a course
Checklist:

[ ] Read our contributing guidelines.
[ ] Search for duplicates.
[ ] Include author(s) and platform where appropriate.
[ ] Put lists in alphabetical order, correct spacing.
[ ] Add needed indications (PDF, access notes, under construction).
[ ] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!


Spike: Figure out what states and metrics make up a healthy app

We need to agree as a team/product on which values users want to see in an Application status/detail view (CLI+API+UI). We also need to decide what makes an Application healthy or unhealthy.
Spike deliverables (document in this issue comments):

Work with product to determine which values should make up an aggregated healthy/unhealthy bool for an Application

Single cluster?

Multi-cluster?

Determine what status information users care about to show in a single Application "get status" operation.

Timebox: 8h

Current status information
NAME  READY MESSAGE REVISION  SUSPENDED
Possible Application Changes:

if revision was at least the short commit hash. It may even be helpful to have it be a link to the commit like we do in get commits
Its hard to say what is in scope for an application but after a little chat with the team it may be helpful to just have as a quick glance the overall pod status for an application. So if one pod is stuck in a backoff loop status would convey the liveness status for that pod. Then the users can go investigate further on their own.

It could look like
NAME                    READY   MESSAGE                                                         REVISION                                        SUSPENDED
gitrepository/nginx     True    Fetched revision: main/09dae79fbe2dd631b3ae279bfdd010e5af73ccc7 main/09dae79fbe2dd631b3ae279bfdd010e5af73ccc7   False

NAME                    READY   MESSAGE                                                         REVISION                                        SUSPENDED
kustomization/nginx     True    Applied revision: main/09dae79fbe2dd631b3ae279bfdd010e5af73ccc7 main/09dae79fbe2dd631b3ae279bfdd010e5af73ccc7   False

NAME                   STATUS       MESSAGE
pod/nginx              Unhealthy    Liveness probe failed: cat: can't open '/tmp/healthy': No such file or directory main/09dae79fbe2dd631b3ae279bfdd010e5af73ccc7

Something I noticed when viewing other options was how this company handled the application information. Specifically pointing out adding health and age.

Cluster status:
I looked at what enterprise already has implemented. They already show statuses from the CAPI lifecycle. @sympatheticmoose @markramm this would be a product decision on how much we take from enterprise on this. If we implement mccp we can use the same cluster information that enterprise has.

Health checks:

Source is unable to clone
Kustomization is unable to reconcile
Pods are not ready

If any of the above are in a "failed" state we mark the app as unhealthy.
In the case of multi-cluster, if an Application exists on multiple clusters, we aggregate the above metrics to give a global health status for an Application.

@jpellizzari carve this up into tasks

The title of this spike also mentions metrics but I don't see any called out.

In the case of multi-cluster, if an Application exists on multiple clusters, we aggregate the above metrics to give a global health status for an Application.

We will need to consider that we may have different application versions (or git refs) deployed to different clusters.  Indicating what "version" is on the cluster will be critical for troubleshooting.

@palemtnrider how is version determined?

we can have different environments deployed to multiple clusters. We will need to indicate that as well.
I would consider this more application details than application health status. i.e. if you discover an application is unhealthy, you then look into the differences which exist between deployments - cluster/env/other


Implement numpy.outer

Compute the outer product of two vectors.
https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.outer.html#numpy.outer
ndarray.outer should be put in LinearAlgebra folder.

Added in 0.20.4.


Pinning mock at version 1.0.1.

Upgrading to both 1.1.0 and 1.1.1 causes unexplained failures that need to be investigated. This is a stop-gap measure to keep the tests passing and the changelog of mock will need to be inspected.
See https://travis-ci.org/google/oauth2client/builds/70413246 for an example failure (from #220).

@nathanielmanistaatgoogle @anthmgoogle I am going to merge this once Travis passes so that other contributions won't fail for reasons unrelated to their code.

LGTM; thanks for pursuing this.


Feature request: metadata header for linking to test suite

Many WHATWG specs now link to tests in the header:

https://dom.spec.whatwg.org/
https://fullscreen.spec.whatwg.org/
https://notifications.spec.whatwg.org/
and so on...

This is using the following syntax:
!Tests: web-platform-tests dom/ (ongoing work)

Something more like this would be nice:
Tests: dom

Possibly with some way to point to a test suite other than web-platform-tests.

Looks like ReSpec has testSuiteURI for this:
https://github.com/w3c/IndexedDB/commit/377b979783857cc6b37b769119cafe5c9af58228
(IndexedDB is now Bikeshed though.)

OK, I have found https://tabatkins.github.io/bikeshed/#metadata-test-suite which takes a URL.
Could that be tweaked to also be able to link to ongoing work?

The Test Suite metadata is nearly a no-op.  All it does is produce linked text in your header.
I'm happy to make it easier to link to wpt, tho. Are those two url forms in your !Tests example always applicable, with the "dom" part swapped out?

Yes, because the labels in wpt are just the names of the top-level directories, it should be precisely as simple as it seems.

I've now come across one case which wouldn't be that simple in https://github.com/w3c/webappsec-csp/pull/223. However, I think it's probably fine to keep using the syntax I've used there.

It might also be useful to be able to link to more than one label in wpt, e.g., to link to both https://github.com/w3c/web-platform-tests/labels/css-fonts and https://github.com/w3c/web-platform-tests/labels/css-fonts-3.

Though it's also worth noting here that CSS also has nicer ways of viewing its test suites than the directory in wpt, so it's sometimes good to link to additional things, e.g., https://test.csswg.org/suites/css-fonts-3_dev/nightly-unstable/ in addition to the wpt directory.

I think I want to key this off of WPT Path Prefix now, actually. I can use that data to link straight to <wpt.fyi> and land on a useful page.


win compilation errors

I'm working on a DMX plugin for vcv rack using your awesome library. It's working great on macOS but I'm getting some build problems on win64 build via my actions build on GitHub. I'm using https://github.com/VCVRack/rack-plugin-toolchain to build and they use a common pattern where both the windows and linux builds are done in an ubuntu docker container. My first issue is files are case sensitive on linux so the inclusion of :
#include <WinSock2.h> breaks as the file needs to be for both
#include <winsock2.h>
#include <basetsd.h>

2nd I'm hitting this cascade of errors:
src/clients/e131.c: In function 'e131_unicast_dest':
src/clients/e131.c:81:24: error: storage size of 'hints' isn't known
   81 |   struct addrinfo *ai, hints;
      |                        ^~~~~
src/clients/e131.c:84:7: warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
   84 |   if (getaddrinfo(host, NULL, &hints, &ai) != 0) {
      |       ^~~~~~~~~~~
src/clients/e131.c:91:45: error: invalid use of undefined type 'struct addrinfo'
   91 |   dest->sin_addr = ((struct sockaddr_in *)ai->ai_addr)->sin_addr;
      |                                             ^~
src/clients/e131.c:95:3: warning: implicit declaration of function 'freeaddrinfo' [-Wimplicit-function-declaration]
   95 |   freeaddrinfo(ai);

On win64 build it can't calculate the sizeof hints. Any thoughts on how to proceed?
// get the address info of the host (the results are a linked list)
struct addrinfo *ai, hints;
memset(&hints, 0, sizeof hints);

Apologies for the slow reply, I was on holidays last week :)
I will take a look on this, thanks for reporting!

@hhromic I've patched some other similar issues that came up when building with a MSYS2 environment. Please merge when you can. Thanks.


Install section of the README.md instruction gives a 404 error

In the README.md file of the https://github.com/MicrosoftDocs/azure-docs repository, in the settings section, the link
install content authoring tools gives a 404 error;
The link try to access contribute/get-started-setup-tools, which does NOT exists.

Thank you for your feedback! We will review and update as appropriate.


viewmodel changes should be recorded as strings

Fix this, and add a test.

As discussed, the particular storage of these is exposed again via changes_contained_to?, normalise that too?

Done as requested :)


Update?

Will you keep update?
Dll is a good deep learning lib.

Hi,
When I am motivated and have time, I have some plans to improve the library yes.
Unfortunately, this is not something I can do at my main job, so I can only work on this library on my free time.
If you have any issue with the library or suggestions for features, just open an issue on this repo and I'll see what I can do.


C# Client POST content body is deserialised before making request when server expects JSON

When a POST request is made the content is desrialised before sending  (deserialising the dictionary). I believe this is in error. The server interperets this as a Bad Request as it did not recieve JSON
if (api_version == null)
        throw new System.ArgumentNullException("api_version");
request_.Headers.TryAddWithoutValidation("api-version", ConvertToString(api_version, System.Globalization.CultureInfo.InvariantCulture));
var json_ = Newtonsoft.Json.JsonConvert.SerializeObject(reportSettings, _settings.Value);
var dictionary_ = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.Dictionary<string, string>>(json_, _settings.Value);
var content_ = new System.Net.Http.FormUrlEncodedContent(dictionary_);
content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json");
request_.Content = content_;
request_.Method = new System.Net.Http.HttpMethod("POST");
                      request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json"));

 PrepareRequest(client_, request_, urlBuilder_);

 var url_ = urlBuilder_.ToString();
 request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute);

PrepareRequest(client_, request_, url_);

var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);

Request Body Client is sending
recordType=50&name=Gary

Required Request Body
{"recordType":50,"name":"Gary"}

Looks like it's the same as https://github.com/RicoSuter/NSwag/issues/3414. I reverted the NSwag.ApiDescription.Client to version 13.10.8 to fix it.


Lint/RedundantCopDisableDirective raises an exception when disabling an entire department

When using #rubocop:disable Metrics on a block of code and not all Metrics/* cops would have raised an offense if disabled individually instead of disabling the entire cop department, Lint/RedundantCopDisableDirective raises an exception telling Couldn't find Metrics/CyclomaticComplexity in comment: # rubocop:todo Metrics
This is true the cop should probably not be disabled if it would not have raised an offense, but maybe this should be reported as an offense, not raise an exception.

Expected behavior
I would have expected rubocop to tell me that  Some/CopA, Some/CopB and Some/CopC should explicitely be disabled instead of disabling the entire Some department
Actual behavior
Lint/RedundantCopDisableDirective raises an exception raises an exception telling some specific cop is not found in a comment :
An error occurred while Lint/RedundantCopDisableDirective cop was inspecting app/some_path/some_file_controller.rb.
Couldn't find Metrics/CyclomaticComplexity in comment: # rubocop:todo Metrics/
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:256:in `cop_range'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:233:in `block in add_offense_for_some_cops'
~/.rbenv/versions/3.1.2/lib/ruby/3.1.0/set.rb:511:in `each_key'
~/.rbenv/versions/3.1.2/lib/ruby/3.1.0/set.rb:511:in `each'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:233:in `map'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:233:in `add_offense_for_some_cops'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:212:in `block in add_offenses'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:208:in `each'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:208:in `add_offenses'
~/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.38.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb:51:in `on_new_investigation'

Steps to reproduce the problem
test.rb :
class Test
  # rubocop:todo Metrics
  def create
    bool_a = true
    bool_b = true
    bool_c = true
    bool_d = true
    bool_e = true
    if bool_a
      if bool_b
        if bool_c
          if bool_d
            if bool_e
              puts 'this line need to be long=========================================================================='
            end
          end
        end
      end
    end
  end
  # rubocop:enable Metrics
end

bundle exec rubocop -d test.rb
Scanning test.rb
An error occurred while Lint/RedundantCopDisableDirective cop was inspecting test.rb.
Couldn't find Metrics/CyclomaticComplexity in comment: # rubocop:todo Metrics

RuboCop version
$ bundle exec rubocop -V
1.38.0 (using Parser <IP_ADDRESS>, rubocop-ast 1.23.0, running on ruby 3.1.2) [x86_64-linux]
  - rubocop-minitest 0.22.2
  - rubocop-performance 1.15.0
  - rubocop-rails 2.16.1
  - rubocop-rake 0.6.0

I was not able to reproduce it. Can you verify this issue still persists using rubocop master?
Your problem is probably fixed by https://github.com/rubocop/rubocop/pull/11210.

Hi :wave:
Thanks for having a look. :bow:
I confirm this issue is now fixed :)


autoPatchelfHook: RPATH ordering is non-deterministic

Describe the bug
~In pkgs/build-support/setup-hooks/auto-patchelf.py, when generating rpath_str from the rpath array,  dict.fromkeys is used. This does not preserve the order of the rpath entries (dictionaries in Python are unordered).~
~https://github.com/NixOS/nixpkgs/blob/ac718d02867a84b42522a0ece52d841188208f2c/pkgs/build-support/setup-hooks/auto-patchelf.py#L239~
~This means that, if there are multiple matching shared objects in the RPATH, the shared object actually referenced is (theoretically) non-deterministic.~
~It's actually indicated in that script that shared objects within the current output path are intended to be prioritized, so this is almost definitely not intended behavior:~
~https://github.com/NixOS/nixpkgs/blob/ac718d02867a84b42522a0ece52d841188208f2c/pkgs/build-support/setup-hooks/auto-patchelf.py#L260-L263~
EDIT: After a bit of a deeper dive, I don't actually think the issue is related to dict.fromkeys — dictionary order actually became guaranteed as of Python 3.7 (sorry, I'm not a Python expert :sob:), and since autoPatchelfHook uses python3 (aka python310), that shouldn't affect this. So... no idea of the cause. However, I'm still seeing the wrong version of libgio-2.0.so.0 linked (as below). Will keep investigating!

My use-case is packaging a binary distribution that bundles some of its dependencies, and there's some overlap between the shared objects it bundles and those included in the external dependencies it requires.
/nix/store
├ $out
│   ├ bin
│   │   └ $name
│   └ lib
│       └ libgio-2.0.so.0
└ glib-2.74.3
    └ lib
        └ libgio-2.0.so.0

These two entries should be swapped:
$ nix log . | grep RPATH
...
setting RPATH to: ...:/nix/store/jzh15bi6zablx3d9s928w3lgqy6and91-glib-2.74.3/lib:$out/lib:...
...

ldd should find $out/lib/libgio-2.0.so.0:
$ ldd $out/bin/$name | grep 'libgio'
libgio-2.0.so.0 => /nix/store/jzh15bi6zablx3d9s928w3lgqy6and91-glib-2.74.3/lib/libgio-2.0.so.0 (0x00007fd47f81c000)

Steps To Reproduce
Steps to reproduce the behavior:

Create a derivation that contains a shared object in its $out directory
Add a package containing a shared object with the same name to the derivation's buildInputs
Add autoPatchelfHook to the derivation's nativeBuildInputs
Build the derivation
Run ldd on the result

Expected behavior

In the build logs, lines beginning with setting RPATH to: should always start with entries local to the derivation's $out directory
ldd should always indicate that the shared object referenced is the one contained within the derivation's $out directory

Screenshots
N/A
Additional context
~Looks to have been introduced in a recent rewrite from Bash → Python: 7b9fd5d1c9802131ca0a01ff08a3ff64379d2df4~
EDIT: See above
Notify maintainers
@aszlig @layus @Mic92
Metadata
$ nix run nixpkgs#nix-info -- -m
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.18, NixOS, 23.05 (Stoat), 23.05.20230312.5a1dc8a`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - channels(root): `"nixos-22.11"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

So! In my case, libgio was not a direct dependency. However, it was both a dependency of an in-tree dependency and an out-of-tree dependency.
/nix/store
├ $out
│   ├ bin
│   │   └ $bin => librsvg-2.so.2, $lib
│   └ lib
│       ├ $lib => libgio-2.0.so.0
│       └ libgio-2.0.so.0
├ glib-2.74.3
│   └ lib
│       └ libgio-2.0.so.0
└ librsvg-2.55.1
    └ lib
        └ librsvg-2.so.2 => libgio-2.0.so.0

Without autoPatchelfHook, the RPATH was set to only $SOURCE/../lib — so libgio-2.0.so.0 resolved to the in-tree version
With autoPatchelfHook, the RPATH was indeed set properly (to $out/libs:/nix/store/...-librsvg-2.55.1/lib:/nix/store/...-glib-2.74.3/lib) — but libgio-2.0.so.0 resolved to the Nix store version

It seems like librsvg-2.so.2 comes before $lib in $bin's .dynamic section, so that's seemingly why the resolution is happening the way it is (its dependency tree seemingly gets resolved first). Adding libgio-2.0.so.0 to $bin's .dynamic section with patchelf --add-needed manually forced that resolution to the in-tree version at runtime.
Man, I learned a lot about ELFs today. Also, dynamically linked binaries are pretty cursed.
Regardless, gonna close this since it's not an issue with autoPatchelfHook. Sorry for the noise!


Question: What is your plan about this V4?

Hi @compulim,
It seems you are rewriting WebChat from scratch, what is the reason for that and what is the plan actually, if I may ask?

Thanks for asking this, I have been waiting for people to dig up the mysterious v4 branch for quite some time.
Many things for sure, rewrite is hardly a good thing for our users. But we believe we have very good reasons to do it.
In short, we are trying to fulfill wishes we gathered from the GitHub issue log:

Customization stories

"I don't want to fork Web Chat to customize it, I want to do it right out of the box."
Attachment

Custom render (add/replace/remove)

"I want to show a map."
"I want to use another version of Adaptive Cards."
"I don't like Markdown."

Decorators: "I want to add a border."

Activity

Custom render (add/replace/remove)
Decorators

"I want to add a button bar."
"I want to show a nicely-formatted welcome message."

Deep customizations, i.e. recompose Web Chat in the way you want it

"I want the send box on top, and the transcript log in reverse chronological order."
"I want the microphone button on left hand side."
"I want to add persistent menu."
"I don't like Web Chat and I want to rewrite it."

Simple styling

"I just want to modify padding, resize the bubble, or change the accent color."
"I want to add avatar."

Bundling options

"Web Chat is huge, I don't want Adaptive Cards and Markdown."

Separation of backend (Redux store) and UI (React component)

"I want to talk to a bot using command-line interface."
"I want to write a Visual Studio Code extension that talk to the bot."
"I want to use Web Chat for Slack, but not Direct Line."
"I want to downscale/process images before uploading it."
"I want to my bot to control my website. I want the bot to able to click that button for the user."
"I want to do machine-translation before showing the activity."
"I want to send my location."
"I want to control Web Chat programmatically, e.g. turning on microphone, setting the send box content, speak the last message from bot again, post to the bot without the user noticing it."

Speech enhancements

Bing Speech is now polyfilled as Web Speech
"I want to use Google Cloud Speech in Web Chat."

Our plan:

All the wishes above, can be fulfilled in the next Web Chat
We will write a Proof-of-Concept for each of the wishes

It takes time, but we want to teach people how to do something right, we also want to learn why Web Chat is not working the way they think
We will try our best to keep up this tradition for all the future wishes

Like it? Stay tuned. We have something big coming up at Ignite conference next-next Monday.

Cool! Why you gave up from using TypeScript and redux-observable?

We are still going back to TypeScript. But coding in JavaScript is much faster when the team is small (imagine we scrap out the code 3-5 times until we satisfy with the coding pattern). We will migrate the code back to TypeScript soon.
redux-observable:

RxJS bloated up the package
Debuggability is bad (how one action is chained to another?)

We opted for redux-saga instead:

We use it to sequence events into actions (more or less a state machine)

After we setup the CONNECT/DISCONNECT action pair. And you will see INCOMING_ACTIVITY while it's connected, and never see it when it's disconnected, even the external systems is buggy
I.e. we use saga to interface external systems (event/observable-based) into Redux actions

We use it as a helper to convert actions

If we receive SEND_MESSAGE/SEND_FILES, we will convert it to POST_ACTIVITY for easier consumption

The coding pattern allow us to easily write "do something while it is connected"

Saga can do everything, but we tried to do it in a minimal way to make sure we don't abuse its power and turn it into a beast.
We still love Observable as the public interface of DirectLineJS and will keep it as-is.
So our architecture is more like:

If you have more questions, keep them coming.
p.s. head down on one thing and not looking elsewhere may make us building a beast.

Thanks @compulim for the awesome work. How soon can we expect first v4 release rolling out?

We are expecting v4 preview release to be dropped within days. 😉

Preview release is now under preview branch. 🎉

Is there any roadmap for this? When can we expect the first stable version?
I'm really torn between building an integration with this preview, or the old version.

Are you guys planning to write some docs that how to migrate V3 to V4 specific to APIs and other interfaces?.

@hhasenauer We try not to announce a public schedule until we are very certain about it. The date won't be far. I can share you things we need to do to get it to stable:

Accessibility test pass
Documentations and more samples

When we design Web Chat v4, we focus deeply on developer experience (DX). We want to make sure every lines you write for a specific customization, is intuitive and minimal. We write samples before documentations to make sure the Web Chat architecture looks great to you. Then we extract code from samples into documentations, so the documentation is both solid and proven.
Since we focus a lot on DX, before getting to stable, I am expecting some samples may require us to refactor things in Web Chat. It is to make sure the code that you write to enhance Web Chat will look smooth and straightforward.
For migration, did you forked Web Chat v3 and customized the Web Chat code on your existing project?
If you didn't forked, then the migration you need to work on will be focused on CSS. The traditional SASS approach was plagued with issues. We decided to move to a modern CSS-in-JS approach (via glamor). The new style system allow you to style things in bulk (e.g.  change all paddings), or update style of a specific component. You can also replace styles for your selected components, so you don't need to undo the style we applied (some styles are not undo-able, like outline). We also added bunches of options, for example, you can now set how timestamps are grouped.
If you have forked, as v3 and v4 codebase are very different, you will need to refactor your code out into a component and consume it in v4. We designed v4 as breakable components and this concept is similar to create-react-app eject or "snappable circuit board". Web Chat can be used as-is, but if you are advanced enough, you can break/snap all components apart and recompose them the way you want. Not to mention we added a new API so you can write a new UI component that works with other Web Chat components.

Closing this issue. We are shipping stable very soon.


Confirmation before project is deleted

The Edit Project and Delete Project button are located right next to each other.  I accidentally clicked delete when trying to edit my project and now it's gone.  There should be some sort of confirmation before the project and all it's build history are removed.

https://github.com/Block8/PHPCI/issues/739


Save multiple accounts from the same provider

As a developer I should be able to create multiple accounts for the same provider.
The account data should be persisted on unlink. When linking back an account, it should use the same data, including account id.
Acceptance criteria:
1 - Test scenario 1: Create 2 accounts for the same provider. Link and unlink the accounts without errors.
2 - Test scenario 2: Create 1 account for a provider. Link and unlink the account. Link the account back with the same account id.

https://user-images.githubusercontent.com/8357343/172168192-95246088-4469-49d0-85ef-f2b02dd2c172.mov


Space dots display in goups

Recently my space dots are displayed in groups

are there any settings I need to change to get the dots to display correctly?

I have a similar problem but also the dots are now squares. Opened VScode yesterday and saw these.

Looks like duplicate of existing issues with whitespace character renders and recent fix is for #90197
Can you reproducible it in Insiders build? https://code.visualstudio.com/insiders/

Yes, please check insiders, where we now render the character that is closest in width to a space and then we enforce its width.

I noticed that it only happens when using Dank Mono font, could the whitespace ignore the font I am using and could you help reopen the issue?

Is it still reproducible in Insiders using Dank Mono font?

I had to change the font I usually use which is M+1m.
On Feb 25, 2020, 7:38 AM -0300, Andrii Dieiev<EMAIL_ADDRESS>wrote:

Is it still reproducible in Insiders using Dank Mono font?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Interestingly I have changed a Mac with exact same settings (using settings sync extension) and another Mac does not have this issue (not insider)


Fix ISO8601 compatible timestamp format on maven package

$ mvn package

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:07.577s
[INFO] Finished at: Wed Dec 21 19:21:12 CET 2016
[INFO] Final Memory: 69M/247M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project server-service: There are test failures.

$ mvn --version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-105-lowlatency", arch: "amd64", family: "unix"

$ cat server/service/target/surefire-reports/com.torodb.standalone.ToroDbBootstrapServiceTest.txt

------------------------------------------------------------------------------
Test set: com.torodb.standalone.ToroDbBootstrapServiceTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 9.739 sec <<< FAILURE! - in com.torodb.standalone.ToroDbBootstrapServiceTest
testCreateStampedeService(com.torodb.standalone.ToroDbBootstrapServiceTest)  Time elapsed: 9.287 sec  <<< ERROR!
com.google.inject.CreationException:
Unable to create injector, see the following errors:

1) Error injecting constructor, java.lang.RuntimeException: buildTimestamp property not in ISO8601 format
at com.torodb.packaging.DefaultBuildProperties.<init>(DefaultBuildProperties.java:60)
at com.torodb.packaging.DefaultBuildProperties.class(DefaultBuildProperties.java:39)
while locating com.torodb.packaging.DefaultBuildProperties
at com.torodb.standalone.BootstrapModule.configure(BootstrapModule.java:74)
while locating com.torodb.core.BuildProperties

Caused by: java.time.format.DateTimeParseException: Text '2016-12-21T19:18:05+0100' could not be parsed at index 19
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.Instant.parse(Instant.java:395)
at com.torodb.packaging.DefaultBuildProperties.<init>(DefaultBuildProperties.java:83)

Current coverage is 10.23% (diff: 100%)

Merging #127 into master will not change coverage

@@             master       #127   diff @@
==========================================
  Files           649        649
  Lines         24723      24723
  Methods           0          0
  Messages          0          0
  Branches       2765       2765
==========================================
  Hits           2530       2530
  Misses        21944      21944
  Partials        249        249

Powered by Codecov. Last update 4321bf1...843e9a0

Hi @sergio-alonso,
Thanks for your contribution. Unfortunately (or maybe fortunately?) this bug has been solved on devel branch!

Hi @gortiz,
I have the same issue on devel branch.

Which maven version are you using? We previously had that problem when we used maven.build.timestamp.format ended with Z. We changed to X because it is ISO 8601 according to the javadoc.

I'm going to update maven and check it again.
Because this is what I have running now:
$ mvn --version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-105-lowlatency", arch: "amd64", family: "unix"

I have checked several formats with Maven 3.0.5 and result is the same build failure:
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssZZ</maven.build.timestamp.format>
Caused by: java.time.format.DateTimeParseException: Text '2016-12-22T11:22:34+0100' could not be parsed at index 19

<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssZ</maven.build.timestamp.format>
Caused by: java.time.format.DateTimeParseException: Text '2016-12-22T11:19:05+0100' could not be parsed at index 19

<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssXX</maven.build.timestamp.format>
Caused by: java.time.format.DateTimeParseException: Text '2016-12-22T11:13:05+0100' could not be parsed at index 19

<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssX</maven.build.timestamp.format>
Caused by: java.time.format.DateTimeParseException: Text '2016-12-22T11:09:28+01' could not be parsed at index 19

<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'X'</maven.build.timestamp.format>
Caused by: java.time.format.DateTimeParseException: Text '2016-12-22T11:03:39X' could not be parsed at index 19

It seems that is only working with format described in maven documentation as default value:
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>

You should upgrade your maven version. It is 3.3.x right now! In fact Maven should complain about that, because the root pom has 3.2.2 as prerequisite!

All is working as expected using the right maven version.
Thanks @gortiz, and sorry for my mistake.

No problem! I am glad to help! Thanks for your interest on ToroDB!


Upgrade ceph libraries in snap, ceph warning  mons are allowing insecure global_id reclaim

lxd 4.05
ceph:v15.2.11
with recent ceph upgrade, ceph started giving warnings:
andriusjurkus@universe-linux:~$ sudo ceph --status
  cluster:
    id:     4e01640b-951b-4f75-8dca-0bad4faf1b11
    health: HEALTH_WARN
            mons are allowing insecure global_id reclaim

After I "fixed" this and disabled insecure global reclaim in ceph cluster certain lxd operations stops working. Like lxc info, lxc list, lxc snapshot (whole container locked up) if something has snapshots.
I think it should be enough to upgrade ceph libraries.

Not a snapd issue but a snap one and there is already a config key to let you handle that.
snap set lxd ceph.external=true followed by systemctl reload snap.lxd.daemon
We're also moving to core20 (edge channels done already) which will bring in a more recent bundled ceph client.


Limit VariationRegionList.regionCount to < 32K

To allow for future anticipated enhancements to support variation of Fixed or other 32-bit values, VariationRegionList.regionCount should be constrained to < 32K.
Background: for COLRv1, it is proposed that Fixed values can be variable. But Fixed is a 32-bit type. Currently, ItemVariationStore supports only 16-bit deltas. The proposed enhancement is that the high-order bit of ItemVariationData.shortDeltaCount be treated like a flag: if set, then the deltaSet[] array is comprised of 32-bit and 16-bit elements rather than 16-bit and 8-bit. See https://github.com/googlefonts/colr-gradients-spec/issues/29 for more info.

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

ID: 8cc38f55-a142-6d66-fc68-1bb6e6e9ed56
Version Independent ID: 0665d6f2-4150-1977-4fd6-91c50c226ed9
Content: OpenType Font Variations Common Table Formats - Typography
Content Source: typographydocs/opentype/spec/otvarcommonformats.md
Product: typography
GitHub Login: @PeterCon
Microsoft Alias: PeterCon

Sounds good. Make the VariationRegionList.regionCount >= 32k be Reserved, so we can use that bit in the future as well.

Make regionList >= 32K reserved? Or permanently constrain regionList to < 32K? I think we want the latter, no?

Make regionList >= 32K reserved? Or permanently constrain regionList to < 32K? I think we want the latter, no?

By making regionList >= 32k reserved, instead of wasting a bit, we allow ourselves to use it in the future for other extensions.

By making regionList >= 32k reserved, instead of wasting a bit, we allow ourselves to use it in the future for other extensions.

Same way that nameIDs are limited to 32k.

But if in the future we allow regionCount >= 32K, then wouldn't that will conflict with your proposal for using the high-order bit of shortDeltaCount to indicate 32-bit deltas?
IOW, aren't we in effect using the high-order bit in regionCount now?

But if in the future we allow regionCount >= 32K...

That's not what I said. I want to have the option to use the highest-bit of regionCount being equal 1 for a future feature...

IOW, aren't we in effect using the high-order bit in regionCount now?

No. We just are using high-bit of numShorts. That forces a limit on regionCount to be < 32K, which means the high bit of regionCount is unused and always 0.
In reality doesn't matter what you are proposing and what I am. Both say the high big of regionCount must be 0 according to current standard. A future version can always assign different semantic to high-bit==1.
Just do as you had planned. Thanks.

OK, now I understand the point you were making now. Thanks. I can say "reserved" for regionCount >= 32K.

Changed for next version.
In table describing VariationRegionList:

uint16regionCountThe number of variation region tables in the variation region list. Must be less than 32,768.

Following the table:

The high-order bit of the regionCount field is reserved for future use, and must be cleared. Applications may ignore the high-order bit if set.

The high-order bit of the regionCount field is reserved for future use, and must be cleared. Applications may ignore the high-order bit if set.

The "ignore" part is problematic. Just saying regionCount >= 32k is reserved is enough.

Yeah, understand the concern. But what would the compat story be?
Suppose in OT v.next a semantic is defined for the high bit, and so fonts appear that have regionCount >= 32K. What should an app that supports only v.last do? Ignore the entire ItemVariationStore?

Revised change per feedback. Here's the current draft:

VariationRegionList:

Type
Name
Description

uint16
axisCount
The number of variation axes for this font. This must be the same number as axisCount in the 'fvar' table.

uint16
regionCount
The number of variation region tables in the variation region list. Must be less than 32,768.

VariationRegion
variationRegions[regionCount]
Array of variation regions.

The high-order bit of the regionCount field is reserved for future use, and must be cleared.


Add fingerprint for Netatmo Smart 2-in-1 Sensor

Add support for Netatmo Smart 2-in-1 Sensor (occupancy and contact Matter sensor)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


The master branch is not 1.0.0

Man - I was looking at how the recovery middleware worked because it was crashing in my app.
(In fact, bug report - you should check that Formatter is not nil before calling.)
But what really had me confused is that master is NOT the latest code.  When you pull things with go modules you will get the 1.0 tag which is a different version.  Why doesn't the version at HEAD of master have a tag?

Thanks for the bump @rayjlinden . I've tagged the current HEAD of master as 2.0.1. You can see the changes here: https://github.com/urfave/negroni/blob/master/CHANGELOG.md
I also pushed https://github.com/urfave/negroni/commit/2810f45cff0c5e6dcb35d36abc46ed25c70b3091 to check that the formatter is not nil before calling; thanks for the report!


Adds new func to collect audit metrics.

Sends metrics to Prometheus

dont think we test app.go or metrics.go


[bug] http.ClientOptions.maxRedirections not working

Describe the bug
http.ClientOptions.maxRedirections provides undesired outcomes when trying to prevent redirects :

http.ClientOptions.maxRedirections
Cargo.toml > tauri > features
Outcome

0
["api-all"]
Redirected

1
^
Redirected

0
["api-all", "reqwest-client"]
Redirected

1
^
Network Error: error following redirect for url (https://d.cv.vg/8Qa): too many redirects

This most likely occurs when trying to limit redirects to a specific amount as well.
Reproduction
Call http.getClient with the specified Cargo.toml configuration and maxRedirections option value.
Expected behavior
The request is not redirected and succeeds, like the following Node equivalent :
import axios from 'axios';
(async () => {
    const {
        status,
        headers: {
            location
        },
        data
    } = await axios(
        'https://d.cv.vg/8Qa',
        {
            maxRedirects: 0,
            validateStatus: status => status === 302
        }
    );
    console.log(JSON.stringify(
        {
            status,
            location,
            data
        },
        null,
        4
    ));
})().catch(console.error);

Which outputs :
{
    "status": 302,
    "location": "https://source.unsplash.com/1080x2248/?technology",
    "data": {
        "url": "https://source.unsplash.com/1080x2248/?technology",
        "randomConfigIndex": 4,
        "creationTimestamp":<PHONE_NUMBER>549,
        "config": {
            "configs": [
                {
                    "url": "https://source.unsplash.com/1080x2248/?nature"
                },
                {
                    "url": "https://source.unsplash.com/1080x2248/?space"
                },
                {
                    "url": "https://source.unsplash.com/1080x2248/?food"
                },
                {
                    "url": "https://source.unsplash.com/1080x2248/?animals"
                },
                {
                    "url": "https://source.unsplash.com/1080x2248/?technology"
                }
            ],
            "isRandom": true
        }
    }
}

Platform and versions
Environment
  › OS: Ubuntu 21.10 X64
  › Node.js: 16.16.0
  › npm: 8.11.0
  › pnpm: Not installed!
  › yarn: 1.22.19
  › rustup: 1.24.3
  › rustc: 1.61.0
  › cargo: 1.61.0
  › Rust toolchain: stable-x86_64-unknown-linux-gnu

Packages
  › @tauri-apps/cli [NPM]: 1.0.2
  › @tauri-apps/api [NPM]: 1.0.1
  › tauri [RUST]: 1.0.2,
  › tauri-build [RUST]: 1.0.2,
  › tao [RUST]: 0.12.1,
  › wry [RUST]: 0.19.0,

App
  › build-type: bundle
  › CSP: default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'
  › distDir: ../dist
  › devPath: http://localhost:1234/

App directory structure
  ├─ src
  ├─ .git
  ├─ .parcel-cache
  ├─ src-tauri
  ├─ .idea
  ├─ dist
  └─ node_modules

Stack trace
No response
Additional context
No response

Thanks for catching this, fix will be available in the next release.


Allow passing explicit Configuration via DropwizardTestSupport, DropwizardAppRule (for #1130)

PR adds an alternate way to construct test scaffolding, by passing pre-constructed Configuration instead of relying on a YAML resource. This is useful for tests where configuration is programmatically set. Other minor access changes needed to support this functionality.

Thanks! Will fix the issues.

Thanks, Tatu. Apart from some nitpicks, the patch looks good to me.

The patch has already been applied to master in 15e561.
For some reason the pull request remained opened. I close it manually.
Thanks again to @cowtowncoder for work on this.

Excellent! Thank you for thorough review & merging.


Update from hotfix-example-2

🚀 Opening a pull request for this branch

CLA Assistant Lite bot ✍ All contributors have signed the CLA


[BUG] JsonWriter puts metadata as a child of 'shapes' but it should be top-level

Per the JSON-AST specification, the merged "metadata" is supposed to be a top-level property of the json ast model, at the same level as "shapes", but JsonWriter puts it underneath "shapes" here:
https://github.com/johnstonskj/rust-atelier/blob/293e8244dbff9dc550116485e5850f502e2e367a/atelier-json/src/writer.rs#L111

Fixed in https://github.com/johnstonskj/rust-atelier/commit/6bdce1062e652660c438cfba7638470db33978c0 to release as 0.2.7


vscode-extensions.zaaack.markdown-editor: Init at 0.1.10

Description of changes
Adds https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Please note: Microsoft has removed the VSCode marketplace changelog page. As such, I am unable to provide meta.changelog.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4100


Remove the Unsafe.monitorEnter usage in code to support JDK11

Currently, it will throw the following exception if using JDK11
Caused by: java.lang.NoSuchMethodError: sun.misc.Unsafe.monitorEnter(Ljava/lang/Object;)V
    at com.alibaba.ververica.cdc.debezium.internal.DebeziumChangeConsumer.handleBatch(DebeziumChangeConsumer.java:101)
    at io.debezium.embedded.ConvertingEngineBuilder.lambda$notifying$2(ConvertingEngineBuilder.java:81)
    at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:810)
    at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:170)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

The JDK version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

The reason is that we are using Unsafe.monitorEnter to manually hold the checkpoint lock during database snapshot phase. If we want to remove the Unsafe.monitorEnter, an approach is that, we have to using synchronize keyword to hold the checkpoint lock in SourceFunction.run method.

Hey @wuchong I really like the library, removing lots of moving parts.
I took the initiative and opened a PR removing the UNSAFE calls to make the library compatible with Java 11. It'd be nice if you could give some feedback and hopefully get it merged.

Hi @balint133 ! Glad to hear that you are inteseted on this issue. The introducing of Unsafe.monitorEnte is that we want to dynamically hold and release the checkpoint lock for database snapshot phase. The reason is that we can't perform checkpoint when scanning database table as we don't have an offset.

One approach that comes to my mind is having a queue between the DebeziumChangeConsumer and DebeziumSourceFunction, and collect message in DebeziumSourceFunction, and use synchronize keyword to hold the checkpoint lock in DebeziumSourceFunction.run when it is scanning the database table.

Hi Wuchong,
I am using MySQL CDC connector and I am getting below error when doing the select on table in Flink CLI -
[ERROR] Could not execute SQL statement. Reason:
java.lang.NoSuchMethodError: 'void sun.misc.Unsafe.monitorEnter(java.lang.Object)'
Please suggest how to resolve this issue.
I am using JDK 11
I tried with both mysql cdc connector vesrion 1.1.0 and 1.2.0.In both version I am getting the same error.

Please downgrade your JDK version to Java 8 before this issue is fixed.

Expecting!

This has been supported in master branch with PR #194.


platform_permission should replace on name change

Describe the bug
This is analogous to https://github.com/jfrog/terraform-provider-artifactory/issues/944, only for the platform_permission resource.
Requirements for and issue
Terraform plans to update a platform_permission resource when the name changes, but the apply fails with "Not Found" (presumably attempting to do some operation on the permission's new name).
Expected behavior
Since a permission target cannot be renamed, it should be replaced.
Additional context
Example:

@NiklasRosenstein Thanks for the report. I've added this to our plan.


unclear validation for yearly files

Hi Jon,
I am testing the validation script with monthly cmorized data that have been merged into yearly files using NCO. However, even if the files seems ok, the validation tool - which it works perfectly on the single monthly files - reports time dimension inconsistency.
However, manual inspection suggests that everything is fine. Did you ever seen something like that?
Thanks a lot for any help!
(validate) [pdavini0@r000u06l01 Year_1950_NCO]$ /marconi_work/IscrB_DIXIT/ecearth3/cmorization/primavera-val/bin/validate_data.py -s rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195012.nc
/marconi_work/IscrB_DIXIT/opt/anaconda2/envs/validate/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
/marconi_work/IscrB_DIXIT/opt/anaconda2/envs/validate/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
WARNING: File failed validation:
The points in the time dimension in the file are not contiguous: rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195012.nc
ERROR: 1 files failed validation
(validate) [pdavini0@r000u06l01 Year_1950_NCO]$ cdo info rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195012.nc
    -1 :       Date     Time   Level Gridsize    Miss :     Minimum        Mean     Maximum : Parameter ID
     1 : 1950-01-16 12:00:00       0   131072       0 :      32.168      260.07      452.62 : -1
     2 : 1950-02-15 00:00:00       0   131072       0 :      57.797      259.70      451.82 : -1
     3 : 1950-03-16 12:00:00       0   131072       0 :      56.102      259.96      435.76 : -1
     4 : 1950-04-16 00:00:00       0   131072       0 :      31.353      263.37      443.76 : -1
     5 : 1950-05-16 12:00:00       0   131072       0 :      30.210      270.96      446.55 : -1
     6 : 1950-06-16 00:00:00       0   131072       0 :      40.631      278.94      454.33 : -1
     7 : 1950-07-16 12:00:00       0   131072       0 :      30.421      281.32      498.45 : -1
     8 : 1950-08-16 12:00:00       0   131072       0 :      30.593      281.16      486.36 : -1
     9 : 1950-09-16 00:00:00       0   131072       0 :      23.926      272.30      462.63 : -1
    10 : 1950-10-16 12:00:00       0   131072       0 :      45.330      265.33      440.96 : -1
    11 : 1950-11-16 00:00:00       0   131072       0 :      9.7350      261.43      440.33 : -1
    12 : 1950-12-16 12:00:00       0   131072       0 :      37.959      260.64      425.64 : -1
cdo info: Processed 1572864 values from 1 variable over 12 timesteps ( 0.13s )

The failing check is using https://scitools.org.uk/iris/docs/latest/iris/iris/coords.html?highlight=is_contiguous#iris.coords.AuxCoord.is_contiguous
The times in each of those months is varying between midday and midnight. Is there a discontinuity in the bounds because of this?
Could you upload a sample failing file to JASMIN or somewhere else that I can access it please? Please email me with the path to the uploaded file if that's easiest.

Hi Jon,
it was simpler to compress and upload it here, it is a small file.
The time is varying because - as long as I understand - these are monthly average so that the length of the month is affecting the averaged time value. I used NCO 4.6.4
When I check ncdump -h of the original file and the present they present actually the same metadata but the time length, so I cannot exactly understand what's happening.
rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195012.nc.zip

Hi Paolo,
Thanks for the file. The bounds have not been set correctly for each month:
$ ncdump  -v time_bnds rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195012.nc
data:

 time_bnds =
  0, 31,
  0, 28,
  0, 31,
  0, 30,
  0, 31,
  0, 30,
  0, 31,
  0, 31,
  0, 30,
  0, 31,
  0, 30,
  0, 31 ;

$ ncdump  -v time rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195012.nc

data:

 time = 15.5, 45, 74.5, 105, 135.5, 166, 196.5, 227.5, 258, 288.5, 319, 349.5 ;

The contiguity check is based on these bounds and so is failing at the moment.
Thanks,
Jon

Hi Jon,
Sorry for but I am a bit confused - I am new of in these things. These files have been produced from the merging with NCO of single monthly files, which each reads as expected:
$ ncdump  -v time_bnds rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195001.nc
 time_bnds =
  0, 31 ;
$ ncdump  -v time rldscs_Amon_EC-Earth3P_Primavera-atm_r1i1p1f1_gr_195001-195001.nc
 time = 15.5 ;

Should the time_bnds be arranged when yearly concatation is performed in something as 0,365? Or should the original files have a 0,365 time_bnds?
Thanks for any hint.

Hi Paolo,
The bounds should have the same units as time. I would expect the bounds to be something like (some of the values may be incorrect by 1 or 2):
$ ncdump  -v time_bnds ideal_file_195001-195012.nc
data:

 time_bnds =
  0, 31,
  31, 59,
  59, 90,
  90, 120,
  ...

The original file for January 1950 should have bounds of 0, 31 and February 1950 should be 31, 59. Are the bounds correct in the original file for February?
If you could upload the original unconcatenated files for 1950 in a tar.gz or zip file then I am happy to have a look at them.
Thanks,
Jon

Hi Jon ,
actually the problem was in the reference time of the monthly files that was not correctly set, which affected the time_bnds. We solved this and now the validation run smoothly!
Thanks a lot for your help!
Cheers,
Paolo


double name of month

hello at login screen in right corner under the date i have doube name of month (April|April) - in Polish it is (Kwietnia|Kwiecień) what file i must edit to fix this ?
http://imgur.com/Zop6USt
edit: in Polish language there are small bugs in translate
"shutdown":"zamknięcie systemu"
"backgroundEngine":"Tło silnika"
"blues":"Niebieskie"
"brown":"Brązowy"

Thank you for the updated translations, they have been added via bdcdac2.
I do not believe you can fix the double month issue, that is supplied by moment.js. However the name of the day should not be moved up like it is in the image you provided, I will look into fixing it.


Change option --color to --colors

--color is not a legitimate option for mocha. I assume --colors was the intended option.

I was getting an error mentioned in #4. This fixed the problem

Nice, thanks! I wonder why I wasn't getting this error.


Fire Wall Traffic Rules Time Restrictions - dot v.s. colon

I'm running OpenWrt 21.02.0-rc3
In the time restrictions tab, the example time has periods in the example (hh.mm.ss), but the actual text field requires colons. I think it should show (hh:mm:ss) as the example instead of (hh.mm.ss). Here's a screen shot showing the typo:

Thanks, should be fixed in master and 21.02 after buildbots build new package.

thanks, that was fast!!


Master to dev modules

Docs Build status updates of commit c13cb98:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/add-holographic-remoting.md
:warning:Warning
View
Details

mixed-reality-docs/gaze.md
:warning:Warning
View
Details

mixed-reality-docs/gestures.md
:warning:Warning
View
Details

mixed-reality-docs/holograms-210.md
:warning:Warning
View
Details

mixed-reality-docs/interaction-fundamentals.md
:warning:Warning
View
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

mixed-reality-docs/Configure-Unity-Project.md
:white_check_mark:Succeeded
View

mixed-reality-docs/TOC.md
:white_check_mark:Succeeded
View

mixed-reality-docs/about-this-design-guidance.md
:white_check_mark:Succeeded
View

mixed-reality-docs/app-quality-criteria.md
:white_check_mark:Succeeded
View

mixed-reality-docs/asset-creation-process.md
:white_check_mark:Succeeded
View

mixed-reality-docs/billboarding-and-tag-along.md
:white_check_mark:Succeeded
View

mixed-reality-docs/calibration.md
:white_check_mark:Succeeded
View

mixed-reality-docs/case-study-3-holostudio-ui-and-interaction-design-learnings.md
:white_check_mark:Succeeded
View

mixed-reality-docs/case-study-looking-through-holes-in-your-reality.md
:white_check_mark:Succeeded
View

mixed-reality-docs/case-study-my-first-year-on-the-hololens-design-team.md
:white_check_mark:Succeeded
View

mixed-reality-docs/comfort.md
:white_check_mark:Succeeded
View

mixed-reality-docs/commercial-features.md
:white_check_mark:Succeeded
View

mixed-reality-docs/coordinate-systems-in-directx.md
:white_check_mark:Succeeded
View

mixed-reality-docs/creating-3d-models-for-use-in-the-windows-mixed-reality-home.md
:white_check_mark:Succeeded
View

mixed-reality-docs/creating-a-holographic-directx-project.md
:white_check_mark:Succeeded
View

mixed-reality-docs/cvpr-2019.md
:white_check_mark:Succeeded
View

mixed-reality-docs/design.md
:white_check_mark:Succeeded
View

mixed-reality-docs/development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/development.md
:white_check_mark:Succeeded
View

mixed-reality-docs/device-sharing.md
:white_check_mark:Succeeded
View

mixed-reality-docs/direct-manipulation.md
:white_check_mark:Succeeded
View

mixed-reality-docs/direct_manipulation.md
:white_check_mark:Succeeded
View

mixed-reality-docs/directx-development-overview.md
:white_check_mark:Succeeded
View

mixed-reality-docs/eye-tracking.md
:white_check_mark:Succeeded
View

mixed-reality-docs/eyegaze-and-commit.md
:white_check_mark:Succeeded
View

mixed-reality-docs/galaxy-explorer-update.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze,-gestures,-and-motion-controllers-in-directx.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-and-commit.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-and-dwell.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-in-directx.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-in-unity.md
:white_check_mark:Succeeded
View

mixed-reality-docs/gaze-targeting.md
:white_check_mark:Succeeded
View

mixed-reality-docs/get-started.md
:white_check_mark:Succeeded
View

mixed-reality-docs/hands-and-motion-controllers-in-directx.md
:white_check_mark:Succeeded
View

mixed-reality-docs/hands-and-tools.md
:white_check_mark:Succeeded
View

mixed-reality-docs/hands-free.md
:white_check_mark:Succeeded
View

mixed-reality-docs/hologram-stability.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holograms-100.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holograms-230.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-frame.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-player.md
:white_check_mark:Succeeded
View

mixed-reality-docs/hololens-emulator-archive.md
:white_check_mark:Succeeded
View

mixed-reality-docs/how-it-works-mixed-reality-capture-studios.md
:white_check_mark:Succeeded
View

mixed-reality-docs/images/GuideNextButton.png
:white_check_mark:Succeeded
View

This comment lists only the first 50 files in the pull request.

mixed-reality-docs/add-holographic-remoting.md

Line 18: [Warning] Illegal link: `<a href="index.md#news-and-notes">coming soon</a>` -- missing bookmark. The file index.md doesn't contain a bookmark named news-and-notes.

mixed-reality-docs/gaze.md

Line 46: [Warning] Illegal link: `<a href="index.md#news-and-notes">coming soon</a>` -- missing bookmark. The file index.md doesn't contain a bookmark named news-and-notes.

mixed-reality-docs/gestures.md

Line 35: [Warning] Illegal link: `<a href="index.md#news-and-notes">coming soon</a>` -- missing bookmark. The file index.md doesn't contain a bookmark named news-and-notes.

mixed-reality-docs/holograms-210.md

Line 156: [Warning] Illegal link: `<a href="using-visual-studio.md#pairing-your-device-hololens">pair it with Visual Studio</a>` -- missing bookmark. The file using-visual-studio.md doesn't contain a bookmark named pairing-your-device-hololens.

mixed-reality-docs/interaction-fundamentals.md

Line 164: [Warning] Illegal link: `<a href="index.md#news-and-notes">coming soon</a>` -- missing bookmark. The file index.md doesn't contain a bookmark named news-and-notes.

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.


Add Model-Based Meta-Policy-Optimization (MBMPO)

Add Model-Based Meta-Policy-Optimization (MBMPO)
Introduction and description
Coming soon
Improvements in this PR
Coming soon
Proof of Work
Coming soon
Cheers,
Johann

Hi @Toni-SM,
for my work I have to implement MBMPO. But I wanted your opinion on something.
First, some words about MBMPO in case you are not familiar with it. MBMPO being a model-based algorithm, it uses a learned model to train the policy, and, as far as I understand, uses TRPO to train the (meta-)policy. But, the idea could probably be generalized to use other algorithms for the policy.
Thus, I could either hard-code TRPO into the agent or pass another agent to the MBMPO.
The later would increase the flexibility but also would require a somewhat different __init__ function, something like:
class MBMPO(Agent):
    def __init__(self,
        models: Dict[str, Model],
+       agent: Agent,
        memory: Optional[Union[Memory, Tuple[Memory]]] = None,
        observation_space: Optional[Union[int, Tuple[int], gym.Space]] = None,
        action_space: Optional[Union[int, Tuple[int], gym.Space]] = None,
        device: Union[str, torch.device] = "cuda:0",
        cfg: Optional[dict] = None) -> None:

What's your take on that?

The idea about generalization for other agents looks good...
Whenever it is possible to avoid modifying the arguments of the agent constructors well. But there are cases where it is necessary as in AMP, or in the solution you propose for this agent

Thanks for the quick feedback, will go that route then

By the way, the current TRPO implementation iterates through a learning epoch for both, the policy and the value... When it should be only for value ( the optimization of the policy should be excluded from this loop).


Metal error with Flux image diffusion cast_bf16_f32 does not exist

Running the new Flux model on Mac M1 Metal
running the example
 cargo run --features metal --example flux -r -- \
    --height 1024 --width 1024 \
    --prompt "a rusty robot walking on a beach holding a small torch, the robot has the word "rust" written on it, high quality, 4k" --model schnell

and after downloading the models and trying to run
Tensor[[1, 768], f32, metal:4294969333]
Error: Metal error Error while loading function: "Function 'cast_bf16_f32' does not exist"

Caused by:
    Error while loading function: "Function 'cast_bf16_f32' does not exist"

related to https://github.com/huggingface/candle/issues/2163

Just to mention that I was able to run flux on a macbook pro M3 Max earlier this week. I don't think this explains the problem you encountered but prior to this week we were missing the bf16 matmul kernels which are now available.
That said the error about missing cast_bf16_f32 seems more like using a clang toolchain that doesn't support bfloat, e.g. clang 14, or that the hardware itself might not support bfloat. Some related issue for tinygrad: https://github.com/tinygrad/tinygrad/issues/3453

Great to hear. thanks. We just tried and it still errors out with the same error on M1 and M3 with metal.

checking in on this again. so the idea is that maybe clang is wrong version? just tried again with latest candle and still same error
function 'cast_f32_bf16' does not exist


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_a2_pyhxb38/clone/recipe/meta.yaml:14: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_a2_pyhxb38/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
WARNING: /tmp/abs_a2_pyhxb38/clone/recipe/meta.yaml:47: missing_description: The recipe is missing a description
ERROR: /tmp/abs_a2_pyhxb38/clone/recipe/meta.yaml:47: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_a2_pyhxb38/clone/recipe/meta.yaml:47: missing_license_family: The recipe is missing the about/license_family key.
Errors were found


How to use this plugin?

What's this plugin supposed to do? Generate a search.xml file, right? Where's this file saved? How do I generate this file?

Yes, this plugin is used for generate a xml / json file that provides data for searching. After doing hexo g you will get the generated result at your public folder. Now you have enough data for searching.
However, you still need to tell hexo how to grab it and display a search box at some place. You have two choice:
* you don't want to write search engine by yourself. There are many themes that take use this plugin for local search engine that works out of box.
* you are familiar with Ajax and jQuery and would like to write your own search engine, you can implement one by yourself according to the example theme I give at the project home page. Read the source code of this theme. Generally there are 3 steps:
1. write a search view. This is the place for displaying a search form and search results ;
2. write a search script. This script tells the browser how to grab search data and filter out contents what we're searching;
3. tell hexo to connect the above two part.

I think I have already given a detail usage. Close this issue.


API Convert fieldSpec options to bitwise operators

Fixes #6159
No CMS PR necessary for this one. ;)

Current coverage is 70.30% (diff: 93.33%)

Merging #6161 into master will increase coverage by <.01%

@@             master      #6161   diff @@
==========================================
  Files           418        418
  Lines         35955      35960     +5
  Methods        4720       4720
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          25279      25283     +4
- Misses        10676      10677     +1
  Partials          0          0

Powered by Codecov. Last update 8a2dddb...a24fc62

❤


fix bug of bandWidth calculation method

fix bug of bandWidth calculation method.

fix bug:API URL /ngrinder/ngrinder/agent/api/availableAgentCount [GET] does not exist.
(code 404)

fix bug:
API URL /ngrinder/ngrinder/agent/api/availableAgentCount [GET] does not exist.
(code 404)
detail.ftl
var ajaxObj = new AjaxObj("${req.getContextPath()}/agent/api/availableAgentCount");
====> var ajaxObj = new AjaxObj("/agent/api/availableAgentCount");

Thanks for the PR.
However, we're currently rewrite ngrinder UI side with vue. We'll refer this when publishing the new ngrinder.

could u make clean up the commit only having.
receivedPerSec = ((long) ((received - bandWidth.getReceived()) / rate));
sentPerSec = ((long) ((sent - bandWidth.getSent()) / rate));

and
var ajaxObj = new AjaxObj("/agent/api/availableAgentCount";

please.

Because the issue is important but no response from author, @donggyu-lee has created the PR #294 picking up the 0eb2d6ecefb7f0c2c9fea96507fcd3aa69bbaadc

Fixed by #297 and #294.


Libpostal errors

I've been trying a deployment on Ubuntu 16 (using the default config) and the build process around libpostal shows a lot of errors.  The whole container does build successfully but when you try to run it error messages surround how libpostal is missing.

Errors show up in the build process.
Docker version 17.06.0-ce, build 02c1d87
docker-compose version 1.14.0, build c7bdf9e
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.2 LTS
Release:	16.04
Codename:	xenial
First set of no:
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no

checking for memmove... yes
checking for memset... yes
checking for regcomp... yes
checking for setlocale... yes
checking for sqrt... yes
checking for strdup... yes
checking for strndup... yes
checking for shuf... yes
checking for gshuf... no
checking cblas.h usability... no
checking cblas.h presence... no
checking for cblas.h... no
configure: extra cflags for scanner.c:
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libpostal.pc
config.status: creating src/Makefile
config.status: creating test/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

First set of errors:
In file included from sparse_matrix.h:46:0,
                 from averaged_perceptron.h:27,
                 from address_parser.h:52,
                 from libpostal.c:10:
matrix.h:19:2: warning: #warning "No CBLAS" [-Wcpp]
 #warning "No CBLAS"
  ^
libpostal.c: In function ‘add_string_alternatives’:
libpostal.c:326:46: warning: unused variable ‘start_index’ [-Wunused-variable]
                                     uint32_t start_index = cstring_array_start_token(tree->strings);
                                              ^
libpostal.c:344:38: warning: unused variable ‘start_index’ [-Wunused-variable]
                             uint32_t start_index = cstring_array_start_token(tree->strings);
                                      ^
libpostal.c:367:26: warning: unused variable ‘start_index’ [-Wunused-variable]
                 uint32_t start_index = cstring_array_start_token(tree->strings);
                          ^
libpostal.c: In function ‘add_affix_expansions’:
libpostal.c:548:72: warning: unused parameter ‘lang’ [-Wunused-parameter]
 static bool add_affix_expansions(string_tree_t *tree, char *str, char *lang, token_t token, phrase_t prefix, phrase_t suffix, libpostal_normalize_options_t options) {
                                                                        ^
libpostal.c: In function ‘expand_alternative’:
libpostal.c:859:11: warning: unused variable ‘lang’ [-Wunused-variable]
     char *lang;
           ^
libpostal.c: In function ‘expand_alternative.isra.13’:
libpostal.c:602:45: warning: ‘*((void *)&suffix_expansion+24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 add_space = suffix_expansion.separable;
                                             ^
libpostal.c:562:25: note: ‘*((void *)&suffix_expansion+24)’ was declared here
     address_expansion_t suffix_expansion;
                         ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I.. -I/usr/local/include -Wall -Wextra -Wno-unused-function -Wformat -Werror=format-security -Winit-self -Wno-sign-compare -DLIBPOSTAL_DATA_DIR=\"/usr/share/libpostal/libpostal\" -g -mfpmath=sse -msse2 -DUSE_SSE -g -O2 -O2 -MT libpostal_la-libpostal.lo -MD -MP -MF .deps/libpostal_la-libpostal.Tpo -c libpostal.c -o libpostal_la-libpostal.o >/dev/null 2>&1
mv -f .deps/libpostal_la-libpostal.Tpo .deps/libpostal_la-libpostal.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.. -I/usr/local/include    -Wall -Wextra -Wno-unused-function -Wformat -Werror=format-security -Winit-self -Wno-sign-compare -DLIBPOSTAL_DATA_DIR='"/usr/share/libpostal/libpostal"' -g -mfpmath=sse -msse2 -DUSE_SSE -g -O2 -O2  -MT libpostal_la-address_dictionary.lo -MD -MP -MF .deps/libpostal_la-address_dictionary.Tpo -c -o libpostal_la-address_dictionary.lo `test -f 'address_dictionary.c' || echo './'`address_dictionary.c
libtool: compile:  gcc -DHAVE```

These errors are very helpful. Is there a log of errors coming from the API container which uses libpostal?

Log errors from docker-compose up
output.txt

I usually see a bunch of colorful warnings when compiling libpostal locally on my desktop, it's nothing to worry about, for me libpostal still works fine.
$ cat /etc/issue
Ubuntu 16.10 \n \l

looking at your attached log file there seem to be other errors which need to be resolved such as:
Error: Cannot find module '/data/placeholder/graph.json'

@dianashk could you explain the process for downloading the placeholder data, I suspect that this is the real issue.

Looking through the log file, it seems there are 2 issues:

WOF data doesn't seem to exist in the /data/whosonfirst mounted directory
Libpostal is not properly installed so API and interpolation can't start up

I'm not sure what could cause such issues other than intermittent connectivity issues or lack of space on the mounted directory. When you started up the build script, what was DATA_DIR environment variable set to? If you list all the things in that directory after the build was finished what do you see? The data directory should look like this:
$ ls -al /pelias/data/
drwxr-xr-x  3 systemd-resolve systemd-timesync 4096 Jul 28 19:53 elasticsearch
drwxr-xr-x  2 root            root             4096 Jul 28 20:23 interpolation
drwxr-xr-x  3 root            root             4096 Jul 28 19:54 openaddresses
drwxr-xr-x  2 root            root             4096 Jul 28 19:54 openstreetmap
drwxr-xr-x  2 root            root             4096 Jul 28 19:55 placeholder
drwxr-xr-x  2 root            root             4096 Jul 28 19:55 polylines
drwxr-xr-x  4 root            root             4096 Jul 28 19:54 tiger
drwxr-xr-x  4 root            root             4096 Jul 28 19:54 whosonfirst

And looking at the whosonfirst data subdirectory you should see this:
$ ls -al /pelias/data/whosonfirst/data/
drwxr-xr-x  3 root root 4096 Jul 28 19:54 101
drwxr-xr-x  4 root root 4096 Jul 28 19:54 102
drwxr-xr-x  4 root root 4096 Jul 28 19:54 110
drwxr-xr-x  4 root root 4096 Jul 28 19:54 420
drwxr-xr-x  3 root root 4096 Jul 28 19:54 538
drwxr-xr-x  5 root root 4096 Jul 28 19:54 554
drwxr-xr-x  4 root root 4096 Jul 28 19:54 856
drwxr-xr-x 30 root root 4096 Jul 28 19:54 858

If you don't see the data in your data directory as mentioned above then something went wrong during data download steps.
Last week I provisioned a new EC2 machine and tested the build script start to finish and did not run into any issues. The build script ran end-to-end and once it was done I was able to query the Pelias API and all the services were up and running.
The machine was setup with the following:

docker-compose version 1.8.0, build unknown
Docker version 17.06.0-ce, build 02c1d87
git version 2.7.4
npm version 2.15.11
Ubuntu 16.04.2 LTS (Codename:    xenial)

I'm rebuilding and seeing something different this time.  My original deployment didn't have all the data you show (maybe it got deleted since I used tmp? or my environment variable got unset?).  I'll update when I know more.
Not sure why my instance got suppperrr sloww.
May I suggest you store the DATA_DIR in a different way?  Perhaps inputted from a .env file or put it into the json config?  And then maybe not suggest using /tmp/data/ and instead /pelias/data/ .

@3vivekb, how are your setup efforts going? We've made some updates to the docker images, so be sure to pull down the latest from dockerhub before attempting another build.

Hi all, with the recently merged PR #42, we've now switched completely over to using a pre-built service that provides libpostal. Thus I believe any issues like this are no longer possible. If there are questions or issues, don't hesitate to comment or re-open this issue.


macOS  Error

System.DllNotFoundException: Unable to load shared library 'portaudio' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(libportaudio, 0x0001): tried: 'libportaudio' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibportaudio' (no such file), '/usr/lib/libportaudio' (no such file, not in dyld cache), 'libportaudio' (no such file), '/usr/local/lib/libportaudio' (no such file), '/usr/lib/libportaudio' (no such file, not in dyld cache)

Could you describe what you have done to produce the above error?

No response. Closing.


[ZEPPELIN-3609][PART-1] Refactor ZeppelinServer class

What is this PR for?
Refactoring ZeppelinServer to add new feature easily and understand more clearly. And I'd like to refactor with several commits not to keep apart from the current master.
What type of PR is it?
[Refactoring]
Todos

[x] - Intorduce @Inject annotation for server component

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-3609

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

I decided to make each change as small as possible. This is the first part.
CI passed: https://travis-ci.org/jongyoul/zeppelin/builds/416895950

Rebased from current master. Will merge it if CI passed


ipcache: Fix node-to-node encryption with kube-apiserver

The kube-apiserver reserved identity requires us to create a
IPCache entry based on the endpoints of the default/kubernetes K8s
service.
This kube-apiserver IPCache entry will overwrite any existing remote
host entries. The entry also blocks the creation of remote host entries
for the same IP (via source.AllowsOverwrite).
When the kube-apiserver entry is created, we check if there is an
existing remote node entry, and if so, copy over the IPSec keypair
information into the newly created kube-apiserver entry. If however the
order is reversed (we first create the kube-apiserver entry before the
remote node is discovered), then the IPSec keypair is never updated.
This in turn means that connectivity to any remote nodes which also run
the kube-apiserver is broken when node-to-node encryption is enabled.
This commit works around the issue by adding the IPKeyPair before the
labels are injected. This allows InjectLabels to look up the pair
whenever the entry is created or updated.
This work is also needed for the upcoming WireGuard node-to-node
encryption.
--
(Edit: This has been partially addressed) @joestringer @christarazi I would highly value your feedback on this, as this is rather hacky at the moment. I think an alternative (maybe cleaner?) approach would be to bring in the IPSec key pair via UpsertMetadata/TriggerLabelInjection or something, but it would require us to pass in the encrypt key and host IP to those methods.

Updated the PR based on a suggestion by Chris. Doing some manual testing as well.

/test

/test

Seems like this approach breaks host connectivity in tunnel mode. Not really sure yet why, I don't see anything obviously wrong with IPCache. :thinking:

From prior discussions, I think the plan was to unblock this via https://github.com/cilium/cilium/pull/19765 + https://github.com/cilium/cilium/pull/20117. The former is now marked ready for review and I've rebased the latter, though it is filled with TODO's to follow up on.

Actually closing this in favor of https://github.com/cilium/cilium/pull/20117


Fix/duplicated events

This PR closes #5, #7, #4

@tshemsedinov undestood, thanks.
What do you think about this way to implement private methods/fields of class? Will it work for Watcher class?

Or it will better to keep public all methods and fields of Watcher class?

We don't need private methods and fields in this case at all

Sorry for putting close functionality from #7 issue into this PR. Just did not want to create temprory workaround for ending node process after test executing.
setTimeout(() => {	        process.exit(0);
      }, WATCH_TIMEOUT);

Accidentally сovered #4

Accidentally сovered #4

Closed in favour of https://github.com/metarhia/metawatch/pull/16


x/pkgsite: package removal request for https://pkg.go.dev/github.com/[redacted]

https://pkg.go.dev/github.com/[redacted]
I accidentally published this and would like this to be deleted if possible. Thank you!

Related Issues and Documentation

x/pkgsite: package removal request for codeberg.org/lhinderberger/* and github.com/lhinderberger/* #62739 (closed)
x/pkgsite #48560 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

The repository is still public?

Removed.

Awesome, thank you 🙏


REQ

mo req jg blh kah? :+1:  vhtear api missing person

mo req jg blh kah? 👍 vhtear api missing person

noted

@romystuas done https://github.com/SlavyanDesu/BocchiBot/commit/7f99963dfb020ff08cfcd1a3190c368e5b57240f

@romystuas done 7f99963

ahhh thanks :DDDDDD


Java: Uncaught TypeError: Cannot read property 'search' of undefined

Steps to reproduce:

Open a java program
Enter /**
Press enter

Interestingly, this does not occur when the closing mark is there; ie, if there is a */ on a newline, an error is not thrown. Additionally, this error is thrown for neither /* + enter nor /*** + enter.
 As long as there is something beneath the line, the error is not thrown. Strange corner case.

This also happens when I try using docblockr for methods which do not have method bodies or valid return types. The following code works:
/**
     * [getPort description]
     * @return [description]
     */
    public int getPort() {

    }

And the following produces an error
    /**
    public InetAddress getAddress()

    public String getUsername()