Magic Flow Academy - Educational platform for learning blockchain development

Description
As passionate FLOW Fanatics, we love spreading our knowledge about the Flow Blockchain! :two_hearts: :books:
We got solid developer docs, support on Discord, Flow forums, Tucker's streams and videos, Live events, Hackatons, and a shootload of carefully crafted articles. :nerd:
Isn't this enough?!
No. There's always room for something cool and unique!
:sparkles:  Say hello to the "Magic Flow Academy". :man_mage::school:
A whole new online school, open for anyone eager to learn the secrets of Dapp development and Smart Contracts on Flow.  :computer: :scroll:
At MFA, newcomers and veterans get the chance to polish their skills with the help of these awesome features:
:zap:  Course-by-course hands-on coding. No way to go wrong!
:bulb:  Teaching while typing. Solid explanations on every block of code.
:brain:  Gain (on-chain) experience points for each correct line of code.
:man_teacher:  Students become teachers. With enough experience points you'll be able to create your own MFA course!
Anything that happens within the Magic Flow Academy aligns 100% with the vision of the Flow blockchain and will surely attract a lot of fresh faces! :magnet: :baby:
Learning by doing, typing line by line, is undoubtedly one of the most effective (if not the most effective) method.
With this in mind, we have created the first educational platform where you can learn to build applications on the Flow blockchain with Cadence and integrate with FCL (in this first moment) by writing line by line and earning points (we call it xp) and getting tips from our teachers on what you are doing!

We have created a proof-of-concept that can be accessed through this link - > https://mfa.school
Problem statement
Lack of pedagogical content / Lack of diversity of content
Currently, the number of tutorials and educational platforms that teach cadence, fcl, and building applications on the Flow Blockchain is small. How many developers interested in blockchain development have given up learning Cadence because they couldn't find qualified content? We don't know that number, but we're sure that could be the case today.
Constant updates
Since this is a new and ever-changing language, existing tutorials no longer work or are constantly outdated due to updates. This leads to frustration and makes it difficult to learn a language that was developed with developer experience in mind.
Dissemination of existing content
The flow ecosystem lacks educational platforms focused on attracting new users
Absence of channels that allow the emergence of new tutorials
If you are a mobile development expert and want to create a tutorial for an app that interacts with the Flow blockchain, where should you go to present your idea and get rewarded for it? This channel does not currently exist and restricts new tutorials and educational content.
Target audience

Developers who want to learn how to build applications on the Flow Blockchain
Beginning developers who want to improve their programming skills
Users who want to learn how to program

Proposed solution
Problem -> Lack of pedagogical content / Lack of diversity of content
Solution
MFA will be the platform where users will find educational content from different types of applications.
We will start with 5 tutorials that will teach different features:
Orbies - application that performs minting of Orbies on each user request, there are 3 types of Orbies, one of each price. Anyone can call the function to mint an Orbie, but he must pay the price set in the contract for it!
In this tutorial the users of the platform will learn how to:

Create the Orbies Smart Contract, deploy it to the testnet
Create your specific transactions and scripts
Create a Next.js application that authenticates the user, performs the minting of Orbies (spheres) and displays the Orbies that are present in the wallet

Seven Dragons - application that sells 7 different types of dragons already pre-minted with the flow CLI. But to buy a dragon, you need to burn some Orbies.
In this tutorial the users of the platform will learn how to:

Create the Seven Dragons Smart Contract, deploy it to the testnet
Create your specific transactions and scripts
Mint 3300 Seven Dragons NFTs with Flow CLI
Create a Next.js dapp that authenticates the user, displays the orbies that are available in the wallet, the seven dragons that are available for purchase, their total balance and their value (orbies + flow tokens)

Packers - application that sells football packages. Similar to nba topshot.
In this tutorial the users of the platform will learn how to:

Create Packers Smart Contract and deploy it to the test network
Create your specific transactions and scripts
Mint 3300 NFT players with the Flow CLI
Create a Next.js dapp that authenticates the user, displays the players the wallet has and sells packs.

Studio MFA - The focus of this tutorial is to teach the user how to create nested NFTs. The user will be able to create frames (NFTs) that are a composition of an image (an NFT from the MFA ecosystem), a frame (an NFT that can be purchased), and a background (an NFT that can be purchased)
In this tutorial, we will show you how to:

Create the Studio Smart Contract and Perform the deployment on the testnet
Create your specific transactions and scripts
Create a Next.js dapp that authenticates the user, displays the NFTs that exist in the wallet, allows the purchase of a frame that can be customized with a border and a background, and places the NFT selected by the user in that frame

Flozzar - In this tutorial we will show you how to create a marketplace on the Flow Blockchain. Users will be able to list nfts (from the MFA ecosystem) and buy listed nfts.
In this tutorial, we will show you how to:

Create transactions and scripts to interact with the storeFrontV2 standard contract
Create a Next.js dapp that authenticates the user, displays the nfts that the wallet has, displays the nfts that are currently for sale, allows the user to buy new nfts in the marketplace or list their nfts for sale

After the first 5 features, users who have completed them can apply to show off their skills and create their own lessons within the MFA. (We will talk more about this later)
Problem - > Constant updates
Solution
All lessons in MFA come from an API and a database. To add and update the information we show in the education wizard that shows step by step how to create the app, we create a UI.
In this way, we can easily and quickly change and update a lesson. After the update, users can see which lines of code have changed compared to the code that was already written.
This makes it easier for users to identify new features.

Problem -> Disclosure of existing content
Solution
For each new lesson we will create 2 videos that will be posted on the MFA social networks (Youtube, Instagram, Facebook and Pinterest).

1 video will have a marketing appeal, be approximately 10 minutes long and show the platform and lesson being done. The first lesson that is in development -> Orbies, has a video that is also in development, a proof of concept of what we are creating can be seen through this link - > https://youtu.be/Fvcwsmyfwy4

1 Video that shows from start to finish the screen capture of the lesson being performed and completed. The user can follow all the steps inside and outside the MFA platform on their local computer

These videos will be cut into smaller pieces of approximately 1 minute to be used on MFA's social media as short videos. Youtube Ads, Meta Ads, Tiktok Ads and Pinterest Ads will also be used to increase the reach and bring new users to the platform.
Problem -> Lack of channels to allow the emergence of new tutorials
Solution
After the fifth lesson, we will allow MFA users to create their own lessons. How will this work?

Users who have completed the MFA lessons and have enough xp can submit a proposal for a lesson they want to create. The proposal should specify the features of the application, the programming language used, and the deadline for completion.

The submitted proposals will undergo a preliminary analysis and if they meet the requirements, they will participate in the MFA voting.

The MFA voting will take place with the qualified proposals, we want to use the platform CAST. The MFA users will be able to vote on the proposal they want to see realized.

The owner of the winning proposal will be given access to the lesson creation UI and will be able to create the educational content. Once the content is completed and approved, it will be published on the MFA platform and the owner of the winning proposal will receive a reward in the form of FLOW tokens

Other solutions

The user can access the /find page, where he has a convenient and quick way to access the code he has already written, also he can use the search input to find a specific code snippet. Who has not opened a file to remember how to create a certain line of code?

A proof of concept of this page can be seen here -> https://mfa.school/find
Impact

A place to learn various functions related to the Flow blockchain
New users interested in programming can join the Flow ecosystem
New tutorials with new technologies that will emerge in the future, defined by community interest

Milestones and funding

Milestone
Deliverables
Timeline
Risks
USD proposal

1 - Finish MFA Wizard Modal
We have created a proof of concept that needs to be finalized. During this time we will fix some existing bugs in the front and back end and add features to improve the user experience
2 weeks
-
4000

2 - Finish Orbies Lesson texts
In this time we will improve the explanatory texts of the teachers, update the code with the latest Cadence features and add to the lesson the step by step how to list the Smart Contract in the Flow Catalog
2 weeks
-
2000

3 - Create the Cadence Framework Testing Lesson
(Community request) We will create a Lesson teaching how to configure and run Cadence Framework Testing to test Orbies Lesson's scripts and transactions contracts
3 weeks
-
6000

4 - Finish Seven Dragons Lesson
We have already started creating this lesson, we have a draft in Figma and the smart contract, in this period we will finish the transactions and scripts, create the application Next. JS, integrate with FCL and add the code and create the explanatory texts for the Modal Wizard. Here we will also teach our students to create a JS application that will loop batch transactions to mint the 3300 dragons. (+ 2 Youtube Videos as previously mentioned)
4 weeks
-
10000

5 - Studio MFA Lesson
We have already created the Smart Contract and the corresponding transactions, we will create the application Next.JS, integrate with FCL and add the code and create the explanatory texts for the Modal Wizard. Our plan here is to use the proposed new NFTV2 standard (https://github.com/onflow/flips/pull/56), showing students how to create different NFTs within the same contract. (+ 2 Youtube Videos as previously mentioned)
4 weeks
-
10000

5 - Packers Lesson
We have already created a draft in Figma, we will create the application Next.JS, integrate with FCL and add the code and create the explanatory texts for the Modal Wizard. (+ 2 Youtube Videos as previously mentioned)
4 weeks
-
10000

6 - Flozzar Lesson
We have already created a draft in Figma, we will create the application Next.JS, integrate with FCL and add the code and create the explanatory texts for the Modal Wizard. (+ 2 Youtube Videos as previously mentioned)
4 weeks
-
10000

7 - Open MFA Voting 1
We will open the platform to receive proposals for new tutorials created by users
1 weeks
-
1000

8 - Finish MFA Voting 1 and develop the new tutorial
Launch the first lesson created by a user and selected by the MFA community. We will support the creation of the lesson and reward the winner at the end
3 weeks
-
7000

Total funding proposed: 60000
Team

Name
Role
Bio
Contact

Felipe Ribeiro
Project Co-Lead
Blockchain and Full-Stack Developer
<EMAIL_ADDRESS>

Alan Dega
Project Co-Lead
Designer and Full-Stack Developer
<EMAIL_ADDRESS>

Kristian Gersh
Video & Digital Marketing
VideoMaker and Digital Marketing specialist
Instagram: @kristiangersh

This is a summary of the context we are bringing, but we are open to questions and possible clarification of the points mentioned here. We are also open for suggestions!

Hi @FelipeRibeiroLabs!  Could you please add proposed costs for the milestones in this proposal?  Thanks!

Hi @chrisackermann!
For certain It's been a while since our proposal and we have had some feedback since then! I will also update the proposal with the proposed costs! Thanks!

@chrisackermann The proposal is updated! If needed, I am also available for a conversation to explain our vision for this project and what we want to achieve with it! Many thanks in advance

Hi @FelipeRibeiroLabs!
I tested and indeed anyone can improve their practical skills, there are various flow applications and the impact of actions that we can relate to this platform is truly immense.
When the tool is ready, I will make myself available to promote in the Emerald Brazil community and promote in an article and video content.

Hi @FelipeRibeiroLabs!  Can you please reach out on Discord at chrisa#6592 so we can talk through in some more detail?  Thanks!

We appreciate your proposal and taking the time to fill it out. After careful review we've decided not to proceed at this time. Please stay connected to our Twitter and working groups to stay on top of the latest developments in the ecosystem and new grant opportunities.


mkdocs.yml,docs/dev-proc: initial version of sections describing dev …

…proc
Signed-off-by: Piotr Król<EMAIL_ADDRESS>

@krystian-hebel I added information about force-pushes to source code structure.


php artisan test --env=testing only using .env instead of .env.testing

Laravel Version: 10.3.0
PHP Version: 8.2.1
Database Driver & Version:
mysql

Description:
When I run php artisan test --env=testing
It always uses the .env instead of the .env.testing file
The only way I can fix it is overriding the env in the phpunit.xml with
     <env name="APP_ENV" value="testing"/>
Steps To Reproduce:

Follow https://laravel.com/docs/10.x/testing#environment to create .env.testing file
Create tests using database docs
run php artisan test --env=testing

@driesvints can you reopen this so I can share my composer.json and get more support?
this is still not resolved

Please try a support channel:

Laracasts Forums
Laravel.io Forums
StackOverflow
Discord
Larachat
IRC

@driesvints could you please share the commit with the fix for the previous versions.  Thanks

On local development, I was caching config files with php artisan config:cache. This command loads .env file.
As explained here, Laravel does not load .env file if one was already loaded.
I managed to use .env.testing if I run php artisan config:clear before running tests.
It is also worth noting, that when upgrading to Laravel 10 from previous versions, you would need to upgrade some composer dev dependencies and update phpunit.xml file. Refer to Laravel docs.

Furthermore, if you wish to use PHPUnit 10, you should delete the processUncoveredFiles attribute from the  section of your application's phpunit.xml configuration file. Then, update the following dependencies in your application's composer.json file:

nunomaduro/collision to ^7.0
phpunit/phpunit to ^10.0


Add namespace support

This PR attempts to address the namespace support being requested in this issue.
Usage
See the added section in the README
Implementation
Based on the suggestion by @AngusP namespacing is initiated by initializing your Redis instance with functions passed to the add_namespace and rm_namespace arguments.  Whenever a namespace is to be added/removed to/from a key the passed function will run with the key as the argument.  This gives the user control of the namespacing logic.
Detecting which arguments/responses are keys follows the suggestion by @andymccurdy of using a keys_at method being passed to the execute_command argument.  For each method an array of integers representing indexes of the args passed to execute_command is passed as a keys_at kwarg.
Namespace removal of responses from method's that return keys is handled by passing the provided rm_namespace function to the execute_command function who in turn passes it down to the RESPONSE_CALLBACK for that command, which handles the logic for namespace removal.
No state is maintained on the class instance, so as long as the user doesn't change the add_namespace and rm_namespace methods namespacing should be thread safe.
Testing
Duplicates of tests without namespacing are created and run with namespacing enabled using basic add and rm namespace functions.  There are tests for namespaced redis, pipelines, pubsubs, and luascripting.
These tests ensure that the keys_at param for each method has an accurate value passed, and that when namespaces are removed from responses they are accurate.  But...
I know Andy is cognizant of the time it takes to run tests, and these extra functions add a lot of increased test time.   So I am open to ideas for less strenuous testing, that still ensures good coverage but decreases test time.
Performance
I did a rudimentary performance test which produced the following results.
In [1]: import time

In [2]: import redis

In [3]: def add_namespace(key):
    return 'ns:' + key
   ...:

In [4]: def rm_namespace(key):
    return key[3:]
   ...:

In [5]: r = redis.Redis()

In [6]: nsr = redis.Redis(add_namespace=add_namespace, rm_namespace=rm_namespace)

In [7]: def test(client, num):
    start = time.time()
    for i in range(num):
        _ = client.get('foo')
    return time.time() - start
   ...:

In [8]: test(r, 10000)
Out[8]: 9.901349067687988

In [9]: test(nsr, 10000)
Out[9]: 9.509238958358765

In [10]: def test(client, num):
    start = time.time()
    for i in range(num):
        _ = client.zadd('zfoo', a=1, b=2, c=3)
    return time.time() - start
   ....:

In [11]: test(r, 10000)

Out[11]: 3.7034590244293213

In [12]:

In [12]: test(nsr, 10000)
Out[12]: 4.358672142028809

@Kazanz Rebase against @andymccurdy's master.
Quick link to client.py: https://github.com/Kazanz/redis-py/blob/84f254e6478a08185bdc3e479be53df66e57a181/redis/client.py (too big to preview)
For some bike shedding, I just wanted to be able to instantiate a class and have all keys for that command namespaced.
What I don't understand is a need for rm_namespace (maybe I just don't understand redis well enough to get it), since the user could just instantiate a new class, or alter/remove the namespace being used on the instantiated class themselves, rather than by a keyword argument on methods. While removing a namespace may seem helpful in some cases, I don't think it's as universal as the general need users have to work add namespaces.
Any thoughts on the implementation just being namespace?
@andymccurdy: Thoughts on this?

Such a shame this hasn't been merged...

@okomarov The biggest shame in my opinion is the complete drop in communication from @andymccurdy after the constant back and forth.   It's not like I wasn't open to changing the implementation.  I did it happily over and over, and would have continued to, Andy after all has the most intimate knowledge with the code base, so it made sense to work on it until he was satisfied.
But having a working implementation be completely ignored after months of back and forth to satisfy him is rather rude imo.
I see @AngusP has taken up the charge in the issue thread.  I hope he has better luck.


Nested function calls with named parameters is incredibly difficult to read and results in unnecessary nesting

Given an input like:
fun f() {
    val request =
        namedArgsMethodLevel1(
            nestedParam1Level1 = namedArgsMethod1Level2(),
            nestedParam2Level1 = namedArgsMethod2Level2(
                nestedParam1Level2 = namedArgsMethodLevel3(
                    nestedParam1Level3 = AnEnum.Foo,
                    nestedParam2Level3 = listOf(
                        namedArgsMethodLevel4(
                            nestedParam1Level4 = AnEnum.Foo,
                            nestedParam2Level4 = "",
                            nestedParam3Level4 = 1,
                        ),
                    ),
                ),
            )
        )
}

ktfmt reformats it as:
fun f() {
    val request =
        namedArgsMethodLevel1(
            nestedParam1Level1 = namedArgsMethod1Level2(),
            nestedParam2Level1 =
                namedArgsMethod2Level2(
                    nestedParam1Level2 =
                        namedArgsMethodLevel3(
                            nestedParam1Level3 = AnEnum.Foo,
                            nestedParam2Level3 =
                                listOf(
                                    namedArgsMethodLevel4(
                                        nestedParam1Level4 = AnEnum.Foo,
                                        nestedParam2Level4 = "",
                                        nestedParam3Level4 = 1,
                                    ),
                                ),
                        ),
                ))
}

(depending on line length)
This is incredibly hard to read, and incredibly hard to track what goes where, whereas the original is quite easy to parse, just treat the () as {} and it reads just like a DSL. With the formatting changes in the current version of ktfmt, it nests too deeply to be legible. This is currently a major problem in our codebase, and my teammates are getting incredibly frustrated with ktfmt.
I would like to submit a PR, but I do not want to submit it without an accompanying discussion alongside the PR. From looking over the code, this decision was on purpose. I don't know why though. I see the original commit adding this logic was c57a9b2c95695a46cf1e4f3a4efb885f99b6b4c2 and was done by @cgrushko and reviewed by @strulovich. If they could chime in on the reasoning for the original logic it would be appreciated.
I can post some examples of what the current changes I have made do to the code in the tests, if that's desired.

The main reason for this is that ktfmt is based on google-java-format, which implicitly implements the "rectangle rule". It's possible to override this rule, but it's a constant fight against the underlying formatting algorithm.
Case an point, we do break the rectangle rule for "scope functions", and there's a ton of special case logic to handle the switch between block-like vs expression formatting, and edge cases like trailing comments.
val foo = someFun {
  // I'm violating the rectangle rule
  // `val foo = ` is on the same line as my opening `{`, and my closing `}` is misaligned
}

@nreid260 hm. it looks like it was strictly coded in ktfmt to act different than google-java-format does automatically. The only test that 'looks bad' is the Arguments are blocks test, and it ends up looking like this (left side is current code):

The rest look much easier to read (IMO):

Note that the right side I'm pretty sure is the default logic from google-java-format after I removed the code that explicitly adds a newline for named arguments.
So from judging the code it looks like it would be trading one piece of code for another. We'd have to remove the code that's explicitly adding newlines for named args, but then we'd have to fix the case of Arguments are blocks where we've got an expression that doesn't really follow the rectangle rule.
 If we still need to have more discussion about all the cases this would affect I can come up with a list. I tried doing that last night, but markdown/html tables with code in them on Github are just terrible so I gave up.

@nreid260 ah ok, that's good to know. Yeah it seems like my change should have broken more tests so I definitely will add more tests. And the note about the comments is a good one. It does seem like a significant portion of ktfmt is coding to handle comments 😂  Thank you.

@nreid260 I spent a bunch of time trying to figure out why the first case doesn't look good with my changes, and finally just reverted to the current main branch and tested a new test case that shows that it's actually current state that makes it look bad. See this example:

Not sure if I should touch this now. I can just make the initial pr 'solve' the nested arguments without touching the existing 'issue' around properties overflowing their lines (tbh I am not sure I've ever seen that case at all, and we have hundreds of thousands of lines of kotlin code.

I don't really know how the fluent-chain formatting works today. I wrote a sort-of-spec for how is should work, but didn't get permission to implement it myself. (I recall wanting to add a class to model an entire chain).
Since you've gone to the trouble of writing test cases, you should mail them, to show what the current behaviour is. That might make it easier to rouse support for changes, or at least prevent future regressions.

Since you've gone to the trouble of writing test cases, you should mail them, to show what the current behaviour is. That might make it easier to rouse support for changes, or at least prevent future regressions.

that's a good idea. I'll do that!

https://github.com/facebook/ktfmt/pull/488


🛠 Tooling: Should set eslint.probe in ESLint settings to include .json, etc.

Bug Report Checklist

[X] I have tried restarting my IDE and the issue persists.
[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
TIL that the VS Code ESLint extension will stay silent unless a file in one of the following default language formats is found: "javascript", "javascriptreact", "typescript", "typescriptreact", "html", "vue", "markdown"]. https://github.com/microsoft/vscode-eslint/blob/560df864580a9381d84b2f1e408f46f6600fda48/README.md#settings-options
To repro:

Open the repo folder in VS Code without opening any files by default
Open any .json and/or .jsonc file(s)

VS Code will give a little prompt saying:
ESLint is not running. By default only TypeScript and JavaScript files are validated. If you want to validate other file types please specify them in the 'eslint.probe' setting.

This repo configures linting for other extensions such as .json, .jsonc, and .md. We should update the eslint.probe setting in .vscode/settings.json to include the corresponding VS Code language identifiers.
Note that an extension (e.g. .json) is not the same as a language identifier (e.g. "json"). https://code.visualstudio.com/docs/languages/identifiers
Additional Info

Could I try an attempt at trying to solve this?

@the-lazy-learner absolutely, please do! 🙌

Please review PR #267

Unfortunately, had to delay because of health issues, please check now if it looks ok

❤ hope you're feeling better @the-lazy-learner!
Btw, you don't need to explicitly ask for re-review in comments. I updated the development docs to mention this: https://github.com/JoshuaKGoldberg/template-typescript-node-package/pull/314 (it doesn't bother me, just wanted to save you some time 😄)


Follow standard naming conventions of properties for creating messages

Its annoying to have to figure out that things like icon_url are named as iconURL

This is how the lib is designed, and it isn't changing. Reading the docs clearly shows how everything works.

use eris, or one of it's forks then?

Eris did the same thing as us, they just forgot to do it for some things

Eris was a mess of snake case and camel case, they didn't "follow standards", they just didn't follow their own style and couldn't change it due to major breaking changes later

If you don't like it, you are more than welcome to find a different library. It isn't changing.


Switches to Axios and adds supreme debug statements

This should help folks understand what's happening between events and
json.
Tested including the browser. It is coherent eventhough there seems to
be an instrumentation glitch somewhere.

here's an example of hitting the url once, resulting in some odd pre-emptive span sending. Using chrome debugger should help figure out what that's the case
$ npm start

><EMAIL_ADDRESS>start /Users/acole/oss/zipkin-js-example/web
> node servers.js

Frontend listening on port 8081!
Backend listening on port 9000!
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff ServiceName("frontend")
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff Rpc("GET")
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff BinaryAnnotation(http.path="/")
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff ServerRecv()
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff LocalAddr(host="InetAddress(<IP_ADDRESS>)", port=0)
frontend recording: 69fc9b5ab5aca0ff/d9140946c496be48 ServiceName("frontend")
frontend recording: 69fc9b5ab5aca0ff/d9140946c496be48 LocalOperationStart("pay-me")
frontend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 ServiceName("frontend")
frontend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 Rpc("GET")
frontend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 BinaryAnnotation(http.path="/api")
frontend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 ClientSend()
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 ServiceName("backend")
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 Rpc("GET")
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 BinaryAnnotation(http.path="/api")
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 ServerRecv()
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 LocalAddr(host="InetAddress(<IP_ADDRESS>)", port=0)
frontend sending: {"traceId":"69fc9b5ab5aca0ff","id":"69fc9b5ab5aca0ff","name":"get","kind":"CLIENT","localEndpoint":{"serviceName":"frontend","ipv4":"<IP_ADDRESS>"},"tags":{"http.path":"/"}}
frontend sending: {"traceId":"69fc9b5ab5aca0ff","parentId":"69fc9b5ab5aca0ff","id":"d9140946c496be48","name":"pay-me","localEndpoint":{"serviceName":"frontend"}}
frontend sending: {"traceId":"69fc9b5ab5aca0ff","parentId":"d9140946c496be48","id":"6d89e70dd8e42714","name":"get","kind":"CLIENT","localEndpoint":{"serviceName":"frontend"},"tags":{"http.path":"/api"}}
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 Rpc("GET /api")
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 BinaryAnnotation(http.status_code="200")
backend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 ServerSend()
frontend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 BinaryAnnotation(http.status_code="200")
frontend recording: 69fc9b5ab5aca0ff/6d89e70dd8e42714 ClientRecv()
frontend sending: {"traceId":"69fc9b5ab5aca0ff","parentId":"d9140946c496be48","id":"6d89e70dd8e42714","kind":"CLIENT","timestamp":1561729423291000,"duration":147,"tags":{"http.status_code":"200"}}
backend sending: {"traceId":"69fc9b5ab5aca0ff","parentId":"d9140946c496be48","id":"6d89e70dd8e42714","name":"get /api","kind":"SERVER","timestamp":1561729421958000,"duration":1333616,"localEndpoint":{"serviceName":"backend","ipv4":"<IP_ADDRESS>"},"tags":{"http.path":"/api","http.status_code":"200"},"shared":true}
frontend recording: 69fc9b5ab5aca0ff/d9140946c496be48 LocalOperationStop()
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff Rpc("GET /")
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff BinaryAnnotation(http.status_code="200")
frontend recording: 69fc9b5ab5aca0ff/69fc9b5ab5aca0ff ServerSend()
frontend sending: {"traceId":"69fc9b5ab5aca0ff","id":"69fc9b5ab5aca0ff","name":"get /","kind":"SERVER","timestamp":1561729423295000,"duration":218,"tags":{"http.status_code":"200"}}

PS this switches to axios because the "rest" npm module hasn't been updated in years


Paper for publication

Completing paper for empirical software engineering journal.

? This is not really a useful issue @SahithiKasim


Help in understanding - and using - the canonical face model and the face pose transformation matrix

Hello,
Thank you for sharing such a complete, effective and efficient platform. I would like to fully exploit it for my research work, but I'm struggling with a number of practical issues, and need some hints to go on. Please help me, I think this may help other developers as well.
At this time I just want to pick a landmark from the canonical face model and project it onto the face in the image from my camera, by using the face pose transformation matrix. This should work easily, as per the definition given in mediapipe Face Mesh github page, however, it does not work for me.
My idea was to extract the Face Pose Transformation Matrix (FPTM) from face_geometry as follows (granted that only one face is present in the video):

const face_geometry::FaceGeometry& f_g = multi_face_geometry[0];
Eigen::Matrix3d rot;
rot(0,0) = f_g.pose_transform_matrix().packed_data()[0];
rot(1,0) = f_g.pose_transform_matrix().packed_data()[1];
rot(2,0) = f_g.pose_transform_matrix().packed_data()[2];

rot(0,1) = f_g.pose_transform_matrix().packed_data()[4];
rot(1,1) = f_g.pose_transform_matrix().packed_data()[5];
rot(2,1) = f_g.pose_transform_matrix().packed_data()[6];

rot(0,2) = f_g.pose_transform_matrix().packed_data()[8];
rot(1,2) = f_g.pose_transform_matrix().packed_data()[9];
rot(2,2) = f_g.pose_transform_matrix().packed_data()[10];

// Calculate Euler Vectors
Eigen::Vector3d euler_t = rot.eulerAngles(2, 1, 0);
LOG(INFO) << euler_t;

cv::Mat translation_vector = (cv::Mat_<double>(3,1) <<
	- f_g.pose_transform_matrix().packed_data()[12],
	- f_g.pose_transform_matrix().packed_data()[13],
	f_g.pose_transform_matrix().packed_data()[14]);

cv::Mat rotation_vector, rotation_matrix = (cv::Mat_<double>(3,3)
		<< rot(0,0), rot(0,1), -rot(0,2), rot(1,0),
		rot(1,1), -rot(1,2),-rot(2,0), -rot(2,1), rot(2,2));

I first assigned the elements of the FPTM to an Eigen:Matrix3D in order to be able to calculate (just as an experiment) the euler angles, but this is not relevant to this post. Please note that I explicitly assign each element separately, in order to avoid possible issues with in-memory structure of the matrices. I took into account that in FPTM, data are stored in column-major order by default.
Then I assigned the rotation_vector and translation_matrix values. By trial-and-error I found that there appears to be a mismatch in the x- and y- axis directions between OpenCV (that I later use for the point projection) and OpenGL (If I got it right, mediapipe uses the OpenGL conventions). As a consequence, I had to change the sign of the first two elements of the translation vector and the sign of some of the rotation matrix coeffs.
To understand which elements to flip, I took into account that the cos(x) is an even function of x, whereas sin(x) is odd. I used this scheme for the elements of the rotation matrix.
Then I converted the rotation matrix into a rotation vector using the cv::Rodrigues() function as follows:
 		cv::Rodrigues(rotation_matrix,rotation_vector);
I composed an approximate intrinsic camera matrix as follows:

	    	double focal_length_x = s_x; // Approximate focal length.
	    	double focal_length_y = s_x; // Approximate focal length.
		cv::Point2d center = cv::Point2d(s_x/2,s_y/2);
		cv::Mat camera_matrix = (cv::Mat_<double>(3,3) << focal_length_x, 0, center.x, 0,
		focal_length_y, center.y, 0, 0, 1);
		cv::Mat dist_coeffs = cv::Mat::zeros(4,1,cv::DataType<double>::type);

Then I picked one of the landmarks from the canonical face model, e.g., the LM 159, corresponding to the upper-center landmark of the eye on the left (according to this scheme). Its coordinates are x=-3.177186 y=2.964136 z=3.876973 according to this list (please note that the list starts from point 1 instead of 0, so 159 becomes 160).
Using the cv::projectPoints() function I project the landmark onto the image according to the FPTM as follows:

eye_end_point3D.push_back(cv::Point3d(x, y, z));
cv::projectPoints(eye_end_point3D, rotation_vector, translation_vector, camera_matrix,
dist_coeffs, eye_end_point2D);

To make my experiment more funny I project a second point, that has exactly the same x, y coordinates as the landmarks, but a different z. I will use it to render a segment (a beam) stemming from the eye and a few centimeters long.

laser_end_point3D.push_back(cv::Point3d(x, y, -20));
cv::projectPoints(laser_end_point3D, rotation_vector, translation_vector, camera_matrix,
dist_coeffs, laser_end_point2D);

Finally I render the segment (the beam) on the frame:

RenderAnnotation* pinocchio = render_data.add_render_annotations();
pinocchio->set_thickness(5);
pinocchio->mutable_color()->set_r(0);
pinocchio->mutable_color()->set_g(0);
pinocchio->mutable_color()->set_b(255);
// Just a test: draw a blue beam from the left eye.
pinocchio->mutable_line()->set_x_start(eye_end_point2D[0].x);
pinocchio->mutable_line()->set_y_start(eye_end_point2D[0].y);
pinocchio->mutable_line()->set_x_end(laser_end_point2D[0].x);
pinocchio->mutable_line()->set_y_end(laser_end_point2D[0].y);

renderer_->RenderDataOnImage(render_data);

I obtain a laser beam stemming from my face and rotating and moving with the face, but:

The perspective is a bit odd (the laser beam points a bit down), probably due to the fact that the camera is not perfectly frontal. Instead, it is mounted higher than my face, i.e., it is looking "down" at my face.
Most important, the points are projected to a wrong x,y position. I had to adjust the original landmarks by changing the sign ("flipping") of the x and y coordinates and adding a shift to the z coordinate. In other words, I am missing some further transformation to be applied to the landmarks coordinates and I do not know how to determine such a transformation.
I went through the geometry_pipeline effect_renderer source code, and in particular here I found that a further transformation matrix is determined for the OpenGL projection. But, then, I lost my courage.
Am I on the right way? Should I actually calculate this perspective transformation matrix, and then multiply its rotation part by the rotation matrix I already have, and sum the translation vector to the one I already have, before I apply the cv::project points()? Or is there something else I should do?
Sorry for the long post, but I got the feeling that this part of the documentation is not sufficiently clear and your answers might be very useful for most readers here.

@ianni67  Seeing you clear from the above comment, Closing it. If any other issue, Raise a new Ticket. Thank you !

Hello @kostyaby, I'm very sorry to append a question to a closed issue, I hope this won't be a severe violation.
I'm still in a bit of trouble with the projection matrix. You wrote that it should be consistent with the GL projection matrix and I understood this as being exactly the GL projection matrix, so I built the matrix according to effect_renderer code. However, I get weird results and, having checked a number of times my code, I decided that I'm still not getting your explanation right.
Is the intrinsic camera matrix that I'm supposed to use, exactly the GL projection matrix? Indeed it does not match the definition of intrinsic camera matrix that I know. In particular, the values for f_y, f_x do not correspond and center_x and center_y should not be zero.

Hey @ianni67,
No worries, I'm happy to expand further :)
First of all, please make sure the Face Geometry environment camera parameters (like here) are synced with your camera parameters. If they are different, then your matrix will obviously project 3D points into wrong screen locations.
Our camera model doesn't support center_x and center_y at this point for simplicity. From my previous experience, I very rarely encountered real-world cameras with (center_x, center_y) not being very close to (0, 0). Dropping that component allowed us to keep things simple and to be able to reference the classic OpenGL camera information on the web that simplifies adoption for AR use-cases. As far as I understand, your use-case is not AR, but anyways assuming (center_x, center_y) is (0, 0) will only not work for very specific use-cases. If those use-cases is something that you encounter, I'll consider adding (center_x, center_y) into the camera matrix model during the following month (sorry about the timeline)
Other that the absence of principal point, the classic OpenGL perspective camera (link) operates on the same principles as the Pinhole camera model (link):

It captures the 3D world between two clipping Z-planes: -near and -far (it's -near and not near cuz right-handed 3D space is conventionally used in OpenGL);
It has a focal Z-plane at -near;
It uses vertical_fov_degrees to calculate f for projecting Y coordinates. For X coordinates, f needs to be adjusted to account for the focal plane aspect ratio (that you see the f / aspect_ratio part);

I don't know which camera parameterization you are used to, but if it's available as formulas then I encourage you to work with both that parameterization & the OpenGL camera parameterization on a sheet of paper to find how a link between the two can be made

Thank you very much for your fast and kind reply, @kostyaby !
I think I finally got most of the story, and probably found out the reason of the weird behavior. I fed a wrong f_y to the matrix. Moreover, I made some sort of mix-up between computer vision and computer graphics, so - for example - I was trying to set center.x and center.y as the centers of the camera frame (height/2, width/2) instead of letting it be (0,0) and eventually shift the 2D frame at the very end of the process.
Now everything seems to work properly, at least with the camera projection.
You got it right, I'm not working on AR, I'm experimenting with eye gaze tracking (not just iris detection/tracking) for human-computer interaction. My main problem is avoiding frequent calibrations.

Cool, I'm glad the camera projection logic is working out for you now!
Also, your use case sounds super cool! I'm happy to support external clients of Face Geometry module, especially when their use cases are new and challenge the technology :)

I'm afraid I hit the rock wall. As I need some sort of reference point with respect to which I measure the iris motion, I need such reference point to be "still" with respect to iris motion. However, all possible reference points are somehow related to some face landmark, and it seems that the landmark fitting approach used by mediapipe is not sufficiently reliable. Every vertical motion of the iris makes the whole face model move accordingly, which is not correct. This effect (a few pixels vertical shift when the subject shifts their look from top to bottom) is sufficient to dramatically reduce the accuracy of eye tracking.

Hey @ianni67,
Sorry for the late reply; I was OOO last week and wasn't processing any work-related emails

Every vertical motion of the iris makes the whole face model move accordingly

Face Geometry module is based on Face Landmark module, so I played a bit with both to see the effect you are talking about:

As you can see, the Face Landmark module incorrectly derives near-eye landmark motion from iris motion (although in reality those landmarks are not moving). Not only near-eye landmark, even landmarks that are further away from the eye region are affected fairly significantly
Unfortunately, there's nothing you can do about configuring Face Geometry module to account for such motion. I'd recommend you creating a separate issue to describe the Face Landmark module undesirable behaviour so other MediaPipe folks that are related closer to that part of the technology can chime in and comment. Feel free to link this comment with GIFs into your issue so that the next person has better context of what kind of problems you are struggling with

Thank you, @kostyaby, for taking the time to investigate this issue. Yes, this is exactly the issue that is stopping me at the moment. All the other details are in place, but the fact that even the face pose transformation matrix is affected by the bare motion of the iris is currently preventing me to complete my project.

Hey @ianni67,
Sorry for the late reply; I was OOO last week and wasn't processing any work-related emails

Every vertical motion of the iris makes the whole face model move accordingly

Face Geometry module is based on Face Landmark module, so I played a bit with both to see the effect you are talking about:

As you can see, the Face Landmark module incorrectly derives near-eye landmark motion from iris motion (although in reality those landmarks are not moving). Not only near-eye landmark, even landmarks that are further away from the eye region are affected fairly significantly
Unfortunately, there's nothing you can do about configuring Face Geometry module to account for such motion. I'd recommend you creating a separate issue to describe the Face Landmark module undesirable behaviour so other MediaPipe folks that are related closer to that part of the technology can chime in and comment. Feel free to link this comment with GIFs into your issue so that the next person has better context of what kind of problems you are struggling with

Is this problem valid for python, C++ and Javascript version of solutions?
Is there any update regarding that, any solution?
Thank you


create sample data for merch carousel (cds)

need sample data on merchandising carousel in order to have for e2e test

backend PR: https://github.tools.sap/cx-commerce/spartacussampledataaddon/pull/53


[ServiceBus&EventHubs] fix mypy/pylint

/azp run python - eventhub - tests

/azp run python - servicebus - tests

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-servicebus

/azp run python - servicebus - tests

/azp run python - eventhub - tests

/check-enforcer override


Revert "refactor(decoder): enforce Base64 encoded values to not be empty"

Reverts pixincreate/PixeneOS#24

accident, sorry


[FR] Improve resources configuration in Helm Chart

Is your feature request related to a problem? Please describe.
The configuration of the resources is frustrating.
Describe the solution you'd like
It would be useful to allow to configure the resources section in the chart to add only the changes you want for certain types of resources and take the default configuration otherwise. Now the default resources value is an array and it is not possible to select the single resource to change the configuration but you have to redefine the entire array of resources.
Describe alternatives you've considered
No alternative
Additional context
Not relevant

@PrasadG193 any news about this?

@PrasadG193 @thijsdejong @vaibhavp could you please take a look?

Hey @pierluigilenoci, could you please suggest what configuration format you are expecting? Feel free to ping me on Slack for wider discussion

@PrasadG193 specifically, I have no clear ideas but maybe something better can be done with anchors, aliases, and merge keys.

@PrasadG193 any news?

@PrasadG193 any news?

@ebrianne could you please take a look?

@pkosiec @mszostok, could you please take a look?

@pkosiec, could you please provide feedback?

We've updated the Helm chart configuration in Botkube 1.0+. Until anyone have better idea how and what we can improve, we can't do anything about it. Map is a no-go as then people would need to reset the default config which is way worse than the current array.
Feel free to create a brand-new issue and contribute to the project with specific configuration changes which won't make the life easier for people who heavily customize the configuration.
Cheers!


Python not showing exception hit

I turned on Python exceptions, but it just breaks in the debugger and doesn't pop-up the exception window like I'd see in C#. There's no indication that I hit an uncaught exception here except if I look at my Locals window. I would expect the standard VS Exception window to pop-up to give me options to look up help on the exception or copy it to my clipboard or to ignore this type of exception in the future.
Reported at https://developercommunity.visualstudio.com/content/problem/55532/python-not-showing-exception-hit.html

Okay, I'm having trouble getting a repro going too.
@crwilcox - can you email (internally) the code you were hitting this on and enough info to make it repro? A live machine I can remote to would be perfect

having the same issue - only first exception window is shown.
the current "workaround" is to relaunch visual studio

closing the solution and opening it again also works as workaround

@sergey-vdovin we haven't been able to get a consistent repro (I've seen it once during remote debugging then never again). Any additional information you can provide would be greatly appreciated. We still don't know what triggers this, and if it's a timing issue that makes it hard to repro.
Do you have some minimal Python code that you can share that triggers this issue?
Are you using local F5 debugging or did you do a regular attach or ptvsd attach?
Does the rest of the debugger functionality continue to work once the exception popup stops appearing?

@huguesv  please check the attached zipped flv recording:
2017-07-01 04-59-01.zip

Thanks @sergey-vdovin !
I tried your example code with PTVS build 17160 (15.3.0 Preview 3.0) and I could not reproduce it.
On the same machine I also installed PTVS build 17114 (15.2, same build as you) and I am able to consistently repro the issue with it.
Given how much trouble I've had trying to repro on 15.3, and how easy it was on 15.2, I'm hopeful that general debugger fixes that went in since then have fixed this, or improved it greatly.
If you'd like to try out the preview of 15.3, you can click on the "early preview access" links at https://www.visualstudio.com/downloads/

Thank you @huguesv
will think about the preview
it is just a bit strange that not so many people are reporting the problem: PTVS build 17114 (15.2) seems to be the latest release version. perhaps downgrade is another variant to resolve (release variant).

For me it's also consistent on PTVS build 17114 (15.2)
Running a preview parallel installation isn't easy... Any expectation on when this will make release?

+1:
questions to those who knows ):

when this 15.3.0 with "general debugger fixes that went in since then have fixed this" is going to come?
if it is possible to help it to come faster (before 15.3) - like voting somewhere?

I also just hit this issue with Python on VS 2017.


Fork Antora Default UI and decide on/implement desired changes

Get rid of sample content

Other changes TBD

We'll need to continue to maintain our fork with upstream changes ongoing, but activity is light so shouldn't pose any issues.


Near Future Construction [1.0.0] to [1.0.1]

Hi!
Nertea released an update (1.0.1) of Near Future Construction on April 10th, but in CKAN there is the previous version (1.0.0) listed as compatible with 1.4.2.

The bot has been erroring out on that mod for a while, with an error it shared with two other mods:

NetKAN
Last Error ▾

NearFutureConstruction
Cannot find central directory

I don't know what that means, and it works fine if run locally. I'm hoping that we'll get more information if/when KSP-CKAN/NetKAN-bot#63 is merged. So far my only guess is that a broken ZIP was uploaded initially and replaced, with the original file still in the bot's cache, but that's pure speculation.

Looks like 1.0.2 just came out and was indexed without a problem.
https://github.com/KSP-CKAN/CKAN-meta/commit/95c96f9fa2e6998c0239290d4b761f913288a068


Load more tree item lacks UX

This is such a strange action... we could at least replace the text with Loading next 25 PRs... or something similar

The problem is that there isn't a fixed number that get loaded each time/it's not known how many will be returned before doing the fetch.
The logic is to keep making requests until there are at least 20 results, or until there are no more remotes that still have more pages. So if the remote for the repo has a lot of pages of PRs, 20 will be returned on each load until the last page of results, which may be less than 20.
But there's also a case where the repo has multiple remotes, in which case if the first remote runs out of PRs and returns less than 20, we fetch from the next remote, which may return up to 20 more. So the worst case scenario is that the first remote returns 19, and the next returns 20. The paging for this API is not robust, so trying to just fetch 1 from the next remote doesn't work.


Add DSA file in main code

💥 Proposal
(A clear and concise description of what the proposal is.)
Have you read the Contributing Guidelines ?
(Write your answer here.)
I have seen web development, app development files but I think we can add an DSA file which will contain basic data structures and algorithms associated to make this repository more informative. Kindly assign the task to me. I'm a 5 star code on hackerrank and 2 star on codechef. I have my skills in competitive programming.

@varsha080 Could you please be more specific ?

💥 Proposal
(A clear and concise description of what the proposal is.)
Have you read the Contributing Guidelines ?
(Write your answer here.) I have seen web development, app development files but I think we can add an DSA file which will contain basic data structures and algorithms associated to make this repository more informative. Kindly assign the task to me. I'm a 5 star code on hackerrank and 2 star on codechef. I have my skills in competitive programming.

This repo. only contain projects 👍


Refs #20483 --  Lifted available_apps limitation in regard to unavailable models references.

buildbot, test on oracle.

buildbot, test on oracle.

@shaib, did you find time to work on a recursive query to retrieve all dependent tables and constraints from an initial set of tables?
@timgraham, any objection to merge 957f4cabc1af02b2de285eda882f1421a4c22f08 separately now that I've assigned the related_name to a reused variable?

On Tuesday 31 May 2016 21:50:51 Simon Charette wrote:

@shaib, did you find time to work on a recursive query to retrieve all
dependent tables and constraints from an initial set of tables?

Sorry, no. Not yet.

@felixxm do you think you could be able to come up with recursive query to retrieve all dependent tables and constraints from an initial set of tables on Oracle? Speeding up the TRUNCATE CASCADE implementation emulation is the only thing left to merge this PR.

This query should return all dependent tables and constraints for specific table:
cursor.execute("""
    SELECT
        user_tables.table_name, rcons.constraint_name
    FROM
        user_tables
    JOIN
        user_constraints cons
        ON (user_tables.table_name = cons.table_name AND cons.constraint_type = ANY('P', 'U'))
    LEFT JOIN
        user_constraints rcons
        ON (user_tables.table_name = rcons.table_name AND rcons.constraint_type = 'R')
    START WITH user_tables.table_name = UPPER(%s)
    CONNECT BY NOCYCLE PRIOR cons.constraint_name = rcons.r_constraint_name
    GROUP BY
        user_tables.table_name, rcons.constraint_name
    HAVING user_tables.table_name != UPPER(%s);
""", [table_name, table_name])

But we still need to keep appropriate order.
I'm going to prepare all change tomorrow.

Awesome @felixxm, thank you so much!

I reorganized and simplified this PR. Please take a look at https://github.com/felixxm/django/commit/7477165acf67ad96b0665d63fe3feb32482c8e57.

Your changes are looking good!
Do you think it could be possible/desirable to make _foreign_key_constraints() accept a list of table names and use table_name IN tables_names to perform a single query instead?

I think that won't work correct. We can reach the same constraint and foreign table few times (from different source tables) it can change DML ordering which is very important. That's why I build sql lists separately for each source table (see line 359). This implementation works quite fast.

This implementation works quite fast.

Awesome, I'll merge your changes in this PR and give you attribution later today!

Buildbot, test on oracle.

@felixxm I had similar code ready to merge but I was struggling with the second query construction, thanks for that!
Ideally _foreign_key_constraints would accept a list of table names and perform a single query to retrieve all the constraints (using table_name IN ...) but as this approach performs reasonably well I think the current behavior is acceptable.

Buildbot, test on oracle.

@timgraham this should be good for a final review if you're not too swamped tomorrow. I don't mind if this doesn't make it in the 1.11 cut, this is really just a cleanup.


FAILED: Unexpected token '<', "<!DOCTYPE "

I appreciate your work very much and I'm glad that you made something like this OpenSource
I installed locally, and I try to generate remotely using the banana API and I get this error
FAILED: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
![image](https://user-images.githubusercontent.com/98161342/208885180-434161ce-6a4e-4dc7-9bbe-16e6aef30db3.png)
in the server console I only have this error
} Error in subscribe({"name":"userLikes","updatedAt":{}}): MongoServerSelectionError: connect ECONNREFUSED <IP_ADDRESS>:27017     at Timeout._onTimeout (C:\Users\Ambsd\Desktop\websd\node_modules\mongodb\lib\sdam\topology.js:293:38)     at listOnTimeout (node:internal/timers:564:17)     at process.processTimers (node:internal/timers:507:7) {   reason: TopologyDescription {     type: 'Unknown',     servers: Map(1) { '<IP_ADDRESS>:27017' => [ServerDescription] },     stale: false,     compatible: true,     heartbeatFrequencyMS: 10000,     localThresholdMS: 15,     setName: null,     maxElectionId: null,     maxSetVersion: null,     commonWireVersion: 0,     logicalSessionTimeoutMinutes: null   },   code: undefined,   [Symbol(errorLabels)]: Set(0) {} }
if you need any other information, I am at your disposal
thanks!

Hey @beezisback!  Thanks so much for reporting and for your kind words.
I admit that the front-end outside of kiir.art is a little neglected, I'll be prioritizing this in the new year.  For now, even without requiring registration, there still seems to be some dependencies on having mongo installed.  If  you have the ability to install mongo locally, it should be enough to get you running in the meantime, otherwise I promise to update early next year when I'm able to put some more time into this!


Server State Dashboard

Is your feature request related to a problem?
In the past there have been times where one of the Artemis services was down or took awfully long to respond.
It was also not clear if this was server-side or a problem of the user. An example would be starting an exercise and waiting for Artemis to generate a BitBucket repo.
Describe the solution you'd like
I'd suggest adding a status site, displaying if servers are up or down and how big the current workload is. This would be useful so every user can see if it's Artemis fault or their own.
This would also help to monitor the performance to some extent for the operators of the site. I guess that there already is some solution for monitoring, maybe parts of it can be made public.
Describe alternatives you've considered
No response
Additional context
No response

We have such a page now: https://status.ase.in.tum.de/status


Browse Tree Reports Not have feature of RootNodesOnly

Hi All,
I want to import the root  node form amazon but at present this library not have  such feature .
Please fix it
Thanks & Regards
Prakash

Please update, i am facing the same issue.
http://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html#ReportTypeCategories__BrowseTreeReports
https://github.com/czpython/python-amazon-mws/blob/bea071de4bb5c9a47288906717750a79a071d782/mws/mws.py#L376


squidpy v1.4.1

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

ah yeah, I think this will take time to unpin...

@conda-forge-admin please rerender

Working on a fix here: https://github.com/conda-forge/squidpy-feedstock/pulls
I have also fixed dependencies of this package.
@giovp please be aware that you should not create a branch in this repo. All branches are pushed to anaconda. A PR should always come from external repos.

superseded by https://github.com/conda-forge/squidpy-feedstock/pull/8


rethrow route error if error view mapping missing

fixes #42

@cvlahakis updated

@cvlahakis updated with the change you suggested

@wawjr3d code looks OK

thanks for review @cvlahakis! merging


Customer-reported issue with NNBD migration tool

Steps to reproduce
start dart migration tool
What did you expect to happen?
i expect to be able to resize the files column so that i can check my files
What actually happened?
resizing the windows is disabled
Screenshots are appreciated

Dart SDK version: 2.14.4
Thanks for filing!

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


docker 3.5

Hi, this is not an issue as-is... I can see that there are code for 3.5 version, but I can't find the tag in dockerhub. It isn't uploaded?
Thanks

ping @winsento

i will update the container on this weekend.

I've added the build and tag for 3.5


Suggestion

Suggestion per comments in apache/metron#849 (also includes a merge of apache/metron master)

This is nice


all agent traffic in only TCP

a configurable option in pinpoint agent config so all traffic from agent is in only TCP., it opens up options for further enhancements., ex., more load balancer options for collector

Using TCP may cause more cpu/memory usage on app side. What kind of load balancer options for collector do you want? Can you give some example?

we wanted to use AWS Elastic load balancer for collectors, but it doesn't support UDP, so we had to change this to all TCP in our implementation, we did the performance testing and the impact to cpu/memory is negligible. we have the code ready and will make a pull request in a couple of days. anyways it will be a configurable option in agent config, so agents can choose to use only TCP or both UDP and TCP. you can set that option to false by default, and if anyone wants to use they can enable it to true in agent config

I used another could service which provides udp LB service so this does not truble me. Supporting TCP instead of UDP brings more accurate conrol for randomed span lossage in high pressure situation when using UDP. I am considering the senario for using tcp for key applications which cannot afford the message lossage and udp for other common apps.


Can we still customize histogram plots in the latest version?

According to the v0.1.57 user guide, we can define DataDriftOptions to customize histogram plot and define QualityMetricsOptions to select chunk of data we interest.
However, DataDriftOptions and QualityMetricsOptions are no longer compatible in the latest release since we have to pass options as a subclass of Options. DataDriftOptions is inherited from pydantic.BaseModel, while QualityMetricsOptions is inherited from object.
By looking at latest user guide, we can only see customization on color schema and raw data. DataDriftOptions and QualityMetricsOptions are still there in the API Reference, so I'm pretty not sure whether we still can customize our report via DataDriftOptions and QualityMetricsOptions or there is a workaround for this.

Hi @naveen-pit,
There are currently no parameters to specify e.g. number of bins in the histograms.
SInce the API update, we divided the customizations into two groups:

Report-level Options (like changing the color schema or opting to see raw data).
Metric-level parameters (that you can specify for a specific Metric inside the Report and for some Presets). For example, the definition of classification threshold for Classification quality metrics now works through probas_threshold parameter. You can see the complete list of Metric-level parameters here https://docs.evidentlyai.com/reference/all-metrics

However, there are currently now parameters to visually customize the bins.
We'd like to add them, but it is not on the immediate roadmap.

Thank you for your reply. will keep checking the updates.


Why would you couple your entire application with your custom build tool?

See the title.
Why would you release an open source tool if you very clearly had no intention of anyone else ever working on it because you invented your own build tool to force your back end and front end into one codebase and then use less because obviously anyone who shows up to help fix this broken codebase just loves dealing with that change.
Really?

What kind of response do you expect here? There are others working on the project. You are free to contribute any PRs if you see things to fix, or build your own separate project the way you want it. Nobody is forcing you to contribute.

Hi @tenthirtyone,

because you invented your own build tool to force your back end and front end into one codebase and then use less because obviously anyone who shows up to help fix this broken codebase just loves dealing with that change.

I think the reason is that originally, this whole project was started and lead by @stolksdorf, who seems to be a JavaScript developer and for some reason (I don't know them), invented his own build system for his projects.
I was wondering about the reason by myself, but didn't pay a lot of attention to it since I'm not really familiar with JavaScript ecosystem.
As @calculuschild, you can always improve things by submitting a PR

@AlexeySachkov Yes, exactly.
This is a decent front end application that is spiked into the dirt because it's endlessly coupled with a broken build tool that shoe horns mustache and LESS into react/webpack and is impossible to make it useful as anything more than an appliance without a non-trivial amount of work.
The only silver lining to this repo is that it is MIT licensed and anyone stuck doing this work can immediately re-license it to themselves.
@stolksdorf couldn't have made worse decisions that ran counter to the majority of people using React. This is the same garbo that companies like IBM do when they take over an open source repo. It's a crappy thing to do to other developers and doesn't earn the lead title at all.


Using bootstrap-styling causing readonly

I am using the datepicker which is fine and found that I can apply bootstrap styling to it using the bootstrap styling property.
However this then sets the input the be readonly, which doesn't actually stop you from entering the date in this case but it give it the readonly style that is applied to all other inputs.
Why is this happening ?
Below is my html for the datepicker.
<datepicker v-model="newCourse.startDate" bootstrap-styling="true"></datepicker>
Any help would be great thanks.
Sam

@samwilcock I have a same problem. Any updates? I can make this field typeable but then user will be able to input dates

@dhrytsenko I have no updates yet, I don't actually want the readonly property but I want the style that the bootstrap-styling property provides.

My temporary way:
.vdp-datepicker .input-group .form-control[readonly] {
background: none !important;
}

Delete the quotes arround.
This is my HTML and it's working great.
<datepicker                                     id="bc-data-date_value"                                     name="date_value"                                     :class="{                                         'valid': !$v.bcData.date_value.$invalid,                                         'invalid': $v.bcData.date_value.$invalid                                     }"                                     :bootstrap-styling=true                                     :full-month-name=true                                     :value="convertDateTimeFromServer($v.bcData.date_value.$model)"                                     :clear-button=true                                     :monday-first=true                                     :format="formatterDate"                                     @selected="setDate"                                 >                                 </datepicker>

@Maartz thanks i'll give it a go.


Functions with extermely long names can cause wasm-bindgen to fail to locate the main function

Describe the Bug
When a WASM module contains a function with an extremely long mangled name (>100_000 characters, as can be generated by rust-lang/rust#109363) wasmparser will choke on the names custom section. This means that at the walrus/wasm-bindgen layer any functions in the module after the problematically named function will not have names assigned. This is particularly deleterious if main is late, as it means wasm-bindgen won't emit the main glue (__wbindgen_start and friends).
Steps to Reproduce

Use the example code from rust-lang/rust#109363, or clone https://github.com/bobtwinkles/wasm-bindgen-bug/
Build that code with the module name bad or baad and rustc 1.66 - 1.70 (other versions not tested). The module name good happens to work but it's up to the order rustc chooses to emit the code, I'll chalk this one up to nominative determinism.

Expected Behavior
wasm-bindgen should maybe complain louder that it has failed to load all function names? I'm not really sure what can be done about this at the wasm-bindgen layer to be honest, I'm mostly just filing this bug here because I'm not sure what layer of the stack is really at fault here and want somewhere to anchor the discussion.
Actual Behavior
wasm-bindgen silently fails to generate main glue.
Additional Context
I discovered this while working on a Sycamore app, in particular the sycamore::builder::ElementBuilder type suffers from the exponential drop glue function symbol size problem mentioned in the Rust bug above.

Huh, that's strange. The limit on function name lengths in wasmparser is intentional:
https://github.com/bytecodealliance/wasm-tools/blob/7108f5530dda9a07f5087ce4d013730b432438bc/crates/wasmparser/src/limits.rs#L26
But I'm not sure why it's getting silently ignored.

walrus treats failure to parse the name section as nonfatal: https://github.com/rustwasm/walrus/blob/9d6c9de432d6a97478dc76ebdf18aed51584c3af/src/module/mod.rs#L217-L231
so wasm-bindgen thinks all the names have been parsed successfully when they have not. Running wasm-bindgen with RUSTLOG=warn or greater will print that warning on the offending modules.


Be more explicit about choosing test projects

With the incoming introduction of more test projects, I believe
it's better to explicitly step into them rather than relying
on the cucumber annotations to get into one project or the
other.
Yes it's more code, but less magic and more explicitness.
Drive by renamed the parallel tests project, no need to extra
call out that it's a project.

Totally agreed, looks much better :+1:.


fix(slider): fix Home/End/PageDown/PageUp keys

Fixed the following issues with the Slider:

When using  Home/End/PageDown/PageUp keys, the page would scroll instead of staying in place and updating the slider values. This is not the intended behavior, so the default event is prevented and the propagation is stopped to fix it. This was reused in many places across the slider, so I abstracted it into a util called stopEventDefaultAndPropagation (feel free to ask me to bring back the old behavior with less function calls).

Slider behavior wasn't aligned with the WAI-ARIA Multi-Thumb slider: When you have a Multi-Thumb Slider and you press the Home/End key, the expectation is for the currently focused thumb to go as far as it's allowed, but the current implementation simply forced the Home key to snap the first thumb at the min value and the End key to snap the second thumb to the max value. This PR addresses that by grabbing the min/max values for the focused thumb instead of a fixed index. I also made the getThumbMinValue/getThumbMaxValue functions aware of the minStepsBetweenThumbs.

Simplifies increment / decrement thumb: abstracted their repeated code into a function called snapThumbValue (same mention here regarding bringing back the old behavior for less function calls).

Removed unused import of getClosestValueIndex in slider-root.tsx.

Simplified the fall-through cases for the switch statement that handles the slider keys.

Fixed getClosestValueIndex to resolve ambigous values.

Focus the correct thumb after onSlideEnd.

~A small comment that I've noticed and currently cannot wrap my head around: Why are there 2 focus points between sliders (both the thumb and the hidden input are focusable, creating the need for two tab key presses before switching focus)? This issue is not present in React-ARIA's RangeSlider. I think this could also be addressed setting tabIndex={-1} for the inputs.
Let me know if this PR should also incorporate that change.~
Thanks as always for such a nice library!

Hi, thanks for the PR.
@dev-rb I'll wait for your approbation before merge.

@dev-rb I've pushed some of the changes, but I'm currently trying to solve a couple more issues that I've found with the component and I would like your take on how to solve them:

After using a pointer event to change the slider (either drag or click), it loses focus. This isn't the expected behavior, as <input type="range"> gains and keeps focus on pointer interactions.
My easy fix for this (that I really dislike) is manually restoring focus to the element at the end of the onSlideEnd call, but we also need to know which thumb to focus and that's kind of tricky. My current approach gets the fieldId from the formContext and then manually triggers the focus (therefore it always gives focus to the first thumb).
Let me know how to proceed with this, as it also ties into
I'm not sure if having a focusable span element as a slider thumb is the best approach, perhaps what's needed is to forward the focus to the input instead? This would simplify event definitions, because anything related to focus / keys is sent to the input, focus styles could still be applied by targeting the internal input and label clicks would focus the input correctly.

@royeden The changes look good, thanks!
As for the issues you've brought up, I'm not too sure what the issue is with focusing. The thumb is given focus when you use it and if you want to focus it when clicking on the SliderTrack then the change can be to use the thumbs refs signal and the passed index in onSlideStart to focus it.
Is the concern here that the input should be given focus over the thumb? Or do you mean that the SliderRoot should have focus?

Oh, I didn't notice the thumbs signal, maybe it could be renamed to thumbRefs to provide more context for its usage.
I have to check if that allows me to solve the specific issue of the thumb focus, so I'll fix that as soon as I can (probably during these following days 😄 ).
@dev-rb  The thing that I've mentioned in relation to the existence of both inputs and thumbs is more related to a specific issue: the focus is set to the native input element if the Slider.Label element is clicked, because that's the target for the label's for attribute. And that got me thinking if considering using the native elements as the base of interactions instead of the thumbs makes sense, as they respond to some of the basic accessibility concerns natively by default (with the caveat that sometimes native implementations may need a bump of JS to function in a standardized fashion or cover some special use cases).
I've also noticed that the same strategy used for validating the Home/End keys via getThumbMinValue/getThumbMaxValue could also be applied to each input natively via the min/max attributes (They are currently set to the global min/max of the Slider).

And what I meant is that the thumb that moved has to be the one that has focus after the move is finished, as it currently doesn't focus anything at all

Maybe I'm misunderstanding something. The SliderInput uses the thumb for it's min/max values not the global min/max.
As far as converting to use the native input element, that I am not too sure about because I largely followed React-ARIA and Radix implementations (as does most of Kobalte). Both of those have heavily put in research and work to handle accessibility. So I'm not too sure if straying from that will be a benefit. Also, from what I understand, implementations for native elements vary across browsers which may raise concern for accessibility and maintenance.
For the thumb focus, I may also be misunderstanding, but from what I have seen the thumb that you move still contains focus. I only did a simple test of attaching an onBlur callback to check if the thumb loses focus. Could be a browser thing maybe?
Please let me know if I misunderstood something @royeden.

@dev-rb fixed the thumb focus issue!
I've also noticed that getClosestValueIndex wasn't resolving indexes when both thumbs were set to the same value, so I've attempted to solve that by figuring the direction of the nextValue in relation to the value of the closest index.

I've also added the code to remove legacy KeyboardEvent.key navigation keys (this is on the last PR and it can be reverted easily, but I wanted to push the change so it could be reviewed).

Looks good @royeden!
For the navigation keys, I don't think removing the legacy keys adds any benefit. Better to be safe in case an issue comes up in the future 😅

Got it, will revert that change!

@dev-rb That should be all!

Awesome work @royeden! Thanks for the PR 😄
@fabien-ml This looks ready to be merged

Hello @dev-rb just saw the other PR trying to address this issue!
Has this not been deployed yet?

@royeden There was an error in the last release and it didn't get put in. It should be deployed in the next release!


Simple click counter for short link

No need for complex stats, start with just a number of clicks

There is need for complex stats. #655


(fix): rename protocols in OPTLYJSONModel to avoid conflicts with JSONModel in client apps

Summary

When apps use own copy of JSONModel library, it can have name conflicts with OPTLYJSONModel
For Xcode 10.1 or older, they're ignored, so no issue.
When clients upgrade Xcode to 10.2+, it creates a compile error.

This fix changes the protocol names of potential conflicts (Ignore -> OPTLYIgnore, Index -> OPTLYIndex) and removes deprecated ConvertOnDemand.
Test plan

Run all existing tests to confirm it does not break any JSON models in OptimizelySDKCore

Issues

OASIS-5046

Coverage remained the same at 98.153% when pulling 5ffd18e42c2d65e296bdb0d7ec3c9bca2c6a6bdc on jae/fixJsonModel into 73a427f6d4effcad2f73f51de3971d572e1aa4f7 on master.


Custom mods depending on the game

I would like to be able to have custom FFlags and other mods depending on the Game/Place Id here is how i would implement it:
First of all Place Id can be grabbed at launch time like from the launch URL "roblox-player://launchinfothings"
Then have a default mods folder and optionally be able to add place id in the GUI and it automatically adding a folder named the Place Id  in the background. If a folder with the place id exists it would auto load that mod folder instead. There is probably a bunch of kinks to how it would work but I would really appreciate this feature being added in the next update.

First of all Place Id can be grabbed at launch time like from the launch URL "roblox-player://launchinfothings"

That doesn't work if you're changing what place you're in while the app is open. This isn't possible, sorry.

That doesn't work if you're changing what place you're in while the app is open. This isn't possible, sorry.

But it would still be an useful option especially for FFlags

But it would still be an useful option especially for FFlags

In practice it would end up confusing a whole bunch of people. A better variant of this idea has been suggested numerous times, which I am considering implementing. #1098

But it would still be an useful option especially for FFlags

In practice it would end up confusing a whole bunch of people. A better variant of this idea has been suggested numerous times, which I am considering implementing. #1098

#1098 Ability to select a Profile to be chosen automatically depending on the game would be nice.


Add BuffEnchantAnyWeapon to BlueprintFeature

WraithJT used it on a BlueprintFeature and based on the code it seems like it should work. Everything it does is generic and the one thing specific to BuffDelegate (the Buff fact casting) isn't used.

Launching in 2.1.


[Typescript SDK] add MergeCoin and SplitCoin

Related issue is #2256
Not tested or ready to be reviewed yet.

Added two small fixes(see pushed commits) but overall looks good to me! Thanks for working on this.

transferring coin: Error: RPC Error: No non-argument gas objects found with value >= budget 10000 with args

This is probably because the signer address only have one gas object(you need 2 gas objects for the transfer) or it has more than 1 object but the rest of the objects do not have value >- 10000

so presumably we will need some corresponding changes around the target/debug/wallet transfer-coin cmd

Don't think so, we change the default recipient address but not the default address. The cmd command is only sent to the latter.


Reseting account

I have this

And this

Who am I supposed to access my account in case I've lost my other device?

I have a similar issue (cannot log into the client as made the account years ago and no longer have access to the device on my account etc).
I found an older issue thread here which guided users needing an account reset to<EMAIL_ADDRESS>Basically, send an email from the same account which has a Keybase account<EMAIL_ADDRESS>for example) and ask for an account reset.
I did this yesterday and am yet to receive a reply (I understand that there may be a backlog), I don't know if this is still the preferred method of resetting your account when the action is disabled on the website, maybe someone from Keybase can chime in?

I would also like an account reset. I only have one device on my account, which I no longer have access to. I don't have a paper key (didn't even know this was an option). I can log into my keybase account and have access to my private key and its passphrase.

My device was factory reset without notice,  cannot access any key or even use my note 4, which is what's on my account to log in, who can we email or contact about this?


First try of victron charger

This relates to issue #8431.
I tried to create a template. Unfoirtunately I have no way to test it, not even if the syntax is correct.
Especially the go part  needs proper inspection.

Maybe I can test at the weekend …

I have no clue what's wrong with the failing tests. Maybe someone with more insight can give me a hint....

ping @Hofyyy re test


Skeletons are fragile now

About the PR

Nerfed skeletons, bones shouldnt be stronger than lots of meat
OLD STATS
immune to everything except physical and heat damage
type: damageModifierSet
id: Skeleton
coefficients:
Blunt: 1.1
Slash: 0.8
Piercing: 0.6
Cold: 0.0
Poison: 0.0
Radiation: 0.0
Asphyxiation: 0.0
Bloodloss: 0.0
Cellular: 0.0
flatReductions:
Blunt: 5
Why / Balance

Skeleton nukies are too OP, + skeleton antags are OP
Technical details

changed code in Resources/Prototypes/Damage/modifier_sets.yml
Media

Requirements

[x] I have read and am following the Pull Request and Changelog Guidelines.
[x] I have added media to this PR or it does not require an ingame showcase.

Breaking changes

Skeletons are Nerfed
Changelog

Summary by CodeRabbit

New Features

Introduced multiple new damage modifier sets, enhancing gameplay interactions with various materials.

Modifications

Updated coefficients for the existing Skeleton damage modifier set, improving balance in damage types.
Specified flat reductions for several damage modifier sets, impacting damage mitigation strategies.

push this into the halloween branch

push this into the halloween branch

i suppose skeletons should be weak not only on halloween
but yeah sure

missclick

@Piras314  Changed sprites back to normal and fixed checks
(I STILL DONT KNOW HOW THEY GOT CHANGED, ONLY THING I HAVE COMMITED IS THE DAMAGE MODIFICATORS)

If they were skeletons, then they are hollow and you might shoot past them, so give them a small inmate dodge chance :trol:

k


Added simple health checks

This will be used as part of our continuous delivery pipeline.
/cc @jamesalley @juandopazo

CLA is valid!


Computer Structure 1,2,3 can't be found

Problem:
It looks like the link for computer structure 1, 2, 3 under Advanced System can't be opened. If possible, could you share the updated link to the course? Thank you!

It seems you're referring to an outdated, detached fork (https://github.com/Kottans/computer-science).

In the original "upstream" repo (https://github.com/ossu/computer-science), the links for Computation structure courses seem to work.

https://github.com/ossu/computer-science?tab=readme-ov-file#advanced-systems
> Courses | Duration | Effort | Prerequisites | Notes
> :-- | :--: | :--: | :--: | :--:
> [Computation Structures 1: Digital Circuits](https://learning.edx.org/course/course-v1:MITx+6.004.1x_3+3T2016) [alternative 1](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/) [alternative 2](https://ocw.mit.edu/courses/6-004-computation-structures-spring-2009/) | 10 weeks | 6 hours/week | [Nand2Tetris II](https://www.coursera.org/learn/nand2tetris2) | Alternate links contain all 3 courses.
> [Computation Structures 2: Computer Architecture](https://learning.edx.org/course/course-v1:MITx+6.004.2x+3T2015) | 10 weeks | 6 hours/week | Computation Structures 1 |
> [Computation Structures 3: Computer Organization](https://learning.edx.org/course/course-v1:MITx+6.004.3x_2+1T2017) | 10 weeks | 6 hours/week | Computation Structures 2 |
>


Unable to use check_rabbitmq_cluster

Hello,
I must be dump or something but I cannot figure a way to get check_rabbitmq_cluster actually check for the active nodes.
It keeps saying stuff like this:
root@centreon:~# /usr/lib/nagios/plugins/check_rabbitmq_cluster -H luigi.domain --username='monitoring' --password='password' -c 3,3,-1
RABBITMQ_CLUSTER OK - nb_running_node OK (2) nb_running_disc_node OK (2) nb_running_ram_node OK (0)

When looking a the --help I expect the script to return critical if nb_running_node < 3 or nb_running_disc_node < 3 which is exacly what's going on there but it says ok.
Same occurs with --nodes="rabbit<EMAIL_ADDRESS>When doing this it keeps returning critical state...
Thanks,
Adam.

@eLvErDe I think that the threshold you're using is not the right one for
what you want.
-c 3,3,-1 means alert if nodes number is <0 and >3.
What you want is probably something like this: -c 3:,3:,-1.
See the nagios plugin threshold format for more details
https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT
Can you please tell me if that helps? If yes, can you please close the
issue?
Cheers,
Thierno
Le mar. 24 janv. 2017 à 20:46, Adam Cécile<EMAIL_ADDRESS>a
écrit :

Hello,
I must be dump or something but I cannot figure a way to get
check_rabbitmq_cluster actually check for the active nodes.
It keeps saying stuff like this:
root@centreon:~# /usr/lib/nagios/plugins/check_rabbitmq_cluster -H luigi.domain --username='monitoring' --password='password' -c 3,3,-1
RABBITMQ_CLUSTER OK - nb_running_node OK (2) nb_running_disc_node OK (2) nb_running_ram_node OK (0)
When looking a the --help I expect the script to return critical if
nb_running_node < 3 or nb_running_disc_node < 3 which is exacly what's
going on there but it says ok.
Same occurs with --nodes="rabbit<EMAIL_ADDRESS>When
doing this it keeps returning critical state...
Thanks,
Adam.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nagios-plugins-rabbitmq/nagios-plugins-rabbitmq/issues/78,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAhnfzNkmTdjgFH1qMaLtEzAoYv8CiL0ks5rVgDEgaJpZM4LsRy5
.

@eLvErDe I think that the threshold you're using is not the right one for
what you want.
-c 3,3,-1 means alert if nodes number is <0 and >3.
What you want is probably something like this: -c 3:,3:,-1
See the nagios plugin threshold format for more details
https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT
Can you please tell me if that helps? If yes, can you please close the
issue?
Cheers,
Thierno

Hello,
Yes indeed, it seems to work when adding semicolon. To be honest, I'm
using several nagios-like instances with thousands of services and it's
the first time I had to ask github for help regarding a script.
What you think about adding an example with minimal count (which is
basically what people want to do) in the --help, as well as a link to
the document below regarding thresholds ?
Best regards, Adam.
On 01/29/2017 12:36 AM, Thierno IB. BARRY wrote:

@eLvErDe I think that the threshold you're using is not the right one for
what you want.
-c 3,3,-1 means alert if nodes number is <0 and >3.
What you want is probably something like this: -c 3:,3:,-1
See the nagios plugin threshold format for more details
https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT
Can you please tell me if that helps? If yes, can you please close the
issue?
Cheers,
Thierno
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nagios-plugins-rabbitmq/nagios-plugins-rabbitmq/issues/78#issuecomment-275882599,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABg2RTTVgnvkUKzvbcvPbkhps0_ifSk7ks5rW9DigaJpZM4LsRy5.

@eLvErDe Right, I understood your point.
I started working on improving scripts documentation, but I don't finish it
because of lack of time
https://github.com/nagios-plugins-rabbitmq/nagios-plugins-rabbitmq/blob/update-pod-documenations/scripts/check_rabbitmq_cluster#L315
But so far, I only reference the nagios documentation for threshold format.
Do you think that is ok? Any other suggestions?
Don't hesitate to submit PR, they very welcomed.
PS: I'm going to work on this only in march.

Thierno IB. BARRY / IT Ninja
[image: Twitter]  https://twitter.com/barryib[image: LinkedIn]
https://fr.linkedin.com/in/barryib[image: Github]
https://github.com/barryib

closing this.
Doc will be improved by #70  and #81


Demonstrate Stargate Ledger compatibility via Amino signing

I guess the package name is a bit misleading, it’s really amino-ledger.

I guess the package name is a bit misleading, it’s really amino-ledger

Feel free to rename at any point in time

I guess the package name is a bit misleading, it’s really amino-ledger

Feel free to rename at any point in time


Running dialog in IE9 mode causing error: 'MutationObserver' is undefined

First of all, your work is great and it draw my attention.
However, when I tested the Dialog feature in IE9, it returned error: 'MutationObserver' is undefined.
It worked fine in IE11.
Attached is the detail.
Please help.
Thank you.
test.zip

Use polyfill https://github.com/Polymer/MutationObservers


dynamic allowclear

Hello, is it possible to dynamically set allowClear?  I would like to have it set in a data-allow-clear element attribute.

that does not work when the element has a pre-established query function:
query function not defined for Select2
any workaround?


Failing test case for recursive types

XML generation in a service with a recursively-defined type is causing a stack overflow. There appears to be infinite recursion going on. Here's the repeating stack trace fragment:
      at WSDL.findChildSchemaObject (/Users/jpage/Code/node-soap/lib/wsdl.js:1978:19)
      at WSDL.findChildSchemaObject (/Users/jpage/Code/node-soap/lib/wsdl.js:1984:20)
      at WSDL.findChildSchemaObject (/Users/jpage/Code/node-soap/lib/wsdl.js:1984:20)
      at WSDL.findChildSchemaObject (/Users/jpage/Code/node-soap/lib/wsdl.js:1978:19)
      at WSDL.findChildSchemaObject (/Users/jpage/Code/node-soap/lib/wsdl.js:1984:20)
      at WSDL.findChildSchemaObject (/Users/jpage/Code/node-soap/lib/wsdl.js:1984:20)

This boiled-down version of our code in the new test case reproduces it.
Note that versions before 0.15.0 did not have this bug.

Coverage remained the same at 93.249% when pulling 1d2ccd8bf8aab4dfbd6afe20ce7ccd87fcde5ff3 on DullReferenceException:recursive-bug-repro into 73fbdbf3bc8011807a7a997588d4f42b249d68d6 on vpulim:master.

Thanks @DullReferenceException !  Hopefully someone can pick this up and submit a PR.  Any ideas @herom on what may have introduced this?

Coverage remained the same at 93.249% when pulling 7513c4bc9cb3d018f908c884d319d9c1d5293b1e on DullReferenceException:recursive-bug-repro into 73fbdbf3bc8011807a7a997588d4f42b249d68d6 on vpulim:master.

Coverage remained the same at 93.249% when pulling 7513c4bc9cb3d018f908c884d319d9c1d5293b1e on DullReferenceException:recursive-bug-repro into 73fbdbf3bc8011807a7a997588d4f42b249d68d6 on vpulim:master.

Coverage remained the same at 93.249% when pulling 082ef274336389a75e0ab0901dc005e946760bdd on DullReferenceException:recursive-bug-repro into 73fbdbf3bc8011807a7a997588d4f42b249d68d6 on vpulim:master.

Coverage increased (+0.02%) to 93.266% when pulling 5a905b6bf81c4d6504999861c7c33fb7419fe777 on DullReferenceException:recursive-bug-repro into 73fbdbf3bc8011807a7a997588d4f42b249d68d6 on vpulim:master.

Aw yeah, found a fix which is basically just maintaining a recursion backtrace. Does this fix look ok?

Amazing @DullReferenceException !  Thanks!

Thank you for the quick merge!

Np!

@jsdevel: any estimate on when this will be published?

Published as v0.19.2 @DullReferenceException


This place is occupied by native Chinese speakers.

↖↖↖TTTTTTTHHHHHHHHHEEEEEEE
CCCCCCHHHHHHIIIIIIIINNNNNNEEEEESSSSSSEEEEE
WWWWWWHHHHHHHOOOOOOOO
GGGGOOOOO MMMMAAAADDDD

The code is gone.
No code there.
The world is empty!!
destroy

ABCDEFG
HIJKLMNOP
QRS TUV
WXYZ

ABCDEFG
HIJKLMNOP
QRS TUV
WXYZ

ABCDEFG
HIJKLMNOP
QRS TUV
WXYZZZZZZZZZZZZZZZ
.
.
.
There was a problem saving your comment. Please try again.


Available Spaces for Python API

Are there docs for which spaces are allowed through the python API? I've seen some examples with 'angulardist' and 'cosinesim' but was wondering if there were more to try. Thanks!

Please, find the description here https://github.com/nmslib/nmslib/blob/master/manual/spaces.md


Add support for subscription to select data across the whole query graph

Currently it executes execution against the data directly - like if you return an object form a mutation. If the client wants to select more data through relations etc you need to have it loaded. Or we do a similar thing to mutations with expressions and build a full query again.

I'm gonna add my request in this issue as it is related to the topic.
Currently the full graph query needs to be implemented as T in IObservable.
Is it possible to support something like the following as T?
public class SubscriptionEvent<TEntity>
{
    public SubscriptionEventType Type { get; set; }
    public Expression<Func<DbContext, TEntity>> Field { get; set; }
}

public enum SubscriptionEventType
{
    Add,
    Update,
    Delete,
}


mAP of object detection

Dear jakc,
Thank you for sharing your work of DFQ.
Very appreciate it!!
However, I have found that
the mAP of mobilnetv2 SSD_lite that https://github.com/qfgaohao/pytorch-ssd had claimed is 68.607.
And your result of original FP32 is 60.69.
Is there any reason that causes the phenomenon?
The fusion of batch-normal or something else?
Thank you.

Basically batchnorm fusion won't change the result in FP32 precision. The reason is probably evaluation metric.

But, with the same evaluation metric,
if the "create model part" and "create predictor part" have been merged like that
elif args.net == 'mb2-ssd-lite':
net = create_mobilenetv2_ssd_lite(.....)
net.load(args.trained_model)
predictor = create_mobilenetv2_ssd_lite_predictor(.....)
net.to('cpu')
I will obtain the mAP of 68.7.
Is my trick reasonable?

The thing is that I forgot to add net.eval() after the model is loaded. At HERE, it actually do a forward call to get the model graph in training mode, which cause the batchnorm stats dirty.
The latest commit should fix this, I will update the corrected mAP as I finish all the evaluation.
Great job spotting this :+1:

Thank you, I will try it.
All the best!!