here's the fix ;)

it should be easier to compare using a github PR

it should be easier to compare using a github PR
Hi, I just had a  test today. I'm too busy these days.
At first, this really more simplified. For example: the cultureID field. Thank you so much for optimizing code.

Everything is OK, but there still have a question that handling '[' and ']'  symbol in Chinese.
The problem is that [] symbol should't be discarded when getting value of  (tagRelic and tagCharm).
This problem is caused by me. I don't communicate clearly in code comments. Sorry.
In Chinese, almost name of (Relic and Charm) ends with "[xxx]" which is all meaningful.
In localization file:

In TQ:

In Vault what I expect:

In Vault after fix:

There is no [] symbol.
I want to fix it.
But I don't know much about other languages。
I'm afraid my fix will affect other language processing。
Do you have any experience or opinions？
Look forward to your reply。
By the way, now, that's the only question. Can't wait for Chinese version TQVault!

it should be easier to compare using a github PR

it should be easier to compare using a github PR
Hi, I just had a  test today. I'm too busy these days.
At first, this really more simplified. For example: the cultureID field. Thank you so much for optimizing code.

Everything is OK, but there still have a question that handling '[' and ']' symbol in Chinese. The problem is that [] symbol should't be discarded when getting value of (tagRelic and tagCharm). This problem is caused by me. I don't communicate clearly in code comments. Sorry. In Chinese, almost name of (Relic and Charm) ends with "[xxx]" which is all meaningful.
In localization file:
In TQ:
In Vault what I expect:
In Vault after fix:  There is no [] symbol.
I want to fix it. But I don't know much about other languages。 I'm afraid my fix will affect other language processing。
Do you have any experience or opinions？
Look forward to your reply。
By the way, now, that's the only question. Can't wait for Chinese version TQVault!

@hguy  there still have a question.

Hi !
I didn't know this was meaningfull.
Here's the logic of the cleaning part
if (Regex.Match(label, @"^(?<Tag>\[\w+\])(?<Label>[^\\[]+)|^\[(?<Label>[^\]]+)\]$") is { Success: true } match)
	label = match.Groups["Label"].Value.Trim();
else
	label = label.Replace("[", string.Empty).Replace("]", string.Empty).Trim();

#Regex Match (really meaningful)
"[右键 - 喝]" => "右键 - 喝"
"[Faites un clic droit pour boire]" => "Faites un clic droit pour boire"
"[ms]renforcé[mp]renforcés[fs]renforcée[fp]renforcées" => "renforcé"
"[ms]renforcé" => "renforcé"
#Replace Match (just for cleaning in between brackets not very meaningful in latin language)
"Requiert {%s0}: {%.0f1} [ {^r%.0f2 ^y- %.0f3}% de réduction]" => "Requiert {%s0}: {%.0f1}  {^r%.0f2 ^y- %.0f3}% de réduction"
Solution : Remove both "label.Replace()" it's no problem for latin and it's a big deal for chinese.

Thanks!


Update README.md

Corrected a grammar mistake.

Thanks! Considered is one of my top 3 misspelled words!


SQLite 3.30.1

Currently used version of SQLite has a known vulnerability. Could you please upgrade SQLite to version above 3.30.1?

Will do.

Hi Eric, Any update on the SQlite 3.30.1?

I can assure you that when there is an update, it will be visible here in this issue.
I haven't gotten this done yet.  Soon.

I assume you are talking about the so-called "Magellan 2.0" stuff from Tencent.
FWIW, the author of SQLite posted something on the sqlite-users mailing list yesterday giving his opinion about the urgency (or lack of same) on this issue.
Anyway, regardless of whether these vulnerabilities are urgent or not, as far as I can tell, 3.30.1 does not actually contain a patch for them.

According to https://nvd.nist.gov/vuln/detail/CVE-2019-19646
criticality level is pretty high: "Base Score: 9.8 CRITICAL"

I'm not interested in arguing about how critical this is or is not.  The fact remains, there is AFAICT no SQLite release which contains a fix.

No arguing here. I missed the fact that 3.30.1 was also affected

I'm eager to use the following features:

sqlite3_stmt_isexplain (#326)
generated columns

In progress at #340

v2.0.3 has been pushed to nuget.  Its e_sqlite3 bulds are at 3.31.1.

It seems like sqlcipher is still 4.2.0 (based on sqlite 3.28.0).
Are you planning to upgrade it to 4.3.0 (based on sqlite 3.30.1) ?

Yes, probably.
(The e_sqlcipher builds are unofficial and unsupported, and I update them less frequently. I typically recommend that folks buy official builds from Zetetic. )

@ericsink
sqlcipher 4.4.0 (based on sqlite 3.31.0) was released a few months ago.
Are you planning an update ?


Photos taken are rotated 90 degrees

Hi,
This is more a problem than a bug, but when a picture is taken using the UICameraPicker in it's simplest manner, the images are shown with a 90° difference. I basically have to flip my phone to "landscape" when taking picture so they appear correctly in chat.
If I rotate programatically they end up being stretched.
Any idea what I could do? It looks like i'm the only one mentioning this so it's either brand new or really simple to solve. Any help us much appreciated :)

Thanks @Zilounay - see #647. This explains what's going on.
However, I just realized there was a new comment on that thread that I had not seen:

For me this line messes up photo orientation from the camera (inside setImage):
_image = [UIImage imageWithCGImage:image.CGImage];
...converting to CGImage may lose/mess up the orientation info.
This one works:
_image = [image copy];

So, it looks like this issue can be resolved.

This is not fixed in my case Photos having big resolution again rotating 90 degree

I can confirm this isn't fixed either (or maybe is a whole different problem). In the case of doing something like this:
JSQPhotoMediaItem *item = (JSQPhotoMediaItem *)msg.media;
UIImage *image = item.image;

[UIPasteboard generalPasteboard].image = image;

This will paste the image at a 90 degree angle.

Unless i am missing something, this is beyond the scope of the library itself, and up to you to manage. Search SO, there are various categories to help normalize images.

@wdcurry That's what I thought, I just thought some1 would have a quick fix.
Will do, thanks.

No worries.. and if you are comfortable creating categories, this basic method can help:
if (self.imageOrientation == UIImageOrientationUp) return self;

UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
[self drawInRect:(CGRect){0, 0, self.size}];
UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return normalizedImage;

Thanks @wdcurry ! :smile:


Can't go to space

When ever I go to space for the first time I start taking damage even though I am still in the overworld and have a full space suit on. then It crashes giving me this error.
Error: java.lang.NullPointerException: Ticking entity
Exit Code: -1
I tried it in the most recent version and in build 250
Version of Advanced Rocketry

[insert here

Why is this important?
Knowing the version of Advanced Rocketry helps us narrow down an offending piece of code faster because we can easily determine what code is added and when.]

Have you verified this is an issue in the latest unstable build

[x] Y
[ ] N
[ ] N/A

[Why is this important?
If you're not testing with the latest build, you may be encountering a bug that's already been fixed.
Reporting bugs that have already been fixed wastes everyone's time.  (please look in open issues too, somebody else could have already reported it!)]

Version of LibVulpes

[insert here

Why is this important?
Advanced rocketry depends on a library mod (LibVulpes), some errors can really be in that mod.  So knowing the verison helps us not only start looking for fixes there without you needing to anwer more questions, it also helps us know if you have a version mismatch.]

Version of Minecraft

[insert here

Why is this important?
Different versions of minecraft have different codebases for Advanced Rocketry.  Knowing the version of minecraft (and thus AR) helps us pinpoint issues quicker!]

Does this occur without other mods installed

[x] Y
[ ] N
[ ] N/A

If Y, what is the MINIMUM set of mods required.

[Why is this important?
Sometimes interactions between mods cause issues.  While it can be a problem with Advanced Rocketry, sometimes it's not.  When there are a lot of mods, it can take bugtesters HOURS to go through the list to determine the root cause.  When there are a lot of bug reports, that can add DAYS to the time it takes to fix a large set of issues.]

Crash report or log or visualVM (if applicable)
http://pastebin.com is a good place to put them
crash reports that are put in the issue itself are
hard to read

[insert here

If it's an issue involving lag, please submit a visualVM sampler snapshot.  Mods like lag goggles often do not provide the kind of information needed to debug lag.
For more information on how to create a snapshot, please see "How to Run CPU Sampling" here.  Then export the snapshot as an .nps.  You may have to zip it since github is weird, then please upload it here.

Why is this important?
Full crashlogs contain valuable information like where exactly in the code the error occurred, what other mods may be running and what version of forge you have.  This helps us replicate and diagnose the issue FAR faster.]

Description of the problem

[How can you reliably reproduce the problem

Why is this important?
If we cannot reproduce the problem, we probably cannot fix it at all.]

I found the problem. I have SG craft installed. If I build even part of a Stargate on the station before launch then it crashes durring launch. It is still okay to put a Stargate on the Station after it is built.

then dont use star gate or use other sg mod


Update of DataCite crosswalk to metadata schema 4.5

Sponsored by The Library Code.
References

Fixes #9291

Description
This updates the metadata DSpace sends to DataCite to DataCite's schema 4.5. The schema version 3, that DSpace currently uses will be abandoned by the end of 2024.
Instructions for Reviewers
https://wiki.lyrasis.org/display/~pbecker/DOI+support+using+DataCite contains credentials for a DataCite test account and explain how to test DOI registration with DSpace.
Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
[x] My PR passes Checkstyle validation based on the Code Style Guide.
[x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[x] If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[x] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
[x] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
[x] If my PR fixes an issue ticket, I've linked them together.

To discuss
The DataCite schema defines some mandatory fields. One of them is a resource type. We would suggest to either make dc.type a required field in DSpace by default or to add to the documentation, that people should use dc.type if they use DataCite. As safe-fail solution, we set the resource type to "Other" if dc.type is not set.

It's good that I have caught this one, as we were also working on similar work for one of our new DSpace instances. Happy to help reviewing/contributing to this one.

Ok. the above was not the right way to test this. I found a way to get to the actual xml created by DataCiteXMLCreator.java:
dspace dsrun org.dspace.identifier.DataCiteXMLCreator <handle>
And the result looks much better! I will test the changes again now.

@MW3000 my understanding from @pnbecker comments in #9291 is that their team is working on an updated version that in addition to being compliant with schema 4.5, it will also incorporate enhanced mappings (I am assuming that this means that mappings to ORCID id metadata, related identifiers, etc. will also be included).
@YPaulsen-TLC thanks a lot for working on this one. May I ask: would you be able to consider expanding your changes to resourceTypeGeneral, so that all types available (https://schema.datacite.org/meta/kernel-4.5/include/datacite-resourceType-v4.xsd) are incorporated in addition to those that DSpace uses? Repositories may choose to use those if available.

Thank you for this hint, @amgciadev. That's very useful.

I find this way of testing Datacite metadata useful: DSpace has the following command that will generate the datacite xml metadata based on a handle:
[dspace-home]/bin/dspace dsrun org.dspace.content.crosswalk.XSLTDisseminationCrosswalk DataCite <handle> <output-file>

@tdonohue this is +1 by @MW3000 now. Can I merge this as soon as the proposed changes from @amgciadev are resolved? Shall we ask @mwoodiupui if he can give it another review?

@MW3000 thank you for the review!

@pnbecker thanks a lot for clarifying - I also got initially confused as I didn't know Y. Paulsen works with you. Your comment re resourceType is fair enough, so agree with keeping this PR as is.
Re enhancing the crosswalks, relatedIdentifiers or even funding information, perhaps one for the future. I was thinking on a similar approach to what openaire crosswalks do by making use of default dspace entities (virtual metadata) to enrich the metadata that is sent (people identifiers, funding information is also sent). But in this instance, makes perfect sense to provide support to ensure compliance with 4.5 using the basic available info.


GitHub's authorization doesn't work on mobile

So, I'm trying to authorize in Coolify with my GitHub account in Chrome, but GitHub just redirects to sign in page, and it doesn't work.
https://user-images.githubusercontent.com/49580687/115279176-09924000-a14f-11eb-9149-b22e49e538f1.mp4

Hey,
Are you trying to log in for the first time? If not, are you trying with the same GitHub user you are registered?
After the first successful login, Coolify restricts the registration, so others cannot register, just if you allow it in the Settings menu.

Hey,
Are you trying to log in for the first time? If not, are you trying with the same GitHub user you are registered?
After the first successful login, Coolify restricts the registration, so others cannot register, just if you allow it in the Settings menu.

Yes, I'm trying to login for the first time.

I'm modified things regarding Github Auth, could you please update/reinstall Coolify and try again?

Due to inactivity, I'm closing this issue. However, if the problem persists, please reopen the issue. Thanks!


Incorrect maximum HP values of limbs and extremities

Rules say (B421) that limb has to take Injury over HP/2 to become crippled and Extremity has to take Injury over HT/3. But currently, maximum injuries to limbs and extremities are calculated wrong. I guess current formula of Max Injury is HP/2 (or HP/3) rounded down. But it should be HP/2+1 rounded down. For example, character with 10 HP would suffer from crippling injury to the arm if it gets at least 6 Injury to the arm because 5 Injury is not enough as one may think (That example can be seen on the B421). That's because 5 isn't over 10/2, 5 is exactly 10/2.
On the screenshot below Location max should be 6 because 11/2+1=6.5 rounded down to 6.

You're correct, based on my re-reading of the rules. I'll fix the formula and it will be in the next release.


Library not working

Hey @Joery-M! I have some issues when using the library in my Electron app, I am using the following code:
import Govee from 'govee-lan-control'

export default async function goveeInitialize(){
    let theGovee;
    try {
        theGovee = new Govee();
    } catch (error) {
        console.log(error);
    }
    theGovee.on("ready", () => {
        console.log('ready!')
    });
    theGovee.on("deviceAdded", (device) => {
        console.log("Govee device found: " + device.model);
    });
}

I have the following issues when using this:

It doesn't log "ready", maybe the event is not fired?
It doesn't log my devices, I already checked multiple times if "Lan Control" is enabled, and it is.
I also got the following error: UDP Socket was not established whilst trying to discover new devices. Is the server able to access UDP port 4001 and 4002 on address <IP_ADDRESS>?. I tried to open up my firewall, but this didn't help.

Any idea how I can fix this?
I really appreciate your work!
Thanks in advance!

I am also having this issue

Unfortunately UDP is one of those "if it works, it works, if it doesn't, good luck" things.
This error message appears when there is no response to the ping command on any network interface.
This can mean a couple of things.

LAN Control has not been enabled in the app
There's a network setting on your switch or router blocking the request (or response)
The port is already taken

One troubleshooting step you can do is run dgramTest.js in the src folder to find where the issue is.

Just tried it again, and it works now. (didn't change anything). So I'll close this.


LogicalTerminationPoint::_(!)physicalPortReference String -> leafref

The WireEquipment specification prescribes in chapter Instantiation:LogicalTerminationPoint and LayerProtocol : "The LogicalTerminationPoint::**_**physicalPortReference attribute shall be automatically configured to associate the Equipment object with the LogicalTerminationPoint object."
But LogicalTerminationPoint::physicalPortReference attribute is of String datatype in the Core IM.
Proposed Solution:
UML: Changing the datatype from String towards a shared association
YANG: Changing the type from string towards leafref with require-instance true;

YANG has been changed from
    leaf-list physical-port-reference {
      type string;
      description
        "One or more text labels for the unmodeled physical port associated with the LTP.
         In many cases there is no associated physical port.";
    }

to
    leaf-list physical-port-reference {
      type leafref {
        require-instance true;
        path "/core-model:control-construct/core-model:equipment/core-model:uuid";
      }
      description
        "One or more text labels for the unmodeled physical port associated with the LTP.
         In many cases there is no associated physical port.";
    }

Issue to remain open until the datatype  has been changed from String towards a shared association in the UML.

In UML2YANG tool , the pruning and refactoring section of core-model is having the neccessary code changes to change the datatype of the attribute physical-port-reference from string to leafref.
We also generated a ReleaseCandidate#1 for the core-model and able to see the leafref statement.
But , as per the proposal in core/issues/17 , the require-statement of the leafref shall be "false" and not "true".

leaf-list physical-port-reference {
      type leafref {
        path "/core-model:control-construct/core-model:equipment/core-model:uuid";
        require-instance false;
      }
      description
        "One or more text labels for the unmodeled physical port associated with the LTP.
         In many cases there is no associated physical port.";
    }

This will be available if we generate and publish a new release of the core-model-1-4.

Describing the current status for the core-model related to physical-port-reference from "Release candidate #1"
    leaf-list physical-port-reference {
      type leafref {
        path "/core-model:control-construct/core-model:equipment/core-model:uuid";
        require-instance false;
      }
      description
        "One or more text labels for the unmodeled physical port associated with the LTP.
         In many cases there is no associated physical port.";
    }

As @michbin pointed the physical-port-reference conflicts with the later add LTP-Augment:
    leaf connector {
      type leafref {
        path "/core-model:control-construct/core-model:equipment/core-model:connector/core-model:local-id";
        require-instance false;
      }
      config false;
      description
        "Connector, where this interface (LTP) can be physically connected.";
    }

Question:

Is a physical-port-reference(-list) the same as a connector?
Answer: no but let's try to align
Do MW devices today and in future have LTPs which require more than one port?
Answer: no - such complexity exists for optical devices but is not required for MW - therefore, we can say a physical-port-
reference-list (as currently modelled) is not needed - a multiplicity of [0..1] would be sufficient for MW model.
Does it make sense to restrict the reference to "connectors" only and not reference an entire "Equipment"
Answer: yes it does.

Bringing all the things together - the pyhsical-port-reference parameter is obsolete and replaced by the LTP-Augment::connector.
Potential Proposal:

The "pruning and refactoring" step should prune the "LogicalTerminationPoint:physicalPortRefernce[*]". As the result the "physical-port-reference" will be removed from the core-model-1-4.yang.

Proposal to the 5G-xhaul call on 28th of September 2022:

The "pruning and refactoring" step should prune the "LogicalTerminationPoint:physicalPortRefernce[*]". As the result the "physical-port-reference" will be removed from the core-model-1-4.yang.

Implemented as decided.


Fix readme typo

Hi there,
this is my very first pull request ever 🙂
I noticed that there is a space missing in the README.md.
Also, I changed one of the headers from "How things work" to "How Things Work" since all the other headers in README.md use capitalized words.

Congratulations to your very first pull request, it was perfect 💐 Here is to many more! 🙌

Thanks a lot! 🙂


Native support for PipeWire or alternatively Jack

Hello!
I just discovered your project after screen-sharing a virtual keyboard application during my online music lesson.
I already was already using OBS to bring everything together and I think that MIDI Jar overlay with an OBS Browser Source will be a much more elegant solution going forward.
The application has a built-in MIDI router. This is useful on operating systems like Windows where the MIDI routing capabilities are limited or non-existent by default.
On Linux, with PipeWire or Jack (with some tweaking), this sort of internal routing implemented by applications becomes redundant because there already is a node-based virtual patchbay where MIDI inputs/outputs can be routed to one or many outputs/inputs.
The few graphical applications that exist to manage the virtual page look very similar to the routing page of MIDI Jar.
Each application that is aware of this PipeWire/Jack would register itself as a node, with all the necessary ports.
In the case of MIDI Jar, the application would register itself as a node with three MIDI ports, one for the chord-display in the app, one for the debugger and another for the overlay chord-display.
Routing would be handled outside of the application with whatever tool the user is already using for routing their other MIDI/audio devices/programs between each other.
By disabling the internal router and relying on the audio server MIDI Jar could better integrate with the underlying system.
Is there any interest in this?

I explored the path where an external application handles the PipeWire stuff and forwards it to a parent application. I have a working proof of concept.

Here is my PipeWire client
#ifndef PW_MIDI_INPUT_H_
#define PW_MIDI_INPUT_H_

#include <memory>
#include <span>
#include <cstdint>
#include <functional>

#include <signal.h>

#include <spa/control/control.h>
#include <spa/param/audio/format-utils.h>

#include <pipewire/pipewire.h>
#include <pipewire/filter.h>

class pw_midi_input
{
public:
  pw_midi_input() : _main_loop(nullptr, pw_main_loop_destroy),
                    _filter(nullptr, pw_filter_destroy),
                    _piano_roll_port(nullptr),
                    _debugger_port(nullptr),
                    _filter_events{
                        .version = PW_VERSION_FILTER_EVENTS,
                        .process = pw_midi_input::on_process}
  {
    _main_loop.reset(pw_main_loop_new(nullptr));

    pw_loop_add_signal(
        pw_main_loop_get_loop(_main_loop.get()),
        SIGINT,
        pw_midi_input::quit_main_loop,
        this);

    pw_loop_add_signal(
        pw_main_loop_get_loop(_main_loop.get()),
        SIGTERM,
        pw_midi_input::quit_main_loop,
        this);

    _filter.reset(pw_filter_new_simple(
        pw_main_loop_get_loop(_main_loop.get()),
        "MIDI Server",
        pw_properties_new(
            PW_KEY_MEDIA_TYPE, "Midi",
            PW_KEY_MEDIA_CATEGORY, "Capture",
            PW_KEY_MEDIA_ROLE, "DSP",
            nullptr),
        &_filter_events,
        this));
  }

  void createPorts()
  {
    _piano_roll_port = static_cast<port *>(pw_filter_add_port(
        _filter.get(),
        PW_DIRECTION_INPUT,
        PW_FILTER_PORT_FLAG_MAP_BUFFERS,
        sizeof(pw_midi_input),
        pw_properties_new(
            PW_KEY_FORMAT_DSP, "8 bit raw midi",
            PW_KEY_PORT_NAME, "Piano Roll",
            nullptr),
        nullptr,
        0));

    _debugger_port = static_cast<port *>(pw_filter_add_port(
        _filter.get(),
        PW_DIRECTION_INPUT,
        PW_FILTER_PORT_FLAG_MAP_BUFFERS,
        sizeof(pw_midi_input),
        pw_properties_new(
            PW_KEY_FORMAT_DSP, "8 bit raw midi",
            PW_KEY_PORT_NAME, "Debugger",
            nullptr),
        nullptr,
        0));
  }

  int connectAndRun()
  {
    if (pw_filter_connect(_filter.get(), PW_FILTER_FLAG_RT_PROCESS, NULL, 0) < 0)
    {
      return -1;
    }

    pw_main_loop_run(_main_loop.get());

    return 0;
  }

private:
  std::unique_ptr<struct pw_main_loop, void (*)(struct pw_main_loop *)> _main_loop;
  std::unique_ptr<struct pw_filter, void (*)(struct pw_filter *)> _filter;

  struct port *_piano_roll_port;
  struct port *_debugger_port;

  const struct pw_filter_events _filter_events;

  virtual void process_piano_roll_messages(std::span<uint8_t> messages) = 0;

  virtual void process_debugger_messages(std::span<uint8_t> messages) = 0;

  static void quit_main_loop(void *selfPtr, int)
  {
    auto self = static_cast<pw_midi_input *>(selfPtr);

    pw_main_loop_quit(self->_main_loop.get());
  }

  static void on_process(void *selfPtr, struct spa_io_position *position)
  {
    auto self = static_cast<pw_midi_input *>(selfPtr);

    process_for_port(self->_piano_roll_port, [=](std::span<uint8_t> data)
                     { self->process_piano_roll_messages(data); });

    process_for_port(self->_debugger_port, [=](std::span<uint8_t> data)
                     { self->process_debugger_messages(data); });
  }

  using on_process_data_func = void(std::span<std::uint8_t>);

  static void process_for_port(struct port *port, std::function<on_process_data_func> on_process_data)
  {
    auto pw_buffer = pw_filter_dequeue_buffer(port);

    if (pw_buffer != nullptr)
    {
      auto spa_buffer = pw_buffer->buffer;

      auto spa_data = &spa_buffer->datas[0];

      if (spa_data->data != nullptr)
      {
        auto pod = static_cast<spa_pod *>(spa_pod_from_data(
            spa_data->data,
            spa_data->maxsize,
            spa_data->chunk->offset,
            spa_data->chunk->size));

        if (pod != nullptr && spa_pod_is_sequence(pod))
        {
          struct spa_pod_control *pod_control;
          SPA_POD_SEQUENCE_FOREACH((struct spa_pod_sequence *)pod, pod_control)
          {
            if (pod_control->type != SPA_CONTROL_Midi)
            {
              continue;
            }

            auto value = static_cast<std::uint8_t *>(SPA_POD_BODY(&pod_control->value));
            auto size = SPA_POD_BODY_SIZE(&pod_control->value);

            auto data = std::span{value, size};

            on_process_data(data);
          }

          pw_filter_queue_buffer(port, pw_buffer);
        }
      }
    }
  }
};

#endif /* PW_MIDI_INPUT_H_ */

The idea is that you can inherit from pw_midi_input and just implement the two virtual functions (process_piano_roll_messages and process_debugger_messages) which will be called if MIDI messages are sent to the Piano Roll or Debugger ports.
My actual application is doing just that, but it also implements a gRPC client which is used to forward the MIDI messages to a server written in C#.

Application source code
#include <grpcpp/grpcpp.h>

#include "midi_input.grpc.pb.h"
#include "pw_midi_input.h"

class MidiInputClient : public pw_midi_input
{
public:
  MidiInputClient(std::shared_ptr<grpc::Channel> channel) : _stub(midi_input::MidiInput::NewStub(channel)) {}

  void forwardMessage(const midi_input::MidiMessage_Target target, const std::string &value)
  {
    midi_input::MidiMessage request;

    request.set_target(target);
    request.set_value(value);

    grpc::ClientContext context;

    google::protobuf::Empty reply;

    auto status = _stub->ForwardMessage(&context, request, &reply);

    if (!status.ok())
    {
      std::cerr << status.error_code() << ": " << status.error_message() << std::endl;
    }
  }

private:
  std::unique_ptr<midi_input::MidiInput::Stub> _stub;

  void process_piano_roll_messages(std::span<std::uint8_t> messages) override
  {
    forwardMessage(
        midi_input::MidiMessage_Target::MidiMessage_Target_PianoRoll,
        {messages.begin(), messages.end()});
  }

  void process_debugger_messages(std::span<std::uint8_t> messages) override
  {
    forwardMessage(
        midi_input::MidiMessage_Target::MidiMessage_Target_Debugger,
        {messages.begin(), messages.end()});
  }
};

int main(int argc, char *argv[])
{
  pw_init(&argc, &argv);
  using namespace std::chrono_literals;

  MidiInputClient client(
      grpc::CreateChannel("localhost:5160", grpc::InsecureChannelCredentials()));

  client.createPorts();

  return client.connectAndRun();
}

Protobuf file for MIDI Input Service
syntax = "proto3";

import "google/protobuf/empty.proto";

package midi_input;

option csharp_namespace = "MidiServer.Protobuf";

message MidiMessage {
  enum Target {
    PianoRoll = 0;
    Debugger = 1;
  }

  Target target = 1;

  bytes value = 2;
}

service MidiInput {
  rpc ForwardMessage(MidiMessage) returns (google.protobuf.Empty) {}
}

On the bottom left you can see the C# application that implements the server for the MidiInput gRPC service, and on the right is the C++ application that connects to PipeWire and implements the client for the MidiInput gRPC service.
There is also a virtual MIDI keyboard application that outputs via the Midi Through port, which is connected to the Piano Roll port of the MIDI Server node.
The MIDI Server node is in fact the C++ application that is running in the bottom-right terminal.


fix campaign cache to ensure it clears campaigns when they are updated

fixes #6013
fixes #6009
clears the cache correctly for updates to campaigns
Previously, we were searching strictly for only part of the key in the cache table. Now, we are doing a search for any rows that match the first part of the key, which includes the node ID.

:+1:


Unable to import library with external images when using embedded editor in confluence

Preflight Checklist

[x ] I agree to follow the Code of Conduct that this project adheres to.
[ x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

You must agree to search and the code of conduct. You must fill in this entire template. If you delete part/all or miss parts out your issue will be closed.
If you are technical, you should reporting bugs along the lines of https://marker.io/blog/how-to-write-bug-report. If you are not technical, we will make allowances, please try to make an effort to understand the process.
Describe the bug
Inability to import a library with icons from an embedded drawio editor in confluence as well in desktop editor.
To Reproduce
Steps to reproduce the behavior:

Go to File -> Open Library From -> Url

Set the url: to
https://raw.githubusercontent.com/tetiana-nizdropa/drawio-icons/master/libraries/microsoft-365.xml

You don't see any icons

Go to File -> Open Library From -> Device

Download file from
https://raw.githubusercontent.com/tetiana-nizdropa/drawio-icons/master/libraries/microsoft-365.xml and use this in the screen

You don't see any icons. You can only see the icons when you click on the edit icon to modify the library.

Only this method works to load the librarie(s):
https://app.diagrams.net/?splash=0&clibs=Uhttps%3A%2F%2Fraw.githubusercontent.com%2Ftetiana-nizdropa%2Fdrawio-icons%2Fmaster%2Flibraries%2Fadf-activity-icons.xml;Uhttps%3A%2F%2Fraw.githubusercontent.com%2Ftetiana-nizdropa%2Fdrawio-icons%2Fmaster%2Flibraries%2Fdynamics-365.xml;Uhttps%3A%2F%2Fraw.githubusercontent.com%2Ftetiana-nizdropa%2Fdrawio-icons%2Fmaster%2Flibraries%2Fpower-platform-icons.xml;Uhttps%3A%2F%2Fraw.githubusercontent.com%2Ftetiana-nizdropa%2Fdrawio-icons%2Fmaster%2Flibraries%2Fpower-automate.xml;Uhttps%3A%2F%2Fraw.githubusercontent.com%2Ftetiana-nizdropa%2Fdrawio-icons%2Fmaster%2Flibraries%2Fazure-service.xml;Uhttps%3A%2F%2Fraw.githubusercontent.com%2Ftetiana-nizdropa%2Fdrawio-icons%2Fmaster%2Flibraries%2Fmicrosoft-365.xml
Expected behavior
You should see the icons
Screenshots
If applicable, add screenshots to help explain your problem.
draw.io version (In the Help->About menu of the draw.io editor):

draw.io version v24.5.3

Desktop (please complete the following information):

OS: [e.g. iOS] W11
Browser [e.g. chrome, safari] edge
Browser Version [e.g. 22] 125.0.2535.92

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

I tested the problem in incognito/private mode with all browser extensions switched off, write "yes" below:

yes

Additional context
Add any other context about the problem here.

Fix in 24.5.5.


[Bug]: Module cache already has entry  - /node_modules/yargs/build/lib/parse-command.js.

Version
28.1.2
Steps to reproduce

Clone https://github.com/bameyrick/iso-3166-1-flags-sprite-generator.git
Checkout branch yargs
Run npm i
Run npm run fetch
Run npm run test
Tests will fail with the error:

 Module cache already has entry /iso-3166-1-flags-sprite-generator/node_modules/yargs/build/lib/parse-command.js. This is a bug in Jest, please report it!

      at invariant (node_modules/jest-runtime/build/index.js:2591:11)
          at async Promise.all (index 4)
          at async Promise.all (index 5)

Expected behavior
Jest should be able to run both sets of tests
Actual behavior
Module cache already has entry /iso-3166-1-flags-sprite-generator/node_modules/yargs/build/lib/parse-command.js. This is a bug in Jest, please report it! error thrown
Additional context
No response
Environment
System:
    OS: macOS 12.4
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  Binaries:
    Node: 16.15.1 - ~/.nvm/versions/node/v16.15.1/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v16.15.1/bin/yarn
    npm: 8.11.0 - ~/.nvm/versions/node/v16.15.1/bin/npm
  npmPackages:
    jest: ^28.1.2 => 28.1.2

I don't quite understand what's going on, but I was able to replicate this on my machine.
System:
    OS: Windows 10 10.0.19043 Build 19043
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  Binaries:
    Node: 16.15.0 - ~/.nvm/versions/node/v16.15.0/bin/node
    npm: 8.5.05- ~/.nvm/versions/node/v8.5.5/bin/npm
  npmPackages:
    jest: ^28.1.2 => 28.1.2

I'm getting the same error:
Module cache already has entry .../got/dist/source/index.js. This is a bug in Jest, please report it!

I think it's related to dynamic imports:
const gotPromise = import('got')

@bameyrick sorry, missed this one! I get an error when trying to run npm run fetch
$ npm run fetch

><EMAIL_ADDRESS>fetch
> ts-node src/fetch.ts

(node:11581) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/Users/simen/repos/iso-3166-1-flags-sprite-generator/src/fetch.ts:1
import fetch from 'node-fetch';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1055:15)
    at Module._compile (node:internal/modules/cjs/loader:1090:27)
    at Module.m._compile (/Users/simen/repos/iso-3166-1-flags-sprite-generator/node_modules/ts-node/src/index.ts:1597:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
    at Object.require.extensions.<computed> [as .ts] (/Users/simen/repos/iso-3166-1-flags-sprite-generator/node_modules/ts-node/src/index.ts:1600:12)
    at Module.load (node:internal/modules/cjs/loader:1004:32)
    at Function.Module._load (node:internal/modules/cjs/loader:839:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at phase4 (/Users/simen/repos/iso-3166-1-flags-sprite-generator/node_modules/ts-node/src/bin.ts:579:12)

Never mind, seems like the step is not needed - I can reproduce 👍

https://github.com/facebook/jest/releases/tag/v29.0.2


Replace use of anomaly

Hans-Martin:
I propose to use the following replacements:
a.	for indices based on observations and reanalysis: “Observed change”;
b.	for indices based on projections (only): “Projected change”;
c.	for indices based on hindcasts and projections, I propose replacing by “Modelled past and projected change”.

This is same as issue #42

@charliepascoe I'm currently reviewing the Toolbox indicator apps/workflows, they usually contain the word anomaly in options like:
Anomaly period
Choose an anomaly period
Any suggestion for what to change it to?


Could not load type 'Xamarin.Forms.Xaml.IReferenceProvider'

When I try to display embedded image from Xaml using the ImageResourceExtension provided, it compiles but gives error "Could not load type 'Xamarin.Forms.Xaml.IReferenceProvider'" when starting the probject (in UWP).
Also, It would be nice to explain when/why (in which scenario) we should use local images over embeded images.

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

ID: 7eeb0e65-143b-0f5e-a8fb-c75309689338
Version Independent ID: 6b984264-a950-4310-483f-99f908b0a8b0
Content: Images in Xamarin.Forms - Xamarin
Content Source: docs/xamarin-forms/user-interface/images.md
Product: xamarin
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @danbord
I just tried the sample the doc links to and the embedded image displays fine on UWP. I'm using the latest Windows 10 and VS2017 releases.
As for when to use local images over embedded, it's really about when they need to be different resolutions on different platforms, or have to otherwise be edited for that platform (i.e. a black tick image is fine on iOS as the default app background is white, but used to be problematic on Android when the default app background was black). I'll take a look at the doc.


add tutorial.md

Added a tutorial.md file with a simple tutorial

Thanks! The tutorial looks excellent!


Add script to fix agreement uploads

Some signed agreements were uploaded as PDFs when the files were not
PDFs.

:+1:


c.stars() error - don't know how to merge arrays: please specify parameter along

I got this error in both of the two chapters median summer temperature and climate indicators explained. I also saw this error: Error in combine_dimensions(dots, along_dim) : dimensions of element 1 and 2 are not identical
I think I solved it. I relied on loading cached stars objects saved as RData. If I recreated the object to the global environment and saved as RData and read it back in, then everything was fine. But the next day it would not work again. But if I loaded yeasterdays RData file and saved as tiff and loaded the tiff file, then it would work. So my hyposthesis is that there is a kind of time stamp in the RData format causing this issue.
I think this is resolved, but I keep the issue open for a while longer in case it isn't.

Looks like this is solved - will close now


How to append rows from multiple files to the same sheet?

I want to get all rows (except the first two (header) rows) from one sheet and append them to another sheet. Preferably, I'd like to preserve all Excel-specific information. It's easy to do by first converting to JSON, but then I lose a lot of information (like cell color, column width).
I can't figure out from the docs how to do this. I get the feeling I can either have an entire sheet, or have individual cells, but not an entire row of cells.
Is this possible?
(For my use case, I actually need to merge 8 Excel files this way, and if they have multiple sheets, merge all sheets like this. But I think I figured this out up to the sheet level. It's looking at rows where I get lost.)

Styles-related features are part of our Pro builds, but to answer the question you can copy over the cell objects directly from one worksheet object to another, ensuring you update the worksheet range to include all of the cells you want to keep.


Pump does not work with filter

I tried to pump lava with the pump card in the builder, and filter it so only lava came thought, the pump completely ignored the filter.

Ideally we could put buckets and block in the same filter and each mode would only care about the relevant ones.


The module descriptor does not see "packages" from resources, when using 'run' task

Source Files:

root-project/application-project/src/main/java/my/package/with/Classes.java
root-project/application-project/src/main/java/module-info.java
root-project/application-project/src/main/resources/images/logo.png

Result Files:

root-project/application-project/build/classes/java/main/my/package/with/Classes.java
root-project/application-project/build/classes/java/main/module-info.class
root-project/application-project/build/resources/main/images/logo.png

Inside module-info.java (central framework class resolves and loads images):
opens images
When this is packaged as a JAR it works fine, as the images package then is present at runtime.
If there would be an images folder with a java file in root-project/application-project/src/main/java/ this would also work fine, as you patch the module with the resources folder.
But unfortunately the module-info.class seems to be evaluated before the --patch-module flag is effective and thus fails as there is no images package at that point.
Due to that, execution fails with java.lang.module.InvalidModuleDescriptorException: Package images not found in module as it indeed is not in there in this situation.
I guess you should either

replace the exploded directories and the --patch-module flag by adding the built artifact to the module path instead, or
need to copy both directories into a new directory and put that on the module path instead;
actually it also works if I create an empty file inside root-project/application-project/classes/java/main/images/, but you shouldn't do that generally as it makes the compileJava task out-of-date to do this, so you would need to sync the dir to some other place (e. g. the temporary directory for the run task) and then add the files, but then you can also simply copy both folders to that place.

Workaround: create a package-info.java file for the package in question and annotate the package with @Deprecated. Without an annotation the package-info.java file is not compiled as it would not provide any added value at runtime without annotations.

The reason why it fails is that Gradle keeps resources separately from the compiled classes in the build directory. I haven't dug enough in the application plugin to be 100% sure, but as of now I doubt it is easily fixable. One would have to change the way Java plugins in Gradle handle compiled files and resources...
For now, I will document it as a known limitation with the description of the workaround you have found.

You don't like either of my two suggested solutions?
Gradle must keep those files separate, otherwise the up-to-date checks would not work properly.
The application plugin just uses sourceSets.main.runtimeClasspath to set the classpath of the run task.

I'm not 100% sure, but I see some potential technical issues:

Gradle run task does not depend on jar by default, which means that there might be no JAR archive to run,
making a repackaged copy in another directory - I remember some issues I found while migrating projects from Maven to Gradle, related to resource files. I must investigate this topic a bit more before I start combining them. I assume that Gradle devs had a reason to keep those files separate and run them from that directory.

Generally, I'm a bit afraid of changing too much internal logic of certain plugins :), and I need to take a closer look why application plugin works in this way. If you have some free time, you can also check your concept (I would prefer the solution number #2).

You can add task dependencies at any time, so not problem with 1. Doing tasks.run.dependsOn jar is easy, even in a plugin.
Regarding 2. I already told you what the reason is. The incremental build feature aka up-to-date checks. Gradle checksums the inputs and outputs before and the outputs after the task is run. If the inputs or outputs change between two runs, the task is executed again. If the task inputs are the same as the task inputs before the last run and the task outputs are the same as the task outputs after the last run, the task is considered up-to-date.
If two tasks write files to the same directory, it is much harder to determine which output file belongs to which task and also files that were added spuriously and thus can be considered a modification of outputs if the output is the directory, not the individual files, would not be detectable. Thus it is much cleaner and easier to clearly separate the outputs of various tasks.
For executing a JavaExec task it is simply not necessary usually to build a JAR first, so it is more efficient to just put the two task output directories onto the classpath instead of building the JAR.
There should be absolutely no problem to either use the built JAR, or to copy the two output directories into the tasks temporary directory after deleting its contents and adding that to the module path instead of the individual directories.
Another option that I used for a different project where the execution of the tool depended on additional files that were put to the distribution, but were of course not present like that to the default run task is to replace the default run task completely by a task that depends on installDist and then runs the assembled distribution. In a build script this looks like
task run(type: JavaExec, dependsOn: installDist, overwrite: true) {
   description 'Runs this project as a JVM application'
   group 'application'
   main mainClassName
   classpath fileTree("$installDist.destinationDir/lib")
}

In a plugin this has to be adapted to get modifications the using build did to the run task, or instead of replacing the task, the exsting one should maybe just be reconfigured to replace the classpath with the installDist result and an added dependency to the installDist task.

I never said run is incremental. Your conlusion is exactly what I described and what could be work-arounded by either using the JAR or by combining the directories into one like:
run {
   doFirst {
      def args = jvmArgs
      def modulePathIndex = args.indexOf('--module-path') + 1
      def ps = Pattern.quote(System.properties.'path.separator')
      def jd = Pattern.quote(file("$buildDir/classes/java/main") as String)
      def rd = Pattern.quote(file("$buildDir/resources/main") as String)
      args[modulePathIndex] = args[modulePathIndex]
            .replaceFirst(/(?:$ps|^)$rd/, '')
            .replaceFirst(/(?:$ps|^)$jd/, Matcher.quoteReplacement(temporaryDir as String))
      jvmArgs = args
      project.sync {
         from compileJava
         from processResources
         into temporaryDir
      }
   }
}

This code works and must be done in doFirst, as your plugin uses doFirst to set the jvmArgs at execution time instead of configuration time. Better would be of course to do it at confiugration time.
Btw. while looking into this I observed
	private String stripResources(String classpath, File resourceOutputDir) {
		String outPath = ":" + resourceOutputDir.getAbsolutePath();
		if (classpath.contains(outPath)) {
			return classpath.replace(outPath, "");
		}
		return classpath;
	}

This cannot work correctly, as : is no the path separator generally, it is system dependent what the path separator is. This code only works on *nix, not on Windows. You have to use System.properties.'path.separator' instead of ":".


Audio/Visual Transmission with UDEs

Does the following statement in the documentation indicate that audio/visual transmission is not a supported capability of UDEs?
"In the implementation, the client driver must report whether it supports the requested capability. Certain capabilities are not supported by UDE such as static streams."
However, static streams and isochronous transfers seem to be referred to differently under the "Sending USB data transfers in USB client drivers" so it is not clear to me at the moment.
Any advice or assistance is appreciated!

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

ID: d9771a49-256b-7067-34e8-cdc0c24e4b5c
Version Independent ID: 2648d38b-43ff-7b0a-14a4-baa34cead9fa
Content: Write a UDE client driver - Windows drivers
Content Source: windows-driver-docs-pr/usbcon/writing-a-ude-client-driver.md
Product: windows-hardware
Technology: usbcon
GitHub Login: @mhopkins-msft
Microsoft Alias: mhopkins

Hi @jguy-mather
Thanks for reaching out to the Windows driver developer documentation team. Unfortunately, we don’t have the resources to offer individual technical advice to the broad array of customers who use the driver documentation.
Your best bet is to use one or both of the two really good forums where other driver developers and Microsoft engineers can be found. The first is the NTDEV forum from OSR Online. The other is the Windows Q&A forums.
You can post your question there, and like-minded developers usually give feedback fairly quickly.
Again, thanks for reaching out. Best of luck with this issue.
~ Mark


[Bug] [Dolphin] Printing plaintext passwords in process environment variables

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Printing plaintext passwords in process environment variables
What you expected to happen
no passwords showing in process environment variables
How to reproduce

Anything else
No response
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Can you elaborate your issue? I don't quite understand what this is.

We used DolphinScheduler as a scheduling tool in our project, and during our security testing we found that we executed the ‘ps -ef‘ command to query Dolphin's process on the machine where DolphinScheduler was installed, and then we viewed the process by the command ‘cat /proc/procId/environ‘ environment variable information, in which the password is shown in clear text, it is determined to be a security issue, may I ask how to fix it?

I don't think this is a cve since most open source tools store the account password in plain text in the service's configuration file.


add claimunstkes action that erases expired unstakes

Task linked: DEMZNE-1135 Add a claim action to token.worlds to clean out unstakes


Resurrect signet.ordinals.com and testnet.ordinals.com

Had stopped running those due to disk space shortage. With bigger server, reinstate these.

Back up and running now


Dialog focus not restoring to a menu trigger based on react-aria example

🐛 Bug Report

Discussion started here https://github.com/adobe/react-spectrum/pull/3323#issuecomment-1257231881
A Dialog inside a Menu is not restoring focus to the Menu's trigger when the Dialog closes.
🤔 Expected Behavior

😯 Current Behavior

💁 Possible Solution

🔦 Context

Don't know exactly why yet, but in the example, FocusScope's removeTreeNode for the Menu runs before the useLayoutEffect which assigns a nodeToRestore in useRestoreFocus.
https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/focus/src/FocusScope.tsx#L789 is undefined, and I don't think it'd matter if we checked if this was a restoring scope instead of nodeToRestore existing, it'd be overwritten in the useRestoreFocus layoutEffect to the wrong value.
In our component, it's reversed. There seems to be a substantial delay between closing of the menu and actually unmounting it. However, I don't quite know where that delay is coming from, except that we use Transition instead of CSSTransition. I don't know if that is what makes the difference.
I pushed a branch with the sandbox code added to one of our stories for easier debugging https://github.com/adobe/react-spectrum/compare/focusscope-nodetorestore-wrong?expand=1
Reporter:

I tried the new release and the issue seems to persist, I updated the sandbox. Also I removed CSSTransition to rule it out. I wonder if I constructed the test case wrong, I copied the files from the two official styled examples but some imports were changed so there may potentially be some API changes that didn't make it to the sandbox. The reason I doubt it is because the release announcement example on Twitter seems to be working nicely.

💻 Code Sample

https://codesandbox.io/s/sad-platform-58uy0k?file=/src/App.tsx
🌍 Your Environment

Software
Version(s)

react-spectrum

Browser

Operating System

🧢 Your Company/Team

🕷 Tracking Issue (optional)

@frontsideair, I have been able to provide a workaround for the issue you describe with a few changes to the example you provide at https://codesandbox.io/s/sad-platform-58uy0k?file=/src/App.tsx.

I wrap the Popover used for the Menu in a CSSTransition with in={isOpen}: https://codesandbox.io/s/exciting-hawking-dsnlzr?file=/src/Popover.tsx:885-1500. This way the CSSTransition will take care or hiding and showing the Popover containing the Menu. Note, I also moved the FocusScope to be contained within the popoverRef div, so that the classNames used for animating the opacity get added to the Popover and not the hidden FocusScope sentinel.

  return (
    <CSSTransition
      in={isOpen}
      mountOnEnter
      unmountOnExit
      timeout={{ enter: 0, exit: 0 }}
      classNames={{
        enter: "opacity-0",
        enterDone: "opacity-1 transition ease-in",
        exit: "opacity-0 transition ease-out"
      }}
    >
      <div
        {...overlayProps}
        ref={popoverRef}
        className="absolute z-10 top-full min-w-full shadow-lg border border-gray-300 bg-white rounded-md mt-2"
      >
        <FocusScope restoreFocus>
          {children}
          <DismissButton onDismiss={onClose} />
        </FocusScope>
      </div>
    </CSSTransition>
  );

I remove the brute force state.isOpen boolean at https://codesandbox.io/s/sad-platform-58uy0k?file=/src/Menu.tsx:1227-1500 and replace it by passing state.isOpen as the isOpen prop on the Popover at https://codesandbox.io/s/exciting-hawking-dsnlzr?file=/src/Menu.tsx:1299-1537.

This:
      {state.isOpen && (
        <Popover isOpen onClose={state.close}>
          <Menu
            {...menuProps}
            {...props}
            autoFocus={state.focusStrategy || true}
            onClose={() => state.close()}
          />
        </Popover>
      )}

Becomes this:
      <Popover isOpen={state.isOpen} onClose={state.close}>
        <Menu
          {...menuProps}
          {...props}
          autoFocus={state.focusStrategy || true}
          onClose={() => state.close()}
        />
      </Popover>

I think this bug is still valid, but hopefully these small changes will unblock you.

This seems to be working in the sandbox, thanks. I only had to change usePreventScroll({ isDisabled: !props.isOpen }), there wasn't enough content in the page to show it's not scrollable.
In my app though it didn't solve the problem. It could be because I used a ternary like return props.isOpen ? <div... : null instead of CSSTransition but I believe they should behave similarly due to it unmounting on exit with zero timeout but I can't be too sure. I'll tweak more.
My current workaround is to use a custom useModalState that takes the menu button ref and wrap onClose to add a timed out focus.

This got fixed somewhere along the way, I can no longer reproduce with our latest code


[BUG] [CorrDiff]: The deterministic sampler scales the conditional input

I think there is a similar bug to #229 in the sampler:
https://github.com/NVIDIA/modulus/blob/9b0b7cc71fb280c028e09ee56726c0caa387c63b/modulus/utils/generative/sampler.py#L188
x_lr should not be scaled by "s". It is not part of the evolved diffusion process, it is a conditional input.

cc @mnabian

Yair made a PR here to fix this: https://github.com/NVIDIA/modulus/pull/373
There were some issues reported by Tao, and we ended up reverting this PR here: https://github.com/NVIDIA/modulus/pull/396

@mnabian this is a separate issue that only effects inference.
BTW, I also had a PR on the conditional scaling: https://github.com/NVIDIA/modulus/pull/381


Implement Check Workshop & Github blocks

Description
Implement the Check Workshop & Github blocks as designed in #114.
Acceptance Criteria

[ ] Implement the Check Workshop for desktop
[ ] Implement the Check Workshop for tablet
[ ] Implement the Check Workshop for phone
[ ] Implement the Check GitHub for desktop
[ ] Implement the Check GitHub for tablet
[ ] Implement the Check GitHub for phone
[ ] Check Workshop CTA must be: ~~https://github.com/ipfs-shipyard/idm-chat-workshop~~ https://github.com/ipfs-shipyard/workshop-idm-chat-dapp
[ ] Check GitHub CTA must be: https://github.com/ipfs-shipyard/pm-idm

@Ricardo-Silva91 I've updates the workshop CTA link.


jdbc error on crate_0.54.11

i would like to import some tables from hive to crate. use sqoop export command. but it is not work.
my env:
centos/crate 0.54.11/crate jdbc 1.12.3/sqoop 1.4.5
my cluster config:

 cluster.name: crate_hd
 node.name: "hd25"
 gateway.expected_nodes: 3
 gateway.recover_after_nodes: 2
 discovery.zen.minimum_master_nodes: 2
 discovery.zen.ping:
   multicast.enabled: false
   unicast.hosts:
     - hd24:4300
     - hd25:4300
     - hd26:4300

get an error info about that

Caused by: io.crate.shade.org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/35755248-jdbc-error-on-crate_0-54-11?utm_campaign=plugin&utm_content=tracker%2F505659&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F505659&utm_medium=issues&utm_source=github).

hi @kjkhi
how does your connection string look like?
do you also have server logs from the nodes the jdbc driver tries to connect to?
can you connnect to the cluster with plain jdbc (without sqoop)?

@chaudum thanks for you attention
my connection string like : jdbc:crate://my_server_ip:4300
i also try to connect crate with SQuirreL SQL, follow skips on this page :https://crate.io/docs/tools/squirrel/
it is work.（diff env，this time，SQuirreL client and crate server both running on my windows pc)

@kjkhi have you configured the windows firewall correctly to allow i/o access to tcp 4300 and http 4200 (see https://crate.io/docs/install/local/windows/)

sqoop test result
jdbc_client and crate_server both centos 6.3
sqlline: !connect jdbc:crate://<IP_ADDRESS>:4300 io.crate.client.jdbc.CrateDriver  --- success!
sqoop: sqoop list-tables --connect jdbc:crate://<IP_ADDRESS>:4300 --driver io.crate.client.jdbc.CrateDriver  --- Failed
sqoop cli got en exception：

Caused by: io.crate.shade.org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []

nothing info output on crate server log

sqlline: !connect jdbc:crate://<IP_ADDRESS>:4300 io.crate.client.jdbc.CrateDriver --- success!
sqoop: sqoop list-tables --connect jdbc:crate://<IP_ADDRESS>:4300 --driver io.crate.client.jdbc.CrateDriver --- Failed

you have specified 2 different IPs. Is this <IP_ADDRESS>:4300 correct? Shouldn't it be <IP_ADDRESS>:4300??

@mikethebeer i'm sorry,it's my fault.
<IP_ADDRESS>:4300 is working,both with plain jdbc and sqoop tools


Check of math env

I cannot make the align working for some reason

ah, ok, works now

Feel like review are not needed yet, at this stage. Do you mind turning it off.
I'm fine forbidding to commit to main


Add resource providers for Community::DirectConnect::Gateway and Community::DirectConnect::TransitVirtualInterface

We would like to provision DirectConnect resources through Infrastructure as Code, but a few resources are not supported by CloudFormation. For more information as to how and why, see https://www.sentiatechblog.com/deploying-a-transit-gateway-that-integrates-with-a-dx-connection-on-aws-with

Both implemented


Script to anonymise old papertrail logs

We are going with just logging pre-anonymised information in future. And we've set up s3 to only keep 5 years of data


[SPARK-19228][SQL] Introduce tryParseDate method to process csv date …

…column with custom format as date
What changes were proposed in this pull request?
This patch fixes bugs:

All the dates parsed as timestamps.
Option "dateFormat" is ignored when read csv files with date data.
Instead of this option default date format ("yyyy-MM-dd") is using.

For other details, please, read the ticket
https://issues.apache.org/jira/browse/SPARK-19228
How was this patch tested?
Tested with unit tests only. Add new test

Can one of the admins verify this patch?

ok to test

Test build #72142 has started for PR 16735 at commit 8f78e11.

Test build #72142 has finished for PR 16735 at commit 8f78e11.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/72142/
Test PASSed.

I checked your JIRA description. Your test case does not cover the scenario you mentioned. You can add an end-to-end test case by following the existing test case Load date types via custom date format

The initial data type is NullType when we infer the schema. Let me know if you still hit an issue.

BTW, @sergey-rubtsov, could you check if we should add a type-widening rule in findTightestCommonType between DateType and TimestampType?

@HyukjinKwon yes, sure, I will check it

Test build #73766 has started for PR 16735 at commit ae14f12.

Test build #73766 has finished for PR 16735 at commit ae14f12.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/73766/
Test FAILed.

Can one of the admins verify this patch?

Couldn't run tests in CSVSuite locally on my Windows OS, apologize for the possible test fails

Hi @HyukjinKwon, @gatorsmile
Could you take a look, please?

retest this please

Test build #77975 has started for PR 16735 at commit 3e250f5.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/77975/
Test FAILed.

retest this please

Test build #77998 has started for PR 16735 at commit 3e250f5.

Test build #77998 has finished for PR 16735 at commit 3e250f5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/77998/
Test FAILed.

ping @sergey-rubtsov

I wil try to complete it in this month


[S2GRAPH-218] add operations not supported on sql

I have added some operations that are not represented in spark SQL.

Windowed Grouped Aggregations : grouped.*
Watermark : watermark.delay.time, time.column
Streaming Deduplication : drop.duplicate.columns
dataframe cache option : cache
Continuous Streaming : isContinuous

ex) job_description (process)
{
    "name": "category_distinct",
    "inputs": [
          "category_bulk"
    ],
    "type": "sql",
    "options": {
        "sql": "SELECT url, category FROM category_bulk",
        "drop.duplicate.columns": "url,category"     // deduplicate
    }
    "cache": "true"   // cache (only support not streaming dataframe)
},
{
    "name": "grouped",
    "inputs": [
        "demo_join"
    ],
    "type": "sql",
    "options": {
        "sql": "SELECT * FROM demo_join",
        "watermark.delay.time": "1 minutes",                      // watermark
        "time.column": "ts",
        "grouped.keys": "age_band, gender, category",    // windowed grouped aggregation
        "grouped.window.duration": "5 minutes",
        "grouped.slide.duration": "5 minutes",
        "grouped.dataset.agg": "[\"count(1) as cnt\"]"
    }
}

@elric-k LGTM +1 It seems that the necessary functions are being added.
There are many setting added to job_description.
We need a configurable option and a page describing it.

@daewon
Thank you for your feedback.
I agree with you. I think we need a description page for the options available in the job description.
I will register it as a new issue.


Mark cilium as node-critical component

How to categorize this PR?

/area robustness
/kind enhancement
What this PR does / why we need it:
This PR adds the node.gardener.cloud/critical-component label to cilium DaemonSet introduced in https://github.com/gardener/gardener/pull/7406
Which issue(s) this PR fixes:
Part of  https://github.com/gardener/gardener/issues/7117
Special notes for your reviewer:
/hold
until https://github.com/gardener/gardener/pull/7406 is merged
Release note:

`cilium` is marked as a node-critical component. With this, workload pods are only scheduled to a `Node` if it runs a ready `cilium` pod.

Thank you @dergeberl for your contribution. Before I can start building your PR, a member of the organization must set the required label(s) {'reviewed/ok-to-test'}. Once started, you can check the build status in the PR checks section below.

/unhold
now that https://github.com/gardener/gardener/pull/7406 is merged

/unhold


Grid's column width values are still incorrect

Hello,
There may be a problem with the grid system's logic. Column widths are only correct in evenly distributed columns with .col class, as padding right values are always subtracted from other columns' widths, except of course last childs. You can easily spot the issue on the test screenshot, where the two colums with .col-6 class shall be equal in width, but theye aren't – as the last child is wider with the padding right value.

This issue basically is present in all column-combinations, making the grid inaccurate. Let me know if I'm wrong!
Thank you in advance!
Kind regards,
Márton Lente

Hello,
Following .col class's logic, the following lines may solve the issue, applying on top of Wing CSS:
.row .col-1 {
  flex: 1 1 0px;
  width: auto;
}
.row .col-2 {
  flex: 2 1 0px;
  width: auto;
}
.row .col-3 {
  flex: 3 1 0px;
  width: auto;
}
.row .col-4 {
  flex: 4 1 0px;
  width: auto;
}
.row .col-5 {
  flex: 5 1 0px;
  width: auto;
}
.row .col-6 {
  flex: 6 1 0px;
  width: auto;
}
.row .col-7 {
  flex: 7 1 0px;
  width: auto;
}
.row .col-8 {
  flex: 8 1 0px;
  width: auto;
}
.row .col-9 {
  flex: 9 1 0px;
  width: auto;
}
.row .col-10 {
  flex: 10 1 0px;
  width: auto;
}
.row .col-11 {
  flex: 11 1 0px;
  width: auto;
}
.row .col-12 {
  flex: 12 1 0px;
  width: auto;
}

As well width: auto; isn't needed, if it isn't defined earlier in the style sheet. Testing is needed.
The .col class isn't needed to be used in pair with .col-1 - .col-12 classes.
Kind regards,
Márton Lente

Thanks again for the detailed issue :)
I think I've found a fix—columns had padding that I hadn't removed from previous versions, and it created an inconsistency between .col and .col-x columns.
Check out the latest dist/wing.min.css once this issue is closed and let me know if it works.

Hello,
Thank you for the clean and nice fix, it absolutely works!
In my opinion applying padding on both sides make more sense as well.
Kind regards,
Márton Lente


Clean up the branch structure

This is going to merge the Swift 3.0 branch into Swift-develop.  From now on, work that is done for future Swift is going to be on swift-develop only.  Once this is merged I will delete both the 3.0 and 2.3 branches.

⛵


Bump cargo-credential to 0.4.3

This should fix the check-version-bump CI job. #13216 made some changes without bumping the version.

@bors r+

:pushpin: Commit 1bab2005f3878cf74656393aa818f3c9ceba22d2 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit 1bab2005f3878cf74656393aa818f3c9ceba22d2 with merge 2ed2dbd8ce892f041140362aec7d4ca6106f4da3...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing 2ed2dbd8ce892f041140362aec7d4ca6106f4da3 to master...


tf.cond should be evaluated lazily

It should be possible to statically analyze the following graph such that the execution of the one branch is stopped early if the other branch is determined to be chosen. Am I missing some different function in TensorFlow that allows to do this? Perhaps using control dependencies?
In the following code the identity matrix is multiplied many times and a placeholder threshold determines whether the second multiplication or the last is chosen as output of the graph.
import tensorflow as tf
import numpy as np
import timeit

N = 2048

x = tf.placeholder(tf.float32, [N,N])
t = tf.placeholder(tf.float32)
net = x
stop = None
for i in range(300):
  net = tf.matmul(net, net)
  if i == 1:
    stop = net

net = tf.cond(tf.reduce_sum(stop) < t, lambda: stop * 0., lambda: net)

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

r = None

start_time = timeit.default_timer()
for i in range(10):
  r = sess.run(net, feed_dict={x: np.eye(N), t: N})
print(r)
print(timeit.default_timer() - start_time)

start_time = timeit.default_timer()
for i in range(10):
  r = sess.run(net, feed_dict={x: np.eye(N), t: N + 1})
print(r)
print(timeit.default_timer() - start_time)

Both runs take roughly the same time even though the second run only depend on the first two matrix multiplications (at least if one accounts for the warm-up phase which give the first run a slight disadvantage).
I hope I am not missing something obvious. Thanks.

See #3287 #8168 and https://stackoverflow.com/questions/34401714/is-tensorflow-lazy for background info.

Only #3287 is related (the others don't use tf.cond). There you get a more detailed answer. Short answer: The creation of all the operations which should be executed lazily must be done inside the function call. In your case, you create them and inside the function call just refer to them.
This is not a bug what you see, you are using it wrong. Maybe the documentation in TF could be improved.

Thank you. I guess this solves my problem. Still, wouldn't it be possible to statically analyze the dependencies of a tf.cond nodes? I mean aren't such optimizations that the advantage of defining computations symbolically/declaratively in TensorFlow?

It's this way because TF was designed to be this way. It certainly could have been different, if dependencies of ops would be handled different in TF. But right now, when an op is going to be evaluated, all tensors which go into it must also be evaluated.
Note that it is quite interesting to check out the code of tf.cond. Internally, tf.cond is implemented via switch/merge and control flow contexts.

@3rd3 it's possible to do this by modifying the graph on the client level. Lazy evaluation is implemented using switch/merge statements, and tf.cond inserts those statements around the tensors created in tf.cond call. If you want to add laziness to tensors that have already been created, you can use graph_editor to modify the graph with the proper structure.
For instance, here's an example of modifying the graph to run variable initializer lazily -- https://gist.github.com/yaroslavvb/d67410e240369736fc4ba0267250ef27

@yaroslavvb Thanks, very interesting gist. Wouldn't it make sense to make these kinds of optimizations part of TensorFlow?

@3rd3
Note that reason for current semantics is that it matches what you would expect from other programming languages:
IE consider
1+2 if False else 2+3

vs
a=1+2
a if False else b

Like in your case with tf.cond, computation a is getting evaluated despite if being lazy. The way to make it truely lazy both in Python and TensorFlow case, is to move the actual computation inside if.
Changing existing tf.cond to work lazily on computation previously defined, would change the semantics. IE, suppose you have tf.cond(a,b,c). Tensors b and c may have side-effects such as triggering variable assignments, and if you optimize it out, it'll change behavior/break existing TF scripts.
It might be useful to have something like lazycond(a,b,c) construct which has semantics you want. It could be done purely on Python level by analyzing graph and inserting appropriate switch/merge statements.

I am wondering why you use imperative semantics here when static analysis and optimization is exactly the strong suit of declarative programming.
It also seems that TensorFlow is already lazy in some regards because in the following case y is not computed since it is not queried.
x = tf.no_op()
y = tf.no_op()
sess.run(x)

Query laziness, but no branching laziness? This seems to me like an odd mix of different paradigms.

@3rd3 indeed, this is a common pitfall. In retrospect I think it would be less confusion if your example usage was explicitly forbidden. You have a mix -- some Tensors are created inside tf.cond, while others are created outside of tf.cond. To ensure laziness, all computation must be defined by the lambda called by tf.cond, that enables the construct to insert proper merge/switch calls

But that would still not resolve the paradigm discrepancy between query laziness and branching non-laziness.

I would say this is Python API issue, rather than core TensorFlow issue,
since there's no "cond" in TF API, only Switch/Merge. Changing tf.cond to
be fully lazy will change behavior of existing programs, so it can't be
done for backward compatibility reasons. You could write your own version
of tf.cond which inserts Switch/Merge in a more intuitive way
On Jul 1, 2017 2:29 PM, "3rd3"<EMAIL_ADDRESS>wrote:
But that would still not resolve the paradigm discrepancy between query
laziness and branching non-laziness.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/10800#issuecomment-312429571,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABaHOQVanyfGay_1DHuSEmXpIBBKRYKks5sJjvDgaJpZM4N9VuH
.


FW-694: statistics to monitor an openwsn device

FW-694: push statistics to openvizualizer (for live debuging: DIO, DAO, 6P, schedule, etc.)

Dear Fabrice,
I integrated this PR to our code. I only looked at transmitted and received packets parts. I think the code needs some modification. I will mention them in code.
Overall, it seems hard to get exact value of e2e delay, PDR, ... with these limited logs.
I'm working on code and customizing with our demands. I will inform you asap finalize it!
Best Regards,
Erfan

Can one of the admins verify this patch?


update grammar and broken mathjax

I fixed some minor grammar errors: "Bayes's" to "Bayes' ", "probablistic" to "probabilistic", and italicized some questions that were embedded in sentences. I also fixed a page that was broken (undirected models) because the mathjax was {% m % } KL( || ) {% em % } and that breaks the whole section. It needed to be { % math %} KL( ||) { % endmath % }.

I added a note about causality in BNs (and how MRFs can't offer this property) and I added a note about graph transformation in VE with an example and discussion. I also added a proof from piazza about empirical distributions for minimizing KL divergence (as maximizing expected log likelihood).

Thanks for the addition! I merged most of your commits except the additional section on variable elimination.


Xamarin SDK Error with self hosted parse-server

Whenever I try to do any call to my Parse server I get an error.
Whether it is a SaveAsync or a facbook login , it is always this error :

{System.NullReferenceException: Object reference not set to an instance of an object
at Parse.Internal.HttpClient+<>c__DisplayClass15.b__d (System.Threading.Tasks.Task1 t) [0x00093] in :0
at System.Threading.Tasks.ContinuationResultTaskFromResultTask2[TAntecedentResult,TResult].InnerInvoke () [0x00027] in /Users/builder/data/lanes/3236/ee215fc9/source/mono/external/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs:207

and so on and so forth.
I did initialize it correctly to my server, and I can confirm the server is working as I can do stuff with cURL.
I am using the Nuget version

Please post the parse-server and SDK versions you are using. You said Xamarin SDK but I assume you are working with the Parse Client SDK's to communicate with parse-server?
And, would you give an example snippet of code? That way we can try and reproduce the error? Not enough info to solve a null ref exception...

Hello,
Thank you for getting back.
So here is what I do :
Im using Xamarin and the Parse NUGET so the 1.7 SDK together with parse server 2.2.10
I initialize the server
ParseClient.Initialize(new ParseClient.Configuration
{
ApplicationId = "MYAPPID",
Server = "MYSERVER"
});
ParseFacebookUtils.Initialize("MYFBID");
I removed the sensitive data now.
Next I try anything and it gives an error
Wheter I I I facebook login
try
{
await ParseFacebookUtils.LogInAsync(id, accessToken, expiryDate);
return true;
}
catch (System.Exception e)
{
Console.Write(e);
return false;
}
Or simply try to save an object, always the error above

Can you verify that you have a trailing slash in your server URL?
Server = "http://example.com/parse/"
Initializing your ParseClient should look something like this:
ParseClient.Initialize(new ParseClient.Configuration
{
ApplicationId = "MYAPPID",
Server = "http://example.com/parse/"
});

Hello,
yes I can confirm it is ending with a trailing /
However it uses https, might that be a problem ?

Just a few questions to try and understand your setup better:

Can you access the parse-server via the REST API or other SDK and verify that your server is functioning properly?

Do you have the dotNetKey parameter set in your parse-server config? If so, just remove it. All you need is appId param for parse-server.

Here is the basic server config:
var api = new ParseServer({
  databaseURI: 'mongodb://your.mongo.uri',
  cloud: './cloud/main.js',
  appId: 'myAppId',
  fileKey: 'myFileKey',
  masterKey: 'mySecretMasterKey',
  push: { ... }, // See the Push wiki page
  filesAdapter: ...,
});

Hello,
yes i have the parse dashboard runnning and it shows the server.
Hitting this in the terminal :
curl -X POST -H "X-Parse-Application-Id: com.app.id" -H "Content-Type: application/json" -d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' https://website/parse/classes/GameScore
returns :
{"objectId":"Z8HHMmyjBc","createdAt":"2016-06-09T20:19:26.630Z"}
and allows me to see the created object in the dashboard.
my sevrer config is as follows :
I am using pm2 to start a service trough my file called ecosystem.json containing :
{   "apps" : [{     "name"        : "parse-wrapper",     "script"      : "/usr/bin/parse-server",     "watch"       : true,     "merge_logs"  : true,     "cwd"         : "/home/parse",     "env": {       "PARSE_SERVER_CLOUD_CODE_MAIN": "/home/parse/cloud/main.js",       "PARSE_SERVER_DATABASE_URI": "Hidden",       "PARSE_SERVER_APPLICATION_ID": "Hidden",       "PARSE_SERVER_MASTER_KEY": "Hidden",       "PARSE_SERVER_FACEBOOK_APP_IDS": "Hidden",     }   }] }

Thanks for sharing. I'm going to setup my local dev env with a similar setup to yours and test on my end.
I did notice a spare comma in your JSON at the end of the PARSE_SERVER_FACEBOOK_APP_IDS line. My editor didn't like it. That may just be a typo on github but I just wanted to point it out. I have removed it and re-posted the JSON here just for clarity sake.
{
  "apps": [
    {
      "name": "parse-wrapper",
      "script": "/usr/bin/parse-server",
      "watch": true,
      "merge_logs": true,
      "cwd": "/home/parse",
      "env": {
        "PARSE_SERVER_CLOUD_CODE_MAIN": "/home/parse/cloud/main.js",
        "PARSE_SERVER_DATABASE_URI": "Hidden",
        "PARSE_SERVER_APPLICATION_ID": "Hidden",
        "PARSE_SERVER_MASTER_KEY": "Hidden",
        "PARSE_SERVER_FACEBOOK_APP_IDS": "Hidden"
      }
    }
  ]
}

Thanks for taking your time.
Ill check if the comma is there or not, but the server is working so im not sure why it should have an impact on the sdk:/ ill check it out

Any news ? dont want to push but im sitting here for weeks not being able to continue work....

Note: I had no previous experience with PM2 prior to this and I wasn't working on my Mac at the time. But here was my experience.
I setup PM2 (v1.1.3) on my Win10 dev machine and ran parse-server (2.2.13) locally connecting to a local dev mongodb server. Here are my results:

Ran parse-server using pm2 start index.js parse-server ran normally and I was able to connect using a locally hosted parse-dashboard (v1.0.14) instance and browse/add data. I also was able to use Postman to interact with the parse-server and add data. No issues.

Created a process.json file, similar to your ecosystem.json, and ran pm2 start process.json and again the results were same as number 1. All good!

One and two were both in PM2 fork mode so I wanted to try and get cluster mode working. I was able to configure cluster mode. I got a 3 cluster parse-server running BUT, I was never able to get parse-server to work under cluster mode.

Since parse-server is still a work in progress and based on my experience I would drop PM2 and just get back to running a plain vanilla parse-server for the moment. Then work back into it until you find the problem. I can assure you that the .NET SDK does indeed work with parse-server. I am using it.
@tomh4 I'm just a parse user like you my friend! I'm just volunteering my efforts to try and help out. I am at the end of my available time for this issue. Sorry I wasn't able to help more. Good luck!

First of all thanks for your time. My comment was not intended to be offensive, i am thankfull that you are around because I think noone else is...
I am not sure what you mean by running a plain vanilla parse-server
I use pm2 because it is easy to use and allows me to have the service restarted automatically in case of a restart of the servrer.
I think i will just use the rest api...

No worries...
I mean for you to setup a fresh parse-server like shown in the parse-server example code and then run your client code against it.
Also, If you are using Visual Studio or Xamarin Studio you can download this example parse client console app and test your parse-server environment. It uses the current NuGet of Parse .NET SDK.
https://github.com/thewizster/parse-server-console
PLEASE NOTE: This console app WILL write data to your parse-server so be sure you don't have a Hello class or a World class in your target server that has important data saved. The console app will write data to those two parse-server classes.

So did you run it within express? The server I mean

Yes. Parse Server + Express
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();

var api = new ParseServer({
  databaseURI: 'mongodb://localhost:27017/dev', // Connection string for your MongoDB database
  cloud: '/home/myApp/cloud/main.js', // Absolute path to your Cloud Code
  appId: 'myAppId',
  masterKey: 'myMasterKey', // Keep this key secret!
  fileKey: 'optionalFileKey',
  serverURL: 'http://localhost:1337/parse' // Don't forget to change to https if needed
});

// Serve the Parse API on the /parse URL prefix
app.use('/parse', api);

app.listen(1337, function() {
  console.log('parse-server-example running on port 1337.');
});

Hello,
I'm having the same problem. I've setup parse-server on AWS / Elastic Beanstalk connected it to my migrated database on mLab. Calls via curl / http work just fine. Using Parse Dashboard works also. Using Parse Server 2.2.13 and the SDK version 1.7.0 (Xamarin.iOS) throws the same exception doing a simple call:
await ParseUser.LogInAsync(username, password);
Object reference not set to an instance of an object
  at Parse.Internal.HttpClient+<>c__DisplayClass15.<ExecuteAsync>b__d

Please post the code you are running when calling LogInAsync()

@couchworx Please post the code you are running when calling LogInAsync() that will help understand your issue better.
Also, I have a small console app that posts some test data using the .Net client SDK. You could run that against your server and make sure it's working. Get the project here:
https://github.com/thewizster/parse-server-console

Here is some more sample code that might be of use for this discussion.
https://github.com/thewizster/hello-xamarinforms-ios-parse
Basic Xamarin iOS application that saves data to parse-server. Just change your appId and server url then run the app. If your server is running and properly configured It will save some test data to your parse-server.

@thewizster Thanks for the quick response. I've just tried the basic Xamarin iOS application. Unfortunately it shows the same issue. If you want to try, I've temporary changed the appId to "47114712", the server URL is "http://puzoh-env.us-west-2.elasticbeanstalk.com:1337/parse/"

Posting data via curl works nicely. Feel free to try yourself, the server is for testing. ;)
curl -X POST \   -H "X-Parse-Application-Id: 47114712" \   -H "Content-Type: application/json" \   -d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' \   http://puzoh-env.us-west-2.elasticbeanstalk.com/parse/classes/GameScore

@couchworx You are using http://puzoh-env.us-west-2.elasticbeanstalk.com:1337/parse/ as the server URL in your app which has  http port 1337 assigned. There is no site at this address.
You need to use: http://puzoh-env.us-west-2.elasticbeanstalk.com/parse/
Note: I have removed :1337 from the url since your server is operating on default port 80
Your curl works because you are posting to default http port 80.
After using the updated URL I ran my app against your server and it worked.

@thewizster Perfect, don't know how I missed that. Everything seems to be working fine. Thanks for your help.

So i have tried your console app and it works fine with my server. however the xamarin app still doesnt work ... what version of the sdk is your console app using ?

@tomh4  It's using the NuGet package v1.7.0
https://www.nuget.org/packages/parse/1.7.0
Take a look at the packages.config file.
https://github.com/thewizster/parse-server-console/blob/master/ParseServerConsole/packages.config

                                                                                Same package I am using...                                                                                Von: Raymond BradyGesendet: Samstag, 18. Juni 2016 18:30An: ParsePlatform/Parse-SDK-dotNETAntwort an: ParsePlatform/Parse-SDK-dotNETCc: tomh4; MentionBetreff: Re: [ParsePlatform/Parse-SDK-dotNET] Xamarin SDK Error with self hosted parse-server (#212)@tomh4  It's using the NuGet package v1.7.0

https://www.nuget.org/packages/parse/1.7.0
Take a look at the packages.config file.
https://github.com/thewizster/parse-server-console/blob/master/ParseServerConsole/packages.config
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

My packages.config had

but i changed it to

and still not working

I have the same problem.
But there is something special I did:

Test 1: App is connected to 4G or normal Wifi: I have same error as tomh4
Test 2: I put a intermediate proxy -> Fiddler and I have installed its own root certificate on android device for https.The apps works perfect.

Because of that, I think the problem maybe comes from:

redirection in server nginx (https:://dns to http://ip:1337), and parse httpclient don´t allow this kind of redirection
https certificate from letsencryt is considerated by android like not valid

I have mounted a digital ocean droplet with parse server and parse dashboard, both of them started from pm2 configuration ans exposed with nginx. At this moment and with this error I can not migrate my apps.
thanks

This issue had no activity for quite some while and refers to an outdated version of the SDK.
I close this issue for now, feel free to reopen it or create a new one if you encounter this problem with the latest version of the SDK.


fix links in tracing docs

Codecov Report

Merging #370 (b42f301) into master (2cb5e5b) will increase coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #370      +/-   ##
==========================================
+ Coverage   86.02%   86.09%   +0.07%
==========================================
  Files         108      108
  Lines        1424     1424
  Branches       39       39
==========================================
+ Hits         1225     1226       +1
+ Misses        199      198       -1

Impacted Files
Coverage Δ

...ules/core/src/main/scala/net/BitVectorSocket.scala
88.88% <0.00%> (+11.11%)
: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 2cb5e5b...b42f301. Read the comment docs.


PairingCodeHandler Not Working

Problem
As described, running PairingCodeHandler generates a code that cannot be validated on the phone.
Observations
I noticed that using the verification code on Whatsapp Web will send a notification to my phone asking to pair and showing the validation code to be entered on Whatsapp Web. When using the library, I do not get this notification. Regardless, the verification code sent to the terminal cannot be validated on my phone.
My code looks like this (phone number redacted):
val connection = Whatsapp.webBuilder()
            .newConnection(1289*******)
            .name("WhatsAutomate")
            .unregistered(phoneNumber, PairingCodeHandler.toTerminal())
            .addLoggedInListener{ x -> println("Hello :)" + x)}
            .connect()
            .join()

Problem
As described, running PairingCodeHandler generates a code that cannot be validated on the phone.
Observations
I noticed that using the verification code on Whatsapp Web will send a notification to my phone asking to pair and showing the validation code to be entered on Whatsapp Web. When using the library, I do not get this notification. Regardless, the verification code sent to the terminal cannot be validated on my phone.
My code looks like this (phone number redacted):
val connection = Whatsapp.webBuilder()
            .newConnection(1289*******)
            .name("WhatsAutomate")
            .unregistered(phoneNumber, PairingCodeHandler.toTerminal())
            .addLoggedInListener{ x -> println("Hello :)" + x)}
            .connect()
            .join()

Does your phone number include the country prefix?

Does your phone number include the country prefix?

Yes. The prefix is just 1 being Canada.

I have got the same problem using the phone number with country prefix. No notification and the generated code is not accepted by the whatsapp app.
WebOptionsBuilder webOptionsBuilder = Whatsapp.webBuilder()
	.newConnection("alias1")
	.historyLength(WebHistoryLength.ZERO);

Whatsapp whatsapp = webOptionsBuilder
	.registered()
	.orElseGet(() -> webOptionsBuilder.unregistered(...L, PairingCodeHandler.toTerminal()))
	.addLoggedInListener(api -> System.out.printf("Connected: %s%n", api.store().privacySettings()))
	.addDisconnectedListener(reason -> System.out.printf("Disconnected: %s%n", reason))
	.connect()
	.join();

Same issue for me. Any news regarding the problem?

Same issue for me. Any news regarding the problem?

Will be fixed in cobalt 1.0


Connection management changes, and changes to work with Loop Dev

This includes a fairly large update to how connections are managed in OmniBLE.

Multiple ready-to-pair pods are detected during pairing, so the user does not inadvertently pair to the wrong pod.
BLE connection identifier is tracked to ensure reconnection to the correct peripheral
During session restoration, iOS may have maintained connection to the pod, so that from the pod's point of view, nothing has changed, and creating a session is not needed; changes are included to handle this situation, and not attempt to recreate a session.

It also includes changes to work with the latest Loop dev code, and, in fact, will only compile with dev LoopKit. So I recommend this patch does not land into master until a suitable maintenance branch for FreeAPS is found.
If you create a dev branch, I can re-submit this PR to point there.

Dev branch created.


binned_statistic_2d flips x/y coordinates in result

The shape of stats.binned_statistics_2d does not match up properly with what is described as x/y in the docstring. It seems to be flipped along x/y axis (although the x_edge and y_edge results are as expected).
Reproducing code example:
xs = [-1.5, 0.5, 1.5, 1.75]
ys = [ 1,-1, 1, 1]

xBin = 4
yBin = 2

xMin = -2
yMin = -2
xMax = 2
yMax = 2

counts = stats.binned_statistic_2d(xs,ys,None,
     statistic='count',
     bins=[xBin,yBin],
     range=[[xMin,xMax],[yMin,yMax]])

Leads to this output:
counts
 BinnedStatistic2dResult(
   statistic=array([[0., 1.],
       [0., 0.],
       [1., 0.],
       [0., 2.]]),
x_edge=array([-2., -1.,  0.,  1.,  2.]),
y_edge=array([-2.,  0.,  2.]),
binnumber=array([ 6, 13, 18, 18],
dtype=int64))

counts.statistic.shape
(4,2)

Expected Result
I'd expect the actual result to be what I get by running counts.statistic.transpose() on the given result:
array([[0., 0., 1., 0.],
       [1., 0., 0., 2.]])

With a shape = (2,4)

#### Scipy/Numpy/Python version information:

1.3.1 1.16.4 sys.version_info(major=3, minor=6, micro=8, releaselevel='final', serial=0)

I don't see a mismatch between the output of the function and the documentation.
You provided bins=[xBin,yBin], in your example:

This is interpreted as nx, ny = bins, so nx = xBin, ny = yBin:

The documentation says that the statistic output will be of shape (nx, ny):

(xBin, yBin) == counts.statistic.shape # True

Screenshots are from the 1.3.1 documentation because that is the version reported. It is the same current main, though.
Please correct me if I've misunderstood.
@tirthasheshpatel would you check me? am I having a bad day? : )

@mdhaber I verified with the 1.3.1 docs and the outputs seem to align with it as shown in your screenshot so I would also consider this closed.


ccid: set platforms to unix

Motivation for this change
Upstream supports Linux, macOS and various Unixes.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build ccid


MAINT: Drop Python 3.5, simplify linting

Hello @oesteban, thank you for submitting the Pull Request!

In the file mriqc/classifier/helper.py:

Line 462:23: W503 line break before binary operator

In the file mriqc/interfaces/functional.py:

Line 295:9: W503 line break before binary operator

In the file mriqc/workflows/utils.py:

Line 34:9: W503 line break before binary operator
Line 35:9: W503 line break before binary operator

To test for issues locally, pip install flake8 and then run flake8 niworkflows.


Cloud firestore 0.4.0 not working for beta channel ?

Package cloud_firestore has no versions that match >=0.4.0 <0.5.0 derived from:
flutfire depends on version ^0.4.0
pub get failed (1)
exit code 1
It is not compatible with beta channel and in master channel it works but that has other issues.

Sorry, it turns out that somehow I was accidentally on the beta channel without realising it. I updated to the dev channel and it started working.

This should be working as of the latest beta release. Please reopen if it isn't.

@iampawan
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/868. Any further collaboration will be done there.


Rethink concat-blocks semantics

It's a bit awkward to use concat-blocks to concatenate short sections, because it has to be turned off at the end if no other concatenation is wanted during the file. So I see a few options:

Have concat-blocks follow the section tree to only apply the rule to sections under the particular node
Introduce a temporary configuration like concat-blocks:: here that only concatenates until the next title. This could be equally frustrating if we don't follow what the global current option to go back to is.

The global setting could also be a bit awkward. I don't know when a user would like to assume that all of their code examples are to be concatenated either at the file or section level. So how about:

No global config
file is the default, and turns concat on for the rest of the file
section concats until the end of this section, and then whatever mode was active before that continues (no cat or file)

We probably should have section be "until the next title" rather than some tree structure shenanigans. Seems unintuitive.