C# Profiles/Vehicles cannot be used from routerDB.

/// <summary>
        /// A Train <see cref="Profile"/>
        /// </summary>
        public class TrainProfile : Profile
        {
            private static Dictionary<String, int> SpeedProfiles =
                new Dictionary<string, int>
                {
                {"railway",90 },
                {"railway_link",90 },
                {"trunk",70 },
                {"trunk_link",70 },
                {"primary",50 },
                {"primary_link",50 },
                {"secondary",45 },
                {"secondary_link",45 },
                {"tertiary",45 },
                {"tertiary_link",45 },
                {"unclassified",40 },
                {"residential",40 },
                {"service",20 },
                {"services",20 },
                {"road",20 },
                {"yard",20 },
                {"siding",5 },
                {"ferry",5 },
                {"movable",5 },
                {"shuttle_train",10 },
                {"default",10 }
                };

            private static Dictionary<String, bool> AccessValues =
                new Dictionary<string, bool>
                {
                {"private",false},
                {"yes",true },
                {"no",false },
                {"permissive",true },
                {"destination",true },
                {"customers",false },
                {"designated",true },
                {"public",true },
                {"delivery",true},
                {"use_sidepath",false }
                };

            private static string[] Vehicles = new[] { "vehicle", "motor_vehicle", "motorcar", "train" };

            public TrainProfile() : base("train", ProfileMetric.TimeInSeconds,
               Vehicles, null, new TrainVehicle())
            {
                _instructionGenerator = new FastInstructionGenerator(this);
            }

            //interprets access tags
            private static bool? CanAccess(IAttributeCollection attributes)
            {

                bool? last_access = null;
                string accessValue = null;
                if (attributes.TryGetValue("access", out accessValue) &&
                        AccessValues.ContainsKey(accessValue))
                {
                    var access = AccessValues[accessValue];
                    last_access = access;
                }
                foreach (var vtype in Vehicles)
                {
                    string accessKey = null;
                    if (attributes.TryGetValue(vtype, out accessKey) && AccessValues.ContainsKey(accessKey))
                    {
                        var access = AccessValues[accessKey];
                        last_access = access;
                    }
                }
                return last_access;
            }

            private static short? IsOneway(IAttributeCollection attributes, Whitelist whitelist, String name)
            {
                String oneway = null;
                if (attributes.TryGetValue(name, out oneway))
                {
                    whitelist.Add(name);
                    if (!String.IsNullOrEmpty(oneway))
                    {
                        if (oneway == "yes" ||
                            oneway == "true" ||
                           oneway == "1")
                            return 1;
                        if (oneway == "-1")
                            return 2;
                    }
                }
                return null;
            }

            internal static FactorAndSpeed FactorAndSpeed(IAttributeCollection attributes,
               Whitelist whitelist)
            {
                if (attributes == null || attributes.Count == 0)
                {
                    return Itinero.Profiles.FactorAndSpeed.NoFactor;
                }
                string highway = null;
                if (attributes.TryGetValue("highway", out highway))
                    whitelist.Add("highway");
                var result = new FactorAndSpeed();
                var speed = 0.0f;
                short direction = 0;
                var canstop = true;
                //set highway to ferry when ferry.
                string route = null;
                if (attributes.TryGetValue("route", out route))
                    whitelist.Add("route");
                if (route == "ferry")
                {
                    highway = "ferry";
                }

                if (String.IsNullOrEmpty(highway))
                    return Itinero.Profiles.FactorAndSpeed.NoFactor;
                //get default speed profiles
                var highway_speed = SpeedProfiles.ContainsKey(highway) ? (int?)SpeedProfiles[highway] : null;

                if (highway_speed != null)
                {
                    speed = highway_speed.Value;
                    direction = 0;
                    canstop = true;
                    if (highway == "railway" ||
                       highway == "railway_link")
                        canstop = false;
                }
                else
                    return Itinero.Profiles.FactorAndSpeed.NoFactor;

                if (CanAccess(attributes) == false)
                    return Itinero.Profiles.FactorAndSpeed.NoFactor;

                //get maxspeed if any.
                string maxSpeed = null;
                if (attributes.TryGetValue("maxspeed", out maxSpeed))
                {
                    whitelist.Add("maxspeed");
                    float lspeed;
                    if (float.TryParse(maxSpeed, out lspeed))
                        speed = lspeed * 0.75f;
                }

                //get maxweight and maxwidth constraints if any
                var maxweight = 0.0f;
                var maxwidth = 0.0f;
                string maxWeightString = null;
                if (attributes.TryGetValue("maxweight", out maxWeightString))
                {
                    whitelist.Add("maxweight");
                    float.TryParse(maxWeightString, out maxweight);
                }

                string maxWidthString = null;
                if (attributes.TryGetValue("maxwidth", out maxWidthString))
                {
                    whitelist.Add("maxwidth");
                    float.TryParse(maxWidthString, out maxwidth);
                }

                if (maxwidth != 0 || maxweight != 0)
                {
                    result.Constraints = new[]
                        { maxweight, maxwidth};
                }

                //get directional information
                String junction = null;
                if (attributes.TryGetValue("junction", out junction))
                {
                    whitelist.Add("junction");
                    if (junction == "roundabout")
                        direction = 1;
                }
                var ldirection = IsOneway(attributes, whitelist, "oneway");

                if (ldirection != null)
                    direction = ldirection.Value;
                if (speed == 0)
                    return Itinero.Profiles.FactorAndSpeed.NoFactor;
                result.SpeedFactor = 1.0f / (speed / 3.6f); // 1/m/s
                result.Value = result.SpeedFactor;
                result.Direction = direction;
                if (!canstop)
                {
                    result.Direction += 3;
                }
                return result;
            }

            public override FactorAndSpeed FactorAndSpeed(IAttributeCollection attributes)
            {
                return TrainProfile.FactorAndSpeed(attributes, new Whitelist());
            }

            /// </summary>
            /// <remarks>
            /// Default implementation compares attributes one-by-one.
            /// </remarks>
            public override sealed bool Equals(IAttributeCollection attributes1, IAttributeCollection attributes2)
            {
                return attributes1.ContainsSame(attributes2);
            }

            private IUnimodalInstructionGenerator _instructionGenerator;
            public override IUnimodalInstructionGenerator InstructionGenerator
            {
                get { return _instructionGenerator; }
            }
        }

        /// <summary>
        /// A Train <see cref="Itinero.Profiles.Vehicle"/>
        /// </summary>
        public class TrainVehicle : Itinero.Profiles.Vehicle
        {
            static FactorAndSpeed DefaultFactorAndSpeed = new FactorAndSpeed()
            {
                SpeedFactor = 1 / (50f / 3.6f),
                Value = 1 / (50f / 3.6f),
                Direction = 0
            };

            readonly string[] _vehicleTypes = new[] { "vehicle", "motor_vehicle", "motorcor", "train" };

            public TrainVehicle()
            {
                Register(new Profile("shortest", ProfileMetric.DistanceInMeters, _vehicleTypes, null, this));
                Register(new Profile(string.Empty, ProfileMetric.TimeInSeconds, _vehicleTypes, null, this));

                ProfileWhiteList.Add("railway");
                ProfileWhiteList.Add("maxspeed");
                ProfileWhiteList.Add("route");
                ProfileWhiteList.Add("barrier");
                ProfileWhiteList.Add("service");

                MetaWhiteList.Add("name");
                MetaWhiteList.Add("ref");
                MetaWhiteList.Add("bridge");
                MetaWhiteList.Add("tunnel");
                MetaWhiteList.Add("embankment");
                MetaWhiteList.Add("cutting");
                MetaWhiteList.Add("electrified");
                MetaWhiteList.Add("owner");
                MetaWhiteList.Add("operator");
                MetaWhiteList.Add("usage");
                MetaWhiteList.Add("from");
                MetaWhiteList.Add("to");
                MetaWhiteList.Add("via");
                MetaWhiteList.Add("voltage");
                MetaWhiteList.Add("wikipedia");
                MetaWhiteList.Add("embedded_rails");
                MetaWhiteList.Add("frequency");
                MetaWhiteList.Add("railway:track_ref");
                MetaWhiteList.Add("tracks");
                MetaWhiteList.Add("spur");
                MetaWhiteList.Add("spiding");
                MetaWhiteList.Add("crossover");
            }

            /// <summary>
            /// Gets the name of this vehicle.
            /// </summary>
            public override string Name => nameof(TrainVehicle);

            /// <summary>
            /// Gets the vehicle types.
            /// </summary>
            public override string[] VehicleTypes
            {
                get
                {
                    return _vehicleTypes;
                }
            }

            public override bool AddToWhiteList(IAttributeCollection attributes, Whitelist whitelist)
            {
                return TrainProfile.FactorAndSpeed(attributes, whitelist).SpeedFactor > 0;
            }

            public override FactorAndSpeed FactorAndSpeed(IAttributeCollection attributes, Whitelist whitelist)
            {
                return DefaultFactorAndSpeed;
            }
        }

        /// <summary>
        /// Class to generate instructions from the <see cref="Route"/>
        /// </summary>
        internal class FastInstructionGenerator :
            IUnimodalInstructionGenerator
        {
            private Profile _profile;
            internal FastInstructionGenerator(Profile profile)
            {
                _profile = profile;
            }

            public IList<Itinero.Navigation.Instructions.Instruction> Generate(Route route, ILanguageReference language)
            {
                if (route.IsMultimodal())
                {
                    throw new ArgumentException("Cannot use a unimodal instruction generator on multimodal route.");
                }
                if (_profile.FullName.ToLowerInvariant() != route.Profile)
                {
                    throw new ArgumentException(string.Format("Cannot generate instructions with a generator for profile {0} for a route with profile {1}.",
                        _profile.FullName, route.Profile));
                }
                var instructions = new List<Itinero.Navigation.Instructions.Instruction>();
                foreach (var position in route)
                {
                    if (position.IsFirst())
                        instructions.Add(GetStart(position, language));
                    else if (position.IsLast())
                        instructions.Add(GetStop(position, language));
                    else if (position.GetMetaAttribute("junction") ==
                    "roundabout")
                    {
                        var instruction = GetRoundabout(position, language);
                        if (instruction != null)
                            instructions.Add(instruction);
                    }
                    else
                    {
                        var instruction = GetTurn(position, language);
                        if (instruction != null)
                            instructions.Add(instruction);
                    }
                }
                return instructions;
            }

            private Itinero.Navigation.Instructions.Instruction GetStart(RoutePosition position, ILanguageReference language)
            {
                var instruction = new Itinero.Navigation.Instructions.Instruction
                {
                    Shape = position.Shape,
                    Type = "start"
                };
                var direction = position.Direction();
                instruction.Text = String.Format(language
                    ["Start {0}."], language[direction.ToString()
                    .ToLower()]);
                return instruction;
            }

            // gets the last instruction
            private Itinero.Navigation.Instructions.Instruction GetStop(RoutePosition position, ILanguageReference language)
            {
                return new Itinero.Navigation.Instructions.Instruction
                {
                    Text = language["Arrived at destination."],
                    Shape = position.Shape,
                    Type = "stop"
                };
            }

            private IEnumerable<Route.Branch> GetTraversable(IEnumerable<Route.Branch> branches)
            {
                foreach (var branch in branches)
                {
                    var factorAndSpeed = _profile.FactorAndSpeed(branch.Attributes);
                    if (factorAndSpeed.SpeedFactor != 0)
                    {
                        if (factorAndSpeed.Direction == 0 ||
                            factorAndSpeed.Direction == 3)
                        {
                            yield return branch;
                        }
                        else
                        {
                            if (branch.AttributesDirection)
                            {
                                if (factorAndSpeed.Direction == 1 ||
                                    factorAndSpeed.Direction == 4)
                                {
                                    yield return branch;
                                }
                            }
                            else
                            {
                                if (factorAndSpeed.Direction == 2 ||
                                    factorAndSpeed.Direction == 5)
                                {
                                    yield return branch;
                                }
                            }
                        }
                    }
                }
            }

            //gets a roundabout instruction
            private Itinero.Navigation.Instructions.Instruction GetRoundabout(RoutePosition position, ILanguageReference language)
            {
                position.Next();
                if (string.IsNullOrEmpty(position.GetMetaAttribute("junction")))
                {
                    var instruction = new Itinero.Navigation.Instructions.Instruction
                    {
                        Shape = position.Shape,
                        Type = "roundabout"
                    };

                    var exit = 1;
                    var count = 1;
                    var previous = position.Previous();
                    while (previous != null && previous.Value.GetMetaAttribute("junction") == "roundabout")
                    {
                        var branches = previous.Value.Branches();
                        if (branches != null)
                        {
                            branches = GetTraversable(branches);
                            if (branches.Any())
                                exit++;
                        }
                        count++;
                        previous = previous.Value.Previous();
                    }

                    instruction.Text = string.Format(language["Take the {0}th exit at the next roundabout."], exit);
                    if (exit == 1)
                        instruction.Text = string.Format(language["Take the first exit at the next roundabout."]);
                    else if (exit == 2)
                        instruction.Text = string.Format(language["Take the second exit at the next roundabout."]);
                    else if (exit == 3)
                        instruction.Text = string.Format(language["Take the third exit at the next roundabout."]);

                    instruction.Shape = position.Shape;
                    return instruction;
                }

                return null;
            }

            //gets a turn
            private Itinero.Navigation.Instructions.Instruction GetTurn(RoutePosition position, ILanguageReference language)
            {
                var instruction = new Itinero.Navigation.Instructions.Instruction
                {
                    Shape = position.Shape,
                    Type = "turn"
                };
                var relativeDirection = position.RelativeDirection().Direction;
                var turnRelevant = false;
                var branches = position.Branches();
                if (branches != null)
                {
                    var traversedBranches =
                        GetTraversable(branches).ToList();

                    if (relativeDirection == RelativeDirectionEnum.StraightOn &&
                        traversedBranches.Count >= 2)
                        turnRelevant = true;// straight on at cross road

                    if (relativeDirection != RelativeDirectionEnum.StraightOn &&
                traversedBranches.Count > 0)
                        turnRelevant = true;// an actual normal turn
                }
                if (turnRelevant)
                {
                    var next = position.Next();
                    string name = null;
                    if (next != null)
                        name = next.Value.GetMetaAttribute("name");
                    if (!String.IsNullOrEmpty(name))
                    {
                        instruction.Text = string.Format(language["Go {0} on {1}."],
                            language[relativeDirection.ToString()
                            .ToLower()], name);
                        instruction.Shape = position.Shape;
                    }
                    else
                    {
                        instruction.Text = String.Format(language["Go {0}."],
                            language[relativeDirection.ToString().ToLower()]);
                        instruction.Shape = position.Shape;

                    }
                    return instruction;
                }
                return null;
            }

            public IList<Itinero.Navigation.Instructions.Instruction> Generate(Route route, ILanguageReference languageReference, CancellationToken cancellationToken)
            {
                return Generate(route, languageReference);
            }
        }

Exception

'Cannot deserialize for type with name: Itinero.Test.Functional.Program+TrainVehicle. A custom deserializer was not found.

When
  using (var stream = new FileInfo(@"planetrail.routerdb").OpenRead())
                routerDb = RouterDb.Deserialize(stream);

However the odd thing is that when the following code is used:
using (var stream = new FileInfo(@"planet-rail.osm.pbf").OpenRead())
                routerDb.LoadOsmData(stream, vehicle, trainVehicle);

That it works.
Did I do something wrong in the Profile / Vehicle code I created?
I am mainly trying to handle Turn Penalty and prevention of U turns.

The C# profiles cannot be serialized to a routerdb. You can register them before deserializing if I remember correctly:
https://github.com/itinero/routing/blob/develop/src/Itinero/Profiles/Vehicle.cs#L155
What is it exactly you cannot do from lua?

I was having a harder time debugging the LUA profiles to determine why certain routes were not working the way we would expect. E.g. there are what seem like U turns on certain tracks I initially thought because of the profile for Fastest but even when changing to Slowest I still see the same result.
I will try on Monday or if I have time over the weekend to see if I can get it to work by calling Register, I missed that because it was marked obsolete but if you see in the constructor of the Vehicle it already calls Register. @ https://github.com/itinero/routing/blob/develop/src/Itinero/Profiles/Vehicle.cs#L113 with the TrainProfile as the argument?
Further is there any documentation on the LUA which can help me determine what API there is e.g. what route can do and what API there is in Itinero e.g. parsing functions, what they return, and if possible any documentation on how turns decisions are made via the profile.
Thank you for your time!

I found the module in code @

https://github.com/itinero/routing/blob/develop/src/Itinero/Profiles/Lua/ItineroLib/ItineroModule.cs

It seems we have:
parseweight, parsewidth,parsespeed,log and format so that part of the question is answered.
Thank you.
I still would like to understand why the C# version of the vehicle cannot find a point while the LUA version can however it's not a big problem since the LUA profiles can be embedded in the DB and loaded from there anyway.
If you get around to it please provide an example of a simple train profile completely in C# which is able to be used from the routerDB after serialization.

I'll do my best to get an example to you. The only thing I can think of that could cause this is the preprocessing code not handling this properly and the routerdb ending up being different.
I would also have loved to be able to support C# based profiles and still embed them in the routerdb but I haven't figured out how to do that in a way that supports all platforms.
One of the choices I made in Itinero when I started it was to link profiles in with the preprocessing of the OSM data. I should have separated those two in two different configurations. Once I can release Itinero 2.0 that should be the case.

I think I understand what your saying, what I find unusual is that there is no way to register the C# profile to the existing routerDb even though it was built using that same vehicle / profile.
I also find it unusual that it works when loaded from OSM but not when loaded from the routerDb.
Thank you for your help!


EarlGrey 2.2.0 | Cocoapods | Can't build UI Tests target when use use_frameworks! flag in Podfile

After updating EarlGrey to 2.2.0, I cannot build a UI Tests target. This build failed with an error:

Include of non-modular header inside framework module 'EarlGreyTest.GREYHostApplicationDistantObject': '/xxx/Library/Developer/Xcode/DerivedData/XXX-fwetoamgsahlylbaeymzuyfiookw/Build/Products/Debug-iphonesimulator/eDistantObject/eDistantObject.framework/Headers/EDOClientService.h'

This only happens when use_frameworks! flag is used in Podfile in UI Tests target. Unfortunately I have to use this flag because of a different library.
It can be reproduce in EarlGreyExample from earlgrey2 branch.

Xcode 12.2
Cocoapods 1.10.0

You only need EarlGreyTest in the test component of your PodFile. Can you not remove use_frameworks from it? My guess is that you have a global Podfile config from where use_frameworks is added. Do you need the different library in your tests?

Yes, unfortunately I need a different library in my tests and it needs the use_framework flag.


Setup NPM auto push from Travis

We should have 2 build:
next that contains the latest development version.
master that contains the latest 'stable' build.
next build/pushed to NPM after every successful Travis build.
master can be pushed/build with a script.

I will take care of this.

Awesome, I can provide keys from Travis/NPM when needed!


Add a handler for checking X509 subject DNs in a request.

This adds a facility for wrapping an http.Handler to support checking for the correct X509 subject DN in the request before passing it along. The imagined use case is that you terminate SSL in e.g. Nginx and insert a header containing the subject DN of the client cert presented. The app uses that information to do access control on a per-http-handler basis.
This extracts code from an internal Stripe project.

Thanks!


TorchSharp:How do I slice layers of the Sequential by index?

https://github.com/bubbliiiing/yolo3-pytorch/blob/master/nets/yolo.py
line 77
line 78
last_layer1            = make_last_layers([512, 1024], out_filters[-1], len(anchors_mask[0]) * (num_classes + 5))
out0_branch = last_layer1[:5](x0)#How do I slice layers of the Sequential by index
out0        = last_layer1[5:](out0_branch)#How do I slice layers of the Sequential by index

Huh!
I was just about to make a release with indexing into Sequential implemented. Obviously, more work is needed... :-)

Very good.Thank you.

There is a suggestion: When Sequential supports slicing, the weight key name of the layer should not be changed to facilitate the conversion of pytorch weights to torchsharp.

It definitely will preserve the names of the modules, which should preserve the names of the parameters and buffers, which is what you need for loading tensors.


Trial version (2.6.2) doesn't work in Unity 5.3.6

Default serializer can not be set, and "NullReferenceException" is thrown. Sample scene doesn't open.

Please feel free to download a release from the releases page.


[Question] about checksum/config

Hi,
How can I define multiple checksum/config?
like this:
  annotations:
      checksum/config: {{ include (print $.Template.BasePath "/configmap1.yaml") . | sha256sum }}
      checksum/config: {{ include (print $.Template.BasePath "/configmap2.yaml") . | sha256sum }}

What's the correct definition? One config one line? Thanks.

Yes, thanks guys :)


add sub-command encapsia plugins initialise

After discussion with @petrem, we decided not to do this.


Add ui test for search recipe form

Custom comment added using Respost

Hello! Respost is here. This issue will be addressed by our contributors soon. Keep commenting and contributing.


Revert #1045, causes sharedmain to need global secrets list

This reverts commit 945b5567088aa7272584324665e428e3eb9b45da.
/assign @pmorie

Just a note, the revert is necessary because the existing change requires cluster-level permissions on secrets, which is a very high degree of privilege and incompatible with how we grant permissions to brokers currently.

/lgtm

Thanks for noticing this, Paul!
Rolling back to make a clean fix without time pressure.


🚀 Feature: Disable Email Registration all together

🔖 Feature description
As an administrator, I want to be able to disable not only certain openID connect clients but also the email registration itself, so that registration and sign-in is only possible via OAuth2.
🎤 Pitch
In our non-profit organization, we have a SSO structure that we try to use wherever we can. Especially, we try to forbid our members to sign in with their own mail addresses but instead try to force them to use the SSO. Therefore it would be great to disable the registration by mail all together and only allow registrations via the configured OAuth2/OpenID connect options to force our users keeping that good habit across our platforms.

I believe this is already achievable by setting "Share -- Allow registration" to false, "Social Login -- Allow registration" to true and "Social Login -- Disable password login" to true. This is what I use in my setup which appears to fulfill your requirements.

Thanks for the hint! Unfortunately I did run the exact previous version of the one where this got added, sorry for not updating first!


Speech_Recognition for micropython on microcontrollers

Hi,
Is there a micropython version of the Speech_Recognition library available?
Is the Speech_Recognition able to work with micropython?
Thank you

Hi, it is an interesting question.

Is the Speech_Recognition able to work with micropython?

It is really helpful to me if anyone verify whether SpeechRecognition works with micropython or not.
FYI: I think pyenv supports micropython.
https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build

FYI: I think pyenv supports micropython. https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build

Interesting, thank you i will check that out!


Restraints are broken

The pull stuff is wrong and I need to figure out why this has broken. Is it continuous_apr that is setting the pull force constants equal to the last force constant of attach? I don't think that's what we want. Will work on this later.

Add a 1.0 to your 'fraction_list'.  In the past, that was assumed, but I think will be cleaner.

Yeah, looks good.


APP-1201 Provisioning Tool to setup application certs

Generate application private key, public key, and certificate
Import generated certificate to the POD

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@e30592c). Click here to learn what that means.
The diff coverage is 93.69%.

@@          Coverage Diff           @@
##             dev     #108   +/-   ##
======================================
  Coverage       ?   89.51%
======================================
  Files          ?      164
  Lines          ?     3138
  Branches       ?      295
======================================
  Hits           ?     2809
  Misses         ?      257
  Partials       ?       72

Impacted Files
Coverage Δ

...n/provisioning/IntegrationProvisioningService.java
79.81% <100%> (ø)

...tegration/provisioning/service/KeyPairService.java
91.66% <100%> (ø)

...ration/provisioning/service/AppKeyPairService.java
100% <100%> (ø)

...rovisioning/service/CompanyCertificateService.java
80.95% <77.77%> (ø)

...ation/provisioning/service/UserKeyPairService.java
97.77% <97.77%> (ø)

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 e30592c...fc6ea57. Read the comment docs.


Run Run Conformance Testing for k8s 1.20

k8s 1.20.2-rancher2-1 is avaiable starting at rancher 2.5.6. We need to run Conformance Testing for RKE/Rancher v1.20.2-rancher2-1.

RKE PR: https://github.com/cncf/k8s-conformance/pull/1330

Rancher PR: https://github.com/cncf/k8s-conformance/pull/1332

both of the above PRs have been approved and merged


src/IHaskell/Eval/Evaluate.hs: support GHC 8.8

This is available on https://vaibhavsagar.cachix.org to play with :smiley:.


Correctly display small amounts of NEAR (<0.00001)

Same as this explorer issue
Acceptance Criteria

[x] Amounts of NEAR smaller than 0.00001 are displayed as "<0.00001 N"
[ ] On hover, when a NEAR balance is <= 0.0001, the amount in yoctoNEAR is displayed "1000000 yoctoN"

Original Thread

We should fix formatNEAR to actually reflect that the amount is not 0, but rather very small.

@janedegtiareva Can nearlib format small yoctoNEAR amounts in a human-friendly format, e.g. 1 yoctoN? We used to have <0.00001 N here. Do you think it is reasonable?

@icerove @kcole16 It seems that to make the information non-confusing and useful, we should present both <0.00001 N (1 yoctoNEAR) (we may want to show the exact amount, e.g. "1 yoctoNEAR", as an on-hover popup)

Closed by #368


test for pubsub store drop connections

Tasks are retrieved from a distributed task queue which is associated with a connection with the queue broker (redis).
What happens if the connection is dropped?
What should the consumer do?

There should be a mechanism of confirmation on both sides. Consumer should know that broker confirmed state of tasks and same knowledge should be on broker's side.
With that in mind my view on the options for the unconfirmed tasks is:

try to restore connection and make sure the sate is consistent

broker confirms tasks state,
*or if not, make sure other consumers are not engaged with the tasks (we may call it 'collision') and update broker,
*or if other consumers engaged with the tasks, use some logic on how to sort the situation (collision handler)

cancel
complete

These options may go to config as ways of behavior or linked to task types


discard command

stage and unstage files
git checkout {...file}

untracked files
git clean -df {..file} {...dir}

can't discard staged files  with git checkout...

Using stash

stash files
clear stash

discard command targets only working directory and untracked files.
staged files is not target.

description
discard files on working directory and untracked.


Added an OSD for microphone inputs.

The OSD now displays itself when Input volume is changed or mute is toggled.
closes #58

Any way to display this in the panel?


Issue with devtools and genomicsclass/GSE5859Subset

Hello,
I am stuck for the past two days. I need to use genomicsclass/GSE5859Subset and
for that I have installed "devtools". I have also installed Rtools (Rtools34) from CRAN. I am running version 3.6.0 of RStudio.
I get these warning and error messages.  I cannot use the GSE5859Subset dataset. Any help would be greatly appreciated.

library(devtools)
Loading required package: usethis
Warning messages:
1: package ‘devtools’ was built under R version 3.6.3
2: package ‘usethis’ was built under R version 3.6.3
install_github("genomicsclass/GSE5859Subset")
Error: Failed to install 'unknown package' from GitHub:
HTTP error 403.
API rate limit exceeded for <IP_ADDRESS>. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

Rate limit remaining: 0/60
Rate limit reset at: 2020-05-26 15:42:00 UTC
To increase your GitHub API rate limit

Use usethis::browse_github_pat() to create a Personal Access Token.
Use usethis::edit_r_environ() and add the token as GITHUB_PAT.

library(GSE5859Subset)
Error in library(GSE5859Subset) :
there is no package called ‘GSE5859Subset’
data(GSE5859Subset)
Warning message:
In data(GSE5859Subset) : data set ‘GSE5859Subset’ not found

try cloning the repo and installing the package as a source package.  you
could also try adding your github credentials in the call to install_github as
directed in the
To increase your GitHub API rate limit
Use usethis::browse_github_pat() to create a Personal Access Token.
Use usethis::edit_r_environ() and add the token as GITHUB_PAT.

Hello,
I have uninstalled and reinstalled R, Rtools and RStudio and I have installed package devtools. Again, I cannot proceed further and I get the error messages
library(devtools)
Error: package or namespace load failed for ‘devtools’:
.onLoad failed in loadNamespace() for 'pkgload', details:
call: loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]])
error: there is no package called ‘backports’

install_github("genomicsclass/GSE5859Subset")
Error in install_github("genomicsclass/GSE5859Subset") :
could not find function "install_github"
library(GSE5859Subset)
Error in library(GSE5859Subset) :
there is no package called ‘GSE5859Subset’

I have resolved the first step. Now the only problem is

install_github("genomicsclass/GSE5859Subset")
I get
Downloading GitHub repo genomicsclass/GSE5859Subset@master
Error: Failed to install 'GSE5859Subset' from GitHub:
System command 'Rcmd.exe' failed, exit status: -1, stdout + stderr empty

If you cloned the repo you have to have your R session setwd() to the folder where the clone was deposited.  Then do install.packages("GSE5859Subset", repos=NULL, type="source").  github and devtools are out of the picture once you have succeeded in cloning.  If you did not clone the repo but obtained a personal access token you will have to supply that token in your install_github call


Use custom derive macros for all derive functionality

This would replace #11 and #12.
The current detection of Debug can be kept as an ergonomic bonus, since std/3rd party derives using the variants of an open enum are unlikely to work correctly.
Design
The #[open_enum] macro declares an #[open_enum_variants = { Name0 = 0, Name1 = VALUE1, ... }] inert attribute on the emitted struct. This attribute is consumed by the derive macros declared in open_enum, so most will work whether the derive macro is interpreted before or after #[open_enum].
As done today, PartialEq and Eq are always implemented on open enums so they work in match.
These common derive macros work without interception:

PartialOrd
Ord
Hash

derive macros to consider, including additional nice-to-haves:

[ ]  ToStr - to a &'static str with the names. Override the name of undefined variants with #[unknown_variant_name = "UNKNOWN"]. When allow_alias is enabled, the first defined variant wins.
[ ]  Debug is captured specially today, this would still be captured and replaced with the open-enum derive.
[ ]  FromRepr - implements From<$repr> for the open enum. Only works when the repr is explicit
[ ]  TryFromKnownRep - implements TryFrom<$repr> for the open enum, checking for variants. Only works when the repr is explicit
[ ]  ToRepr - implements Into<$repr> for the open enum. Only works when the repr is explicit
[ ]  FromStr
[ ]  FromPrimitive - implements FromPrimitive, allowing only known variants.

[ ] Requires a #[from_known_only = $bool] attribute
[ ] Requires the optional num_traits = "0.2" feature

Alternative design: #[open_enum] implements an EnumInfo trait that contains the necessary info to implement everything.


未能实现替换参数，sql中文乱码

在使用slf4j输出日志时出现无法替换参数，mapper.xml中硬编码的中文出现乱码
在mybatis 配置文件中配置

slf4j 使用默认配置
参数无法替换，问题预测是未能读取到parameter
该配置下，preparing和parameter行在格式与stdout_logging不相同，致使没能正确读取相关的日志行

请问版本是否是 <IP_ADDRESS>2 呢？，中文乱码问题，麻烦参考一下这个试一下 https://www.cnblogs.com/lwcode6/p/11598632.html

请问版本是否是 <IP_ADDRESS>2 呢？，中文乱码问题，麻烦参考一下这个试一下 https://www.cnblogs.com/lwcode6/p/11598632.html

<IP_ADDRESS>2 可以配置preparing和parameter

<IP_ADDRESS>2 可以配置preparing和parameter

我安装的是<IP_ADDRESS>2 ，但是sql依旧是携带？号，并没有替换掉
好像就只读取了preparing行，parameters行没读到

我安装的是<IP_ADDRESS>2 ，但是sql依旧是携带？号，并没有替换掉
好像就只读取了preparing行，parameters行没读到

麻烦把你的日志发一份过来看看呢

麻烦把你的日志发一份过来看看呢

2021-01-14 09:28:24,337 DEBUG | main | c.c.d.b.d.c.DictionaryList | ==>  Preparing: SELECT update_time as updateTime , sort_index as sortIndex , create_user as createUser , remark as remark , f_code as fCode , create_time as createTime , sub_code as subCode , enable as enable , update_user as updateUser , id as id , value as value , del_flag as del_flag , name as name from tp_ba_dictionary WHERE 1 = 1 AND del_flag = 0 AND f_code = ? |
2021-01-14 09:28:24,374 DEBUG | main | c.c.d.b.d.c.DictionaryList | ==> Parameters: earlyWarningConf(String) |
2021-01-14 09:28:24,374  INFO | main | c.c.d.d.d.f.SQLFilter | statementExecuteBefore sql[SELECT update_time AS updateTime, sort_index AS sortIndex, create_user AS createUser, remark AS remark, f_code AS fCode  , create_time AS createTime, sub_code AS subCode, enable AS enable, update_user AS updateUser, id AS id  , value AS value, del_flag AS del_flag, name AS name FROM tp_ba_dictionary WHERE 1 = 1  AND del_flag = 0  AND f_code = ?] |
2021-01-14 09:28:24,402 DEBUG | main | c.c.d.d.d.f.SQLFilter | statementExecuteAfter sql[SELECT update_time AS updateTime, sort_index AS sortIndex, create_user AS createUser, remark AS remark, f_code AS fCode  , create_time AS createTime, sub_code AS subCode, enable AS enable, update_user AS updateUser, id AS id  , value AS value, del_flag AS del_flag, name AS name FROM tp_ba_dictionary WHERE 1 = 1  AND del_flag = 0  AND f_code = ?] |
2021-01-14 09:28:24,418 DEBUG | main | c.c.d.b.d.c.DictionaryList | <==      Total: 18 |
比如这种的，用SLF4J+logback进行日志输出，
mybatis配置的是
logback是使用默认的

2021-01-14 09:28:24,337 DEBUG | main | c.c.d.b.d.c.DictionaryList | ==>  Preparing: SELECT update_time as updateTime , sort_index as sortIndex , create_user as createUser , remark as remark , f_code as fCode , create_time as createTime , sub_code as subCode , enable as enable , update_user as updateUser , id as id , value as value , del_flag as del_flag , name as name from tp_ba_dictionary WHERE 1 = 1 AND del_flag = 0 AND f_code = ? |
2021-01-14 09:28:24,374 DEBUG | main | c.c.d.b.d.c.DictionaryList | ==> Parameters: earlyWarningConf(String) |
2021-01-14 09:28:24,374  INFO | main | c.c.d.d.d.f.SQLFilter | statementExecuteBefore sql[SELECT update_time AS updateTime, sort_index AS sortIndex, create_user AS createUser, remark AS remark, f_code AS fCode  , create_time AS createTime, sub_code AS subCode, enable AS enable, update_user AS updateUser, id AS id  , value AS value, del_flag AS del_flag, name AS name FROM tp_ba_dictionary WHERE 1 = 1  AND del_flag = 0  AND f_code = ?] |
2021-01-14 09:28:24,402 DEBUG | main | c.c.d.d.d.f.SQLFilter | statementExecuteAfter sql[SELECT update_time AS updateTime, sort_index AS sortIndex, create_user AS createUser, remark AS remark, f_code AS fCode  , create_time AS createTime, sub_code AS subCode, enable AS enable, update_user AS updateUser, id AS id  , value AS value, del_flag AS del_flag, name AS name FROM tp_ba_dictionary WHERE 1 = 1  AND del_flag = 0  AND f_code = ?] |
2021-01-14 09:28:24,418 DEBUG | main | c.c.d.b.d.c.DictionaryList | <==      Total: 18 |
比如这种的，用SLF4J+logback进行日志输出，
mybatis配置的是
logback是使用默认的

问题已经定位了，因为你这个日志在末尾有一个 | ，你可以先配置一下日志不要这个 “|”，将考虑在下个版本进行修复

问题已经定位了，因为你这个日志在末尾有一个 | ，你可以先配置一下日志不要这个 “|”，将考虑在下个版本进行修复

你好，针对于你当前项目的这种清空，我们做了初步的适配，麻烦请从这里下载 https://github.com/PerccyKing/batslog/releases/download/fix%2F<IP_ADDRESS>7_special/batslog-<IP_ADDRESS>7-special.zip
下载下来拖进idea里面就可以了
因为目前还没有找到一种直观的配置方式，所以决定单独开一个分支，后期新功能也会在这个分支上面同步更新，谢谢

你好，针对于你当前项目的这种清空，我们做了初步的适配，麻烦请从这里下载 https://github.com/PerccyKing/batslog/releases/download/fix%2F<IP_ADDRESS>7_special/batslog-<IP_ADDRESS>7-special.zip
下载下来拖进idea里面就可以了
因为目前还没有找到一种直观的配置方式，所以决定单独开一个分支，后期新功能也会在这个分支上面同步更新，谢谢

好的

好的

好的

好的

@dieterminator 你好，在这个版本上进行了bug(#8 )的修复，你可以在这里直接下载<IP_ADDRESS>0-special


Incompatible with CSS Scroll Snap

Problem:
Without CSS Scroll Snap enabled, Sortable items can be dragged to the edge of the screen to trigger scrolling in that direction. Once CSS Scroll Snap is enabled, this no longer works.
In the JSFiddle (which uses Vue.Draggable), try dragging item A to the right. You will see that you can pick up item A and drag it, but dragging to the right edge of the screen does nothing.
Now, comment out line 11 in the CSS (scroll-snap-align: center;), save, reload, and try again. Dragging A to the right edge of the screen triggers scrolling horizontally again.
JSBin/JSFiddle demonstrating the problem:
https://jsfiddle.net/okaybenji/tfam34er/

I dont think your HTML is structured right in that demo. The element that you make Sortable should have the sortable items as the immediate children. You have them wrapped in a "scroll-area" div that is becoming the only draggable div.

I've made the change you suggested here: https://jsfiddle.net/h2smxqzL/
It doesn't seem to have any impact, however.

Here's an even simpler, flatter example: https://jsfiddle.net/9weod5zn/
(The behavior is the same either way.)


Add docker-compose example

Would also make how I currently run it a bit nicer, since docker-compose will automatically restart the process when the machine is restarted.

image pull policy should be always when using docker-compose since it doesn't automatically update, and GitHub runners have aggressive update timelines.


Book subscriptions, improved heartbeats

add Len parameter to book subscriptions in API
simplify heartbeat threading model
improve test runtime speed
increased default shutdown timeout to 3 seconds (only affects process exit)

I see that you improved heartbeats, but what's the best way to recover from HB timeouts / other potential errors that might influence the socket? I'm  currently thinking of setting the ReconnectAttempts parameter really high, but that does not seem too good of a solution.
The client is running in a separate goroutine and I tried to panic and recover (start the same goroutine again) when the socket closes. It works, but I encountered a dramatic increase in CPU usage. I traced the problem to be related with this line: https://github.com/bitfinexcom/bitfinex-api-go/blob/master/v2/websocket/transport.go#L56.

Could you explain the issue you're having with socket recovery?
Reconnects are handled by the API in two ways: the websocket connection is terminated (network disconnect) or a subscription channel's heartbeat timed out (logical disconnect). in both of these events, if ReconnectAttempts is greater than 0 and AutoReconnect is true, the API will automatically reconnect for you.  For each reconnect failure, an internal counter increments until ReconnectAttempts are exhausted. In the event the API does successfully reconnect, the internal reconnect count is set back to 0 and the API may attempt its full reconnect cycle if another disconnect occurs.
If the API is unable to reconnect after making ReconnectAttempts tries, the API will shut itself down into a terminal state and the API object is unusable.  You must create a new API object in this event.
I don't recommend infinitely attempting reconnects, this will flood Bitfinex servers with reconnect attempts during outages.  Killing your process if the API cannot reconnect is a good practice. Monitoring your service with a process watchdog & restarting during failure events is a standard out-of-band solution.
If you are determined to infinitely reconnect using the API, you could create your own branch and change https://github.com/bitfinexcom/bitfinex-api-go/blob/master/v2/websocket/client.go#L341 to something similar to:
for ; c.parameters.ReconnectAttempts < 0 || c.parameters.reconnectTry < c.parameters.ReconnectAttempts; c.parameters.reconnectTry++ {

and configure your API with ReconnectAttempts less than 0.

Thank you for a really quick response. I omitted some parts, but the basic idea is this: https://gist.github.com/mlensment/33a160f6e6c6ced53a962fff4370d107
Clearly trying to reconnect every ~5 seconds when the outage is present is not viable, but I recon that after the initial reconnect sequence fails (ReconnectAttempts is exhausted), trying to connect every 10 minutes or so would be perfectly OK.
Since there is no two-tier reconnect mechanism built into the library, I went with panic/recover.
Generally I would like to avoid maintaining my own branch, but yes, it would be an option.


TypeError: lin_interpolation_2d() got an unexpected keyword argument 'dim'

Hi ,
I'm trying to use the build_softargmax_2d block in my own network,
but when compiling the model i get the following error
`---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
----> 1 model = get_model()
2 model.summary()
1 frames
 in get_model()
19     num_rows, num_cols, num_filters = K.int_shape(x)[1:]
20     sams_input_shape = (num_rows, num_cols, num_filters)
---> 21     sam_model = build_softargmax_2d(sams_input_shape, rho=0, name='sSAM')
22     sam_model.summary()
23     output = sam_model(x)
/content/deephar/deephar/models/blocks.py in build_softargmax_2d(input_shape, rho, name)
316         x = kl_divergence_regularizer(x, rho=rho)
317
--> 318     x_x = lin_interpolation_2d(x, dim=0)
319     x_y = lin_interpolation_2d(x, dim=1)
320     x = concatenate([x_x, x_y])
TypeError: lin_interpolation_2d() got an unexpected keyword argument 'dim'`
I traced the error like this
blocks.py --> build_softargmax_2d(....)  --> x_x = lin_interpolation_2d(x, dim=0) [line 318]
while  in layers.py -->lin_interpolation_2d(x, axis, vmin=0., vmax=1., name=None) [the function signature ].
How  to fix this ?

Replace "dim" with "axis"

thank you @PhenomenalOnee
can confirm that this worked!

This was also fixed in the source code. Thanks @PhenomenalOnee !


FRQ Associations

FRQ 1 (Arrays/Arraylists/2D Arrays)
By repeatedly accessing the various elements and comparing the diversity between two arrays, this FRQ assessed the participants' understanding and application of concepts like 1d and 2d arrays. Even if our project didn't explicitly use 2D arrays, the iteration portion of the fry was in line with the feature I created to compare users and determine whether they shared classes.

The repository is the List allPersons.As we had to iterate within the FRQ to find sums of the array along with testing the diversity of each array, findAll(); allows us to retrieve all users, which initiates the iteration process of going through each 1D array of the users to find the comparable classes. Even though we employed distinct cases, our PBL and CB FRQ set up and loop over various data sets while implementing the same array-based concept.
FRQ 2 (Classes)
This FRQ tested the ability to create a POJO and implement methods to create HiddenWord class which ultimately worked to match the key letters to a specific word with the symbols to indicate if the guess was accurate to reveal the hidden word. Within our project the POJO we created using the Person Class had the users roles, grade, email, and classes for their student profile.

Below we have the POJO variables being initialized through its constructor along with the test data for each user set in static data below, with data set through a hash map for the specific classes.

Classes are essential to PBL becuase they are the main structure with project which has helped especially in my FRQS on classes as it allows me to approach writing classes in similar ways I would if I was trying to create A POJO for my PBL which allows me to be more effiecne and fluent with these object s .
FRQ 3 (Method and Control Structures + 2D Arrays)
This question was testing the principles of a Sparse array by using array list to add to that specific array with different values in an array that mostly contained 0 known as sparse. Within our PBL project we didn't exactly use a 2D array however through our data sent within a JSON file we can compare to a 2d array through its similar structure of the adding data by each date (similar to a column) to each period similar to a row).
{ "stats": { "2024-02-07": { "period1": "stats", "period2": "csa", "period3": "calcab", "period4": "apes", "period5": "bio" } } }
Here that implementation is shown through the idea that on a given day this person has this class at this period which has a value of a specific class this can be used to sort people by classes such as ARTS, STEM to better connect others within the database. This is similar to having the sparse array and having to add data to to each row and column with a value such as the each day with each period and each class.
FRQ 4
This FRQ main purpose was use inheritance within the which is something we have been working on in PBL since the being of this trimester with the likes of the sorting project. Ultimately this was seen in our project through the extends within our JPA.

Here we use the extends method which is a parent to child relationship in java to inidacate that we are inheriting the specific fields and methods from the one class
Implements rather focuses on providing implementations for all the methods declared in that interface.
This is seen here within the PBL

FRQ REFLECTIONS
Completing this free-response question (FRQ) really challenged my understanding of Java arrays, which is an area I recognize I need to focus on improving. Part A was relatively straightforward, but I struggled with the syntax and formatting in structuring my code effectively. Part B, focusing on 2D arrays and traversing them, was familiar territory as it aligned with what I learned in trimester 1. However, in Part C, creating a Diverse array proved to be difficult due to somewhat confusing instructions, leading to extensive error testing. Overall, I realized I need more practice with advanced concepts related to arrays.
I found FRQ 2 to be where I experienced the most success. It assessed my ability to design a class with appropriate fields, instance variables, constructors for initialization, and methods for creating a matching game. However, I did need to refer back to previous lessons to fully grasp the implementation of a StringBuilder for assembling the correct variables to match the guess.
FRQ 4 tested my knowledge of ArrayLists and their implementation, particularly in appending and traversing through them. The challenging part for me was verifying if my methods were functioning correctly by testing the data. In Part B, dealing with a sparsed array and retrieving the actual value to remove proved to be the most challenging aspect.
FRQ 3 was undoubtedly the toughest FRQ for me. It delved into advanced Java concepts by exploring polymorphism between classes, which required significant time investment in reviewing lessons and watching videos to grasp thoroughly.
Regarding project-based learning (PBL), I believe it has been instrumental in teaching me how to integrate various Java skills seamlessly. However, I recognize the need to bridge the gap between syntax and conceptual understanding when tackling FRQs.

FRQs
FRQ 1:

Part A: The code correctly makes the arraySum function and shows understanding of for loops.
Part B: Shows understanding of using previously written methods and for loops, and indexing arrays.
Part C: Uses nested for loops effectively to compare elements and determine if the array is diverse. Returns the correct value indicating diversity.
Reflections: The reflections provide helpful insights into the problem and how it was approached, showing a strong understanding of the question overall.

Score: 0.9/0.9
FRQ 2:

General: The use of Scanner for user input testing is an interesting approach, allowing for exploration of Java concepts beyond the course curriculum.
General: The choice of StringBuilder over conventional String manipulation methods is intriguing, with a clear explanation provided.
The HiddenWord class constructor is well-implemented, with appropriate instance variables and constructor arguments.
Effective use of conditional statements to concatenate StringBuilder, demonstrating a solid understanding.
Reflection: Insightful reflection on memory efficiency and the immutable nature of strings, along with an interesting suggestion to add interactivity to the program.

Score: 0.9/0.9
FRQ 3:

General: The inclusion of the addEntry method aligns well with the example code, providing an insightful enhancement to the program.
Part A: The for loop effectively locates the matching element in the entries ArrayList, with the conditional statement implemented insightfully.
Part B: The addition of the toString method to SparseArrayEntry facilitates easy printing and testing, although in the context of the problem, it's advisable to refrain from altering the template code.
Part B: The use of the iterator pattern to manipulate values within the entries ArrayList is commendable, meeting all requirements of the problem.
Reflection: Insightful reflection on the challenges encountered during problem-solving adds depth to the discussion.

Score: 0.85/0.9
FRQ 4:

Part A: Main initializes an IntegerList object, group1, with values [23, 21], then checks if 23 is present (returns true) and if 4 is present (returns false). IntegerList implements NumberGroup interface, overriding contains to check for number presence.
Part B: Main instantiates a Range object, range1, with range -13 to 11, then checks containment of -23 (false), 2 (true), and 10 (true). Range implements NumberGroup, determining if a number falls within the range.
Part C: Main creates a list of NumberGroup objects, adds three Range objects, then creates MultipleGroups object, multiple1, with these groups. multiple1.contains() checks if 6, 1, and 9 are within any of the ranges, returning results accordingly. MultipleGroups implements NumberGroup, iterating through groups to check containment.
Reflection: The code effectively defines classes to check if a number is within certain ranges or lists of numbers, showing how to group numbers and check their presence efficiently.

Score: 0.85/0.9
Connections:

Used existing examples from project code. Unfortunately, there is no example given for FRQ 3 at the time of this grading. I can see that the other 3 types of FRQs were used.

Score: 3.3/3.6

CSA 2015 FRQ
Grades

FRQs
3.5/3.6

Associations
3.3/3.6

Total
6.8/7.2


s3 should support all credential types (machine, profile, env, keys, etc)

Currently, looking at the source code, you have to specify keys or a profile.  If I'm running this on an ec2 instance, I should be able to use the role attached to the machine to get my permissions.
Submitting this here as a place holder, but will try to get a better credential system implemented so it is flexible.

#46 will support this piece.

#46 was merged. Closing this.


Deploying on a GKE cluster - Do I need my nodes to have public ips?

Hey all!
I followed the guide to deploy on the Kubernetes (GKE) and used the helm-chart-values provided here.
After the successfully deploying, I ended up with the following exposed resources:

1x ingress for reaching livekit api on https://livekit.something.com with a public ip and a valid certificate (used letsencrypt)
1x loadbalancer exposing TURN on 443 on https://turn-livekit.something.com with a public ip and a valid certificate (used letsencrypt)

Tried to run the livekit connection tester, and it connects successfully to the server, but then everything else fails.
I'm fairly new to WebRTC and after searching a lot through livekit's documentation I was unable to find more information about this.
So my questions are:

Do my nodes need to have public IPs for this deployment to work?
If so, how can I deploy livekit on a cluster with private-nodes?

My livekit.yaml configuration:
replicaCount: 2
livekit:
  keys:
    <redacted-key>: <redacted-token>
  port: 7880
  log_level: info
  rtc:
    use_external_ip: true
    port_range_end: 60000
    port_range_start: 50000
    tcp_port: 7881
  redis:
    address: redis-headless.redis:6379
  turn:
    enabled: true
    domain: turn-livekit.something.com
    tls_port: 3478
    secretName: turn-livekit-tls
    loadBalancerAnnotations:
      external-dns.alpha.kubernetes.io/hostname: turn-livekit.something.com

loadBalancer:
  type: gke
  tls:
    - hosts:
        -  livekit.something.com
      secretName: livekit-tls

autoscaling:
  enabled: true
  minReplicas: 1
  maxReplicas: 5
  targetCPUUtilizationPercentage: 60

resources:
  limits:
    cpu: 300m
    memory: 500Mi
  requests:
    cpu: 300m
    memory: 500Mi

Below is the livekit connection tester logs:
Connecting to signal connection via WebSocket

Connected to server, version 1.1.2.

Establishing WebRTC connection

WARNING: ports need to be open on firewall in order to connect.

ERROR: could not connect after timeout

Can connect via TURN

ERROR: could not connect after timeout

Can publish audio

ERROR: could not connect after timeout

Can publish video

ERROR: could not connect after timeout

Resuming connection after interruption

WARNING: could not connect after timeout

FAIL

hi @calexandre, yes your instances will need public IP addresses in order for WebRTC to be able to connect. WebRTC connections cannot be load balanced.


Crash when opening FilePicker

Describe the bug
When user opens a FilePicker he gets the crash with the following error message:
System.Runtime.InteropServices.COMException: Feil parameter [0x80004005] ---> System.Runtime.InteropServices.COMException: GetDisplayName failed [0x80070057]
   at Avalonia.Win32.Win32Com.Impl.__MicroComIShellItemProxy.GetDisplayName(UInt32 sigdnName)
   at Avalonia.Win32.Win32StorageProvider.GetAbsoluteFilePath(IShellItem shellItem)
   at Avalonia.Win32.Win32StorageProvider.<>c__DisplayClass13_0.<ShowFilePicker>b__0()
   --- End of inner exception stack trace ---
   at Avalonia.Win32.Win32StorageProvider.<>c__DisplayClass13_0.<ShowFilePicker>b__0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Avalonia.Win32.Win32StorageProvider.<OpenFilePickerAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Grunt.OutputAdapters.PowerPoint.UI.FileLocator.<Locate>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Grunt.UI.Services.ChangeDataConnectionGroupFilePathService.<Change>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Altua.Library.Asynchronous.Async.RunTaskInBackground[TResult](Func`1 func)
   at Grunt.UI.Commands.ChangeDataConnectionGroupFileCommandHandler.Execute(ChangeDataConnectionGroupFileCommand command, ICommandContext ctx)
   at Altua.Oak.Core.Behavior.TrackMetricsCommandDecorator`1.Execute(TCommand command, ICommandContext commandContext)
   at Avalonia.Threading.DispatcherOperation.InvokeCore()
   at Avalonia.Threading.DispatcherOperation.Execute()

To Reproduce
Sadly no repro
Environment

OS:Windows

@Takoooooo I haven't seen this on Windows 11 or 10 ever 🤔 Is this an older Windows version?

There is precedent issue https://github.com/AvaloniaUI/Avalonia/issues/3272
HRESULT 0x80070057  meaning invalid parameter.
The following line probably failed because IShellItem does not have a valid file system path. See docs.
https://github.com/AvaloniaUI/Avalonia/blob/0567a6dbe7dc122ba90e019320708e0cbc51b635/src/Windows/Avalonia.Win32/Win32StorageProvider.cs#L196C85-L196C85
We should probably use System.ItemFolderPathDisplay


Support FastHTTP as well

FastHTTP is a much faster HTTP library for Go.
Echo v2 already supports it.
It'd be nice to have it in other frameworks as well.

FastHTTP is a great project in terms of speed and memory allocation but it will not be supported for the moment (maybe for a v2). Lion is centered around lion.Handler interface and is built for net/http.


[ReleasePR Microsoft.Azure.Management.Automanage] Microsoft.Automanage SDK for 2020 06 30 preview

Includes the SDK Release for Microsoft.Automanage, tested and validated client.  Inlcudes recorded results, works great.
Target release date 09/21/2020
OpenAPI Spec already completed here : https://github.com/Azure/azure-rest-api-specs/pull/10344

Swagger / OpenAPI link - https://github.com/Azure/azure-rest-api-specs/pull/10344

Hi Allen, I cannot get generate.ps1 to work, so I generated my code directly from npm using AutoRest...
I'm not sure where / how to get a metadata.txt file in this case (I don't have the cmdlet needed, Start-AutoRestGeneration)

✔Add a link to the openapi spec review PR in description
😮Check in the metadata TXT file generated when you run generate.ps1(details)
✔Update versions in csproj and assemblyinfo.cs (missing) if you are going to release
✔I don't believe you need any Package reference in src.csproj. Please remove and compile again to verify.
✔Assembly/Package name casing is off. The proper casing is Microsoft.Azure.Management.AutoManagement. This should be corrected everywhere.

I believe the casing needs to get updated everywhere including *.csproj file name, *.sln file name and directory name
Still not seeing the metadata.txt file

Metadata file was added and all casing fixed. Anything else we need for this one?
Trying to get it in for an ignite week release.
Sent from Outlook Mobilehttps://aka.ms/blhgte

From: m-nash<EMAIL_ADDRESS>Sent: Wednesday, August 26, 2020 1:12:16 PM
To: Azure/azure-sdk-for-net<EMAIL_ADDRESS>Cc: Stephen Owen<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Azure/azure-sdk-for-net] [ReleasePR Microsoft.Azure.Management.Automanage] Microsoft.Automanage SDK for 2020 06 30 preview (#14486)
I believe the casing needs to get updated everywhere including *.csproj file name, *.sln file name and directory name
Still not seeing the metadata.txt file
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-sdk-for-net%2Fpull%2F14486%23issuecomment-681010716&data=02|01|Stephen.Owen%40microsoft.com|db48aadc28654d227ede08d849e32eee|72f988bf86f141af91ab2d7cd011db47|1|0|637340587376686239&sdata=v5wmpT%2FpclIRAtvDgC08TUFeBS2T6GekL74pQK9jE60%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAQTVM34R3NWNLJNK4K2KZT3SCU67BANCNFSM4QIEHR7A&data=02|01|Stephen.Owen%40microsoft.com|db48aadc28654d227ede08d849e32eee|72f988bf86f141af91ab2d7cd011db47|1|0|637340587376686239&sdata=HnkwS6ElBkHRh5l7BR6adflJ8cxNLJ7fx0kKOBTJq%2F0%3D&reserved=0.

/azp run net - mgmt - ci

Thanks @allenjzhang , tried merging with upstream as I saw some PRs that looked relevant for fixing build issues, but I am still failing with in the build pipelines
 "D:\a\1\s\mgmt.proj" (RunTests target) (1) ->
                   "D:\a\1\s\sdk\automanage\Microsoft.Azure.Management.AutoManage\tests\Microsoft.Azure.Management.AutoManage.Tests.csproj" (default target) (140:10) ->
                   (ResolvePackageAssets target) ->
                     C:\Program Files\dotnet\sdk\3.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(234,5): error NETSDK1005: Assets file 'D:\a\1\s\artifacts\obj\Microsoft.Azure.Management.AutoManage.Tests\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v3.1'. Ensure that restore has run and that you have included 'netcoreapp3.1' in the TargetFrameworks for your project. [D:\a\1\s\sdk\automanage\Microsoft.Azure.Management.AutoManage\tests\Microsoft.Azure.Management.AutoManage.Tests.csproj]

Assembly/Package name casing is off. The proper casing is Microsoft.Azure.Management.AutoManagement. This should be corrected everywhere.

@allenjzhang -- The name of our service is Azure Automanage. We had this name reviewed by LT, marketing etc... The name and the case are based on the documentation in the Microsoft Cloud Style Guide.
To be clear, automanage is a single word, so it is capitalized as Automanage. This is compared to something like virtual machine, capitalized as VirtualMachine or guest configuration, capitalized as GuestConfiguration.
This PR has completed, and it is my understanding that we are already past the window for any changes that can go into the soonest build. This means that our product is forever stuck with this badly capitalized name.
Is there any way we can correct the name and still get in the next SDK release, i.e. the release that will be available in time for Ignite?


Edit Source

Hey, unsure if this is in the plugin presently (let me know if I'm wrong, I cannot find how), but it'd be really helpful to be able to "edit source" on this widget.  So for example, to be able to edit it as the html source itself so I can add custom classes, javascript, html etc.
If I'm missing how, please let me know.  If not, I suggest that as a future feature!

I think this would be a nice feature to have!
Will implement this in the near future.

After looking into this one for some time, I actually think it won't be a good idea to have this.
If you add some content or tags that tiptap doesn't know how to handle, it usually just strips it out. Thus making it easy to accidentally remove old content.
An idea could be an extension that allow to paste HTML/Javascript snippets.


[ISSUE #3655] Add alert-template-sqlmap unit test

Hi, community
I have finished unit test "Add alert-template-sqlmap unit test".
see Issues Add admin mapper unit test.
please review code.

Please change the feature of PR title to [issue #3655], and change the commented about #3655

Codecov Report

Merging #3664 (6e20c0a) into master (5bee112) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #3664      +/-   ##
============================================
- Coverage     62.43%   62.36%   -0.07%
- Complexity     5924     5936      +12
============================================
  Files           903      908       +5
  Lines         24952    25017      +65
  Branches       2283     2286       +3
============================================
+ Hits          15578    15602      +24
- Misses         7928     7964      +36
- Partials       1446     1451       +5

Impacted Files
Coverage Δ

...henyu/plugin/logging/kafka/LoggingKafkaPlugin.java
22.72% <0.00%> (-72.73%)
:arrow_down:

...ache/shenyu/plugin/grpc/cache/GrpcClientCache.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...controller/ShenyuClientHttpRegistryController.java
77.77% <0.00%> (-22.23%)
:arrow_down:

...n/logging/kafka/body/LoggingServerHttpRequest.java
0.00% <0.00%> (-20.00%)
:arrow_down:

...gin/logging/kafka/kafka/KafkaLogCollectClient.java
34.69% <0.00%> (-18.37%)
:arrow_down:

...yu/sync/data/http/refresh/AbstractDataRefresh.java
68.96% <0.00%> (-13.80%)
:arrow_down:

.../plugin/logging/kafka/entity/ShenyuRequestLog.java
86.20% <0.00%> (-13.80%)
:arrow_down:

...ruptor/RegisterClientServerDisruptorPublisher.java
52.94% <0.00%> (-11.77%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (-10.72%)
:arrow_down:

...che/shenyu/sync/data/http/HttpSyncDataService.java
81.63% <0.00%> (-8.17%)
:arrow_down:

... and 67 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 5bee112...6e20c0a. Read the comment docs.


[NG] Fix stack view overflow-y issue with Angular universal

When using stack-view with angular universal, there is an error with the animation because overflow-y is not a supported CSS property for animations. This moves it from the animation to CSS.
Signed-off-by: Alyssa Brunswick<EMAIL_ADDRESS>

Thanks @alyssabrunswick for the contribution, we'll have to take a closer look at why the visual diff test is failing from this change.

@alyssabrunswick: Could you please rebase on master? Rebasing on master should fix the visual diff issue.

I rebased on master. Thanks!


[Release-1.25] - --etcd-disable-snapshots flag usage leads to unexpected behavior

Backport fix for --etcd-disable-snapshots flag usage leads to unexpected behavior

#8031

Validated on release-1.25 branch using commit id fdc7485ca4b4716bdbeead18c205fcff765ef9e1
Environment Details
Infrastructure
Cloud EC2 instance
Node(s) CPU architecture, OS, and Version:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"

Cluster Configuration:
Single node
Config.yaml:
$ cat /etc/rancher/k3s/config.yaml
cluster-init: true
etcd-disable-snapshots: true
etcd-s3: true
etcd-s3-access-key: 'KEY'
etcd-s3-secret-key: 'SECRET'
etcd-s3-region: 'REGION'
etcd-s3-bucket: 'BUCKET'

Steps to reproduce

Copy config.yaml
Install k3s
Take a snapshot passing s3 params
Stop k3s service
Restore the snapshot passing s3 params
Start k3s service
Verify the cluster is up and running

Replication results:
$ k3s -v
k3s version v1.25.12+k3s1 (7515237f)
go version go1.20.6

FATA[0009] starting kubernetes: preparing server: start managed database: etcd: snapshot path does not exist: on-demand-ip-172-31-15-87-1692400560

Validation results:
$ k3s -v
k3s version v1.25.12+k3s-80e1c74a (80e1c74a)
go version go1.20.6

INFO[0020] Managed etcd cluster membership has been reset, restart without --cluster-reset flag now. Backup and delete ${datadir}/server/db on each peer etcd server and rejoin the nodes

After restore
$ kubectl get nodes
NAME              STATUS   ROLES                       AGE     VERSION
ip-172-31-6-153   Ready    control-plane,etcd,master   7m54s   v1.25.12+k3s-80e1c74a


Add function to immediately change topic

The #103 got rejected, because you can sort of change topic with setting the topic attribute. But then, you need to wait until attributes get synced to make your changes appear, or you need to do Channel.sync("topic", "new topic"). I want you to reconsider that, pleeeease.

When changing the topic, a message has to be sent to the server and processed by the server. When the message will be sent depends on rate limiting/message queues. If we changed our internal representation of a channel before the server actually changed the topic, we'd be returning incorrect data.

@dominikh Doesn't change the fact, that the topic isn't changed immediately. Is there no way to force bot to change the topic immediately after calling the command?

No. All message sending goes through the same rate limiting logic, to avoid sending too many messages in a too short timeframe, which would get the bot kicked from the server.

This has nothing to do with synchronisation, and calling Channel#sync won't change this, either. The moment you call Channel#topic=, a message will be queued. When that message will be sent depends on how many other messages are being sent at the moment.

@dominikh So we need a way to force immediate topic change, on the responsibility of a bot hoster. I don't care, if I get booted from my server, it's only my problem, I don't want to be restrained by a freakin' framework!

Then don't use the freaking framework. Plenty of libraries provide no rate limiting whatsoever, and I'm sure some even make it optional.
As for Cinch, this is not a feature I am currently considering. You can theoretically disable/circumvent the rate limiting by setting the "messages_per_second" option to a very high value. But this will apply to all messages, not just channel topic changes. I'm not intending to add more APIs to make the rate limiting selective.


Fixes for Cython 0.27

Based on #5390 and trying to fix remaining issues. While it seems to be ok on py2, py3 for whatever reason tries to say kivy.graphics.instructions isn't available (it is actually ô_ô). Perhaps the error means I'm not on the right track?

Note how it says kivy.graphics.instructions., with a dot at the end. Maybe that is the problem?

Note that in CPython 3.5 and later, Cython now follows PEP 489 to improve the behaviour of module code. It is now very similar to Python modules, which also impacts relative imports, for example. Might be related.

FYI, 0.27.1 will disable PEP-489 support again. It has proven to cause too much instability on user side.

@scoder thanks for notifying! However, I guess you'd like to get it going asap? If that's the case, it's quite an issue for us. :)

I guess you'd like to get it going asap?

I guess you mean that we'd re-enable PEP-489? At some point, sure, but probably as an opt-in, or at least with safer defaults. Module reloading, for example, might not be allowed without user interaction.
You can try the latest Cython master branch, it's essentially 0.27.1 already.

Note that I would still recommend using proper relative imports (from . import xyz) in your modules, and preferably also from __future__ import absolute_import. It's cleaner and also faster, because it avoids relative directory searches for globally installed modules.

@scoder I agree we need to fix it, I was just confirming the tests pass again i.e. that it's the PEP489 we had an issue with (I somewhat doubt it).
@matham I changed fromlist to fromlist='*' which apparently fixed our issue with the new stable Cython version. We tend to limit exported symbols with __all__, however it's ignored all the same, therefore it shouldn't do much harm. I'm rather curious what exactly did it change for Factory because I'm apparently missing the result as the imports work the same:
Layout = __import__(name='kivy.uix.boxlayout', fromlist='*').Layout
Layout = __import__(name='kivy.uix.boxlayout', fromlist='.').Layout
import kivy.uix.boxlayout as b; Layout = b.Layout

although Layout isn't present in the __all__.

Anyone anything against? Tested with buildozer and seems to work fine.

\o/


Tighten the security on the podman varlink socket

We only want root to be allowed to access this socket.
Also move socket to /run/podman directory.  This requires
us to drop a podman.conf tmpfiles.d file.
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

@mheon @jwhonce @umohnani8 @TomSweeneyRedHat @baude PTAL

LGTM

@wking I want to get this in, so I am going to merge, and work on the man page in a separate pr.
@rh-atomic-bot r=mheon

@wking I agree, we want to setup some simple RBAC mechanism that would check the remote end of the connection and have a config file.  Perhaps with read/only amd manage access.
Then you could allow for non privileged users to use the socket.  But we could look at this in future PRs.


Missing Middleware for Proof-of-Authority Chains in Ape Polygon Plugin

Description:
I encountered an error while trying to use the ApeWorx Polygon plugin. The error message suggests that the plugin is not handling Proof-of-Authority (POA) chains properly due to missing middleware.
Error Details:
(BlockNotFoundError) Missing latest block.
Reason: The field extraData is 100 bytes, but should be 32.
It is quite likely that you are connected to a POA chain.
Refer to http://web3py.readthedocs.io/en/stable/middleware.html#proof-of-authority

The error seems to indicate that the necessary middleware for handling POA chains has not been injected correctly.
Steps to Reproduce:

Install the ApeWorx Polygon plugin using pip install ape-polygon.
Attempt to connect to the Polygon network using the plugin by running:
ape run deploy --network polygon:amoy:alchemy
Observe the error when fetching the latest block.

Expected Behavior:
The plugin should inject the necessary middleware to handle POA chains, similar to what Web3.py’s middleware does for POA networks.
Actual Behavior:
The plugin fails with a BlockNotFoundError due to the extraData field being 100 bytes instead of the expected 32 bytes, indicating missing middleware support for POA chains.
Environment:

eth-ape: 0.8.15
ape-polygon: 0.8.0
Python Version: 3.10.12
Operating System: Ubuntu 22.04.4 LTS

Additional Context:
The error occurs when interacting with a Proof-of-Authority chain like Polygon. According to the Web3.py documentation, the missing middleware should handle the extraData field for POA networks by adjusting its size appropriately.
Thank you for looking into this!

Might need to wait on 0.9 as this requires web3.py v7

Hi @bitwise-constructs ,
Did you mean waiting on eth-ape version 0.9?

@moses966 correct, the current 0.9 branch raises a lot of pins including web3 https://github.com/ApeWorX/ape/tree/feat/0-9

The issue is actually in the provider (ape-alchemy):
https://github.com/ApeWorX/ape-alchemy/blob/main/ape_alchemy/provider.py#L116-L122

amoy's chain ID just needs to be added to that list.

Also, we should make ape-alchemy behave like ape-node where if it encounters this error, it will automatically add the middleware as well:
https://github.com/ApeWorX/ape/blob/main/src/ape_ethereum/provider.py#L1511-L1530

The issue is actually in the provider (ape-alchemy):
https://github.com/ApeWorX/ape-alchemy/blob/main/ape_alchemy/provider.py#L116-L122

Quicknode too


toJS() func not working anymore in<EMAIL_ADDRESS>

Please check toJS func in<EMAIL_ADDRESS>

Hi @daoquangphuong
Seems to work for me
http://jsbin.com/mubucizope/1/edit?js,console
What's exactly failing?
Cheers,
Javi

ok. i have one<EMAIL_ADDRESS>with event:
var store = new Freezer({})

socket_client.on('updateStore', function (data) {
    // add clone data in this line
    var state = store.get();
    Object.keys(data).forEach(function (name) {
        state = state.set(name, data[name]);
    })
});

store.on('update',function(){
       console.log(store.get().toJS()) // <- working
       console.log(store.get().a.toJS()) // <- toJS func is undefined in here
})

and i emit from server:
socket_server.emit('updateStore',{a:{b:'c'}})

/////
working normal in my chrome browser.
but not working in node-webkit v 0.12.3 base on Chromium 41.0.2272.76
if i downgrade to<EMAIL_ADDRESS>-> woking normal
or clone data before set in store: data = JSON.parse(JSON.stringify(data)) -> woking normal

I suspect that store.get().a is not a plain JS but an instance of some class.
Try to create your store like:
var store = new Freezer({},{freezeInstances: true});

That should parse class instances and add freezer methods to them.


body.setCircle offsets

The offset parameters in body.setCircle appear not to work. No matter what I set the values to, the debug hit boxes shown are the same.
sprite.body.setCircle(32, 100, 300);
Tried in version 2.7.3.

Works for me: http://codepen.io/samme/pen/GWGobN


How to Accelerate All Windows in Windows？

sharedgl can accelerate applications use opengl. If I want to accelerate all Windows in Qemu Windows, how to implement？

I believe accelerating the entire system will require implementing a render-only / full graphics WDDM driver (see here). I haven't done much experimentation with implementing a WDDM driver yet, but you can look through the following sources to get an idea of how you could implement a render-only driver:

VirtIO GPU: Pull request for adding a proper graphics driver for VirtIO GPU on Windows
Raspberry Pi 2 Render-only Sample: A WDDM render-only driver implemented for the VC4 GPU

Note that there are a handful of existing display-only drivers aswell, which can serve as good starting points aswell (just know that you will have to implement all the render-specific DDIs on top of the existing display-specific DDIs):

VirtIO GPU DOD: VirtIO's display only driver
QXL DOD: QXL's display only driver

You most likely will need to write an additional usermode driver as well, but you can look at Mesa's d3d10umd or the VC4 source for that. You may also want to take a look at the source for IVSHMEM on acquiring the shared memory device, which in this case should act as the GPU device.
I am open to contributions, so feel free to send a pull request if you make any progress. If I ever make any progress on implementing a WDDM driver (no promises), I'll be sure to update this project to include it.

I believe accelerating the entire system will require implementing a render-only / full graphics WDDM driver (see here). I haven't done much experimentation with implementing a WDDM driver yet, but you can look through the following sources to get an idea of how you could implement a render-only driver:

VirtIO GPU: Pull request for adding a proper graphics driver for VirtIO GPU on Windows
Raspberry Pi 2 Render-only Sample: A WDDM render-only driver implemented for the VC4 GPU

Note that there are a handful of existing display-only drivers, which can serve as good starting points (just know that you will have to implement all the render-specific DDIs on top of the existing display-specific DDIs):

VirtIO GPU DOD: VirtIO's display only driver
QXL DOD: QXL's display only driver

You most likely will need to write an additional usermode driver as well, but you can look at Mesa's d3d10umd or the VC4 source for that. You may also want to take a look at the source for IVSHMEM on acquiring the shared memory device, which in this case should act as the GPU device.
I am open to contributions, so don't hesitate to send a pull request if you make any progress. If I ever make any progress on implementing a WDDM driver (no promises), I'll be sure to update this project to include it.

Thank you for your reply. I have another question I would like to ask you. VirtualBox also has a display only driver, but it is smoother than the DOD driver of QXL. Do you know why?

I think QXL appears choppier due to a hardcoded limitation in QEMU, not QXL itself. The frame rate of QEMU is artificially capped to around ~33 FPS, so it won't appear as smooth.
I am not well-versed with VirtualBox, but it does appear that they offer a WDDM driver with rendering capabilities, which may potentially contribute to smoothness aswell, if 3D acceleration is enabled.


Native ARM build for macOS

Currently waiting for GitHub actions to support this.

As a temporary solution I will build the arm versions manually on my system.

This is now fixed with the new GitHub M1 runners


Undo Matt's changes

We are currently unsure for the reason for these changes and it does brake profiling data as when pushing a double to std::to_string we get it formatted to 6 decimal places and this brakes the parsing.

LGTM - needs more investigations


Publish to Gradle Plugin portal

More details over here:
https://plugins.gradle.org/docs/submit

As of today, it is published on the Gradle Plugin portal.
https://plugins.gradle.org/plugin/com.infinum.collar


Qualification tool: Parse expressions in FilterExec

This contributes to https://github.com/NVIDIA/spark-rapids/issues/5617 .
In this PR we parse expressions which are in FilterExec. It supports NOT/AND/OR within the Exec. With this PR, if there are expressions which are not supported by the plugin, then FilterExec is updated as NOT SUPPORTED in the plugin. This PR doesn't update the scores based on expressions.
Added test for non-supported expression. For supported ones, the current tests should be sufficient.

build

build


Settings reset on relog/reload and request for slight visual improvements

Heya, thanks for updating this addon. Its nice to see it working again.
Noticed a small issue, every time i relog or reload my UI the settings are reset to default. I usually keep the window on the right closed and  set to display the spell stats. If i reload it goes back to melee stats and the window is showing up. It also seems to reset the options from the settings inside Interface>addons.
Also got a small request, is it possible to reduce the space between the lines slightly? Like 1-2px so the bottom line isnt this close to the weapon icons?

Would love if it was showing the % hit and haste instead of the rating, not sure why the original author did it this way.

I actually found a quick fix for the first "issue" i listed. In CharacterStatsWrathUI.lua i changed line 86 to 14 (default 15) and it looks better now.

Feel free to submit a PR with you change.

Thank you for detailed report.
Both points are fixed. Release will be in 1-2 days.

Thanks and im not that familiar how PRs work. It was just a number change.


feat: Added feature to filter stats at a glance by user type

Implemented feature to allow super admins to filter stats at a glance by user
permissions (only hackers, admin, etc).
BREAKING CHANGE: Changed configuration of GeneralStats data type and data
returned by /api/stats
resolves #115
UPDATE: Added required changes. Currently, non check-in hackers are classified in Stats at a Glance as "Illegal Hacker" (because it is shorter than Non Check-in), but there are likely better name for this category.

Add filter for "Checked in"

"illegal hackers" includes admins and super admins, who usually don't check in anyways. We can drop that category completely.

Add a "Checked in" option under "Filter Stats by"

Currently, "Hacker" represents checked-in hackers (non check-in hackers are completely ignored in the backend). Unless I misunderstood the intention, I can rename the "Hacker" to "Checked-in Hacker" if necessary.

The issue with this PR is that we've switched to Nivo, so there's like hella conflicts uhhhhhhhhhhhhhhhhhh @DedsecKnight idk if you want to reimplement this in Nivo with a new PR or just fix the conflicts in this one (but the first might be easier)

Closing this issue due to the fact that we completely changed the library that was used for this PR and thus making hella merge conflicts


Poi: Add interface to get and format full address

Closing this in favor of https://github.com/QwantResearch/erdapfel/pull/676


Use path.resolve in outputformatters

As discussed in #38, using path.resolve() instead of path.join() when determining where to write the output file.

Currently a draft, for example I'm wondering if some of the tests should be updated to use resolve() instead of join().  Searching for usage of path.join, I see line 41-53 in markdownlint-cli2-test-cases.js that could be updated.  And some kind of test case for an absolute path as well.

The test case use of join you call out should be fine. This scenario will need a new test. See my comment in the issue for suggestions. Please make sure the test fails without your fix (validates the test).

Your change is now in next branch as https://github.com/DavidAnson/markdownlint-cli2/commit/70e580232ba4c58c994fb124f8d82573f819d129, thanks!


Temporarily disable ThreadSafeCachingTests during testing.

I believe I have a fix in https://github.com/apple/swift/pull/7797
but need to run it a few times on Linux before merging.
rdar://problem/30729901

@swift-ci Please smoke test and merge


[Bug] [api] admin can't see dependent task's dependent on process name but only code

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
admin can't see dependent task's dependent on process name but only code , if I use a normal user , all is ok.
both in version 2.0.5\2.0.6

What you expected to happen
admin can see dependent task's dependent on process name
How to reproduce
use admin user to see a project's process which not belong to admin
Anything else
No response
Version
2.0.6
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

This has been fixed in version 3.0.0. #8922


Feature request: Using defvjp for functions with kwargs

Right now, defvjp doesn't seem to support overriding the vjp operation for functions that take in kwargs. Specifically, the following piece of code fails:
@jax.custom_transforms
def f(x, y=3.):
  return x + y

def vjp_x(g, ans, x, y=3):  # Arbitrary function for overriding.
  return g *(ans + x + y)

jax.defvjp(f, vjp_x)
grad_fn = jax.grad(f)
grad_fn(0., y=4.)

giving the following error message
File ".../python3.7/site-packages/jax/linear_util.py", line 161, in call_wrapped
    ans = self.f(*args, **dict(self.params, **kwargs))
TypeError: __call__() got an unexpected keyword argument 'y'

This works with the replacement to custom_transforms (which is long gone at this point). See https://jax.readthedocs.io/en/latest/notebooks/Custom_derivative_rules_for_Python_code.html
import jax
from jax import numpy as jnp
from jax import custom_vjp

@custom_vjp
def f(x, y):
  return x + y

def f_fwd(x, y):
# Returns primal output and residuals to be used in backward pass by f_bwd.
  return f(x, y), (jnp.cos(x), jnp.sin(x), y)

def f_bwd(res, g):
  cos_x, sin_x, y = res # Gets residuals computed in f_fwd
  return (cos_x * g * y, sin_x * g)

f.defvjp(f_fwd, f_bwd)

grad_fn = jax.grad(f)
print(grad_fn(0., y=4.))


Slate AX Custom Bypasses Failed

I recorded a video here:
https://share.getcloudapp.com/DOudpyr8
Also, click download log, and config fails.

I didn't update the app with the current nginx root level, it's different from the Pi, after clicking the button, visit <IP_ADDRESS>/spdlogs.tar.gz
Ill release a hot fix soon.

Regarding the bypass app, I don't have access to my Mac, does it work with Chrome/FF?

Fixed with HR1 release, reopen if the issue persists.
Thanks for the report.


Set Goal NateEmerson:Write

What is your goal?
Write every day for 30 minutes.
Steps to achieve the goal (not required)

[ ] Write

[ ] Daily

[ ] For 30 minutes

Do you have a target date for this? If yes, write below
2023-01-01
What will you achieve by completing this goal?
I will write more
Additional context
I want to write more

@nateemerson Reminder to continue the challenge (Sep21)

Updated in 1f0e00c31146a5d2bd38e886eba97ad1be065b2e. Already failed on day #1 but I'm not stopping! Might have to lower the bar a bit though..30 minutes straight of writing is longer than it sounds!

Update: 30 minutes is much more difficult than I thought! I might pivot my goals a bit and try for 3x 10min chunks every day so I can gauge my success on a scale of 0-3 pts each day. That way I can adjust my goal to be "15-18 points / week" to allow myself to miss a day or two.

Hi @nateemerson
The target of this goal is 2023/01/01.
I hope you achieve your goal.
Can we close this issue?

I did not achieve this goal w/ the initial scope, but I did challenge myself and learn through the process!

Welldone @nateemerson
It's okay to start over if that is okay with you.


2D detector

Thanks for your excellent work and sharing source code with us.
Since the performance is highly dependent on the 2D-detector, I am curious whether you can provide the 2D detection results on test set. I will be very appreciated if you can share the 2D detector on test set with us :)

Could you please provide the 2D detection results on test set or the 2D detection algorithm you use?

We will not publish test set results directly. This may cause unfair comparison for others, someone may directly submit the results to the 2D detection benchmark. The results on the validation set are okay because they will not undermine the fairness of this research community and can help others to reproduce our results. If you want to use our model on the test set, you need to train the 2D detector by yourself. About the details of the 2D detector, you can refer to the supp of this CVPR paper: Frustum PointNets for 3D Object Detection from RGB-D Data, cvpr18.


Drop Net::SSH::Gateway dependency

The Net::SSH::Gateway class is rather simple, but still a bit inflexible.
For example, it does not allow reusing an existing connection and a new one will be always opened for each gateway.
Port forwarding on Net::SSH is quite simple:

"Um, all I want to do is X, just show me how!"
X == "forward connections on a local port to a remote host"
Net::SSH.start("host", "user", :password => "password") do |ssh|
  ssh.forward.local(1234, "www.google.com", 80)
  ssh.loop { true }
end

The IOError rescue retries are there to make it automatically reconnect both self + tunnel in case the tunnel has died. (The current connection does not know if the underlying tunnel has disconnected until it tries to send / receive)
This on its own doesn't fix anything (because it's missing all the host/bastion dereferencing et all), but having this could simplify #1090 and #1003

I think the exception is different on Linux vs mac.
I get these with DEBUG_TRANSPORT=true
D, [2019-03-15T15:19:32.414816 #43061] DEBUG -- Pharos::Transport::SSH[<IP_ADDRESS>]: Received Errno::EBADF (expected when tunnel has been closed)
D, [2019-03-15T15:19:32.414916 #43061] DEBUG -- Pharos::Transport::SSH[<IP_ADDRESS>]: Closed SSH event loop
D, [2019-03-15T15:19:32.414874 #43061] DEBUG -- Pharos::Transport::SSH[<IP_ADDRESS>]: Closed port forward on 65534
D, [2019-03-15T15:19:32.415257 #43061] DEBUG -- Pharos::Transport::SSH[<IP_ADDRESS>]: Received Errno::EBADF (expected when tunnel has been closed)
D, [2019-03-15T15:19:32.415334 #43061] DEBUG -- Pharos::Transport::SSH[<IP_ADDRESS>]: Closed SSH event loop
D, [2019-03-15T15:19:32.415294 #43061] DEBUG -- Pharos::Transport::SSH[<IP_ADDRESS>]: Closed port forward on 65533

Added IOError to the rescue and the exceptions seem to be gone from  e2e output now.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/449 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target.git

Docs Build status updates of commit 329c4cb:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Release_Archive_master_2020-04-13-12-56-17 has been deleted or has been force pushed: fatal: couldn't find remote ref refs/heads/Release_Archive_master_2020-04-13-12-56-17

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[flink] Allow dynamic configuration of 'continuous.discovery-interval' using hints in Flink lookup joins.

Purpose

Linked issue: close #1972

Tests

API and Format

Documentation

See testing in your repo: https://github.com/hzjhjjyy/incubator-paimon/tree/lookup-join-discovery
You should run:
mvn clean install -DskipTests=true
mvn package -Pgenerate-docs -pl paimon-docs/ -nsu -DskipTests

See paimon-docs/README.

sorry, resolved.


Update ScubaGear code for AAD baseline policy 2.14 based on feedback and prototyping

💡 Summary
Modify Azure AD ScubaGear code for 2.14 as per the instructions below. See issue #256  and #254 for details.
Implementation notes

[ ] Remove the checks for the PIM settings "Allow permanent active assignment" and "Expire active assignments after 15 days".
[ ] Replace those checks with code that examines if there are any permanent Active assignments. If there are, we show a Fail unless those assignments are in a config file exclusion. To clarify, we will not be checking the PIM setting for this check. Instead we check the list of permanent Active assignments.
[ ] Make sure the name of the new policy in the report matches what is in the baseline document policy.
[ ] Also show a list of the users currently "permanently" assigned to privileged roles. We currently hide this information which makes it harder for admins because they have to go look for it.

Updated to 7.4 & 7.5