[FEATURE REQUEST] Refactor SlideSounds to use a single audio source.

Overview
The component at org.mixedrealitytoolkit.uxcore/Slider/SliderSounds.cs has two audio sources, passNotchAudioSource and grabReleaseAudioSource.  We don't understand why there are two audio sources.
Both passNotchAudioSource and grabReleaseAudioSource were private non-serialized fields.  However, with the following PR, these fields have been exposed via the inspector window and public properties.

https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity/pull/436

Marking to this as a "Release Blocker" to avoid shipping an update to "UX Core" without first understanding this issue. To avoid future deprecation, if two audio sources aren't needed, we should not spin a release with these non-private audio sources.
Tasks

[ ] Determine if two audio sources are in fact needed.
[ ] If two audio sources aren't needed, refactor code so that there is only one.
[ ] If two audio source are needed, close this issue.

Additional context
Looking at the history of the file (from our internal repository) looks like @MaxWang-MS added the two audio sources when they first created the file.

One thing to note is that using a single audio source will cause the grab/release sounds to have their pitch altered based on the position of the slider thumb (the pass notch code sweeps the frequency of the audio source).
If we are ok with that, we can unify the sources, otherwise, we should continue using two.

@AMollis, @keveleigh, @shaynie, @ghazen-ml, @whebertML Thoughts?

@david-c-kline @AMollis Perhaps an alternative to exposing that two AudioSources are used internally so as to avoid possible future deprecation if that changes, just expose one serialized AudioSource that the dev can tweak, and internally make a second one for pass notch use and duplicate the settings (like audio mixer group) and keep the benefit of the pitch changes for pass notch?

One thing to note is that using a single audio source will cause the grab/release sounds to have their pitch altered based on the position of the slider thumb (the pass notch code sweeps the frequency of the audio source).
If we are ok with that, we can unify the sources, otherwise, we should continue using two.

Could the code reset the pitch to the default value before playing the grab sound?

@david-c-kline Could the code reset the pitch to the default value before playing the grab sound?
It seems to me that the only reason for having two audio sources is to mix the sounds. If there is a chance the sounds can overlap, then I suppose to audio sources is fine.

I can definitely give that a try.

@david-c-kline Believes he should get to this by the end of 9/30

Updated note: Confirmed that the pitch shifting on the second audio source is being done destructively. Will look at caching / restoring based on the user's actions.

I have a working fix for this. Considering whether or not to update the slider prefabs to have an AudioSource pre-attached.

Decided to update the prefabs in UXComponents and UXComponents.NonCanvas this forces an update to 3.1.0 as well as a reference to UXCore 3.1.0.
No other packages that reference UXCore utilize SliderSounds, so their dependency requirements remain unchanged.


repo-age alignment in repositories

Please ensure:

[X] The bug is caused by Refined GitHub. It doesn't happen if I disable the extension.

Description
Sometimes the repository age appears on top of the description of the repository.
Reproduction:

Keep reloading a repository's page
Notice how sometimes the age is on top of the description

It doesn't work on some repositories. I noticed it on mine: https://github.com/Yash-Singh1/react-thermometer-range-component.
Screenshot

Console errors
None

Example URL
https://github.com/Yash-Singh1/react-thermometer-range-component
Browser(s) used
Chrome

I could still reproduce this:

Tested on Chrome 92.0.4515.159, and 21.10.4 for Refined GitHub.

 I am on Chrome 94 and Windows though?

I’ll try updating my chrome version to 94. Shouldn’t be related but I am on Ubuntu.

By looking at our code, the only way this could happen is if GitHub appended the content after we did, for example via deferred loading.
We could user a MutationObserver on the parent to see when new elements are added (once), but this feels rare enough to almost make it not worth it. Even testing a solution would be next to impossible.

I just tried this and I am not seeing it.
@kidonng can you still reproduce?

I think I still see this for a few times some months ago. We can close this since it's not particular troublesome, but it's something we should be aware.


[stable/kubernetes-dashboard] - Add support for gce-ingress integration

What this PR does / why we need it:
Fix gce-ingress integration for kubernetes-dashboard

Replace .Values.ingress.path with .Values.ingress.paths to support gce-ingress that requires / and /* to work
Add documentation for gce-ingress (service annotation + ingress paths)
The service port must have a name to work with gce-ingress

Special notes for your reviewer:
This is not backward compatible if you override the default .Values.ingress.path.
Addresses https://github.com/kubernetes/contrib/issues/885
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

poke

cc @kfox1111

I updated again, as it is the only way it can work. I think I found a sweet spot for compatibility with other ingresses.

Could you rebase? No answer from other maintainer(s), so let's merge this.
One more thing : as it is a breaking change, could you document in the readme how to upgrade?

Sorry, I misplased this review. looks good to me once its been rebased.

@kfox1111 and @desaintmartin Rebased and add upgrade documentation

Let's finally do this. :)
/lgtm

I think this broke access through kubectl proxy, at least on non GCE environments.
Repro steps
helm install --namespace kube-system --name kubernetes-dashboard stable/kubernetes-dashboard
kubeclt proxy
load http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
this fails with
{
kind: "Status",
apiVersion: "v1",
metadata: { },
status: "Failure",
message: "no endpoints available for service "https:kubernetes-dashboard:"",
reason: "ServiceUnavailable",
code: 503
}

reverting back to 0.10.2 and it works as expected. Maybe this is a documentation update? The url used it the official url used in the dashboard README.

I think I know why and it is because of https://github.com/helm/charts/pull/9179/files#diff-87590f01f77a035df78b589038b308d7R27. The port now have a name. I can open a PR to fix the doc.

Indeed,
http://localhost:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:http/proxy/#!/login works.
Could you update once more the upgrade procedure, and NOTES.txt? I'll merge this ASAP.


Added new option keepInLocalPath

New option keepInLocalPath added
so now you can save request in your project repository.
Also added some minor fixes of paths and spelling.

Hi @egorovsa
Thank you for your contribution. I have done few changes on top of your code with my PR. So, I have closed this PR. Apologies.


More intuitive class layout for build pipelines

Since the setup / visuals / static collision / area collision / lighting build steps already form natural groups, the build pipelines should either be split appropriately (since QodotMap assembles on-demand anyway) or arranged with a new BuildStepGroup class.
I think avoiding a new class is preferable, maybe pipelines themselves need to be renamed to something befitting a smaller group of steps.
Either way, also need to refactor pipeline assembly with a function for combining groups.

Perhaps turn build pipelines into Resource classes to allow for easy creation in the editor.

No longer relevant following C rewrite.


Add failing test for heredoc whitesapce

Why CI workflows did not start 🤔?

Why CI workflows did not start 🤔?

I don't think they do for forks


AnimationTree`s animation started event notification bug (does not work with looped animations)

Godot version
4.0.2 mono
System information
Mac OS Ventura 13.2.1
Issue description
In class AnimationTree there are events: AnimationStarted and AnimationFinished. Both expected to be invoked whenever animation tree plays another animation or finishs it. For regular animations they are working fine. But if your state machine has looped animations, you wont be notified through both events. See screenshots and attached project

Steps to reproduce
Steps to reproduce:
Download character body from Mixamo
Download set of animations from Mixamo
Build animations and character body to glb files with Blender (separatelly)
Import those animations to projects as animation library
While import animations, set some animations Loop mode to Linear
Create character scene, add there character body, shape and imported skeleton from Mixamo
Add animation libraries to anim player
Add AnimationTree and setup some animations using state machine (idle (no loop) -> idle (no loop) -> running (loop))
Add script for your character body, get animation tree and subscribe on event AnimationStarted or AnimationFinished
Expected behavior:
Being notified whenever looped animation started or finished (through sync transition condition interuption for example)
Actual behavior:
When looped animation started, no event from event AnimationStarted.
If you setup exit from state via sync transition with condition, you will not receive AnimationFinished event notification on animation interuption
Minimal reproduction project
Compatibility type: Compatibility
Environment: .Net 6 or 7, C#
(see 'example.zip' with projects setup)
example.zip

Looping animations don't emit animation_finished by design. This is also the case in AnimationPlayer.

animation_finished for looping animation - well, may be the case
but after all, animation_started should appear in the case, right? we starts the looping animation anyway

@Calinou
then, is there any kind of way I can know if looped animation started to play in AnimationTree?
just anything, may be I can create my own observer, its ok, but I need any kind of point of system that can tell me if looped one started
P.S. tried animation player, not a case either
thank you in advance

Hello, just wanted to say this issue is becoming a big problem for me. I need to know when the "rest" animation is started in script but since it's looped I have no way of knowing when this happens because of this issue.
If anyone knows of a workaround for this please tell me!


Introduced IdentifiedConnectionInterface for usage in IoServer

Added new class IdentifiedConnectionInterface
Capsuled $resourceId in seperate method getId of new class.
Extended unit tests.

While developing a chat application and trying to learn from your tutorial I discovered an issue at the public property "resourceId" on a given ConnectionInterface-object which is used to recognize clients server side.
The $resourceId was set in Ratchet\Server\IoServer (line 84). Since it is written to a Connection without initializing it first, it is automatically initialized public. This is well known as being dangerous for API methods and should be avoided in PHP.
In my opinion it should be accessible (for read) via an public API method and set within the Constructor. Otherwise no one can guarantee for this property being still there in future releases.
This is why I capsuled this property in an separate interface.
Feel free to optimize my solution.
Thanks for your work on this excellent WS-library for PHP!
It would nice to help you with my contribution :)
Greetings
Tim

The intent of this PR is good, in that variables added should be read-only by default. These days I do prefer immutability in objects.
However, this PR comes with problems. getId is only exposed on the IoConnection class which will likely be decorated by the WsConnection class, meaning this method will be completely inaccessible by almost everyone who uses the library.
The type of behaviour this PR is going for will be included in the next release. You can see progress in the container branch.


Update ruby gem

Description

#15 - Separated memory operations and tracked state from base class implementation
Add an interface to Preference utilties - Create a Preferences class that provides helpers for writing user preferences.
#9 - Bump RSpec version and update tests
Bug fixes and improvements

Fix Hash conversion
Auto release memory on garbage collection

Documentation updates
Pipeline for verifying pull requests and auto release

Related Issue

https://github.com/chef/desktop-config/issues/407
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[x] All commits have been signed-off for the Developer Certificate of Origin.

PR is updated and ready to merge.


Updated for changes to webhook username override behaviour

Ref:  PLT-5279 Integrations: When no override username is set, show the user who set up the integration's username
For webhooks-incoming.rst and webhooks-outgoing.rst: I converted them from .md to .rst, so the diffs show that everything as changed, but this is the part we're interested in:
1. Login to your Mattermost team account that has the system administrator role.
2. Enable incoming webhooks from **System Console > Integrations > Custom Integrations**.
3. (Optional) Configure the **Enable Overriding of Usernames from Webhooks** option to
    allow external applications to post messages under any name. If not enabled,
    the username is set to "webhook".
4. (Optional) Configure the **Enable Overriding of Icon from Webhooks** option to allow
    external applications to change the icon of the account posting messages. If not
    enabled, the icon of the creator of the webhook URL is used to post messages.

For slash-commands.rst, I made no changes... it's just here because it got caught up in the web of conversions from .md to .rst.

+1


Add LICENSE

Would it be possible for you to open source this package by choosing and adding an open source license? Currently, without a license, this code isn't open source1 and more corporate GitHub users won't be able to use/modify/redistribute your codebase.
1 https://choosealicense.com/no-permission/

done. thanks

@kz It's ok to change another license.
I dont want somebody modify the code and republish it as his own. Which type of license should I use?  Apache?

Both Apache and MIT are good. Both will include your name and copyright notice.

I changed it to Apache


prefix_except_default doesn't generate new routes

Environment

Operating System: Linux
Node Version:     v18.17.1
Nuxt Version:     3.8.0
CLI Version:      3.9.1
Nitro Version:    2.7.1
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools, modules, i18n, css, app
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://stackblitz.com/edit/nuxt-starter-7insz7
Describe the bug
I have 2 initial routes:
pages/index.vue
pages/about.vue
and 3 locales: en, fr, es
Using the option "prefix_except_default" I expect to get a new array of routes, as described in doc:
[
  {
    path: '/',
    name: 'index___en'
  },
  {
    path: '/fr',
    name: 'index___fr'
  },
  {
    path: '/es',
    name: 'index___es'
  },
  {
    path: '/about',
    name: 'about___en'
  },
  {
    path: '/fr/about',
    name: 'about___fr'
  },
  {
    path: '/es/about',
    name: 'about___es'
  },
]

But new routes are not created
Additional context
No response
Logs
[Vue Router warn]: No match found for location with path "/fr"
[Vue Router warn]: No match found for location with path "/es"
[Vue Router warn]: No match found for location with path "/fr/about"
[Vue Router warn]: No match found for location with path "/es/about"
[Vue Router warn]: No match found for location with path "/fr"
[Vue Router warn]: No match found for location with path "/es"
[Vue Router warn]: No match found for location with path "/fr/about"
[Vue Router warn]: No match found for location with path "/es/about"

You need to set the locales option in the i18n config for this to work, I changed your reproduction to demonstrate [here].(https://stackblitz.com/edit/nuxt-starter-72yjba?file=i18n.config.ts,nuxt.config.ts)
I understand this is confusing as vueI18n detects the locales based on configured messages in i18n.config.ts separate from this module.


Errors in Interaction 2 of Scenario A version 3.0.0

It seems that json is not validated against the schema. Is this true?
The following error should not validate OK.
json has a property paper that doesn't exist in the schema. The property in the schema is named paperAndBoard.
To catch also other error that might exist, I propose that the json should be validated against the schema for all interactions before the new release is published.
Property sizetype should be removed from property basisWeight when uom=GramsPerSquareMeter.
The width of the reel in paper should be changed to from 787 to 875 Millimeter to match the area of the reel in the delivery note (length=4000 m, Area=3500 m2)
Please also correct the errors for property paper and basisWeight and width within paper in other interactions.
Scenario A interaction 2 description
2. Logistics supplier requests to get details of the one specific active supplier-order from supplier.
Logistics supplier receives details of this supplier-order, including the number of packages.
In this scenario, there are 10 packages.
There are no packages in the details of the supplier-order. Change packages to reels in this description.

There was actually an error within the schemas when defining the sellerProduct:. The sellerProduct.properties.paper was changed to sellerProduct.properties.paperAndBoard, but the value of sellerProduct.allOf[1].oneOf[0].required[0] was still paper and not paperAndBoard. When changed the error was captured by ajv and the errors have been corrected in the instances.

The script validate.cmd has been added to /tools/. (still working on it...)

It is not possible to condition a property based on a particular value taken by another property.

I have changed "value": 787 to "value: 875 in

\3.0.0\mock\GW04&BW04.get-logistic-delivery-notes-logisticDeliveryNoteId.response.json (1 occurrence)
\3.0.0\mock\GW04&BW04.get-logistic-delivery-notes-logisticDeliveryNoteId.response.json (1 occurrence)
\3.0.0\mock\papiNet.PACT.json (4 occurrences)
3.0.0\paper-board-pulp-warehouse-logistics.md  (4 occurrences)

Done, see commit e601f69.
@larsolofsson please close this issue if you agree with the updates.

Property sizetype is still not removed from property basisWeight, when uom=GramsPerSquareMeter.

OK, I did not understand that you were talking about the instances. I have removed "sizeType": "24x36" from

\3.0.0\mock\GW02&BW02.get-supplier-orders-supplierOrderId.response.json (1 occurrence)
\3.0.0\mock\GW04&BW04.get-logistic-delivery-notes-logisticDeliveryNoteId.response.json (1 occurrence)
\3.0.0\paper-board-pulp-warehouse-logistics.md (4 occurrences)
\3.0.0\mock\papiNet.PACT.json (4 occurrences)


Add node_module path relative to nplugm parent

fixes #11

Hi @zhuochen83 ,
Thanks for the fix, looks great. I'll merge ignoring the failed Appveyor CI status since its running into some weird issues that have nothing to do with your changes.


NotificationsIOS.checkPermissions() is not a function

Using the example code
NotificationsIOS.checkPermissions().then((currentPermissions) => {
    console.log('Badges enabled: ' + !!currentPermissions.badge);
    console.log('Sounds enabled: ' + !!currentPermissions.sound);
    console.log('Alerts enabled: ' + !!currentPermissions.alert);
});

i got this error
ExceptionsManager.js:73 Unhandled JS Exception: _reactNativeNotifications2.default.checkPermissions is not a function

this is my full index.ios.js
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from "react";
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  TouchableHighlight
} from "react-native";
import NotificationsIOS from "react-native-notifications";

export default class pushnotifications extends Component {
  constructor() {
    super();

    console.info("CONSTRUCTOR");
    NotificationsIOS.addEventListener(
      "remoteNotificationsRegistered",
      this.onPushRegistered.bind(this)
    );
    NotificationsIOS.addEventListener(
      "remoteNotificationsRegistrationFailed",
      this.onPushRegistrationFailed.bind(this)
    );
    NotificationsIOS.requestPermissions();
  }

  onPushRegistrationFailed(error) {
    // For example:
    //
    // error={
    //   domain: 'NSCocoaErroDomain',
    //   code: 3010,
    //   localizedDescription: 'remote notifications are not supported in the simulator'
    // }
    console.info("ERRORE", error);
  }

  componentWillUnmount() {
    // prevent memory leaks!
    NotificationsIOS.removeEventListener(
      "remoteNotificationsRegistered",
      this.onPushRegistered.bind(this)
    );
    NotificationsIOS.removeEventListener(
      "remoteNotificationsRegistrationFailed",
      this.onPushRegistrationFailed.bind(this)
    );
  }

  checkNotif() {
    NotificationsIOS.checkPermissions().then(currentPermissions => {
      console.log("Badges enabled: " + !!currentPermissions.badge);
      console.log("Sounds enabled: " + !!currentPermissions.sound);
      console.log("Alerts enabled: " + !!currentPermissions.alert);
    });
  }
  onPushRegistered(deviceToken) {
    console.log("Device Token Received", deviceToken);
  }

  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>+++ Welcome to React Native!</Text>
        <TouchableHighlight onPress={() => this.checkNotif()}>
          <Text style={styles.instructions}>CHECK NOTIF</Text>
        </TouchableHighlight>

        <Text style={styles.instructions}>
          Press Cmd+R to reload,{"\n"}
          Cmd+D or shake for dev menu
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#F5FCFF"
  },
  welcome: {
    fontSize: 20,
    textAlign: "center",
    margin: 10
  },
  instructions: {
    textAlign: "center",
    color: "#333333",
    marginBottom: 5
  }
});

AppRegistry.registerComponent("pushnotifications", () => pushnotifications);

Did you react-native link react-native-notifications, added the code to AppDelegate.m and re-run react-native run-ios ?
This happens usually when NativeRNNotifications is null here and that's when the native part of the code has not been installed properly.

Ahh sorry, this code is from a recent commit that hasn't made it to npm yet. (cc @gran33) For now, you can update your package.json to use the latest commit:
    "react-native-notifications": "wix/react-native-notifications#e4921f36",

Sorry for the delay, published and available in v1.1.14.
Enjoy guys! 👨💻

i can confirm now its working!


Nushell support

nvm doesn't appear to work on nushell
While nushell may not be POSIX compliant, I'd hope there's some way to make a wrapper around say bash.
I'm happy to work on this, if that would be wanted.

What is nushell?
nvm only supports POSIX shells (and zsh). If there are minor changes that would unblock it working on a different shell, I’m theoretically open to them. If you need to author a wrapper, that would need to be a separate project.

I don't think nushell is POSIX compliant, so I reckon it would be a very big change. I don't need nvm for my personal use do I won't be working on it (there's a similar project in rust called fnm which should work for anyone who does need it)

In that case, I’ll close this, but am happy to reopen if there’s something concrete and actionable for this project.

I just wired up my nushell config to use nvs automatically during cd: https://gitlab.com/jokeyrhyme/dotfiles/-/commit/7555465a44656a82577ac757a151236ca513766e
You could probably do something similar to run nvm instead


F#429 preparation changes file upload api

Description
preparation file upload is using asynchronous API
Related Issue :
#429
How Has This Been Tested?

create a dataset
file upload
check the uploaded grid
if the dataset is created, that is ok

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project. it will be added soon
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document. it will be added soon
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Additional Context

run build
deploy to 2


Create Posts “check-if-a-string-is-a-valid-json-object”

Automatically generated by Netlify CMS

👷 Deploy Preview for monetaboot processing.
🔨 Explore the source changes: e2a7458d6e30154a1dd79aec3b6813e199c36329
🔍 Inspect the deploy log: https://app.netlify.com/sites/monetaboot/deploys/61b2704feee01800081423c5


TaxonomyPicker - Fill-in behavior in case of opened termset

Category
[ ] Enhancement
[ ] Bug
[x] Question
Version
@pnp/spfx-controls-react 1.11.0
Question
Is it planned to implement the standard fill-in behavior that allows to create new terms in termset configured as Open? At the moment, TaxonomyPicker supports selection of existing terms only.

This feature has been requested multiple times and it would be great addition to the TaxonomyPicker.

We'll need to get back to this enhancement when new Taxonomy API is released.

Status on this implementation? Would love to see this released.

Status on this implementation? Would love to see this released.


Discrepancy in provided types, ChokidarOptions.ignore is still of type string | ((path: string) => boolean) | undefined

Describe the bug

And, sure enough, ./node_modules/chokidar/esm/index.d.ts defines ChokidarOptions as follows:
export type ChokidarOptions = Partial<BasicOpts & {
    ignored: string | ((path: string) => boolean);
    awaitWriteFinish: boolean | Partial<AWF>;
}>;

Versions (please complete the following information):

Chokidar version: 4.0.0
Node version: Bun 1.1.28
OS version: Windows 10

To Reproduce:

Install Chokidar with bun i -d chokidar
Create a simple watcherconst watcher = chokidar.watch(base, {
ignored: (path, stats) => stats?.isFile() && !path.endsWith('scss')
});

Watch as your IDE of choice pops an error telling you the type of ignored is incorrect

Expected behavior
No red squiggly

Was fixed

Nice, I'll be waiting for the next release


Bottom bar selected icon feature

Fixes #31.

can you please re-submit?

Hi @lazmeister - currently I'm not actively working on improvements to this library since I built a custom version for a specific project that is feature complete for my needs.
I'll take a look into porting those changes forward when I have more free time, probably in 2-3 weeks.

okay great thanks, sorry for the notifications, we need to get a dev branch going for these PL's

No worries! This project helped me a lot, the less I can do is contribute back!


Update the maven-git-commit-id-plugin to the latest version

Now we use older version which is affected by security issue: https://github.com/ktoso/maven-git-commit-id-plugin/issues/240
Please update to 2.2.1.
I'm not sure where this dependency is defined.

The plugin is managed in the spring-boot-starter-parent POM.
Hence, this issue should be opened with the Spring Boot issue tracker if you want them to consider upgrading the git-commit-id-plugin's version.

Thanks @shakuzen. Moving issue to Spring Boot project: https://github.com/spring-projects/spring-boot/issues/7980


Test WidgetKit possibilities using Swift SDK

Investigation Results
WidgetKit has several areas which can be utilized in conjunction with the AEP SDK.
Deep Linking
Deep linking into the application is possible with WidgetKit using SwiftUI's widgetUrl(_:) API. When the widget is tapped, the usual deep link delegate methods are called. application(_:open:options:) if the application is not using scenes, or scene(_: openURLContexts) if you are using a scene delegate. The corresponding delegate method will receive the url which is passed via the widgetURL(_:) method.
A potential use case for deep linking via widget kit is using the SDK to send events when the app is launched via a deep link. Additionally, you can get even more specific with custom intents.
When using a configurable widget, the potential use cases increase. For instance, the URLs sent through the widgetURL(_:) method can be dependent on the configuration intent. Example: A custom intent could have an enum with various members, and depending on some business logic in the widget, a different url can be passed for deep linking into a specific view in the application.
Timeline
WidgetKit uses a protocol, TimelineProvider (or IntentTimelineProvider if using a user configurable widget), to advise WidgetKit when to update a widget's display. If using a user configurable widget, the user configured custom intent is passed into the Provider which means that custom data can be sent to the SDK depending on the custom intent. Example: A custom intent could allow a user to select several configurations of a widget and after selecting a specific configuration, or changing a configuration, the SDK could be used to track the changes.


[SPARK-22824] Restore old offset for binary compatibility

What changes were proposed in this pull request?
Some users depend on source compatibility with the org.apache.spark.sql.execution.streaming.Offset class. Although this is not a stable interface, we can keep it in place for now to simplify upgrades to 2.3.

Test build #85074 has started for PR 20012 at commit 7d1df98.

Test build #85074 has finished for PR 20012 at commit 7d1df98.

This patch fails RAT tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/85074/
Test FAILed.

Test build #85075 has started for PR 20012 at commit c94699e.

Test build #85075 has finished for PR 20012 at commit c94699e.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/85075/
Test FAILed.

Test build #85076 has started for PR 20012 at commit ace608d.

Test build #85076 has finished for PR 20012 at commit ace608d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/85076/
Test PASSed.

Test build #85088 has started for PR 20012 at commit 97fd2f9.

Test build #85088 has finished for PR 20012 at commit 97fd2f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/85088/
Test PASSed.

Merged build finished. Test PASSed.

LGTM. Thanks! Merging to master!


Drop EOL Debian 8 support

Pull Request (PR) description

This Pull Request (PR) fixes the following issues

https://github.com/voxpupuli/puppet-openvpn/pull/387 should be merged before this one :)


random OEIS sequence button

That would just be fun (and useful for testing too probably).

Well, possibly the existing OEISTemplateSequence class could just initialize itself with a random sequence number... would that have the effect you desire? If we wanted to get fancy, it could pre-fetch the name of the sequence and fill that in too.

Oh I like that idea!  It is such a simple idea but it would be fun.  In the longer run (for a different issue sometime maybe), it might be fun to have big "Show me something pretty" (that gives a random curated preset) and "I'm feeling lucky" (that gives a totally random combo of OEIS with a visualizer) buttons when you arrive at the site.


Updates html files to be free of squiggly lines.

Small changes to 'test' and 'index' html files. I wasn't sure what the 'test' html file was for, but I just gave it structure to help avoid errors.

Sounds good. Thanks bro! The test.html was for testing various code sections when I was breaking stuff along the way.


GDA2020 support

This is a very handy project, thanks for making it available to the world.
I'm curious if support for loading the GDA2020 admin boundaries is on the radar? Obviously maintaining 2 code paths isn't desirable but I imagine a lot of folks have migrated to GDA2020 some time ago.
If not, can you suggest an approach that might achieve the same outcome - ie loading the GDA94 boundaries and performing an in-place translation to the 2020 datum?

Thanks! It can be done inside the same code base, with an extra argument to let it know what datum you're using. I have it in mind to add this to the next release assuming Geoscape don't change the GNAF schema & PIDs again!
A quick and dirty fix for you would be to do a string replace in all the gnaf-loader files to change the coordinate system SRID from 4283 to 7844. That "should" work.

I did essentially that - forked your repo and substituted the SRIDs, but also wrapped all the static polygon/point definitions inside ST_Transform statements.
You can see the diff here: https://github.com/internoot/gnaf-loader/commit/9c16235522e324ecf8bc51be43db3377c8eff7e0
I'm just running it now on the GDA2020 admin boundaries, unsure if the fields for these actually differ from the GDA94 boudary files - if I don't have success then I will alter the arguments in import_shapefile_to_postgres() to reproject the GDA94 files into GDA2020 on the way in.

FYI - I've deferred this for a week or 2 due to current workload. It'll be a separate release to the November 202111 release that just went live.

GDA2020 support added in PR #64


Attribute Selectors

gulp-minify-css (and don't know if this only applies to gulp-minify-css) is stripping double quotes from css attributes thus:
[class^="tax-"]

becomes
[class^=tax-]

I can't find anything in clean-css or gulp-minify-css documentation that casts light on this so would appreciate any pointers.

I'm facing this kind of issues with selectors by attribute with empty string as a value (:not([value=""])). In this case it is syntactically incorrect to write :not([value=]), so the whole rule does not work.

@faergeek which version of clean-css do you use?
here's what I get with latest 3.4:
$> echo 'a:not([value=""]){color:red}' | cleancss
a:not([x=""]){color:red}

@jakubpawlowicz Sorry for confusion. I use css-loader for webpack. They used clean-css. But now they use cssnano, so the bug is in there actually.

No worries!


$form-feedback-valid-color and $form-feedback-invalid-color do not apply to box-shadow

Prerequisites

[X] I have searched for duplicate or closed issues
[X] I have validated any HTML to avoid common problems
[X] I have read the contributing guidelines

Describe the issue
I'm trying to change the highlight colour on valid inputs without changing the colour of 'success'.
I want to keep 'success' as green in a small number of locations for buttons, alerts, etc, but on a form with lots of inputs having so much green is just too much and doesn't look good.
I noticed there is a variable for this, so in my Sass file I tried:
$form-feedback-valid-color: $secondary;
and this works to change the border colour, but the box-shadow colour is still green. Looking at the source files I can see that the box-shadow is indeed hard-coded to use 'success' for valid, and 'danger' for invalid.
I'm able to get the result I want by overriding all of $form-validation-states, but think that overriding $form-feedback-valid-color by itself should be enough.
How it looks:

What I expect:

Reduced test cases
// Custom.scss
// Option B: Include parts of Bootstrap
// 1. Include functions first (so you can manipulate colors, SVGs, calc, etc)
@import "../node_modules/bootstrap/scss/functions";
// 2. Include any default variable overrides here
$secondary: #004a98;
$form-feedback-valid-color: $secondary;
What operating system(s) are you seeing the problem on?
Windows
What browser(s) are you seeing the problem on?
Chrome
What version of Bootstrap are you using?
5.3

I noticed that 'tooltip-bg-color' is also hard-coded to 'success' and 'danger' in the same way, so if someone can fix the box-shadow then you may want to fix this as well.


Mention our main class or Java entry point

I think it rather belongs to the Running section, instead of the  Building section, so I have made another proposal here: #4680.

Ah ok. Then closing.


sshnp (pure dart): "user" ssh session doesn't close properly if the "tunnel" session closes

Describe the bug

When using the desktop app, if a shell is open and we lose internet, then the session locks, since the dartssh2 user session doesn't know that the tunnel transport has closed.

Steps to reproduce

Start desktop app session
Turn off internet

Related branch: fix/locked-up-session
Expected behavior
Some callback / future that allows detection of the tunnel session closing from the SshnpRemoteProcess object.
Screenshots
No response
Smartphones
N/A
Were you using an atApplication when the bug was found?
No response
Additional context
No response

In addition, in noports core, initialization doesn't do any Future.catchError() calls to handle async errors properly

We have wrapped the pure-dart session call in a runZonedGuarded clause for the desktop application. This bug is low priority, since we were able to handle it gracefully. The CLI application already handles this since we already do the runZonedGuarded call for it.

At this point, I would consider this a low priority bug, since there is a valid, reliable workaround.


Add DtoTransformer@transformPropertyName()

I'm working on a proof of concept to be able to build Laravel Requests and Resources that can be shared with our frontend team as Typescript types.
The problem is that in PHP-land, we typically use camelCase, but all of the properties passed via the API use snake_case. Was thinking that we could locally create a new attribute and then check that within our code. Might look something like this:
#[TypeScript]
class SomeRequest extends Request
{
    #[TypeScriptProperty('user_id')]
    public int $userId;

    public function rules(): array
    {
        return [
            'user_id' => ['int'],
            // ... other rules
        ];
    }

    protected function passedValidation(): void
    {
        $this->userId = $this->validated('user_id');
    }
}

The proposal here is just to make it easier for us to override this locally by checking if the attribute is applied within the DtoTransform@transformPropertyName() method.
Happy to add in that attribute as well once we get it up and running.

Good idea, thanks!

Good idea, thanks!

Thanks for merging in. Let me know if you would like for me to PR the attribute I was describing.

Hmm maybe we want to do sycj a thing in the future but then I would build something like laravel-data mapper attributes I think


Issue with DependencyAttribute

I recently started updating this library to the newest version and noted the injecting into a non public property fails. Is this a regression issue or is this behavior wanted?
With an old version this code works, with the new no injection happens.
[Dependency]
protected IMyInterface DeletionService { get; set; }

I have seen the with v4 this line has changed https://github.com/unitycontainer/abstractions/blob/7247dd9a29e4207804804d1f3c2a868ef4f61308/src/Dependency/Injection/Members/InjectionProperty.cs#L57

This behavior is by design and issue was discussed at length here.


bazel-buildtools: 3.2.0 -> 3.2.1

Motivation for this change
Bugfix release for bazelbuild.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

passed nixpkgs-review


Iridius - Decentralising Web3 Frontend Software

Project Abstract
While blockchains technologically are decentralized, the ways users interact with them is not. A key centralized weak point are the server-hosted DApp websites, and all mobile apps and browser extensions currently in use by Blockchain users. This requires everyday users to trust the developer of the particular app, which is against blockchain spirit.
Just last week, Convex's frontend was hijacked. A few months ago BadgerDAO lost $130M, and Cream Finance and PancakeSwap were compromised in March 2021. The server of polkadot.js.org/apps, the main way Polkadot users govern and secure the network, is also vulnerable to these attacks, together with the Polkadot.js browser extension. For example, an attacker can push an update that makes users unknowingly delegate to a malicious validator, which would compromise the security of the Polkadot chain. The cost to insure that this doesn't happen? A $50k grant :)
Iridius presents a consensus-driven way to sign DApp websites, Android and iOS apps, and browser extensions. Users' browser or phone would automatically verify that signature to ensure that the software is what it should be. For example, when the developer of a DApp wants to publish an update, they will start an on-chain vote where users and auditors review and accept the update. Then, a network of Multiparty Computation (MPC) nodes sign that update with a key that the developer does not control. Lastly, the users would only be able to open the DApp if it holds a valid signature from the MPC nodes. Verification is transparent, similarly to how SSL authentication works for servers, so users do not need to be aware of it. Our pitch deck visualises this process.
For which grant level are you applying?

[ ] Level 1:  Up to $10,000, 2 approvals
[x] Level 2:  Up to $30,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for > $100k Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied, renamed ( project_name.md) and updated.
[x] I have read and understood the FAQs, application guidelines and announcement guidelines.
[x] A BTC, Ethereum (USDT/USDC/DAI) or Polkadot/Kusama (aUSD) address for the payment of the milestones is provided inside the application.
[x] I have read and acknowledge the terms and conditions.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[ ] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted.
[ ] I prefer the discussion of this application to be in a private Element/Matrix channel. My username is: @_______

How Did You Hear About our grants program?

[ ] Social Media
[ ] Hackathon
[x] Personal Recommendation
[ ] Substrate Builders Program
[ ] Investor/VC
[ ] Online Search
[ ] Other: _______

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @Noc2, thank you for your review!
TLDR; We removed some research tasks and the deployment part, and instead focused on delivering a more complete open-source implementation of Iridius, including implementing theoretical concepts useful to other projects. We added some more technical details. The budget remains unchanged.
Explanation and justification follows.
I do understand that the initial grant proposal included a lot of research, not all of which was necessary for the development of the software deliverables. We have updated the proposal accordingly, only leaving the minimal amount of research for the implementation. I also want to note that by “research”, we do not mean writing a research paper or putting comparable amount of effort in it - it should be seen as investing the minimal amount of effort so that we know how can we implement what we have to, and nothing more. It would be difficult to cut more research from the deliverables, particularly because Iridius wants to bring an open source implementation of novel theoretical concepts, so these concepts need to researched in some minimal level. We believe that the implementation we provide, particularly for the MPC client in Milestone 3, will be broadly useful to many Blockchain projects, and we might be the first to implement it with these security guarantees.
As for the development tasks which don’t seem like they are part of the final product (e.g. most of Milestone 1), we note that the final work is an iteration on top of these tasks, and as such they can be considered as part of it.
Finally, the application focuses on describing features and functionalities, because the specifics of the MPC client implementation, such as used frameworks and languages, is too uncertain at this point. It depends on what kind of open source software can we discover and reuse to help us deliver faster, and what would be best to implement the theoretical concepts we need to. In terms of the smart contract, we are more free, and are happy to use Ink! If we find a convenient alternative of The Graph to support data reading from an Ink-based smart contract.

Hi @Noc2 , thank you for your response again. Let me answer your questions:

Research is the novelty (and complexity) of Iridius, and the open source development is mostly an implementation. We have already spent significant time researching prior to the grant application and even have a partial demo ready, as is described in the whitepaper, so the questions of “is it possible/feasible/doable” are solved, and we just need to figure out exactly how it should be done (finding the right frameworks with the right performance and security guarantees, the right signatures, etc. ). A grant that funds only development (clarified & planned in advance to the detail of knowing which dependencies will be used) wouldn’t help Iridius get off the ground.

Our solution resolves the centralisation of off-chain software (the need to trust the developer). Let’s take the examples you suggest. If a DApp uses AAVE’s approach, and distribute its website through IPFS (or otherwise publicise a checksum), then:

This would prevent malicious actors from hijacking the server, but cannot do anything if the developer themselves publishes a malicious update/hash.
Hash verification cannot be done automatically, natively in a browser - the user would have to somehow download the website and manually verify the checksum. Even if the website is loaded through an IPFS gateway, the user would have to trust the gateway. When it comes to Android/iOS apps, this likewise cannot be applied (whereas what we propose - verifying a signature as originated from an MPC committee, would work).
To protect themselves from the developer, users would have to manually review every version (checksum) of the website, which most users understandably won’t do.

Iridius decentralises this by:

Forcing software updates to pass a community review/approval phase
Uses a Multiparty Computation-based signature scheme, instead of hashing, which resolves some man-in-the-middle attacks and allows for offline verification
Is natively applicable to Android/iOS apps, via that same signature scheme

We have updated the milestone to include a guide on how to run/manually test the deliverables.

Hi @semuelle ,
Thank you for your response! You’re asking the most critical questions for Iridius - and just the ones we’ve barely touched on in this grant application, because we understood that W3F primarily funds software development. I will respond to the extent in which we currently envision it, but we are happy to be challenged and find a better model together :)
I think most of your questions would be addressed if we clarify our current idea of how the verification process would work. We want to apply the open source model to software distribution - where many people review the code for free or little incentive, but if they find a problem, they can prove it and win a huge bounty. Once the developer submits their software, they would also include a sizeable monetary stake (e.g. share of their project tokens) as a guarantee that the software is non-malicious. Anyone is able to review the submission. If they find nothing, nothing happens, and the software gets published within some timeout window (e.g. 1-2 days). If they find that it is malicious (or has a critical security problem, not just a regular bug), the reviewer would vote “No”, provide a report explaining where the problem is, and put a monetary stake to signal their commitment. From now on, the smart contract needs to figure out who’s right - the developer, or the reviewer, anyone is invited to vote on the question, also putting a monetary stake to make sure they’re committed. Luckily, we’re talking about critical security problems, so consensus should be somewhat unanimous. After a timeout and/or some threshold is reached (e.g. 2/3), the losing side loses their stake, which gets rewarded to the winning side. So, if the developer is malicious, and a reviewer points it out, the problem should be obvious enough so many people come and vote against the developer, winning their stake. If the reviewer falsely votes “No”, then it should also be obvious that there’s no critical problem and people would be incentivised to vote against the reviewer, winning their stake. To make sure people don’t get bored of reviewing non-malicious code, the developer could once in a while publish an intentionally malicious version (in a way in which they also wouldn’t lose a lot of money). We find it exciting study & model the economics so we settle on the best solution, so let us know if you’d like to include this as part of the milestones.
In the absolute failure scenario - a malicious developer pushes an update, which gets correctly detected by a reviewer, but then the developer’s whale friends vote against the reviewer and they lose, the reviewer’s report is still made public, together with the malicious source code, and so people are warned about the threat even if the actual software gets certified. Whereas right now, the developer could just publish a malicious update, not release the source code, and users don’t have a mechanism to learn about that until someone gets burned. As an added benefit, even if the developer is never malicious, Iridius verification removes the need to trust the middlemen - server owner, domain provider, App Store, etc.
With that said, any solution which addresses the centralisation of Web3 software encounters the fundamental trade-off between decentralisation and control/flexibility for the developer. If the problem must be addressed, then the most cleverly designed solution (hopefully us) will get adopted. My personal opinion (would love to have your take on this) is that I don’t see the point of a Blockchain if 80% of your users have to trust the same developer, so if this isn’t on people’s tabs right now, I think it will be eventually.
In order to make this response even longer than the initial grant application, here’s our take on your particular questions:

The way our fork of Code Verify verifies right now is by computing the hash of all JavaScript assets loaded by the webpage. This could be problematic (think, CSS key loggers or HTML attacks, putting the wrong buttons with the wrong names), so the approach we want to try is closer to what PGP Signed Pages does. This extension hashes the entire index.html, including all CSS/JS and other assets. This is not straightforward, however, because Chrome doesn’t implement the necessary APIs, and otherwise many extensions modify the DOM, making it difficult to hash. Hence why our current PoC is with Code Verify, but we’ll probably find a way to verify the entire DOM towards Milestone 3.
For mobile apps, yes (unless your users re-install the app). For websites, you can, it’ll just fail verification. It is risky in the sense that you, as a developer, give up control and have to rely on Iridius. Less risky in the sense that users do not have to centrally trust you.
You could design your software s.t. non-security critical things such as notifications or other regular events can be sourced from some server so no need for a code change. Otherwise, we can make Iridius be as flexible as people want it to be in terms of centralisation risk vs developer flexibility. For example, we can only verify the JS and DOM structure, and the devs can update the style/spelling/etc, but that opens some attack vectors (think again, misleading buttons). Another idea is to have your normal unsecured interface, and as an option for your users, a minimal web interface which is Iridius-secured. The latter would get updated every once in a while (since the smart contracts interfaces rarely change anyways, I presume you wouldn’t need frequent updates).
I think I addressed that above. Also given that we want to verify only off-chain software which interacts with the Blockchain or stores secrets (wallets, DApp websites, …), so your smart contract verifying an unthinkably complex Zero-Knowledge circuit is not part of that, do you think that the code will be so heavy that many people won’t have the ability to review it?
For mobile DApps, the path forward we see is for them implement the verification mechanism on their frontend (or in partnership with us). The key aspect I want to point out here is that in the long-term, Iridius establishes a backend allowing MPC signing and reliable, valuable, and difficult to replicate review process and community. Hence, different software platforms would have an interest in integrating a verifier for Iridius-certified software.
The fixed reviewers aspect is just for the initial test version and is clearly centralised. I believe the above text explains our idea better.

@Zvezdin, are you planning to address @takahser's comments? Otherwise we'd close this application due to inactivity.

Hey @semuelle , thank you for the nudge and please excuse the delayed response. Thank you @takahser too for the constructive feedback.
Given that the consensus is that the research part of M1 should be done prior to the grant application, we decided to take the time and do so. As part of this, we're also testing out the indexing solutions @takahser mentioned (thanks!) to see if they allow for the same level of security/decentralisation as The Graph, and if that's the case, then we'll update the milestones to include ink! contracts instead. We'll also include wireframes for the web frontend.
On the non-technical side, to address the risks you correctly identified about projects finding us too difficult to use, we are talking with projects from the Polkadot ecosystem (and outside) to nail the design of the verification process, and we're currently updating the whitepaper accordingly with our findings.
All of this will probably take some time (~2 months), so feel free to either close the PR with the option to reopen it later, or to leave it as-is and we'll update it.

Hi @Zvezdin, thanks for the detailed updates. We prefer to only keep active applications open so as to not clutter our PRs, so I'll go ahead and close it. When you're ready, let us know and we'll reopen it. Note that if you force push, you will have to create a new PR.


most visited not very readable with  edge dark mode ;)

Default mode (sorry my  interface is in french) it's alright

but if I switch to  dark mode (mode sombre/foncé)

oops

in chrome too. it's almost unusable.

Thank you! This has been fixed and will be in the next update.

Version 3.6.4 has been published to the Chrome Web Store. Keep a look out for it within a couple days.


Viper dependency

Hi,
First of all, nice library!
I've found the following issue while trying to use it from a docker image:
        /usr/local/go/src/github.com/spf13/viper (from $GOROOT)
        /go/src/github.com/spf13/viper (from $GOPATH)

It seems the example is trying to force getting the viper module and I'm using this one because I don't want any viper ;)
Do you mind skipping the build process for the examples or removing them for good?
Thanks

Hi @ignaci0
go-up does not depend on viper.
What do you mean exactly by:

Do you mind skipping the build process for the examples or removing them for good?

If you import go-up as a dependency in your go.mod file the examples should be automatically ignored.

Hi @ufoscout,
I use docker for builds, while building in docker (using a clean image every time), I get the following error:
        /usr/local/go/src/github.com/spf13/viper (from $GOROOT)
        /go/src/github.com/spf13/viper (from $GOPATH)
ERROR: Service 'testapp' failed to build: The command '/bin/sh -c go get -d -v ./...' returned a non-zero code: 1

By any reason, the viper example is being built even though I'm importing the library as a dependency for my testapp.
What I did for the time being is to fork the code and to delete the examples. Maybe there are better options out there to handle "examples".

@ignaci0
do you use go modules?

Hi,
I tested it using the following:
module testapp

go 1.13

require github.com/ufoscout/go-up v0.6.0 // indirect

Same result

Ok, got it. The reasoning behind Go modules is sometimes obscure to me.
I moved the examples to a separate repository; this should fix your issue.
@ignaci0 please try version v0.6.1 and let me know.

With version 0.6.1 is working fine!
Thanks @ufoscout


Pull in head ref from GITHUB_EVENT_PATH

Use the GITHUB_EVENT_PATH env var json file to get the branch name
Use ghcr.io docker image

Jinxed it..


HWKALERTS-88 Better integrate Alert.trigger and remove redundancies

remove Alert.triggerId and Alert.context.

redundant with Alert.trigger.id and Alert.trigger.context

maintain some pass-thru convenience getters
update constructors
maintain Alert.severity

it is lighweight and may be modifiable (in the future)
still a candidate to be removed as redundant

Other:

Fix a build issue, it seemed there was a dep issue in action-plugins

I've put a small comment.
This PR requires changes in the UI as well, as alert.triggerId is used on several places.
As the previous one, I suggest to merge them on the new branch Events, at least until Hawkular MS5 is out and no last minute fixes are needed.

Closing and re-opening against Events branch


Include url helpers to ApplicationHelper

I was getting no route matches error after upgrading to rails 5.0.0.rc2. This commit fixes the bug by including url_helpers to ApplicationHelper
See: https://github.com/sferik/rails_admin/issues/2662

This PR was closed because I've deleted rails-5 branch.
Please add tests and re-submit PR to the master if you still need this change.

@beydogan Are you going to reopen this PR?


Automatically delete other web browsers on the system

At startup, Pissandshittium should scan all of the user system to detect if other browsers are installed an delete them.
User Story
As a Pissandshittium enjoyer, I do want to browse the web with the best web browser only.

In order to ensure the best experience, instead of running the scan at startup, Pissandshittium should probably run full file system scan 24/24 to ensure the user device is in perfect conditions.

Oh yes, 24 days a week

there should be an option to just remove the browser included within the system in the installer tbh


Sensors on Wear device Idle

Hello, I have been trying to use the app. It's working fine on the mobile. But on the wear device it says 26 sensors Idle. No wear sensors are shown on the mobile. Mobile and wear device are paired using Wear OS and remain connected.
Wear device is Huawei Watch 2 Sport.
Please let me know if I'm doing something wrong. Thank you.

Hey,
the X sensors Idle is the default screen you see when the app on your mobile did not request data from any of your watch's sensors. You can request sensor data from your watch by pressing the floating action button in the app on your phone.
If that's not the case, try the following in order:

Restart your phone and watch
Make sure that the watch is connected
Start the app on your phone
Start the app on your watch
Select the sensors on your phone

It's working fine now. I had to update the SDK. Thanks a lot.


Moving naming tracking into Jim class from Prior class

Currently tracking the naming of parameters is done within the prior class, which limits the flexibility and legibility of parameters within Jim.
It is probably more ergonomic to define parameters and track their naming within Jim, and specify transform only at the interface with the likelihood object and prior object.
This should solve the problem specified in #89 .

This should fix the problem in #81 as long as all the prior are sample from the unconstrained uniform. nanargmin in the line below should be changed back to argmin after the implementation.
https://github.com/kazewong/jim/blob/2a51d8c130fffb8aff18c2b8d0c1b47472630a38/src/jimgw/single_event/likelihood.py#L562


Instructions to install on Ubuntu using APT repository doesn't work

These instructions don't work on Ubuntu (22.04). It results in the following contents of /etc/apt/sources.list.d/azlux.list:
deb [arch=amd64 signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian jammy main

And when I run sudo apt update I get this error:
Ign:1 http://packages.azlux.fr/debian jammy InRelease
Err:3 http://packages.azlux.fr/debian jammy Release
  404  Not Found [IP: 2a01:728:401:1c::100 80]

When I change jammy into bullseye it works. I guess the instructions need to be changed?

Thanks for posting this. I changed jammy to bullseye and was able to install ctop.


THIRDREALITY Matter Composite Light/Light Sensor/Presence Sensor needs fingerprint and profile

The THIRDREALITY Smart Color Nightlight is actually a composite device consisting of Matter application device types 0x010D (Extended Color Light), 0x0106 (Light Sensor), and 0x0107 (Presence Sensor).  Currently, there is no device specific fingerprint nor a generic fingerprint that includes all the device types in the matter-switch driver. The result is the driver assigns the the light-color-level profile which doesn't include the motionSensor and illuminanceMeasurement components.
Attached are both a fingerprint definition for the device based on vendorID and productID and a profile that includes all the components.  Can the fingerprints.yml be updated with the new fingerprint and the new profile be added to the matter-switch driver code base?
Let me know if anything else is required to get the sensors supported for this device.
Thanks!
3rdreality-fingerprint.txt
thirdreality-smartcolor-nightlight.txt

Required adding capability handlers for the sensors so I just created a community driver for it.


.Net: obsolete all planner functionality (both stepwise and handlebars)

Hey,
Is there any additional context/ADRs on this? We use the Handlebars planner quite a bit, so curious about this decision..

I also do not understand why handlebars planner will be obsolete .

@s-7777 and @mickaelropars are you both able to share the scenarios y'all use the Handlebars planner for (and the quality of plans that are created for y'all)?
Based on our meetings with customers, we've found that the quality is less than desired, so we'll be moving to a python based approach for all three SDKs. We plan on providing a blog post next week on the overall strategy / plan.

@matthewbolanos thanks a lot for your answer
The main scenario was to use functions and orchestrate them via the Planner. I mainly use the Handlebar planner because it offers more flexible possibilities. My use was mainly the reuse of a planner (which I had previously generated and added to my source code).
The main use was to divide a task into several functions and to check that these tasks had been carried out. So I used different plugins:

a plugin to generate a task by proposing several steps for the realization of the task.
a plugin to ensure task validation.
a plugin to fix the spot.
I used the Planner Handlebar to sequence these different tasks.

I know I'm going to migrate to agents (my plugins will migrate to agents). But the use of planners allowed me to have a predefined sequence of tasks, that's why I would like to keep the use of planner.


Customizing SslContextFactory in HttpServer and HttpClient

We have a requirement to support frequent certificate rotation for all SSL requests. To achieve this today, we have an internal fork of airlift where we've inserted custom code that instantiates an instance of the SslContextFactory.Client or Server and invokes reload when needed. This isn't ideal since no one else can use it and it adds some overhead from maintaining a fork.
Ideally, I'd like a way to either:

Inject an SslContextFactory.Client or .Server instance that the HttpServerProvider or HttpClientProvider can use for building a client or server.
Have a way of accessing the instance of the sslContextFactory

Spring Boot solves this by giving access to Jetty's APIs: https://github.com/spring-projects/spring-boot/issues/20381.
Introducing a method of injecting an sslContextFactory is my preference.
There are a few problems I've run into trying to achieve this

Airlift doesn't seem to have any existing pattern of passing optional components like this to follow.
Guice is not friendly to "optional" injections. It requires a default of some kind. An SslContextFactory shouldn't be mandatory for clients to pass in, but if one is given I would imagine it would be best for usability to skip all of the configuration code that would override settings in the SslContextFactory.

I'm happy to submit a pull request that achieves this, but I'd love to hear thoughts from the community + maintainers on the best approach here before doing so.

It sounds like your actual goal is to support rotation of SSL keys and certificates. Would it be sufficient to implement reloading whenever the files change, or is there another reason you need access to the SSL context?
We implemented this for Netty here and could take the same approach for Jetty: https://github.com/airlift/drift/tree/master/drift-transport-netty/src/main/java/io/airlift/drift/transport/netty/ssl

I want to mention that the new OptionalBinder in Guice 4 actually works well, as it allows injection of an Optional. We use it in various projects. You are right that there was no good way to do this in previous Guice versions.

You are right, the goal is to support rotation of SSL keys and certificates. We have an internal library that we use that handles the file watching for us which is why I thought to ask for accessing the ssl context for reloading. I'll need to look closely at the different implementations to see if there are any meaningful differences that would preclude us from be able to make of a similar implementation as the one you linked.
I wasn't aware of OptionalBinder but that looks exactly like what I wanted.

Automatic reloading on file change seems like a useful feature for everyone, and would avoid needing to expose internal details like SSL context, so that'd be preferable if it works.

With automatic reload just make sure to gracefully handle partial files.
While it's easy to "appear a file" atomically (on all reasonable platforms),
it's also easy to script a solution that doesn't do that, so we better be
resilient to this.

As far as I can tell, this approach of building in some kind of automatic reloader based on changes to the keys/certificates similar to what @electrum suggested should work for us. The only important difference I've been able to find for our use case from what is available in the Netty ReloadableSSLContext is that we'd need to be able to pass in values for keystoreProvider, keystoreType, trustStoreProvider, and trustStoreType. I think this should just be a few additional config values.

I was just showing the Netty one as an example. We should keep the existing setup code HttpServer, but move it into a method so that we can use it with the load() method whenever the keystore or truststore file on disk changes
Regarding @findepi's point about partial files, there doesn't appear to be a straightforward way to handle this or other errors during reload, but from reading the code, there might be a way. SslContextFactory has a setSslContext() to take a preconfigured SSLContext. We'd still like to use SslContextFactory.Server to construct SSLContext, so when we want to reload, we could do something like this:
// context factory we configured the ServerConnector with
SslContextFactory connectorSslContextFactory;

void reloadContext()
{
    // create a new factory to reload the config
    SslContextFactory.Server newFactory = new SslContextFactory.Server();

    // ... configure newFactory ...

    // load and check the configuration
    newFactory.start();
    SSLContext newContext = newFactory.getSslContext();

    // reload the context for the connector, using the context we just loaded
    connectorSslContextFactory.reload(factory -> factory.setSslContext(newContext));
}

I started hacking up a proof of concept type implementation of this using my own use case as a test and quickly ran into some problems but they are all specific to my own use case.
In a very incomplete nutshell: We have a custom KeyStoreSpi that is loading a configuration file (not the real keystore and truststore files) which communicates via some ThreadLocal values to pass into a custom class which monitors a directory for file changes, applies some rules, and then through some custom binding classes attempts gives some notification hooks that we can use to invoke reload.
This is all incredibly specific to this narrow use case I'm trying to build support for, and is likely not applicable to 99.9% of all other users of Airlift.
Here is an alternative proposal for your consideration: Do both. Some kind of ReloadableSslContext does seem useful for most people. For those few of us who require more customization, could we also allow injection of an SslContextFactory to the HttpServer and HttpClient?

@electrum Are there any specific checks on the SslContext you can think of that would validate that it's safe? Or would wrapping it in a try/catch and only invoking .reload if all configuration and loading of the new sslContext be sufficient?

Closing now that PR has been merged to address this.


Why faithfullness is NaN most of the times even when context and answer both makes sense.

I am using Bedrock for my RAG and faithfullness is NaN most of the times even when context and answer both makes sense. The same problem is also there for the amnesty dataset shared in ragas docs.
Ragas version: 0.1.0
Code to Reproduce
from datasets import load_dataset
from ragas import evaluate
amnesty_qa = load_dataset("explodinggradients/amnesty_qa", "english_v2")
result = evaluate(amnesty_qa["eval"],metrics=[context_precision, faithfulness, answer_relevancy])
result.to_pandas()
Error trace

I see similar issue in my own dataset as well, but it's not clear why failthfulness is NaN. Could you please give some clarity what is the issue here.

I have experienced the same issue. faithfullness is always 0 when gpt-4 is used judge, and NaN when gpt-3.5 is used as judge.

hey @christdahl , I am not able to reproduce the issue using gpt4/3.5
If you're trying to customise models, please follow the updated docs here  for 0.1 version

Hi @repl-mira-agarwal Found the issue with bedrock, but this has been known to us for a while now. Bedrock as model seems completely incapable of producing valid JSON outputs. for example even with clear description and demonstrations this is how bedrock response to a query in faithfulness.
 Here are my responses:

statement_1: Criminalizing abortion disproportionately impacts marginalized groups, exacerbating existing inequalities and barriers to healthcare.
Verdict: Yes
Reason: The context indicates that marginalized groups are disproportionately affected by abortion criminalization, supporting this statement.

statement_2: When abortion is illegal, marginalized individuals may resort to unsafe methods, facing severe health risks and even death.
Verdict: Yes
Reason: The context states that criminalization leads to unsafe abortions and increased maternal mortality, supporting this statement.

statement_3: The economic burden of accessing abortion increases for marginalized individuals when it is criminalized.
Verdict: Null
Reason: The context does not provide information to support or refute this statement.

statement_4: Criminalizing abortion limits reproductive autonomy and choices for marginalized groups.
Verdict: Yes
Reason: The context indicates criminalization undermines access to services, supporting limited autonomy.

statement_5: It can lead to the criminalization of pregnancy itself, resulting in discrimination and punishment of marginalized women.
Verdict: Null
Reason: The context does not directly address criminalization of pregnancy.

statement_6```

Is there a way that you know of to improve this to help produce json outputs from bedrock?

Hey guys, just made a couple of changes that improved the filled values.
#588 #581
feel free to try out by installing from source once merged.

feel free to try out by installing from source once merged.

Can we get a (minor?) release for these? I'm also seeing some problems with faithfulness and context_recall on gpt4 where often only the first item of the list gets parsed.
(This is probably due to the "find outermost json" function, actually a fix for this would be to run "find outermost json" recursively until no json is found -- I'd be happy to write up this feature if there's interest).

Hey @pberger514 we can do a minor release tomorrow.

I'd be happy to write up this feature if there's interest

that would be great, please do :)

What model is being used for Bedrock? Also what prompt?

Hey guys, just made a couple of changes that improved the filled values. #588 #581 feel free to try out by installing from source once merged.

Thank you ShahuI for looking into this. I see this PR is merged but when I try installing updated RAGAS in Bedrock, it is now failing in importing ragas.langchain which is a wrapper llm required to pass bedrock model to RAGAS evaluate function. Could you please point out what could be the issue here.

What model is being used for Bedrock? Also what prompt?

Model I used for bedrock is meta.llama2-70b-chat-v1 and prompt is ChatPromptTemplate.

hey there, I've tried version 0.1.2 but still getting nan issues most of the time with gpt-3.5-turbo-1106 and those very simple inputs:
    dataset = Dataset.from_dict(
        {
            "question": ["What is the capital of France?"],
            "answer": ["The capital of France is Paris."],
            "contexts": [["France is a country in Europe.", "Paris is a city in France."]],
            "ground_truth": [""],
        }
    )

if I remove the second context example ("Paris is a city in France."), then it works just fine, which is quite odd

@shahules786 thanks for your work.
When performing ragas test evaluation, CustomLangchainLMM is using gpt-4-0125-preview, and likewise, sometimes I get a nan value for faithfulness metric. Is it a bug?

@shahules786 using Bedrock (more specifically any of the Anthropic Claude models v1-2.1) seems to always result in NaN as Claude is incapable of adhering to a specific output format. May have to get creative with that. Any ideas?

Hey @pberger514 can you update to the latest version, it should mostly fix the issue if you're using a good LLM. Feel free to close the issue if it's fixed.

@shahules786 updated to v0.1.7, seems much more stable now, no nans so far, thanks!

one of the problems I noticed is that sentences saying it can't reply always fail with nan (default gpt-3.5-turbo-16k model), for example:
"I couldn't find any information on completing your account. Can I help you with anything else today?"
I'm pretty sure it's because of this example on the faithfulness prompt:
question: "Were Hitler and Benito Mussolini of the same nationality?"
answer: "Sorry, I can't provide answer to that question."
statements: ```[]```

I mean I get it, in both cases, either for safety or the model not knowing, what should even be the faithfulness score in this case? Is it 0 because there is nothing to verify against the context? Is it faithful because indeed, the context does not reply the question? But I mean, shouldn't be nan right, that seems just like a bug, or is it expected to be nan in cases it cannot be evaluated?


support for BIDS session-keyword

Added command line argument "--session_label" to specify the BIDS key-value session-id which is used to name subfolders and filenames. Only a single session-label can currently be used.

Hi @BrainModes / @MichaelSchirner,
Not sure if the immediate closure of the PR was accidental or deliberate due to #62.
I've unfortunately not been able to put the time into this tool that I'd like to due to other obligations, and the time that I have already put in hasn't been properly finalised in order to form a new update. If however there's current demand for this functionality I'll try to find the time to tie off what I currently have and create a new tag.
Within #62, particularly with 63e05919, I have tried to implement robust and exhaustive detection / utilisation / control of processing of per-session data when present. There's also other changes in #73 (which is the code that's been progressively updated based on my own requirements) that are built upon this system. If you're trying to get in-place a processing pipeline for multi-session data, you might find that utilising this code satisfies your requirements; and indeed external verification that this is working as intended would assist myself in finally pushing out those changes.
Cheers
Rob

Hi Rob,
many thanks for this information. The PR was accidental -- the intention was only to merge changes I did locally with our BrainModes repository. We are forking this excellent piece of software (thank you!!) because we are going to develop it further and integrate it into larger workflows for multimodal MRI processing. Following your advice I will fork dev_3.0.0 and continue development from there.
Many thanks again!
Micha


Drinks and Patrons move automatically down lanes

Given a Drink or Patron game object and a chosen lane (see #4 and #5), Drinks and Patrons move along chosen lanes.
Patrons and Drinks should detect collisions with one another and raise a Scoring event.  This "Scoring event" can be a Log message for now.

The patron spawner script looks for a Patron script, the spawner currently needs the Patron to have a "seenEverySeconds" that is their spawn rate.  This should probably be done better, as it is right now it can be swingy (sometimes way too many, sometimes too few).

@Zaneeverett @LanceBailey Is this done?  Drinks spawn and those look like patrons??

Minor tweak to make patrons collect drinks, #26.  Closing #6


update HttpOnly wiki article link

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Tests pass?
❌

Fixed issues
https://github.com/yiisoft/yii2/issues/18849

👍🏻


sf::Sprite.SetPosition() with float coordinates

Explanation:
I was trying a second ago to draw a sprite (GUI button) relative to another sprite's position (GUI window). Everything worked fine except for the button to look extremely weird. I browsed the forum for explanations. Looked at SetSmooth(), all anti-aliasing features, then I found the reason.
How I got the error:

Draw a big (sf::Sprite) centered on a sf::RenderWindow (you know the odd trick dividing the screen in half then substracting it half the size of the sprite) ...
Get it's position using sf::Sprite::GetPosition()
---> Notice: IF THE WINDOW SIZE ISN'T A NUMBER DIVIDABLE BY 2, YOU'LL GET FLOAT COORDINATES ENDING WITH .5
Draw the other sprite relative to the first one's position (that'll also give you floating .5 coordinates)
Observe the image distortion the new sprite is affected by... (if it's an image with text, it's clearly visible).

So I was wondering, is this sort of unconsciousness from my side (I admit I don't work with floats often) or is it a static_cast() or something wrong in the code? I think SetPosition takes 2 ints, but GetPosition returns 2 floats (might be wrong on that one tho).
Anyway, there is also some Googling I've done and I wonder if this might be the reason:
#31
Cheers.

Anyway you can't draw half a pixel. I'll dive into the code and submit a patch if I find something.

Hum... no no, you're completely wrong. Don't dive into the code, you'll just waste your time.
Pixel perfect rendering is a very complex problem (probably the most complex one that I have in SFML), it's not just a wrong cast lost somewhere in the code...
Positions are not in pixels, they are in units of the 2D world. So everything works with floats (even SetPosition). There are integers only when dealing with the window's pixels (mouse coordinates, for example).
It's a known behaviour that decimal positions in SFML 2 don't produce a perfect result, but it's a design choice. Rounding coordinates would create other problems, even more complicated to solve.

See also http://www.sfml-dev.org/forum/viewtopic.php?t=3207
The easiest way is to ensure that objects are aligned at integral coordinates.

Okay so the automatic rounding has been removed as a design feature in revision 1390 (I assume the project used SVN before). Thanks then (: Is there any problem if I round the coordinates myself then? My view is of the same size as the window.


fix(chart): STACKED BARS VALUES did not show correctly when data has …

…negative value
fixed the bug #18996
before:

after:

@villebro hi, are you available to review the code?

Hi @zhoulijuanmiao, Could you double-check this PR? I haven't got any change on the PR.

before i fixed it, the chart was looked like this，could you ignore my change in local environment and check again?

Hi @zhoulijuanmiao, Thanks for your fix, and I have checked in your PR. Currently, the viz looks good. But it looks like there is an issue(might be too short) with all the negative values in the Viz.
After your PR

BTW, I found a workaround for showing labels is that set x tick layout to staggered.
Before your PR

hi @zhaoyongjie, Thanks for your check, seems like I need to explain the pr a bit more specific, as you can see, before my pr, there is a feature of how to show bar value labels, negative value showing on the bottom of the bar, positive value showing on the top of the bar.
The rule is satisfied in unstacked bar chart, to see it clearly, I set filters in all pictures below

But the rule is not satisfied in stacked bar chart, my purpose is to fix it

After my pr, the rule will be satisfied in stacked bar chart, additionally, this may make the viz looks better

@zhaoyongjie hi, any progress?

Tagging @villebro for review since he's played around with stacking negative values in this chart before.

Sorry this never got followed up on @ppjmiao — I'll add @michael-s-molina to the conversation, who recently looked at pos/neg value support in this chart quite closely. I'll also close/reopen this PR to retrigger CI and see if we can get it to pass.


Fix for no MapOnDefaultTextures support (Intel Graphics 4000 crash)

I ran into an issue with an older iGPU (Intel HD Graphics 4000):

Fatal Exception
[Content]
A fatal exception (code 0xc0000005) occurred. The process is terminating.
Press Ctrl+C to copy this text to clipboard, then create a new issue at
https://github.com/EpicGames/raddebugger/issues
Call stack:

[0x7ffc09c998a0] d3d11
[0x7ff7e267e314] r_fill_tex2d_region +452, render_d3d11.cpp line 689
[0x7ff7e268886a] f_push_run_from_string +3130, font_cache.c line 744
[0x7ff7e272986f] df_window_open +1391, df_gfx.c line 987
[0x7ff7e278d2f4] df_gfx_begin_frame +9076, df_gfx.c line 13321
[0x7ff7e27a387a] update_and_render +4234, raddbg.c line 301
[0x7ff7e25ec784] entry_point +6196, raddbg_main.cpp line 397
[0x7ff7e25e6d3b] main_thread_base_entry_point +491, base_entry_point.c line 84
[0x7ff7e27a62b0] w32_entry_point_caller +512, os_core_win32.c line 1794
[0x7ff7e25d6776] wWinMain +54, os_core_win32.c line 1806
[0x7ff7e27c5802] __scrt_common_main_seh +262, exe_common.inl line 288
[0x7ffc0eef7344] KERNEL32
[0x7ffc102a26b1] ntdll

Version: 0.9.10 [489ae56-dirty]

Enabling -d3d11_debug, it's caused by this D3D error:

D3D11 ERROR: ID3D11Device::CreateTexture2D: CheckFeatureSupport() API with D3D11_FEATURE_D3D11_OPTIONS2 must report support for MapOnDefaultTextures for a D3D11_USAGE_DEFAULT Texture Resource to have CPUAccessFlags set. CPUAccessFlags are currently set to: D3D11_CPU_ACCESS_READ (0), D3D11_CPU_ACCESS_WRITE (1). MapOnDefaultBuffers is (false). [ STATE_CREATION ERROR #98: CREATETEXTURE2D_INVALIDCPUACCESSFLAGS]

I went ahead and worked around it by using Map() instead of UpdateSubresource. It's not an ideal solution, since it's mapping and unmapping each time a glyph is written into the texture, but at least it got it working. Just tossing this your way as a bug report moreso than a PR.

I've created better fix in #226 - no need to rely on MapOnDefaultBuffers at all.

Nice one!


feat/fare-field

Please review before merging.

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


[YouTube] Implement optional YouTube server-imposed throttling bypass

Checklist

[x] I'm reporting a site feature request
[x] I've verified that I'm running youtube-dl version 2021.04.17
[x] I've searched the bugtracker for similar site feature requests including closed ones

Description

First of all, thanks for your amazing software 👍🏻
Recently the following issue is occurring increasingly frequent: In some cases when downloading from YouTube (especially YT Music), the server throttles download speed to 58-60 KiB/s. (My internet connection however is stable and has a constant 4-6 MiB/s bandwith.) This happens in a pattern that I cannot describe more precisely right now. However it seems mostly random but associated to the download url from the extracted info_dict, since --http-chunk-size doesn't solve the issue but interrupting the download completely and immediately restarting (video is extracted again) solves the issue most of the time.
If nobody else can come up with another solution, I would recommend implementing a new CLI flag that will cause a check of the download speed against a threshold and will interrupt download and restart the extraction completely if the  download speed falls under the threshold (for some amount of time?).
I would be incredibly grateful for a workaround! :heart: I don't feel comfortable enough in Python to implement one myself and request a push... 😉

I think i had the speeds go down to 30-40kb/s when i was downloading a playslist (videos) yesterday and the speed never go up again, i just close youtube-dl and run it again and then it continues again with the normal speeds, so this has been my workaround for this too, it seems like we are having the same issue, but i'm not exactly sure though.

I've been experiencing this issue as well with getting my Watch Later videos using youtube-dl.  I noticed my scripts were taking an entire day to run instead of minutes.  I did a bunch of test runs and found that if I downloaded items rapidly at full speed I would start to get throttled by Youtube.  I tried implementing a variety of settings and finally found that randomizing time between shows and capping the speed kept me from being throttled for the last month.
--sleep-interval 120 --max-sleep-interval 300 --limit-rate 4M
Until today...  I stated getting some videos throttled again but at least unlike last time it was a couple of them and not all of them.  I've started expanding my minimum sleep interval to 200 to see if that helps.

في اثنين، 14 يونيو، 2021 في 5:48 م، كتب Leith Tussing <
@.***>:

I've been experiencing this issue as well with getting my Watch Later
videos using youtube-dl. I noticed my scripts were taking an entire day to
run instead of minutes. I did a bunch of test runs and found that if I
downloaded items rapidly at full speed I would start to get throttled by
Youtube. I tried implementing a variety of settings and finally found that
randomizing time between shows and capping the speed kept me from being
throttled for the last month.
--sleep-interval 120 --max-sleep-interval 300 --limit-rate 4M
Until today... I stated getting some videos throttled again but at least
unlike last time it was a couple of them and not all of them. I've started
expanding my minimum sleep interval to 200 to see if that helps.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ytdl-org/youtube-dl/issues/28859#issuecomment-860745241,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUO2ANZ5M7XJENUUEVJDVNLTSYJDJANCNFSM43QM4GCQ
.

After more experimentation, and some very helpful hints from mech, I have been able to reproduce the speeds that mech is capable of. I have found that two things are necessary to bypass throttling:

Use media links with c set to ANDROID instead of WEB in the query parameters. This would be easy, except for media links are signed, so they can't be edited. The only way I know of to get android media links is the same way mech does it: getting the streamingData from POST /youtubei/v1/player instead of from var ytInitialPlayerResponse in GET /watch and setting clientName to ANDROID (and setting a plausible clientVersion).
Download the data in chunks of around 10MB or less using a range=<start>-<end> query parameter or a Range: header. And yes, this is what mech does lol.

The user agent is unimportant.
I've written a short python demo of the throttling bypass:
#!/usr/bin/env python

from requests import Session
import json

def jprint(j):
    print(json.dumps(j, indent=4))

def api_key(response):
    from bs4 import BeautifulSoup
    import re
    soup = BeautifulSoup(response, 'html.parser')
    key = None
    for script_tag in soup.find_all('script'):
        script = script_tag.string
        if script is not None:
            match = re.search(r'"INNERTUBE_API_KEY":"([^"]+)"', script)
            if match is not None:
                key = match.group(1)
                break
    assert key is not None
    return key

id = 'yiw6_JakZFc'

session = Session()
session.headers = {
    # This is to demonstrate how little the user agent matters, and also for
    # fun.
    'User-Agent': 'Fuck you, Google!',
}

# Hit the /watch endpoint, but we actually only want an API key lol.
response = session.get(
    'https://www.youtube.com/watch',
    params={'v': id},
).content.decode()
key = api_key(response)

# OK, now use the API key to get the actual streaming data.
post_data = {
    'context': {
        'client': {
            'clientName': 'ANDROID',
            'clientVersion': '16.05',
        },
    },
    'videoId': id,
}
data = json.loads(session.post(
    'https://www.youtube.com/youtubei/v1/player',
    params={'key': key},
    data=json.dumps(post_data),
).content)

for f in data['streamingData']['adaptiveFormats']:
    if 'height' in f and f['height'] == 720:
        print(f['url']+'&range=0-10000000')
        break

I implemented the fix in my youtube client.

In the past I always got full download speed via youtube-dl.
Today when I used youtube-dl again after 1-2 years of not having used it, I was consistently throttling at ca. 50 KB/sec. Also after various stops and resumes. I use youtube-dl 2021.12.17 installed via brew on macOS 11.6.6.
I guess a good method to bypass throttling is to not download anonymously but as a logged in Google/Youtube user.
Hence making the use of cookies as easy and user friendly as possible would very likely help most users to overcome throttling.
--cookie is rather for technical users and requires much manual labor and extra software.
--cookie-from-browser <MyPreferredBrowser> on the other hand would be very convenient and practically.
Hence pull request https://github.com/ytdl-org/youtube-dl/pull/29201 should may be expedited in order to solve the throttling issue.

I confirm that yt-dlp 2022.5.18 in comparison to youtube-dl 2021.12.17  successfully bypasses the Youtube throttle!

I just cd ed to another download destination directory, to avoid file overwriting.
Copied the entire youtube-dl command line with all arguments and just exchanged it to yt-dlp.
No cookies argument whatsoever.
👍 And bang. No throttle anymore. Full download speed again!

Looks like this was about to get fixed here: https://github.com/dirkf/youtube-dl/pull/6
Then, nothing happened. Also, looks like this is a duplicate of https://github.com/ytdl-org/youtube-dl/issues/29326 .

Hello, did you solve the problem? and how did you do that?

The following merged PRs fix this issue:

#30184
#30366
#30582
#30585

To benefit from these you have to install from the git master until the useless sob maintainer makes a new release.


Add created-on and modified-on dates to inspection objects

Upon running cron jobs and scraping the csv files for new data. If a new object, insert created-on. If modifying or updating, update modified-on. This is good for multiple purposes- including the fact that we could check how regularly entities are updated and if they are updating successfully.

Done.


Conditional on select (array) and regex

Hi,
In Tag.testConditions when the tagvalue is an array (from a select?) the condition is not checked against a provided regex.
I solved this by doing:
// tag value is an array
var isValid = false;
for (var i = 0; i < condition.conditionals.length; i++) {
	var conditional = condition.conditionals[i];
	var value = tagValue[0];
	if (typeof conditional === "object") {
		// regex
		isValid = conditional.test(value);
	}
	else {
		// string comparisson
		isValid = tagValue.toString() == conditional.toString();
	}
	if (isValid)
		break;
}

But I'm not sure about the 'var value = tagValue[0];' part.
In my situation this works perfect but is the value to check against always a single item?
Then [0] is valid...
Best regards,
JamBo

@nuFaqtz I have added it on my list, will make some test scenarios for select. Expect something from me tomorrow.

@nuFaqtz can you have a re-check of your issue with the version I just pushed to develop? thanks :)

@felixnielsen Validated & working as expected,
thnx

@nuFaqtz great, will push a release later today with these micro fixes.


can't delete registerCodeLensProvider and set same commands for every language

monaco-editor version: ^0.10.0
Browser: any
OS: mac
use React
I have same commands, but in different lines in different editor files.  Started from simple - added same command for every files that will be opened.
  private editorDidMount = (editor, monaco) => {
       const selectCurrentChanges = editor.addCommand(0,() => alert('my command is 1!'), '');
       const selectIncomingChanges = editor.addCommand(0, () => alert('my command is 2!'), '');

       monaco.languages.registerCodeLensProvider('javascript', {
         provideCodeLenses: function(model, token) {
             return [
                 {
                   range: { startLineNumber: 1 },
                   id: 0,
                   command: {
                       id: selectCurrentChanges,
                       title: 'Accept Current Changes',
                   },
                 }, {
                   range: { startLineNumber: 1 },
                   id: 1,
                   command: {
                        id: selectIncomingChanges,
                       title: 'Accept Incomin Changes',
                   },
                 },
             ];
         },
         resolveCodeLens: function(model, codeLens, token) {
                     return codeLens;
                 },
             },
      );

   }

expected see (in all files)

but when open second file have

third time added same again, so on.
Also can't understand how set commands to every languages, not only for specific one

found way how delete registerCodeLensProvider

const res = monaco.languages.registerCodeLensProvider('javascript', {
provideCodeLenses: function(model, token) {
return [
{
range: { startLineNumber: 1 },
id: 0,
command: {
id: selectCurrentChanges,
title: 'Accept Current Changes',
},
}
];
},
resolveCodeLens: function(model, codeLens, token) {
return codeLens;
},
},
);
res..dispose(); //will delete registerCodeLensProvider

@lyudad HI! Could you debug editorDidMount? It looks like it gets called several times, like for each file.
You can move code lens provider code of editorDidMount to make sure that it is registered only once. It should be straightforward.
You can access all languages with: monaco.languages.getLanguages() and then iterate and register a provider for each, something like here: https://github.com/TypeFox/monaco-languageclient/blob/7a2963e7b808d42b50cee5225b32c712a2c134d2/src/languages.ts#L250-L257.

thank's that help