Discord was updated and no longer works (again)

Basically the exact same issue as this: #54003 (discord released update 0.0.11 and older versions no longer work).
Has there been any success in trying to contact discord about this?
And I was wondering, surely there is also other (proprietary) software which forces you to update (I don't know any that does but it seems plausible for programs which require network communication).
So don't we need a solution to this delayed updating in general?

In case you need a copy immediately:

#94811 is up, this issue probably should stay open though, it would be nice to find a solution.

It doesn't seem like other package managers have any solution to this (I'm on Arch and while the package was updated quicker there were still ~30 min in which I couldn't update).
Is there any reason why we need to have a human being manually change the hash and version number?
It's probably for security reasons but in cases like these where you already only get a proprietary binary from a central source I don't see what benefit there is over some script on a server auto-updating the hash and version number.

I don't think we can do anything about that without Discord support. Currently when new version of Discord is being released the old one is immediately disabled. Discord could have gave time for distributions to update, but they don't. Compare with say Signal (another application that automatically disables old versions) which actually gives time for the package to be properly updated.

@xfix Yeah I definetely agree that discord is at fault here and should at least implement a grace period but I think this could be a problem that's not exclusive to discord (online games come to mind but they aren't in the repos afaik).

Could a bot automatically update Discord versions? Sure, but there is no real value in doing so.

Well I personally find having to wait ~1h or longer every few months to use an application again quite unacceptable if its for such a trivial reason (again, definitely the fault of discord of the program but we have to deal with it).
Also I don't see the value in a person updating discord versions.
I mean I assume the one updating it simply downloads the new package and edits the hash, why can't a bot do that?

Even if a bot did update Discord version you would still need to wait for Hydra which may be building other things at that time (Chromium builds can take a long time), and the channel won't progress until everything is built. Waiting for Hydra is very likely to be longer part of a process than updating nixpkgs.
Having a bot with commit access would also mean additional risk because if such a bot got compromised it could commit to master and potentially compromise NixOS installations.
And in the end, the recent update was from 0.0.10 to 0.0.11. This means that Discord update occured at most 12 times so far, and if you look into History updates that necessitate package update are getting rarer and rarer (Discord developers can update most things without having to update the package). This isn't necessary for Discord.
Also, Discord provides a reasonable option of opening their client in a web browser while you wait for package to be updated.

The best course of action here is probably to convince Discord (the company) to allow a grace period of at least a few days when they roll out updates like these.  Surely NixOS is not the only platform affected by this problem.

As for making the Discord build somehow non-deterministic, well, Nix is designed to be deterministic. Checksums of downloaded files need to be known in advance. And besides, even if a build was somehow non-deterministic how would nix know it should download a new version when it gets released.

This is already implemented somewhat by the update.sh

Master and release have been updated:  #94811 #94814 #94817
Please allow for the channels to do their CI/CD, and update.
If you're impatient you can build discord off of git repo.

If you're impatient you can build discord off of git repo.

To install discord from latest master to your profile, run
nix-env -f https://github.com/NixOS/nixpkgs/archive/master.tar.gz -iA discord


Show / hide windows?

Normal windows can be closed (i.e. hidden), do we want something similar? Do other widget subclasses support this? Is this a sensible part of the notebook workflow?

Since a widget can have multiple simultaneous views, it seems to me that this would be too complicated/weird, unless showing and hiding a widget can only be done programmatically (showing/hiding all views), but I suspect that this should not be the responsibility of the RFB widget, since cases like this can be done by the Notebook (clear the cell output), or the RFB subclass (make it stop sending new frames).
Leaving this open for now to give people a chance to react.

How does matplotlib do this? If I recall correctly you can typically resize mpl widgets in a notebook, but to completely get rid of them you have to clear the cell output. However, there may be some odd behavior if you don't create a new mpl figure and do more drawing commands. Like it might produce duplicate figure output (one for each cell that has drawing commands), but I can't remember if the new cells update the previous cells output (they're all connected, one figure on the backend) or if they are independent (individual figure<->widget pairs).

Yeah, in the notebook you can toggle the visibility of the output, and also clear an output (which removes the widget view, but does not close the model). This should be plenty.
Relatedly, ipywidets.Widget has a .close() method (and so does the corresponding model in JS), that destroys the widget. With #15 we can thus properly implement canvas.close() in vispy.
Also related, in #12 I propose to detect whether any of the views are actually visible. If none are, we can pause drawing and thus safe CPU cycles for other stuff (e.g. other widgets sending frames).
With that, I close this issue :)


Encoder color format?

I noticed that colors, especially reds, look different in scrcpy.
screenshot from scrcpy output:

screenshot from phone:

crop:

I believe that the issue here is the color format. The encoder most likely uses yuv420.
I have tried to change this line:
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
to COLOR_FormatYUV444Flexible, but it doesn't work. I am getting:

ERROR: Could not open video stream

Is there anything I can try? I have already setup my machine, and I can make my own build.

Hi,
I opened this PR page in Firefox on an Android device, captured a screenshot with:
adb exec-out screencap -p > cap.png

I opened it with feh. I also launched scrcpy, then take a capture from the computer using xfce4-screenshooter.
Here is the result I get:

On large surfaces (like the red of the strawberry), the color is the same on the left and on the right.
The only difference is on the CANCEL and DELETE words. Since it only happens there, I think this is just an expected artefact of the lossy encoding process. This is either due to compression of high-frequencies (DCT+quantization) because the text is thin, or chroma subsampling. As you suggested, disabling chroma subsampling (4:4:4 instead of 4:2:0) could have solved the problem for the text, but it seems MediaCodec cannot encode to a 4:4:4 output format.
Anyway, this is not the problem you observe between your two screenshots: the strawberry does not look the same in the top and bottom picture. I cannot reproduce this: I superimposed the two images on the bottom in different gimp layers, then enabled one or the other, there is no difference except on thin text (CANCEL, DELETE).
How did you screenshot on the device and on the computer?

Thanks for you quick reply, and also for you work on this excellent work on this application.
I have taken the device screenshot using the system key combo Power+VolumeDown. On the computer, I have taken the screenshot with PrintScreen, after making scrcpy fullscreen.
On a second thought, I now have doubts that the chroma subsampling is the issue. If it was, it should affect color resolution only. The color itself should not be affected, the hue / saturation should remain the same.

If it was, it should affect color resolution only. The color itself should not be affected, the hue / saturation should remain the same.

The thing is, the letters have lines less than 2 pixels wide (so less than 1 pixel in the chroma planes). As a consequence, it may contain a mix of the background and the foreground color.

Ok, so then it may affect the color then.
But, if you're saying that MediaCodec cannot encode to a 4:4:4 output format, then is there any solution for this issue?

then is there any solution for this issue?

For the letters, I don't know, but loss in quality is expected.
But in the image from your initial post, the strawberry has clearly a different red. This is a different problem (and I cannot reproduce it).

I have found the cause.
Huawei seems to apply a filter that enhances the saturation of everything. What scrcpy sees (and also adb screenshot, as you can see below is the frame before this filter gets applied. The phone screenshot function includes this post processing.
adb screenshot:

scrcpy printrscreen:

phone screenshot:


Add title to user time by week tab

The user time by week tab on Dashboard page doesn't have a title yet

What do you mean functionally with add a title for this? @LennertDefauw


Isolate individual time series data by hiding all others

For my current project I need to stream robot reference and joint data. The time series view serves my purpose perfectly, but if I want to isolate a single joint I need to manually hide all others. Having the option to double click (or right click) the visibility icon to isolate that entity would be very helpful. I'm happy to give a shot at this, if the maintainers agree it would be a useful feature.

Quickly finding and isolating / focusing on specific entities in the viewer is something we're actively working towards! No date yet, but we'll make sure to update this issue.
cc @gavrelina @abey79

We definitely want to improve things on this front, but it's already possible to hide all-but-one series from a timeseries view by alt-clicking in the legend:
https://github.com/user-attachments/assets/60a00395-c834-438a-8723-a149d2719acd
We should probably advertise this feature more.

https://github.com/rerun-io/rerun/pull/8406


type into in typescript

Hi!
first, thank you all for this superb library!
I've read some issues here about typescript and know that the core team is not maintaining the typescript typing, but still think this is the best place to put this question and maybe reference it somewhere else.
I loooove transducers, so i'm usually using transducer or into everywhere i can, but in typescript land, it has been very hard for me to type it, i would like to understand both how could type it and if it is not possible where is the issue.

import {
  filter,
  into,
  map,
  compose,
} from 'ramda';

type OrderAndValue = { order: number, value: string }

type Values = string[]

const vals: Values = into<any>(
  [],
  compose<any, any, any>(
    filter<any>(x => x.id > 5),
    map<any, any>(x => x.val)
  ),
  [
    { order: 1, value: 'a' },
    { order: 5, value: 'b' },
    { order: 10, value: 'c' },
  ]
)

here, for typescript is so difficult to understand what gets into map, because transducer expects to apply the fns in compose in the read order.
My question: is there any way to type this ? to get the type of OrderAndValue in the map and return Values ?

We'll see if anyone here has an answer.  I'm afraid I have no clue about the Typescript typings.
I would suggest that the best place to get an answer is somewhere they maintain one of the typing files.

DefinitelyTyped seems to have no proper transducer typings for map, filter, even into!
I'm very slowly working on transducer-first FP library in TS, maybe its typings will be helpful for contributing to DefinitelyTyped.

@GingerPlusPlus: Is that work publicly available now?  I'd love to take a look.

Not yet. I'll publish it and post a link here as soon as I get map fully working.

I fell down the rabbit hole when designing dispatching, so the library might take a while. Instead, here are typings for transducers (inspired by https://github.com/dphilipson/transducist/blob/master/src/types.ts):
interface Reduced<T> {
    readonly "@@transducer/reduced": true;
    readonly "@@transducer/value": T;
}

type MaybeReduced<T> = T | Reduced<T>;

interface Transformer<Input, Result, Complete = Result> {
    "@@transducer/init"(): Result;
    "@@transducer/step"(result: Result, input: Input): MaybeReduced<Result>;
    "@@transducer/result"(result: Result): Complete;
}

type Transducer<Input, Output> = <Result, Complete>(
    xf: Transformer<Output, Result, Complete>
) => Transformer<Input, Result, Complete>;


A Problem on "287	Find the Duplicate Number"

Hello, First, I really appreciate you for your simple code and intelligent solutions. And I benefit a lot from your github.
However, I think there is something wrong on the first solution--"cycle list" of 287.
Please consider the situation"[1,0,1]". The right answer is 1. However, this solution has a cycle in 0 and 1.

Thanks for your friendly reminder!
As the problem described, "Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive)", so there will be no 0 in the given array. The solution works only if the given array is as described.

I got it. It is a good approach. Thanks!

eeeeree
via CloudMagic Emailhttps://cloudmagic.com/k/d/mailapp?ct=pi&cv=7.12.43&pv=9.2.1&source=email_footer_2


chore(main): release 2.8.0

:robot: I have created a release beep boop
2.8.0 (2024-07-19)
Features

update dev module (#145) (14b2863)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ai4os/ai4-dashboard/releases/tag/v2.8.0 :sunflower:


ASTRO DAO missing action for voting only on polls

I am looking for a cli commant which allows a specific group within the DAO to only vote on polls, not proposals/token transfers.
Currently only those seem to be available:
AddProposal - Adds given proposal to the DAO (this is the primary mechanism for getting things done).
RemoveProposal - Removes given proposal (this is used for immediate deletion in special cases).
VoteApprove - Votes to approve given proposal or bounty.
VoteReject - Votes to reject given proposal or bounty.
VoteRemove - Votes to remove given proposal or bounty (this may be because the proposal is spam or otherwise invalid).
Finalize - Finalizes proposal which is cancelled when proposal has expired (this action also returns funds).
MoveToHub - Moves a proposal to the hub (this is used to move a proposal into another DAO).
Anyone could help with that?

Hey @mutidao, thanks for creating the issue.
Why is that something that cannot be achieved with the existing tools?
You basically need to use AddProposal with ProposalKind::Vote (stands for Poll). Then, after the proposal is created, you can simply use VoteApprove or VoteReject to cast your votes on that specific poll. Am I missing something?

For adding the poll:
near call <dao_account_id> add_proposal '{"proposal": {"description": "You should put the description of the poll here", "kind": "Vote"}}' --accountId <caller_id> --amount 1
For casting votes:
near call <dao_account_id> act_proposal '{"id": <proposal_id>, "action": "VoteApprove"}' --accountId <caller_id> or
near call <dao_account_id> act_proposal '{"id": <proposal_id>, "action": "VoteReject"}' --accountId <caller_id>

Thank you! In the meantime we got it set up with the help of someone. As the UI doesn't give that option yet and we do not come with a dev background, it took some testing but now it works: https://app.astrodao.com/dao/inav2.sputnik-dao.near/groups/all
Thanks for taking the time to respond!

My pleasure, sorry for taking so long.


Unable to Find config.yml

Unable to find config.yml upon first boot up of the Docker

Closing due to inactivity. Feel free to pick it up again if you feel like it!


How do I add a directory at the same level in “src”

I want to add a parent directory to src. Can create-react-app be configured? I don't want eject or “react-app-rewired‘’

You can't without ejecting.

You are free to add any directories to the root of your project to add things like documentation, but you won't be able to import any JS files from a directory outside of src.


upstream: Implement retry concurrency budgets

This patch implements RetryBudget, a new configuration option in the retry policy that limits allowed outstanding retries. The budget is specified as a percentage of the current outstanding requests/connections. Each retry budget must specify a minimum concurrency value to the budgets, so that one can retry when there are low concurrency values. This configuration is optional and will not change existing behavior unless configured. If configured, the retry budgets will override any max_retries circuit breaker configuration.
For example, a budget of 20% with a minimum retry concurrency of 3 will allow 5 active retries while there are 25 active requests. If there are 2 active requests, there are still 3 active retries allowed because of the minimum retry concurrency.
This approach to limiting retries and mitigating retry storms is useful, because it allows one to think in terms of worst-case increases in traffic due to retries. Retry circuit breakers are fixed values and can potentially limit retries when the mesh can handle the increased volume. This is especially beneficial for adaptive concurrency for high RPS services.
Risk Level: Low
Testing: Unit tests
Docs Changes: Stats and proto.

/retest

/retest

I changed this config to override the max_retries circuit breaker. As it stood, the default retry CB of 3 makes the retry budgets useless.
In a subsequent patch, we can consider adding some sort of static retry count field to the budget and deprecating max_retries.

/wait

/waiting

/wait

Sorry about the force push... I didn't realize making a small change from the Github UI wouldn't pass DCO.

/wait

/wait-any

/wait-any

/wait-any

Alright, looks like this is good to go now. Removing the wait-any.

Also, is it possible to runtime enable % retry budgets? Or does it have to be explicitly configured? I'm mainly concerned about a safe rollout/rollback of the feature.

Yeah, you can toggle this on/off via runtime. If you configure a budget at runtime, even if it's not configured via proto, it'll just override the max_retries CB. There's actually a test for that here:
https://github.com/envoyproxy/envoy/pull/9069/files#diff-0a6a6327b31a217b22c653b1d1ebf4acR1018

/wait

Thanks LGTM. This is going to need a new master merge / format fix due to the recently added shadow proto support.
/wait

/wait-any

Apologies but can you merge master and format one more time? It should fix all the CI/random format issues.
/wait

Sorry needs another master merge.
/wait

I’ll just wait until we’re all back in the office to avoid further
conflicts.
On Fri, Jan 3, 2020 at 11:20 AM Matt Klein<EMAIL_ADDRESS>wrote:

Sorry needs another master merge.
/wait
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/pull/9069?email_source=notifications&email_token=AAIOZ7RKT5SY7QYPM5IH7VLQ35QUXA5CNFSM4JO5HESKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIBPVZA#issuecomment-570620644,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIOZ7TYVNDJ64XQQWD5M2TQ35QUXANCNFSM4JO5HESA
.

--
Tony Allen
Software Engineer
https://www.lyft.com/


Unresolved reference?

Hi Jose, my issue is about the line 232 on milaDS.py scritpt.
The following code (function) is not defined early or is in another .py file:  miladis.nfwvdp_proj
Can u help me about this question?
Thanks in advanced,
Sincerely

Dear Alosson26,
thanks a lot for making me notice this mistake, effectively "miladis" is not an included package in this repo (was a local script used during the development process).
I have included the "nfwvdp_proj" function in "tools_DS.py" script.
Please, let me know if you have new problems, and I will try to attend to this soon.
Best,
Jose

Dear Alosson26,
thanks a lot for making me notice this mistake, effectively "miladis" is not an included package in this repo (was a local script used during the development process). I have included the "nfwvdp_proj" function in "tools_DS.py" script. Please, let me know if you have new problems, and I will try to attend to this soon.
Best, Jose

Hi, again, Jose. Thanks a lot for u help in this question.
Thanks also by availability in any question related to milaDs technical.
Best,
Alisson


Redo search interface

This is talked about somewhere else, I believe, but let's alter the search interface.
Reorganize the search box at the top have the input for Name, City, Keywords on the left and the search button on the right.  Make the search box on each page a very simple option, with a link to take you to the advanced search page.
The advanced search page should then allow you to add details, such as whether the search term is a name, agency, etc; add states and cities as restrictions; specify time limits for death, case created, etc; add additional search terms, or ask for results without a search term; and other things we can think of.

related to issue #555

Given that this is basically an extension of #555, I've copied the content over to there, and will now close this issue.

Reopening this issue, and splitting the deliverables into two issues.

Technically this was completed as part of #2980.  I'd consider the cases filtering issue to be a separate issue.


Configuring CORS plugin on Ingress results in Access-Control-Allow-Origin intermittently not included as part of response

Summary
We have deployed Kong as our Ingress controller in front of our application. Some of our customers wish to use our application in a headless-only mode, whereby they develop their own UIs/applications and integrating into our application using REST APIs. We are using Kong's support for CORS (via the plugin) to automatically inject the necessary headers to enable browsers to make cross-origin requests to our application's backend.
While this for the most part is functional, we discovered that intermittently the Access-Control-Allow-Origin header is not included as part of the response (while other headers added by the CORS plugin, such as Access-Control-Allow-Credentials, are always included). This causes browsers to reject cross-origin requests. Repeating the exact same request may (but not always) properly return all CORS headers (Access-Control-Allow-Origin included). If not, continually re-trying the request will eventually result in Kong properly returning the Access-Control-Allow-Origin header, but in our testing it may take 10 or more attempts (with the exact same request) for Kong to return the header as expected.
Kong Ingress controller version
1.0
Kong or Kong Enterprise version
2.1 (also reproduced on 2.3)
Kubernetes version
Server Version: version.Info{Major:"1", Minor:"18+", GitVersion:"v1.18.9-eks-d1db3c", GitCommit:"d1db3c46e55f95d6a7d3e5578689371318f95ff9", GitTreeState:"clean", BuildDate:"2020-10-20T22:18:07Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

Environment

Cloud provider or hardware configuration: AWS Elastic Kubernetes Service

What happened
On some requests, Kong does not return the Access-Control-Allow-Origin header as part of the response when the CORS plugin is configured and a valid origin is provided by the request in the Origin header.
Expected behavior
Kong should always return the Access-Control-Allow-Origin header on configured origins when the header is properly provided in the request.
Steps To Reproduce
(Note the below configuration/setup has been scrubbed to remove proprietary/confidential information, but are directly taken from the affected environment.)

Configure the Kong plugin in Kubernetes:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: cors-customer
plugin: cors
config:
  origins:
  - "https://example.com"
  - "http://example2.com"
  - "http://example3.s3-website-us-east-1.amazonaws.com"
  methods:
  - GET
  - DELETE
  - HEAD
  - OPTIONS
  - POST
  - PUT
  headers:
  - Accept
  - Accept-Encoding
  - Connection
  - Content-Length
  - Content-MD5
  - Content-Type
  - Cookie
  - Date
  - Set-Cookie
  - Session
  - User-Agent
  credentials: true
  max_age: 3600

Configure the ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    konghq.com/plugins: cors-customer
    konghq.com/strip-path: "true"
    kubernetes.io/ingress.class: kong
  namespace: default
spec:
  rules:
  - host: '*.ourdomain.io'
    http:
      paths:
      - backend:
          serviceName: platform
          servicePort: 8080
        path: /platform/
        pathType: ImplementationSpecific

Perform a CORS preflight request (same as a browser, e.g. Chrome, would perform):

curl 'https://customer.ourdomain.io/platform/login' \
  -H 'authority: customer.ourdomain.io' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36' \
  -H 'content-type: application/json' \
  -H 'accept: */*' \
  -H 'origin: http://example3.s3-website-us-east-1.amazonaws.com' \
  -H 'sec-fetch-site: cross-site' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-dest: empty' \
  -H 'referer: http://example3.s3-website-us-east-1.amazonaws.com/' \
  -H 'accept-language: en-US,en;q=0.9' \
  -X OPTIONS \
  -vvv

Observe the response and note the missing Access-Control-Allow-Origin header (while other CORS headers are properly included):

* Uses proxy env variable no_proxy == 'redacted'
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to genproxy (<IP_ADDRESS>) port 8080 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to customer.ourdomain.io:443
> CONNECT customer.ourdomain.io:443 HTTP/1.1
> Host: customer.ourdomain.io:443
> User-Agent: curl/7.64.1
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
< Date: Mon, 22 Mar 2021 20:01:48 GMT
< Proxy-Connection: Keep-Alive
< Via: 1.1 redacted
<
* Proxy replied 200 to CONNECT request
* CONNECT phase completed!
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* CONNECT phase completed!
* CONNECT phase completed!
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: CN=ourdomain.io
*  start date: Jun 10 00:00:00 2020 GMT
*  expire date: Jul 10 12:00:00 2021 GMT
*  subjectAltName: host "customer.ourdomain.io" matched cert's "*.ourdomain.io"
*  issuer: C=redacted; ST=redacted; L=redacted; O=redacted; OU=redacted; CN=redacted; emailAddress=redacted
*  SSL certificate verify ok.
> OPTIONS /platform/login HTTP/1.1
> Host: customer.ourdomain.io
> authority: customer.ourdomain.io
> user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36
> content-type: application/json
> accept: */*
> origin: http://example3.s3-website-us-east-1.amazonaws.com
> sec-fetch-site: cross-site
> sec-fetch-mode: cors
> sec-fetch-dest: empty
> referer: http://example3.s3-website-us-east-1.amazonaws.com/
> accept-language: en-US,en;q=0.9
>
< HTTP/1.1 200
< Date: Mon, 22 Mar 2021 20:12:32 GMT
< Content-Length: 0
< X-B3-TraceId: 807421dd6a61d66d
< X-Tenant-ID: redacted
< Allow: POST,OPTIONS
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< Strict-Transport-Security: max-age=31536000 ; includeSubDomains
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: DENY
< X-Content-Type-Options: nosniff
< vary: Origin
< Access-Control-Allow-Credentials: true
< X-Kong-Upstream-Latency: 3
< X-Kong-Proxy-Latency: 0
< Via: kong/2.1.4, HTTPS/1.1 redacted
< Age: 0
<
* Connection #0 to host genproxy left intact
* Closing connection 0

We have tried removing all configured origins from the KongPlugin resource except for the one origin under test, as well as explicitly setting preflight_continue to false (even though it should be the default). We also reproduced the issue on a non-AWS environment where there are no proxies in front of the Kubernetes cluster (unlike AWS in which we have AWS load balancers).

Closing as stale since this issue has been open without activity for a year now. However: if anyone is still having this issue with the recent supported releases of KIC and still need help please feel free to comment here with the updated version information and we'll be happy to re-open this issue and re-assess.


Merge "missing inputs" error messages

This should make it easier for users to see which missing inputs belong to which task.
See rdar://problem/35260583
Right now we log two messages:

missing input ‘…’ and no rule to build it
cannot build '...' due to missing input

This PR merges them into one:

cannot build '...' due to missing inputs: ...

I am not entirely sure if this the implementation we want for this. Should we keep the early message that mentions the missing input in addition to adding it to the second error message? Should we fail the build early and put the merged message where the first one is currently?

@swift-ci please smoke test


Adding missing module

In the library testing section the PIL module was missing

Can one of the admins verify this patch?

What's the problem exactly? There is already:
from IPython.display import display, Image

I tried unistalling pillow and running the steps again and they work
I could not reproduce the problem, don't mind me


Not clear if plugin reads whole dataset into memory?

I'm trying to work out whether this plugin reads the whole OME-zarr dataset into memory when loading a dataset, or instead only the visible chunks are loaded. I tried looking at the README (https://www.napari-hub.org/plugins/napari-ome-zarr) but this didn't seem to mention anything.
Does anyone know the answer to this? I'd be happy to open a PR to include this when I know what the plugin does!

Since it reads lazily with dask, I don't think this does read the whole dataset into memory.


Phone number not working

I cannot use my Finland phone number... When I put my phone number. It just says: "Something bad happened..." Finland's phone numbers start with +358xxxxxxxxxx

Try adding your phone number to your steam account manually, then attach the authenticator.

This happens to me too, please help.

@Ezzpify unfortunatelly it didnt help. Program still asks for a phone number :c
Trying on Poland number +48 729 427 921, this number cannot be formatted as +1 XXX-XXX-XXXX, only as +48 XXX-XXX-XXX(I've tried +4 8XX-XXX-XXXX - didnt work)

Can you try with the new version? https://github.com/Ezzpify/SteamAuthenticator/releases


Problem with using Sequencer with non-recurrent modules

Hi,
I have a model where I have a CNN (as an encoder) followed by an LSTM, acting on a sequential data. It can be thought of like, features are learnt from my input using a CNN and these features are then fed into an LSTM for final classification. For ease, I wrapped my modules in a sequencer to allow using sequential data.
My input is as follows :
input = torch.Tensor(time_step X batch_size X channels X image_width X image_height)

My model is as follows:

-- a normal three layer CNN encoder
-- conv -> batch_norm -> activation -> pooling -> dropout

cnn_model = nn.Sequential()
cnn_model:add(SpatialConvolution):add(BatchNormalization):add(ReLU):add(MaxPooling):add(Dropout)
cnn_model:add(SpatialConvolution):add(BatchNormalization):add(ReLU):add(MaxPooling):add(Dropout)
cnn_model:add(SpatialConvolution):add(BatchNormalization):add(ReLU):add(MaxPooling):add(Dropout)
cnn_model:Reshape()  -- to flatten out the features while feeding into LSTM

-- LSTM layer

lstm_model = nn.LSTM(input_size, hidden_size)
lstm_model:add(Dropout)

-- putting everything together

model = nn.Sequential()
model:add(nn.SplitTable(1))  -- sequencer expects table of inputs
model:add(nn.Sequencer(cnn_model))  -- putting the CNN into sequencer
model:add(nn.Sequencer(lstm_model))  -- followed by LSTM which acts on output of the CNN
model:add(nn.SelectTable(-1)) -- many-to-one LSTM
model:add(nn.Linear()):add(nn.LogSoftMax())  -- apply criterion on top of this

criterion = nn.ClassNLLCriterion()

Now training is okay, error decreasing as expected. Problem arises while testing. For verification purpose I am using the same train set as my test set.
While testing when I set
model:evaluate()

things are not working out. The accuracy keeps oscillating at a very low value (~5-10%), even though my training accuracy is much higher and I am using the same data for testing also.
But instead if I use
cnn_model:evaluate()
lstm_model:evaluate()

things are going perfectly, as expected !
I have previously used LSTM without any problem. So my guess is, I am doing something wrong while putting the CNN in the sequencer.
Can someone point out the reason for this and where exactly is my mistake ?
Thanks !
NB: I have omitted details such as kernel_size, hidden_unit_size, linear_unit_size, etc, for ease of readability. There is no problem like dimension mismatch or something of that sort.

@kmul00 I am trying to reproduce this issue into a unit test in test/test.lua :
function rnntest.issue129()
   -- a normal three layer CNN encoder
   -- conv -> batch_norm -> activation -> pooling -> dropout

   local cnn_model = nn.Linear(3,4)

   -- LSTM layer

   local lstm_model = nn.LSTM(4, 4)

   -- putting everything together

   local model = nn.Sequential()
   --model:add(nn.PrintSize"split1")
   model:add(nn.SplitTable(1))  -- sequencer expects table of inputs
   --model:add(nn.PrintSize"split")
   model:add(nn.Sequencer(cnn_model))  -- putting the CNN into sequencer
   model:add(nn.Sequencer(lstm_model))  -- followed by LSTM which acts on output of the CNN
   model:add(nn.SelectTable(-1)) -- many-to-one LSTM
   model:add(nn.Linear(4,4)):add(nn.LogSoftMax())  -- apply criterion on top of this

   local input = torch.randn(7, 5, 3) -- seqlen x batchsize x inputsize
   local gradOutput = torch.randn(5, 4)

   model:training()
   local output = model:forward(input):clone()

   model:evaluate()
   local output2 = model:forward(input):clone()

   mytester:assertTensorEq(output, output2,  0.0000001, "issue 129 output err")
end

I can't get it to fail. Can you modify it to fail for your use case so I can debug it?

Hi @nicholas-leonard ,
Thanks for looking into it.  Whats is the command to run the tests ?
Is it th -lnn -e "nn.test{'issue129'}" ?

@nicholas-leonard
It seems the problem is with the nn.Dropout() module.
The following test fails.
function rnntest.issue129()
   -- a normal three layer CNN encoder
   -- conv -> batch_norm -> activation -> pooling -> dropout

   local cnn_model = nn.Sequential()
   cnn_model:add(nn.Linear(3, 4))
   cnn_model:add(nn.Dropout(0.5)) -- without this it passes

   -- LSTM layer

   local lstm_model = nn.LSTM(4, 4)
    lstm_model:add(nn.Dropout(0.5)) -- without this it passes

   -- putting everything together

   local model = nn.Sequential()
   --model:add(nn.PrintSize"split1")
   model:add(nn.SplitTable(1))  -- sequencer expects table of inputs
   --model:add(nn.PrintSize"split")
   model:add(nn.Sequencer(cnn_model))  -- putting the CNN into sequencer
   model:add(nn.Sequencer(lstm_model))  -- followed by LSTM which acts on output of the CNN
   model:add(nn.SelectTable(-1)) -- many-to-one LSTM
   model:add(nn.Linear(4,4)):add(nn.LogSoftMax())  -- apply criterion on top of this

   local input = torch.randn(7, 5, 3) -- seqlen x batchsize x inputsize
   local gradOutput = torch.randn(5, 4)

   model:training()
   local output = model:forward(input):clone()

   model:evaluate()
   local output2 = model:forward(input):clone()

   mytester:assertTensorEq(output, output2,  0.0000001, "issue 129 output err")
end

@kmul00 It is normal for the test to fail with dropout as it is stochastic during training. Can you make the test fail without it?

Yeah, that's what I realized afterwards, hence deleted that post. Will come up with e test without dropout.

@nicholas-leonard , I think I am able to zero in the problem now. It seems the problem lies with BatchNormalization. Following is the test I used to determine it.
I have converted it to replicate my exact use-case.
function rnntest.issue129()
   -- a normal three layer CNN encoder
   -- conv -> batch_norm -> activation -> pooling -> dropout

   local cnn_model = nn.Sequential()

   -- this one fails (condition 1)
   cnn_model:add(nn.SpatialConvolution(2, 16, 5, 5)):add(nn.SpatialBatchNormalization(16)):add(nn.SpatialMaxPooling(2, 2))
   cnn_model:add(nn.SpatialConvolution(16, 32, 3, 3)):add(nn.SpatialBatchNormalization(32)):add(nn.SpatialMaxPooling(2, 2))
   cnn_model:add(nn.SpatialConvolution(32, 64, 3, 3)):add(nn.SpatialBatchNormalization(64)):add(nn.SpatialMaxPooling(2, 2))
   cnn_model:add(nn.Reshape(64*6*6))

   -- this one passes (condition 2)
   --[[cnn_model:add(nn.SpatialConvolution(2, 16, 5, 5)):add(nn.SpatialMaxPooling(2, 2))
   cnn_model:add(nn.SpatialConvolution(16, 32, 3, 3)):add(nn.SpatialMaxPooling(2, 2))
   cnn_model:add(nn.SpatialConvolution(32, 64, 3, 3)):add(nn.SpatialMaxPooling(2, 2))
   cnn_model:add(nn.Reshape(64*6*6))]]--

   -- LSTM layer

   local lstm_model = nn.LSTM(64*6*6, 512)

   -- putting everything together

   local model = nn.Sequential()
   model:add(nn.SplitTable(1))  -- sequencer expects table of inputs
   model:add(nn.Sequencer(cnn_model))  -- putting the CNN into sequencer
   model:add(nn.Sequencer(lstm_model))  -- followed by LSTM which acts on output of the CNN
   model:add(nn.SelectTable(-1)) -- many-to-one LSTM
   model:add(nn.Linear(512,20)):add(nn.LogSoftMax())  -- apply criterion on top of this

   local input = torch.randn(7, 5, 2, 64, 64) -- seqlen x batchsize x channels x height x width

   model:training()
   local output = model:forward(input):clone()

   -- this works fine for both condition 1 and 2
   cnn_model:evaluate()
   lstm_model:evaluate()
   local output2 = model:forward(input):clone()

   mytester:assertTensorEq(output, output2,  0.0000001, "issue 129 cnn, lstm output err")

   -- here it fails for condition 1
   model:evaluate()
   local output3 = model:forward(input):clone()

   mytester:assertTensorEq(output, output3,  0.0000001, "issue 129 model output err")
end

@kmul00 This rnn-less example fails :
local sbn = nn.SpatialBatchNormalization(16)
   local input = torch.randn(2,3,8,8)

   sbn:training()
   local output = sbn:forward(input):clone()
   sbn:evaluate()
   local output2 = sbn:forward(input):clone()
   mytester:assertTensorEq(output, output2, 0.0000001)

So I would venture a guess that the problem lies in how SpatialBatchNormalization is evaluating your test set. @soumith I am guessing this is normal behaviour. Do you have any suggestions?

I have a question. Then why does casting the modules individually doesn't fail ?
After all, the batchnormalization modules were inside the cnn_model. Why does casting it separately as cnn_model:evaluate(), instead of doing the whole model:evaluate(), doesn't fail ?

@kmul00 Because it doesn't actually cast the batch normalization modules. These are cloned internally by the Sequencer (via Recursor). So you are only casting the original. In effect, the clones are still in training() mode.

Oh !
Thanks for the clarification. :)
So what do you suggest ?
Do I get away from using BatchNormalization or wrap the model in some other way ?

@kmul00 @nicholas-leonard output2 wont be equal to output, because the running_mean and running_var are exponential averages over some momentum.

if you run this line enough times:
sbn:training()
local output = sbn:forward(input):clone()
Then
sbn:evaluate()
local output2 = sbn:forward(input):clone()
mytester:assertTensorEq(output, output2, 0.0000001)
will pass

@soumith Thanks for the clarification.
@nicholas-leonard The problem is with BatchNormalization module, when wrapped in a sequencer.
Reason is, while in evaluate() mode, the running_mean and running_std learnt during training() are getting lost and it's falling back to it's default value of running_mean = 0 and running_std = 1. I have actually printed the values and verified it.
The following tests further verifies it.
Below is the test for normal BatchNormalization module, modified according to @soumith 's suggestion.
function rnntest.issue129()

   local model = nn.Sequential()
   model(nn.SpatialBatchNormalization(2))

   local input = torch.randn(4, 2, 64, 64)

   model:training()
   local output
   for i=1, 200 do  -- to run training enough times
      output = model:forward(input):clone()
   end

   model:evaluate()
   local output2 = model:forward(input):clone()

   mytester:assertTensorEq(output, output2,  0.0000001, "issue 129 err")
end

This one passes without any error.
But if we convert the above code to wrap the model in a sequencer like below,
function rnntest.issue129()

   local normalize = nn.Sequential()
   normalize:add(nn.SpatialBatchNormalization(2))

   model = nn.Sequential()
   model:add(nn.SplitTable(1))
   model:add(nn.Sequencer(normalize))
   model:add(nn.JoinTable(1))

   local input = torch.randn(1, 4, 2, 64, 64)

   model:training()

   local output
   for i=1, 200 do
      output = model:forward(input):clone()
   end

   model:evaluate()
   local output2 = model:forward(input):clone()

   mytester:assertTensorEq(output, output2,  0.0000001, "issue 129 err")
end

the test fails.
Is there a way to modify the code to keep track of the running_mean and running_std learnt during training, while evaluating ?
Any head-starts regarding which files to look into (sequencer.lua, recursor.lua, e.t.c) will also be very helpful. I can give it a try then.
Thanks !

@kmul00 I included your very helpful unit test and fixed it in https://github.com/Element-Research/rnn/commit/c03029ac3d4299e718a4adac554fb9b545a091bc . The precision isn't as good as in your original unit test. But your original non-rnn unit test was also failing when I fixed model(nn.Spatial...). So I reduced the precision of the test to 0.0002. I hope this works for you. Basically the issue was the Recursor wasn't adding its recurrentModule to the sharedClones.

@nicholas-leonard , Awesome, that was real fast ! Thanks a lot.
I think that was it. Things are now working as expected.
Thanks again, for all your help. :)


fix: add cors to vite config

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[UPLOAD-1140] Rollbar tokens

for UPLOAD-1140 - just switching out the token

Yup, updated that token and noted in the Jira ticket 👍🏼


What Phase

Is this project still in Pre Production?  If not when do you plan on moving it towards production?

The API is almost stable. Will be small changes but not scary (would be deprecation messages at build steps with how-to-fix).
If you want to use it for spaceship or health care applications, I'll recommend you to wait a half year, maybe year 😉 Who knows, maybe it will have enterprise support in future.
But if you have a more simple app and have strong knowledge of GraphQL internals, fill free to use it in production. Right now the community of this lib just several peoples. So need time that graphql-compose became really production ready. But it does not stop me to use this lib as a core module of my internal app right now. BTW GraphQL itself become production ready in September 2016.
If your server is build with nodejs and mongoose (MongoDB) better lib than graphql-compose-mongoose you will not find.
I have not enough time to write documentation right now. So if you do not afraid to dive into the source code of this lib, reread open and closed issues you may found a huge amount of cool things that help to build complex graphql schemas.

Is this project still in Pre Production?
Yep, still in Pre Production.

If not when do you plan on moving it towards production?
The community should decide when it becomes production ready. I can not alone make it production ready without feedback and community help.

It is very stable, the API is working without bugs. i have used almost 100% of the functions in a single API.
Altho i think that getting the documentation in place, and some polish of the API would be a good idea 😉


Turtle Editing in the Browser with Syntax Checking and Highlighting

Using open source libraries and some Javascript we can comfortably edit turtle files in the browser and immediately check for syntax errors. A demo and more information can be found in directory TurtleEditor in the vocol repo.

This is precisely what I had in mind for the future - thanks a lot for that link!

We might be able to reuse code from XTurtle, or at least take inspiration from it, thus closing #41

@data-whisperer We updated some more comments and closed some old issues (#41, #37) as duplicates.


Inconsistent chain naming in Lc2ppiK.json

In the Lc2ppiK.json example, the names in the chains sometimes have brackets and sometimes don't.
https://github.com/RUB-EP1/amplitude-serialization/blob/9fcd26e8c7cd487d93f902529c5513c977e03e62/Lc2ppiK.json#L62
https://github.com/RUB-EP1/amplitude-serialization/blob/9fcd26e8c7cd487d93f902529c5513c977e03e62/Lc2ppiK.json#L413
https://github.com/RUB-EP1/amplitude-serialization/blob/9fcd26e8c7cd487d93f902529c5513c977e03e62/Lc2ppiK.json#L602

Rather inconsistency than a bug: the name is an arbitrary string, in principle.
However, Karsten told me that python/c++ does not like brackets in strings

However, Karsten told me that python/c++ does not like brackets in strings

Depends what you do with the string I suppose 😅 But that goes for any language


memory allocated for default env is not deallocated

What steps will reproduce the problem?
1. create db
2. delete db
3. run the program using valgrind.

    Options options_;
    options_.create_if_missing = true;
    options_.block_cache = cache_; // uses the default
    options_.write_buffer_size = 0;
    Status s = DB::Open(options_, dbRoot, &db_);
    delete db_;

What is the expected output? What do you see instead?

Expected no memory leak.

==605== 512 bytes in 1 blocks are still reachable in loss record 11 of 13
==605==    at 0x4C274B4: operator new(unsigned long) (vg_replace_malloc.c:287)
==605==    by 0x79836C2: leveldb::InitDefaultEnv() (in
/usr/local/maui/lib/libleveldb.so.1)
==605==    by 0x8968B52: pthread_once (in /lib64/libpthread-2.11.1.so)
==605==    by 0x7982A26: leveldb::Env::Default() (in
/usr/local/maui/lib/libleveldb.so.1)
==605==    by 0x7985FFC: leveldb::Options::Options() (in
/usr/local/maui/lib/libleveldb.so.1)
==605==    by 0x4EAFBB1: KVStoreStage::KVStoreStage(char const*)
(kvstorestage.cxx:44)
==605==    by 0x4EAFCFF: KVStoreStage::makeStage(std::string const&,
Properties*) (kvstorestage.cxx:252)
==605==    by 0x5658525: ClassFactory<Stage>::makeInstance(std::string const&,
Properties*) (classfactory.hxx:150)
==605==    by 0x5656945: SedaConfig::instantiate() (sedaconfig.cxx:334)
==605==    by 0x5658388: SedaConfig::init() (sedaconfig.cxx:215)
==605==    by 0x464259: main (kvs.cxx:120)

env.h
class Env {
 public:
  Env() { }
  virtual ~Env();

  // Return a default environment suitable for the current operating
  // system.  Sophisticated users may wish to provide their own Env
  // implementation instead of relying on this default environment.
  //
  // The result of Default() belongs to leveldb and must never be deleted.
  static Env* Default();

What version of the product are you using? On what operating system?

1.5.0, OS Suse Linux 11

Please provide any additional information below.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 27 Jul 2012 at 12:38

This is intentional so that leveldb can be used in programs that contain
threads that are active while the process is exit-ing.  If we attempted to
clean up the default Env, we would end up causing problems for background
threads.

My recommendation is to use valgrind to report only non-reachable memory, and
ignore or suppress any warnings related to reachable memory.

Also, see the answers to:

http://stackoverflow.com/questions/3840582/still-reachable-leak-detected-by-valg
rind

Original comment by<EMAIL_ADDRESS>on 27 Jul 2012 at 10:38

Changed state: WontFix


Add localization support

For now the tools only output english. It may be good to localize them.
Should be using library: https://pkg.go.dev/github.com/robfig/gettext-go/gettext

PR for the merge conflict tool: https://gitlab.suse.de/galaxy/suma-release-tools/-/merge_requests/8
Remaining to do:

merge the PR in main
create master-weblate branch
update weblate to use master-weblate


[Event Request] Table Purchase Header - Pay-to Contact No. - OnValidate - OnBeforeConfirmPayToContactNoChange

Hello, we need a way to control the confirmation. Thanks in advance.
trigger OnValidate()
var
    ContBusinessRelation: Record "Contact Business Relation";
    Cont: Record Contact;
//-new
    IsHandled: Boolean;
//+new
begin
    TestStatusOpen();

    if "Pay-to Contact No." <> '' then
        if Cont.Get("Pay-to Contact No.") then
            Cont.CheckIfPrivacyBlockedGeneric;

    if ("Pay-to Contact No." <> xRec."Pay-to Contact No.") and
    (xRec."Pay-to Contact No." <> '')
    then begin
//-new
        IsHandled := false;
        OnBeforeConfirmPayToContactNoChange(Rec, xRec, CurrFieldNo, Confirmed, IsHandled);
        if not IsHandled then
//+new
            if GetHideValidationDialog or not GuiAllowed then
                Confirmed := true
            else
                Confirmed := Confirm(ConfirmChangeQst, false, FieldCaption("Pay-to Contact No."));
        if Confirmed then begin
            if InitFromContact("Pay-to Contact No.", "Pay-to Vendor No.", FieldCaption("Pay-to Contact No.")) then
                exit
        end else begin
            "Pay-to Contact No." := xRec."Pay-to Contact No.";
            exit;
        end;
    end;
// ...
end;

[IntegrationEvent(false, false)]
local procedure OnBeforeConfirmPayToContactNoChange(var PurchaseHeader: Record "Purchase Header"; var xPurchaseHeader: Record "Purchase Header"; CurrentFieldNo: Integer; var Confirmed: Boolean; var IsHandled: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


corrected code to build for windows

corrected code to build for windows

Thanks for this, can you please add a sign-off to your PR comment?
Signed-off-by: Your Name<EMAIL_ADDRESS>

Signed-off-by: Vadym<EMAIL_ADDRESS>

Thanks for this, can you please add a sign-off to your PR comment?
Signed-off-by: Your Name<EMAIL_ADDRESS>

Done


[BUG] Upgrade from v1.2.1->v1.2-head ( Version: v1.2-16a196b9-head / 03/13/24 ) w/ PCI Devices, PCI Network Device Attached to VM doesn't come back up

Describe the bug
Upgrade from v1.2.1 with a PCI Network Card like:
  *-network:1
       description: Ethernet interface
       product: 82571EB/82571GB Gigabit Ethernet Controller (Copper)
       vendor: Intel Corporation
       physical id: 0.1
       bus info: pci@0000:09:00.1
       logical name: enp9s0f1
       version: 06
       serial: 00:14:5e:ea:33:82
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=5.14.21-150400.24.103-default duplex=full firmware=5.12-2 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
       resources: irq:109 memory:92b20000-92b3ffff memory:92b00000-92b1ffff ioport:2000(size=32) memory:92ba0000-92bbffff

With two ports passed into the VM.
Watch on v1.2.1, VM comes up, it can be manipulated.
PCI Passthrough working, link comes up.
Power off VM.
Upgrade to v1.2-head.
VM is stuck in:
FailedCreate
 Error creating pod: Internal error occurred: add operation does not apply: doc is missing path: "/spec/containers/1/securityContext/capabilities/add/-": missing value

To Reproduce
Steps to reproduce the behavior:

v1.2.1, have PCI Passthrough, intel nic, two ports attached to vm
validate nic pci passthrough works
power off vm
upgrade single node cluster to v1.2-head  Version: v1.2-16a196b9-head  (03/13/24)
vm never comes back on line when it's requested to:

FailedCreate
 Error creating pod: Internal error occurred: add operation does not apply: doc is missing path: "/spec/containers/1/securityContext/capabilities/add/-": missing value

Attempts

attempted to remove the pci devices attached to vm, vm can power on
then attempted to power off vm, re-add the pci devices, still fails
attempted to add a regular network & remove a regular network, no changes

Expected behavior
A vm, post v1.2-head upgrade with PCI NIC Ports attached be able to come back online
Support bundle
supportbundle_7f93ea09-3847-4763-87d8-8f20d68ef9de_2024-03-14T23-49-44Z.zip
Environment

Harvester ISO version: v1.2.1 -> Version: v1.2-16a196b9-head  (03/13/24), single node
Underlying Infrastructure: HP DL160 Gen 9

Additional context

time="2024-03-15T00:19:30Z" level=info msg="add validation handler for [pcideviceclaims].devices.harvesterhci.io (PCIDeviceClaim)"
time="2024-03-15T00:19:30Z" level=info msg="Adding test-v121-node6-000008001 to KubeVirt list of permitted devices"
time="2024-03-15T00:19:30Z" level=info msg="Adding test-v121-node6-000008000 to KubeVirt list of permitted devices"
time="2024-03-15T00:19:31Z" level=info msg="Active TLS secret harvester-system/pcidevices-webhook-tls (ver=34141) (count 1): map[listener.cattle.io/cn-pcidevices-webhook.harvester-system.svc:pcidevice
time="2024-03-15T00:19:31Z" level=info msg="Listening on :8443"
time="2024-03-15T00:19:31Z" level=info msg="Creating DevicePlugin: intel.com/82571EB_82571GB_GIGABIT_ETHERNET_CONTROLLER_COPPER"
time="2024-03-15T00:19:31Z" level=info msg="Started DevicePlugin: intel.com/82571EB_82571GB_GIGABIT_ETHERNET_CONTROLLER_COPPER"
time="2024-03-15T00:19:31Z" level=info msg="Adding test-v121-node6-000009000 to KubeVirt list of permitted devices"
time="2024-03-15T00:19:31Z" level=info msg="Adding new claimed intel.com/82571EB_82571GB_GIGABIT_ETHERNET_CONTROLLER_COPPER to device plugin"
{"component":"","level":"info","msg":"Initialized DevicePlugin: intel.com/82571EB_82571GB_GIGABIT_ETHERNET_CONTROLLER_COPPER","pos":"device_manager.go:206","timestamp":"2024-03-15T00:19:31.893029Z"}
time="2024-03-15T00:19:32Z" level=info msg="Adding new claimed intel.com/82571EB_82571GB_GIGABIT_ETHERNET_CONTROLLER_COPPER to device plugin"
time="2024-03-15T00:19:32Z" level=info msg="Adding test-v121-node6-000009001 to KubeVirt list of permitted devices"
time="2024-03-15T00:19:33Z" level=info msg="Adding new claimed intel.com/82571EB_82571GB_GIGABIT_ETHERNET_CONTROLLER_COPPER to device plugin"
I0315 00:20:02.693300       1 trace.go:219] Trace[1106410694]: "Reflector ListAndWatch" name:github.com/harvester/pcidevices/go/pkg/mod/k8s.io/client-go@v0.23.7/tools/cache/reflector.go:167 (15-Mar-20
Trace[1106410694]: ---"Objects listed" error:<nil> 26300ms (00:20:02.692)
Trace[1106410694]: [26.300528s] [26.300528s] END
I0315 00:20:03.298189       1 trace.go:219] Trace[460128162]: "Reflector ListAndWatch" name:github.com/harvester/pcidevices/go/pkg/mod/k8s.io/client-go@v0.23.7/tools/cache/reflector.go:167 (15-Mar-202
Trace[460128162]: ---"Objects listed" error:<nil> 26905ms (00:20:03.297)
Trace[460128162]: [26.905733194s] [26.905733194s] END
time="2024-03-15T00:20:03Z" level=info msg="Starting kubevirt.io/v1, Kind=VirtualMachine controller"
time="2024-03-15T00:20:03Z" level=info msg="Starting apiregistration.k8s.io/v1, Kind=APIService controller"
time="2024-03-15T00:20:03Z" level=info msg="Starting devices.harvesterhci.io/v1beta1, Kind=PCIDeviceClaim controller"


Loading workspace wrong

I think some more info is needed. What plugins are you using? What are you trying to do? Find the console output and make it available.

Yes, what @pkej said. More information would be helpful!

Thanks! There's no problem now.

PS: This issue originates from conflicting with zotlit after 1.8.1.

PS: This issue originates from coflicting with Zotlit plugin after 1.8.0.

PS: This issue originates from coflicting with Zotlit plugin after 0.18.0.

The conflict causes Obsidian to be stuck in the "Loading workspace" screen?

Yes, but 0.2.1 ok again!

Yes, but 0.21.0 ok again!


fix: salud self check

Checklist

[ ] I have read the coding guide.
[ ] My change requires a documentation update, and I have done it.
[ ] I have added tests to cover my changes.
[ ] I have filled out the description and linked the related issues.

Description
mark self as unhealthy only if the local radius is below a certain threshold compared to the network radius.
Open API Spec Version Changes (if applicable)

Motivation and Context (Optional)

Related Issue (Optional)

Screenshots (if appropriate):

handled by https://github.com/ethersphere/bee/pull/4892


Line break in

Caused by  tag rendered in a new line (inline-block behavior)

Disable rendering  tag in markdown-it
Use Flexbox

Fixed using inline


feat(ui/data-contract): Data contract UI under Validation Tab

Screencast from 14-06-24 04:42:06 PM IST.webm
Test cases
Tested with below scenarios on OSS for Data Contract Feature:

Checked with assertion type Dataset, Volume -> combined in Data Quality
Checked with assertion type Freshness -> it is showing as Freshness section on Data Contract Tab
Assigned Data contract symbol to assertion list as like SaaS does
Data contract symbol is redirecting correctly to Data Contract Tab
Adding Contract and Removing contract also working Properly

Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

Tested Below Scenarios:

Checked with assertion type Dataset, Volume -> combined in Data Quality
Checked with assertion type Freshness -> it is showing as Freshness section on Data Contract Tab
Assigned Data contract symbol to assertion list as like SaaS does
Data contract symbol is redirecting correctly to Data Contract Tab
Adding Contract and Removing contract also working Properly

Looks like there's failing checks, please fix before merge.


GPS geoid calculation

Hi there,
Great parser, easy to use. I found problem with the altitude calculation. I seems that you have to subtract the geoid from the altitude. (https://eos-gnss.com/elevation-for-beginners/) In your code at line 191:   gh->p.data.gga.altitude += parse_double_number(gh, NULL);
Should it not be   gh->p.data.gga.altitude -= parse_double_number(gh, NULL); ?
Thanks
Marco

@FreeVario thanks for feedback. I believe code is right, according to answer here and explanation. https://gis.stackexchange.com/questions/174046/relation-between-geoidal-separation-and-antenna-altitude-in-gga-sentence

Yes, that's what so confusing. There are two formulas h=H+N and H = h – N. I think we should calculate H, and not h. The problem I'm having is that I'm feeding the same NMEA data to XCtrack and it is showing the correct altitude while the NMEA parser lib shows 50 meters higher.

Can you post here full NMEA statements to see? Thanks.

XCtrack is reporting altitude between -4 and -12 meters. That close enough to be accurate. I think it XCTrack is ignoring the geoid calculation. Looking at the geoid value (47.1) it does not matter which formula I use, it will never be correct. I'm wondering if the GPS is giving the wrong geoid values. Might be better if I disable the geoid calculation in the library.
Bluetooth Terminal HC-05-2.txt
Bluetooth Terminal HC-05.txt

This also uses H = h – N.
https://www.unavco.org/software/geodetic-utilities/geoid-height-calculator/geoid-height-calculator.html
Your Input Coordinates and GPS Height:
Latitude: 52.0897222222222° N = 52° 5' 23" N
Longitude: 4.53527777777778° E = 4° 32' 7" E
GPS ellipsoidal height: -4 (meters)
Geoid height: 43.328 (meters)
Orthometric height (height above EGM96 geoid which approximates mean sea level): -47.328 (meters)
(Note: orthometric height = GPS ellipsoidal height - geoid height)
I think that XCTrack is also in the wrong here by not calculating the amsl.

I see your point. If height is negative by received, we need to subtract it as absolute height is then higher than from GPS. So - is better then.

Yes, but, also, the altitude value of GGA sentence, already is based on MSL (mean sea level), for my use (paragliding) the conversion must therefore not be done (we use amsl standard for altitude), which explains the conflict with XCTrack. I'm going to remove the conversion in my code. Maybe it's easier if you have the altitude and geoid as seperate values, those who need to do a conversion can then do it in their own code.
Anyway thanks for your help! I'm on the right track again.

Done.


Surface Deletions Better

There's currently a discussion going on about if we want to make any changes to when things are able to be deleted from PyPI, it's not clear how that will turn out but almost certainly there's going to still be situations when things can get deleted from PyPI.
Currently when something gets deleted from PyPI there's no longer any record of it outside of the journals/audit logs. This missing information can make debugging harder for users of PyPI when some file goes missing that used to exist.
It might be worthwhile to expose these deletions in some way, possibly to even give people a way to add a note for why something was deleted.
For Python level tools, if the version specifier allows other files besides the deleted one, it will just silently grab another version. This can paper over a lot of the obvious problems that happen with deletions (but not all of them, since there may not be other files that are acceptable) but this can actually make subtle bugs more frustrating to discover or debug since you may end up with different versions. Pinning it The(Tm) solution to that, but pinning makes it more likely that this error turns into a hard error, leaving people's heads scratching.
For non-python level tooling, a lot of them pin to a specific URL (or a set of URLs to allow for mirroring) and bake that into their downstream build systems.
In some cases, deletions probably go unnoticed by these systems because, as an implementation detail of PyPI, deletions don't actually delete the underlying file from our blob storage, and files.pythonhosted.org doesn't consult the database, it just goes direct to the blob storage. That means that if you know the full URL with the hash in it and are pinned to it, you're currently safe from deletion affecting you BUT, that is an implementation detail of PyPI and is subject to change at any time.
In other cases, downstream wants to be able to construct the URL from nothing but the package name and version, without having to bake in our long URL structure. Those downstreams are relying on a redirect powered by Conveyor, which hits the JSON API to fetch the real underlying URL and redirect to that URL. In those cases, when Conveyor tries to generate the redirect, it gets no information other than the file doesn't exist in the JSON api, which it turns into a 404 with no additional details.
We could try to surface this situation in a better way, possibly providing details in the 404, or replacing the 404 with a 410 or something like that.
I don't really have any specific ideas here, and it's possible that the discussions around restricting deletions end up making this an edge case that isn't really worth worrying about. I just wanted to get it down as something that we might want to do.

If we are talking about a case where we packages can be deleted from the PyPI and what would be the outcome, then I don't think it needs much of attention but what we can do to improve user experience we can show when was the package deleted but rest of the problem need not be considered as the chance of happening is quite less and can be ignoreed

As a related question, does this behaviour mean that sensitive data persists via pythonhosted URLs, when that data has been published in a PyPI package?
For example, see this PR where someone requested removal of a package entry from the pypi-data repository, after they also deleted the associated package which contained AWS access keys.[^1]
The PR contains pythonhosted URLs in that PR and these URLs are still accessible for me. That behaviour is in line with @dstufft's comment here:

deletions don't actually delete the underlying file from our blob storage, and files.pythonhosted.org doesn't consult the database, it just goes direct to the blob storage.

It's surprising — and I'm not sure if it's documented somewhere where users might read[^2] — behaviour to me that deleting the package from PyPI does not delete the underlying data.
[^1]: The blog post by the repository owner gives more context. That repository owner deactivated the AWS key themselves, so in this particular case, the details should not longer be sensitive, although do remain an embarrassment :flushed:
[^2]: It's not mentioned in the prompt that users see when deleting a package. If there are real legal issues for deletion, then it might also be necessary to make that data entirely inaccessible. (Deletion is often a tricky problem!)


Branding issue

I'm the developer of Heliactyl before it went EOL and I just want to say that we don't allow forks to have names that imply they the official / latest version of Heliactyl - that would include "Heliactyl-fixed"
Please use a name such as "BetterHeliactyl", or anything that has a word before it
You should also state that it is a fork of Heliactyl v12 and not official
Thank you

Also, if you'd like the latest patches for v12/v14, add me on discord (username is atqr)

This is not stated in your licenses, and forks have every right to the licenses if they are the main creators.

We try and enforce some basic rules on forks (and have since 2022), this is to prevent unofficial Heliactyl forks from being shown over the official (but EOL) Heliactyl

Accept me on discord we'll discuss this tomorrow (achul123)


Typo in JSON output?

The JSON reports reads:
[
  "criterio",
  "<IP_ADDRESS>",
  [...

Was this intentional?

Oops, that does indeed look like a typo. I'll make sure to fix this in the next major release of criterion.


How can i setup the upload download per candidate while using MCU?

I have a scenario for University Belgium where i need to do as following:
1 - Physics Professor starts the class at 9AM, his video, audio is active
2 - Physics Students join the class 10, 20, 50, 90, 100, 200 students depends
3 - Professor can see all the students and hear the students (interactive is full-duplex with professor to student)
4 - Students can see Professor and hear Professor, but Students can not see other Students nor can Hear others.
While using MCU module of SimpleWebRTC how can i achieve this please? ( i have always full-duplex video, audio, how can i tell SimpleWebRTC that do not download video to save bandwidth and also do not download audio from all others except 1 person in MCU?)
Please advise.

file an issue on the mcu module please.


When I use OpenAI through API, in what circumstances will OpenAI actively close the HTTP connection that I initiate?

I/O error on POST request for "https://api.openai.com/v1/chat/completions": Unexpected end of file from server; nested ex
ception is java.net.SocketException: Unexpected end of file from server
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api.openai.com/v1/chat/completions": Unexpected end of file from server; nested exception is java.net.SocketException: Unexpected end of file from
server

You can try to use https://github.com/forestwanglin/openai-java SDK if you use Java as client language.

Hi All, This issue is not close, as it is an exception that arises sometimes (as often as 5-10% for me !) it takes over 30 seconds to get this error, so the response time is sometimes very very long...


Сatenation MC stall

After updating to new version and using new catenation api, i encounter MC window unresponding.
This happen when i firstly subscribe to events.onPlayerLoggedIn, then  create new catenation with sleeps
e.player.world.catenation().sleep(100).then(function(world) {
    print('First then');
  })

  .sleep(300).then(function(world) {
    print('Second then');
    runAutomation(e.player);
  }).start();

and then create another inside
function runAutomation(player as IPlayer) as void {
  print('runAutomation');
  player.world.catenation().sleep(20).then(function(world) {
    print('First catenation');
  }).start();
  print('end');

Output looks like this:
First then
Second then
runAutomation
end

And then MC window hang unresponding.
Crash Report:
java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    at java.util.ArrayList$Itr.next(ArrayList.java:851)
    at com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.next(AbstractMapBasedMultimap.java:496)
    at java.util.Collection.removeIf(Collection.java:414)
    at youyihj.zenutils.impl.util.catenation.CatenationManager.onWorldTick(CatenationManager.java:25)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1841_CatenationManager_onWorldTick_WorldTickEvent.invoke(.dynamic)

Logs
crash-2022-08-05_09.02.37-server.txt
debug.log

Although I fixed the issue, I doubted why you did this. I think it is because you can't share data between catenation tasks. So I add CatenationContext to implement this feature in version 1.11.2.
This means you can do...
e.player.world.catenation().sleep(100).then(function(world, context) {
    print('First then');
  })
  .sleep(300).then(function(world, context) {
    context.data = true; // the data is an `IData`, boolean should implicitly cast to IData
    print('Second then');
  })
   .sleep(20).then(function(world, context) {
     if (context.data.asBool()) {
        print('First catenation');
     }
  }).start();

Yep, new context argument to this functions. It is a breaking change.

runAutomation() function called with command manager. So i need this function to be called from two places.
I don't understand actually why i should use context.

So I thought wrong before, but it's a good feature anyway. 😅


No data shown on any app server!!!

I have trying to use this library in TTN and Chirpstack with no success, It seems the problem is inside UDP, I;m not certain.
Both servers let me see uplinkdata on the network server, but do not take it to the application server. Any advise to solve this issue?

UDP packet should be at network server only.
I think app server is not dealing with UDP packet.


Validate by props, not data

I have props newTax, how i can validate form by this props?

You can pass the 'newTax' to the validator, for example
validators: {
   'name, newTax' (name, newTax) {
     if (newTax) return Validator.value(name).required();
   }
   ...
}

Also please have a check on this:
http://simple-vue-validator.maijin.info/#cross_field_validation


Repromise vs Future

How does this library compare to Future, a "Js.Promise alternative [...] written in ReasonML" – ?

The main difference is:

Repromise objects, in the vast majority of cases, are the familiar JS promises under the hood. This means that a Repromise containing an int, is implemented as a JS promise containing a JS number.

Repromise just takes care of one corner case in JS promises, that makes JS promises not type-safe out of the box. Repromises are type-safe. See this explanation if you'd like to know the details.
In contrast, future is an alternative implementation of promises.

This has several consequences:

In the vast majority of cases (see here), existing JS libraries that take or return JS promises, already take and return Repromises for free. So, when writing a binding for a JS library, you don't have to convert JS promises to Repromises and vice versa. You just declare that the JS library's functions take and return Repromises.
By contrast, with an alternative implementation, you have to call helpers to convert between JS promises and custom promises around each FFI call, probably building that conversion into the binding you are writing.

Tooling from the JS community built for JS promises works with Repromises for free. If you inspect a Repromise, it will look exactly like a JS promise (except in that one corner case, of course, but even in that case, the representation is simple and predictable).

The Repromise compiled JS code is quite small (~1K compressed last I checked), because Repromise basically reuses JS promises for free, and only replaces a couple of troublesome methods with type-safe ones.

Of course, Repromise also has a second pure-Reason implementation, implementing promises from the ground up. However, Repromise currently doesn't use this for JS. It's used for providing the same Repromise API on native, i.e. it implements type-safe JS-like promises when targeting native code.

I think that's most of it, but perhaps I forgot something :)

Thanks!


Potential dependency conflicts between marathon-lb and urllib3

Hi, ** marathon-lb ** directly and transitively introduced multiple versions of urllib3.
As shown in the following full dependency graph of  marathon-lb, marathon-lb requires urllib3 (the latest version), while the installed version of requests(2.22.0) requires urllib3>=1.21.1,<1.26.
According to pip's “first found wins” installation strategy, urllib3 1.25.3 is the actually installed version.
Although the first found package version urllib3 1.25.3 just satisfies the later dependency constraint (urllib3>=1.21.1,<1.26), it will lead to a build failure once developers release a newer version of urllib3.
Dependency tree--------
marathon-lb(version range:)
| +-cryptography(version range:)
| +-pycurl(version range:)
| +-pyjwt(version range:==1.4.0)
| +-python-dateutil(version range:)
| +-requests(version range:)
| | +-chardet(version range:>=3.0.2,<3.1.0)
| | +-idna(version range:>=2.5,<2.9)
| | +-urllib3(version range:>=1.21.1,<1.26)
| | +-certifi(version range:>=2017.4.17)
| +-six(version range:)
| +-urllib3(version range:)

Thanks for your attention.
Best,
Neolith

Solution

Fix your direct dependencies to be urllib3>=1.21.1,<1.26 and requests==2.22.0, to remove this conflict.
I have checked this revision will not affect your downstream projects now.

Remove your direct dependency urllib3, and use urllib3 transitively introduced by request.

@   Please let me know your choice. I can submit a PR to solve this issue.
Build a good dependency ecosystem for python projects is our common goal ^_^.


[Feature] Handling of feature ID's and Json

This discussion refers to Pull-Request: https://github.com/osgi/osgi/pull/261
For me the features ID, that is a GAV String, similar to what we do with org.osgi.framework.Filter. We have the ' FrameworkUtil` that is the factory for creating Filter instances, where Filter is an Interface. This factory provides the validation of the provided filter in respect to the syntax. So it takes care that the provided filter string is correct.
Beside this, we use the filter-strings in our service properties, that are later converted into Filter instances.
For the feature ID that would mean, making it an interface. We have to provide one or more factory methods, with corresponding signatures (maybe from the current class implementation), that validate the provided parameters and ensure that we get a valid ID instance. In this case it would be possible to delegate the implementation of the validation to specification implementors. The specification should then define the validation rules.
That would also make it possible to define the type of an ID in e.g. the org.osgi.service.feature.FeatureArtifact as a String to must be a valid ID-String. That would make the corresponding JSON, more compliant to common Json-Serializers. So a Json for a Feature artifact could always look like this:
{
  "id": "org.acme:acmeapp:1.0.1",
  "name": "The Acme Application",
  "license": "https://opensource.org/licenses/Apache-2.0",
  "isComplete": true,
  "bundles": [
        { "id": "org.osgi:org.osgi.util.function:1.1.0"},
        { "id": "org.osgi:org.osgi.util.promise:1.1.1"},
        {
            "id": "org.apache.commons:commons-email:1.5",
            "metadata":[
                 {"org.acme.javadoc.link": "https://commons.apache.org/proper/commons-email/javadocs/api-1.5"},
                 {"id": "test"}
             ]
      },
      { "id": "com.acme:acmelib:1.7.2"}
    ]
}

instead of the format in the current. Because especially when using the metadata, this format would allow, having a property with key id in the metadata map. When having the valid Json like this:
{
  "id": "org.acme:acmeapp:1.0.1",
  "name": "The Acme Application",
  "license": "https://opensource.org/licenses/Apache-2.0",
  "isComplete": true,
  "bundles": [
      "id": "org.osgi:org.osgi.util.function:1.1.0",
      "id": "org.osgi:org.osgi.util.promise:1.1.1",
      {
          "id": "org.apache.commons:commons-email:1.5",
          "org.acme.javadoc.link": "https://commons.apache.org/proper/commons-email/javadocs/api-1.5",
          "id": "test"// HMMM, could lead into confusion
        },
        "id": "com.acme:acmelib:1.7.2"
      ]
}

We may endup with additional restrictions and rules regarding serialization an de-serialization. If we handle it always as complex object, it would make the underlying model more clear. I think this is better than creating an own Json dialect , just for removing some boilerplate characters.
I also respect, that we want to be close to the configurator format. In the case of features the structure is more complex an may get more complex in future versions.  Thats' why I think we shouldn't create a serialization format, that is causes additional efforts for customizing serializiers and de-serializers to fit our Json model. Such an additional complexity, just for reading or writing a Json-like files, may keep potential implementors away. That would have to spend a extra effort in custom de-/serialization instead of implementing functionality.
That's why I would discuss a more compliant Json format, that is easy to understand for users and implementors.

Bare IDs are no longer supported. They need to be inside a JSON object.
Custom metadata should be prefixed with reverse DNS names (as mentioned in the spec). Non-prefixed metadata is for OSGi-specified keys only. So there should be no clash with the "id" key.


Change the metric that dimensions are sorted by

When I look at dimensions in the "pinned" area or after clicking on a dimension in the left pane, I cannot seem to change which metric it is sorting by.  I'd really like to be able to do that.

+1

+1, this is really important and should be coming relatively soon.

This is fixed in the latest release :-)


Miscellaneous DAP cleanup and small fixes

Noteworthy changes:

MEM_AP checks whether 64-bit addresses are supported, though it doesn't actually implement the support yet.
MEM_AP and the STLink probe mask memory addresses based on the supported address size (32/64-bit).
Removed detection of CSW.MSTRTYPE support, replaced with a flag in the ID table. Only the AHB-AP included with the Cortex-M3 and Cortex-M4 has MSTRTYPE.

The rest of the changes are tiny changes to clean things up, or tiny improvements in the code that don't have a noticeable effect.

/morph test


Explanation needed

I don't understand what is this article about. It starts talking about security, without explaining in what way will it be achieved. Is it about intra-service communication in a secured cluster? If so, why not simply instantiate and use a FabricClient?

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

ID: 35d1ffc2-b8c3-fbaf-edc4-6c378089c327
Version Independent ID: 081f8fa0-285d-ec0d-feaf-9449a90077a2
Content: Secure service remoting communications with C# - Azure Service Fabric
Content Source: articles/service-fabric/service-fabric-reliable-services-secure-communication.md
Service: service-fabric
GitHub Login: @suchiagicha
Microsoft Alias: pepogors

@mcurko
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@peterpogorski @suchiagicha
Can you please check and add your comments on this doc update request as applicable.

Hi @mcurko, this document is specifically about securing service remoting for inter-service remoting calls. The main doc for service remoting is here https://docs.microsoft.com/azure/service-fabric/service-fabric-reliable-services-communication-remoting.
FabricClient is for talking to SF, which may include management operations, or in the case of inter-service communication, for resolving the location of a service, but FabricClient does not facilitate inter-service communication.
Service remoting is an alternative to, say, creating a REST API between your services to facilitate inter-service communication; it allows you to make remote procedure calls between reliable services. Let me know if you have follow up questions.

Hi @mcurko, this document is specifically about securing service remoting for inter-service remoting calls. The main doc for service remoting is here https://docs.microsoft.com/azure/service-fabric/service-fabric-reliable-services-communication-remoting.
FabricClient is for talking to SF, which may include management operations, or in the case of inter-service communication, for resolving the location of a service, but FabricClient does not facilitate inter-service communication.
Service remoting is an alternative to, say, creating a REST API between your services to facilitate inter-service communication; it allows you to make remote procedure calls between reliable services. Let me know if you have follow up questions.

OK, so here we're encrypting RPC communication. I wonder, since cluster nodes already use server/cluster certificates for node-to-node communication (here I exclude unsecured clusters), isn't encrypting RPC communication redundant?

OK, so here we're encrypting RPC communication. I wonder, since cluster nodes already use server/cluster certificates for node-to-node communication (here I exclude unsecured clusters), isn't encrypting RPC communication redundant?

A secured cluster means secure node-to-node transport through our Transport layer is secured, and then client-server relationships with SF are secure. My understanding however is that the RPC stack is not built on Transport (or specifically the same instance of Transport), hence the redundancy. Let me add someone to confirm.

A secured cluster means secure node-to-node transport through our Transport layer is secured, and then client-server relationships with SF are secure. My understanding however is that the RPC stack is not built on Transport (or specifically the same instance of Transport), hence the redundancy. Let me add someone to confirm.

Thanks for your dedication to our documentation. Unfortunately, at this time we have been unable to review your issue in a timely manner and we sincerely apologize for the delayed response. Though the scope of our feedback channel here on GitHub covers specific documentation fixes, we can help redirect you to the right support channel to get an answer to your question: [reference to alternative product/service or community endpoint]. Because this issue does not relate to documentation, we are closing this issue. #please-close


Add explaining-segregated-witness to bitcoin-magazine/bitcoin-explained

This PR adds Explaining Segregated Witness transcript to the bitcoin-magazine/bitcoin-explained directory.

Awesome editing @nillawafa! You really put the work to make this as readable as possible! Great use of commas ',' and quotes throughout the text. The addition of extra chapters and timestamp changes is also appreciated! I've replaced some uncaught occurrences of "OPRETURN" alongside the deletion of the ad and some minor fixups.
Feedback for you
For readability purposes don't hold back from deleting mid-sense rephrasings such as " ~It was developed in--~ it started being developed in 2015." or "Yeah, so the solution there is to ~put the hash, sorry,~ put the signature in a separate place..."
Feedback for us
Also, We'd love to hear your feedback for this project(anonymously) as we are trying to improve and make the experience better for all.
Thank you for your contribution! Hopefully we will see more transcripts from you in the future!


New fixture - Chauvet-LED-PAR-64-Tri-B

Same functionality as Chauvet SlimPAR 64 so copied it.

Perfect, thanks


Bad nested sliders in deadgrep

In deadgrep commit: d0a2ca6e49bd41771ae5cd5f7878351b77c6827e

The parentheses outside -when-let should be marked as novel (red).

Monky d93a10fb4735013bb4ed2661a5531ab643049705 is another example


The API Gateway must include a discovery service

The Discovery Service is an HTTP service ( aiomisc and AIOHTTP ).
Config:
the discovery service must get configuration parametwr from the config file:
the parameters are:

ip
port

Way of working
the discovery service must receive call from the microservice:

/subscribe
/unsubscribe
/discover

Subscribe:
the microservice send a POST to the subscribe url with:

ip/host microservice
port of the rest service of the microservice
name of the microservice

Unsubscribe
the unsubscribe receive a POST with the following information:

name of the service

Discover
the discover route must accept a GET with the following parameters:

name of the microservice

the discover must check if the name exist and return the Host/port of the microservice

Move to separate package "discovery"


Fixed the python controller so we can set controls

Hey folks, this fixes some minor issues with the python controller. Also fixed another python test that was failing.

Thank you!


Add support for Linux Mint distributions in idt-installer

See: #169

I'll close this PR because the git repo is now deprecated (see https://github.com/IBM-Cloud/ibm-cloud-developer-tools)