Choose a model by AIC in a Stepwise Algorithm

Feature Request: Choose a model by AIC in a Stepwise Algorithm
Select a formula-based model by AIC.
The R code is following. We need to translate it into Julia
> getAnywhere(step)
A single object matching ‘step’ was found
It was found in the following places
  package:stats
  namespace:stats
with value

function (object, scope, scale = 0, direction = c("both", "backward",
    "forward"), trace = 1, keep = NULL, steps = 1000, k = 2,
    ...)
{
    mydeviance <- function(x, ...) deviance(x) %||% extractAIC(x,
        k = 0)[2L]
    cut.string <- function(string) {
        if (length(string) > 1L)
            string[-1L] <- paste0("\n", string[-1L])
        string
    }
    re.arrange <- function(keep) {
        namr <- names(k1 <- keep[[1L]])
        namc <- names(keep)
        nc <- length(keep)
        nr <- length(k1)
        array(unlist(keep, recursive = FALSE), c(nr, nc), list(namr,
            namc))
    }
    step.results <- function(models, fit, object, usingCp = FALSE) {
        change <- sapply(models, `[[`, "change")
        rd <- sapply(models, `[[`, "deviance")
        dd <- c(NA, abs(diff(rd)))
        rdf <- sapply(models, `[[`, "df.resid")
        ddf <- c(NA, diff(rdf))
        AIC <- sapply(models, `[[`, "AIC")
        heading <- c("Stepwise Model Path \nAnalysis of Deviance Table",
            "\nInitial Model:", deparse(formula(object)), "\nFinal Model:",
            deparse(formula(fit)), "\n")
        aod <- data.frame(Step = I(change), Df = ddf, Deviance = dd,
            `Resid. Df` = rdf, `Resid. Dev` = rd, AIC = AIC,
            check.names = FALSE)
        if (usingCp) {
            cn <- colnames(aod)
            cn[cn == "AIC"] <- "Cp"
            colnames(aod) <- cn
        }
        attr(aod, "heading") <- heading
        fit$anova <- aod
        fit
    }
    Terms <- terms(object)
    object$call$formula <- object$formula <- Terms
    md <- missing(direction)
    direction <- match.arg(direction)
    backward <- direction == "both" | direction == "backward"
    forward <- direction == "both" | direction == "forward"
    if (missing(scope)) {
        fdrop <- numeric()
        fadd <- attr(Terms, "factors")
        if (md)
            forward <- FALSE
    }
    else {
        if (is.list(scope)) {
            fdrop <- if (!is.null(fdrop <- scope$lower))
                attr(terms(update.formula(object, fdrop)), "factors")
            else numeric()
            fadd <- if (!is.null(fadd <- scope$upper))
                attr(terms(update.formula(object, fadd)), "factors")
        }
        else {
            fadd <- if (!is.null(fadd <- scope))
                attr(terms(update.formula(object, scope)), "factors")
            fdrop <- numeric()
        }
    }
    models <- vector("list", steps)
    if (!is.null(keep))
        keep.list <- vector("list", steps)
    n <- nobs(object, use.fallback = TRUE)
    fit <- object
    bAIC <- extractAIC(fit, scale, k = k, ...)
    edf <- bAIC[1L]
    bAIC <- bAIC[2L]
    if (is.na(bAIC))
        stop("AIC is not defined for this model, so 'step' cannot proceed")
    if (bAIC == -Inf)
        stop("AIC is -infinity for this model, so 'step' cannot proceed")
    nm <- 1
    if (trace) {
        cat("Start:  AIC=", format(round(bAIC, 2)), "\n", cut.string(deparse(formula(fit))),
            "\n\n", sep = "")
        flush.console()
    }
    models[[nm]] <- list(deviance = mydeviance(fit), df.resid = n -
        edf, change = "", AIC = bAIC)
    if (!is.null(keep))
        keep.list[[nm]] <- keep(fit, bAIC)
    usingCp <- FALSE
    while (steps > 0) {
        steps <- steps - 1
        AIC <- bAIC
        ffac <- attr(Terms, "factors")
        scope <- factor.scope(ffac, list(add = fadd, drop = fdrop))
        aod <- NULL
        change <- NULL
        if (backward && length(scope$drop)) {
            aod <- drop1(fit, scope$drop, scale = scale, trace = trace,
                k = k, ...)
            rn <- row.names(aod)
            row.names(aod) <- c(rn[1L], paste("-", rn[-1L]))
            if (any(aod$Df == 0, na.rm = TRUE)) {
                zdf <- aod$Df == 0 & !is.na(aod$Df)
                change <- rev(rownames(aod)[zdf])[1L]
            }
        }
        if (is.null(change)) {
            if (forward && length(scope$add)) {
                aodf <- add1(fit, scope$add, scale = scale, trace = trace,
                  k = k, ...)
                rn <- row.names(aodf)
                row.names(aodf) <- c(rn[1L], paste("+", rn[-1L]))
                aod <- if (is.null(aod))
                  aodf
                else rbind(aod, aodf[-1, , drop = FALSE])
            }
            attr(aod, "heading") <- NULL
            nzdf <- if (!is.null(aod$Df))
                aod$Df != 0 | is.na(aod$Df)
            aod <- aod[nzdf, ]
            if (is.null(aod) || ncol(aod) == 0)
                break
            nc <- match(c("Cp", "AIC"), names(aod))
            nc <- nc[!is.na(nc)][1L]
            o <- order(aod[, nc])
            if (trace)
                print(aod[o, ])
            if (o[1L] == 1)
                break
            change <- rownames(aod)[o[1L]]
        }
        usingCp <- match("Cp", names(aod), 0L) > 0L
        fit <- update(fit, paste("~ .", change), evaluate = FALSE)
        fit <- eval.parent(fit)
        nnew <- nobs(fit, use.fallback = TRUE)
        if (all(is.finite(c(n, nnew))) && nnew != n)
            stop("number of rows in use has changed: remove missing values?")
        Terms <- terms(fit)
        bAIC <- extractAIC(fit, scale, k = k, ...)
        edf <- bAIC[1L]
        bAIC <- bAIC[2L]
        if (trace) {
            cat("\nStep:  AIC=", format(round(bAIC, 2)), "\n",
                cut.string(deparse(formula(fit))), "\n\n", sep = "")
            flush.console()
        }
        if (bAIC >= AIC + 1e-07)
            break
        nm <- nm + 1
        models[[nm]] <- list(deviance = mydeviance(fit), df.resid = n -
            edf, change = change, AIC = bAIC)
        if (!is.null(keep))
            keep.list[[nm]] <- keep(fit, bAIC)
    }
    if (!is.null(keep))
        fit$keep <- re.arrange(keep.list[seq(nm)])
    step.results(models = models[seq(nm)], fit, object, usingCp)
}

Referances
Hastie, T. J. and Pregibon, D. (1992) Generalized linear models. Chapter 6 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. New York: Springer (4th ed).

Dear Sir,
I am working on package BestModelSubset.jl which implements naively three model selection algorithms i.e. Best Subset Selection, Forward-Stepwise Selection and Backward Step-wise Selection. I had referenced Chapter 6 of ISLR Linear Model Selection and Regularization for these.
One simple example.
Instantiate a ModelSelection object
# To execute forward step-wise selection with primary parameter to be R-squared score
# and secondary parameter to be aic.
julia> obj = ModelSelection("forward", "r2", "aic")
ModelSelection(BestModelSubset.forward_stepwise, nothing, StatsAPI.r2, nothing, StatsAPI.aic,
               nothing, StatsAPI.r2, StatsAPI.aic)

Fit the ModelSelectionobject to the data
julia> Random.seed!(123); df = hcat(rand(Float64, (50, 21))); # 50*21 Matrix
# The fit! function updates the fields of the `ModelSelection` object.
# Returns the indexes of columns which have the least aic value.
julia> index = fit!(obj, df)
1-element Vector{Vector{Int64}}:
 [5, 6, 16, 17, 18, 20]

Access various statistics like r2, adjr2, aic and bic for the selected model
# One can always use something like MLBase.rss(df[:, index]) to get the statistics not passed earlier.
julia> obj.r2
0.8161760683631274

julia> obj.aic
21.189713760250477

I would be more than willing to contribute to CRRao.jl, a step-wise selection feature.

BestModelSubset.jl

The link is not working

Sir,
Sorry for responding late, I was unwell lately. I have fixed it, should work fine now.
julia> using Pkg; Pkg.add(url="https://github.com/waitasecant/BestModelSubset.jl.git")


update to lodash 4

I think you should define lodash dependency in first place, cause when I include victory-axis  is my project the lodash imports defined here fallback on the node_modules root lodash dependency, which is<EMAIL_ADDRESS>in my case.

closed by https://github.com/FormidableLabs/victory-core/pull/23


Alpha best practices and/or documentation

I'm using the BC3 transcoder and feeding pngs with alpha channels into basisu and not getting the results I would expect or at least hope for, and I don't see much anywhere in the docs or github issues that describe what basis expects (if anything) out of its source images - i.e. do they need to be premultiplied, must they NOT be premultiplied - and what promises it makes about its output. For raw RGBA source images I can happily fix this up after loading them by just going in and mucking with the pixels but I can't really go in and do that with BC3 data, so I have to understand what the transcoder can do for me and whether there are knobs I can turn to make basisu.exe do the "right" thing at compile time when I feed in my source assets.
I was hoping perhaps there would be a flag to basisu that would premultiply the alpha, but it doesn't appear that exists. Should I be manually running a custom filter over all my PNGs that premultiplies them and then dumps out a new non-standard premultiplied PNG for basisu to consume? Is there a way to nudge the transcoder into doing what I want at runtime? I would also expect that getting this "right" will influence the quality of the mips that basisu generates when you ask it to generate mips.

From testing, it appears that basisu implicitly premultiplies any images loaded from TGA, but not from PNG.

From some more testing also, it's probably worth explicitly stating how alpha is handled in the mipmap generation. I think the way it works right now produces suboptimal outcomes, but I'm also not sure basisu is in a position to do anything about it.
As I understand things:

Ideally, your texture data being compressed isn't premultiplied, because the post-compression A and RGB channels might be discontinuous, which would mess up the premultiplication.
However mips are best generated from premultiplied image data, otherwise you can get halos and other unpleasant effects around the edges of your opaque regions.
So the mip generator would want to premultiply any unpremultiplied image data,
but then once we've generated the mips we would want to then unpremultiply them before feeding them into the compression process,
and then the end user would premultiply the image data in their pixel shader (or via a GPU ROP blend)

PNG and TGA seemingly handling alpha in different ways means it's not possible for everything to be correct right now, but were that fixed I'm still not sure basisu would be able to magically do everything right. This has me considering doing my own complicated mip generation (based on the above) and then feeding those mips into basis to try and get the alpha correct everywhere.

Here is an example of the problems that arise from not getting alpha right (this appears in DXT3, DXT5 and BC7 output from basis, and is present in both UASTC and classic ETC1S modes, while UASTC is better):

If you look closely you can see there's dark haloing around the red because of the disconnect between the alpha and red values (not basis's fault, just the nature of the format), and in some cases there will also be bright halos from the disconnect being in the opposite direction. The expected "correct" output would be for there just to be appropriately-shaded red, but that would require the alpha value to match up with the implied alpha of the premultiplied red we're getting out of the texture unit, and it doesn't.
I think in this case the "fix" would be for me to compress without premultiplication applied, and then premultiply in my shader or in the ROPs - but right now I can't do that since the TGA loader premultiplies my textures. I could swap over to PNG input to avoid that, of course.

Some more spam to give credit where due: the alpha problem with TGA was elsewhere in the chain, basis appears to treat TGA alpha the same as PNG alpha. So that's good, and it means the only remaining problem (other than documentation/best practices) is how to deal with mipmaps. It's possible the right answer is just to tell the user to generate their own mips and feed them to basisu, but I don't know how you feel about that. I think average or even above-average devs might struggle to get it right, but on the other hand, maybe mips for block-compressed textures with alpha are not especially common or important?
Left side below is unpremultiplied RGBA input -> basis uastc -> bc7 -> multiply alpha in GPU ROP, right side is premultiplied RGBA input -> basis uastc -> bc7. Naturally this does not show the known issues with mips

It's possible the right answer is just to tell the user to generate their own mips and feed them to basisu, but I don't know how you feel about that. I think average or even above-average devs might struggle to get it right, but on the other hand, maybe mips for block-compressed textures with alpha are not especially common or important?

Right now, you have to call our encoder directly to feed in your own generated mipmaps. We haven't exposed that to the command line interface yet, but it's on the list.

From testing, it appears that basisu implicitly premultiplies any images loaded from TGA, but not from PNG.

The .tga loader just loads whatever alpha data is in the file (see read_tga() in basisu_enc.cpp). We don't do anything special with the alpha data from .tga vs. png.

Ideally, your texture data being compressed isn't premultiplied, because the post-compression A and RGB channels might be mismatched, which would mess up the premultiplication.

The mipmap generator in basisu doesn't treat alpha in any special way (i.e. it doesn't premultiply or postmultiply) - it's just another channel of data. One challenge is, sometimes the alpha channel doesn't represent opacity, but something else special to the application.
I think adding support for premultiplying before resampling makes sense, and we'll get to this next year. Also, the compressor API already supports custom user-supplied mipmap level images, and we'll expose this to the command line tool.

From testing, it appears that basisu implicitly premultiplies any images loaded from TGA, but not from PNG.

The .tga loader just loads whatever alpha data is in the file (see read_tga() in basisu_enc.cpp). We don't do anything special with the alpha data from .tga vs. png.

Ideally, your texture data being compressed isn't premultiplied, because the post-compression A and RGB channels might be mismatched, which would mess up the premultiplication.

The mipmap generator in basisu doesn't treat alpha in any special way (i.e. it doesn't premultiply or postmultiply) - it's just another channel of data. One challenge is, sometimes the alpha channel doesn't represent opacity, but something else special to the application.

Right, you definitely can't make it the default. It might make sense to try and add intelligence for this to the command line tool (perhaps an optional argument that describes how to treat the alpha when generating mips) but I can understand why you might see that as out of scope for basisu.exe. (Would you accept a PR to add it if I find time to implement that?)

I think adding support for premultiplying before resampling makes sense, and we'll get to this next year. Also, the compressor API already supports custom user-supplied mipmap level images, and we'll expose this to the command line tool.

Great! If I haven't gotten around to invoking the compressor API manually by then I'll definitely be happy to use that.


Plane Map with grid

There should be a plane on the ground and a grid if possible
There should be the possibility for multiple different layers
the grid contains tiles, every tile is passable, not passable or thin air
Every Tile should be told what its neighbor is. (later can be done by script if we want
everything else by self-judgment

Extrem simples Grid funktioniert schonmal

[ ] Gid
[ ] Cover
[ ] Traversals
alles fertig

still TODO:
more efficent search for neighbours
detection of other traversaltypes
Update passability


knife vsphere vm find (listing vm host)

What are you trying to do and what's not working?
I am trying to get the host (hypervisor) that a VM is running on in a cluster
Please paste the command and output (run with -VV). Don't forget to X out any passwords or sensitive information
knife vsphere vm find --pool MY_POOL_NAME --match-name MY_VM_NAME

Other details, such as gem version and if you're working with a Linux or Windows VM
When a VM is created and started in a cluster, Distributed Resource Scheduler (DRS) will put the vm wherever it decides. I would like to be able to see where that vm was started. (does this make sense?)
If there is some other way to do this can you please help?

Looks like we can get to it from VirtualMachine -> summary -> runtime -> host
What are you trying to use this for? At least in our environment, DRS will vMotion guests around even after cloning to make sure there are no hot spots. Just trying to make sure we're getting you the actual information you need.

We mainly want to use it for remote access, ie. vnc uses the external IP for the esx host that the vm lives in.

vm.summary.runtime.host seems to give output like this

HostSystem("host-15")

it would be more useful if we can get the host IP or hostname

Right.. that gets you to HostSystem. Try summary.host? summary gets you some info on the host itself.

or try vm.summary.runtime.host.name. It's not obvious from the page I linked but it turns out HostSystem inherits from ManagedEntity which has a name property.

Yes! that gives me an IP, this is useful

Which one? Also, I noticed this command doesn't use the output format we've been moving to, which would let you script this nicely with JSON output knife vsphere vm find --pool MY_POOL_NAME --match-name MY_VM_NAME --format json. I'll get that on my list.

vmc.summary.runtime.host.name gives me the host's IP

I will put together a pull request.  Is the field --host-ip going to be a good one to use

Could you use --host-name instead, please? According to the API it's a name (mine shows a FQDN, not an IP) I suspect it has to do with how you registered the host initially.

no worries, did you mean --hostname that exists or create --host-name instead?

pull request done.


Game stats - stats for period of time + averages for number of playrs

Overview

It would be nice to have general statistics for the year, and in the card of each game all averages should be shown depending on the number of players

AC

ability to show stats from a certain period of time (e.g. past year)
show score averages depending on the number of players (e.g. 20 for 2 player games, 31 for 3 player games)

Idea - should average scores by player be shown on a chart?


Navbar responsive state is broken

The navbar is broken on v4-dev on a mobile size :

it was introduced on this PR: https://github.com/twbs/bootstrap/pull/23652
flex-grow: 1 makes element to grow, it will not wrap.
I am working on it, finding a solution that also works on IE, I'll send a PR soon

Hi @andresgalante,
I would like to work on this one. I tried to reproduce it but I couldn't. Could you tell us more about this behavior? browser? version?

@Fouzyyyy sorry, I've already sent a PR, you can review it, the bug is on IE10


chore: update project params and structure

Overview

Fixes #44
Notes for reviewer

Couple notes:

I'd much rather split this up into smaller PRs
deploy/crd is not quite right: those are rather CR examples
deploy/test move doesn't feel right, especially since it's gonna be rewritten at some point in the style of the vault-secrets-webhook e2e tests
Can't find deploy/files anywhere yet there are references to it in code

In that case, I'd recommend using config directory (similar to how kubebuilder does CRD generation) which can be a common parent to all mentioned resources.
I could split into multiple PRs, but I feel it won't really matter as much since only a couple of tree changes are impactful.

In that case, I'd recommend using config directory (similar to how kubebuilder does CRD generation) which can be a common parent to all the mentioned resources.

That doesn't feel quite right either. I mean, not for all (eg. tests).
Here is my recommendation:

deploy/charts/...
deploy/examples -> CR examples
deploy/examples/base (?) -> base resources (rbac) for examples
deploy/examples/... -> additional directories for examples with multiple resources (alternatively: put different objects into one yaml file for these examples)

Adding to this, if we were to put scripts to hack/scripts, we could also then move tests to hack/tests, which would fit more clearly. I wanted to avoid deploy dir since it is used as a transient dir during resource generation.

Adding to this, if we were to put scripts to hack/scripts

Sounds good to me

we could also then move tests to hack/tests

Let's not touch tests for now. As I said, I wanna move them to e2e (which is another loosly applied pattern out there) once we rewrite them using the e2e framework.

I wanted to avoid deploy dir since it is used as a transient dir during resource generation.

deploy is a widely used pattern IMO. I generally prefer it over config.


Add support for running tests using NodeJS

:tophat: What is the goal?
Implement NodeJS as another test runner.
:page_facing_up: How is it being implemented?
In this PR, I include the following changes:

Create an abstraction for the different Test Runners (Wasmer, browser and now Node)
Implement the new Node test runner (quite similar to the Wasmer one)
Unify Javascript client code, so we can make sure we apply the same patches and load in the same way all the different targets
Create a new entry point for testing with node
Add that new entry point to the static bundle

:eyes: Any consideration?
The Node test runner does not use the TestsParser as it heavily impacts execution time. I will try to figure out what's going on later.
:white_check_mark: How can it be tested?
Testing is automated 🤖 . You can also check this in your own project by running:
carton test --environment node

Thank you so much for your feedback! I've already applied most of the suggestions 😄


New version: Mozilla.Firefox version 127.0.1

Created by 🥟 Dumplings in workflow run #5985.

Log
Updated: 127.0 → 127.0.1
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

Error occurred while downloading installer from https://download-installer.cdn.mozilla.net/pub/firefox/releases/127.0.1/win64-aarch64/sv-SE/Firefox Setup 127.0.1.exe. The process cannot access the file 'C:\local\Temp\WinGetSvc-Validation-387-158759-20240619-7\8d9f7831-3594-4513-8485-6947fce2b361' because it is being used by another process..
Error information:
Http Response: OK
Http Reason Phrase: OK

Would there be a logical way to separate these installers, to improve the chances of passing validation?

/azp run

/azp run

@stephengillie hey Stephen any chance this can be manually verified? It keeps failing due to the amount of installers.


Floating point equality semantic

From a call discussion:
OPTIMADE has a "float" datatype (it is defined in section 2.1, properties are marked as being float), the filtering specification (section 6) discusses "numerical comparisons", but nowhere do we clarify what floating point semantics apply for these comparisons - which especially matter for equality comparison.

In my view the floating point semantics must be allowed to be decided by the underlying backend. No one wants (or even efficiently can) translate floating point semantics for queries.
But this means that, e.g., exmpl float_field = 0.3333 may behave differently in whether it matches or not. I'm ok with that. Every scientist that works with numerical methods should be aware about the difficulty with such comparisons.

This issue is particularly important when querying properties of type "list of floats" (elements_ratios for example). The only mandatory supported filters for such properties are list HAS {,ALL,ANY} value (set aside list LENGTH value), and all of them imply exact match. I think that by leaving decision on the floating point equality to the individual implementations we render mandatory supported queries on properties like elements_ratios unreliable at all.


Wrong sync_committee_bits value from beacon block rpc on kiln testnet

Describe the bug
On kiln testnet, sync_committee_bits value from beacon block rpc always is 0xf7fffeefebd6ff6faf7ffffd7dfffffe6ff6bfbfffdedefffffff7fff5f77dace7fffb7fddffaefdfffffeffefffbdfffffbe6fb5fffb7fefd7f3fffffffbffb
If you change the block N, the result would not change. This seems to be an obvious bug.

Expected behavior
https://beaconchain.kiln.themerge.dev/block/651772
The sync_committee_bits in explorer is correct, 0xefff7ff7d76bfff6f5feffbfbeffff7ff66ffdfdff7b7bffffffefffafefbe35e7ffdffebbff55bffbdf7ffff7ffbdffffdf67dffaffed7fbffefcfffeffdddf

Steps to Reproduce
shell script to reproduce it
~ curl -X GET http://<IP_ADDRESS>:9596/eth/v2/beacon/blocks/651772 -H  "accept: application/json" | jq -r '.data.message.body.sync_aggregate.sync_committee_bits'

Screenshots

Desktop (please complete the following information):

OS:  ubuntu
Version:  v0.37.0
Branch:  v0.37.0
Commit hash:

https://github.com/sigp/lighthouse/issues/3265#issuecomment-1154727549


Improve PostgresCursor tests setup and teardown

Move the connection configuration to a separate file.
Drop the created table after testing.

Landed in https://github.com/metarhia/globalstorage/commit/966739ef9be3e158ab540753817119506e04983f.


The status bar was hidden after taking photo with iOS6.1

The example has the same issue.

Closing for now as we will support iOS7+ due to #69


Add Usage section to readme

@mlarash Thx for sharing this EKF implemention for SOC estimation. Never worked with meson, I took me some time to compile the project.
Would you welcome a PR for the readme.md, which adds a Usage section with the steps contained in script beneath? Furthermore the readme could reference the .sh script and warn users to only execute before reading it.

#This Script builds kalman-soc Algo
#Resource:https://mesonbuild.com/Tutorial.html#the-humble-beginning

# Install Meson (Build Systems) and it's Dependencies
sudo apt install meson ninja-build build-essential clang-format

# Clone Git Repo to build including subprojects cpputests located folder /dep/
git clone --recursive git@github.com:okrasolar/kalman-soc.git

cd kalman-soc/dep/cpputest/

# Get missing meson.build file for cpputest subproject
wget https://raw.githubusercontent.com/hofab/meson-cpputest/master/subprojects/cpputest/meson.build
cd ..
cd ..

# Adjust main meson.build to work with the above cpputest meson.build file
sed -i ''s/'cpputest_dep'/'lcpp_dep'/g''  meson.build

meson setup builddir
cd builddir
ninja

After getting it to compile and the Unit Test passing at the same time. I now got the backtest running as well.
The missing files for it to run are the following, they need to be located in the main directory of the repository kalman-soc/data/:
data.zip or lead)

raw_sensor_data.csv (contains 0-4 columns)
example_processed_sensor_data.csv (contains the input raw sensor data and the calculated SOC in column 5, it is generated by the backtest and named processed_sensor_data.csv)

The data in raw_sensor_data.csv is synthetic, I still need to generate some real data. Everything inside the raw_sensor file after "timestamp" column is ignored by the backtest, that's why the expected result (SOC) and another synthetic example is stored in the file. The file has been produced by reading the main.cpp backtest code.
To get the backtest running steps are as follows:
#requirements
sudo apt install unzip
cd kalman-soc/ #enter the git repo
wget https://github.com/okrasolar/kalman-soc/files/6930437/data.zip #download
unzip data.zip
cd builddir
./backtest # excute backtest

ouput on command line should be:
The output file should be the same as example_processed_sensor_data.csv


[Feature Request] Pull Requests and git branch publishes

Overview
👋 from GitHub's datacenter team.  We are requesting guidance on functionality for this pair of features:

Add limited support for the Git Data API

[ ] Assemble a git tree from one or many templatefile outputs
[ ] Publish an assembled git tree (☝)
[ ] Read a branch for the purposes of associating it to a PR (👇)

Add limited support for the Pull Requests API

[ ] Create  a new Pull Request
[ ] Merge a Pull Request when mergable

Package features into a quality 🚢

[ ] Acceptance testing
[ ] Documentation external to the resource code itself
[ ] Lint for existing style and standards
[ ] Review for breaking changes to components that may already be in use in the wild

[ ] config files
[ ] Terraform states

cc https://github.com/terraform-providers/terraform-provider-github/issues/254 (related solution to initializing a repo with Terraform)
Suggested UX
resource "github_repository_content" "actions" {

  repository = "${local.repository_name}"

  # Optional Pull Requesst overrides of sane defaults
  pull_request {
    title = "Create standard Actions for this repo"
    target_branch    = "master"
    working_branch   = "actions-by-terraform"

    body = "${local.create_actions_body}"
    issue = "${local.create_actions_issue}"
  }

  # Declare content as a map of paths to rendered templates
  content = {
    ".github/workflows/build.yml" = templatefile("path/to/build.yml", { foo = "bar" }),
    ".github/workflows/release.yml" = templatefile("path/to/release.yml", { foo = "bar" }),
  }
}

This resource block accomplishes the following:

Consumes a list of files (content map)
Obtains a local clone of the repository specified by repository
Renders all content to the repository worktree with a base of target_branch
Commits changes (if any) and publishes a Pull Request using the working_branch

Further Discussion
This continues an existing discussion with @paultyng:

There are limitations with file handling inside terraform (length restrictions, complications in handling binary data, etc), which is one factor, but I think this may also be complex without a good SDK or supporting library to handle a lot of the standard git hash generation and so forth.

We use go-google to achieve this currently.  This example is essentially what we've had running for a couple years now to automate creation of application repositories.  Does Terraform need to store blobs that are uploaded to a branch?

It may be simpler to integrate via a more generic git client or creating a git provider to use together with a github provider perhaps. I have a personal project for a git provider that gives you info on a local repository as an example, but we could create one to operate on a remote repository and sync file state or something.

While tempting to leverage git directly, I want to give the GitHub Data API a shot to avoid creating a new provider.  This remains an option if adding resources to the GitHub provider becomes untenable.

Here are some additional questions:

A Pull Request typically has a short lifetime where it is active, then merges, and then is idle in this state indefinitely.  Does this lifecycle conflict with how Terraform treats resources?
What are some typical ways that existing Terraform state or configuration files could break when adding a feature like this?  Do existing test patterns to help with this?
The initial use case for this is populating a repository with content immediately after creation.  Is this effort more suited to a provisioner rather than a provider?

Potentially related issues:

https://github.com/terraform-providers/terraform-provider-github/issues/7
https://github.com/terraform-providers/terraform-provider-github/issues/106
(related, but a separate feature) https://github.com/terraform-providers/terraform-provider-github/issues/254

@paultyng - thanks for discussing this yesterday.  Key takeaways I've captured are below.

declaratively, a repository should have a file in a location with content from a local file path

☝ has been implemented over in https://github.com/edahlseng/terraform-provider-repository-template (❤@edahlseng) and can be leveraged as a base.  Doing so allows us to move the design away from the procedural github_pull_request concept and towards a declarative github_repository_content concept instead.

Does Terraform need to store blobs that are uploaded to a branch?

The initial release of this feature will support simple text files.  Documentation should reflect this and deter content that is not a unicode string.

I've updated the suggested UX in the first comment to reflect the new design.  The first iteration is archived here:

# // NewPullRequest represents a new pull request to be created.
# // https://github.com/google/go-github/blob/v28.0.1/github/pulls.go#L242-L251
# type NewPullRequest struct {
# 	Title               *string `json:"title,omitempty"`
# 	Head                *string `json:"head,omitempty"`
# 	Base                *string `json:"base,omitempty"`
# 	Body                *string `json:"body,omitempty"`
# 	Issue               *int    `json:"issue,omitempty"`
# 	MaintainerCanModify *bool   `json:"maintainer_can_modify,omitempty"`
# 	Draft               *bool   `json:"draft,omitempty"`
# }
resource "github_pull_request" "create_actions" {
  title = "Create standard Actions for this repo"
  base  = "master"

  # Branch to be created, populated and associated to this PR
  head  = "${format("create_actions_%s", random_id.create_actions_id.hex}"
  body = "${local.create_actions_body}"
  issue = "${local.create_actions_issue}"

  # Abstraction for Git Tree and Tree Entries as a map of paths to rendered templates
  content = {
    ".github/workflows/build.yml" = templatefile("path/to/build.yml", { foo = "bar" }),
    ".github/workflows/release.yml" = templatefile("path/to/release.yml", { foo = "bar" }),
  }
}

Woot, super excited to see interest in features like this in an upstream provider! Let me know if there's anything I can do to help. Always happy to accept pull requests on my provider in the meantime, too!

This was partially addressed by https://github.com/terraform-providers/terraform-provider-github/pull/318.  There is follow up work needed to got Pull Request support added in now that a base layer capable of modifying files has landed.

Closed by https://github.com/terraform-providers/terraform-provider-github/pull/364


warn user that server connection gets dropped sometimes

Not sure if it's just me, but periodically the shiny server drops my connection (it just happened).
The symptom is that pretty much anything I try to to yields a red error message: "An error has occurred. Check your logs or contact the app author for clarification."
Easy to fix - I just reconnect to the server - but beginners will find this mysterious. Suggest adding a heads-up about that

ha!   Took me a minute but I think I figured out why the shiny server keeps dropping my connection.
When I intend to click 'update view' to see if my test workflow is still running, I keep clicking 'reload page' in my web browser instead of the shiny app's update button.  They both have the little curvy arrows.   I'm not sure where you'd want to put that hint, whether it's in this tutorial, and/or in the shiny app itself, but I bet I'm not the only one who'll make that mistake.

Totally.  I'm sure I can stick there in there somewhere.  Good catch!


DNS Support

Brickner[CodePlex] Add support for DNS datagrams (over UDP and maybe over TCP).
Should looks like this:
Packet packet;
packet.Ethernet.IpV4.Udp.Dns...

chrisweber[CodePlex] I was just looking for this feature today.

RusDev[CodePlex] It`s very important feature.

Brickner[CodePlex] RFCs:
RFC1035
RFC1183
RFC1348
RFC1706
RFC1712
RFC1876
RFC1995
RFC1996
RFC2136
RFC2163
RFC2168
RFC2230
RFC2535
RFC2671
RFC2672
RFC2673
RFC2782
RFC2845
RFC2874
RFC2915
RFC2930
RFC3123
RFC3225
RFC3226
RFC3363
RFC3364
RFC3403
RFC3425
RFC3596
RFC3658
RFC3755
RFC4025
RFC4034
RFC4035
RFC4255
RFC4398
RFC4408
RFC4431
RFC4635
RFC4701
RFC5001
RFC5155
RFC5205
RFC5395


docs: storybook description format; lit syntax alignment

Description
Storybook fix for target the root container in the docs pages.
Descriptions can be written as JDoc comments in Storybook stories above stories, meta, or components. This format seems more contributor-friendly than attaching parameters.docs.description.{story,component} to each story. These JSDoc blocks can include markdown as well!
This PR moves all description data into JSDoc blocks. It also updates customStyles objects to use a consistent format and naming approach along with a few other minor linting fixes.
In an effort to prevent unnecessary VRT shifts, I also migrated all ems and rems used in displaying VRT groupings to px.
How and where has this been tested?
Please tag yourself on the tests you've marked complete to confirm the tests have been run by someone other than the author.
Validation steps

Spin up the local storybook (yarn start) or preview the linked version in the PR.

[ ] No regressions in VRTs
[ ] Click through docs pages and check that the descriptions appear above the initial code example.

Regression testing
Validate:

The documentation pages for at least two other components are still loading, including:

[ ] The pages render correctly, are accessible, and are responsive.

If components have been modified, VRTs have been run on this branch:

[ ] VRTs have been run and looked at.
[ ] Any VRT changes have been accepted (by reviewer and/or PR author), or there are no changes.

Screenshots

To-do list

[x] I have read the contribution guidelines.
[x] I have updated relevant storybook stories and templates.
[x] If my change impacts other components, I have tested to make sure they don't break.
[x] If my change impacts documentation, I have updated the documentation accordingly.
[x] ✨ This pull request is ready to merge. ✨

@pfulton Great feedback. I found a decorators typo in several stories and corrected a few issues. There are 5 baselines left that I think are improvements and fixes. Let me know if you find any other issues!


Credentials fields should not be null or empty

Enforcing credentials fields to be valid.

Used recommended approach from the conversation. Wanna take another look? @thanwah

Squashed and merged


[4.0][Feature] Keep forms alive forever

Sometimes when the user stays on the page for a long time (ex: when writing an article), he his token might have expired, so he gets an error when hitting Save.
We could use Larapoke to keep the forms alive longer.

I think https://github.com/GeneaLabs/laravel-caffeine is more widely used. But the Larapoke you mentioned may have less legacy burden. Being a newer package.


liblua53.so: cannot open shared object file: No such file or directory

Getting error when run the main.py
How can i solve it?
import harfang as hg
File "/home/ozbek/.local/lib/python3.5/site-packages/harfang/init.py", line 1, in
from .harfang import *
ImportError: liblua53.so: cannot open shared object file: No such file or directory

Add liblua53.so from the /home/ozbek/.local/lib/python3.5/site-packages/harfang/ folder to /usr/local/lib
here is the step to do that go to below directory
sudo cp /home/ozbek/.local/lib/python3.5/site-packages/harfang/liblua53.so /usr/local/lib/liblua53.so
and run sudo ldconfig this will solve your issue.

Thanks for the help, @cudanexus :)


Hydra changes

Reduce Hydra projectile replication and bounce angle

Decided the Hydra is fine for now

Decided the Hydra is fine for now


Fix matching file prefixes for FILE based catalogs

Ensure matching file prefixes when using polaris instance with FILE based storage.
Description
We encountered a bug when attempting to register tables to a file-based instance of Polaris for testing. Through logging, we discovered an inconsistent file naming convention when comparing file:/// to /. This inconsistency caused the system to fail to recognize paths that were actually children as child paths, resulting in the isChildOf method failing every time.
This change ensures that when comparing file paths in the isChildOf method, we use a consistent prefix. Additionally, this change enhances the robustness of the method by ensuring that comparisons are made between paths with similar prefixes, whether they start with / or file:///.
Fixes # (issue)
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

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

This test has been manually verified by registering tables and creating namespaces using the new method. The method ensures that namespaces and tables are only created and registered if they are part of the child directory, while also ensuring that comparisons are made between similar prefixes.

Test Configuration:

Hardware: Macbook M3 Pro
Toolchain:
SDK: Java 21

Checklist:
Please delete options that are not relevant.

[x] I have performed a self-review of my code
[x] My changes generate no new warnings

Side note: Should we standardize the location string when creating a catalog? For instance, Polaris converts user input like /path into the standardized format file:///path. This ensures consistency and aligns with proper URI conventions. We could do this as a follow-up if needed.


Features images not showing up

For some reason so I need to figure out how to fix that

I forgot how but I fixed it, probably by refactoring them to be separate properties of an object


Blueprint custom CLI jhipster-my-blueprint not found

Following the steps written in the readme, after npm install:
jhipster-entity-audit: command not found
Alternative jhipster --blueprints entity-audit does not work either:
this.registerPrettierTransform is not a function
I have the latest v3.3.0. According to previously closed issues, both problem supposed to be fixed in this version, right?

No next release only.
You can install from git following https://github.com/hipster-labs/generator-jhipster-entity-audit#pre-release.
v4 release with the reimplementation is pending

Version v4.0.0 is released, closing.


discord link expired

Not stonks, stinks

Discord link still appears to be working fine. Please reopen with a little more information otherwise.

It appears to work once you joined the server. however  before I joined through another way, it displayed Error: discord link expired


Fix jpeg conformance.

Previous code will convert all output to i420, using software, it assume all decoder output is NV12. However, this not true for jpeg, jpeg will output many formats like IMC3, 422H, 422V, 444P etc. This patch and related patch in libyami will skip the conversion if user do not assign one. So we can compare the yuv with software decoder.

lgtm :+1:

merged and closed.


Self referencing many2many relation

Hi guys,
I am stuck trying to make a self referencing many2many relationship with gorm.
I first tried the naive approach thinking that it should work:
type User struct {
    Id int64
    Contacts []User `gorm:"many2many:user_contacts;"`
}

But I get errors saying that the column user_id is duplicated.
I found a post saying that this:
type User struct {
    Id int64
    Contacts []User `gorm:"foreignkey:user_id;associationforeignkey:contact_id;many2many:user_contacts;"`
}

should work. However, it doesn't because it tries to create a join table with no column.
I believe it comes from a29230c86f0849b51bbb3c19b71f108fbb74541d, where you check that the foreign key fields exist with toScope.FieldByName in model_struct.go, so it is not possible to use a non-existent field in foreignkey and associationforeignkey.
I however found a way to bypass that by using a custom JoinTableHandler (following the example in join_table_test.go):
I use this struct:
type User struct {
    Id int64
    Contacts []User `gorm:"associationforeignkey:nonExistentField;many2many:user_contacts;"`
}

It works because the associationForeignKey doesn't exist, so it creates the join table user_contacts with the fields user_id and nothing else. Then, when migrating, it adds the contact_id column.
So in the end, I have my join table with the good columns, but I don't think this was the intended way to do it.
Am I doing something wrong?
Thanks a lot,

it is actual for me too, so i'm waiting (and looking) for solution too

same problem

I implemented in next way and it work:
`func CreateBookInfo(bookInfo BookElement) {
edition := NewEdition()
edition.Title.String = bookInfo.Title
edition.Title.Valid = true

edition.Year.Int64 = int64(bookInfo.Year)
edition.Year.Valid = true

for _, a := range bookInfo.Author {

	author := Author{}
	author.Name = a.Name

	services.Con.FirstOrCreate(&author, author)

	edition.Authors = append(edition.Authors, author)
}

services.Con.Save(&edition)

}`

+1 that this is super broken.
WRT https://github.com/jinzhu/gorm/commit/a29230c86f0849b51bbb3c19b71f108fbb74541d it looks like this commit just COMPLETELY destroyed any hope of doing anything with many2many relations + setting association keys + foreign keys.
Any insight into what the new code is doing and why it's better than the old code would be nice? Maybe comments?  My main point of concern here is that it looks like with the new code literally nothing will ever work unless the names of things match up which seems like a meaningless safety check?
A nice note somewhere in the readme saying "many2many relations where anything more than a custom table is defined do not work" would also be cool.

For those who come here after me, here is my workaround:
Assuming we have:
type model1 struct {
     stuff
}
type model2 struct {
     M1s []model1 `gorm:"many2many:<model1model2jointable>"`
}

And that the table model1model2jointable model is:
type m1m2join struct {
       PKey uint `gorm:"primary_key"` //NAMING THIS NOT 'ID' IS SUPER IMPT
       M1_ID model1
       M2_ID model2
}

then when you set up gorm and create tables//models//structs//stuff, you can put the following code in
relation := gorm.Relationship{}
relation.Kind = "many2many"
relation.ForeignFieldNames = []string{"id"} //(M1 pkey)
relation.ForeignDBNames = []string{"M1_ID"} //(M1 fkey in m1m2join)
relation.AssociationForeignFieldNames = []string{"id"} //(M2 pkey)
relation.AssociationForeignStructFieldNames = []string{"id", "ID"} //(m2 pkey name in m2 struct?)
relation.AssociationForeignDBNames = []string{"M2_ID"} //(m2 fkey in m1m2join)
m1Type := reflect.TypeOf(model1{})
m2Type := reflect.TypeOf(model2{})
handler := gorm.JoinTableHandler{}
// ORDER BELOW MATTERS
// Install handler
db.SetJoinTableHandler(&M2{}, "M1s", &handler)
// Configure handler to use the relation that we've defined
handler.Setup(&relation, "m1m2join", m1Type, m2Type)
// Order matters because 'SetJoinTableHandler' calls handler.setup(rltn, etc.) with the
// rltn that gorm inferred from the struct tags.  If we call setup before setjointablehandler
// all of our hard hacky work is clobbered :(

This replicates the behavior of what gorm tries to do while parsing struct tags.
  So if you select * from join tables, and the join table has an column titled "id" you get "id ...... id ......" where the first id is the ID of the model you want, and the second ID is the id from the join table.  Gorm will scan + parse this as "okay, the model you want has the id from the column id....oooo a new id column! lets make the model id this new one!"
Hopefully this helps someone!

I attempt to use @NickNeedsAName workaround for a self-referencing relation without success. The dbnames are not taken into account when preloading, and it is unclear how the table is supposed to be created (nor what the m1m2join struct is for).
A "how to" for defining such a relation would be nice. I think it is a common need.

I suspect something has changed in a recent update and my workaround no longer works :(
I also haven't used GORM in some time so I can't suggest an alternative.  Best of luck!

Any movement on this? This still broken at the moment. Would like to not have to hack this type of relationship

duplicated with #1194


Add annotation to exclude nodes from being schedulable

This PR introduces a new annotation that cluster admins can add to specific nodes to prevent them from being "Schedulable" by the agent. This is specially useful when you have certain nodes that only run master components (ie: node-role.kubernetes.io/master=true) and want them to participate in the update orchestration.

We already have a plan in place that allows users to control the update-agent daemonset and where it runs (e.g. node selector on container-linux-update.v1.coreos.com/agent=true is one option).
Adding a knob so an admin can add a label to have the agent still run, but not mark a node schedulable again doesn't seem to buy much you couldn't get by just editing the agent=true/false toggle. In both cases, the admin marking the node down for maintenance (or Unshcedulable for other reasons) has to add a special label. But here, the Container Linux version can still upgrade. I worry slightly about how this will play out with plans to health check that workloads can run post-reboot and adding complexity to the pre-reboot / post-reboot hooks design for custom health checker pods (#121). There's also the case that if this is set on nodes erroneously, no issues occur immediately but the next upgrade leaves all nodes unschedulable.
I'd like to know more about the use case to be convinced its worth the complexity cost or having another knob. Would having fine grained control over where update-agent runs be sufficient?

@dghubble I think you misunderstand the issue.
Right now, the update-agent, after rebooting a node, "un-cordons" it (marks it schedulable).
That's not desirable for nodes that previously were marked unschedulable.
The simple goal here is "I want to update my master nodes with CLUO, but not have them become schedulable".
I think the right solution isn't adding a new knob, but rather "remembering" whether a node was unschedulable previously and restoring it to that previous state after the update (whether that be uncordoning it in the default case, or leaving it unschedulable if it already was before the drain).

@rajiteh What do you think of adding an annotation of "node-was-unschedulable" that is set to true/false just before "drain", and then restoring the unschedulable state based on said annotation?
If that covers your use-case, I'd prefer that change to adding a new config option.

I think the right solution isn't adding a new knob, but rather "remembering" whether a node was unschedulable previously.

I thought about that approach too but decided it's better to be explicit than implicit. It also brings in more complexity, ie: a previously CLUO labelled Node gets cordoned by the admin.

@euank wouldn't a node be unschedulable regardless after an update reboot? Then we need a first run check. Either way, it still makes it impossible to manually cordon a node after it was "claimed" by the agent.

@euank Yes, that's my understanding as well and aligns with the comments here. I have the same concerns and desire to hear the usage scenario.
If a node has been marked unscheduled by an administrator, that's typically to address a problem. When I'm in this scenario, it makes sense to remove update-agent from the node entirely while debugging the problem. In that scenario, there isn't a need for a special mode that allows the node to keep being part of coordinated upgrades (let alone do the "right" thing with Schedulability).
Now, that's just one usage scenario. Let's hear the justification for this. Because it has downsides, like I mentioned. This issue gets at the heart of whether a cluster upgrade encompases ensuring nodes are in a healthy schedulable state (#121 allows users to define "health") or whether a complete upgrade can occur even though maybe no nodes are successfully doing work (in theory).

@rajiteh
What I'm suggesting is that the agent stores, as a new annotation (meant as an internal implementation detail, not ever to be touched), whether the agent moved the node from schedulable -> unschedulable during a drain operation.
This happens late enough that it will in general pick up admin changes. If the agent runs, then the admin cordons the node, and then a reboot operation occurs afterwards, the agent would still leave the node cordoned. It need not be all that racy simply by updating both unschedulable and the new annotation in a single atomic update of the node object (which would fail if the administrator had cordoned/uncordoned in the meanwhile).
I don't think it adds all that much complexity and I think that it ends up being significantly less surprising behavior than having to learn of a new unschedulable configuration when using the agent.
@dghubble Apologies for my hasty and incorrect reading of your comment. Whoops!
That being said, I think the historical use of "unscheduled" on master nodes by most kubernetes deployment tools has removed much of the meaning of that taint. At this point we basically have to treat that taint as not indicating a real problem, but rather as (master node || drain in progress).
Perhaps the proper solution would even be for us to acknowledge that taint is overused and simply use our own taint, the "container-linux-updating" taint, which the agent could then tolerate as well as any other important components.... however, since afaik there isn't a way to tolerate all taints, the fact that master components currently tolerate the scheduleable taint means we're kinda stuck with it.
Apologies for that last bit being kinda thinking-out-loud.

For the controllers / masters, CoreOS clusters run the kubelet with --register-with-taints=node-role.kubernetes.io/master=:NoSchedule btw.

@dghubble My use case specifically involves the fact that we have dedicated "master" nodes, which only run the api-server, scheduler, kube-proxy and controller-manager. Our provisioning scripts create Pod manifests for these services at /etc/kubernetes/manifests in each "master" node and starts kubelets with the argument  --enforce-node-allocatable=''. This is a pattern described by the docs here: https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/
When CLUO agent is deployed to the cluster as  a DaemonSet, it still creates a pod in these nodes and end up un-cordoning them. While we want our "master" nodes to be managed by CLUO, we don't want to make them available for scheduling to the rest of the cluster.

@euank Ah. Sorry I didn't understand your comment at first. I think your approach makes sense. It satisfies my requirements so I'm good with that.
@dghubble I see. --register-with-taints=node-role.kubernetes.io/master=:NoSchedule is something we haven't looked in to. Perhaps that will resolve this problem (at-least for us) without any changes(?)
Again, thank you for your input on this.

CoreOS example clusters and Tectonic clusters use that --register-with-taints flag on controller kubelets and aren't seeing behavior where workloads start running on controllers after upgrade. That'd be a bug and we'd wanna solve it outright over requiring annotations/labels.
This sounds like we've made an undocumented assumption about how users are doing workload isolation, we should mention it in requirements, and maybe add a few notes about differences between tainting controllers and marking them unscheduled.

@dghubble @euank I do think its still valid use case that CLUO shouldn't un-cordon Nodes that weren't cordoned by it. I'm closing this PR because, like suggested, there are better ways of achieving that rather than using annotations. Also, my problem specifically is solved by using the taints, thus no changes were necessary.
Thank you for your time and input! Cheers!


feat: implements transaction api in index

Based on: #588
Please briefly answer these questions:

what problem are you trying to solve? (or if there's no problem, what's the motivation for this change?)
Implements transaction api in index

what changes does this pull request make?
Same as above.

are there any non-obvious implications of these changes? (does it break compatibility with previous versions, etc)
No

Closed as it will be replaced by another PR.


Switching between Vimeo and Youtube.

Hi eXon,
This is not really and issue but more of a question.
I'm using your videojs-vimeo and videojs-youtube plugins together and I'm trying to switch between Vimeo and Youtube videos.
I tried several ways and short of disposing of it and re-initializing it, I haven't been very successful.
Among other things, I've tried to set the techOrder in the  tag to ["vimeo", "youtube"] and that didn't work (only the first type would play).
I also tried several variations of:
V("projects_video").options.techOrder = [newType];
V("projects_video").src(newURL);
and
V("projects_video").src({ type: "video/"+newType, src:newURL });
Where newType is "vimeo" or "youtube".
So my question is, how would I go about changing the techOrder to load the Vimeo or Youtube videos short of disposing/reinitialize .
Thanks!

Same here. It was my understanding, that a plugin should only try to play if it matches the url. But both youtube and vimeo plugins play the source no matter what url.
Broken by design?

I'll check that. It shouldn't be hard using a regex and the url.

I looked into the code, changed:
videojs.Vimeo.canPlaySource = function(srcObj){
if (srcObj.type)
return (srcObj.type == 'video/vimeo');
else {
var regExp = /^.*(vimeo.com/)((channels/[A-z]+/)|(groups/[A-z]+/videos/))?([0-9]+)/;
var match = srcObj.src.match(regExp);
  return (match)

}
};

+1. Same problem here. Cannot mix Youtube and Vimeo videos.

Is it fixed?

There is a complete rewrite so you should try it

Hi @eXon
I have the same problem. Impossible to mix correctly youtube and vimeo.
When I want to switch between providers I have 2 videos in same time.. Maybe I hace to remove html wrapper of iframe youtube/vimeo before to load a new video but i dont know if is the good way. Can you help me ? Thx

videojs 5.10.4
youtube plugin : https://github.com/videojs/videojs-youtube
vimeo plugin: https://github.com/videojs/videojs-vimeo

Sample : http://loicjazon.com/tuto-videojs/ (sorry i cant put all on fiddle, have not https for all external resources :x)
And my main js :
(function ($) {
    'use strict';
    var App = {
        myPlayer: null,
        myPlayerParams: {
            "controls": true,
            "autoplay": false,
            "preload": "auto",
            "techOrder": ["youtube", "vimeo"],
            "sources": [{
                "type": "video/youtube",
                "src": "https://www.youtube.com/watch?v=xjS6SftYQaQ"
            }]
        },
        init: function () {
            var that = this;
            that.myPlayer = videojs("#player", that.myPlayerParams, function () {
                console.log("VideoJS ready");
                that.myPlayer = this;
                that.loadCallToAction();
                that.play();
            });
        },
        loadCallToAction: function () {
            var that = this;
            $("[data-provider]").on("click", function () {
                var provider = $(this).attr('data-provider');
                var src      = $(this).attr('data-src');
                if (provider === 'youtube') {
                    that.loadYoutube(src);
                }
                if (provider === 'vimeo') {
                    that.loadVimeo(src);
                }
            });
        },
        play: function () {
            var that = this;
            $("#play").on("click", function () {
                that.myPlayer.play();
            });
        },
        loadYoutube: function (src) {
            var that = this;
            console.log('Inialisation loadYoutube(' + src + ')');
            that.myPlayer.src([{ "type": "video/youtube", "src": src}]);
            that.myPlayer.play();
        },
        loadVimeo: function (src) {
            var that = this;
            console.log('Inialisation loadVimeo(' + src + ')');
            that.myPlayer.src([{ "type": "video/vimeo", "src": src}]);
            that.myPlayer.play();
        }
    };
    $(document).ready(function () {
        App.init();
    });
})(jQuery);

Please, forgive my english !

Yeah, unfortunately, it's a known issue. We just fixed in videojs-youtube. We'll release it soon and also fixup videojs-vimeo with that as well.

hi @gkatsev
Thx for your feedback ! Can you tell me how long before the release ? I would like to know if I have to try to fix it by myself meanwhile the releases ? Maybe next week ? :p

I hope to have a videojs-youtube release today.

videojs-youtube 2.1.0 is now out with a fix for the switching problem. videojs-vimeo may need a similar fix itself but that'll come after.

@gkatsev thx for your feedback


[FEATURE] Merge Objects in Adapters

Is your feature request related to a problem? Please describe.
Requiring a full get and set to merge objects together.
Describe the solution you'd like
Add { merge: true } option to set to allow copying user input into the original stored value to allow simple updates. Perhaps instead of .set() use .update()
Describe alternatives you've considered
N/A
Additional context
N/A

Landed in 38dce95 [Milestone 2.0.0 Development] and set for release next publish period.
Breaking changes are pending release with this milestone.
Functional Example
await Adapter.set('id', { someBaseObjectValue: 'first-val' })
await Adapter.set('id', { someObjectValue: 'some-val' }, { merge: true })
const finalValue = await Adapter.get('id')
/**
{ someBaseObjectValue: 'first-val', someObjectValue: 'some-val' }
*/


Add QOS Octet Deviation

Adds a deviation to skip checking QOS octet values to temporarily work around an issue.

Pull Request Functional Test Report for #1899 / 60ec82f4f1d4329fcfbe895f96cc057ebdf66cfd
Virtual Devices

Device
Test
Test Documentation
Job
Raw Log

Arista cEOS

DP-1.11: Bursty traffic testDP-1.10: Mixed strict priority and WRR traffic testDP-1.14: QoS basic testDP-1.4: QoS Interface Output Queue Counters

Cisco 8000E

DP-1.11: Bursty traffic testDP-1.10: Mixed strict priority and WRR traffic testDP-1.14: QoS basic testDP-1.4: QoS Interface Output Queue Counters

Cisco XRd

DP-1.11: Bursty traffic testDP-1.10: Mixed strict priority and WRR traffic testDP-1.14: QoS basic testDP-1.4: QoS Interface Output Queue Counters

Juniper cPTX

DP-1.11: Bursty traffic testDP-1.10: Mixed strict priority and WRR traffic testDP-1.14: QoS basic testDP-1.4: QoS Interface Output Queue Counters

Nokia SR Linux

DP-1.11: Bursty traffic testDP-1.10: Mixed strict priority and WRR traffic testDP-1.14: QoS basic testDP-1.4: QoS Interface Output Queue Counters

Openconfig Lemming

DP-1.11: Bursty traffic testDP-1.10: Mixed strict priority and WRR traffic testDP-1.14: QoS basic testDP-1.4: QoS Interface Output Queue Counters

Help


Strobealign gets killed when I try to run/index it

Hello, recently I tried to run your software but when I try to create an index or directly run the command to map reads to a reference genome it gets killed before completion.
Can you help?

Hi @lajoycemboning.
We can help. But you have to provide some more information to do so. Can you please:

attach the error message you get
How much memory do you have? And what is the size of the reference you are mapping to?

Also please attach the command you ran strobealign with.

I was having memory issues so I was able to make it work:) Thanks for reaching out though


⚠ 한경주요지수-코스피200 has degraded performance

In f8b4e7e, 한경주요지수-코스피200 (https://markets.hankyung.com/indices/kospi200) experienced degraded performance:

HTTP code: 200
Response time: 5144 ms

Resolved: 한경주요지수-코스피200 performance has improved in 29134b1.


code navigation using graph

it seems like a graph is being constructed in networkx. are there plans to provide navigation to the formula on the basis of some graph? I think VSCode can do something like this

Hi @MatthewCaseres, yes, the graph between variables is constructed in networkx. There are indeed plans to provide a functionality to navigate between variables. I did not know that VSCode has something, I will look into it and get back to you. Thanks for the tip!


RVC GUI not running

I installed RVC GUI, unzipt it and tried to run it but it keep giving this error message. What does this mean and how do i resolve it. I'm not into coding stuff so I'm sorry if it is an obvious flaw.

You are not using python. It is recommended to download the complete package and try again.


Nginx default ingress class

After many hours of staring at a 404 Not Found page from Nginx, I found there is such a thing as a "default Ingress Class".
I propose we make this part of the setup example, as the majority of the users expect this by default.
Additionally, many Helm Charts do not specify an Ingress Class, resulting in a 404 Not Found page.
(I also added a link to this setup doc, as I spent many hours today trying to get it working using snippets from issues, only to find out that there was a really nice guide hidden in the docs folder)

Nice PR, thanks!


Rich contribution widgets

For users who are making changes and contributions to components in the expanded details page, they should have data entry affordances like a date picker for dates and a license picker for licenses.

closing this in favor of more specific issues for the different affordances required.


Inner join not working in Safari

I'm experiencing strange errors using inner join in Mac Safari.
I've made a live reproduction.
http://bl.ocks.org/kenjitayama/5d4ad3b0a45b7a7af82e
This is a modification of demos/todo/todo.html, adding another table and doing an inner join.
I needed to load an old commit of lovefield.js due to issue #62, otherwise even a single table query would not work.
In Chrome, you can see something like this
Get a cup of coffee before Mon Aug 03 2015 14:31:52 GMT+0900 (JST). OK!

But in Safari, you get this error.
NotFoundError: DOM IDBDatabase Exception 8: An operation failed because the requested database object could not be found.

Mac Safari version
8.0.7 (10600.7.12)

Safari 8's IndexedDB implementation is very buggy and not usable. See http://www.raymondcamden.com/2014/09/25/IndexedDB-on-iOS-8-Broken-Bad
You'll need to use the WebSQL store instead. Please alter the TODO code as the following diff snippets suggested:
@@ -20,7 +20,7 @@ schemaBuilder.createTable('Item').
var todoDb;
var item;
-schemaBuilder.connect().then(function(db) {
+schemaBuilder.connect({storeType: lf.schema.DataStoreType.WEB_SQL}).then(function(db) {
todoDb = db;
item = db.getSchema().table('Item');
var row = item.createRow({

Thanks for the quick response!
Switching to WebSQL made it work in Safari.
http://bl.ocks.org/kenjitayama/97c1250ebfbfe037bbf5

It's better to fall back to WebSQL only in Safari, but keep using IDB in other browsers. IDB backend is faster than WebSQL according to our tests, so WebSQL should only be used in Safari. For example
var isSafari = .......; // some browser detection code here.
var connectOptions = {
  storeType: isSafari ? lf.schema.DataStoreType.WEB_SQL : lf.schema.DataStoreType.INDEXED_DB
};
schemaBuilder.connect(connectOptions).then(...);

@freshp86 Thanks for the tip!


Add 'N' option type, have cms use it

'N' is for natural number; something greater than zero.
This is an alternative to #14970 that fits more in style.   It doesn't do the string-safety checks that are also in that PR.

Argh, I just noticed that I my recent change to #14970 overlaps with what you did here!
It seems my version is more complete, though.

closing as a (modified, thanks @ddvo) #14970 went in.


Use SHA256 instead of MD5 for registry_key when data is not displayable

Getting rid of md5 where we dont need it. See #3945 for more info

I still think we should use hex instead of hashing it, but :+1:

:+1:


Improve splitting scripts into single statements

In order to make templates portable need to change statement separator to the standard SQL*Plus's /.

Improve CLOB splitter to make it work with / as a statement separator.
Use ${"/"} instead of </> in templates for portability between the server- and client-side.
Improve splitting CLOB into lines to make it work with both LF and CRLF as possible EOL characters.

Done.


Adapt countdown page to new project

Countdown page is already done on the develop branch of NIAEFEUP/enei-website.
Copy vue code to new project.

Not finished because I have an issue with i18n:

The json path shows before the text.


Add COM initializition to Windows template

Description
Plugins, and the library, should be able to use COM without special
setup. This adds COM initialization to the runner template so that it's
available for any code on the main thread.
Related Issues
Fixes https://github.com/google/flutter-desktop-embedding/issues/716
Tests
I added the following tests: None
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change.

(does this need to bump the template version too?)

No, there's nothing new in the library that needs it, so nobody will be broken if they update Flutter without getting this change. So far it's just the one FDE plugin that's hit this AFAIK.

Invalid. After upgrading the SDK, the original error is still reported


targeted member list refresh

Changes
Resubmitted PR to fix using old feature branch. I will use the upstream master branch from here on out, thanks!
Changes to address #31

Add ability for targeted member list refresh via context menu on source file.
Also, update create, delete, copy, updateText, rename functionality on members to use targeted refresh.

Checklist

[x] have tested my change
[x] updated relevant documentation
[x] Remove any/all console.logs I added
[x] eslint is not complaining
[x] have added myself to the contributors' list in the README

A lovely change. You are amazing @barrettotte!


Support SoftLayer cloud

Add Chef::Provisioning::FogDriver::Providers::SoftLayer class to support provisioning in SoftLayer (already supported in fog).

@jkeiser here's an example usage if it saves you some typing:  https://gist.github.com/cphrmky/3b19a2a3787ab164d057

Merged as db3dedd!  Glad to see it join the family :)


Feat add support for prettier v3, new TS and vitest support and node 20

Pull Request Checklist
🚨 Please review the guidelines for contributing to this repository.

[x] Appropriate label or labels have been added
[x] ✅ Tests for the changes have been added (for type:fix / type:feat)
[x] 📝 Docs have been reviewed, added or updated if needed (for type:fix / type:feat)
[ ] 🏁 Issue number has been linked if this PR closes one

Description

feat(deps): ✨ bump eslint-config-prettier to v9.0.0
feat(ts): ✨ enable no-duplicate-type-constituents rule
feat(vitest): ✨ introducing vitest support
feat(*): ✨ add support for node v20, drop support for node v14

Breaking Change?

new enabled rules can potentially require code changes
node v14 is no longer supported

[x] 💥 Yes
[ ] No

❤ Thank you for contributing!

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (4f62a3d) 100.00% compared to head (2959018) 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##            master      #209    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files           24        25     +1
  Lines         2030      1682   -348
  Branches        16        16
==========================================
- Hits          2030      1682   -348

Files Changed
Coverage Δ

src/jest/rules.ts
100.00% <100.00%> (ø)

src/style/rules.ts
100.00% <100.00%> (ø)

src/typescript/rules.ts
100.00% <100.00%> (ø)

src/vitest/index.ts
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


assets should be kept on CPU by default

Objective

Since #10520, assets are unloaded from RAM by default. This breaks a number of scenario:

using load_folder
loading a gltf, then going through its mesh to transform them / compute a collider / ...
any assets/subassets scenario should be Keep as you can't know what the user will do with the assets
android suspension, where GPU memory is unloaded

Alternative to #11202

Solution

Keep assets on CPU memory by default

I think this is a less surprising behavior. The performance gains are huge from doing this, but it's extremely surprising to beginners and very breaking.


@bind() decorator not working in IE11

I have this small example:
import { Component, h, define } from 'skatejs';

import { bind } from 'decko';

export default class App extends Component<void> {
  static get is() { return 'my-app'; }

  @bind()
  handleClick() {
    console.log( 'clicked with this scope: ', this );
  }

  renderCallback() {
    return [

Hello my lord!
,
    ];
  }
};

define(App);

When I try this in IE (11) I have this error:

In chrome it works properly...
You can try it in this repository which I created for this issue:
https://github.com/davidrus/skate-starter

@davidrus Seems like you're adding parens to the decorator, which is maybe causing the issue.
It should look like:
import { Component, h, define } from 'skatejs';
import { bind } from 'decko';
export default class App extends Component {
static get is() { return 'my-app'; }
@bind
handleClick() {
console.log( 'clicked with this scope: ', this );
}
renderCallback() {
return [
Hello my lord!,
];
}
};
define(App);

Thank you for responce, but I tried it and still the same error.
I created codepen for it, so you can test it: http://codepen.io/davidrus/pen/vxXobW

Hey folks! so how it turns out problem is somewhere between skate and web-components polyfill.
With vanilla js decko works without problems
Demo:
http://codepen.io/Hotell/pen/bqwXmm?editors=1010

Gif or didn't happen right? :D

all right so after further investigation the issue is definitely with web component polyfills + skate.
cc @treshugart @azakus @justinfagnani
It can be fixed though on decko's side.
What's causing the trouble is getter you are creating and overriding ( ie calls it until it explodes )

what can be done:

redefine descriptor only with getter http://codepen.io/Hotell/pen/wJoaba?editors=1010
make surer that original getter is invoked only once http://codepen.io/Hotell/pen/EWNaJy

check myBind function ( thas deckos bind redefined )
and ofc gif:

Hmm - that breaks caching though - the closure in bind() is scoped to the class definition, whereas get() is scoped to the instance.
I wonder though, why this is only being triggered from skate - maybe this method is getting into an infinite loop because of the reassignment?

@Hotell I don't see how this is a problem with Skate.
To get around this, you could use http://babeljs.io/docs/plugins/transform-class-properties/ and just do:
handleClick = () => {
  // this is now what you expect without explicit binding
}

@treshugart right, just we're talking about @bind as an alternative means of doing that.  Internally it's just this:
function bind(target, key, desc) {
  let fn = desc.value;
  return {
    get() {
      // only bind to each instance on first access, then cache be replacing property descriptor
      let bound = fn.bind(this);
      Object.defineProperty(this, key, {
        value: bound
      });
      return bound;
    }
  };
}

class Foo extends Component {
  @bind
  handleClick(e) {
    this instanceof Foo;   // true
  }
  render() {
    return

                          // ^ binds here only on first render
  }
}

@treshugart

@Hotell I don't see how this is a problem with Skate.

right sorry, wrong wording ( I didn't meant it's explicitly Skates fault ), but it's a possible culprit

To get around this, you could use http://babeljs.io/docs/plugins/transform-class-properties/ and just do...

right it has one problem though:
if somebody does this ( I know within solid team with solid style guides this wont happen ever :) )
class Foo {

 greeting = this.say
 sayWat = () => { return 'WAT' }
}

@developit

I checked and it seems like MDN actually recommends assigning a property instead of redefining it. Perhaps decko could switch to doing that.

Hmm interesting, didn't know about this "best practice" I personaly try to avoid delete but looks like it could be useful in here

I'm going to try out the simpler overwrite approach from that MDN page and we can check if that fixes the repro :)

@developit the solution can be found here https://github.com/andreypopp/autobind-decorator/blob/master/src/index.js#L68-L71

Nice - will have to add that lock.

any progress?

@developit please take a look https://github.com/developit/decko/pull/16


The package name passed to find_package_handle_standard_args (LIBRARY) does not match the name of the calling package (CUDNN)

When trying to install I get this error consistently, despite setting CUDA_PATH and other build fail suggestions:
Running command /tmp/pip-req-build-22tuuzyi/.eggs/cmake-<IP_ADDRESS>-py3.11-linux-x86_64.egg/cmake/data/bin/cmake -S /tmp/pip-req-build-22tuuzyi/transformer_engine -B /tmp/tmpejwcs22t -DPython_EXECUTABLE=/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/bin/python -DPython_INCLUDE_DIR=/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/include/python3.11 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/pip-req-build-22tuuzyi/build/lib.linux-x86_64-cpython-311 -GNinja       -- The CUDA compiler identification is NVIDIA 12.0.140       -- The CXX compiler identification is GNU 13.2.0       -- Detecting CUDA compiler ABI info       -- Detecting CUDA compiler ABI info - done       -- Check for working CUDA compiler: /usr/bin/nvcc - skipped       -- Detecting CUDA compile features       -- Detecting CUDA compile features - done       -- Detecting CXX compiler ABI info       -- Detecting CXX compiler ABI info - done       -- Check for working CXX compiler: /usr/bin/c++ - skipped       -- Detecting CXX compile features       -- Detecting CXX compile features - done       -- Found CUDAToolkit: /usr/include (found version "12.0.140")       -- Performing Test CMAKE_HAVE_LIBC_PTHREAD       -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success       -- Found Threads: TRUE       -- cudnn found at /usr/lib/x86_64-linux-gnu/libcudnn.so.       CMake Warning (dev) at /tmp/pip-req-build-22tuuzyi/.eggs/cmake-<IP_ADDRESS>-py3.11-linux-x86_64.egg/cmake/data/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:438 (message):         The package name passed to find_package_handle_standard_args(LIBRARY)         does not match the name of the calling package (CUDNN).  This can lead to         problems in calling code that expectsfind_packageresult variables         (e.g.,_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
cmake/FindCUDNN.cmake:44 (find_package_handle_standard_args)
CMakeLists.txt:24 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.
  -- Found LIBRARY: /usr/include/x86_64-linux-gnu
  -- cuDNN: /usr/lib/x86_64-linux-gnu/libcudnn.so
  -- cuDNN: /usr/include/x86_64-linux-gnu
  -- cudnn_adv_infer found at /usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.
  -- cudnn_adv_train found at /usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.
  -- cudnn_cnn_infer found at /usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.
  -- cudnn_cnn_train found at /usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.
  -- cudnn_ops_infer found at /usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.
  -- cudnn_ops_train found at /usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.
  -- Found Python: /mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/bin/python (found version "3.11.8") found components: Interpreter Development.Module
  CMake Error at common/CMakeLists.txt:77 (list):
    list GET given empty list

  -- JAX support: OFF
  -- Configuring incomplete, errors occurred!
  Traceback (most recent call last):
    File "/tmp/pip-req-build-22tuuzyi/setup.py", line 356, in _build_cmake
      subprocess.run(command, cwd=build_dir, check=True)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/subprocess.py", line 571, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['/tmp/pip-req-build-22tuuzyi/.eggs/cmake-<IP_ADDRESS>-py3.11-linux-x86_64.egg/cmake/data/bin/cmake', '-S', '/tmp/pip-req-build-22tuuzyi/transformer_engine', '-B', '/tmp/tmpejwcs22t', '-DPython_EXECUTABLE=/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/bin/python', '-DPython_INCLUDE_DIR=/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/include/python3.11', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-req-build-22tuuzyi/build/lib.linux-x86_64-cpython-311', '-GNinja']' returned non-zero exit status 1.

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/tmp/pip-req-build-22tuuzyi/setup.py", line 629, in <module>
      main()
    File "/tmp/pip-req-build-22tuuzyi/setup.py", line 614, in main
      setuptools.setup(
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/__init__.py", line 103, in setup
      return distutils.core.setup(**attrs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
             ^^^^^^^^^^^^^^^^^^
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/dist.py", line 989, in run_command
      super().run_command(command)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 364, in run
      self.run_command("build")
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/dist.py", line 989, in run_command
      super().run_command(command)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 131, in run
      self.run_command(cmd_name)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/dist.py", line 989, in run_command
      super().run_command(command)
    File "/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-req-build-22tuuzyi/setup.py", line 386, in run
      ext._build_cmake(
    File "/tmp/pip-req-build-22tuuzyi/setup.py", line 358, in _build_cmake
      raise RuntimeError(f"Error when running CMake: {e}")
  RuntimeError: Error when running CMake: Command '['/tmp/pip-req-build-22tuuzyi/.eggs/cmake-<IP_ADDRESS>-py3.11-linux-x86_64.egg/cmake/data/bin/cmake', '-S', '/tmp/pip-req-build-22tuuzyi/transformer_engine', '-B', '/tmp/tmpejwcs22t', '-DPython_EXECUTABLE=/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/bin/python', '-DPython_INCLUDE_DIR=/mnt/38ae7fe1-6107-471a-b4f0-50874b359b32/envs/megatron/include/python3.11', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-req-build-22tuuzyi/build/lib.linux-x86_64-cpython-311', '-GNinja']' returned non-zero exit status 1.
  [end of output]

`

Hi @shanepeckham, could you tell me which version of cuDNN you are using and how you installed it?

PR #831 was merged that should help with those issues - could you try with the current main branch?


Lowercase usernames and Email plus trim and space removal

I've managed to update useraccounts to the latest version to enable trim/lowercase/remove_spaces on username, email and username_and_email fields.
...the only thing is I had to update iron:router to the latest version and meteor to <IP_ADDRESS>.
To this aim I had to lock the version of other packages to prevent their update (it not me supposed to update packages I don't know how are used within Telescope... ;-) )
Please give another try to this branch and do some test BEFORE mergin this!
this should solve both #691 and #723.

mmm, I had in mind to PR to devel not to master :(
do you want me to make another PR and close this one?

Sorry it's taken me so long to look into this. I tried your code and it seems to work :)
But I'm not sure if the UX is really what we want: right now it seems impossible to use any capitalization in usernames. So if I type "TechCrunch", it gets converted to "techcrunch" automatically.
While I agree that we should ideally let people sign in with both "TechCrunch" and "techcrunch", I don't think forcing all usernames to lowercase is a great solution…
Sorry for not paying attention to that earlier :(

So you see "Travis" and "travis" as different usernames?

RIght now yes, you can sign up as both Travis or travis, and it'll create two user accounts.

This is a fundamental bug in Meteor, not a feature :)
This issue has been around a while: https://github.com/meteor/meteor/issues/550

No worries @SachaG!
I understood you were comfortable with this, also fro the discussion about the migration process to convert username to lowercase and warning for possible conflicts ;-)
...btw, just let me know how you intended this and I'll be happy to update the code accordingly.
@queso would you be to keep it like this?
...or do you guys think leaving the username unchanged and considering it lowercased behind the scenes would provide for a better UX? (this might be a little tricker to implement, but not impossible by adding a few lines for this particula case...)

Yes, it's my fault, I didn't look at this closely enough. The solution I had in mind was what you suggested, leaving the username unchanged and testing behind the scenes.
For example, you could have two username fields (say, username and usernameLowercase) and use usernameLowercase for all uniqueness checks?

...mmm, what you're asking would require to change the Accounts package which is something I wouldn't  consider!
What about setting username always lowercased and keeping another  profile.username with the original case to be used on the client side to show it the way the user wanted it?

Yes, that would also be a good solution. In fact that's already what Telescope does, except with profile.name (but I'm happy to change it to profile.username if that's cleaner).

See: https://github.com/TelescopeJS/Telescope/blob/master/server/users.js#L29-L31

oh, I didn't know: I'm not that into Telescope's code, sorry!
...well, in this case it would be enough to add set profile.name to the original username when Accounts.createUser is called and everything should work accordingly! :-)
...I'd say we might add a check for already existing username on the sign up form so to prevent bad surprises: this is actually already possible see this
Thoughts?

OK, but with this PR you can't enter capital letters at all:

So to recap, I think a good solution would be:

Let user enter whatever they want (Sacha)
Copy that to profile.username.
Change username to lowercase version (sacha)

Then when somebody wants to sign in or sign up, you convert what they entered to lowercase and check it against username. And inside the app, you only ever display profileusername. Sounds good?

Yeah, that's it!
...but if you're not keen to change all profile.name to profile.username through all the code, I can make it to set profile.name with the original username field content.
Actually I'll have to set one of the two in any case...
Btw, If you have one common helper to pick up profile.name, lets change that one! ;-)
I'll update useraccounts to have one more option to deal with this...

I've just updated the lowercase-usernames branch with the devel one!
So perhaps this PR should be closed and a new one made to make it into devel...
In any case, now it LGTM. I've done some simple tests by hands but if you could revise it a little more it would be great!
I guess you've a better idea about the possible implications...
for example, should we update also the user.slug field within the migration code?

Actual changes are better viewed with this comparison

Awesome. And yes, there's a single helper for displaying usernames:
https://github.com/TelescopeJS/Telescope/blob/devel/lib/users.js#L24-L35
A new PR would be great. And I think we probably don't need to modify user.slug, since it was lowercase to begin with?

So these lines should be changed to
    if (user.profile.username)
      return user.profile.username;

but then what's the reason for getDisplayName?

This is what I changed from getDisplayName...

Sorry you're right, we use getDisplayName, not getUsername. I should remove that one I guess.

...another thing which is coming to my mind is:
since I'm changing the profile.name field for the profile.username one, is there any other migration which is expecting the profile.name to exist?

I don't think so. I'll test it out before merging anyway :)

Just to confirm, is the PR ready on your side? Or should I wait?

It's ready for me, if you don't see any possible conflict with other stuff lets merge it ;-)
...if you prefer, lets make a manual  merge of lowercase-usernames into devel

One thing I forgot to mention is that the “display name” (which is what we store in profile.username can include spaces or any characters).
So to recap, we could have people entering The Next Web or TheNextWeb, and they should both resolve to thenextweb.
It seems to be working fine right now, but I just wanted to make that clear :)

Merged on devel.

Oh btw, the migration was failing on users that don't have a username (for example those that signed up via Twitter).

yep, the profile.username is set to the original text entered at registration time!
...good call on the migration of users without a username! :(

an optional step further might be checking the availability of the selected username before form submission.
Everything is already supported (I also have an example about how to achieve this in the custom validation section): basically we can have a method called when the username input loses the focus (or whatever we prefer) and show a spinbox (or something...) next to the input to eventually let the user know whether the selected username is available or not before she clicks Register
Let me know if you think this could be good to have!
(it might open some security issues though, like automated username listing...)

This would be a nice touch but it doesn't seem critical right now. I'm already very grateful for all the work you've done on this :)

My pleasure!
...next big step will be accounts melding ;-)


Make handler.httpTrace publicly visible (handler.HttpTrace)

Looking at the number of issues that are around supporting more use cases (routers, frameworks, etc), looks like a lot could be solved by being able to call HttpTrace directly and not wrap it in Handler. It would probably solve a lot of the integrations issues quite easily, pending more sophisticated ways.
My use case (just an example amongst others):

gorillamux as router
lambda behind an ALB (I use a custom adapter, but basically the same as https://github.com/akrylysov/algnhsa, because https://github.com/awslabs/aws-lambda-go-api-proxy does not support ALB at the moment)

The problem there, is I "forge" the http.ResponseWriter and http.Request from the lambda event, and thus need to pass them directly into ServeHTTP (or through httpTrace) and can't inject directly.
I hope it makes sense?

Hi @pm98zz-c,
Thanks for this write up, I think it is a valid proposal and we area always open to pull requests!
Also, The AWS Distro for OpenTelemetry for tracing was just made generally available last week and includes support for Go. The upstream OpenTelemetry Go project supports instrumentation for several libraries including gorillamux. You can give that a look by visiting our getting started guide.


tdexd should generate and write TLS self signed certificate in $HOME

I did
make run
Cleaning...
export TDEX_NETWORK=regtest; \
	export TDEX_EXPLORER_ENDPOINT=http://<IP_ADDRESS>:3001; \
	export TDEX_LOG_LEVEL=5; \
	export TDEX_BASE_ASSET=5ac9f65c0efcc4775e0baec4ec03abdde22473cd3cf33c0419ca290e0751b225; \
	export TDEX_FEE_ACCOUNT_BALANCE_THRESHOLD=1000; \
	export TDEX_NO_MACAROONS=true; \
	go run ./cmd/tdexd
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.0
go: downloading golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd
go: downloading google.golang.org/grpc v1.45.0
go: downloading google.golang.org/genproto v0.0.0-20220317150908-0efb43f6373e
# github.com/vulpemventures/go-secp256k1-zkp
In file included from ../../../go/pkg/mod/github.com/vulpemventures/go-secp256k1-zkp@v1.1.3/secp256k1.go:12:
In file included from ../../../go/pkg/mod/github.com/vulpemventures/go-secp256k1-zkp@v1.1.3/secp256k1-zkp/src/secp256k1.c:747:
../../../go/pkg/mod/github.com/vulpemventures/go-secp256k1-zkp@v1.1.3/secp256k1-zkp/src/modules/surjection/main_impl.h:211:9: warning: comparison of nonnull parameter 'proof' not equal to a null pointer is 'true' on first encounter [-Wtautological-pointer-compare]
../../../go/pkg/mod/github.com/vulpemventures/go-secp256k1-zkp@v1.1.3/secp256k1-zkp/include/secp256k1_surjectionproof.h:219:3: note: declared 'nonnull' here
../../../go/pkg/mod/github.com/vulpemventures/go-secp256k1-zkp@v1.1.3/secp256k1-zkp/include/secp256k1.h:153:54: note: expanded from macro 'SECP256K1_ARG_NONNULL'
INFO[0000] All 0 tables opened in 0s
INFO[0000] All 0 tables opened in 0s
INFO[0000] All 0 tables opened in 0s
INFO[0000] starting daemon
INFO[0000] wallet unlocker interface is listening on :9000

then other tab I make build-cli and run the genseed command
./build/tdex-darwin-arm64 genseed
[tdex] could not read TLS certificate:  open /Users/tiero/Library/Application Support/Tdex-daemon/tls/cert.pem: no such file or directory

I would expect tdexd ran as standalone binary to write TLS certificates in $HOME, which on Mac is on ~/Library/Application Support

nvm, TDEX_NO_MACAROONS do not generate it first place 🤦


How about enable "Github Code Scanning" ?

How about enable Github Code Scanning ?

Go のコードでも GitHub Code Scanning が使えるらしい | text.Baldanders.info
GitHub、コードの脆弱性を検出する「Code Scanning」を全ユーザーに提供 - ZDNet Japan
GitHub、コードの脆弱性などを発見してくれる「GitHub Code Scanning」正式版が提供開始。パブリックリポジトリには無料 － Publickey
This only adds one file as below.
https://github.com/HaraShun/pingu/blob/master/.github/workflows/codeql-analysis.yml
And this screen shot is the result of trying to fork and running Github Code Scanning at my environment.

Wow, I didn't know that GitHub officially had such a feature. 👀 It looks very good so I'll give it a try!

Thank you for your pull request. I've implemented it, so I'll close this issue.✅


Bump opcard and add RSA backend

Tested with rsa2048 generation on NK3CN.

Replaced by https://github.com/Nitrokey/nitrokey-3-firmware/pull/228 and https://github.com/Nitrokey/nitrokey-3-firmware/pull/252