Automatically resizing all windows on screen

Description of the new feature / enhancement
When expanding/shrinking 1 window the changes should reflect on all other windows.
Scenario when this would be used?
Having the ability to automatically shrink/expand a window without changing the actual FanzyZone window setting will allow me to adapt the layout for a window that is a higher priority or is a webpage that does not adapt to certain window size.
Supporting information
Something like this.

If this is not a priority of the dev team, I am willing to learn the source code and contribute to it myself as I have the summer holiday coming up soon (I'm in Australia).

Duplicate of #14156

Thanks for your suggestion! This issue is a duplicate.
I'm linking this issue to #14156 to centralize the discussion thread, please go to that thread for discussion.
Thanks for your help to make PowerToys a better piece of software!

Tracked via #2231

@Taz17 would love to sync with you / chat in #2231 for how you'd think about implementing this.  currently this isn't something we're focused on.


How to enable auto-save?

How to enable auto-save?

Do you mean saving without showing the "Save As" dialog that asks you where to download the file to? If so, you have to make sure the "Save As" option in the extension settings is off, and also that your browser is configured to save files without prompting (an extension cannot override this setting)


Nested fields in compound @keys raise Unexpected end of JSON input

We're using the Cosmo Router 0.63.1 (the latest so far) with Federation and two subgraphs defined as:
Subgraph one:
type Account @key(fields: "id") {
  id: ID!
}

type User @key(fields: "id account { id }") {
  id: ID!
  account: Account!
  name: String!
}

type Query {
  test: User!
}

Subgraph two:
type Account @key(fields: "id") {
  id: ID! @external
}

type User @key(fields: "id account { id }") @extends {
  id: ID! @external
  account: Account! @external
  foo: Boolean!
}

Running the following query raises exception:
query { test{ id name foo } }
Unexpected end of JSON input in the GraphQL UI and index out of range [5] with length 3 in the server's log.
This seems to be related to AST building phase so I assume the problem is with graphql-go-tools.
The same subgraph works well with the ApolloGateway/Federation. Without the nested compound key it also works with Cosmo Router.
We've created a minimal docker-compose setup to reproduce the issue. It is available at: https://github.com/maciejwisniowski/wg-router-bug
The Router's backtrace is attached
wg-router-bt.json

Thank you for this excellent bug report including a reproducible. Forwarding to the team to investigate once we have time. I'll update this thread.

Hi @maciejwisniowski,
This is actually an issue with the configuration passed by the router. External fields that appear in FieldSets are added to the fieldNames property of root nodes. There will be a patch to fix this. I'll keep you updated.

Hi @maciejwisniowski
fix is included beginning from version 0.67.0


Add CONTRIBUTING.md

Is your feature request related to a problem? Please describe.
Contributing guidlines are missing which makes it more difficult for external contributors to propose their changes.
Describe the solution you'd like
Add CONTRIBUTING.md like the one we have in bpmn-js.
Describe alternatives you've considered
Do nothing.

If it is a quick fix, could you simply add the file?
If not I'm worried such documentation issue will never be closed (and thus lie around open, forever :angel:).

Closed via https://github.com/camunda/camunda-modeler/pull/1395.


Can not create new object

I try to use your app, for early created object it work, but when i try create new object with ForeignKey i catch error "RelatedObjectDoesNotExist"
class TestObject(DirtyFieldsMixin):
category = models.ForeignKey(Category)
title = models.CharField('Title', max_length=255, blank=True, default='')

Hi @busy ! Thanks for reporting. I have reproduced this problem, and will fix it soon.

:facepalm: I should have looked here first :)

@jazzywhit Yep ! No worries.

Fixed in 0.5 (released today).


Is it supported to use multiple call-home endpoints?

Hi all.
Could you, please, help me with following.
Athough I've configured two call-home endpoints (see configuration below), netopeer2-server connects only to one of them (both are listenning incoming ssh connections).
After server is connected to the first endpoint, it stops trying to establish any another connection.
I don't know whether it is valid scenario, but seem that one uses it: https://github.com/CESNET/Netopeer2/issues/117
<netconf-server xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-server">
  <call-home>
    <netconf-client>
      <name>default-client</name>
      <endpoints>
        <endpoint>
          <name>default-ssh-1</name>
          <ssh>
            <tcp-client-parameters>
              <remote-address><IP_ADDRESS></remote-address>
              <keepalives>
                <idle-time>1</idle-time>
                <max-probes>10</max-probes>
                <probe-interval>5</probe-interval>
              </keepalives>
            </tcp-client-parameters>
            <ssh-server-parameters>
              <server-identity>
                <host-key>
                  <name>default-key</name>
                  <public-key>
                    <keystore-reference>genkey</keystore-reference>
                  </public-key>
                </host-key>
              </server-identity>
              <client-authentication>
                <supported-authentication-methods>
                  <publickey/>
                  <passsword/>
                  <other>interactive</other>
                </supported-authentication-methods>
                <users/>
              </client-authentication>
            </ssh-server-parameters>
          </ssh>
        </endpoint>
        <endpoint>
          <name>default-ssh</name>
          <ssh>
            <tcp-client-parameters>
              <remote-address><IP_ADDRESS></remote-address>
              <keepalives>
                <idle-time>1</idle-time>
                <max-probes>10</max-probes>
                <probe-interval>5</probe-interval>
              </keepalives>
            </tcp-client-parameters>
            <ssh-server-parameters>
              <server-identity>
                <host-key>
                  <name>default-key</name>
                  <public-key>
                    <keystore-reference>genkey</keystore-reference>
                  </public-key>
                </host-key>
              </server-identity>
              <client-authentication>
                <supported-authentication-methods>
                  <publickey/>
                  <passsword/>
                  <other>interactive</other>
                </supported-authentication-methods>
                <users/>
              </client-authentication>
            </ssh-server-parameters>
          </ssh>
        </endpoint>
      </endpoints>
      <connection-type>
        <persistent/>
      </connection-type>
    </netconf-client>
  </call-home>
  <listen>
    <endpoint>
      <name>default-ssh</name>
      <ssh>
        <tcp-server-parameters>
          <local-address><IP_ADDRESS></local-address>
          <keepalives>
            <idle-time>1</idle-time>
            <max-probes>10</max-probes>
            <probe-interval>5</probe-interval>
          </keepalives>
        </tcp-server-parameters>
        <ssh-server-parameters>
          <server-identity>
            <host-key>
              <name>default-key</name>
              <public-key>
                <keystore-reference>genkey</keystore-reference>
              </public-key>
            </host-key>
          </server-identity>
          <client-authentication>
            <supported-authentication-methods>
              <publickey/>
              <passsword/>
              <other>interactive</other>
            </supported-authentication-methods>
            <users/>
          </client-authentication>
        </ssh-server-parameters>
      </ssh>
    </endpoint>
  </listen>
</netconf-server>

Thanks in advance!

Hi,
then I would say it behaves exactly as it should, look at the individual nodes in the module for details. I think you want to configure several netconf-clients.
Regards,
Michal

Right, my bad... I have to create new netconf-client instead of endpoint. Thanks.


Update details for the Polymesh network

Updates details for the Polymesh network in ss58-registry.json.

@adamdossa please merge master

@adamdossa please merge master

@adamdossa please merge master

@bkchr done - thanks.

@adamdossa please merge master

@bkchr done - thanks.


BRAF V600E in GRCh38 instance

The following page returns annotation for BRAF V600E in GRCh38
http://grch38.genomenexus.org/variant/7:g.140753336A>T
But I don't understand why GN shows ENST00000496384 as transcript id while  ENST00000288602 is the actual canonical transcript? http://grch38.genomenexus.org/ensembl/canonical-transcript/hgnc/BRAF

@zhx828 Good catch, there might be some bugs, somehow GN marks ENST00000496384 with "canonical": "1" in the annotation. @inodb @onursumer Any thoughts?
https://grch38.genomenexus.org/annotation/7%3Ag.140753336A>T?fields=annotation_summary
    {
      "exon": "15/19",
      "transcript_id": "ENST00000496384",
      "hgvsp": "ENSP00000419060.2:p.Val600Glu",
      "hgvsc": "ENST00000496384.7:c.1799T>A",
      "variant_allele": "T",
      "codons": "gTg/gAg",
      "protein_id": "ENSP00000419060",
      "protein_start": 600,
      "protein_end": 600,
      "gene_symbol": "BRAF",
      "gene_id": "ENSG00000157764",
      "amino_acids": "V/E",
      "hgnc_id": "HGNC:1097",
      "canonical": "1",
      "polyphen_score": 0.927,
      "polyphen_prediction": "probably_damaging",
      "sift_score": 0.0,
      "sift_prediction": "deleterious",
      "refseq_transcript_ids": [
        "NM_001354609.2"
      ],
      "consequence_terms": [
        "missense_variant"
      ]
    },

@leexgh the "canonical": "1" comes from Ensembl and is not necessarily the canonical transcript that we have assigned for that hugo symbol. It's best to use annotation_summary.transcriptConsequenceSummary to get the canonical transcript

@inodb I see, yeah it's weird in the annotation_summary.transcriptConsequenceSummary it's also ENST00000496384.  Actually GN frontend is using annotation_summary.transcriptConsequenceSummary for most of header info pills, so that's why we show ENST00000496384 as transcript id
    "transcriptConsequenceSummary": {
      "transcriptId": "ENST00000496384",
      "codonChange": "gTg/gAg",
      "aminoAcids": "V/E",
      "aminoAcidRef": "V",
      "aminoAcidAlt": "E",
      "entrezGeneId": "673",
      "consequenceTerms": "missense_variant",
      "hugoGeneSymbol": "BRAF",
      "hgvspShort": "p.V600E",
      "hgvsp": "p.Val600Glu",
      "hgvsc": "ENST00000496384.7:c.1799T>A",
      "proteinPosition": {
        "start": 600,
        "end": 600
      },
      "refSeq": "NM_001354609.2",
      "variantClassification": "Missense_Mutation",
      "exon": "15/19"
    }

@leexgh srry for the confusion. It has to do with the API not correctly setting the default isoformOverrideSource when missing (should be uniprot). Try e.g.:
https://grch38.genomenexus.org/annotation/7%3Ag.140753336A>T?fields=annotation_summary&isoformOverrideSource=uniprot
vs
https://grch38.genomenexus.org/annotation/7%3Ag.140753336A>T?fields=annotation_summary

This btw is not that great in the API design imo. It would've prolly been better to have separate fields for each canonical transcript (uniprot/mskcc/maybe others) instead of the field changing based on a filter parameter. The filter parameter should filter the results, not change fields in the result. Mostly historical reasons that is this way, but something to consider for API response 2.0 :)


Parameters (and friends) should be members of Luxtronik

One of the changes of pull request #86 was to remove parameters, calculations and visibilities as members of Luxtronik. This change was not needed to arrive at the goal of #85 to support multiple instances of Luxtronik (this was solved by making the parameters instance members of Parameters).
In order to ease the implementation of a high-level interface for reading (see #119), I suggest to add back parameters as an instance member of Luxtronik. Otherwise, I do not see an easy way for providing functions like get_firmware_version to Luxtronik.

Are only parameters needed/wanted as part of Luxtronik, or also the other references to calculations and visibilities?
Also: Should we work on this right away for milestone, or only "later" when working on the high-level interface (https://github.com/Bouni/python-luxtronik/milestone/2)?

Definitely, we also need calculations. Concerning visibilities, I do not really know what these tell me.
In my opinion, it fits either milestone, but (if we do it), it should be done before the next release (since the current behavior breaks the API and this issue proposes to revert this).

Definitely, we also need calculations. Concerning visibilities, I do not really know what these tell me.

I would then argue that for the sake of consistency we should treat them equal, until we have a good reason to treat them differently. So let's keep a reference to all of those "data vectors".

In my opinion, it fits either milestone, but (if we do it), it should be done before the next release (since the current behavior breaks the API and this issue proposes to revert this).

Currently the milestones are not linked to releases, but that should be the goal. So let's add it to milestone 1, which is concerned about refactoring, etc.

I'm still of the opinion that an (outdated) image of the data has nothing to do with the interface.
if you want to save the (actually negligible) time for creating the parameters objects, we could also offer an update() function, in which the read data is written into the passed object.
def __init__():
    self.parameters = Parameters()
    self.luxtronik = Luxtronik("<IP_ADDRESS>")

def read ():
    self.luxtronik.update(self.parameters)

...

I'm still of the opinion that an (outdated) image of the data has nothing to do with the interface.

In my opinion, the Luxtronik class is more than a read-write interface. Of course, the data might be outdated (if not re-read frequently), but this is the case for (almost) all the data on your computer ;)

A "higher-level-function" could looks like:
def get_hot_water_temperature(temperature):
    param_queue = ParamQueue()
    param_queue.set(ID_HOT_WATER_TEMPERATURE, temperature)
    data = self.write(param_queue)
    read_temperature = data.get(ID_HOT_WATER_TEMPERATURE)
    return read_temperature

But with such an approach, you have to read the parameters from the heat pump for each call of a "higher-level function"...

Has anyone ever tried to read a single parameter instead of all together? This could be useful for "higher-level-functions".

This is not possible (i.e., not supported by the heat pump interface). You can only read all parameters at once.

But with such an approach, you have to read the parameters from the heat pump for each call of a "higher-level function"...

This would be the same if you refresh the cached data. Just returning the cached data instead of re-reading it again would be the same as:
params = luxtronik.get_parameters()
luxtronik.high_lvl_func_without_reading()
foo = params.get(ID)

No need to cache this inside the interface.

This is not possible (i.e., not supported by the heat pump interface). You can only read all parameters at once.

Not possible due to the Python interface or the Luxtronik control itself?

But with such an approach, you have to read the parameters from the heat pump for each call of a "higher-level function"...

This would be the same if you refresh the cached data. Just returning the cached data instead of re-reading it again would be the same as:
params = luxtronik.get_parameters()
luxtronik.high_lvl_func_without_reading()
foo = params.get(ID)

What is achieved by the second line here? How should high_lvl_func_without_reading execute, when it does not have any data available.

This is not possible (i.e., not supported by the heat pump interface). You can only read all parameters at once.

Not possible due to the Python interface or the Luxtronik control itself?

This is not possible by the firmware of the heat pump.

params = luxtronik.get_parameters()

luxtronik.high_lvl_func_without_reading()

foo = params.get(ID)

What is achieved by the second line here? How should high_lvl_func_without_reading execute, when it does not have any data available.

This is just to clarify that nothing is read back there. In principle, high-level functions with (SetHotWaterTemp(50)) and without parameters (ActivateHolidayMode()) would be possible

Just a quick reminder: If revert the API change, we should also call read() in __init__ again to load the current state of the heat pump.

I still vote not to add the data to the interface.
We could implement something like this:
LuxtronikInterface:
  read() -> LuxtronikData
  write(...) -> LuxtronikData

LuxtronikData:
  __init__():
    self.parameters = ...
    self.visibilies = ...
    self.calculations = ...

  some_high_level_func():
    ...

Luxtronik:
  __init__():
    self.Interface = LuxtronikInterface()
    self.Data = self.Interface.read()

  some_further_high_level_function()
    ...

(Did not checked the syntax)

https://github.com/Guzz-T/python-luxtronik/tree/issue/132/revert-api
Here is a suggestion. Due to the base classes there is a little more code, but a cleaner separation of the interface from the data.

@Guzz-T I just had a quick look at your "revert-api" proposal and so far this looks good to me.
Not breaking the existing API is a big bonus in my eyes, which your proposal fulfils, right?
I have not yet test your branch due to lack of time and I can't before wednesday.
@gerw and @kbabioch any thoughts on this?

Do we really need this level of abstraction? Yes, it seems to be nice from a design point of view. But it blows up the code and I do not think that it improves the maintainability. I also think that (besides the socket connection) there will be no other way of obtaining data from the heat pump in the future.
I like the simplicity and the API of 0.3.14. From my point of view, the only circumstance where the current API is better, is if you want to keep a history of the parameters. With the new API, one can use
l = []
while True:
  p = lux.read_parameters()
  l.push_back(p)

whereas the old API needs
l = []
while True:
  lux.read_parameters()
  l.push_back(copy(lux.parameters))

@gerw you are right. It's quite a lot of code for little functionality. I have updated the branch with a new proposal.
That would be a compromise of compatibility, simplicity and a clear separation of the interface from the data.
class LuxtronikData:
...
class LuxtronikInterface:
...
class Luxtronik(LuxtronikData, LuxtronikInterface)

Yes, this looks nice. I have a few comments:

Should Luxtronik really be inherited from LuxtronikInterface? From my perspective, it would be more logical, if it is a member, i.e., self.interface = LuxtronikInterface(...), or rather self._interface?
That Luxtronik is inherited from LuxtronikData seems to be ok, since we can call luxtronik.some_high_level_function() without additional gluing code.
In the old API,

lux = Luxtronik(ip, port)
p = lux.parameters
...
lux.read()
# Use "p" to access the parameters, or just:
assert p == lux.parameters

would work, but it fails with your code. How about something like
class LuxtronikInterface:
    def read(self, parameters = Parameters()):
        [...]
        return parameters
class Luxtronik:
    def read(self):
        return self.interface.read(self.parameters)

?

Although I suggested otherwise, I am now wondering if LuxtronikInterfaceBase would be a good idea. We could implement some dummy interface(s) which would just present some data to add more test routines (and get more code coverage). In LuxtronikInterfaceBase we could add the methods _with_lock_and_connect, read, read_*, write, _read, _read_*, _write, since these are pretty generic.  Child classes have to implement _connect, _disconnect, _send_ints, _read_int and _read_char.

Typing seems to be nice, but it should not be introduced while working on these changes. This should go to a different PR.

Opened pull-request #163
@gerw:

LuxtronikInterface is now a member of Luxtronik
What would be the use case for comparing whether the two address pointers point to the same address (p == lux.parameters)? To compare the data __eq__() would be required. Sure, it's not one and the same instance, but that shouldn't have any negative effects. If you really have to, we can add this “update” functionallity.
For now, LuxtronikInterfaceBase is not needed for this issue. But could be added with another pull-request.
Removed typing

Concerning p == lux.parameters: One use case is that we save the reference to lux.parameters at some place in our code. Then, we could call lux.read() somewhere else (e.g. in a separate thread) every minute to update the parameters, which can still be accessed by p.
[In my opinion, it is also not necessary to create a new Parameter object for each reading, but the old one can be recycled.]

Now you answered too quickly. I would have revised the comment again.

Please have a look again. Alternatively DataVector itself could provide a update(self, other_data_vector).

Let's continue the discussion in the PR.

Please note that even after #163, this code is not a 1-to-1 replacement for the previous version 0.3.14.
I still get a lot of errors when starting homeassistant.
Examples:
2024-02-20 21:38:38.291 WARNING (MainThread) [Luxtronik.Calculations] entry 'ID_WEB_SoftStand' not found
2024-02-20 21:38:38.304 WARNING (MainThread) [Luxtronik.Calculations] entry 'Unknown_Calculation_239' not found
AttributeError: 'PoolMode' object has no attribute 'measurement_type'
    File "/config/custom_components/luxtronik/coordinator.py", line 322, in firmware_version_minor
        return int(ver.split(".")[1])
IndexError: list index out of range

ID_WEB_SoftStand is no longer there, should be replaced by a high-level-function; this also causes the IndexError
Calculation 239 now has a real name VBO_Temp_Spread_Soll
measurement_type is now datatype_unit?

Changes seem logical. However, they must be implemented by the user (BenPru/luxtronik). This means that no direct exchange is possible.


Fix issues with Nopol

Repairnator build is not passing anymore apparently because new Nopol snapshot has been deployed.
Repairnator should use a dependency of Nopol RELEASE and not snapshot anymore. See: https://github.com/SpoonLabs/nopol/issues/156

Wrong diagnostic: it wasn't a Nopol issue.


[Bug]: Git import fails with internal server error in airgapped instance

Is there an existing issue for this?

[X] I have searched the existing issues

Description
On importing an app from git, git sync modal gives internal server

error
Steps To Reproduce

On air gapped instance, import an app from git , use TED which brings up local git server on port 3001: http://localhost:3001/
https://github.com/appsmithorg/TestEventDriver#readme
Create new repository in gitea
Connect an app to git.
Import the app from git repo and observe the error is thrown

Public Sample App
No response
Environment
Deploy Preview
Issue video log
No response
Version
Air Gapped Instance

The issue was with remote url it was supposed to be git@host.docker.internal:Cypress/testAirGap2.git instead of git@localhost:Cypress/testAirGap2.git, which was throwing error. Hence closing the issue.


Update get-defender-vulnerability-management.md

Added E5 to the list
Fixes https://github.com/MicrosoftDocs/microsoft-365-docs/issues/12443

@JohanFreelancer9 Please copy review

Added E5 to the list
Fixes #12443

Hi,
I noticed that you have mentioned the following twice:
"If you don't have Defender for Endpoint Plan 1 or Plan 2, or Microsoft 365 E3 or E5, you will sign up to trial the Defender Vulnerability Management Standalone trial."
This only needs to go into the "standalone" section reference, and the wording changed to remove "standalone" for the "Add-On" section
On another note, just to doublecheck, that you are stating the "Vulnerability Management Add-on" is indeed an extra charge, even if you E5?
Many Thanks
Amjad


EMails are marked as SEEN when they shouldn't be

Current behavior
Fetching unseen emails from GMail marks emails as seen when it shouldn't.
Expected behavior
Fetch unseen emails without marking them as seen.
Steps to Reproduce the Problem
try (ReceiveMailSession session = mailServer.createSession()) {
  session.open();
  final ReceivedEmail[] mails = session.receive()
      .filter(filter().flag(Flag.SEEN, false))
      .fromFolder("INBOX")
      .get();
  for (final ReceivedEmail mail : mails) {
    // do something
  }
}

I have not used receiveEmailAndMarkSeen() nor markSeen() but they are still marked as seen on GMail.

(sorry for long reply, im in the middle of mu vacation, will be back on August 1st)

You did everything correctly. I will check whats going on - I know that we do not set the flag. There is also a chance that Google simply works like that. Will let you know.

Hey @alturkovic did you figure this one out?

No, sorry, I tried leaving a comment from my phone and missclicked. Couldn't get to laptop immediately, my bad.
I wanted to just leave a comment that I have been able to read mails with Spring without marking them, thought it might help you figure it out, their documentation has a lot of details on marking.


SF Wiki entry outdated

Instead .rr there should be .rr.yaml
The error message was also nothing saying "WARN[0000] config: Config File ".rr" Not Found in ". There was a .rr file but he wanted a .rr.yaml :joy:

Fixed, config type can vary.


Problem with Unreal

Hi Glenn,
I tried to integrate libyojimbo with unreal engine,  after successfuly sending/receiving message with bare windows client to linux server, it's failed doing excactling the same thing in Unreal Engine tutorial scene. I did some network sniffing with Wireshark, it's weird the client side sends 10 UDP packets of 18 bytes payload to server, and server logged with "ignored encrypted packet, no read packet key for this address", any ideas?  Here's my code (in Unreal).
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.

#include "physxClient.h"
#include "physxClientGameMode.h"
#include "physxClientHUD.h"
#include "physxClientCharacter.h"
#include "../ThirdParty/libyojimbo/include/yojimbo.h"
#include "../ThirdParty/libyojimbo/include/shared.h"
#include <signal.h>

using namespace yojimbo;

AphysxClientGameMode::AphysxClientGameMode()
	: Super()
{
	// set default pawn class to our Blueprinted character
	static ConstructorHelpers::FClassFinder<APawn> PlayerPawnClassFinder(TEXT("/Game/FirstPersonCPP/Blueprints/FirstPersonCharacter"));
	DefaultPawnClass = PlayerPawnClassFinder.Class;

	// use our custom HUD class
	HUDClass = AphysxClientHUD::StaticClass();
}
double ti = 100.0;

Client* client ;

void AphysxClientGameMode::StartPlay() {
	Super::StartPlay();
	InitializeYojimbo();
	OgameMessageFactory messageFactory(GetDefaultAllocator());
	uint64_t clientId = 1;

	Address clientAddress("<IP_ADDRESS>", 6667);
	Address serverAddress("<IP_ADDRESS>", 6666);

	ClientServerConfig config;
	config.numChannels = 1;
	config.channel[0].type = CHANNEL_TYPE_UNRELIABLE_UNORDERED;

	client = new Client(GetDefaultAllocator(), clientAddress, config, adapter, ti);

	uint8_t privateKey[KeyBytes];
	memset(privateKey, 0, KeyBytes);
	client->InsecureConnect(privateKey, clientId, serverAddress);
	client->AdvanceTime(ti);
}

void AphysxClientGameMode::Tick(float f) {
	Super::Tick(f);

	const double deltaTime = 0.1;

	JoinMessage* message = (JoinMessage*)(client->CreateMessage(JOIN_MESSAGE));
	message->teamId = 1;
	client->SendMessage(0, message);
	client->SendPackets();
	client->ReceivePackets();
	ti += deltaTime;
	client->AdvanceTime(ti);
	//messageFactory.ReleaseMessage(message);

	yojimbo_sleep(deltaTime);

	return;
}

Can you please upgrade to the latest source code (it has radically changed), and let me know how it goes then?
Also, in AphysxClientGameMode::Tick you don't want a yojimbo sleep in there...

Also, you don't want to put the yojimbo_sleep in the ClientGameMode::Tick, you want instead to pass in the actual delta time (real time) that has passed since the last call to tick. eg. float f, not 0.1

Also, please call:
yojimbo_log_level( YOJIMBO_LOG_LEVEL_DEBUG );

on both client and server and send me both logs.

My guess is that the connect token you are creating has a different IP address to what the client packets are coming in to the server on, is that possible? Logs should show this. -- cheers

ps. if you compare the debug logs with the working client (external to unreal), vs. the non-working client in unreal, you might be able to spot the difference yourself.

Hi Glenn, thanks for the reply.
I updated full code and recompiled the library, add log to both client and server (have to hack a little since Unreal consumed printf), here are the results:
Client:

[2017.06.27-08.47.32:750][175]LogTemp: connection error. disconnecting client

Server:

server listening on <IP_ADDRESS>:6666

reset encryption manager

server started with 64 client slots

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

ignored encrypted packet. no read packet key for this address

Here's wireshark capture BTW:
https://www.dropbox.com/s/i07a6qvou3bf1tt/20170627171217.png?dl=0
and, on both side the key is all set to 0, with pure visual studio c++ project yojimbo works perfectly.

Why don't you try different client and server ports? These ports seem like Unreal ports. Maybe that is related...

The thing that looks weird here is that the client should start, and be sending more packets to the server to negotiate connection. I think the packets you might be seeing are unreal packets being sent to 6667, unrelated to your client embedded in unreal, and your client is not properly started. This is my guess, but normally, the log should show the client sending connection request packets, server receiving those, adding an encryption entry for that client, and so on. Because this is happening, it looks like the client is not properly sending packets to the server from inside unreal, but something else is. Try different ports on client and server.

Hi Glenn,
I did set the log level to debug, guess some info directly print to "printf" is missing cause I just hack "yojimbo_printf" to Unreal log system. And I tried different port already, it's pretty the same. I will try to debug lower code to find out what Unreal do with socket connection today.

When I set debug log level on server.cpp in yojimbo:

started server on port 40000 (insecure)
server listening on <IP_ADDRESS>:40000
reset encryption manager
server started with 64 client slots
server received connection request from <IP_ADDRESS>:49661
server sent connection challenge packet
server received connection response from <IP_ADDRESS>:49661
server accepted client <IP_ADDRESS>:49661<PHONE_NUMBER>0edc2b in slot 0
[server endpoint] sending packet 0
[server endpoint] sending packet 0 without fragmentation
server sent connection keep alive packet to client 0
[server endpoint] sending packet 1
[server endpoint] sending packet 1 without fragmentation
server received connection payload packet from client 0
server confirmed connection to client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 2
[server endpoint] sending packet 2 without fragmentation
[server endpoint] processing packet 3
[server endpoint] process packet 3 successful
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 3
[server endpoint] sending packet 3 without fragmentation
[server endpoint] processing packet 4
[server endpoint] process packet 4 successful
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 4
[server endpoint] sending packet 4 without fragmentation
[server endpoint] processing packet 5
[server endpoint] process packet 5 successful
[server endpoint] acked packet 0
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 5
[server endpoint] sending packet 5 without fragmentation
[server endpoint] processing packet 6
[server endpoint] process packet 6 successful
[server endpoint] acked packet 1
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 6
[server endpoint] sending packet 6 without fragmentation
[server endpoint] processing packet 7
[server endpoint] process packet 7 successful
[server endpoint] acked packet 2
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 7
[server endpoint] sending packet 7 without fragmentation
[server endpoint] processing packet 8
[server endpoint] process packet 8 successful
[server endpoint] acked packet 3
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 8
[server endpoint] sending packet 8 without fragmentation
[server endpoint] processing packet 9
[server endpoint] process packet 9 successful
[server endpoint] acked packet 4
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 9
[server endpoint] sending packet 9 without fragmentation
[server endpoint] processing packet 10
[server endpoint] process packet 10 successful
[server endpoint] acked packet 5
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 10
[server endpoint] sending packet 10 without fragmentation
[server endpoint] processing packet 11
[server endpoint] process packet 11 successful
[server endpoint] acked packet 6
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 11
[server endpoint] sending packet 11 without fragmentation
[server endpoint] processing packet 12
[server endpoint] process packet 12 successful
[server endpoint] acked packet 7
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 12
[server endpoint] sending packet 12 without fragmentation
[server endpoint] processing packet 13
[server endpoint] process packet 13 successful
[server endpoint] acked packet 8
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 13
[server endpoint] sending packet 13 without fragmentation
[server endpoint] processing packet 14
[server endpoint] process packet 14 successful
[server endpoint] acked packet 9
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 14
[server endpoint] sending packet 14 without fragmentation
[server endpoint] processing packet 15
[server endpoint] process packet 15 successful
[server endpoint] acked packet 10
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 15
[server endpoint] sending packet 15 without fragmentation
[server endpoint] processing packet 16
[server endpoint] process packet 16 successful
[server endpoint] acked packet 11
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 16
[server endpoint] sending packet 16 without fragmentation
[server endpoint] processing packet 17
[server endpoint] process packet 17 successful
[server endpoint] acked packet 12
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 17
[server endpoint] sending packet 17 without fragmentation
[server endpoint] processing packet 18
[server endpoint] process packet 18 successful
[server endpoint] acked packet 13
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 18
[server endpoint] sending packet 18 without fragmentation
[server endpoint] processing packet 19
[server endpoint] process packet 19 successful
[server endpoint] acked packet 14
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 19
[server endpoint] sending packet 19 without fragmentation
[server endpoint] processing packet 20
[server endpoint] process packet 20 successful
[server endpoint] acked packet 15
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 20
[server endpoint] sending packet 20 without fragmentation
[server endpoint] processing packet 21
[server endpoint] process packet 21 successful
[server endpoint] acked packet 16
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 21
[server endpoint] sending packet 21 without fragmentation
[server endpoint] processing packet 22
[server endpoint] process packet 22 successful
[server endpoint] acked packet 17
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 22
[server endpoint] sending packet 22 without fragmentation
[server endpoint] processing packet 23
[server endpoint] process packet 23 successful
[server endpoint] acked packet 18
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 23
[server endpoint] sending packet 23 without fragmentation
[server endpoint] processing packet 24
[server endpoint] process packet 24 successful
[server endpoint] acked packet 19
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 24
[server endpoint] sending packet 24 without fragmentation
[server endpoint] processing packet 25
[server endpoint] process packet 25 successful
[server endpoint] acked packet 20
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 25
[server endpoint] sending packet 25 without fragmentation
[server endpoint] processing packet 26
[server endpoint] process packet 26 successful
[server endpoint] acked packet 21
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 26
[server endpoint] sending packet 26 without fragmentation
[server endpoint] processing packet 27
[server endpoint] process packet 27 successful
[server endpoint] acked packet 22
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 27
[server endpoint] sending packet 27 without fragmentation
[server endpoint] processing packet 28
[server endpoint] process packet 28 successful
[server endpoint] acked packet 23
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 28
[server endpoint] sending packet 28 without fragmentation
[server endpoint] processing packet 29
[server endpoint] process packet 29 successful
[server endpoint] acked packet 24
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 29
[server endpoint] sending packet 29 without fragmentation
[server endpoint] processing packet 30
[server endpoint] process packet 30 successful
[server endpoint] acked packet 25
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 30
[server endpoint] sending packet 30 without fragmentation
[server endpoint] processing packet 31
[server endpoint] process packet 31 successful
[server endpoint] acked packet 26
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 31
[server endpoint] sending packet 31 without fragmentation
[server endpoint] processing packet 32
[server endpoint] process packet 32 successful
[server endpoint] acked packet 27
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 32
[server endpoint] sending packet 32 without fragmentation
[server endpoint] processing packet 33
[server endpoint] process packet 33 successful
[server endpoint] acked packet 28
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 33
[server endpoint] sending packet 33 without fragmentation
[server endpoint] processing packet 34
[server endpoint] process packet 34 successful
[server endpoint] acked packet 29
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 34
[server endpoint] sending packet 34 without fragmentation
[server endpoint] processing packet 35
[server endpoint] process packet 35 successful
[server endpoint] acked packet 30
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 35
[server endpoint] sending packet 35 without fragmentation
[server endpoint] processing packet 36
[server endpoint] process packet 36 successful
[server endpoint] acked packet 31
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 36
[server endpoint] sending packet 36 without fragmentation
[server endpoint] processing packet 37
[server endpoint] process packet 37 successful
[server endpoint] acked packet 32
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 37
[server endpoint] sending packet 37 without fragmentation
[server endpoint] processing packet 38
[server endpoint] process packet 38 successful
[server endpoint] acked packet 33
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 38
[server endpoint] sending packet 38 without fragmentation
[server endpoint] processing packet 39
[server endpoint] process packet 39 successful
[server endpoint] acked packet 34
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 39
[server endpoint] sending packet 39 without fragmentation
[server endpoint] processing packet 40
[server endpoint] process packet 40 successful
[server endpoint] acked packet 35
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 40
[server endpoint] sending packet 40 without fragmentation
[server endpoint] processing packet 41
[server endpoint] process packet 41 successful
[server endpoint] acked packet 36
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 41
[server endpoint] sending packet 41 without fragmentation
[server endpoint] processing packet 42
[server endpoint] process packet 42 successful
[server endpoint] acked packet 37
server received connection payload packet from client 0
server sent connection keep alive packet to client 0
[server endpoint] sending packet 42
[server endpoint] sending packet 42 without fragmentation
[server endpoint] processing packet 43
[server endpoint] process packet 43 successful
[server endpoint] acked packet 38
server received connection payload packet from client 0
server received disconnect packet from client 0
server disconnected client 0
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address
ignored encrypted packet. no read packet key for this address

'''

That's what I saw when I connect from pure c++ client to my server.

I'm not sure what's wrong with the logs, but that's not a full output from a client with debug log level set. Something is wrong on your side.

If you post your whole cpp/h file with the integration into Unreal, as a gist, I can at least look at it and make some suggestions for you. For example, you are calling yojimbo_sleep inside an update function, you definitely don't want to do that inside unreal... there are other errors that may be in there.

You also don't need to call this:
	client->AdvanceTime(ti);

After you create the client. That's redundant. You also don't need to start ti = 100.0f, that's just something I do in the client.cpp test program because it catches a class of bugs that only show up when time is far away from 0.0.

Also, inside your Tick function, you are passing in a fixed tick of 0.1 seconds. Instead, what you want to do is to pass in the float f for the tick, which is the actual delta time from unreal engine. This is what client->AdvanceTime wants, the actual time that has passed since the last frame...

Your tick function should look like this:
void AphysxClientGameMode::Tick( float deltaTime )
{
	Super::Tick( deltaTime );
	JoinMessage * message = (JoinMessage*) client->CreateMessage( JOIN_MESSAGE );
	message->teamId = 1;
	client->SendMessage( 0, message );
	client->SendPackets();
	client->ReceivePackets();
	ti += deltaTime;
	client->AdvanceTime(ti);
}

I fixed the tick problem since yesterday.
here's the gist:
https://gist.github.com/shanyang/e6e400e71aa9aead494accf742c1b011

Here are my adjustments, nothing too significant:
https://gist.github.com/gafferongames/94fe2a6effcaf8dd9606a0c7295d8d99

What happens if you run this just by itself (without a server), what do you see?
Are you 100% certain that AphysxClientGameMode::StartPlay() is getting called?

I mean it almost seems to me like you haven't started the client, and the connection errors out (probably because the message send queue gets full...). this could explain why less logs are showing up than expected on the client. i dunno.

I'm pretty sure it's called. I'm trying to find a way to make Unreal output the log now.

Hi Glenn,
I find out that client->CreateMessage has an assert failure, seems that my message type defination has not been set correctly (the m_numTypes is a ridiculous number), any idea on this?

Have you registered a message factory via the adapter class? see shared.h
for an example
On Tue, Jun 27, 2017 at 11:48 PM, shanyang<EMAIL_ADDRESS>wrote:

Hi Glenn,
I find out that client->CreateMessage has an assert failure, seems that my
message type defination has not been set correctly (the m_numTypes is a
ridiculous number), any idea on this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/networkprotocol/yojimbo/issues/56#issuecomment-311572156,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAqhUFu6_0MYiEqRgMLpxNkyZmp9xo-kks5sIfc5gaJpZM4OFIrW
.

Think I did, here's my shared.h:
https://gist.github.com/shanyang/ba152bdbbd10b7ee218f36ed32ddca70

Yeah looks OK to me.

Can you please set a breakpoint and make sure that the StartPlay is actually getting called? Hunch.

Because if it's not, that would totally explain everything

I stepped debug once again, it looks fine.

OK. I'm out of ideas!

Try this
void AphysxClientGameMode::Tick( float deltaTime )
{
	Super::Tick( deltaTime );
	client->ReceivePackets();
        if ( client->IsConnected() )
        {
	        JoinMessage * message = (JoinMessage*) client->CreateMessage( JOIN_MESSAGE );
	        message->teamId = 1;
	        client->SendMessage( 0, message );
        }
	client->SendPackets();
	ti += deltaTime;
	client->AdvanceTime(ti);
}

Run through the debugger with a breakpoint at the start of Client::InsecureConnect, and at the start of client::CreateMessage, take a screenshot of the watch window with this pointer expanded. The errors you are seeing make no sense, and indicate objects that are not being properly constructed or initialized.

ps. Are you building in debug build? If not, you should be.

Yes, I built yojimbo in debug mode. I have to change build option: c/c++ -> code generation -> runtime to /MD ( instead of original /MTd I guess), or it cannot work with Unreal code.

And do you mean breakpoint at beginning of client::CreateMessage?

Yes, I want to see the state of the client object when connect is called, and when CreateMessage is called.

Can you just package up your project in a way that I could build it with Unreal to see what's going on. I figure this will be much faster than trying to remote debug like this.

Sorry, paid work has taken priority over this. I'm going to try to look at it this weekend for you. -- cheers

No problem, thanks.
2017-07-07 9:52 GMT+08:00 Glenn Fiedler<EMAIL_ADDRESS>
Sorry, paid work has taken priority over this. I'm going to try to look at
it this weekend for you. -- cheers
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/networkprotocol/yojimbo/issues/56#issuecomment-313565887,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEVddO42QGzgJPIFGgSYC7bcGOakC-Aqks5sLY9FgaJpZM4OFIrW
.

Hi Glenn,
How's the testing going?
2017-07-07 13:20 GMT+08:00 Shawn Yang<EMAIL_ADDRESS>
No problem, thanks.
2017-07-07 9:52 GMT+08:00 Glenn Fiedler<EMAIL_ADDRESS>
Sorry, paid work has taken priority over this. I'm going to try to look
at it this weekend for you. -- cheers
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/networkprotocol/yojimbo/issues/56#issuecomment-313565887,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEVddO42QGzgJPIFGgSYC7bcGOakC-Aqks5sLY9FgaJpZM4OFIrW
.

Sorry, I should have some time to look at this tomorrow. Been super busy lately.

Looking at this now

So far it looks like a stack overflow in Client::SendPackets, due to smaller stack size in UE4 projects potentially. However, it's strange that it is basically ignored... maybe something else unique to Unreal.

Definitely something strange going on...

Nope. False alarm, everything is working fine. I had screwed up the time = 100.0 in the client constructor, but had a global time starting at 0.0, so it messed up the client connection process. Once I fixed that, client connects perfectly to server first time.

Works for me
`#include "YojimboComponent.h"
#include <EngineGlobals.h>
#include <Runtime/Engine/Classes/Engine/Engine.h>
#include "C:/Users/Glenn Fiedler/Documents/Unreal Projects/YojimboTest/Yojimbo/yojimbo.h"
#include "C:/Users/Glenn Fiedler/Documents/Unreal Projects/YojimboTest/Yojimbo/shared.h"
using namespace yojimbo;
int yojimbo_printf_function( const char * format, ... )
{
char buffer[4*1024];
va_list args;
va_start( args, format );
vsprintf_s( buffer, format, args );
va_end( args );
int length = strlen( buffer );
if ( buffer[length-1] == '\n' )
{
buffer[length-1] = '\0';
}
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::White, UTF8_TO_TCHAR( buffer ) );
return 0;
}
UYojimboComponent::UYojimboComponent()
{
PrimaryComponentTick.bCanEverTick = true;
// ...

}
Client * client = NULL;
double clientTime = 0.0;
void UYojimboComponent::BeginPlay()
{
Super::BeginPlay();
yojimbo_log_level( YOJIMBO_LOG_LEVEL_DEBUG );

yojimbo_set_printf_function( yojimbo_printf_function );

InitializeYojimbo();

yojimbo_printf( YOJIMBO_LOG_LEVEL_INFO, "connecting client (insecure)\n" );

uint64_t clientId = 0;
random_bytes( (uint8_t*) &clientId, 8 );
printf( "client id is %.16" PRIx64 "\n", clientId );

ClientServerConfig config;

client = new Client( GetDefaultAllocator(), Address("<IP_ADDRESS>"), config, adapter, clientTime );

Address serverAddress( "<IP_ADDRESS>", ServerPort );

uint8_t privateKey[KeyBytes];
memset( privateKey, 0, KeyBytes );

client->InsecureConnect( privateKey, clientId, serverAddress );

}
void UYojimboComponent::TickComponent( float DeltaTime, ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction )
{
Super::TickComponent( DeltaTime, TickType, ThisTickFunction );
client->SendPackets();

client->ReceivePackets();

client->AdvanceTime( clientTime );

clientTime += DeltaTime;

}
`

OK, I will try, thanks.
2017-07-14 4:43 GMT+08:00 Glenn Fiedler<EMAIL_ADDRESS>
Works for me
`#include "YojimboComponent.h"
#include <EngineGlobals.h>
#include <Runtime/Engine/Classes/Engine/Engine.h>
#include "C:/Users/Glenn Fiedler/Documents/Unreal
Projects/YojimboTest/Yojimbo/yojimbo.h"
#include "C:/Users/Glenn Fiedler/Documents/Unreal
Projects/YojimboTest/Yojimbo/shared.h"
using namespace yojimbo;
int yojimbo_printf_function( const char * format, ... )
{
char buffer[4*1024];
va_list args;
va_start( args, format );
vsprintf_s( buffer, format, args );
va_end( args );
int length = strlen( buffer );
if ( buffer[length-1] == '\n' )
{
buffer[length-1] = '\0';
}
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::White, UTF8_TO_TCHAR(
buffer ) );
return 0;
}
UYojimboComponent::UYojimboComponent()
{
PrimaryComponentTick.bCanEverTick = true;
// ...
}
Client * client = NULL;
double clientTime = 0.0;
void UYojimboComponent::BeginPlay()
{
Super::BeginPlay();
yojimbo_log_level( YOJIMBO_LOG_LEVEL_DEBUG );
yojimbo_set_printf_function( yojimbo_printf_function );
InitializeYojimbo();
yojimbo_printf( YOJIMBO_LOG_LEVEL_INFO, "connecting client (insecure)\n" );
uint64_t clientId = 0;
random_bytes( (uint8_t*) &clientId, 8 );
printf( "client id is %.16" PRIx64 "\n", clientId );
ClientServerConfig config;
client = new Client( GetDefaultAllocator(), Address("<IP_ADDRESS>"), config, adapter, clientTime );
Address serverAddress( "<IP_ADDRESS>", ServerPort );
uint8_t privateKey[KeyBytes];
memset( privateKey, 0, KeyBytes );
client->InsecureConnect( privateKey, clientId, serverAddress );
}
void UYojimboComponent::TickComponent( float DeltaTime, ELevelTick
TickType, FActorComponentTickFunction * ThisTickFunction )
{
Super::TickComponent( DeltaTime, TickType, ThisTickFunction );
client->SendPackets();
client->ReceivePackets();
client->AdvanceTime( clientTime );
clientTime += DeltaTime;
}
`
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/networkprotocol/yojimbo/issues/56#issuecomment-315196224,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEVddIPoJ2n4uz65WFIdUELbtR6CSkciks5sNoFagaJpZM4OFIrW
.


Pull from Master

Once all current branches are closed, i think it's soon time to just pull off the band aid and pull from Wizden.   God help us all, this is going to be horrible

ok so IF i can get my laptop working in the next four days (i'm out of state) i'll be able to do this since i'll have nothing better to do
I DO NOT WANT TO THOUGH SO
PRAY MY LAPTOP BREAKS


Unable to load Items by name

Describe the bug
Names returns the right admin code but no geometries are returned using Items
To Reproduce
Pass United States, South Africa by name to Items no geometries are returned.
Will return geometries only by admin so USA and ZAF
Screenshots

Saudi Arabia is also missing

[ ] "Pakistan": "PAK",
[ ] "India": "IND",
[ ] "China": "CHN",
[ ] "United States": "USA",
[ ] "South Africa": "ZAF",
[ ] "Saudi Arabia": "SAU",
[ ] "Democratic republic of the congo": "COD",
[ ] "United Kingdom": "GBR",
[ ] "New Zealand": "NZL",
[ ] "Papua New Guinea": "PNG",
[ ] "Mexico": "MEX",
[ ] "Costa Rica": "CRI",
[ ] "Dominican Republic": "DOM",
[ ] "Sierra Leone": "SLE",
[ ] "Côte d'Ivoire": "CIV",
[ ] "Burkina Faso": "BFA",
[ ] "Equatorial Guinea": "GNQ",
[ ] "Central African Republic": "CAF",
[ ] "South Sudan": "SSD",
[ ] "Republic of the Congo": "COG",
[ ] "South Korea": "KOR",

I think the PR will close this issue. The remaining ones are conflicting as the name exist in multiple places on the planet. let's use another issue to add this feature.


[SPARK-43156][SPARK-43098][SQL] Extend scalar subquery count bug test with decorrelateInnerQuery disabled

What changes were proposed in this pull request?
Extend a test to test with both the DecorrelateInnerQuery framework on and off, since this came up in both https://github.com/apache/spark/pull/40865 and https://github.com/apache/spark/pull/40811.
Why are the changes needed?
Improve test coverage
Does this PR introduce any user-facing change?
No
How was this patch tested?
Test itself

@cloud-fan

Don't need to regenerate the golden file?

No need, test results are the same.

thanks, merging to master!


Linking to OpenSSL

@manhnt9 maybe you could help? Here's my question on SO describing current situation: https://stackoverflow.com/questions/55575025/linking-to-openssl-64-bit-static-library
I would be grateful if you'd recursivery clone my master (git clone --recurse-submodules ...), generate VS files with cmake, try to build it (preferably on Release config because Release openssl is being built) and see if the same happens. Maybe a fresh look can notice something I haven't...

I can assign this to my intern in this week, he has been practicing modern CMake based on my instructions recently and had a really nice project for that. He can report and discuss with me so I will help. Sorry that I don't use or maintain my Windows version often enough.

Thanks, but nvm - solved finally :)


Allow setting max characters limit

Hello, is there a way to set a maximum character limit for the RichText component? I couldn’t find any information in the documentation, nor could I find details on making the element controlled to implement my own logic.
Thanks!

Hey!
While this is not in our built it editor, this is possible with the (advanced setup)[https://10play.github.io/10tap-editor/docs/setup/advancedSetup] using tiptaps (Character Count)[https://tiptap.dev/docs/editor/api/extensions/character-count] extension. We have an example of this in the "Advanced" route in the app https://github.com/10play/10tap-editor/tree/main/example/src/Examples/Advanced
https://github.com/10play/10tap-editor/assets/36531255/16d425cd-75f0-4906-ba5d-d455faf4600d


[ISSUE#8961] Inject applicationModel into TripleHttp2Protocol by ScopeModelAware

What is the purpose of the change
Fixes #8961
Related to #8963
Brief changelog
Inject applicationModel into TripleHttp2Protocol by ScopeModelAware

Codecov Report

Merging #8984 (5665c8e) into 3.0 (403a989) will decrease coverage by 0.41%.
The diff coverage is 50.00%.

@@             Coverage Diff              @@
##                3.0    #8984      +/-   ##
============================================
- Coverage     63.71%   63.29%   -0.42%
+ Complexity      315      312       -3
============================================
  Files          1183     1183
  Lines         50270    50236      -34
  Branches       7525     7498      -27
============================================
- Hits          32029    31798     -231
- Misses        14747    14939     +192
- Partials       3494     3499       +5

Impacted Files
Coverage Δ

...he/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
94.44% <50.00%> (-5.56%)
:arrow_down:

...figcenter/file/FileSystemDynamicConfiguration.java
0.00% <0.00%> (-57.21%)
:arrow_down:

...fig/configcenter/TreePathDynamicConfiguration.java
60.00% <0.00%> (-25.72%)
:arrow_down:

...ng/transport/dispatcher/all/AllChannelHandler.java
82.75% <0.00%> (-13.80%)
:arrow_down:

...ache/dubbo/remoting/transport/AbstractChannel.java
75.00% <0.00%> (-12.50%)
:arrow_down:

...e/dubbo/remoting/transport/netty4/NettyClient.java
63.88% <0.00%> (-9.73%)
:arrow_down:

.../remoting/transport/netty4/NettyServerHandler.java
58.13% <0.00%> (-9.31%)
:arrow_down:

...e/dubbo/remoting/transport/netty/NettyChannel.java
52.27% <0.00%> (-7.96%)
:arrow_down:

...moting/transport/netty4/NettyEventLoopFactory.java
22.22% <0.00%> (-7.78%)
:arrow_down:

...mmon/threadpool/support/fixed/FixedThreadPool.java
80.00% <0.00%> (-7.50%)
:arrow_down:

... and 52 more

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 403a989...5665c8e. Read the comment docs.


Dead link to ADEChallengeData2016

Hello,
I need the dataset ADEChallengeData2016 but the link provided in download_ADE20K.sh doesn't seem to work, can you help me please ?
Thanks.

The link was fixed today.


proxy: refactor TestUpstreamHeadersUpdate and TestDownstreamHeadersUpdate

The author of the original issue #1329 has taken it back, saying it's not really necessary. I really appreciate you taking the time to prepare this pull request though. :) Is there some aspect of it you want to keep? I notice the tests seemed slimmed down a bit, which might be nice.

@mholt Ok. I have just reserved the commit you want.


fix(install): clean up collection after install

bump node-exist to v5.0.1 (to access packageCollection value)
add test to check if cleanup was successful
clean up install tests from old cruft

fixes #11

LGTM


snapchat object blank

Snapchat Object
(
[auth_token] =>
[username] =>
)
why its given me blank ?

This repo is outdated, use this one instead: https://github.com/mgp25/SC-API


Update module list

In the "weeks" tabs, the available modules should be updated because new modules were added: "Spinal cord module"

Which week ( week 1 to 4) should the INTRODUCTION TO SPINAL CORD MRI ANALYSIS  module be added? I was thinking of week 2 because this is where we introduce a lot of the introduction concepts.

Agreed!

I believe this was done in https://github.com/school-brainhack/school-brainhack.github.io/pull/322.


chore: update golangci

Fixes #N/A
Description
Address golangci warnings
How was this change tested?
make verify
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 77.614%

Totals

Change from base Build<PHONE_NUMBER>2:
0.01%

Covered Lines:
5641

Relevant Lines:
7268

💛  - Coveralls


fix 72

My only hesitation with this fix is how defining toString on this mixin will impact consuming applications. For example, if an app uses toString for introspection on a controller extending the QueryParams mixin, will it just return Parachute?
I tried toStringExtensions and that preserved the class output, so maybe I should define that: https://emberjs.com/api/ember/3.8/classes/CoreObject/methods/toString?anchor=toString

Im not a big fan of this either. Honestly, I say we just remove this altogether since NAME_KEY was used as a nice to have when debugging in the ember inspector.

@offirgolan agreed. Updated to remove.


Big simulation bug

While comparing JEMRIS with MRIsim using the exact same phantom and sequence, I found a weird simulation bug when I simulated with some TE's:

There was a ghost appearing that vanished as I decreased dt.

The error was due to an incorrect interpretation of the current simulation time, fixed in https://github.com/cncastillo/MRIsim.jl/commit/7cf187d4b35aa1943641d1fd3db2b0b189f9827


SPIKE: 3DS

Overview
Since we need to support 3DS verification, this is a for doing research and testing so we can know exactly what needs to happen for implementation.
Additional context
Questions to look into

Is Circle's 3DS support only in the Sandbox environment?
We need a success/error page for the user to return to upon successful verification or an error. What is needed for this?
How would the payment flow change?
Can we programmatically determine what countries require 3DS?
What countries require 3DS?

Still waiting to confirm if this is available in non-sandbox, but it seems we can implement this like the following:

Initiate payment as we do today, but set verification to three_d_secure (and the success/failure URLs accordingly).
Wait for status for the payment. If the status appears like the below example, then redirect from the checkout page to the 3D Secure page. Upon return, proceed with status checks and then continue with regular flow.

{
  data: {
    id: '<Redacted UUID>',
    type: 'payment',
    merchantId: '<Redacted UUID>',
    merchantWalletId: '<Redacted ID>',
    source: { id: '<Redacted UUID>', type: 'card' },
    description: 'Payment Test',
    amount: { amount: '5.66', currency: 'USD' },
    status: 'action_required',
    requiredAction: {
      type: 'three_d_secure_required',
      redirectUrl: 'https://web-sandbox.circle.com/v1/3ds/session/<Redacted UUID>'
    },
    refunds: [],
    createDate: '2021-11-30T18:07:28.852Z',
    updateDate: '2021-11-30T18:07:29.301067Z',
    metadata: { email: '<Redacted Email Address>' }
  }
}

If we encounter a failure in the 3D Secure flow (meaning we end up on the failure URL), then display a similar payment error message as we do today.
All of this also, probably, means we don't have to worry about which country the payment is originating from, Circle will direct us into the right flow as needed. Still waiting for confirmation on this part too.


[Snyk] Upgrade postcss from 8.4.24 to 8.4.31

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade postcss from 8.4.24 to 8.4.31.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 7 versions ahead of your current version.
The recommended version was released 2 months ago, on 2023-09-28.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

kultus-ui branch is deployed to platta: https://kultus-ui-pr299.dev.hel.ninja :rocket::rocket::rocket:


Moved a setCache instruction

Moved a setCache instruction, when going in the else clause of line 293 we didn't set imageData wich created an undefined cache element

@Faleidel Great work man! I'd never notice that, thanks for PR!


Adds github webhook to a new project for status

Summary

Creates a github webhook to a new project so we have a status webhook for Pull Requests

Screenshots

👍


add option to ignore domains that do not resolve to the IP being scanned

e.g. --check-dns.

maybe as well, --ip-whitelist to have a space-separated list of IP's that if not in this list, or the one supplied with the domains, that they will be ignored?

maybe have --ignore-remote also ignore domains that redirect to external sources as well?


feature: support to match IPv6 request.

fix #331.

IPv6 need supported by:

route
limit-* plugins
opentracing

IPv6 need supported by:

route
limit-* plugins
opentracing

this PR only support route first. will support other cases with seperate PR.


[tlt, dv] spi_device/pinmux sleep/retention test

Lots of firing assertions have been popping up due to Xs. These have been bypassed by disconnecting interfering signals accordingly.
The test now checks :

the pinmux (spi-dev) outputs are set to 1 when sleeping
the pinmux (spi-dev) outputs are set to 0 when sleeping
The core wakes up when driving a spi txn (toggling the CSB line)

A screenshot of the waves:

One can see how the core goes to sleep after setting IOA8=1 and wakes up when deasserting for steps 1 and 2.
Also for step 3) the core wakes up after the CSB line is set low (although just toggling it would be enough).

This resolves #17740

@engdoreis , @andreaskurth : I've addressed your feedback. Will resolve the comments once you're happy with the changes


Fix pylint astroid sanity issue

Cherrypick https://github.com/apache/incubator-mxnet/commit/18e2014004eb52e34db926d47202f1add5ff817f from #18220
Description
Refer https://github.com/apache/incubator-mxnet/pull/18269
Fixes sanity issue in 1.x [was previously fixed in 1.7.x, master]
@leezu @nickguletskii Plz review/merge. Thanks.

LGTM, thanks!

Reverting the python3 restriction since the CI for 1.x branch has been py3 only [removal of py2]

@mxnet-label-bot add [pr-awaiting-merge]


Stuck with invalid chain

Here's what I did: I used a bootstrap.dat.old file I found in my bitcoind folder to import using addblock. (The file did not have the same hash as the latest bootstrap.dat from BitcoinTalk.) Then I started btcd regularly.
Now I'm stuck with this:
12:12:32 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.8.5/)
12:12:32 2015-01-11 [INF] BMGR: Syncing to block height 338483 from peer <IP_ADDRESS>:8333
12:12:32 2015-01-11 [INF] BMGR: Downloading headers for blocks 291124 to 300255 from peer <IP_ADDRESS>:8333
12:12:39 2015-01-11 [WRN] BMGR: Received block header that does not properly connect to the chain from peer <IP_ADDRESS>:8333 -- disconnecting
12:12:39 2015-01-11 [INF] BMGR: Lost peer <IP_ADDRESS>:8333 (outbound)
12:12:39 2015-01-11 [WRN] BMGR: No sync peer candidates available

It keeps finding a new peer, downloading block headers, rejecting it and disconnecting from the peer. Probably something failed while importing that bootstrap file. The logs read something about a fork, I didn't pay much attention.
Is the only solution to start over completely?

Hmm, now it just stopped here
12:15:45 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.10.99/)
12:15:45 2015-01-11 [INF] BMGR: Syncing to block height 338479 from peer <IP_ADDRESS>:8333
12:15:45 2015-01-11 [INF] BMGR: Downloading headers for blocks 291124 to 300255 from peer <IP_ADDRESS>:8333
12:15:45 2015-01-11 [WRN] BMGR: Received block header that does not properly connect to the chain from peer <IP_ADDRESS>:8333 -- disconnecting
12:15:45 2015-01-11 [INF] BMGR: Lost peer <IP_ADDRESS>:8333 (outbound)
12:15:45 2015-01-11 [WRN] BMGR: No sync peer candidates available
12:15:45 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.9.3/)
12:15:45 2015-01-11 [INF] BMGR: Syncing to block height 338483 from peer <IP_ADDRESS>:8333
12:15:45 2015-01-11 [INF] BMGR: Downloading headers for blocks 291124 to 300255 from peer <IP_ADDRESS>:8333
12:16:19 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.9.3/)
12:16:22 2015-01-11 [INF] BMGR: New valid peer [2001:19f0:4009:1405::64]:8333 (outbound) (/Satoshi:0.9.3/)
12:17:13 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.9.3/)
12:17:13 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.8.6/)
12:18:11 2015-01-11 [INF] BMGR: New valid peer [2001:41d0:2:1d3::]:8333 (outbound) (/Satoshi:0.9.3/)
12:18:14 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.8.5/)
12:20:42 2015-01-11 [INF] BMGR: New valid peer <IP_ADDRESS>:8333 (outbound) (/Satoshi:0.9.3/)

Is that starting from zero?

I did a new import of the same bootstrap file, with this and the final log messages:
17:08:44 2015-01-11 [WRN] CHAN: fastAdd set in the side chain case?<PHONE_NUMBER>000000daf8a04181eec3cfcaf1178a1cf9cdf697e04f8ca3bd81fb

17:08:44 2015-01-11 [INF] CHAN: FORK: Block<PHONE_NUMBER>000000daf8a04181eec3cfcaf1178a1cf9cdf697e04f8ca3bd81fb forks the chain at height 291122/block<PHONE_NUMBER>000000ae2ef7067caa22ed67c4bd776ca9f5dc22e6a8737835cdae, but does not cause a reorganize
17:08:44 2015-01-11 [ERR] import file contains block<PHONE_NUMBER>000000daf8a04181eec3cfcaf1178a1cf9cdf697e04f8ca3bd81fb which does not link to the available block chain

I suppose I just have a faulty bootstrap file, right?

That is what it looks like.  In particular, it looks like your file has side chain blocks in it which is not valid for a linearized bootstrap.dat file.  The bootstrap.dat file that is available via bitcointalk always only has main chain blocks that are in order and that is what addblock expects.

I used serialize.py to generate a new bootstrap.dat from my bitcoind data folder. After using addblock again, this is what I get:
19:27:17 2015-01-11 [INF] Processed 4541 blocks in the last 10s (1834139 transactions, height 290021, 2014-03-11 11:57:36 +0100 CET)
19:27:20 2015-01-11 [WRN] BCDB: block<PHONE_NUMBER>000000daf8a04181eec3cfcaf1178a1cf9cdf697e04f8ca3bd81fb idx 291123 failed to spend tx 79817f42951cc6022dca3d47ab9f3914c75bb13c4916f72491342b364f67b0ed 1 err leveldb: not found
19:27:20 2015-01-11 [ERR] leveldb: not found

It got solved after using a self-generated bootstrap.dat file using serialize.py. Seemingly, bitcoind drops faulty bootstrap files every now and then :)


add button box-shadows and hover effects

Great work @zivl 👍
Thanks for contributing 😄
Hoping for more collaboration in future...

👍


Collecting links of conference resources

If you've written a blog post about the conference that you'd like to share with the rest of the community, please add a link in a comment below.
Also, speakers and workshop leaders, please add links to your slides if you would like.
Finally, please add a link to anything you worked on in the sprints.

Physical computing with Python and Raspberry Pi
The story of pyjokes

PyCon UK and Mailpile Mel - includes JPG of poster and Mailpile sprint results

http://digidivageek.blogspot.co.uk/2015/09/pycon-uk-2015.html :) Blog post

Cards Against Humanity Clone got part of the way there, being actively developed after the conference too!

Building SASS with Django and Airavata slides
Trans.tech directory (Yelp clone for LGBTQI-friendly companies - WIP) - Source on GitHub

Improving documentation / output of unittest sprint output

Blog post: http://www.software.ac.uk/blog/2015-09-29-event-research-software-engineers-starts-and-ends-bang-pycon-uk
Sprint code:
https://github.com/robertsawko/pyfd/
https://github.com/Axelrod-Python/Axelrod

Slides from my talk: Simplicity Is A Feature.

My slides: Gabbi: Declarative HTTP Test.
I also wrote a little summary of the first day.

personal perspective: https://drj11.wordpress.com/2015/09/20/return-to-pycon-uk/
brief notes on talks: https://drj11.wordpress.com/2015/09/23/talking-pycon-uk/
diversity: https://drj11.wordpress.com/2015/09/24/the-diverse-people-of-pycon-uk/
learning python: https://drj11.wordpress.com/2015/09/25/how-i-learnt-python/

My talk (Templating, Past, Present and Future) is here: https://github.com/Singletoned/templating_talk
It's reveal.js but if I work out how to convert it to PDF in a way that actually works, I will do so and add it there.

Talk slides: https://slidr.io/kitation/asking-about-gender-pyconuk-version#1
Blogpost: http://www.kitation.co.uk/2015/09/21/pycon-uk-2015.html

My slides and a short note about the conf: http://ianozsvald.com/2015/09/20/ship-data-science-products-at-pycon2015/

Blog post on my experience at PyCon.
Samathy on PyConUK

Tit for tat and the axelrod library

Slides
Screen recording
JuPyTer

My two lightning talks:

Jokes JuPyTer notebook
Moba heroes blog post

https://foobacca.github.io/foobacca-event-notes/PyConUK2015/index.html has notes from some talks, and links to lots of slides that were tweeted.

Slides from my talk, Managing Mocks: http://slides.com/helenst/managingmocks2015#/

Something I looked into http://wildfish.com/blog/2015/10/01/using-gabbi-and-hypothesis-test-django-apis/

Blog post from Raspberry Pi

Our sprint was to improve the documentation for unittest, because we had seen cases where assert errors talked in terms of expected/actual values, but it was not clear which argument (of assertEqual, etc) was which. Two of us had exprerienced this problem. As it turned out, we could not reproduce the offending messages. Some code archaeology (see James Cooke's Unittest documentation improvements) determined that this had been fixed a while back - order of the arguments in assert methods in unittest is no longer important (except in one deprecated method I'd never heard of). The solution is to upgrade our (obviously rather out-of-date) unittest or unittest2 packages. Whilst this was something of a "null" result, it is actually directly useful to both of us, so the sprint was worthwhile.

Please add slides for my talk.
Chromebooks in education - the next five years

Hey guys - please find my blog on my first PyCon! :) Keen to hear your thoughts - pop me a mail to discuss - abbie AT understandingrecruitment dot co dot uk
http://www.understandingrecruitment.co.uk/news/latest-news/abbie-goes-to-pyconuk

Slides for "Forming a PyCon UK research community":
https://docs.google.com/presentation/d/1kArOkVxgaoMAxQXveCrzU70XpKO4diZRiilNPqev28Q/edit?usp=sharing

Blog post on Django Girls:
http://blog.djangogirls.org/post/131219843343/django-girls-at-pycon-uk-coventry

Some casual writing:
http://pintant.cat/2015/10/22/pycon-uk-2015-very-good-again/


handle negative hashes

Currently we use get_highlight to pull the selected constant from IDA but this is an issue when the constant is negative. The negative sign is not highlighted in IDA so we don't grab it and misinterpret the constant as positive.

This can be handled elegantly in the disassembly by checking the operands at the selected address for both negative and positive values of the selected constant to determine which one to use... however this doesn't really work when the value is selected in the pseudocode window.
TLDR Issue
When we use get_highlight in the pseudocode window to select a constant how can we match that constant with the actual value in the IDA microcode/pseudocode representation? This is my lack of understanding of how to manipulate the pseudocode from python... example code would be much appreciated 🙏

So it seems like there is a much simpler way of figuring out if the value is negative (notice the invsign and negated keywords):

I know that some Python code is executed when displaying the popup, which probably means IDA also gets the information through a Python API? If so, then we just need to figure out what IDA does here.

add this function and replace all "parse_highlighted_value" with "extract_immediate_value":
def extract_immediate_value():
        # get instruction at mouse pos
        current_ea = idaapi.get_screen_ea()

        #get instruction operand
        insn = idaapi.insn_t()
        idaapi.decode_insn(insn, current_ea)
        for op in insn.ops:
            # check if immediate value
            if op.type == idaapi.o_imm:
                # get operand value
                imm_value = op.value
                #print("TEST: Operand is an immediate: {:#x}".format(imm_value))
                return imm_value
        #print("TEST: Operand is not an immediate")
        return None

add this function and replace all "parse_highlighted_value" with "extract_immediate_value":
def extract_immediate_value():
        # get instruction at mouse pos
        current_ea = idaapi.get_screen_ea()

        #get instruction operand
        insn = idaapi.insn_t()
        idaapi.decode_insn(insn, current_ea)
        for op in insn.ops:
            # check if immediate value
            if op.type == idaapi.o_imm:
                # get operand value
                imm_value = op.value
                #print("TEST: Operand is an immediate: {:#x}".format(imm_value))
                return imm_value
        #print("TEST: Operand is not an immediate")
        return None

The reason why we can't use this method is that we'd have to parse the microcode instead. The highlighted values could be optimized from multiple immediate values, they could also be registers, etc.

The reason why we can't use this method is that we'd have to parse the microcode instead. The highlighted values could be optimized from multiple immediate values, they could also be registers, etc.

it must be considered that the value of the hash is always a number and is taken from the disassembly window and not from the decompilated window where, on the other hand, there may be more immediate values. Could you please provide me with a particular use case that is not covered? Thanks.


NTRs: artificially induced biological processes

artificially induced biological process

Parent: 'material processing'
Definition: A material processing protocol in which a naturally-occurring biological process is artificially induced.

artificially induced depolarization

Parent: 'artificially induced biological process'
Definition: An artificially induced biological process performed on a biological entity (a cell) that results in a more-positive internal charge.

'artificially induced biological process' would become the parent of:

'artificially induced cell membrane lysis'
'artificially induced DNA repair'
'artificially induced methylation'
'artificially induced nucleic acid hybridization'
'artificially induced reverse transcription'

As discussed on OBI call:
'experimentally induced biological process'

A material processing in which a naturally-occurring biological process is produced by human beings rather than occurring naturally.

'experimentally induced cell depolarization'

An experimentally induced biological process performed on a cell that results in a change of the internal charge.

Any existing 'artificially induced X' terms should be renamed to 'experimentally induced X'.

Same as the other issue - @nsuvarnaiari will look into this.


⚠ SkipTheCommericals has degraded performance

In 90f0479, SkipTheCommericals ($STC) experienced degraded performance:

HTTP code: 200
Response time: 1716 ms

Resolved: SkipTheCommericals performance has improved in 23bdb7a.


Add Custom Properties Reference

Description
Reference for custom properties.

Type of change

New content (non-breaking change which adds functionality)

My bad, I had the format for anchor links wrong, pushed a fix to your branch.

My bad, I had the format for anchor links wrong, pushed a fix to your branch.

Gotcha. Couldn't preview due to what I pinged you with in Discord.


How to link ipv6 network ?

https://github.com/esp-rs/esp-idf-svc/blob/master/examples/mqtt_client_async.rs
This example can link to ipv4 MQTT URL, but can't link to ipv6 MQTT URL
Thanks !

Well, I think in the meantime I at least have some idea how that could work:
To talk ipv6 to services sitting on the internet (or in general outside of your link-local network) you have to do three things:
(a) Make sure that your ISP actually does assign you an ipv6 segment in the first place
(b) Make sure that your router actually does "speak" ipv6 and therefore the computers in your local LAN can use the ipv6 segment assigned to you by your ISP
(c) Enable CONFIG_LWIP_IPV6_AUTOCONFIG in your sdkconfig.defaults. Not sure if you need to call an API after that, or the SLAAC public IPv6 assignment on your Wifi happens "automagically", you need to check that.
(c) Possibly also call dhcp6_enable_stateless(netif); where netif is your wifi.sta_netif(), if you 1- do have dhcpv6 on your router 2- you want dns64 resolution with dns64 servers given to the ESP by the router. Note that - as per the ESP IDF documentation - ESP IDF does not really support what is called the "stateful" DHCPv6 (i.e. assigning an ipv6 address to the Esp which is picked up by the router; ESP-IDF uses SLAAC for this), but ESP IDF does support the statelsss aspect od dhcpv6 which is nothing else but a way for the Esp to get a list of dns64 dns servers that the router knows about, so that the name resolution of ipv6 servers on the internet works for the esp without any explicit dns64 configuration.
All of the above of course assumes that the C mqtt ESP IDF component does speak ipv6, which I haven't checked. But I doubt it doesn't.


ligjpeg-turbo: v7 and 8 abi compatibility

Add build-time flags as explained in the
BUILDING.md to build the library with v7 and v8 abi compatibility
In general the change is 100% backwards compatible, if someone wants to use these flags they can .override the enableJpeg7 or enableJpeg8 booleans
Format the expression with nixpkgs-fmt
Add myself as maintainer, this is a core library for a
software that I'll be uploading next

Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes

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

[x] Fits CONTRIBUTING.md.

Looks good to me; I requested one update to the comment (see above).

@nh2 I just added a build-time assertion as both flags cannot be added at the same time
From what I saw, there are three libjpeg implementations: libjpeg, mozjpeg and libjpeg-turbo.
The traditional implementation was libjpeg v6, v7 and v8 and it become the API "standard":

Then libjpeg-turbo added many features and improvements over time, but it required changing the API and it's currently incompatible with the libjpeg "standard" API.
Those flags allows people to compile the libjpeg-turbo backend but being compatible with the original API so applications that use the "standard" API can benefit from it


WIP: Jesse's mesh and solver

See #675
This PR should be merged using a merge commit, not squash-merged, to preserve the main steps in the history.

@jlchan You are working in a branch to dev right now, right? So there are no incoming changes to this branch right now, such that I can review it in peace & quiet over the next days? ;-)

@jlchan You are working in a branch to dev right now, right? So there are no incoming changes to this branch right now, such that I can review it in peace & quiet over the next days? ;-)

Hah! Yes, nothing's incoming to dev from me over the next few days. I don't think I can even push to dev directly, so it's sort of like a manual code freeze.

@sloede @ranocha what's the protocol for addressing code review comments? Do I push directly to dev or make a PR?

@sloede @ranocha what's the protocol for addressing code review comments? Can I push directly to dev or should I make a PR?

What we (I) usually recommend is the following:

if the comment is clear and the fix is unambiguous, just push it, acknowledge that it has been addressed, and close the conversation
if the comment is more a suggestion/question and you disagree and see the matter as resolved, just say so and close the conversation
in all other cases, feel free to push changes anytime and/or ask for clarification/feedback

IMHO this reduces the overhead for the PR owner to a minimum while making it easier for reviewers to see if the need to follow up. Ideally, all conversations are closed before a PR gets merged.
If you want to be super duper forthcoming, you can also paste the short git hash in the comment that acknowledges that something has been fixed/addressed in the code. We do that especially if it is a larger change or one that is not crystal clear regarding how to do it, such that the reviewers can quickly check what has been changed and how. But that's generally optional.

@sloede Thanks for the explanation! I can't seem to close conversations on this PR, however - maybe I don't have the proper permissions as a collaborator?

@sloede Thanks for the explanation! I can't seem to close conversations on this PR, however - maybe I don't have the proper permissions as a collaborator?

Sorry, that should be fixed now. I added you to the list of Trixi developers with write access.

In general I noticed that many lines have trailing whitespace... What editor are you using? At least VS Code gives the option to remove trailing whitespace automatically, as far as I know.

I'm using VSCode - just found the "remove trailing whitespace upon saving" option. Hopefully that makes things cleaner in future commits.

This part of the greater effort of adding the new solver & mesh to Trixi looks ok to me now! Thanks for all the work @jlchan!
One key modification that is still missing is to add your name to the list of contributors in AUTHORS.md!

Thank you for all the time you spent reviewing!

Looks like all the tests finally pass except for the codecov/patch test (which I'm not sure why it's failing).
Apart from this, are there any other outstanding issues to address in this PR? I was thinking about adding a convenience constructor for DGMulti, but that can also be done in a future PR.

I have been running some code and found a couple of additional things that would be great to have. I added them to the list in the first post of this PR to make them easier to find & track.

Some open issues that come to my mind are
* naming issues (mesh, solver, examples, tests)

* update of codecov settings (see one of the first comments)

* some things mentioned already somewhere and updated in your new PR

I expect that the code will change a bit, at least because of the naming issue. Thus, I think it might be better to
* finish & merge your next PR first

* polish this one afterwards

* merge it after our tutorial on Trixi.jl at ICOSAHOM (next week)

if that's okay for you

Sounds like a good plan. I'll clean things up here then get https://github.com/trixi-framework/Trixi.jl/pull/695 ready to merge into dev

@ranocha turns out calc_boundary_flux just allocates due to https://github.com/JuliaLang/julia/issues/36313. Fixed with Base.ReshapedArray.

@jlchan: We are sorry that it takes so long to merge your nice new solvers/meshes into Trixi. @sloede and I think that the best way forward is as follows.

We close this PR.
You open a new PR from dev to main.
@sloede will review your PR #695 as soon as he finds enough time to do so.
We merge #695 into dev.
We review your new PR again.
We merge your new PR.

This procedure ensures that

GitHub gives you the credit for all your nice work correctly
we get rid of ca. 100 resolved comments which makes it easier to review your new PR

Would that be okay for you?

@ranocha @sloede no problem at all (the comments have been very helpful) and your proposal sounds great. Is there anything I need to do on my side to prepare?
I'm still camping for two more days, so no rush on these actions.

Is there anything I need to do on my side to prepare?

No. I will just close this PR now and you can open a new PR from dev into main whenever it's convenient for you.


support Mac OS X

hi, @delba :
Thanks for sharing TextAttributes
do you have plan to support Mac OS X?
thanks

Hi @NilStack,
Thanks for issue.
I won't consider TextAttributes to be complete without the support for OSX. So it's definitely on the roadmap!
Unfortunately it's a bit trickier / time consuming than some might think: there is more than just aliasing UIFont and NSFont to Font...
I'm gonna work on it this weekend but don't hold your breath ;)
Also, pull requests are welcome as always :)

@NilStack I added the support for OSX on the next branch.
Could you please check it out and report any bug please?

@delba Thanks! I'm going to use it in my current project. Thanks for so quick response!


Inventory#query(Object[]) returns an empty inventory every time

Code:
player.getInventory().query(ItemTypes.STICK, ItemStack.of(ItemTypes.BLAZE_ROD, 5))

Inventory contains a stick and a stack of five blaze rods.
The returned Inventory is empty.
SpongeVanilla 1.11.2-6.1.0-BETA-11

A quick note: I decided to have the method ignore the stack size. Let me know if it should be changed.

I think there should be two methods, one for each behavior, just like the current ItemStack query methods.

@pie-flavor I have updated the behavior for API versions 6 and 7. I haven't changed API 5 because it uses a stack size of -1 to specify that the stack size should be ignored.

No, queryAny is bad and I can't believe you added this without discussing it.

I mean.
Your thinking:
Identified problem
The semantics of query always imply an AND operator between operands.
Solution
Add an inconsistent way to imply an OR query, but don't call it OR.

Why the hell wouldn't you - for example - introduce a new query operand which acts as a combinator:
someInventory.query(Combinator.or(fistoperand, secondoperand))
This is half-baked, inconsistent, and needs to be removed ASAP. Fortunately, the half-bakedness continues to the implementation where you didn't test your build before you pushed the code, meaning it's broken.
You need to revert these changes.

To be clear, the changes to the strategy are fine and I approve.

@Mumfrey Reverted.

Thankyou. I see that there's another queryAny which was added by @Faithcaio previously which I'm not desperately happy about either but it's been there too long to change. We should probably remove it in API 7.
Propose some better combinatorial approaches and we can discuss them.

The queryAny I added was to query ItemStacks of any size as it was no longer possible to created -1 sized stacks.

just leaving this here:
query(Predicate...)

@Mumfrey That was... an explosion, to say the least. How would you recommend we go about adding support for both querying including stack size, and querying ignoring it?


Ignore fragments option / fragments included in query object

It would be great if there was an option to ignore fragments/prevent fragments from triggering a route change. We aren't using a hashbang scheme for our app, but we have links that are required to go to different anchors on the page.
For example, if I am on the main page of our app (/app/home) and click on an anchor that is supposed to scroll the user further down the page (/app/home#search), the route changes, which we don't actually want.
Fragments are also included in the query object, which they shouldn't be.
/app/search?q=Blah&type=documents#search
Query object:
{
    'q': 'Blah',
    'type': 'documents#search'
}

@struct78 there is already a javascript api for this feature https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams why should the riot router provide a non standard way of doing it?

@GianlucaGuarini Not sure how that's relevant to my query? What I'm asking is, is it possible to include an option that prevents riot route from triggering a route change when a URL fragment is added or changed. I don't particularly care about fragments being included in the query object

@struct78 ah ok sorry I got it wrong :)

@struct78 the route.query() was designed to handle a url like this:
/app/search#search?q=Blah&type=documents

not like this:
/app/search?q=Blah&type=documents#search

But it should be able to handle the latter one, I think. We can simply change the RegExp on this line:
https://github.com/riot/route/blob/f1bd42223963f9170cfd60045ca5824cb0f0f17f/src/index.js#L305

Closing this issue because it's related to an old router version. Please update to the latest @riotjs/route version if you can.