Questions about FSDP2 support and memory usage.

What is current support of FSDP2 in main pytorch?
I just see this here https://github.com/pytorch/pytorch/blob/main/torch/distributed/_composable/fully_shard.py#L45

"torch.distributed._composable.fully_shard will be removed after PyTorch 2.5."

Will FSDP2 be deprecated? Can FSDP1 work with DTensor as well as TP?
I tried FSDP2 in my new project, but I got higher GPU Memory usage compared to FSDP1, what might this cause? The model is a 10B DiT-like model with extra embedding layer compared to LLMs. My main concern is that should I need to take more modules warpped with fully_shard to reduce the memory usage?
Since the transformer block is quite similar to llama, I use the same fully_sahrd warp with your project.

Sorry for the confusion. The fully_shard in torch.distributed._composable.fully_shard was an experimental API that we were working on that simply calls into the same code as FSDP1 (FullyShardedDataParallel).
FSDP2 is in torch.distributed._composable.fsdp.fully_shard (note the extra .fsdp).
Are you comparing FSDP1 vs. FSDP2 with the same "wrapping"? I.e. are you calling fully_shard on the same submodules as FullyShardedDataParallel (possibly through the auto_wrap_policy)?
If you are able to share some code, that would be helpful too!

Sorry for the confusion. The fully_shard in torch.distributed._composable.fully_shard was an experimental API that we were working on that simply calls into the same code as FSDP1 (FullyShardedDataParallel).
FSDP2 is in torch.distributed._composable.fsdp.fully_shard (note the extra .fsdp).
Are you comparing FSDP1 vs. FSDP2 with the same "wrapping"? I.e. are you calling fully_shard on the same submodules as FullyShardedDataParallel (possibly through the auto_wrap_policy)?
If you are able to share some code, that would be helpful too!

Thanks for your clarification!
For FSDP2, can you give more information or plans on future usage? And will FullyShardedDataParallel be worked with DTensor and TP?
For my own usage, FSDP1 is like
        fpSixteen = MixedPrecision(
            param_dtype=dtype,
            # Gradient communication precision.
            reduce_dtype=torch.float,
            # Buffer precision.
            buffer_dtype=dtype,
        )

        my_size_based_auto_wrap_policy = functools.partial(
            size_based_auto_wrap_policy, min_num_params=5e7)

        model = FSDP(model, mixed_precision=fpSixteen, auto_wrap_policy=my_size_based_auto_wrap_policy, device_id=torch.cuda.current_device(), sharding_strategy=ShardingStrategy.FULL_SHARD, use_orig_params=True)

I test FSDP1 on 8 GPUs in one machine, it costs about 55G GPU memory.
As for FSDP2:
        mp_policy = MixedPrecisionPolicy(param_dtype=dtype, reduce_dtype=torch.float)
        fsdp_config = {"mesh": dp_mesh, "mp_policy": mp_policy}

        for layer_id, st_blocks in enumerate(model.transformer_blocks):
            reshard_after_forward = int(layer_id) < len(model.transformer_blocks) - 1
            fully_shard(
                st_blocks,
                **fsdp_config,
                reshard_after_forward=reshard_after_forward,
            )
        fully_shard(model, **fsdp_config, reshard_after_forward=True)

it costs about 75G~80G GPU memory.
Sorry I can not provide more codes about the model arch. But the model arch is quit similar to llama, a DiT-like model together with extra input embeddings and bi-direction attention compared to llama. I think this shouldn't lead to such huge GPU memory gain.

In short, I think there could be two possibilities:

Different "FSDP wrapping"
Uneven sharding with FSDP2

The FSDP1 frontend API is FullyShardedDataParallel, and the FSDP2 front-end API is fully_shard. (The former is an nn.Module wrapper, while the latter is not.)
When you pass in an auto_wrap_policy to FSDP1, the policy is simply syntactic sugar that helps call FullyShardedDataParallel on submodules following the policy's predicate and reassigns the new wrapper FullyShardedDataParallel module back to its parent.
Each time you call an FSDP frontend API on a module, it creates one "parameter group" to be communicated together. Specifically, all parameters in module.parameters() except those already assigned to a nested FSDP module will be assigned to this new "parameter group".
For FSDP1, you are using a size based wrapping policy. This maybe leads to much smaller "parameter groups". In other words, for FSDP2, since you are only wrapping each transformer block, perhaps there are some other modules in your model that are not being assigned into their own "parameter group" but should for more fair comparison. Intuitively, wrapping more modules means more communication kernels, but generally lower peak memory usage.

Since FSDP2 shards parameters on dim-0, if you have some parameters with shape [dim0, dim1, ...], where dim0 is less than your FSDP world size (seems 8 for you) while the product of the other dims is large, then there will be significant padding. In adversarial cases, this could lead to significant extra memory usage.

Ultimately, the best way for you to debug this (if you want) is to compare memory snapshots. It is somewhat hard for me to say without more information. I can only recommend to make the comparison as apples-to-apples as possible. Making the 'wrapping' the same across FSDP1 and FSDP2 is always doable. For the uneven sharding issue, there is not much we can do right now; perhaps you can fold some dims together in your parameters to make dim-0 larger.

If you can get an open-source repro, I would be happy to help take a look!


| Reverse Linked List | C++

Title - Solution for Reverse Linked List in C++
What will change -
Type of Issue - Adding solution for 66. Reverse Linked List in C++
Please add/delete options that are not relevant.

[x] Adding New Code
[ ] Improving Code
[ ] Improving Documentation
[ ] Bug Fix

Programming Language
Please add/delete options that are not relevant.

[ ] Python
[x] C++
[ ] Java
[ ] SQL

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server ✉ - https://discord.gg/CXksGdn
Happy Coding,

Please assign this issue to me.

please assign this task to me! i have already solved it

Can I solve this issue, I can have an solution with O(n) time complexity

@SSKale1 Hi, could you please assign this one to me. Thank you.


fixed error stopiter error python3.7

Fixed error as per issue raised by #7

I run into the same problem with Python 3.8 and I can confirm that this fixes the error for me as well. +1 for merging.

I run into the same problem with Python 3.8 and I can confirm that this fixes the error for me as well. +1 for merging.

I confirmed that this works with Python3.9 @codinguncut Please merge. Thank you!!


Fixed an issue with an incorrect resolved signature being cached/returned sometimes for signatures depending on the contextual type/outer inference

fixes https://github.com/microsoft/TypeScript/issues/44879
Reproduction scenario - hover over call to $ before hovering over the call to m: TS playground.
Interestingly, it stopped being reproducible like this in 4.7: TS playground. I think this was fixed by https://github.com/microsoft/TypeScript/pull/36747 . However, following the exact same scenario using the test utils in the codebase still reproduce the issue - so it could resurface any time and it means that it somehow depends on what the TS server (or something) is doing now. The test utils do the bare minimum so it's easy to reproduce it there.

@typescript-bot run dt

@typescript-bot run dt

@typescript-bot run dt and dodge the npm race crash this time thanks


fix sporadic build fails

Description
Improvement
The apt-get update sporadically fails with the error output like
==> azure-arm: E: Could not open file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_focal-backports_universe_i18n_Translation-en - open (2: No such file or directory)
==> azure-arm: E: Could not open file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_focal-backports_universe_binary-amd64_Packages - open (2: No such file or directory)
==> azure-arm: E: Could not open file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_focal-

As a workaround the apt is mocked with the script to check the output for the specific error and rerun the command after a delay
The apt get sporadically fails with the error output like
gpg: can't connect to the agent: IPC connect call failed

Currently it is solved with the retry.
Related issue: https://github.com/actions/virtual-environments-internal/issues/1472
Check list

[x] Related issue / work item is attached
[ ] Changes are tested and related VM images are successfully generated

/azp run ubuntu1604, ubuntu1804, ubuntu2004


Update UG and DG

Update Ui.png
Add annotated image to explain GUI components
Add main features of JARVIS to UG
Update Quick Start section
Add explanation for sort order of completed tasks and lessons
Add UML diagram for Lesson classes

Fix #126

Codecov Report

Merging #166 (a68ea31) into master (93e1af6) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #166   +/-   ##
=========================================
  Coverage     36.55%   36.55%
  Complexity      525      525
=========================================
  Files           155      155
  Lines          3173     3173
  Branches        388      388
=========================================
  Hits           1160     1160
  Misses         1956     1956
  Partials         57       57

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Blocks Support (squashed commits from #152)

This PR is a duplicate of #152 but with a single commit rather than 4.
As Slack is pushing blocks as the default for complex messages, this PR is important for anyone reading the current docs and wanting to use Slacker with them.

OK, any idea who is responsable to merge this PR? Would be great to have this feature added.

Hi.
Still no one here to merge this PR?

I've been using it for about a month now, and it's working fine.
Low risk merge IMHO.

I don't have the permission to merge.

Thanks. There are many unrelated commits here so it's difficult to merge it as-is. Should we close this and create separate PRs for each change?

The unrelated ones are because I gave up on this PR after months of being ignored, and moved to the forked repo…
Happy for you to take it from here if you want to carry on supporting this code base, but I've moved my dependencies to the other fork 🤷♂


Build of MTA with module that provides service with properties

Hi
I created a mta.yaml, which should provide a module publicly, so that this module can be consumed again in another MTA. Following is a shortened version of the mta.yaml
ID: provider
version: 0.1.0
description: some description
_schema-version: "3.1"
modules:
  - name: some-module
    type: nodejs
    path: path/to/module
    parameters:
      disk-quota: 256M
      memory: 128M
    build-parameters:
      ignore: ["default-env.json", "node_modules/"]
    provides:
      - name: some-module-public-endpoint
        public: true
        properties:
          url: ${default-url}
        parameters:
          visibility:
            - org: ${org}
              space: "*"

According to the documentation, visibility of the public module can be restricted with the visibility parameter.
However, if I use this parameter, I get the following error.
Error: could not generate the "Makefile_20210603102339.mta" file: the "/home/project/mta.yaml" file is not a valid MTA descriptor: yaml: unmarshal errors:
  line 82: field parameters not found in type mta.Provides

For testing I created a mtad.yaml with mbt mtad-gen and executed the build (mbt assemble), but again I get the same error.
ERROR could not copy MTA artifacts to assemble: could not copy the MTA content: the "/home/project/mtad.yaml" file is not a valid MTA descriptor: yaml: unmarshal errors:
  line 54: field parameters not found in type mta.Provides

The line 82 / 54 is in each case the following:
parameters:
  visibility:
    - org: ${org}
      space: "*"

Are parameters currently not supported with a provides definition?
Is the configuration correct (compared also a sample repo)?

MBT Version: 1.2.1
OS Version: Ubuntu 18.04.5 LTS

Regards
Simon

Hi,
Thanks for opening the issue.
Unfortunately this feature is currently not supported. We plan to add it in the future. We will keep this issue open and update it once it's supported.
Best regards,
Tal

Hi Tal,
thank you for your answer.
If this feature is not yet supported, what does the documentation refer to?
Does the documentation then describe a feature that is not yet supported?
Regards
Simon

Hi,
The documentation refers to the MTA deployment on CF. If you create your own mtar file in which the mtad.yaml file contains the parameters, and deploy it, it will work in runtime.
Best regards,
Tal


Unable to make it work

Hi, is it possible to get some recommendations on how to run this tool. Looks like it could be very helpful for what I am trying to achieve.
I am trying to execute the parser like this using python2.7 and python3.6.4 and pt-query-digest 3.0.9:
python /tmp/PreTty-Query-Digest/launch.py --report_path /tmp/ --no_server slowquery.log

Starting pt-query-digest for slowquery.log
Traceback (most recent call last):
  File "/tmp/PreTty-Query-Digest/launch.py", line 36, in <module>
    parsed_result = run_pt_query.run(args.file_name)
  File "/private/tmp/PreTty-Query-Digest/src/run_pt_query.py", line 33, in run
    decoded_response = json.loads(json_response)
  File "/Users/xuserx/.pyenv/versions/3.6.4/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/Users/xuserx/.pyenv/versions/3.6.4/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Users/xuserx/.pyenv/versions/3.6.4/lib/python3.6/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Any chance I can pass directly the pt-query-digest report in JSON format to only visualise?

Sorry I haven't updated this repo in 4 years it is possible that since then the format changed


auth.setAuth() alternative for v1?

Describe the bug
Hello, I was using auth.setAuth() for custom auth from this discussion
But it seems auth.setAuth() is removed from v1.
I'd like to know if there is an alternative.

Version 1.0.1

Found migration docs
closing issue.

@ahndwon
Hi. Could you kindly share your solution?
The link you provided is for the JS client, and it's updating auth headers with custom JWT. The problem is that in Flutter you can set headers only during initialization, so how do you manage your state changes (login, logout)?

@nerixim - were you able to solve this? Please help.
In fact the documentation is blank.

@sunilguptasg
Unfortunately, I couldn't find a way to do it, so I'm using v0 now.

@dshukertjr The goal of v1.0.0 was improved dev experience, but removing setAuth makes things just more complicated. Is the only reason for not keeping it that gotrue-js removed it?

Found migration docs
closing issue.

It's empty !! What did you find, can't understand !!

@nerixim @omishah @sunilguptasg
What are the use cases? setAuth is mainly used to override the auth header for server side use.
You can pass headers like this to override the defualt auth headers set by Supabase.
final supabase = SupabaseClient(supabaseUrl, supabaseKey, headers: {
  'Authorization': 'Bearer $access_token',
});

@Vinzent03
Yup, the reason for removing it was to align the Flutter library with the js library.

My use case is as follows:

My use case is (and using with V0.x of supabase_flutter):

SMS Auth with Firebase Auth
A firebase function creates the Supabase JWT, and attached to the auth return
On auth, extract the JWT from the firebase auth
Set the JWT using Supabase.instance.client.auth.setAuth(JWT)
The Firebase auth token is then used for all Supabase activities, incl RLS

final supabase = SupabaseClient(supabaseUrl, supabaseKey, headers: {
'Authorization': 'Bearer $access_token',
}); >> worked! Thanks @dshukertjr
One question - do I still need to do this in main.dart:
await Supabase.initialize(
url: SupabaseConfig.supabaseUrl,
anonKey: SupabaseConfig.supabaseAnonKey,
);

My use case is to use an OAuth provider not yet supported by gotrue.
@dshukertjr Thank you for the solution, going to try it. Looks like I need to use some global state to set the token inside onAuthStateChange callback.
Maybe docs need a clarification, as the Flutter section doesn't cover that.

@sunilguptasg @nerixim
Thanks for sharing your use cases!
@sunilguptasg
I have updated the example code here. If you are using supabase-flutter, it might be easier to just pass the header in the Supabase.initizlize() function. You can run the Supabase.initialize() anywhere in your app, as long as it is called before you make a request to Supabase!
@nerixim

Looks like I need to use some global state to set the token inside onAuthStateChange callback.

By the token inside [onAuthStateChange], do you mean the access token inside the session object?
supabase.auth.onAuthStateChange.listen((data) {
  final session = data.session;
  session.accessToken; // This access token?
});

Yup, that sounds great! Adding this example to override the access token in the Flutter docs!

@dshukertjr
Thanks for updating your code example.
I'm new to Flutter, and I didn't know I could reinit my Supabase instance by disposing of it. I believe that fulfils my use case now, thank you 👍

In my case, i need to use RLS with a value inside the JWT and stream with supabase_flutter.
RLS works fine, but stream does not.
if i remove the RLS, the stream works again.
My policy :
create policy "Allow only notifications to Owner's in JWT"
on notifications
for all
with check (
  (auth.jwt() ->> 'Id')::int = notifications."owner"
);

Basically, I use custom auth passing a JWT in the header:
await Supabase.initialize(
    url: 'xxxxxxx',
    anonKey: 'xxxxxxxxxx',
    headers: {
      'Authorization':
          'Bearer xxxxxxxxxx',
    },
  );

late final Stream<List<Map<String, dynamic>>> _stream;

  @override
  void initState() {
    _stream = Supabase.instance.client.from('notifications').stream(['id']);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: _stream,
      builder: (context, snapshot) {
        return Container();
      },
    );
  }

RLS is working normally. But the STREAM stops working!
Can anyone help me?


Invalid instruction: Step 53 learn typography by building a nutrition label

Describe the Issue
The text below is referring to a span that doesn’t exist:
Finally, nest the Cholesterol and 0mg span elements inside an additional span element for alignment.
There is no 0mg span element in the code at this point.
Affected Page
https://www.freecodecamp.org/learn/2022/responsive-web-design/learn-typography-by-building-a-nutrition-label/step-53
Your code

Expected behavior
Change the text to:
Finally, nest the Cholesterol span element and 0mg inside an additional span element for alignment.
Screenshots
No response
System
N/A
Additional context
No response

If we apply the same changes from Step 43, the new text would be:

After your last .divider, create a new p element with the text Cholesterol 0mg 0%. Wrap the text Cholesterol in a span element, and give that span element the class of bold. Wrap the text 0% in another span element, with the class of bold. Finally, nest the Cholesterol span element and the text 0mg in an additional span element for alignment.

@jeremylt You're right, the instruction should be updated to the one in your comment.

This looks like something that can be fixed by "first-time" code contributors to this repository. Here are the files that you should be looking at to work on a fix:
List of files:

https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7de4487b64919bb4aa5e.md

Please make sure you read our guidelines for contributing, we prioritize contributors following the instructions in our guides. Join us in our chat room or our forum if you need help contributing; our moderators will guide you through this.
Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first.
Happy contributing.


Expose Pulumi organisation information

Ported from Go SDK
https://github.com/pulumi/pulumi/blob/master/sdk/go/pulumi/context.go#L221
The organization in Stack is explained in couple places:

https://www.pulumi.com/docs/concepts/stack/#create-stack
https://www.pulumi.com/docs/concepts/stack/#stackreferences

Alternatively, to not pollute the context, we could make this a part of stack name, like we did with the URN, WDYT?

Change scope and shape of this change according to #295

closed in favor of #301


ci: add tools to automate git-flow

This PR introduces new tools + docs on the automation of the git workflow that we follow on this project.
The tools are installed to help us automate the tasks that we do today around merging PRs and deployment. See the bot comment in this PR? That's one of the tools!
The docs are designed to help us and future team members learn the workflow that we use for development and deployment.
With reviewing this PR, the biggest need that it has is reading the documentation to see if it answers all of your questions in regards to how to use these tools.

Hey, there @levibostian 👋🤖. I'm a bot here to help you.
This project uses a special format for pull requests titles. Don't worry, it's easy!
This pull request title should be in this format:
<type>: short description of change being made

If your pull request introduces breaking changes to the code, use this format:
<type>!: short description of breaking change

where <type> is one of the following:

feat: - A new feature is being added by this pull request.

fix: - A bug is being fixed by this pull request.

docs: - This pull request is making documentation changes, only.

refactor: - A change was made that doesn't fix a bug or add a feature.

test: - Adds missing tests or fixes broken tests.

style: - Changes that do not effect the code (whitespace, linting, formatting, semi-colons, etc)

perf: - Changes improve performance of the code.

build: - Changes to the build system (maven, npm, gulp, etc)

ci: - Changes to the CI build system (Travis, GitHub Actions, Circle, etc)

chore: - Other changes to project that don't modify source code or test files.

revert: - Reverts a previous commit that was made.

Examples

```
feat: edit profile photo
refactor!: remove deprecated v1 endpoints
build: update npm dependencies
style: run formatter
```

Need more examples? Want to learn more about this format? Check out the official docs.
Note: If your pull request does multiple things such as adding a feature and makes changes to the CI server and fixes some bugs then you might want to consider splitting this pull request up into multiple smaller pull requests.

:tada: This PR is included in version 1.1.0-alpha.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.0-beta.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Problems running multiple bots

Seems like the api is not answering when running 10 instances of the bot.  It is either their api limiting req/s per ip
or just the new pokeapi/bot couldn't handle it.
I need info from other people if they have multuple bots running from the same ip/installation folder.

I think there is a ip limit when u run more than 3 bots.

iam running 9 without any throttling maybe 10 is the limit for your setup/api? this needs some investigation. maybe we have to create a new user running that instance or its the internet connection (read router)?

I cant run more than 3 :(

If will be option to select IP will be possible to run more than 3 - someone pull request: #3010

With less than 3 bots I have no problem with 4 sometimes it hung one time for like 7 minutes.
Will experiment with map_object_cache 10 right now at 5.


Redirect straight from http://gov.uk to https://www.gov.uk

At the moment, requests to http://gov.uk are redirected to https://gov.uk and
then to https://www.gov.uk.
Why is it like this?
This was done deliberately because we wanted to get gov.uk in the HSTS
preload list (which is a list of domains which browsers should always use HTTPS
for).
The Strict-Transport-Security header is ignored for plain http:// requests, so
we needed to redirect to https://gov.uk to be able to serve the response in a
way which would be respected by browsers.
In the time since we added this redirect, gov.uk has been put on the HSTS preload list:
https://github.com/chromium/chromium/blob/master/net/http/transport_security_state_static.json
{ "name": "gov.uk", "policy": "custom", "mode": "force-https", "include_subdomains": false },

Why should we change it now?
There's a theoritical web performance cost to the extra redirect. An extra TCP
connection to gov.uk:443, and an extra TLS handshake for https://gov.uk, and an
extra HTTP request. All of which we could have skipped if http://gov.uk redirected
straight to https://www.gov.uk.
This is mostly theoretical because gov.uk is on the HSTS preload list, so
browsers won't make the first request (to http://gov.uk).
This commit only changes the behaviour for the http:// redirect (the 801
virtual status code), so nothing will change for HSTS respecting user agents
which never make http:// requests.
User agents which don't follow HSTS (e.g. curl) will get a simpler redirect,
which will be a little bit faster.
Is there some risk of disaster here?
We have to be very careful with gov.uk's HSTS status. There are lots of
subdomain of gov.uk which still don't support https (including most of the
domains we "transitioned"). Accidentally putting gov.uk on the HSTS preload
list with includeSubdomains set would effectievly break all the http:// subdomains.
This happened by accident in a version of IE in 2019 (due to a mistake on microsoft's side).
This change should not increase the risk of that kind of issue - https://gov.uk
will still serve the Strict-Transport-Security header, as it has since 2017.

See also https://bugs.chromium.org/p/chromium/issues/detail?id=700280#c9 which was the ticket that got gov.uk added to the HSTS preload list in Chrome.

The Slack Seal has brought this back under scrutiny 😁
@richardTowers is there any reason why this wasn't merged? Is it something you'd like Platform Reliability to carefully roll out next sprint?

🦭
I think this is so low value that (even though it's low risk) it's probably not worth doing. I've converted it to a draft to quieten the seal.
Also coming back to it with a fresh set of eyes, I wonder if this wouldn't cause problems in non-production environments (staging and integration) since I hardcoded www.gov.uk 🤔


Fix more test assertions for '@' in main-repo labels

Also disabled some tests involving target patterns (see https://github.com/bazelbuild/rules_scala/issues/1420)
Description

Motivation

This is the last (hopefully...) PR blocking https://github.com/bazelbuild/bazel/issues/16196 . @liucijus @simuons could we get it merged soon?

closing as stale, feel free to reopen


Performance with many markers

I have a performance issue when Leaflet.TimeDimension shows many markers. To demonstrate this I created a jsbin which draws circleMarkers on a single canvas:
http://playground-leaflet.rhcloud.com/rus/1/edit?html,output
If you have a look at the time display of the player UI element you can see that the performance initially is good. It significantly drops when you move the slider to the end of the timeline.
For my use case I need to show ALL previous markers (as in the jsbin example). I suppose that Leaflet.TimeDimensiom currently keeps some stateful information for each marker it displays which results in this performance drop. Can you help me locating the according bottleneck?
I would expect that Leaflet.TimeDimension only draws the according marker to the canvas and then forgets everything about it when it advances to the next step.

For each time, it will recreate a new layer that contains only the features that are returned by _getFeatureBetweenDates see L.TimeDimension.Layer.GeoJson
Returning null in that function will remove the feature.
One improvement will be to use a LineString instead of a feature collection. You can specify a time for each coordinates along the path. This is what is used in the Hiking example.
In any case rendering 2000 markers in leaflet is pretty intensive. They are all rendered as div. If you use a linestring, leaflet will render the path in svg or canvas.

In the linked jsbin I already set window.L_PREFER_CANVAS=true for perfmance reasons so that all markers are painted in the same canvas without adding separate divs. Unfortunately this didn't help.
Also as I need some additional properties for each geoposition I unfortunately have to use feature objects and cannot switch to LineString.
For me it looks as if I the _update function should be tweaked so that it does not create a new layer with all the previous features on each tick but simply adds the new marker (of the current tick) to the already existing _currentLayer. Does this sound reasonable to you?

You can try that, but the actual code deal with one other thing : remove obsolete features.
Not useful in your case but still allow to display only the last 5min for example.
Don't forget the case when the user come back in time. you need to remove all future points.
LineString are something else because they are not add/removed their path is modified.
You can still go the shorter path and change this function only for your need.
This is complex to optimized, and I feel you will end up with some sort of a reverse map time->feature
PS : profiler on chrome says it's spending 46% of time in drawing strokes. That may be better with Leaflet 1.0

Update: I already did a quick test with the new strategy which looks promising: There isn't any notable performance drop with 2000 markers.
My strategy would be as follows:
When minTime is 0 and the current time directly follows the last time which has been displayed the new feature gets added to the already existing _currentLayer instead of removing the previous _currentLayer and readding a new layer with all the previous markers.


LXD needs to be able to set veth.pair name for nova compute driver

I patched the nova-lxd openstack compute driver to be able to handle linux_bridge vxlan networks. In order to do this nova compute passes the name of the tap device that should be created to the driver. This tap device needs to be prefixed with tap* in order for the bridge agent to pick up the interface and know that the vif port is plugged allowing neutron to notify nova that the network is setup up.
I passed the name to LXD using the devices structure as follows:
config:
...
volatile.tap9f815aef-23.name: eth0
devices:
tap9f815aef-23:
hwaddr: fa:16:3e:0e:b8:2e
nictype: bridged
parent: brqf781634d-6e
type: nic
I then added this to the container_lxc.go file in order to rename the veth pair device:
                   if shared.StringInSlice(m["nictype"], []string{"bridged"}) {
                            err = lxcSetConfigItem(cc, "lxc.network.veth.pair", k)
                            if err != nil {
                                    return err
                            }
                    }

Perhaps there is a better way of doing this but as it stands, the veth.pair name needs to be passed otherwise instance creation in compute will not complete properly

Using the device name seems like a bad idea as it will trivially conflict if used within a profile.
But having an appropriately named property available for when a veth pair is generated (bridged and p2p mode) would be fine I think. We obviously don't want to hardcode a name by default as the kernel is way better than we are at preventing clashes, but having an optional property for it would be fine.

Maybe something like:
config:
...
volatile.something.name: eth0
devices:
something:
hwaddr: fa:16:3e:0e:b8:2e
nictype: bridged
parent: brqf781634d-6e
type: nic
veth.pair: tap9f815aef-23 (optional, otherwise generated)

would probably go with something like name_host as property name, but yeah.

That has now been implemented, closing.


ReorderableListView can't cope with dragging with two fingers simultaneously and breaks the app

Steps to Reproduce
Using the very basic code:
import 'package:flutter/material.dart';

void main() {
  runApp(SampleApp());
}

class SampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      darkTheme: ThemeData.dark(),
      themeMode: ThemeMode.dark,
      home: Scaffold(
        body: SafeArea(
          child: SampleList(),
        ),
      ),
    );
  }
}

class SampleList extends StatefulWidget {
  @override
  _SampleListState createState() => _SampleListState();
}

class _SampleListState extends State<SampleList> {
  final items = [
    'AAAAA',
    'BBBBB',
    'CCCCC',
  ];

  @override
  Widget build(BuildContext context) {
    return ReorderableListView.builder(
      itemCount: items.length,
      onReorder: (oldIndex, newIndex) {
        final movedItem = items.removeAt(oldIndex);
        final insertionIndex = newIndex > oldIndex ? newIndex - 1 : newIndex;
        items.insert(insertionIndex, movedItem);
        setState(() {});
      },
      itemBuilder: (context, index) {
        final item = items[index];

        return ListTile(
          key: ObjectKey(item),
          title: Text(item),
        );
      },
    );
  }
}

Reproducible 100% here on Android and iOS devices in release mode.
Run it using flutter run --release on a device. This is very important, use the release mode.
Drag and drop any item in the list using just one finger - all works fine.
Drag and drop any item in the list using two fingers on the same item - the UI breaks in different weird ways - sometimes items disappear, sometimes the list gets covered with a whitish overlay (easily visible in dark mode hence the sample app uses it), sometimes there is a huge gap between items after dropping, sometimes the app gets completely broken and cannot be used any more. Try a few times.

Expected results:
I expect the list not to break. I don't actually need the 'two finger drag' for anything, I just came across this issue by accident and I think it should not break the app beyond recovery.
Actual results:
The UI breaks in different weird ways - sometimes items disappear, sometimes the list gets covered with a whitish overlay (easily visible in dark mode hence the sample app uses it), sometimes there is a huge gap between items after dropping, sometimes the app gets completely broken and cannot be used any more.

Logs
When run in release mode on Pixel 3XL (I don't see any logs on iOS in release mode but the app breaks all the same), this gets thrown:
I/flutter (22963): Null check operator used on a null value
I/flutter (22963): #0      SliverReorderableListState._dropCompleted (package:flutter/src/widgets/reorderable_list.dart:643)
I/flutter (22963): #1      _DragInfo._dropCompleted (package:flutter/src/widgets/reorderable_list.dart:1163)
I/flutter (22963): #2      _DragInfo.startDrag.<anonymous closure> (package:flutter/src/widgets/reorderable_list.dart:1134)
I/flutter (22963): #3      AnimationLocalStatusListenersMixin.notifyStatusListeners (package:flutter/src/animation/listener_helpers.dart:199)
I/flutter (22963): #4      AnimationController._checkStatusChanged (package:flutter/src/animation/animation_controller.dart:812)
I/flutter (22963): #5      AnimationController._tick (package:flutter/src/animation/animation_controller.dart:828)
I/flutter (22963): #6      Ticker._tick (package:flutter/src/scheduler/ticker.dart:238)
I/flutter (22963): #7      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144)
I/flutter (22963): #8      SchedulerBinding.handleBeginFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:1058)
I/flutter (22963): #9      _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:397)
I/flutter (22963): #10     SchedulerBinding.handleBeginFrame (package:flutter/src/scheduler/binding.dart:1056)
I/flutter (22963): #11     SchedulerBinding._handleBeginFrame (package:flutter/src/scheduler/binding.dart:977)
I/flutter (22963): #15     _invoke1 (dart:ui/hooks.dart:182)
I/flutter (22963): #16     PlatformDispatcher._beginFrame (dart:ui/platform_dispatcher.dart:237)
I/flutter (22963): #17     _beginFrame (dart:ui/hooks.dart:114)
I/flutter (22963): (elided 3 frames from dart:async)

When run in debug mode on Pixel 3XL or iPhone XS:
══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
The following assertion was thrown while handling a gesture:
'package:flutter/src/widgets/reorderable_list.dart': Failed assertion: line 579 pos 12: '_dragInfo
== null': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially
more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      SliverReorderableListState._dragStart (package:flutter/src/widgets/reorderable_list.dart:579:12)
#3      MultiDragGestureRecognizer._startDrag.<anonymous closure> (package:flutter/src/gestures/multidrag.dart:277:61)
#4      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
#5      MultiDragGestureRecognizer._startDrag (package:flutter/src/gestures/multidrag.dart:277:14)
#6      MultiDragGestureRecognizer.acceptGesture.<anonymous closure> (package:flutter/src/gestures/multidrag.dart:267:48)
#7      _DelayedPointerState.accepted (package:flutter/src/gestures/multidrag.dart:496:14)
#8      MultiDragGestureRecognizer.acceptGesture (package:flutter/src/gestures/multidrag.dart:267:11)
#9      GestureArenaManager._resolveInFavorOf (package:flutter/src/gestures/arena.dart:264:12)
#10     GestureArenaManager._resolve (package:flutter/src/gestures/arena.dart:223:9)
#11     GestureArenaEntry.resolve (package:flutter/src/gestures/arena.dart:53:12)
#12     MultiDragPointerState.resolve (package:flutter/src/gestures/multidrag.dart:69:18)
#13     _DelayedPointerState._delayPassed (package:flutter/src/gestures/multidrag.dart:482:7)
(elided 13 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)

Handler: "onStart"
Recognizer:
  DelayedMultiDragGestureRecognizer#d4638
════════════════════════════════════════════════════════════════════════════════════════════════════

flutter analyze output:
Analyzing sample_app...
No issues found! (ran in 5.2s)

flutter doctor output:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, 2.2.3, on macOS 11.5.2 20G95 darwin-x64, locale en-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[!] Android Studio (version 2020.3)
    ✗ Unable to find bundled Java version.
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2)
[✓] VS Code (version 1.59.0)
[✓] Connected device (4 available)

! Doctor found issues in 1 category.

Thanks for detailed report and code sample. I see the same behavior on latest stable and master.

In release mode, trying to use two fingers to drag and drop results in screen going grey as below:

In debug mode, trying to use two fingers to drag and drop results in below error log in the console:

console error log
══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
The following assertion was thrown while handling a gesture:
'package:flutter/src/widgets/reorderable_list.dart': Failed assertion: line 625 pos 12: '_dragInfo
== null': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially
more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      SliverReorderableListState._dragStart (package:flutter/src/widgets/reorderable_list.dart:625:12)
#3      MultiDragGestureRecognizer._startDrag.<anonymous closure> (package:flutter/src/gestures/multidrag.dart:295:61)
#4      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
#5      MultiDragGestureRecognizer._startDrag (package:flutter/src/gestures/multidrag.dart:295:14)
#6      MultiDragGestureRecognizer.acceptGesture.<anonymous closure> (package:flutter/src/gestures/multidrag.dart:285:48)
#7      _DelayedPointerState.accepted (package:flutter/src/gestures/multidrag.dart:547:14)
#8      MultiDragGestureRecognizer.acceptGesture (package:flutter/src/gestures/multidrag.dart:285:11)
#9      GestureArenaManager._resolveInFavorOf (package:flutter/src/gestures/arena.dart:264:12)
#10     GestureArenaManager._resolve (package:flutter/src/gestures/arena.dart:223:9)
#11     GestureArenaEntry.resolve (package:flutter/src/gestures/arena.dart:53:12)
#12     MultiDragPointerState.resolve (package:flutter/src/gestures/multidrag.dart:76:18)
#13     _DelayedPointerState._delayPassed (package:flutter/src/gestures/multidrag.dart:533:7)
(elided 13 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)

Handler: "onStart"
Recognizer:
  DelayedMultiDragGestureRecognizer#0e527
════════════════════════════════════════════════════════════════════════════════════════════════════

Above error is triggered as soon as two fingers are placed on the screen.

 stable and master flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.2.3 at /Users/dhs/documents/fluttersdk/flutter
    • Framework revision f4abaa0735 (4 days ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • SM G975F (mobile) • RZ8M802WY0X • android-arm64 • Android 10 (API 29)
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 91.0.4472.114

• No issues found!

[✓] Flutter (Channel master, 2.5.0-7.0.pre.83, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-GB)
    • Flutter version 2.5.0-7.0.pre.83 at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 06be7e5392 (12 hours ago), 2021-08-15 14:37:02 -0400
    • Engine revision 1af0a20793
    • Dart version 2.15.0 (build 2.15.0-15.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • SM G975F (mobile) • RZ8M802WY0X • android-arm64 • Android 10 (API 29)
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 91.0.4472.114


Query link for FeatureSets

The 'query' link for the datasets seems to work fine, but the query link for FeatureSets all say 'unknown'.

Okay, so this is fixed (mostly).... if a FeatureSet shows up with an 'unknown' for it's AWS url, you can run
fs.details(recompute=True)


PHP-CPP example compilation link issue

Good day. Have succesfully compilled and installed PHP-CPP on MacOs 10.10 PHP 7.0
But can not compille any examples exept the empty extention.
Common linker report:
g++ -shared -o yourextension.so main.o -lphpcpp
Undefined symbols for architecture x86_64:
"Php::Value::exec(char const*, int, Php::Value*)", referenced from:
example_function(Php::Parameters&) in main.o
Php::Object::Object<>(char const*, Php::Value) in main.o
"Php::Value::exec(int, Php::Value*) const", referenced from:
example_function(Php::Parameters&) in main.o
Php::Value Php::Value::operator()<char const (&) [5], char const (&) [10]>(char const (&&&) [5], char const (&&&) [10]) const in main.o
"Php::Value::isArray() const", referenced from:
std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > > Php::Value::vectorValue<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >() const in main.o
"Php::Value::isString() const", referenced from:
Php::Value::contains(Php::Value const&) const in main.o
Php::Value::get(Php::Value const&) const in main.o
Php::Value::set(Php::Value const&, Php::Value const&) in main.o
Php::Value::unset(Php::Value const&) in main.o
"Php::Value::isNumeric() const", referenced from:
Php::Value::contains(Php::Value const&) const in main.o
Php::Value::get(Php::Value const&) const in main.o
Php::Value::set(Php::Value const&, Php::Value const&) in main.o
Php::Value::unset(Php::Value const&) in main.o
"Php::Value::setType(Php::Type) &", referenced from:
Php::Object::setType(Php::Type) & in main.o
Php::Array::setType(Php::Type) & in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [yourextension.so] Error 1
Look like it is need link some base php libraries? How we can do that? Mainly we use XCode and just start use Make.
Thanks for the your Open Spurce library and your time.
Moscow buddihst center Rime www.buddism.ru

Ok. Problem solved. In all Makefile need add the same directives as in main Make file
LINKER_FLAGS			=	-shared -undefined dynamic_lookup


Fix the process of removing a USB

Devices still exist from guest perspective after being removed from
dom0. The following changes here and in xenvusb.git ensure USBs appear
removed from guest perspective for all types of removals, including
while the guest is asleep.

fdoContext spinlock should be released before returning regardless if
xenConfigured is true or false
CtlrDisconnected should be set to TRUE after calling FdoUnplugDevice.
Within this function, child devices are not removed if the
CtlrDisconnected is already TRUE

Signed-off-by: Bryer Esengard<EMAIL_ADDRESS>

This MR is directly related to another one here: https://github.com/OpenXT/xenvusb/pull/2


Possible to extend deadline?

Hello Waymo Team,
I didnt know anywhere else to contact, hence I ask here.
We are working towards a submission of our model and we faced a lot of difficulties in fixing data for training.
Its difficult to setup the submission till tomorrow.
Would it be possible to extend the deadline by a couple of days for all?
Please let us know if its possible to consider this request.

Hi Manoj,
Thanks for your participation in the challenges. Unfortunately, we cannot extend the deadline since we are constrained by our upcoming workshop at CVPR.
However, the leaderboards will remain open to submissions even after the challenge deadline. So even though future submissions would not be eligible for the awards, you can still showcase your work.


Creating a HDMI CEC Test pack.

Create a HDMI CEC Test pack that covers L2, L3

Removed Testing Done -> That's not valid... If this is a testing ticket and theres work to be done, then do the work, report on the ticket, and close the ticket..
It's not a State of either a code change, or something thats in remove, the state is being removed.

these docs are now merged with issue 24 along with source device hdmi cec documentation and then pushed to develop

Closed due to PR #28 and to issue #24


[FABC-903] Add GetFilteredUsers Unit test

add the unit test to cover GetFilteredUsers case and update the error msg
Signed-off-by: bjzhang<EMAIL_ADDRESS>

Type of change

Test update

Description
The getFilteredUser does not have full test path of all cases, I add the unit to fix this problem.
And update the error msg to tell the user what the query do.

Additional details

Related issues
[FABC-903]

I have solved the problem


adapting Interval strings to SQL range syntax

Julia Interval string representation uses ".." to separate bounds, SQL uses ","
This enhancement provides for storing julia intervals with SearchLight.

@Kaeptenblaubaer Can this be merged already or still WIP?

Its tested

Please merge

So this is the dependency if I am correct right: https://invenia.github.io/Intervals.jl/latest/

@Kaeptenblaubaer Thanks!


Performance issues /w ACF

Hey guys, we're inheriting a project which was built on timber and are running into quite the mess in terms of performance.
On every page load timber Term class is creating over 2000 queries... I need to understand how the term class is supposed to work and how I could fix this issue...
The site is using ACF and when the Term class gets loaded it riggers
$custom = $this->get_term_meta( $term->term_id );

which then applies filters
$customs = apply_filters( 'timber_term_get_meta', $customs, $tid, $this );

which finally loads this monstrosity
public function term_get_meta( $fields, $term_id, $term ) {
		$searcher = $term->taxonomy . '_' . $term->ID; // save to a specific category
		$fds = get_fields( $searcher );
		if ( is_array( $fds ) ) {
			foreach ( $fds as $key => $value ) {
				$key = preg_replace( '/_/', '', $key, 1 );
				$key = str_replace( $searcher, '', $key );
				$key = preg_replace( '/_/', '', $key, 1 );
				$field = get_field( $key, $searcher );
				$fields[ $key ] = $field;
			}
			$fields = array_merge( $fields, $fds );
		}
		return $fields;
	}

On 35 terms in the system this creates 2000+ queries that run on EVERY single page load... is this normal for this starter theme?
Shouldn't any form of caching be implemented here to prevent this from happening on every single page load?
Any thoughts on work around of this?

Closing this as outdated since 2.0 has landed


Don't show bookmark button by default

By default don't show bookmark button on images, user can opt-in to that. If they do and even if there are no rich embeds, they still see the bookmark button.
Fixes #4
Example:

Closing in favour of #9 !

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Change license to Apache 2.0

What does this PR do?
We are about to propose Devfile as a CNCF sandbox project. Most of the CNCF projects are licensed under Apache-2.0 and that’s what the community is used to. Re-licensing to Apache-2.0 would make the process smoother and augment our chances to successfully transition the project to CNCF sandbox. Both EPL-2.0 and Apache-2.0 are open source licenses that are widely used in the industry and Apache-2.0 is considered more permissive than EPL-2.0.
⚠ This PR is in draft mode. We are contacting existing contributors to get their approval and then we will merge it.
What issues does this PR fix or reference?
https://github.com/devfile/api/issues/426

We had the approval from all contributors. We can merge this PR now.


Cant upgrade diamond with silver to netherite

You can upgrade diamond armor with silver but when you do you cant upgrade it to netherite.

DONE


RAG stops working after first successful query

When using the RAG system in the chatbot, I noticed an issue where the first query works as expected but subsequent identical queries do not return any results from the vector store.
For example:

Ask "Who introduced ratings to the US?"

Returns a vector with score > 0 and relevant text snippet

Ask the exact same question again

No vector returned, even though it was previously found

It seems like the context is not being maintained properly between queries in Langchain. The initial RAG query saves the vector/text to the context, but that context is not reused on follow-up identical questions.
This defeats the purpose of the RAG system, since the user would expect to get the same semantic search results when asking the same question multiple times.
Ideally the chatbot should return the same text snippet even on repeated queries, as long as the original vector is still available in the index.
Let me know if any other info would be helpful in debugging this further. Thanks!

Confirmed it only does this with OpenSearch and Aurora RAGs. Kendra works past the first query.


Cannot search code on forked repos.

Bug Report
Steps to Reproduce:
Attempted to search code for:

https://github.com/finos/kdb-studio
https://github.com/finos/qPython

Expected Result:
Search results.  eg. Searching for _writer_map in qPython should include:

https://github.com/finos/qPython/blob/main/qpython/qwriter.py#L54

Actual Result:
GitHub returns, "Sorry, forked repositories are not currently searchable."
Environment:
Searched using Google Chrome.
Additional Context:
These kdb-studio and qPython were forked into FINOS because:

The original maintainers were no longer active.
These projects are still used at FINOS member organizations and required updating.

In a way, these forks are the new de-facto mainline.  Not being able to search is added friction for the developer experience and makes the the projects seem less official than the unmaintained repositories.

@mcleo-d suggested that @pholleran and/or @Moose0621 could opine.

This is as expected. We presently don't index forks for search.
A while back we announced work on a new code search engine for GitHub. The tech preview is open and users can register to participate. We plan to integrate this experience into GitHub later this year.
Searching within the forks linked above with the new experience returns the results below. At this time I can't say whether or not all forks will be included when this becomes the default GitHub search experience later this year, but it is promising.


MACServer Exploit Usability Changes

This is code is only half tested! I don't have a test setup for this, so all the testing I have done is with "connection timeout" as a result.
Would love some help testing it.
The MACServerExploit.py script is very different from the WinboxExploit.py script, so getting this to work put my Python skills to the limit. I'll list issues I have below in comments.
In an attempt to fix/prevent issues like #31.

I haven't tested this. Hope it works


Fix NPE on turnDown

@TakuSemba Pull request fixes the following exception:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.animation.TimeInterpolator ckp.e()' on a null object reference
       at com.takusemba.spotlight.SpotlightView.turnDown(SpotlightView.java:105)
       at com.takusemba.spotlight.Spotlight.finishTarget(Spotlight.java:225)
       at com.takusemba.spotlight.Spotlight.closeCurrentTarget(Spotlight.java:150)...

thank you so muck, it looks good.


Use pipes instead of web socket for Puppeteer

We're using the default web socket connection now, but pipes might be more beneficial, even though they may not provide any performance benefits. It will probably also be the default in Puppeteer v2.
Currently, when turned on, some of our tests fail for various reasons, so the job would mostly be to figure out what's wrong and fix the issues.

Done


Provide a search endpoint that returns found software identifiers

One of the key functionalities of Delphi will be the ability to search for software that matches certain criteria. Please provide an endpoint that takes a string in the Delphi query language an returns a list of unique software identifiers that match the query.
Please implement #14 first.

Solved with dd3d624d1cf848f478ca7da23c8f65c5a15f2638


Static member variable initializer called multiple times

Describe the bug
Static member variable initializer is called each time an object is created.
To reproduce
Steps to reproduce the behavior:
class StaticImage {
    protected static img: Image = image.create(screen.width, screen.height)

    constructor(id: number = 0) {
        StaticImage.img.fill(0)
        StaticImage.img.printCenter('Static Image ID: ' + id, screen.height / 2, 1, image.font8)
        scene.setBackgroundImage(StaticImage.img)
    }   // constructor()
}   // class StaticImage

On hardware, at least, this initializer is called each time an object is instantiated. Not sure if this also happens in the browser simulator. Sample application is below.
Expected behavior
This is more of a stylistic exercise, and it depends on the TypeScript implementation. If the TypeScript transpiler calls the initializer each time an object is instantiated, then the MakeCode implementation is accurate. If, however, the hardware compiler for MakeCode Arcade differs from the TS transpiler's interpretation, then this is a bug in the hardware compiler.
I'm on the fence with this one as to whether this is a bug. As long as the implementations in the browser simulator and in the hardware compiler are consistent with each other and with the interpretation in the TypeScript language itself, then it's fine (though it probably should be documented). If either is inconsistent with TS, though, the implementation should be corrected.
Sample application
Head this way for a demonstration of this error. Press A to create instances of the StaticImage class, and press B to create instances of the StaticImageNull class, which uses a null check on the static member variable within the constructor. On a hardware device, you’ll be able to create many instances of the StaticImageNull class by pressing B. You’ll only be able to create two instances of the StaticImage class, though, before the device runs out of memory.
https://makecode.com/_ctiRjhH2hTL4
Versions

MakeCode Arcade 0.8.11 (current production version)
BrainPad Arcade

Additional context
Full conversation, including response from @mmoskal, can be found here:
https://forum.makecode.com/t/splash-screens-and-options-panels-ts-library/171/9?u=alexk

To match js / ts semantics it should only be run once: eg this snippet only alerts once (meaning it is only created once and not for each instance of Greeter), which makes sense if you look at the generated javascript.
class Greeter {
    protected static str: String = (() => {
        alert("test");
        return "";
    })();
    int: number = 0;
}

new Greeter();
new Greeter();

Also, I think it should ideally be gc-ing the old images anyways to not crash? Potentially two bugs here :)

Ooh, think I found the root of the bug: the static fields are being initialized at the start of the program (good), but then also recreated like a non-static field if a constructor exists (bad) -- e.g. the snippet below behaves properly, but if you uncomment the constructor the behavior breaks as you described (creates the num field 3 times):
class Hello {
    protected static num: number = (() => {
        game.splash("static field inited");
        return 1;
    })();

    // constructor() { }
}

new Hello();
new Hello();

Interesting. For giggles, I took your Hello class and transpiled it with the TypeScript 3.1.2 transpiler (after swapping game.splash with alert). Whether the constructor existed or not, the TS transpiler generated the same JavaScript code:
var Hello = /** @class */ (function () {
    function Hello() {
    }
    Hello.num = (function () {
        alert("static field inited");
        return 1;
    })();
    return Hello;
}());
new Hello();
new Hello();

I happen to have a variety of versions of TS installed on this computer, so, also for giggles, I transpiled the code with several different versions. The version 2 transpilers generate slightly different code, but they're essentially equivalent. Running the generated JavaScript in a browser, the initializer is only run once.
So this is not an issue with the TypeScript transpiler used in MakeCode Arcade, but instead with something that happens after the TS code is transpiled...?

fixed in https://github.com/microsoft/pxt/commit/782366e1985d02d592bd7ba32c1a9221b3b8afb2
should make it arcade beta within a week or so

@alex-kulcsar we don't use the standard TS->JS transpiler. We either compile directly to machine code, or to continuation-passing-style JS (you can see in binary.js in explorer).


Implement evm shim in go-fvm-sdk/实现evm兼容层

https://github.com/ipfs-force-community/go-fvm-sdk/issues/74


Github Pages + Github Action Setup

Github Pages + Github Action Setup - to host the example project, with CD - any push to master branch triggers flutter build web
-> commit/create PR to gh-pages branch
-> changes reflected to "Github Pages"

Made example/ project flutter-web compatible.
Created gh-pages branch

However, example project is not served on https://wiefel.github.io/gallerize/example/
Any ideas what I did wrong, @daadu ?

this is the root of project: https://wiefel.github.io/gallerize/

Yes I know. But how did you manage backdrop/demo site to be published on https://fluttercommunity.github.io/backdrop/demo/#/ ?
Here in gallerize, only the example/ subfolder is the one we are interested in, similar to demo/ in backdrop.

If you check the gh-pages branch (https://github.com/fluttercommunity/backdrop/tree/gh-pages) properly it is just html files.
Create "empty" branch(remove the older one):
git checkout --orphan gh-pages.
add static web asset generated by flutter build web to it, you can use directory example to have its own static assets.

@daadu thanks.
Done!
https://wiefel.github.io/gallerize/#/

Still TODO: setup github action for deployment

Done

I would say you put a guide in the readme, that can help package manager to setup GitHub Actions for CD for Github Pages.

@daadu actually I was thinking of doing exactly that ;D
As I also couldn't find any medium article or similar talking about the combination of "flutter web + gh-pages branch" maybe I'll write a short article.

@daadu what do you think?
https://github.com/WieFel/gallerize#automatically-publish-demo-app-flutter-web-on-github-pages

Looks good to me if it works!! Can we integrate this with backdrop?

Yes, it is how I set it up with gallerize example itself ;) check gh-pages branch...

Can we integrate this with backdrop?
Sure, you mean action for automatic deployment to gh-pages? I can set it up

Sure, you mean action for automatic deployment to gh-pages? I can set it up

Yes.


Where is this language stored on the local machine?

Sorry about this issue, but I've Googled and looked and I just can not locate where this is stored on my local machine. I'm trying to extend the grammar to highlight Mathjax equations surrounded in $ or $$
I'm running Windows 10, Atom 1.1.0-beta1
Didn't there used to be a View Code button to quickly navigate to this folder? Where did that go?
Thanks for the help.

@dsifford I think the code is hidden away in an .asar archive so that Atom loads faster (but as a result, you can no longer access it).  If you want to extend this grammar, I instead suggest you git clone and then apm link it.  This is better than changing the bundled code for a variety of reasons: 1) your changes aren't overwritten whenever Atom updates, 2) you can make a PR to include your changes, and 3) you can run specs to make sure everything's still working.
I hope that helps!

Thanks for the clarification!


Bl 995 be i want to add edit a meeting ticket

Description
NOTE---
This is only the PR for the FE update to this ticket. You can find the matching BE PR linked below.
BE PR
With this ticket I decided to go big, and create not only the functionality requested from the ticket, but also build out what I feel is a solid scaffolding for a central meetings page. My decision to go this route was motivated by two questions. First, how might the user view and interact with the meetings. Second, how do we ensure that the available UI and permissions match what the type of user.
-I created three Modals. One to Create a Meeting, one to Update a meeting, and one to Delete a meeting.

@TylrPopcorn was able to get the styling and logic worked out for the Update and Delete modals. I copied his styles into the Create modal.

-I created three separate routes that correlate to the three user types who will need to access meetings. Admin, Mentor, and Mentee.
-The admin meeting dashboard can be accessed at '/admin/meetings'. This page provides three buttons so far that allow an admin to Create a new meeting, Update existing meetings, and Delete meetings. In the future, this can be hooked up to detect if a logged in user is Admin, and they will be directed to the proper area with open access to edit, update, and delete meetings.
-The mentor meeting dashboard can be accessed at '/mentor/meetings'. This page provides two buttons so far that allow a mentor to Create a new meeting, and Update existing meetings.  In the future, this can be hooked up to detect if a logged in user is a Mentor, and they will be directed to the proper area with limited access to create and edit their meetings. Furthermore, in the future, we would want to make sure the Mentor only has access to update their meetings, and can only create new meetings with their assigned Mentees.
-The mentee meeting dashboard can be accessed at '/mentee/meetings'. This page provides one button so far that allow a mentee to update any meetings with their Mentor. In the future, this can be hooked up to detect if a logged in user is a Mentee, and they will be directed to the proper area with limited access to edit  their meetings. Furthermore, in the future, we would want to make sure the Mentee only has access to update their meetings.
-I created new reusable component called DynamicDropdown. This reusable tool utilizes AntDesign's Select, and provides us a way to map data into a dropdown. A huge issue I had early on was realizing how strict the shape of the data being sent to the BE api was. As well, we don't currently have a way to abstract names from profile_id's. This dropdown provides a solid way to easily experiment with our meeting data on the front end, while also making sure the data being accessed and sent is valid.

@joanterm helped me with a huge blocker and assisted me with the proper flow of props to get the DynamicDropdown component working properly.

@TylrPopcorn helped me with code cleanup and polish.

-I struggled with how to structure the the three new dashboards. I ultimately decided to go ahead and build the admin dashboard first, and copy it into the Mentor and Mentee dashboards with minimal changes. My logic to this decision is.... I feel the project still has a bunch of features to be fleshed out, and that the overall structure will most likely change many more times in the development. I wanted to provide a general starting point for managing meetings, that can be abstracted and refactored in a way that makes sense as the project and it's requirements evolve.
Video Link
Loom Video
Jira Link
Jira Ticket
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have removed unnecessary comments/console logs from my code
[x] My changes generate no new warnings
[x] I have checked my code and corrected any misspellings
[x] No duplicate code left within changed files
[x] Size of pull request kept to a minimum
[x] Pull request description clearly describes changes made & motivations for said changes

A lot of effort and time was spent to get the dashboard to look like what you showed in your Loom video. you all did an amazing job.
I would like to suggest some changes to resolve the conflict and to help wire your new dashboard with the BE.

you need to make sure that you pull the changes from main to avoid merge conflicts. what got my attention was the axiosWithAuth hook in your branch is the older version. it's probably because you started working on the ticket, cloned, and synced with main and then these changes happened and were merged later.
whenever you make an axios call to a protected endpoint on the BE you need to use the custom hook (useAxiosWithAuth0)  instead of regular axios, BE will require an access_token for all API calls and the hook will provide it.
minor refactoring needs to be done in the dashboard components so they can work with the new axios hook.

I will try to point out some of the changes required in your code as much as I can in some comments for each file.

Thank you very much Mina for the feedback. I have updated the codebase to the latest version of main which should help the the merge conflict before. I have also updated all instances of axios to use the newer version of useAxiosWithAuth0.


Default dimension preset tokens need to be updated

The default preset config has a few dimension values that are using unit-less values. However, dimension tokens cannot be unitless.
Steps to reproduce:

Load up the default preset.
Edit the scale token.
Focus the value field.
Unfocus the field.
See error message.

I thought this would be an easy fix, just update the default config values to be px instead of being unitless. Except you have some tokens using math like
"value": "{dimension.xs} * {dimension.scale}"
which now won't work if dimension.xs is 4px instead 4. https://docs.tokens.studio/tokens/using-math#adding-units
I'm guessing here that this was changed in response to the w3c spec, which explicitly prohibits unitless values, and these values weren't updated. But I can't think of a solution other than 1. not using dimension tokens 2. not using math

Migrated to Featurebase


Speed up GuideImage insert using insert_all

Thanks to @hackartisan's work making the inserts and queries happen in parallel I was able to notice that despite significant import parallelism everything was still slower than we wanted, which implies that either the GIL was slowing things down or postgres was slow. For it to be the GIL it'd have to be all the Rails stuff in the way.
Insert_all bypasses all the rails stuff and just generates INSERT RETURNING statements that it hen executes. If we add a unique index then it won't create a record a second time. This bypasses validation and other rails bits, but we don't have any on this model.
I was having a very hard time getting the inserts to happen in parallel without it immediately sucking up all of Rails' connection pool, so I left the disk queries to be parallel (so much faster), but did insert_all synchronously. It's fast enough.
I just ran this on staging:
Time: 00:07:43 Time: 00:07:43 100.00% Loading: 5780172 from 5780172

real    9m28.503s

irb(main):001:0> CardImage.all.count
=> 5780172

@hackartisan Done. Thanks!


make boilerplate-update

Conventions:

openshift/golang-osd-operator: No change
openshift/golang-osd-operator-osde2e: Subscribe

What type of PR is this?
(bug/feature/cleanup/documentation/test/refactor)
What this PR does / why we need it?
Which Jira/Github issue(s) this PR fixes?
Fixes #
Special notes for your reviewer:
Pre-checks (if applicable):

[ ] Tested latest changes against a cluster
[ ] Ran make generate command locally to validate code changes
[ ] Included documentation changes with PR

/hold

/close


"Enforce" better commit messages for Nixpkgs

I increasingly notice PRs with important but non-trivial changes that lack an appropriate commit message and it's getting kinda annoying to tell every author. It also often happens that the author did write a description for the PR but the commit message has only a subject and no body (a bad pattern that emerged on GitHub).
IMO it'd be great if we could document the need for a good commit message more prominently.
E.g., the following is already good: https://github.com/NixOS/nixpkgs/blob/3ddc71525fd0d12083620b8d2b181f62e73ffff0/CONTRIBUTING.md#writing-good-commit-messages:

In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand why a change was made. While this information usually can be found by digging code, mailing list/Discourse archives, pull request discussions or upstream changes, it may require a lot of work.

A link to https://cbea.ms/git-commit/ or another source would also be a good addition IMO (possibly even copying "The seven rules of a great Git commit message").
We might also want to explicitly mention that the commit messages for non-trivial changes should have a body that explains what, why, and how.
Depending on how often too brief / bad commit messages are a problem we might also want to add an item to the PR template:
https://github.com/NixOS/nixpkgs/blob/3ddc71525fd0d12083620b8d2b181f62e73ffff0/.github/PULL_REQUEST_TEMPLATE.md. Or e.g.:
-- [ ] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
+- [ ] Fits [CONTRIBUTING.md](../CONTRIBUTING.md) and has a [good commit message](../CONTRIBUTING.md#writing-good-commit-messages).

For package version upgrades and such a one-line commit message is usually sufficient.

That is of course fine (assuming it's a trivial change that doesn't need any explanation).
It looks like the requirement for an appropriate commit message also isn't mentioned here:
https://nixos.org/manual/nixpkgs/stable/#chap-reviewing-contributions

We might also want to explicitly mention that the commit messages for non-trivial changes should have a body that explains what, why, and how.

Yes! This is what I hope to find in a commit message, particularly if it comes up from a git bisect.
Most of the time the message is very brief and the bulk of the explanation is in the pull request. This is not a good practice because that information can be lost forever if the author their comments or github bans the account (it has happened at least once in Nixpkgs).
PS: I'm also a fan of commit message tales, hope to see some more.

I also like the recent change to the contributing guidelines to link the release notes in a commit message, making it easier to see what changed and possibly spot why a package regressed or doesn't do what you expect anymore. https://github.com/NixOS/nixpkgs/pull/167264
Adding it explicitly to the contributing checkmark makes most sense to me to prevent adding more checkmarks.

I think it's fair to say that trust or dealing with malicious committers has anything to do with this proposal:

In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand why a change was made. While this information usually can be found by digging code, mailing list/Discourse archives, pull request discussions or upstream changes, it may require a lot of work.

This is about making life easier for people coming about a commit (e.g. after a bisection or blame). It's invaluable if the commit message contains a clear explanation of what the patch does and why it was done (perhaps a link to an issue or PR).


Pattern: Logo grid: Carbon theme

Logo grid: Carbon theme

Describe in detail the issue you're having.

Storybook's carbon theme's g10,g90 have different background color between logo cards.

Is this a feature request (new component, new icon), a bug, or a general
issue?

Bug

Is this issue related to a specific component?

Logo grid

What did you expect to happen? What happened instead? What would you like to
see changed?

Story book carbon theme shows color error for g10 and g90 like image below.
It needs to remove different color background between logo cards.

What browser are you working in?

Chrome

What version of the IBM.com Library are you using?

IBM.com Reboot
Steps to reproduce the issue
https://ibmdotcom-react-canary.mybluemix.net/?path=/story/patterns-blocks-logogrid--default

Design decision:  Remove the Carbon Theme tab in Storybook for Logo Grid.  Strategic design decision about the theming will be made.  Epic has been created for this work.


Clarify naming style for const fields

According to C# Coding Conventions private fields should be in _camelCase, so private const fields should be in _camelCase too.
According to .editorconfig and .NET Runtime, C# Coding Style const fields should be in CamelCase.

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

ID: 40f42506-f4a5-859a-0266-ded002056d83
Version Independent ID: f940f2ad-e13d-4d37-6439-f8afcbc4e4c7
Content: C# Coding Conventions
Content Source: docs/csharp/fundamentals/coding-style/coding-conventions.md
Product: dotnet-csharp
Technology: csharp-fundamentals
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Thanks for adding this comment @s-tarasov
I've added this to our backlog to address when we next update this article.

Do you already know which variant win?


[BUG] Service Account not working different namespace

Description
I use the helmchart of spark operator, it is deployed at the namespace spark-operator I configure on the helmrelease sparkJobNamespaces: spark-jobs that is the namespace where I want to run the jobs.
However, I'm getting this error
Name: "pyspark-pi", Namespace: "spark-jobs"
from server for: "STDIN": sparkapplications.sparkoperator.k8s.io "pyspark-pi" is forbidden: User "system:serviceaccount:spark-jobs:spark-sa" cannot get resource "sparkapplications" in API group "sparkoperator.k8s.io" in the namespace "spark-jobs"

@devscheffer Could you provide detailed information about how you install the helm chart? Is this service account spark-sa created by helm or by yourself?

it is created by the helm.
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  labels:
    app: spark-operator
  name: spark-operator
  namespace: spark-operator
spec:
  chart:
    spec:
      chart: spark-operator
      reconcileStrategy: ChartVersion
      sourceRef:
        kind: HelmRepository
        name: spark-operator
      version: 1.4.0
  interval: 5m0s
  releaseName: spark-operator
  values:
    image:
      repository: docker.io/kubeflow/spark-operator
      pullPolicy: IfNotPresent
      tag: ""
    rbac:
      create: false
      createRole: true
      createClusterRole: true
      annotations: {}
    serviceAccounts:
      spark:
        create: true
        name: "spark-sa"
        annotations: {}
      sparkoperator:
        create: true
        name: "spark-operator-sa"
        annotations: {}
    sparkJobNamespaces:
      - spark-operator
      - team-1
    webhook:
      enable: true
      port: 443
      portName: webhook
      namespaceSelector: ""
      timeout: 30
    metrics:
      enable: true
      port: 10254
      portName: metrics
      endpoint: /metrics
      prefix: ""
    tolerations:
      - key: "CriticalAddonsOnly"
        operator: "Exists"
        effect: "NoSchedule"

@devscheffer The service account spark-sa actually does not have any permissions for SparkApplication, and it is used by spark driver pods. If you want to submit SparkApplication in airflow, you can configure the service account name to spark-operator-sa in KubernetesPodOperator instead. Or you can create a ServiceAccount manually and grant it with all permissions to SparkApplication.

Hello.
I'd like to say, that I do have the same result.
I deployed helm v2.0.2 like so:
helm install spark-operator ./spark-operator \
    --version 2.0.2 \
    --create-namespace \
    --namespace spark-operator \
    --set 'spark.jobNamespaces={,airflow}' \
    --values ./values.yaml

With values.yaml for it was like:
nameOverride: ""
fullnameOverride: ""
commonLabels: {}

image:
  registry: docker.io
  repository: kubeflow/spark-operator
  tag: ""
  pullPolicy: IfNotPresent
  pullSecrets: []

controller:
  replicas: 1
  workers: 10
  logLevel: info
  uiService:
    enable: true
  uiIngress:
    enable: false
    urlFormat: ""
  batchScheduler:
    enable: true
    kubeSchedulerNames:
      - volcano
    default: ""
  serviceAccount:
    create: true
    name: ""
    annotations: {}
  rbac:
    create: true
    annotations: {}
  labels: {}
  annotations: {}
  volumes: []
  nodeSelector: {}
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - test-node
  tolerations:
    - key: "airflow"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"
  priorityClassName: ""
  podSecurityContext: {}
  topologySpreadConstraints: []
  env: []
  envFrom: []
  volumeMounts: []
  resources: {}
  securityContext: {}
  sidecars: []
  podDisruptionBudget:
    enable: false
    minAvailable: 1
  pprof:
    enable: false
    port: 6060
    portName: pprof
  workqueueRateLimiter:
    bucketQPS: 50
    bucketSize: 500
    maxDelay:
      enable: true
      duration: 6h

webhook:
  enable: true
  replicas: 1
  logLevel: info
  port: 9443
  portName: webhook
  failurePolicy: Fail
  timeoutSeconds: 10
  resourceQuotaEnforcement:
    enable: false
  serviceAccount:
    create: true
    name: ""
    annotations: {}
  rbac:
    create: true
    annotations: {}
  labels: {}
  annotations: {}
  sidecars: []
  volumes: []
  nodeSelector: {}
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - test-node
  tolerations:
    - key: "airflow"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"
  priorityClassName: ""
  podSecurityContext: {}
  topologySpreadConstraints: []
  env: []
  envFrom: []
  volumeMounts: []
  resources: {}
  securityContext: {}
  podDisruptionBudget:
    enable: false
    minAvailable: 1

spark:
  jobNamespaces:
  - "airflow"
  serviceAccount:
    create: true
    name: ""
    annotations: {}
  rbac:
    create: true
    annotations: {}

prometheus:
  metrics:
    enable: true
    port: 8080
    portName: metrics
    endpoint: /metrics
    prefix: ""
  podMonitor:
    create: true
    labels: {}
    jobLabel: spark-operator-podmonitor
    podMetricsEndpoint:
      scheme: http
      interval: 5s

And right after that, if I run a DAG from Airflow, as a result I have a POD spark-submit which fails with the next error:
Reason: Forbidden
HTTP response headers: HTTPHeaderDict({'Audit-Id': '35324a3b-9f01-4c3b-bf56-445ea8746423', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'X-Content-Type-Options': 'nosniff', 'X-Kubernetes-Pf-Flowschema-Uid': '8bae74e0-9f4b-483f-8878-77b94fe77097', 'X-Kubernetes-Pf-Prioritylevel-Uid': 'b1662841-0cf0-4ed4-8ade-b34262bca683', 'Date': 'Fri, 18 Oct 2024 08:05:50 GMT', 'Content-Length': '483'})
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"sparkapplications.sparkoperator.k8s.io \"spark-submit-soyzhqvo\" is forbidden: User \"system:serviceaccount:transgran-spreads:airflow-worker\" cannot get resource \"sparkapplications/status\" in API group \"sparkoperator.k8s.io\" in the namespace \"airflow\"","reason":"Forbidden","details":{"name":"spark-submit-soyzhqvo","group":"sparkoperator.k8s.io","kind":"sparkapplications"},"code":403}

This can be fixed by adding:

to airflow-pod-launcher-role (Role)

- apiGroups:
  - sparkoperator.k8s.io
  resources:
  - '*'
  verbs:
  - '*'

to spark-operator-spark  (RoleBinding):

- kind: ServiceAccount
  name: default
  namespace: airflow

With all this above, I'd like to ask why this fixes wasn't added by the helm chart ?

I think I have the same issue. I installed spark-operator v2.0.0 using following command
helm install vikas spark-operator/spark-operator --version v2.0.0 \
    --namespace spark-operator \
    --create-namespace --set "sparkJobNamespaces={testvikas}"\
    --set webhook.enable=true

namespace testvikas already exists but i didn't get a service account created for the same.
Below is the output of my kubectl get serviceaccounts command:

I was expecting testvikas-spark-operator-spark to be shown in the output


Grammarly dictionary not working

I am getting the following suggestion for a word that is already in my Grammarly dictionary:

If you don’t want cryptoasset to be marked as misspelled in the future, you can add it to your personal dictionary.

Here's a screenshot of my Grammarly dictionary:

Being able to add words to Grammarly dictionary from VSCode would be something too...


add bouncing ball to loaders

Added a bouncing ball to loaders

@mtacchino Hey!
This is so cool! Merging this. Keep contributing! :smile:


15th project by 5th_practice branch

in local from 5th_practice to remote 5th_practice

now 5th_practice branch is ready to merge with main


What is cycle time speed of Pycomm?

I try to read an integer (e.g. N7:0) every one millisecond. Is it possible to use Pycomm for applications needing 1ms speed?

I'm not sure I understood your question. Pycomm is just a lib your program speed (compiler as well as computer performance) dictates timing for the read call. However as @tyoungNIO  pointed out explicit messaging limitation could prevent that speed

I agree with Agostino. My tests and reaseach shows Ethernet does nnot have
a deterministic speed. It gives you certain bandwidth and the speed is
determined by the performance of the system.
For Explicit massaging, I set the timer on 1MSec. So, that should not be a
limiting factor.
On Fri, Apr 6, 2018 at 2:59 PM, Agostino Ruscito<EMAIL_ADDRESS>wrote:

I'm not sure I understood your question. Pycomm is just a lib your program
speed (compiler as well as computer performance) dictates timing for the
read call. However as @tyoungNIO https://github.com/tyoungNIO pointed
out explicit messaging limitation could prevent that speed
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ruscito/pycomm/issues/38#issuecomment-379376668, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AbyPfPralqtNxOMoFA5jUIdjf20XTqP4ks5tl9cvgaJpZM4SAvjS
.

--

I would continue where others have stopped, and I would rise when others
sleep.


Fixed responsiveness for Team Boxes issue(#9)

Describe your changes

changed number of div displayed from 3 to 2 on smaller viewport so that content don't overflow
made text size of the description on Team Boxes responsive

Context
This PR introduces a fix to responsiveness of the Team Boxes mentioned in issue (https://github.com/b0sc/b0sc.github.io/issues/9).
Checklist before requesting a review

[ ] If it is a core feature, I have added thorough tests
[ ] My code follows the style guidelines of this project
[ x] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have only one commit (if not, squash them into one commit)
[x ] This PR is not a duplicate

will be merged when maintainer @BIIJESH is available, you can start working on other issues.


second hardware configuration

I'd like to set up the VMC and help the project while doing so as well. I've a Raspberry Pi B+ and an Arduino Uno R3. Some other hardware that I can procure as well.
I was wondering about a plan on how to go about running the project on said hardware and have the bare minimum of MDB device and a motor control array (maybe).
Originally posted by @mhaqs in https://github.com/temoto/vender/issues/1#issuecomment-513727955

For a plan, please:

describe in text an end result you like to see
list MDB devices
specifically what motor control array, how to operate it? Datasheet?

@temoto Thanks for creating a separate issues for this. I think it's better this way. I have sent you an email with my supposed motor control array setup/schematic. As an end result (even if it's creating a vending machine), I'd like Vender to be able to help with the basic of operations:

Help and control MDB devices (Cash, Coin like ICT and Cashless like Nayax)
The MDB devices can be in master/slave set up but I'm sure that's not an issue for now.
I've shared my humble design of a motor control array with you over email. See if it's valid at all to work with Vender.
My design included Raspberry Pi and Arduinos for the MVP. The reason behind this was to have a modular system where I can replace Pis and Arduinos in and out as needed or upgrade them over the air in the future. But this is again a very far fetched idea.

As an MVP, if Vender can sit on my my computer and control these devices; I can use that knowledge to build more and understand the code base. I can then contribute my findings and build/contribute from there.

Let's start with connecting Raspberry to MDB as we did. Roadmap:

(mandatory) UART-MDB level inverter / current limiter
one of

operate MDB from Raspberry (might have 5ms ACK timeout issue, may be solved with kernel tuning, I will help, but be ready that it may not be stable)

operate MDB via atmega-like mcu (currently works for us); be warned and ready that after uploading our firmware you may not ever use that mcu as Arduino with USB. We don't have Arduino, so I'm just warning about worst case scenario, most likely nothing irreversible happens.

Are you comfortable with installing KiCad program? Alex did all hardware schema in it and I don't know if anything else would open their files.
Please study these

https://github.com/temoto/vender/tree/master/hardware/schematic/KiCad
https://github.com/temoto/vender/tree/master/hardware/evend-adapter/kicad
and/or this
http://blog.bouni.de/2012/the-mdb-protocol-part-1.html

If done properly, you should have working UART-MDB level invertor / current limiter.
At this stage I highly recommend having digital sampling oscilloscope.  It's possible to use Raspberry as DSO, search: [piscope] or https://abyz.me.uk/rpi/pigpio/piscope.html

Just to make it absolutely clear, to talk MDB, you should make small hardware component which inverts UART Tx. http://blog.bouni.de/2012/mdb-levels.svg
I don't know any way around this.


Rework of #9.

This is a reworked patch from PR #9. Changes:

Pylint is now in parity with master.
'{}'.format(var) is used instead of a locals dump passed as a keyword argument.
Target branch is develop instead of master. (Github wouldn't let me change this for some silly reason.)

For discussion, please refer to #9.

Thanks for your coorperation. We just have made developer's guideline. I hope it helps you why we decide to use develop branch as a default.


multi: revoke expired sessions

Ensure that expired sessions are revoked.

when resumeSession is called but session is expired, it is revoked.
if the session is not yet expired, a timeout goroutine is used to ensure that it is stoped and revoked after expiry.
the first commit adds the ability to subscribe to a session being stopped manually so that the above goroutine can exit when it is no longer needed

will request review in the new year :)

Thanks @guggero! updated 👍

@guggero: review reminder
@ellemouton, remember to re-request review from reviewers when ready

@roasbeef: review reminder

@roasbeef: review reminder

@ellemouton, remember to re-request review from reviewers when ready

Thank you for testing, @jamaljsr! You are right, currently we cannot distinguish between LiT not being started or being unreachable from a session being invalid.
Though I think this might be a bit more tricky to solve indeed, so I agree this should be done in a separate PR. I'm going to create an issue so we can track it in a next sprint.