Question - tailwind + create react app

Just wondering if you have seen that tailwind say in this link that they don't reccomend create-react-app with tailwind. I'm not too familiar with the ins and outs of how it works so wondering if you could shed some light on this please :) Also thanks for this repo, its looks very encompassing!
https://tailwindcss.com/docs/guides/create-react-app

create-next-app  is what you really want to use.  I know, slightly bias but here's why.  Next.js is built on React and allows us to optimize when data is processed/retrieved/rendered..etc.  Example: Instead of waiting for the JSx to load, then render the page, Next.js allows for prerendering on the serverside, then simply hydrating.  Much faster.  It's really easy to make the switch.  "https://tailwindcss.com/docs/guides/nextjs"

most of the pages are broken eg https://mosaic.cruip.com/signin

Just release next js version with typescript support
https://github.com/robbins23/admin-dashboard-nextjs-typescript-daisyui


CSS File Download option.

I need the precompiled CSS file, bootstrap-email.min.css for example.

@SteloNLD can you tell me more about how you would use a precompiled CSS file without the rest of the library?

@stuyam most of my Powershell scripts send email messages to the Servicedesk, Systems Administrator, Users and or Managers
For the styling i use BootstrapForEmail
While it still works great the last update for this file was on Sep 18 2012, so i am looking for a alternatieve.

I'd like the raw css as well, we're using node.js in Azure Functions and really only need to include the base classes that we can edit down if necessary.  I'd be happy to work on a node solution for this, but would need to understand more about what is required.

Hi, I want same : compile to an html, which I can use as a template. Not from ruby.
It's possible?

@verysimplenick you can use the editor on: https://bootstrapemail.com/editor
It allows you to do just that, past in your bootstrap html and have it come out ready for email 👍

As for getting raw css, the library wasn't built for that. The library works by compiling regular html into email friendly html. That includes converting some elements into tables, inlining css into elements, etc. If you just want to convert a simple template using this you can use the bootstrap email editor that runs bootstrap email compiler and can give you the raw html: https://bootstrapemail.com/editor
@graham-sportsmgmt yeah I would like to have implementations that work on more platforms and haven't gotten around to it yet. It would be awesome to make something that was 100% node that could run in something like rails or something else but haven't found anything to accomplish that. So the implementation is just for ruby on rails for the time being.


Float64 dtype variable is created by nolearn

I have this warning when trying to run a simple network:
lib/python2.7/site-packages/nolearn-0.6a0.dev0-py2.7.egg/nolearn/lasagne/base.py:472: UserWarning: You are creating a TensorVariable with float64 dtype. You requested an action via the Theano flag warn_float64={ignore,warn,raise,pdb}. accuracy = T.mean(T.eq(predict, y_batch))

The input is numpy.float32, the target variable is uint8 and an identical network created only in Lasagne does not raise this error.
This is the nolearn network definition:
def perform_nn_nolearn(data_train, label_train, data_test, label_test):
def regularization_objective(layers,*args, **kwargs):

    target = kwargs['target'][:,np.newaxis]
    kwargs['target'] = target
    losses = nolearn.lasagne.objective(layers,*args, **kwargs)
    return losses

class Custom_TrainSplit(object):
    def __init__(self,test_data, test_labels):
        self.test_data = test_data
        self.test_labels = test_labels

    def __call__(self, X, y, net):
        X_train, y_train = X, y
        X_valid, y_valid = self.test_data, self.test_labels
        return X_train, X_valid, y_train, y_valid

no_feats=data_train.shape[1]
batch_size = 32

nn_layers = [
    (lasagne.layers.InputLayer, {'shape': (batch_size, no_feats)}),
    (lasagne.layers.DenseLayer,{'num_units': 1, 'nonlinearity':lasagne.nonlinearities.sigmoid})
    ]

net = nolearn.lasagne.NeuralNet(
    layers=nn_layers,
    max_epochs=1,
    objective_loss_function = lasagne.objectives.binary_crossentropy,
    update=lasagne.updates.nesterov_momentum,
    update_learning_rate=0.01,
    update_momentum=0.9,
    objective=regularization_objective,
    regression=False,
    use_label_encoder = False,
    batch_iterator_train=nolearn.lasagne.BatchIterator(batch_size=32),
    train_split=Custom_TrainSplit(data_test,label_test),
    verbose=2
)

rez = net.fit(data_train, label_train)
nn_pred_proba = net.predict_proba(data_test)
print "Network output shape: {}".format(nn_pred_proba.shape)
return nn_pred_proba

The warning is raised when starting fit() but before the network statistics. Also, there is a long list of warnings, from theano/compile to lasagne/objectives. I isolated the one regarding nolearn because, again, an identical network+data runs without warnings in "pure" lasagne.

The provided snippet looks quite innocent, the only suspicious part for me is the regularization_objective. It is not quite clear to me what you want to achieve there. Is it possible that somehow, target ends up being the wrong dtype? The offending line seems to be this one, maybe you could jump there and check the dtypes of predict and y_batch?
Another thought: If you turn off the check, are there any problems?

I try to make a 2 class logistic regression. That is, the output should be the probability of the instance as being labelled 1. So my labels are an nparray of shape (n,) In regularization_objective I just make it of shape (n,1), that is, a column vector. Afaik this is the format required by lasagne.objectives.binary_crossentropy (I have errors if I let the target array be a vector).
In .theanorc the float64 is set to warn. Of course, setting it to ignore will make the warnings go away. The code runs either way and gets me some trained network
How can I check/output the type of a theano variable? Can you give me a snippet? I guess that I should use theano printing, but how?
Thanx!

A simple .dtype should be sufficient.
But my impression is that you could actually ignore the warning without any repercussions.

Hi! I put some printing around:
def regularization_objective(layers,*args, **kwargs):
    ....
    print "Target.dtype:{}".format(kwargs['target'].dtype)
    losses = nolearn.lasagne.objective(layers,*args, **kwargs)
    print "Losses.dtype:{}".format(losses.dtype)

The results:
Target.dtype:int32
Losses.dtype:float64

Somehow mean() returns float64.
Again in theanorc the floatX is floatX=float32

Multiplying or dividing float32 and int32 results in a float64 in theano, which is why you see these results. Still, as long as it does not cause any trouble, I would just ignore it.

Ok, thanks!


CI for Node

✕ Contains the compiled JavaScript (15 ms)
  ✕ Initializes with two players (4 ms)
  ✕ Starts the game with a random player (1 ms)
turn
  ✕ Sets the current player to be whoever it is not (1 ms)


Allow to define the text background and border on inline marks (with a custom role)

Consider the following AsciiDoc document:
[.hello]#bonjour#

In the theme file, I want to be able to define the background color:
role:
  hello:
    background-color: #f0f0f0

It should also be possible to configure the border:

border-radius
border-offset
border-width
border-color

This is a duplicate of #1223.

Ooops, sorry about that 😅

No worries. You certainly worded it more clearly.


Initial setup of devcontainer development environment

Summary | Résumé
Initial setup of a VS Code .devcontainer setup
Create the devcontainer.json, docker-compose.yml and Dockerfile

Works great!


Change the robots meta to "noindex, nofollow" when the print format mode

✅ Resolves #27690.
I used the latest docsy/head.html of the upstream Docsy repository for this change.
How to check
Normal document page
Page preview: https://deploy-preview-27807--kubernetes-io-master-staging.netlify.app/docs/home/
Check if the following <meta> tag in <head>:
<meta name="ROBOTS" content="INDEX, FOLLOW">

The current pages contains the same tag on both the normal page and the print format page:

https://kubernetes.io/docs/home/
https://kubernetes.io/docs/home/_print/

Print format mode page
Page preview: https://deploy-preview-27807--kubernetes-io-master-staging.netlify.app/docs/home/_print/
Check if the print format page has a new "noindex, nofollow" meta tag like this:
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">

/assign @kbhawkey

/area web-development

/approve

(this is a bit hard to test except with a local preview, I think)

/approve cancel
@shuuji3 we need to make sure that Netlify previews of web pages (whether for print or not) don't get crawled.

👋 @shuuji3 .
Just checking on the status of this pull request?


Scrolling within an iframe does not seem to work

I have a web app that uses iframes.  The main content window is an iframe and I am triggering hopscotch from a button within.  When it needs to scroll down the page it initially starts to scroll, but the page content does not scroll with it.
You can see in my screenshot that the scroll bar does not span the entire page anymore.  It seems to have added in a bunch of white space that is not part of the page anymore.  My tour object is also below.  Nothing out of the ordinary I don't think.  There seems to be something I am missing with iframes.  Suggestions?

var tour = {
        id: "hello-hopscotch",
        showPrevButton: true,
        showNextButton: true,
        steps: [
        {
            title: "Number",
            content: 'This is the number.
OOB Number',
            target: "element.u_that_table.number",
            placement: "bottom"
        },
        {
            title: "State:",
            content: "Select a State in here.",
            target: "element.u_that_table.state",
            placement: "bottom",
        },
        {
            title: "Description:",
            content: "Here is where you add a description of the change.",
            target: "element.u_that_table.description",
            placement: "top",
            arrowOffset: 'center'
        },
        {
            title: "Work Notes:",
            content: "Here is where you add some work notes.",
            target: "element.u_that_table.work_notes",
            placement: "top"
        },
        {
            title: "Approval:",
            content: "This is the approval status.",
            target: "element.u_that_table.approval",
            placement: "bottom"
        }
        ]
    };

I see, step element is within a scrollable parent, so hopscotch tries to scroll body of the page, not the scrollable parent.  Here's updated JSFiddle that replicates the behavior http://jsfiddle.net/rm5k2ywk/
We could fix it either by providing scroll anchor for a given step or try to figure out the scrollable parent and scroll it instead of the body of the document. The second option might get complicated an messy when there are several nested scrollable parents, each of which needs to be scrolled.

I'm having the same issue. My parent element is a  which is not scrolled when I click on the next button, instead the body scrolls and leaves me with a blank screen by the third step.

I'm having the same issue. I wish each individual step object had an optional parameter to specify the scrollable container, instead of scrolling the body element.

Im running into same problem, im using the nicescroll to for an div element, the hopscoth is scolling on the body rather the div element.


Bogus signature help

SignatureHelp uses completions to get overloads, which results in methods with the same prefix name to get included.

Another case where signatureHelp produces bogus results
atom

vscode

We should consider not using completions for signatureHelp.

Metals doesn't support completions anymore. Completions may get added back in the future but for now I think it's best to close completion-related tickets.


How can I pass cookies between subdomains?

Is it possible to pass cookies between a.domain.com and b.domain.com? Seems this should work out of the box, but in practice it's not functioning that way.

Turns out this works perfectly on staging and prod. I was attempting to pass cookies around between a web server and a rails server using ngrok with no success, but once I test in prod everything's great.


[Bug]: Keeping --cpu=k8 on macos throws does not contain a toolchain for cpu 'k8'. Removing the cpu flag breaks cross-platform caching for remote builds with the same remote_host architecture.

What happened?
Since switching over from the native cpp toolchain to this hermetic one we have noticed that the execution root found under bazel-out changed from k8-fastbuild to darwin_arm64-fastbuild on local macos machines. This may not seem like an issue at the surface, but we also have CI which runs Bazel and in that case the host is still k8.
The effect of this is that CI & local runs no longer share cache hits because the pathing changes are included in cache keys. Additionally our remote workers see a change in the JDK from this pathing and that change causes workers to restart for no reason leading to churn and delays.
We suspect the root cause of this is from needing to remove --cpu=k8 --host_cpu=k8 when switching over to the new cpp toolchain. These flags appear to also impact the bazel-out pathing. Setting these flags with the new toolchain produces this error:
/private/var/tmp/_bazel_ted_tenedorio/544c8a90b96ef2c7562b61f1f903de27/external/local_config_cc/BUILD:28:19: in cc_toolchain_suite rule @local_config_cc//:toolchain: cc_toolchain_suite '@local_config_cc//:toolchain' does not contain a toolchain for cpu 'k8'.

Ideally we could make changes to this toolchain so that those flags can be used again.
Version
Development (host) and target OS/architectures:
Host: Macos - cpu = darwin_arm64
Target: Linux - cpu = k8
Output of bazel --version: 6.0.0
Version of the Aspect rules, or other relevant rules from your
WORKSPACE or MODULE.bazel file:
GCC Toolchain: aspect-build/gcc-toolchain/archive/refs/tags/0.4.2.tar.gz
rules_java: bazelbuild/rules_java/releases/download/0.1.1/rules_java-0.1.1.tar.gz
rules_kotlin: bazelbuild/rules_kotlin/releases/download/v1.7.1/rules_kotlin_release.tgz
JDK 11:
https://corretto.aws/downloads/resources/8.275.01.1/amazon-corretto-8.275.01.1-linux-x64.tar.gz
https://corretto.aws/downloads/resources/8.275.01.1/amazon-corretto-8.275.01.1-macosx-x64.tar.gz
Language(s) and/or frameworks involved:
CPP & Java/Kotlin. The issue is impacting all of caching though as it changes the bazel-out relative pathing.
How to reproduce
Run this on a macOS machine to see the bazel-out pathing of concern:
`bazel aquery //path/to/some/java_library/package --config remote`

And observe the `--output` field for the sourcejar:

action 'Building source jar path/to/some/java_library/package/package_lib-sources.jar'
  Mnemonic: JavaSourceJar
  Target: //path/to/some/java_library/package:package_lib
  Configuration: darwin_arm64-fastbuild
  Execution platform: @aspect_gcc_toolchain//platforms:x86_64_linux_remote
  ActionKey: 29ca9f15b7392f2feddf3804b63bae3341fa053f43482c2384bf630347b62682
  Inputs: [path/to/some/java_library/package/PackageSourceFile.kt, external/remote_java_tools_linux/java_tools/src/tools/singlejar/singlejar_local]
  Outputs: [bazel-out/darwin_arm64-fastbuild/bin/path/to/some/java_library/package/package_lib-sources.jar]
  ExecutionInfo: {OSFamily: Linux, container-image: REDACTED}
  Command Line: (exec external/remote_java_tools_linux/java_tools/src/tools/singlejar/singlejar_local \
    --output \
    bazel-out/darwin_arm64-fastbuild/bin/bazel/path/to/some/java_library/package/package_lib-sources.jar \
    --compression \
    --normalize \
    --exclude_build_data \
    --warn_duplicate_resources \
    --resources \

Notice how darwin_arm64-fastbuild is in the root:
bazel-out/darwin_arm64-fastbuild/bin/bazel/path/to/some/java_library/package/package_lib-sources.jar
Running the same command on a Linux machine produces:
bazel-out/k8-fastbuild/bin/bazel/path/to/some/java_library/package/package_lib-sources.jar
You can also run this to see the cpu flag error:
bazel build //path/to/some/java_library/package --config remote --cpu=k8 --host_cpu=k8
The remote config here is essentially:
--java_language_version=8
--java_runtime_version=remotejdk_11
--tool_java_language_version=11
--tool_java_runtime_version=remotejdk_11
--action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
--incompatible_strict_action_env=true
--incompatible_enable_cc_toolchain_resolution
--extra_execution_platforms=@aspect_gcc_toolchain//platforms:x86_64_linux_remote
--host_platform=@aspect_gcc_toolchain//platforms:x86_64_linux_remote
--symlink_prefix=dist/
--remote_timeout=3600
--jobs=1024
--remote_local_fallback=false
--compiler_warnings=off
--define=EXECUTOR=remote
--disk_cache=
--remote_download_minimal
--remote_default_exec_properties="container-image=REDACTED"
--remote_default_exec_properties="OSFamily=Linux"
--experimental_remote_mark_tool_inputs=true
--remote_default_exec_properties="dockerReuse=True"
--remote_executor=grpcs:REMOTE_URL
--remote_cache=grpcs:REMOTE_URL

### Any other information?

_No response_

Fixed by https://github.com/aspect-build/gcc-toolchain/commit/2d7e1039cba8f1d6e630e4ffa3694a08aec87055 and https://github.com/aspect-build/gcc-toolchain/commit/727fc04bd7a48a871db3382743328a71ec6888fa.


182 path prefix

Since this seems to work and solves the pathPrefix and baseurls issues, I suggest merging this branch with dev.
This will close #182 and #130

@dr0i Do we need a second (functional) review from @acka47 or should we just merge?

If you push this branch to dev it will automatically deploy at the test server. So, just go on and merge. @acka47 may then have a glimpse at test for functional reviewing.


Update release and workflow documentation

Description
Changes proposed in this pull request:

Update release docs
Update workflow docs

Related issue(s)

See #831

/kind enhancement


[New game]: GALAXY RIDER 👾

🎮 Game Request
Game logic and basic description

Ride sick lines though the galactic bowl system adding to your star collection along the way.
Try to finish each course as fast as you can!

Point down the features
Game points

Pick up the coins on the way, jump higher, do stunts to score more points!

Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

/assign

Hey @0xabdulkhalid 👋!
@kunjgit here,
We have this annoucement to make 📢!!
💥 Special Announcement:
It's the Call to all the designers 🔥 🎨
As you all know that GameZone has crossed 100 games 💗 , it's time that we all come up together and make the UI even better!!
We are redesigning the thumbnails, make sure you come up with the aesthetic and cool ideas 🚀 !
You are supposed to share the 4 different templates that can be used. Make sure that the size is: 1280 px X 720 px.
The frame should be such that there is only a single image of the game that's taking up the major portion of the frame. Any kind of text should not be there.
The design should be catchy and aesthetic! 🔥
Note: You are not supposed to create any issue right now for the same.
You have to share different designs right now in Discord  and Project Admin would be selecting one design and would be assigning the issue. After that only, you have to start working on it.

Hey @0xabdulkhalid ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


DINOv2 is now available in HF Transformers (with tutorial)

Hi folks,
As there are multiple issues here regarding fine-tuning DINOv2 on custom data, questions related to semantic segmentation/depth estimation, image similarity and feature extraction etc. this should now become easier given the model is available in HF Transformers. Check below for tips and tricks.
Documentation: https://huggingface.co/docs/transformers/main/model_doc/dinov2
The checkpoints are on the hub: https://huggingface.co/models?other=dinov2
I've created a tutorial notebook on training a linear classifier using DINOv2's frozen features for semantic segmentation. The notebook would be very similar for image classification or depth estimation.
Semantic segmentation/image classification/depth estimation
Refer to my demo notebook here: https://github.com/NielsRogge/Transformers-Tutorials/tree/master/DINOv2. One just places a linear classifier on top of the model, and uses the features as-is.
Depth estimation: the demo notebook is identical for depth estimation, since this is also a dense prediction task, i.e. predicting a label per pixel. One would however use a different loss function, like this one used in the GLPN model to predict the loss between logits and ground truth depth maps.
Image classification: here the linear classifier can look simpler, you can just use Dinov2ForImageClassification.
Feature extraction
Feature extraction is also very simple:
from transformers import AutoImageProcessor, AutoModel
from PIL import Image
import requests

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)

processor = AutoImageProcessor.from_pretrained('facebook/dinov2-base')
model = AutoModel.from_pretrained('facebook/dinov2-base')

inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
features = outputs.last_hidden_state

The features in this case will be a PyTorch tensor of shape (batch_size, num_image_patches, embedding_dim). So one can turn them into a single vector by averaging over the image patches, like so:
features = features.mean(dim=1)

Now you have a single 768-dim (or other sizes, depending on which one you are using) vector for each image in your batch.
Getting intermediate features
Intermediate features can be easily obtained by passing output_hidden_states=True to the forward method of the code snippet above. The outputs will then contain an additional key called hidden_states, which contain the intermediate features for each of the Transformer layers.
Image similarity
We have a tutorial on that here: https://huggingface.co/blog/image-similarity. Given that DINOv2 now is available in HF Transformers, one can simply replace the model_ckpt in the blog with the ones of DINOv2 on the 🤗 hub.

Cheers,
Niels

I have a silly question, sorry to ask here. For the hidden_states, I want to convert (batch_size, num_image_patches, embedding_dim) to (batch_size, h, w, embedding_dim) for segmentation tasks. But I found for a (224, 224) image, the num_image_patches is 257 (not 16x16=256). What is the correct way to reshape it?

Hi @Starlento great question! This is because DINOv2 (and vision transformers in general) typically also add a special CLS token before the sequence of image patches. Hence the sequence length becomes (image_size/patch_size)**2 + 1. So in case you use a DINOv2 model with an image resolution of 224 and a patch size of 16, you get (224/16)**2 + 1 = 257 embeddings out.
Hence one usually discards the final embedding of the CLS token, and only uses the embeddings of the image patches, as done here. I think it makes sense to add a Dinov2Backbone class to the Transformers library, in similar spirit of other backbones. I've made a PR above for that.
Here's how you can use it (for now you'll need to do pip install git+https://github.com/nielsrogge/transformers.git@add_dinov2_backbone):
from transformers import Dinov2Backbone
import torch

model = Dinov2Backbone.from_pretrained("facebook/dinov2-base", out_indices=[0,1,2,3])

pixel_values = torch.randn(1, 3, 224, 224)

outputs = model(pixel_values)

for feature_map in outputs.feature_maps:
    print(feature_map.shape)

By default, feature maps will be 4D i.e. of shape (batch_size, num_channels, height, width). If you want 3D feature maps, just pass in reshape=False to the from_pretrained method.

I've created a tutorial notebook on training a linear classifier using DINOv2's frozen features for semantic segmentation. The notebook would be very similar for image classification or depth estimation.

Hi,
Thank you a lot for the tutorial and the hf version. I ran it on colab. I have two questions:

is the add_pooling_layer necessary? if set to false, will one pooling layer be added? because i don't think I came across this parameter in the class of the config/model from HF

Error below:
TypeError                                 Traceback (most recent call last)
 in <cell line: 1>()
----> 1 model = Dinov2ForSemanticSegmentation.from_pretrained("facebook/dinov2-base", id2label=id2label, num_labels=len(id2label))
1 frames
 in init(self, config)
23     super().init(config)
24
---> 25     self.dinov2 = Dinov2Model(config, add_pooling_layer=False)
26     self.classifier = LinearClassifier(config.hidden_size, 32, 32, config.num_labels)
27
TypeError: Dinov2Model.init() got an unexpected keyword argument 'add_pooling_layer'

the rest of the code runs, but when I train the model on the EduardoPacheco/FoodSeg103 dataset (as it was in the code)

it does train for a while but I guess it eventually encounters a datapoint it can't convert
Error below:
ValueError                                Traceback (most recent call last)
 in <cell line: 19>()
19 for epoch in range(epochs):
20   print("Epoch:", epoch)
---> 21   for idx, batch in enumerate(tqdm(train_dataloader)):
22       pixel_values = batch["pixel_values"].to(device)
23       labels = batch["labels"].to(device)
8 frames
/usr/local/lib/python3.10/dist-packages/albumentations/core/composition.py in _check_args(self, **kwargs)
284
285         if self.is_check_shapes and shapes and shapes.count(shapes[0]) != len(shapes):
--> 286             raise ValueError(
287                 "Height and Width of image, mask or masks should be equal. You can disable shapes check "
288                 "by setting a parameter is_check_shapes=False of Compose class (do it only if you are sure "
ValueError: Height and Width of image, mask or masks should be equal. You can disable shapes check by setting a parameter is_check_shapes=False of Compose class (do it only if you are sure about your data consistency).

@rainbowpuffpuff thanks for reporting, I've removed add_pooling_layer recently, so no need to pass that. I've updated my notebook.
regarding the second question, looks like Albumentations says there's an image which has a segmentation mask with a different shape, weird, haven't encountered that. Will rerun the notebook to verify

Hi @Starlento great question! This is because DINOv2 (and vision transformers in general) typically also add a special CLS token before the sequence of image patches. Hence the sequence length becomes (image_size/patch_size)**2 + 1. So in case you use a DINOv2 model with an image resolution of 224 and a patch size of 16, you get (224/16)**2 + 1 = 257 embeddings out.
Hence one usually discards the final embedding of the CLS token, and only uses the embeddings of the image patches, as done here. I think it makes sense to add a Dinov2Backbone class to the Transformers library, in similar spirit of other backbones. I've made a PR above for that.
Here's how you can use it (for now you'll need to do pip install git+https://github.com/nielsrogge/transformers.git@add_dinov2_backbone):
from transformers import Dinov2Backbone
import torch

model = Dinov2Backbone.from_pretrained("facebook/dinov2-base", out_indices=[0,1,2,3])

pixel_values = torch.randn(1, 3, 224, 224)

outputs = model(pixel_values)

for feature_map in outputs.feature_maps:
    print(feature_map.shape)

By default, feature maps will be 4D i.e. of shape (batch_size, num_channels, height, width). If you want 3D feature maps, just pass in reshape=False to the from_pretrained method.

I found the reshape is somewhat wrong?
from transformers import Dinov2Backbone
import torch

encoder = Dinov2Backbone.from_pretrained("hf-base-models/facebook_dinov2-large", out_features=["stage6", "stage12", "stage18", "stage24"])
picked_hidden_states = encoder(torch.rand(1, 3, 448, 224)).feature_maps
for x in picked_hidden_states:
    print(x.shape)
torch.Size([1, 1024, 16, 32])
torch.Size([1, 1024, 16, 32])
torch.Size([1, 1024, 16, 32])
torch.Size([1, 1024, 16, 32])

I used to use only square images that I did not find the problem...

Hi @Starlento,
That's indeed a bug in the original implementation, I'm addressed it in https://github.com/huggingface/transformers/pull/26092

does anybody see an example of using Mask2Former as a head?

is_check_shapes

@rainbowpuffpuff thanks for reporting, I've removed add_pooling_layer recently, so no need to pass that. I've updated my notebook.
regarding the second question, looks like Albumentations says there's an image which has a segmentation mask with a different shape, weird, haven't encountered that. Will rerun the notebook to verify

Looks like at least one of the images in the dataset is transposed. As a quick hack, In the SegmentationDataset class, I added the following and with it, I could train:
if original_image.shape[:2] != original_segmentation_map.shape:
original_image = np.transpose(original_image, (1,0,2))
print("Transposed and continuing")
print("Original image "+str(original_image.shape))

Hi folks,
As there are multiple issues here regarding fine-tuning DINOv2 on custom data, questions related to semantic segmentation/depth estimation, image similarity and feature extraction etc. this should now become easier given the model is available in HF Transformers. Check below for tips and tricks.
Documentation: https://huggingface.co/docs/transformers/main/model_doc/dinov2
The checkpoints are on the hub: https://huggingface.co/models?other=dinov2
I've created a tutorial notebook on training a linear classifier using DINOv2's frozen features for semantic segmentation. The notebook would be very similar for image classification or depth estimation.
Semantic segmentation/image classification/depth estimation
Refer to my demo notebook here: https://github.com/NielsRogge/Transformers-Tutorials/tree/master/DINOv2. One just places a linear classifier on top of the model, and uses the features as-is.
Depth estimation:
* DPT + DINOv2 is now supported, a notebook has been made available [here](https://github.com/NielsRogge/Transformers-Tutorials/blob/master/DPT/Inference_with_DPT_%2B_DINOv2_for_depth_estimation.ipynb).

* For fine-tuning, one would however use a different loss function, like [this one](https://github.com/huggingface/transformers/blob/e42587f596181396e1c4b63660abf0c736b10dae/src/transformers/models/glpn/modeling_glpn.py#L765-L766) used in the [GLPN model](https://huggingface.co/docs/transformers/model_doc/glpn#transformers.GLPNForDepthEstimation) to predict the loss between logits and ground truth depth maps.

Image classification: here the linear classifier can look simpler, you can just use Dinov2ForImageClassification. Refer to this notebook or example scripts.
Feature extraction
Feature extraction is also very simple:
from transformers import AutoImageProcessor, AutoModel
from PIL import Image
import requests

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)

processor = AutoImageProcessor.from_pretrained('facebook/dinov2-base')
model = AutoModel.from_pretrained('facebook/dinov2-base')

inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
features = outputs.last_hidden_state

The features in this case will be a PyTorch tensor of shape (batch_size, num_image_patches, embedding_dim). So one can turn them into a single vector by averaging over the image patches, like so:
features = features.mean(dim=1)

Now you have a single 768-dim (or other sizes, depending on which one you are using) vector for each image in your batch.
Getting intermediate features
Intermediate features can be easily obtained by passing output_hidden_states=True to the forward method of the code snippet above. The outputs will then contain an additional key called hidden_states, which contain the intermediate features for each of the Transformer layers.
Image similarity
We have a tutorial on that here: https://huggingface.co/blog/image-similarity. Given that DINOv2 now is available in HF Transformers, one can simply replace the model_ckpt in the blog with the ones of DINOv2 on the 🤗 hub.

Cheers,
Niels

Hi @NielsRogge , thanks for the detailed information. Then, according to your explanation, doing:
outputs = model(**inputs)
outputs.last_hidden_state

should be exactly the same as doing:
outputs = model(**inputs, output_hidden_states=True)
outputs.hidden_states[-1]

In my case I find that these 2 chunks of code return completely different tensors, so I am not sure which one corresponds to the final CLS and patch embeddings at the end of the Transformer. If you could clarify it would be great.
Thanks!

In my case I find that these 2 chunks of code return completely different tensors, so I am not sure which one corresponds to the final CLS and patch embeddings at the end of the Transformer. If you could clarify it would be great.

Yes that's because there's layernorm applied on the last hidden states as seen [here](In my case I find that these 2 chunks of code return completely different tensors, so I am not sure which one corresponds to the final CLS and patch embeddings at the end of the Transformer. If you could clarify it would be great.
Thanks!).

In my case I find that these 2 chunks of code return completely different tensors, so I am not sure which one corresponds to the final CLS and patch embeddings at the end of the Transformer. If you could clarify it would be great.

Yes that's because there's layernorm applied on the last hidden states as seen here.
Thanks!).

Thanks for the answer. So when using DinoV2 as a feature extractor for images, is it better to take the embeddings after applying LayerNorm or before?
Thanks!

It's mostly a matter of experimentation, I would just try out both and see which ones work best.

@NielsRogge, just for the sake of clarify, to account for the output tensor of the second dimension (image_size /   patch_size)^2 + 1, from what I read and understood from the model card, the model image patch size is of 14 pixels and not 16 pixels as you mentioned here, so that with an image resolution of 224 and a patch size of 14, you get (224 / 14)^2 + 1 = 257 embeddings out. Thank you so much for your work! ;)

Could you reproduce any of the paper's results?

@franchesoni I ported the weigths to the HF format, to reproduce the results I'd recommend the scripts present in the original repository. We do have image classification scripts here: https://github.com/huggingface/transformers/tree/main/examples/pytorch/image-classification, but they are mostly for demo purposes, and need to be tweaked for a specific use case.

@NielsRogge thank you for your amazing contribution! please can you tell me more about the "rescale_factor" parameter, why do we need it? I did not find the corresponding piece of code from the official repo of dinov2, can you point it out?

Hi @zhaoyanpeng that value comes from 1/255. Typically the red, green and blue color channels of images have values between 0 and 255. Neural networks on the other hand are typically trained on numbers between 0 and 1. So rescaling is a kind of standardization step. The original repository uses ToTensor from torchvision which does the same thing.

Hi @zhaoyanpeng that value comes from 1/255. Typically the red, green and blue color channels of images have values between 0 and 255. Neural networks on the other hand are typically trained on numbers between 0 and 1. So rescaling is a kind of standardization step. The original repository uses ToTensor from torchvision which does the same thing.

Ah, it now makes sense. thnk you for your prompt reply!

Hi, does any have such issue like this?  key error dinov2? It's with transformer==4.30.2 and timm==0.9.12

DINOv2 was probably added in a later version of Transformers, so pip install --upgrade transformers will fix that.

@NielsRogge thank you for the amazing works, I have a question regarding image similarity calculation, should I take the mean value of the last_hidden_state for each image in total of 2 images to compute
emb_img1, emb_img2 = last_hidden_states[0].mean(dim=0), last_hidden_states[1].mean(dim=0)
or
emb_img1, emb_img2 = last_hidden_states[0, 0], last_hidden_states[1, 0]  # Get cls token (0-th token) for each img

the second line of code successfully replicated the result of this paper:
https://openaccess.thecvf.com/content/CVPR2023/supplemental/Ruiz_DreamBooth_Fine_Tuning_CVPR_2023_supplemental.pdf
but the first line failed.

Hi,
It depends a bit, some models have a CLS token which is specifically trained in a contrastive way like CLIP or SigLIP, so it's advised to use that. Other models work better by average pooling the final hidden state of the patch tokens.
So I would try both approaches and see which one works best.

Hi @NielsRogge
What would be the necessary steps to use DINOv2 with ViT Adapter?
What would be the easiest way to achieve this?

Update here, DINOv2 with Registers is now available!
Docs: https://huggingface.co/docs/transformers/main/en/model_doc/dinov2_with_registers
Checkpoints: https://huggingface.co/models?other=dinov2_with_registers


Large amount of data in redux store, Screen  getting delay

What version of React, ReactDOM/React Native, Redux, and React Redux are you using?

React:
ReactDOM/React Native:
Redux:
React Redux:

What is the current behavior?
Large amoount of data in redux store, Screen  getting delay . i am having seperate state for large amount of data. If i click any button action getting very slow. It take 5 to 6 sec.
What is the expected behavior?
Large amoount of data in redux store, Screen  will be quick .
Which browser and OS are affected by this issue?
No response
Did this work in previous versions of React Redux?

[X] Yes

The issue tracker here on GitHub is reserved for bug reports and feature requests. For usage questions (which is what I believe this is), please use Stack Overflow or Reactiflux where there are a lot more people ready to help you out. Thanks!


MINOR: update streams.html with KStream API changes

@mjsax @guozhangwang

LGTM

Nice find! LGTM. Merged to trunk.


[CS2103-T10-4] AniList

AniList helps anime fans organize and manage anime they have watched, are watching and plan to watch. It is optimized for CLI users so that frequent tasks can be done faster by typing in commands.

Codecov Report

Merging #14 (78f5c23) into master (ba53b8c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #14   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 ba53b8c...78f5c23. Read the comment docs.


lyaml: init at 6.2.5-1, update all luarocks generated packages

Motivation for this change
Update luarocks generated packages and add lyaml - lua yaml parser. I've also found that lua pulseaduio package was missing from generated-packages.nix.
I've tested most of the updated packages.
cc @teto @vcunat
Things done

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

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

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

could you not update the lua packages version ? (but just change the url so that it uses mirrors instead). I am afraid this would break other things.
As for the pulseaudio one, I wanted to move it to generated too see https://github.com/NixOS/nixpkgs/pull/78565 but didn't have the time: you would need to remove it from lua-packages.nix too cc @doronbehar

@teto I've checked this pull request with: nix-shell -p nixpkgs-review --run "nixpkgs-review pr 89632" all dependencies should build fine (at least on x86_64).
But I didn't updated luv, I saw @doronbehar is working on this in #80528
In my opinion this is safe to merge.

@GrahamcOfBorg build neovim luaPackages.lyaml luaPackages.cqueues

builds look ok but at runtime there may be issues.
100 packages built:
awesome gnvim knot-resolver lua51Packages.argparse lua51Packages.busted lua51Packages.cassowary lua51Packages.cqueues lua51Packages.http lua51Packages.ldoc lua51Packages.lpeglabel lua51Packages.lua-lsp lua51Packages.lua-messagepack lua51Packages.luacheck lua51Packages.luacov lua51Packages.luaposix lua51Packages.luasec lua51Packages.luasql-sqlite3 lua51Packages.luassert lua51Packages.luautf8 lua51Packages.lyaml lua51Packages.mpack lua51Packages.nvim-client lua51Packages.penlight lua51Packages.pulseaudio lua51Packages.rapidjson lua51Packages.std_normalize luaPackages.argparse luaPackages.busted luaPackages.cassowary luaPackages.cqueues luaPackages.http luaPackages.ldoc luaPackages.lpeglabel luaPackages.lua-lsp luaPackages.lua-messagepack luaPackages.luacheck luaPackages.luacov luaPackages.luaposix luaPackages.luasec luaPackages.luasql-sqlite3 luaPackages.luassert luaPackages.luautf8 luaPackages.lyaml luaPackages.mpack luaPackages.nvim-client luaPackages.penlight luaPackages.pulseaudio luaPackages.rapidjson luaPackages.std_normalize lua53Packages.argparse lua53Packages.busted lua53Packages.cassowary lua53Packages.cqueues lua53Packages.http lua53Packages.ldoc lua53Packages.lpeglabel lua53Packages.lua-lsp lua53Packages.lua-messagepack lua53Packages.luacheck lua53Packages.luacov lua53Packages.luaposix lua53Packages.luasec lua53Packages.luasql-sqlite3 lua53Packages.luassert lua53Packages.luautf8 lua53Packages.lyaml lua53Packages.mpack lua53Packages.nvim-client lua53Packages.penlight lua53Packages.pulseaudio lua53Packages.rapidjson lua53Packages.std_normalize luajitPackages.argparse luajitPackages.busted luajitPackages.cassowary luajitPackages.cqueues luajitPackages.http luajitPackages.ldoc luajitPackages.lpeglabel luajitPackages.lua-lsp luajitPackages.lua-messagepack luajitPackages.luacheck luajitPackages.luacov luajitPackages.luaposix luajitPackages.luasec luajitPackages.luasql-sqlite3 luajitPackages.luassert luajitPackages.luautf8 luajitPackages.lyaml luajitPackages.mpack luajitPackages.nvim-client luajitPackages.penlight luajitPackages.pulseaudio luajitPackages.rapidjson luajitPackages.std_normalize mudlet neovim-qt neovim-unwrapped prosody sile

I will try to update the lua documentation https://github.com/NixOS/nixpkgs/pull/55302 this WE.

As for the pulseaudio one, I wanted to move it to generated too see #78565 but didn't have the time: you would need to remove it from lua-packages.nix too cc @doronbehar

I don't care if my pulseaudio will move from one place to another, as long as I'm pinged to test something that's supposed to work. @teto I think the issue I wrote about here is orthogonal to https://github.com/NixOS/nixpkgs/pull/89145#issuecomment-636327670 - luaPackages.pulseaudio can't be compiled with overriding makeFlags I think and buildLuarocksPackage doesn't support these.

The cqueues update should be safe enough, I believe.

@doronbehar sry I forgot about that. Luarocks make buildSystem can accept variables passed by extraVariables or via luarocks make (while the cmake build system is closed). So this could be a simple override.

My lua.pkgs.pulseaudio package broke today after a system update. I've just made it through via an ugly overlay... I'm working on a nicer fix.

Sigh.... I really don't know what to do, it's working when I build it with a makefile, and when I use buildLuaPackage but not with buildLuarocksPackage.

@teto could it be something with the Makefile? https://github.com/doronbehar/lua-pulseaudio/blob/v0.2/Makefile

what I meant is that in so the extra args in the makefile could be passed to luarocks via an override so you dont need a manual one a priori.

extra args in the makefile could be passed to luarocks via an override so you dont need a manual one a priori.

@teto please do this:

Apply this diff on master:

diff --git i/pkgs/development/lua-modules/overrides.nix w/pkgs/development/lua-modules/overrides.nix
index 30be2c197a5..c88d375d5be 100644
--- i/pkgs/development/lua-modules/overrides.nix
+++ w/pkgs/development/lua-modules/overrides.nix
@@ -324,5 +324,10 @@ with super;
     nativeBuildInputs = [
       pkgs.pulseaudio pkgs.pkgconfig
     ];
+    extraVariables = {
+      INST_LIBDIR = "${placeholder "out"}/lib/lua/${lua.luaversion}";
+      INST_LUADIR = "${placeholder "out"}/share/lua/${lua.luaversion}";
+      LUA_BINDIR = "${placeholder "out"}/bin";
+    };
   });
 }

Then run:

ldd $(nix-build -A luajitPackages.pulseaudio)/lib/lua/5.1/pulseaudio.so

Then checkout https://github.com/NixOS/nixpkgs/pull/89767 and run again:

ldd $(nix-build -A luajitPackages.pulseaudio)/lib/lua/5.1/pulseaudio.so

And you should be able to see that pulseaudio.so is not linked almost at all in the (2) case while it should be linked in (3).

cool that you tried ! sry if I dont answer quickly I am pretty swamped at the moment. Maybe it would accept the extra varialbes if https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/lua-5/build-lua-package.nix#L228 was changed to $LUAROCKS make --deps-mode=all --tree=$out ''${rockspecFilename}   $PULSEAUDIO_EXTRA_VARIABLES .... ? I think there is sthg related to that in the luarocks builder.

was changed to $LUAROCKS make --deps-mode=all --tree=$out ''${rockspecFilename} $PULSEAUDIO_EXTRA_VARIABLES ....

I don't understand - I never heard of this env variable before - $PULSEAUDIO_EXTRA_VARIABLES.
Now I notice, that also when I run luarocks make inside the lua-pulseaudio repo, ldd shows that the result pulseaudio.so is not well linked. Here's the output of luarocks --verbose make --local ./pulseaudio-0.2-1.rockspec when I run it inside my lua-pulseaudio repo:
io.popen: 	pwd 2> /dev/null

os.execute: 	"/nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin/luajit" -e "io.write(tostring(jit and jit.version:gsub([[^%w-JIT ]], [[]])))" > /tmp/lua_2RiOsp
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && rm '-rf' '/home/doron/.luarocks/lib/lua/5.1/pulseaudio.so'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && rmdir '-p' '/home/doron/.luarocks/lib/lua/5.1'
rmdir: failed to remove directory '/home/doron/.luarocks/lib': Directory not empty
Results: 1
  1 (number): 256

os.execute: 	cd '/var/src/lua-pulseaudio' && rm '-rf' '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1'
Results: 1
  1 (number): 0

io.popen: 	cd '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio' && ls

os.execute: 	cd '/var/src/lua-pulseaudio' && rm '-rf' '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && mkdir -p '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/lua'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && mkdir -p '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/bin'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && mkdir -p '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/conf'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && mkdir -p '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/lib'
Results: 1
  1 (number): 0
Warning: unmatched variable LUA_LIBDIR

os.execute: 	cd '/var/src/lua-pulseaudio' && make  'LUA=/nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin/luajit' 'CC=gcc' 'CFLAGS=-O2 -fPIC' 'LIBFLAG=-shared' 'LUA_BINDIR=/nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin' 'LUA_INCDIR=/nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/include/luajit-2.1' 'LUA_LIBDIR='
Package /nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin/luajit was not found in the pkg-config search path.
Perhaps you should add the directory containing `/nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin/luajit.pc'
to the PKG_CONFIG_PATH environment variable
No package '/nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin/luajit' found
Package /nix/store/whr8xnl30hnb6cgjf6fqbkg2vkf7bdq2-luajit-2.1.0-2020-03-20/bin/luajit was not found in the pkg-config search path.

This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Ulrich Drepper, Scott Miller, and David Madore.
Results: 1
  1 (number): 0

io.popen: 	md5sum '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/doc/README.adoc'

io.popen: 	md5sum '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/lib/pulseaudio.so'

io.popen: 	md5sum '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/pulseaudio-0.2-1.rockspec'

os.execute: 	cd '/var/src/lua-pulseaudio' && mkdir -p '/home/doron/.luarocks/lib/lua/5.1'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && cp '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/lib/pulseaudio.so' '/home/doron/.luarocks/lib/lua/5.1/pulseaudio.so'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && chmod '755' '/home/doron/.luarocks/lib/lua/5.1/pulseaudio.so'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && rm '-rf' '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/lib/pulseaudio.so'
Results: 1
  1 (number): 0

os.execute: 	cd '/var/src/lua-pulseaudio' && rmdir '-p' '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1/lib'
rmdir: failed to remove directory '/home/doron/.luarocks/lib/luarocks/rocks-5.1/pulseaudio/0.2-1': Directory not empty
Results: 1
  1 (number): 256
pulseaudio 0.2-1 is now installed in /home/doron/.luarocks (license: Apache v2.0)

The most interesting part is: https://gist.github.com/doronbehar/0fadaebd60bdf6ea0540f2b8990516de#file-luarocks-make-log-L45 - it's as if luajit isn't found by pkg-config....

The warnings there remind me of https://github.com/luarocks/luarocks/issues/1155#issuecomment-586696869 :disappointed: .


zsh/config.zsh INC_APPEND_HISTORY and SHARE_HISTORY

The lines https://github.com/holman/dotfiles/blob/master/zsh/config.zsh#L18 and https://github.com/holman/dotfiles/blob/master/zsh/config.zsh#L26 seem to specify incompatible options. The second line also repeats SHARE_HISTORY.
From The Z Shell Manual:

SHARE_HISTORY <K>
This option both imports new commands from the history file, and also causes your typed commands to be appended to the history file (the latter is like specifying INC_APPEND_HISTORY, which should be turned off if this option is in effect).

I think APPEND_HISTORY is also redundant if INC_APPEND_HISTORY is set.


size digest algorithm

These are the necessary modifications to store the file size as fixity in ocfl-inventory.json.
The use of the standardJavaName is now a little bit awkward because the calculation of the size as digest is no Java standard MessageDigest. Maybe this could be improved later. Currently I did not want to break the API, because I am not sure about any possible side effects

Thanks, I'll look at this over the weekend.

@rsteph-de I opened a PR against your branch: https://github.com/rsteph-de/ocfl-java/pull/1
The changes are more extensive than your PR mainly because I moved the DigestAlgorithm constants out of  DigestAlgorithm and into DigestAlgorithmRegistry, which is a breaking change.
Functionality wise, there are two differences.

The size is always encoded without the leading zero
The file size is read directly in OcflObjectUpdater.addFileFixity(), without requiring that the file is read again.

Looks good! I need this PR :). Is there a reason why it's not merged yet?

Looks good! I need this PR :). Is there a reason why it's not merged yet?

See my previous comment. I opened a PR with changes against this PR and I'm waiting for @rsteph-de to merge it.

@pwinckles I merged your changes into my PR and tested them against my own code / use cases - Everything O.K.

@pwinckles  mvn spotless:apply is done. I had some line ending issues on Windows, but Github seems to handle that correctly.
A new release would help a lot, having it next week is totally fine for @Mewel  and me. Enjoy your vaction!

Huh. Yeah, looks like there are still some issues. You don't have to fight with it unless you want to. I can fix it next week

@rsteph-de Would you be willing to rebase your branch and remove the 3 most recent commits that were attempting to apply spotless changes? It looks like it converted the line endings in all of the files, and I'd rather not have that noise in the repository.
Then, I'll open a new PR against this to fix the errors spotless is complaining about. I'm not sure why spotless:apply isn't working as expected on windows and I don't have access to a windows machine to play around with the settings.

@pwinckles  I removed the 3 last commits with a hard reset on my branch. A rebase seems not to be necessary because there were no changes on the OCFL main branch since I created my branch.
I'm waiting for your PR.

@rsteph-de https://github.com/rsteph-de/ocfl-java/pull/2


Schedule update example and confusing message on Current

The first example about checking for an update uses Package.Current but in the remarks it says
"
If you try to use this method on the Package object returned by the Current property, this method will fail with an "Access denied" error. This is a known issue that may be fixed in a future release. The example on this page demonstrates how to retrieve update information about the current app's package.
"
So is Current ok or not?
Some information on what scenarios Unknown is returned would be useful.  It happens in one of our environments, but not others, so diagnosing steps are .... unknown.
The "From inside the app, the developer wants to check for updates and start the update process if updates are available." includes references to methods that are not shown, that look like they would actually do the "start the update process".  As these methods are not shown the example does not fit the description and really offers nothing more than the first example.  The naming of the methods, e.g. LaunchTargetApp  seems to indicate that the check and update need to be done from another exe.  Some clarification on that would be useful, e.g. can both the exes be part of the same appinstall?  Its confusing how to get a working self updating appinstaller installation.
Thanks,

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

ID: cb69cc83-27fc-5cf4-fe69-98ab75c4d061
Version Independent ID: 62dbf413-5f27-f370-b024-f4aa014109a5
Content: Package.CheckUpdateAvailabilityAsync Method (Windows.ApplicationModel) - Windows UWP applications
Content Source: winrt-api-build/xml/Windows.ApplicationModel/Package.xml
Product: uwp
Technology: winrt-reference
GitHub Login: @mikben
Microsoft Alias: mikben

Hi @yowl. I have been in touch with one of the product teams about your questions. They're working on updating an MSIX sample and were wondering if this info helps clarify anything for you: https://github.com/microsoft/MSIX-Labs/blob/master/docs/index.md#exercise-15-embedded-appinstaller

Hi @yowl, I'm just checking back in to see if you've had a chance to review the MSIX-Labs repo example from my last comment? Does the example code there answer your questions? Do you think anything there should be incorporated into the docs for CheckUpdateAvailabilityAsync or does it make more sense to reference it as part of a more comprehensive example? Thanks!

@alvinashcraft Thanks, they repo is useful and answers the questions here.  Interesting that it checks for an update manually rather than CheckUpdateAvailabilityAsync

Thanks for letting me know, @yowl. I'm going to add a note to the docs for this method about the examples in that repo to help others who may have similar questions. Those changes should be live later today, so I will go ahead and close this.
Though the Issue will be marked as Closed, we will monitor any replies that come afterwards so treat this like an open Issue. Many thanks!


Enable detection of codes with homographic transformations

Currently, the QRLocation only stores the positions of the 3 finder patterns, but not the position of the alignment marking. If it would do so, it would allow the subsequent passes to handle codes seen not frontally, because we could compute a 2-D homography between the visual space and the code space.
@piderman314 would you potentially be open to adding such a field (as an option, as version 1 lacks it)?
At the moment, bardecoder is not able to decode QR codes with perspective transforms, such as these ones:

This is a problem for AR/vision applications.

Thank you for the improvement! I think that now it is ok, after some experiments I would go for two QR codes for robustness when looking form homographic transformations.

Excellent. I've published version 0.4.2 for ease of use.


*: turn off tikv_alloc's default features

When crates don't turn off tikv_alloc's default features it forces jemalloc to be on.
What have you changed? (mandatory)
profiler and tikv_util both set "default-features = false" for tikv_alloc. This allows the system profiler or tcmalloc to be used again.
What are the type of the changes? (mandatory)

Bug fix (change which fixes an issue)

How has this PR been tested? (mandatory)
SYSTEM_ALLOC=1 make
TCMALLOC=1 make
various cargo invocations
Does this PR affect documentation (docs) or release note? (mandatory)
no
Does this PR affect tidb-ansible update? (mandatory)
no
Refer to a related PR or issue link (optional)
https://github.com/tikv/tikv/issues/4769
Benchmark result if necessary (optional)
Add a few positive/negative examples (optional)

@brson
can we find a better way to avoid forgetting again?

@siddontang I'll come up with some better ideas.

Though I think we should do this in the short term.

PTAL @BusyJay

/test
https://internal.pingcap.net/idc-jenkins/blue/organizations/jenkins/tikv_ghpr_test/detail/tikv_ghpr_test/4973/pipeline/116
test cases::test_split_region::test_follower_slow_split ... test cases::test_split_region::test_follower_slow_split has been running for over 60 seconds
test test_setup ... test test_setup has been running for over 60 seconds

Could the log extractor be improved to only print the logs related to the failing test case? All 5000 lines of logs here are unrelated to the timed out test cases.


proper allignment of images when admin try to upload  in arabic language

Bagisto Version

[ ] master branch

Steps To Reproduce

go to sliders i seetings

Actual Result

changes should be done in all places whew admin  try to upload  images


[mesheryctl] Fetching latest relase tag via web-scraping.

Signed-off-by: Piyush Singariya<EMAIL_ADDRESS>Description
This PR fixes the issue of fetching the latest release tag via API with changing it to web-scraping
Notes for Reviewers
Signed commits

[ ] Yes, I signed my commits.

@piyushsingariya Ready for another round of reviews?
// @hexxdump

@piyushsingariya Ready for another round of reviews?
// @hexxdump

it is!


refactor(vanilla): simplify handling object descriptor

Thought this would be more consistent with https://github.com/pmndrs/valtio/pull/653#issuecomment-1416911665.

@stephenh Would you review this please?

Small disclaimer I am still in the "barely following along" stage of understanding and not "ah I immediately see why this is better" stage. :-)

Sure, totally fine. (And, there are only few who barely follow along.)


Proposal to Add Build Option Without Bare-metal Constraint

Proposal of solution to remove bare-metal constraint from builds.

Running the builds in the virtual machine will still be provided as an option. This will be an additional build option for those who are willing to run builds directly in unprivileged containers.

This will be an additional build option for those who are willing to run builds directly in unprivileged containers.

Maybe we should call out that this will inherently be a less secure option and should only be used for trusted code?

Agreed, i'm assuming the best place for that would be the documentation for this option

@bcaton85 are we good to merge this?

yes


Keyboard shortcut / UI for links

It would be nice to have some minimal GUI for entering links after the Cltr+L shortcut. This is common in most other Markdown editors (95% by a very scientific guess) and is a nice convenience feature.
Note: I know about the link snippet, this feature request is driven by the use case where I already have a link text written and want to "surround" it with link markup and enter the URL.

An idea: while other editors include some kind of popup, if you don't like popus maybe it would be enough to surround the link text with [ nad ]() and place the cursor where URL can be pasted.

I've considered this issue for a while. Here's my proposal.
If there's selected text and you paste a something that looks like a
link, MDE will put the selected text in brackets and the link in
parethensis (essentially create a Markdown link)
If the link is an image link same thing but with the leading bang (!) to
make it an image link.
Since Ctrl+L is already used for lists, Alt+L could trigger the
behavior you suggest with surrounding the text and locating the cursor.
If nothing is selected, it behaves like the link snippet.
I'm also occurs to me I should add a substition parameter for selections
for use in snippets ($SELECT).

My concern would be about muscle memory, you're suggestions are clever but maybe there is more value in smooth experience for all those StackOverflow / StackEdit / Discourse / MarkdownPad / ... users who simply are used to Ctrl+L bringing up a dialog to enter the URL.
All your other suggestions also sound great and would be great for power users, however, generally I would suggest reserving "standard" shortcuts for "standard" Markdown editor behavior and implementing it. My 2c.

Didn't realize Ctrl+L was used that way. I'll add a functionally similar to StackOverflow and wire it to Ctrl+L.

Fixed in 1.15

Just tried it and the current implementation is EX-CEL-LENT.  I don't think any other Markdown editor has that. Thank you.

I'm not entirely happy with it yet but it's close. Keep an I on it and let me know if there are edge cases where it fails.

One thing I noticed is that pasting URL when having some text selected takes a bit of time, like a couple of hundreds of milliseconds. No big deal but maybe there's something making it slower than it needs to be.

OK, I'll have a look.


s3 to blob storage error.

Which version of the AzCopy was used?
10.2.1
Which platform are you using? (ex: Windows, Mac, Linux)
Windows
What command did you run?
azcopy cp "https://s3.amazonaws.com/zoetis-prod-ugc/uploads" "https://qapetcaredbstor.blob.core.windows.net/?sv[sastokendata]" --recursive=true
S3 Bucket - zoetis-prod-ugc
Directory Name: uploads
What problem was encountered?
Error :
"failed to perform copy command due to error: cannot start job due to error: cannot list objects, The request signature we calculated does not match the signature you provided. Check your key and signing method."
Also attaching error screenshot for reference.

How can we reproduce the problem in the simplest way?
Create a directory in the S3 bucket with some files.  Give S3- IAM Full access rights on specific directory inside the bucket.
Have you found a mitigation/solution?
Not yet.

I'm no expert on AWS auth, but is it possible that the key you used in your environment vars does not match the one that has full rights to the directory.
I also wonder if it might be something about the fact that your permissions are granted only at directory level. Maybe AzCopy is enumerating the bucket contents at a higher level (e.g. enumerating from the parent of that directory and then filtering).  It's long time since I've read that code, so I'm not sure.
@adreed-msft Would you have time to test this?  I.e. rights granted only at directory level in AWS. If you don't have time this week, pls say so.

This is a practical scenario where the business has shared keys on S3 Bucket's directory which is needed to be copied.
So do you think you must need container level access to copy content?

I'm not sure. Let's see if Adele has time to test it tomorrow.

@JohnRusk,  I am able to replicate the issue with AWS S3. The problem is not related to azcopy but with the group policy applied on S3 container. generated new user with updated policy on S3 and able to copy data.
Closing the Issue.
Thanks,
Satya


Add logging level switching API in OAP backend for debugging purpose

For now, we have some logs that are very helpful in debugging and troubleshooting but too verbose to be printed in production environment, hence we print them in DEBUG level.
However, switching the log level requires OAP to restart and that may make the errors recover from a restart, so in this issue, we're going to discuss and implement a new API that allows users to switch a particular logger's level. This is kind of similar to Spring Boot Actuator loggers endpoint.
Another doc provided by @hanahmily is log4j auto-config

This should be a core level enhancement. As it is important for prod env.


[go_router] multi/partial nested stack support

I'd like to revive this  discussion and highlight that we still don't have support for nested multi stack nav in go_rotuer like in this example:

(image source: https://medium.com/flutter-senior/app-state-vs-go-router-for-flutter-navigation-397316f30dcb)

@noga-dev
Check out this similar issue: https://github.com/flutter/flutter/issues/99126 and I suggest you to follow-up in it for further updates and you may share your findings / questions in that issue for better tracking.
Closing this as a duplicate. If you disagree, write in comments and I'll reopen it.


Alternative to hull [Home]

TODO:

[ ] Scale the heatmap styling dynamically based on the datacollection area profile.
[ ] Add plain hull display_mode option
[ ] Default to unmodified FeatureCollection rendering
[ ] Experiment with cluster-count elbow determination

there are now several alternatives to hull in deployment


Release MSAL Angular as 1.0.0 stable

TODO:

[x] Remove beta tag
[x] Update peer dep of msal to 1.3.0
[x] Add lint command, fix lint errors
[x] Update samples to<EMAIL_ADDRESS>[x] Clean up backlog
[x] Add ssoSilent
[ ] Update samples to<EMAIL_ADDRESS>[x] Changelog
[x] README updates

Post PR changes:

[ ] Update external samples
[ ] Update portal

Coverage remained the same at 79.833% when pulling aba65132f9ad1fd345d16d3437d504f96565e282 on angular-1.0-release into 920911e14f2bc5b146e1229162929f9ae1324860 on dev.

Congratulations @jasonnutter !! This is a great milestone!!

Does this address #598?

@rrgahan Yes, the Guard will prompt for interaction fs the session has expired.


Update Component Governance to reduce scanned directories for Build Extended template

Description
This pull request reduces the scope of the Build Extended run of Component Governance to the relevant directory that is being built. Previously, Component Governance was running on the entire repository, causing long task times.
Old example: https://dev.azure.com/azure-sdk/public/_build/results?buildId=4077914&view=logs&j=4259cd7e-6a4b-5ca5-581a-0ae020cd9d20&t=3a70d42c-4cbe-5d44-55a0-70dc5de3988f
New example: https://dev.azure.com/azure-sdk/public/_build/results?buildId=4081557&view=logs&j=4259cd7e-6a4b-5ca5-581a-0ae020cd9d20&t=3a70d42c-4cbe-5d44-55a0-70dc5de3988f
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] ~CHANGELOG is updated for new features, bug fixes or other significant changes.~
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

Taking back what I originally said in mail. CG doesn't run on public builds, which is the only place the logic I was referencing exists.
I will approve and merge this PR to see what changes.


Only execute a slashmenu tool on enter if it exists.

Prevents the slash menu from deleting the content from the '/' to the end of the range if no command is entered.
issue https://github.com/TryGhost/Ghost/issues/8387

Coverage remained the same at 73.551% when pulling 2f69366a19b7ccacbb9507df37c163eceb0a05a8 on disordinary:slashmenu-fix into f0222956f11e1df10b143ed02fb042489929bfdb on TryGhost:master.

Whilst testing this, I'm not exactly sure how it happened but I got into a state where I wasn't able to type anything with this error:

It was after deleting a card but I'm not sure if that was the cause.

Hmm, I can't replicate that (trying various combinations of deleting cards and doing other things).
This PR needs a bit of work.

If a user hit's the / and then enter then it still delete the / because there are tools available.
Is there are no tools available but the menu is still open they need to press enter twice.

I'll move this to a WIP unless we want to merge as is?

WIP is fine, I'm don't think it's blocker for beta readiness.


Add x access token functionality

Refers to Issue https://github.com/SimpleJWT/django-rest-framework-simplejwt/issues/204

@Andrew-Chen-Wang This sounds like a better idea, not going to lie about it.
I'll update the PR shortly to reflect these changes.
Thank you for your review.

Hey @Andrew-Chen-Wang
Just made the changes requested on the review. Hopefully the documentation has the same feel as the rest of the documentation.
Let me know if you'd like any changes there, thanks again.


Convergence in more scenes

Several scenes, like drums, mic, and ficus cannot convergence. I think the reason might be the small area of the foreground. Could you validate the observation? Thank you!

I see your other comment on the softplus activation. Unfortunately I didn't test these scenes so I cannot validate the observation... but to my knowledge many other people have this problem, you can see the original repo's issue for example.
I don't know what exactly can make the training stable on these scenes, although the latest mip-nerf paper says softplus makes training stable across all scenes already. Maybe you still need center crop or other optimizers.

@kwea123 I found two methods to stable the training in these scenes: 1. directly reduce the learning rate from 5e-4 to 1e-4; 2. change the optimizer from adam to radam, then reduce the optimizer to 2e-4.
In  [JAX-NeRF] implementation (https://github.com/google-research/google-research/blob/c82f9aff12dc992e90f4a4fbc732f0a5e9bb507c/jaxnerf/train.py#L98), grad value clip modules are applied. Thus I think the reason might be the large grad value during training.

@kwea123
Try  warmup scheduler with Adam optimizer (as suggested in Mip-NeRF). It will definitely guarantee convergence.
When you decrease the learning rate instead, you will obtain lower PSNR at the end of the training. (~ 2 PSNR)


ztracy: use new LazyPath enum in build script

this fixes build issues

Sorry for the noise, I used old code before.


Ability to have custom colors for the background of vs-popup

The current popup box is pure white, and it would be nice to be able to change the color of it.
I've tried doing this directly by targeting .vs-popup in css but it doesn't work. Even with the !important tag.
Also, being able to change the color of the close button would be helpful as well.
Maybe something like vs-color and vs-close-button-color on the vs-popup tag?

excellent friend to add support and I would like to thank you very much for your contribution.


Hello World demo app broken

Keep in mind you need to npm run minify before testing Hello World.  Also, for debugging, you can edit HelloWorld.html to switch to the CesiumUnminified folder (and then combine will suffice instead of minify, and you can read the source near the exception).
This bug was just introduced yesterday with #3418.  An exception is thrown when creating the default imagery providers.

@TomPed can you please look at this soon?

Sure thing, I'll take a look.

@emackey is this the error you are talking about?

This is what the code in buildModuleUrl.js was before using getAbsoluteUri:
baseUrl = new Uri(baseUrlString).resolve(new Uri(document.location.href));

I've substituted that in and I seem to be getting the error still.


Only allow the lj key for Lennard-Jones input

As discussed in #99.

I solved the merge conflict. I'm thinking this wasn't the best idea ever, in this case it shouldn't matter but I actually think it's better to let the one who opened the PR do it. What's your take on this ?

What's your take on this ?

It depends on who is the contributor. For core contributors, we can agree to go for whoever has time to do it, with preference on the one who opened the PR. For occasional contributors that may not be proficient with git, we can help them and fix merge conflicts on the first PR, and ask them to do it on later PRs.
I feels like this is the simplest way, while still being welcoming for external contributors. Does it looks good for you?

For occasional contributors that may not be proficient with git, we can help them and fix merge conflicts on the first PR, and ask them to do it on later PRs.

I wholeheartedly second this from my own experience 😄. How did you solve the merge conflict? Is there a way to do this on GitHub directly via the interface?

How did you solve the merge conflict? Is there a way to do this on GitHub directly via the interface?

Yep, this is relatively new: https://github.com/blog/2293-resolve-simple-merge-conflicts-on-github

I feels like this is the simplest way, while still being welcoming for external contributors. Does it looks good for you?

Oh yeah sure if this is to help I don't see why someone else wouldn't do it. My main concern was that if I solve the conflict while you are making changes on your local branch it can get messy.

git should be able to handle this: if one git push but that other commits have been added, there is an error. We can use git push --force to overwrite the distant commits, and that is the worst that could happen IMO.

Do we squash commits before merging ?

Yes, we can. there should be an option to do this in the menu near the Merge pull request button.


voila 0.5.7

Destination channel: defaults
Links

PKG-4676
Upstream repository
Upstream changelog/diff

Explanation of changes:

Update version
Update dependencies

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_39fqpf5krp/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:25: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
clone/recipe/meta.yaml:26: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 2 Warnings were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_2797dmmh6t/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:25: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_29rs7agr5q/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:25: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 1 Warning were found


feat: add helm lint action for CI

Signed-off-by: kushthedude<EMAIL_ADDRESS>

@aquamatthias @TheCatLady Please review the following PR, it checks against the main branch chart changes & if found any, it runs lint as well as spins up a kind-cluster to deploy the full chart

@aquamatthias I had seen that script but the test here just works by trying to do helm install with our default chart values, I guess what you would want is a complete e2e deployment with arango working & making sure that our pods get into ready state, we can do that for sure but I would prefer to get the releaser-action up & running before we add more stricter CI checking?
What are your opinions on this?

Yes. I think the existing test does exactly this. Something we want to have again.
I will create an issue for this and merge the PR as is.


Cleanup or2papers.py

A few things top of mind:

[ ] Use argparse rather than attempting to read directly from sys.argv for username and password
[ ] Throw error rather than assume ACL 2022 for connection string
[ ] Wrap primary execution path in main function

@rswilkens can you please take a look at these suggestions?
TNX

I'll go ahead and make these changes.

Thanks @zhzhang


Competition Bundle: Basic Functionality

A user should be able to submit a competition bundle respecting the new YAML schema generated in 2018 and the competition should be created successfully.:

[x] Define task/function to un-pack and create a competition from a zip bundle according to our YAML specs.

A user should be able to edit bundle from the editor.

[ ] ~Have an edit page for competitions (With a form)~ Holding off on this until we have confirmation of how Tasks should be working

[x] ~Write Automated tests for frontend using Selenium where applicable~

[x] Selenium test for uploading a competition bundle -- may need to make Celery run in "eager" mode, so tasks are executed immediately and not by workers

[x] Migrate to new schema (Remove ingestion and scoring module)

Note: May need to break into smaller issues

[ ] decide on UI and design yaml from there

@ckcollab where do we stand on this? we merged the PR, can we move this to 'Done' or is there more to do still?


Using @CsrfValid on class level

The API docs if the @CsrfValid annotation contains the following note:

Even though this annotation is also targeted to {@code TYPE}, it can only be used to decorate individual controller methods.

Why is that? Is there a technical reason for this? It would be nice to also allow this on classes.

No idea. Allowing this technically but disallowing it in the documentation is really weird.

I guess the annotation is allowed on type level for the interceptor binding. IIRC the feature is implemented as a CDI interceptor.

@spericas Could you share some thoughts on this? I just checked that and @CsrfValid isn't used on type level for the interceptor binding.

@chkal I would think it is because of interceptors. Perhaps the RI does not take advantage of that anymore, but may still be useful for other implementations.

@spericas Thanks for your feedback. I guess you are right. @CsrfValid is annotated with @NameBinding:
https://github.com/mvc-spec/mvc-spec/blob/e6a1764e0baf7cb5800bc58aa581365ae98db009/api/src/main/java/javax/mvc/security/CsrfValid.java#L47-L53
I guess it is safe to use @NameBinding on such annotations in case implementations want to use JAX-RS providers for the implementation. I'm just wondering if MVC annotation shouldn't also be annotated with CDI's @InterceptorBinding for consistency.

Please see #195 for the proposed changes


[$1000] Payment issue for #20681

I missed payment for the Bug Reporter on issue #20681 and the Upwork job has since expired. I'm creating this issue to create a new Upwork job.
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0139b3ea8eb620dc40
Upwork Job ID:<PHONE_NUMBER>999406080
Last Price Increase: 2023-08-28

@gadhiyamanan I've just sent you an offer for the job. Please ping me when you've accepted so I can issue payment.

Payment has been issued! 🎉

Ah! I missed one payment.
@srikarparsi suggested I pay $500 to @ygshbht for their contributions to the solution since they did a ton of work.

Even though he didn't implement the fix, his debugging helped a lot in finding a solution even though he wasn't the one to implement it.

I'm doing that now.

Thank you very much @srikarparsi @johncschuster! Many people, including @srikarparsi, assignees, and reviewers, actively participated in fixing this issue!

Payment has been issued! Thanks again, everyone! 🎉


add String() method for *Bulb type

Consider the following code:
for _, bulb := range c.GetBulbs() {
	fmt.Printf("bulb: %v\n", bulb)
}

Previously, you'd see memory addresses which were less than helpful. With this patch, you see the name of the bulb as provided by the GetLabel() method.

Looks like a good addition, really need to remember to do that more.
Thanks!


Fix PaymentIntentsRoute infinite loop when creating new request

The actual request was never created due to an infinite loop produced by repeatedly calling the incorrect method.

@ksmandersen you ok with this version of your backport?

@Andrewangeta Looks good to me.
I had actually made these changes on my local fork but forgot to include them in the PR. Sorry about that @kschins

@Andrewangeta can we merge this now then, please?

Yep.


WASI support planned?

Yes, we plan to support WASI and make up a set of system calls. However, I have a tight schedule now, so it may be realize at least after 2019.

You can check out https://github.com/WasmVM/wasi-node
This is a pure N-API WASI implementation we made up to understand WASI more.


Googles solution

This is the standard solution for GKE ingresses which we are using extensively. My brain dump on the issue:

Within the ingress annotations you can specify an IP address and SSL certificate stored with google cloud.
Annoyingly, with google its impossible to set up firewall rules meaning your applications are exposed to the open internet. Would be nice for Azure to support this.
Azure application gateway supports 301 redirects for http -> https. I hope this feature will be exposed in the ingress. Currently not supported with google cloud.

apiVersion: v1
kind: List
items:
- apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    name: basic-ingress-test-1
    annotations:
      ingress.gcp.kubernetes.io/pre-shared-cert: wildcard-bar-com
      kubernetes.io/ingress.global-static-ip-name: foo-bar-com
      kubernetes.io/ingress.allow-http: "false"
  spec:
    rules:
    - host: foo.bar.com
      http:
        paths:
        - backend:
            serviceName: foo-service
            servicePort: 80
          path: /*
    tls:
    - hosts:
      - foo.bar.com

You can find more information about the google ingress controller here: https://github.com/kubernetes/ingress-gce
Most of the supported annotations are poorly / not documented.

Thanks for the brain dump @mooperd, and for the feature requests.  This is very useful.  Firewall rules are definitely on the plan.  I'll take a look at how we can surface the HTTP->HTTPS redirect in the ingress manifest, and always open to suggestions of course!


Cell gets ready before the Cell STS is ready

Description:
At the moment, the Ready condition in the Cell is changed to true, before the STS deployment gets ready. This can be troublesome if the user tries to invoke an API when the STS is still starting up.
Note: Also Cell does not wait for the global API publisher as well. This is ok as the Cell itself is functional at this point.

Cell testing encountered a problem due to this issue. It was fixed in the SDK (https://github.com/wso2-cellery/sdk/pull/927). Please revert this fix once the improvement is properly done in the controller.

Also we need to add proper readiness and liveness probes to the STS as well.

Resolves with https://github.com/wso2-cellery/mesh-controller/pull/142

Cell testing encountered a problem due to this issue. It was fixed in the SDK (#927). Please revert this fix once the improvement is properly done in the controller.

This is reverted with https://github.com/wso2-cellery/sdk/pull/957


Alter approval/rejection system to weight staff votes equally

Copied from Trello:
I think instead of the current system (3 vets or 1 staff to decide either way) we should consider a system where any 2 votes approve or reject the submission, with a veto function for staff to reject inappropriate projects immediately. This way, it will be easier for vets to keep the project submission backlog down, and staff members don't have as much responsibility when voting on projects submitted.

Should this "veto system" use interactions or text based commands for its functionality? And what sort of reasons would we reject for, deemed "inappropriate"?

Instant rejection of projects with preset reasons was implemented in #301. We could easily change the default config to finish this off, if we decide this is what we want to do.

It's still relevant, yes.


Is my ubx file compatible?

Describe the bug
Cannot run a simple import of my test.ubx file.
pyubx2.version:  1.2.14
uCenter software used to generate the test.ubx file: v21.09
Error message:
[some valid parsed data from (1)... to (114) with parsed string]
Traceback (most recent call last):
File "C:\Users\jgorisse\Documents_FFANT\SW\GNSS_analyzer\parser.py", line 9, in
print(f'({str(i)})\t{parsed_data}')
File "C:\Asulab\Python310\lib\site-packages\pyubx2\ubxmessage.py", line 848, in str
val = ubt.UBX_MSGIDS[clsid + msgid]
KeyError: b'\x13`'
python code:
from pyubx2 import UBXReader
stream = open('ubx_file.txt', 'rb')
ubr = UBXReader(stream, protfilter=2)
i = 0
for (raw_data, parsed_data) in ubr:
    i += 1
    print(f'({str(i)})\t{parsed_data}')
ubx file (ubx_file.ubx, extension simply changed to .txt):
ubx_file.txt
To Reproduce

save the python code to parser.py
run the parser.py python code

Expected Behaviour
A string with parsed data.
Desktop (please complete the following information):

OS: Windows 10
no u-blox devkit connected (but files saved from a u-blox M8 evaluation kit, usb-connected)

Additional context
uCenter has no problem to read back the above mentioned .ubx file.
What I really want to do is to directly read the *.ubx files (I have many of those files), parse the messages and build some numpy tables with C/N0, used of each satellites and then utc, lat, lon, alt, psm and fix that I can post-process with some already operational python codes. Now I have to extract those data from the table view of uCenter and save it in *.csv files which is very time-consuming; this is why I am interested in this library to process the data with minimal human interaction.

Hi @jgguitare ,
The issue you're getting is essentially because the .ubx file created by u-center v21.09 includes by default a bunch of diagnostic and debugging message classes which - until the most recent v1.2.15 - were not handled by pyubx2 as a) they're not publicly documented in any interface specification, and b) they're really only of relevance to u-blox support technicians. As it happens I've recently responded to a similar issue - see #78.
You can usually avoid this issue by selecting 'No' when prompted by u-center to specify whether you want to 'Add Receiver Configuration' to the recorded .ubx file, so I recommend you try this first:

As of v1.2.15, pyubx2 can now 'handle' these undocumented debugging messages, at least to the extent of parsing them to a nominal payload definition (the actual payload definitions are not publicly available), so I also recommend you update to this latest version.
However, having examined your .ubx file I've noticed another problem. There are CFG POLL requests for 3 legacy UBX message classes (CFG-PM, CFG-TMODE and CFG-TP) which are not relevant to NEO-M8N devices but u-center has polled them anyway. Ironically, pyubx2 had previously supported these message classes but they were removed some time ago as I understood them to be obsolete. I've now restored these three message classes and will upload the revised code shortly but  - as I say - you should be able to avoid the problem in the first place by selecting 'No' to 'Add Receiver Configuration' in u-center when you record your .ubx file.
I've run your script using my updated version of pyubx2 and it appears to parse OK:
from pyubx2 import UBXReader
stream = open("/Users/semuadmin/quarantine/ubx_file.txt", "rb")
ubr = UBXReader(stream, protfilter=2)
i = 0
for (raw_data, parsed_data) in ubr:
    i += 1
    print(f"({i:03d})\t{parsed_data}")

(001)	<UBX(MON-VER)>
(002)	<UBX(MON-VER, swVersion=b'EXT CORE 3.01 (107900)\x00\x00\x00\x00\x00\x00\x00\x00', hwVersion=b'00080000\x00\x00', extension_01=b'ROM BASE 2.01 (75331)\x00\x00\x00\x00\x00\x00\x00\x00\x00', extension_02=b'FWVER=SPG 3.01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', extension_03=b'PROTVER=18.00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', extension_04=b'MOD=NEO-M8N-0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', extension_05=b'FIS=0xEF4015 (100111)\x00\x00\x00\x00\x00\x00\x00\x00\x00', extension_06=b'GPS;GLO;GAL;BDS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', extension_07=b'SBAS;IMES;QZSS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')>
(003)	<UBX(CFG-ANT)>
(004)	<UBX(CFG-ANT, svcs=1, scd=1, ocd=0, pdwnOnSCD=1, recovery=1, pinSwitch=16, pinSCD=15, pinOCD=14, reconfig=1)>
...
(515)	<UBX(ACK-ACK, clsID=CFG, msgID=CFG-TP5)>
(516)	<UBX(ACK-NAK, clsID=CFG, msgID=CFG-TXSLOT)>
(517)	<UBX(CFG-USB)>
(518)	<UBX(CFG-USB, vendorID=5446, productID=424, reserved0=0, reserved1=0, powerConsumption=100, reEnum=0, powerMode=1, vendorString=b'u-blox AG - www.u-blox.com\x00\x00\x00\x00\x00\x00', productString=b'u-blox GNSS receiver\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', serialNumber=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')>
(519)	<UBX(ACK-ACK, clsID=CFG, msgID=CFG-USB)>

Hope this helps.

I've uploaded an updated version of pyubx2. Unfortunately there appears to be (yet another) temporary glitch with GitHub Actions workflow which is preventing me from generating a new release, but you can download and install the code manually if you like. But, as I say, selecting 'No' to 'Add Receiver Configuration' in u-center should avoid the problem so try that and let me know how you get on.

Thank you very much for your help.
I have upgrade pyubx2 up to the v1.2.16 and everything operates as expected. This entirely solves my problem to parse already collected *.ubx log files.
I still have to do some tests with uCenter, saving a file without the configuration messages. But as far as I have looked it, I could not reopen a *.ubx file and save it without the configuration messages which means all my already stored measurements would be lost (hopefully not with the v1.2.16 of pyubx2). I will investigate with a uBlox dev-kit connected to my PC to investigate how uCenter really operates... This is more a uCenter issue now (or how I use it).
May I suggest for the undocumented configuration messages to just indicate them as "unsupported content" when parsing but avoiding the parser to crash. Or just adding a "try" in front of the search in your dictionary to catch cases where the configuration message is unknown and skip those messages.
Because in practice the interest of your code - for me - is mainly to retrieve the NMEA messages from an *.ubx file; configuration messages are not very interesting in that case. But keep the ability to parse those files even if there are some configuration messages in it is of a major interest. Just an idea if it becomes too complicate to support obsolete, and undocumented configurations messages...
Thanks again for your quick support.

Hi @jgguitare
As it happens, I have just added a further enhancement to pyubx2 to allow it to parse ANY unrecognised (i.e. undocumented) UBX message class to a nominal payload definition UBX-NOMINAL (which is a simply byte array) and add the term 'NOMINAL' to the message identity - provided the message is well-formed (i.e. the length and checksum are valid).
For example, if it encounters unknown message class b"\xb5b\x55\x66\x02\x00\x33\x44\x34\xae", it will parse it as:
<UBX(UNKNOWN-5566-NOMINAL, data_01=b'3', data_02=b'D')>

FYI if you want to filter unwanted message protocols or specific message types from your u-center .ubx file, you could use something like the following script:
# sample code to strip unwanted config messages from *.ubx file

from pyubx2 import (
    UBXReader,
    protocol,
    UBX_PROTOCOL,
    NMEA_PROTOCOL,
    RTCM3_PROTOCOL,
)

INFILE = "ubx_file.txt"
OUTFILE = "ubx_filtered.ubx"

with open(OUTFILE, "wb") as output:
    with open(INFILE, "rb") as stream:
        ubr = UBXReader(stream, protfilter=7, quitonerror=2)
        i = 0
        n = 0
        for (raw_data, parsed_data) in ubr:
            i += 1
            # if you want to filter specific message types, use the identity function:
            # if parsed_data.identity in ["GNGSV", "GNRMC", "NAV-PVT"]:
            # if you want to filter specific protocol(s), use the protocol function:
            if protocol(raw_data) == NMEA_PROTOCOL:

                n += 1
                output.write(raw_data)

print(f"{i} messages read from {INFILE}")
print(f"{n} messages written to {OUTFILE}, {i-n} messages filtered")

➜  python3 temp4.py
6604 messages read from ubx_file.txt
6085 messages written to ubx_filtered.ubx, 519 messages filtered

Hope this helps


Updated Profile Name in PowerSHell Example

As outlined in the text above of the modification, if the "$Profilename" "has a space or other non-alphanumeric character, it must be properly escaped according to the URL encoding standard." But in the given example, there are just whitespaces. This commit does change that.

By the way, do you have any opinion about the issue mentioned in ticket #4047 (DNS Suffixes) on the same page?

Regarding to #4047, I have tested both, comma and semi-colon, and did not receive an error. But I did only test to create the XML and load into the Windows 10 Client. I did not test if the dns suffixes properly work.


Issue when examining ref structs

Have to use the Type overload as they can't be used as a generic parameter; however fails due to MakeGenericType I assume for same reason?
Unhandled Exception: System.TypeLoadException: The generic type 'SizeComputer`1' was used with an invalid instantiation in assembly 'ObjectLayoutInspector, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'.
   at System.RuntimeType.MakeGenericType(Type[] instantiation)
   at ObjectLayoutInspector.InspectorHelper.GetSizeOfValueTypeInstance(Type type)
   at ObjectLayoutInspector.InspectorHelper.GetSize(Type type)
   at ObjectLayoutInspector.TypeLayout.<GetLayout>g__DoGetLayout|24_0(<>c__DisplayClass24_0& )
   at ObjectLayoutInspector.TypeLayout.GetLayout(Type type, TypeLayoutCache cache, Boolean includePaddings)

Hey, @benaadams , sorry for the late reply, I completely missed this bug.
It seems that MakeGenericType just "works" on .NET Framework for ref structs, but fails on .NET Core.
I'm not sure what can I do here, unfortunately, besides failing with more appropriate error message.
I'll think about other approaches though...


Allow NVIDIA GPUs to be used as OpenCL devices in docker

Don't merge this right now. It's gonna make me have to rebuild the build image (when building and pushing the Robocup image), and I've only got ~16 minutes for the deadline.

Don't merge this right now. It's gonna make me have to rebuild the build image (when building and pushing the Robocup image), and I've only got ~16 minutes for the deadline.

This isnt a critical thing. We can merge it whenever is convenient


Adding Reconstruction Analysis

This PR adds the first analysis notebook in the 4th module analyze-components.
The notebook is written in an R kernel and is added in dd6692e.
The nbconverted script is added in bdebd16
I also add a utility file, which stores handy curation and plotting functions added in 0aed985
The remaining commits add figures (864e6b3, 40ef228, and 76ea6ed) and results (889daf9)

So it looks like you're plotting the reconstruction error for several different datasets, but I"m not sure what you're doing with the filtering for iterations that converge. What is the goal of this analysis?

All I am doing is filtering out poorly behaving models so we can better view the learning structure across algorithms, z, etc. If there is an extreme outlier model, then we can't easily tell subtle differences