Force close transaction in mempool not seen by LND

Background
An LND node got a channel with Eclair node which was force-closed by Eclair due to fee difference. The close transaction is in the mempool (yes, also in mempool of the node LND is connected to) and Eclair reports the channel as closing while LND doesn't see it and only reports being not active.
Your environment

version of lnd 0.13.1
which operating system (uname -a on *Nix) Debian 10, x86_64
version of btcd, bitcoind, or other backend 0.21.1
any other relevant environment details

Steps to reproduce

Open a channel from LND with Eclair (non-anchors)
Transfer some sats to the other side
Cause force-close from Eclair
Check Eclair status - see it as Closing
Get TXID of closing transaction and check mempool of node which LND uses
Check status in LND (listchannels, pendingchannels or use ThunderHub UI)

Expected behaviour
LND reports the status as closing
Actual behaviour
LND reports status as "active": false
Note
I do realize that maybe this it is intentional to not report it as closing because it's not guaranteed the transaction confirms but just "active": false sounds like missing important information ("will most likely be closed"). So if this indeed is intentional I propose adding the information somehow.

lnd doesn't detect things at closed until it hits the chain. We don't look at the mempool as that's no guarantee w.r.t what will eventually confirm. If we record TXID X as the closing TXID, start to write state to act upon that, but then TXID Y confirms, we need to roll that back which complicates the logic. Also clients like neutrino aren't aware of the mempool at all, so we're able to have a consistent interface across everything by never actually looking at the mempool.

If lnd was the one that force closed, then we would show it as "closing" since we were the one that broadcasted it.
I'm curious to learn why a free disagreement cased the force close in the first place though, perhaps lets open another issue to investigate that?

Sure, that's what I thought. Would it be reasonable to add something like "maybe closing" indicator so that users know there's something going on and LND functions properly even though nothing is guaranteed?
Fee disagreement is classical pre-anchors problem when fees spike. Eclair doesn't support anchors yet (should in next release) that's the issue.

Would it be reasonable to add something like "maybe closing" indicator so that users know there's something going on and LND functions properly even though nothing is guaranteed?

The issue is that we don't know that things are actually closing, since it's possible the other peer just isn't available anymore. I think the new warning message w/ structured errors (https://github.com/lightningnetwork/lnd/pull/5560) will help here, as then the remote party can send a message saying "just letting you know, I broadcasted a transaction".


Create a protobuf for a new privileged API on SPIRE Agent

Pursuant to https://github.com/spiffe/spire/issues/2246, we need a new API for privileged platform components to interact with SPIRE Agent for the purpose of delegated SVID management.
There are many possible shapes here, and given the use cases I've seen before I can think of at least a few. That said, there is one immediate need that is clear. I suggest we start with just one or two RPCs, the minimum to meet the use case at hand, knowing that we will likely add more RPCs in the future as additional integration work arises.

Ok yes ... this is all sounding very good! I have some further thoughts on the selector values to use (perhaps a combination of the selectors generated by k8s attestor and custom cillium selectors?) but that can be discussed later.
So in terms of the protobuf message you pasted, what do you think of this?
message X509SVIDRequest {
    // A reference to the workload for which you need an SVID.
    oneof reference {
        // PID of the workload you're interested in
        int32 pid = 1;

        // Selectors describing the workload you're interested in
        repeated string selector = 2;
    }
}

At any rate, I think this will be best further discussed over PR. Mind sending one with the full proto and we can review there? Also paging @azdagron in case he has any thoughts on api shape here

The selectors field there will operate more or less as a replacement for selectors we'd normally obtain via workload attestation? i.e. we'd match entries whose selectors represented a subset of those provided in the request?

        repeated string selector = 2;

I have the same question as @azdagron, are these selectors the same as the generated by the attestation plugins?

Short answer: yes I think we take the selectors and match against entries the same way we do during workload attestation
Long answer: I have been thinking about all this, from a conceptual standpoint... and what I have arrived at is this:
If a privileged caller is providing selectors, then we are effectively delegating workload attestation to it. Instead of exercising workload attestation, wherein selectors describing the workload are discovered, we have a caller who is saying "I know the selectors for the workload I represent, and here they are". So in some ways, the caller of this RPC is acting as a special kind of workload attestor. In the end, we trust this caller to faithfully apply or issue the SVID (similar to the way that we trust a workload attestor to faithfully provide selectors).
With that understood, we can see that this caller can provide any selectors they want, without restriction. This means they can provide selectors that are the same as that produced by workload attestor plugins, or selectors that are different and/or dedicated to the integration, or both of those things. They have different effects.
For a concrete example. Suppose cilium-agent provides the following two selectors as part of its request:

k8s:pod-uid:1234abc
cilium:pod-uid:1234abc

This arrangement allows the user to register a pod using the k8s selector, and in this case cilium can get an SVID for the pod, and so can workloads inside the pod because they will also match the k8s selectors when attested. This can be desirable when you have application-layer logic that needs keys or SVIDs (e.g. JWT-SVID). Conversely, if the user registers a pod using the Cilium-specific selector, then they can prevent the workload itself from retrieving the SVID but still ensure that Cilium receives it. This can be desirable in high security environments where you don't want the workload receiving private keys.
@mauriciovasquezbernal please find below to links for reference. SPIRE Agent internals have a cache with subscription mechanism. You can subscribe using a set of selectors, where you will be sent any registration entries that have a subset of the selectors you provided. This is how workload attestation works - we get a bunch of selectors from the attestors, the full set of selectors describes a single caller or workload, and we subscribe that caller to the cache using the full set.
https://github.com/spiffe/spire/blob/main/pkg/agent/manager/cache/cache.go#L202
https://github.com/spiffe/spire/blob/main/pkg/agent/manager/manager.go#L40-L42
Hopefully this all makes sense 😅

That jives with me! Thanks for taking the time to spell that out, @evan2645. It does limit the registration entries that cilium can reach to those that only contain selectors that cilium knows how to produce instead of any arbitrary registration entry that might otherwise be applied to the workload had it been directly attested, but that limitation seems reasonable?

Your idea @evan2645 is different than the one I was thinking about as it requires the user to create the registration entries with the same selectors that cilium agent uses for retrieving them. This case doesn't use the k8s workload attestor at all but it's the privileged client (cilium-agent) who specifies the selectors to use.
Let me try to explain one use case that I think we can't support by using this approach. Let's suppose a user wants to create a policy that allows all pods running an ubuntu image to communicate with all pods running a debian image.
First of all the user would define two registration entries:
$ spire-server entry create \
    -spiffeID spiffe://example.org/myubuntupods \
    -selector k8s:pod-image:ubuntu:latest

$ spire-server entry create \
    -spiffeID spiffe://example.org/mydebianpods \
    -selector k8s:pod-image:debian:latest

Then the user specifies a cilium network policy like:
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "image-based"
spec:
  endpointSelector:
    matchLabels:
      spiffe://example.org/myubuntupods: ""
  egress:
  - toEndpoints:
    - matchLabels:
        spiffe://example.org/mydebainpods: ""

And that's all.
I think using the k8s attestator plugin is the key point what would allow us to support use cases as the above, as it's the one with all the logic to generate the different selectors. The k8s workload attestor would allow the cilium agent to ask "who is this pod?" without relying in any specific registration entries. It'd also allow the user to create them without taking into consideration how cilium performs the request.
I'm happy to know what you think of this use case and if you see any possibility to support it with your idea.

Let me also share one possible idea for the implementation/API. (Please be kind, I know changing interfaces around is not nice but I don't have other ideas :D ).
I think we can make the request message of this API generic:
// Credentials of the workload to attestate.
message Credentials {
   string type = 1;
   string value = 2;
}

message X509SVIDRequest {
   Credentials credentials = 1;
}

type is workload credential type: pid, pod_uid or container_uid. The core of SPIRE is not aware of them. Only workload attestator plugins care about them, i.e, more credentials types can be supported by new workload attestation plugins without any change to the core of SPIRE.
We extend/change the AttestRequest message to include such credentials. Then each attestation plugin should check if it supports the type of credential, if it does it performs the attestation and returns the selectors, otherwise it returns no selectors.
For instance, pid type is supported by the unix, docker and k8s attestation plugins, container_uid by docker and k8s and pod_uid only by the k8s one. This should be extensible and new types could be supported by other attestation plugins in the future if needed.
If we are worried about performance of using strings (between SPIRE and the attestation plugins) we can make an exception for pid, the AttestRequest message could be something like:
/** Represents the workload to attest.*/
message AttestRequest {
    /** Workload PID */
    int32 pid = 1;
   /** workload credentials */
   optional Credentials credentials = 2;
}

Also, if we want to be less intrusive we could even define a new rpc for the WorkloadAttestor service without touching the current Attest one.
message AttestByCredentialsRequest {
   Credentials credentials = 1;
}
rpc AttestByCredentials(AttestByCredentialsRequest) returns (AttestByCredentialsResponse);

Does it make sense at all?

Let me try to explain one use case that I think we can't support by using this approach. Let's suppose a user wants to create a policy that allows all pods running an ubuntu image to communicate with all pods running a debian image.
First of all the user would define two registration entries:

I think that what I was proposing will work for this use case, as cilium-agent can send the k8s:pod-image selector as part of its API call, and it should be in a position to generate this (and all other k8s selectors) because it has access to the pod spec? I'm pretty sure it would work exactly as you described in this example.
The one caveat is that we could not support non-k8s selectors (as SPIRE gets these from places other than pod spec and cilium-agent probably won't have a way to discover them).

I think using the k8s attestator plugin is the key point what would allow us to support use cases as the above, as it's the one with all the logic to generate the different selectors.

Most of the logic inside k8s workload attestor is around finding the right pod spec in the kubelet. The logic to parse the pod spec and generate selectors from it (once we find the right one) is relatively simple.
I do think that it is a little weird to couple the cilium integration to the k8s selectors in this way, and if the k8s workload attestor ever grew support for additional selectors, cilium would have to also explicitly grow support for them. That said, we have kind of similar coupling right now with the k8s-workload-registrar and we haven't had many problems there in practice.

We extend/change the AttestRequest message to include such credentials. Then each attestation plugin should check if it supports the type of credential, if it does it performs the attestation and returns the selectors, otherwise it returns no selectors.
For instance, pid type is supported by the unix, docker and k8s attestation plugins, container_uid by docker and k8s and pod_uid only by the k8s one. This should be extensible and new types could be supported by other attestation plugins in the future if needed.

Hmm ok, I will think about this one. It will be very disruptive, and a pretty fundamental shift on the workload attestation subsystem. I would envision this kind of thing like a "workload reference" (rather than credentials which suggests use of some secret value), where PID is one way to reference a workload. Shaking this up will probably take some time to think through it, discuss the changes, get everyone comfortable etc... lots of compatibility questions and related implications would likely make this route less desirable than one that works well with the current model and interfaces
Since we use PID as workload reference already, a PID-based lookup against the privileged API would be straightforward, and would also solve the caveat described above (allowing users to set any k8s or non-k8s selectors they want, and cilium can avoid having to know about these selectors). But I understand that PID may be difficult for cilium to get.

Most of the logic inside k8s workload attestor is around finding the right pod spec in the kubelet. The logic to parse the pod spec and generate selectors from it (once we find the right one) is relatively simple.

🤔 maybe one possibility here is we can export this logic to you via go package and share it ... pod spec goes in, selectors come out. That way staying up-to-date should be low touch and things will be more or less consistent.
I have been thinking more too about the workload reference stuff. If the reference is pod uid, then the only workload attestor that can make use of this is k8s workload attestor ... so with this reference, we'd still be limited to k8s only selectors ... another problem is that the k8s workload attestor knows how to find the specific container in the pod that is calling ... and this would be lost with pod uid reference. So we would need specific logic inside the k8s attestor to skip this part, and we'd have one set of selectors we get with regular workload attestation, and a subset of those only when referenced by pod uid.

Sorry for the delay, I was away last week.

I think that what I was proposing will work for this use case, as cilium-agent can send the k8s:pod-image selector as part of its API call

Oh yes, I missed it from your idea, it can work.

Since we use PID as workload reference already, a PID-based lookup against the privileged API would be straightforward, and would also solve the caveat described above (allowing users to set any k8s or non-k8s selectors they want, and cilium can avoid having to know about these selectors). But I understand that PID may be difficult for cilium to get.

Unfortunately getting the Pod's PID from the PodSpec is a PITA, otherwise we could go for the PID-based one.

:thinking: maybe one possibility here is we can export this logic to you via go package and share it ... pod spec goes in, selectors come out. That way staying up-to-date should be low touch and things will be more or less consistent.

It's a good idea, just a dependency update should be enough in case there are changes in SPIRE.

another problem is that the k8s workload attestor knows how to find the specific container in the pod that is calling ... and this would be lost with pod uid reference

We could have both, attesting by container UID and pod UID, it's up to the caller to use the right one.
I'm fine with going with the selectors idea if you think this solution is generic enough and other users could benefit from it.
Said that, we should remove the PID from the request message. The PID should be part of a different rpc as the logic is a bit different in both cases, i.e, when the PID is provided the SPIRE workload attestation plugins will be used, when the selectors are provided they won't be used.
What about something like?
message X509SVIDRequest {
    // Selectors describing the workload you're interested in
    repeated string selector = 1;
}

Unfortunately getting the Pod's PID from the PodSpec is a PITA, otherwise we could go for the PID-based one.

Yes ... I know how hard it can be 😆 we have spent a lot of time in SPIRE not only figuring this out, but also how to do it securely... In fact, the more I think about it, the more I feel that PID is a bad idea for external caller.

It's a good idea, just a dependency update should be enough in case there are changes in SPIRE.
...
I'm fine with going with the selectors idea if you think this solution is generic enough and other users could benefit from it.

Ok, awesome. If this works for you, I think it is the best balance... with emphasis on making sure it works for you :)

Said that, we should remove the PID from the request message.

Yea.. I don't think we should implement that right now. I worry about security-sensitive races there. SPIRE implements some non-trivial code to prevent this kind of thing, and to do PID safely, the caller of the privileged API would need to implement this safety code as well.

What about something like?

Yes I think this makes sense. @azdagron may have some thoughts about RPC and message naming, but from a shape and behavior standpoint, this is looking good! I think we are ready to take a PR here with the new proto ... once it is merged, we can bump the SPIRE dependency and begin work on the implementation. I am happy to carve out some issues for that work if it is a help to you.

Happy to discuss the RPC and message names in the PR. Might be easier then, seeing the whole thing together instead of in bits and pieces :)

with emphasis on making sure it works for you :)

I'll try to prototype this quickly to see if I hit any unexpected issue.

I think we are ready to take a PR here with the new proto

Will do.

I am happy to carve out some issues for that work if it is a help to you

Yes, I think those will help me to organize this work, thanks!


Types of some array functions in the docs are incorrect

Aim
Looking through the array docs: https://noir-lang.org/docs/noir/syntax/data_types/arrays/#sort
Expected Behavior
Each function to have the correct type
Bug
map, fold, reduce, all, and any are missing their self parameters.
Other functions before them also use a more explicit array: [T; N] over self. This is nice since you can see the object type which you can't with self, but confusing because it makes them look like free functions rather than methods. We should decide on a way to distinguish methods from functions in the docs.
To Reproduce

Installation Method
None
Nargo Version
No response
Additional Context
No response
Would you like to submit a PR for this Issue?
No
Support Needs
No response

Probably worth holding off on this and doing as part of the code snippets refactor.

@TomAFrench My impression was that the code snippets refactor was just related to code snippets compared to this which concerns the pseudo-code of function declarations. The syntax is also correct here, the main issue is some of these functions aren't listing their self parameters.


Keyboard shortcuts stop working until Thunderbird is restarted

With a recent Thunderbird update (I'm using Thunderbird 52.8.0 (64-bit) on macOS 10.12.6) the nostalgy keyboard shortcuts stop working after a while, and will not function again until Thunderbird is restarted. This is actually a long-standing bug, but it used to happen infrequently. Now it happens daily.

This is still an issue on Thunderbird 60.3.3 (64-bit) and macOS 10.14.2.

@PatonLewis Do you still experience this issue with Nostalgy 0.3 on Thunderbird 68?

I've been using opto's fork with TB68, and haven't seen the problem yet with that forked version.

@PatonLewis Could you please try if the issue is also resolved in the version from Thunderbird Add-ons (which should contains opto's fix): https://addons.thunderbird.net/thunderbird/addon/nostalgy/

@caugner 26 hours so far, and no problems yet.

Thank you, that sounds good.
I will close the issue for now, but don't hesitate to comment if the problem persists, and we'll reopen it.


5.7.0: Failing to detect extensionless imports in some TS configurations.

Switching from knip 5.6.1 to 5.7.0, extension-less imports in TS files seem to not be followed correctly (this depends quite heavily on the TS config too 😕)
Minimal repro
With knip 5.6.1, packages/shared/src/foo.ts is not reported (it is imported in index.ts through export * from "./foo"). With knip 5.7.0 (and the few above I've tried, up to 5.17.4), it is (incorrectly) reported.
This has quite some unstability with what's in the tsconfig.json. Notably, with the default ones, there was no problem (and at least "module": "commonjs" is needed). I've copied my full (small) config in the minimal repro to trigger the problem.
(the .d.ts are also reported, but that's unrelated, I assume due to them not being .gitignored or similar)
Adding the extension to the export with export * from "./foo.ts" clears up the knip report. So it seems knip perfectly finds the file, but in this specific TS config does not follow extensionless import / export.
Using import { x } from "./foo" (and re-exporting the constant later) (instead of immediate re-export) still incorrectly lists foo.ts as unused.

Thanks for the report, but I don't seem to be able to access the repro.

Sorry. I've fixed the permissions (hopefully…)
(I don't know much about codesandbox, but is it possible to have the links from knip's doc to pre-include most of the needed sharing options?)

I'm seeing both foo.js and foo.ts in the same directory, is that intentional?

Ah 💡 So you're saying that export * from "./foo" resolves as foo.js and thus considers foo.ts as ignored?
It is indeed my setup to keep everything in the same directory. This is for a library building and npm publish takes care of only bundling the *.js and *.d.ts files, so I don't need a separate dist directory.

Ah 💡 So you're saying that export * from "./foo" resolves as foo.js and thus considers foo.ts as ignored?

Yeah, module resolution can only resolve to a single file, so the other will be ignored. There was a refactoring in module resolution, which was breaking for you for this reason.

It is indeed my setup to keep everything in the same directory. This is for a library building and npm publish takes care of only bundling the *.js and *.d.ts files, so I don't need a separate dist directory.

This is not common afaic, might be confusing for consumers of your lib. I would recommend to separate source and build/distribution artifacts.
Either way, it confuses Knip as it wants only source files. It supports both JS and TS so what's truth here?

🤔 At least I understand where the problem comes from and why it's messy (modules resolutionS in JS is 🙄).
Maybe it is indeed time for a long overdue overhaul of my library structure… The setup form 2017 might not make that much sense now 😖

Let's blame TypeScript for not setting the default value of outDir to e.g. ./dist/ :)
Going to close this one as "wontfix" or "invalid".


Suggestion for Information Security course: update helmet to v5

When following throughout this course on freeCodeCamp, I noticed that the boilerplate challenges use helmet v3. I suggest to update the curriculum to use helmet v5 as I found out the older version has some security issues.
And one of them is about setting the X-XSS-Protection HTTP header. In helmet v3, using helmet.xssFilter() will set the header to X-XSS-Protection: 1; mode=block. This enables browsers' buggy cross-site scripting filter. Meanwhile in v5, it will set X-XSS-Protection: 0 by default.
Affected page

freeCodeCamp's X-XSS-Protection challenge

Expected behavior

Using helmet.xssfilter() middleware set the X-XSS-Protection header to 0.

Additional context

MDN Documentation on X-XSS-Protection
HelmetJS' discussion on X-XSS-Protection
Community discussion on X-XSS-Protection

We have had a lot of discussion re: whether to continually update the curriculum to keep up with package updates.
The challenges here are:

The entire block would need to be updated to reflect any breaking changes
The certification projects would need to be updated to expect + test the latest version.

I'm in agreement with Tom here. I'd be in favour of closing this and continuing to focus our efforts on the redesigned curriculum.


Refactor vLLM guide

Use uncompressed conda environment to reduce time to conda-pack and to reduce need for Triton to unpack (from Ryan McCormick's testing, this shrinks the model load time from 170 seconds to 13 seconds).
Remove unnecessary Nsight Systems files from conda environment
Use one container for steps 1 and 2 for simplicity (script will now check if step 1 is complete and exit if so)

Tested locally.
If step 1 is re-run:

After following steps:

Nice improvements! I'm seeing ~16mins for ./gen_llm_env.sh which is OK, but I'm looking into a quick idea on the side,
Otherwise, after env is generated I'm seeing ~30 seconds for first serving of model repository (to download opt model), and ~12 seconds for subsequent server startups after model has already been downloaded. This is a significant improvement to UX!

@tanmayv25 Would you be able to merge this? I will create a separate PR for moving to pip, if successful. I would like to keep these changes modular to make it easier to use the Conda version in the future, if necessary.


Confusing mask result for dynamic objects

Hi,
Thanks for the great work!
I'm a bit confused by the flow and flow mask for: ocean/Easy/P012/image_left/000367_left.png
The mask doesn't seem like it's correctly highlighting the dynamic object.
Im0

Im1

Flow

Warp of Im1 to Im0 through Flow

Mask == 1

Mask == 10

Mask == 100

Also, would it be possible to get a pointer to the mask generation code?
Thanks!
Charles

+1 to @irwinherrmann's comment. This seems like a hard problem to me unless there is flow available from the rendering engine itself as discussed here. I was wondering if you can provide insights on which environments have dynamic objects and which don't. Also the paper talks about an ablation in Table V where you turn off dynamic objects. I wonder if such a version of the dataset can be made available if it is hard to reliably mask out dynamic objects. Thanks again for this amazing work!


codegen failing, without any errors

Which packages are impacted by your issue?
@graphql-codegen/cli
Describe the bug
Trying to run codegen with the following config:
import type { CodegenConfig } from '@graphql-codegen/cli'

const config: CodegenConfig = {
  schema: 'http://localhost:8000/graphql/',
  documents: ['app/**/*.tsx'],
  generates: {
    './app/lib/graphql/_generated/': {
      preset: 'client',
      plugins: [],
    },
  },
  overwrite: true
}

export default config

This fails on my local server:
$ graphql-codegen
✔ Parse Configuration
❯ Generate outputs
  ❯ Generate to ./app/lib/graphql/_generated/
    ⠋ Load GraphQL schemas
    ◼ Load GraphQL documents
    ◼ Generate
@graphql-tools/load: normalizePointers [object Object]: 0.048ms
@graphql-tools/load: normalizePointers: 0.389ms
@graphql-tools/load: collectDocumentString http://localhost:8000/graphql/: 0.274ms
@graphql-tools/load: collectSources http://localhost:8000/graphql/: 0.4ms
TypeError: fetch failed
    at Object.processResponse (/Users/rohan/Work/blabla/node_modules/undici/lib/fetch/index.js:198:23)
    at /Users/rohan/Work/blabla/node_modules/undici/lib/fetch/index.js:929:38
    at node:internal/process/task_queues:141:7
    at AsyncResource.runInAsyncScope (node:async_hooks:201:9)
    at AsyncResource.runMicrotask (node:internal/process/task_queues:138:8)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  message: 'fetch failed to http://localhost:8000/graphql/',
  path: undefined,
  locations: undefined,
  extensions: {
    requestBody: {
      query: 'query IntrospectionQuery {\n' +
        '  __schema {\n' +
        '    queryType {\n' +
        '      name\n' +
        '    }\n' +
        '    mutationType {\n' +
        '      name\n' +
        '    }\n' +
        '    subscriptionType {\n' +
        '      name\n' +
        '    }\n' +
        '    types {\n' +
        '      ...FullType\n' +
        '    }\n' +
        '    directives {\n' +
        '      name\n' +
        '      description\n' +
        '      locations\n' +
        '      args {\n' +
        '        ...InputValue\n' +
        '      }\n' +
        '    }\n' +
        '  }\n' +
        '}\n' +
        '\n' +
        'fragment FullType on __Type {\n' +
        '  kind\n' +
        '  name\n' +
        '  description\n' +
        '  fields(includeDeprecated: true) {\n' +
        '    name\n' +
        '    description\n' +
        '    args {\n' +
        '      ...InputValue\n' +
        '    }\n' +
        '    type {\n' +
        '      ...TypeRef\n' +
        '    }\n' +
        '    isDeprecated\n' +
        '    deprecationReason\n' +
        '  }\n' +
        '  inputFields {\n' +
        '    ...InputValue\n' +
        '  }\n' +
        '  interfaces {\n' +
        '    ...TypeRef\n' +
        '  }\n' +
        '  enumValues(includeDeprecated: true) {\n' +
        '    name\n' +
        '    description\n' +
        '    isDeprecated\n' +
        '    deprecationReason\n' +
        '  }\n' +
        '  possibleTypes {\n' +
        '    ...TypeRef\n' +
        '  }\n' +
        '}\n' +
        '\n' +
        'fragment InputValue on __InputValue {\n' +
        '  name\n' +
        '  description\n' +
        '  type {\n' +
        '    ...TypeRef\n' +
        '  }\n' +
        '  defaultValue\n' +
        '}\n' +
        '\n' +
        'fragment TypeRef on __Type {\n' +
        '  kind\n' +
        '  name\n' +
        '  ofType {\n' +
        '    kind\n' +
        '    name\n' +
        '    ofType {\n' +
        '      kind\n' +
        '      name\n' +
        '      ofType {\n' +
        '        kind\n' +
        '        name\n' +
        '        ofType {\n' +
        '          kind\n' +
        '          name\n' +
        '          ofType {\n' +
        '            kind\n' +
        '            name\n' +
        '            ofType {\n' +
        '              kind\n' +
        '              name\n' +
        '              ofType {\n' +
        '                kind\n' +
        '                name\n' +
        '              }\n' +
        '            }\n' +
        '          }\n' +
        '        }\n' +
        '      }\n' +
        '    }\n' +
        '  }\n' +
        '}',
✔ Parse Configuration
⚠ Generate outputs
  ❯ Generate to ./app/lib/graphql/_generated/
    ✖
      Failed to load schema from http://localhost:8000/graphql/:
      fetch failed to http://localhost:8000/graphql/
      TypeError: fetch failed
      at Object.processResponse (/Users/rohan/Work/blabla/node_modules/undici…
      at /Users/rohan/Work/blabla/node_modules/undici/lib/fetch/index.js:929:…
      at node:internal/process/task_queues:141:7
      at AsyncResource.runInAsyncScope (node:async_hooks:201:9)
      at AsyncResource.runMicrotask (node:internal/process/task_queues:138:8)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      GraphQL Code Generator supports:
      - ES Modules and CommonJS exports (export as default or named export "schema")
      - Introspection JSON File
      - URL of GraphQL endpoint
      - Multiple files with type definitions (glob expression)
      - String in config file
      Try to use one of above options and run codegen again.
    ◼ Load GraphQL documents
    ◼ Generate
Running lifecycle hook "afterStart" scripts...
[CLI] Loading Schemas
error Command failed with exit code 1.

However, if I curl the same query (assume gql.json has the same query from above, but properly formatted), it works fine:
$ curl -i -X POST http://localhost:8000/graphql/ -H "Content-Type: application/json" -d @gql.json
# returns proper response

The query also runs properly on GQL playground at same server:

Your Example Website or App
n/a
Steps to Reproduce the Bug or Issue

Set up codegen.ts
Run yarn graphql-codegen

Expected behavior
Success
Screenshots or Videos
No response
Platform

OS: macOS
NodeJS: 17.4.0
graphql version: 16.6.0
@graphql-codegen/cli version(s): 2.14.0

Codegen Config File
import type { CodegenConfig } from '@graphql-codegen/cli'
const config: CodegenConfig = {
schema: 'http://localhost:8000/graphql/',
documents: ['app/**/*.tsx'],
generates: {
'./app/lib/graphql/_generated/': {
preset: 'client',
plugins: [],
},
},
overwrite: true,
ignoreNoDocuments: true, // for better experience with the watcher
}
export default config
Additional context
No response

can you share a codesandbox or a GitHub repo so we can take a look?

I got it working at <IP_ADDRESS>. It's a work related internal service so can't publish. Will close and I'll add any other context if I come across any.


Pull-request for github-actions

This PR contains an initial version of a github-action, which builds and tests the commits or pull-requests to the master branch.

Close PR to check gh-actions integration. Will be re-opened later if necessary.


Async lock thread affinity

Hi,
I'm working on a kotlin micronaut web app which is attempting to be fully async and we're using redisson for distributed locks.
I'm somewhat unclear on how to exactly use it correctly.
The official documentation says RLock object behaves according to the Java Lock specification. It means only lock owner thread can unlock it otherwise IllegalMonitorStateException would be thrown. Otherwise consider to use RSemaphore object. which sounds weird as in an async context, executing on a specific threads is never guaranteed.
The code I'm using for now, in a kotlin suspendable func, is like this:
val lock = rediClinet.getLock("lock_name)
try {
    (lock.lockAsync(50, TimeUnit.SECONDS) as CompletionStage<Void>).await()
    //fancy kotlin async code here.
}
finally {
    (lock.unlockAsync() as CompletionStage<Void>).await()
}

The unlock line is not guaranteed to execute on the same thread as the lockAsync line.
Thanks!

But what do use as threadId ?
Any numbers as long as I use the same number across acquire/release methods?

you need to pass the same id to lockAsync() and unlockAsync() methods. It might be any id.

ok, thanks.
must say this is a very unexpected design for an distributed lock.


When implementing hierarchical interrupt, master interrup register need to be hardware writable.

After 1.22.0 release, all registers need to be hardware-writable if it has next.
However, in hierarchical interrupt implementation, I need to use next for master interrupt register, but it is not hardware-writable, because block-level interrupt registers set master interrupt register.
I can make master interrupt register hardware-writable, but it will generate unused input ports, which I don't want.
Here is an example code.
reg block_int_r {
  default hw=w;
  default sw=rw;
  default woclr;
  field {level intr;} crc_error = 0x0;
};

reg block_int_en_r {
  default hw=na;
  default sw=rw;
  field {} crc_error = 0x1;
};

reg master_int_r {
  default hw=na;
  default sw=r; // Software can just read this
  field {} module_a_int[0:0] = 0x0;
};

master_int.module_a_int->next = block_a_int->intr; ///// Problem.

I didn't include all code, but the last assignment is causing the problem.
Thanks

See the text and examples I added here that clarifies the interpretation of the next property: https://systemrdl-compiler.readthedocs.io/en/latest/dev_notes/rdl_spec_errata.html#field-s-next-property
My interpretation of the SystermRDL spec is that the use of the next property effectively replaces the inferred input signal.
If you change module_a_int to set hw=w, then it is consistent with the assignment of the next property because the hardware value of block_a_int->intr is effectively writing the value of the field.


Enable Sourcegraph

I want to use Sourcegraph for gb code search, browsing, and usage examples. Can an admin enable Sourcegraph for this repository? Just go to https://sourcegraph.com/github.com/constabulary/gb. (It should only take 30 seconds.)
Thank you!

Done


remove unneeded bpf map update calls

Description
bpf code was doing unnecessary calls to bpf_map_update_elem while the map is already been updated in place. which also added unneeded cpu load
Dependencies
n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[ ] Will this change affect NetObserv / Network Observability operator? If not, you can ignore the rest of this checklist.
[ ] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[ ] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

/ok-to-test

A few nits, but also a more general comment: you're not handling failure of bpf_map_update(...,BPF_NOEXIST), which means that if two threads end up doing this concurrently, one of the creation attempts will be lost.
This is no worse than before the patch, though (before the patch, one attempt would silently overwrite the other, now one will just fail). But, well, it's possible to do better, so I would suggest handling the errors where possible :)

are u referring to DNS update or this is more of general comment and u need better handling for map update errors ? can u expand more if that is the case ?

/ok-to-test

/ok-to-test

/ok-to-test

/lgtm

/ok-to-test

@msherif1234 Ran full automated suite against the PR and it passed(barring some flakes)
no-regression#9
/label qe-approved

/approve


Link for solutions to access ACR behind a proxy does not have any content

Hello,
Regarding the below content, the hyperlink redirects a redirected page:
https://github.com/Azure/azure-cli/blob/master/doc/use_cli_effectively.md#working-behind-a-proxy

CONNECTIVITY_SSL_ERROR
This error means that the client was unable to establish a secure connection to the container registry. This error generally occurs if you're running or using a proxy server.
Potential solutions: More information on working behind a proxy can be found here.

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

ID: 63a4a6d7-2f3b-1f3a-fbfe-f10b55a35c03
Version Independent ID: 8acdf23c-1d6b-0734-a345-a7a1863440e1
Content: Error reference for health checks - Azure Container Registry
Content Source: articles/container-registry/container-registry-health-error-reference.md
Service: container-registry
GitHub Login: @dlepow
Microsoft Alias: danlep

Thanks for the feedback! We are currently investigating and will update you shortly.

Thanks for bringing this to our attention. I have created a PR with the update, changes will be live in a week.


Is baker capacity accurate in V12?

Hi all,
I was looking at the baker capacity logic in v12 for my project, and I could not get my numbers to "match" those on tzstats.
After finding this code, I'm unsure what the logic is
If we look just at the v12 code
func (b Baker) StakingCapacity(p *tezos.Params, netRolls int64) int64 {
	[...]

    // 10% of staking balance must be locked
    // deposit = stake * frozen_deposits_percentage / 100
    // max_stake = total_balance / frozen_deposits_percentage * 100
    // max_delegation = max_stake - total_balance
    deposit_cap := util.Min64(b.DepositsLimit, b.TotalBalance())
    if deposit_cap < 0 {
        deposit_cap = b.TotalBalance()
    }
    return deposit_cap*100/int64(p.FrozenDepositsPercentage) - b.TotalBalance()
}

I understand deposit_cap which is the max a baker is willing / can deposit.
Then deposit_cap*100/int64(p.FrozenDepositsPercentage) makes sense as the max stake the baker represents I guess.
But then b.TotalBalance() is subtracted from it. I can make sense of that. The baker's balance participates in the total stake it represents, but if you want to know its capacity to accept delegates, then you have to remove the baker's funds. I'm ok if that's how StakingCapacity is defined
But then the tzstats website, to show the available capacity, seems to do
StakingCapacity - StakingBalance with StakingBalance including the baker's balance.
(https://github.com/blockwatch-cc/tzstats/blob/ee6e347a074600ca1e60b53b364ec477ad906bc5/src/components/Accounts/AccountInfo/AccountInfo.js#L153)
It seems to me that the baker balance is subtracted twice resulting in an overestimation of the used capacity.
I must say I don't know very well everything, and obviously the v12 logic is very new but something feels not right to me. Could you please let me know if I'm missing something
Let me try to make it clearer with an example directly from tzstats, extracting the baker json (truncated)
{
    "address": "tz1d6Fx42mYgVFnHUW8T8A7WBfJ6nD9pVok8",
    "baker_since": "2018-09-25T12:49:55Z",
    "grace_period": 475,
    "baker_version": "61fed540",
    "total_balance":<PHONE_NUMBER>74,
    "spendable_balance": 388.453791,
    "frozen_balance":<PHONE_NUMBER>83,
    "delegated_balance": 1030292.164604,
    "staking_balance": 1143569.608878,
    "staking_capacity": 1019496.998466,
    "deposits_limit": null,
}

staking_capacity is 10 * total_balance - total_balance, consistent with the tzindex code above
But then, this baker shows a free capacity of -124,073 XTZ in the front end, which is staking_capacity - staking_balance, thus discounting twice the baker's total_balance, right?

Hey! So the capacity under Ithaca is defined by 10x the baker's deposit. Other than before (see here https://tzstats.com/docs/guide/page/formulas/#baker-capacity) we now subtract the baker's own balance from the capacity to show how much free space is actually available. Arguably the term capacity is no longer correct, I'll think about this and may revert the subtraction (and do it on the frontend instead).
The tzstats repo is actually the old v1 of the explorer which is no longer in use (sorry for the confusion, I should set that one to archived). The site today shows the direct values staking_balance and staking_capacity as reported by the current API.

wait, for the API payload above, this is what the site shows
https://tzstats.com/tz1d6Fx42mYgVFnHUW8T8A7WBfJ6nD9pVok8

the "capacity" (-124073) is staking_capacity (where the baker balance is not included) minus staking_balance where the baker balance is included. Thus removing the balance twice, no?
I'm sorry but I'm just struggling there :)

What's displayed as 'free capacity' is staking_capacity - staking_balance from the API. And yes you are right that this is wrong since staking_capacity has already been reduced by total_balance on the API side.
We're going to deploy new backends today where this issue will be fixed. The API will then no longer subtract total_balance from staking_capacity.
Thanks for bringing this up! Much appreciated.

This has been fixed in tzindex and our public API. Feel free to reopen if you find more discrepancies. It's likely there are other issues with the new active stake calculations.

Awesome. That means I'm not crazy ;)
Thanks for the prompt answer and fix


Hide NavigationBar when scrolling down ?

First I want to say that I love this library. It's easy to use and light weight compared to other similar libraries.
Currently it only hides the navigation bar when you scroll up the screen, i.e. going down to the bottom of the ScrollView/TableView. I am wondering if there is a way to hide the navigation bar when you scroll down the screen. Basically what I want is hiding the navigation bar whenever the user scrolls the screen.

Hey @TunaYangSkey
Thanks for the kind words.
Mmm... I get what you mean, I never thought about it, but it should be doable easily. I'll do it in the next few days.


Regen check

Closes #105
Based on #106 so check only last commit.
cc @GuillaumeGomez, @sdroege

:+1:

Thanks!


Link has gone :(

http://kr.discovermeteor.com/ has been dead website
which was korean meteor document

could you submit a PR?

site's gone but maybe you can still get what you need from here: https://github.com/DiscoverMeteor/DiscoverMeteor_Kr

@borgified Oh thanks
@eshellman I don't have much time to PR sorry


plugin-simple-bin: Uses dist-node/index if dist-node/index.bundle throws runtime error.

Current implementation catches all errors and navigates to unbundled module.
We need to add check for err.code === "MODULE_NOT_FOUND".

Update:  I found that err.code === "MODULE_NOT_FOUND" does not work in case index.bundle.js has not installed modules. I think that require.resolve is the way to go.

+1, that makes sense to me. Definitely don't like that it's just swallowing those errors right now.
Thanks for finding and fixing


Display image filename while editing meta in gallery

Help user when editing gallery image caption, width, height or other meta by displaying the filename in modal header.
Result:

Thanks!


Add document for Input Validator with Extensions

Just an update example for InputValueValidator with Extensions in async doc.

Thanks!😃


caching empty results

I have some metrics that do not necessarily show up into prometheus in a timely fashion.  Sometimes a minute or two after they were created as that is when they become available at the target endpoint.  With trickster in the query path I am caching empty buckets for those period where the metrics are missing even though the metric show up some time later in prometheus.
Is their either a way to not cache an empty result bucket or to flag some query strings as not cachable?

hey Rob, thanks for using Trickster and hitting us up about this.
we have a solution for this exact situation, where there is a delay in the results coming in to prometheus (or any other tsdb that trickster accelerates), and so timestamps within a relative window of real time should not be cached . it's an origin configuration called Backfill Tolerance, that gives the origin some extra time to settle on a final value for those newer timestamps before trickster caches them. it works by trimming datasets down just before caching, such that timestamps newer than now() - $backfill_tolerance_secs are excluded from the cache. most users find a value of 120, 180 or 300 seconds works great, depending upon the degree of latency from the original telemetry source.
While it is currently an origin config, we are working to make features such as this one, available on a per-query basis using comments in the query string to trigger the feature; so stay tuned for that in a future release as well.
For now, backfill_tolerance_secs and can be used as follows:
[origins]
  [origins.default]
  origin_type = 'prometheus'
  origin_url = 'http://prometheus:9090'
  cache_name = 'default'
  backfill_tolerance_secs = 180

If you are using a version of Trickster earlier than 1.0, this setting exists under a different name and I am happy to dig that out for you, just let me know.

thats great.  I'll give it a try.  thanks

@rrusso1982 just wanted to check and see if this proposed solution hooked you up. Thanks for letting us know!

@rrusso1982 just wanted to check and see if this proposed solution hooked you up. Thanks for letting us know!

Yes this was exactly what I needed.  Thanks for all the help.


Abloh

worked on data input page
worked on the login page
working on the fulfilled entry
(havent worked on the calender for the pages )

You are not supposed to approve merge, only send a Pull Request which would be reviewed and merged based on the review results


[MB-8256] TIO can see pricing details for domestic uncrating

Description
Add calculation details for domestic uncrating service item.
Reviewer Notes
Just to check, are CubicFeetBilled and RequestedPickupDate the correct params to use here? They are what is returned for this service item, but maybe they need to be changed, or will that happen when this is implemented fully?
Setup
make server_run
make client_run

Login as TIO, use PARAMS move code to see service items.
Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots

Messages

:book:
:link: MB-8256

  Generated by :no_entry_sign: dangerJS against 2bb00a68b10952d8c70361b78e57212e1a00558d


chore(deps-dev): bump typedoc from 0.19.2 to 0.20.14

Coverage remained the same at 74.319% when pulling 9a324c35f1504bc67cdd64f1fce6810cf475f7b8 on typedoc/0.20.14 into d83e43095baf02a2a0c10737b8a514285b9f6d6a on dev.

Coverage remained the same at 74.319% when pulling 9a324c35f1504bc67cdd64f1fce6810cf475f7b8 on typedoc/0.20.14 into d83e43095baf02a2a0c10737b8a514285b9f6d6a on dev.


make the discord bot update the queue for your video

This will show in the chat the discord bot makes, when it says "Position in the queue: #". The # should be updated and show what place your video is on.

Unless it's broken this is already the case. Isn't it?

nvm i did one today and saw it updating


Changed to deprecation README

As per #119 this is a deprecation README so people stop raising issues here without knowing they'll never get fixed.

Coverage decreased (-0.0006%) to 99.265% when pulling 2f1e4e3f50d22b0e12c385050871ff7649a96edd on andyjeffries:master into<PHONE_NUMBER>8fd717f5766ca0e5af54f737c456fc on whichdigital:master.


Have a question

i want to download the packages, but i cant find the config file.
i find this...

May be this is the newer version of Toran, best to ask on the official project with questions related to their product.


fix bug for the clib code in Vertex4

Codecov Report
Attention: Patch coverage is 14.71941% with 927 lines in your changes are missing coverage. Please review.

Project coverage is 7.83%. Comparing base (b918d7a) to head (fa15965).

Files
Patch %
Lines

src/sigma/sigma_dk.jl
0.00%
217 Missing :warning:

src/polarization/polarizationKT.jl
0.00%
192 Missing :warning:

.../sigma/source_codeGV/Cwrapper_sigmaParquetAD_dk.jl
0.00%
112 Missing :warning:

src/sigma/parquetAD.jl
0.00%
107 Missing :warning:

src/sigma/sigmaKW.jl
0.00%
90 Missing :warning:

...ce_codeParquetAD/Cwrapper_chargePolar_ParquetAD.jl
0.00%
82 Missing :warning:

src/diagram/generate.jl
0.00%
77 Missing :warning:

src/common/counterterm.jl
76.07%
50 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff            @@
##           houpc     #37      +/-   ##
========================================
- Coverage   7.95%   7.83%   -0.12%
========================================
  Files         51      52       +1
  Lines       4578    4646      +68
========================================
  Hits         364     364
- Misses      4214    4282      +68

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


can not rea dxf file with entity type: "AcDbEntity" .

When I used this library to read DXF format files, it worked fine most of the time. But recently when I tried to read some DXF files, I couldn't read the content correctly. When I compared the DXF files, I found that the entity inside was of AcDbEntity type. I didn't find the corresponding one in EntityType. Is this the reason?

Compatibility with other DXF libraries is an ongoing issue.  The AcDbEntity you see isn't causing a problem, though.  Properties for an entity are commonly grouped under the C++ class that contains those in the AutoCAD source.  For example, a line in a DXF file looks like this:
(note, I've added line comments that aren't valid in the DXF, but help explain what's going on)
0              // lines in a DXF file are read in pairs; the first is a code that says what type follows, in this case 0 means start of entity
LINE
100            // this means we're reading properties common to the base entity class
AcDbEntity
8              // code 8 means a layer name follows
WALLS
100            // this means we're now reading properties specific to the line entity
AcDbLine
10             // code 10 means the X coordinate of a primary point; in this case it's really "P1.X"
0
20             // code 20 means the Y coordinate of a primary point; in this case it's really "P1.Y"
0
30             // code 30 means the Z coordinate of a primary point; in this case it's really "P1.Z"
0
11             // code 11 means the X coordinate of a secondary point; in this case it's really "P2.X"
10
21
10
31
0

I didn't label the last few values, but it should be pretty obvious what they are.  This snippet defines a line on layer WALLS with a start point of (0, 0, 0) and an end point of (10, 10, 0).


Please document m3u usage

Hi there!
MediaElement supports m3u/m3u8 as far as I know, but I'm having real trouble figuring it out. Any help is appreciated.

@Zorlin I've never tried to use m3u with mediaelementjs before, but as far as I can see it in the docs, mediaelementjs doesn't support it: https://github.com/mediaelement/mediaelement/blob/master/docs/usage.md#use-renderers

@dpxgit  HLS (m3u8) s supported by Media elements...
Use the HLS native render...
https://codepen.io/jaapmarcus/pen/LYyRJxM
See code pen for an example

@jaapmarcus you are absolutly right. Somehow I didn't make the connection when I saw the file format.


too new API version

When I run the alias/docker command I get the following error message:
Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
Running on a Synology NAS. Sorry, quiet a noob...


Unexpected behavior when using DatasetCreator with respect to sharding

Issue Type
Documentation Bug
Source
binary
Tensorflow Version
2.8.0
Custom Code
No
OS Platform and Distribution
Google Colab, tfx training using gcr.io/tfx-oss-public/tfx:1.7.1
Current Behaviour?
I have an autoencoder training under the default model.fit using a DatasetCreator. My setup is 8 workers, 4 accelerator each, 8 ps.
When I add sharding to the dataset_fn in DatasetCreator, the loss MSE changes dramatically. Namely, calling (see code below):
train_dataset = tf.keras.utils.experimental.DatasetCreator(
		lambda input_context: get_dataset(
				fn_args.train_files,
				transformed_feature_spec,
				preprocessor,
				batch_size=256,
				# remove sharding dramatically changes the loss mse
				shard_num=None,
				shard_index=None))

Gives me loss in the thousands (see logs), while calling:
train_dataset = tf.keras.utils.experimental.DatasetCreator(
		lambda input_context: get_dataset(
				fn_args.train_files,
				transformed_feature_spec,
				preprocessor,
				batch_size=256,
				# remove sharding dramatically changes the loss mse
				shard_num=input_context.num_input_pipelines,
				shard_index=input_context.input_pipeline_id))

Gives me normal MSE less than 1 (see logs).
To debug, I added tf.print() to get_dataset, the printed logs values printed by the workers are:
num_input_pipelines == 1
input_pipeline_id == 0
num_replicas_in_sync == 4

Which tells me the InputContext given to each worker are unaware of other workers. And this makes sense in the context of the ParameterServerStrategy tutorial guide, which states:

Keras Model.fit with parameter server training assumes that each worker receives the same dataset, except when it is shuffled differently.

So I'm not sure how sharding the dataset with dataset.shard(1, 0) could possibly make such a difference. My only guess is that perhaps the debug tf.print() was triggered during tracing and the actual InputContext is different when training. But even then, whether the data is sharded or not shouldn't affect the loss? There's some unexpected behaviors here that's not documented?
Standalone code to reproduce the issue
def get_dataset(
		file_pattern: List[Text],
		feature_spec: Dict[str, common_types.FeatureSpecType],
		preprocessing_layer: keras.Model,
		batch_size: int = 256,
		shard_num: int = None,
		shard_index: int = None) -> tf.data.Dataset:

	file_pattern = tf.convert_to_tensor(file_pattern)

	compression_type = dataset_util.detect_compression_type(file_pattern)

	dataset = tf.data.Dataset.list_files(
		file_pattern,
		shuffle=False)

	options = tf.data.Options()
	options.deterministic = False
	options.experimental_distribute.auto_shard_policy = tf.data.experimental.AutoShardPolicy.OFF
	dataset = dataset.with_options(options)

	dataset = dataset.interleave(
		lambda filename: tf.data.TFRecordDataset(
			filename,
			compression_type=compression_type),
		cycle_length=tf.data.AUTOTUNE,
		num_parallel_calls=tf.data.AUTOTUNE,
		deterministic=False)

	def _apply_preprocessing(tfrecord):
		parsed_features = tf.io.parse_example(tfrecord, feature_spec)
		preprocessed_features = tf.squeeze(preprocessing_layer(parsed_features))
		return preprocessed_features, preprocessed_features

	dataset = dataset.map(
		_apply_preprocessing,
		num_parallel_calls=tf.data.AUTOTUNE,
		deterministic=False)

	dataset = dataset.cache()

	dataset = dataset.shuffle(buffer_size=1000000)

	dataset = dataset.repeat()

	if shard_num and shard_index:
		dataset = dataset.shard(shard_num, shard_index)

	dataset = dataset.batch(
		batch_size,
		num_parallel_calls=tf.data.AUTOTUNE,
		deterministic=False)

	return dataset.prefetch(tf.data.AUTOTUNE)

# using a tfx pipeline
# TF_CONFIG is auto provisioned to the cluster
# 8 worker, 4 accelerator each, 8 ps, no eval workers
cluster_resolver = tf.distribute.cluster_resolver.TFConfigClusterResolver()

if cluster_resolver.task_type == 'chief':
	transformed_feature_spec = tf_transform_output.transformed_feature_spec()

	variable_partitioner = tf.distribute.experimental.partitioners.FixedShardsPartitioner(
			num_shards=8)

	strategy = tf.distribute.ParameterServerStrategy(
			cluster_resolver=cluster_resolver,
			variable_partitioner=variable_partitioner)

	with strategy.scope():
		preprocessor, autoencoder = create_model(
				feature_spec=transformed_feature_spec,
				learning_rate=0.004,
				)

		train_dataset = tf.keras.utils.experimental.DatasetCreator(
				lambda input_context: get_dataset(
						fn_args.train_files,
						transformed_feature_spec,
						preprocessor,
						batch_size=256,
						##############################################
						# Adding sharding dramatically reduce loss!? #
						##############################################
						shard_num=input_context.num_input_pipelines,
						shard_index=input_context.input_pipeline_id))

	autoencoder.fit(
			train_dataset,
			epochs=1024,
			steps_per_epoch=200)

	# save model...

elif cluster_resolver.task_type in ('worker', 'ps'):

	server = tf.distribute.Server(
			cluster_resolver.cluster_spec(),
			job_name=cluster_resolver.task_type,
			task_index=cluster_resolver.task_id,
			protocol='grpc',
			start=True)
	server.join()

Relevant log output
---Without sharding:
workerpool0-0
Epoch 32/1024

workerpool0-0
200/200 - 4s - loss: 12659.2314 - mse: 12659.2275 - mae: 9.0156 - msle: 0.0395 - 4s/epoch - 19ms/step

---With sharding:
workerpool0-0
Epoch 32/1024

workerpool0-0
200/200 - 4s - loss: 0.3014 - mse: 0.2985 - mae: 0.3113 - msle: 0.0571 - 4s/epoch - 20ms/step

@mohantym any ideas here? I'm guessing it's just something that's not documented here as opposed to a behavior that's not actually not expected?

@bli00
In order to expedite the trouble-shooting process, please provide a code snippet to reproduce the issue reported here. Thank you!

Just an idea but I don't think this looks right:
if shard_num and shard_index:
    dataset = dataset.shard(shard_num, shard_index)

One of the shard indexes will be 0, so it won't use any sharding for that one generator. As a result, some of your training data is lost because the unsharded generator outputs the beginning of the sequence, rather than a strided subset.

@feelingsonice  Have you fix this error ?


update rsa key

Key was just updated: https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/  and is documented here
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints

@mpdude can you approve and merge this? 🙏

Closing based on comments https://github.com/webfactory/ssh-agent/issues/169


RemoteFunction::Call fails

Hello,
I'm trying to call externally function, which succeeds but only when I don't provide workerThread argument to RemoteFunction::call().
I investigated and it seems it's failing at QueueUserAPC routine, with STATUS_ACCESS_DENIED.
Target process is protected with ObRegisterCallbacks (I am promoting handle rights with driver).
I would not post that issue but as I mentioned, ExecuteInNewThread is running fine (but slow).
Best regards,
macho105.

Okay, my bad. I had to elevate workerThread handle before using it. It was stripped from THREAD_SET_CONTEXT. I hope this will help someone.


How to get custom text in sign

Hello,
I'm trying to get the custom text of a sign from a pdf file, I'm working like this:
I've opend the pdf file in this way
with open('file.pdf', 'rb') as doc:
    r = PdfFileReader(doc)

and then, inspecting runtime variables I've seen that the sign I want to read is inside this variable
r.embedded_signatures[1]

(my document has two signs, I want to work on the second one.)
Inside embedded_signature[1] I can find all the information about the sign certificate, the provider and the owner of the sign, I can't find the text inside the sign and I would like to understand how to ge this information.
To be the most clear as possibile, in the documentation this feature is used
here
to generate this sign

In this case, opening the signed pdf file, I would like to get the text

"This is custom text!
Signed by: Alice<EMAIL_ADDRESS>Time: 2021-06-24 08:00:00 CEST"

Hi @Asterix45,
That is a surprisingly hard problem ;). Text extraction from general PDFs is a whole domain in itself, and very far outside the scope of pyHanko. Whether the text appears in a signature appearance or not makes things slightly easier (in that you know which content streams to analyse), but actually extracting the text and decoding it into something readable is not always trivial.
It would be doable to hack something together that works (somewhat) reliably on pyHanko output, because pyHanko is quite reasonable by default (it supplies a ToUnicode map for embedded fonts, reading order matches content stream order, etc. etc.). But even for that, I think pulling in a library that properly supports text extraction is better. iText does this, among many others: https://github.com/itext/itext-java.
That said, I suspect that your problem is actually an X/Y problem. Are you really trying to extract text, or do you simply want access to metadata about the signature and/or the signer? Because there are easier ways to go about that.


message_view_header: Add divider after stream name for spectator.

Since originally divider is a part of sub_count which is not
displayed for spectators, we need to add a new one for them.

I used the same divider we use for compose here.
discussion - https://chat.zulip.org/#narrow/stream/9-issues/topic/web-public.20streams.20navbar

This looks visually correct, but wouldn't it be easier to just change ::after CSS on sub_count to be a ::before on the stream description?

This looks visually correct, but wouldn't it be easier to just change ::after CSS on sub_count to be a ::before on the stream description?

No, since we will have to write new fixed position css which is worse than this.

OK, merged, thanks @amanagr!


convert direction to RTL instead of LTR

Hi,
thanks for great plugin, How can convert the direction from LTR to RTL ?

It's not supported yet. Will do this.

Thanks for the library. Any updates on this?

It's still on todo list...

I am also looking for LTR to RLT


make bedrock unmoveable

#518 this issue already exists

 kikis2111 on Discord says

bedrock is meant to be Unmovable according to the wiki: https://create.fandom.com/wiki/Contraption

Oh woops, closing as duplicate then.

 yarden.zamir on Discord says

https://discord.com/channels/890222432605057044/1196546536096669697/1196547596387356682


Resultant Image

I just ran the program on a series of randomly generated images.
This was the result.

There's a lot of empty space here. Is this expected?

I added back the '-s' option, please try something like -s 256x256 to hint for constraint.

Thanks. I ended up rolling my own that's mipmap-friendly.


println pointer was wrong

func main() {
	i := 1

	fmt.Println("pointer:", &i)   //got 0x0  ,should be 0xc000014088
}

both target  node js and hl got same result.

All pointers are simulated at the moment so any display of pointer adresses will be asthetic instead of for functionality. With that in mind @sonygod @elliott5 any prefrences for pointer display.
Current ideas for, on pointer construction:

generate a random address.
count up for each pointer created.
same as before.

I think GopherJS also uses 0x0 when casting a pointer to uintptr.
It has the merit of being an obviously wrong value, that no-one will think can be validly compared to anything else.
To be a valid uintptr that could be used for comparison, every unique addressable entity (including fields in structures and elements in arrays) would need to be allocated a unique "address", and when a pointer is created, the  "address" required calculated and made part of the pointer.
I'm not sure it is worth doing that yet ... but it feeds into a larger discussion about how best to model unsafe.Pointer.

Thanks for the insight that makes sense, unsafe.Pointer handling is later down the roadmap, and has an intersection with normal Pointers.

To just note I'm changing the toString of pointer to be this now:
public inline function toString() {
		return "&" + Go.string(get());
}

It allows structs/slices/maps/arrays to properly print, I don't care much to conform to showing the pointer adress value when it's a basic type, it can be done but I think this way, 1. shows an even more clear distinction for how go2hx operates pointers compared to go, and 2. the info of the value inside the pointer is better then 0x0

Obviously the &pointedAtData notation printing will not work for a self-referential struct (or set of related struct types) with non-null pointers, because of infinite recursion.

Will change this to be 0x1 for set pointers, and &pointedAtData will be cleaned up with having go2hx compile fmt.

go2hx's subset does not support pointer addresses https://go2hx.github.io/manual/subset.html#unsupported .


Update train.py

Hello,
i tried adding some changes that are,
Command-Line Argument Parsing which Allows flexible configuration without modifying the script directly.
Error Handling which Added checks to ensure paths exist and catch exceptions when loading the tokenizer and dataset.
Improved Logging to Provides clear messages about the training process.
Parameterization for More parameters are passed through the command line for ease of use.
please update me if there will be anything,
Thank You.
Rajat Mishra.

thought some key hyper params are just fixed in your modified version.
maybe we could just keep it simple as we haven't reached to a phase with critical need of e.g. omegaconf

cool, Thanks,
All The Best!!


Fix initialization error

In the case of moodle directory have a different name

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

When exactly does the modules folder have a different name?

When you are using both rocketmod4 and rocketmod5 alternately, it is advisable to have different names, or if for some reason someone wants to change the name of the folder they can do it. (ex: Instead of rocketmod.module for rocketmod)

Makes sense, did you test the change?

Yes, I tested it and it seems to me that everything is fine, this is the version I have installed at the moment


realm: Replace occurrences of URI with URL.

In #23380, @timabbott talked about replacing deprecated URI abbreviation with URL in order to follow web standards.
This PR focuses on replacing URI abbreviations related to realm. It rebases the original work done in #25141 by resolving merge conflicts to make it mergeable.

The first commit replaces the occurrences of uri with url in the backend files and some HTML templates.
The second commit is concerned with the API changes and updating the API changelog and zulip.yaml.
The third commit replaces the occurrences of uri with url in the email and Jinja2 templates, their corresponding backend files, and the markdown processor.
The fourth commit changes the field realm_uri to realm_url in the DevUser object.

Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

For some reason, the following test is failing:
zerver.tests.test_i18n.EmailTranslationTestCase.test_email_translation
I don't know why this is happening but seems like that the email sent, when the email address of a user is changed, is only partially translated to German when realm.default_language is set to de.

It's likely because this changed whether the string was available for translation. I can manage that detail.

@timabbott are you reviewing this directly?

I extracted the first commit as https://github.com/zulip/zulip/pull/29976 to get forward progress on this; note that I fixed up the commit message significantly and also changed https://github.com/zulip/zulip/pull/29959#discussion_r1591644681. Probably the rest of this can merge when you get a chance to update it for the details noted above.
Thanks @Vector73 and @jychen630!

@timabbott I have addressed all the feedbacks above.

I extracted https://github.com/zulip/zulip/pull/30022 from this PR after dropping the context_processors hunk (https://github.com/zulip/zulip/pull/29959#discussion_r1594788023) and doing a bit more of the re-sorting I'd suggested previously. Maybe https://github.com/zulip/zulip/pull/29959#discussion_r1594792661 is overkill, but I'd like you to present something that creates more confidence that the remaining migration is complete and correct.
git grep realm_uri | grep -v locale shows 50 references to realm_uri, and I think that's more than are required for the backwards-compatibility support...

@timabbott I have replaced the remaining occurrences of realm_uri with realm_url mentioned in this comment and some tools files. Can you have a look at it?
Using git grep realm_uri | grep -v 'locale\|tests\|zulip.yaml\|changelog' shows the following left realm_uri for backwards compatibility:
tools/lib/capitalization.py:                or "realm_uri" in lower_cased_text
zerver/lib/events.py:        # TODO/compatibility: realm_uri is a deprecated alias for realm_url that
zerver/lib/events.py:        state["realm_url"] = state["realm_uri"] = realm.url
zerver/lib/push_notifications.py:    data["realm_uri"] = user_profile.realm.url
zerver/views/auth.py:    result["realm_uri"] = result["realm_url"]
zerver/views/realm.py:        data["realm_uri"] = realm.url

Looks great, merged, thanks @Vector73!


chore: import repository https://github.com/rackspace-org/paul-node-http.git

this commit will trigger a pipeline to generate the CI/CD configuration which will create a second commit on this Pull Request before it auto merges

@robo-user: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

paul
9f55a416c83d2c155fc89b73a139c0529f62c0e7
link
/test paul

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

/retest

/retest


i not being capitalized in dictation / speak?

When I'm using dictation mode, i am finding that the first person singular is not being properly capitalized, as illustrated in this sentence.  Compound constructions like "I'm" or "I've" work, but not a single i.
i am finding this happens whether i am using the command "say" or using dictation mode.
I'm really confused about this because it seems like there's code that should make the substitution:

This is fixed on the latest version. I neglected to call replace_words in the capture.
Note Dragon doesn't actually provide "i" here, it provides "i\pronoun," so the parse_words and replace_words stuff is needed.
On the other hand, wav2letter captures just "i", and the user.vocabularly capture maps it to "I".


Update BackupManagerZip.php

FIX Error Message when backup

Sorry for the late reply. The variable is not used in the plugin and nothing is gained defining it. Correct me if I'm wrong.


Output issue with kerberoast hashes, does not match hashcat format

Describe the bug
Kerberosoast etype 23, etype 17, and etype 18 do not match the hashcat parser. The hashcat parser expects in this format (example for type 18)
/**
   * $krb5tgs$18$*user*realm*$checksum$edata2
   * $krb5tgs$18$*user*realm*spn*$checksum$edata2
   */

A sanitized example:
$krb5tgs$18$USERNAME$REALM.EXAMPLE$REALM.example/USERNAME$ (bad) vs
$krb5tgs$18$USERNAME$REALM.EXAMPLE$*REALM.example/USERNAME*$ (good)
Notice the * around the SPN, this is required for hashcat parsing, otherwise you get an error in the hashcat parser for all kerberosting modes.
Lines 66, 75, 84, and 93 in nxc/protocols/ldap/kerberos.py show this issue.
To Reproduce
Perform a kerberoast attack against a domain, extract hashes and then try to crack with hashcat, you will get an error
Expected behavior
hashcat.exe --identify 'kerberoasthash here'

The following hash-mode match the structure of your input hash:

      # | Name                                                | Category
  ======+=====================================================+======================================
  19700 | Kerberos 5, etype 18, TGS-REP                       | Network Protocols

this should apply for all 3 kerberoasting hash types
NetExec info

OS: Kali
Version of nxc: latest
Installed from: github

** Details on the parser **
19700 etype 18
"$krb5tgs$18$srv_http$synacktiv.local$16ce51f6eba20c8ee534ff8a$57d07b23643a516834795f0c010da8f549b7e65063e5a367ca9240f9b800adad1734df7e7d5dd8307e785de4f40aacf901df41aa6ce695f8619ec579c1fa57ee93661cf402aeef4e3a42e7e3477645d52c09dc72feade03512dffe0df517344f673c63532b790c242cc1d50f4b4b34976cb6e08ab325b3aefb2684262a5ee9faacb14d059754f50553be5bfa5c4c51e833ff2b6ac02c6e5d4c4eb193e27d7dde301bd1ddf480e5e282b8c27ef37b136c8f140b56de105b73adeb1de16232fa1ab5c9f6";

19600 etype 17
"$krb5pa$18$hashcat$HASHCATDOMAIN.COM$96c289009b05181bfd32062962740b1b1ce5f74eb12e0266cde74e81094661addab08c0c1a178882c91a0ed89ae4e0e68d2820b9cce69770";

13100 etype 23
$krb5tgs$23$*user$realm$test/spn*$b548e10f5694ae018d7ad63c257af7dc$35e8e45658860bc31a859b41a08989265f4ef8afd75652ab4d7a30ef151bf6350d879ae189a8cb769e01fa573c6315232b37e4bcad9105520640a781e5fd85c09615e78267e494f433f067cc6958200a82f70627ce0eebc2ac445729c2a8a0255dc3ede2c4973d2d93ac8c1a56b26444df300cb93045d05ff2326affaa3ae97f5cd866c14b78a459f0933a550e0b6507bf8af27c2391ef69fbdd649dd059a4b9ae2440edd96c82479645ccdb06bae0eead3b7f639178a90cf24d9a";

Thanks for the bug report!

@evilmog what commands are you running? This is working in my lab via nxc ldap $IP -u $USERNAME -p $PASSWORD --kerberoast kerberoast.txt

The extraction works but it’s not in a format hashcat can process if
there’s a domain SPN, whenever you try to crack them with hashcat it will
throw a length error as is doesn’t match the hashcat parser.
This is why I gave the links to what hashcat expects,
The SPN needs be be wrapped in $SPN$ not $SPN$, I verified that with the
hashcat dev team (note that I am on team hashcat)
On Tue, May 14, 2024 at 13:03 Marshall Hallenbeck @.***>
wrote:

@evilmog https://github.com/evilmog what commands are you running? This
is working in my lab via nxc ldap $IP -u $USERNAME -p $PASSWORD
--kerberoast kerberoast.txt
image.png (view on web)
https://github.com/Pennyw0rth/NetExec/assets/1518719/5e5a9748-3525-42c4-bd82-2c52a5d33c0f
image.png (view on web)
https://github.com/Pennyw0rth/NetExec/assets/1518719/7c1488eb-29a4-4120-b574-6a8f38a068bd
—
Reply to this email directly, view it on GitHub
https://github.com/Pennyw0rth/NetExec/issues/301#issuecomment-2110948938,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZBQUUJHGAV5N3JCEJ7ICDZCJNZDAVCNFSM6AAAAABHVBJDCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJQHE2DQOJTHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hello @evilmog , i'm a bit suprise by this one, why the hash from @Marshall-Hallenbeck is wrong ?

i try to reproduce w/t success, closing since no updated


Prevent tags from ending in "other_tags" for osm.pbf with read_dataframe

At the moment, not all tags are imported from an osm.pbf file with read_dataframe.
In particular, I'm interested in "buildings:levels", which currently ends up in "other_tags" rather than getting its own column (maybe because not all lines have this entry?).
Is there a way to tell pyogrio to include this tag as an independent column?
I could extract it from the data in the "other_tags" column (e.g. "building:levels"=>"1") but this is probably going to be much slower than if it's done directly on import.
EDIT: in case anyone is interested in a workaround in the meantime
# missing entries will be either NaN or None
building_levels = df.other_tags.str.extract(r'"building:levels"=>"(\d+)"', expand=False)

Is there a way to tell pyogrio to include this tag as an independent column?

this is purely a OGR OSM driver topic. You can tune its configuation: see https://gdal.org/drivers/vector/osm.html#configuration

OK, if I understand correctly, I would need to add "building:levels" to the "attributes" in the osmconf.ini file, right?
However, that means manual changes to a config file, meaning that I cannot rely on that for code that will be distributed to others.
Is there a way to achieve this GDAL configuration programmatically via pyogrio or some other python library?

I would need to add "building:levels" to the "attributes" in the osmconf.ini file, right?

yes
I'm not super familiar with pyogrio, but looking at https://github.com/geopandas/pyogrio/blob/af292e579572a6a33a22a6403873b8e7b0a9d7f6/docs/source/known_issues.md?plain=1#L94 and given that the config file can be passed as an open option (https://gdal.org/drivers/vector/osm.html#open-options)
I assume you could do something like df = read_dataframe(path, CONFIG_FILE="/path/to/your/osmconf.ini")
with your code creating a temporary file
That could be a "/vsimem/" in-memory file (https://gdal.org/user/virtual_file_systems.html#vsimem-in-memory-files)
If you use GDAL Python bindings, then you can create it with something like
from osgeo import gdal
f = gdal.VSIFOpenL("/vsimem/osmconf.ini", "wb")
data = b"put here content of osmconf.ini"
gdal.VSIFWriteL(data, 1, len(data), f)
gdal.VSIFCloseL(f)

df = read_dataframe(path, CONFIG_FILE="/vsimem/osmconf.ini")

gdal.Unlink("/vsimem/osmconf.ini")

Thanks, I'll check whether this config file argument works with a custom ini file

I ran into this exact issue today! I didn't try the vsimem approach, but was able to use a regular temporary file.
I wanted to modify a copy of the system ini file programmatically rather than editing it manually. Python's configparser won't eat an ini file without a top-level header, so I had to add one pre-read then remove it post-write.
import configparser
import io
import tempfile

import geopandas as gpd

with tempfile.NamedTemporaryFile("w", suffix=".ini") as f_tmp:

    # Prefix the file with a toplevel header, then pass to configparser.
    dummy_header = "[dummy_toplevel_header]\n"
    config = configparser.ConfigParser()
    with open("/usr/share/gdal/osmconf.ini") as f_config:
        stream = io.StringIO(dummy_header + f_config.read())
        config.read_file(stream)

    # Set the config for the building layer: add levels and related tags, remove other_tags.
    config["multipolygons"]["attributes"] = "name,building:levels,levels,height,min_height,max_height"
    config["multipolygons"]["other_tags"] = "no"

    # Write to temp file.
    config.write(f_tmp, space_around_delimiters=False)
    f_tmp.flush()

    # Remove the first line dummy header.
    with open(f_tmp.name, "r") as f:
        lines = f.readlines()
    with open(f_tmp.name, "w") as f:
        assert lines[0] == dummy_header
        f.writelines(lines[1:])

    # Now you can read in the file.
    gdf = gpd.read_file(osm_pbf_path, layer="multipolygons", CONFIG_FILE=f_tmp.name)

Result:

Python's configparser won't eat an ini file without a top-level header, so I had to add one pre-read then remove it post-write.

will be fixed per https://github.com/OSGeo/gdal/pull/10293

Going to close this because this is solvable by passing configuration parameters to GDAL, and the .ini file issue is upstream.


[Bug]: Glitched GUI.

Is there an existing issue for this?

[X] I have searched the existing issues

Description
With i think its journey map, it glitches EVERYTHING OUT, other than version 2. Please fix this its making it harder to use the mod. Thank you!
I had the following mods added to my modpack,
AP++, AppleSkin, Armor Status HUD Renewed, BobLib, Hwyla, JourneyMap, Lock on, My Hero Academia, and Neat.
I added JEI to these mods and all of a sudden things were glitched.
I then deleted the AP++ mod and it was fixed, just the AP++ mod as well was deleted and it was working.
Version
3.0.1 for Minecraft Forge 1.16.5
Version
forge - 1.16.5
To Reproduce
Download these mods for 1.16.5 Minecraft Forge
AP++, AppleSkin, Armor Status HUD Renewed, BobLib, Hwyla, JourneyMap, Lock on, My Hero Academia, and Neat.|
Add JEI and it glitched out
Remove AP++ and or JEI and its unglitched.
Additionally Version 2 of the AP++ mod unglitches it as well.
Expexted Behavior
visual glitch
Additional Context
.
Screenshots

After pressing E this is what appears on screen.
Relevant Log / Crash-Report Output
No response

can confirm, this happens with appp [1.16.5-3.0.1] + jei [1.16.5-<IP_ADDRESS>] + journeymap [1.16.5-5.8.5p2]
though that will be an annoying incompatibility to fix as journeymap crashes in the dev environment

Further testing revealed that this does only happen with journeymap versions of 5.8.0 and above

so, using journeymap 1.16.5-5.7.3 would be a workaround for the time being

Also tested this without jei - jei does not affect this issue, meaning that i only have to check one mod.. which is currently closed source... this is going to be really annoying :/

I think I've found the issue - gonna fix it now (and as 1.12 uses the same code, it's most probably affected, too)


Failed to Initialize Julia

I am getting the following exception when doing the tests or attempting to initialize julia with julia.Julia()
Steps performed to install on Ubuntu 14.04:
install julia version 0.3.11 via the ppa for release stable.
set up environment in PyCall with ENV["PYTHON"] = "/usr/bin/python3"
used Pkg.build("PyCall")
INFO: Building PyCall
INFO: PyCall is using /usr/bin/python3 (Python 3.4.3) at /usr/bin/python3, libpython = libpython3.4m
using PyCall
@pyimport math
math.sin(math.pi / 4) - sin(pi / 4)  # returns 0.0

So PyCall works.
now with Python:
 $/usr/bin/python3
 >>>import julia
 >>>julia.Julia()

Warning: error initializing module PyCall:
PyCall.PyError(msg=":PyImport_ImportModule", T=PyCall.PyObject(o=0x0000000005da8240), val=PyCall.PyObject(o=0x0000000004d552b0), traceback=PyCall.PyObject(o=0x0000000004d574c8))
Traceback (most recent call last):
  File "/home/user/libs/pyjulia/julia/core.py", line 289, in __init__
    self.call('pyinitialize(C_NULL)')
  File "/home/user/libs/pyjulia/julia/core.py", line 329, in call
    .format(exception_type, exception_msg, src))
julia.core.JuliaError: Exception 'UndefVarError' ocurred while calling julia code:
<couldn't get stack>

Code:
pyinitialize(C_NULL)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/libs/pyjulia/julia/core.py", line 291, in __init__
    raise JuliaError("Failed to initialize PyCall package")
julia.core.JuliaError: Failed to initialize PyCall package

I tried the same thing with Python2 with the same results.

I had a similar issue on Mac OS and the problem was apparently remedied after commenting out lines 288-291 in julia/core.py
it seems that pyinitialize is no longer an export of PyCall

The method worked for 0.3, but for 0.4 I'm getting a new error:
ERROR: UndefVarError: dlpath not defined
 in process_options at ./client.jl:284
 in _start at ./client.jl:411
---------------------------------------------------------------------------
JuliaError                                Traceback (most recent call last)
<ipython-input-2-4009d3e1be3e> in <module>()
----> 1 julia.Julia()

/home/roman/libs/pyjulia/julia/core.py in __init__(self, init_julia, jl_init_path)
    242                 sysimg_relpath_alt = os.path.join(os.path.relpath(libjulia_dir, JULIA_HOME), 'julia',"sys.ji")
    243             except:
--> 244                 raise JuliaError('error starting up the Julia process')
    245
    246             if not os.path.exists(libjulia_path):

JuliaError: error starting up the Julia process


Added optional page control, fixed tap gestures

IBInspectable value added to allow for the page control to be disabled.
Fixed issue where card was selected when moving between cards.
Fixed bugs with Swift 3

hi @niamh-power ,
what do u actually fixed in tap gestures?
Best regards


What are Godot's intended software bounds?

Godot version:
Godot 3.x
Issue description:
Just a discussion topic. What sorts of feature limitations do we intend to apply to the Godot Engine?
We have some impressive audio editing tools. What about tools to edit other media? Are there limits to what Godot will integrate in this regard?
At what point are we going to say, "Ok, this feature isn't something that will be incorporated directly into the engine, so don't even bother implementing it. You can make a plugin for it or you can just make it using Dedicated Application X instead."? Do we have any guidelines to help give people a sense for what should and shouldn't be developed for a pull request?

Closing as the discussion is stale.
But to answer the original question: Godot's purpose is to make games, and its features should be those needed to make games by a significant proportion of game developers, and not already well supplied by thirdparty open source tools (so the example in OP of video editing is clearly out of scope - at least for the foreseeable future).
There are many non-game applications made with Godot, and we do our best to support the use case, but it's not the main target.


Navigation inside the GitHub webapp escapes event capture, and leaves incorrect button on page

Unlike other supported forges, the GitHub webapp does sophisticated inline modifications of the DOM when one navigates it, so it is not enough to observe the url change to detect that ones moves around in the GitHub contents. For this reason, the extension uses an observer function that try to catch all changes when on a GitHub page (relevant code is here: https://github.com/rdicosmo/updateswh/blob/c5aa85bbe547d07adf560608a05cc3bb0aa9623d/extension/updateswh.js#L564-L617).
Since a few months, something changed in the GitHub webapp, and we get an annoying side effect, with some navigation patterns that no longer trigger the page modification detection logic in the extension. As a result, the content of the page changes, but the button remains, producing incoherent behaviour.
Here is how to reproduce:

navigate to one author page on GitHub, for example: https://github.com/borisveytsman ... one gets the author page without any button

click on one of this author's project, for example, acmart, that leads you to https://github.com/borisveytsman/acmart

now click on the author link, to get back to the author page, as in the following picture

here it is: the page change is not captured, and the button (the green save icon on the right) sticks on the page

After closer inspection of the code, this is a bug in the observer logic for GH: when we exit a GH project newurl.match(/^https?://github.com/[^/]*/[^/]+/) does not match and we do nothing, while we should instead remove the icon.
Will fix in the next release.

Fixed in commit 953479db72131f4b5a8b93a8d473f0a2576b78ae

Released with version 0.6.8


Inquiry check boxes

Requires a Dep upgrade post https://github.com/parameter1/base-cms/pull/199 being merged.
passes the following  to inquiry submission db:
{
    "_id" : ObjectId("61aa2a217933b45ece41201a"),
    "payload" : {
        "firstName" : "Test",
        "lastName" : "Test",
        "email"<EMAIL_ADDRESS>        "confirmationEmail"<EMAIL_ADDRESS>        "phone" : "0123456789",
        "company" : "###test",
        "jobTitle" : "None",
        "country" : "US",
        "postalCode" : "53538",
        "comments" : "f",
        "privacyConsent" : "I consent to PMMI collecting and storing my information and consent to receive emails as well as sponsored advertisements from PMMI Media Group. I have read PMMI Media Group's privacy policy and I understand that I can unsubscribe or opt out at any time, and I can reach your Chief Privacy Officer at <a href=\"mailto:dataprivacy<EMAIL_ADDRESS>with any inquiries around privacy policies or practices.",
        "notificationConsent" : "I agree to share my information with and receive occasional updates from the company mentioned in this article.",
        "thirdPartyConsent" : "Note that once shared, future communications may come directly from the sponsor and are not governed by PMMI Media Group's privacy policy."
    },
    "created" : ISODate("2021-12-03T14:30:57.520Z"),
    "contentId" : 13320820,
    "addresses" : {
        "to" : [
<EMAIL_ADDRESS>        ],
        "from" : "OEM Magazine<EMAIL_ADDRESS>    }
}

 Adding Consent to Inquiry Form


Invalid attribute name on dl element in message component

The message component outputs an invalid attribute name on a dl element:

Error: Attribute name not allowed on element dl at this point.

This occurs in rendered output when the documented parameter name is provided.

No test added for this parameter since output is invalid and usage isn't clear.


changing tests for codecov

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@6e16839). Click here to learn what that means.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             master       #14   +/-   ##
==========================================
  Coverage          ?   100.00%
==========================================
  Files             ?         1
  Lines             ?         1
  Branches          ?         0
==========================================
  Hits              ?         1
  Misses            ?         0
  Partials          ?         0

Impacted Files
Coverage Δ

index.js
100.00% <100.00%> (ø)

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 6e16839...c132d2d. Read the comment docs.