Is there any current or planned support for guest accounts?

Is there an option I'm missing or a plan for the future to support the abiliy to add users who only have access to selected streams and/or topics? This would be extremely useful for including contractors in a team only where they are relevant without giving them access to a team's entire body of messages.

@dbstraight it doesn't exist yet, and there aren't immediate plans to implement it, but it's something that will almost certainly exist in the future.  This would be a medium-sized project to implement, but I don't think any major restructuring would be required to make it happen.

Here's a design for how this should work, where we can work in an incremental fashion and then eventually make it possible to create a guest user:

[ ] We create a new boolean on UserProfile, is_guest.  Eventually, we may want to refactor the model for user types to some other form, but I think this will be nice and simple and fine for getting the logic flows correct.

[ ] We modify populate_db to create a guest user to make it easy to do manual and unit testing for these users.

[ ] We modify a few key backend/API functions to handle these users correctly from a security model perspective:

[ ] The functions in zerver/lib/streams.py need to be modified.  E.g. access_stream_common and  can_access_stream_history_by_name should have checks for is_guest before the stream.is_public case; basically, no streams are treated as public for guest users.
[ ] access_message should have a similar check.
[ ] gather_subscriptions_helper in zerver/lib/actions.py needs to be modified to treat all streams as private for the purposes of these users.  This should basically be doable by just expanding the user_profile.realm.is_zephyr_mirror_realm check.
[ ] We need to audit all the code paths where we send events related to streams to all users in a realm for similar things.  Grepping for is_zephyr_mirror_realm is probably a good way to do this (since Zephyr mirror realms also conveniently don't advertise public streams).  Probably the right way to do this is to add a user_profile.can_see_public_streams() function that's a thin wrapper around is_zephyr_mirror_realm and this is_guest feature, and refactor most of the checks on is_zephyr_mirror_realm to use that.

[ ] We need to make some UI changes for a user who is of this type.

Once the above is all done, we make the invite UI support creating a guest user.

I merged 49f58583a4464f2af630de57b561489c96fbd2ed, which should help save others from needing to read and understand which zephyr_mirror cases are definitely things that should become this flag.

@timabbott I want to know if there is any doc where we can refer to the guest user model, here is my current knowledge about the guest user(from above steps).

The guest user is "invite only" member

(invited only for a definite or indefinite term?)

Streams:

The guest user can not access any stream except to those to which they are invited/subscribed.

Guest user can't use some common functionality like

Creating a bot
Create a stream

I'll edit this comment for the reference to guest user model if there isn't any other!

I think roughly we're aiming for something similar to Slack's feature, and this is a helpful guide to how they do it: https://get.slack.help/hc/en-us/articles/202518103-Multi-Channel-and-Single-Channel-Guests
We may not want to do the precise thing, but that's a good checklist of the questions.

Just to make a note on strategy here, for each of these features, we sorta have 2 phases of work.  First, we block the thing working in the backend, which addresses API concerns.  We can then test that it's doing its job by clicking around the UI in addition to the unit tests.  Then, we do a change in the frontend to hide access for guest users to widgets that they don't need access to.
I put a very partial list that we can sorta edit as we merge changes into our developer docs as 76fba19d205177ed5e56da1bec2d2837395992b2.
I just added in 508dc5b6ed739134131abef3d1feca117e426778 new decorators that we can use for locking down various endpoints against guest users (basically the backend piece).
I think my next steps on this project are to work on some of the audits that are generally hard for someone else to do, as they can require a lot of context :)

First of all, this is such a powerful, light and beautiful application. I embarrassedly recognize it was love at first sight. I saw it, quickly tested it and couldn't get more sleep 🥇 This is a wonderful piece of art. Work as well :)
It has everything you need for communication.
I only miss two things, and they are both related to user type. Some sort of super admin (to re-use WP types in MI) and guest type, the read-only guy.
When I read everything that needs to be done on your post dated Apr 20, @timabbott , I, as a humble user, couldn't imagine that. I thought it was something like to have the credential to read a part of the site (where we write). If admin or user, display that field. Otherwise, hide it. That is the depth of my naivite (or ignorance)...
As for the super admim - this is not the right place (it is about guest).  But it seems to me that all admins have the same power. Including to get rid of the creator. The super admin should be able to see everything and never be "fired". The admin (or a department, a private team, etc) would control her or his stream.
Anway, this is a beautiful and powerful application that deserves every single praise both for functionality and user interface.

I guess you're talking something similar to slack's "Owner" and "Admin", where admins are appointed by the owner and have almost all powers owners except some superior decisions about the organization.
@timabbott I guess we have discussed similar "Moderator" and "Admin" hierarchy few months ago but didn't reach any conclusion.

@timabbott For

realm.presence_disabled checks may need to be updated to support not sending full presence to guest users.

@shubhamdhama I don't think so; only half of the code paths should be modified here (e.g. guest users should still send presence data; just not receive all of it).  It's just a good thing to grep for in order to find the code paths we'll need to modify.
I think we should skip the presence step for now, though, because the feature would be fine and totally useful even if gave guest users full access to presence, whereas that isn't true for a bunch of other pieces here.  I'm going to reorder it to sit at the end of the TODO list for that reason.


Switches

Could the buttons be buttons in HK or the of/off be a switch, so they fit in together better?

I don’t understood what you mean. Can you be more specific?

The On/Off switch is a button, but 'Buttons' added by Homebridge appear as switches (below). Is it possible to make the 'buttons' appear as buttons in HomeKit, or the on/off switch be made a switch in HomeKit, so they match?

.

OK, update to 2.0.2 and let me know.

Still appears as a switch, how can I update to the typo fix?


argmax(x, 0) on a 1 column matrix returns incorrect result

When argmax(x, axis = 0) is run over a 1 column matrix, the results are not as I expect. When using a 2 column matrix, the result is correct.
Forgive my R based example, but the actual code doesn't use any Rcpp structures.
// [[Rcpp::depends(xtensor)]]
// [[Rcpp::plugins(cpp14)]]

#include <xtensor/xarray.hpp>
#include <xtensor/xsort.hpp>
#include <xtensor/xio.hpp>
#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
void xtensor_argmax_one_column() {
  xt::xarray<int> x = {{1, 2, 3, 4}};
  x = xt::transpose(x);

  std::cout << "x:\n" << x << std::endl;

  xt::xarray<int> res = xt::argmax(x, 0);

  std::cout << "res:\n" << res << std::endl;
}

// [[Rcpp::export]]
void xtensor_argmax_two_column() {
  xt::xarray<int> x = {{1, 2, 3, 4}, {1, 2, 3, 4}};
  x = xt::transpose(x);

  std::cout << "x:\n" << x << std::endl;

  xt::xarray<int> res = xt::argmax(x, 0);

  std::cout << "res:\n" << res << std::endl;
}

I should expect the first to return 3 right?
Rcpp::sourceCpp('~/Desktop/test.cpp')

xtensor_argmax_one_column()
# x:
# {{1},
#  {2},
#  {3},
#  {4}}
# res:
# {0}

xtensor_argmax_two_column()
# x:
# {{1, 1},
#  {2, 2},
#  {3, 3},
#  {4, 4}}
# res:
# {3, 3}

Looks like argmin() has this problem too. Flip x and call argmin(x, 0) and you get the same wrong results.

Here is an easy binder notebook you should be able to upload and open with jupyter.

xtensor-argmax.ipynb.zip

Thanks for reporting this issue! The best way for us is to have a unit test case that we can copy/paste, with actual and expected results (just like what you did in the first message).
There was some refactoring in the reducers in the last release that fix some issues, it looks like we missed some of them. I'm looking into this once I've finished with previous issues.

Just FYI, I have a gut feeling that this issue is related to this one https://github.com/QuantStack/xtensor-r/issues/88


Switch flit

Codecov Report

Merging #127 (82676f9) into main (c9bb8b6) will increase coverage by 22.53%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #127       +/-   ##
===========================================
+ Coverage   77.17%   99.70%   +22.53%
===========================================
  Files          44       25       -19
  Lines        2015      675     -1340
===========================================
- Hits         1555      673      -882
+ Misses        460        2      -458

Impacted Files
Coverage Δ

tests/test_textgrid.py
100.00% <ø> (ø)

src/crowsetta/_vendor/textgrid/__init__.py

src/crowsetta/_vendor/textgrid/exceptions.py

src/crowsetta/_vendor/textgrid/textgrid.py

src/crowsetta/textgrid.py

src/crowsetta/csv.py

src/crowsetta/__about__.py

src/crowsetta/yarden.py

src/crowsetta/segment.py

src/crowsetta/birdsongrec.py

... and 10 more

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 21ec074...82676f9. Read the comment docs.


Details page is empty when CJK chars is used in endpoint name

I use the latest version of Gatus, which is v5.10.0.
Steps to reproduce this problem:

create a endpoint with the name "中", which is Chinese char.
Start Gatus and navigate to the status page, click this endpoint item's title "中", open the details page.
Now you can see an empty page with only recent status shown gray dotted boxes.

The DevTools shows that the API which returns details data response with "endpoint not found".

This may sound a little presumptuous, but you could just use alphanumerical characters.
I know this isn't optimal for people that want to display text in their native language, but I am personally biased toward keeping everything programming-related in English despite my native language not being French.
I'm sorry but right now, supporting multiple languages is just not something I'm willing to put any effort in.
Perhaps if some day, I can afford to work full time on Gatus, I'll add support for different languages, but I'm still far from that.

I got an idea. How about adding a new attribute of endpoint called display-name? In this way, the API path still only supports English, while the UI can display any text. As far as I know, Golang has built-in utf8 support. CJK characters can be displayed without much effort.


feat: Allow public constants to be configured within a package

Packwerk only allows explicit private constants to be configured, or a public directory within which public interfaces/constants live. This pushes packwerk more towards a world where we can test for privacy violations within app/services under our current public/private assumptions.

can you give an example showing how we'll use this?

can you give an example showing how we'll use this?

Ah yes, apologies, I intended to provide a bit more context in the PR. Each "package" within scriptdash (i.e. directory within app/services) would have a package config file. For scheduling, it would look like this:
enforce_privacy: true
public_constants:
  - '::Scheduling'

This would tell packwerk that it should consider this package private and consider any references outside of this package to constants within this code as privacy violations. This change makes it such that we can list which constants should be considered public. Normally packwerk requires a public directory in which you should put all public constants, but we don't want to have to do any restructuring of our code.
For most packages under our rules of private vs. public, this list would just include the top level module constant. But for things like analytics where we EventBuilder, this list would also include ::Analytics::EventBuilder.

@dmcaulay, is that enough context for you? Any feedback or thoughts?


But what happened to my eggs, bacon, and toast?

In the original synchronous scenario, once our eggs, bacon, and toast had been announced, we actually had some eggs, bacon, and toast to enjoy. By the time we reach the end, we're executing async tasks that return eggs, bacon, and toast, and we announce the readiness of the eggs, bacon, and toast, but once our WhenAny loop is done we find that we've never retrieved the eggs, bacon, and toast from the tasks that supplied them. We've left them to sit there to get cold. How can we retrieve them and enjoy them?

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

ID: 17d27a0d-c072-8c9f-7e31-3de60bee9ae8
Version Independent ID: e0c09794-e712-19ff-cb9f-12648d60d4f6
Content: Asynchronous programming in C#
Content Source: docs/csharp/programming-guide/concepts/async/index.md
Product: dotnet-csharp
Technology: csharp-async
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Is this the answer? Enhance
                if (finishedTask == eggsTask)
                {
                    Console.WriteLine("eggs are ready");
                }
                else if (finishedTask == baconTask)
                {
                    Console.WriteLine("bacon is ready");
                }
                else if (finishedTask == toastTask)
                {
                    Console.WriteLine("toast is ready");
                }

as follows
                if (finishedTask == eggsTask)
                {
                    egg = await finishedTask;
                    Console.WriteLine("eggs are ready");
                }
                else if (finishedTask == baconTask)
                {
                    bacon = await finishedTask;
                    Console.WriteLine("bacon is ready");
                }
                else if (finishedTask == toastTask)
                {
                    toast = await finishedTask;
                    Console.WriteLine("toast is ready");
                }

? I think this is the answer implied several pages later, here. Is it that once a Task has completed, it can be awaited additional times, still resolving each time to the result already arrived at?

Thanks for writing this @HalHaynes
Yes, your analysis is correct. The changes you make do retrieve the result (your food) from the completed task. We'll update the article to include this.

Thanks for writing this @HalHaynes
Yes, your analysis is correct. The changes you make do retrieve the result (your food) from the completed task. We'll update the article to include this.

Closing as this has been fixed in earlier PRs.


Ads Not Showing

I have a Game on Xbox Live and where my ad should be … it's blank. I can post my code upon request. ??

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

ID: 4d30c2cc-bf35-ffa8-fde8-c38d18da72cf
Version Independent ID: 6e877806-26cc-7078-bbeb-351bad62ad7f
Content: In-app ads - UWP app developer
Content Source: windows-apps-src/publish/in-app-ads.md
Product: windows
GitHub Login: @JnHs
Microsoft Alias: wdg-dev-content

Hi there - sorry to hear about this problem. Please open a support request at http://aka.ms/storesupport so that we can look into this further!


Fixed issue with lane switching during game start

"var dmg" is always 0 when the game starts the first time (DPS is 0 since the player has 0 auto-fire cannons). Future enhancement would be to include the DPS from the auto-clicker.
Fixed the if statement by using proper operators, this fixes #16

Don't merge this yet, need to do some final testing.


Invalid error message for locked account

Describe the issue:
Locked account display invalid error when attempting to login.

How to reproduce:

Login to console
Lock created user
login with locked user

Expected behavior:
Error should be below,

Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


[Bug] [Milvus] collection name can only contain numbers, letters and underscores: invalid parameter

Search before asking

[X] I had searched in the issues and found no similar issues.

Operating system information
Linux
Python version information
3.10
DB-GPT version
main
Related scenes

[ ] Chat Data
[ ] Chat Excel
[ ] Chat DB
[X] Chat Knowledge
[ ] Model Management
[ ] Dashboard
[ ] Plugins

Installation Information

[X] Installation From Source

[ ] Docker Installation

[ ] Docker Compose Installation

[ ] Cluster Installation

[ ] AutoDL Image

[ ] Other

Device information
None
Models information
None
What happened
RPC error: [has_collection], <MilvusException: (code=5, message=Invalid collection name: milvus_测试. collection name can only contain numbers, letters and underscores: invalid parameter)>, <Time:{'RPC start': '2024-03-01 09:51:03.496826', 'RPC error': '2024-03-01 09:51:03.524910'}>
What you expected to happen
Fix this
How to reproduce
When the space name is Mixed languages， this error will occur. such as   milvus_测试
Additional context
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

+1 能否在前端加个判定呢，the first character of a collection name must be an underscore or letter: invalid parameter

+1。有大量数据要迁到milvus，这个限制导致了左右数据很难对齐


[Jsontracer] Fix setTimeout to arrow function in index.js

this will fix setTimeout to arrow function in Jsontracer/index.js
ONE-vscode-DCO-1.0-Signed-off-by: Junyeong Yang<EMAIL_ADDRESS>

@wnsdud4197
Would you check whether there are some changes if we apply #161 to this PR? :)

@llFreetimell
I only checked the modified part referring to here, but there was no change :)


[CI] pkg-config fails to install on ARM macos14 jobs

Describe the bug, including details regarding any error messages, version, and platform.
Some CI jobs:

Python / ARM64 macOS 14 Python 3
C++ / ARM64 macOS 14 C++

have started failing to install pkg-config via brew:
 Installing pkg-config
==> Downloading https://ghcr.io/v2/homebrew/core/pkgconf/manifests/2.3.0_1
==> Fetching pkgconf
==> Downloading https://ghcr.io/v2/homebrew/core/pkgconf/blobs/sha256:5f83615f295e78e593c767d84f3eddf61bfb0b849a1e6a5ea343506b30b2c620
==> Pouring pkgconf--2.3.0_1.arm64_sonoma.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /opt/homebrew
Could not symlink bin/pkg-config
Target /opt/homebrew/bin/pkg-config
is a symlink belonging to<EMAIL_ADDRESS>You can unlink it:
  brew unlink<EMAIL_ADDRESS>
To force the link and overwrite all conflicting files:
  brew link --overwrite pkgconf

To list all files that would be deleted:
  brew link --overwrite pkgconf --dry-run

Possible conflicting files are:
/opt/homebrew/bin/pkg-config -><EMAIL_ADDRESS>/opt/homebrew/share/aclocal/pkg.m4 -><EMAIL_ADDRESS>/opt/homebrew/share/man/man1/pkg-config.1 -><EMAIL_ADDRESS>==> Summary
🍺  /opt/homebrew/Cellar/pkgconf/2.3.0_1: 27 files, 474KB
Installing pkg-config has failed!

This seems to have been removed on brew, for pkgconf:

https://github.com/Homebrew/homebrew-core/pull/194885

Component(s)
Continuous Integration

Issue resolved by pull request 44798
https://github.com/apache/arrow/pull/44798


Investigate writeTextToCanvas and measureText function

In https://github.com/CesiumGS/cesium/pull/9765 we settled on a manual pixel-counting approach instead of using the stock browser function CanvasRenderingContext2D.measureText(). This is because browser results were inconsistent, and at the time of the PR, some of the TextMetrics properties were unsupported by Firefox for Android.
If CanvasRenderingContext2D.measureText(), it would be cleaner to use it instead of drawing the text to a canvas and counting each pixel. Instead we could replace ascent, descent, and minx by the TextMetrics properties actualBoundingBoxAscent, actualBoundingBoxDescent, and actualBoundingBoxLeft.
Until then, maybe it's worth taking another look at why writeTextToCanvas is needed..

Related to https://github.com/CesiumGS/cesium/issues/10649#issuecomment-1222595171 : It might be easy to replace this function with the built-in functions now.

Additional issues reported in https://github.com/CesiumGS/cesium/issues/11705.


Add option for rich text editor to forms

The call for participation offers users to use Markdown. This is only good for techies. Please add a simple rich-text editor on the organiser and the public forms that currently allow markdown. Enable the configuration of the editor in the config file.

Editors usually have the option to allow filtered HTML/limit permitted tags. Just need to add a suitable existing library. We need only basic rich text capabilities e.g. font bold, italic, underline, strike-through, color, lists, link.
The following should be possible.
a, abbr, acronym, b, br, code, div, em, h1, h2,
h3, h4, h5, h6, hr, i, li, ol, p, pre, span, strong,
table, tbody, td, thead, tr, ul
And the following attributes:

Compare https://docs.pretalx.org/en/latest/user/markdown.html#using-html

Please assign this issue to me.

Thank you for your interest. Issues are not usually assigned to new contributors. If you would like to solve this issue you can simply create a PR. It is unlikely that someone else would solve issues in the meantime.

So, will any PRs I create be noticed and reviewed? The reason I'm asking is because of a freelance opportunity that might be extended to me after my contributions.
Please enlighten.

Hello Mario. Where are the models stored? I can't seem to find them.

Hello Mario.
Did you get any notifications about a PR I created for this issue?


iOS 9 TOTP Generation

Since the release of iOS 9 it appears that the device time is not synchronizing correctly which is resulting in codes that cannot be verified by servers that are using any other NTP solution (e.g. having the correct time) . Has anybody here experienced this issue?
Links:

http://www.volleythat.com/essays/2015/9/22/did-apple-just-set-millions-of-iphone-clocks-to-the-wrong-time
https://www.reddit.com/r/applehelp/comments/3lau9e/issue_with_time_sync_on_ios_9_iphone_6/

Yep same here. My phone is about 44 seconds ahead

This doesn't seem like something that can be handled/fixed in this project

We were comparing google authenticator to authy, and authy seems to be using an external time service to calculate the token on the same device with the same shared secret.
Would it possible to make a preference to use an external time stamping service (e.g. https://www.openssl.org/docs/manmaster/apps/ts.html) in the mobile applications for this project?

I assume you are all using the Google Authenticator on the App store?
I have forwarded a link to this issue to the maintainers of the app store version.

The reddit link now has the question marked as "solved", does that mean that this was an iphone problem that has now been fixed?

Yes, I realized after the post that the version in the App store is different than here. Thank you for forwarding, the 'solved' tag from reddit is in reference to the work around of manually setting the clock. This is reasonable for an individual use case but we are looking for an enterprise solution. We may need to explore something like authy for as our enterprise solution.
Thank you

Are you seeing this problem with Google OTPs, other services like GitHub, your own PAM installations, or something else?
That is, could this problem be ameliorated on the server side instead of on the app, until Apple start getting their time sync act in gear?

We have opened a ticket with the server product vendor to see if there is a way to configure the allowable time steps variance (RFC 6238 #6).
The answer should come from Apple about the time sync, we are currently working through our channels to open a ticket with Apple.

One could consider if Google Authenticator should access an external time server (when available) instead of relaying on the time on the phone. Or maybe as a setting in the Google Authenticator app?

Such a pull request would be accepted. See caveat above about opensource version vs app store.


Update node-providers-add-1rpc-OP-support

Description
Adding 1RPC to Optimism Dev Docs. 1RPC has relayed over 2 billion requests on Optimism.
https://docs.1rpc.io/overview/supported-networks
Tests
We have tested in local environment and RPC support for OP Mainnet already live.
Additional context
Protecting users' privacy during blockchain interactions, with our free RPC relay.
Metadata

Fixes #[Link to Issue]

@Shawn-ata thank you for contributing! Can you fix your merge conflicts and append your entry to the list? Can you also add your supported OP networks below your description as an h3 tag? For example:
### Supported Networks

- OP Mainnet
- OP Sepolia

@Shawn-ata thank you for contributing! Can you fix your merge conflicts and append your entry to the list? Can you also add your supported OP networks below your description as an h3 tag? For example:
### Supported Networks

- OP Mainnet
- OP Sepolia

@sbvegan resolved the conflict and added h3 tag


Make user invite trigger an email

Email is being sent, but it needs improvements to visual and text


added meta tags title and favicon

changes madde
title tag updated
added images

i think now this is fine as it is


Benchmarking some very simple Flux models

On some extremely simple Flux models, Enzyme seems to be slower than Zygote for me. What's going wrong here?
julia> using Flux, Enzyme, Test, BenchmarkTools

julia> mlp = Chain(Flux.flatten, Dense(28^2 => 32, tanh), Dense(32 => 10));

julia> img = rand32(28, 28, 1, 128);

julia> @inferred mlp(img);  # type-stable

julia> Flux.gradient((m,x) -> sum(abs2, m(x)), mlp, img)[1].layers[2].bias[1:3]
3-element Vector{Float32}:
 -15.980308
   6.2900686
 -79.44746

julia> Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), mlp, img)[1].layers[2].bias[1:3]
3-element Vector{Float32}:
 -15.980312
   6.2900686
 -79.44745

julia> @btime $mlp($img);
  min 10.958 μs, mean 14.119 μs (6 allocations, 43.09 KiB)

julia> @btime Flux.gradient((m,x) -> sum(abs2, m(x)), $mlp, $img);
  min 38.250 μs, mean 67.356 μs (86 allocations, 596.27 KiB)

julia> @btime Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), $mlp, $img);
  min 75.125 μs, mean 119.919 μs (55 allocations, 579.61 KiB)

# a slightly bigger model

julia> lenet = Chain(  # from the model zoo
           Conv((5, 5), 1=>6, relu),
           MaxPool((2, 2)),
           Conv((5, 5), 6=>16, relu),
           MaxPool((2, 2)),
           Flux.flatten,
           Dense(256 => 120, relu),
           Dense(120 => 84, relu),
           Dense(84 => 10),
       );

julia> @inferred lenet(img);  # type-stable

julia> Flux.gradient((m,x) -> sum(abs2, m(x)), lenet, img)[1].layers[1].bias
6-element Vector{Float32}:
 10.119315
  0.0
...

julia> Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), lenet, img)[1].layers[1].bias
6-element Vector{Float32}:
 10.119322
  0.0
...

julia> @btime $lenet($img);
  min 655.583 μs, mean 1.107 ms (160 allocations, 5.60 MiB)

julia> @btime Flux.gradient((m,x) -> sum(abs2, m(x)), $lenet, $img);
  min 4.979 ms, mean 6.300 ms (558 allocations, 14.18 MiB)

julia> @btime Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), $lenet, $img);
  min 8.347 ms, mean 9.752 ms (538 allocations, 15.42 MiB)

# tweak Enzyme to see if details matter...

julia> tmp_loss(m,x) = sum(abs2, m(x));  # give it a name

julia> @btime Enzyme.gradient(Reverse, tmp_loss, $lenet, $img);
  min 8.260 ms, mean 9.766 ms (538 allocations, 15.42 MiB)

julia> @btime Enzyme.gradient(Reverse, tmp_loss, $lenet, Const($img));
  min 8.030 ms, mean 9.235 ms (479 allocations, 14.75 MiB)

julia> @btime Enzyme.autodiff(Reverse, tmp_loss, Active, $(Duplicated(lenet, deepcopy(lenet))), Const($img));
  min 7.642 ms, mean 8.638 ms (359 allocations, 14.57 MiB)

Versions:
(jl_w98UzC) pkg> st Enzyme
Status `/private/var/folders/yq/4p2zwd614y59gszh7y9ypyhh0000gn/T/jl_w98UzC/Project.toml`
  [7da242da] Enzyme v0.13.14

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd48430 (2024-06-04 10:41 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: macOS (arm64-apple-darwin22.4.0)
  CPU: 11 × Apple M3 Pro
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
Threads: 4 default, 0 interactive, 2 GC (on 5 virtual cores)
Environment:
  JULIA_NUM_THREADS = 4

Trying this on another computer, with Julia 1.11, I see similar slowdown on the small model, and a failure on the larger one.

julia> @btime $mlp($img);
  173.251 μs (13 allocations: 42.36 KiB)

julia> @btime Flux.gradient((m,x) -> sum(abs2, m(x)), $mlp, $img);
  494.602 μs (69 allocations: 588.97 KiB)

julia> @btime Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), $mlp, $img);
  884.058 μs (91 allocations: 586.92 KiB)

# Larger model fails:

julia> Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), lenet, img)[1].layers[1].bias
ERROR:
No create nofree of empty function (julia.gc_loaded) julia.gc_loaded)
 at context:   call fastcc void @julia__PoolDims_14_107488({ [2 x i64], [2 x i64], i64, [2 x i64], [4 x i64], [2 x i64] }* noalias nocapture nofree noundef nonnull writeonly sret({ [2 x i64], [2 x i64], i64, [2 x i64], [4 x i64], [2 x i64] }) align 8 dereferenceable(104) %5, [2 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(64) %35, [4 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(96) %34, [4 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(32) %44, [2 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(112) %36) #268, !dbg !297 (julia__PoolDims_14_107488)

Stacktrace:
 [1] PoolDims
   @ ~/.julia/packages/NNlib/CkJqS/src/dim_helpers/PoolDims.jl:20
 [2] PoolDims
   @ ~/.julia/packages/NNlib/CkJqS/src/dim_helpers/PoolDims.jl:43
 [3] MaxPool
   @ ~/.julia/packages/Flux/htpCe/src/layers/conv.jl:728
 [4] macro expansion
   @ ~/.julia/packages/Flux/htpCe/src/layers/basic.jl:53
 [5] _applychain
   @ ~/.julia/packages/Flux/htpCe/src/layers/basic.jl:53

Stacktrace:
  [1] PoolDims
    @ ~/.julia/packages/NNlib/CkJqS/src/dim_helpers/PoolDims.jl:20 [inlined]
  [2] PoolDims
    @ ~/.julia/packages/NNlib/CkJqS/src/dim_helpers/PoolDims.jl:43 [inlined]
  [3] MaxPool
    @ ~/.julia/packages/Flux/htpCe/src/layers/conv.jl:728 [inlined]
  [4] macro expansion
    @ ~/.julia/packages/Flux/htpCe/src/layers/basic.jl:53 [inlined]
  [5] _applychain
    @ ~/.julia/packages/Flux/htpCe/src/layers/basic.jl:53
  [6] Chain
    @ ~/.julia/packages/Flux/htpCe/src/layers/basic.jl:51 [inlined]
  [7] #19
    @ ./REPL[31]:1 [inlined]
  [8] diffejulia__19_105996_inner_242wrap
    @ ./REPL[31]:0
  [9] macro expansion
    @ ~/.julia/packages/Enzyme/RvNgp/src/compiler.jl:8305 [inlined]
 [10] enzyme_call
    @ ~/.julia/packages/Enzyme/RvNgp/src/compiler.jl:7868 [inlined]
 [11] CombinedAdjointThunk
    @ ~/.julia/packages/Enzyme/RvNgp/src/compiler.jl:7641 [inlined]
 [12] autodiff
    @ ~/.julia/packages/Enzyme/RvNgp/src/Enzyme.jl:491 [inlined]
 [13] autodiff
    @ ~/.julia/packages/Enzyme/RvNgp/src/Enzyme.jl:512 [inlined]
 [14] macro expansion
    @ ~/.julia/packages/Enzyme/RvNgp/src/Enzyme.jl:1678 [inlined]
 [15] gradient(rm::ReverseMode{…}, f::var"#19#20", x::Chain{…}, args::Array{…})
    @ Enzyme ~/.julia/packages/Enzyme/RvNgp/src/Enzyme.jl:1661
 [16] top-level scope
    @ REPL[31]:1
Some type information was truncated. Use `show(err)` to see complete types.

(jl_KEzUxT) pkg> st Enzyme
Status `/tmp/jl_KEzUxT/Project.toml`
  [7da242da] Enzyme v0.13.14

julia> versioninfo()
Julia Version 1.11.1
Commit 8f5b7ca12ad (2024-10-16 10:53 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 12 × Intel(R) Xeon(R) CPU E5-2603 v4 @ 1.70GHz
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, broadwell)
Threads: 4 default, 0 interactive, 2 GC (on 12 virtual cores)
Environment:
  JULIA_NUM_THREADS = 4

Sorry finally getting around to this.
So for the first case, I don't see that much of a gap (though definitely it would be good to improve):

julia> fn(m, x) = sum(abs2, m(x))
fn (generic function with 2 methods)

julia> @btime $fn($mlp, $img);

  250.295 μs (6 allocations: 42.59 KiB)

julia> @btime Flux.gradient($fn, $mlp, $img);
  713.314 μs (84 allocations: 595.17 KiB)

julia> dmlp = Enzyme.make_zero(mlp);

julia> dimg = Enzyme.make_zero(img);

julia> @btime Enzyme.autodiff(Reverse, $fn, $(Duplicated(mlp, dmlp)), $(Duplicated(img, dimg)));
  800.866 μs (11 allocations: 85.16 KiB)

Surprised how different those numbers are. I realised I have AppleAccelerate loaded, and if I run with --startup-file=no to use OpenBLAS instead, the relative difference is much smaller. (In fact the absolute difference is almost cut in half too.)
julia> @btime $mlp($img);
  min 104.833 μs, mean 109.179 μs (6 allocations, 43.09 KiB)

julia> @btime Flux.gradient((m,x) -> sum(abs2, m(x)), $mlp, $img);  # Zygote, allocating
  min 243.792 μs, mean 305.012 μs (84 allocations, 596.17 KiB)

julia> @btime Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), $mlp, $img);  # allocating
  min 266.292 μs, mean 329.010 μs (55 allocations, 579.61 KiB)

julia> @btime Enzyme.autodiff(Reverse, $((m,x) -> sum(abs2, m(x))), $(Duplicated(mlp, Enzyme.make_zero(mlp))), $(Duplicated(img, Enzyme.make_zero(img))));  # pre-allocated
  min 256.916 μs, mean 270.453 μs (11 allocations, 86.16 KiB)

(Same machine & versions as above.)

huh, so what exactly causes it to be slow. AppleAccelerate itself?

Don't know. For the other model, changing to OpenBlas gives a slightly larger time-difference instead. (And a slightly smaller ratio).
julia> @btime $lenet($img);  # was min 655.583 μs, mean 1.107 ms with AppleAccelerate above
  min 839.916 μs, mean 1.910 ms (160 allocations, 5.60 MiB)

julia> @btime Flux.gradient((m,x) -> sum(abs2, m(x)), $lenet, $img);
  min 7.980 ms, mean 9.273 ms (556 allocations, 14.18 MiB)

julia> @btime Enzyme.gradient(Reverse, (m,x) -> sum(abs2, m(x)), $lenet, $img);
  min 11.960 ms, mean 13.037 ms (538 allocations, 15.42 MiB)

julia> @btime Enzyme.autodiff(Reverse, $((m,x) -> sum(abs2, m(x))), $(Duplicated(lenet, Enzyme.make_zero(lenet))), $(Duplicated(img, Enzyme.make_zero(img))));
  min 12.017 ms, mean 13.615 ms (415 allocations, 14.85 MiB)


Error: unable to retrieve child resources

Storage Explorer Version: v1.14.2
Build Number: 20200715.2
Platform/OS: Windows 10
Architecture: x86_64
Regression From: Not sure
Bug Description
Having trouble loading local attached blob container, after long hold pops this

Steps to Reproduce

open local & attached
open storage accounts
open up local1.blob container(created by myself)

Expected Experience
Actual Experience
Additional Context

@Tjianke do you have proxy settings enabled, either in the application settings (gear icon on the left), or via OS environment variables (look for either HTTP_PROXY or HTTPS_PROXY in your OS environment variables).

thx, fixed after turning off HTTP_PROXY

Good.


Data-model

In this pull request, all databases for user, post, comment, like tables and their relationships were implemented following these steps respectively:

[ ] Be sure to reference the ERD diagram from the sneak peek if you have any questions about the table or column names or data relationships.

[ ] Create a new app. Give it a meaningful name.

[ ] Initialize your project with Git.

[ ] Make sure that your project has a Postgres database set up.

[ ] Build your project schema.

[ ] Create and run the necessary migration files.

[ ] Table and column names should match the ERD diagram.

[ ] note: photo for users table should be a link to an image

[ ] Foreign keys should be included.

[ ] Pay attention that in the posts table the column holding the foreign key to the users' table should be named author_id

[ ] All columns that are foreign keys should have a corresponding index.

@thecodechaser, thank you for the suggestions I will implement the required changes.


Unable to join Primary Server to File Server (RHEL 8 - ArcGIS 10.9.1)

We have a new File Server successfully created using arcgis-enterprise-fileserver.json
We are now trying to get the Primary up and running but hitting a snag when attempting to connect Primary to FS (file server)
What is the proper syntax we should be using for arcgis.server.directories_root when running on Linux? Is it simply the FS's IP or alias? Or are there certain "/" characters we need to put it, i.e. "//servername/gisdata/arcgisportal"
Using cookbooks 4.0 by the way

We have a new File Server successfully created using arcgis-enterprise-fileserver.json
We are now trying to get the Primary up and running but hitting a snag when attempting to connect Primary to FS (file server)
What is the proper syntax we should be using for arcgis.server.directories_root when running on Linux? Is it simply the FS's IP or alias? Or are there certain "/" characters we need to put it, i.e. "//servername/gisdata/arcgisportal"
Using cookbooks 4.0 by the way

Here is an example for portal:
arcgis.portal.content_store_connection_string - Replace FILESERVER with the file server machine hostname or static IP address
https://github.com/Esri/arcgis-cookbook/blob/237b0e39fca0a3b5988b997430bf7beb3637e039/templates/arcgis-enterprise-base/11.0/linux/arcgis-enterprise-primary.json#L71
And here is an example for server:
arcgis.server.directories_root - Replace FILESERVER with the file server machine hostname or static IP address
https://github.com/Esri/arcgis-cookbook/blob/237b0e39fca0a3b5988b997430bf7beb3637e039/templates/arcgis-enterprise-base/11.0/linux/arcgis-enterprise-primary.json#L31
arcgis.server.config_store_connection_string - Replace FILESERVER with the file server machine hostname or static IP address
https://github.com/Esri/arcgis-cookbook/blob/237b0e39fca0a3b5988b997430bf7beb3637e039/templates/arcgis-enterprise-base/11.0/linux/arcgis-enterprise-primary.json#L35
Thanks,
Cameron K.

Thanks Cameron. I updated the primary json file with the below line but still hitting connection error when creating the site. I did verify that the directory /gisdata/arcgisportal/content is on the FS. How would we confirm if its an access issue?
"content_store_connection_string": "/net/[FS_machine_IP]/gisdata/arcgisportal/content",

arcgis_enterprise_portal[Create Portal Site] action create_site
================================================================================
Error executing action create_site on resource 'arcgis_enterprise_portal[Create Portal Site]'
RuntimeError
Cannot read from directory path '/net/[FS_machine_IP]/gisdata/arcgisportal'. Please check that the location is valid and that the Portal service account has permissions to the location.

Thanks Cameron. I updated the primary json file with the below line but still hitting connection error when creating the site. I did verify that the directory /gisdata/arcgisportal/content is on the FS. How would we confirm if its an access issue?
"content_store_connection_string": "/net/[FS_machine_IP]/gisdata/arcgisportal/content",

arcgis_enterprise_portal[Create Portal Site] action create_site
================================================================================
Error executing action create_site on resource 'arcgis_enterprise_portal[Create Portal Site]'
RuntimeError
Cannot read from directory path '/net/[FS_machine_IP]/gisdata/arcgisportal'. Please check that the location is valid and that the Portal service account has permissions to the location.

Does the arcgis.run_as_user have the same UID on both the file server and portal instance? If they differ, this could cause an issue with access the share.
Maybe try using touch command as the arcgis.run_as_user from the portal machine to see if it can create a test file. For example:
$ touch /net/[FS_machine_IP]/gisdata/arcgisportal/content/testFile.txt

Note: If this works delete the testFile.txt.

Some other notable things to try:

restart autofs

systemctl restart autofs

check the /etc/exports file to ensure it contains the correct directories and permissions.

cat /etc/exports

Should see something like this:
[arcgis@[FS_machine_IP] /]$ cat /etc/exports
/gisdata/arcgisserver *(rw,sync,insecure,no_subtree_check,nohide)
/gisdata/arcgisbackup *(rw,sync,insecure,no_subtree_check,nohide)
/gisdata/arcgisportal *(rw,sync,insecure,no_subtree_check,nohide)

Thanks,
Cameron K.

Hi @cameronkroeker

Both machines have the run_as_user set to arcgis so those are both the same

The FS does not have a /net directory so is it an issue when trying to run the "content_store_connection_string"?
This is what is in our fileserver.json (ran without modifying anything in the template - all directories did get created)
{
"arcgis": {
"version": "10.9.1",
"run_as_user": "arcgis",
"fileserver": {
"directories": [
"/gisdata/arcgisserver",
"/gisdata/arcgisbackup",
"/gisdata/arcgisbackup/tilecache",
"/gisdata/arcgisbackup/relational",
"/gisdata/arcgisportal",
"/gisdata/arcgisportal/content"
],
"shares": [
"/gisdata/arcgisserver",
"/gisdata/arcgisbackup",
"/gisdata/arcgisportal"
]
}
},
"run_list": [
"recipe[nfs::server]",
"recipe[arcgis-enterprise::system]",
"recipe[arcgis-enterprise::fileserver]"
]
}

On the Primary server, the /etc/exports file is blank

Hi @DGrady83,
Let's ensure the /net directory is enabled on the file server node. To do this, try the following on the file server:

Within the /etc/auto.master or /etc/autofs/auto.master file uncomment out the /net	-hosts line. For example:

$ cat /etc/auto.master
#
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/misc	/etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
#	"nosuid" and "nodev" options unless the "suid" and "dev"
#	options are explicitly given.
#
/net	-hosts
#
# Include /etc/auto.master.d/*.autofs
# The included files must conform to the format of this file.
#
+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master

Then restart autofs:

$ systemctl restart autofs

Then test to ensure the arcgis account can read\write to the shared directory from the primary node:

$ touch /net/[FS_machine_IP]/gisdata/arcgisportal/content/testFile.txt

Note: It's expected that the /etc/exports file is blank on the primary server, as it only gets populated on the node which fileserver.json is executed on.

Thanks,
Cameron K.

Hi @cameronkroeker  - so I think that's the issue. If I'm on the file server, I don't even see /etc/auto.master or /etc/autofs/auto.master
Also, when I try running the restart autofs command as arcgis user, I see this
systemctl restart autofs
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to restart 'autofs.service'.
Authenticating as: Ansible service account (srvansible)
Password:

Hi @cameronkroeker - so I think that's the issue. If I'm on the file server, I don't even see /etc/auto.master or /etc/autofs/auto.master
Also, when I try running the restart autofs command as arcgis user, I see this
systemctl restart autofs
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to restart 'autofs.service'.
Authenticating as: Ansible service account (srvansible)
Password:

My apologies, I should've noted that by default the arcgis account is not a user with sudo privileges, and the systemctl command will need to be ran as root or with a user that has sudo privileges.
$ sudo systemctl restart autofs

Let's also ensure autofs is installed (perhaps this is why /etc/auto.master or /etc/autofs/auto.master doesn't exist). If autofs isn't installed, try running the following command with root or with a user that has sudo privileges:
$ sudo yum install autofs

Thanks,
Cameron K.

Ok, I see autofs wasn't installed on the machine. Is autofs supposed to be installed as part of the fileserver.json script? Or is it something separate that we should include in our own startup script?

Ok, I see autofs wasn't installed on the machine. Is autofs supposed to be installed as part of the fileserver.json script? Or is it something separate that we should include in our own startup script?

The fileserver.json doesn't install/configure autofs, so it is something that needs too be done separately.
Sorry for the inconvenience, this was a bit of an oversight. We will look to improve the cookbooks and\or documentation to help make it more clear/seamless.
Thanks,
Cameron K.

No worries. For now I've just added the line to my user data section
                            ```
                             **"yum -y install autofs\n",**
                            "tar -xf arcgis-4.0.0-cookbooks.tar.gz -C /opt/cinc\n",
                            "cp /opt/cinc/templates/arcgis-enterprise-base/10.9.1/linux/arcgis-enterprise-fileserver.json /opt/cinc\n",
                            "(cd /opt/cinc && cinc-client -z -j arcgis-enterprise-fileserver.json)\n",

I re-ran the primary installation but that failed again creating the Portal site.

Here is output of the auto.master file. Does something need to change in here?

Sample auto.master file
This is a 'master' automounter map and it has the following format:
mount-point [map-type[,format]:]map [options]
For details of the format look at auto.master(5).

/misc   /etc/auto.misc

NOTE: mounts done from a hosts map will be mounted with the
"nosuid" and "nodev" options unless the "suid" and "dev"
options are explicitly given.

/net    -hosts

Include /etc/auto.master.d/*.autofs
The included files must conform to the format of this file.

+dir:/etc/auto.master.d

If you have fedfs set up and the related binaries, either
built as part of autofs or installed from another package,
uncomment this line to use the fedfs program map to access
your fedfs mounts.
#/nfs4  /usr/sbin/fedfs-map-nfs4 nobind

Include central master map if it can be found using
nsswitch sources.

Note that if there are entries for /net or /misc (as
above) in the included master map any keys that are the
same will not be seen as the first read key seen takes
precedence.

+auto.master
Also, tried running this from the Primary but that didn't work:

touch /net/[FS_IPaddress]/gisdata/arcgisportal/content/testFile.txt
touch: cannot touch '/net/[FS_IPaddress]/gisdata/arcgisportal/content/testFile.txt': No such file or directory

Hi @DGrady83,
Could you verify that the UID of the arcgis account match on both the file server and primary server? To check this run id arcgis command. For example:
arcgis@FileServer:~$ id arcgis
uid=1003(arcgis) gid=1005(arcgis) groups=1005(arcgis)

and
arcgis@PrimaryServer:~$ id arcgis
uid=1003(arcgis) gid=1005(arcgis) groups=1005(arcgis)

Thanks,
Cameron K.

Hi @cameronkroeker
Both appear to be identical. The Primary is on the left and the FS is on the right. We don't have to do anything with ssh keys in order to establish connection?

Thank you
Dan

Hi @cameronkroeker
Both appear to be identical. The Primary is on the left and the FS is on the right. We don't have to do anything with ssh keys in order to establish connection?

Thank you Dan

Thank you for confirming the UID matches. Let's confirm that autofs is started/enabled on both nodes:
$ sudo systemctl status autofs.service

If its not started:
$ sudo systemctl enable autofs.service
$ sudo systemctl start autofs.service

Or if its started lets try restarting it:
$ sudo systemctl restart autofs.service

Thanks,
Cameron K.

OK, maybe that's the issue - autofs is not installed on the Primary. I can have it pre-installed similar to what I did with the FS and see if that changes anything.
Thanks
Dan

Hi @cameronkroeker - I now have atuofs set to auto-install on the primary and it seems to be running. Now I see this error in the startup log when running the primary.json file on the primary server.

Hi @cameronkroeker - Any thoughts on anything else I should try here? Both servers have autofs installed and running, identical UID arcgis accounts, etc.
Not sure what else to check at this point.
thank you
Dan

Hi @DGrady83,
I am not quite sure what the missing piece here is. Perhaps firewalld is enabled and blocking it? As a temporary test we could try stopping firewalld.service to see if that allows the request to go through. If it does then we know the issue is related to firewalld.
$ sudo systemctl stop firewalld.service

Another thing to try is installing nfs-utils:
$ sudo yum install -y nfs-utils

If these suggestions don't help or work, I recommend opening a support case with Esri Technical Support, as they will have additional resources such as the ability to screen share to better troubleshoot the issue in more depth.
Thanks,
Cameron K.

Thanks @cameronkroeker - I'll try those out.
I did have another question - for the "run_as_user" variable, the default is arcgis which is what I have been trying. Should that be a service account within our domain instead?

@cameronkroeker - could you also confirm all firewall ports that are supposed to be opened?

Hey @DGrady83, the "run_as_user" variable can be set to a the default 'arcgis' user (which would result in a local account being created) or a domain account using the syntax "Domain\username". Either account should work, of course when organizational policies allow the use of either.

With respect to the ArcGIS Enterprise application components, this diagram could be useful for determining which ports need to be opened: https://enterprise.arcgis.com/en/system-requirements/latest/windows/pdf/ports-enterprise-deploy-dgm.pdfl A quick google search for the port NFS uses in UNIX systems looks like port 2049: https://library.netapp.com/ecmdocs/ECMP1368834/html/GUID-C764CE34-6F5B-42BC-B04B-7001744A44A3.html#:~:text=Network File System (NFS) is,mountd%2C statd%2C and nlm. Hope this helps @DGrady83!

Thanks @cameronkroeker @rlhadsel  - another question on the fileserver.json that runs. should we be manually adding /hostname prefixed to the gisdata directories like below? I'm still a little confused on what the proper folder structure should be in the directories and shares sections below.
{
    "arcgis": {
        "version": "10.9.1",
        "run_as_user": "arcgis",
        "fileserver": {
            "directories": [
                "/hostname/gisdata/arcgisserver",
                "/hostname/gisdata/arcgisbackup",
                "/hostname/gisdata/arcgisbackup/tilecache",
                "/hostname/gisdata/arcgisbackup/relational",
                "/hostname/gisdata/arcgisportal",
                "/hostname/gisdata/arcgisportal/content"
            ],
            "shares": [
                "/hostname/gisdata/arcgisserver",
                "/hostname/gisdata/arcgisbackup",
                "/hostname/gisdata/arcgisportal"
            ]
        }
    },
    "run_list": [
        "recipe[nfs::server]",
        "recipe[arcgis-enterprise::system]",
        "recipe[arcgis-enterprise::fileserver]"
    ]
}

Thanks @cameronkroeker @rlhadsel - another question on the fileserver.json that runs. should we be manually adding /hostname prefixed to the gisdata directories like below? I'm still a little confused on what the proper folder structure should be in the directories and shares sections below.
{
    "arcgis": {
        "version": "10.9.1",
        "run_as_user": "arcgis",
        "fileserver": {
            "directories": [
                "/hostname/gisdata/arcgisserver",
                "/hostname/gisdata/arcgisbackup",
                "/hostname/gisdata/arcgisbackup/tilecache",
                "/hostname/gisdata/arcgisbackup/relational",
                "/hostname/gisdata/arcgisportal",
                "/hostname/gisdata/arcgisportal/content"
            ],
            "shares": [
                "/hostname/gisdata/arcgisserver",
                "/hostname/gisdata/arcgisbackup",
                "/hostname/gisdata/arcgisportal"
            ]
        }
    },
    "run_list": [
        "recipe[nfs::server]",
        "recipe[arcgis-enterprise::system]",
        "recipe[arcgis-enterprise::fileserver]"
    ]
}

No we shouldn't need to make any modifications to the fileserver.json.
The fileserver.json will create the directories specified in node['arcgis']['fileserver']['directories'] attribute as local paths. For example:
arcgis@ip-10-0-2-231:/gisdata$ pwd
/gisdata

arcgis@ip-10-0-2-231:/gisdata$ ll
total 20
drwxr-xr-x  5 root   root 4096 Sep 29 04:00 ./
drwxr-xr-x 21 root   root 4096 Sep 29 04:00 ../
drwxr-xr-x  4 arcgis root 4096 Sep 29 04:00 arcgisbackup/
drwxr-xr-x  3 arcgis root 4096 Sep 30 02:40 arcgisportal/
drwxr-xr-x  4 arcgis root 4096 Sep 29 04:36 arcgisserver/

Then the directories specified in node['arcgis']['fileserver']['shares'] attribute are shared (nfs-utils is installed and started, and the paths are added to the /etc/exports):
arcgis@ip-10-0-2-231:/gisdata$ cat /etc/exports

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/gisdata/arcgisserver *(rw,sync,insecure,no_subtree_check,nohide)
/gisdata/arcgisbackup *(rw,sync,insecure,no_subtree_check,nohide)
/gisdata/arcgisportal *(rw,sync,insecure,no_subtree_check,nohide)

If you have autofs.service installed/started (on both fileserver and primary) you should then be able to access these directories via /net/fileserver-hostname/gisdata/arcgisportal or /net/fileserver-ip/gisdata/arcgisportal. This is from primary:
$ systemctl status autofs.service
● autofs.service - Automounts filesystems on demand
     Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-09-29 03:59:35 UTC; 23h ago
       Docs: man:autofs(8)
    Process: 183557 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
   Main PID: 3305 (automount)
      Tasks: 4 (limit: 37885)
     Memory: 53.1M
     CGroup: /system.slice/autofs.service
             └─3305 /usr/sbin/automount --pid-file /var/run/autofs.pid

arcgis@ip-10-0-2-11:/opt$ touch /net/<IP_ADDRESS>/gisdata/arcgisportal/content/testFile.txt

arcgis@ip-10-0-2-11:/opt$ ls -al /net/<IP_ADDRESS>/gisdata/arcgisportal/content/testFile.txt
-rw-rw-r-- 1 arcgis arcgis 0 Sep 30 03:05 /net/<IP_ADDRESS>/gisdata/arcgisportal/content/testFile.txt

arcgis@ip-10-0-2-11:/opt$ cd /net/<IP_ADDRESS>/gisdata/arcgisportal/content

arcgis@ip-10-0-2-11:/net/<IP_ADDRESS>/gisdata/arcgisportal/content$ pwd
/net/<IP_ADDRESS>/gisdata/arcgisportal/content

arcgis@ip-10-0-2-11:/net/<IP_ADDRESS>/gisdata/arcgisportal/content$ ls -al
total 1120
drwxr-xr-x     3 arcgis root      4096 Sep 30 03:06 .
drwxr-xr-x     3 arcgis root      4096 Sep 30 03:06 ..
drwxr-x--- 20586 arcgis arcgis 1130496 Sep 29 18:04 items
-rw-r-----     1 arcgis arcgis       2 Sep 29 04:25 site-key.json
-rw-rw-r--     1 arcgis arcgis       0 Sep 30 03:05 testFile.txt

Have you tried restarting NFS on the fileserver?
$ sudo exports -a
$ sudo systemctl restart nfs-server.service

Also try accessing the share via the fileserver hostname instead of ip:
$ touch /net/FileserverHostName/gisdata/arcgisportal/content/testFile.txt

If autofs isn't going to work then as an alternative you can create an NFS mount.

Run fileserver.json on fileserver machine
On primary machine create an nfs mount:

Note: <IP_ADDRESS> is the ip of the fileserver machine. You can use hostname instead of ip as well.

$ sudo yum install nfs-utils
$ sudo mkdir -p /nfs_share/gisdata
$ sudo mount <IP_ADDRESS>:/gisdata /nfs_share/gisdata -o noac
$ sudo df -h

Filesystem                        Size  Used Avail Use% Mounted on
...
<IP_ADDRESS>:/gisdata/arcgisportal   97G  4.9G   92G   5% /net/<IP_ADDRESS>/gisdata/arcgisportal
<IP_ADDRESS>:/gisdata/arcgisserver   97G  4.9G   92G   5% /net/<IP_ADDRESS>/gisdata/arcgisserver
<IP_ADDRESS>:/gisdata                97G  4.9G   92G   5% /nfs_share/gisdata

For more detailed steps on NFS Mount see: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_file_systems/mounting-nfs-shares_managing-file-systems
Thanks,
Cameron K.

Hi @cameronkroeker - Thank you for the detailed info. I tried all above but still nothing seems to be working. Even stopping firewall on both servers, then trying to run the mount command, I get the mount.nfs: Connection timed out error. At this point I'm thinking it may be a security policy on the EC2 machines I am using. Should I try adding anything specific to those?

For anyone who will have same issue. Our primary server was not able to access fileserver folder as well. The issue we had was that autofs couldn't mount NFS shares automatically. We spend a lot of timing trying to investigate this issue and decided just to mount these folder manually.


On silver, met criteria aren't hidden when "hide met" is selected

I will work on this first thing in the morning.  It was working last time I checked.  We really need a better test suite for our js interactions.

Fixed in c2bde15d5fc826fc625f57ac2ec83b8c148defe4.

I would encourage you in the future to write a regression test that fails before the commit and passes with it.

I usually do put in regression tests when possible,  I wanted to get the fix out ASAP.  I will put an issue to add a regression test to make sure I do it when I have time.


Make a Hacktoberfest Pull Request by doing one of our challenges

We have two simple challenges that you can do for making a Hacktoberfest Pull Request.  Find more instructions in our README.md

Hey, @terrifricker I would like to work on this issue, would you please assign it to me?

Yes, of course.  Go right ahead. I'm not at my computer to be able to assign you.

Alright!!

I've assigned you @PravunathSingh

Alright @DavidMatthewFraser thanks for assigning me, currently I'm caught up in some work, as soon as I finish that I'll start working on it ASAP

@PravunathSingh you have until Oct 31 😋

@PravunathSingh
You are still welcome to work on this issue, but I am going to remove you from the Assigned list, so it is clear that other workers can work on it as well.

Hey, assign me to the water tracker project (if that's possible).

@sauravk7077 Sure, just make an Issue for some things that need to be added/improved/fixed with the water tracker.


Add watchfile reload options

Includes reload path option and filter options

Hi thanks for the response. Will update the help text. In regards to the Path type, because watch file excepts globs, I didn't think Path would work.

From what I can see in watchfiles code, the only argument that might not be a path is the entity-patterns one.
Also, I just realised that the CLI parameters for the ignore-* should be optional with None as defaults, otherwise the check in here https://github.com/samuelcolvin/watchfiles/blob/main/watchfiles/filters.py#L115-L120 will remove defaults having those parameters as empty lists.

Hello, any update on this PR ?
I've been testing to replace uvicorn with granian but this options would be needed :)

@Lendemor I was waiting for @Andrew-Chen-Wang to make the changes we discussed; I don't know if there are any updates from his side.
Given the amount of time this is opened, for sure it would need a rebase from the current master.

would rec u just take my changes and make a PR :P not sure when i'll come back

Closing as superseded by #362


Please create realises for the version published to PowerShell Gallery

Like in the subject. It allow truck changes between two sources of Format-Pester code.
Thank you.

Hello @it-praktyk , Sorry but I'm not sure to understand what you're asking for. Could you be more specific ?

@equelin with creating the relase 1.3.1 you did exactly what I asked.
Thanks


Fix for: "Araq's Musings - Araq's (Nim creator) personal blog on nim"

The current url: http://nim-lang.org/blog/ (403 Forbidden)
The updated url is: http://nim-lang.org/blog.html

Fixed. Thank you!

Nope. That's now the official Nim blog. Araq's musings are gone.

Oh I see. It is better now?

Yep, looks good :)


Caching bots

New:

Storage systems have file caching capabilities, with default max cache of files size being 1GB
Tournament system store in-mem cache of last version it used to run a match with a bot to tell storage systems whether or not to use cached or not

Changes:

fixed seed to have correct ids
fixed some typos

Other:

Added VarLock and LRUFileCache to address race conditions caused by caching and effective file caching

Codecov Report

Merging #108 into master will increase coverage by 0.95%.
The diff coverage is 81.22%.

@@            Coverage Diff             @@
##           master     #108      +/-   ##
==========================================
+ Coverage   70.33%   71.28%   +0.95%
==========================================
  Files          49       51       +2
  Lines        3728     3915     +187
  Branches      638      667      +29
==========================================
+ Hits         2622     2791     +169
- Misses        846      854       +8
- Partials      260      270      +10

Impacted Files
Coverage Δ

src/Plugin/Storage/index.ts
87.50% <ø> (ø)

src/Station/index.ts
74.19% <ø> (+0.23%)
:arrow_up:

src/SupportedPlugins/GCloudStorage/index.ts
30.35% <25.00%> (-5.55%)
:arrow_down:

src/Agent/index.ts
80.10% <36.36%> (-1.25%)
:arrow_down:

src/utils/VarLock.ts
76.92% <76.92%> (ø)

src/Tournament/index.ts
83.79% <78.43%> (-1.58%)
:arrow_down:

src/utils/LRUFileCache.ts
95.06% <95.06%> (ø)

src/Dimension/index.ts
88.96% <100.00%> (+0.21%)
:arrow_up:

src/Match/index.ts
86.66% <100.00%> (+5.31%)
:arrow_up:

src/SupportedPlugins/FileSystemStorage/index.ts
96.22% <100.00%> (+8.72%)
:arrow_up:

... and 8 more

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 7a99a4b...43a0744. Read the comment docs.


Security v2 API

Is there a plan to develop Security V2 API (/access/api/v2/)? I'm considering a contribution, but wonder if there is any particular approach/pattern to follow for this development.

@dlorych,
We would welcome such contribution through a pull request. See the contribution guidelines posted in this repository README, and try following the existing code conversions.


[native_pdf_view]  Open a certain page when document is loaded

Describe the bug
I want to animate or jump to a certain page when document is loaded at the very start of rendering.
To Reproduce
1 - I tried to jump to a certain page when document is loaded in
           onDocumentLoaded: (PdfDocument document) {             _pdfController.jumpToPage(10);           },
But I faced an exception :
Reloaded 9 of 868 libraries in 854ms. D/PDF_RENDER( 6672): OpenFileDocument. File: /data/user/0/projectname/cache/file_picker/Short-stories-from-100-Selected-Stories.pdf E/flutter ( 6672): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type '_AssertionError' is not a subtype of type 'Exception' E/flutter ( 6672): #0      PdfController._loadDocument E/flutter ( 6672): <asynchronous suspension> E/flutter ( 6672): #1      PdfController._attach E/flutter ( 6672): #2      _PdfViewState.initState E/flutter ( 6672): #3      StatefulElement._firstBuild E/flutter ( 6672): #4      ComponentElement.mount E/flutter ( 6672): #5      Element.inflateWidget E/flutter ( 6672): #6      Element.updateChild E/flutter ( 6672): #7      SingleChildRenderObjectElement.mount E/flutter ( 6672): #8      Element.inflateWidget E/flutter ( 6672): #9      Element.updateChild E/flutter ( 6672): #10     ComponentElement.performRebuild E/flutter ( 6672): #11     Element.rebuild E/flutter ( 6672): #12     ComponentElement._firstBuild E/flutter ( 6672): #13     ComponentElement.mount E/flutter ( 6672): #14     Element.inflateWidget E/flutter ( 6672): #15     Element.updateChild E/flutter ( 6672): #16     ComponentElement.performRebuild E/flutter ( 6672): #17     Element.rebuild E/flutter ( 6672): #18     ComponentElement._firstBuild E/flutter ( 6672): #19     ComponentElement.mount E/flutter ( 6672): #20     Element.inflateWidget E/flutter ( 6672): #21     Element.updateChild E/flutter ( 6672): #22     ComponentElement.performRebuild E/flutter ( 6672): #23     Element.rebuild E/flutter ( 6672): #24     ComponentElement._firstBuild E/flutter ( 6672): #25     ComponentElement.mount E/flutter ( 6672): #26     Element.inflateWidget E/flutter ( 6672): #27     Element.updateChild E/flutter ( 6672): #28     ComponentElement.performRebuild E/flutter ( 6672): #29     Element.rebuild E/flutter ( 6672): #30     ComponentElement._firstBuild E/flutter ( 6672): #31     ComponentElement.mount E/flutter ( 6672): #32     Element.inflateWidget E/flutter ( 6672): #33     MultiChildRenderObjectElement.mount E/flutter ( 6672): #34     Element.inflateWidget E/flutter ( 6672): #35     Element.updateChild E/flutter ( 6672): #36     ComponentElement.performRebuild E/flutter ( 6672): #37     StatefulElement.performRebuild E/flutter ( 6672): #38     Element.rebuild E/flutter ( 6672): #39     ComponentElement._firstBuild E/flutter ( 6672): #40     StatefulElement._firstBuild E/flutter ( 6672): #41     ComponentElement.mount E/flutter ( 6672): #42     Element.inflateWidget E/flutter ( 6672): #43     Element.updateChild E/flutter ( 6672): #44     ComponentElement.performRebuild E/flutter ( 6672): #45     Element.rebuild (package:flutter/src/w
Expected behavior
I expected to open on the page I requested.
Screenshots

Smartphone (please complete the following information):

Device: Android emulator Pixel 3a
OS: Android
Version : API 28

and how many pages do you have in the document?
in 3.6.0 problem with errorBuilder fixed
can you copy the error code?

Im having the same problem

I am running into the same problem with the animateToPage method, it seems that the scroll controller is not getting attached to the scroll view when any jumping around pages is done.

It seems that the _positions list on the _pageController on the _pdfController does not get items until after the onDocumentLoaded function is called leading to the _positions.isNotEmpty assertion to fail.

According to the API, It seems to me that setting the initialPage parameter of the PdfController to >1 should cause the PDF to open at that page.
However this parameter seems to be ignored.
Looking into the code, I see that in the PdfController's _attach() method the initialPage is passed to _reInitPageController(), but not passed into _loadDocument(), which then calls _reInitPageController() again with an initialPage of 1 from its default parameter.

I have made a pull request that should fix the initialPage problem

Yes i too found the same issue like @BrucesStuff commented. The initialPage params seems to be ignored.


Depending on a yanked lxml==4.7.0 in setup.py causes failed builds.

In the latest released version of python3-saml, it looks like this commit pinned the version of lxml to 4.7.0. This version of lxml has since been yanked due to not having the appropriate header files included in the wheels, breaking on the majority of platforms.
If possible, please either revert this change or use a more flexible requirement string that specifically excludes versions that do not work (e.g. lxml<4.7.0).

This should be fixed in the latest version of python2-saml, please let us know if this issue continues.


Fix word Strava to Last.fm

We were still talking about creating a Strava application, not Last.fm application, in prep work.
Also, Last.fm capitalizes their name on their own website (despite their logo being lowercase) so changed that too.

Thanks for catching that :)


提议Popconfirm加个状态

This function solves the problem (这个功能解决的问题)
当弹出确认出现和消失的时候也许会做一些判断？
Expected API (期望的 API)
如Dialog的 onAfterEnter onAfterLeave事件

Popover-Props on-update:show   应该可以满足

This issue does not have any recent activity. If you are still experiencing similar problems, open a new error, including a minimal copy of the problem


Add a combobox to the list of components

As per EIS top nav search box or...

This is now available (just import DropdownSelect). ask me for how to use it as its not doc'd yet


Add tutorials section with articles and videos

While not explicitly stated in the ./contributing.md guidelines, it is apparent that author intends to follow alphabetical order for content. Therefore, please add Tutorials section after Tools.

@gajus ✅

@trevordmiller Thank you.
LGTM

Great idea! Thank you!


[Feature request]支持cache协议吗？能实现边播放边下载吗？

cache协议是原生IjkPlayer支持的  理论上是支持的
你可以试试

@CaiJingLong @luoxuuguang Hi:) what do you mean by caching? Do you mean saving the streamed video as a file so that we can play the file from local folder anytime? even if we create a new ijkplayer?
Or do you mean caching for seeking back to the beginning of the video?
I need help in this too. I keep on downloading the same videos..
Thanks.


ClassCleanup not called in base class

Describe the bug
MSTest.TestFramework 3.0.4
ClassCleanup method in base class not called
[TestClass]
public class BaseClass
{
    [ClassCleanup]
    public static void ClassCleanupBase()
    {
        Console.WriteLine(nameof(BaseClass) + nameof(ClassCleanupBase));
    }
}

[TestClass]
public class UnitTest1 : BaseClass
{
    [TestMethod]
    public void TestMethod1()
    {
        Console.WriteLine(nameof(TestMethod1));
    }
/*
    [ClassCleanup]
    public static void ClassCleanup()
    {
        Console.WriteLine(nameof(UnitTest1) + nameof(ClassCleanup));
    }
*/
}

Additional context
Verified in debuger.
Also mentioned in Class Initialize inheritance #143
The commented method works.

Hi @pi3k14,
I confirm that something is not working fine here. I have tried the various options and I confirm that the base is never called.

I cannot find a single place where this works (I am writing to Trace.WriteLine, to make sure the output collector is simply not missing it). Looking at the fixes from PRs the fix that was supposed to implement and fix this is in 2.0.0 and 2.1.0 ( https://github.com/microsoft/testfx/pull/577 https://github.com/microsoft/testfx/pull/660 ) , still that does not work for me, so maybe I am just doing it wrong?
```cs
// file GlobalUsings.cs
global using Microsoft.VisualStudio.TestTools.UnitTesting;

<!-- file mstest1.csproj -->
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
    <PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
  </ItemGroup>

</Project>

// file UnitTest1.cs
using System.Diagnostics;

namespace mstest1;

[TestClass]
public class BaseClass
{
    [ClassCleanup(inheritanceBehavior: InheritanceBehavior.BeforeEachDerivedClass)]
    public static void ClassCleanupBase()
    {
        Trace.WriteLine("base cleanup");
    }
}

[TestClass]
public class UnitTest1 : BaseClass
{
    [TestMethod]
    public void TestMethod1()
    {
        Trace.WriteLine("Test method");
    }

    [ClassCleanup(inheritanceBehavior: InheritanceBehavior.BeforeEachDerivedClass)]
    public static void ClassCleanup()
    {
        Trace.WriteLine("class cleanup");
    }

}

No matter the combination of the class cleanup I simply don't see Trace.WriteLine("base cleanup"); in my output.
(in DebugView++:

)

Interesting... I was looking at why our acceptance tests are working and noticed that we have also a [ClassInitialize] and it seems that having it causes the cleanup to be called while not having it results in the behavior observed in this issue.

Ok so the problem is way bigger than expected... We need a huge refactoring of the class cleanup handling.

As per @Evangelink comment above
Workaround
Declare your class cleanup method with BeforeEachDerivedClass inheritance behavior, and define a dummy class initialize method with same setting.

[ClassCleanup(InheritanceBehavior.BeforeEachDerivedClass)]
public static void ClassCleanup()
{
...
}
[ClassInitialize(InheritanceBehavior.BeforeEachDerivedClass)]  public static void ClassInitialize(TestContext _) { }


Implement Extra Window for Calendar Information

Issue Description:
Given the considerable amount of information associated with the Calendar, ensuring readability and user-friendliness within the current layout becomes challenging. A dedicated Calendar window could significantly enhance user experience and facilitate information comprehension.
Proposed Solution:
Create a new window dedicated to displaying Calendar information. This window should:
Present the information in a structured, organized manner.
Be easily accessible from the main Form interface.
Retain the current user interface aesthetics and follow the same design language for consistency.
This feature would streamline user interaction with the Calendar and provide a more comprehensive view of the information, making it clearer and more understandable.

don't need it at the moment


Expose CLI RPC in addition to HTTP

While transforming repositories from docker-compose to process-compose a new need came up:
Replace docker-compose restart $SERVICE with the process-compose equivalent in a bash setting.
Currently you need to  do something like:
curl -X 'PATCH' 'http://localhost:$PORT/process/stop/$SERVICE'
curl -X 'PATCH' 'http://localhost:$PORT/process/start/$SERVICE'

Given that process-compose is not a singleton daemon, you need to somehow differentiate between the potentially many processes running on the given host.
Given that Go already includes a HTTP client, it would make sense to provide a CLI interface that calls the exposed HTTP interfaces.
Something like:
-h --host String default: localhost
-p --port String required
-o --output json|text default json (no work needed translating the HTTP interface)

process-compose -p $PORT ps # /processes
process-compose -p $PORT process stop
process-compose -p $PORT process start

Additionally, a bit unrelated it would be awesome to:

Expose an atomic/blocking restart operation
Redirect GET / to /swagger/index.html

Makes sense, @thenonameguy.
I'll look into it.

Good Evening @thenonameguy
Thank you for all the feedback and for the code review! I really appreciate it!
I published the v0.20.0 release. Please don't hesitate to let me know if you spot something unusual.


the documentation should explain about the env:'sandbox' option

I only filled in the sandbox clientId:
let client = {
		sandbox:    'Af3u...', // from https://developer.paypal.com/developer/applications/
		production: 'xxxxxxxxx'  // from https://developer.paypal.com/developer/applications/
	};

but I kept getting an error that xxxxx is invalid.
took me quite a while to find out that I could use env:'sandbox' to switch to sandbox environment. This isn't stated in the examples or documentation anywhere and in my opinion should be added here: https://github.com/paypal/paypal-checkout/blob/master/docs/button.md#basic-integration

Please see the main set of docs here: https://developer.paypal.com/docs/checkout/


Damage tint does not support 1.19.2.

When attempting to start up the game with damage tint mod enabled, the game will just crash.

closing this since this request became stale.


example/zk-repro-2080.nfqhook: fix some issues

This reproduces ZK-2080 when config.explorePolicy.interval is about 180-200.
However I could not reproduce the bug when interval <= 150.
NOTE: I had once reproduced the bug with pyearthquake orchestrator with DumbExplorer(sleep=30)

Pulled, thanks!


Compile javadocs to html for introspection

The introspection supports rendering richer data than just text and we should take advantage of that to render the javadocs as HTML.

The openjdk implementation of the source code analysis actually makes no attempt to search for sources other than those in the installation's src.zip which is very unfortunate. Including the jshell's user code!
The source code analysis is really lacking in this department. One solution we can try is setting the private List<Path> availableSources; field which has been fairly stable for some time. It is only used in the documentation generation. Another option is to search javadoc jars which are added to the classpath and are usually resolved with maven dependencies. The analysis supports searching for QualifiedNames at a cursor which we could use to try and find the appropriate html page and simply show the entire thing?


Support for nullable data types (Option<>) in poem-openapi

Description of the feature
It would be nice if a type being wrapped in Option<> would be shown as nullable in the OpenAPI document. See https://stackoverflow.com/questions/48111459/how-to-define-a-property-that-can-be-string-or-null-in-openapi-swagger
Code example
#[oai(path = "/hello", method = "get")]
async fn hello(&self) -> Json<Option<String>> {
    Json(None)
}

would generate
paths:
  /hello:
    get:
      responses:
        '200':
          description: ''
          content:
            application/json; charset=utf-8:
              schema:
                type: string
                nullable: true

Additionally,
#[derive(Object)]
struct Foo {
    x: Option<i32>,
}

#[OpenApi]
impl Api {
    #[oai(path = "/hello", method = "post")]
    async fn hello(&self, _p: Json<Foo>) {}
}

would generate
paths:
  /hello:
    post:
      requestBody:
        content:
          application/json; charset=utf-8:
            schema:
              $ref: '#/components/schemas/Foo'
        required: true
      responses:
        '200':
          description: ''
components:
  schemas:
    Foo:
      type: object
      properties:
        x:
          type: integer
          format: int32
          nullable: true

Thanks for the amazing work!

By default, serde serializes Option::None as null. It does not skip the field altogether.
This means that objects serialized by serde actually do not adhere to the schema generated by poem-openapi in case there are Option::None values.

By default, serde serializes Option::None as null. It does not skip the field altogether.

Isn't this what is happening in the example and PR? A nullable field, albeit manually specified in the PR, would make None become null


Preserve execution order alphabetically by test title

Fixes #
Checklist

[ ] Added unit / integration tests for windows, macOS and Linux?
[ ] Added a changelog entry in CHANGELOG.md?
[ ] Updated the documentation (README.md, docs)?
[ ] Does your change work on Linux, Windows and macOS?

I know it's not ready for review, but I found sometime. Is the plan to make the alphabetical ordering the default order or flag enabled?

The idea is to enable it by default because currently there is no order guranteed.

@dylanhitt review? :+1:

Sure, I'll look at it Sunday

Reviewing Monday, current get to my computer today. Sorry about that.

Reviewing Monday, current get to my computer today. Sorry about that.

No problem, do it when you have time :+1:

The only thing I really have to add is where do we mention "Commander test will execute tests in alphabetical order by default". I was thinking it should go in the commander test cli help text, and maybe a little bit of text under executing.
Hmm maybe a little example showing sequential execution. Something like you mentioned in #128.
001 - it should print hello world:
  order: 1
  command: echo hello world
  stdout: hello world
  exit-code: 0

003 - it should validate exit code:
  order: 2
  command: exit 1
  exit-code: 1

002 - another test:
  order: 2
  command: exit 1
  exit-code: 1

Maybe a full suite example in examples/ could go a long way. Your thoughts?

The only thing I really have to add is where do we mention "Commander test will execute tests in alphabetical order by default". I was thinking it should go in the commander test cli help text, and maybe a little bit of text under executing.
Hmm maybe a little example showing sequential execution. Something like you mentioned in #128.
001 - it should print hello world:
  order: 1
  command: echo hello world
  stdout: hello world
  exit-code: 0

003 - it should validate exit code:
  order: 2
  command: exit 1
  exit-code: 1

002 - another test:
  order: 2
  command: exit 1
  exit-code: 1

Maybe a full suite example in examples/ could go a long way. Your thoughts?

Good idea! I will add it to the help and extend the examples.
Anyway I have extending the help command on my list as well.


Tag tests that produces warnings or error logs

do you also want to add a task in gradle, where you can ignore these test?
Something like
test {
    useJUnitPlatform {
        excludeTags "ErrorLogProducer"
    }
    testLogging {
      events "passed", "skipped", "failed"

      showExceptions true
      exceptionFormat "full"
      showCauses true
      showStackTraces true
    }
}


Gazebo models not visible.

When I run gazebo.launch file the robot model does spawn but gazebo models are not visible, particularly the table, box and the checkered grid. Forward and Inverse Kinematics do work as expected.
Bellow is the image for reference.

Check the contents of your .gazebo/models directory, this is a hidden directory in Home.
If the models directory is empty, clone https://github.com/osrf/gazebo_models into models and relaunch the gazebo.launch.

Thank you, the issue has been resolved.


Zend Version

Hello everybody, I'm having problems with Zend version, when I check by terminal, it shows:
echo "Zend engine version: " . zend_version();
Zend engine version: 2.6.0
But in my composer file I have:
"zendframework/zend-mvc": "^3.0.1",
So I'm confused, I think I' having zend version conflicts, how I can solve this?
Thanks in advance.

Zend engine is not related to Zend Framework. One is PHP C library which executes php code, other is the application framework

@alextech so if I'm using different versions there will not be problems when building appplications with zend framework? I'm newer, thanks for the patience and for the answer =)

It's not newer or older. It's literally different products, like Laravel vs php or ruby vs Linux. Name is pure marketing coincidence.

No, You will not have a problem :)

jajjaja oks got it, thanks a lot for the clarification


GCC auto-depends

The one flaw in this otherwise perfect-for-the-job tool is that an INCBIN()ed binary doesn't get included in the gcc auto-dependency-file-generation of " -MMD -MP -MF"". I wonder if there is some kind of way to fake out gcc/g++ to emit a dependency on the binary file?

you could add the incbined binary in your dependeny list manually in make, then add it to a .PHONY target, not ideal but does work. Some way of automating this would be nice.

And if your Makefiles are auto-generated by Eclipse CDT, you're really out of luck. ;-)

Was thinking about this problem a bit more. It's actually possible for us to release a tool that parses source files and generates dependency lines like gcc -MD does something

Problems? Do you mean just having to edit the default-generated dependency files?
I guess this is really a gcc bug, not emitting all of its dependencies, which .incbin files really should be considered...

I would actually rather use a custom suffix (like *.incbin.cpp) to enable a
separate pattern rule that added to the dependency file generation by
scanning, which would be logically a lot more cleaner than your proposed
method.
--
Bryce Schober
Senior Software Engineer
Dynon Avionics, Inc. http://www.dynonavionics.com
On Tue, Apr 24, 2018 at 6:22 PM, Dale Weiler<EMAIL_ADDRESS>wrote:

One thing you could do is list all your INCBIN() stuff in a single
translation unit (e.g resources.c, and add that object file to your
Makefile like
resources.o: .FORCE
.PHONY: FORCE
FORCE:
This way it's always required to build it, since the file .FORCE is
presumed not to exist, so it is always created, so resources.o is
always out of date w.r.t it, so resources.o is always compiled. The .PHONY
along won't work though unless it's a static pattern rule. This has more
flexibility can can be better integrated into your build process. Really a
couple line Makefile change. Though if you have a lot of resources you're
potentially really pushing it hard here in terms of the amount of data.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/graphitemaster/incbin/issues/25#issuecomment-384130613,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA4EVjHPUvz2bc-rTyUmZk9v0HpN7b9qks5tr8_MgaJpZM4Ofn7M
.

That would also work yes, I wad going for a more elegant solution without having to define another pattern rule. There's no real solution to this that incbin can do tho so I'm closing it.

If using cmake, adding something like this to CMakeLists.txt does the trick:
set_property(SOURCE sourceUsingIncbin.cpp
   APPEND PROPERTY OBJECT_DEPENDS "${PROJECT_SOURCE_DIR}/pathTo/binaryFile"
)

Could be worth adding a Makefile and cmake suggestion to the readme.

I also did not find a way to generate the correct dependencies.
But this looks promising: https://gcc.gnu.org/onlinedocs/cpp/Pragmas.html#Pragmas
If you add
_Pragma("GCC dependency \"some_file.bin\"")

To the INCBIN macro, GCC will output a warning, if some_file.bin is newer than the C file.
For example:
some_c_file.c:35:16: warning: current file is older than some_file.bin
   35 | _Pragma ("GCC dependency \"some_file.bin\"")
      |                ^~~


Write a Julia program to convert minutes to weeks

Description
Write a Julia program to convert minutes to weeks
1 week = 7 days = 168 hours = 10080 minutes
Input  : 50400
Output : 5

How to contribute

Save the solution in convert-minutes-to-weeks.jl file
Add convert-minutes-to-weeks.jl file in convert-minutes-to-weeks folder

!assign

Hey @harshraj8843
Please close this issue as it's been solved.
Here is the file link for this issue Minutes to Weeks in Julia
Also there is one more such issue: Write a Julia program to convert seconds to days #3654

Hey @RiteshK-611
Thanks for noticing this 👍🏻


Debugging/Stepping through AspNetCore.Identity

Hi guys,
I'm working on my custom UserStore, and will like to step though the default UserManager code. Is there a way to setup in VS to pull the source from GitHub, hence enabling me to step through the code.
Setup:
VS Enterprise
.NET - 1.0.0-preview2-1-003177

You should be able to follow these steps: https://www.stevejgordon.co.uk/debugging-into-asp-net-core-source

Thanks. I had tried that yesterday, but to no avail. Did it again, and it seems to be working now :)


Use DefaultMetadataLoader for loading dylib metadata

If you switch archives from tar to ar archives, it would be possible to use DefaultMetadataLoader for everything.

Looks like the Android CI is just broken nowadays, but we should definitely merge this PR whenever CI is unbroken.

https://github.com/bevyengine/bevy/pull/2533 was the "fix" for bevy. Basically uninstall the broken android build tools version 31 first, so cargo-apk can install version 30 I think.

What do you mean by "everything"?

For rlibs too and not just for dylibs.

I guess like, yeah, sure, sounds great, tbh I didn't realize there was a difference between tar and ar archives, haha.

Ar archives are much more limited. For example they don't support directories, symlinks, etc. On the other hand both the gnu and bsd flavor support a symbol table that maps from symbol name to the object file that contains said symbol. This can improve linker speed and is required by most linkers.

Anyway, #701 should have fixed the CI, could you rebase?

Done


Tag range relabeling

NOT READY TO BE MERGED

add tag-range relabeling insertion

including a variable threshold using pre-computed capacity values

add new tests

up to 10k insertions with various scenarios
randomized tests
todo: quicktest (issue, how to implement arbitrary without dropping the elements?)

basic benchmark

Superseded by #2


Fixsupport delete with a subquery in predicate by construct an insert.

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Add READMEs to directories in elyra/etc

Describe the issue
The etc directory is being used as a catch all location for any misc tools and helper scripts/configs for elyra. These sub-directories have little to no documentation on what they are for or how to relate to the project as a whole.
To Reproduce
Screenshots or log output
Expected behavior
Document each subdirectory with a README to describe what it does/used for.
Deployment information
Describe what you've deployed and how:

Elyra version: [e.g. 1.5.3]
Operating system: [e.g. macos, linux]
Installation source: [e.g. PyPI, conda, from source, official container image, custom container image]
Deployment type: [e.g. local installation, Docker, Kubernetes, Kubeflow [notebook server] , Open Data Hub]

add links to the appropriate GH directory to the documentation
add link to the appropriate documentation topic to the README
avoid "content" duplication as much as possible


Reload blocks every minute irrespective of compaction taking place

What did you do?
I am trying the new command  tsdb create-blocks-from openmetrics of  promtool,  input file content is :
# HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter
http_requests_total{code="200"} 1021<PHONE_NUMBER>.989
http_requests_total{code="200"} 1022<PHONE_NUMBER>
http_requests_total{code="200"} 1026<PHONE_NUMBER>
http_requests_total{code="200"} 1029<PHONE_NUMBER>.989
http_requests_total{code="200"} 1030<PHONE_NUMBER>.989
http_requests_total{code="200"} 1032<PHONE_NUMBER>
http_requests_total{code="200"} 1033<PHONE_NUMBER>
http_requests_total{code="200"} 1038<PHONE_NUMBER>.989
http_requests_total{code="400"} 2<PHONE_NUMBER>.989
http_requests_total{code="400"} 2<PHONE_NUMBER>
http_requests_total{code="400"} 3<PHONE_NUMBER>.989
http_requests_total{code="400"} 3<PHONE_NUMBER>.989
http_requests_total{code="400"} 3<PHONE_NUMBER>
http_requests_total{code="400"} 4<PHONE_NUMBER>.989
http_requests_total{code="400"} 4<PHONE_NUMBER>.989
http_requests_total{code="400"} 5<PHONE_NUMBER>
# EOF

running command with result:
./promtool tsdb create-blocks-from openmetrics backfill-demo.txt
BLOCK ULID                  MIN TIME                       MAX TIME                       DURATION   NUM SAMPLES  NUM CHUNKS  NUM SERIES  SIZE
01ES3Y6KHEAZR7NX00SNP35V26  2020-12-09 05:21:40 +0000 UTC  2020-12-09 05:25:10 +0000 UTC  3m30.001s  15           2           2           769B

then I query the input data but without result:

It works after restart prometheus server:

Not sure it's  a bug or a feature,  maybe it should hot reload new blocks rather than restart the server.
Environment

System information: Darwin 17.7.0 x86_64

Prometheus version:

prometheus, version 2.23.0 (branch: master, revision: e13f4a5f6e93c51b0238e2b7095e575e905ad758)
  build user:       songjiayang@ZBMAC-90549ae81
  build date:       20201209-14:31:13
  go version:       go1.14.6
  platform:         darwin/amd64

They should be picked up automatically within a minute, unless there's a compaction going on. Is this not the case?

They should be picked up automatically within a minute, unless there's a compaction going on. Is this not the case?

wait for about 5 minutes, they have not picked up yet.

Can you share full logs and command line history please?

Can you share full logs and command line history please?

The data folder original look like:
$ tree data
data
├── chunks_head
│   └── 000006
├── lock
├── queries.active
└── wal
    ├── 00000009
    ├── 00000010
    ├── 00000011
    ├── 00000012
    ├── 00000013
    ├── 00000014
    ├── 00000015
    ├── 00000016
    └── checkpoint.00000008
        └── 00000000

3 directories, 12 files

Run tsdb create-blocks-from  first time:
 $ ./promtool tsdb create-blocks-from openmetrics backfilling.txt
BLOCK ULID                  MIN TIME                       MAX TIME                       DURATION   NUM SAMPLES  NUM CHUNKS  NUM SERIES  SIZE
01ES5A2D2C16A19K9Z0NAB7CX2  2020-12-09 05:21:40 +0000 UTC  2020-12-09 05:25:10 +0000 UTC  3m30.001s  15           2           2           769B

$ tree data
data
├── 01ES5A2D2C16A19K9Z0NAB7CX2
│   ├── chunks
│   │   └── 000001
│   ├── index
│   ├── meta.json
│   └── tombstones
├── chunks_head
│   └── 000006
├── lock
├── queries.active
└── wal
    ├── 00000009
    ├── 00000010
    ├── 00000011
    ├── 00000012
    ├── 00000013
    ├── 00000014
    ├── 00000015
    ├── 00000016
    └── checkpoint.00000008
        └── 00000000

5 directories, 16 files

Wait for about 5 minutes, there is noting changing in prometheus's log. I think the compaction does't work because there is only one new block.
Run tsdb create-blocks-from second time and the data folder look like:
$ ./promtool tsdb create-blocks-from openmetrics backfilling.txt
BLOCK ULID                  MIN TIME                       MAX TIME                       DURATION   NUM SAMPLES  NUM CHUNKS  NUM SERIES  SIZE
01ES5ADBNQ538A640PHE8KBXDT  2020-12-09 05:21:40 +0000 UTC  2020-12-09 05:25:10 +0000 UTC  3m30.001s  15           2           2           769B

$ tree data
data
├── 01ES5A2D2C16A19K9Z0NAB7CX2
│   ├── chunks
│   │   └── 000001
│   ├── index
│   ├── meta.json
│   └── tombstones
├── 01ES5ADBNQ538A640PHE8KBXDT
│   ├── chunks
│   │   └── 000001
│   ├── index
│   ├── meta.json
│   └── tombstones
├── chunks_head
│   └── 000006
├── lock
├── queries.active
└── wal
    ├── 00000009
    ├── 00000010
    ├── 00000011
    ├── 00000012
    ├── 00000013
    ├── 00000014
    ├── 00000015
    ├── 00000016
    └── checkpoint.00000008
        └── 00000000

7 directories, 20 files

Wait for about 1 minute, the new compaction logs look like:
level=warn ts=2020-12-10T03:17:26.299Z caller=compact.go:686 component=tsdb msg="Found overlapping blocks during compaction" ulid=01ES5AEJM8GEEJ1H55S1JRCSEH
level=info ts=2020-12-10T03:17:26.821Z caller=compact.go:448 component=tsdb msg="compact blocks" count=2 mint=1607491300989 maxt=1607491510990 ulid=01ES5AEJM8GEEJ1H55S1JRCSEH sources="[01ES5A2D2C16A19K9Z0NAB7CX2 01ES5ADBNQ538A640PHE8KBXDT]" duration=542.131438ms
level=info ts=2020-12-10T03:17:26.841Z caller=db.go:1197 component=tsdb msg="Deleting obsolete block" block=01ES5ADBNQ538A640PHE8KBXDT
level=info ts=2020-12-10T03:17:26.854Z caller=db.go:1197 component=tsdb msg="Deleting obsolete block" block=01ES5A2D2C16A19K9Z0NAB7CX2

As logs we can known the compaction occurs when there are multiple blocks.

It looks like we only automatically reload after a compaction, so it could take up to the next head compaction for it to happen automatically.

Thx, I have do a new test  and confirm that it will take up after head compaction.

Assuming that the admin API is enabled, could promtool call the /-/reload endpoint somehow?

Not with this subcommand, it has nothing to do with a Prometheus server.

Modified the issue title. Also, reloading the blocks every minute will also increase the resolution at which we check retention policies.

If no one is working on this one, I'd like to try it out :)

If no one is working on this one, I'd like to try it out :)


Compatibility issue with optifine

MC 1.20.1
Forge 47.2.0
CC:Tweaked 106.1 - 109.6
MoreRed <IP_ADDRESS>
MoreRed CCT Compat 1.0.0
Optifine 1.20.1 HD U I6
JVM arguments:
-Xmx12G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
PC specs
R3 3100
GTX 1060 6GB
24GB RAM
There's a weird compatibility issue with optifine
rs.getBundledInput() works fine but rs.setBundledOutput() doesn't, no redstone signal is produced
When I unload optifine it works as expected.
Also here's debug.log
debug.txt

Current CC:T version already features native More Red bundled cables support, which is also broken with OptiFine. I believe OptiFine is the problem.


Allow failure within a map call

There are some cases where we need to fail gracefully within a map call. As an example, I have some code that parses a charset name and needs to turn it into an instance of java.nio.charset.Charset. The name itself might be valid syntactically but not actually be the name of a valid Charset, which I can only discover in the map call.
I think what I'm really asking for is for is for map to be able to return a failing parser - that is, for Parser to have a flatMap method.

Do you mean something like https://github.com/lihaoyi/fastparse/blob/master/fastparse/shared/src/main/scala/fastparse/ParserApi.scala#L67-L71

I'm terribly sorry, I appear to be using an out-of-date version (0.3.0) in which it was not yet implemented. Apologies, I should have looked at the most recent source.

No problem :)
On Jun 16, 2015 6:41 PM, "Nicolas Rinaudo"<EMAIL_ADDRESS>wrote:

I'm terribly sorry, I appear to be using an out-of-date version (0.3.0) in
which it was not yet implemented. Apologies, I should have looked at the
most recent source.
—
Reply to this email directly or view it on GitHub
https://github.com/lihaoyi/fastparse/issues/28#issuecomment-112365353.

As a side note, it's a bit confusing that the more recent version is 0.1.7, but there's a 0.3.0 version available in Maven.
Granted, if one follows your (well written) instructions, there is no problem, but it confuses tools such as sbt-updates (and people like who follow such tools blindly).

I just encountered this version confusion before figuring out there really shouldn't be 0.3.0 out there.