helper for sortable tables

Hi @woylie I'm interested in using Flop.  Everything looks pretty great so far but any chance you might find some time to implement the sortable view helpers for use in tables and such?
As life can very easily and understandably get in our way, what's the current status of Flop?  Are you planning to put some additional effort into it?  I find that a complete solution for pagination, sorting, and maybe some boilerplate for an example search form (like/unlike Ransack for Rails) is greatly missing from the Phoenix/Elixir ecosystem.

Hey @jesse-iluminai, thanks for your interest in the library. We're using the Flop libraries in production in two or three projects at the moment, but mostly for the pagination part (both in admin interfaces and for Relay pagination with Absinthe). I didn't have a lot of time recently to work on new features, so I'm mostly working on updates whenever new functionality is needed in our projects. A pagination component for LiveView and sortable tables will probably be the next features we'll need, but I can't give you a timeline at the moment.

Thanks for the info @woylie, much appreciated and understood.  Looking forward to seeing what you come up with when you have a chance!

@woylie me again :)
Hey so I want to go forward with using Flop and the helpers you've been building for the Phoenix side.  There are some enhancements that I'd like to see and I'm happy to help out in making them happen over time.
If you don't mind I'm just going to list them here and you can decide how to carve these out to separate items etc.  I'm also guessing that the use cases here are both for the UI and an API (I haven't done much digging into Relay yet so I'm not sure of what of Flop supports that directly).
From a UI/UX point of view here is my wishlist/my own to-do list:

Pagination: Default Page Size / Max Page Size - have you considered that for the UI that there is an optionally static "limit"?  There are some UI set ups though where a user can choose how many items per page they want to see (10, 25, 50) so the current set up works well for that.
Pagination: In the URLs from the pagination view remove the "page_size" attribute from appearing by default - this hints to the users that they could change this (which is fair) but if we can keep the URLs less crufty that would be awesome
Pagination: First/Last pagination link and modifier support - in addition to what's you have already
Sorting: We've talked about this in the ticket here already, but do you have any thoughts on how you'd start this as I'm wanting this for an upcoming project I'll be building something to work with Flop
Searching: Omnibox style - unlike Rummage where a separate field exists for each filterable you wish to use I typically implement on projects a single field which typically works on an ilike basis; other types of fields like dates and select type fields I would be adding to an "Advanced" search
Searching: Have you had any thoughts on how to put together constructed fields like Ransack from the Ruby world?  Best example would be that I have a field for first_name and last_name and want to be able to have a user search for "John He" and would like to concat those fields within the search mechanism

Anyways, let me know what you think.

Hey @jesselathamdev, thanks for the suggestions!

Pagination: Default Page Size / Max Page Size - have you considered that for the UI that there is an optionally static "limit"? There are some UI set ups though where a user can choose how many items per page they want to see (10, 25, 50) so the current set up works well for that.

Do you mean that you want to disable the limit/page_size parameters? We already have options to disable the ordering and filtering parameters. We could add another one to disable setting the limit via parameters. Is that what you suggest?

Pagination: In the URLs from the pagination view remove the "page_size" attribute from appearing by default - this hints to the users that they could change this (which is fair) but if we can keep the URLs less crufty that would be awesome

One way to do this would be to remove the page_size parameter if the value is the same as the default value. However, the FlopPhoenix pagination helper does not get the schema settings at the moment. An easier way to do this would probably be to add another option to the pagination function (see existing options - disable_page_size_param or something like that).

Pagination: First/Last pagination link and modifier support - in addition to what's you have already

Yes, the first and last page links are definitely missing. There should be an option to hide them. What do you mean with "modifier support"?

Sorting: We've talked about this in the ticket here already, but do you have any thoughts on how you'd start this as I'm wanting this for an upcoming project I'll be building something to work with Flop

I made a non-sortable table helper for a project that I'd modify for sortable headers with Flop. I'll send you some details later.

Searching: Omnibox style - unlike Rummage where a separate field exists for each filterable you wish to use I typically implement on projects a single field which typically works on an ilike basis; other types of fields like dates and select type fields I would be adding to an "Advanced" search

Searching: Have you had any thoughts on how to put together constructed fields like Ransack from the Ruby world? Best example would be that I have a field for first_name and last_name and want to be able to have a user search for "John He" and would like to concat those fields within the search mechanism

The filtering feature of Flop is a bit clunky at the moment and could surely use some improvements.
Currently you always have to specify the field, value and operator, and it has to be a map, which makes the query parameters pretty verbose. It might be nicer in some cases if you could just set key/value parameters (name=rocky) and have Flop convert that to the Filter type behind the scenes. You should still be able to set the default operator per field, though.
Maybe we can change the type of the filter field of the Flop struct to [Flop.Filter.t()] | keyword | nil or [Flop.Filter.t() | {atom, any}] | nil.
For a simple free text search (omnibox), we could add a q or query field to Flop. We could then add a free_text_fields option to Flop.Schema. To only support this simple use case, the option value would just be a list of fields to search in.
If you need a more flexible way of searching across fields (e.g. you need one field to search in title/subtitle and another one to search in description/additional_info), the free_text_fields option could be a keyword list instead: [title_or_subtitle: [:title, :subtitle], description_or_additional_info: [:description, :additional_info]]. We wouldn't need an additional q field then. You would be able to use the simple filter format.
We could specify the default operators to be used for simple filters and constructed fields in Flop.Schema like this: default_operators: [title: :ilike_or, category: :==, title_or_subtitle: :ilike_and].
All of this is just quickly jotted down without thinking it through. Let me know what you think.

@woylie hopefully I don't make too much mess with the additional quoting here...

Do you mean that you want to disable the limit/page_size parameters? We already have options to disable the ordering and filtering parameters. We could add another one to disable setting the limit via parameters. Is that what you suggest?

I think this was two-fold.  Mostly my problem with something like Rummage is that the URLs are so crufty, making copying/pasting a filtered/sorted/pagintated URL to a colleague just a mess of a string.  So here I was first envisioning that in UI cases we wouldn't want to hint to a user that they can change the page size so we'd prevent the ?page_size=n query string param from appearing, and then go a step further and not make it changeable by allowing sometime to attempt to fuss with the parameter, hence simply setting an actual limit (same as per_page) in the config options.  This would optionally negate the need for setting a default_limit or max_limit if all we ever wanted was to display 25 items (or less for the remainder) per page.

One way to do this would be to remove the page_size parameter if the value is the same as the default value. However, the FlopPhoenix pagination helper does not get the schema settings at the moment. An easier way to do this would probably be to add another option to the pagination function (see existing options - disable_page_size_param or something like that).

Either of these methods solves for my above elaborated comment!

Yes, the first and last page links are definitely missing (#12). What do you mean with "modifier support"?

Awesome, saw the ticket you raised!  Poor wording on my part sorry.  With "modifier support" I was thinking of being able to provide a way to provide an entirely custom wrapper/HTML/class support.  Less of an issue if the HTML schema and provided classes allow us to do what we want to.

I made a non-sortable table helper for a project that I'd modify for sortable headers with Flop. I'll send you some details later.

Nice - will take a look when you're ready.

The filtering feature of Flop is a bit clunky at the moment and could surely use some improvements.

Yes, there's definitely a lot to digest here, especially with considerations to providing a positive DX for all of us.  I think with something like Ransack for Rails there was a lot learned.  I think at the end we need to allow developers to be expressive and not be locked into a particular look/feel for how they would be required to implement a search box.  Boiling this down I mainly want to be able to specify my own HTML form, GETting the results from the same URL of the list route, and on the server side whitelist with the predicates on what is allowed to be passed through (and silently tossing anything not matching that pattern as to avoid throwing unnecessary 404's/and unhandled 500's back at the user.
I do like having a simple query string param like "q" or "query" for the filtering portion (like when sorting maybe an "s" or "sort" w.r.t. "s[first_name]=asc" and so on).
Not that Flop should aim to become an exact Ransack clone, but we do need something that the community can help grow over time and there are a lot of nice features there (such as being able to access/produce the underlying SQL for more advanced queries and exact control.  When constructing fields, it's been important to the projects I've worked on to be able to work with equivalent fragments for SQL like lower or casting from UUID to text customer_id::text so that I can paste in partial or full UUID if I'm a support rep for a company and troubleshooting customer API integrations.
A further example of this when set up as a Ransacker within a Rails model is as follows:
ransacker :id do
  Arel.sql('lower(books.id::text)')
end

Where books.id is a UUID based PK ID.
Another constructed field example as a Ransacker would be like the following which allows us to access a key within a JSON type column:
ransacker :name do
  Arel::Nodes::InfixOperation.new(
    '->>',
    Arel.sql('countries.name_translations'),
    Arel::Nodes.build_quoted('en')
  )
end

For context where name_translations contains database stored ISO country codes for naming of things in other languages.  Already agreed this is pretty advanced usage, but some sort of support for custom querying/escape hatches would be needed at some point.
A couple of other things come to mind from my Rails days and using will_paginate:

A customizeable helper (or documentation examples) for extracting and displaying a widget for cases like "Displaying 15 to 31 of 143 items" (when paginating with more than 15 items per page), "Displaying all items" (when working with a collection of showing 13 items for a 15 item per page), "No items to display" (when nothing is available to be shown).  There are a lot of ways that we could do this, but would be useful to have an example or provide a default view that devs could take and override; we could also show the other use cases for when we would like to allow modification of the page_size param via a drop down or such
I18n support, in our case here provided by Gettext, for language like above, or with the typed pagination case (First, Previous, Next, Last)

Thanks again for the earlier thoughts.  If any of this is interesting it might be great to form up some sort of technical roadmap to help with getting the more interesting things and top 1, 2, 3 combinations of use cases all working together.  Happy to help here of course one way or another.  Newish to Elixir after feeling like I had outgrown Ruby but I'm committed to building out my upcoming projects with Phoenix and in turn hoping to support the community with some of the tooling it needs as life and a busy 10 month old allows :)

@jesselathamdev There are a lot of things to consider here. I think we have some easy issues that we can tackle first. I'll try to find some time for the sortable tables in the next couple of days.

Heya @woylie just wanted to check in to see how things were going.  Saw that you had done some work around first/last links for pagination but that's applied to liveview?  Any thoughts on some of the other components we were chatting about?

Yes, I changed the pagination helper to work with LiveView as well, and also made a change to always display the first/last link (both in LiveView and in normal templates). I worked on some filter forms on my current project recently, but I opted to do the filtering outside of Flop for now, since Flop doesn't support filters on join queries yet.
The next addition will likely be the sortable table. I have a non-sortable table helper with a spec like this:
@spec table([item], [Phoenix.HTML.safe()], (item, params -> [Phoenix.HTML.safe()]), params, keyword) :: Phoenix.HTML.safe() when item: any, params: any
table(items, headers, row_func, params, opts \\ [])

So if you want to display a list of movies, you'd have something like this:
# in the controller

def index(conn, params) do
  with {:ok, {movies, meta}} <- SomeContext.list_movies(params) do
    render(conn, "index.html", movies: movies, meta: meta)
  end
end

# in the view

def table_headers do
  ["ID", "Name", ""]
end

def table_row(%Movie{id: id, name: name}, %Plug.Conn{} = conn) do
  [id, name, link("show", to: Routes.movie_path(conn, :show, id))]
end

# in the template

<%= table @movies, table_headers(), &table_row/2, @conn %>
<%= pagination(@meta, &Routes.movie_path/3, [@conn, :index]) %>

To make the table sortable, we need to know which columns should be sortable and which field a column belongs to. One way to do that could be to pass this information in the table_headers function. Instead of passing the argument as a [Phoenix.HTML.safe()], maybe something like [Phoenix.HTML.safe() | {Phoenix.HTML.safe(), keyword}] would work. So instead of
def table_headers do
  ["ID", "Name", ""]
end

you would write something like
def table_headers do
  [
    {"ID", sortable: true, field: :id},
    {"Name", sortable: true, field: :name}
    ""
  ]
end

Alternatively, you might want to derive the sortable fields from Flop.Schema. In that case, you would have something like this in your template:
<%= table @movies, table_headers(), &table_row/2, @conn, for: SomeContext.Movie %>

And then the table headers could be defined without the sortable option (still requiring the field).
def table_headers do
  [
    {"ID", field: :id},
    {"Name", field: :name}
    ""
  ]
end


gps: unset some GIT_* variables for git operations

What does this do / why do we need it?
This fixes 2 classes of bugs:

running unit tests as part of a git rebase invocation
running dep from a repository that has a separate GIT_DIR/GIT_WORK_TREE

What should your reviewer look out for in this PR?
the location of the code might not be ideal.
Do you need help or clarification on anything?
Which issue(s) does this PR fix?
fixes #1871

note: #1868 is closely related


TELEWORK: Confirmation page edits

Can you please make the following changes to the employee confirmation page? (see attached image for examples)
i)	Remove period after "decision" in second bullet point
ii)	Files not file (second bullet point)
iii)     Second bullet point should be divided into two separate bullets (so one bullet for each sentence)
iiii)	add period to last bullet

Updated as per the ticket description. also caught issue IV on the 'approval' version of the page

@david-sabadash Changes not present in any environment (screenshot from DEV). Moving back to in progress

Apologies, i forgot about the split deployments update we made at the end of last week. deployed it to DEV but not test. pushing right now and will move the tickets once it's done

@david-sabadash Thanks, let me know when it's ready for test. Also, could you change 'personal' to 'personnel' please?

Hi @david-sabadash, Still don't see any of these changes in DEV/TEST

@HasanSifat I've confirmed that the changes are in dev/test. You might have to do a hard refresh of the page to make sure you're not viewing a cached version

Tested successfully in TEST & DEV
Ready to be transferred to PROD

Tested successfully in PROD


Support running ansible in container

Run ansible in container, to simplify installation of python and ansible.

Note: It does not work when deploy k8s on self node, because kubespray restarts containerd while deployment, and it kills ansible.


implement latency metrics

send the latency for each individual operation to azure monitor

      });

nit: you record these metrics in 3 or 4 different places.  Can you put this into one place?

Refers to: nodejs/device/src/index.ts:382 in f4903de. [](commit_id = f4903de89fac10f8f29830f857ce58005c32cbb2, deletion_comment = False)


Add files via upload

Adding Hannam University in Korea

@woopple Thank you for your patience while waiting for a review and processing your request. Pull request merged. Thank you!


proxy more methods for nnx.Variable

What does this PR do?

Proxy __array__, __array_namespace__, __dlpack__, and __dlpack_device__ for flax.nnx.Variable.
__array_namespace__, __dlpack__, and __dlpack_device__ are specified in the Array API. __array__ is specified in NumPy. These methods have been supported by jax.numpy.Array.

Checklist

[ ] This PR fixes a minor issue (e.g.: typo or small bug) or improves the docs (you can dismiss the other
checks if that's the case).
[ ] This change is discussed in a Github issue/
discussion (please add a
link).
[ ] The documentation and docstrings adhere to the
documentation guidelines.
[x] This change includes necessary high-coverage tests.
(No quality testing = no merge!)

Hey @njzjz, do you have a specific use case in mind?

Hey @njzjz, do you have a specific use case in mind?

I have a complex method that supports different backends like NumPy and JAX. The Array API is used. An example is shown below.
import array_api_compat

def f(x, w, b):
    xp = array_api_compat.array_namespace(x, w, b)
    return w * x + b

When w and b are JAX Arrays, it works as expected. However, when w and b are nnx.Variable, it doesn't work without this PR.
In addition, without this PR, one can not do np.asarray(w) or np.from_dlpack(w) to directly convert an nnx.Variable to a numpy.ndarray.
Currently, I use the workaround to inherit nnx.Variable as shown below, and I think these methods should be added to nnx.Variable itself.
class ArrayAPIParam(nnx.Param):
    def __array__(self, *args, **kwargs):
        return self.value.__array__(*args, **kwargs)

    def __array_namespace__(self, *args, **kwargs):
        return self.value.__array_namespace__(*args, **kwargs)

    def __dlpack__(self, *args, **kwargs):
        return self.value.__dlpack__(*args, **kwargs)

    def __dlpack_device__(self, *args, **kwargs):
        return self.value.__dlpack_device__(*args, **kwargs)

Thanks! You say a bit more how you are using this inside the nnx.Module? Would using the Variable's .value property to extract the inner array work for your use case?
My personal opinion is that we should merge this PR because Variable is already a proxy. Just want to understand this better because __jax_array__ is not a public JAX API that can cause issue from time to time.

Thanks! Can say a bit more how you are using this inside the nnx.Module? Would using the Variable's .value property to extract the inner array work for your use case?

An example is below:
def f(x, w, b):
    xp = array_api_compat.array_namespace(x, w, b)
    return xp.matmal(w, x) + b

class Linear(nnx.Module):
  def __init__(self, din: int, dout: int, *, rngs: nnx.Rngs):
    key = rngs.params()
    self.w = nnx.Param(jax.random.uniform(key, (din, dout)))
    self.b = nnx.Param(jnp.zeros((dout,)))
    self.din, self.dout = din, dout

  def __call__(self, x: jax.Array):
    return f(x, self.w, self.b)

You are right, self.w.value should work. I don't quite understand how nnx.Param works. Will the following code work?
    self._w = nnx.Param(jax.random.uniform(key, (din, dout)))
    self._b = nnx.Param(jnp.zeros((dout,)))
    self.w = self._w.value
    self.b = self.w.value

@njzjz Variable just holds and inner .value and to make it feel like an Array we are implementing all these proxy methods. But we do require that Arrays are held in Variables, so ideally you do this:
def f(x, w, b):
    xp = array_api_compat.array_namespace(x, w, b)
    return xp.matmal(w, x) + b

class Linear(nnx.Module):
  def __init__(self, din: int, dout: int, *, rngs: nnx.Rngs):
    key = rngs.params()
    self.w = nnx.Param(jax.random.uniform(key, (din, dout)))
    self.b = nnx.Param(jnp.zeros((dout,)))
    self.din, self.dout = din, dout

  def __call__(self, x: jax.Array):
    return f(x, self.w.value, self.b.value)


Get images from archive?

Hey,
thank you for this great tool! Just what I was looking for to create an archive of my tweets.
One question though: Since I deleted all my tweets, the images can’t be loaded. Is there any way to make tweetback use the images and videos from the local archive?
Thank you!
Christoph

This is definitely the biggest feature on my wishlist!
I used timhutton/twitter-archive-parser to save an archive of my tweets with full media downloaded, before using semiphemeral to start deleting tweets based on certain criteria.
I've been able to hack a partial solution together by copying the media directory from the parser output to the root of this project. Then in ./src/twitter.js, I've added this line to the if(media.type === "photo") block:
let localImgPath = `./media/${tweet.id}-${path.basename(media.media_url_https)}`;

Followed by this alteration to the image path:
// let stats = await eleventyImg(media.media_url_https, ELEVENTY_IMG_OPTIONS);
let stats = await eleventyImg(localImgPath, ELEVENTY_IMG_OPTIONS);

But there are a few issues with this approach:

You have to keep the /media/ directory around, which feels a bit redundant. If you remove it, the remote images will attempt to be retrieved from Twitter again. Bummer!
It doesn't work for video files. The previous script successfully retrieved the videos, but not any thumbnails associated with them.

I wish there was a way for me to tell eleventyImg "hey, cache this path as if it were this URL." Maybe I can temporarily edit hosts to spoof their image server locally with my own content? 🤔

I've been able to hack a partial solution together by copying the media directory from the parser output to the root of this project. Then in ./src/twitter.js, I've added this line to the if(media.type === "photo") block:
let localImgPath = `./media/${tweet.id}-${path.basename(media.media_url_https)}`;

Followed by this alteration to the image path:
// let stats = await eleventyImg(media.media_url_https, ELEVENTY_IMG_OPTIONS);
let stats = await eleventyImg(localImgPath, ELEVENTY_IMG_OPTIONS);

That sounds far easier than what I tried, which having also used timhutton/twitter-archive-parser, I served out the media dir contents via npx serve <path-to-media-dir> and then overwrite the URLs for the images and video preview images in src/twitter.js (in my case, http://localhost:3000/${tweet.id}-${fileName}, pulling the fileName from the media.media_url_https). Speaking of which, I wound up generating the video preview images as thumbnail with ffmpeg.
For any interested in the preview/thumbnail generation, that looked like:
cd <path-to-media>
for f in $(ls *.mp4); do /usr/local/bin/ffmpeg -i $f -vframes 1 -filter:v 'yadif' "thumbs/${f##*/}".png; done

All the video format files looked to be .mp4, with some weird AMP related occasional .m3u8 files (which look to be containers for .mp4) that I wound up shuffling the order to use a .mp4 variant as the first listed entry so it would be picked up.

I had to make sure to mkdir thumbs and for me I ran do ffmpeg (without the file path), but that worked great for generating thumbnails.
Only problem is that Eleventy was only failing to find four thumbnails remotely, but it's failing to find 14 locally! So that's a step in the wrong direction. But the four thumbnails it fails to retrieve remotely are different than the 14 it fails to find locally, so in theory if I could just manually plop in the missing media one time, I'd be golden.

This is definitely the biggest feature on my wishlist!
I used timhutton/twitter-archive-parser to save an archive of my tweets with full media downloaded, before using semiphemeral to start deleting tweets based on certain criteria. So I see quite a few 404 errors when retrieving images now.
I've been able to hack a partial solution together by copying the media directory from the parser output to the root of this project. Then in ./src/twitter.js, I've added this line to the if(media.type === "photo") block:
let localImgPath = `./media/${tweet.id}-${path.basename(media.media_url_https)}`;

Followed by this alteration to the image path:
// let stats = await eleventyImg(media.media_url_https, ELEVENTY_IMG_OPTIONS);
let stats = await eleventyImg(localImgPath, ELEVENTY_IMG_OPTIONS);

But there are a few issues with this approach:

You have to keep the /media/ directory around, which feels a bit redundant. If you remove it, the remote images will attempt to be retrieved from Twitter again. Bummer!
It doesn't work for video files. The previous script successfully retrieved the videos, but not any thumbnails associated with them.

Is there a way for me to tell eleventyImg "hey, cache this path as if it were this URL." Would modifying the filename format work? Or maybe I can temporarily edit hosts to spoof their image server locally with my own content? 🤔

Btw, for folks who are trying to use this hack, don't forget to add
const path = require("path");

Checking with the Wayback Machine would also be another good fallback possibility for images that can't be found.

I've been using the Wayback Machine to get images that are 404ed, and I would love a way to incorporate them into my Tweetback archive.


oke

Azure documentation issue guidance
Thanks for opening an issue in the Azure technical documentation repository.
We use GitHub issues as the primary channel for customer and community feedback about the Azure documentation.
Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/d365community/forum/79b1327d-d925-ec11-b6e6-000d3a4f06a4.

@hoangphuccc168
Could you please elaborate the query for better understanding. So, we can assist you further.

@hoangphuccc168
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Support searching thru compressed files

It would be great if we could do something like this:
$ ack '^E' 2015*.log.gz
20150111.log.gz
25:ERROR
60:ERROR
20150222.log.gz
80:ERROR
120:ERROR

This has been on the to-do list forever.  There's an issue for it already but I can't find it.

It's mentioned in #122.

What about tar archives?  Zip files?

Closed and added to https://github.com/petdance/ack2/wiki/Feature-requests


Fix Navbar

I'd like to request the removal of excessive content from the navbar, specifically by reducing the descriptions provided for each item. This is causing clutter and usability issues.

I want to work on this issue @codervivek5  please assign me

sure yu can work....Kindly let me know what changes you want to make ?

I have done a lot of work on Navbar

ok if have done this then make a PR and I will review it

please assign to me

Please assign me this issue. I am best at fixing navbars :) since jwoc.

This is already fixed so kindly find another


Add distribute tracing recipe and extension

Adding a zipkin extension for local run (deployment is next).
This will automatically inject zipkin as a service to the application for local run. This also takes control of the --dtrace argument if not specified at the command line.
Refactored how options get passed to the host, so that extensions can do stuff like this 👍
name: frontend-backend

# THIS IS NEW
extensions:
- name: zipkin
# endregion cool and good

services:
- name: backend
  project: backend/backend.csproj
- name: frontend
  project: frontend/frontend.csproj

Like, are you going to do prometheus next?

(deployment is next)


fix: change timezone and hourcycle to camelCase

Potential error using lowercase for timezone & hourcycles,  that does not apply the same pattern from another similar cases
camelCase
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.calendars"
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.collations"
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.numberingSystems"
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.textInfo"
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.weekInfo"
lowercase
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.hourcycles"
-  "https://tc39.es/proposal-intl-locale-info/#sec-Intl.Locale.prototype.timezones"

@sffc  index.html should be ignored? I wasn't sure about it.


Improve error emission for invalid tokens

Sometimes the Connector is hit with an invalid token. When this occurs, we see a stack trace like what occurs below. Many of these errors are caused by browsers open with wallet.ilpv4.dev trying to get a balance with an old GH token.
In this case, we should emit this error as a WARN, and also we should improve the error message to let us know what went wrong. For example, instead of just saying, "invalid token", this should probably say, "token expired" in the logging emission.
Stack Trace
tokenorg.springframework.security.authentication.BadCredentialsException: Not a valid token
at com.auth0.spring.security.api.JwtAuthenticationProvider.authenticate (JwtAuthenticationProvider.java:61)
at org.interledger.connector.server.spring.auth.ilpoverhttp.IlpOverHttpAuthenticationProvider.authenticateWithJwtRs256 (IlpOverHttpAuthenticationProvider.java:222)
at org.interledger.connector.server.spring.auth.ilpoverhttp.IlpOverHttpAuthenticationProvider.authenticateAsJwt (IlpOverHttpAuthenticationProvider.java:192)
at org.interledger.connector.server.spring.auth.ilpoverhttp.IlpOverHttpAuthenticationProvider.lambda$authenticateBearer$3 (IlpOverHttpAuthenticationProvider.java:156)
at com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$0 (LocalCache.java:139)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14 (BoundedLocalCache.java:2379)

@sappenin do we still want to log the stack trace?


Fixed: loading gets stuck after getting first asset from cache

You should call next(); no matter if asset was cached or not.

Oops, sorry about that!


CI build using CMake build system

I did what you asked, Hai.  Let's see if this works...

Yes but using Miniconda makes the CI build take much, much longer.  If I get trouble I'll disable it, but for now I am trying builds both with and without Python

agree.

Tips: You can install docker the test in new fresh Linux distro like travis.

Honestly, I've never used docker and have no idea how it works.  I've almost got it though; my problem is just that I haven't tested my CMake stuff with old versions of CMake for a long time, and there are some files that are choking on undefined varables.    If one of the variables used in a logical expression evaluates to empty string (or is not defined), then it will crash with a syntax error unless the varable is in quotes.

Honestly, I've never used docker and have no idea how it works. I've almost got it though

Saying I am using MacOS and want to test centos:6
docker run -it --rm centos:6 bash

-> docker will pull centos:6 image and create a fresh container.
(similar to "ssh to/your/remote/machine") but much cooler).

That is pretty cool.  Is it actually a virtual machine, or more like a chroot?

Is it actually a virtual machine,

More like this with better performance. Not sure how to describe but I like docker much better.

@hainm Do you know why chamber is not included in the standard Amber distribution?

My build failed because CMake was expecting to find it

Do you know why chamber is not included in the standard Amber distribution?

Because we have ParmEd with better functionality and better API now.

Just FYI: You can activate circleci to build your PR and ssh to the session for debugging.
https://circleci.com/gh/Amber-MD/ambertools-ci
https://circleci.com/docs/1.0/ssh-build/

Huh.  Should I categorize it as a "deprecated" tool, or just remove it completely?
Also, looks like GCC 4.6 (or at least whatever version Travis uses) bugs out when compiling cpptraj.  Is that why your CI scripts download GCC 5?

Huh. Should I categorize it as a "deprecated" tool, or just remove it completely?

what do you mean about "remove"? it should be still in git repo but we won't build it.

Also, looks like GCC 4.6 (or at least whatever version Travis uses) bugs out when compiling cpptraj. Is that why your CI scripts download GCC 5?

nah
Done installing Miniconda!

Obtaining the gnu compiler suite versions, e.g.:
     gcc -v
The C version is 4.6.4
The Fortran version is 4.6.4

By remove I meant remove from CMake.  What I'll do is make it only buildable on the git version of Amber.
Can you look at the most recent Travis build and tell me if you've seen that build error before?

By remove I meant remove from CMake.

yeah, do it.

Can you look at the most recent Travis build and tell me if you've seen that build error before?

ok

/home/travis/amber16/AmberTools/src/cpptraj/src/DataIO_RemLog.cpp: In member function â€˜virtual int DataIO_RemLog::ReadData(const FileName&, DataSetList&, const string&)â€™:
/home/travis/amber16/AmberTools/src/cpptraj/src/DataIO_RemLog.cpp:782:68: sorry, unimplemented: unexpected ast of kind ltgt_expr
/home/travis/amber16/AmberTools/src/cpptraj/src/DataIO_RemLog.cpp:782: confused by earlier errors, bailing out
[ 44%] Building CXX object AmberTools/src/cpptraj/src/CMakeFiles/ambpdb.dir/SDFfile.cpp.o
[ 44%] Building CXX object AmberTools/src/cpptraj/src/CMakeFiles/ambpdb.dir/StringRoutines.cpp.o
Preprocessed source stored into /tmp/cc4EvIK4.out file, please attach this to your bugreport.
make[2]: *** [AmberTools/src/cpptraj/src/CMakeFiles/cpptraj_common_obj.dir/DataIO_RemLog.cpp.o] Error 1
make[1]: *** [AmberTools/src/cpptraj/src/CMakeFiles/cpptraj_common_obj.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

I have never seen this before. You are able to compile your newest AT tarfile in your local machine, right?

yeah, though mkrelease_at complains about Amber17.pdf being missing

yeah, though mkrelease_at complains about Amber17.pdf being missing

it's fine to ignore this. (But if you want, you can compile doc/Amber17.lyx to that.

@hainm Is there any reason why the bundled pnetcdf is not included in mkrelease_at?

I am not sure. cc @dacase  and @drroe.

It isn't actually included in the configure-script build, so I guess someone originally put it there so developers wouldn't have to download it.  However, cpptraj.MPI depends on it, so I added a CMake build system for it.
I just wanted to ask to make sure there weren't any licensing issues.

how big is that? may be you can wait for @drroe comment.

The amber/AmberTools/src/pnetcdf folder is 33.6 MB, but actually 31.4 MB of that is the tests, which we can safely remove.  So it could be shrunk down to 2.2 MB

So it could be shrunk down to 2.2 MB

seems go to include.

It doesn't seem to have any license (though it's copyright Northwestern University and Argonne National Laboratory).  I'm adding it now.

I just wanted to ask to make sure there weren't any licensing issues.

its license is quite permissive. So I think there won't be any.
Copyright (c) 2003 Northwestern University and Argonne National Laboratory
All rights reserved.

Portions of this software were developed by the Unidata Program at the
University Corporation for Atmospheric Research.

Access and use of this software shall impose the following obligations and
understandings on the user. The user is granted the right, without any fee or
cost, to use, copy, modify, alter, enhance and distribute this software, and
any derivative works thereof, and its supporting documentation for any purpose
whatsoever, provided that this entire notice appears in all copies of the
software, derivative works and supporting documentation.  Further, Northwestern
University and Argonne National Laboratory request that the user credit
Northwestern University and Argonne National Laboratory in any publications
that result from the use of this software or in any product that includes this
software.  The names Northwestern University and Argonne National Laboratory,
however, may not be used in any advertising or publicity to endorse or promote
any products or commercial entity unless specific written permission is
obtained from Northwestern University and Argonne National Laboratory. The user
also understands that Northwestern University and Argonne National Laboratory
are not obligated to provide the user with any support, consulting, training or
assistance of any kind with regard to the use, operation and performance of
this software nor to provide the user with any updates, revisions, new versions
or "bug fixes."

 IN NO EVENT SHALL NORTHWESTERN UNIVERSITY
AND ARGONNE NATIONAL LABORATORY BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF
THIS SOFTWARE.
~
~

Well, someone seems to have deleted the copyright file from Amber's copy of pnetcdf, so I guess we are actually in violation of the license...
I'll re-add it.

Is there any reason why the bundled pnetcdf is not included in mkrelease_at?

@multiplemonomials The parallel version of ptraj used it. When we stopped building ptraj we stopped using the pnetcdf subdirectory. IIRC the way it was built was very kludgey - it was something like serial NetCDF (the older version 3 that we used to distribute with Amber) was built but then parallel NetCDF was built on top of that. I don't even know if it will work or even build anymore - have you tried that? If so, have you tried linking it to cpptraj (which is I think the only thing that needs it) and making sure the tests pass?
If we really decide we want to distribute parallel NetCDF with AmberTools we should at least update to a version that's not around 10 years old.

@multiplemonomials Actually now that I think of it is downloading recent versions of libraries something that cmake can do? I haven't built gromacs in a while but I think that they use cmake, and that their cmake will download libraries as needed (but maybe I'm not remembering correctly).

I completely rewrote pnetcdf's build system in CMake.  It's not kludgey now, or at least I don't think it is.  Pnetcdf, and pnetcdf-using cpptraj, have built fine on every system I've tried (though I did have to edit pnetcdf.h so that you could include pnetcdf.h and netcdf.h at the same time).
When I was writing the build system, I sort of assumed that pnetcdf was required for cpptraj.MPI.  So, currently, if CMake can find an installed version or build its own version, it will do so, and it will pass the PNETCDF define to cpptraj.
I haven't really tried the MPI tests because I have always gotten errors about having the wrong number of processes.  What is a good number of processes to run cpptraj's tests in?
It is possible to download libraries with CMake, but it's kind of a pain, especially if the download server forces use of HTTPS since that's not natively supported by CMake.  Plus, I have made significant mods to the internal pnetcdf (I've even gotten it to build on Windows), so we don't want to just get the latest release.

Plus, I have made significant mods to the internal pnetcdf

Diverge from upstream is not that good for maintenance.

.It is possible to download libraries with CMake, but it's kind of a pain, especially if the download server forces use of HTTPS since that's not natively supported by CMake.

I agree.

When I was writing the build system, I sort of assumed that pnetcdf was required for cpptraj.MPI

CPPTRAJ will build fine without it, but won't support writing NetCDF trajectories in parallel (when using across-trajectory parallelization).

haven't really tried the MPI tests because I have always gotten errors about having the wrong number of processes. What is a good number of processes to run cpptraj's tests in?

Can you post examples of the messages you receive? The tests should run fine for at least 1 to 8 MPI threads.

Plus, I have made significant mods to the internal pnetcdf (I've even gotten it to build on Windows), so we don't want to just get the latest release.

But the parallel NetCDF library that is currently in $AMBERHOME/AmberTools/src/pnetcdf is 8-9 years old at this point. I'm willing to bet there have been bug fixes and maybe performance enhancements made to parallel NetCDF since then, not to mention potential compatibility issues with various MPI libraries. The bundled parallel NetCDF library does seem to have tests - have you run those?

@multiplemonomials it would save you a lot of time if you just ssh to circleci session and debug there. https://circleci.com/docs/1.0/ssh-build/

Oh by the way, I ran the tests on the internal pnetcdf, and they passed.  So it looks like it still works.  We might still want to look into updating it though; the most recent version was released a few months ago so it's still under active development.

@multiplemonomials seems like travis build is ok now. If you want to run full amber test, you need to split them into multiple builds (just like I did in nightly branch).

... because travis only allows 1 hour job.

I see, but that seems like a bit of a kludge.  The full build takes several times longer because it spends half of each 1 hour build compiling the code.  Couldn't the Amber project just spring for a $70/month basic Travis plan?  That way it could check it out straight from Git, and we could run all the tests in one go.

Do you realize that only few amber developers is using github? :p
(It's not about money).
On Sat, Aug 5, 2017 at 1:42 AM Jamie Smith<EMAIL_ADDRESS>wrote:

I see, but that seems like a bit of a kludge. The full build takes several
times longer because it spends half of each 1 hour build compiling the
code. Couldn't the Amber project just spring for a $70/month basic Travis
plan? That way it could check it out straight from Git, and we could run
all the tests in one go.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Amber-MD/ambertools-ci/pull/8#issuecomment-320414342,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEPuddziCjKfE8GFxIS08fcno6dFZk3_ks5sVADggaJpZM4OmR6u
.

Honestly I don't see your point there.  People don't have to be using github for CI to be useful.

People don't have to be using github for CI to be useful.

We indeed had (paid) CI for amber, but most of developers did not care much about if things are broken there. That's why we start to migrate things to github with the hope that people won't push things directly to master branch without passing the test (done via travis or circleci).

Another though: spitting test is still good because if the test fail, it should fail fast. We don't want to wait for 2 hours for that.

close this in favor of this: https://travis-ci.org/Amber-MD/ambertools-ci/builds/276176696


HUE-9200 [beeswax] Fix default value of "hive.support.concurrency" in hive_site.py

This one is true because in Hive 3 and the future it is and it is getting popular: https://github.com/apache/hive/blob/master/data/conf/hive-site.xml#L167
In someway it breaks old systems with later Hue, but they should also upgrade/update it.

Yeah, but I thought that hive_site.py should by default returns default Hive configurations, and anyway in newer configurations that become more popular users need to explicitly set this property to true in hive-site.xml, so Hue would get right value by reading hive-site.xml, but in cases where this property is not configured explicitly, Hue would work as it's enabled, while in fact, it's disabled.

Yeah, but I thought that hive_site.py should by default returns default Hive configurations, and anyway in newer configurations that become more popular users need to explicitly set this property to true in hive-site.xml, so Hue would get right value by reading hive-site.xml, but in cases where this property is not configured explicitly, Hue would work as it's enabled, while in fact, it's disabled.


Added Enums, Ops, Attrs for TTNN Dialect to Python Bindings

Generated Enums, Ops
Manually defined Attrs through CAPI.
Addresses #941 :)

Looks good! Tho, i don't think we need all of these attrs exposed for tt-explorer?

Yeah, I thought to add them as I was already exposing the bindings.

Looks good! Tho, i don't think we need all of these attrs exposed for tt-explorer?

Yeah, I thought to add them as I was already exposing the bindings.

Agreed, it doesn't hurt to have them, might be useful for testing/scripting in the future.

Rebased from nsmith/static apologies for all the pings 😅


integration: build tag for proxy

How do we use this build tag in CI?

@gyuho not yet tied into CI since the proxy tests won't pass. I think test needs some refactoring around the INTEGRATION stuff anyway, so I'm holding off on that for now.

Ok got it. defer to @xiang90
lgtm.

@heyitsanthony I am not exactly sure what this pr is for. Can you provide more details? Thanks!

@xiang90 this is so the integration tests can run against the grpcproxy via go test -tags cluster_proxy integration/. Partially addresses #5750

probably we need to rework this a little bit since we already have all the service implemented in the proxy?

@xiang90 probably not a whole lot, I think it only needs to support the smart bits (i.e., kv and watch). Client adapters are probably still the way to go for testing.


feat(bindings): Share generics

Description:
I'm creating a PR to see results generated by CI

This slow downs program a lot if LTO is disabled


Fix scale of pipeline views in overview on large screens

On large screens, there is too much space between multiple pipelines.

Thought I'd quickly give this one a fix. Few little tweaks but seems much better locally for me -


CLI.js shows 'read-pkg-up' error [ERR_MODULE_NOT_FOUND]

This error happens when I try to run the npx command to convert the gltf file into jsx. My current node version is v20.5.1 and npm version is 9.8.1. I have also installed gltfjsx package to my node modules.

I got the same error as OP. It showed out of the blue as last week I was doing conversions fine.

It's because the package.json file is missing the 'read-pkg-up' attribute. Please fix that @bjornstar @Enloch @fortinmike @ggozad

same here, is there a way I can manually fix the dependency error or switch to an earlier version?      thought it was just because I'm a noob and did something wrong.

Switch to node 16 (16.20.2)
install gltfjsx globally npm install -g gltfjsx
gltfjsx ./model.gltf -t

I have the same issue

@nathaponb I've already tried this, it throws the same error. I've used node v16, v18 and v20, it doesn't work on any. Even after changing some packages.

Have you tried running npm install read-pkg-up in your node_modules parent  directory (srdtu-revamp for you)?
I had the same issue, and I solved it that way.

have you tried running the standalone gltfjsx cli without npx ?

I mixed @nathaponb + @MatiasMontoto  and https://github.com/pmndrs/gltfjsx/issues/201#issuecomment-1568870629 to solve. The result is:
"dependencies": {
"gltfjsx": "^6.2.11",
"read-pkg-up": "^10.0.0",
"sharp": "^0.32.5",
I didn't have success using NPM, so I used Yarn and worked :)

I mixed @nathaponb + @MatiasMontoto and #201 (comment) to solve. The result is:
"dependencies": {
"gltfjsx": "^6.2.11",
"read-pkg-up": "^10.0.0",
"sharp": "^0.32.5",
I didn't have success using NPM, so I used Yarn and worked :)

my solution that worked for node v18.17.0 :
npm install read-pkg-up
that's it it works perfectly now.

For me I have tried all the above methods nothing worked.
So I cloned  the repository locally and run the same command(npx gltfjsx modelname.glb) from the gltfjsx directory and it works. I successfully generated the modelname.jsx file.

I got it to work with npm install read-pkg-up

I mixed @nathaponb + @MatiasMontoto and #201 (comment) to solve. The result is:
"dependencies": { "gltfjsx": "^6.2.11", "read-pkg-up": "^10.0.0", "sharp": "^0.32.5",
I didn't have success using NPM, so I used Yarn and worked :)

Amazing! I have been stuck on this forever and it worked, thank you
I used npm to install those three packages

I used npm to install those three packages. Also currently on node v19.6.1
npm i gltfjsx read-pkg-up sharp

That also did the trick for me using pnpm on node:  v18.16.0
Thank you

It did install, but I have this severity warning:
`S Command Injection - https://github.com/advisories/GHSA-926x-m6m5-3mmp
No fix available
node_modules/push-dir
1 high severity vulnerability
Some issues need review, and may require choosing
a different dependency.`
is that fine?

yeap it also worked on me.
npm i gltfjsx read-pkg-up sharp
works pretty fine(react vite environment). But the question is why it works?


404 Not found error when loading the browser UI for CVAT

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

I have installed and previously used the CVAT server in my remote system (Ubuntu 18.04) and accessed it from the default URL localhost:8080. This usually worked fine. For solving previous issues, I had to start a brand new clone of the repo (development branch and up-to-date) and attempted to rebuild the docker containers using docker-compose. Since there were already images available for the containers, I could directly up the container (skipping the rebuild) with sudo -E docker-compose up -d. The output of this also seems to up the containers without issues. I use the -E flag for environment variables http_proxy, https_proxy, and no_proxy, which are enterprised defined. I have also set the docker/config.json accordingly. I also access the Ubuntu host from a remote connection, using Putty, and behind a corporate VPN.
When trying to access the default localhost:8080 where CVAT runs (set in Putty in my tunnel connections), I get a 404 Not found Error using Chrome. I have experimented with setting CVAT_HOST environment variable to localhost or http://localhost or <IP_ADDRESS>, but none seem not to have a positive effect, and CVAT is not able to load the UI.
When accessing the container logs, I see that traefik has errors regarding /etc/traefik/rules file not found. This path is mentioned within the docker-compose.yml. Note also that I don't have a cvat_proxy container or a docker-compose.override.yml file, and am not aware of how to set these or if they are necessary. Could someone provide some guidance in order to be able to load the UI again? Many thanks in advance!
docker-compose.yml as follows:
` version: '3.3'
services:
cvat_db:
container_name: cvat_db
image: postgres:10-alpine
restart: always
environment:
POSTGRES_USER: root
POSTGRES_DB: cvat
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- cvat_db:/var/lib/postgresql/data
networks:
- cvat
cvat_redis:
container_name: cvat_redis
image: redis:4.0-alpine
restart: always
networks:
- cvat
cvat:
container_name: cvat
image: openvino/cvat_server
restart: always
depends_on:
- cvat_redis
- cvat_db
- cvat_opa
environment:
DJANGO_MODWSGI_EXTRA_ARGS: ''
ALLOWED_HOSTS: '*'
CVAT_REDIS_HOST: 'cvat_redis'
CVAT_POSTGRES_HOST: 'cvat_db'
ADAPTIVE_AUTO_ANNOTATION: 'false'
no_proxy: elasticsearch,kibana,logstash,nuclio,opa,${no_proxy}
labels:
- traefik.enable=true
- traefik.http.services.cvat.loadbalancer.server.port=8080
- traefik.http.routers.cvat.rule=Host(${CVAT_HOST:-localhost}) &&
PathPrefix(/api/, /git/, /opencv/, /static/, /admin, /documentation/, /django-rq)
- traefik.http.routers.cvat.entrypoints=web
volumes:
- cvat_data:/home/django/data
- cvat_keys:/home/django/keys
- cvat_logs:/home/django/logs
networks:
- cvat
cvat_ui:
container_name: cvat_ui
image: openvino/cvat_ui
restart: always
depends_on:
- cvat
labels:
- traefik.enable=true
- traefik.http.services.cvat-ui.loadbalancer.server.port=80
- traefik.http.routers.cvat-ui.rule=Host(${CVAT_HOST:-localhost})
- traefik.http.routers.cvat-ui.entrypoints=web
networks:
- cvat
traefik:
image: traefik:v2.4
container_name: traefik
restart: always
command:
- '--providers.docker.exposedByDefault=false'
- '--providers.docker.network=cvat'
- '--entryPoints.web.address=:8080'
- '--providers.file.directory=/etc/traefik/rules'
# Uncomment to get Traefik dashboard
#   - "--entryPoints.dashboard.address=:8090"
#   - "--api.dashboard=true"
# labels:
#   - traefik.enable=true
#   - traefik.http.routers.dashboard.entrypoints=dashboard
#   - traefik.http.routers.dashboard.service=api@internal
#   - traefik.http.routers.dashboard.rule=Host(${CVAT_HOST:-localhost})
ports:
- 8080:8080
- 8090:8090
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- cvat
cvat_opa:
container_name: cvat_opa
image: openpolicyagent/opa:0.34.2-rootless
restart: always
networks:
cvat:
aliases:
- opa
volumes:
- ./cvat/apps/iam/rules:/rules
ports:
- '8181:8181'
command: run --server --addr :8181 --set=decision_logs.console=true /rules
volumes:
cvat_db:
cvat_data:
cvat_keys:
cvat_logs:
networks:
cvat: `

Hi, the 404 error indicates that traefik cannot find an applicable route rule to forward the request because the URL you are trying to access is different from CVAT_HOST, also note that CVAT_HOST must be a FQDN (not a URL) or IP.
What is docker inspect -f '{{ index  .Config.Labels "traefik.http.routers.cvat.rule" }}' cvat output in your case?

Hi, the 404 error indicates that traefik cannot find an applicable route rule to forward the request because the URL you are trying to access is different from CVAT_HOST, also note that CVAT_HOST must be a FQDN (not a URL) or IP. What is docker inspect -f '{{ index .Config.Labels "traefik.http.routers.cvat.rule" }}' cvat output in your case and what url did you use to access cvat?

Hi! Thanks for replying.
The output of docker inspect -f '{{ index .Config.Labels "traefik.http.routers.cvat.rule" }}' cvat is:

I use localhost:8080 as URL to access CVAT. This is the result I get on the browser page:

I didn't have any value configured for a CVAT_HOST env variable.
After setting it to: "<IP_ADDRESS>" and removing cache on my Chrome browser I still got the same screen on localhost:8080.
I then downed and upped the CVAT containers with docker-compose. I see the following:

I also see the same if I access the URL using the IP:

The result is also the same is CVAT_HOST=<IP_ADDRESS>:8080.

As I said earlier CVAT_HOST may be only FQDN or IP, <IP_ADDRESS>:8080 and localhost:8080 are not valid values.
Your first screenshot from Squid proxy that is not used by CVAT, so please check your network configuration, this error page cannot be generated by CVAT
The other screenshots look correct and are generated by traefik, but I don't know what is the reason yet. Lets collect traefik logs:

Add --log.level=DEBUG here https://github.com/openvinotoolkit/cvat/blob/develop/docker-compose.yml#L79
docker-compose down
docker-compose up -d
try to access cvat
collect container logs with docker logs traefik > traefik_log.txt

I added the line as shown:
)

Restarted the containers as indicated in 2. and 3.
4. Accessing CVAT at localhost:8080, I see again the squid server screen
5. I collected the logs and fetched them to the file attached.
traefik_log.txt

Are you have any exported proxy environment variables on the server? If yes try to set empty values for the traefik service like this
  traefik:
    image: traefik:v2.4
    container_name: traefik
    restart: always
    environment:
      http_proxy: ""
      https_proxy: ""
      HTTP_PROXY: ""
      HTTPS_PROXY: ""
    command:
   ...

Indeed, I had set proxy env variables. After adding this config for the traefik in the docker-compose I can again access the CVAT UI at my localhost! Thanks a lot for your help, @azhavoro !
Just to finalize, could you explain what part of the traefik log file led you to think of this?

I have the same question,

I also have false 404 in Ubuntu. Why just don't make Qt aaplication, it is really just not a big utillity?

sudo usermod -aG docker $USER
sudo chmod 666 /var/run/docker.sock
sudo apt-get install unzip
export CVAT_VERSION="v2.2.0"
cd cvat
docker compose down
cd ..
mv cvat cvat_170
wget https://github.com/opencv/cvat/archive/refs/tags/${CVAT_VERSION}.zip
unzip ${CVAT_VERSION}.zip && mv cvat-${CVAT_VERSION:1} cvat
cd cvat
docker pull cvat/server:${CVAT_VERSION}
docker tag cvat/server:${CVAT_VERSION} openvino/cvat_server:latest
docker pull cvat/ui:${CVAT_VERSION}
docker tag cvat/ui:${CVAT_VERSION} openvino/cvat_ui:latest
docker stop $(docker ps -aq)
docker compose up -d

Using Chrome?

I was able to fix using this override file:
services:
cvat_server:
labels:
- traefik.http.routers.cvat.rule=PathPrefix(/api/, /static/, /admin, /documentation/, /django-rq)
cvat_ui:
labels:
- traefik.http.routers.cvat-ui.rule=HostRegexp({subdomain:[\S]+})


commerce kit

📝 Changed routes:

/solutions/commerce

(view full size)

Commit 1e0fe8313bd19e0daa079d57e7df5fa0de959b6e (https://thirdweb-emmd3hp7b.thirdweb-preview.com).


Updating Azure.Core version dependency to Preview_2

https://github.com/microsoft/typespec/issues/3037

:x: There is undocummented changes. Run chronus add to add a changeset or click here.
The following packages have changes but are not documented.

:x:@azure-tools/typespec-azure-resource-manager

You can try these changes at https://cadlplayground.z22.web.core.windows.net/typespec-azure/prs/457/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/typespec-azure/prs/457/


Pair of ApiKeys

I would like to use header value pair to authenticate the client and the documentation say it could be possible.
https://swagger.io/docs/specification/authentication/api-keys/
It seems to me I can't achive this with the .Net Api. Maybe I'm wrong and I miss something.

Swashbuckle.AspNetCore 5.0.0 (currently available as a beta package) supports the Swagger/OpenAPI spec 3.0, which in turn supports pairs of ApiKeys.
Here's some example code for defining and requiring this with Swashbuckle.AspNetCore 5.0.0-beta. This example specifies that both keys must be submitted together to authenticate (i.e. logical AND).
services.AddSwaggerGen(c =>
{
    …

    c.AddSecurityDefinition("apiKey", new OpenApiSecurityScheme { Type = SecuritySchemeType.ApiKey, In = ParameterLocation.Header, Name = "X-API-KEY" });
    c.AddSecurityDefinition("appId", new OpenApiSecurityScheme { Type = SecuritySchemeType.ApiKey, In = ParameterLocation.Header, Name = "X-APP-ID" });

    c.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "apiKey" }
            },
            new string[] {}
        },
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "appId" }
            },
            new string[] {}
        }
    });
});

I tried this code using Swashbuckle.AspNetCore 5.4.1, but it gives me two independent keys (i.e. logical OR) in the API (screenshot attached).

The keys are still listed separately on Swashbuckle.AspNetCore-5.6.3 using the code above.

On further reflection, this issue/question is UI specific and therefore should be submitted to the swagger-ui instead of Swashbuckle. Furthermore, it's more of a UX issue than an actual bug. In it's current implementation, the UI simply lists the available schemes, and leaves it up to the user to combine them as needed. For example, in your screenshot above, you can enter the key values and click the "Authorize" button for one or both schemes. If you do both, then both keys will be added to the request with the "Try it out" functionality.


services/horizon: dont' require stellar-core-url when disable-tx-sub=true

What version are you using?
master
What did you do?
ran horizon with disable-tx-sub=true but did not include stellar-core-url
DISABLE_TX_SUB=true INGEST=false DATABASE_URL="xyz" ./horizon

What did you expect to see?
horizon startup logs
What did you see instead?
error output
DISABLE_TX_SUB=true INGEST=false DATABASE_URL="xyz" ./horizon
flag --stellar-core-url cannot be empty

need to make the check on stellar-core-url flag presence be conditional when the new DISABLE_TX_SUB=false
add new test horizon starts successfully when DISABLE_TX_SUB=true and stellar-core-url is not provided in parameters_test.go. this will require changing some upper generic test layers to stop automatically putting stellar-core-url in the test environment by default - https://github.com/stellar/go/blob/master/services/horizon/internal/test/integration/integration.go#L428


[3.3.3] Broken Database.Update

Following code would fail in PocoExpandoTest because the PocoColumn corresponding to the primary key does not get initialized properly and does not have ColumnType info.
[Test]
public void CanUpdateDynamic()
{
    var result = Database.FirstOrDefault<dynamic>("select UserId, Name, Age from users where userid = 1");
    result.Name = "changed";
    Database.Update("users", "UserId", result, new[] { "Name" });
}

Preparing a PR.

Created PR https://github.com/schotime/NPoco/pull/283 that adds a couple tests + should fix the issue.


Add README

Hey @xirehat,
Thanks for your contribution. I'll make some changes to the PR before merging if you are okay.


Field not initialized warning on a comment line

Steps to reproduce
Migrating github.com/timsneath/win32
What actually happened?
Two separate / interrelated issues:

Bottom right pane complains that field is not initialized at line 461. But this line is a comment.
Text for this row is strangely formatted -- looks like two separate fonts overlaid.

See screenshot:

Dart SDK version: 2.11.0-203.0.dev
Thanks for filing!

Ah -- looking at this row more, it seems like the _ in SECURITY_ATTRIBUTES is being interpreted as the beginning of an italics section (Markdown?) We should sanitize inputs better.

As of 1c7fe7196dd7a542f7f91cd6ea2ac81e1a13146c, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.
If you still need help, or you believe this issue has been closed in error, please feel free to reopen.


[Guide]: Virtual DSM - OpenWrt - qemu-system-x86_64

Question
Link: https://github.com/mndti/virtual-dsm-openwrt-qemu
Install / Instalar

  sh <(wget -qO- https://raw.githubusercontent.com/mndti/virtual-dsm-openwrt-qemu/main/vdsm_install.sh)

Once again I want to thank @kroese for the excellent work.
Through your project, I was able to create my personal project in openwrt.
For many it doesn't make sense to run this in an openwrt, but I personally find openwrt very powerful, light and fast. For my particular use, using Proxmox is wasting machine resources.
After some testing, I made a script, if anyone is interested. I also discovered that the problem I had when using qemu in openwrt (the VM periodically restarted at alternating intervals of 2h/8h/16h/etc), without parameters.
Installing the intel-microcode iucode-tool package resolved the issue. I had the same behavior on proxmox without intel microcode.
My thanks also to @Deroy2112 and @r0bb10 for their contributions.

6

great! Thank you so much, work great on my x86 router openwrt


Fix for ice

Fix for domain name incase of server side ice candidate. Resolved domain name to ip address.

Hi @ashar02, code looks good, wonder why this needs to be executed all the time instead of being optional somehow. Can you explain me high level the case/s when this needs to be applied to get more context?

It runs on answer sdp's ice candidates. Normally we set ip address in licode_config.js. But different deployments use domain name as well. When domain name comes in ice candidate then licode's web (javascript) works perfectly but in iOS it fails. So I resolve the domain name with ip and pass it further to work in this environment. Good thing about domain name to ip resolve is that if you pass ip address to this method then it returns same ip address immediately but if you pass domain then it returns its associated ip address. So I do not need it to check whether its ip or domain because at the end in any case it returns me ip address.

When domain name comes in ice candidate then licode's web (javascript) works perfectly but in iOS it fails

You mean always fail?
Is it when libjingle parses ICE candidates with domain name or is it a Licode's failure?
If by specification ICE candidate parsers should support both ip and domain, I'd say is better to keep this functionality as optional to help as workaround no matter which endpoint is causing the trouble, but try to be tied to both specifications, webrtc and licode.

Yes in case of domain name it always fails.
Its libjingle issue. Optional mean put this code in conditional compilation and whoever needs this should enable it by flag. Right?

well actually I was thinking some global setting on the lib or extra
parameter on methods, but now you mention the conditional flag it would
make sense, perhaps is good to attach libjingle issue to changelog to be
aware about the change.
El mar., 30 de abr. de 2019 a la(s) 02:52, ashar_clary (
<EMAIL_ADDRESS>escribió:

Yes in case of domain name it always fails.
Its libjingle issue. Optional mean put this code in conditional
compilation and whoever needs this should enable it by flag. Right?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/zevarito/Licode-ErizoClientIOS/pull/87#issuecomment-487828300,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAKA2WUNZOERZXIFHZLEYTPS7NBTANCNFSM4HJC7FUA
.

--
Alvaro

Please review.

Ice is failing because in Licode configuration you set domain instead of IP. Current version of PodRTC (m65) does not support domain name in ice candidate. To work around this limitation, go into the file ECClient.m and uncomment the line #define RESOLVE_DOMAIN_INTO_IP. It will replace the domain name with its associated IP address.

@ashar02 I've not release new PodRTC version in ages, please point me which version of webrtc would be nice to build.

@zevarito so far I got the chance to compile and use m72. I was facing the problem in rtsp streams and this ice candidate issue m65. These both are fixed in m72. Also, do not forgot to enable VP9 when you compile the framework. And I think bitcode is also supported in this branch.


Skip collecting tags from Background

"Background" is also a child of Feature, but it does not have "tags" property, so self._collectTags end up with an error, while trying to get tags from it.
This simple 'if' statement solves the issue.

Thanks for the pull request @SkadeGlad.  Would it be possible to add an acceptance test that covers the issue?

@SkadeGlad I've added a test for Backgrounds and merged into master.  I'll do a release now.  Thanks for the pull request

@SkadeGlad I've just pushed the fix as version 1.0.1: https://www.npmjs.com/package/parallel-cucumber


forge fmt parsing errors are unhelpful

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (cce3a44 2022-07-20T00:14:55.494548Z)
What command(s) is the bug in?
forge fmt
Operating System
macOS (Intel)
Describe the bug
The error message from forge fmt
Failed to parse Solidity code for src/immutable/as_function_param.sol. Leaving source unchanged.
Debug info: [Diagnostic { loc: File(168, 33, 42), level: Error, ty: ParserError, message: "unrecognised token 'immutable',

expected \"!=\", \"%\", \"%=\", \"&\", \"&&\", \"&=\", \"(\", \")\", \"*\", \"**\", \"*=\", \"+\", \"++\", \"+=\", \",\", \"-\", \"--\", \"-=\", \".\", \"/\", \"/=\", \":\", \";\", \"<\", \"<<\", \"<<=\", \"<=\", \"=\", \"==\", \"=>\", \">\", \">=\", \">>\", \">>=\", \"?\", \"[\", \"]\", \"^\", \"^=\", \"calldata\", \"case\", \"days\", \"default\", \"error\", \"ether\", \"gwei\", \"hours\", \"indexed\", \"leave\", \"memory\", \"minutes\", \"revert\", \"seconds\", \"storage\", \"switch\", \"weeks\", \"wei\", \"{\", \"|\", \"|=\", \"||\", \"}\", identifier", notes: [] }]

Contrasted with solc:
contract C {
    function f(uint immutable) public pure {}
}
// ----
// DeclarationError 8297: (28-42): The "immutable" keyword can only be used for state variables.

There are more errors like this, e.g.
unhelpful:~ $ Debug info: [Diagnostic { loc: File(47, 9, 16), level: Error, ty: ParserError, message: "unrecognised token 'library', expected \"contract\"", notes: [] }]

helpful:~ $ TypeError 9571: (0-22): Libraries cannot be abstract.

These are not necessarily incorrect, they are just more opaque because the formatter uses solang-parser to parse the code, it does not use solc in any capacity, so the error is from solang-parser. Will probably need to do a general error message pass on the formatter where possible, so I'll change this issue to that instead

These are not necessarily incorrect, they are just more opaque because the formatter uses solang-parser to parse the code, it does not use solc in any capacity, so the error is from solang-parser. Will probably need to do a general error message pass on the formatter where possible, so I'll change this issue to that instead

yup, though should there be a check post fmt that ensures it compiles as a sort of sanity check?

The parser would error before that anyway, so my point re: error messages still stands :)

The parser would error before that anyway, so my point re: error messages still stands :)

Ok, for reference the parser used by prettier solidity is relaxed wrt how strict it enforces reading, so your saying that the parser is infact as strict as solc gotcha

Doesn't really matter if it's as strict as solc in this context, it won't make solc/solang-parser interchangeable and it won't make it possible to invoke solc for a sanity check before we do the formatting. =
Can't speak to the parser used by prettier-solidity other than that we obviously can't use it :) =
Don't know much about how solang-parser works, it might be an option to make it more lax (cc @seanyoung) but it would likely require some work. To be clear: the error is in solang-parser itself, we do not control this specific part so we cannot make it more lax in our codebase

We have a hyperledger mentorship mentee who will work on making the parser more lax: https://wiki.hyperledger.org/display/INTERN/Solang+Solidity+Compiler+optimizations+and+error+handling
That doesn't deal with the quality of the error message though. The way solang works through the following stages:

parse:  this based on parser generated from grammar, this is solang-parser
sema: semantic analysis. This checks that the solidity file is entirely valid, and produces a validated ast.
codegen: generate CFG style code
emit: generate llvm IR

Currently forge fmt uses the raw parse tree from solang-parser. Ideally it would use the ast produced by sema, but sema is not complete yet (especially for evm solidity, it was written for non-evm chains). Once we get sema in order, forge fmt can switch to the ast from solang and generate source code based on a fully validated parse tree.
In the mean time, errors like The "immutable" keyword can only be used for state variables. is not something the parser can produce, that is something that sema does.

We have a hyperledger mentorship mentee who will work on making the parser more lax: https://wiki.hyperledger.org/display/INTERN/Solang+Solidity+Compiler+optimizations+and+error+handling
That doesn't deal with the quality of the error message though. The way solang works through the following stages:

parse:  this based on parser generated from grammar, this is solang-parser
sema: semantic analysis. This checks that the solidity file is entirely valid, and produces a validated ast.
codegen: generate CFG style code
emit: generate llvm IR

Currently forge fmt uses the raw parse tree from solang-parser. Ideally it would use the ast produced by sema, but sema is not complete yet (especially for evm solidity, it was written for non-evm chains). Once we get sema in order, forge fmt can switch to the ast from solang and generate source code based on a fully validated parse tree.
In the mean time, errors like The "immutable" keyword can only be used for state variables. is not something the parser can produce, that is something that sema does.

When do you think it likely sema will be usable in the way you described? Also thank you for the detailed response, this would be helpful to document potentially in the handbook as a reference!

summary: considering that the desired error output format is not smth we can produce based on the parse tree, we'll wait for the sema to become more feature complete. closing this issue, feel free to reopen when relevant

When do you think it likely sema will be usable in the way you described?

Not sure. sema would require a new EVM target and running all the same tests through sema and fixing up all the issues. We would all love to see EVM support in solang, and that starts with EVM support in sema. Something we would be definitely be working on at some point.


Fix get person function

This PR was created to fix the getPerson function because in the flexbase-web repository it is not returning the object with the user information.

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


Add links to godoc for each module

Great! Can you join both commits in one? :relaxed:

Done! :dancer:


fix: profiles api json tags can't json.Unmarshal

Closes weaveworks/weave-gitops-enterprise#1234

What changed?
Due to an issue with the proto3 generator the json:"" tags that are generated when a proto field name includes an underscore (e.g. available_versions) also includes an underscore. However, the protobuf:json= definition does not. This means that when the server marshals the response into JSON the fields are marshalled with snakeCase.
For an minimal example:
profiles.proto
massage Profile {
    repeated string available_versions;
}

Generated profiles.pb.go
type Profile struct {
    AvailableVersions []string `protobuf:"bytes,11,rep,name=availableVersions,json=availableVersions,proto3" json:"available_versions,omitempty"`
}

This is causing an issue with the CLI which uses https://github.com/go-resty/resty to Unmarshal API responses, causing the affected fields to not correctly Unmarhsal into the GetProfilesResponse struct.
This is a known issue with proto3, and no fix is coming. See the following issues:
https://github.com/golang/protobuf/pull/578
https://github.com/golang/protobuf/issues/183
https://github.com/golang/protobuf/issues/1388
Rather than customise the protobuf:json= name using [json_name = "available_version"], which would break the UI, it is simpler just to update the field names in the proto definition.

@ozamosi

I assume this breaks compatibility between CLI 0.9.2 and enterprise 0.9.1?

The compatibility is already broken, as this issue already exists between CLI 0.9.1 and enterprise 0.9.1


[Feature]: Backend Setup

Describe the feature
Designing the Backend for the project

Storing the Products
User related data

Add ScreenShots
Designing the Backend for the project

Storing the Products
User related data
With Addition to this,
Login Signup

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hello @trishanu-init Can i work on this issue under gssoc and level label?

/assign-me

Hello @trishanu-init assign this issues to me please. I am pretty good with backend