[Feature Request] Reduce allocation, reuse backbuffer, improve speed

Background
I am using plotters together with minifb to visualize real time sensor data. The combination is awesome, since both libraries are very lightweight, and it's easy to do portable, real-time UIs.
One implication is that all rendering is purely SW; plotters writes into a byte array, which minifb  uses to update the frame buffer.
Unfortunately, in that process as of today, data has to be copied around multiple times for no reason other than plumbing, which costs precious CPU cycles.
Feature Request

What is the feature ?

Plotters' BitMapBackend should accept a user-provided byte buffer to render into; instead of allocating its own.

Why do you need the feature ?
What is the use case ?

See above; to reduce allocation, improve performance.

Hi @ralfbiedert,
Thanks for the suggestion and PR.
The PR looks great to me and this is definitely the thing needs to be improved!.
Thanks again and I am going to dig into this a little bit and merge the PR!

Your PR looks really nice and I like it. Seems this issue can be closed, feel free to reopen it if I forget anything. Thanks!


feat(traverse): add methods to BoundIdentifier + MaybeBoundIdentifier to create SimpleAssignmentTargets

We had methods to create AssignmentTargets. Add methods to create SimpleAssignmentTargets too.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#7011
#7122
#7418  👈 (View in Graphite)
#7417
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Merge activity

Nov 22, 7:30 AM EST: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


[FR] Update to 2.1-preview.2 with generation and recordings

Expose new features from service as is.
I had to change some tests because service output changed.
The service hasn't deployed receipts and BC in their 2.1-preview.2 endpoints so disable those tests (for now).
Re-record all tests

@kinelski thank you for catching my errors!!


update deps to chef-13/ohai-13

release blocker for chef-dk 2.0

What type of version bump should be included with this? I wonder if we need a MAJOR version bump.

We'll also need to update the Travis stuff to mirror the Ruby versions for Chef 13 (2.3.X and 2.4.X probably)

the external API of pushy isn't really changing though?

@here okay now we're still allowing chef-12, i think that makes this definitely a minor bump?


Proposition to refactor the multiset checks across the codebase

I'd like to suggest a refactoring of our various multiset checks; this will be necessary soon enough when we integrate them into LogUp-GKR anyways. The current abstractions we have couple a few distinct concerns:

The running product columns use the AuxColumnBuilder trait. While this is a step in the right direction, this abstraction couples the description of the multiset check along with the fact that it will be proved using a running product column (e.g. here).
The range checker uses LogUp, proved using a running sum column. The implementation of this running sum column is custom-made for the range checker (unlike what the AuxColumnBuilder does with the running product column).

Now, with the new LogUp-GKR proving system, we will need to rewrite all multiset checks that use the AuxColumnBuilder, since as described, are currently coupled to a running product column implementation.
The ideal multiset check abstractions would allow us to describe a multiset check instance once, and then swap between various compatible ways of proving it (e.g. running product column, running sum column, GKR, etc.). Also ideally, our abstractions for building running sum/product columns would be general enough to work out of the box with any "compatible" multiset check instance (more on that later). While we are thinking of switching over all multiset checks to be proved using LogUp-GKR, I still think it would be valuable to quickly swap some multiset checks in/out of LogUp-GKR, and be proved using a running product/sum column instead, for the purposes of benchmarking, and A/B testing more generally.
Below, I will first describe how I think about the different "variants" of multiset checks, which will justify the set of abstractions that I describe next.
Background
The 2 main categories of multiset checks are, as identified in our docs,

multiset checks without multiplicities (that we'll just call "multiset check")
multiset checks with multiplicities

It is important to distinguish between the two, since for example, a running product column can be used to prove/instantiate multiset checks, but not multiset checks with multiplicities (at least not with general polynomials as multiplicities). We will use the following mathematical models for each:

multiset checks

$$
\prod_{i=0}^{n-1} \prod_{j=0}^{k-1} a_{ij}(\psi) = \prod_{i=0}^{n-1} \prod_{j=0}^{k-1} b_{ij}(\psi)
$$

multiset checks with multiplicities

$$
\prod_{i=0}^{n-1} \prod_{j=0}^{k-1} a_{ij}(\psi)^{m_{a_{ij}}} = \prod_{i=0}^{n-1} \prod_{j=0}^{k-1} b_{ij}(\psi)^{m_{b_{ij}}}
$$
Here, $n$ is the length of the trace, and $k$ is the maximum number of terms that can be generated in a single row. Also, $\psi = (\psi_0, \dots, \psi_{c-1})$ is a set of random elements that the multiset elements are allowed to use. In the current codebase, these are the alphas that are used e.g. to merge virtual table columns together. Finally, $m_{a_{ij}}$ and $m_{b_{ij}}$ are polynomials derived from the trace that act as the multiplicity for the corresponding $a_{ij}$ or $b_{ij}$, respectively. Those currently don't have access to $\psi$, but if that turns out to be useful, they certainly could.
A very important point that is often overlooked is the question of which rows do $a_{ij}(\psi)$ and $b_{ij}(\psi)$ have access to? This will end up affecting how the underlying proving system (running product/sum/GKR) looks like. The 2 real options right now are:

They only have access to row $i$.
They have access to rows $i$ and $i+1$

Currently in the VM, the range checker is the only multiset check that only needs row $i$. All the other ones need rows $i$ and $i+1$. Note however that this is a property of the proving system, in that it doesn't only affect multiset checks, but any column built using it. To be concrete, the "s" auxiliary column in LogUp-GKR is a built as a running sum (since it implements an inner product); this running sum, even if not a multiset check, will be built different whether "s" needs access to row $i$ only or both rows $i$ and $i+1$.
Normally, you'd think that since 2 is more general than 1, every problem 1 could be modeled as 2. But there's one important caveat: 2 is not a strict generalization of 1, since in 2, the last row is not allowed to contain multiset elements (since they're defined in terms of 2 rows). This is the case with the range checker: we are building the running sum column in a way that you would build a running sum column for 2 (even though the range checker elements never use row i+1), since we ensure that the last row of the trace is a HALT operation, and hence cannot contain a range check request (see #1383). However, this isn't possible with LogUp-GKR's "s" column: there always needs to be a multiset element generated on the last row, and so we cannot reuse a running sum column built for 2.
There are a few ways to build a column for 1, but the one we've honed in for LogUp-GKR's "s" column is described in https://github.com/facebook/winterfell/issues/286. As for building a column for 2, this is exactly how the current AuxColumnBuilder does it.

UPDATE: it turns out that only needing access to row $i$ (and allowing multiset elements to be generated in the last row) is a little difficult to deal with. The only concrete use case that we have currently is the LogUp-GKR's "s" column, but we're probably going to get rid of it, and so we would have no real use case for option 1 anymore. As a result, we could simplify the proposed abstractions below by not making the Frame type generic.

Proposed abstractions
The key takeaways from the previous section are:

We want to represent 2 types of multiset check instances: MultisetCheck and MultisetCheckWithMultiplicities

Each such instance will need to distinguish whether its elements can be built using only row $i$, or both row $i$ and $i+1$

We will need two abstractions column building: a "general" running product column, and a "general" running sum column

By "general", we mean:

there is a blanket implementation (or similar) to build a running product column from any MultisetCheck instance
there is a blanket implementation (or similar) to build a running sum column from any MultisetCheck instance
there is a blanket implementation (or similar) to build a running sum column from any MultisetCheckWithMultiplicity instance

Multiset check abstractions
These are the types to encode multiset checks, along with a few examples.
/// Note: Contrary to our current `AuxColumnBuilder`, we model explicitly that each frame is allowed
/// to return multiple requests/responses.
///
/// Note: instead of return `Vec<E>`, we would probably read into a buffer instead.
trait MultisetCheck<E: FieldElement, Frame> {
    /// Returned flags restricted to be 0 or 1
    fn get_flags_for_request(&self, frame: &Frame) -> Vec<E>;
    /// Returned flags restricted to be 0 or 1
    fn get_flags_for_response(&self, frame: &Frame) -> Vec<E>;

    // The inputs to a request function are `frame: &Frame` and `alphas: &[E]`, (where `alphas` is
    // `\psi` in the writeup).
    fn get_requests(&self) -> Vec<Box<dyn Fn(&Frame, &[E]) -> Vec<E>>>;
    // The inputs to a response function are `frame: &Frame` and `alphas: &[E]`
    fn get_responses(&self) -> Vec<Box<dyn Fn(&Frame, &[E]) -> Vec<E>>>;
}

trait MultisetCheckWithMultiplicities<E: FieldElement, Frame> {
    /// Returned multiplicities could be any field element
    fn get_multiplicities_for_request(&self, frame: &Frame) -> Vec<E>;
    /// Returned multiplicities could be any field element
    fn get_multiplicities_for_response(&self, frame: &Frame) -> Vec<E>;

    fn get_requests(&self) -> Vec<Box<dyn Fn(&Frame, &[E]) -> Vec<E>>>;
    fn get_responses(&self) -> Vec<Box<dyn Fn(&Frame, &[E]) -> Vec<E>>>;
}

/// Given the same frame, we always know how to build
impl<E: FieldElement, Frame, T> MultisetCheckWithMultiplicities<E, Frame> for T
where
    T: MultisetCheck<E, Frame>,
{
    // It is always better to model flags as multiplicities in LogUp
    fn get_multiplicities_for_request(&self, frame: &Frame) -> Vec<E> {
        self.get_flags_for_request(frame)
    }

    // It is always better to model flags as multiplicities in LogUp
    fn get_multiplicities_for_response(&self, frame: &Frame) -> Vec<E> {
        self.get_flags_for_response(frame)
    }

    fn get_requests(&self) -> Vec<Box<dyn Fn(&Frame, &[E]) -> Vec<E>>> {
        <Self as MultisetCheck<E, Frame>>::get_requests(self)
    }

    fn get_responses(&self) -> Vec<Box<dyn Fn(&Frame, &[E]) -> Vec<E>>> {
        <Self as MultisetCheck<E, Frame>>::get_responses(self)
    }
}

/// Represents one of our virtual table. They all don't need multiplicities, and all need row `i`
/// and `i+1`, hence we set the `Self::Frame = EvaluationFrame`.
struct VTable {}

impl<E: FieldElement + 'static> MultisetCheck<E, EvaluationFrame<E>> for VTable {
    fn get_flags_for_request(&self, frame: &EvaluationFrame<E>) -> Vec<E> {
        todo!()
    }

    fn get_flags_for_response(&self, frame: &EvaluationFrame<E>) -> Vec<E> {
        // Here, for example, this would return the flags
        //   1. 1 if opcode is `JOIN`, 0 otherwise
        //   2. 1 if opcode is `SPLIT`, 0 otherwise
        // which correspond to the return vector of `get_responses()`
        todo!()
    }

    fn get_responses(&self) -> Vec<Box<dyn Fn(&EvaluationFrame<E>, &[E]) -> Vec<E>>> {
        vec![Box::new(response_when_join), Box::new(response_when_split)]
    }

    fn get_requests(&self) -> Vec<Box<dyn Fn(&EvaluationFrame<E>, &[E]) -> Vec<E>>> {
        todo!()
    }
}

fn response_when_join<E: FieldElement>(frame: &EvaluationFrame<E>, alphas: &[E]) -> Vec<E> {
    todo!()
}

fn response_when_split<E: FieldElement>(frame: &EvaluationFrame<E>, alphas: &[E]) -> Vec<E> {
    todo!()
}

/// Our range checker on the other hand does need multiplicities, so we implement
/// `MultisetCheckWithMultiplicities` directly. As discussed in the background section, it is legal
/// to use both `CurrentRow` and `EvaluationFrame` as frames. We only implement with `Evaluation` in
/// this example.
struct RangeChecker;

impl MultisetCheckWithMultiplicities<Felt, EvaluationFrame<Felt>> for RangeChecker {
    fn get_multiplicities_for_request(
        &self,
        frame: &EvaluationFrame<Felt>,
    ) -> Vec<Felt> {
        todo!()
    }
    fn get_multiplicities_for_response(
        &self,
        frame: &EvaluationFrame<Felt>,
    ) -> Vec<Felt> {
        todo!()
    }
    fn get_requests(
        &self,
    ) -> Vec<Box<dyn Fn(&EvaluationFrame<Felt>, &[Felt]) -> Vec<Felt>>> {
        todo!()
    }
    fn get_responses(
        &self,
    ) -> Vec<Box<dyn Fn(&EvaluationFrame<Felt>, &[Felt]) -> Vec<Felt>>> {
        todo!()
    }
}

Running product/sum column abstractions
These are the abstractions that build running product/sum columns from a multiset check.
/// Allows to tune how each running product/sum columns will be initialized.
trait FoldColumnInitializer<E: FieldElement> {
    fn init_requests(&self, _main_trace: &MainTrace, _alphas: &[E]) -> E;
    fn init_responses(&self, _main_trace: &MainTrace, _alphas: &[E]) -> E;
}

struct DefaultRunningProductInitialization;

impl<E: FieldElement> FoldColumnInitializer<E> for DefaultRunningProductInitialization {
    fn init_requests(&self, _main_trace: &MainTrace, _alphas: &[E]) -> E {
        E::ONE
    }

    fn init_responses(&self, _main_trace: &MainTrace, _alphas: &[E]) -> E {
        E::ONE
    }
}

struct DefaultRunningSumInitialization;

impl<E: FieldElement> FoldColumnInitializer<E> for DefaultRunningSumInitialization {
    fn init_requests(&self, _main_trace: &MainTrace, _alphas: &[E]) -> E {
        E::ZERO
    }

    fn init_responses(&self, _main_trace: &MainTrace, _alphas: &[E]) -> E {
        E::ZERO
    }
}

/// Running sum column "backend" for `MultisetCheckWithMulticiplities`.
///
/// Note: Because all `MultisetCheck` get a blanket implementation for
/// `MultisetCheckWithMultiplicities`, this also allows a running sum column to be built for all
/// `MultisetCheck`.
fn build_running_sum_column<E: FieldElement>(
    initializer: impl FoldColumnInitializer<E>,
    multiset_check: impl MultisetCheckWithMultiplicities<E, EvaluationFrame<E>>,
    main_trace: &MainTrace,
    alphas: &[E],
    logup_randomness: E,
) -> Vec<E> {
    // Similar to `AuxColumnBuilder::build_aux_column`, but taking into account multiplicities
    todo!()
}

/// Running product column "backend" for `MultisetCheckWithMulticiplities`.
fn build_running_product_column<E: FieldElement>(
    initializer: impl FoldColumnInitializer<E>,
    multiset_check: impl MultisetCheck<E, EvaluationFrame<E>>,
    main_trace: &MainTrace,
    alphas: &[E],
) -> Vec<E> {
    // Similar to `AuxColumnBuilder::build_aux_column`
    todo!()
}

LogUp-GKR integration
Below is an idea of how the current LogUp-GKR backend would use the new multiset check abstractions, although we probably will end up doing something slightly different since LogUp-GKR is more in flux. This serves as a small example of how it would work.
/// Modification of the current function with the same name.
pub fn evaluate_fractions_at_main_trace_query<const NUM_RESPS: usize, const NUM_REQS: usize, E>(
    multiset_checks: Vec<
        impl MultisetCheckWithMultiplicities<E, EvaluationFrame<E>>,
    >,
    main_trace: &MainTrace,
    row_idx: usize,
    log_up_randomness: &[E],
) -> [[E; NUM_WIRES_PER_TRACE_ROW]; 2]
where
    E: FieldElement,
{
    // Assuming we keep this interface, this would simply query the multiset checks and return the
    // [multiplicies, requests & responses]
    todo!()
}

Thank you for such a detailed write up! The general direction of this makes a lot of sense to me - but I do have a few questions/comments.
First, the functions in the proposed interface return vectors in many cases. Given that these will be called for every row in an execution trace, I've been trying to stay away from returning vectors as it could result in extra allocations. I haven't actually measured the impact of returning vectors - so, to be honest, not sure if it is negligible or quite significant. But I think before we commit to using vectors in the interface, would be good to understand if we'll experience a noticeable degradation in performance. Or alternatively, we could refactor interfaces to avoid allocating vectors on every call.
Also related to the above, I wonder what the impact of using Box<dyn Fn(&EvaluationFrame<E>, &[E]) -> Vec<E>>  would be as I think the compiler would not be able to inline calls to these functions.
For LogUp-GKR, would we actually need this structure? If building of the Lagrange kernel and s columns (assuming we still need it) moves to Winterfell, I think we would not need to build any auxiliary columns here. The only thing that would be needed are the changes to the Air interfaces discussed in https://github.com/0xPolygonMiden/miden-vm/issues/1386#issuecomment-2227899609. So, I think things like MultisetCheck and MultisetCheckWithMultiplicities and their implementations should probably live in the air crate of the VM.
I also wonder if there is value in separating MultisetCheck and MultisetCheckWithMultiplicities. I understand that they are conceptually different, but it seems like their interfaces and treatments are basically the same. Maybe we could collapse them into a single interface?
Also, when building request/response flags and values, we may need access to periodic column values - so, it might make sense to add them to the input parameters.

First, the functions in the proposed interface return vectors in many cases. Given that these will be called for every row in an execution trace, I've been trying to stay away from returning vectors as it could result in extra allocations.

Indeed, I was only returning Vec<E> for illustration purposes; the MultisetCheck trait has a note about that, but maybe that was too subtle of a place to put it. In any case, yes if we find that it is indeed faster to write into a buffer instead, then we should modify the interface accordingly.

I wonder what the impact of using Box<dyn Fn(&EvaluationFrame<E>, &[E]) -> Vec<E>> would be as I think the compiler would not be able to inline calls to these functions.

Good point. We should then modify the interfaces to e.g. (again, not necessarily returning Vec):
trait MultisetCheck<E: FieldElement, Frame> {
    // ...

    /// The implementation takes care of evaluating all its "inner functions",
    /// and only returning the result.
    fn get_requests(&self, frame: &Frame, alphas: &[E]) -> Vec<Vec<E>>;

    // ...
}

For LogUp-GKR, would we actually need this structure?

With LogUp-GKR, we would only need the MultisetCheck and MultisetCheckWithMultiplicities traits, which would be used by the evaluation of the input layer.
However, I think it's still worth implementing the running sum/product columns (although at a lower priority), specifically for A/B testing. I would like to get to a point where, for example, answering the question "would it be faster to use a running product column for this bus instead of adding it to LogUp-GKR?" could be answered in a matter of at most a few hours. If it turned out that it was, it would have repercussions on AirScript, but I'm punting that problem down the road for if/when we get there.

I also wonder if there is value in separating MultisetCheck and MultisetCheckWithMultiplicities.

The main value is to allow proving systems to only be implemented for the appropriate version of a multiset check. The biggest case we want to avoid is allowing a running product column to prove a MultisetCheckWithMultiplicities (for which it would not be possible to write constraints in general).
And in fact they are treated differently. For example, RangeChecker only implements MultisetCheckWithMultiplicities, and so would not be able to be proved by a running product column.
The decision to represent flags explicitly in the MultisetCheck was only a convenience for the user. When flags are explicitly represented, then we know how to build a MultisetCheckWithMultiplicities from a MultisetCheck, since it is always better to put the flags in the multiplicity position. And so we have a blanket implementation that does just that. And so ultimately, the relationship we have is "every MultisetCheck is a MultisetCheckWithMultiplicities but not every MultisetCheckWithMultiplicities is a MultisetCheck.

Also, when building request/response flags and values, we may need access to periodic column values - so, it might make sense to add them to the input parameters.

Ah yes, we should add those too.

I think it's still worth implementing the running sum/product columns (although at a lower priority), specifically for A/B testing. I would like to get to a point where, for example, answering the question "would it be faster to use a running product column for this bus instead of adding it to LogUp-GKR?" could be answered in a matter of at most a few hours.

Agreed!

The main value is to allow proving systems to only be implemented for the appropriate version of a multiset check. The biggest case we want to avoid is allowing a running product column to prove a MultisetCheckWithMultiplicities (for which it would not be possible to write constraints in general).
And in fact they are treated differently. For example, RangeChecker only implements MultisetCheckWithMultiplicities, and so would not be able to be proved by a running product column.

Makes sense. But I'm wonder since there are no interface differences whether MultisetCheckWithMultiplicities could be just a marker trait. That is, it could look something like this:
pub trait MultisetCheck<E: FieldElement> {
    ...
}

pub trait MultisetCheckWithMultiplicities<E: FieldElement>: MultisetCheck<E>;

Also, thinking about this more, I'm wondering if should combine request/response and their corresponding flags/multiplicities into a single struct. Maybe something like:
pub struct Request<E: FieldElement> {
    pub latch: E, // equivalent to numerator
    pub value: E, // equivalent to denominator
}

// Could also be combined with `Request` - but not sure under what time
pub struct Response<E: FieldElement> {
    pub latch: E, // equivalent to numerator
    pub value: E, // equivalent to denominator
}

And then MultisetCheck could look something like this:
pub trait MultisetCheck<F: FieldElement> {

    fn fill_requests<E: FieldElement<BaseField = F> + ExtensionOf<F>>(
        &self,
        frame: &EvaluationFrame<F>,
        periodic_values: &[F],
        &mut result[Request<E>],
    );

    fn fill_responses<E: FieldElement<BaseField = F> + ExtensionOf<F>>(
        &self,
        frame: &EvaluationFrame<F>,
        periodic_values: &[F],
        &mut result[Response<E>],
    );

}

We could also simplify this by keeping the inputs and output in the same filed, and then handle the final adjustment by randomness separately (i.e., the returned denominator would be just $v$ instead of $\alpha + v$). In this case, we'd have something like this:
pub trait MultisetCheck<E: FieldElement> {

    fn fill_requests(
        &self,
        frame: &EvaluationFrame<E>,
        periodic_values: &[E],
        &mut result[Request<E>],
    );

    fn fill_responses(
        &self,
        frame: &EvaluationFrame<E>,
        periodic_values: &[E],
        &mut result[Response<E>],
    );

}


Nested WS proxy

These changes are going to make WS proxied endpoint to
be treated in the same way as HTTP proxied endpoint.
This means if backend=ws://localhost:8000/ws is set, the queries to
ws://localhost:8080/ws/entityX will be forwarded to
ws://localhost:8000/ws/entityY.
Before that only requests directly to ws://localhost:8080/ws
are forwarded to ws://localhost:8080/ws.
My motivation for submitting this PR is that I'm using multiple WS endpoints with dynamic paths on the server.
e.g. /ws/{customer_name}/notifications
And trunk is not able to handle this smoothly.

Checklist

[X] Updated CHANGELOG.md describing pertinent changes.
[X] Squash down commits to one or two logical commits which clearly describe the work you've done. If you don't, then Dodd will 🤓.

@shenek thanks for the PR! I will be reviewing this shortly!

I have tested this and it works for me (and it's very useful, thanks!). I'm not a maintainer but FWIW the code also looks good to me, it's a pretty simple change.

I'm going to pull these changes locally and resolve the conflicts. The GH UI for this is pretty bad IMHO.

@thedodd ping.

Will merge after CI goes green.

Linter issues. Ping me once those are g2g :)

@thedodd ping.
I hope it is ready now. There were some issues with the latest version of clippy and some unrelated source file. So I added an extra commit for that, but feel free to redo it ;-)


Add Article featured and related

Alike Zinnia, a feature field to mark article and a related field for m2m relations between articles.

Done in eafec56


Enhance User Experience: Add Clarification Button and Notice

Fixes

Fixes #793 by @TimidRobot

Description

Adds a clarification button in the hero section of the homepage labeled "Share your work using our licenses/tools."
The button links to https://creativecommons.org/share-your-work/ to guide users on sharing their work.
Implements a sticky notice that remains visible as the user scrolls, ensuring continuous access to important information.

Screenshots

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added or updated tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

For the purposes of this DCO, "license" is equivalent to "license or public domain dedication," and "open source license" is equivalent to "open content license or public domain dedication."

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Hi! and thank you for this contribution.
I would say that the sticky notice at the top is disruptive from a UX perspective, likely violates Accessibility, and that it would also collide with the Explore CC nav when it gets added to the header later on.
There is also work already proceeding to correct this here:

https://github.com/creativecommons/creativecommons.github.io-source/pull/810

There might be avenues of combining the work there?

@possumbilities
Thank you for your feedback! I appreciate your concerns about the sticky notice and its potential impact on UX and accessibility.


converting urls to lower case before checking whether they contain a …

…protocol
fix for issue 'Links don't work if any characters in 'https' are uppercase #221'

Thanks! Scheduled for 4.0


issue with responses cacheing (parameters sticking?)

nvm, this was issue on my end 🙈

nothing to see here...

realized this might actually not be on my end so I'm reopening this.


HTML reports are not getting attached to email

Hi,
My Test Environment:
Centos 6.9  (Final)  - Seccubus-2.31.4-90.1 - MySQL database
Scan run on Single Host with 52 findings in the scan
Issue Description:
I am facing issue wherein i am not getting seccubus notification mail with HTML report as attachment.
I get a blank file named ATT00001.txt attached to mail and in the body of the message get coded characters.
I have set the notification as follows:
Scan ended on $TARGETS.
Summary of the test run is $SUMMARY.
PFA run data $ATTACH:html
I get the below email body in my Outlook mail. Please let me know any workarounds. Thanks
======================= Email Body Excerpt ======================
PFA run data --seccubus-message-part
Content-Type: application/octet-stream; name="seccubus.<IP_ADDRESS>.nessus_scan.20170417184337.15508.html"
Content-Transfer-Encoding: base64
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
Ij48L21ldGE+PHRpdGxlPk5lc3N1cyBTY2FuIFJlcG9ydDwvdGl0bGU+PHN0eWxlIHR5cGU9InRl
eHQvY3NzIiBtZWRpYT0iYWxsIj4KCVVMLnVsaXN0IHtwYWRkaW5nOiAwIDEwcHg7IGxpbmUtaGVp
Z2h0OjI1cHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tdG9wOjBweDt9OwoJTEkubGlzdCAg
e3BhZGRpbmc6IDAgMTBweDsgbGluZS1oZWlnaHQ6MjVweDsgbWFyZ2luLWJv

I will need to investigate. As a workaround reports can be downloaded from the 'Runs' tab.
Sent with big fingers from a small keyboard, don't blame me for typios please...

From: Ranjan Naik<EMAIL_ADDRESS>Sent: Tuesday, April 18, 2017 2:42:51 AM
To: schubergphilis/Seccubus
Cc: Subscribed
Subject: [schubergphilis/Seccubus] HTML reports are not getting attached to email (#444)
Hi,
My Test Environment:
Centos 6.9 (Final) - Seccubus-2.31.4-90.1 - MySQL database
Scan run on Single Host with 52 findings in the scan
Issue Description:
I am facing issue wherein i am not getting seccubus notification mail with HTML report as attachment.
I get a blank file named ATT00001.txt attached to mail and in the body of the message get coded characters.
I have set the notification as follows:
Scan ended on $TARGETS.
Summary of the test run is $SUMMARY.
PFA run data $ATTACH:html
I get the below email body in my Outlook mail. Please let me know any workarounds. Thanks
======================= Email Body Excerpt ======================
PFA run data --seccubus-message-part
Content-Type: application/octet-stream; name="seccubus.<IP_ADDRESS>.nessus_scan.20170417184337.15508.html"
Content-Transfer-Encoding: base64
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0
dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
Ij48L21ldGE+PHRpdGxlPk5lc3N1cyBTY2FuIFJlcG9ydDwvdGl0bGU+PHN0eWxlIHR5cGU9InRl
eHQvY3NzIiBtZWRpYT0iYWxsIj4KCVVMLnVsaXN0IHtwYWRkaW5nOiAwIDEwcHg7IGxpbmUtaGVp
Z2h0OjI1cHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tdG9wOjBweDt9OwoJTEkubGlzdCAg
e3BhZGRpbmc6IDAgMTBweDsgbGluZS1oZWlnaHQ6MjVweDsgbWFyZ2luLWJv
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/schubergphilis/Seccubus/issues/444, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABA5bhPYLuIc9RMaXCMP6ocFlX6g7Y2lks5rxAcLgaJpZM4M_u_w.

I increased the verbosity and could see that due to message length exceeding, the notification fails to attach files. This is because the reports are really big with Compliance tab as well.
Net::CMD (Net::SMTP) DATAEND command failed.
Last server message was:Enter mail, end with "." on a line by itself
5.2.3 Message exceeds maximum fixed size (75000000)

@ranjan1n I ran into the same bug myself. See #457
If you change your notification to
Scan ended on $TARGETS.
Summary of the test run is $SUMMARY.
PFA run data

$ATTACH:html

There will be two newlines before the --seccubus-message-part bit and you should be ok.

Fixes by #457


default interaction mode disable all default events

with reference: https://rct.lukasbach.com/docs/guides/interaction-modes
Describe the bug
custom interaction mode disable all default events
To Reproduce
include the following prop to a ControlledComponent
 defaultInteractionMode={{
          mode: "custom",
          createInteractiveElementProps: (
            item,
            treeId,
            actions,
            renderFlags
          ) => ({
            onDoubleClick: () => {
              actions.focusItem();
              actions.selectItem();
              treeRef?.current?.startRenamingItem(item.index);
            },
          }),
        }}

I can achieve the intended behavior, i.e. that the list item goes into renaming mode on doubleClik, but all other events are not handled anymore, like onClick, etc.

This is now fixed as of version v1.1.3 of this package. Please update your dependency to receive the fix.
You can now provide an extends prop to your interaction manager, that specifies which existing interaction manager is used as base for all events. More details are available at https://rct.lukasbach.com/docs/guides/interaction-modes#custom-interaction-modes
If this issue or a similar problem persists, feel free to reopen this issue or create a new one. Thanks again for your issue report! :)

I have noticed that now that i override the onClick and onDoubleClick hanlders, i cannot manage to let the onDoubleClick event fire anymore, since the onClick is always fired instead. is this an actual issue or is it only on my side?


update activityindicator for swift 3

i updated the code. so you can use it now in swift 3

Thanks @armintelker , really appreciated your work, i will add the doc if needed


Question regarding removal of resources when not forking

I am trying out the "Ship approach" to deployment. I have run into an issue that seems to show that the "unfork" methodology might not always work:
If I want to deploy cert-manager, I can use the Helm chart or the provided YAML. The newer versions of cert-manager requires their CRDs to be loaded before installing the Helm chart, because Helm doesn't handle CRDs very well. Mixing upstream maintained YAML and a Helm chart does not look like Ship can handle automatically, meaning manually keeping patches updated when upstream changes their YAML. Instead I could use the upstream provided YAML manifests for everything. However, the cert-manager YAML includes creation of a namespace and putting everything into that namespace. I want all "components" (ie. helper programs like cert-manager and external-dns) to go into a shared namespace that I create in a separate step in my deployment pipeline. Kustomize can change the namespaces of resources easily enough, but I want to remove the namespace resource. Removal is not supported in Kustomize - they advise forking the manifest repo and removing things there. Ship says to unfork things and just do patching. What would be the Ship recommended approach here?

Removal is supported in Ship though. Since the upstream is a Helm or K8s yaml, Ship creates the kustomization.yaml. In the ship init process, on the /kustomize step, you can "remove" a resource on file tree. All this does is tell ship to not write it as a "resource" because of the lack of removal functionality in kustomize.
I'm not 100% sure understand the CRD question. I don't have direct experience with cert-manager, maybe something unique in there. But yeah, all gitops-tooling has conflicts with CRDs because they operate in the CI pipeline vs at runtime. This is an interesting problem we've been talking about too, but don't have any strong recommendations. There are advantages to CRDs, but if the YAML can't be reviewed, it's hard to manage.

Ahh! I had not noticed that I can remove resources like that in the web interface. Thank you! :)
The CRD part is mostly a question of pretty much all current tools to handle k8s tools not handling CRDs nicely. CRDs introduce a need for ordering and waiting (to avoid race conditions) that was previously not an issue, because the controllers would just wait and reconciliate independent of ordering. Now the CRDs must be loaded fully before you start to submit CRs to the apiserver.
I see that Kustomize (at least in v2+) can load the OpenAPI definitions for CRDs in order to know how to manipulate them, and they currently look to be figuring out how to handle the ordering, so CRDs are loaded before the CRs.
The issue with cert-manager is not unique - most apps that use CRDs just have their Helm chart use a hook to load the CRDs, which is fine if you just want the user/admin to be able to add CRs afterwards (example: Velero (previously Heptio Ark) where you create backup CRs to tell Velero what to backup). With cert-manager the problem is that finalizing a deployment of cert-manager itself requires creating some CRs, which means the CRDs must be installed before the rest, which Helm does not support.
I don't understand why you don't think CRD YAML can be reviewed. Isn't it just a question of doing something like what Kustomize has recently added support for, where you actually read in the OpenAPI schema for CRDs, letting you know exactly what the YAML should look like?
Sorry for the rant, but this is indeed a very interesting problem, that I hope somebody will soon find some nice solutions to :)
I'll close this issue here - a discussion about CRDs is probably better suited for a separate issue.

@drzero42 lot of interesting thoughts here. Ship does have a way to combine multiple disparate upstreams into a single ship "app". This method could let you track the cert-manager chart and the CRDs with a single state.json / kustomixze overlay.
I don't have a great example, but I had a thought to do this for cert-manager after deploying it myself last week. There are a few examples in https://github.com/shipapps but I'd be happy to see if we can create a repo for cert-manager there and we can collaborate on trying to put something together.
Thoughts @marccampbell ?

@dexhorthy That looks very interesting. I've tried creating a ship app for the external-dns helm chart, but it looks like something isn't completely done. The values_from attribute for helm in ship.yaml looks like it is pretty much undocumented and unfinished, as no matter what I put in there it complains. If I leave out a values file, I can package things together nicely like this, but not being able to use a values file is unfortunately a deal breaker.

@drzero42 yeah, the docs and examples are a bit lacking on that stuff. We do have an end to end example of this working with consul if you wanted to use that as a starting point: https://github.com/replicatedhq/ship/blob/master/fixtures/sv-helm-values/ship.yaml
You'll notice there's a pretty awful hack in there that we have an open issue for in #857

@dexhorthy I think I understand what is going on there, but I am not entirely sure how to achieve our goal. I have a file which contains the values I want to render the chart with - what would in a standard helm install command would be "-f my-values.yaml". Helm will merge the default values.yaml with my-values.yaml. I have tried with this ship.yaml:
---
assets:
  v1: []

config: {}

lifecycle:
  v1:
    - render:
        root: ./
        assets:
          v1:
            - helm:
                dest: ./installer/base
                helm_fetch:
                  chart_ref: external-dns
                  repo_url: https://kubernetes-charts.storage.googleapis.com
                  version: "1.7.0"
                values_from:
                  path: ./external-dns-values.yaml

But this just gives this error: execute render step: execute plan: execute templating: copy state value to tmp directory .ship/tmp/chartrendered: write values.yaml to external-dns-values.yaml/values.yaml: open external-dns-values.yaml/values.yaml: not a directory.
How do I replicate helm install -f my-values.yaml stable/external-dns ?

@drzero42 aha -- interesting. I think this is super close, and what you're doing is exactly what I have tried in the past. The weird gotcha here is that
                values_from:
                  path: ./external-dns-values.yaml

only supports a directory containing a values.yaml, so if you wanted to make this work today you could organize like
.
└── my-values
    └── values.yaml

                values_from:
                  path: ./my-values # must be a directory

(I agree that this is a little confusing, and I've made the same mistake myself in the past)

@dexhorthy It seems that the values_from directive doesn't do what I need, after I've created a my-values directory and put external-dns-values.yaml into that and renamed it to values.yaml. When I've run ship app --runbook ship.yaml it grabs values.yaml from the chart and overwrites my values.yaml. Is it just me that's confused about the process or is this also a bug? :)

@drzero42  thanks for digging into this some more -- that sounds unexpected. I'll try to dig into this some more.

@drzero42 I am not sure about that behavior you mentioned, and we'll probably have to dig into it a bit more.
In the meantime, I've published a basic ship.yaml for cert manager that might serve as a good starting point

Is it possible to remove resources using ship.yaml?


Function SET_OF_encode_uper() is missing

I know that this issue was already notified some years ago, but somehow it is not opened here and it is not fixed yet. Perhaps it has been missed when the project moved from sourceforge to github.
Function prototype SET_OF_encode_uper() is defined in constr_SET_OF.h
but does not have a implementation in constr_SET_OF.c resulting in an error on linking time.
SET_OF are nearly the same as SEQUENCE_OF excepting by the order of elements, so SEQUENCE_OF_encode_uper implementation could fix this issue, there are some patches over there like this [1] that could also be applied to master branch.
Regards
[1]https://gitorious.org/freerdp/mainline/commit/e4bd3ca5681cf76fa948a9c3a0301df5bbcfa813?format=patch

@sancane, Do you happen to have a copy of the patch that was available at the link you shared?

@sancane @mouse07410 This is in master now.
@vlm Thank you for implementing this. I think this issue can be closed?

Good work guys! Thanks!


Add to_s method to FileSystemTarget

close #73

Coverage increased (+0.09%) to 95.535% when pulling bf4b8ff22e7c824c3909ea10b106482f8fc2f9b4 on add-to_s-to-file-system-target into 87a4052e1fc2540dc56b6759997dbc984f3097c6 on master.


update code to 2.10.6

I don't have git history for this, sorry :(

Logged in failed: BAD_USERNAME_OR_PASSWORD
Encountered issue while logging into Spotify, aborting...

Version 2.10.7 https://drive.google.com/open?id=0By2FZyNUC71iV3Q2NjQzOHdFXzA

What is 2.10.7? Where did you receive it?

This is the latest version of spotify-ripper from jrnewell repository, i had saved some time

I think I found where you got it, I will merge upstream
On Wed, Jan 4, 2017 at 2:06 PM zerodaybr<EMAIL_ADDRESS>wrote:

This is the latest version of spotify-ripper from jrnewell repository, i
had saved some time
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/hbashton/spotify-ripper/pull/2#issuecomment-270472526,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL97hDTksaUMQH8cOokTZGT7qkn9gfczks5rO_vDgaJpZM4KYrQm
.

how to install ?

I'll try merging this this weekend

@apps9999 Install with pip. if you on debian based distro you can install with sudo apt-get install python-pip. Install with sudo pip install spotify-ripper-2.10.7.tar.gz

@hbashton Any status on this?


Backport rex workaround

Change Description

Deployment Changes

[ ] Deployment Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

oops. wrong repo.


nix-software-center: init at 0.1.2

Description of changes
Nix-software-center is a graphical app store for Nix built with libadwaita, GTK4, and Relm4. Heavily inspired by GNOME Software.

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Multiple IFD's this is packaged completely incorrectly

Multiple IFD's this is packaged completely incorrectly

Alright, it's mostly fixed now

@vlinkz Would be nice to upstream it tbh

@vlinkz I really like your projects and I think they can become really good and appreciated, and make NixOS more accessible and enjoyable to use graphically. I was wondering what can boost the development, would it be monetary donations, more developers joining, or something else? What would be the best way to support you?

@vlinkz Would be nice to upstream it tbh

@vlinkz I really like your projects and I think they can become really good and appreciated, and make NixOS more accessible and enjoyable to use graphically. I was wondering what can boost the development, would it be monetary donations, more developers joining, or something else? What would be the best way to support you?

I think really I just need to spend more time finishing it and making sure it's stable. On the topic of boosting development, if more developers were interested in finishing it up, that would likely make things go faster. Monetarily I'm doing fine, so that's not needed. Just have my time spread pretty thin through projects and life.


Support Rails 6

This patch adds support for upcoming Rails 6.

:+1: thanks! this warrants a release. have you tried it will Rails 6 and all is well?

@wuputah As one data point, I've tried it with Rails 6 and it seems to work as expected.

thanks @lfittl ! I need to cut a release. 😁

@wuputah Could you please release a version with this PR. Thanks!


Resolve Test App Setup Issues

Using the main README file in the repository, I've attempted to start up the test version of the app and access it via a web application, just to do exploratory testing and as a sanity check to make sure my code isn't cataclysmically breaking anything.
However, even when using the main branch in the primary data-sources-app repository, I'm not able to run the app successfully, for reasons that are unclear to me. If I attempt to perform searches, for example, I'm unable to pull any results, and checking the browser console log, errors are being reported. It's unclear if the REST methods are even being called successfully.
Again, this is the main branch in the main repository, so none of my code should be affecting it. I am using the dev database, but I should still at least be able to access the REST methods and receive the custom error methods from them, but I am not.
I'd like to work with whomever is most in the know about how to use this portion of the application and figure out how to diagnose this problem. If the problem has to do with information not included in the documentation, I'd like to add that to the README for v2.

most in-the-know is probably @joshuagraber. This is my fault, I should have made sure we had a better process for getting new devs' local envs set up! I should probably be involved in this effort to capture it for next time..

This has been resolved! Issue closed!


minor bug fixes with together AI

Fixed small bugs with the Together.AI integration.

the init params were being overriden, so for example if the user set an apiKey in the init it would be overriden by the environment variable.
the example was missing a newline in the output
if there was no key specified, the user would be prompted for an OpenAI API key
the OpenAI embeddings interface didn't allow model specification (which didn't matter when there was only one supported model)

@marcusschiesser @himself65 one thing we need to think about with the TogetherAI integration is how we want to handle the context window size per model, the tokenizer per model, and the vector dimensionality per model.


Peer Review by Ian Quan

This peer review is base on the submission until 02:56, January 24, 2024, anything changed later is not evaluated.

R is appropriately cited - 1 (Yes)
LLM usage is documented - 1 (Yes)
Title - 1 (Yes)
Author, date, and repo - 0 (not done): repository is not included in the paper
Abstract - 4 (exceptional): The abstract is concise and sufficiently summarizes the content of this article.
Introduction - 2 (great): Introduction is too short and does not explain the reason of conducting this analysis, also the referencing is poorly written.
Data - 2 (poor): Reference to some R packages are broken, Does not explain what kind of data analysis is conducted and does not explain the results of the plots.
Measurement - 1 (Done)
Cross-references - 2 (yes)
Prose - 2 (yes)
Graphs/tables/etc - 3 (great): Multiple pictures and tables but lack of detail explanation.
Reference list - 1 (poor): Some reference link are broken. Style of referencing is poorly written.
Commits - 2 (excellent)
Sketches - 0(None)
Simulation - 1(done): Seed number is not used in simulation
Test - 4(done)
Reproducibility - 2(fair): lack of detail explanation on how you process the data. Seed number is not used in simulation
Code style - 1(fair)

Comments: unrelated files should be deleted to avoid confusion and maintain a clean sturcure.

thank you for the feedback! I appreciate it.


Move security page to main application

Closes #438

I do still get contacted about security stuff, but if there's someone else
who is willing to be listed I'm OK with being delisted.
On 14 May 2017 at 01:58, Donald Stufft<EMAIL_ADDRESS>wrote:

@dstufft approved this pull request.
Looks good to me pending one question from Richard about whether he still
wants to be contacted for this or not.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pypa/warehouse/pull/1985#pullrequestreview-37982280,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAofRr41rwMk6EcMc5nCa-q5yplOgp70ks5r5dMdgaJpZM4NaC1x
.


Add assertion for sparsity pattern equality

This PR adds the GKO_ASSERT_MATRIX_NEAR_SPARSITY test assertion, which first checks if the sparsity patterns of the two input matrices match, and then proceeds like GKO_ASSERT_MATRIX_NEAR
This kind of assertion becomes interesting when we add more kernels that modify the sparsity pattern, like SpGeMM or the ParILUT kernels in general.

This assertion basically checks if the sparsity pattern is the same, right ? And disregards the non-zero value themselves as I dont see any checks with the non-zero values in the algorithm unless I missed something.

If the sparsity patterns are equal, we proceed like in ASSERT_MTX_NEAR by computing the relative error and checking it against the tolerance. The assertion is thus just a stricter version of ASSERT_MTX_NEAR in case we want to make sure that the stored locations are equal as well.

Hm, I see. I would prefer if the two things were separate. Comparing the sparsity patterns and the matrix themselves. If need be then you add both the checks. That way it is clear what you want to check.
I think if you have a check sparsity pattern which also does a matrix equality (with a tolerance) check it is a bit misleading. For example, I was initially a bit confused when I saw that the CSR apply tests were checking for sparsity pattern equality.

I see your point, and did not give it too much thought before. Do you have an example in mind where it makes sense to check for pattern equality, but not for value equality?

I think there could be a case in some preconditioners where this is possible. But actually that is not my concern because your implementation actually will not have a problem with that as you can always increase the tolerance so that the matrix values become unimportant.
But to me, matrix equality is a stricter check because it should combine both sparsity pattern and value check and hence I think the sparsity pattern check should not need to do any value checks.

I see, that makes sense. I'll separate the two assertion types

LGTM. But I think you are missing the new assertions for hip/test/matrix/csr_kernels.hip.cpp.

We currently have no HIP implementation of spgemm, so the tests are not present there.

@upsj My bad, just realizing now what were the tests in question.


Add CNIVOR

Proof we have programming classes - http://cnivor.ro/info.html
http://cnivor.ro/media/planuri/planuri_ciclul_superior.pdf
And on https://cnivor.edupage.org/timetable/ if you select any "grade" (clasa) from 9 to 12 that has an E in it, you will see we have "Info Lab" which is our programming class

@nerdunit I am sorry for a delay with processing your request.
Pull request merged. Thank you!

@nerdunit I am sorry for a delay with processing your request.
Pull request merged. Thank you!


main menu missing. Ubuntu 20.04 with Unity7

the main menu is missing (should be shown in the top bar)
i'm using Ubuntu 20.04 with Unity7, pinta-james-carroll latest/stable:    1.7 2020-08-09 (1) 196MB -

left pinta snap, right pinta deb 1.6

maybe you need to add plugs: unity7 in snapcraft.yaml? (i don't know snaps stuff)
plugs:
- home
- removable-media
- x11
- desktop
- desktop-legacy
- gsettings
- opengl
- unity7

https://snapcraft.io/docs/desktop-interfaces
unity7: access to X, Unity services, a11y, input methods (ibus, fcitx, etc) and other legacy desktop methods

Thanks for the report.
I think you're probably right about adding the unity7 interface; whilst desktop and desktop-legacy overlap with it heavily, I think the HUD integration is probably unique to that interface and would hopefully fix your problem.
Whilst this should be the easiest thing to update in the world given it's just adding one line to the Snapcraft definition and running Snapcraft again, there's an issue currently building with the LXD backends due to some faulty configuration on Ubuntu's end, which means I won't be able to get around to it until that's sorted. Once it is, I'll ping back here when the updated version is live to see if it fixes the problem.

great./ there's no rush, take your time

Revision 2 with the unity7 interface should be live on the store now, hopefully it should fix the problem for you; it works on the testing I just did. You can hurry along the update with sudo snap refresh

yep, works fine now! THANKS


Add option to specify local library dirs that are also updated/watched

I'm as a ioBroker adapter developer that also uses self developed libraries (and not have all logic "in the adapter") and use these libraries as dependencies in the adapter would like to have an option to also specify additional directories of these "deps" that are watched and also updated when the dev-server updates anything.
Right now I need stop the dev-server, execute some "cp" commands and then start dev-server again for each change I do on such a library

Yes but then they would also be published :-)

In fact it is more complex:

means that you need an other local dorectory which is monitored and also mapped to a "node_modules" place where files are synced on change
nodemon then needs to monitor this additional module directory for changes too for restart


Will this project continue to be updated?

This is a great project, but I noticed that it is still in the alpha stage. Will this project continue to be updated?

Yes! Updating soon

Check thee new version:
apollovm: ^0.0.33


Avoid extra groupings caused by pod names in graphite sink

Fixes #1492

This change is

@DirectXMan12 it seems that e2e tests failed starting the test cluster, is there any known problem? can tests be launched again?

@k8s-bot test this

@k8s-bot test this

@jsoriano yeah, the above invocation should re-run the tests, you might not have permissions to invoke the bot

Jenkins is green now. @theairkit PTAL

@piosz @jsoriano
Looks fine and works as expected, I think its ready to merge!

Thanks @theairkit @jsoriano


doc: fix typo and make docstring more precise

This PR fixes a typo in the docstring for prec and makes the text slightly more precise.

It looks like downstream breakage is just a test in batteries that hard-codes the updated docstring.


Can't tab away from selectable dropdown menus

Gitea version (or commit ref): master
Git version: master
Operating system: Debian
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[ ] Not relevant

Log gist:

Description
After merging #8638 selectable dropdown menus now seem to grab focus. I did some bisection on my original branch and found it was introduced just by adding semantic.dropdown.js unchanged from upstream.

I found wrong. The issue is that my fix for clicking not working with the keyboard brought about another problem: Whenever a select box is tabbed away from, the selection is confirmed. This is done by clicking on the element. Which refocuses it like you would expect when clicking normally.

The same problem. Choose create new repo, selecting License and then can't select another field even with mouse click.
Use latest docker image from docker hub (133c950411eb)

Ok, #8921 is up as a hotfix. It reverts my change that showed this broken behaviour but it still needs to be fixed properly

I think this issue can be closed. If anything is missing from ARIA support because of #8921, that should be a different issue.


How to restrict it only to "car" label ?

Can I simply change the number of classes to 1 from 20 and number of outputs to simply 1. As I am working on detecting cars using YOLO method. ?

I would suggest training a model for cars uniquely.
Please also look at the disclaimer on the README. Thank you for your comment!


Cache internals for ModuleInstance::export_entry

This was a last 'useful' TODO (other are currently non-fixable || currently unimportant).
Also added bench for this - this has halved execution time.

cool, this probably will be the hot path in contracts execution


startWorker/stopWorker need some rejiggering

Workers have a very complicated startup and shutdown process, especially since the switch to making them Services. This needs to be cleaned up and simplified before it bites us again.

Quick summary of the current complexity:

WorkerCreator.create_worker creates a worker instance and connects an AMQP client to it as a child service.
The vumi start_worker twistd plugin calls .startService on the worker, which starts the AMQP client.
The AMQP client connects and then calls back to _amqp_connected on the worker.
_amqp_connected calls startWorker.

Stopping a worker is somewhat different:

worker.stopService calls stopWorker and then stopService for all child services.

Stubbed test workers are created differently:

A stubbed worker instance is created with a custom WorkerCreator that overrides _connect and doesn't create a real AMQP client.
Instead, a fake AMQP is created and _amqp_connected is called directly on the worker (which then calls startWorker as normal).
startService is never called on the worker and the worker doesn't have an AMQP sub-service (making a fake AQMP client service that can be started and stopped might fix this).


🔀 NICE-54 port over changes from websites [b]

Update:

[x] 🩹  (eslint) NICE-54 package upgrades
[ ] TBD: lint-staged
[ ] TBD: prettier

Add:

[ ] TBD: jest-config
[ ] TBD: jest-presets
[ ] TBD: lighthouse-config
[ ] TBD: next-config
[ ] TBD: playwright-config
[ ] TBD: storybook-config
[ ] TBD: tailwind-config

Der, due to workflow need to rename branch see you over in #1133


Support channels 12 & 13 for WiFi on Pi Zero W

Raspberry Pi Zero W not supporting WiFi Channels 12 & 13
Steps to reproduce

Flashed image to sd card (resin-[PROJECT NAME]-2.0.3+rev1-4.2.2-8e116ee80767.img) using Etcher
Setup pi in location known to be within WiFi range
4 flash pattern on Pi status light (*_*_*_*____*_*_*_*____)
Changed wifi router channel from Auto (was then 12) to 11 (TP Link Archer C20i)
Hard reboot Pi
Connects to resin dashboard and works
Changed wifi router channel to 13
Some delay
4 flash sequence (*_*_*_*____*_*_*_*____)
Hard reboot pi
4 flash sequence (*_*_*_*____*_*_*_*____)

It's a brand new Pi Zero W v1.1 and I'm planning to deploy to a location where I won't be able to change the WiFi channel and I'd rather not risk it being changed automatically due to network traffic, and therefore the Pi will loose connection to Resin.io
This was a known issue in Raspberry Pi 4.1.20 firmware

Re-tested on fresh image with -dev but issue persistent

This is actually an interesting problem. It seems like at boot the Regulatory domain country is set to unset. Which doesn't allow channels 11 and 12 on 2.4Ghz.
root@bb21c96:~# iwlist channel
wlan0     11 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz

As soon as the device connects to the network the country gets updated and channels 12/13 unlocked:
root@bb21c96:~# iwlist channel
wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz

So the problem goes like this. cfg80211 sets the regulatory domain as world. https://github.com/raspberrypi/linux/blob/204050d0eafb565b68abf512710036c10ef1bd23/net/wireless/reg.c#L261 . Generally this is fine because wpa should update the country based on configuration. The problem is that we use the dbus interface of wpa because nm triggers it when needed. So even if you set a default value for country in wpa_supplicant.conf it won't work. wpa_supplicant will only update when it actually connects. There are two ways of fixing this as far as I can tell:

run a script/service which uses iw based on an entry in config.json - similar to what @michal-mazurek proposed
set an additional default country for cfg80211 (world will always be used anyway) - options cfg80211 ieee80211_regdom=XX in /etc/modprobe.d/cfg80211.conf based on an entry in config.json

In either case we need to allow people to set this from the UI - otherwise we are in a chicken and the egg issue.
If we go to the iw option, the tool is on arm 144K.
If we go for driver configuration we need to make sure it is configured early enough for the driver to pick it up.

I'm planning to deploy the Pi Zero W to a client site the week after next - any thoughts on how long these fixes normally take? I'd imagine if it involved changing Resin UI it would take a while?

We're working on a solution, but we can't commit to a particular date for now.

Fix was merged and released in 2.0.5. As soon as raspberrypi images will include meta-resin 2.0.5 (which should happen soon), you will be able to configure the regulatory country by setting the correct entry in config.json.

That's great @agherzan thanks for all you and your teams help on this - what is the name of the setting that needs to be set?

country. @shaunmulligan shall we document this?

Yup @agherzan , I think @zwalchuk had already ticketed it up to be documented.

@zwalchuk please add a reference to this issue too. Thank you.

@Jbithell Hi there. This has now been released to production and is present in resinOS versions 2.0.5 onwards.

Thanks @hedss - I'll just wait on https://github.com/resin-io/docs/issues/523 to learn more - thanks to everyone on the thread for all their hard work!


[Feature request] Seamless Conversion Between GRUB and systemd-boot

Title: Add an option to seamlessly switch between GRUB and systemd-boot
Comment:
Is your feature request related to a problem? Please describe.
Switching between GRUB and systemd-boot can be tricky, with the risk of leaving the system unbootable if something goes wrong. A clean and safe way to convert between these bootloaders would be incredibly useful for users looking to experiment or optimize their setup.
Describe the solution you'd like
It would be great if Linutil could provide an option to easily switch from GRUB to systemd-boot (and vice versa) while creating a backup of the current bootloader configuration. This way, users can safely test different bootloaders without worrying about breaking their system.
Describe alternatives you've considered
While manual bootloader switching is possible, it involves several complex steps. Automating this process in Linutil would significantly reduce the chances of errors and improve usability.
Additional context
Offering a safe bootloader switching option would add great flexibility for users. Thank you for all the effort you've put into making Linux easier to use!

Thank you so much for all the hard work you've put into this project. Linutil is an amazing tool, and it’s truly making Linux more accessible and user-friendly. I’ve also suggested a few other features in separate issues that might interest you, and I’d be excited to see any of these improvements considered.
Again, I really appreciate the dedication and effort from the development team. Keep up the great work, and thanks for making the Linux experience better for everyone! 🙌

This could brick systems if we're not careful, so this is not planned for now.

/close


Feat - add method to fetch default store address from shippo

Expose new method that will fetch the default sender address from shippo

shippoClientService.fetchSenderAddress()


Travis docker setup

@aleffert
Per the travis email thread, docker doesn't look like it is enabled on this repo. I was told setting sudo to false would do the trick which is what I also found in the android teapot.

Current coverage is 47.31%

Merging #674 into master will increase coverage by +0.06% as of 36f1905

@@            master    #674   diff @@
======================================
  Files          420     420
  Stmts        28113   28113
  Branches         0       0
  Methods          0       0
======================================
+ Hit          13285   13303    +18
  Partial          0       0
+ Missed       14828   14810    -18

Review entire Coverage Diff as of 36f1905

Powered by Codecov. Updated on successful CI builds.

mac os x build use different infrastructure so I don't think we need to do this?

This isn't needed for OS X builds. Closing


Initial implement structured configuration system

What changes were proposed in this pull request?
Ref Apache Spark to implement the structured configuration system
Why are the changes needed?

What are the items that need reviewer attention?
Related issues.
Related pull requests.
How was this patch tested?
/cc @related-reviewer
/assign @main-reviewer

CI failure is unrelated, cc @waitinfuture


confused: ball_query_gpu.cu

In ball_query_gpu.cu , the kerner function 'ball_query_kernel_stack',   line 38-40:
new_xyz += pt_idx * 3; xyz += xyz_batch_start_idx *3; idx += pt_idx * nsample;
in your code, the pt_idx may be the index of thread that  will process this  current keypoint (one thread deals with one keypoint ),
so what is the meaning of these 3 lines code?  why the new_xyz adds the pt_idx * 3 ?
I was confused about it? Could you please explain it?
Thank you very much!

new_xyz, xyz and idx are all the c++ pointer, and we use += to shift these pointer to their desired positions for the following process.


BE-30: [API] Implementation of Exhibition Related APIs - v1

What's up?
In our Week 9 BE Meeting, we decided to implement both online and offline exhibition related APIs. In offline exhibitions, there will be only a single image (poster) and location of the event, whereas in the online exhibitions there will be other images as well as the poster of the event. Other images can come from the already existing art items of the user or they can be uploaded for the exhibition itself.
To Do

[x] Following APIs must be implemented:

api/v1/exhibitions/                           / GET    / Return all of the exhibitions in the system
api/v1/exhibitions/online/<id>             / GET    / Return an online exhibition with the given id
api/v1/exhibitions/offline/<id>            / GET    / Return an offline exhibition with the given id
api/v1/exhibitions/me/offline/<id>         / DELETE / Delete an offline exhibition you opened              [REQUIRES AUTHENTICATION]
api/v1/exhibitions/me/online/<id>         / DELETE / Delete an virtual exhibition you opened              [REQUIRES AUTHENTICATION]
api/v1/exhibitions/me/offline              / POST   / create an exhibition                         [REQUIRES AUTHENTICATION]
api/v1/exhibitions/me/online              / POST   / create an exhibition                         [REQUIRES AUTHENTICATION]
api/v1/exhibitions/users/<id>/offline/     / GET    / get all of the offline exhibitions of the specific user (by id)
api/v1/exhibitions/users/<id>/online/      / GET    / get all of the virtual exhibitions of the specific user (by id)

[x] Documentation of the APIs with Swagger.
[x] Testing the APIs carefully.
[x] Implementation of unit tests.

Deadline
11.12.2022 @23.59
Additional Information
No response
Reviewers
No response

Opened the PR #344, waiting for reviews.

PR is reviewed by @BElifb and merged eventually. No further action is required, closing the issue.

Opened the PR #387. @kostanya spotted a mistake in the way how posters of exhibitions are stored, which is explained in detail in the PR.


Miner

should be a slightly better method

will just change to this for now, the status is having some issue sometimes


Update library to 889ec27

Why do this without waiting for full group feeds?

FS doesn't feed groups

I'll continue to guess why you're doing this, then. The rule is to not update plexi in connectors that are not under active development, to reduce the risk if we need to release a patch or customers build from master. The only outstanding task for FS that I know of, given your reminder, is the params for access time et al. That's not worth updating plexi on master at this point.

I have active branches in FS for params and force.  They have been sitting there for a month.  I just wanted to check them in.  I'll leave abandon this.


Adding journalists questions dataset

This is my first dataset to be added to HF.

@lhoestq Thanks a lot for checking! I hope I addressed all your comments.

merging since the CI is fixed on master


s/w/ord source missing

hi, is it possible to upload the code behind s/w/ag?

sorry, my phone auto corrected the sword command to swag, is the s/w/ord source available?

Not at this time

So you mean PART OF IT IS CLOSED SOURCE?
>:(

I could (and should) push it up here, but some assets (such as the Discord font) I cannot redistribute.

ah, ok.
time to pirate some discord fonts and make a fork lmao

let me know how that goes

not at this time

maybe use some different font in the source you post here?

🤔

Added in 3b848dc0b68cc8196ce49a80a529be82d33272e1

Amazing.


docs shows environment flag, cli does not

the -e or --environment flag is claimed to exist in the docs however, the cli does not seem to support it. i would prefer that the cli support it if possible. current workaround is railway environment x > /dev/null && ...

Hey there. I just tried an example project and confirmed that the --environment flag does indeed work on version 2.0.13.
Note that this is only supported for the up command and should be specified as railway up --environment development. You may need to add quotes if your environment contains special characters like railway up --environment 'My Environment'.
I'm going to close this for now but feel free to reply if you're still having issues 👋🏻


React Player is giving error while loading the google drive videos

Current Behavior
React Player is giving error while loading the google drive videos but i can open the same video link in an iframe.
Expected Behavior
Google drive videos should play without giving any error as it used to play earlier.
Steps to Reproduce

Open https://cookpete.com/react-player
Enter https://drive.google.com/file/d/1bIvt1KO_nYUV4PUUoKFSSKZHEC3Qfeyn/preview in Custom URL
Click on Load button.
Error is thrown in the console and video doesn't play.

duplicate of https://github.com/cookpete/react-player/issues/1678


Fixed editable package with markers can not be locked

The issue
Fixed https://github.com/pypa/pipenv/issues/2902 and also added tests. Without this patch, the new added test will fail.
The fix
Fixed in upstream https://github.com/sarugaku/requirementslib/pull/71. If it can be accepted in upstream, then it can be merged here.
The checklist

[x] Associated issue
[x] A news fragment in the news/ directory to describe this fix with the extension .bugfix, .feature, .behavior, .doc. .vendor. or .trivial (this will appear in the release changelog). Use semantic line breaks and name the file after the issue number or the PR #.

No problem.
But how about the added tests? It will be nice to have tests which can make sure that later development won't break current working cases

I’d be fine if there is a test to ensure pipenv lock -r works, so I’ll merge if you take out the requirementslib patch (and probably change the news fragment). We’ll need to do it later though, otherwise it’ll break all CI.

Great.
I've udpated the PR which removed the requirementslib patch as well as the news (since the test is too trivial)
Currently the CI is broken but it should be fine after https://github.com/sarugaku/requirementslib/pull/71 is merged from upstream.

I’ll release requirementslib in the next few days when I am sure we captured everything

Update: it's ready for merge since https://github.com/pypa/pipenv/pull/2935 has been merged


can't load "german_legal_entity_recognition" dataset

FileNotFoundError: Couldn't find file locally at german_legal_entity_recognition/german_legal_entity_recognition.py, or remotely at https://raw.githubusercontent.com/huggingface/datasets/1.1.3/datasets/german_legal_entity_recognition/german_legal_entity_recognition.py or https://s3.amazonaws.com/datasets.huggingface.co/datasets/datasets/german_legal_entity_recognition/german_legal_entity_recognition.py

Please if you could tell me more about the error?

Please check the directory you've been working on
Check for any typos

Please if you could tell me more about the error?

Please check the directory you've been working on
Check for any typos

Error happens during the execution of this line:
dataset = load_dataset("german_legal_entity_recognition")
Also, when I try to open mentioned links via Opera I have errors "404: Not Found" and "This XML file does not appear to have any style information associated with it. The document tree is shown below." respectively.

I have the same problem, not all datasets are available, some of them has been removed or something,

Hello @nataly-obr, the german_legal_entity_recognition dataset has not yet been released (it is part of the coming soon v2 release).
You can still access it now if you want, but you will need to install datasets via the master branch:
pip install git+https://github.com/huggingface/datasets.git@master
Please let me know if it solves the issue :)


[dsp] FFT normalization and Power calculations are inconsistent.

The normalizeFFT function scales by a factor if 1 / Math.sqrt(complex[0].length), I am unaware of why you would normalize an FFT in this manner. Instead I expected the factor to be 2/N, where N = number of samples, see sf below.
Additionally, the  spectrumPow, scales the power by 1/N. I find it odd any scaling is applied, but if a scale is applied it should be applied to the bin value, const p = (1/N * real[i]) ** 2 + (1/N * img[i]) ** 2; . Unless you are scaling again by 1 / Math.sqrt(complex[0].length), which I don't understand.
import {
	osc,
	fft,
	spectrumMag,
	normalizeFFT,
	spectrumPow,
	scaleFFT,
} from<EMAIL_ADDRESS>import { NumericArray, TypedArray } from<EMAIL_ADDRESS>import { TAU } from<EMAIL_ADDRESS>
function cos(phase: any, freq: any, amp: number = 1, dc: number = 0): number {
	return dc + amp * Math.cos(phase * freq * TAU + Math.PI / 6);
}

function main() {
	const FS = 512;
	const o = osc(cos, 10 / FS, 0.5);
	const d = o.take(FS);
	const ff = fft(d);
	const nf = normalizeFFT([[...ff[0]], [...ff[1]]]);
	const sf = scaleFFT([[...ff[0]], [...ff[1]]], 2 / d.length);
	const M: NumericArray = spectrumMag(ff);
	const nM: NumericArray = spectrumMag(nf);
	const sM: NumericArray = spectrumMag(sf);
	const bin = FS / d.length;
	const index = 10 / bin;
	console.log(`FFT magnitude @ 10Hz:\t\t\t${M[index]}`);
	console.log(`normalized FFT magnitude @ 10Hz:\t\t${nM[index]}`);
	console.log(`scaled FFT magnitude @ 10Hz:\t\t${sM[index]}`);

	const pow = spectrumPow(ff);
	const npow = spectrumPow(nf);
	const spow = spectrumPow(sf);
	console.log('------------------------------');
	console.log(`FFT power @ 10Hz:\t\t\t${pow[index]}`);
	console.log(`normalized FFT power @ 10Hz:\t\t${npow[index]}`);
	console.log(`scaled FFT power @ 10Hz:\t\t${spow[index]}`);
}

main();

The output of the above:
FFT magnitude @ 10Hz:                     128
normalized FFT magnitude @ 10Hz:   5.656854249492381
scaled FFT magnitude @ 10Hz:         0.5
------------------------------
FFT power @ 10Hz:                           32
normalized FFT power @ 10Hz:       0.0625
scaled FFT power @ 10Hz:               0.00048828125

The power should be be the square of the magnitude, the above shows that it's not.
Recommend changes:
For spectrumPow: remove scale for the function,
For normalizeFFT: Add arg named N and scale by 2/N.  default N = complex[0].length. The reason for the 2 is that this is a one-sided FFT, hence we need to double it.

Hi @rkesters - thank you very much! Please give me a few days to inspect/revisit this code again (since it's quite a long while ago this was written) and also because it was used in a few other projects... will also try your PR and compare more results! 🙏

I've done a lot of re-reading different literature about this topic and can confirm that the current implementation is faulty (but it's too long in the past to figure out where/when the mistaken assumptions were introduced) - however - I've also toyed around with your PR version and found it produces equally confusing, though different results. So back I went to hit the proverbial book shelves and have now updated and added new functions, primarily based on these nuggets:

https://holometer.fnal.gov/GH_FFT.pdf (probably my fave text on FFT/DFT etc.)
http://www.it.uom.gr/teaching/linearalgebra/NumericalRecipiesInC/c13-4.pdf (page 550 onwards)
http://www.hep.ucl.ac.uk/~rjn/saltStuff/fftNormalisation.pdf

I've added the following functions (both time or freq domain):

powerSumSquared()
powerMeanSquared()
powerTimeIntegral()

These additions are helpful to verify Parseval's theorem and for simple aggregation, but specifically the Heinzel report (first link above) made it obvious that one of the fundamental missing aspects of the current normalization and PSD functions is the lack of consideration for any windowing function used (i.e. both the current and your approach just assumed a rectangular window everywhere). Therefore, I've updated normalizeFFT(), denormalizeFFT() and spectrumPow() to support windowing and not just use fixed scale values.
I've also added new tests, gist of it below:
const FC = 64;
const FS = 512;
const A = 0.5;
const N = 2 * FS;
const I = freqBin(FC, FS, N);

// cosine osc w/ 30 degree phase shift (= 1/12 of circle as normalized value)
const src = osc(cos, add(FC / FS, 1 / 12), A).take(N);

// compute window LUT
const win = window(windowRect, N);

// compute FFT w/ pre-applied window
const fwd = fft(src.slice(), win);

// power functions currently DON'T include window compensation
console.log(
    "powSumSq: src =",
    powerSumSquared(src),
    "fft =",
    powerSumSquared(fwd)
);

console.log(
    "powMeanSq: src =",
    powerMeanSquared(src),
    "fft =",
    powerMeanSquared(fwd)
);

const spMag = spectrumMag(fwd);
const spPow = spectrumPow(fwd, false, N / 2, win);
const spDb = spectrumPow(fwd, true, N / 2, win);

const spPhase = spectrumPhase(thresholdFFT(copyComplex(fwd)));

console.log("mag[I] =", spMag[I]);
console.log("pow[I] =", spPow[I]);
console.log("dB[I] =", spDb[I]);
console.log("phase[I] =", (spPhase[I] * 180) / Math.PI, "deg");

// normalize with window compensation
const norm = normalizeFFT(copyComplex(fwd), win);

const spMagNorm = spectrumMag(norm);

// since `norm` already includes the window weight adjustments
// we use a scale factor of 1.0 here
const spPowNorm = spectrumPow(norm, false, N / 2, 1);

console.log("norm mag[I] =", spMagNorm[I], "pow[I] =", spPowNorm[I]);

This results in:
// ✓ parseval's theorem: sum(src[i]^2) = sum(|fft[i]|^2) / N
powSumSq: src =<PHONE_NUMBER>0000017 fft =<PHONE_NUMBER>9999812
powMeanSq: src = 0.12500000000000017 fft = 0.12499999999999817

// specific bin values
mag[I] =<PHONE_NUMBER>9999866
pow[I] =<PHONE_NUMBER>9999865
dB[I] = -6.0205999132796695
phase[I] = 29.999999999997627 deg

// using normalized FFT
norm mag[I] = 0.4999999999999974 pow[I] = 0.24999999999999736

As you can see, these results make a lot more sense now and I want to thank you pointing out the original error and making me re-read all this stuff 👍
A single sinusoid at 50% power correctly results in -6 dB (with your PR code it was something like +21 dB?!). 100% power yield 0 dB and 71% (1/sqrt(2)) = -3 dB...
I'd still like to update the powerXXX functions to take windowing into account, but I'm not entirely sure how to do that...
Please also have a look at the various new doc strings...

@rkesters with regard to the above mentioned updates, can this issue be closed now or still things unclear/buggy for you?

@postspectacular sorry for the delay, yes the changes make since and I close this issue. Thank you for all the work on the issue.


[Video_Player] Cannot be initialized twice on some Android devices.

This is related https://github.com/google/ExoPlayer/issues/6168
Reproducing:

Initialize first VideoPlayerController with url.
Initialize second VideoPlayerController with same url (also works for local files).
Get error: Video player had error com.google.android.exoplayer2.ExoPlaybackException:
com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(1, null, null, video/avc, null, -1, null, [1920, 1080, 60.0], [-1, -1].

All the information about devices and logs can be found in related issue.
Issue has been opened for 1 year, and there is no solution yet. Please, pay your attention to this problem. It is really crucial, and compels developers to refactor their code to only fit player's needs (single controller in widget tree).

Hi @SashaFarkas
Can you please provide your flutter doctor -v,
your flutter run --verbose,
your pubspec.yaml
and a minimal reproducible code sample.
Thank you

Bug is not reproducible on my devices. It's reported by testers.
`[✓] Flutter (Channel stable, v1.17.1, on Mac OS X 10.15.2 19C57, locale ru-RU)
• Flutter version 1.17.1 at /Users/macbook/development/flutter
• Framework revision f7a6a7906b, 2020-05-12 18:39:00 -0700
• Engine revision 6bc433c6b6
• Dart version 2.8.2
⣻Unable to find any JVMs matching version "1.8".                                                                                [!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/macbook/Library/Android/sdk
• Platform android-29, build-tools 29.0.2
• Java binary at: /usr/bin/java
• Java version Java(TM) SE Runtime Environment (build 13.0.1+9)
✗ Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.5, Build version 11E608c
• CocoaPods version 1.9.1
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
[✓] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)
`
video_player: 0.10.11
I cannot provide the full pubspec.yaml
Reproducible example is 2 stateful widgets, each of them calls initialize method of its own controller in init state. Controllers shouldn't be disposed and can be placed  either in single widget tree or on different routes (Route with 1st widget -> push -> Route with 2nd widget).
I will provide code of minimal reproducible sample at the end of the day. (If it is still needed)

After I had made controller reusable (without reinitializing for the same url), everything became fine. But it is a terrible workaround. Managing the state of this controller (especially with AutomaticKeepAlive widgets and different volume on each route) is pain.

Hi @SashaFarkas
there's no need to provide your production code,
but the problem might depend from the implementation in your app
for the issue to be workable it will need a minimal reproducible code sample.
Thank you

@iapicca Here is the complete reference
https://github.com/flutter/flutter/issues/61309
thats the same issue. And many of the devs I know facing same issue with video_player.
Code is attached in this.
Thanks @iapicca

https://github.com/flutter/flutter/issues/61309 this is a 100 percent  clear explanation  of the issue.
Pls refer this earliest.


Property 'peerConnection' does not exist on type 'SessionDescriptionHandler'

Hello,
I got the following problem when trying to migrate from sipjs 0.15.11 to sjipjs 0.16.1. Am I missing something here?
Describe the bug
Property 'peerConnection' does not exist on type 'SessionDescriptionHandler'
Logs
error TS2339: Property 'peerConnection' does not exist on type 'SessionDescriptionHandler'.

To Reproduce
Steps to reproduce the behavior:

Create a user agent and handle incoming call
Try to attach a media as mentioned here attach-media
Using this code

// Assumes you have a media element on the DOM
const mediaElement = document.getElementById('mediaElement');

const remoteStream = new MediaStream();
function setupRemoteMedia(session: Session) {
  session.sessionDescriptionHandler.peerConnection.getReceivers().forEach((receiver) => {
    if (receiver.track) {
      remoteStream.addTrack(receiver.track);
    }
  });
  mediaElement.srcObject = remoteStream;
  mediaElement.play();
}

Expected behavior
Property 'peerConnection' should exist on type 'SessionDescriptionHandler'
Observed behavior
Compilation throws the error :
Property 'peerConnection' does not exist on type 'SessionDescriptionHandler'
Environment Information

SipJS 0.16.1

To be more precise peerConnection does exist on the file platform/web/session-description-handler/session-description-handler.ts
  public peerConnection!: RTCPeerConnection;

But not on api/session-description-handler.ts
Is that why it's not part of the definition file?

I meet the same issue, and I import the SessionDescriptionHandler from 'sip.js/lib/platform/web' to fix it, it works well so far.

Everything in 'sip.js/lib/platform/web' is exported in the Web namespace, so you may also import { Web } from "sip.js" and then reference as Web.SessionDescriptionHandler.

Type peerConnection will not exist on the SessionDescriptionHandler Interface. The idea is that you could write a SDH for an environment that is not SIP.js and therefore has no peer connection. Import and use types from the Web.SessionDescriptionHandler if you know you are using the web implementation. This is intentional.

@Fzwael @SD-Gaming
I'm sorry to reopen this.
Did you do anything to the code besides importing the SessionDescriptionHelper? It doesn't work that way for me.

Thanks in advance.

If someone should also have this problem. That's how it worked for me:
`import { SessionDescriptionHandler } from 'sip.js/lib/platform/web'
case SessionState.Established:
let sessionDescriptionHandler: SessionDescriptionHandler = inviter.sessionDescriptionHandler as SessionDescriptionHandler;
setupRemoteMedia(sessionDescriptionHandler);
break;
function setupRemoteMedia(session: SessionDescriptionHandler) {
let receiversList: any = session.peerConnection.getReceivers();
receiversList.forEach((receiver: RTCRtpReceiver) => {
if (receiver.track) {
remoteStream.addTrack(receiver.track);
}
});
mediaElement.srcObject = remoteStream;
mediaElement.play();
}`
Improvements and remarks are gladly accepted.


ci: change googleurl dep

backing file temporarily deleted and re-updated (with a new hash)

file re-uploaded and at least one CI branch passes so I think the hash is correct.  PTAL!

Why would the hash have changed if the version have not changed?

Someone accidentally deleted the GCS bucket.  The SHA for the "real" download chages regularly (I think it includes a timestamp?) which is why we had a copy of it.  When we deleted and restored the copy we picked up a new copy with a different hash.  Working as expected, just really non-ideal :-/


Update version checker

Every run, gommitizen could check if a new version is available and purpose updates it by showing a command.

Use go install for installing instead of using the installation script (https://go.dev/ref/mod#go-install).
This way we can use https://github.com/rhysd/go-github-selfupdate, for example, to autoupdate.


Cant download anything from Furaffinity! How to fix?

It seems that I have some problems with downloader after long using it. First of all, here is a error at start.

Any ideas?

Well, Furaffinity is currently down! You won't be able to download anything from there till it's back up.
If there's another error, I don't see it here, that's just a deprecation warning! What exactly is the problem you're having?

Are things working okay now that the site is back up?

yeah, its working again just fine, thank you


Improve Sozo Documentation

[ ] Examples using Sozo with L3s including setting up the .toml
[ ] Sozo architecture and plans
[ ] Creating an Account on a Katana using sozo
[ ] Adding new account clash hashes via sozo
[ ] Workflow using sozo dev
[ ] Contributing to sozo

Depends on https://github.com/dojoengine/dojo/issues/1574 for account stuff.


Convert documentation from google slides to HTML

Slides can be found here: https://bit.ly/rx-marble-design-system_slides

@BioPhoton I can help with that


Popup pr status on pr 6 is not accurate and says its frozen when its in fact in conflict

I was not able to observe this behavior while running the tests and checking PR 6's modal. How can I reproduce this bug? @7db9a

I do see the last test fails, that is should be in a state of 'conflict'. If this is related to setting the 'conflict' status correctly of a PR, then PR #146 should resolve it as far as the client goes.
If we want to return a state of conflict, we need to reproduce the logic in #146 on the desired API request: Query GitHub for its mergeability and add toggle the conflict state accordingly for the response.


Correction in flutter app tutorial @ codelab

It is my first time opening an issue.
I was learning flutter flutter codelab turorial
the codelab tutorial is not working, I found it is diffrent from its source code on github
Sorry if I am wrong :no_mouth:

Hi @jithuraj, Thanks for filing the issue. Looks like the source code is not properly linked clicking on source code in step4 points to source code in step 5.
cc: @domesticmouse

Hi,
Thanks for your reply.
And there is no _buildRow(WordPair pair) method in source code as mentioned in the tutorial.

This should now be fixed


LESQ-980: Unauthorised download notice

Description
Music year: 1994

Adds a warning when lesson downloads are geo-restricted

How to test

You'll need the use-auth-owa feature flag enabled
The public metadata for your account in Clerk must also contain:

{
  "owa": {
    "isOnboarded": true,
    "isRegionAuthorised": false
  }
}

Go to https://deploy-preview-2737--oak-web-application.netlify.thenational.academy/teachers/lessons/account-security-68rkee/downloads-auth?preselected=all
Sign-in if required
You should see a warning that the content is unavailable to you
Repeat the test with the feature flag off/in an incognito session on the regular downloads page https://deploy-preview-2737--oak-web-application.netlify.thenational.academy/teachers/lessons/account-security-68rkee/downloads?preselected=all and you should not see the warning message

❗ The restriction is hard coded to only apply to the lesson with slug account-security-68rkee for now. No other lessons will have this restriction.
Screenshots

Checklist

[ ] Added or updated tests where appropriate
[ ] Manually tested across browsers / devices
[ ] Considered impact on accessibility
[ ] Design sign-off
[ ] Approved by product owner
[ ] Does this PR update a package with a breaking change

Just a thought, but would it be better if the user's region was checked on the fly against the list of approved regions (and using the outcome of this check to determine what they can access), rather than setting the isRegionAuthorised flag at onboarding (and using this value to determine what they can access)?

Also, it doesn't really make sense to me that /downloads can be reached while logged out (or with the FF not enabled), but whilst logged in I can only access it if I'm in an authorised region. Likewise, with /downloads-auth I would expect it to be the regular downloads page (with no auth required) when the FF is not enabled rather than a blank page. Why isn't there a single /downloads page that behaves differently depending on the FF state? Or is all that to come in a later PR?

@rightsaidjames Carl's away so I'll try and answer these for you!
For the first point it's definitely a reasonable thought, and that's how we set it up initially. However there were concerns that we'll need to check against the whitelisted regions in multiple places, so this solution is intended to avoid us having to maintain multiple versions of the whitelist, or find a reasonable way to share it, and instead just have a single whitelist in one place at onboarding - access checks are also then simplified to checking a single field for true/false.
On your second point - yes once we promote this feature we will consolidate to a single downloads page again, having multiple pages is just a necessity right now due to how the combination of auth & FF works. Agree it would be good if behaviour was consistent, but that's not a high priority right now as long as each page works as expected (and if it's unclear what is 'expected' we can iron that out!)

Just a thought, but would it be better if the user's region was checked on the fly against the list of approved regions (and using the outcome of this check to determine what they can access), rather than setting the isRegionAuthorised flag at onboarding (and using this value to determine what they can access)?

@rightsaidjames There is also a more "product-y" answer to this that is definitely going to be a majority of users. What we care about on the geo-restriction side of things is not that a user is in the UK when they access the content, but more that they are a teacher in the UK. Their exact location when accessing the content is much less important to us. So in the tiny number of scenarios where a UK teacher is trying to access our content from outside the UK, we don't want them blocked (though they will of course be blocked if they are signing up for the first time outside of the UK).

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


Add outdated and recentlyUpdated suggestions to extension filter

old: ❌

new: ✅

@sandy081 is there an issue to verify this?

Created:
Fixes #https://github.com/microsoft/vscode/issues/236631


Libdoc does not support libraries with name ending with .json or .xml

As a note, in my particular use-case, the library is named RPA.JSON and calling:
python -m "robot.libdoc" RPA.JSON out.libspec
gives an output such as:
Spec file 'RPA.JSON' does not exist.
If the library is renamed to something else it does work.
This seems to be happening because at:
https://github.com/robotframework/robotframework/blob/master/src/robot/libdocpkg/builder.py#L63
it's trying to treat the library name as if it was some file on the filesystem -- that doesn't seem to make sense based on the actual command line, so, I guess it's reusing that logic from some other use case?

Libdoc accepts earlier generated spec files as inputs and whenever it sees an input like x.json or x.xml it assumes its a spec file. It has never occurred that a library could have a name like that as well.
This ought to be pretty easy to fix. We could, for example, always import the given input if it doesn't exist regardless its name.

Same problem also with names ending with .java or with any valid resource file extensions .robot, .resource, .txt, .tsv, .rst or .rest. At least Lib.REST could actually occur in real life.