0000-Warning to 5G Hotspot Deployers

This proposal advocates for the implementation of a robust disclosure system on all Helium communication platforms, emphasizing the potential risks associated with network participation. The aim is to ensure that all users, especially hotspot owners, are fully aware of the liabilities and dangers they might inadvertently encounter.
This proposal calls for Helium to implement a comprehensive disclosure strategy, using vibrant warning colors (red, yellow, black), on all communication platforms including emails, website pages, and app interfaces. This disclosure will inform hotspot owners, mobile customers, and token holders about the potential risks associated with providing access to private networks through Helium. These risks may include exposure to harmful or illegal activities, such as illegal downloads leading to DMCA warnings or lawsuits, facilitation of criminal activities, and access to illicit content.

T-Mobile is not partnered with Helium, and the community does not get to vote on who we (Nova Labs) partner with as a private business for our own products.

Same comment as here: https://github.com/helium/HIP/pull/861#issuecomment-1875515585

Thank you.  I'll be including these in my whistle-blower complaint to the SECSent from my Galaxy
-------- Original message --------From: Amir Haleem @.> Date: 1/3/24  8:21 PM  (GMT+12:00) To: helium/HIP @.> Cc: raynef1re @.>, Author @.> Subject: Re: [helium/HIP] 0000-Warning to 5G Hotspot Deployers (PR #862)
Closed #862.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>


logging: add mechanism for handling transient strings

Extending logger to support logging transient strings (with %s).
With dedicated call (log_strdup), string is duplicated to a buffer
from internal logger pool. Logger implicitly manages the pool.
Fixes: #9090
The best solution i could get is following:
Added function log_strdup(char *) which returns duplicate of the string. Buffer for duplicate is allocated from the configurable pool.
The main challange is to free it together with the log message. This is achieved by using a preprocessor to build a bitmask with information which argument used log_strdup and store that bitmask in log message. Remaining 10 bits in log message header was used (currently we support max. 9 arguments). When log message is freed bitmask is used to free string duplicates associated with the log message.
Because preprocessor is used, there is almost no performance penalty. In order to detect presence of log_strdup symbol concatenation is used (similar to IS_ENABLED() macro). This implies that argument cannot be explicit string (e.g. LOG_INF("%s", "string")) or in brackets (e.g. LOG_INF("%d", (a+b)). log_str wrapper function must be used for explicit strings (e.g. LOG_INF("%s", log_str("string"))) and brackets must be avoided (they are redundant).
Signed-off-by: Krzysztof Chruscinski<EMAIL_ADDRESS>

Codecov Report

Merging #9820 into master will decrease coverage by 0.01%.
The diff coverage is 45.65%.

@@            Coverage Diff             @@
##           master    #9820      +/-   ##
==========================================
- Coverage   52.24%   52.23%   -0.02%
==========================================
  Files         212      212
  Lines       25949    25984      +35
  Branches     5593     5598       +5
==========================================
+ Hits        13558    13572      +14
- Misses      10155    10175      +20
- Partials     2236     2237       +1

Impacted Files
Coverage Δ

include/logging/log_msg.h
81.81% <ø> (ø)
:arrow_up:

include/misc/util.h
50% <ø> (ø)
:arrow_up:

include/logging/log_core.h
100% <ø> (ø)
:arrow_up:

subsys/logging/log_msg.c
77.62% <0%> (-4.6%)
:arrow_down:

subsys/logging/log_core.c
65.64% <56.75%> (-2.22%)
:arrow_down:

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 19845a7...20671d6. Read the comment docs.

@jhedberg

Would it be possible to have a log_malloc() API as well? This would e.g. allow me to directly encode string-format addresses into a logger-managed buffer, instead of first encoding into a Bluetooth-managed buffer and then copying the result using log_strdup().

It would be doable in a following way:
char *buf = log_malloc();
/* fill buf */
LOG_DBG("addr: %s", log_buffer(buf))

log_buffer is just a wrapper but is used to create a bit mask of buffers managed by the logger:
char * log_buffer(char *buf) { return buf; }
Is this something you've been thinking about?

@nordic-krch yes, but would log_buffer() be needed in our case, since the call will look like this:
LOG_DBG("%s", bt_addr_le_str(&addr));

In the above case bt_addr_le_str() would internally do the loc_malloc() call and encode the string-format address to the allocated buffer. Is there something we could do to the bt_addr_le_str() definition to avoid having two nested calls, i.e. log_buffer(bt_addr_le_str(&addr))?

@jhedberg

Is there something we could do to the bt_addr_le_str() definition to avoid having two nested calls, i.e. log_buffer(bt_addr_le_str(&addr))?

Unfortunately no, we need this log_buffer() to use it at compile time to build bit mask of arguments which contains pointers to buffers that must be freed when log message is freed.

added:

log_malloc
log_strbuf to indicate that buffer from the pool is used It is called strbuf because it must return char * (printfl_like check would fail).


Macpie/ch9751/after state channel outage miner sprays packets

Depends on https://github.com/helium/blockchain-core/pull/784


ArrayIndexOutOfBoundsException when trying to solve Hanoi Tower

In d1e9b64c7cae1a37a54de889cb49a18223d4f80b, test cases for four different instances of the Tower of Hanoi problem are added to the project.
By this, a bug can be discovered that causes an ArrayIndexOutOfBoundsException to be thrown by at.ac.tuwien.kr.alpha.common.NoGood.getLiteral(int):

java.lang.ArrayIndexOutOfBoundsException: -1
at at.ac.tuwien.kr.alpha.common.NoGood.getLiteral(NoGood.java:100)
at at.ac.tuwien.kr.alpha.solver.WatchedNoGood.getLiteralAtAlpha(WatchedNoGood.java:68)
at at.ac.tuwien.kr.alpha.solver.BasicNoGoodStore.addAlphaWatch(BasicNoGoodStore.java:102)
at at.ac.tuwien.kr.alpha.solver.BasicNoGoodStore.ensureWatchInvariantAfterAssignAtLowerDL(BasicNoGoodStore.java:575)
at at.ac.tuwien.kr.alpha.solver.BasicNoGoodStore.propagate(BasicNoGoodStore.java:635)
at at.ac.tuwien.kr.alpha.solver.DefaultSolver.tryAdvance(DefaultSolver.java:104)
at at.ac.tuwien.kr.alpha.solver.AbstractSolver$1.tryAdvance(AbstractSolver.java:31)

This was observed in the following constellations:

HanoiTowerTest.testInstance2() with random BerkMinLiteral
HanoiTowerTest.testInstance1() with random Naive

I am not able to replicate the bug (neither random Naive nor random BerkMinLiteral) after merging fbc723b locally into testing-hanoi. Do you perhaps know the random seeds that caused the exceptions?
Could you verify whether the bug is still present?

Cannot reproduce this either, so possibly it has been fixed by fbc723b58d73386d8deae9da66d8bdb1c6f6344f.


RFC: Async Client fetchOptions support

Summary
We use Keycloak as a service-to-service authentication layer, and want to use URQL on server. Grabbing a (JWT) access token means reaching out to it over the network, and tokens have a low TTL with a refresh token. The way we could resolve this with current implementation is "hacky", in pseudo-code:
let token;

const client = createClient({
  url: 'http://bla.bla',
  fetchOptions: () => ({
    headers: {
      Authorization: `Bearer ${token}`
    }
  }),
});

// here's where it gets awks

getToken().then(t => {
  const jwt = decode(t)
  token = jwt.access_token
  setTimeout(() => {
	t = null;
    getToken();
  }, jwt.expiration_date).unref() // just to sketch, it's not how it works obvsly.
});

This kind of works (I know it can be made to work correctly), but there's a real chance that if this server is under high load that some requests miss their token while a new one is being requested. Making this code work just gets more and more awkward...
Proposed Solution
I understand this has potential performance implications, but what if fetchOptions's function form has this signature instead of the existing one?
fetchOptions: RequestInit | () => RequestInit | () => Promise<RequestInit>

This would quite elegantly solve our problem:
const client = createClient({
  url: 'http://bla.bla',
  fetchOptions: async () => ({
    headers: {
      Authorization: `Bearer ${await getOrFetchToken()}`
    }
  })
})

Requirements

Should not break existing behavior
Existing behavior should take as little of a performance hit as possible.

Hey,
I like the idea since it solves cases for react-native,... as well, if only the fetchExchange has to worry about this we should be fine.
Just a sidenote: at this moment in time we advise this to be solved in an exchange https://formidable.com/open-source/urql/docs/common-questions/#how-do-we-achieve-asynchronous-fetchoptions

Huh... that's pretty elegant... I had missed that in the docs.

Yes, I guess so. Was thinking if we could change that but it would be bad for us to assume everyone knows they have to add that then.

If you want I can take a stab at implementing the change over the weekend if you think it has merit. Let me know :)

Just linking some related issues:

#327 (Advise to create a "map context exchange")
#326 (Same Guidance)
#234 (Same Request)

I think to explain this, this was hard for us to make a decision on, because philosophically two of our ideals are at odds with that request:

Extending fetchOptions makes sense and helps simplicity, i.e. this API is already there and we're only limiting this to encourage a more solid exchange to be written
Adding this is at odds with our hackability / composability ideals, which dictate that all APIs should be minimal in the Client

The problem here fundamentally is that fetchOptions is defined on the context as a function, but is actually evaluated on all fetchExchanges. This means that it's a piece of configuration and not a piece of "control flow logic" to us.
I think there are good arguments to finally add this though, since we now have a central place to put it, but the concerns around guiding people to use more exchanges still stands. But as it currently is, we don't provide something like a @urql/exchange-utils package with exchanges like a mapContextExchange, a mapResultExchange, or filterResultExchange, i.e. utilities that would encourage these small pieces of logic to be extracted.

Hmmm... Question; for NodeJS usage, would you generally recommend creating a client instance per request (or event etc)?

@StevenLangbroek Yes, otherwise it’s pretty likely to accidentally leak authenticated data (unless your SSR instance never sends a token of course)

I think we now have two competing ideas in here, but with the addition of #815 it may actually alleviate the underlying problem.
We also have #796 but aren't sure yet whether that'll go forward and be finalised.
The reason why fetchOptions isn't that extensive yet is that it's a configuration option in operation.context. Technically all of these configurations, apart when fetchOptions is a function, are stateless, because exchanges can interpret these options. So we're wary of encouraging this exception and widening it by adding async fetchOptions

I understand. I'm totally fine with abstracting client creation away into an async function that happens on every request, rather than overloading fetchOptions further. Feel free to close. Thanks for the thoughtful discussion 🙏

@StevenLangbroek that sounds like it’d clear your cache on every request as well 😅 Have you seen this Gist? It’ll probably soon be integrated into the docs as a “recipe” to write a more complex auth exchange. https://gist.github.com/kitten/6050e4f447cb29724546dd2e0e68b470

Oh interesting, I'll share that with colleagues. Thanks! For us requests are all user-bound anyway so sharing cache between requests would potentially have security implications.

This will hopefully be solved by the more specific approach of #939

Closed since #939 is merged. Let's see how that goes for now! 🙌


LF Analysis Tooling (Token-Level)

Introduce LF Analysis Functionality
Here, we introduce LF Analysis functionality (similar to what's found in Snorkel) to assess the strength of users' learning functions. Note that the analysis tooling works at a token-level (e.g., accuracy computed at individual token level rather than entire spans); but can be extended in the future to assess learning functions ability to capture entire spans.
Specifically, we implement and test the following functions:

label_overlap: For each label, compute the fraction of tokens with at least 2 LFs providing a non-null annotation.
label_conflict: For each label, compute the fraction of tokens with conflicting non-null labels.
lf_target_labels: Infer the target labels of each LF based on evidence in the label matrix. Excludes null token label.
lf_coverages: Compute LF coverages (i.e., tokens labeled by a LF that are also labeled by another LF).
lf_overlaps: Compute LF overlaps (i.e., tokens labeled by 2+ LFs).
lf_conflicts: Compute LF conflicts (i.e., instances where 2 LFs assign different non-null labels to a token).
lf_empirical_accuracies: Compute empirical accuracies, setting any out-of-domain labels from the ground truth dataset to null (0) when assessing the accuracy of any individual LF.
lf_empirical_scores: Compute precision, and recall for the LFs.

LF analyses can be done in 2 modes according  to the strict_match parameter. If strict_match = True, then LFAnalysis will conduct its analyses against BIOLU labels (e.g., B-PERSON, I-PERSON, etc.). If strict_match = False, the LFAnalysis will conduct its analyzes on labels without prefixes (e.g., PERSON, NORP, etc.)
Each lf-specific function (e.g., lf_coverages) can be run in 2 modes according to the agg parameter. If agg = True, the function aggregates results across individual labels. If agg = False, the function is run at the LF + Label level (e.g. , lf_empirical_scores(agg=False) returns individual precision, recall, and F1 scores for each target label for each LF).

Brilliant, thanks a lot!


IP compatibility for tasks lookup

Fixes https://github.com/gradle/gradle/issues/29154
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test this without pts

I've triggered the following builds with parameters: -DenablePredictiveTestSelection=false for you. Click here to see all build failures.

PullRequestFeedback build


Cannot reduce graphics memory leak of my android app

I am using ImageProvider in 2 parts of my code
1.getting bytes from a file in system
2. drawing image on canvas
And i guess this is the reason for the memory leak
I tried clearing the imageCache of the PaintingBinding but didnot solve my problem

CCPR has been disabled.


Rewrite body of extract_reads.cpp to reduce complexity and looping

This issue is ultimately the combination of #42 #43 #44 and #45


A offline client can not receive messages after it reconnects the broker

Enviroment:

broker: vernemq(1.7.1 on docker)
ClientA: dotnetcore with mqttnet(2.8.5)
ClientB: node with mqttjs(2.18.8)

Client A and Client B subscribe the same topic
Client A(online) -> Client B(offline) -> Client B(online) -> Client B receives messages
Client B(online) -> Client A(offline) -> Client A(online) -> Client A does't receive messages

The message qos is 2
ClearSession is set to false
Use the same Client ID

what have i missed? don't understand, please help.

Use the same Client ID

One of the problems probably is that the clients should never have the same client id because otherwise they will kick each other out all the time (That was at least what I figured out some time).
Could you give the latest version of MQTTnet a try, please? There have been major improvements since 2.8.5).

I'm closing this due to inactivity. Feel free to re-open this if needed.


Add SBS FTSO

Merged in https://github.com/TowoLabs/ftso-signal-providers/commit/dcc0b2e6de2d495b3229fa6f29e112389c6690e7


Update theme to 0.2.x

Similar to https://github.com/iterative/dvc.org/pull/4118 for cml.dev.

~Depends on https://github.com/iterative/gatsby-theme-iterative/pull/139 to merge and ship.~
Depends on  https://github.com/iterative/gatsby-theme-iterative/pull/152 to merge and ship.

Looks like we'll have to shadow some colors and/or improve the theme-changing support. I think we can simply shadow the CSS file for minimal duplication, but we can at least use the theme's content component even if we have to replace the wrapper.

I just used the same approach 😄. It's working fine locally and let's see how it goes to preview deployment as the previous one was also fine locally but not on preview deployment.

Looking great! I've been clicking around and can only see one final thing wrong: we need scroll-margin-top/scroll-padding-top for anchor links so clicking internal links works properly.
After that, I think we're ready for approval!
https://user-images.githubusercontent.com/9111807/207768262-fb521bda-60aa-4736-a0c8-9779853b597b.mp4


restartTask does not restart task

VSCode Version: 1.11.2
OS Version: 10

Steps to Reproduce:

Run a task that invokes a gulp watcher.
Attempt to restart the task using workbench.action.tasks.restartTask

VS Code will show a notification stating "The task is already active and in watch mode. To terminate the task use F1 > terminate task". But I don't want to terminate, I want to restart.
The cherry on top is that the task is actually terminated by this :P

The task 'Build and watch' was terminated per user request.

Same here for my angular app
        {
            "taskName": "serve",
            "args": [
                "start"
            ],
            "isBackground": true,
            "isBuildCommand": true
        },

It works fine with task runner version "2.0.0", but it will be nice to have it working with "0.1.0" too.

@hummerd Could you explain to me how to install 2.0.0 to give it a try?

Just replace  "version": "0.1.0" in your tasks.json with "version": "2.0.0". And reload vs code window.

@hummerd Oh, okay. Thanks :)

This is a timing issue in the old output system. The active task is cleared when the process actually dies. Need to see what I can do here.

Investigated into a fix. It is here: https://github.com/Microsoft/vscode/tree/dbaeumer/25889

Needs a little bit more thinking since this can now block the shutdown of VS Code if something goes wrong.

I wish I could contribute, but this is way out of my area.

I fixed this for the new terminal runner. You can use the terminal runner using the following statement in the tasks.json "runner": "terminal".
I will close the issue since we will deprecate the output runner since it causes a lot of other issues.


FINERACT-1433: Switch to Java based config for Spring

Description
Replacing the Spring XML configuration files with Java classes. As well as making the config much more easily maintainable and simpler, this unblocks the Spring Boot upgrade to 2.5.6. However it is likely to break the OAuth support. As spring-security-oauth2 is deprecated anyway, I'll submit another PR later to rework the oauth2 set-up based on more modern libraries.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[x] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[x] Create/update unit or integration tests for verifying the changes made.

[x] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[x] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[x] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

@vidakovic here's a PR that moves as much of the spring xml config to java as currently possible... Would be great if you could have a look when you get a chance

@ptuomola ... crossread it quickly on the phone... looks great, but will read again properly when back at my desk. Thanks again... this is again a major improvement.


Sherwyn/add extra args

Why is this change being made?
We want to add extra kwargs to the openai API to enable users to access other features like functions.
What is changing?
Added extras to logging and pass kwargs to the OpenAI API.
How did I test?
Run make docker-build, make docker-run, make browse and make browse-docs and check the following:

[ ] Frontend interactions work
[ ] Completion endpoint works
[ ] Chat completion endpoint works

Next steps and references

This PR should be blocked from merging until the alembic migrations file has been generated.

This PR can now be merged since alembic migration files have been generated.


[T7][T10-C4]

Some comments added. Feel free to add more comment if you have any questions. Once you are done, you may close the PR after reading comments.


Shimano Di2 Powermeter link to Karoo 2

Hi,
It's possible to link the Shimano Crank Powermeter with the Karoo 2 via Ki2?
Tx in advance.

I believe Shimano powermeters use standard ANT, so you can connect it directly with Karoo. No need to use Ki2 🙂


trace-profile.json is not a valid json

The trace-profile.json uses "nan" in some entries. I do not know exactly under what circumstances "nan" is used, but when this file is loaded by chrome://tracing, it will throw an error for an invalid character.
Error:
While importing:
SyntaxError: Unexpected token a in JSON at position 6502
    at JSON.parse (<anonymous>)
    at new TraceEventImporter (chrome://tracing/tracing.js:5498:19)
    at Import.createImporter_ (chrome://tracing/tracing.js:1332:8)
    at chrome://tracing/tracing.js:1326:167
    at Task.run (chrome://tracing/tracing.js:2553:95)
    at runAnother (chrome://tracing/tracing.js:2556:371)
    at runTask (chrome://tracing/tracing.js:2321:57)
    at processIdleWork (chrome://tracing/tracing.js:2326:116)
    at window.requestIdleCallback.timeout (chrome://tracing/tracing.js:2319:81)

Example line:
{"name":"CPU", "ph": "C", "ts": "1587074269993629", "pid": 1, "args": {"sys": nan, "usr": nan, "idle": nan}},

In the meantime, I've been able to work around this issue using:
cat trace-profile.json | sed "s/nan/0/g" > trace-profile-fixed.json

Thanks for the temporary fix. I guess some missing entries are breaking the trace profile json. Bluepill should be outputting 0 or something appropriate. I will take a look.

@RainNapper  nan means NotANumber.
This looks like a bad exception handling. Will look into it. Thanks for reporting!


Glitches out via Wine/Crashes with game.ios

In a nutshell, no OS X support.

A stack trace would be nice

I'm not sure how to get that.

Use the terminal to launch TranslaTale through Wine and paste the terminal output in a file when it crashes

Wine can't be run via terminal, even vvi a the MacOS file


Rendering bug with lists in an argument docstring

We have a few places on in our API documentation where our arguments contain a sublists of possible values. This currently does not render well on keras.io, but does render properly on tf.org.

We would like the bullets within output_mode to render as a nested list, not smushed into a single continuous paragraph.

hey mattdangerw this issue is still open ?
Can you share the source file of this docs.

I found the source file. can I made the changes and try to a PR?

You are very welcome to help out with this! If possible we would like the change to happening in the rendering code in this repo, and not the source docstring itself. Tensorflow.org, for examples, already renders this block correctly -- https://www.tensorflow.org/api_docs/python/tf/keras/layers/StringLookup.

The issue is fixed, I can see the sub list under the argument as below.


trailer not working [bug]

Describe the bug
trailer not working
To Reproduce
Steps to reproduce the behavior:

Setup brand new instance
open a trailer
don't load, it just goes blank

Expected behavior
I hope the trailers work correctly again
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: ubuntu 18.04
Browser [e.g. chrome, safari]
Version 0.5.1

A fix is incoming for this.

thanks buddy


I'm Having trouble accessing the textbook answers (on chrome)

The extension doesn't seem to be working on the quizlet page, and it just stays as if the extension wasn't there. What should I do?

Turns out I just had to reset the site data, it's working fine now


documentation: Adapt Kubernetes RBAC to use metrics roles

/benchmark pr

/benchmark master

@nikita-mk: Benchmarking is restricted to org members.

In response to this:

/benchmark master

If you have questions or suggestions related to my behavior, please file an issue against the prometheus/prombench repository.

/benchmark

@nikita-mk: Benchmarking is restricted to org members.

In response to this:

/benchmark

If you have questions or suggestions related to my behavior, please file an issue against the prometheus/prombench repository.


RaycastHit not supported?

Hello, I am getting this error:

With this code:
[SerializeField, VerticalGroup(drawInBox: true, nameof(reverse), nameof(isGrounded), nameof(groundCheckHit), nameof(steerAngle), nameof(downhill), nameof(requestGearChange), nameof(lastGearInput))]
private Void Debug;

[SerializeField, HideInInspector] private bool reverse;

[SerializeField, HideInInspector] private bool isGrounded;
[SerializeField, HideInInspector] private RaycastHit groundCheckHit;

[SerializeField, HideInInspector] private float steerAngle;

[SerializeField, HideInInspector] private bool downhill;

[SerializeField, HideInInspector] private bool requestGearChange;
[SerializeField, HideInInspector] private bool lastGearInput;

I'm assuming you have not yet added support for RaycastHit type of variable. Am I correct?

RaycastHit is a serialized struct, serialized struct and classes, arrays, lists and unity events are not supported in groups because they do not draw correctly. Though I don't think I have tested it with vertical group I will have to double check at some point and see how well it works.

Ok, I finally checked and RaycastHit is not serialized by unity, its just a normal struct and cannot be displayed in the inspector even outside groups, but there were indeed issues with serialized structs in groups and they should be fixed in the next update.

I see, I guess I just didn't notice that it didn't show in the inspector when it was not in the group.


why is it probing for nviida when running on MI?

It does not tell anything specific about running on either nvidia or amd but your platform certainly can not make distinguis!
[2023-04-16 07:09:53,869 abys245:321][executor.py:235][INFO] Executor is going to execute resnet_models/pytorch-resnet101.
[0]: /opt/conda/lib/python3.8/site-packages/torch/cuda/__init__.py:52: UserWarning: CUDA initialization: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx (Triggered internally at  ../c10/cuda/CUDAFunctions.cpp:100.)
  return torch._C._cuda_getDeviceCount() > 0
[2023-04-16 07:09:54,404 abys245:321][model_base.py:201][INFO] Model placement - model: pytorch-resnet101, GPU availablility: False, pin memory: False, force fp32: False.
[2023-04-16 07:09:54,405 abys245:321][pytorch_base.py:93][INFO] Distributed training is enabled - model: pytorch-resnet101, distributed implementation: ddp.
[1]: /opt/conda/lib/python3.8/site-packages/torch/cuda/__init__.py:52: UserWarning: CUDA initialization: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx (Triggered internally at  ../c10/cuda/CUDAFunctions.cpp:100.)
  return torch._C._cuda_getDeviceCount() > 0
[2023-04-16 07:09:54,440 abys245:322][model_base.py:201][INFO] Model placement - model: pytorch-resnet101, GPU availablility: False, pin memory: False, force fp32: False.
[2023-04-16 07:09:54,440 abys245:322][pytorch_base.py:93][INFO] Distributed training is enabled - model: pytorch-resnet101, distributed implementation: ddp.
[2023-04-16 07:09:54,442 abys245:322][base.py:179][ERROR] Run benchmark failed - benchmark: pytorch-resnet101, message: ProcessGroupNCCL is only supported with GPUs, no GPUs found!
[2023-04-16 07:09:54,442 abys245:322][executor.py:131][INFO] benchmark: pytorch-resnet101, return code: 4, result: {'return_code': [4]}.
[2023-04-16 07:09:54,442 abys245:322][executor.py:138][ERROR] Executor failed in resnet_models/pytorch-resnet101.
[2023-04-16 07:09:54,448 abys245:321][base.py:179][ERROR] Run benchmark failed - benchmark: pytorch-resnet101, message: ProcessGroupNCCL is only supported with GPUs, no GPUs found!
[2023-04-16 07:09:54,448 abys245:321][executor.py:131][INFO] benchmark: pytorch-resnet101, return code: 4, result: {'return_code': [4]}.
[2023-04-16 07:09:54,448 abys245:321][executor.py:138][ERROR] Executor failed in resnet_models/pytorch-resnet101.
[2023-04-16 07:09:54,905 abys245:74026][ansible.py:79][INFO] Run succeed, return code 0.
[2023-04-16 07:09:54,906 abys245:74026][ansible.py:127][INFO] Run playbook fetch_results.yaml ...

PLAY [Fetch Results] ***********************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Synchronize Output Directory] ********************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
[2023-04-16 07:09:57,458 abys245:74026][ansible.py:79][INFO] Run succeed, return code 0.
(venv) jd@lab101:~/nm/git/superbenchmark$

Please run ROCm docker image. All details are listed on https://microsoft.github.io/superbenchmark/docs/user-tutorial/container-images

no i was not going to use docker images. your instruction does not say you have to use docker for MI.

Sorry, we only support running container, please read https://microsoft.github.io/superbenchmark/docs/getting-started/run-superbench. Therefore, we have to have to use docker when you run SuperBench.
Leveraging sb deploy command, we can easily deploy SuperBench environment to all managed nodes. After running the following command, SuperBench will automatically access all nodes, pull container image and prepare container.

I see it was running in container. Then how I am supposed to set this container image? In the instruction, all I see is 'sb deploy..." followed by 'sb run' it chooses the type of container/docker image on its own..

Yes, during your deployment, you can run sb deploy -f local.ini -i superbench/superbench:<ROCm tag> for AMD. For example, you can choose v0.8.0-rocm5.1.3 tage

Hi @jdgh000, does everything work for you on AMD GPUs?

yes, i can see it works with different container. i think it can close now.


Fixed: I made the option posible recursively merge.

I made the option posible recursively merge for Abide component.
Only Abide component.
Before
Foundation.Abide.defaults.validators was overwritten.
var options = {
  validators: {
    notEqualTo: function (el, required, parent) {
      return $(`#${el.attr('data-equalto')}`).val() !== el.val();
    }
  }
};

plugin = new Foundation.Abide($html, options);

Foundation.Abide.defaults.validators //=> { equalTo: function }
plugin.options.validators //=> { notEqualTo: function }

After
...

plugin = new Foundation.Abide($html, options);

Foundation.Abide.defaults.validators //=> { equalTo: function }
plugin.options.validators //=> {  equalTo: function, notEqualTo: function }

Why did you correspond only to Abide?
There was only Abide component which included the object in the option.
for (var name in Foundation._plugins) {
  var defaults = Foundation._plugins[name].defaults
  for (var key in defaults) {
    if (defaults[key] instanceof Object) {
      console.log(name);
    }
  }
}

=> abide

Looks good to me

I'm not sure if this is related, but attempting to add custom validators using the example in the Abide documention is no longer working for me in Foundation v6.4.3. Also, it appears the code sample got messed up somehow. The function is floating below the Foundation initialization.

I have the same problems after upgrading from 631 to 643. when i put my own patterns in the foundation.js-File  to the other default patterns it works well,
but with
Foundation.Abide.defaults.patterns['zeit'] = /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){1,2}$/,
Foundation.Abide.defaults.patterns['datumdeutsch'] = /^\d{2}[/-.]\d{2}/-.[0-9]{2}$/,
in app.js it does not work.

Plugins(Abide) are load only once.
That's when $(document).foundation() was called.
https://github.com/zurb/foundation-sites/blob/develop/js/foundation.core.js#L158
So, you need to set Foundation.Abide.defaults.* before $(document).foundation() is called.

I still cannot get custom validators to work at all:
`
Foundation.Abide.defaults.validators['validation_fails']; // seems to get ignored
// Foundation.Abide.defaults.validators.*; //this fails with unexpected token
// Init Foundation
$(document).foundation();
Foundation.Abide.defaults.validators['custom_validator'] = function($el,required,parent) {
return false;
};`
what is the syntax for "setting" our custom validators before foundation initializes???

@BigBlockStudios
You have to use patterns array instead of validators
Foundation.Abide.defaults.patterns['phone'] = /\([0-9]{3}\)\s[0-9]{3}-[0-9]{2}-[0-9]{2}/;
$(document).foundation();

@BigBlockStudios See this example:
// Set a validator for all Abide forms
Foundation.Abide.defaults.validators['global_custom_validator'] = function($el,required,parent) { return false; };

// Initialize my own Abide form with a custom validator
var plugin = new Foundation.Abide($('#my-custom-data-abide'), {
    validators: { local_custom_validator: function (el, required, parent) { return false; } }
});

console.log(plugin.options.validators);
// Show both `global_custom_validator` and `local_custom_validator`
// Others abide forms that would be initialized with `$(document).foundation();` would only have `global_custom_validator`


Feature Request: pvc-autoresizer

when the pvc meet a threshold of capacity, it will be auto resized, and if fail, some warning show up somewhere.

@sun7927

https://github.com/topolvm/pvc-autoresizer

planned already

planned and in progress of feature developing

done


[DC-895] Replace +/- with checkboxes

Jira Ticket: https://broadworkbench.atlassian.net/browse/DC-895

Summary of changes:

To promote user interface synergy, we are removing the +/- icons with checkboxes.
What

Replace +/- icons with checkboxes
Change tests for new aria-label
Replace minus icon for trashcan

Why

stronger user interface

Testing strategy

[ ] Unit Tests

https://github.com/DataBiosphere/terra-ui/assets/63474660/b835915f-a3a8-43b3-aea5-13ea518f6f65

Looks OK, but I think we should consider making the concept name the checkbox label as well.
Also, I think the plus and minus images were added to support this UI. If there are no longer any uses of these icons, I think you should remove them from the repo.

The plus and minus symbols are still used on the panels for adding a new cohort


I would like to ask if there is a previous release version that can support macos10.12 use it

Since I am currently using esxi6.5, I can only install macos10.12, it is not convenient to upgrade esxi, so I would like to seek help, please tell me if there is a supported version, I hope to get your reply as soon as possible, thank you!

This driver does not support such a version as the dependent XCTest framework's availability. https://github.com/appium/appium-mac-driver might work but we do not maintain that.


restructure build

coverage should be pushed only from one (and always the same) job
php-cs-fixer (depends on #256) should run in a different stage (makes it easier to tell if test tests or the check failed)

I've deeped down Travis build stages:

Build stages is a way to group jobs, and run jobs in each stage in parallel, but run one stage after another sequentially.

I see no advantage in using them, there is no job that depends on another one.
As soon as #256 is merged I'll create a PR with a restructured .travis.yml with a better variable handling, but without stages because the two points you listed here can be easily achieved anyway.

looking forward to see that :D
don't care about stages. It would just be nice to see that the fixer failed instread of the test on the first look

https://github.com/brianium/paratest/pull/260

Closing this now as the PR got already merged.


Show background tasks

Added a dialog to show all background tasks.
Since there may be many tasks, the dialog updates only twice a second, rather than on each task addition / completion.
Also, this is the first implementation of sending messages between threads using Qt's QMetaObject::invokeMethod.

Closes #67


Parse response headers from examples

Originally created by @zeke
developer.github.com lists some response headers like Link and Location that don't appear to be captured in the OpenAPI schema.
https://developer.github.com/v3/gists/#response

https://developer.github.com/v3/gists/#response-6

done via https://github.com/octokit/routes/pull/714


ServiceBusTrigger ignores some configuration providers

Description
On NET8 using the latest version (5.22.0) of Microsoft.Azure.Worker.Extensions.ServiceBus. My function signature looks like this
        public async Task Run(
            [ServiceBusTrigger("myqueue", Connection = "ServiceBus")]
            ServiceBusReceivedMessage message,
            ServiceBusMessageActions messageActions)

ServiceBus key is defined in Azure App Configuration service; the definition looks like this when inspecting configuration on the host object:
{Path = ServiceBus}
{Path = ServiceBus:FullyQualifiedNamespace, Value = <redacted>.servicebus.windows.net, Provider = AzureAppConfigurationProvider}

Running the function results in the following error in console output: "The listener for function 'Functions.DrainV1' was unable to start. Microsoft.Azure.WebJobs.Extensions.ServiceBus: Service Bus account connection string with name 'ServiceBus' does not exist in the settings. Make sure that it is a defined App Setting.".
On the other hand, when I use Connection = "ServiceBusX" with the following definition in the configuration
{Path = ServiceBusX}
{Path = ServiceBusX:FullyQualifiedNamespace, Value = <redacted>.servicebus.windows.net, Provider = EnvironmentVariablesConfigurationProvider}

the function starts up successfully.
Note that the only difference in the definitions of ServiceBus and ServiceBusX is the configuration provider.
Steps to reproduce
Set up a simple functions project with app configuration provider as follows (the settings are for local development) and single function with service bus trigger as given in the description.
    private static void Main(string[] args)
    {
        var opts = new Azure.Identity.DefaultAzureCredentialOptions
        {
            ExcludeManagedIdentityCredential = true,
            ExcludeWorkloadIdentityCredential = true,
        };
        var host = new HostBuilder()
            .ConfigureAppConfiguration(b =>
            {
                b.AddAzureAppConfiguration(o => o.Connect(
                    new Uri("https://<redacted>.azconfig.io"),
                    new Azure.Identity.DefaultAzureCredential(opts)));
            })
            .ConfigureFunctionsWebApplication()
            .ConfigureServices(services =>
            {
                services.AddApplicationInsightsTelemetryWorkerService();
                services.ConfigureFunctionsApplicationInsights();
                services.AddSingleton<IAuditRecordWriter, AuditRecordWriterV1>();
            })
            .Build();

Define ServiceBus connection in azure app configuration, and ServiceBusX connection in local.settings.json. Try using both in ServiceBusTrigger; when using ServiceBus the function fails to start up; when using ServiceBusX the function starts up successfully.

I am experiencing the exact same issue as you, where the Connection attribute parameter of ServiceBusTrigger cannot be retrieved from Azure App Configuration, but it works fine when retrieved from local.settings.json.
Additionally, there is also an issue with using %queueNameInConfiguration% to get the queue name from Azure App Configuration (but it also works fine with local.settings.json).
Moreover, I am facing a similar issue with TimerTrigger. I believe this issue occurs with attributes that use configuration values from a provider other than local, such as Azure App Configuration.
The steps to reproduce are the same as yours. Thank you, Azure team, for looking into this issue. I look forward to your response.

I am facing the same issue as @pctrung with queue name and Connection attribute.
Is there any solution for it?

To add another voice, I am seeing the same issues across not Just ServiceBusTrigger but BlobTrigger and I imagine the rest of them.
They don't seem to be looking in App Configuration as a provider for anything at the moment.
Also going beyond that I've found that combining App Configuration and Managed Identity gets even less support because I don't think it's able to look at the whole __ syntax, even when we change that to a :
For example variablename_fullyQualifiedNamespace works in local settings but the same in App Configuration just doesn't resolve and I've tried every way I can think of.

whats interesting with this is that it appears to not look at any of the configuration providers.
I tried to add the connection string to the environment variables:
var serviceBusConnection = builder.Configuration["ServiceBus:Namespace"];

Environment.SetEnvironmentVariable("ServiceBusConnection:fullyQualifiedNamespace", serviceBusConnection);

builder.Configuration.AddEnvironmentVariables();

So it looks like this:
{Path = ServiceBusConnection:fullyQualifiedNamespace, Value = <<REDACTED>>, Provider = EnvironmentVariablesConfigurationProvider}

But I still get "Make sure that it is a defined App Setting"
As a bonus, I tried manually setting it after loading the local.settings.json
builder.Configuration
    .SetBasePath(Environment.CurrentDirectory)
    .AddJsonFile("host.json", true)
    .AddJsonFile("local.settings.json", true);

builder.Configuration["ServiceBusConnection:fullyQualifiedNamespace"] = "<<REDACTED>>";

and that looks like this
{Path = ServiceBusConnection:fullyQualifiedNamespace, Value = <<REDACTED>>, Provider = JsonConfigurationProvider for 'local.settings.json' (Optional)}

But even with the provider being 'local.settings.json still didn't work.

@zvrba trigger-influencing configuration cannot come from a source that only the worker knows about, this includes Azure AppConfiguration. The problem is that there are platform components which need to have the fully resolved trigger without ever starting your application (otherwise scale to 0 would never work!)
All parameterization and connections used in triggers must come from function app settings. This method allows for the platform components to resolve your service bus and support scaling and triggering.

Ok, that's a bummer because I was hoping to be able to use AppConfiguration to have a central tidy place for managing all of configuration settings for a set of interconnected components. That function triggers don't work with AppConfiguration kind of defeats the point of AppConfiguration because some settings still have to be set/updated at multiple places. (Instead of having one "App setting" with AppConfiguration URI.)
Well then. Should I put trigger configuration under "App settings" or "Connection strings", and what's the difference anyway?

@zvrba use "App Settings" and not "Connection strings". The latter is intended for older language stacks such as Asp.Net (the pre-.netcore one).
For organizing secrets, app settings does support keyvault references (but not Azure AppConfiguration): https://learn.microsoft.com/en-us/azure/app-service/app-service-key-vault-references?tabs=azure-cli

@jviau Thanks for the tips.
A side-note: Previously we did use KeyVault for storing config settings, but switched to Azure AppConfiguration because it has nicer UI and import/export capabilities. KeyVault secrets are very clunky to use as config store: in Azure portal, just try to count the number of clicks needed to show or edit a particular setting in KeyVault vs AppConfiguration.
Maybe we just make a simple console app that presents the contents of KV in an easy to read and edit form and revert to using KV.
Out of curiosity: what was the point of releasing AppConfiguration instead of building a nicer UI for KV?

Out of curiosity: what was the point of releasing AppConfiguration instead of building a nicer UI for KV?

Those are both separate products from Azure Functions, so our team would not have any context on that.
Going to close this as the question is answered.


Added Solution of check-if-the-sentence-is-pangram in java under LGMSOC'21

Description
Added solution of check-if-the-sentence-is-pangram (Leetcode) in java with some example test case under LGMSOC'21
Fixes #1537
Replace issue_no with the issue number which is fixed in this PR
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines(Clean Code) of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[x] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works

@Amit366 please check I have raised a new PR with main function and no merge conflicts.


Fix internal links in readme

Codecov Report

Merging #37 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #37   +/-   ##
=======================================
  Coverage   99.67%   99.67%
=======================================
  Files           1        1
  Lines         617      617
=======================================
  Hits          615      615
  Misses          2        2

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 cc60750...4eafe00. Read the comment docs.

Hmm... Something seems to have gone wrong in this PR as there are changes to files other than the README.md.  Could you redo this against the latest master?

Sorry about that.

No problem! Thanks!


Array of Record Types fails to type check

The old type checking doesn't work correctly with an array of record types. I would expect to get an error with --jscomp_error=checkTypes similar to the one that I do with --jscomp_error=newCheckTypes.
For example:
$ cat foo.js
/** @param {function(!Array<!{a:string}>):void} g */
function f(g) {}
/** @param {!Array<!{a:string,b:number}>} x */
function g(x) {}
// The following should produce a type error since the record type in g's
// parameter isn't a subset of the record type in f's paramter.
f(g);

$ java -jar closure-compiler-v20170626.jar --js foo.js --jscomp_error=checkTypes
function f(a){}function g(a){}f(g);

$ java -jar closure-compiler-v20170626.jar --js foo.js --jscomp_error=newCheckTypes
foo.js:7: ERROR - Invalid type for parameter 1 of function f.
Expected : function(Array<{a: string}>):undefined
Found    : function(Array<{a: string, b: number}>):undefined
More details:
The expected and found types are functions which have incompatible types for argument 1.
Expected a supertype of : Array<{a: string}>
but found               : Array<{a: string, b: number}>
f(g);
  ^

1 error(s), 0 warning(s)

A similar problem exists when f uses !Object and g uses !{a:string}. I would expect a type error with the old type checking, but get none.
$ cat foo.js
/** @param {function(!Array<!Object>):void} g */
function f(g) {}
/** @param {!Array<!{a:string}>} x */
function g(x) {}
// The following should produce a type error since the record type in g's
// parameter isn't a subset of the record type in f's paramter.
f(g);

And just to be clear, both of the previous examples work as expected when not using Arrays.

Array generics are loose in the old type checker. This is a known issue, unlikely to fix. People will get the correct behavior as they migrate to the new type checker.


Update gawk-version to 5.2.2 from 5.1.1

/run tests

/run tests

Thanks @v1gnesh !!!

@IgorTodorovskiIBM - what do you think about doing ron tests automatically when a 'zosopentoolsmain' opens a PR?
The bump action could be updated to say ron tests in the comment body too.

@IgorTodorovskiIBM - what do you think about doing ron tests automatically when a 'zosopentoolsmain' opens a PR? The bump action could be updated to say ron tests in the PR comment body too.

Yep, actually I made some updates to the github action. Going forward, the build and run github action will be run whenever a PR is opened as well

Do we have a notion of priority or server routing so that important build break builds will get priority on our systems over a lower priority (potentially) run that is a bump and also a higher priority bump build to pick up a cve ? Or - do we have enough servers that routing to a free machine is still ‘good enough’?

The build logs also has some funny stuff:
 ++ zopen upgrade meta -y
�����`�>ŀ��_?������?��?ʀ%/���Ȁ�/�,/����>�?�_/��?>�Installing package: meta
Package meta is already installed at the requested version: main.20231022_024501

++ zopen build -v -b release -u -gp --no-set-active
����|� �����>ŀ���%���?����<��Checking environment configuration

Do we have a notion of priority or server routing so that important build break builds will get priority on our systems over a lower priority (potentially) run that is a bump and also a higher priority bump build to pick up a cve ? Or - do we have enough servers that routing to a free machine is still ‘good enough’?

Not at this time, we can take that on as a separate todo. We currently have 6 separate CI WaaS machines. We'll see how that fares.
The garbled messages has been a long standing issue with the Jenkins runs, now is probably a good time to investigate.


Add publiccode.yml

Please check this thoroughly and add information if necessary.
A long description is still needed (and is mandatory).
#371

@Ainali do we have some good long-description around which @RVA2869 can copy-paste?


Sort attester slashing indices to avoid arbitrary ordering

Closes #1125

This looks like a good solution. Have we checked if we are iterating over dicts/sets anywhere else where it could cause problems?

Nice catch!
@dankrad I have a PR  in the works that turns some of the things in the spec to sets to make it explicit that order does not matter. I'll do the opposite check too to make sure that order is preserved where necessary.

If there's going to be a v0.6.2 release could it include this patch?

Releasing it in v0.6.3!


Can't unset the FEED_PLUGIN_TEMPLATE_CHOICES setting without hacking the code

For whatever reason, I can't override the default template without hacking the original code.
Ideally, it SHOULD be possible to just redefine the FEED_PLUGIN_TEMPLATE_CHOICES tuple in one's own settings file.
But that doesn't appear to work.
in the settings.py file:
> from django_feedparser.settings import *
> from cmsplugin_feedparser.settings import *
> FEED_PLUGIN_TEMPLATE_CHOICES = (
>     ('feedparser_plugin/default.html', 'Kiosk Default template'),
> )

Then in the shell:
>>> from django.conf import settings
>>> settings.FEED_PLUGIN_TEMPLATE_CHOICES
(('django_feedparser/basic_feed_renderer.html', 'Default template'),)
>>>

which is not the desired result.

Pretty strange since code does not temper on settings, you may try to avoid to import cmsplugin_feedparser settings since the only one it defined is the one you want to override.
By the way you posted this issue in the wrong repository, the djangocms plugin is here : https://github.com/sveetch/cmsplugin-feedparser


Tilemap performance reduced when having tiles outside view

Godot version:
3.0.2 stable
OS/device including version:
MacBook Air (13-inch, Early 2014) (1,4 GHz Intel Core i5)
MacOS High Sierra 10.13.3
Issue description:
When having a tilemap with a lot of tiles, the fps is reduced, even if the tiles are outside view. (outside the camera)
Steps to reproduce:

Create a tilemap
Add some tiles
The performance is good
Add a lot of tiles
The fps drops a lot (as shown in Debugger > Monitors > FPS)

Minimal reproduction project:
Tilemap Performance Test.zip
The reproduction project has 2 scenes:

Fast scene
When running, the fps is very high. My results are:

Slow scene
The only difference is that the tilemap has a lot more tiles. When running, the fps is very low. My results are:

What gpu do you have? How big is the problematic tilemap?

It is Intel HD Graphics 5000 OpenGL Engine but I found a solution thanks to the guys in the IRC chat.

when using y-sort, tiles can't be batched, so it's considerably slower

So disabling y-sort in the tilemap fixes the issue.

@jahd2602 hey I just tried your example project and found the faster scene improving moderately from about 1400 fps to 1700fps with Y-sort turned off and the slow scene improving drastically from 60fps to about 800 fps. But I feel your initial question is still valid? why is there a performance difference when the tiles are actually off screen with no difference in the on screen tiles?


Align messages and behavior re Coq switches

Suggestions are given in https://github.com/coq/platform/pull/209#issuecomment-1027815516 and https://github.com/coq/platform/pull/209#issuecomment-1027836250.

Thanks a lot!

I say thank you! I took btw. most of your PR - it just needed a few fixes (there was another place where I called opam switch).


virtual_network_gateway bgp_settings produces errors

Hi
Trying to set bgp_settings block in virtual_network_gateway config produces errors:
Error: each.value cannot be used in this context

  on .terraform\modules\caf\modules\networking\virtual_network_gateways\module.tf line 41, in resource "azurerm_virtual_network_gateway" "vngw":
  41:       asn             = each.value.asn

A reference to "each.value" has been used in a context in which it
unavailable, such as when the configuration no longer contains the value in
its "for_each" expression. Remove this reference to each.value in your
configuration to work around this error.

This error appears for all properties of bgp_settings block.
My config is:
bgp_settings = {
        asn = 65512
        peering_address = "<IP_ADDRESS>"
        peer_weight = 0
}

Also tried a config with a key:
bgp_settings = {
  bpgsettings1 = {
      asn = 65512
      peering_address = "<IP_ADDRESS>"
      peer_weight = 0
  }
}

But does not work neither
When looking at module code
https://github.com/aztfmod/terraform-azurerm-caf/tree/master/modules/networking/virtual_network_gateways
we can see:
  dynamic "bgp_settings" {
    for_each = try(var.settings.bgp_settings, {})
    content {
      asn             = each.value.asn
      peering_address = each.value.peering_address
      peer_weight     = each.value.peer_weight
    }
  }

I think the correct coding should perhaps be
 content {
      asn             = bgp_settings.value.asn
      peering_address = bgp_settings.value.peering_address
      peer_weight     = bgp_settings.value.peer_weight
    }

https://www.terraform.io/docs/language/expressions/dynamic-blocks.html
Note that this error also appears in local_network_gateway
thanks for your help

thanks @addrac, @benhurjoel can you have a look please?

Thank you @addrac bringing to our  notice.. I'll take a look at it..


Issue/#260

Codecov Report

Merging #263 (f8662b9) into beta (1026dbe) will increase coverage by 0.29%.
The diff coverage is 90.32%.

@@            Coverage Diff             @@
##             beta     #263      +/-   ##
==========================================
+ Coverage   85.68%   85.98%   +0.29%
==========================================
  Files          17       17
  Lines         517      535      +18
  Branches      132      135       +3
==========================================
+ Hits          443      460      +17
- Misses         17       18       +1
  Partials       57       57

Impacted Files
Coverage Δ

src/renderer/default.renderer.ts
87.11% <90.32%> (+0.90%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1026dbe...f8662b9. Read the comment docs.

Codecov Report

Merging #263 (f8662b9) into beta (1026dbe) will increase coverage by 0.29%.
The diff coverage is 90.32%.

@@            Coverage Diff             @@
##             beta     #263      +/-   ##
==========================================
+ Coverage   85.68%   85.98%   +0.29%
==========================================
  Files          17       17
  Lines         517      535      +18
  Branches      132      135       +3
==========================================
+ Hits          443      460      +17
- Misses         17       18       +1
  Partials       57       57

Impacted Files
Coverage Δ

src/renderer/default.renderer.ts
87.11% <90.32%> (+0.90%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1026dbe...f8662b9. Read the comment docs.

:tada: This PR is included in version 3.3.0-beta.2 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.3.0-beta.2 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.3.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Create a new category and add all custom Ignite UI icons to it

Create a new category and add all custom Ignite UI icons to it such as: pinning and filter conditions etc.

@StefanIvanov What should this category be called?

@simeonoff how about ignite

we will also need to add the new icons that are specified in #6

Hm, ignite sounds very generic and non-descriptive, especially compared to all other categories.


v0.28.0rc0 Cannot create tenant tokens with custom api keys

Describe the bug
Creating tokens is possible with the default keys (admin and search) but is not possible with any kind of custom API key.
The same custom api key was able to create a token in v0.27.0
To Reproduce
Steps to reproduce the behavior:

Create a custom API key with the master key

{
        expiresAt: null,
        description: 'Custom key',
        actions: ['search'],
        indexes: [UID],
      }

Create a jwt with any search rule
An error is thrown The provided API key is invalid.

Expected behavior
Should be working
Meilisearch version: [e.g. v0.20.0]
v0.28.0rc0

Thanks @bidoubiwa for the report!
We need to add tests for this! 🔥

We further tried it out and it does not work with the default API keys as well

Thank you @Kerollmops for investigating!!


Refs #33508 -- Corrected note about MySQL/MariaDB support of index ordering.

Refs: https://code.djangoproject.com/ticket/33508

@hannseman Thanks :+1:


[BUG] Multiple blobs in same container with seemingly same file name causes strange behaviour

Library name and version
Azure.Storage.Blobs 12.19.1
Describe the bug
When users on different devices upload documents to a "shared" storage account and container, sometimes file names can look to be exactly the same but are actually different. This can happen when using characters like Å, Ä and Ö (probably others as well, but these were causing us problems) in file names.
See the following example, where I try to reproduce the issue:
User 1 with file:

User 2 with file that looks to have the same file name:

User 1 uploads the file first, with content "OLD REVISION NUMBER 1". Then, sometime after User 2 uploads a new file that looks to have the same name with content "NEW REVISION NUMBER 2" with the intention to replace any existing file.
This will result in the following two blobs in the blob container:

The file with earliest Modified time is the file from User 1.
We then use the Azure Portal to get the public URL to the first file (User 1), and we get the following URL:
https://[STORAGE-ACCOUNT].blob.core.windows.net/public/lab/ImportantDocumentÅÄÖ.txt
If I navigate to that file in a browser or using Postman:

If I then copy the URL of the second file (User 2) I get:
https://[STORAGE-ACCOUNT].blob.core.windows.net/public/lab/ImportantDocumentÅÄÖ.txt (seemingly the same)
Let's open that url in Postman:

It shows the correct content of "NEW REVISION NUMBER 2".
However, if we use Safari on a iOS Device and copies the second url, we expect to get the file with the content "NEW REVISION NUMBER 2":

The user with an iOS Device using Safari gets the first file, but the same user on the same device with the same url using Chrome gets the second file:

This is a bit confusing for the user.
We, as developers, now know that one of the filename actually is: ImportantDocumentA\u030aA\u0308O\u0308.txt while the other is ImportantDocumentÅÄÖ.txt
We also know that we should normalize the filenames prior to uploading them but we wanted to report this as it's very likely that this might happen to someone else that might forget to normalize filenames, causing a very confusing experiance for the end user.
Lastly, this was a highly simplified version of an acutal scenario we've experienced. In our case we didn't use public blob containers but instead created read only SAS-tokens and for the files with non-normalized filenames our iOS/Safari users couldn't download the file as Azure Blob Storage said the signature didn't match. We're guessing that this simplified example might highlight the problem anyway.
Expected behavior
The SDK should normalize filenames when uploading a blob, prohibiting uploads of files that looks like they have the exact same filename.
Actual behavior
You can upload files that looks to have the same file name, causing issues on some devices/browsers.
Reproduction Steps
Super simple C# console application to create two files in the same container that looks like they have the same filename:
var blobContainerClient = new BlobContainerClient(connectionString, "public");

var files = new[]
{
    "/Users/LAB/User1/ImportantDocumentÅÄÖ.txt",
    "/Users/LAB/User2/ImportantDocumentA\u030aA\u0308O\u0308.txt"
};

Console.WriteLine("Simulating two users uploading files with seemingly identical names but different content.");

foreach (var file in files)
{
    var fileName = file.Split("/").Last();
    await using var fileStream = File.Open(file, FileMode.Open);
    await blobContainerClient.UploadBlobAsync("lab/" + fileName, fileStream);
    Console.WriteLine($"Uploaded {fileName}");
    //To make it easier to distinguish them in the Blob Container in the Azure Portal
    await Task.Delay(2000);
}

Environment
No response

Any progress on this? We're still seeing this behavior...

I think the most important note that was stated was:

We also know that we should normalize the filenames prior to uploading them

All customers should be responsible for encoding and decoding their URLs correctly. Unfortunately if you do not correctly encode/decode/normalize the blob name, there's not much we can do. The SDK cannot hit you back and be like "Hey I see you're trying to upload this blob, but we found a similar blob here, did you actually mean to upload it?"
That would require the SDK to call List Blobs and scan the blob container for other similar blobs. That's not something customers would like to do as List calls are costly and expensive.
As for this request:

prohibiting uploads of files that looks like they have the exact same filename.

See
https://learn.microsoft.com/en-us/dotnet/api/azure.storage.blobs.specialized.blockblobclient.uploadasync?view=azure-dotnet
If you want to avoid overwriting existing data, you have to set the BlobRequestCondtions with the If-None-Match header set to wildcard character (*).
https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#Subheading1


Add typst-cv-template1 to CV list, update README.md

Repo URL:
https://github.com/vaibhavjhawar/typst-cv-template1
A Typst Resume/CV template
Inspired by Alessandro Plasmati's Graduate CV LaTex template

Thanks for the awesome contribution @vaibhavjhawar !


🙌 IPFS Weekly Call + Contributor Office Hours 📡 💫 2019-08-26

The IPFS weekly call is open to all. It's a venue to highlight exciting work in the community and share what we know.
Coming up next:
@gpestana from hashmatter

focused on privacy preserving decentralized networks and metadata resistant systems

🗓 Monday, 26 August 2019
🕓 At 16:00 UTC for 30mins
📞 Call in via Zoom https://protocol.zoom.us/j/443621844
🤝 It's a public call. Leave it better than you found it. Follow the code of conduct

Got something you want to share with the IPFS community? Come do a show & tell on the IPFS Weekly call! Comment on the issue to propose your talk.

IPFS Contributor Office Hours
Are you keen to contribute to IPFS but don't know where to start? Come and ask! We're hosting a weekly office hours session for 1 hour before the IPFS weekly call, 15:00-16:00 UTC, via Zoom https://protocol.zoom.us/j/443621844
Add a +1 on this issue if you are going to attend, and feel free to add questions on this issue as you think of them.
If you just want to lurk on the call and learn, thats fine. It's a safe space to ask questions about IPFS and how best to contribute. If you'd like to come help answer questions that's good too.
🧪This is an experiement 🧪
Please do join in if you're interested, and give feedback along the way.

Looking forward for today's call! I put together few slides and a short demo to make sure I don't run over time. Some resources I'll mention today:

p3lib github repo
Onion routing on libp2p with p3lib-sphinx
Short demo of p3lib-sphinx working with libp2p
Sinkhole protocol specs (WIP)

Video of the IPFS Weekly call is up:  https://www.youtube.com/watch?v=3hysSQDSTOM

Hi, does anyone know if 5G technology will help the implementation of IPFS in the future ?

Hey @AngelaShi1127! That's a great question - I'm interested in this also.
However, this is an issue tracker for community activities like events, meetings and related programs.
Can you post this on the discussion forum? https://discuss.ipfs.io/

Hey, thanks for the kind reminder. Sorry and yes, agreed 😊
On Fri, Aug 30, 2019 at 2:09 PM Dietrich Ayala<EMAIL_ADDRESS>wrote:

Hey @AngelaShi1127 https://github.com/AngelaShi1127! That's a great
question - I'm interested in this also.
However, this is an issue tracker for community activities like events,
meetings and related programs.
Can you post this on the discussion forum? https://discuss.ipfs.io/
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ipfs/community/issues/432?email_source=notifications&email_token=ANAUGCAJ5IQEIBKOKLTI5HTQHCMPXA5CNFSM4INSFNS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QPMBY#issuecomment-526448135,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANAUGCA2CVJERN66FH5TGFTQHCMPXANCNFSM4INSFNSQ
.


language/python: support pypy

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

Now that PyPy is maturing (it builds numpy and scipy now!) I think it would be good for Homebrew to support this, if not in core, but at least permit taps to use PyPy as opposed to Python. The Python dev team do not have speed as a huge priority, if I recall they prioritize readability and ease of understanding of the CPython source code.
This is an opt-in change. Formulae using the recommended virtualenv_install_with_resources method of installing a python formula and its dependencies merely need to change depends_on "python@" to depends_on "pypy".
There is an API change here, but I've checked homebrew/core and the first ten pages of GitHub search and there are no formulae passing an argument to Language::Python.homebrew_site_packages. A backwards compatible change could be made but I think it's cleaner this way.
Formulae doing something more advanced need a bit more work, e.g., this diff for numpy successfully compiles a PyPy-enabled NumPy installation. I couldn't get a side-by-side install for Python 3, Python 3, and PyPy to work though. There's some compiler confusion going on. But PyPy by itself is a-ok.
diff --git a/Formula/numpy.rb b/Formula/numpy.rb
index 2b08e8a790..4d4948de23 100644
--- a/Formula/numpy.rb
+++ b/Formula/numpy.rb
@@ -23,8 +23,7 @@ class Numpy < Formula
   option "without-python@2", "Build without python2 support"

   depends_on "gcc" => :build # for gfortran
-  depends_on "python@2" => :recommended
-  depends_on "python" => :recommended
+  depends_on "pypy" => :recommended

   resource "nose" do
     url "https://files.pythonhosted.org/packages/58/a5/0dc93c3ec33f4e281849523a5a913fa1eea9a3068acfa754d44d88107a44/nose-1.3.7.tar.gz"
@@ -33,17 +32,18 @@ class Numpy < Formula

   def install
     Language::Python.each_python(build) do |python, version|
-      dest_path = lib/"python#{version}/site-packages"
+      site_packages = Language::Python.site_packages(python)
+      dest_path = prefix/site_packages
       dest_path.mkpath

-      nose_path = libexec/"nose/lib/python#{version}/site-packages"
+      nose_path = libexec/"nose"/site_packages
       resource("nose").stage do
         system python, *Language::Python.setup_install_args(libexec/"nose")
         (dest_path/"homebrew-numpy-nose.pth").write "#{nose_path}\n"
       end

       if build.head?
-        ENV.prepend_create_path "PYTHONPATH", buildpath/"tools/lib/python#{version}/site-packages"
+        ENV.prepend_create_path "PYTHONPATH", buildpath/"tools"/site_packages
         resource("Cython").stage do
           system python, *Language::Python.setup_install_args(buildpath/"tools")
         end
@@ -51,7 +51,7 @@ class Numpy < Formula

       system python, "setup.py",
         "build", "--fcompiler=gnu95", "--parallel=#{ENV.make_jobs}",
-        "install", "--prefix=#{prefix}",
+        "install", "--prefix=#{prefix}", "--install-scripts=#{bin}",
         "--single-version-externally-managed", "--record=installed.txt"
     end
   end

Currently, only pypy for python2 is supported. pypy3 has some issues that I'm investigating. But once that's figured out it should be simple enough to just add pypy3 to the changed code.

Setting the --install-scripts path is necessary for PyPy but not for regular Python. Not sure why this is. I dug up this commit https://github.com/Homebrew/homebrew-core/commit/7d376d5fdf5 but there's not a whole lot of context why scripts were installed to share instead of bin.

From what I can tell, regular scripts installed via pip are put in bin and I think their shebang is modified to point to the opt_prefix.
This means they survive version upgrades anyway as long as python still is installed. I don't recall if the opt_prefix thing was introduced before or after 2012. So if that makes sense I'd like to make a follow up pull request in core to get that removed from the pypy formula.

there's not a whole lot of context why scripts were installed to share instead of bin.

I assume to prevent things installed using pypy's version of pip smashing into executables installed using the more widely used python and python3 versions of pip.

From what I can tell, regular scripts installed via pip

Outside of Homebrew, or? For me pip_pypy install virtualenv results in virtualenv living at /usr/local/share/pypy/virtualenv, with the shebang #!/usr/local/Cellar/pypy/6.0.0/bin/pypy.

I assume to prevent things installed using pypy's version of pip smashing into executables installed using the more widely used python and python3 versions of pip.

Aren't pip_pypy and friends are already renamed?

Outside of Homebrew, or? For me pip_pypy install virtualenv results in virtualenv living at /usr/local/share/pypy/virtualenv, with the shebang #!/usr/local/Cellar/pypy/6.0.0/bin/pypy.

With pip, not pip_pypy. With regular pip for python 2 the shebang is at<EMAIL_ADDRESS>Not sure what the python@2 formula is doing differently.

Aren't pip_pypy and friends are already renamed?

Only the pip and setuptools we install. Anything the user runs pip_pypy install on isn't appended with _pypy.

Not sure what the python@2 formula is doing differently.

Setting sys.executable.

@jonchang As a more general question: what benefits does this DSL provide compared to doing it manually in the formula? Does it matter if you have pypy and python@2 in the same dependency tree (or process)? If so, does this detect or handle that in any way? What are the caveats if any you see from this approach.
FYI when I read the PR description I was 👎 on this but the code change is minimal enough I'm a very tentative 👍.

As a more general question: what benefits does this DSL provide compared to doing it manually in the formula?

This provides feature-parity for Homebrew/brew support for python@2 installs using virtualenv_install_with_resources. The idea is that an existing formula using that DSL can replace e.g., depends_on "python@2" with depends_on "pypy" and it should Just Work.

If so, does this detect or handle that in any way?

It does not detect formulae doing the same thing manually, since I think that would be better handeld by an audit. Many formulae are already doing the "manual approach" (which here I take to mean "not using virtualenv_install_with_resources"). This is in theory extremely fragile as any changes to the python@2 or python formulae could break the install for these formulae. Grepping for site-packages or site_packages show that many formulae hardcode the location of site-packages, assuming that it will always live at e.g., $HOMEBREW_PREFIX/lib/python2.7/site-packages rather than reading out the value of Language::Python.homebrew_site_packages.
If that's something that should be fixed as well or instead of this patch, I think a new audit would be a better approach.

What are the caveats if any you see from this approach.

The caveat is that if you are doing custom stuff (anything but virtualenv_install_with_resources) you'll have to look at the definitions in language/python.rb to see how PyPy does things differently. Namely, it installs site-packages directly into the prefix, rather than into lib/python2.7/site-packages. Formula authors who wish to continue using python@2 should see no change.
Arguably, if it makes more sense for formula authors to do this manually in all cases, this language-specific support should be removed from Homebrew/brew. I'm agnostic with respect to that option.

Does it matter if you have pypy and python@2 in the same dependency tree (or process)?

There should be no issue with both pypy and python@2 in the same dependency tree. virtualenv_install_with_resources already detects any potential ambiguity and raises an exception asking the formula writer to clarify with :using => "python@2" or similar.
I don't see how it would be possible for pypy and python@2 to be in the same process; any scripts in bin are sandboxed into their respective virtualenvs and wouldn't have access to modules from another version of python installed. Side-by-side installs of libraries will need special handling, but formulae like numpy already do this. Applications should pick the right version of Python for them and stick with it.

FYI when I read the PR description I was 👎 on this but the code change is minimal enough I'm a very tentative 👍.

👍

All sounds good to me @jonchang! Could you try to write some more tests in Library/Homebrew/test/language/python_spec.rb to increase the % of the patch that's hit? After that I'm 👍 on merging this. Thanks!

One thing to note about PyPy 3 is that it's 3.5, not 3.7, though they are working on 3.6 and 3.7 was released just a couple of months ago.

@MikeMcQuaid ok, I added tests for some of the functions in Language::Python. Will merge when tests are 📗

Thanks @jonchang!


Table f row names

Row names in Table f do not make too much sense to me, and have notation that doesn't seem to be used elsewhere. I'll have a go at editing them in a bit.

Make sure that you verify this with me, as we have spent years coming up
with that wording and notation.  A change now may be more confusing htan
helpful.
On Mon, Feb 8, 2016 at 2:08 PM, andrew-edwards<EMAIL_ADDRESS>wrote:

Row names in Table f do not make too much sense to me, and have notation
that doesn't seem to be used elsewhere. I'll have a go at editing them in a
bit.
—
Reply to this email directly or view it on GitHub
https://github.com/cgrandin/hake-assessment/issues/86.

Yes - I'm making a dummy second copy so you can easily see any changes. The problem is that a lot of it is not defined anywhere (I don't thing).
Oh, what is SPR_{MSY-proxy} ?

Is SPR_{MSY-proxy}  just  SPR at  F_{\text{SPR}=40%}   . I think the MSY doesn't need to be there??

SPR=40% is the proxy for MSY.
I did notice that it uses F_40%, when we agreed to use SPR=40%.
I see your point and look forward to seeing the new table.
On Mon, Feb 8, 2016 at 2:36 PM, andrew-edwards<EMAIL_ADDRESS>wrote:

Is SPR_{MSY-proxy} just SPR at F_{\text{SPR}=40%} . I think the MSY
doesn't need to be there??
—
Reply to this email directly or view it on GitHub
https://github.com/cgrandin/hake-assessment/issues/86#issuecomment-181599843
.

Okay - done in latest commit. The old table is there on the next page so you can easily flip back and forth to see what changed.
Then I'll delete one of them.

I like the new table. Good job. Can you make the edits,Andy?

Yes.


Add btw.so - open source blog builder

By submitting this pull request, I promise I have read the contribution guidelines twice and ensured my submission follows it. 🖖
⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆

Thanks for your work! Could you please adapt your PR to the current README? Thanks!


add MergeStatus filed into MergeEvent changes struct

when a merge request was created at the first begin, the changes will only contains filed: MergeStatus, which was missing in current version


🪶 Zig-Zag trajectory generation

Generate a Python script with docstring to implement the following function. The function is used to generate a 2D reference trajectory with velocity.
Input: timestep dt, max trajectory length traj_len and desired velocity v_tar.
Output: trajectory y coordinate traj_y, z coordinate traj_z and velocity traj_y_dot, traj_z_dot

randomly pick up 5 points in 2D y-z space within [-1.5, 1.5], called p[0],..., p[4]
generate a periodic trajectory by sampling point from path p[0]->p[1]->...->p[4]->p[0]->... For every two points in the trajectory, their distance is v_tar*dt.
calculate the velocity of each point by differentiating the trajectory.

🤖
import numpy as np

def generate_2d_reference_trajectory(dt, traj_len, v_tar):
    """
    Generate a 2D reference trajectory with velocity.

    Parameters:
    dt (float): Timestep.
    traj_len (int): Maximum trajectory length.
    v_tar (float): Desired velocity.

    Returns:
    tuple: A tuple containing arrays for trajectory y coordinate (traj_y),
           z coordinate (traj_z) and velocity (traj_y_dot, traj_z_dot)
    """

    # 1. Randomly pick up 5 points in 2D y-z space within [-1.5, 1.5]
    points = np.random.uniform(-1.5, 1.5, (5, 2))

    # 2. Generate a periodic trajectory by sampling points from the path
    traj_y = []
    traj_z = []
    distance = v_tar * dt
    num_segments = points.shape[0]

    for i in range(traj_len):
        start_point = points[i % num_segments]
        end_point = points[(i + 1) % num_segments]

        # Calculate direction vector and normalize
        direction = end_point - start_point
        direction /= np.linalg.norm(direction)

        # Calculate new point by moving in the direction with the desired distance
        new_point = start_point + direction * distance

        traj_y.append(new_point[0])
        traj_z.append(new_point[1])

        # Update start_point for the next iteration
        points[i % num_segments] = new_point

    traj_y = np.array(traj_y)
    traj_z = np.array(traj_z)

    # 3. Calculate the velocity of each point by differentiating the trajectory
    traj_y_dot = np.gradient(traj_y, dt)
    traj_z_dot = np.gradient(traj_z, dt)

    return traj_y, traj_z, traj_y_dot, traj_z_dot
    ```

🗣
You have made a mistake. For each trajectory segment, you start from the same start_point, which means the trajectory stays at the same point over time. The objective of the function is to generate a zig-zag trajectory. Let's consider the problem in this way:

you can interpolate between two points to get a linear trajectory.
repeat this process to get all linear trajectory points and connect them together.

🤖
import numpy as np

def generate_2d_reference_trajectory(dt, traj_len, v_tar):
    """
    Generate a 2D reference trajectory with velocity.

    Parameters:
    dt (float): Timestep.
    traj_len (int): Maximum trajectory length.
    v_tar (float): Desired velocity.

    Returns:
    tuple: A tuple containing arrays for trajectory y coordinate (traj_y),
           z coordinate (traj_z) and velocity (traj_y_dot, traj_z_dot)
    """

    # 1. Randomly pick up 5 points in 2D y-z space within [-1.5, 1.5]
    points = np.random.uniform(-1.5, 1.5, (5, 2))

    # 2. Generate a zig-zag trajectory by interpolating between points
    traj_y = []
    traj_z = []
    distance = v_tar * dt
    num_segments = points.shape[0]

    current_point = points[0]
    next_point_idx = 1

    for _ in range(traj_len):
        next_point = points[next_point_idx]

        # Calculate direction vector and normalize
        direction = next_point - current_point
        direction /= np.linalg.norm(direction)

        # Calculate new point by moving in the direction with the desired distance
        new_point = current_point + direction * distance

        traj_y.append(new_point[0])
        traj_z.append(new_point[1])

        current_point = new_point

        # Check if we have reached the next point
        if np.linalg.norm(next_point - current_point) < distance:
            next_point_idx = (next_point_idx + 1) % num_segments

    traj_y = np.array(traj_y)
    traj_z = np.array(traj_z)

    # 3. Calculate the velocity of each point by differentiating the trajectory
    traj_y_dot = np.gradient(traj_y, dt)
    traj_z_dot = np.gradient(traj_z, dt)

    return traj_y, traj_z, traj_y_dot, traj_z_dot

🗣

The GPT has got things wrong. Let's fix that.

Generate a Python script based on Jax with docstring.
Input: point1 in y-z plane, point2 in y-z plane. Point number.
Output: linear interpolation between two points in the y and z axis.
Avoid using for loop for better performance.

🤖
    # Generate an array of evenly spaced values between 0 and 1 with shape (num_points, 1)
    t = jnp.linspace(0, 1, num_points).reshape(-1, 1)

    # Perform linear interpolation along the y and z axes
    interpolated_y = y1 + (y2 - y1) * t
    interpolated_z = z1 + (z2 - z1) * t

🗣
Generate six random points in 2D y-z space with Python and jax.

sample the first point uniformly from [-1.5, 1.5] (y[0], z[0]).
sample the next point with a distance sampling from [1.5, 2.5]. To make sure the point is not too far away from the centre, the displacement angle should be around the previous point angle to the centre jnp.atans(y[0],z[0]). Add a little displacement to that angle which sample from [-jnp.pi/4, jnp.pi/4] too add a little randomness.
repeat step 2 to get all 6 points.

🤖
import jax.numpy as jnp
import jax
from jax.random import PRNGKey, uniform
import matplotlib.pyplot as plt

def generate_points(num_points=6):
    points = jnp.zeros((num_points, 2))
    key = PRNGKey(3)

    # Sample the first point uniformly from [-1.5, 1.5]
    key, subkey = jax.random.split(key)
    y = uniform(subkey, minval=-1.5, maxval=1.5)
    key, subkey = jax.random.split(key)
    z = uniform(subkey, minval=-1.5, maxval=1.5)
    points = points.at[0].set(jnp.array([y, z]))

    for i in range(1, num_points):
        # Calculate the previous point angle to the center
        prev_angle = jnp.arctan2(points[i-1, 1], points[i-1, 0]) + jnp.pi

        # Sample a random displacement angle from [-pi/4, pi/4]
        key, subkey = jax.random.split(key)
        delta_angle = uniform(subkey, minval=-jnp.pi/4, maxval=jnp.pi/4)

        # Calculate the new angle
        angle = prev_angle + delta_angle

        # Sample the distance from [1.5, 2.5]
        key, subkey = jax.random.split(key)
        distance = uniform(subkey, minval=1.5, maxval=2.5)

        # Calculate the new point
        y = points[i-1, 0] + distance * jnp.cos(angle)
        z = points[i-1, 1] + distance * jnp.sin(angle)
        points = points.at[i].set(jnp.array([y, z]))

    return points

points = generate_points()

# Create the plot
plt.figure()
for i in range(6):
    plt.scatter(points[i, 0], points[i, 1], marker='o', label=f'{i}')
    # plot arrow from previous point to current point
    if i > 0:
        plt.arrow(points[i-1, 0], points[i-1, 1], points[i, 0] - points[i-1, 0], points[i, 1] - points[i-1, 1],
                  color='black', width=0.01, head_width=0.05, length_includes_head=True, alpha=i / 6)
plt.legend()
plt.scatter(0, 0, marker='x', color='red', label='Center')

# Add labels and legend
plt.xlabel('y')
plt.ylabel('z')
plt.title('Random Points in 2D y-z Space')
plt.legend()

# Set equal aspect ratio and display the plot
plt.gca().set_aspect('equal', adjustable='box')
plt.show()


Write reuable python function to link DOIs and PMIDs to author affiliation RORs

Now that we're out of hackathon mode, I think it would be useful to refactor our code so we can call a single script per data source to do the end to end data retrieval for that source (see #16).
Kaitlyn wrote several very helpful scripts to map DOIs to author affiliations (see resources/rrid_dataset_mapped_to_openalex.R and resources/joss_dataset_mapped_to_openalex.R). I think it would be useful to refactor these a little bit such that we had a reusable python function like so:
def work_to_affiliation_rors(ident: str, ident_type: str) -> list:
    """
    Given a work identifier and the type of that identifier (one of 'doi' or 'pmid'),
    retrieves the ROR ids of the author affiliations for that work.
    :param ident: Identifier for a work
    :param ident_type: Type of that identifier (either 'doi' or 'pmid')
    :return: List of ROR ids corresponding to author affiliations of that work
    """
    pass

We could then reuse this function in the various data pipelines that depend on this capability.
@kaitlynhair I would be grateful for your thoughts here. I am a little torn - I want to make sure everyone feels comfortable continuing to contribute if they like and I think you said you currently prefer R, but at the same time I think we should converge on a single language for our core data pipelines (this probably matters less for data analysis scripts we might use in the paper, for example), and I think python is something at least most people on the team have some familiarity with. What do you think - and/or, would you be interested in taking this on?

@jmelot I'm happy for things to move across to Python. Totally agree it makes sense to have it all in one pipeline!
I'll have a go over the next couple of days and update you on how I get on!

Hey, wanted to check whether you'd had a chance to look at this. If not, no worries, I can knock it out this weekend real quick (trying to get a draft of everything together for people to review in next couple of days), I can ask you to review to make sure I didn't miss anything!


Try to fix GameRegion specific issue(target selection behavior in JP server)

https://github.com/29988122/Fate-Grand-Order_Lua/issues/109
Refer to the latest comment to see the target selection behavior video.
The way to reproduce this bug was written in the first post of the issue.
It was long click before, but now it's only a single click. Damn annoying.

Apparently this needs your input.

I don't know how Lua transfer values inside<->outside functions, or modules. This GameRegion variable is from FGO_**_REGULAR.lua, so I have no idea it will work or not.

More importantly, I have no idea if this is the right way to do abstraction - we'll have to achieve low coupling(software engineering) since this is the main purpose of the refactoring, right?

(We have this, and a fair bit of region specific behavior being added frequently(filtering UI, button element position change, to name a few.), which at first implemented in JP server, but will probably be online in other servers within a year.)
How do we handle these from now on?

An option for fixing this issue could be to use continueClick() option rather than a regular click. I just checked with EN version and it didn't have any adverse affects. You can just make it double click. You'll have to test it though since it is REALLY fast clicks, so be sure it isn't too fast (and if it is, try increase the amount of clicks by 1 or 2)

Upon further testing, this fix will NOT work
Reason: my brain farted.
https://streamable.com/4yjoa
Still can't figure out a way to circumvent the issue.

As you said before, changes are being made in different region localizations at different times so this can become an unavoidable issue in the future. I think we just need to consider each situation as it occurs. Specifically, if it works in JP version, then it should work in future versions of
EN as well.
So we program for the new implementations of JP first, then create workarounds for odd behavior in EN in comparison.
Also, you make a good point..... So we need to figure out when the current target is already targeted. Before, you said we could look for the cross mark for exiting a sub-menu, but said it is not recommended. Why is that not recommended?

The size of extra window WILL CHANGE(with huge variation) as the length of the description text change. That means the position of crossmark varies a lot.

different region localizations at different times
work in future versions ofEN as well.

I agree with your view. However,

Low coupling

The remaining question is just "how "we implement it. I can't quite figure it out.
Add a few extra checks here and there, and the variable scope beyond the current module, doesn't seem to be a good idea - that's why my codebase's a mess before.

We may be able to get around that using the findAllNoExcept() function and increasing the potential region size for the window. I don't recall if it was particularly variable based on description size, but if that is the case this set of methods should fix it.
findAllNoExcept() returns a list of matches and doesn't throw an exception if not found so it won't stop the script in the middle and we can use it to click on the icon.
The use would look like this:
        icon = WindowCloseRegion:findAllNoExcept(GeneralImagePath .. "close_window.png")
        if icon then
                click(icon)
        end

To explain the above, icon is set to be equal to any matches given by findAllNoExcept(). If it returns nothing, then icon will be nil. In the if condition, if the condition is nil, it will default to false, meaning it will skip the click. If it is a match, it will default to true so it will enter the statement. And you can use a Match (which findAllNoExcept() returns) to use as a click location.
There may need to be some tweaking based on how it works.

Can't you click again outside of the window's bounds? Most windows in the game can be closed this way.

That may be an option. Perhaps clicking on the master picture would work? I don't believe there is any behaviour in doing so that will adversely affect any past or current versions.

Yeah, that is entirely an option for it. Also, as my friend is in dire need of a version that fits an odd aspect ratio, I have come up with a possible solution to the issue and a way to make it work on any device. I'm not looking to step on any toes, so do you have any issue with me posting a solution before you get to it Potchy? The method I would use would probably be different than what you're working on since it wouldn't be using a different module really. If you don't want me to do that I can just simplify the solution so that my friend can use it temporarily until a permanent fix comes into play.

Feel free to push a solution. Maybe it's more practical than my idea. Even if it isn't we can always improve or replace it later.
By the way, I'm going to travel on Wednesday, so I'll be away from my computer for a whole week. I may be able to reply to issues, but I won't be able to code anything for the time being.

I fixed the issue in JP server partially, merge this discussion into https://github.com/29988122/Fate-Grand-Order_Lua/issues/118


Test to demonstrate MERGE3 speed on tcp stack

Hi Bela,
here is a manual test for the issue I brought up at last meeting in Milan with MERGE3 when using TCP stack. The test configures Infinispan-like stack, creates partition by installing a view and waits for partition to merge back. This yields results like this one (runs exactly the same setup and only switches TCP/UDP):
-------------------------------------------------------------------
Results for TCP
Min merge time=48034
Max merge time=101050
Avg merge time=86958.1
===================================================================
Results for UDP
Min merge time=48019
Max merge time=48104
Avg merge time=48056.0
===================================================================

The problem being that merges with fairly low intervals 10-30 seconds can take actually up to 2 minutes for merge. Let me know what you think.

Hmm, interesting: UDP and SHARED_LOOPBACK have more or less the same numbers: it takes roughly check_interval ms for a merge to complete. TCP, OTOH, takes up to 100% more time. Investigating...

@belaban Thanks for looking into it, let me know if I can help.

The reason TCP takes longer than UDP is that TCP needs multiple rounds to merge all 10 members, whereas UDP always only needs one round. Need to investigate why this is the case...

Found out what the problem is: TCP runs a discovery first, to find out who it should send the INFO message to. The issue is that MERGE3 waits for (min_interval+max_interval)/2 ms, which in the test is ~5 seconds. This delays the sending of INFO messages by 5 seconds.
UDP skips this step as it can simply send the INFO message as a multicast message.
Because we're getting INFO messages from fewer members within the check_interval timeout in MERGE3, multiple merges are needed.

Hmm, methinks a reactive approach is better suited for this kind of issue: MERGE3 should send down a FIND_MBRS event and pass a ref to a lambda function which is invoked on every response. The lambda function simply sends the INFO message to that member. This is better than waiting for 5+ seconds, and doesn't block the thread. Creating a JIRA...

I created https://issues.jboss.org/browse/JGRP-2281 to fix this.

Great, thanks, looks like we are moving. I would still like to point out that, even with UDP:

the minimum time to merge is still at least max_interval * 1.6
the maximum time to merge is also max_interval * 1.6 while it would seem from the user perspective the maximum time for the merge would typically be the max_interval

Note that there's check_interval, which is by default set to max_interval * 1.6, but you can also set it yourself. However, if you set it to a value smaller than max_interval, chances are you'll miss some INFO messages and therefore don't have responses from all members.


updated readme

resolves #11

Coverage remained the same at 93.863% when pulling 7d63a143bb58dbdd4ccb6ea65c202b932a467496 on readme-update into bda86d3c9301f74a596a2b4a13ab418c4b551804 on master.


Take side into account when doing splitting

When selecting split on the top screen (or left part when doing vertical) the new split should end up in that position instead of always being at the bottom (as seen in the horizontal case)

Implemented


[Media] Updating AMS extension to 2020 sdk

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Media

Media

AMS

AMS

Please fix style and linter issue based on the ADO log. You can suppress option_too_long check in linter_exclusions.yml.


In console tail, each app gets its own color.

Instead of coloring all the prefix (the app name) in blue, we assign a different color to each app. If more than 6, we might assign the same color to two apps.
Useful for me anyway. You might want to pull it.

Thanks, it's a nice idea :)

You're welcome. Doing it as well on the log at index.ka needs a bit more work but I might get to doing it eventually...


Sort sub posts by Last commented on

Besides Hot, Top, New, also add a new post sort option which sorts posts in a sub by last comment.

Done via https://github.com/globalistas/ceknito/commit/1c90856debcc12021aeb940e7f49f1e90a1974f0 - also sorts home and all views.