ARM template function listchannelwithkeys is missing from the list* section

The ARM template function listchannelwithkeys is missing from the list* section. This function is required to get the keys of bot service channels in order to integrate in web pages, apps, etc.
The table should be updated to reflect this function as follows:

Resource type
Function name

Microsoft.BotService/botServices/channels
listchannelwithkeys

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

ID: 0551fca9-d710-15d1-9141-baf2121a4ab1
Version Independent ID: cc554f24-a13d-d3ab-a3c6-c610f4d0b461
Content: Template functions - resources - Azure Resource Manager
Content Source: articles/azure-resource-manager/templates/template-functions-resource.md
Service: azure-resource-manager
Sub-service: templates
GitHub Login: @mumian
Microsoft Alias: jgao

Thanks!  Right now we don't have a good way of getting info on the available list* functions directly.  Can you point me to a sample REST return value or its shape?  Thx.

@rjygraham Thanks for bringing this to our attention. Your feedback has been shared with the content owner for further review.

See also https://github.com/MicrosoftDocs/azure-docs/issues/34829

@rjygraham - thanks for this feedback. I have added that function. It should get published tomorrow.


Chronos models for Job detail page

This introduces models for fetchJobDetail, deleteJob, runJob, and suspendJob, with fixtures.

Reviewer: @mlunoe

Needs a rebase

@mlunoe Rebased!

The API design changed a lot in the last two days - @gkleiman is working on a new design document. I'm happy to adjust things in close collaboration with Gastón where needed, if you're ok with that.

@jfurrow Let us know here, if you want to incorporate some of those changes or you want to iterate on it after

@orlandohohmeier That would be awesome! Thank you. I'll implement the changes that have already been mentioned in the comments.

There is no need to fetch the job details as we already get all the data from the jobs endpoint.

@orlandohohmeier when showing a detail view we should request the details for that item. We can, at some point, add a layer that determines if we should request detail data or not, but if someone goes to the detail page directly there's no guarantee that we have the jobs endpoint data. There's also a chance that the details endpoint will have more data than the jobs endpoint.

@rcorral Yep, there is a chance that the endpoint might provide more data, but for now we get everything from the /jobs endpoint. As far as I know, there is no mechanism to directly jump to a job (as we need the tree data), thus I would rather not do a completely useless request. Let's keep this implementation and move towards a version where we actually benefit from the job detail endpoint.

@rcorral Let me add that there are ways to get the tree data (which we need to properly determine the location e.g. for the breadcrump) from a single job spec by parsing the job id in the same way we're parsing them in the the /jobs response. If we want to do that (and I assume we want) I would love if we could wait until we've updated the parsing to match the latest API adjustments. This shouldn't block us as we (as I said) already get all the data for the jobs endpoint.

retest this please


Provide function for building a pipeline

Stream pipelines are a nice elementary building block. However, errors don't usually propagate down the stream. I wonder whether it would make sense to have gulp export a function like this:
gulp.pipeline = function(first) {
    var stream = first;
    for (var i = 1; i < arguments.length; ++i) {
        var next = arguments[i];
        stream.on("error", next.emit.bind(next, "error"));
        stream = stream.pipe(next);
    }
    return stream;
}

Then you could change the documentation to suggest that users use this function instead of manually building up the pipeline. One example from the docs would now read
gulp.task('scripts', ['clean'], function() {
  // Minify and copy all JavaScript (except vendor scripts)
  // with sourcemaps all the way down
  return gulp.pipeline(
    gulp.src(paths.scripts),
    sourcemaps.init(),
      coffee(),
      uglify(),
      concat('all.min.js'),
    sourcemaps.write(),
    gulp.dest('build/js'));
});

I think that dropping the calls to .pipe adds clarity to this formulation. And the fact that gulp has ultimate control over how the pipeline gets built means that it can be more flexible in how to handle these things, e.g. in terms of error propagation. In doing so it might take attributes of the individual streams into account, which might avoid some of the monkey-patching we see today.
Has this been discussed before?
How do you feel about this idea? Should I write a pull request for this?
Are there any specific issues affected by this which should be investigated further?

Somewhat related to https://github.com/gulpjs/gulp/issues/1269 - we don't bring things into core that already exist in userland and don't fit our very narrow scope.  For the 4.0 release, I'd love to have some docs contributed that list common and recommended userland modules, like https://www.npmjs.com/package/mississippi.
If you'd like to contribute the beginnings of that documentation, that would be awesome.

Indeed, mississippi or its components pump or pumpify seem to solve the same problem my code snippet addresses, albeit with apparently larger overhead due to additional functionality not needed here.
When adjusting the docs, I'd personally suggest using this functionality everywhere .pipe is being used so far. Which means most of the examples would require some third party module. Do you really think this kind of omnipresent use doesn't warrant inclusion into the core module? Or do you want to suggest using such modules only in some scenarios? If so, how would you distinguish them? I fear that suggesting different approaches only adds to the confusion.
Comparing miss.pipe to miss.pipeline, which would you prefer? I think miss.pipe with its callback function seems more appropriate. Changing all examples to that might turn the fact that a gukp task may also return a stream into a more obscure feature, but on the other hand, I don't see any harm in that since it's not that needed any more either if people start using miss.pipe or pump.

@gagern We're pretty dedicated on sticking to the normal stream usage - the idea is that if you know node, you know gulp. We don't like to invent any of our own stuff, which is why we stick with core streams and simple async functions for everything.

@contra I know and appreciate that idea. One thing I like about gulp is that I can understand its mechanics pretty easily. But the fact remains that the .pipe method of core node streams does not perform sufficient error propagation. So you can either let errors bubble to the default handler and get reported out of context (which is the default in current usage), or you have to provide some mechanism to propagate errors from intermediate pipeline stages to somewhere where gulp can intercept them and present them in context. You still have default streams that way, but not the .pipe method but something which does some .on('error', …) handling as well, without burdening the user with this.

@gagern We have another issue open about how we should address this - would love for you to chime in there https://github.com/gulpjs/gulp/issues/358

@contra, while #358 is certainly interesting to read, and I did add my $0.02 to it, it's focus is the unpipe event associated with an error. Here I'm not worried about unpiping, but about error events ending up at the default stream error handler instead of some place where gulp will know that the task in question failed. These are in my opinion distinct problems, and while some solutions address both of them, it is far from obvious to me that they should be addressed together. Anyway, in https://github.com/gulpjs/gulp/issues/358#issuecomment-167364161 I described how my suggestion here (of providing a gulp.pipeline function, which may well be backed by pump, pumpify, missisippi or whatever behind the scenes) could help with that problem, too.


Poor Training Results on Hand Tracking Dataset Despite Using Various Backbones and Loss Functions

I attempted to train a model on a hand-tracking dataset.
I experimented with all available backbones, loss functions, and other hyperparameters, but the results were consistently poor. The output videos showed no detectable hand movements, even though my dataset is intact and free from issues.
The model failed to produce meaningful results. Could you identify potential issues or suggest improvements to achieve better performance?
As a side note, I had better results when I used the version of lightning utilities 0.10.1

I @JamilHanouneh, can you send some info for me?

your config.yaml file used to train the models
how many labeled frames you have

also, can you clarify what you mean by "lightning utilities 0.10.1"? what package does this reference? I know of lightning and lightning-pose but I'm not sure what the "utilities" references.

for the labeled frames there are 13735
and for config this is:
`
data:
dimensions of training images
image_orig_dims:
height: 540
width: 720
resize dimensions to streamline model creation
image_resize_dims:
height: 384
width: 512
ABSOLUTE path to data directory
data_dir: /home/nsquared6/Desktop/users/Jamil/Done
ABSOLUTE path to unlabeled videos' directory
video_dir: /home/nsquared6/Desktop/users/Jamil/Done/videos
location of labels; this should be relative to data_dir
csv_file: CollectedData.csv
downsample heatmaps - 2 | 3 was 2
downsample_factor: 2
total number of keypoints
num_keypoints: 21
keypoint names
keypoint_names:
- Thumb3
- Wrist
- Thumb0
- Thumb1
- Thumb2
- Index0
- Index1
- Index2
- Index3
- Middle0
- Middle1
- Middle2
- Middle3
- Ring0
- Ring1
- Ring2
- Ring3
- Pinkie0
- Pinkie1
- Pinkie2
- Pinkie3
mirrored_column_matches: null # I think I don't need to use it because my data are not mirrored
list of indices of keypoints used for pca singleview loss (use order of labels file)
columns_for_singleview_pca: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
training:
select from one of several predefined image/video augmentation pipelines
default- resizing only
dlc- imgaug pipeline implemented in DLC 2.0 package
dlc-top-down- dlc augmentations plus vertical and horizontal flips
imgaug: dlc
batch size of labeled data during training
train_batch_size: 16 # 16
batch size of labeled data during validation
val_batch_size: 32 # 32
batch size of labeled data during test
test_batch_size: 32 # 32
fraction of labeled data used for training
train_prob: 0.95
fraction of labeled data used for validation (remaining used for test)
val_prob: 0.05
<=1 - fraction of total train frames (determined by train_prob) used for training
>1 - number of total train frames used for training
train_frames: 1
number of gpus to train a single model
num_gpus: 1
number of cpu workers for data loaders
num_workers: 4
epochs over which to assess validation metrics for early stopping
early_stop_patience: 3
epoch at which backbone network weights begin updating
unfreezing_epoch: 20
max training epochs; training may exit before due to early stopping
min_epochs: 300
max_epochs: 300
frequency to log training metrics (one step is one batch)
log_every_n_steps: 10
frequency to log validation metrics
check_val_every_n_epoch: 5
select gpu for training
gpu_id: 0
rng seed for labeled batches
rng_seed_data_pt: 0
rng seed for weight initialization
rng_seed_model_pt: 0
learning rate scheduler
multisteplr | [todo - reducelronplateau]
lr_scheduler: multisteplr
lr_scheduler_params:
multisteplr:
milestones: [150, 200, 250]
gamma: 0.5
model:
list of unsupervised losses:
- "pca_singleview"
- "pca_multiview"
- "temporal"
- "unimodal_mse"
- "unimodal_kl"
- null: if null, assume a model is supervised.
losses_to_use: [pca_singleview, temporal]
backbone network:
resnet18 | resnet34 | resnet50 | resnet101 | resnet152 | resnet50_contrastive
resnet50_animalpose_apose | resnet50_animal_ap10k
resnet50_human_jhmdb | resnet50_human_res_rle | resnet50_human_top_res
efficientnet_b0 | efficientnet_b1 | efficientnet_b2
backbone: resnet50_human_top_res
prediction mode: regression | heatmap | heatmap_mhcrnn (context)
model_type: heatmap
which heatmap loss to use: mse | kl | js
heatmap_loss_type: mse
directory name for model saving
model_name: test # human_pose_experiment_1
dali:
general:
seed: 123456  # Keep the same for reproducibility, or change if you like
base:
train:
sequence_length: 32  # Good starting point, tweak later if needed
predict:
sequence_length: 96  # Adapt based on how you'll use the model for predictions
context:
train:
batch_size: 8  # Start smaller, adjust based on your GPU memory 8
predict:
sequence_length: 96 # Adapt based on how you'll use the model for predictions
losses:
loss = projection onto the discarded eigenvectors
pca_multiview:
# weight in front of PCA loss
log_weight: 5.0
# predictions should lie within the low-d subspace spanned by these components
components_to_keep: 3
# absolute error (in pixels) below which pca loss is zeroed out; if null, an empirical
# epsilon is computed using the labeled data
epsilon: null
loss = projection onto the discarded eigenvectors
pca_singleview:
# weight in front of PCA loss
log_weight: 5.0
# predictions should lie within the low-d subspace spanned by components that describe this fraction of variance
components_to_keep: 0.99
# absolute error (in pixels) below which pca loss is zeroed out; if null, an empirical
# epsilon is computed using the labeled data
epsilon: null
loss = norm of distance between successive timepoints
temporal:
# weight in front of temporal loss
log_weight: 5.0
# for epsilon insensitive rectification
# (in pixels; diffs below this are not penalized)
epsilon: 20.0
# nan removal value.
# (in prob; heatmaps with max prob values are removed)
prob_threshold: 0.05
eval:
paths to the hydra config files in the output folder, OR absolute paths to such folders.
hydra_paths: [" "]
predict?
predict_vids_after_training: true
save labeled .mp4?
save_vids_after_training: true
fiftyone:
# will be the name of the dataset (Mongo DB) created by FiftyOne. for video dataset, we will append dataset_name + "_video"
dataset_name: test
# if you want to manually provide a different model name to be displayed in FiftyOne
model_display_names: ["test_model"]
# whether to launch the app from the script (True), or from ipython (and have finer control over the outputs)
launch_app_from_script: false
remote: true # for LAI, must be False
address: <IP_ADDRESS> # ip to launch the app on.
port: 5151 # port to launch the app on.

str with an absolute path to a directory containing videos for prediction.
set to null to skip automatic video prediction from train_hydra.py script
test_videos_directory: /home/nsquared6/Desktop/users/Jamil/Done/videos
str with an absolute path to directory in which you want to save .csv with predictions
saved_vid_preds_dir: /home/nsquared6/Desktop/users/Jamil/Done/saved_vid_preds_dir
confidence threshold for plotting a vid
confidence_thresh_for_vid: 0.90
str with absolute path to the video file you want plotted with keypoints
video_file_to_plot: null
a list of strings, each points to a .csv file with predictions of a given model to the same video. will be combined with video_file_to_plot to make a visualization
pred_csv_files_to_plot: [" "]
callbacks:
anneal_weight:
attr_name: total_unsupervised_importance # This is the attribute that the callback is modifying. In this case, it’s total_unsupervised_importance.
init_val: 0.0 # This is the initial value of the attribute. Here, it’s set to 0.0.
increase_factor: 0.01 # This is the factor by which the attribute’s value is increased at each step. Here, it’s 0.01.
final_val: 1.0 # This is the final value that the attribute should reach. Here, it’s 1.0.
freeze_until_epoch: 0 # This parameter specifies the number of epochs for which the attribute’s value should remain at its initial value. Here, it’s 0, which means the attribute’s value starts increasing from the very first epoch.
hydra:
run:
dir: outputs/${now:%Y-%m-%d}/${now:%H-%M-%S}
sweep:
dir: multirun/${now:%Y-%m-%d}/${now:%H-%M-%S}
subdir: ${hydra.job.num}
`

oh wow you have a lot of labeled frames! yes very surprising you're not seeing good results. is it possible to share one or more screenshots of your images? I'm curious how much variability you have across the frames.
A couple suggestions:

backbone: resnet50_human_top_res is for full human pose estimation, I'm guessing it doesn't perform so well on close-ups of hands. you might just try resnet50, which is pretrained on imagenet
image_resize_dims: try 384x384 or 256x256 - sometimes if the resizing is too big, the heatmaps are too big, and the model doesn't learn as well. i've never seen it fail completely, but i'm curious if you try smaller values what you see. with smaller resize dims you can also increase your training batch size, which will let the model train faster

are you using tensorboard to monitor training? would be useful to see the loss curves for your previous models as well as after making these changes, that's a good way to see if there is obvious lack of learning.
another comment on training: we typically train with <=1k frames, so the epoch numbers are tuned to that scale a bit. since you have so many frames one epoch is a lot of data. so you could also try changing the following (this is just based on intuition):
training
  unfreeze_epoch: 1
  min_epochs: 100
  max_epochs: 100
  check_val_every_n_epoch: 1
  lr_scheduler_params:
    multisteplr:
    milestones: [40, 60, 80]
    gamma: 0.5

Thanks, it works, and I could get better results, but I have two questions:
Can you explain why you changed these parameters (milestones, check_val_every_n_epoch, unfreeze_epoch)?
I want to get even better results. Do you have any further suggestions?

Hi, @themattinthehatt
this issue is interesting.
Can you give more details about the backbone in LP? like what kinds of backbone we can incorporate into LP model?

@Wulin-Tan we offer a decent number of backbone options, though we've only thoroughly explored resnet-50s. I updated the documention so you can see more of the available options.
@JamilHanouneh in looking up the refs for some of the other backbones I stumbled across this page showing a decent number of backbones that have been pretrained on hand data; it would be quite easy for you to update the backbone code in lightning pose in order to use one of these. You can see how we incorporate other backbones from this same set of MMPose models here
Are you by any chance using one of these publicly available datasets?

@YitingChang @JamilHanouneh since you both are interested in tracking hands I figured I'd take some time next week to add one of the pretrained hand backbones into the repo; will update you here when that's done

@YitingChang @JamilHanouneh I just added a backbone pretrained on the OneHand10k dataset from MMPose.
To use this backbone, first run git pull from inside your lightning-pose repo to get the code updates. Then, in your config file, set the backbone to
model:
  backbone: resnet50_human_hand

The first time you do this you'll see the weights being downloaded from MMPose, and then the model will train like normal. Please let me know how this works for you!

@themattinthehatt
Thanks for adding the new backbone! I'll give it a try and update you on the results.
By the way, regarding your previous questions:
Did you end up changing the backbone and the resizing dimensions? Yes, I did. I found that adjusting the resizing dimensions had a more significant impact.
How long did it take to train? It took about 19 hours.
What type of GPU are you using? I'm using an RTX 4090 paired with a Ryzen 9 processor.
I'll keep you posted on how the new backbone performs!


Updated glam to 0.8.5

Thank you for your nice path tracer! When I was trying to build this project, the Cargo failed to find the glam. I updated the version of glam, considering that the reference to glam was out of date. Then the beautiful image was drawn at high speed, so I created this pull request.
Thank you.

I totally didn't notice this PR from over a year ago sorry! Most of my work is on the material_rewrite branch but it's a bit on the backburner these days.


setting desired water hardness does not work?

first of all, thank you so much for this! I am so happy there is a solution to easily show the judo data in HA. I got it working, but changing the desired hardness doesnt seem to work. The http response data is empty, so the json parsing fails... Other commands seem to work fine, just this one doesnt.. Am I doing something wrong?

Works again, guess it was on their part..


[OTHER] How to throw an error if I write a wrong object field in a template?

Basically I have this object in my js file:
var person= {}
person.name= "Rick"

Then I pass this object to RosaeNLG and let's say I make a mistake in my pug file and write something like:
|!{person.namee}

Can I throw an error somehow? Currently it prints an empty string.
Thanks in advance!

Hi @radu1690
This seems to be the default behavior of Pug interpolation, when using !{...} and #{...}.
Typically, I favor the use of value mixin which:

allows formatting
manages such errors

-
  var person= {}
  person.name= "Rick"
| #[+value(person.namee)]

will produce an error: InvalidArgumentError: first parameter of value is null or undefined on line 4

Awesome, I missed that page!
Is there also something similiar to use with If statements in templates? For example this should throw an error:
if person.namee == "Rick"

if statements are directly compiled in JavaScript. Pug (and RosaeNLG) do nothing special here.
person.namee is undefined, it is not invalid. I would say that in JavaScript it is valid to compare undefined with something else, here "Rick" - I don't think you can do anything about it?

Thank you!

@radu1690 you should probably stick to the strictest === equality operator if errors are what you are after. This comparison table isn't complete but it covers the most common use cases, so should be helpful:

Catching errors at chokepoints just enough to keep going (probably going toward a catastrophic failure months down the road) is what JS excels at hah, if you end up tinkering with the innards, try{}catch{}finally{} and .catch(err) are the two patterns I'd look into if I was you.


Update dependencies

cranelift can also be updated, but requires different code to print IR.
bumpalo can be updated without problems, but there is some new stuff that could be useful: https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md
mimalloc could also be added as alternative allocator.
❯  git diff Cargo.toml src/main.rs src/codegen/clif.rs
diff --git a/Cargo.toml b/Cargo.toml
index 19bbb3b..e149875 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,6 +24,7 @@ itoa = "1.0"
 ryu = "1.0"
 libc = "0.2"
 tikv-jemallocator = { version = "0.4", optional = true }
+mimalloc = { version = "0.1", default-features = false, optional = true }
 rand = "0.8.4"
 lalrpop-util = "0.19.6"
 unicode-xid = "0.2.2"
@@ -39,13 +40,13 @@ termcolor = "1.1"
 itertools = "0.10"
 assert_cmd = "2.0.3"
 paste = "1.0"
-cranelift = "0.75.0"
-cranelift-codegen = "0.75.0"
-cranelift-frontend = "0.75.0"
-cranelift-module = "0.75.0"
-cranelift-jit = "0.75.0"
+cranelift = "0.80.0"
+cranelift-codegen = "0.80.0"
+cranelift-frontend = "0.80.0"
+cranelift-module = "0.80.0"
+cranelift-jit = "0.80.0"
 fast-float = "0.2"
-bumpalo = { version = "3.6", features = ["collections"] }
+bumpalo = { version = "3.9", features = ["collections"] }
 target-lexicon = "0.12.2"

 [dev-dependencies]
@@ -56,6 +57,7 @@ tempfile = "3.3"
 [features]
 default = ["use_jemalloc", "allow_avx2", "llvm_backend", "unstable"]
 use_jemalloc = ["tikv-jemallocator"]
+use_mimalloc = ["mimalloc"]
 # Certain features leverage the AVX2 instruction set, but AVX2 can often make
 # the entire application slightly slower, even on chips that support it. For
 # those cases, consider disabling allow_avx2.
diff --git a/src/codegen/clif.rs b/src/codegen/clif.rs
index 94f534f..4a4a88c 100644
--- a/src/codegen/clif.rs
+++ b/src/codegen/clif.rs
@@ -573,7 +573,7 @@ impl<'a> View<'a> {
         self.builder.seal_all_blocks();
         self.builder.finalize();
         if DUMP_IR {
-            eprintln!("{}", self.builder.display(None));
+            //eprintln!("{}", self.builder.display(None));
         }
         Ok(())
     }
diff --git a/src/main.rs b/src/main.rs
index 75991aa..dc871b6 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -54,6 +54,10 @@ use std::mem;
 #[global_allocator]
 static ALLOC: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;

+#[cfg(feature = "use_mimalloc")]
+#[global_allocator]
+static ALLOC: mimalloc::MiMalloc = mimalloc::MiMalloc;
+
 macro_rules! fail {
     ($($t:tt)*) => {{
         eprintln_ignore!($($t)*);

Thanks for the PR! I should have time to review this soon but I expect to merge it in the next couple of days.

I think there are a couple more things to clean up here on the LLVM side, but I can push changes post-merge. Thanks again!


Split dev prefix and number by a dot

See #8

Codecov Report

Merging #9 into master will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master       #9   +/-   ##
=======================================
  Coverage   93.75%   93.75%
=======================================
  Files           2        2
  Lines         128      128
=======================================
  Hits          120      120
  Misses          5        5
  Partials        3        3

Impacted Files
Coverage Δ

version/version.go
94.82% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 85c4ec7...1ee29b6. Read the comment docs.

Hi @choffmeister,
I'm sorry for my very late reply! Your merge request somehow went under my radar. This seems to be a very reasonable change to make the git-semver derived version more compliant. Thank you for your contribution!


Allow use of Singularity instead of Docker

The HPC I have access to does not, and will not in foreseeable future  allow Docker for security reasons, however I can create and use Singularity containers, such can be created from Docker images.
http://singularity.lbl.gov/docs-docker
I'm going to work on doing that, just wanted to get any comment.

I believe this is a useful problem in general for bdg (we cannot run docker on the cluster in cluster mode). Would this fix that issue as well?

+1, this should happen in step with changes for #34, which should follow from #69.  As you mentioned, the same Docker images can be used when making the call via Singularity.  The Nextflow user community has a lot of experience with this.

@jpdna Could you take a look at the Singularity command line that is created by #107?  This test method provides an example.
A few questions remain:

Mount syntax is --bind source:target, do you know why those wouldn't work for you?
Does running Singularity via sudo make sense?
If the image is a local file (e.g. foo.img), do we need to create an absolute path for that?  or perhaps copy to all nodes via files mechanism?


Capital Letters in my Username

So my IGN is FoundOdyssey, but the permission manager retains my name as foundodyssey.
So it's not counting me it as me?? The commands using my name like /lp user FoundOdyssey parent add Owner. Works but I never get the prefix or the commands because it really adds foundodyssey.

Is the group and/or the prefix showing in /lp user FoundOdyssey info?
The case of the letters shouldn't matter, because it is still the same UUID

Yes it is showing up under there.


Request

Hi, can you convert it into an exe that works?

Exe is already here https://github.com/iceland2k14/AltCrack/tree/master/x64/Release

Dude, thank you so much.


Respond to logger package update

The logger package has newer version 2.0.2+1 but this Segment package depends on logger 1.0.1.
I cannot update logger package.
Please update dependency.

Hi @Jeonguk-ninehire  thank you for your report, we start looking into this.


iOS need help about GCM

Hello all,
I started to use this plugin for my Cordova app on iOS.
First, I succeed having the message asking me if I want to allow notifications on my app.
I also created a APNS on Apple and on Google I followed this link https://developers.google.com/cloud-messaging/ios/client
So I connected cloud messaging to my apple app and I put the configuration file GoogleService-Info in my xcode app folder.
ON xcode i got this message which tell me GCM is not connected :
HelloCordova[1640:453970] Push Plugin register called
2016-08-24 11:02:49.300 HelloCordova[1640:453970] PushPlugin.register: setting badge to true
2016-08-24 11:02:49.300 HelloCordova[1640:453970] PushPlugin.register: clear badge is set to 1
2016-08-24 11:02:49.300 HelloCordova[1640:453970] PushPlugin.register: better button setup
2016-08-24 11:02:49.302 HelloCordova[1640:453970] GCM Sender ID 1630XXXXXXX
2016-08-24 11:02:49.303 HelloCordova[1640:453970] Using GCM Notification
2016-08-24 11:02:49.331 HelloCordova[1640:453903] Push Plugin register success: <defef2b5 2b4c6eb1 0da78031 a475a0d6 15c008ae 6d649605 5c7877c1 b4c5tg6>
2016-08-24 11:02:50.099: GGLInstanceID | Unable to find token in cache Error Domain=com.google.iid Code=-25300 "(null)"
2016-08-24 11:02:52.204 HelloCordova[1640:453903] Registration to GCM failed with error: The operation couldn’t be completed. (com.google.HTTPStatus error 401.)

It is weird because I put it in my js code, have a look :
var push = PushNotification.init({
			    "ios": {
			    	"senderID": "1630XXXXXX",
			        "sound": "true",
			        "alert": "true",
			        "badge": "true",
			        "clearBadge": "true"
			    }
			});

Do you know what to do ?

Shouldn't it be
var push = PushNotification.init({
        "android": {
          "senderID": "123456"
        },
        "ios": {
          "alert": "true",
          "badge": "true",
          "sound": "true"
        }
      });

instead?

Well I created again a certificate development for push notification on Apple.
I have the token now but there is still one error about GGLInstanceID. What is it ?
2016-08-24 11:29:36.204: GGLInstanceID | Unable to find token in cache Error Domain=com.google.iid Code=-25300 "(null)"
2016-08-24 11:29:37.614 HelloCordova[1679:461813] GCM Registration Token: m8IQiGkOn-Q:APA91bEABqeG9q3s1QQRRCGh0um4zEUpHz4r1XYsChdB16MV7Rez3OCz5EB46983_z_ssiuIsqBh5P_MVefxOdnZ62UvzM1CRtoYLl4aKJfTil9JYLhIYG0pLBaTXQx23ZRaPg1qz6mv

Oh you are trying to hook up APNS and GCM. I haven't tried it before so I can't really advise you.
Try checking out some of this stackoverflow threads
#1
#2
Sorry can't be much of a help

GCM Registration Token: m8IQiGkOn-Q:APA91bEABqeG9q3s1QQRRCGh0um4zEUpHz4r1XYsChdB16MV7Rez3OCz5EB46983_z_ssiuIsqBh5P_MVefxOdnZ62UvzM1CRtoYLl4aKJfTil9JYLhIYG0pLBaTXQx23ZRaPg1qz6mv

indicates that GCM registration Id is successfully created for your device  see the m8IQiGkOn-Q:APA... format
Are you trying development/Production App ? If it is development(sandbox) then you need to put
"gcmSandbox":true in your ios  option
var push = PushNotification.init({                 "ios": {                     "senderID": "1630XXXXXX",                     "gcmSandbox":"true" ,                     "sound": "true",                     "alert": "true",                     "badge": "true",                     "clearBadge": "true"                 }             });

Ok thank you.
What is difference between development/production ? and what is the sandbox ?
Moreover, now i collect the registrationId thank to the plugin and store them in my database.
What is the next step ?
push.on('registration', function(data) {
// send data.registrationId to my database
});

What is difference between development/production ? and what is the sandbox ?

development/sandbox = DEV environment - for testing purpose
prroduction = LIVE enviroment when deployed to appstore
Apple push notification needs different types of certificates for Production and DEV environments
The next step for you is to

accept notification in your client code with
app.push.on('notification', function (data) {
run on ios and test with POST Request  to  GCM send notification and verify you can recieve messages

OK :)
Well I already accept notification when my app is launched for the first time.
Moreover, each time we reload it I update the registrationId given in push.on ...
I can post directly to GCM with in the javascript or I have to use my server ?
Also where can I find how and what to send it to GCM with a java server..
Thank you again.

I can post directly to GCM with in the javascript or I have to use my server ?
Also where can I find how and what to send it to GCM with a java server..

You need  to use a backend server for sending notifications for several reasons
https://developers.google.com/cloud-messaging/ gives you good enough doc to do it

Well i don't understand all because it is in native ^^ but thank you ;)

just focus on the server side POSt request like
https://gcm-http.googleapis.com/gcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}

this POST can be tested with some tools like PostMan Chrome Plugin or CURL requests
or even some GCM online testers like
[http://apns-gcm.bryantan.info/]
the client side will be already handled in the  app.push.on('notification'..  cordova code

Ok, i test your website in the link for GCM.
In Device token i put the token beginning with " llS5KB-Xxog:APA91bFpi6oRopko ... " ?

whatever device registration id's u recieved in the 'registration' event


Upgrading mongo client to version compatible with server v8

Mongo client comes via spring-boot-starter-data-mongodb-reactive (it uses mongo client v 4.11.1). I checked the latest version of spring-boot-starter-data-mongodb-reactive but it also comes with the same version of mongo client. Thus I decided to go with adding the explicit dependency. Is that the way to go @bioinsilico ?
Note I couldn't test it because I couldn't start the server locally, but the error seems unrelated: Parameter 0 of constructor in org.rcsb.rcsbsequencecoordinates.controller.GraphQlRSocketController required a bean of type 'org.springframework.graphql.ExecutionGraphQlService' that could not be found.

@bioinsilico I've tested again and this time I could actually run the service. I got a runtime ClassNotFoundError, like you were getting.
Now I've pushed a commit that seems to fix the issue. I tested against Mongo servers v4 and v8 and it worked fine for both. What do you think?

Thank you, @josemduarte. I tested for v4 and v8 and it worked.


Fix Twilio client for sending SMS

Fixes https://artsyproduct.atlassian.net/browse/BUGS-586
Follow-up to this on-call incident: https://artsy.slack.com/archives/C9RK0BLEP/p1541650548095200
The app was crashing the moment someone submitted the phone-number form.
Root cause appears to be incorrect usage of the Twilio library for NodeJS.
This fixes that, though I am not sure why this only surfaced now 🤷♂

I wondered about this too! There was this massive PR (https://github.com/artsy/flare/pull/28) that may have bumped the Twilio client several versions. It wouldn't shock me if the SMS functionality was broken since then.

Do the tests actually exercise the client now? It looked like old builds were green despite the incompatibility.
Any insight into staging being broken? (I see broken assets at flare-staging.herokuapp.com and iphone.staging.artsy.net is in the docs but not actually configured on the app.)

(Merging either way.)

Oh, I hadn't even seen the flare-staging app — I see now it wasn't assigned to the artsy group in Heroku. Doing that now and investigating a little further…

Ah I guess that has a billing implication? For now I will leave ownership alone and just grant myself access. But lmk if we'd actually want to transfer:

This is a good scenario for a dashboard/metric that says how many people text themselves from iphone.artsy.net.


iPhone 8

Hardware Name
iPhone 8
Hardware Website
No response
Scans BIP-21
Yes
Description
Scans well.

Hey @pavlenex do you remember which app you were using when you did this test?

I was just using phone camera, it opened a Blue Wallet ,does it really matter which app is used?

does it really matter which app is used?

Well, we won't know for sure until we collect that data. I have personally witnessed situations where you have a device with a camera and one app scans QRs very well and another app scans QRs very poorly. So instead of saying "this device has a bad camera", I think we must first verify how the camera is being utilized; therefore, I like to track which app a piece of hardware was tested with.


Open the build.gradle file (you can go to 1:Project in the side panel and find it under the Gradle Scripts zippy under Android). Look for the nativeBuildSystem variable and set it to none if it isn't already:  // set to 'bazel', 'cmake', 'makefile', 'none' def nativeBuildSystem = 'none' this do not exisit i need help rearding it if anyone can ??

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Python version:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there. Thanks!


Tests

I'll be glad to write some tests with mocha and should, if that's priority for the project. Thanks.

Hey, man - thanks. I'll do my best tomorrow. Thank you for this awesome library.


Change CI environment to macOS

Browser tests have been failing sporadically, hoping this might fix it.

Seems better; let's try it.


Sync: linked entries are not returned once the entity has been changed

Update one field of entry which has linked entries
sync with proper token
sync result: 1 entry changed - as expected
entry has 0 linked entries - not expected
raw field holds proper information

version of lib: 10.4.3
Check screenshot attached.

That exact issue occurs in ResourceUtils func resolveArrayOfLinks line 118. The lib tries to load linked resource from current fetched (synced) items - which obviously can't work!

@drezzzik @lechld Thanks for spotting that, we will try to fix it in the next release.

We also observe similar anomaly. Scenario:

create parent object of type Shelf with property "books" that is a list of children objects of type Book. Let our list contain just one book for now.
unpublish Shelf object (parent).
make 1st sync (full sync) - SynchronizedSpace.items[0] shall contain our Book (that is ok, because Shelf object is effectively not visible to external world, but the Book object is).
publish Shelf object (parent).
BUG: make 2nd sync (using token of the 1st sync). SynchronizedSpace.items shall contain Shelf object (it became published), however its "books" property will be empty.  Note, that incoming Shelf object does contain link to the Book in SynchronizedSpace.items[0].rawFields.books...sys field, book is just not getting resolved by SDK - it does not appear within SynchronizedSpace.items[0].fields.books .

thanks.


The tokenizer class you load from this checkpoint is not the same type as the class this function is called from. It may result in unexpected tokenization.  The tokenizer class you load from this checkpoint is 'BartTokenizer'.  The class this function is called from is 'BertTokenizer'. The tokenizer class you load from this checkpoint is not the same type as the class this function is called from. It may result in unexpected tokenization.  The tokenizer class you load from this checkpoint is 'BartTokenizer'.  The class this function is called from is 'BertTokenizer'.

Describe the bug

A clear and concise description of what the bug is.

    self.tokenizer = BertTokenizer.from_pretrained(self.bart_name) if 'chinese' in self.bart_name \
        else BartTokenizer.from_pretrained(self.bart_name)

会出现下面的警告：
The tokenizer class you load from this checkpoint is not the same type as the class this function is called from. It may result in unexpected tokenization.
The tokenizer class you load from this checkpoint is 'BartTokenizer'.
The class this function is called from is 'BertTokenizer'.
The tokenizer class you load from this checkpoint is not the same type as the class this function is called from. It may result in unexpected tokenization.
The tokenizer class you load from this checkpoint is 'BartTokenizer'.
The class this function is called from is 'BertTokenizer'.
Environment (please complete the following information):

OS: [e.g. mac / window]
Python Version [e.g. 3.6]

Screenshots

If applicable, add screenshots to help explain your problem.

Additional context

Add any other context about the problem here.

您可以忽略此warning，详情请看：https://huggingface.co/fnlp/bart-large-chinese，在bart-xxx-chinese中，使用的tokenizer确实是BertTokenizer


[HOLD for payment 2022-03-22] Height of input box for entering room name is wrong and it does not highlight when focused - Reported by @parasharrajat

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app
Navigate to "+" > New Room
Hit in the box or hover

Expected Result:
Input box should have blue border when focused.
Actual Result:
Height of input box for entering room name is wrong and it does not highlight when focused
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.30-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Upwork job link https://www.upwork.com/jobs/~01a4c8aadd3c3f0685
Issue reported by: @parasharrajat
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1642356868030500
View all open jobs on GitHub

Triggered auto assignment to @neil-marcellini (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

I would like to fix this issue in one of my PR for #6584. When I will refactor the TextInputWithPrefix, I will fix this too.

Thanks to @neil-marcellini but maybe we can get this external first for reporting it.

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This issue has not been updated in over 15 days. @parasharrajat eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

This needs to be exported for reporting bonus. I am happy to fix it under https://github.com/Expensify/App/issues/6584. Randomly picking cc: @michaelhaxhiu as no one is assigned.

@parasharrajat https://www.upwork.com/jobs/~01a4c8aadd3c3f0685

You will be paid for the fix in https://github.com/Expensify/App/issues/6584, correct? So this will just be the $250 reporting bonus based on what I'm seeing!

So I am refactoring the same component as part of #6584 so I am happy to fix this on that and thus you are correct. Thanks.

cool crystal clear 💎

thanks for offering to do that also, @parasharrajat

@shawnborton I am planning to merge this TextinpuT(attached on the screenshot) In our usual TextInput. I have some questions about the design. I would be glad if you could help here. Thanks.

What should happen to the label? Should I keep it above the input for when there is a prefix?
What about the height of the input? Should it be small like this or normal as per TextInput?

I think the height of this input should be just like other text inputs (52px)
I think in this case, we could try having a floating label that says "Room name" and remove the label above the input that we currently have. But I think it might look cleaner to not use a floating label. What do you think?

I am curious. How will it look with the floating label over the prefix and input area?
Are you suggesting that we just use the placeholder?
Here is a bad example..

Gentle bump @shawnborton

Apologies, was OOO for the past few days.
One option is to just always keep the input as if it was in the "has value" state, but we actually move the input portion over to the right after a fixed #:

Thoughts on that?

Looks good to me.

@michaelhaxhiu assigning you to make sure we pay Rajat for reporting this issue.

https://github.com/Expensify/App/pull/7937#issuecomment-1054872491
This comment suggests that the payout for rajat should go from $250 -> $500 for this GH right?
Additionally, he'll receive $250 via https://github.com/Expensify/App/issues/6584, right?

So here is the summary for payout.

I am fixing this as part of https://github.com/Expensify/App/issues/6584.  https://github.com/Expensify/App/issues/7308#issuecomment-1042398360 => Payment to fix it.
Here you will add reporting bonus
@puneetlath  mentioned adding a bonus for some additional work https://github.com/Expensify/App/pull/7937#issuecomment-1054872491.

I think I am fine without point 3. I say the change was small and quick so I don't want the bonus for that.

I think we should pay you for point 3 and noticed puneet agreed too in his latest comment.
It sounds like the additional $250 should be added to the other GH https://github.com/Expensify/App/issues/6584 (not this one)? Is that correct?

Yup that would be added to other issue not this one.

Thanks for confirming.

Waiting for this PR to go to production, and then I'll pay Rajat $250 for reporting this bug + close this GH.

Paid!


add outputBasePath option

I've noticed that output files are depend a lot on file structure of jade files, and i'd like to do not care about relative path too much and use just absolute path to all assets served as static files. This PR makes it possible to use absolute routes to static files in jade templates independently to the folder structure of views. When I tried to use just outputRelativePath: '/' Jade files have been updated correctly but all resulting JS files went to the wrong folder.
Now if I set
outputRelativePath: '/',
outputBasePath: __dirname,

this will push all static files into the __dirname instead of the system root.
(Issue has been noticed in docker environment)

still need this @anotheri

@niftylettuce well, i'm using adjusted copy of the module, but yeah, it'd still be helpful. :)

@anotheri see v1.1.2 in NPM - if you have any issues please let me know.  Also if the Readme is incorrect or needs updated please send a PR.  Thanks!


ci: add codeclimate config

Description
Add .codeclimate.yml config to project root.

I think we can close this. We are not using this tool anymore


Game-compatibility.md is removed

Why did Game-compatibility.md get removed from wiki? I know that someone used this table, so what is intent of doing so? Is there any alternative source of such information?

I removed the compatibility list because it turned out that more than half the games listed there do not actually work with DXVK, either due to major bugs or missing features. I'm not okay with falsely advertizing support for games which are not playable without major issues.

@doitsujin so DXVK isn't stable enough for now to recreate this table? I mean that is that because some games can stop working between DXVK versions or you just don't have time to recreate table in the right way?

https://ethercalc.org/1d9vtis8r2eb

@xunto: Feel free to update and submit fixes to this list. It references testing context rather than simply a game.

@xunto My main issues with  compatibility list are:

it needs to be maintained and updated (like the Far Cry 5 rendering issues listed in the GoL wiki - I fixed those over a month ago)
the games on there need to be thoroughly tested. Claiming that games like Sleeping Dogs are "compatible" when in fact it doesn't even start is straight-up false advertizing.

The list we had in the wiki was actually not my own doing but the courtesy of someone else, but it listed a lot of games that are completely unplayable or had major stability issues. Also, a Markdown table is fairly limited in what it can express,. so it wasn't exactly a suitable format.


Feat/bicep refactor multitenant secure baseline

Description

Thank you for your contribution !

Please include a summary of the change and which issue is fixed.
Please also include the context.
List any dependencies that are required for this change.

Pipeline references

For module/pipeline changes, please create and attach the status badge of your successful run.

Pipeline

Type of Change
Please delete options that are not relevant.

[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update to documentation

Checklist

[x ] I'm sure there are no other open Pull Requests for the same update/change
[ x] My code follows the style guidelines of this project
[x ] I have commented my code, particularly in hard-to-understand areas
[ x] I have made corresponding changes to the documentation (readme)
[ x] I did format my code

Hi @torokzs , thanks for your feedback.
I have made some changes look details below:
○ Application name misleading - Resource name suffix would be better

Agree, it is misleading. I changed to workloadName to match the ASE scenario as well

○ I feel Numeric Suffix unnecessary and also Environment can be merged

we are following this naming convention, and we use the naming module (in ASE Scenario as well), so the suffix is an optional parameter, which for Bicep is ok (is hidden somehow), but unfortunately it cannot be excluded from the ARM template, and it is surfaced as optional param. The same is for environment. I think we need not to deviate from ASE scenario and basic naming convention principles.

○ Both Region and Location is there
I don't have a way to avoid that :( Region is automatically inserted (it's not in the template but plays the role of the region/location param in the _az deployment sub create ... _ ). the param location is required in the bicep and of course ARM template. I added default value for the location, to take its value from the deployment().location, aka Region
○ If there is an existing Hub, then vnetHubAddressSpace need to be mandatory?

no it's not, I fixed param's @description. Done that also for subnetHubFirewallAddressSpace and subnetHubBastionAddressSpace

○ Let's clarify what Enable telemetry is doing - Microsoft.Resources/deployments@2021-04-01

We use that across every LZA, we actually keep track of who uses the LZA

○ No info on adminUsername and adminPassword that they needed for jumphost

fixed @Description

○ Sql Admin Password is string not a password. No validation for the complexity. After unsuccessful SQL there is no App service and no Front Door, I would change the order.

it is defined as securestring, not as simple string. Complexity is difficult (if not impossible) to check at that level, if you have any idea on how that could be done I would appreciate it. I added a link to password policy complexity in the @description (template tooltip). Ordering is difficult to change because, AFD has a dependency on Azure App Service (to set origin) and App Service has implicit dependency to SQL Server I assume because it sets connection string in keyvault, and in app service configuration as a keyvault reference.

○ For better user experience I would separate Redis, SQL, Jumphost, etc. deployment decisions

let's discuss, because I believe, for bicep grouping all these features together is more readable. The ARM template is automatically created out of the bicep deployment file, and the Portal has simple text field to present multiline json text, which I agree it doesn't look nice....

○ Multiple slots cannot be deployed when Basic SKU selected: "Cannot complete the operation because the site will exceed the number of slots allowed for the 'Basic' SKU."

good catch!, fixed that ;)

Regarding to the further steps:
○ AFD endpoint retrieval command doesn't find AFD. Do we really need AFD endpoint retrieval in this way since all the 3 parameters can be retrieved from portal more easily anyway. Do we even need the endpoint url?

you are right, I think we only need the 3-4 lines of script under the section 'Approve the App Service private endpoint connection from Front Door in the Azure Portal'

○ What about the staging slot endpoint approval? Can we automatize endpoint approval? Do we need it since both staging and prod endpoints approved already?

Currently I reckon using a web app deployment slot as origin in AFD is not supported. https://learn.microsoft.com/en-us/answers/questions/1179488/azure-frontdoor-premium-support-webapp-slots

○ Documentation mentions to connect to devops VM, but there is no devops VM and there are no details why to connect. The command doesn't work for me:
The command failed with an unexpected error. Here is the traceback:
cannot import name 'WinDLL' from 'ctypes' (/opt/az/lib/python3.10/ctypes/init.py)

you need to connect to the jumpbox (devops) VM if you wish to access internal/private resources, deploy code to resources etc. I have changed the documentation, I believe AAD Join is not possible for<EMAIL_ADDRESS>accounts. I assume you got those errors because you ran az network bastion rdp command from a bash shell, possibly? I think it needs to run from a windows terminal (cmd or PowerShell)

@thotheod  thank you, will you be oaky to resolve final merge conflict so we can get this branch closed :)

@thotheod thank you, will you be oaky to resolve final merge conflict so we can get this branch closed :)

Hey @kunalbabre , I just resolved the conflicts. I think we are good to merge.


Converting Seurat object to loom format

Hi all,
I am trying to convert a Seurat object to a loom file in order to do a more comprehensive analysis in Scanpy. However, I am running into several issues (yes, I have gone through all the previous posts with these issues and tried all the suggestions). I am using the latest Seurat and Scanpy, as well as latest versions of all dependencies. The following are my issues:
When using the as.loom function, I am able to successfully generate a loom file. When inputting into Scanpy, I first get the error "column index exceeds matrix dimensions".
Using suggestions from others, I removed the graphs slot in the original Seurat object and remade the loom file and ran it again. Only to get an error stating that "data must be 1-dimensional".
I have updated all my versions of every dependency, and honestly I am at wit's end trying to figure this out and get an analysis completed asap for my PI.
Any help and insight would be greatly appreciated. Thanks!

Hi,
Before posting an issue, it is good to check what issues have already been posted. This is being discussed in #598, and the same issue is also reported in #649. I would look there. I'm not sure this has been solved for everyone though, but there is a workaround there I think.

Hi,
I did have a look at those threads and the issue was more or less unresolved. I am actually in the process of trying your suggestion right now. Will update in a bit if it works! Thanks!

Can you open the Seurat saved loom file using loompy in python? That would allow you to check that you have a properly formatted .loom file.

Hi @fidelram, I have the same issue and I can successfully open the .loom file with loompy.
>>> import loompy
>>> mouse = loompy.connect("/home/AD/praposo/mouse_3.loom")
>>> mouse[: , :]
array([[1., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 2., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]])

So it suggests the problem lies in scvelo, I guess. What do you think?

Can you post this as an issue in AnnData (
https://github.com/theislab/anndata) documenting that you can open the loom
file with loompy? That would be the right place to address this.
On Thu, May 23, 2019 at 12:16 PM PedroRaposo<EMAIL_ADDRESS>wrote:

Hi @fidelram https://github.com/fidelram, I have the same issue and I
can successfully open the .loom file with loompy.

import loompy
mouse = loompy.connect("/home/AD/praposo/mouse_3.loom")
mouse[: , :]
array([[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
...,
[0., 0., 0., ..., 2., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.]])

So it suggests the problem lies in scvelo, I guess. What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/theislab/scanpy/issues/652?email_source=notifications&email_token=ABF37VLPGQD3E3V22ZVU3ILPWZVIZA5CNFSM4HNP4AJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWBYLPI#issuecomment-495158717,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABF37VJKVSSGN5CM6AJSBG3PWZVIZANCNFSM4HNP4AJQ
.

--
Fidel Ramirez

Btw, I wrote a quick example for how to go between Seurat objects and AnnData in a jupyter notebook using anndata2ri. You can find it here

Hey guys,
So I finally got around to testing the code using anndata2ri posted by @LuckyMD and it works really well! The only issue is you can do your Seurat analysis in Jupyter notebook up until RunUMAP (Seurat). If you try to run the Seurat RunUMAP command in the Jupyter Notebook, it crashes (at least on my laptop). Other wise, works really well to convert to AnnData. Thanks!!!!

Sounds like it runs out of memory, no?
I’m happy that my anndata2ri works for you!


Permissions Popups

Your Environment

Plugin version: 4.2.1
Platform: Android 11
Device OS version: Motorola G9 Plus
Device manufacturer / model:
XCode version:
Capacitor info (npx cap doctor)
Plugin config provided to #ready:

Expected Behavior
Just one geolocation permission popup before start location service
Actual Behavior
Currently the app displays 3 popups in android 11 and 2 in android 10, Allow App_Name to access this device's  location?, Allow App_Name to access your physical activity? and Allow App_Name to access to this device's location in the background?
Steps to Reproduce

Context
I need minimum number of geolocation permission popups. Is there a way to reduce the number of these popups?

Is there a way to reduce the number of these popups?

No.


Update to sshlib 2.2.15

Thank you for fixing this. These fixes are critical for many users to be able to use the client.
It's been almost a year since the last update. Please consider releasing a client update which identifies it contains the fixes through Google Play. If there is something preventing use of Google Play please an alternative such as F-Droid or as last resort a side load build would make use possible again.

There is an update pending, but it causes errors using Ed25519 on some
devices which appear to have a broken ART implementation. I was working
with the implementors of the crypto library to figure out what is happening.

Please excuse the process ignorance. Is there a way try that pending update to see if it works on my One Plus 7T?
So far all I've found that git-v1.9.7-36 or later on the github releases download page should have the fix but there seems to be no description any where on what the difference is between the OSS and Google versions of the APK is.
Is one signed for Google Play and the other for F-Droid or some other market?

One is for devices that have Google Play Services ("Google") and the other
("oss") doesn't need Google Play Services. There is a slight size penalty
for not being able to use Google Play Services, but they are otherwise
equivalent.

Wondering if this solves my issues connecting to Mikrotik devices...
Would you be so kind and check to connect to<EMAIL_ADDRESS>(without password)? Thanks a lot!


fix: Enable unprivileged ports sysctl in containerd config

What problem does this PR solve?:
Spotted this issue again when testing vSphere install/upgrade with Kubernetes v1.29.5.
Similar to https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/pull/645, but solving it here to handle the more generic case of so it can be picked up during upgrades without needing to add complicated preKubeadmCommands update logic in Konvoy2.
This enabled pods to run as non-root and bind to privileged ports as long as they have the necessary capability, CAP_NET_BIND_SERVICE added.
This fixes an issue on AWS when bringing up coredns which binds to port 53 but runs as an unprivileged user.
Overall this is a net security improvement for clusters, meaning users can stop giving too many privileged to pods - see
kubernetes/kubernetes#102612 for discussion.
Which issue(s) does this PR fix?:

https://jira.nutanix.com/browse/NCN-100169

Special notes for your reviewer:

Ran the konvoy2 e2e test https://github.com/mesosphere/konvoy2/actions/runs/9370800641
Does this PR introduce a user-facing change?:

Ran the vSphere build https://github.com/mesosphere/konvoy-image-builder/actions/runs/9370058290


Inbound Parse Webhook element type error

https://sendgrid.com/docs/API_Reference/Webhooks/parse.html
dkim value is not a JSON string. I've seen the following invalid values:

"dkim"<EMAIL_ADDRESS>: pass}"
"dkim": "none"

Notice in the first example, it's JSONish, but it's not properly encoded (missing quotes around key and value) thus any attempt to parse the string as JSON will fail.

Hello @secesh,Thanks for your suggestion or question! In an attempt to clear out our backlog,                                              we are closing out issues over 90 days old.                                             If this is still an issue, please feel free to reopen it.                                             Team SendGrid DX-Docs


Fix/make the plugin work without custom data dir

The pull request (#2) by @jtzero didn't fix the plugin for me, but it contained some improvements I liked. So I continued on his version.
With sourcing "${ASDF_DIR}/lib/utils.bash" you get the asdf_data_dir function, so if this variable is not set (in @jtzero's case) it will contain the proper default.
Also added a functional test and changed the lint check to be the same on macOS and linux.

Wow, @delgurth - I apologize and somehow I missed this PR. #7 was merged which seems to fix part of this, but here are some additional changes here that seem relevant to incorporate. I'm not sure if you time to rebase/update. If not, I can have a look at integrating these changes in the next few days hopefully.

@delgurth - I revamped the repo and incorporated most of the changes you had in this PR. Thank you and sorry for delay.


Docker volume ":z" option

Good day, ladies and gents
I'm curious if it's really not possible to pass docker volume ":z" option or I'm just stupid?
Thanks

Mesos doesn't support SELinux Docker volume modes yet, see: https://issues.apache.org/jira/browse/MESOS-3776

Ok, thanks for the answer. Looking forward :)


Having issue to integrate postal with clamav

I already setup clamav.
The problem is whenever I set
clamav:
enabled: true
host: <IP_ADDRESS>
port: 2000
In my log /var/log/mail.log
I will get this error amavis[2261]: (02261-01) SMTP: 500 5.5.2 Error: bad syntax; detail you can see on my screenshot attach.
When this happen virus will be send to email without being filter/block.
I'm stuck. Hope I can get help from you guys.
Thank you.

You are using amavis but not pure clamav. This is the cause.

Ok will change to pure clamav. Thank you very much.


Error on The Time Machine example

Using the Compute Solution button on [039] The Time Machine yields the error 'RuntimeError: unreachable executed'

Thanks for the issue! Can reproduce in the web-app. TL;DR: I guess the app runs out of memory, but I'll publish a patch to make it use less memory at the cost of a little performance.
The rust-crate does solve The Time Machine, but it definitely takes the longest time to solve out of all the example puzzles. It does take fewer moves to solve than some other puzzles, but its search-tree has way higher branching-factor than the others, because:

The Time Machine has many (8) blocks, all of which are different shapes, so we can't exploit any symmetry among them.
The Time Machine has a lot of free space, so in every move, we can move a lot of different blocks to a lot of different positions.

Contrast this with e.g. Royal Escape: This takes more than twice the amount of moves to solve, and has 10 blocks, but has way less free space, and has only 3 different shapes of blocks (meaning we can exploit a lot of symmetry). Yet, Royal Escape can be solved in less than a second.
I ran some experiments in which I used a data structure that needs less memory than the current one, and was able to solve the puzzle in the web-app that way. The new, smaller data-structure means that puzzles with a very high degree of shape-symmetry (e.g. the 7 short horizontal pipes in Sliding Pipes) will be a little slower to solve: Benchmarks say something like 24% slower for Sliding Pipes, and it'll be the same for every puzzle that has a block-shape with more than 4 blocks of that block-shape. Thankfully, most puzzles don't have such a shape, and those who do automatically have such a high degree of symmetry that they're fast to solve, anyway.
Thanks again for the issue!


⚡ Dynamic Memory Management

WIP of my Guided Research work to optimize the dd package in terms of memory management etc.

Closing this PR as this repository will be archived soon. The DD package then fully lives at https://github.com/cda-tum/mqt-core (previously MQT QFR).


Complete README

Once the documentation is ready and we've settled on a name and location for the API docs, the README (and homepage in package.json) should be updated to point there.
(Or alternatively, we should create an issue about moving the API docs, and make sure that "update the README" is in there.)

Fixed by 3a5c808618626c0844cad768ec49f163b76ad496.


Spelling check should automatically ignore URLs in comments

URLs in comments should be exempt from spelling check.

Adding words to dictionary doesn't work because fragments in URLs are not valid words
Adding suppression doesn't work because it will suppress the whole comment which may contain spelling errors.

Example:
/// <summary>See http://foo/bar for detals</summary>
Both "foo" and "bar" are not spelling errors, but "detals" is a typo of "details".

I'm not aware that there is spell checking in StyleCop.Analyzers.  If you still think this is the correct product, please provide more information about what errors or warnings that you get and what version you are using.

@bjornhellander is correct. The spelling check was omitted from StyleCop Analyzers in favor of allowing users to choose a suitable alternative that best meets their needs (e.g. an IDE extension or other standalone analyzer option).


Let the jukebox run with root mounted read-only

To avoid corruption due to sudden power loss and to reduce write wear on the sd card it would be good to have the system run on a read-only mounted root.
This is not a feature request - I'm already working on this.

Hi @ralle12345
thanks for the input, I'll leave this thread open for your suggestions and discussions.

hey @MiczFlor
I started digging around to find out which directories need to be writeable for the jukebox to work.
It turns out it's just the playlists dir and the shared dir.  My first solution was to mount a different partition of the SD card to media/ and link those directories to subdirectories there like in the tree output below.
pi@Jukebox:~/RPi-Jukebox-RFID $ tree -d
.
|
├── media
│   ├── playlists
│   └── shared
│       ├── audiofolders
│       │   ├── audio1
│       │   └── audio2
│       ├── lost+found
│       └── shortcuts
├── playlists -> media/playlists
└── shared -> media/shared

While this solution works fine playing the audio files, a git status reports that the directories below shared have been deleted (since shared is now a symlink).
There is a workaround for this, but I don't know if it would be advisable to go that route: mount the r/w partition to shared and use a tmpfs for the playlists. PRO: easy to do, CON: If the jukebox runs for a while without reboot, the tmpfs could become quite big. As I don't have a jukebox running in real life scenario yet, I don't have a clue how big the playlists dir can become.
What do you think? Can you think of another solution?

That's nice to read. This was my idea to. I wait for your answers. If I am ready to work on my Version 2 of Jukebox, i will do add it in my Howto.
I find this Threas in german how to cufigurate the read only function
General Link Howto Read Only

I don't like the idea of the playlist folder which doesn't contain user servicable parts inside the shared folder as well. But how about the idea of moving it into a tmpfs?
Maybe we could install a cronjob to junk files not accessed for a certain amount of time to keep the tmpfs tidy?

The playlist folder is not big and only contains text files and no more than the numer of audiofolders on the jukebox. I will look into the possiblity to drop the playlist folder alltogether - but will need to run some tests.

Considering that the playlist folder ist not that big I think I'll go for a tmpfs for it and have it cleaned from old cruft by systemd. I hope to have the pull request early next week.

Hi @ralle12345 please read this before you start :)
To get rid of the playlist altogether, you need to change only a few lines in this shell script:
https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/master/scripts/rfid_trigger_play.sh.sample
At the bottom of the file, the last lines, try to replace this:
    then
        # write playlist to file using the same name as the folder with ending .m3u
        # wrap $PLAYLIST string in "" to keep line breaks
        find "$PATHDATA/../shared/audiofolders/$FOLDERNAME" -type f | sort -n > "$PATHDATA/../playlists/$FOLDERNAME.m3u"

        # first kill any possible running vlc process => stop playing audio
        sudo pkill vlc

        # now start the command line version of vlc loading the playlist
        # start as a background process (command &) - otherwise the input only works once the playlist finished
        (cvlc --no-video -I rc --rc-host localhost:4212 "$PATHDATA/../playlists/$FOLDERNAME.m3u" &)

        # NOTE TO SELF: can we get rid off writing a playlist if we play the folder as we do in the index.php?
        # Currently problem with whitespaces in folder name.
        # Also, keep in mind the use of stream URLs or YouTube in text files
        # (cvlc --no-video -I rc --rc-host localhost:4212 "$PATHDATA/../shared/audiofolders/$FOLDERNAME" > /dev/null 2>/dev/null &)
    fi
fi

with this
    then
        # first kill any possible running vlc process => stop playing audio
        sudo pkill vlc

        # now start the command line version of vlc loading the playlist
        # start as a background process (command &) - otherwise the input only works once the playlist finished
         (cvlc --no-video -I rc --rc-host localhost:4212 "$PATHDATA/../shared/audiofolders/$FOLDERNAME" > /dev/null 2>/dev/null &)
    fi
fi

And because you are working on this, you will also be testing if this solution works :) It will get rid off the playlist creation altogether. But I am not sure it works with webradio URLs or YouTube URLs in text files in the playout folder. That would be awesome if you could test it, too.
Good luck with the work. Make sure you catch all paths to the shared folder.

Hi @MiczFlor
I tested your changes. Local files work fine, MP3 links work as well.
$ cat ../shared/audiofolders/audio3/stream.txt
http://swr-swr3-live.cast.addradio.de/swr/swr3/live/mp3/128/stream.mp3

When I put a YouTube URL inside the same file vlc won't play it with neither the above code nor the latest from git.
When I start the vlc commandline generated by the new script, this is that I get:
$ /usr/bin/vlc -I dummy --no-video -I rc --rc-host localhost:4212 /home/pi/RPi-Jukebox-RFID/scripts/../shared/audiofolders/audio3
VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c)
[010b5938] pulse audio output error: PulseAudio server connection failure: Connection refused
[010c5160] core interface error: no suitable interface module
[0101e400] core libvlc error: interface "globalhotkeys,none" initialization failed
[010c5160] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[010c5160] core interface error: no suitable interface module
[0101e400] core libvlc error: interface "dbus,none" initialization failed
libdvdnav: Using dvdnav version 5.0.3
[010d0d10] [cli] lua interface: Listening on host "localhost:4212".
libdvdread: Encrypted DVD support unavailable.
************************************************
**                                            **
**  No css library available. See             **
**  /usr/share/doc/libdvdread4/README.css     **
**  for more information.                     **
**                                            **
************************************************
libdvdread: Couldn't find device name.
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFilePath:findDVDFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[010b89c8] core playlist: stopping playback

vlc just sits there until it is interrupted.
When I change the commandline to include the file the output changes to show that at least vlc has recognized the youtube link:
$ /usr/bin/vlc -I dummy --no-video -I rc --rc-host localhost:4212 /home/pi/RPi-Jukebox-RFID/scripts/../shared/audiofolders/audio3/youtube.txt
VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c)
[0064c938] pulse audio output error: PulseAudio server connection failure: Connection refused
[00667910] core interface error: no suitable interface module
[005b5400] core libvlc error: interface "globalhotkeys,none" initialization failed
[00667910] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[00667910] core interface error: no suitable interface module
[005b5400] core libvlc error: interface "dbus,none" initialization failed
[b2004930] es demux error: cannot peek
[b2004930] es demux error: cannot peek
[00667910] [cli] lua interface: Listening on host "localhost:4212".
[b2008038] core demux error: option sub-original-fps does not exist
[b2000510] core input error: no suitable demux module for `file/subtitle:///home/pi/RPi-Jukebox-RFID/scripts/../shared/audiofolders/audio3//youtube.txt'
[0064fa30] core playlist: stopping playback
[b3d41e58] lua demux error: Couldn't process youtube video URL, please check for updates to this script
[0064fa30] core playlist: stopping playback
[0066bec0] http access error: error: HTTP/1.1 403 Forbidden
[0066bec0] http access error: error: HTTP/1.1 403 Forbidden
[b200eb20] core input error: open of `https://r4---sn-oxujvavbox-jbol.googlevideo.com/videoplayback?itag=22&mn=sn-oxujvavbox-jbol%2Csn-5hne6nsk&mm=31%2C29&mt=1524599963&c=WEB&pl=15&dur=385.404&ms=au%2Crdu&initcwndbps=992500&mv=m&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&source=youtube&fexp=23724337&ratebypass=yes&lmt=1517631893790149&requiressl=yes&key=yt6&ip=<IP_ADDRESS>&ei=xIzfWv7_Jo3E1gLOrqGQAQ&expire=1524621604&mime=video%2Fmp4&id=o-ALq9T8o1gJU1gJqAV8pgaWe70dnfivtzFoe3QHWXLIs0&fvip=2&ipbits=0&signature=0D94AB35250C757CF43EB5253D8329BD993D61BD.C9A9C0B578B69989838AC24A1040FF5D660F37101A' failed
[b200eb20] core input error: Your input can't be opened
[b200eb20] core input error: VLC is unable to open the MRL 'https://r4---sn-oxujvavbox-jbol.googlevideo.com/videoplayback?itag=22&mn=sn-oxujvavbox-jbol%2Csn-5hne6nsk&mm=31%2C29&mt=1524599963&c=WEB&pl=15&dur=385.404&ms=au%2Crdu&initcwndbps=992500&mv=m&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&source=youtube&fexp=23724337&ratebypass=yes&lmt=1517631893790149&requiressl=yes&key=yt6&ip=<IP_ADDRESS>&ei=xIzfWv7_Jo3E1gLOrqGQAQ&expire=1524621604&mime=video%2Fmp4&id=o-ALq9T8o1gJU1gJqAV8pgaWe70dnfivtzFoe3QHWXLIs0&fvip=2&ipbits=0&signature=0D94AB35250C757CF43EB5253D8329BD993D61BD.C9A9C0B578B69989838AC24A1040FF5D660F37101A'. Check the log for details.

The same error is generated when using the old script, so it doesn't seem to be caused by the changes.
This is with the latest vlc (revision 2.2.6-0-g1aae78981c) from the debian repos.
To avoid misconceptions: The stream.txt was moved out of the directory before testing the youtube.txt.

Hi all,
for bigger MP3 Collections mounting is a good way. At the moment I'm playing around with 20 Files and it is annoying. In the working Version, it shoud be possible to use a NAS share or something else for the Audiofiles. It's not a good Idea to store Radio dramas or Audiobooks like "Harry Potter" or "The Hitchhiker's Guide to the Galaxy" on the SD Card. In Germany almost every Router (most of them FritzBox) has a NAS Feature in it...

Hi @Luegengladiator @ralle12345
I think a good, hands on documentation on how to set up the Phoniebox with a NAS share would be good. I would not want this to be part of the overall install process. It would complicate matters and I rather see this as an expert's addition. The original core of this repo should be as simple as possible.

Hi @ralle12345
do you have a status update on this? The code base has moved on and we might need to discuss what needs to be done to support your quest.
All the best, micz

Hi @MiczFlor
I got distracted by other projects :(. I will git pull these days and test my draft on a new SD card. After that I'll open a PR for it.

No rush, just wanted to check in, if you are still in the orbit. We don't have a deadline to meet :)


[Azure] Checking allow rules for GetPermitList

GetPermitList checks if a rule is an allow rule before converting to Permit List
However, it did this by checking if the prefix of the name is "paraglider...".
For attached resources, the name of the rule may not conform to paraglider naming requirement
Changing this to use the rule's access property

@smcclure20 If you could check this out, that'll be great


Make msvc compile and improve CI

Fixes #200 breaking msvc.

Also resolves #217

Chances are it was the GPT2 download, maybe I didn't stare at the log hard enough... but:
https://status.huggingface.co/

Of course you're right. This is why #215 failed:

Still, so far it's one less download costing just 1M ... and it fixes msvc compile.
Should I move all the output .bin files to data/ too? Currently they clutter the root.

I don't want to clutter the repo with shakespeare if we can avoid it. It's a pet peeve to git clone a repo and have to wait long seconds/minutes for the download.

Let's not move the bin files right now, let's try to keep this PR focused and minimal

Impressive that this repo is still under 2M, including all history. New PR incoming.


How can I make the profile persistent?

Hi there,
I am on the following system:
Operating System: Kubuntu 20.04
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
Kernel Version: 5.11.0-41-generic
OS Type: 64-bit
Processors: 8 × Intel® Core™ i5-10210U CPU @ 1.60GHz
Memory: 14,9 GiB
and have just installed the script and it works up until a reboot.
I have tried added the service as suggested here. However, I do not get the pre-reboot-status that I want.
Do u have any idea on how to get this to work?
all the best,
K

The keyboard does not have the ability to save the settings, that was the reason i wrote this script.
Just run the script on boot or when the keyboard is plugged in via udev rules.


Finish the conversion to the parametrized Fedora v2 manifests

org.osbuild.keymap stage was fixed to work with newer Fedora versions
the authconfig stage test now runs on CentOS Stream 9, because Fedora no longer ships authconfig

Otherwise, this is pretty boring. At the end of the PR, the Fedora 34 manifests are gone.
There are still some non-Fedora based manifests in the repo that would benefit from converting to something more sustainable, but this is out of scope for this PR.

I'm closing this because the continuation of this (https://github.com/osbuild/osbuild/pull/1441) has landed. Please reopen if I missed something and this should actually not have been closed.


Order Detail Page

Whats the json equivalent of the order detail page? I am passing order timestamp in the  ISO 8601:2004 format to parameter value 'date_created'. Although its getting recognised, its coming under total price field which is weird. Please help. I am unable to fetch data for the total price field.

Created a PR with the fix. Please review.


missing vaultaddr parameter

Currently running the docker-compose verbatim on an EC2 instance for testing purposes.
After successful unseal, attempting to connect to Vault using the EC2's private ip address (security groups are not an issue here where <IP_ADDRESS> is the private ip of the EC2 instance).
Getting error:
$ vault login -address=http://<IP_ADDRESS>:8000
Token (will be hidden):
Error authenticating: error looking up token: Error making API request.

URL: GET http://<IP_ADDRESS>:8000/v1/auth/token/lookup-self
Code: 400. Raw Message:

missing vaultaddr parameter

The same is noted from the browser on http://<IP_ADDRESS>:8000/v1/auth/token/lookup-self of course

The docker-compose example isn’t designed to be run in production.  It’s meant to serve as an exmple.  Each service in the docker-compose.yml should be in its own cluster in practice.

I guess to be a little more clear I just mean this project is meant for someone to run on their laptop and try out Consul and Vault in a HA configuration.  As well as play with Consul DNS.


Global compactor makes hard-coded assumptions about minimum block size

When trying to debug why blocks were not compacting, I found that the global compactor makes a hard-coded assumption about the minimum block size, which can prevent blocks from being compacted within a timely manner.
This seems at odds with the --sync-delay compactor flag, which suggests that the minimum block size can be configured.

@fabxc @Bplotka: If you agree, I'm thinking we should repurpose --sync-delay to become --min-block-size and determine exponential compaction block sizes dynamically based on the minimum value.

Hmm.. so first of all --sync-delay has nothing to do with block size. It's only to ensure that we don't use ULID directory as soon as it is visible in object store, because we can hit partial block (upload not finished/propagated). Currently 30min is quite high, but there is no need to making it quicker. Also you can customize it.
Regarding compaction block ranges (called compactions levels), I think they are reasonable for general use. Min block size should always be 2h.
I can see your case for super small blocks. For 10m our compaction level will work, but compaction will be only after 2h (@fabxc am I not missing anything?) If you really want to introduce some other levels like 10m, 30m, 90m.. to compact eariler, maybe we can expose option for setting custom compact levels, but is it worth to implement automated logic based on min-block-size that rarely is different than 2h?

I'm really really wary of introducing any way to modify these parameters.
In Prometheus modifications to block ranges only exist as hidden flags for
a reason – because we only really want to use it for benchmarking where we
are artifically speeding up time.
In the grand scheme of things there's no reason to modify this. Even if
your initial blocks are smaller, they'll get compacted eventually – so
amortised, there's no benefit to it.
If we open the doors for this in Thanos as well, people will modify it on
perceived grounds of performance improvements. And they'll certainly end up
in trouble down the line when they start changing it in incompatible ways.
On Thu, Mar 29, 2018 at 11:39 AM Bartek Plotka<EMAIL_ADDRESS>wrote:

Hmm.. so first of all --sync-delay has nothing to do with block size.
It's only to ensure that we don't use ULID directory as soon as it is
visible in object store, because we can hit partial block (upload not
finished/propagated). Currently 30min is quite high, but there is no need
to making it quicker. Also you can customize it.
Regarding compaction block ranges (called compactions levels), I think
they are reasonable for general use. Min block size should always be 2h.
I can see your case for super small blocks. For 10m our compaction level
will work, but compaction will be only after 2h (@fabxc
https://github.com/fabxc am I not missing anything?) If you really want
to introduce some other levels like 10m, 30m, 90m.. to compact eariler,
maybe we can expose option for setting custom compact levels, but is it
worth to implement automated logic based on min-block-size that rarely is
different than 2h?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/improbable-eng/thanos/issues/263#issuecomment-377181053,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEuA8oKrezccGOsVs8rVgmLP5FQiudICks5tjKvHgaJpZM4S-5b5
.

Hmm.. so first of all --sync-delay has nothing to do with block size.

Thanks, for clarifying; I incorrectly remembered the default being 2 hours rather than 30 minutes.
For the same reason as you say there's no need to make the sync delay shorter, I'm thinking it could be tied to the minimum block size (say, 2 hours, for the sake of argument). If the sync delay were determined according to the minimum block size, it could reduce the number of configuration options (and pave the way to making the minimum block size configurable).

Even if your initial blocks are smaller, they'll get compacted eventually – so
amortised, there's no benefit to it.

I disagree that there is no benefit. Until compaction occurs, Thanos will put more load on the block storage by requesting more blocks to service queries. Also, the memory usage required by the store instance will increase to accommodate metadata/index data for the additional blocks that would otherwise be compacted.

In the grand scheme of things there's no reason to modify this.

I understand if this isn't something you want to make configurable, though I think the documentation should make clear what the minimum block size is expected to be if it's not intended to be configurable (we could consider logging warnings in the compactor also). The minimum block size is configurable in Prometheus and other applications using the Prometheus TSDB library can use any minimum block size.

I think the documentation should make clear what the minimum block size
is expected to be

Yea, probably makes sense within Thanos if we assume there may be custom
writers. In the context of Prometheus, we just don't bring it up as this
will just make people dig how they can tweak it.

Until compaction occurs, Thanos will put more load on the block storage
by requesting more blocks to service queries.

Fair. I think of it as a constant cost that does not affect scalability
properties of the overall system. Increased resource usage is something to
be expected in one-off use cases, but I understand that it's not exactly
desirable.
What we could do is add another level, e.g. 1 hour, into the hard-coded
compaction ranges. This will make your 10m blocks get compacted earlier but
won't have any effect on regular 2h blocks. There's no particular downside
to that I think and it doesn't add any configurables.

The minimum block size is configurable in Prometheus

It's definitely not intended to be configurable. It's meant as a
debugging/benchmarking knob and therefore even hidden in the --help output.
Thanos had to surface it unfortunately – but definitely not for the purpose
of setting it to anything but 2h – and it will luckily disappear again
after changes in Prometheus 2.2.1.
A 10 minute range by the way only makes sense if your sample interval is 5s
or lower.
On Thu, Mar 29, 2018 at 2:54 PM Matt Bostock<EMAIL_ADDRESS>wrote:

Hmm.. so first of all --sync-delay has nothing to do with block size.
Thanks, for clarifying; I incorrectly remembered the default being 2 hours
rather than 30 minutes.
For the same reason as you say there's no need to make the sync delay
shorter, I'm thinking it could be tied to the minimum block size (say, 2
hours, for the sake of argument). If the sync delay were determined
according to the minimum block size, it could reduce the number of
configuration options (and pave the way to making the minimum block size
configurable).
Even if your initial blocks are smaller, they'll get compacted eventually
– so
amortised, there's no benefit to it.
I disagree that there is no benefit. Until compaction occurs, Thanos will
put more load on the block storage by requesting more blocks to service
queries. Also, the memory usage required by the store instance will
increase to accommodate metadata/index data for the additional blocks that
would otherwise be compacted.
In the grand scheme of things there's no reason to modify this.
I understand if this isn't something you want to make configurable, though
I think the documentation should make clear what the minimum block size is
expected to be if it's not intended to be configurable (we could consider
logging warnings in the compactor also). The minimum block size is
configurable in Prometheus and other applications using the Prometheus TSDB
library can use any minimum block size.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/improbable-eng/thanos/issues/263#issuecomment-377225940,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEuA8rxQ8STzJwNQWkcDo3aiCMd_kPI-ks5tjNmcgaJpZM4S-5b5
.

It's longer than 2 hours - I ran a test for just short of 4 hours and no compaction occurred on 10-minute blocks. I don't have the info to hand now but can do more testing to clarify why.

@mattbostock interesting. They should compact exactly within 2h + sync-delay (30m) + 10m (single newest block).

If sync-delay was still 2h for your case -> it makes sense to not see any ~4h
Are these blocks from the same scrapers? Does they have same external labels?

Yea, adding extra 1h compact level sounds good.

What we could do is add another level, e.g. 1 hour, into the hard-coded
compaction ranges. This will make your 10m blocks get compacted earlier but
won't have any effect on regular 2h blocks. There's no particular downside
to that I think and it doesn't add any configurables.

That sounds like a good solution.

A 10 minute range by the way only makes sense if your sample interval is 5s
or lower.

The 10-minute block size was just a starting point; this particular writer is storing the TSDB data in a tmpfs long enough to ship the data to S3, so I kept the block size small to constrain memory usage and keep the delay in the samples appearing in queries to a minimum. It could be increased.
What's the formula you're using to determine the 5-second sample interval please?

@Bplotka:

Sync delay was 10 minutes (that might be too low in general, but I don't think that would prevent compaction from occurring in this case).

The data is produced by 45 workers consuming from Kafka (again, this is a pretty unusual use case to work with data from a legacy system while evaluating Thanos). There are no external labels set, so all blocks are considered to be in the same compaction group.

Related to your second point, the leveled compactor used by Thanos seems to assume that all blocks are produced by a single source (which makes sense for local compaction).

What's the formula you're using to determine the 5-second sample interval please?

It's not an exact science TBH science there are so many variables to it. Generally TSDB aims at creating chunks with ~120 samples each. Chunks are only created within the initial block. On compaction, the blocks' lists of chunks are just concatenated into bigger lists.
If your initial block size is too short, only a single small chunk may fit into it. This reduces compression efficiency, though at 60 samples you are getting relatively close to optimal already. But it also means that the index has to address more chunks, which a major part of the index file size is being used for.
This may of course also have impact on your queries then – though we don't have hard numbers as it's just one of many things factoring into it.
Overall the memory overhead of having bigger initial blocks is fairly reasonable, i.e. doubling initial block size may only raise memory consumption by 10-20%. Thus I'm fairly firm on people just using the standard 2h in Prometheus itself since it works well for anything from 10s to 2m scrape intervals.
Regarding the delay in compactions happening: the 2h window we have right now is slotted to the unix timestamp. So it may take longer than 2h for have the right 2h slot fully populated with smaller blocks. "Just short of 4h" is about the maximum time it would take to reach that point. So I'd not worry about it as long as compactions started happening eventually.

Related to your second point, the leveled compactor used by Thanos seems to assume that all blocks are produced by a single source (which makes sense for local compaction).

Yea, and this is true for Than1os as well. We aggregate these into separate groups before running vanilla TSDB plan and compact