[R-package] Error during basic_walkthrough.R example script

How you are using LightGBM?
LightGBM component: R package
Environment info

Operating System: Windows 10 Pro 1909
R version: 4.0.2

LightGBM version or commit hash: 3.1.0 via CRAN
Error message and / or logs

While stepping through the first example basic_walkthrough.R I encountered an error on line 155.
> # lgb.Dataset can also be saved using lgb.Dataset.save
> lgb.Dataset.save(dtrain, "dtrain.buffer")
[LightGBM] [Warning] File dtrain.buffer exists, cannot save binary to it
> # To load it in, simply call lgb.Dataset
> dtrain2 <- lgb.Dataset("dtrain.buffer")
> bst <- lgb.train(
+   data = dtrain2
+   , num_leaves = 4L
+   , learning_rate = 1.0
+   , nrounds = 2L
+   , valids = valids
+   , nthread = 2L
+   , objective = "binary"
+ )
Error in data$get_colnames() :
  dim: cannot get dimensions before dataset has been constructed, please call lgb.Dataset.construct explicitly

Reproducible example(s)

library(lightgbm)
#> Warning: package 'lightgbm' was built under R version 4.0.3
#> Loading required package: R6
library(methods)

# We load in the agaricus dataset
# In this example, we are aiming to predict whether a mushroom is edible
data(agaricus.train, package = "lightgbm")
data(agaricus.test, package = "lightgbm")
train <- agaricus.train
test <- agaricus.test

# The loaded data is stored in sparseMatrix, and label is a numeric vector in {0,1}
class(train$label)
#> [1] "numeric"
class(train$data)
#> [1] "dgCMatrix"
#> attr(,"package")
#> [1] "Matrix"

# This is the basic usage of lightgbm you can put matrix in data field
# Note: we are putting in sparse matrix here, lightgbm naturally handles sparse input
# Use sparse matrix when your feature is sparse (e.g. when you are using one-hot encoding vector)
print("Training lightgbm with sparseMatrix")
#> [1] "Training lightgbm with sparseMatrix"
bst <- lightgbm(
  data = train$data
  , label = train$label
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , objective = "binary"
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.004075 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [1] "[1]:  train's binary_logloss:0.198597"
#> [1] "[2]:  train's binary_logloss:0.111535"

# Alternatively, you can put in dense matrix, i.e. basic R-matrix
print("Training lightgbm with Matrix")
#> [1] "Training lightgbm with Matrix"
bst <- lightgbm(
  data = as.matrix(train$data)
  , label = train$label
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , objective = "binary"
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.004063 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [1] "[1]:  train's binary_logloss:0.198597"
#> [1] "[2]:  train's binary_logloss:0.111535"

# You can also put in lgb.Dataset object, which stores label, data and other meta datas needed for advanced features
print("Training lightgbm with lgb.Dataset")
#> [1] "Training lightgbm with lgb.Dataset"
dtrain <- lgb.Dataset(
  data = train$data
  , label = train$label
)
bst <- lightgbm(
  data = dtrain
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , objective = "binary"
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.004049 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [1] "[1]:  train's binary_logloss:0.198597"
#> [1] "[2]:  train's binary_logloss:0.111535"

# Verbose = 0,1,2
print("Train lightgbm with verbose 0, no message")
#> [1] "Train lightgbm with verbose 0, no message"
bst <- lightgbm(
  data = dtrain
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , objective = "binary"
  , verbose = 0L
)
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.004079 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.

print("Train lightgbm with verbose 1, print evaluation metric")
#> [1] "Train lightgbm with verbose 1, print evaluation metric"
bst <- lightgbm(
  data = dtrain
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , nthread = 2L
  , objective = "binary"
  , verbose = 1L
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.002496 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [1] "[1]:  train's binary_logloss:0.198597"
#> [1] "[2]:  train's binary_logloss:0.111535"

print("Train lightgbm with verbose 2, also print information about tree")
#> [1] "Train lightgbm with verbose 2, also print information about tree"
bst <- lightgbm(
  data = dtrain
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , nthread = 2L
  , objective = "binary"
  , verbose = 2L
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Debug] Dataset::GetMultiBinFromSparseFeatures: sparse rate 0.930600
#> [LightGBM] [Debug] Dataset::GetMultiBinFromAllFeatures: sparse rate 0.433362
#> [LightGBM] [Debug] init for col-wise cost 0.002159 seconds, init for row-wise cost 0.002144 seconds
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.002577 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Debug] Using Sparse Multi-Val Bin
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [LightGBM] [Debug] Trained a tree with leaves = 4 and max_depth = 3
#> [1] "[1]:  train's binary_logloss:0.198597"
#> [LightGBM] [Debug] Trained a tree with leaves = 4 and max_depth = 3
#> [1] "[2]:  train's binary_logloss:0.111535"

# You can also specify data as file path to a LibSVM/TCV/CSV format input
# Since we do not have this file with us, the following line is just for illustration
# bst <- lightgbm(
#     data = "agaricus.train.svm"
#     , num_leaves = 4L
#     , learning_rate = 1.0
#     , nrounds = 2L
#     , objective = "binary"
# )

# You can do prediction using the following line
# You can put in Matrix, sparseMatrix, or lgb.Dataset
pred <- predict(bst, test$data)
err <- mean(as.numeric(pred > 0.5) != test$label)
print(paste("test-error=", err))
#> [1] "test-error= 0.0217256362507759"

# Save model to binary local file
lgb.save(bst, "lightgbm.model")

# Load binary model to R
bst2 <- lgb.load("lightgbm.model")
pred2 <- predict(bst2, test$data)

# pred2 should be identical to pred
print(paste("sum(abs(pred2-pred))=", sum(abs(pred2 - pred))))
#> [1] "sum(abs(pred2-pred))= 0"

# To use advanced features, we need to put data in lgb.Dataset
dtrain <- lgb.Dataset(data = train$data, label = train$label, free_raw_data = FALSE)
dtest <- lgb.Dataset.create.valid(dtrain, data = test$data, label = test$label)

# valids is a list of lgb.Dataset, each of them is tagged with name
valids <- list(train = dtrain, test = dtest)

# To train with valids, use lgb.train, which contains more advanced features
# valids allows us to monitor the evaluation result on all data in the list
print("Train lightgbm using lgb.train with valids")
#> [1] "Train lightgbm using lgb.train with valids"
bst <- lgb.train(
  data = dtrain
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , valids = valids
  , nthread = 2L
  , objective = "binary"
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.007114 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [1] "[1]:  train's binary_logloss:0.198597  test's binary_logloss:0.204754"
#> [1] "[2]:  train's binary_logloss:0.111535  test's binary_logloss:0.113096"

# We can change evaluation metrics, or use multiple evaluation metrics
print("Train lightgbm using lgb.train with valids, watch logloss and error")
#> [1] "Train lightgbm using lgb.train with valids, watch logloss and error"
bst <- lgb.train(
  data = dtrain
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , valids = valids
  , eval = c("binary_error", "binary_logloss")
  , nthread = 2L
  , objective = "binary"
)
#> [LightGBM] [Info] Number of positive: 3140, number of negative: 3373
#> [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.002980 seconds.
#> You can set `force_row_wise=true` to remove the overhead.
#> And if memory is not enough, you can set `force_col_wise=true`.
#> [LightGBM] [Info] Total Bins 214
#> [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 107
#> [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.482113 -> initscore=-0.071580
#> [LightGBM] [Info] Start training from score -0.071580
#> [1] "[1]:  train's binary_error:0.0304007  train's binary_logloss:0.198597  test's binary_error:0.0335196  test's binary_logloss:0.204754"
#> [1] "[2]:  train's binary_error:0.0222632  train's binary_logloss:0.111535  test's binary_error:0.0217256  test's binary_logloss:0.113096"

# lgb.Dataset can also be saved using lgb.Dataset.save
lgb.Dataset.save(dtrain, "dtrain.buffer")
#> [LightGBM] [Info] Saving data to binary file dtrain.buffer

# To load it in, simply call lgb.Dataset
dtrain2 <- lgb.Dataset("dtrain.buffer")
bst <- lgb.train(
  data = dtrain2
  , num_leaves = 4L
  , learning_rate = 1.0
  , nrounds = 2L
  , valids = valids
  , nthread = 2L
  , objective = "binary"
)
#> Error in data$get_colnames(): dim: cannot get dimensions before dataset has been constructed, please call lgb.Dataset.construct explicitly

# information can be extracted from lgb.Dataset using getinfo
label <- getinfo(dtest, "label")
pred <- predict(bst, test$data)
err <- as.numeric(sum(as.integer(pred > 0.5) != label)) / length(label)
print(paste("test-error=", err))
#> [1] "test-error= 0.0217256362507759"

Created on 2020-11-21 by the reprex package (v0.3.0)
> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=English_Ireland.1252  LC_CTYPE=English_Ireland.1252    LC_MONETARY=English_Ireland.1252
[4] LC_NUMERIC=C                     LC_TIME=English_Ireland.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] lightgbm_3.1.0 R6_2.4.1

loaded via a namespace (and not attached):
 [1] rstudioapi_0.11   knitr_1.30        whisker_0.4       magrittr_1.5      lattice_0.20-41   rlang_0.4.7
 [7] tools_4.0.2       grid_4.0.2        data.table_1.13.0 xfun_0.18         tinytex_0.26      clipr_0.7.0
[13] htmltools_0.5.0   ellipsis_0.3.1    digest_0.6.25     tibble_3.0.3      lifecycle_0.2.0   crayon_1.3.4
[19] processx_3.4.4    Matrix_1.2-18     callr_3.4.4       ps_1.3.4          vctrs_0.3.4       fs_1.5.0
[25] evaluate_0.14     rmarkdown_2.4     reprex_0.3.0      compiler_4.0.2    pillar_1.4.6      jsonlite_1.7.1
[31] pkgconfig_2.0.3

Steps to reproduce

Install package from CRAN via install.packages("lightgbm")
Run code from basic_walkthrough.R

I did some debugging and found that adding
lgb.Dataset.construct(dtrain2)

after the dataset is reloaded fixes the issue.
Would you like me to submit a pull request using this suggested fix for above?
Lastly many thanks for the great work on this package!

@jameslamb any ideas about this? I think we had tested these demos in cran.

Thanks for the thorough report and for using LightGBM @tonyk7440 !
I just installed from master on my Mac (running  R 4.0.2) and I can reproduce the error you reported.

Would you like me to submit a pull request using this suggested fix for above?

I'd welcome a pull request, but calling that function in the demos isn't the right fix. lgb.train() should just take care of this for users. I think that this call to $construct() needs to be moved up further in the body of lgb.train(): https://github.com/microsoft/LightGBM/blob/1ee7c2927e68b730a3cd48486f239a1456002cea/R-package/R/lgb.cv.R#L197-L198
I think it will be a little complicated, but the fix should be:

move the call to $construct() up further in lgb.train()
move the call to $construct() up further in lgb.cv() as well
add a unit test in R-package/tests/testthat/test_dataset.R  that is basically just like https://github.com/microsoft/LightGBM/blob/1ee7c2927e68b730a3cd48486f239a1456002cea/R-package/tests/testthat/test_dataset.R#L10_L24, but with a call to lgb.train() after (and then another test like that for lgb.train())

If you're interested and have the time this week, we'd welcome the contribution. If not just let me know and I'll fix this.

I think we had tested these demos in cran.

The examples in the package are tested, but not these demos. So these demos definitely need some attention. Whenever we switch from demos to "vignettes" (#1944 ), they'll be tested by R CMD check.

@jameslamb Ok great, I will try what you have suggested above! Hopefully will have the pull request ready to review this week
I am a little confused about your third bullet point though. I presume you want to add a test to test_dataset.R to make sure that a dataset can be saved then reloaded and still trained successfully(is that correct?). I'm not sure what you would like the second test to do?

Thanks!

that a dataset can be saved then reloaded and still trained successfully(is that correct?)

The error you hit is because when you ran lgb.Dataset(a_file_name), the resulting object hasn't been constructed yet, and the data$construct() call in lgb.train() is never reached.
So the test should look like this:
test_that("should be able to train immediately after using lgb.Dataset() on a file", {

  dtest <- lgb.Dataset(test_data, label = test_label)
  tmp_file <- tempfile("lgb.Dataset_")
  lgb.Dataset.save(dtest, tmp_file)

  # read from a local file
  dtest_read_in <- lgb.Dataset(tmp_file)

  # should be able to train right away
  bst <- lgb.train(params, dtest_read_in)

  expect_true(lgb.is.Booster(bst))
})

Oh! I realize now that in my third bullet, I made a mistake. That was supposed to say "and then another test like that for lgb.cv()", sorry for the confusion!


Microsoft Teams authentication problem

After login when using Microsoft Teams - when you copy/paste the authentication number to AzureBot, you get: "I’m sorry, but I couldn’t validate your number. Please try Authentication once again.”.
This is due to a bug in Microsoft Teams which will be resolved in the future.
Workaround: actually type the authentication code to AzureBot

Pasting into Microsoft Teams seems to now be working


Tutorial for using zkevm-demo.avail.tools

Using remix to deploy a contract
Setting up metamask and viewing balances and NFTs etc


MQTT SSL doesn't work with latest csdk-lib commit

With the last csdk lib commit 8095f01aa67a88378cad9482082e2e1383907674
aka version 2131 .
MQTT SSL doesn't work, connect messages are sent as if they are mqtt messages.
This product can be a huge change maker and only if you guys release at least the socket and mqtt librairies this will take of to the next level.
Look at the mqtt implementaion of the ESP32 for instance, it is absolutely fantastic. Why can't we do something like that?
I have issues with the mqtt client on the module being very instable with some mqtt brokers.
Please do something
Bests

This might help https://github.com/Ai-Thinker-Open/GPRS_C_SDK/issues/323#issuecomment-630148181
However, it seems that A9G development stopped at the end of 2018. If you want fixes, official support, bug-free libraries and stability then the A9/G is not something you'll want to use.
v2131 from Johhnzero looks like a messed-up fork of this repo (anyone can just make up a version number too).

Thanks @zkemble
I have seen that the rda8955 SDK was released but I can't understand why ai thinker just gave up on this product. I this the A9 is reliable and versatile but the software is instable.
Not to mention the debugging capabilities and the flash programming tools, almost all the competition in this space are not that far away.
I would love a real explanation why are they doing this.


keep fuzzed file orig file ext

it can fuzzing the mulitple file format in the same time, for example, some image file(*.png, *.gif, *.jpg...) in the following file dir:
honggfuzz -f file -e any -- imageview ___FILE___
Some app must only parse the specific file suffix name.,but the default generated file suffix name is *.fuzz, and -e arg can only specify a file suffix, so the fuzzing would be invalid when input dir have multiple file suffix name.

I don't think that all this overhead is necessary. If I'm not mistaken the fuzzed file extension has not been added with the concept of preserving the original extension. It's just a marker to separate mutated files from input corpus (keep in mind that not all runs have a meaningful file extension - e.g. external tools, stdin, etc.). To put it simply, .fuzz (or any other selected by the user) is an extension to identify files generated from honggfuzz regardless of the selected corpus.
Modifying the output extension will also break most post-fuzzing automation tools that rely on a constant suffix to pick-up fuzzer output crashes or dynamically generated files.
I don't see any practical reason for this overhead, since the generated fuzzer report includes the original seed file the mutation of which resulted into the matching crash.
So is there effectively any reason to dynamically modify the extension of output files?

Also forgot to mention that in case the fuzzing target expects the input files to be of a specific extension, you can utilize --pprocess_cmd option to rename files based post mangling and before running worker.

I know what you mean, so keep all original functions, only add "-e any" arg option to fuzz multiple file formats for some GUI app which requires correct ext name. To improve the fuzzing effect and avoid only fuzzing one file format for gui app. For example, preview (image view er) in mac os.


allow custom testRegex

Fixes #26
ignore testRegex generation based on functionName if custom.jest.testRegex is already defined
usage:
custom:
  jest:
    testRegex: (/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$

hrrm... allowing direct use of testRegex does break functionality to test individual functions. Maybe a better solution would be to customize the testRegex template that runCLI uses.. (ie. to support additional file extensions, like .ts - as is my teams need)

I would very much appreciate this feature, as I prefer to keep my tests next to the file they test. Perhaps an overridable map function (name, serverless) => testRegex would do the trick? Happy to provide a PR!


Keyboard Shortcut for Next Challenge without submitting the current one

Affected page

Your code

I needed to have a glance again at all my previous challenges in RWD to just revise and see I there will be something that needs attention and I found this a little difficult, having a Next button + a shortcut making it easy to just move forward without the need to submit again = will be a really useful thing.

Thank you, Contributors!

Expected behavior

Screenshots

System

Device: [e.g. iPhone6, Laptop]
OS: [e.g. iOS 14, Windows 10, Ubuntu 20.4]
Browser: [e.g. chrome, safari]
Version: [e.g. 22]

Additional context

This actually exists, if you press Esc to get out of editor mode, you can press n to move to the next challenge and p to move to the previous.

Aha thank you.
On Thu, Jan 27, 2022, 01:08 Naomi Carrigan @.***> wrote:

This actually exists, if you press Esc to get out of editor mode, you can
press n to move to the next challenge and p to move to the previous.
—
Reply to this email directly, view it on GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/44930#issuecomment-1022717952,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADR5U6MABEBUIICBYF6GNL3UYCEGPANCNFSM5M4NXMPA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Does not format attributes containing arrays

rustfmt seems to fail when an attribute contains an array. This is problematic when using clap with derive feature, for example.
Steps to reproduce
Try formatting the code below using rustfmt.
use clap::Parser;

#[derive(Debug, Parser)]
struct CliArgs {
    #[clap(
        long = "very-long-arg-name-to-stretch-out-line-length",
        value_name = "stretch_out_the_line_some_more", possible_values = ["lorem", "ipsum"]
    )]
    my_arg: String,
}

Expected behaviour
possible_values should appear on a new line.
Actual behaviour
rustfmt gives up on formatting this attribute. Does nothing.

Thanks for sharing. I believe the root cause of this is that the corresponding AST node for the attribute (as produced by rustc's parser) doesn't actually have an associated MetaItem which leaves rustfmt nothing that can be formatted. Any resolution to this is going to have to be made upstream so I'm going to close.
When/if it's addressed in the parser then rustfmt will automatically pick that up


Prepare for 2.0 release

Steps to take from here

[ ] Merge this PR
[ ] Make release and tag for v2.0.0
[ ] Push to CocoaPods

Questions:

Deployment target is 8.0, what's the status of this given the Swift 3 support?

cc @bogren, @wolffan

Swift 3 is compatible with iOS 8. With Swift 3 comes the opportunity to also move to iOS 9+ imo.

No reason to increase the minimum deployment target IMO.

CocoaPods 🎉


fix: update Extension Description to be 132 chars or less

Resolves #128

[x] ca
[x] de
[x] el
[x] es
[x] fi
[x] fr
[x] pt_BR
[x] pt_PT

:tada: This PR is included in version 2.19.0 :tada:
The release is available on:

Chrome Web Store
v2.19.0
GitHub release

Your semantic-release bot :package::rocket:


export Bacon.isProperty(Observable)

For their different behaviour (i.e. having a "current" value or not), downstream code needs to inspect the type of observable it is dealing with.

Sure, makes sense!

@semmel I'd like to make you a contributor on the Bacon.js NPM package as well so you could publish the next version on NPM. Do you have an npm username?

My apologies for being a very bad maintainer for year already - I'd be super happy if more active folks like you would take charge on this project.

@raimohanska
Thanks for merging!

@semmel I'd like to make you a contributor on the Bacon.js NPM package as well so you could publish the next version on NPM. Do you have an npm username?

It's semmel as well.

My apologies for being a very bad maintainer for years already - I'd be super happy if more active folks like you would take charge on this project.

No need to apologise, it's all voluntary commitment. In that sense, I cannot promise much regarding maintenance. Perhaps some tweaks here and there — certainly I won't fight the intricacies of TypeScript if that comes up in an issue.

Invited you as an owner on NPM. Technically you can merge your own PRs as well I think - but having a second opinion and code review is often a good idea of course. I'll try to be more responsive towards issues and PRs even though I'm unlikely to resume a more active development role for Bacon.js.


guys,comfyui version is here

https://github.com/AIFSH/ComfyUI-Hallo

Thank you for your contribution.


(Build) Fail on dev branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: failure
Commit: 3e0ce871cc8363d1e15a09d3d2f362cd3672b4a4
Commit Branch: dev
Commit Author: @innerviewer.

CI: The build in this branch is still failing.
Linux Build State: success.
Windows Build State: failure.
Commit ab25f3ebc38e9f954b4d9095f2db79b4d650cd03 by @innerviewer.

Auto-closing as build in this branch is successful now. Commit: 0b0a98db13f0b32e9ce650d0caaf944d64135ae2


QA of Catalyst "Problem Statement" Section

QA of Catalyst "Problem Statement" Section
Problem Statement - 140 characters

I need to assess the pros and cons of the 140 char limit. While it focuses the mind on writing a concise Problem Statement, it can also lead to sloganeering or bullet-pointing. As there is a clear equivalence between Problem -> Solution this could be presented more explicitly. For example by requiring a problem to be followed by a solution in a single sentence.


Crashes on the startup

System Details

OS: win 10
Thorium latest version of thorium win

Problem
When i start the app, it crashes few seconds later
Screenshots
https://github.com/Alex313031/Thorium-Win-AVX2/assets/91016099/977b060f-a5b2-4d36-a16f-9b6ad4fdb1a5

Please provide the processor model your computer is currently using

Intel Core i3-2120

You should use the version from the Thorium-SSE3 repo


Making tooltip go away on scroll or blur

Easiest to see the difference on touch-enabled device.  Now pan the editor's content. The tooltip stays at a fixed position, whilst the variable name detaches and moves off.
The fix listens to scroll and blur, switching the tooltip off.

Not sure if cm.off(...) calls need to move above if (!tip.parentNode) check.
When would tip.parentNode be null? Would we still want to unsubscribe from the editor

Thanks. Merged as b002600. We're kind of re-solving problems that have already been solved for the show-hint addon, and are probably going to pop up in the lint addon as well at some point. I will try to take some time to factor out the common logic into a tooltip addon at some point.

I found that this issue still happens for argument hints. In the tern demo, just move the cursor to the arguments of slice() on line 6 and scroll down: the tooltip will not scroll and stay fixed.

Since this is a closed pull request, could you just open a new issue and link to this PR?


[BUG] MultiUnmapper floods logs with warnings about size mismatch.

Describe the bug (🐛 if you encounter this issue)
Example logs:
longhorn-system/instance-manager-e-7c2f73d3fcfb436f0ea4d8b06fc8d883/engine-manager.log:2023-07-23T23:00:03.070856388Z [pvc-2735c59d-2afd-4d45-bc9b-8cceaf6dd525-e-e820ee0e] time="2023-07-23T23:00:03Z" level=warning msg="One of the MultiUnmapper get different size 4096 from others 8192" longhorn-system/instance-manager-e-7c2f73d3fcfb436f0ea4d8b06fc8d883/engine-manager.log:2023-07-23T23:00:03.071756880Z [pvc-2735c59d-2afd-4d45-bc9b-8cceaf6dd525-e-e820ee0e] time="2023-07-23T23:00:03Z" level=warning msg="One of the MultiUnmapper get different size 4096 from others 8192" longhorn-system/instance-manager-e-7c2f73d3fcfb436f0ea4d8b06fc8d883/engine-manager.log:2023-07-23T23:00:03.832448354Z time="2023-07-23T23:00:03Z" level=warning msg="One of the MultiUnmapper get different size 136286208 from others 136282112" longhorn-system/instance-manager-e-7c2f73d3fcfb436f0ea4d8b06fc8d883/engine-manager.log:2023-07-23T23:00:11.207079742Z time="2023-07-23T23:00:11Z" level=warning msg="One of the MultiUnmapper get different size 62914560 from others 62918656" longhorn-system/instance-manager-e-7c2f73d3fcfb436f0ea4d8b06fc8d883/engine-manager.log:2023-07-23T23:00:30.475903409Z [pvc-0bfcf0f2-7dc5-420a-bd35-83c28a5e7a36-e-e78f4fb8] time="2023-07-23T23:00:30Z" level=warning msg="One of the MultiUnmapper get different size 113254400 from others 113246208" longhorn-system/instance-manager-e-7c2f73d3fcfb436f0ea4d8b06fc8d883/engine-manager.log:2023-07-23T23:00:39.292607748Z [pvc-0bfcf0f2-7dc5-420a-bd35-83c28a5e7a36-e-e78f4fb8] time="2023-07-23T23:00:39Z" level=warning msg="One of the MultiUnmapper get different size 0 from others 113246208"
There are thousands of them - more than 75% of the level=warning logging:
$ grep -r MultiUnmapper | wc
2026   30380  598407
A clear and concise description of what the bug is.
To Reproduce
Provide the steps to reproduce the behavior:  Unknown
Expected behavior
If this is serious, we need to look into why it is happening.  If it is routine, it could be at level=info rather than warning.
Support bundle for troubleshooting
Environment

Suggest checking the doc of the best practices of using Longhorn. here

Longhorn version: 1.4.1
Installation method (e.g. Rancher Catalog App/Helm/Kubectl):
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version:

Number of management node in the cluster:
Number of worker node in the cluster:

Node config

OS type and version:
CPU per node:
Memory per node:
Disk type(e.g. SSD/NVMe/HDD):
Network bandwidth between the nodes:

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal):
Number of Longhorn volumes in the cluster:

Additional context
Add any other context about the problem here.

https://github.com/longhorn/longhorn/issues/6472

In particular, note the comment about size delta always being 4096 bytes:  https://github.com/longhorn/longhorn/issues/6472#issuecomment-1677371225

I think this is happening because the unmapping happens in parallel goroutines.  It seems reasonable to suppose that it catches files at different stages in allocation, and the difference is typically one block.
I will revise that logic to ignore that case, log if the difference is more than that, and return the largest value reported by all the unmapper members.

Almost all implementations of UnmapAt return the input length argument.  The only one that doesn't is longhorn-engine's replica/diffdisk
It ignores the return value of its own internal call to file.UnmapAt here and instead accumulates an unmappedSize by taking before-and-after util.GetFileActualSize(filepath), which does a syscall of stat().
Do we have reason to suppose that the logic is mistaken, or is it more likely that the evolution of head and snapshot files is slightly different between replicas as the unmapping walks them all?

It's worth noting (again) that the discrepancy is always VolumeSectorSize = 4096, not BlockSizeLinux = 512.

First idea was to log nothing unless the different is greater than 1 4k sector.  That was not really the answer, since we still want to log something every so often, even at that level.
I was hoping that it might be a capability we could import, but there don't seem to be a lot of baked-in solutions to this.  You would think a log package might do that.  But github.com/sirupsen/logrus certainly does not, and it doesn't look like others do either.
It also doesn't look as common as I assumed when I filed this defect, fresh into Longhorn.  I'm not sure how some situations produce thousands of them.  Even with many UNMAP calls made from a single TRIM operation, there would still have to be a lot of TRIM activity, either from a filesystem mounted with discard option, or else frequently scheduled TRIM operations.
It looks like the best approach (unless and until the difference between replicas is tracked down and proved to be innocuous) is to follow @PhanLe1010's advice and put a meter inside the MultiUnmapperAt structure and just log a subsample of instances.


What does group symbol treat with shared gradients ndarray?

For example, I have c = mx.sym.group([a, b]), where a and b are two output symbols. And they share some internal symbols. What happened when I do a single backprop with exe binding c ? Are two grads from a and b are added for a shared ndarray when grad_req == 'write'. Or I should explicitly bind the exe with grad_req = 'add' ?

they are auto aggregated


impl CMsgBuffer for Vec allows underaligned pointer

According to the CMsgSpace implementation, the buffer is expected to be, at times, aligned to u32 or size_t. The implementation of impl CMsgBuffer for Vec<u8> may allow passing in a buffer that is not sufficiently aligned.

Yep.  That's why CmsgSpace is deprecated in the master branch.

I’m not following. I mean that it is possible, and valid, to construct a Vec<u8> that is 1-aligned, which may be less than what is required, making "safe" code like following unsound:
let cmsg_buffer = Vec::with_capacity(42); // pointer is only guaranteed to be 1-aligned.
nix::recvmsg(..., cmsg_buffer, ...);

That's right.  And there's no way to fix the problem using the old API.  That's why CmsgSpace::new is deprecated.  It's replacement, cmsg_space!, fixes the alignment problem (and other problems, too).

What I think is happening is that we are talking about the alignment requirement in two different directions, and I’m not talking about CmsgSpace at all. Lets step back a little and do it step-by-step.
Does the recvmsg(3p) require the msg_control buffer pointer to be aligned and if so to what alignment?
I believe that it is required to be aligned to std::align_of::<cmsghdr>(). In C code that is achieved with code along the lines of:
// taken from `cmsg(3)` manpage
union {
    uint8_t buf[CMSG_SPACE(sizeof(myfds))];
    struct cmsghdr align;
} u;
// ...
msg.msg_control = u.buf;
msg.msg_controllen = sizeof(u.buf);
// ...

Is it possible to provide this pointer aligned to a lower alignment using safe rust code?
I believe that this is true, especially without using the cmsg_space! macro with the following code as adapted from this test:
        // let mut space = cmsg_space!(libc::in6_pktinfo);
        let mut space = vec![0; 128];
        // `space.as_ptr()` here is not necessarily aligned to `std::align_of::<cmsghdr>()`.
        let msg = recvmsg(
            receive,
            &iovec,
            Some(&mut space),
            MsgFlags::empty(),
        ).expect("recvmsg failed");

Is it possible to provide this pointer aligned to a lower alignment using cmsg_space!?
Given that the expanded output of the above code snippet is an equivalent of:
        let space = {
            let space = unsafe {
                    CMSG_SPACE(mem::size_of::<libc::in6_pktinfo>() as c_uint)
            } as usize;
            let mut v = Vec::<u8>::with_capacity(space);
            // `v.as_ptr()` is not necessarily aligned to `std::align_of::<cmsghdr>()`
            unsafe {v.set_len(space)};
            v
        };
        let msg = recvmsg(
            receive,
            &iovec,
            Some(&mut space),
            MsgFlags::empty(),
        ).expect("recvmsg failed");

which has the same problem as the example I provided in the section above, the logical conclusion is that it is possible to construct a under-aligned buffer as well.
Are there other problems with the cmsg_space! macro?
Yes! It allows user to access uninitialized memory without ever writing "unsafe" in their code!
let mut space = cmsg_space!(libc::in6_pktinfo);
println!("{:?}", space);

which is an equivalent amount of UB as
unsafe {
    let mut x = Vec::with_capacity(128);
    x.set_len(128);
    println!("{:?}", x);
}

Is any of this discussion related to the old CmsgSpace?
Not in this ticket, no.

Hopefully I managed to express my concern clearly enough.

Does the recvmsg(3p) require the msg_control buffer pointer to be aligned and if so to what alignment?

recvmsg itself doesn't care about the alignment, but CMSG_FIRSTHDR does.

Is it possible to provide this pointer aligned to a lower alignment using safe rust code?

Yes, it's true.  Unfortunately there's no backwards-compatible way to fix the
old Nix API.  That's why it's deprecated but not removed.  In your example, if
you had used CmsgSpace::new to size the space buffer rather than
hard-coding its size, you would've gotten a deprecation message suggesting to
use cmsg_space! instead.  And CmsgSpace::new was the only advisable way to
use the old API.  You really shouldn't be guessing the buffer size.

Is it possible to provide this pointer aligned to a lower alignment using cmsg_space!?

No, because cmsg_space! uses a Vec, and Vec always allocates on heap, and
malloc(3) returns a pointer suitably aligned for any builtin type.  If Rust
someday implements its own allocator that doesn't have that alignment
guarantee, then we might have a problem.

Are there other problems with the cmsg_space! macro?
Yes! It allows user to access uninitialized memory without ever writing "unsafe" in their code!

That's true!  But there's nothing wrong with it.  Uninitialized memory is only
unsafe to access if it could be an invalid representation of the type in
question.  In this case, the type is u8, so there are no invalid
representations.  Think of it as a very low-quality random number generator.

Is any of this discussion related to the old CmsgSpace?

Uh, yes?  It was the fourth word of your OP.

recvmsg itself doesn't care about the alignment, but CMSG_FIRSTHDR does.

I see. Since CMSG_FIRSTHDR is not used, the issues with regards to alignment then are quite less relevant.

You really shouldn't be guessing the buffer size.

This was done entirely to demonstrate that any arbitrary Vec can be used as an input rather than just the output of the cmsg_space! macro and that such an arbitrary vector may have an arbitrarily low pointer alignment. Sorry, if that wasn’t clear.

malloc(3) returns a pointer suitably aligned for any builtin type. If Rust
someday implements its own allocator that doesn't have that alignment
guarantee, then we might have a problem.

The allocator API does not have a requirement like that. Instead it uses the Layout part of the API to give allocators an ability to make an informed choice about what it can and cannot do. Since the allocator crate mechanism allows switching out to any other allocator, people can and do implement and use their own allocators. This guarantee cannot be relied onto when writing code that is intended to be used in Rust.
However, if, as you said, recvmsg itself indeed does not care about alignment at all, then the current implementation of recvmsg appears to be fine.

Uninitialized memory is only unsafe to access if it could be an invalid representation of the type in
question. In this case, the type is u8, so there are no invalid representations. Think of it as a very low-quality random number generator.

Reading uninitialized memory is UB regardless of what type it is, even if it is u8. The compiler is allowed to (and LLVM very much will)…  take advantage of the fact if it is made aware that such reads are taking place.

Uh, yes? It was the fourth word of your OP.

Sorry that it wasn’t clear that CmsgSpace was only used as a source of information about the alignment requirement and is otherwise unrelated to the core of the issue.

I’m not sure maintaining API compatibility makes sense if there is a soundness issue in the library code related to the old API – in fact I believe that the users should be actively warned against using the unsound versions of the library and new versions should be released that fix the issue by replacing the API with a sound version of it.
Additionally, I think that exposing Vec<u8> in the public API will be a maintainability hazard. You may want to take advantage of the MaybeUninit in the future which would likely necessitate another breaking change. For now I think the Vec should at least be wrapped into an opaque struct to ensure the invariants are upheld and that uninitialized memory is not exposed to arbitrary safe-looking code.


Add SonarCloud config

Other projects reported difficulty getting SonarCloud to work until the config was merged to main, so merging despite the failures in the hope that will fix it.


Coerce all package manager caches/storage to /tmp/containerbase

We have a couple of options, perhaps can use both approaches:

Set environment variables where known, like Renovate does
Create symlinked directories, e.g. from ~/.cache to /tmp/containerbase/cache/.cache

Ideally non-Renovate uses of Containerbase will then be able to rely on package manager temporary files being written to /tmp/containerbase too, and we can remove this functionality from Renovate  itself.

Duplicate of #2988


Add image or basic demo to README

This looks like a really useful project, so thank you for sharing it.
However, when people first read the README, because it is all text, it doesn't really reinforce if it's the kind of tool a potential user might be looking for - there are no images or brief demos of how it actually works (ie the UI) and that's a key part of assessing it. You'd typically want a bit more confidence before you take the plunge and install it.
I had a feeling it was the kind of tool I was after but I couldn't tell till I found a tweet showing a v. quick demo of the UI (here)
Therefore would it be okay to add a screenshot / brief demo of the UI (or at least link to somewhere that sort of thing is hosted)?

This was resolved by #113 so closing
Thanks!


Copy CoreDNS Corefile.hosts from bastion to hv

split the Corefile out into two files on bastion: Corefile and have it import Corefile.hosts
Corefile.hosts is common across the entire environment
replace HV template generation so it copies Corefile.hosts from bastion to the HV nodes and the Corefile on each HV imports Corefile.hosts

Very large improvement just for 9 hypervisors in the LTA:
# Old:
Wednesday 14 February 2024  13:57:45 +0000 (0:00:01.476)       0:05:36.512 ****
===============================================================================
hv-coredns : Configure Coredns / NetworkManager ------------------------------------------------------------ 257.98s

# New:
Wednesday 14 February 2024  14:19:14 +0000 (0:00:01.473)       0:01:21.709 ****
===============================================================================
...
hv-coredns : Configure Coredns / NetworkManager ------------------------------------------------------------ 3.53s

Configure Coredns is no longer the longest task for setup-hv and the total time savings for rerunning setup-hv is improved tremendously. Thanks @radez


Error: The render was aborted by the server without a reason.

Reproduction
Open the stackblitz and wait for 10s
Stackblitz
System Info
System:
    OS: macOS 14.0
    CPU: (8) arm64 Apple M1
    Memory: 1.61 GB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.11.1 - ~/.nvm/versions/node/v20.11.1/bin/node
    Yarn: 1.22.22 - ~/nevados/dashboard/node_modules/.bin/yarn
    npm: 10.2.3 - ~/nevados/dashboard/node_modules/.bin/npm
    pnpm: 9.1.0 - /opt/homebrew/bin/pnpm
  Browsers:
    Chrome: 125.0.6422.142
    Safari: 17.0
  npmPackages:
    @remix-run/dev: 2.8.1 => 2.8.1
    @remix-run/eslint-config: 2.8.1 => 2.8.1
    @remix-run/express: 2.8.1 => 2.8.1
    @remix-run/node: 2.8.1 => 2.8.1
    @remix-run/react: 2.8.1 => 2.8.1
    @remix-run/serve: ^2.8.1 => 2.9.2
    @remix-run/server-runtime: 2.8.1 => 2.8.1
    @remix-run/testing: 2.8.1 => 2.8.1
    @remix-run/v1-meta: ^0.1.3 => 0.1.3
    vite: ^4.5.3 => 4.5.3

Used Package Manager
npm
Expected Behavior
Not to break
Actual Behavior
It breaks with the message

Error: The render was aborted by the server without a reason.

This can be controlled via the <RemixServer abortDelay> prop in your entry.server.tsx file.  The value used by the default implementations is 5 seconds.  If you don't currently have an entry.server.tsx file you can expose it via npx remix reveal entry.server
I added some docs for this in https://github.com/remix-run/remix/pull/9577 for clarity

Thank you, @brophdawg11, for pointing that out!
If I may suggest, it would be beneficial to have a clearer error message indicating a timeout in such cases.


Add HtmlNode.GetClasses

There are AddClass(), RemoveClass(), and even ReplaceClass() on HtmlNode. IMHO it would be both consistent and useful to have something like string[] GetClasses() to get all the classes of the node.
For now I'm just doing GetAttributeValue("class", "").Split(' ') but I suspect it is not fully compliant with the standard which states Multiple class names must be separated by white space characters. Not sure if that means tabs, multiple spaces, Unicode whitespace characters etc. should be allowed as well.

Hello @ohadschn ,
Thank you for your feedback. I agree it should have something similar to this.
I will try to include something similar to this in the next release.
Best Regards,
Jonathan

Hello @ohadschn ,
The v1.6.4 has been released.
Let us know if the new method works as expected.
Best Regards,
Jonathan

Wow, that was fast! Thanks :)
Forgive my density, but only now I realize that another natural addition would be bool HasClass(string cls). No pressure though, it's trivial to implement using GetClasses.

Hello @ohadschn ,
Sure, it will be part of the next HAP release that will happen probably next weekend.
I will check at the same time if there is no other method that should be implemented for css class.
Best Regards,
Jonathan

Hello @ohadschn ,
The v1.6.5 has been released.
The HasClass method has been added.
Best Regards,
Jonathan

Help us to keep this library free: Donate

Thank a lot for the donation ;)


Is the Filter Statement Incorrect on this Example

The filter statement /sites?filter=siteCollection/root ne null uses the "Not equal" operator ne but the results show that the root element is null.
Can you include a sample that demonstrates how to get all Site Collections in a tenant?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5d2ed0c6-4c40-5d52-51b9-679aed8df5d8
Version Independent ID: 3b0f9af8-8de0-b7e7-89d6-cc150665ede4
Content: Enumerate sites - OneDrive dev center
Content Source: docs/rest-api/api/site_list.md
Product: onedrive
GitHub Login: @daspek

Unfortunately, this API does not currently provide a way to enumerate all site collections in a tenant.
To clarify, when you are following the example, is the root element empty (like below) or null (something different)?
{<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/$metadata#sites",     "value": [         {             "webUrl": "https://contoso.sharepoint.com/",             "siteCollection": {                 "hostname": "contoso.sharepoint.com",                 "root": {}             }         }     ] }


Reconstructed spectrum after signature extraction

Dear Mishu & Ludmil,
I was just wondering if the reconstructed spectrum of each sample is saved after SigProfilerExtractor is successfully ran. So far, I didn't find a file for this. Specifically, I want to check for a few samples how reconstruction-stats (at each step) are changed while signature add-removal steps are performed to arrive at the final solution. (I can get the final reconstructed spectras by matrix multiplications of identified signatures & their exposures)
Under Suggested_Solution/COSMIC_SBS96_Decomposed_Solution/Solution_Stats/ folder, I found a few files but none of them have reconstructed spectrum with above details.
Is there function which I can use to save these details as well or did I miss any file which already contains this info?
Thank you  & stay safe!

Dear Venu,
I hope you are doing great, and thanks for your question. If I understood you correctly, you are looking for the reconstruction stats at every assignment step per sample. If this is the case, you can find them in the COSMIC_SBS96_Signature_Assignment_log.txt file within the folder you mentioned.
Please let me know if you have further questions.
Best,
Marcos

Hi @marcos-diazg,
Thanks a lot for the quick reply and pointing me to the file. Much appreciated! Yes, these are the exact details I was looking for. Just to make sure if I understand it correctly, here is an example
                    ################ Sample 45 #################
############################# Initial Composition ####################################
    SBS1   SBS4   SBS5  SBS7c  SBS25   SBS40  SBS44
0  281.0  686.0  588.0   25.0  457.0  1029.0  111.0
L2 Error %: 0.37
Cosine Similarity: 0.93
############################## Composition After Initial Remove ###############################
         SBS1        SBS4        SBS40
0  362.707691  706.323197  2107.969112
L2 Error %: 0.42
Cosine Similarity: 0.91

############################## Performing Add-Remove Step ##############################

!!!!!!!!!!!!!!!!!!!!!!!!! LAYER: 0 !!!!!!!!!!!!!!!!!!!!!!!!!
Best Signature Composition ['SBS1', 'SBS4', 'SBS5', 'SBS40']
L2 Error % 0.39
Cosine Similarity 0.92

!!!!!!!!!!!!!!!!!!!!!!!!! LAYER: 1 !!!!!!!!!!!!!!!!!!!!!!!!!
Best Signature Composition ['SBS1', 'SBS4', 'SBS5', 'SBS40']
L2 Error % 0.39
Cosine Similarity 0.92

#################### Final Composition #################################
['SBS1', 'SBS4', 'SBS5', 'SBS40']
L2 Error % 0.39
Cosine Similarity 0.92
####################################### Composition After Add-Remove #######################################
    SBS1   SBS4   SBS5   SBS40
0  309.0  836.0  994.0  1038.0
L2 Error %: 0.39
Cosine Similarity: 0.92

Initial composition - is all signatures identified in the cohort used. So, at each step L2% Error is minimized & cosine similarity to original sample spectrum is optimized.
Now the question is, is it possible for me to check, in this sample,  if I remove SBS4 how L2 & cosine similarity will change?
Also, in the sole decompose function, I didn't find a parameter to apply a cut-off on cosine similarity to call a signature novel or COSMIC one. Did I miss any detail or is it not possible?
Thank you so much for your time. Stay safe!

Hi @rvangara, great thanks a lot for the update.
Sorry if I haven't framed the question well, in addition to Q2, I would also like to know about one more possibility. That is, during per-sample decomposition, is it possible to remove the signature of my choice from final set (Composition After Add-Remove) and test how the stats are changing, as explained in above example?
Thank you & stay safe!

Dear Venu,
In order to achieve what you mentioned in the last message, I recommend running the decomposition module using a custom signature database, where you remove the COSMIC signature you want from the analysis. You can do that by generating your custom signatures matrix, for example, by removing one/more columns from the COSMIC reference signatures matrix from here. Then, you can include this custom signature matrix as the signature_database parameter in the decompose function.
By doing so, you should see how removing this signature affects the L2 error and the cosine similarity of the decomposition, as requested.
I hope this helps, and thanks for your interest!

Dear @marcos-diazg,
Perfect. I have been doing the same, thanks for confirming that's the only way atm to achieve this. However, I have two more questions.

Error while doing custom decomposition. I installed correct version of pandas as stated in requirements file. Would you please suggest a way to fix this issue?

>>> decomp.decompose(signatures, activities, samples, output, genome_build="GRCh37", signature_database=None, verbose=True, newsignature_threshold=0.9)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/venu/anaconda3/lib/python3.7/site-packages/SigProfilerExtractor/decomposition.py", line 130, in decompose
    colnames,denovo_exposureAvg  = denovo_exposureAvg, add_penalty=nnls_add_penalty, remove_penalty=nnls_remove_penalty, initial_remove_penalty=initial_remove_penalty, de_novo_fit_penalty=de_novo_fit_penalty, connected_sigs=connected_sigs, refit_denovo_signatures=refit_denovo_signatures)
  File "/Users/venu/anaconda3/lib/python3.7/site-packages/SigProfilerExtractor/subroutines.py", line 1586, in make_final_solution
    processes.to_csv(layer_directory+"/Signatures"+"/"+solution_prefix+"_"+"Signatures.txt", "\t", float_format='%.8f',index_label=[processes.columns.name])
  File "/Users/venu/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 3403, in to_csv
    storage_options=storage_options,
  File "/Users/venu/anaconda3/lib/python3.7/site-packages/pandas/io/formats/format.py", line 1083, in to_csv
    csv_formatter.save()
  File "/Users/venu/anaconda3/lib/python3.7/site-packages/pandas/io/formats/csvs.py", line 234, in save
    storage_options=self.storage_options,
  File "/Users/venu/anaconda3/lib/python3.7/site-packages/pandas/io/common.py", line 647, in get_handle
    newline="",
FileNotFoundError: [Errno 2] No such file or directory: '/Users/venu/Desktop/ServerView/BRCA/results/sigProfiler_pedpancan/signatureAnalysis_XX/signatureExtraction/PPC_Extraction_13122019/SBS96/k2_decomp_cos09/De_Novo_Solution/Signatures/De_Novo_Signatures.txt'

When decomposition is performed, a denovo signature is reconstructed with the constituent COSMIC signatures. However, I don't seem to find the reconstructed denovo signature profile (text file)? Is this saved in one of the files that I missed? If not, is there a way to save it?

For example, in the following image, is the reconstructed profile saved to a text file?

Thank you for your time. Stay safe!

Dear @itsvenu,
Sorry for the late reply. Regarding your questions:

It looks like an error because the path you are providing to one of the function parameters does not exist. Also, remember that if you want to use a custom signature database, you need to provide it using the signature_database parameter. The signatures parameter will correspond to the de novo extracted signatures by SigProfilerExtractor.

I'm not sure exactly which file you are looking for. If you are referring to the contribution of the different COSMIC signatures that explains the reconstructed de novo signature, you can find those in the De_Novo_map_to_COSMIC file, inside the Suggested_Solution/COSMIC_[context]_Decomposed_Solution folder. But please let me know if you are referring to other data.

I hope this helps, and thanks again for your interest.

Hi @itsvenu,  Please reopen this ticket if you still have the issue.


Incorrect thid in response message

When responding to a DIDComm message with both an @id and a ~thread.thid, it appears that AFJ will use the @id as the thid of the response message. I believe it should prefer the thid that was provided.

Is there any specific protocol where you encountered this issue?

Pretty sure that is a MUST.  :-)

Only issue I could find is with the generic problem report message. We take the @id of the message that produced the processing error as the thid, but after reading the protocol again it must be set as the pthid, where the problemReport is a new thread.

@swcurran now that I read this:

~thread: A thread decorator that places the problem-report into a thread context. If the problem was triggered in the processing of a message, then the triggering message is the head of a new thread of which the problem report is the second member (~thread.sender_order = 0). In such cases, the ~thread.pthid (parent thread id) here would be the @id of the triggering message. If the problem-report is unrelated to a message, the thread decorator is mostly redundant, as ~thread.thid must equal @id.

Shouldn't the sentence In such cases, the ~thread.pthid (parent thread id) here would be the @id of the triggering message. be the ~thread.thid and the trigger message thid should be the pthid?

I believe I encountered this with a CredentialRequest in the issue-credential 1.0 protocol.

Wasn't able to find anything in the credentials protocol. If you encounter it again, please let me know!

Some time ago I raised #588 , which seems related to this. But @TimoGlastra had some good points there. At least at that time it made sense to me that for that case the thid would be the id of offer-credential message, while offer-credential message thid would become pthid of further messages.

Found the issue!


Fix a new data race in the release-1.1 branch

Racetest on release-1.1 is now failing due to #9261.
This PR fixes it.
Failed example: https://gubernator.k8s.io/build/istio-circleci/racetest/225803

@ymesika: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth-mcp.sh
b84c087c5f56195b165f4d5dc3e327ba47118c4b
link
/test e2e-mixer-no_auth-mcp

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Register type DID Doc metadata in the DID Spec Registry

Our usage of returning type properties with DID document metadata can be standardized by including it in the DID Specification Registry.

Similar can register gateway related to #129

Also register expiry related to #74


[Gekidou] Use localPath when available

Summary
Start using the file localPath when available.
When we upload files, the files set a localPath that initially was being overwritten by the createPost action, with these changes we are making sure that if the localPath is set is not overwritten. Also the files component now check if the localPath still exists as the OS could delete them as they are in the cache folder, and if still present we use that instead of fetching the file again.
For video playback, if the video cannot be stream (current issue with community) we allow the users to download the video and then we set a localPath for the file record.
Finally this PR also includes a fix to the Alamofire patch to check for the uncompress bytes header in lowercase as well the same way Android does it.
NONE

@larkox changes made if you want to take another look


[Storage] Support downloading multiple blobs/files with a single call

Since blob names allow slashes to simulate directories for organizational purposes, it would be nice if we could download multiple blobs by specifying a prefix (ex: CreateVM_2016-07-01*). This would require the downloaded file name to default as described in issue #995.
For files, you would download multiple files not by specifying a file prefix (although you could), but by specifying the directory path.

@troydai also related to what you are currently working on.

I think I'm very interested in this feature. I have a bash script that downloads about 200 files (400MB) from a blob "folder" via the Azure CLI. Currently I do this by getting a list of the matching blobs and then piping them to "xargs -n1 azure storage blob download...". In all, it takes about 15 minutes, and it seems like a lot of the time is spent in the overhead of making the calls. Would this feature improve that timing?

It should improve the timing, as well as the simplicity of not having to manually send things through xargs.

@hcd00045 : This is in progress right now and we will have something for you to try in the upcoming sprints and will keep you posted. Hoping you will be willing to give it try and give us feedback.

PR #1432 is merged, so please give this command a try: az storage blob download-batch.

When #1462 is merged this can be closed.

Hi guys! I am just seeing this message now. I will gladly give this a try and report back if there are any issues. Thanks!


Are you okay if rabbit use it

@MinorJerry @wenlinyao

The repo is licensed as Apache License 2.0 so as long as it’s credited, it’s permitted. Please see License.md.


We need to be more explicit about the fact that you need to register an additional feature for the Assessment part

We need to be more explicit about the fact that you need to register an additional feature for the Assessment part
We provide a command for registering for Auto patching
Register-AzProviderFeature -FeatureName InGuestAutoPatchVMPreview -ProviderNamespace Microsoft.Compute
but not for the assessment part. We should add this explicitly
Register-AzProviderFeature -FeatureName InGuestPatchVMPreview -ProviderNamespace Microsoft.Compute

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 61687573-f03b-85dc-54cf-e95d95efb235
Version Independent ID: 7bfd1c0f-0ecd-44da-9724-6118b950f4ff
Content: Automatic VM Guest Patching for Windows VMs in Azure - Azure Virtual Machines
Content Source: articles/virtual-machines/windows/automatic-vm-guest-patching.md
Service: virtual-machines-windows
GitHub Login: @mayanknayar
Microsoft Alias: manayar

MicrosoftDocs/azure-docs •
<EMAIL_ADDRESS>

@bmcder Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate. We will update you accordingly.

@mayanknayar Can you please check and add your comments on this doc update request as applicable

@bmcder this will be included in the next doc update.

@bmcder @psmanhas - Following up on this thread. The latest doc update has the steps to register both flags as part of the onboarding steps.

#please-close


[Performance Improv]: Moving Skipping Semantic Tokens logic closer to core algorithm and Allow Skipping Function tokens "Partially"

An ability to skip some of the semantic tokens allows new formula bar to complement language server really well when it comes to overall tokenization and syntax highlighting work. It is heavily used by new formula bar to lighten the load on language server to compute tokens for syntax highlighting. This ability results in better performance and huge reduction in payload sizes exchanged between new formula bar and language server for semantic tokenization. This ability basically translates to "Hey Language Server, I am formula bar and i promise you i can recognize certain token types correctly so i want you to skip those tokens and do not worry about computing them or sending them back to me". Since the implementation of semantic tokenization, this has been a crucial part of semantic tokenization that has allowed language server to not worry about token types like strings, string interpolations, comments and other such tokens which include multi line tokens that tend to increase the time needed for language server to compute tokens and send them back.
This pr further improves the performance by moving this skipping ability into the core logic that compute tokens. This allows us to skip tokens early and avoid unnecessary computations and keep the tokens that need to be send back very small in size. Unlike old formula bar, new formula bar is very good and efficient at recognizing many powerfx tokens on its own and thus it uses this skipping ability to avoid computing them on the server side as it has already computed those tokens when the server responds with its set of tokens. One such token is the function names. New formula bar can now recognize function names that are immediately followed by ( (for example Max in Max(1,2,3). This is the most common case in different formulas. This allows us new formula bar to tell language server to skip those functions that are followed by (. Therefore, this pr includes changes that partially skips function tokens that are immediately followed by (. It doesn't skip the ones that are not followed by ( and have new lines or spaces in between (for example Max in Max    (1,2,3)). This alone resulted in a significant reduction about (40% in terms of number of tokens being exchanged between server and new formula bar) for some of the example formulas.
On top of that, this also helps UDFs. New formula bar would be able to identify functions in UDf syntax and color the m without the support of the server.**
Semantic tokenization is the hottest activity in formula bar and language server. Our telemetry shows 4 million requests in the last 7 days in production. Any optimizations is good one for semantic tokenization and skipping ability would play a significant role
New formula bar can recognize functions in UDF syntax without the help of server

New formula bar can recognize functions that are immediately followed by ( which is the most natural case

Non intuitive but new formula bar needs server to recognize functions that are not followed by (.

From the images, you can see how both formula bar and language server complement each other. When one fails, other fills in for it. This complementary is at the heart of rich syntax highlighting feature

✅ No public API change.

✅ No public API change.


catkin: 0.7.16-0 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository catkin to 0.7.16-0:

upstream repository: git@github.com:ros/catkin.git
release repository: https://github.com/ros-gbp/catkin-release.git
distro file: melodic/distribution.yaml
bloom version: 0.7.2
previous version for package: 0.7.15-0

catkin
* protection against double -l in pkg-config files (#998 <https://github.com/ros/catkin/issues/998>)
* add error message to the setup.sh if devel space relocation is attempted (#997 <https://github.com/ros/catkin/issues/997>)

@clalancette I suggest that we hold this until the lunar sync is out in case we need to do a rebuild of something. Otherwise this will block the lunar builds for a while.

When is the Lunar sync planned to happen?

When is the Lunar sync planned to happen?

Assuming nobody brings up any problems with Lunar, I'll do it tomorrow morning (March 14), then merge this directly after.  That should give us Friday and the weekend for the buildfarm to rebuild everything for Melodic.

Holding this pending a comment on the original fix...

@dirk-thomas The sync is now out.  However, I will wait to merge this until the discussion on the fix completes.

The comment has been resolved as invalid. @clalancette This is ready to be merged whenever you want.

All right, buildfarm is quiet, let's merge and start the fun.


Collages

Capture multiple images and stitch to a collage
https://github.com/mgrl/photobooth-app/tree/statemachine_collage_video

[x] statemachine to capture multiple images
[x] frontend to control statemachine when capture several images (confirm / try again last image)
[x] text on collage
[x] image background for collage
[x] image frame on top of the merged images
[x] correct target size handling/determination
[x] resample methods for hi performance or better quality
[x] config preset that looks nice
[x] predefined images not yet implemented
[x] tests added
[ ] rotate text not yet implemented.
[ ] Test pages for pipelines quick review

consider this as feature complete for now. If somebody is interested in extending the functionality, feel free to send a pull request :)


Add nodeselector

It seems like its impossible to pre-select the node to run manager on.
I've also had some problems with rendering templates as the second container in pod has no name.

Thanks, @Unb0rn for this. @idanl21 can you please review this?


Style WMS layer

This sample demonstrates how to select from one of the defined styles for a WMS sublayer.

@dg0yal can you specify Mike Wilburn as a contributor? I would like to add him as a reviewer for this PR, specifically so that he may review the README.md


[stable/nginx-ingress] add servicemonitor resource

Signed-off-by: Sébastien Prud'homme<EMAIL_ADDRESS>What this PR does / why we need it:
This PR add an option to create a ServiceMonitor resource for people who use the Prometheus Operator.
Which issue this PR fixes
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

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

/lgtm


Fixing ProtectedSettingsFromKeyVault

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[X] Other, please clarify: This is a bug, as the object was not represented correctly

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following appy to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@grizzlytheodore The breaking here is to fix the definition of protectedSettingsFromKeyVault. Previously it was just defined as a pure object without any properties, but it actually should be defined with properties. I've fixed it for 3/22, and 8/22 api versions

@kamusta-msft, to keep this feature branch separated only for the 2022-08-01, could you remove the changes to the 2022-03-01 version and have that in a separate PR that goes directly to main?

ok


Updated bulk importer to improve performance

no-issue
The main changes here are:

Refactor to remove global state, hopefully easier to maintain
Do everything we can do in parallel
Use a Leaky Bucket to make requests to Stripe API as fast as possible
Do not add members that we know we will delete (e.g. ones with stripe
customers when stripe is not enabled)
Remove as many loops as possible, e.g. combine filter and map into a
single reduce
Handle live & test stripe rate limits
Remove support for Complimentary plans (it has to be reworked anyway)

@naz I've used a PR for this & requested your review on this because it's quite a big changeset, and I didn't wanna push to master and screw you over.
Basic idea here is:

Do as many things in parallel as we can
Use the Leaky Bucket to request as fast as possible from Stripe API

@allouis I do like the direction and think we should merge these once the import works for for all needed scenarios. The missing bits I have in mind for these to be mergeable: members_stripe_customers_subscriptions records insertion and the comped flag handling. This is an awesome improvement!

@allouis should we merge this into master as is? Asking because that would help fixing the bug with rate-limit error in "validate import" :wink:


The format is JSON, and the dynamic column update is specified. Why not add columns in the code by default like CSV?

Version:
flink-connector-starrocks:1.2.3_flink-1.15
flink:1.15.0
environment:
idea
doubt:
When dynamic column update is specified, CSV does not need to set sink.properties Columns is set according to fieldnames in the Flink connector starlocks code when the Flink SQL table is built. However, JSON does not. It is because JSON has any different operations from CSV or it is forgotten to add them in the Flink connector starlocks code of JSON
Relevant source code:
//CLASS:StarRocksStreamLoadVisitor.java
//METHOD:doHttpPut
        try (CloseableHttpClient httpclient = httpClientBuilder.build()) {
            HttpPut httpPut = new HttpPut(loadUrl);
            Map<String, String> props = sinkOptions.getSinkStreamLoadProperties();
            for (Map.Entry<String,String> entry : props.entrySet()) {
                httpPut.setHeader(entry.getKey(), entry.getValue());
            }
            if (!props.containsKey("columns") && ((sinkOptions.supportUpsertDelete() && !__opAutoProjectionInJson) || StarRocksSinkOptions.StreamLoadFormat.CSV.equals(sinkOptions.getStreamLoadFormat()))) {
                String cols = String.join(",", Arrays.asList(fieldNames).stream().map(f -> String.format("`%s`", f.trim().replace("`", ""))).collect(Collectors.toList()));
                if (cols.length() > 0 && sinkOptions.supportUpsertDelete()) {
                    cols += String.format(",%s", StarRocksSinkOP.COLUMN_KEY); //COLUMN_KEY="__op"
                }
                httpPut.setHeader("columns", cols);
            }

last:

If the logic about JSON is omitted from the code, I can submit PR to add relevant logic.
If it is designed in this way, please explain the reason for the design.

@hffariel

you can see StarRocksSerializerFactory#createSerializer


Fix: IllegalArgument Exception in String converter

Description
Fix IllegalArgumentException and return object.toString
Issues Resolved
Resolves #3135
Check List

[x] New functionality includes testing.
[ ] New functionality has a documentation issue. Please link to it in this PR.

[ ] New functionality has javadoc added

[x] Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I added tags_on_failure option which will add tags and log the failure. This change would not alter the current behavior. The key would be deleted first and then the if conversion works the key with new value will be added.


KAFKA-16965: Throw cause of TimeoutException

This PR adds the cause of TimeoutException for Producer.

Thanks for the changes @aliehsaeedii! Left some comments (I may be missing details about the specific errors that motivated this. Was it mainly trying to know when retrying on retriables like UnknownTopic led to timeout?). Thanks!

Was it mainly trying to know when retrying on retriables like UnknownTopic led to timeout?

yes, it was:)


docs: add recommended ExposeHeaders to CORS example

The text mentions additional options not reflected in the CORS examples:
"ExposeHeaders": ["ETag", "Content-Encoding", "Content-Range", "Accept-Ranges"]

@qqmyers I edited the wiki directly; please check behind me?

done - thanks!


Define reallocarr as weak to avoid symbol collision on gnu/Linux.

Closes #744.
Note: I am pretty sure this first try is not ok, as I am pretty sure not all compilers will accept this __attribute__ thing, most likely the MSCV compiler, and given you work in Microsoft, I think you care about this :D In src/alloc.c:925 you have surrounded the __attribute__((weak)) usage by #if (defined(__GNUC__) || (defined(__clang__) && !defined(_MSC_VER))), do you want me to also use this conditional here ?

Thanks so much for the PR! I merged it manually into dev.


Document forge cache clean --etherscan

See https://github.com/foundry-rs/foundry/pull/1807

Bumping the PR to solve this in case you haven't it @onbjerg


Can I know what loss values should SSD has?

I am in the midst of training SSD and my loss hovers at 20. Can I know what should be a reasonable values? How should the loss curve of SSD look like?

Here is a log of SSD300.


Flexbox overflow bug (codepen)

http://degradingdisgracefully.com/ie11-ie10-flexbox-overflow-bug/

I feel your pain.
Sounds like it could be related to this issue https://github.com/philipwalton/flexbugs/issues/51
Do you have an examples I could look at that reproduce the issue (your codepen works).

Hi,
The test case was written by someone else. Just wanted to share it with you because at the time it seemed different from the ones you had documented.

I'm not clear on what the bug is here. I'm going to close this issue, but feel free to reopen and elaborate if you think I'm missing something.


Add plans banner to /install page

This PR adds a banner to the /plans page on the /install page of the website.
Light version

Dark version

@rtfeldman replaced the comma with an exclamation mark. I haven't updated the screenshots.


Allow uninitialized instance variables in protected constructors

I want to make a protected constructor that does not initialize all instance variables, so the derived classes can initialize those instance variables as needed.
Here is the minimal code that still makes sense:
class Base
  @is_init = false
  @some_var : Int32

  def initialize(@some_var = 42)
    @is_init = true
  end

  protected def initialize
    @is_init = true
    # here I don't know how to init @some_var variable
    # => it must be initialized in derived classes
  end

  def do_something
    puts "init: #{@is_init}"
    p @some_var
  end

end

class Derived < Base

  def initialize
    @some_var = 21
    super # call the protected Base#initialize
  end

end

d = Derived.new # call the public Derived#initialize
d.do_something

And I get:
Error: instance variable '@some_var' of Base was not initialized in all of the 'initialize' methods, rendering it nilable
On Crystal 0.20.5

You define @some_var to be of type Int32 in base, but you don't initialize the value, in Base#initialize, so its type is actually Int32 | Nil; this is a mismatch from what you told the compiler, hence compilation fails.
You must either:

initialize @some_var in Base#initialize;
or change the type of @some_var in Base to be a nilable (i.e. Int32?);
or declare @some_var in Derived only.

But in my logic, I DON'T want @some_var to be Nillable: I don't see the point of making a variable Nilable, just to fulfill the compiler expectations, even when the logic points that the variable should never be Nilable....
And in addition, I want my variable to be accessible from Base class..
.. okay I see, I can initialize @some_var in Base#initialize and pass the value from Derived#initialize to Base

Aside from that, as a protected constructor it to be called from another constructor in Derived classes, why not detect this usage, and allow  Base protected constructor not to initialize every fields, and allow initialization from the derived classes directly ?

Because this is guessing, and it breaks assumptions and what you actually declare. You actually want a nilable (can't initialize a value), and you may either pass the computed value from the derived class, or declare a nilable (and deal with it) or declare a getter? which will move the check to runtime with getter!.

Ok I understand now, thanks for the explanation!


ModuleNotFoundError: No module named 'mmdet'

I followed all the steps in install.md and installed ReDet
When I try to run train.py with DOTA dataset, I get the following error:
Traceback (most recent call last):
File "/home/ai20resch13001/ReDet-dota/tools/train.py", line 6, in
from mmdet import version
ModuleNotFoundError: No module named 'mmdet'
Please help me with this issue. Is this issue because of the environment?
I am using a linux system and I used the below line of command while installing ReDet
conda install pytorch=1.3.1 torchvision cudatoolkit=10.0 -c pytorch -y
And I am using mmcv == 0.4.3

Do you solve this error:"No module named 'mmdet'"


Change retry strategy for messenger

When we run our containers rabbitmq need little more time to wake up than other containers so workers not working from begining.

Right into master!


XML schema versioning

We have to find a solution for publishing different versions of the same swiML.xsd schema. The old XML files still need to validate against the v1.0 while new XML files should validate against our upcoming 2.0 version. Do we need a different file with a new file name or is this handled inside the XML with the version tag?

We wil add an element in schema (XSD) to highlight the version. The practical consequence is in the URL of the schema, which will point to different releases.

What are the URLs to V1, V2 etc.? This means creating version folders. version/1.0.0/

I went back into the project's history and downloaded and edit I made just before you made your first changes on Github (Mar 30, 2023). This might be a good anchor point for version 1.1. I will test it now to see if the old Jasi masters program work after I changed the location of the XSD file in their header.

We created version folders that do the job.


Support interception of http request error only if application does not handle the error

I want to be able to have a http error interception that runs but only if the application code did not handle the error. Eg: to display a unhandled error popup.
Looks like http interceptor runs before application code, so the above can not be done via the interception mechanism?

have a look at https://github.com/mattlewis92/angular-bluebird-promises and onPossiblyUnhandledRejection


Support NullString with sqlite?

Your Question

I have created a new type defined as  type MultiString []string, which implements Scanner and Valuer, in order to store a slice of strings as a single text column, separated by commas. If the slice is empty, Value() returns a sql.NullString{}.
This works correctly with the postgres driver. However, using sqlite, it reqturns the following error upon trying to call db.Create():
sql: converting argument $2 type: non-Value type sql.NullString returned from Value
Model:
type Person struct {
	ID      int
	Name    string
	Kids	*MultiString
}

SQL generated:
CREATE TABLE `people` (`id` integer,`name` text,`kids` text,PRIMARY KEY (`id`));
INSERT INTO `people` (`name`,`kids`) VALUES ("Jinzhu",NULL);    // RETURNS ERROR HERE

The document you expected this should be explained

Expected answer

Is NullString supported in GORM using sqlite?

Not a GORM related issue, maybe you can ask the sqlite driver team, and Value method should return basic golang types, but not another Scanner/Valuer

Value method should return basic golang types, but not another Scanner/Valuer
@jinzhu Hmm, the reason I had Value return a sql.NullString{} was because I received the following errors when returning only nil.
Value:

type MultiString []string
func (s MultiString) Value() (driver.Value, error) {
	if s == nil || len(s) == 0 {
		return nil, nil
	}
	return strings.Join(s, ","), nil
}

Error output:
[error] unsupported data type: &[]
[error] failed to parse value &main.Person{ID:0, Name:"", Kids:(*main.MultiString)(nil)}, got error unsupported data type: &[]
[error] unsupported data type: &[]
[error] unsupported data type: &[]
[error] failed to parse value &main.Person{ID:0, Name:"", Kids:(*main.MultiString)(nil)}, got error unsupported data type: &[]
[error] unsupported data type: &[]


Synchronize Schemas and Shapes with the Context File

blocked by #173

Needs to be done after the model is finished completely.

Update: Solution included in #184

@mkollenstart please have a look at the context file again. To the best of my knowledge, and given the state as of today, we have it in a good state.


jenkins: 2.401.1 -> 2.401.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for jenkins is: An extendable open source continuous integration server
meta.homepage for jenkins is: https://jenkins-ci.org
meta.changelog for jenkins is: https://www.jenkins.io/changelog-stable/#v2.387.3
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 2.387.3 with grep in /nix/store/n9rklsdg8jxmg12ygg5hli9rbbj3jxdx-jenkins-2.387.3
found 2.387.3 in filename of file in /nix/store/n9rklsdg8jxmg12ygg5hli9rbbj3jxdx-jenkins-2.387.3

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
jenkins

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/n9rklsdg8jxmg12ygg5hli9rbbj3jxdx-jenkins-2.387.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A jenkins https://github.com/r-ryantm/nixpkgs/archive/ef21598093015455c6cb0c1d9e2edc9eec0dd850.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/n9rklsdg8jxmg12ygg5hli9rbbj3jxdx-jenkins-2.387.3
ls -la /nix/store/n9rklsdg8jxmg12ygg5hli9rbbj3jxdx-jenkins-2.387.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

jenkins

Maintainer pings
cc @coreyoconnor @earldouglas @NeQuissimus @ajs124 for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for jenkins is: An extendable open source continuous integration server
meta.homepage for jenkins is: https://jenkins-ci.org
meta.changelog for jenkins is: https://www.jenkins.io/changelog-stable/#v2.401.2
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.401.2 with grep in /nix/store/fs376v7dw17qabqz68l6jj50dy1cjgjr-jenkins-2.401.2
found 2.401.2 in filename of file in /nix/store/fs376v7dw17qabqz68l6jj50dy1cjgjr-jenkins-2.401.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
jenkins

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/fs376v7dw17qabqz68l6jj50dy1cjgjr-jenkins-2.401.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A jenkins https://github.com/r-ryantm/nixpkgs/archive/90cc5cce97cab37de142a7f1b76c7129ff390fa0.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/fs376v7dw17qabqz68l6jj50dy1cjgjr-jenkins-2.401.2
ls -la /nix/store/fs376v7dw17qabqz68l6jj50dy1cjgjr-jenkins-2.401.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

jenkins

Maintainer pings
cc @coreyoconnor @earldouglas @NeQuissimus @ajs124 for testing.

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

1 package built:

jenkins

Tests succeeded:
$ nix-build -A jenkins.tests
trace: warning: Module argument `nodes.master.config` is deprecated. Use `nodes.master` instead.
/nix/store/52j3h43sjg9scwhpwxjg366k94fvpmsm-vm-test-run-jenkins
/nix/store/pl2f4b515gx4nbpkq9gdv0gnkwqbwlsf-vm-test-run-jenkins-cli


Run the black console without error

Hello, thank you very much for the code, give me a lot of inspiration; But I'm pulling your code locally now and it's running black and don't know how to start the sunshine analysis, thank you very much for the code and have a great day

after you run npm install，you shoue modify createUniformArray.js. you can't push uniform array directly in cesium. please see this article

change function UniformArrayFloatVec3.prototype.set in createUniformArray.js, like below
UniformArrayFloatVec3.prototype.set = function () {
  // enable push array to value
  const value = this.value instanceof Array?this.value:this.value.value;
  const length = value.length;
  const arraybuffer = this._value;
  let changed = false;
  let j = 0;

  for (let i = 0; i < length; ++i) {
    const v = value[i];

    if (defined(v.red)) {
      if (
        v.red !== arraybuffer[j] ||
        v.green !== arraybuffer[j + 1] ||
        v.blue !== arraybuffer[j + 2]
      ) {
        arraybuffer[j] = v.red;
        arraybuffer[j + 1] = v.green;
        arraybuffer[j + 2] = v.blue;
        changed = true;
      }
    } else if (defined(v.x)) {
      if (!Cartesian3.equalsArray(v, arraybuffer, j)) {
        Cartesian3.pack(v, arraybuffer, j);
        changed = true;
      }
    } else {
      //>>includeStart('debug', pragmas.debug);
      throw new DeveloperError("Invalid vec3 value.");
      //>>includeEnd('debug');
    }

    j += 3;
  }

  if (changed) {
    this._gl.uniform3fv(this._location, arraybuffer);
  }
};

Bro, it's a great honor that you helped with my problem, but after I changed the createUniformArray .js, it was still dark and I didn't know what the problem was

I try it again. Only need modify UniformArrayFloatVec3.prototype.set, in<EMAIL_ADDRESS>Then run npm run start in terminal. You see below image.

It worked as you said, thanks


Run error on Step #5

ERROR:@google/cloud-debug: Failed to re-register debuggee YOUR_APP_NAME: Error: Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.

I'm able to see the app on port 8080 but get the above error on the console.

I have been unable to reproduce this error.
Where are you running the app? What is the output of gcloud config list?

I'm having the same error, here is the output of the command you requested @jmdobry

@codelabs-188514:~/cloud-cardboard-viewer$ gcloud config list
[component_manager]
disable_update_check = True
[compute]
gce_metadata_read_timeout_sec = 5
zone = us-central1-f
[core]
account =<EMAIL_ADDRESS>check_gce_metadata = False
disable_usage_reporting = False
project = codelabs-188514
[metrics]
environment = devshell
Your active configuration is:  [cloudshell-30579]


ERROR  spawn yarn ENOENT (windows os)

Hi,
you are doing a great job. Thank you.
I encounter an issue when run npm run deploy I get an error

ERROR  spawn yarn ENOENT                                                                                16:39:24
at Process.ChildProcess._handle.onexit (internal/child_process.js:247:19)
at onErrorNT (internal/child_process.js:431:16)
at processTicksAndRejections (internal/process/task_queues.js:81:17)
at process.runNextTicks [as _tickCallback] (internal/process/task_queues.js:56:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:871:11)
at internal/main/run_main_module.js:21:11
error Command failed with exit code 1.

I found that this error is caused by windows os and that it can be fixed by using
https://www.npmjs.com/package/cross-spawn. Will you mind to make a fix?
Thanks

@tomasSlouka
Thank you for reporting!
I have fixed. Please let me know if there is a problem again.
At that time, it is okay to PR.
Thanks.


Fix UI being updated before Store

I believe I have found a bug / race condition.
Take this code for example:
.then(() => {
    this.keyrings.push(keyring)
    return this.persistAllKeyrings()
})
.then(() => this._updateMemStoreKeyrings())
.then(() => this.fullUpdate())

The intention is to update the MemStore and then emit an update with the newest MemStore.
However, due to a bug, the old state is emitted first and then the state is updated.
Looking at the _updateMemStoreKeyrings method, you can see that nothing is returned. That means that it is not an async function and fullUpdate does not wait for _updateMemStoreKeyrings to finish.
You can verify this bug by placing log statements in the callback inside _updateMemStoreKeyrings and in  fullUpdate. You will see that fullUpdate executes first and with the old state.
I think this did not cause any malfunction in Metamask from what I can tell, but it is a bug nonetheless.

Thanks very much for catching this. I'm closing in favor of #21, where I correct the usage of this method in every place it is used.


GitHub Actions aren't bumped if two files have different versions of an action

Package ecosystem
GitHub Actions
Package manager version
Latest on github.com
Language version
Latest on github.com
Manifest location and content prior to update

.github/workflows/plantuml.yml
[...]
    - name: checkout
      uses: actions/checkout@v1
[...]

.github/workflows/build.yml
[...]
    - name: checkout
      uses: actions/checkout@v2
[...]

dependabot.yml content
version: 2
updates:
- package-ecosystem: nuget
  directory: "/"
  schedule:
    interval: daily
  open-pull-requests-limit: 10
- package-ecosystem: github-actions
  directory: "/"
  schedule:
    interval: daily
  open-pull-requests-limit: 10

Updated dependency
None
What you expected to see, versus what you actually saw
I expect to see a PR that bumps the checkout action to version 2 in .github/workflows/plantuml.yml, but there isn't one.
Native package manager behavior

Images of the diff or a link to the PR, issue or logs
The only occurence of checkout in the log:
updater | INFO <job_135451773> Checking if actions/checkout 2 needs updating
  proxy | 2021/05/19 07:01:27 [014] GET https://github.com:443/actions/checkout.git/info/refs?service=git-upload-pack
  proxy | 2021/05/19 07:01:27 [014] * authenticating git server request (host: github.com)
  proxy | 2021/05/19 07:01:27 [014] 200 https://github.com:443/actions/checkout.git/info/refs?service=git-upload-pack
updater | INFO <job_135451773> Latest version is 2
updater | INFO <job_135451773> No update needed for actions/checkout 2

However both files are monitored:

🕹 Bonus points: Smallest manifest that reproduces the issue

When sorted lexically build.yml comes bofore plantuml.yml. Since this repo is private, I cannot link to it.

@pzygielo: Observed similar, with one workflow using actions/checkout@v2 and one<EMAIL_ADDRESS>The upgrade from 2.3.4 to 2.3.5 was not proposed by dependabot

I encountered this yesterday in one of my repos. I had all of my workflows set to use a specific version (e.g<EMAIL_ADDRESS>so hadn't run into this, but after merging a template CodeQL workflow I had the same mix of dependencies that you've noted (actions/checkout@v2 and actions/checkout@v2.3.4).
As a workaround, I'll update the new CodeQL workflow to specify exact GitHub Actions dependency versions.


Change preview hostname construction, enabling wildcard TLS certificates

We need to add the same behavior as described in https://github.com/UffizziCloud/uffizzi_app/issues/103 but for open-sourced app

TESTED - OK
bash-5.1# bundle exec uffizzi preview create -o=json test-compose/uffizzi-vote-app-docker.yml
[✔] Creating containers...
[✔] Deploying preview...
  [✔] example-voting-app-result
  [✔] example-voting-app-vote
  [✔] example-voting-app-worker
  [✔] nginx
  [✔] postgres
  [✔] redis
{"id":"deployment-15","url":"https://deployment-15-default.app.qa-gke.uffizzi.com"}

verified in production