feat: add Variance as a destination

Description of the change
Add Variance as a destination.
Related PRs

https://github.com/rudderlabs/rudderstack-docs/pull/109
https://github.com/rudderlabs/rudder-transformer/pull/660
https://github.com/rudderlabs/config-generator/pull/15

Type of change

[ ] Bug fix (non-breaking change that fixes an issue)
[X] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Development

[X] Lint rules pass locally for new and modified files
[X] The code changed/added as part of this pull request has been covered with tests
[X] All tests related to the changed code pass in development

Code review

[ ]  This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
[ ] "Ready for review" label attached to the PR and reviewers mentioned in a comment
[ ] Changes have been reviewed by at least one other engineer
[ ] Issue from task tracker has a link to this pull request

Hi, @gmathieu! Could you please sign the CLA here: https://rudderlabs.wufoo.com/forms/rudderlabs-contributor-license-agreement
We'll review the PR in the meantime, thanks!

Thanks @ameypv-rudder. I signed the CLA using my @variance.com email. Let me know if I should be using a different one.


add ent94

Hello,
Can you add https://ent94.opendigitaleducation.com/
Thank you for your work!
Regards,

perfect!
thanks a lot


More docs for UnstructuredNearest

Add whatsnew, and explain difference to ProjectedUnstructuredNearest.
Addresses one of the items in #2280.
That should be good enough for us to cut an RC1.

@lbdreyer does this sound right to you ?

Failures are fixed by #2291
I will rebase when that is in ...

At last it passes !
( Several respins required to get around test timeouts, which is getting tiresome. )
what you think @bjlittle ?


Adding Navbar in About Page

Right now Home and contact is shown as a footer to navigate back , but this is not a good user expirience so i want to add navbar in About page as well . I am a gssoc'23 contributor , please assign me this under gssoc'23

@krutikajichkar Please assign this task to me.


Add $fb context for components

Hi,
Great plugin! In order to use this in a GDPR compliant setting, I've had to allow for the pixel to be disabled on boot, and then enabled later in the code.
This PR also exposes this.$fb in components to allow custom tracking events to happen in a nuxt/vue lifecycle compatible way.
Enjoy,
Antony

@antony That's a really great improvement. I'll take a more in-deep look tonight and merge it. Thank you!

No problems :) Feel free to rejig the code as you see fit, I'm pretty new to Nuxt (I generally use Sapper), so I had some trouble putting the Fb class into a separate file.
I also didn't manage to write any tests as I have no idea how to go about it!

Released under 1.0.1.


Fix duplicated imported linear memories and tables

Closes https://github.com/paritytech/wasmi/issues/587.
Thanks @yjhmelody for reporting the issue.


Add critical path scheduler to improve build times

This is based on #1333 and fixes #376.
I'm interesting in seeing #1333 merged, but unfortunately it seems to have languished. When I tried it, it was completely broken. This maintains the same principal, but reworks it to: address review comments, fix bugs, and improve time complexity of operations.
For each edge depended on by the targets being built, we calculate its priority as the longest path through the weighted directed graph of dependencies. Where weights come from the build log's last execution time. Ready build tasks are then always executed highest priority first.
#1333 maintained a std::list of all edges in priority order. This PR instead uses a std::priority_queue of only the ready edges (wrapped in the EdgeQueue class). This method has log time push, and pop so  avoids the O(n) traversal we had with the list.

Is there any progress in merging this PR? It would be such a massive time saver when building large projects.

I'll have a look at this immediately after releasing 1.11.0.

Would it be possible to try to get this in 1.11? Otherwise it won't be in an official release for quite a long time.
Thank you in advance!

The same goes for all the other PRs - some of which are even older. 1.11.0 is late already and I don't have the time to review and test all of them.

Sorry about all the nitpicks, this is still a very exciting PR. I'm worried about all the heuristics being used and how to measure if they do not regress things (e.g. clean builds), or what impact to these algorithms would have in the future.

Something worth noting about clean builds is it should still be a win. Even if there is no build log, the runtime of each edge will be set to 1 and the critical time becomes the depth of the node in the graph. This is also a sensible scheduling algorithm because a higher depth job is likely to open up more opportunities for parallelism. So for example, it would always prioritize running a code-generator before compiling plain files linked into the same library which is a win because more files can be compiled in parallel.

There must be a way to make this completely testable and simulable, i.e. have a pre-determined build plans with recorded run times for all commands, and compute (without running any real commands) how well that would work, compared to the naive implementation, with a clean build log, a build log that is 80% full only (to simulate real incremental builds), and a full one. What do you think?

I'll see what I can do. I think it should be possible to write a build log then check the computed critical times. Something like that anyway.
For a general simulation I'm sure I can work up a python script to simulate a build, although generating random build graphs and timings that are actually realistic may be tricky.

Something worth noting about clean builds is it should still be a win.

In my case, the initial build took the same time as with ninja master (I've rebased this PR). What I very much like is that I can manually tweak the ninja cmdline and add known long-running targets there; adding such an object file reduced the initial build time from 33 seconds to 26 seconds. Subsequent builds with .ninja_log are done in 24 seconds. So I absolutely love it, thanks dude!
FWIW, some info about my very imbalanced build (few long-running processes):
    Longest build steps:
           0.4 weighted s to build .reggae/objs/sil.objs/__dub__/core/source/kaleidic/sil/std/core/c... (8.4 s elapsed time)
           0.4 weighted s to build .reggae/objs/sil.objs/__dub__/core-datetime/source/kaleidic/sil/s... (9.3 s elapsed time)
           0.4 weighted s to build .reggae/objs/sil.objs/__dub__/extra/source/kaleidic/sil/std/extra... (10.2 s elapsed time)
           0.4 weighted s to build .reggae/objs/sil.objs/__dub__/extra-xlsx/source/kaleidic/sil/std/... (10.7 s elapsed time)
           0.5 weighted s to build .reggae/objs/sil.objs/__dub__/extra/source/kaleidic/sil/std/extra... (11.4 s elapsed time)
           0.5 weighted s to build .reggae/objs/sil.objs/__dub__/extra-technical/source/kaleidic/sil... (13.2 s elapsed time)
           0.6 weighted s to build .reggae/objs/sil.objs/__dub__/extra-kaleidic/source/kaleidic/sil/... (13.8 s elapsed time)
           0.8 weighted s to build .reggae/objs/sil.objs/__dub__/symmetry-imap/source/imap_auth.o (18.7 s elapsed time)
           0.8 weighted s to build .reggae/objs/sil.objs/__dub__/core/source/kaleidic/sil/std/core_a... (18.9 s elapsed time)
           4.1 weighted s to build sil (4.1 s elapsed time)
    Time by build-step type:
           4.1 s weighted time to generate 1 (no extension found) files (4.1 s elapsed time sum)
          19.5 s weighted time to generate 269 .o files (466.2 s elapsed time sum)
    23.5 s weighted time (470.3 s elapsed time sum, 20.0x parallelism)
    270 build steps completed, average of 11.48/s

Just to say that the current patch doesn't change the build time for Fuchsia builds (it may even slow it down by a few percent but it' s hard to be certain), however we rely heavily on pools, which may be limiting the benefit of the new algorithm.

I can't wait for this change. In any cases it would cut our build times by a third, because we have one file (with no input task dependencies) which takes 2x as long as most files: this file should be built immediately at the start but ninja choose to build it near the end, adding about 1 minute to a 3 minute build. Almost any old scheduling algorithm examining .ninja_log would solve this immediately.

@peterbell10 where did you get such a beautiful chart?
I've been staring at tables, waterfall charts and flame graphs, but I'd much prefer to see build-times your way.

That's ninjatracing: https://github.com/nico/ninjatracing

Closing in favor of #2177.

FWIW, I've published a drop-in ninja release including this PR as main change, making the historical-build-times usage opt-in via --cp: https://github.com/symmetryinvestments/ninja/releases/tag/v1.11.1-sym1 (and https://github.com/symmetryinvestments/gha-setup-ninja along with it)

@kinke - awesome, I'm going to try this soon.
Just to clarify (since you can't create issues on forks), without --cp this release would work the same as upstream ninja 1.11.1?

Just to clarify (since you can't create issues on forks), without --cp this release would work the same as upstream ninja 1.11.1?

Nope; there's still the default prioritization by explicit cmdline order / node depth. --cp really only affects whether the previous .ninja_log timings are to be used.


3sdk install container should be less verbose

Currently container install is very verbose only show the important messages (in not expert mode)

verified


[BEAM-3433] Allow a GCP project to be explicitly set for a load job

I've added the needed string parameter to the BigQueryIO.write() function, and passed it through to the underlying class. Wanted to get some feedback before trying to write a test.

Should I also add a ValueProvider interface?
I've modified the constructor for WriteTables, which is public. Should I instead add a setter for that function or overload the constructor?
Should I validate the this parameter is not set unless the Method is FILE_LOADS? It isn't harmful to set it otherwise, it is just ignored. Not sure what the recommendation is in that case.

Hi @chamikaramj , can you please take a look?

Thanks. Will take a look.
cc: @jkff

Hey @kvncp , any updates on this one?

@kvncp, please address comments to get this into next release.

Sorry, was on vacation recently and just catching up here. Addressing comments now!

LGTM.


Fix Music/time command

I cannot test it, right now.
Can someone do it for me ?

Doesn't throw an error, but time always shows as 0.

Last time I checked the YouTube Data API doesn't return a video length value in the JSON payload, so idk where you're getting that value, if at all.

I get that from  https://github.com/fent/node-ytdl-core/blob/fffc10c5c7351aaa15229be753d1f243478d9048/example/info.json#L120

@FOG-Yamato ytdl-core does tell you how many seconds does the song last.

Works to me.

What about @Soumil07 said ?

You might not be aware of it, but we require Discord.js Master, not Stable. And according to the docs (check StreamDispatcher#time), that code is completely valid.
The equation we are doing is
SONG_DURATION * 1000 - TIME_PLAYED

So, when the song's duration is 100 seconds, it'll be converted to 100000 milliseconds, and TIME_PLAYED (aka StreamDispatcher#time) is the amount of milliseconds the dispatcher has been playing for (do not confuse with totalStreamPlaying which also adds time paused).
Correct me if I am wrong, but that math formula looks perfectly fine to me, and that certain line of code comes from my music bot, which has been working for forever.

Ok. Thanks for the explanations, that's what I understood from the documentation.
That's why I didn't figure out the result obtained by Soumil.

He might have forgotten to download the add command.

Or to clear the current queue.


Fix relative path in config doc [skip ci]

links in my repo: https://github.com/thirtiseven/spark-rapids/blob/fixlinks/docs/configs.md

build


Supply text argument to task when running it

Right now if you have tasks that are almost the same with one different string for example, you will still need to have two separate tasks to be able to run them.
Example:
  "version": "2.0.0",
  "tasks": [
    {
      "label": "make custom",
      "type": "shell",
      "command": "make",
      "args": [
        "--no-print-directory",
        "--directory=~/qmk_firmware",
        "niu_mini:custom"
      ],
      "group": "build",
      "problemMatcher": {
        "base": "$gcc",
        "fileLocation": ["relative","${workspaceRoot}"]
      }
    },
    {
      "label": "make default",
      "type": "shell",
      "command": "make",
      "args": [
        "--no-print-directory",
        "--directory=~/qmk_firmware",
        "niu_mini:default"
      ],
      "group": "build",
      "problemMatcher": {
        "base": "$gcc",
        "fileLocation": ["relative","${workspaceRoot}"]
      }
    }
  ]
}

It would be great if we could supply an argument to a task to eliminate this issue.
Example:
{
  "label": "make",
  "type": "shell",
  "command": "make",
  "taskArgs": [
    {
      "name": "map",
      "required": true,
      "choices": [ "custom", "default" ],
      "default": "custom"
    }
  ],
  "args": [
    "--no-print-directory",
    "--directory=~/qmk_firmware",
    "niu_mini:${map}"
  ],
  "group": "build",
  "problemMatcher": {
    "base": "$gcc",
    "fileLocation": ["relative","${workspaceRoot}"]
  }
}

I think this will be a very welcome addition for a lot of people and hope to see it in the future.

@dbaeumer, duplicate of #4758?

@alexr00 yes. Closing as dup of #4758.


Object motion missing from parented objects when parent is animated.

Hi,
First, thank you for a great exporter. It has been a great help for me to continue work and add new features to the exporter I am coding for Mitsuba Renderer. Learned a lot from reading through your code.
I have reused the code for getting animation data for motion blur and found out that objects with no animation but an animated parent where not having its motion exported.
The code on line 1504 of export.py
    if ob.animation_data is not None or ob.constraints:
        if ob.name not in motion['transformation'].keys():
            motion['transformation'][ob.name] = []

        if ob.parent:
            mat = ob.parent.matrix_world * ob.matrix_local
        else:
            mat = ob.matrix_world

        motion['transformation'][ob.name].append(mat.copy())

Is correctly using the parent matrix on parented objects but is missing a check to see if the parent is animated in case the parented object is not.
This modification fixes the issue for me:
    if ob.animation_data is not None or ob.constraints or \
            (ob.parent and (ob.parent.animation_data is not None or ob.parent.constraints)):

Tested also with Renderman exporter and fixed the issue.
To test the issue I am using the BMW benchmark scene in case you want to test.
https://www.dropbox.com/s/ip1t0gqiu1bk5vr/BMW1M-MikePan.blend?dl=0
You can animate the car with the carController object and notice some objects stay behind because they have no animation but are parented to an animated object.
There is also an issue on this scene with rib files not being written for some dupli objects but have not investigated it.
Thanks,
Francesc

Hi Franscesc.  I'm actually about to check in a rewrite to that bit of code.  You might find it interesting.  Basically I wanted to merge the finding of all data blocks with the motion caching bit.  So that fix might not be directly translatable but I'll make sure the equivalent gets in.
And thanks for the scene.

And for the record when writing a few things I looked at the Mitsuba code for inspiration ;)

Nice, I will sure check the rewritten code.
Thanks, I am glad Mitsuba exporter code may have helped you, I consider a lot of the code I write an example on how not to do things ;)

Just another thought on this.  We don't really need to cache the child motion in the above case if the child motion is static relative to the parent.  If the rib is written correctly it should be.. :
(Parent instance)
Motion Begin (parent)
Transform
Transform
Motion End
Parent Geometry...

(Child Instance)
    Transform
    Child Geometry

(end Child)
(End Parent)
If the rib is written this way the motion should be hierarchical.  Of course if the child is moving relative to the parent, that should have its motion cached.

Either way take a look at the latest checkins.  If you need any explanations let me know.

I am testing the most recent commit. Never thought of nesting children to parent on export because I believe Mitsuba does not support it.
There is a missing pair of () missing, nothing serious:
Line 1590 of export.py should be:
for name, instance in _instances.items():

After fixing this I made a test of one issue I thought might arise from the new method of gathering data and output children nested in parents.
What if the parent is an empty or not renderable?
With current code, objects that are parented to an empty or an object hidden from render are not exported.
Also, I tried an object parented to another object and while the parent has motion blur, the child does not.

In this image:

Green: Animated cube and child sphere. Cube is set as hidden from render. Sphere is not rendered.
Blue: Animated cone and child torus. Torus does not show motion blur.
Red: Animated empty and child cube. Cube is not rendered.

I have not investigated more. Will read through the code later.

Hmmm.... yes.  That should be an easy fix.
On Mon, Sep 14, 2015 at 1:48 AM, fjuhec<EMAIL_ADDRESS>wrote:

I am testing the most recent commit. Never thought of nesting children to
parent on export because I believe Mitsuba does not support it.
There is a missing pair of () missing, nothing serious:
Line 1590 of export.py should be:
for name, instance in _instances.items():
After fixing this I made a test of one issue I thought might arise from
the new method of gathering data and output children nested in parents.
What if the parent is an empty or not renderable?
With current code, objects that are parented to an empty or an object
hidden from render are not exported.
Also, I tried an object parented to another object and while the parent
has motion blur, the child does not.
[image: mblur]
https://cloud.githubusercontent.com/assets/4067896/9845658/e7510176-5acc-11e5-8a10-bdcf6dc949f7.jpg
In this image:

Green: Animated cube and child sphere. Cube is set as hidden from
render. Sphere is not rendered.
Blue: Animated cone and child torus. Torus does not show motion blur.
Red: Animated empty and child cube. Cube is not rendered.

I have not investigated more. Will read through the code later.
—
Reply to this email directly or view it on GitHub
https://github.com/bsavery/PRMan-for-Blender/issues/136#issuecomment-140003949
.

--
<EMAIL_ADDRESS>508-274-8700

Been working on a few things here.  Any chance you can attach the above scene?

Sure, https://app.box.com/s/l2gveggjyb49vjgpz8xq85rh7k6g7ngl
All spheres and the blue cube should appear in render with motion blur.
This is the current render result using Renderman:

This is with cycles:

Ok great.  Wanted to check it with the latest fixes.  Looks good now.
Brian

Nice!
There is still some issue.
With the BMW scene, the wheels don't have motion blur.

How do I make the tires rotate with the rig?

I believe the tires rotate with a driver, when the car controller moves along X the tires rotate automatically.
The scene is not mine, I use it just for testing. I uploaded it here:
https://app.box.com/s/9e58cn1ybrkgslh06h6tgbxzrcgchzbm

With my various testing scenes, the latest changes fixes all the issues.  I'll keep testing though.

I have run a few tests and there are still some issues with dupli objects. In the BMW scene, a Cube mesh used on the brakes appears bigger than it should because it's original scale seems to be lost on the export process. Also, in a simple scene with a cube and child spheres as face duplis, the parent cube is visible rendering when it shouldn't.
In the Mitsuba exporter I ended taking a slightly different approach to gathering all data using code from you and also adapting code from Cycles synchronization code because I cannot nest children inside parents. If you want to check the code let me know if you have any questions about it, I think it handles all possible dupli objects, duplis of duplis, duplis with hair and dupli lamps.

I tested this and it seems to work with parenting, but not when constraints are used (child of constaints and copy location constraints are those I tested).

In retrospect it might be easier to do what @fjuhec mentions but in a deeply nested and animating parent tree less efficient.  Anyway i have a fix for the brake issue, also will update with a nice test scene.


Custom Screen Corner Shortcuts to System UIs

Summary of the new feature/enhancement
Create a tool to let users set specific actions to occur when their cursor is moved to the corner of the desktop. Examples of actions include entering Timeline/Task View, Search, Start, Action Center, Cortana, Lock the PC, start the screen saver, or put the monitor to sleep.
A conflict I can see is with Snap and Peek (Show Desktop). For Snap, a remedy could be for this functionality not to work if a mouse click is active. For Peek, it's possible now to disable that in Settings.

This was mentioned on twitter as well.  MacOS does this in the corners of their OS

Closing in favor of #1305.


lint fix

Codecov Report

Merging #38 (463c523) into main (dcd5f23) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #38   +/-   ##
=======================================
  Coverage   91.29%   91.29%
=======================================
  Files           7        7
  Lines         758      758
=======================================
  Hits          692      692
  Misses         66       66

Flag
Coverage Δ

unittests
91.29% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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


Use datepicker for filtering giving history

I think it'd be more consistent to use a date picker when setting dates to filter giving history results. It was a little confusing when going to set that but only getting a text input.
https://www.dropbox.com/s/s7j1x25ssu5fixb/Screenshot 2016-07-24 09.10.29.png?dl=0

@jonhorton we opted to use the text field for now for 2 main reasons.

Our current date picker UI isn't ideal and needs some love that we haven't had time to give it.

Also, our current date picker implementation is actually a modal, so in this scenario you end up with a modal over a filter dropdown, which gets pretty messy.

We estimated the amount of clicks or taps to select the year/month using the date picker vs typing the numbers is actually very similar.

I don't disagree that we should eventually move to using a date picker, but it didn't seem like the best decision for right now given the current constraints and added time needed to redo our date picker component.

@samclaridge Thanks for the clarity on that decision! It makes a lot of sense for those reasons.
I came across a really nice date picker option in the past week (that I can't remember) that made it really easy to select past years/months. I can draw it up later in person, and when I find it, I'll save a link!


Building a docker images encounter some error (envirnment: arm,ubuntu )

Step 5/14 : RUN wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/ldb_toolchain_gen-v0.4.sh     -q -O /tmp/ldb_toolchain_gen.sh     && sh /tmp/ldb_toolchain_gen.sh /var/local/ldb-toolchain/     && rm /tmp/ldb_toolchain_gen.sh
---> Running in 1805d086ad7b
bin/gcc: line 7: /var/local/ldb-toolchain/bin/gcc-11: cannot execute binary file
bin/gcc: line 7: /var/local/ldb-toolchain/bin/gcc-11: Success
Generated toolchain cannot compile a simple program.
Please file an issue at https://github.com/amosbird/ldb_toolchain_gen/issues with current setup information.
The command '/bin/sh -c wget https://doris-thirdparty-repo.bj.bcebos.com/thirdparty/ldb_toolchain_gen-v0.4.sh     -q -O /tmp/ldb_toolchain_gen.sh     && sh /tmp/ldb_toolchain_gen.sh /var/local/ldb-toolchain/     && rm /tmp/ldb_toolchain_gen.sh' returned a non-zero code: 1

Currently only x86 architecture is supported.

Thanks


global-configuration problem

global-configuration
i just config as the global-configuration, but the api still refresh per 3 seconds.
you can fonund in repo react-player-hooks when you visit http://localhost/blog/12, i do not want my api refresh

Hi @hitao123, refreshInterval should be 0 by default. I think what you want might be revalidateOnFocus: false.

@quietshu thanks , it can solve my problem


python310Packages.hahomematic: 2022.10.6 -> 2022.10.8

Description of changes
https://github.com/danielperna84/hahomematic/releases/tag/2022.10.8
https://github.com/danielperna84/hahomematic/releases/tag/2022.10.7

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 197176 run on x86_64-linux 1

2 packages built:

python310Packages.hahomematic
python39Packages.hahomematic


Run inference

Thank you for sharing your work! I would like to know how to run an inference on some data to obtain the output mentioned on your paper.
Thank you in advance

Hello @luantunez, have you fine-tuned one of the MoCo models on your own data?

No I have not, is it possible to predict on regular chest x ray images without fine-tuning?

No, you will have to fine-tune. You can use the released pretraining if you wish.

Closing for now.


Added isotimestamp to duo auth schema

to: @ryandeivert @chunyong-lin
cc: @airbnb/streamalert-maintainers
Background
Duo auth logs schema has changed.
Changes

Add isotimestamp field to duo auth schema
Updated tests

Testing
Tests passing locally

Coverage remained the same at 95.418% when pulling db9c5c93e3838cb4495424bc49b5d4f8cbd9401d on isotimestamp-duo-auth-schema into bbbbd9967b2f0634fabf3ea2e33ea99d81203c68 on release-3-1-0.


NSwag or a dependency improperly using collectionformat

I have
[FromUri]string[] currentStates
as a parameter in a function in my WepAPI controller. The Swagger type ends up as string and the collectionformat ends up as multi when I run it through NSwag. This is not correct. The description of collectionformat from the OpenAPI specification,

Determines the format of the array if type array is used.

http://swagger.io/specification/#parameterCollectionFormat
When viewed in swagger-ui, it appears as a single value field which will work but will always serialize as an array of length 1. If the Swagger type was array and the collectionformat multi instead, swagger-ui would let me enter multiple values and make a request that would allow web api to serialize it into an array.

Please test with the latest CI build/artifacts...

Tried testing it but ran into a problem. I get
The type 'HttpStatusCode' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Primitives, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
when I try to build my asp.net webforms project. I get the same problem when I try to get the latest from Nuget.
Seems like a local issue but if you have any ideas I would be grateful. The assembly is installed somewhere because NSwag builds with no issues on my local computer. 6.13.6135.32131 on Nuget worked fine for me before this.

Ok, got it working by manually adding the missing dependencies to the web.config.
It works now but I found another bug. #504


Double force_lane_change Error

Hi guys.
I'm performing traffic_manager.force_lane_change(vehicle, True) at frame 10 and I want the car returns to the initial lane.
So, I call traffic_manager.force_lane_change(vehicle, False) at frame 80 and the car continues in the same lane.
Do you guys know why?
P.S I'm using autopilot mode and constant velocity.

It's because there's a timeout for lane changes, even forced ones.

There is no way to reset the timeout?
To  make two lane changes in close frames?


Refactor formatter/ANSIColor

Description
Fixes #1583
Type of change

Refactoring (improvements to code design or tooling that don't change behaviour)

Checklist:
Your PR is ready for review once the following checklist is
complete. You can also add some checks if you want to.

[x] Tests have been added for any changes to behaviour of the code
[x] New and existing tests are passing locally and on CI
[x] bundle exec rubocop reports no offenses
[ ] RDoc comments have been updated
[ ] CHANGELOG.md has been updated

Do we still need the cukes method in lib/cucumber/formatter/ansicolor.rb?
It looks like there were part of old warning mesages which are not displayed anymore: https://github.com/cucumber/cucumber-ruby/commit/05252afbc915c43114446e4975fd2c4983e5d83c
And they are unused at the moment

Yes :D ❤

Is this an answer to the question "do we remove those 'cukes' methods"?

Sorry I meant this is the better way to do it (Define method vs eval).

I think we can let those cukes method for now

I know you already approved it
I pushed some documentation updates in the meantime. I just want to be sure it is right

Quite a bit of this looks new and I didn't quite understand. So I've only reviewed part of it.

It is supposed to be easier to understand than it was before actually 😓


fix(load-test): Archive output after metrics has been added not before

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Issue ticket number and link
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[ ] 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 added meaningful description with JIRA/GitHub issue key(if applicable), for example HASSuiteDescribe("STONE-123456789 devfile source")
[ ] I have updated labels (if needed)

/test max-concurrency-basic

/retest

/test max-concurrency-basic

/test max-concurrency-basic
/test max-concurrency-advanced


Added the Decryption method to CaesarCipher

Now the program supports decryption as well.

THANK YOU SO MUCH!! ❤just because of Hacktoberfest and you. I started my
OS journey, now I will be occasionally contributing to your repos and many
others as well.
And FYI, I have completed the Hacktoberfest as well. 🎉🎉
So thank you so much. Hope my codes help many others. 😎
Regards Hamza Mateen🙂
On Sat, Oct 24, 2020, 8:37 PM RAJA AHMED<EMAIL_ADDRESS>wrote:

Merged #181 https://github.com/AhmedRaja1/Hacktoberfest/pull/181 into
main.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AhmedRaja1/Hacktoberfest/pull/181#event-3916858459,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKKXMVZXOMTAHCFYKWZPGALSMLYE3ANCNFSM4S5VCKIQ
.

That's Really Good to know!
Keep up the Good work!
❤


修复configTool加解密时没有显式指定provider和cipher的padding算法问题

显式指定了configFilter中加解密对象的provide（jdk默认的）和cipher的padding算法。修复了当系统中存在多个keySpec时（比如我们的交易系统有多套密钥机制，包括cfca和bc等provider），会造成configFilter在解密时生成错误的publicKey，以及cipher的padding不一致问题。

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

Current coverage is 73.32% (diff: 83.33%)

Merging #1475 into master will decrease coverage by 0.01%

@@             master      #1475   diff @@
==========================================
  Files           835        835
  Lines         63780      63780
  Methods           0          0
  Messages          0          0
  Branches      11945      11945
==========================================
- Hits          46771      46764     -7
- Misses        12672      12679     +7
  Partials       4337       4337

Powered by Codecov. Last update db8434d...bb071ff


Feature: auto-generated types for solidity structs and events

"ethers": "5.3.0"

"@typechain/ethers-v5": "7.0.0"

"typechain": "5.0.0"

Typechain is generating this for a solidity function that is accepting a struct as input and also returns an array of structs as output:
Solidity:
struct CanExecData {
    uint256 id;
    address user;
    uint256 minimumHF;
    address colToken;
    address spender;
}

struct CanExecResult {
    uint256 id;
    string isPositionSafe;
    string isATokenAllowed;
    string message;
}

    function multiCanExecute(CanExecData[] memory _canExecDatas)
        external
        view
        returns (CanExecResult[] memory)

Typechain:
  multiCanExecute(
    _canExecDatas: {
      id: BigNumberish;
      user: string;
      minimumHF: BigNumberish;
      colToken: string;
      spender: string;
    }[],
    overrides?: CallOverrides
  ): Promise<
    ([BigNumber, string, string, string] & {
      id: BigNumber;
      isPositionSafe: string;
      isATokenAllowed: string;
      message: string;
    })[]
  >;

It would be really useful if typechain also generated and exported interface for every solidity struct with correct field names.
Otherwise we have to resort to defining those types ourselves:
// DO NOT MODIFY FIELDS: must match solidity struct
export interface CanExecData {
  id: string;
  user: string;
  minimumHF: BigNumber;
  colToken: string;
  spender: string;
}

// DO NOT MODIFY FIELDS: must match function return type
export interface CanExecResult {
  id: string;
  isPositionSafe: string;
  isATokenAllowed: string;
  message: string;
}

And then do an unsafe cast via unknown to those types:
export const multiCanExecute = async (
  canExecDatas: CanExecData[]
): Promise<CanExecResult[]> => {
  return refinanceResolver.multiCanExecute(
    canExecDatas
  ) as unknown as CanExecResult[];
};

I suppose that if typechain correctly auto-generates the CanExecResult struct type, then the cast via unknown would not be necessary because it intersects in the ethers.js function result type
Promise<
    ([BigNumber, string, string, string] & {
      id: BigNumber;
      isPositionSafe: string;
      isATokenAllowed: string;
      message: string;
    })[]
  >

Maybe typechain could also make use of the auto-generated struct type internally in its definitions like so (if it doesnt cause trouble with ethers.js compatibility)?
 multiCanExecute(
   _canExecDatas: CanExecData[],
   overrides?: CallOverrides
 ): Promise<
   ([BigNumber, string, string, string] & CanExecResult)[]
 >;

Either way it would be super useful if typechain also auto-generated and exported types for Solidity structs, to avoid human error.
The same can be said for solidity events.
Thanks for this amazing tool @krzkaczor ! We use it every day and love it!

Support for events released in https://github.com/dethcrypto/TypeChain/releases/tag/%40typechain%2Fethers-v5%407.1.0
h/t @zemse

Unfortunately, information (like names) about structs is not exposed to the ABI file so there is nothing that we can do.

What about enum? I see that it also has "internalType": "struct EnumName"

@farreldarian Are you sure about that? I'm seeing it as "internalType": "enum DataTypesInput.Enum1"

Is it a necessity to only rely on the ABI? The AST does contain enum / struct information and could be used for this.

In order to only generate the necessary enums (no internal ones) it will have to be matched against the ABI though.

Is it a necessity to only rely on the ABI? The AST does contain enum / struct information and could be used for this.

Can you pls point out how using AST + ABI can generate better types?


enable MultiProcessorCompilation to decrease build time

Please enable MultiProcessorCompilation to decrease build time.

Thanks for your contribution!


Update Ad-Hoc Alerts for BOD 23-02

💡 Summary
Please update the language, table, and csv for ad-hoc alerts in support of BOD 23-02.
Motivation and context
Internal and external stakeholders need to be notified within 24 hours of the initial detection of potentially risky services that potentially fall within BOD 23-02. Currently we have a table that covers potentially risky service, however nothing specifies that this is covered under the new BOD.
Implementation notes
Language for Ad-hoc alert
Change from
These services warrant your attention.  All services are potentially at risk of attack, but some can be more risky when open to the public (e.g. RDP, Telnet, etc.)  CISA recommends validating that each service below is intended to be available to the public and, where applicable, the service is up-to-date on the latest version, correctly configured, and uses strong authentication.
Change to
These services warrant your attention.  All services are potentially at risk of attack, but some can be more risky when open to the public (e.g. RDP, Telnet, etc.), especially if they are open as Networked Management Interfaces.  CISA recommends validating that each service below is intended to be available to the public and, where applicable, the service is up-to-date on the latest version, correctly configured, and uses strong authentication.
As part of BOD 23-02 <--- Should be hyperlinked to https://www.cisa.gov/news-events/directives/binding-operational-directive-23-02, within 14 days of notification, Networked Management Interfaces exposed to the public internet must either be removed from the public internet or protected by capabilities that enforce access control to the interface through a policy enforcement point separate from the interface itself as part of a Zero Trust Architecture.
Table Updates
Update the table in the body of the PDF to highlight red and asterisk the five services/categories (See Image Below):

File Transfer Protocol (FTP)
Teletype Network (Telnet)
Trivial File Transfer Protocol (TFTP)
Remote Desktop Protocol (RDP)
Server Message Block (SMB)

Attachment Update
Add a new column denoting "possible_nmi" to the potentially-risky-services.csv embedded attachment.
Acceptance criteria
The Ad-hoc alerts will have the following:

[ ] Updated language referenced above for BOD 23-02 reports
[ ] Table will be updated to flag the 5 specified services in red with asterisks
[ ] A new column denoting "possible_nmi" will be included within the potentially-risky-services.csv embedded attachment

Relates to https://github.com/cisagov/cyhy-reports/pull/84

@KeithBonesJr, @climber-girl Please confirm that this is the subset of services that you would like to highlight in red and add an asterisk to:
    "bftp",           # FTP
    "ftp",            # FTP
    "microsoft-ds",   # SMB
    "ms-wbt-server",  # RDP
    "ni-ftp",         # FTP
    "rsftp",          # FTP
    "rtelnet",        # Telnet
    "smbdirect",      # SMB
    "telnet",         # Telnet
    "tftp",           # TFTP

See below for screenshots of anonymized output with the requested code changes - please let me know ASAP if you'd like anything changed:

I will be creating a pull request soon for code review.

@dav3r  this looks great and is exactly what we wanted for this. About to create an issue for the main report changes as well here shortly.

@KeithBonesJr and @climber-girl, these code changes are being reviewed in https://github.com/cisagov/cyhy-reports/pull/87.

This issue should now be resolved via:

https://github.com/cisagov/cyhy-reports/pull/84
https://github.com/cisagov/cyhy-reports/pull/87

Reminder that these changes will not go into Production until the next CyHy reporter AMI is built and deployed.


Update building-net-docker-images.md

It seems to me that here are the typos

Maybe I don't understand something, but this code only copies the dll file, while other files, such as *.json, are not copied. So when I try to run the image, I get the following error message
Cannot use file stream for [/app/aspnetapp.deps.json]: No such file or directory

A fatal error was encountered. The library 'libhostpolicy.so' required to execute the application was not found in '/app/'.

Failed to run as a self-contained app.

   - The application was run as a self-contained app because '/app/aspnetapp.runtimeconfig.json' was not found.

   - If this should be a framework-dependent app, add the '/app/aspnetapp.runtimeconfig.json' file and specify the appropriate framework.


Support RowMergedNumericTable as GPU Kmeans input dataset

We used RowMergedNumericTable as GPU Kmeans input dataset. The code can work with CPU kernels but crash for GPU.
The reason we used RowMergedNumericTable is that those input sub tables are pre-processed by different thread in discrete places and they are huge. It will cost a lot to move them into a consolidated NumericTable. I wonder if this sceneario can be supported for GPU kernels.
@PIVOVAR3AL @amgrigoriev

#1712

Required functionality was added. Please see sycl examples for row merged numeric table in repository.


Generate URI instead of a blank node for mappings

We currently use a ttl file with blank nodes to represent the mappings in a mapping set. This ttl file is generated from sssom-py.
An extract from the file:
[] a ns1:MappingSet ;
    dcterms:creator <https://orcid.org/0000-0002-2232-0967> ;
    dcterms:description "The IMPC Mouse Morphology Mappings: Eye Morphology Test" ;
    dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/"^^xsd:anyURI ;
    ns1:mapping_provider "https://www.mousephenotype.org"^^xsd:anyURI ;
    ns1:mapping_set_id "mp_hp_eye_impc"^^xsd:anyURI ;
    ns1:mappings [ a owl:Axiom ;
            owl:annotatedProperty skos:exactMatch ;
            owl:annotatedSource <http://purl.obolibrary.org/obo/MP_0012121> ;
            owl:annotatedTarget <http://purl.obolibrary.org/obo/HP_0000647> ;
            ns1:mapping_justification <https://w3id.org/semapv/LexicalMatching> ;
            ns1:object_label "Sclerocornea" ;
            ns1:subject_label "sclerocornea" ],
        [ a owl:Axiom ;
            owl:annotatedProperty skos:closeMatch ;
            owl:annotatedSource <http://purl.obolibrary.org/obo/MP_0011959> ;
            owl:annotatedTarget <http://purl.obolibrary.org/obo/HP_0004329> ;
            ns1:mapping_justification <https://w3id.org/semapv/LogicalReasoning> ;
            ns1:object_label "Abnormal posterior eye segment morphology" ;
            ns1:subject_label "abnormal eye posterior chamber depth" ],
        [ a owl:Axiom ;
            owl:annotatedProperty skos:closeMatch ;
            owl:annotatedSource <http://purl.obolibrary.org/obo/MP_0003733> ;
            owl:annotatedTarget <http://purl.obolibrary.org/obo/HP_0000479> ;
            ns1:mapping_justification <https://w3id.org/semapv/LogicalReasoning> ;
            ns1:object_label "Abnormal retinal morphology" ;
            ns1:subject_label "abnormal retinal inner nuclear layer morphology" ] .

Using blank nodes, it's not possible to retrieve a specific mapping from a mapping set. In general, not possible to retrieve any specific data model without relying on its attributes.
cc @matentzn

HATEOS style apis with links included or not, check out
bring example to API design call with the rest of the team

Temporarily we are generating UUID for Mapping and MappingSet. To better inject the ids, we changed to JSON-LD format. Done in the PR https://github.com/anitacaron/sssom-api/pull/16


Support extension of preprocessor

Hello there!
I thought about extending jcpp to support preprocessing of GLSL (OpenGL Shading Language). This would require to add new preprocessor directives such as "#version" and "#extension", which can be basically ignored in my case. I'm currently modifying the classes as I need them but you might be interested in adding the ability to just extend your preprocessor in a more reasonable fashion for such use cases. Such as adding hooks or just subclassing Preprocessor or something similar.
Regards
Holger

I'll gladly take patches; I don't have a great deal of time to work on features on this project right now.


Edit Links need a class

<span class="btn btn-primary"> href="/Admin/Blogs/12/Edit?class=remove&returnUrl=%2FAdmin%2FNavigation Edit `
The link is the same color as the button, thus showing no text, as in the above Edit link.

I've not found anything like this in the views. I searched for  maybe that's a modification you made in the blog module for yourself. Else get me a screenshot and a way to see this.

The latest download's are correct. Sorry must have been older files.


[WIP] Issue #1707: Integration: Add Scenario enabling monitoring operator

Needs testing on Windows. MacOS/Linux work OK.
Fixes: Issue #1707
Solution
Instead of adding a Feature file, I added 1 Scenario into story_health. This utilizes a running cluster at the end of a test which only creates an app (i.e. after deleting the project, the cluster should be usable for enabling cluster-monitoring-operator).
Testing

Run make integration with only story_health feature. It should pass OK.

Not needed thanks to #1774.


Spec: Introduce a mini-specification for localized resource use from JSON

Summary of the Pull Request
Pursuant to #4476, we may need to localize the name of the "cmd" profile.
References
#4476

I feel silly for having specced something you did already. I’m sorry about that. I couldn’t in truth remember if we landed on that discussion 😅

I'm confused by something. So I'm just going to run through a scenario and you can correct me where I'm wrong.

I'm in English-US locale
I download Terminal
When I open my defaults.json and settings.json, I literally see this...

"name": { "resourceKey": "CommandPromptDisplayName" }

To use commandline args, I need to call wt -p "Command Prompt"
I change my locale to Spanish-MX
My defaults.json and settings.json are unchanged
To use commandline args, I need to call wt -p "Command Prompt - Spanish Edition" (but like, with the actual localized string)

Separately, what I'm confused about is, can't we just use your %Version% code from before? Just add a %CmdName%, then replace it with a localized name? This would fail on everything past step 5, but is that an important scenario?
And we wouldn't have to worry about wt -p "<localized cmd name>" because we search through the profiles be a normal name, so that'd be ok?

Separately, what I'm confused about is, can't we just use your %Version% code from before? Just add a %CmdName%, then replace it with a localized name?

I really like that. If we stamp the localized string straight into settings.json when it's generated, then it'll remain static unless the user changes it. So when they change to Spanish-MX, they'd still see "Command Prompt" as the name of the profile, unless they change it manually. If they delete their settings.json at this point, we'd regenerate the file with "El Command Prompto" (or whatever).
If we go ahead with having "name": { "resourceKey": "CommandPromptDisplayName" } in defaults.json (and a one-time generated name in settings.json), and the user removes the name of the profile from their settings.json, then they might get into a weird scenario where the profile name changes when they change the locale of their machine.
Alternatively we could just leave it as "name": "cmd" in defaults.json and it would work as an effective default value 🤔

I’m more concerned about growing the manually-tended list of profile token replacements, if I’m honest. It’s fine for this one-off, but we do need a solution that’ll work for whatever other user-facing strings go in the settings file eventually. If consensus is that we should just do one more one time replacement, I’m down for that.


feat: support booting test kernel with U-Boot SPL Test kernel

Description
This pull request implements the following features.

Implemented reset extension.
Add tutorial for booting test-kernel in Qemu using U-Boot SPL and RustSBI.

Good! :)


Support for Safari

Fixes https://github.com/KeywordBrain/redbox-react/issues/8
Supersedes https://github.com/KeywordBrain/redbox-react/pull/37
Includes https://github.com/KeywordBrain/redbox-react/pull/33 ( and resolves an issue with that PR )

Will this be merged soon?

Sorry, I thought that including the other pull requests and fixing the issues that had blocked them from being merged initially was a good thing.
If you'd like me to create a PR with just the minimal changes to guard against the error in safari, I can do that too.
Should I close this PR?

Sorry, I thought that including the other pull requests and fixing the issues that had blocked them from being merged initially was a good thing.
If you'd like me to create a PR with just the minimal changes to guard against the error in safari, I can do that too.
Should I close this PR?

That would be helpful, yes. As you see this repo follows semantic-release commit message conventions. Can you please take a look at those? The commit messages are significant because they're parsed by semantic-release which is another reason this PR is a bit of a pain to merge.

That would be helpful, yes. As you see this repo follows semantic-release commit message conventions. Can you please take a look at those? The commit messages are significant because they're parsed by semantic-release which is another reason this PR is a bit of a pain to merge.

Thanks for helping me out with this, I'm still pretty new to open source and all :D
I reused this PR and updated the description.
I think I got the commit message in the right format, but if there are still issues I'm happy to update it.
semantic-release looks really useful!
You mentioned some other changes you want to make; I'm also happy to help implement any of those changes if you'd like (and if they are within my abilities).

Thanks for helping me out with this, I'm still pretty new to open source and all :D
I reused this PR and updated the description.
I think I got the commit message in the right format, but if there are still issues I'm happy to update it.
semantic-release looks really useful!
You mentioned some other changes you want to make; I'm also happy to help implement any of those changes if you'd like (and if they are within my abilities).

@gaearon Is there anything else I should do here or is it just down to whenever you have time free to merge and release?
(no rush, just want to make sure I don't need to do more with this)

This looks good. I'll merge today or tomorrow.

@davidpfahler Is this PR in need of anything in order to be merged?

@gaearon had his eye on this one. I have honestly not looked at this PR, yet.

Thanks!

I really dropped the ball with taking so long to merge this one. Sorry!

No worries, everyone's busy!


old traefik replica set doesn't delete

Version - v0.3.0
To Reproduce

edit the /var/lib/rancher/k3s/server/manifests/traefik.yaml so the chart is pointed to stable/traefik
save edit
k3s kubectl get all --all-namespaces (repeat until job.batch/helm-install-traefik has been completed)

Results:
The old replicaset.app/traefik-, doesn't delete.  So now you have two.  one that is ready and one that is not

Expected behavior
Even thou the old replicaset is not ready, we should still clean it up.

That's a feature (and default behaviour) of the Deployment kind.
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-back-a-deployment
That's how you do rollbacks of a deployment: the controller scales down the new rs and scales up the old one.

Not an issue


Allow Talks to be archived

Started working on this as a response to https://github.com/tightenco/symposium/issues/126
I’m new to php and Laravel and it’s my first time contributing to an open source project. Would love feedback on how functional the code is.

@mattstauffer Alright I worked on those changes and fixed the nitpick errors. Let me know what you think!

@mattstauffer Alright made those changes, let me know what you think!

@myleshyson Changes reviewed :+1:

@mattstauffer Alright! made some new changes :) So for the blade view, I made a custom blade directive that takes in the sorted talks and what your passing it against. Let me know what you think!

@myleshyson OK, reviewed! Once you make these changes ping me and I'll test it out locally and then we can get this pushed!

@mattstauffer Hey Matt! Cleaned up those lines.

OK, let's do this. :) Gonna merge it in a few.

Woo! My bad about the use statements. I'll know that for next time :)

@mattstauffer @myleshyson is this also implemented in API? cause by default it still shows all talks archived and unarchived alike.
Is there a flag i can pass to get one, other or both?

@rdohms Just pushed an update where archived are excluded from API; future work will allow you to bring them back or request only them. #202


Fixed #12943 -- Allowed unnamed arguments to be propagated in includes

Propagated unnamed arguments as positional arguments into included
urlconfs if no named arguments are defined. Positional and keyword
arguments are never combined.

buildbot, add to whitelist.

Ah, it does not run tests cleanly :(

buildbot, ok to test.

merged in f0f5212624d7a3edbf77126e0a3060d38db501e1, thanks!


iPhone seekTo issue for Vimeo videos with playing={true}

Steps to reproduce

Open https://codesandbox.io/p/sandbox/react-player-iphone-seek-issue-ktwh9m
Copy the "Preview" URL.
Open the preview URL on an iPhone, e.g. iPhone 15 Chrome.
Click the "show" button.
Note that react-player renders the Vimeo player and seeks to 50%.
Click the Vimeo player "play" button.
Note that the video plays from the beginning, not from 50% as expected.

More details
I have a React app that uses react-player to play Vimeo videos. It records progress and allows resuming. Where supported by the user device/browser, it auto-plays/resumes the video after the user clicks a button on the page.
I have created the following simple code sandbox to demonstrate. When the user clicks the "show" button, it attempts to resume playing the video from 50% progress.
https://codesandbox.io/p/sandbox/react-player-iphone-seek-issue-ktwh9m
This works well on most devices/browsers but there are issues on iPhones:

Video doesn't auto-play. As far as I'm aware, this is a known issue that can't be overcome on iPhones.
The video appears to seek to 50%, but then, when the user clicks the Vimeo play button, the video unexpectedly plays from the beginning.

It's this 2nd problem that I'm raising as an issue here. I'm pretty sure this previously worked, so I'm thinking something may have changed in react-player, Vimeo or iPhones to break it.

I found a workaround as demonstrated in the following sandbox:
https://codesandbox.io/p/sandbox/react-player-iphone-seek-issue-forked-r2mkkx
It uses playsinline and sets muted for iOS only, as determined using the is-ios npm package.
Auto-play/resume now works on all devices but is initially muted on iOS. I'm not aware of a way to remove this requirement for muting on iOS.
I'll leave this issue open as the behaviour described in my initial post and sandbox is clearly buggy - it seeks to 50% but then plays from the beginning.

Does the resume (using vimeo play button from a seeked-to progress) work if you don't initially hide the player and don't care about autoplay?

Does the resume (using vimeo play button from a seeked-to progress) work if you don't initially hide the player and don't care about autoplay?

@Firsh Yes, it does.


Sprint 4: Team Presentation

Judging presentation: 5 min presentation + 10 minute Q & A (Nov 19, 20).   Review manual for awards and presentation details
Define and assign the distribution of duties here and create the necessary sub issues. Be sure to set the necessary assignees and label (Presentation) on related issues.

Through the week each person will work on their respective tasks:
Areya:

Hang (Build)

Ella:

Autonomous section

Tommy:
Gabriel:

PID

Oscar:

Social media

The following link is to the document where all the work will be
https://docs.google.com/document/d/13i8p3jXujBTeec1l9EtBXeCUb5G1DQERY3lFHua3REw/edit?tab=t.0#heading=h.rbbh0kkd08tm

If you wish to see my progress regarding the engineering portfolio it has been listed in my daily progress linked here: Areya Sprint 4 - Hang + PID + Build + Coding + Portfolio #27


Help with usage of the ServiceExceptionErrorDecoder

We need a little help with using the ServiceExceptionErrorDecoder. We implemented all the classes mentioned in README.
But we struggle getting the constructor to work
We get the error:
Parameter 0 of constructor ...ServiceExceptionErrorDecoderrequired a bean of type 'java.lang.Class' that could not be found.
Can you provide us with an code example on how to use the ServiceExceptionErrorDecoderwith the Feign builder?
Thanks a lot!
ApiPort
public interface ApiPort {

    @PostMapping
    String request(@RequestHeader("SOAPAction") String soapAction, String body);

}

Usage
ApiPort apiPort = Feign.builder()
                    .errorDecoder(errorDecoder)
                    .target(ApiPort.class, "http://to-some-destination:1234/api/somewhere");

Can I see the source code of ServiceExceptionErrorDecoder?
From what I can guess with the error message though, it seems like you have a Class<?> as an argument of your ServiceExceptionErrorDecoder class and you made it a bean, typically it'S used like this :
ApiPort apiPort = Feign.builder()
                    .errorDecoder(new ServiceExceptionErrorDecoder(ApiPort.class))
                    .target(ApiPort.class, "http://to-some-destination:1234/api/somewhere");

@moritzluedtke Any update on this?

Closing due to lack of feedback


feat: Support DNS resolution settings

DNS resolution settings
The purpose is to allow control over DNS resolution settings for non static cluster endpoints.
With this PR, it will be possible to define custom DNS resolution settings through a BTP policy.
Fixes # https://github.com/envoyproxy/gateway/issues/3690

/retest

/retest

/retest

/retest

/retest


Immutable version

It was very annoying for me that methods like add or divide modified the vector. My temporary solution is my immutable-vector2d library. Do you have any ideas as how to merge my project into this one?

Hi. Yes, the vectors are mutable on purpose. The idea behind it is that,.. let's say you have a space ship that moves. So the ship has a position vector and a and a velocity vector. To move the ship you add the velocity vector to the position vector:
var ship = {
  position: new Victor(100, 200),
  velocity: new Victor(1, 0),
  move: function () {
    this.position.add(this.velocity):
  }
};

setInterval(function () {
  ship.move();
  draw();
}, 1000 / 16);

instead of doing:
// let's assume Victor is immutable
var ship = {
  ...
  move: function () {
    this.position = this.position.add(this.velocity):
  }
};

...

Do you think this is a bad idea?
You can use the .clone() method if you want to create a new vector based on another.
var ship = {
  ...
  move: function () {
    // add only half the velocity without modifying the velocity
    this.position.add(this.velocity.clone().divide(new Victor(2, 2))):
  }
};

...

What are your thoughts?

Sure, I'm not saying mutability is inherently bad. My scenario where I prefer things to be immutable is more math style:
var a = Vector(23, 12);
var b = Vector(25, 13);
var c = a.normalize().add(b.normalize());

to calculate angle bisector. With mutable stuff I need
var a = Vector(23, 12);
var b = Vector(25, 13);
var c = a.clone().normalize().add(b.clone().normalize());

With more calculations it's clone everywhere. Most likely we cannot do anything about that except for introducing API for both mutable and immutable operations. In that case, I think, I prefer them to be separate libraries.

I would also prefer if the methods such as add or divide would not modify the vector.

I made a Immutable vector library https://github.com/yukulele/Vector.js

i agree to have an immutable version. this just makes things much more simpler to reason about.
this is extremely useful when you want to simulate something. immutability allows to travel back to the time.

+1 for immutability feature. Will be awesome now that functional Javascript is becoming more and more popular. see Redux and co.
there are also a lot of games using functional programming now .. and i think games are definitly one of your library's core audiences :smile:

Shouldn't this be closed? Victor has been mutable for years, so changing it would break functionality for existing users. Besides, @neojski, @yukulele, and @graue have filled the need for immutable vectors.

Gah, just been bitten by this. I was really surprised that operation are mutable. Should clearly mention this on the website

They are mutable, because of the ability to chain.
It would be nice to state that the library is not immutable on the README or the docs; up-front.
If you check out the docs e.g. the add method, it states that the vector is added in-place:

.add(vector) [chainable]
Adds another vector to itself.

My opinion
I will side with the author and say that this:
this.position.add(this.velocity);

Is easier to read than:
this.position = this.position.clone().add(this.velocity); // or
this.position = Victor.fromObject(this.position).add(this.velocity);

The ability to chain has nothing to do with mutability, it's just a matter of whether the methods return this (or a new object in the case of an immutable version). If the methods returned nothing, then they would have to mutate this, or do a weird C-like thing like this:
let a = new Victor(1, 2);
let b = new Victor(3, 4);
let ret = new Victor(0, 0);
a.add(b, ret);
// ret has been modified by the add method

Though I think in C, the ret value is generally uninitialized, which we can't do in JavaScript due to the lack of pointers, but objects are shared by reference, so ret could be initialized as {value: null} and then a method can set value to whatever it wants.
Totally agree with your opinion examples. Would be nice if JavaScript supported operator overloading, then you could do this.position += this.velocity.


Last Updated:  tag on the living whitepaper

This way it will be easier for devs to spot where updates happen in a "living" doc.
Ideally per each topic section if we find a cool way to not make it boring and redundant, otherwise one tag for Principle Entities, one for Processes, and One for Architecture - Deep dive.
Similar to what we have in the Node Deployment doc.

If we can have this, please keep one date everywhere before we rollout Token System doc.

cc @manishram

@kristykjlee


Migrating Notion's marketing site to Next.js

https://www.notion.so/blog/migrating-notion-marketing-to-next-js

Bye for a moment


bug: open fga crashes for no apparent reason

Hey,
I'm using open fga using docker (I'm using the latest version - 0.2.0). The docker works fine, but after some time - sending a request to openfga (using SDK) returns a 500 error with the following message:
"FGA API Internal Error: post check : Error Internal Server Error"
Logs from docker container:
2022-08-17T20:55:47.861Z        ERROR   grpc error      {"error": "rpc error: code = Unknown desc = rpc error: code = Code(4000) desc = Internal Server Error", "request_url": "/stores/01G9TE715A51EDP84Q7S9VH9CX/check"} github.com/openfga/openfga/pkg/logger.(*ZapLogger).ErrorWithContext         /home/runner/work/openfga/openfga/pkg/logger/logger.go:80 github.com/openfga/openfga/server.New.func1         /home/runner/work/openfga/openfga/server/server.go:143 github.com/grpc-ecosystem/grpc-gateway/v2/runtime.HTTPError         /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.11.2/runtime/errors.go:81 go.buf.build/openfga/go/openfga/api/openfga/v1.RegisterOpenFGAServiceHandlerClient.func3         /home/runner/go/pkg/mod/go.buf.build/openfga/go/openfga/api@v1.2.27/openfga/v1/openfga_service.pb.gw.go:1591 github.com/grpc-ecosystem/grpc-gateway/v2/runtime.(*ServeMux).ServeHTTP         /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.11.2/runtime/mux.go:386 github.com/rs/cors.(*Cors).Handler.func1         /home/runner/go/pkg/mod/github.com/rs/cors@v1.8.2/cors.go:231 net/http.HandlerFunc.ServeHTTP         /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:2084 net/http.serverHandler.ServeHTTP         /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:2916 net/http.(*conn).serve         /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:1966
I can't seem to reproduce it. The only thing that solves this is restarting the docker container.

Could you share the request payload?

@tnipri Ill dig into this more tomorrow and try to reproduce. Could you at least share the model and the relationship tuples that you produce the issue with? That would help a lot.

Also, what storage are you using? memory or postgres?

Thanks @jon-whit. Here is the model as taken from openfga playground:
type organization
relations
define can_change_owner as owner
define can_delete_organization as owner
define can_delete_user as owner
define can_invite_user as owner
define can_read as owner or member
define can_read_members as owner or member
define member as self or owner
define owner as self
type user
relations
define can_read as owner or member from parent_organization
define owner as self
define parent_organization as self
@miparnisari - I'm using postgres. I used the migration tool from ver 0.1.7 to initialize the pg database

@jon-whit forgot to add the relation tuples. It's super basic:
user: user:9
relation: owner
object: organization:14
user: organization:14
relation: parent_organization
object: user:9

@tnipri Using v0.0.2 of the Javascript @openfga/sdk and with the authorization model and tuples above, I cannot reproduce on v0.2.0 of the OpenFGA server.
To further troubleshoot the issue you are seeing, would you please provide a video screen capture using QuickTime or something similar to demonstrate the issue you are seeing?
Additionally, what OS and version of the OS are you running? What docker client version are you using? Any other environmental context would help us troubleshoot the issue.

@tnipri would you mind pulling the latest version of the Docker image? It should log more details about the internal server error. Thank you!

We are experiencing the exact same issue using this image openfga/openfga:v0.2.1. It works for a while then suddenly stops, I can make it start again by calling the /stores endpoint a few times. I think I actually got an Deadline passed message from the server, but have to wait until the next time it fails to be sure.
From the logs:
2022-09-09T05:38:22.065Z        INFO    db_stats        {"method": "ListStores", "reads": 1, "writes": 0}
2022-09-09T05:38:25.068Z        ERROR   grpc_error      {"error": "rpc error: code = Unknown desc = rpc error: code = Code(4000) desc = Internal Server Error", "request_url": "/stores"}
github.com/openfga/openfga/pkg/logger.(*ZapLogger).ErrorWithContext
        /home/runner/work/openfga/openfga/pkg/logger/logger.go:80
github.com/openfga/openfga/server.New.func1
        /home/runner/work/openfga/openfga/server/server.go:143
github.com/grpc-ecosystem/grpc-gateway/v2/runtime.HTTPError
        /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.11.2/runtime/errors.go:81
go.buf.build/openfga/go/openfga/api/openfga/v1.RegisterOpenFGAServiceHandlerClient.func15
        /home/runner/go/pkg/mod/go.buf.build/openfga/go/openfga/api@v1.2.28/openfga/v1/openfga_service.pb.gw.go:1843
github.com/grpc-ecosystem/grpc-gateway/v2/runtime.(*ServeMux).ServeHTTP
        /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.11.2/runtime/mux.go:386
github.com/rs/cors.(*Cors).Handler.func1
        /home/runner/go/pkg/mod/github.com/rs/cors@v1.8.2/cors.go:231
net/http.HandlerFunc.ServeHTTP
        /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:2084
net/http.serverHandler.ServeHTTP
        /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:2916
net/http.(*conn).serve
        /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:1966

Hi @OysteinVesth ! Thanks for the report. We had a bug where we were not properly logging the internal errors so it is quite difficult to figure out what is going on. A fix has been merged to main today, and we'll try to cut a new release soon. If it is possible to use main then that may help to track down what is happening.
What this sounds like (and looks like from the error, but really it could be anything) is that OpenFGA is losing its connection to Postgres, then reconnecting. Is that possible?

Thanks for the response @craigpastro! We are using Aurora serverless for our postgres db, so that is probably the case.
Is this expected behavior? Is there any way we can mitigate it?

Hi again @OysteinVesth. So a couple of us were able to reproduce this behaviour using serverless Aurora. Thanks again for bringing it to our attention.
I did some reading and what I think is happening is that after OpenFGA does something it will return the connection to the pool. After some time Aurora will close the connection, then when OpenFGA tries to use that connection again it ends up with a broken pipe error. pgx does not check whether the connection is dead at this point https://github.com/jackc/pgx/issues/74, hence the error. After it gets the error back it knows the connection is bad and can remove it from the pool. So the next request should work. At least that was my experience. Note pgx does not retry.
Possible mitigations:

Upgrade to pgx v5 which calls CheckConn() on idle connections. v5 is in beta with an expected release this month (September). https://github.com/jackc/pgx/blob/v5-dev/CHANGELOG.md I've tried it out and so far cannot reproduce the error.
Wrap each read in a transaction which has retries: https://github.com/jackc/pgx/issues/74. I'm not sure if that will affect performance. Haven't tried this yet.
In Postgres, set the max connection lifetime to be shorter than the time that Aurora closes the connection. This can be done by adding, for example, ?pool_max_conn_lifetime=5m&pool_max_conn_lifetime_jitter=1m to the connection string. I've tried this and so far can't reproduce the error.

The last one is something you can try immediately. The first two will require an update to OpenFGA.
I'll be back if I think of anything else.

Hey @miparnisari and @jon-whit , sorry for the delay - this issue happens randomly. I upgraded to 0.2.1 like you asked:
starting openfga service...  {"version": "v0.2.1", "date": "2022-08-31T01:31:16Z", "commit": "2dfe665dbd8889c138cfa75c13b960d06e535876", "go-version": "go1.18.5"}
The logs from the crash looks similar to the previous one:
2022-09-12T13:43:32.155Z        INFO    db_stats        {"method": "Check", "reads": 10, "writes": 0} 2022-09-12T13:59:02.517Z        ERROR   grpc_error      {"error": "rpc error: code = Unknown desc = rpc error: code = Code(4000) desc = Internal Server Error", "request_url": "/stores/01G9TE715A51EDP84Q7S9VH9CX/check"} github.com/openfga/openfga/pkg/logger.(*ZapLogger).ErrorWithContext         /home/runner/work/openfga/openfga/pkg/logger/logger.go:80 github.com/openfga/openfga/server.New.func1         /home/runner/work/openfga/openfga/server/server.go:143 github.com/grpc-ecosystem/grpc-gateway/v2/runtime.HTTPError         /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.11.2/runtime/errors.go:81 go.buf.build/openfga/go/openfga/api/openfga/v1.RegisterOpenFGAServiceHandlerClient.func3         /home/runner/go/pkg/mod/go.buf.build/openfga/go/openfga/api@v1.2.28/openfga/v1/openfga_service.pb.gw.go:1591 github.com/grpc-ecosystem/grpc-gateway/v2/runtime.(*ServeMux).ServeHTTP         /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway/v2@v2.11.2/runtime/mux.go:386 github.com/rs/cors.(*Cors).Handler.func1         /home/runner/go/pkg/mod/github.com/rs/cors@v1.8.2/cors.go:231 net/http.HandlerFunc.ServeHTTP         /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:2084 net/http.serverHandler.ServeHTTP         /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:2916 net/http.(*conn).serve         /opt/hostedtoolcache/go/1.18.5/x64/src/net/http/server.go:1966
Please let me know if anything else is needed.

Hi @tnipri ! Sorry about that, but I think the logs we have in 0.2.1 are not sufficient to see what exactly the problem is. Are you able to run the main branch where we have improved logging? If not we are planning a new release in the very near future.
In the meantime can you give me a bit more detail about how you are running OpenFGA. In particular, how are you running Postgres and what version are you running?
And, just so I understand correctly, you start OpenFGA and it runs fine for a little while.

Then, after an idle period, you send a request which results in an internal server error? Or does it just happen with no idle period?
After you get the first internal server error do all subsequent requests also fail? And the only way to get it working again is to restart OpenFGA?

Thank you for your help!

I might look into the last one @craigpastro.
The problem kind of fixed itself. I had forgot to add readiness/liveness probes to the OpenFGA pod. These ping the postgres db, so now it never reaches the 10 min auto_pause limit we've set in Aurora.
Anyway, thanks you so much for the detailed response!

Hi @tnipri ! Sorry about that, but I think the logs we have in 0.2.1 are not sufficient to see what exactly the problem is. Are you able to run the main branch where we have improved logging? If not we are planning a new release in the very near future.
In the meantime can you give me a bit more detail about how you are running OpenFGA. In particular, how are you running Postgres and what version are you running?
And, just so I understand correctly, you start OpenFGA and it runs fine for a little while.

Then, after an idle period, you send a request which results in an internal server error? Or does it just happen with no idle period?
After you get the first internal server error do all subsequent requests also fail? And the only way to get it working again is to restart OpenFGA?

Thank you for your help!

I'm deploying openfga using docker, so I have to wait for a new version to give more accurate logs
I'm using postgres latest version (14), also deployed using docker.

It suddenly happens after an idle period.
All subsequent requests also fail. You are correct - only by restarting I can get it working again

Let me know if you need anything else!

Hi @tnipri ! I tried to replicate this by running Postgres:14 in a container with
$ docker run -d --name postgres -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password postgres:14

then running OpenFGA from the binary so I could get the new logs, but so far with no luck. Is there anything else you could add about your setup that would help? Sorry for asking so much.
Hopefully, we will cut a new release today, so if you could try that again after and report back that would be great!
Thanks!

Hey @craigpastro , I don't know what's causing this issue. I updated the version and here are the new logs (it happened again):
2022-09-25T09:58:51.819Z        ERROR   grpc_error      {"error": "postgres error: write failed: write tcp <IP_ADDRESS>:57202-><IP_ADDRESS>:5432: write: broken pipe", "public_error": "rpc error: code = Code(4000) desc = Internal Server Error"}
github.com/openfga/openfga/pkg/logger.(*ZapLogger).Error
        /home/runner/work/openfga/openfga/pkg/logger/logger.go:56
github.com/openfga/openfga/server/middleware.NewErrorLoggingInterceptor.func1
        /home/runner/work/openfga/openfga/server/middleware/logging.go:20
google.golang.org/grpc.chainUnaryInterceptors.func1.1
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:1135
github.com/grpc-ecosystem/go-grpc-middleware/auth.UnaryServerInterceptor.func1
        /home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware@v1.3.0/auth/auth.go:47
google.golang.org/grpc.chainUnaryInterceptors.func1.1
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:1138
github.com/grpc-ecosystem/go-grpc-middleware/validator.UnaryServerInterceptor.func1
        /home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware@v1.3.0/validator/validator.go:47
google.golang.org/grpc.chainUnaryInterceptors.func1.1
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:1138
google.golang.org/grpc.chainUnaryInterceptors.func1
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:1140
go.buf.build/openfga/go/openfga/api/openfga/v1._OpenFGAService_Check_Handler
        /home/runner/go/pkg/mod/go.buf.build/openfga/go/openfga/api@v1.2.30/openfga/v1/openfga_service_grpc.pb.go:377
google.golang.org/grpc.(*Server).processUnaryRPC
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:1301
google.golang.org/grpc.(*Server).handleStream
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:1642
google.golang.org/grpc.(*Server).serveStreams.func1.2
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.49.0/server.go:938

Hi @tnipri. This is very helpful! It seems like you are expenriencing the same problem as @OysteinVesth did above. One thing that you can try is, in your Postgres connection string, set the max connection lifetime to be quite short. Perhaps 5 minutes or so. You can do this by adding ?pool_max_conn_lifetime=5m&pool_max_conn_lifetime_jitter=1m to your connection string.
Alternatively, now that pgx v5 has been released we could also update that library, which I think also fixes the problem.

Hi again @tnipri ! Are you still seeing crashes? We released v0.2.3 today https://github.com/openfga/openfga/releases/tag/v0.2.3, which updates the pgx library to v5 which may be a fix for the bug you are seeing. If you get a chance to run it, please let us know if it solved your problem. Thanks!

thanks @craigpastro I've been running the new version for couple of days now - so far without exceptions!
I will post here in case I encounter anything else. Thanks again for this tool!

Hi @tnipri, that’s great to hear. Seems like upgrading to pgx fixed the problem. Thank you for bringing it to our attention!
I’ll close this issue for now, but please reopen it if you encounter it again. Thanks!

Hey @tnipri
Were you able to finally use OpenFGA? Would you mind emailing me at andres.aguiar at okta.com and share what has been your experience with it?
Thanks


Implement CodeSandbox for the examples

I created a new library called @codesandbox/react-embed. This is a simple component that will create a sandbox on mount using our API and render an embed which shows the sandbox.
I had to change two examples to make them work:

Animation

I import styles.css now

QueryParams

I wrap the component in a Route, because location is needed by the component.

Looks great!

Awesome! Animation example does not work yet, because it tries to download styles.css from the GitHub repo which isn't on master yet. This happens for files outside of the main example.

It should work when it's merged to master though, forgot to mention that. This one should be mergeable if it's LGTM!

Good one! Pushed it.

Thanks for the work here, @CompuIves. I love that you have a React component for embedding a Codesandbox example on a web page 🔥
I wonder if we could we use react-native-web or something similar to run our react-router-native examples on Codesandbox as well...

I wonder if we could we use react-native-web or something similar to run our react-router-native examples on Codesandbox as well...

Seems like it works out of the box! I moved the native examples as well now.

@CompuIves I'm going to look at this today and see if we can merge. Sorry for the delay


[V2] Update copyright template.

Description
Changes the copyright holder to the new legal name and changes the year to the current year.

Types of Changes

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Documentation update
[ ] Breaking change (could cause existing functionality to not work as expected)
[ ] Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

Removing a public function or component or prop
Adding a required argument to a function
Changing the data type of a function parameter or return value
Adding a new peer dependency to package.json

Changes

(change1)

How to Test-Drive This PR

(step1)

Checklists

General

[ ] Changes are covered by test cases
[ ] CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance
You must check off all items in one of the follow two lists:

[ ] There are no changes to UI

or...

[ ] Changes were tested with a Screen Reader (iOS VoiceOver or Android Talkback) and had no issues
[ ] Changes comply with WCAG 2.0 guidelines levels A and AA
[ ] Changes to common UI patterns and interactions comply with WAI-ARIA best practices

Localization

[ ] Changes include a UI text update in the Retail React App (which requires translation)

Oops, wrong base branch. :|


QoS Profile Get ALL

Enhancement done as per of #348, I agree that many will not implement Get All and offer a short list of "standard" profiles mutually agreed.
However, irrespective of this, we should not abandon the Get All and provide flexibility, in case some network operators want the profile names to be fetched and use in create session API, even though profiles are created as per agreement only. Sharing mutually agreed profiles over email/Chat is not a reliable method and API will simplify this manual process.
Also, the "POST /retrieve-qos-profile" with device as input, we are still not sure under what condition, this will be used? Reason is, while creating session or provisioning, qos profile is passed as an input, so API invoker is already controlling the device to profile mapping and is aware which profile is mapped to what device. So, based on that, API invoker can do "GET /qos-profile/{name}" to fetch the profile details in case required.

Hi @gauravn00b - thanks for your points.
POST /retrieve-qos-profile allows currently multiple cases -- but probably we haven't make this explicit enough
a) With 2-legged token (client-credential) and no device as parameter it should return all QoS profiles provided by the network (but: if it is an aggregated API across multiple operators it has to be defined by the aggregator what gets returned here, e.g. the intersection across a set of supported network operators)
b) With 3-legged token (indicating a device) or with an explicit device parameter it will return the QoS profiles which are available for that device -- which is potentially only a subset of the the set returned in case a). This request will work also on aggregation layer, as the request can be routed to the network operator who is serving the device.
To your second question: the intention is to use the qos-profiles API before calling the quality-on-demand API to get the list of QoS profiles which can be used as input for the quality-on-demand API (qosProfile is there an input parameter). Having this specific for a device reduces the cases where a QoS profile is valid for the network but not available for the concrete device.

Thanks @hdamker for the inputs.
For Point b you have explained, as per our understanding, when qos profiles are created in network, there is no mapping of device to qos profile at network operator until unless API invoker assigns a QoS profile to a device, which can only be done under 2 situations:

Session creation
QoD Provisioning

In both the above cases, its API invoker itself who is assigning qos profile with the device. So not sure under which scenario API invoker would need to know which qos profile is mapped to which device. Its already known to API invoker.
If there is any such case, where profiles are required to be mapped to devices, then this needs further deliberation and discussion.

@gauravn00b seems that I haven't explained it correctly. Maybe you can give some context about from which direction you are asking - an operator implementing the APIs or an API consumer using them. Then I can adapt the explanations accordingly.

Thanks @hdamker for the inputs.
For Point b you have explained, as per our understanding, when qos profiles are created in network, there is no mapping of device to qos profile at network operator until unless API invoker assigns a QoS profile to a device, which can only be done under 2 situations:

Session creation
QoD Provisioning

In both the above cases, its API invoker itself who is assigning qos profile with the device. So not sure under which scenario API invoker would need to know which qos profile is mapped to which device. Its already known to API invoker.
If there is any such case, where profiles are required to be mapped to devices (during profile creation and before session creattion/qod provisioning), then this needs further deliberation and discussion.

In short: QoS Profiles will not created, but defined upfront - think of them as kind of products an API consumer can use while creating Sessions or Provisionings (if the profiles are "existing" in the network before a session is created depends on the technical means used to implement them).
And which QoS Profiles can be requested for a device depends e.g. on the kind of network a device is in (for a device in a 4G/5G NSA network there might be different options then for a device in a 5G SA network). The API consumer can't know these when calling createSession. With /retrieve-qos-profiles they can get the list of eligible profiles for the device.
@RandyLevensalor could you add to the discussion?

@gauravn00b
If you are looking for an API where the API consumer can request an arbitrary QoS profile, I suggest looking at the Network Slice Booking API. For that API, the QoS profiles are not assigned names, as they are not pre-defined "catalogue" entries offered by the API provider, unlike the QoD APIs.

Thanks for your inputs @hdamker @eric-murray.
So POST /retrieve-qos-profiles without device in body or token (2 leg) is basically the deprecated GET /qos-profiles, where all profiles will be returned.
Regarding profile per device type, we have noted down inputs on this and will connect again in case some further clarity required.

profile per device type

@gauravn00b This is an option that I've not considered and I'm not sure how it would be implemented.  Since user plan and network type / region could also limit which profiles are available.
For instance if a user is connecting to Wi-Fi over a DOCSIS or Fiber network, they could have more capacity than if they were connecting to a mobile network.
If this isn't a constraint that we want to include in the API, it's something that we could consider.
Additionally, how granular would we need to get on device type.  Would it be like Phone, Tablet, Laptop or other form factor?  Or be by capabilities supported such as bands or Wi-Fi generation.  Or would it need to go down to brand, model and generation?

@RandyLevensalor Currently discussion is only about how a device can have a limited set of profiles out of total profiles available (Like @hdamker explained device being in 5G and another device being in 4G, so both devices can have different set of profiles).
The points you mention are much more deeper and increases the granularity further.
It's difficult to comment on this aspect at this moment.
@hdamker one query, are we planning to expose a create profile API as well in near future? Where API invoker itself will create/define profiles in network. (Obviously it will be based on some pre-agreement/SLAs, by placing some checks at the network during profile definition)

@hdamker one query, are we planning to expose a create profile API as well in near future? Where API invoker itself will create/define profiles in network. (Obviously it will be based on some pre-agreement/SLAs, by placing some checks at the network during profile definition)

@gauravn00b No, there are no plans to allow to create QoS profiles by API consumers.
There is an approach with https://github.com/camaraproject/ConnectivityInsights/blob/main/code/API_definitions/application-profiles.yaml, which allow to express the expected network thresholds of an application. Currently used with the connectivity-insights API, but a possible evolution could be to offer an API which maps an application profile to an available QoS Profile. There is also https://github.com/camaraproject/QualityOnDemand/issues/302, proposing to use application profiles as direct input to quality-on-demand, but my impression is that this has low support at the moment due to implementation complexity and indeterministic behaviour for the API consumer.
Another discussion - which will start in https://github.com/camaraproject/QualityByDesign/blob/main/README.md - is that an API like connectivity-insights could provide as results "corrective actions", which could be a recommended QoS Profile for the application requirements under the current connectivity situation to achieve the required network quality (kind of a feedback loop between application and network).


IPC: IPCServer should be able to provide channels which communicate to any client

Let's make the router parameter optional:
getChannel<T extends IChannel>(channelName: string, router?: IClientRouter<TContext>): T {

This means what:

routeCall goes to any client
routeEvent goes to every client which is connected at any given point in time, this is a dynamic collection of clients

Use case: Shared process would like to listen to storage change events.

@sandy081 can you verify?


has method returns no errors

Versions:

VueJs: 2.5.16
Vee-Validate: 2.0.6

Description:
has method returns no error even though there are errors.
I am using v-validate.initial to show errors upfront as well (I wish there was a way to know if the form is filled or not without show error message. Something like isDirty).
When I check in the console, I do see initial errors but calling has method returns nothing.
I tried a hacky approach - errors.collect()[<fieldName] and it did return me an array of initial errors.

Validations happen asynchronously meaning results is unreliable when checking using synchronous code.
I would like to see a demo for this issue, since it can be a bug.


New Topics needed

Hi @animatedai ,
Your video is super intuitive. You own my respect. If would be great if you  add batch norm, layer norm, group norm, instance norm like that

Hi @Muthukamalan,
Thanks for the feedback. Are there any of those normalization techniques that you're more interested in seeing than the others? And are you looking for an explanation of each technique on its own or are you looking for more of a comparison between the techniques (e.g., strengths/weaknesses, when to use one vs. another, etc...)?

Thanks for your response @animatedai
Explanation of following techniques and how it'll updating it's hyperparameter during training

Layer Norm (LN)
Batch Norm (BN)
Instance Norm (IN)
Group Norm (GN)

I see a lot of stackoverflow and reddit response quoting saying use LN for NLP, BN for images (in LN paper, Hinton quotes same). but I like to get power to visualize like you did it in your previous videos ❤


[Templating] Auth for SPA templates remaining work

Update Identity Server oidc-client to a released version.
Use the new simpler APIs if possible.
Go back to use the WebLocalStorage if possible.
Update the identity server versions.
Explicitly reference ASP.NET Core Identity Server dependencies outside of the shared framework in the templates.

The only thing left here, @javiercn, is to reference the final IS4 package when it's released post Preview 9, correct?

Yes, there's one thing that I didn't pursue, but it's an enchantment, so yeah. Updating IS4 and oidc-client to their final versions is the last thing to do.