Add few tech conferences for this year.

Added Rootconf , DroidJam, Selenium Conf and ODSC (One Data Science Conference)

@ankitg12 open data science conference also has selenium Conference Link. Please correct it.

Done - corrected the links and added devconf as well.

@nikhita   Welcome :)


open memory.oom_control: no such file or directory  for docker push

docker version
Client:
Version:      1.11.2
API version:  1.23
Go version:   go1.5.4
Git commit:   b9f10c9
Built:        Wed Jun  1 21:23:39 2016
OS/Arch:      linux/amd64
Server:
Version:      1.11.2
API version:  1.23
Go version:   go1.5.4
Git commit:   b9f10c9
Built:        Wed Jun  1 21:23:39 2016
OS/Arch:      linux/amd64
when push a images:
docker push<PHONE_NUMBER>11.dkr.ecr.usa-awest-1.amazonaws.com/pjkkk/qa-ccgz:1.2
The push refers to a repository [992311471111.dkr.ecr.usa-awest-1.amazonaws.com/pjkkk/qa-ccgz]
519d9bbb0316: Layer already exists
d971804d31b4: Layer already exists
81f374e09ad1: Layer already exists
3b50dfb3debe: Layer already exists
593cb43355e9: Layer already exists
a5cc9db2e27f: Layer already exists
737eee27114b: Layer already exists
9dd3f81fbbc5: Layer already exists
46e857ff5c9c: Layer already exists
60c61297c982: Layer already exists
5f70bf18a086: Layer already exists
1ef215608c77: Layer already exists
0cd01e86530e: Layer already exists
3973e2de72ae: Layer already exists
724e9db35fe0: Layer already exists
6650225473f3: Pushing [==========================>                        ] 98.23 MB/188.1 MB
6650225473f3: Preparing
It has been stopped waiting, can't upload
And the docker daemon log as below:
$ sudo tail -f /var/log/daemon.log
Jul  1 16:46:57 swarm-node-2 avahi-daemon[681]: Withdrawing workstation service for veth0145ef3.
Jul  1 16:46:58 swarm-node-2 docker[748]: time="2016-07-01T16:46:58+08:00" level=error msg="containerd: notify OOM events" error="open memory.oom_control: no such file or directory"
Jul  1 16:46:59 swarmnode-2 avahi-daemon[681]: Joining mDNS multicast group on interface veth9004a65.IPv6 with address fe80::ac64:beff:fe97:6dc4.
Jul  1 16:46:59 swarm-node-2 avahi-daemon[681]: New relevant interface veth9004a65.IPv6 for mDNS.
Jul  1 16:46:59 swarm-node-2 avahi-daemon[681]: Registering new address record for fe80::ac64:beff:fe97:6dc4 on veth9004a65.*.

I got exactly same error.
Docker version : Docker version 1.11.1, build 5604cbe
OS: Debian Jessie 64bit
but it happens when I run
docker-compose up -d nginx

This also occurs in 1.12.

Docker company to issue feedback don't care about  this problem appeared as early as version 1.9.

This error looks to come from containerd; https://github.com/docker/containerd/blob/0ac3cd1be170d180b2baed755e8f0da547ceb267/supervisor/supervisor.go#L328-L330
@swan-go are you only seeing this for containers that are launched through the Docker Swarm API? Or also when directly working with the Docker API? (I think there was an issue with the Swarm API setting options incorrectly when starting containers)
Also, can you try if this script gives anything that stands out? https://github.com/docker/docker/blob/master/contrib/check-config.sh
ping @mlaventure

This should be fixed in 1.12. @imorti do you have the relevant docker logs since you seem to see it occurs there? Is this using the latest RC?
This error usually shows up for short lived containers as they die/exit before containerd has the time to set up the OOM memory monitor.

BTW, this error message can be ignored, it should really just be a warning.
The push failure, is not related to this. @swan-go can you provide more logs?
cc @tonistiigi

actually I haven't seen this but doesn't mean it's a non-issue.
running Version 1.12.0-rc4-beta20.
-I
On Thu, Jul 21, 2016 at 1:42 PM Kenfe-Mickaël Laventure <
<EMAIL_ADDRESS>wrote:

This should be fixed in 1.12. @imorti https://github.com/imorti do you
have the relevant docker logs since you seem to see it occurs there? Is
this using the latest RC?
This error usually shows up for short lived containers as they die/exit
before containerd has the time to set up the OOM memory monitor.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/24211#issuecomment-234328288,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABDyLj1ob4PcC7tHmSN5n0Oyod7G2RPjks5qX6-bgaJpZM4JC9T6
.

I have been update my docker from 1.11.2 to 1.12.3, This issue is fixed.


ComputeShader help required

edited: to make use of class ComputeEffectShader
edited: works now, updated code to working one
hi,
im trying to get a Compute shader to work, but i still fail.
it compiles and run, it executes this (cpu)sources
the shader gets compiled (tested via wrong shader source)
also tried without the structured buffer (only the texture)
im using dx11, win10
but it seems to not beeing executed.
currently i use 2 parameters

Structured buffer
"debug"-texture(2d)

shader code only writes something to sBuffer[0] and texture[0],
just to see if it works.
the code is executed by my game system class
plxxxxx help! :)
what i did:
cpu:
init:
        struct VoxelData
        {
            public float Material;
            public float Color;
        }

dbgTexture = Texture.New2D(Game.GraphicsDevice, Size.X, Size.Y, PixelFormat.R32G32B32A32_Float,
    TextureFlags.ShaderResource | TextureFlags.UnorderedAccess, 1,
    GraphicsResourceUsage.Default );
VoxelDataArray = new VoxelData[Size.X * Size.Y * Size.Z];
for (int i = 0; i < VoxelDataArray.Length; i++)
    VoxelDataArray[i] = new VoxelData { Material = i, Color = -i };

var groupCounts = new Int3(32, 32, 1);
drawEffectContext = RenderContext.GetShared(Game.Services);
VolumeShader = new ComputeEffectShader(drawEffectContext) { ShaderSourceName = "VolumeComputeShaderEffect", ThreadGroupCounts = groupCounts };
VoxelBuffer = Buffer.Structured.New<VoxelData>(Game.GraphicsDevice, VoxelDataArray, true);
VolumeShader.Parameters.Set(VolumeComputeShaderKeys.DbgTexture, dbgTexture);
VolumeShader.Parameters.Set(VolumeComputeShaderKeys.VoxelBuffer, VoxelBuffer);

cpu: draw
RenderDocHost.RenderDocManager.StartCapture(Game.GraphicsDevice,IntPtr.Zero);
var renderDrawContext = new RenderDrawContext(Game.Services, drawEffectContext, Game.GraphicsContext);
VolumeShader.Draw(renderDrawContext);
VoxelData[] resultDataArray;
resultDataArray = VoxelBuffer.GetData<VoxelData>(Game.GraphicsContext.CommandList);

RenderDocHost.RenderDocManager.EndFrameCapture(Game.GraphicsDevice, IntPtr.Zero);

shader
shader VolumeComputeShader : ComputeShaderBase
{

    struct VoxelData
    {
        float Material;
        float Color;
    };

    stage RWTexture2D<float4> DbgTexture;
    stage RWStructuredBuffer<VoxelData> VoxelBuffer;

    override void Compute()
    {
        DbgTexture[0] = float4(1,1,1,1);
        VoxelBuffer[0].Color = 123;
    }

};

effect VolumeComputeShaderEffect
{
    mixin VolumeComputeShader;
};

just one hint, instead of EffectInstance, use the ComputeEffectShader. the tests are always a nice learning source:
https://github.com/stride3d/xenko/blob/master/sources/engine/Xenko.Graphics.Tests.11_0/TestComputeShader.cs

tnx for the info,
rewrote to make use of 'ComputeEffectShader' and updated question.
unluckyly the result is the same :(

it works! cant believe it works!, tnx @tebjan !
updated the code above in case someone wanna do the same.


add aprotrain training center

@namgivu I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host aprotrain.edu.vn not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for understanding!

Thank you. I will carefully read that rule and try again.
On Wed, Jul 1, 2020, 10:01 AM Philip Torchinsky<EMAIL_ADDRESS>wrote:

@namgivu https://github.com/namgivu I have to close this request
without merging, because you requested to add a non-existent domain to this
repository: Host aprotrain.edu.vn not found: 3(NXDOMAIN) Please ensure
that you are familiar with this repository rules located at the bottom of this
page https://github.com/JetBrains/swot and submit a new request with
the correct information. Thank you for understanding!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/JetBrains/swot/pull/8562#issuecomment-652158674, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJBLKELA675PYAUZBEGUGTRZKRINANCNFSM4OL6SMSA
.


⚠ Bofrost.es has degraded performance

In 24ff3d9, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1760 ms

Resolved: Bofrost.es performance has improved in dfdca8f after 8 minutes.


Updated bitcoinj version

Updated bitcoinj version in regards to: https://github.com/rsksmart/bitcoinj/pull/15

pipeline:run


[WIP][HIVEMALL-17-2] Revise SLIM implementation

What changes were proposed in this pull request?
This PR applied refactoring to #111
What type of PR is it?
Feature | Refactoring
What is the Jira issue?
https://issues.apache.org/jira/browse/HIVEMALL-17
How was this patch tested?
unit tests and manual tests on EMR
How to use this feature?
As described in movielens_slim.md.
Checklist

[x] Did you apply source code formatter, i.e., mvn formatter:format, for your commit?
[x] Did you run system tests on Hive (or Spark)?

Need to fix the following error:
testAllSamples(hivemall.recommend.SlimUDTFTest)  Time elapsed: 0.285 sec  <<< ERROR!
java.lang.NullPointerException: null
	at hivemall.utils.collections.maps.IntOpenHashTable.put(IntOpenHashTable.java:126)
	at hivemall.recommend.SlimUDTF.getKNNi(SlimUDTF.java:689)
	at hivemall.recommend.SlimUDTF.process(SlimUDTF.java:281)
	at hivemall.recommend.SlimUDTFTest.testAllSamples(SlimUDTFTest.java:93)

Coverage increased (+0.1%) to 41.065% when pulling 435bace7a2907d8155a7cedd65032da714100c35 on myui:slim-revise into c2b95783cf9d6fc1646a48ac928e96152eab98c6 on apache:master.

Coverage increased (+0.1%) to 41.07% when pulling 19b99f5e87cd591ebfd398d41d34f0c0a35f4e2d on myui:slim-revise into c2b95783cf9d6fc1646a48ac928e96152eab98c6 on apache:master.

@nzw0301 Merged your SLIM pull request with some modifications. Thank you for a big contribution!

Coverage increased (+0.1%) to 41.061% when pulling 2377b53b0b49caaae3ee2fa362de4f3e334ae619 on myui:slim-revise into c2b95783cf9d6fc1646a48ac928e96152eab98c6 on apache:master.

@myui Thank you for your review and refactoring!


Interpret tests

Changes run_test to interpret any expressions that are extracted from a test.
Also fixes the interpreter to fail to deal with functions correctly.

Could you add closes #276 to the PR description?

Closing because I will reimplement this on the new schema and starting from scratch is easier.


componentWillReceiveProps is going to be deprecated

React is going to deprecate componentWillReceiveProps in version 17 which will affect AnimatedSwitch.
Do you have any plan to fix it?
I am not sure if you move the affected code into "componentDidUpdate" will cause any other trouble. There is another way "getDerivedStateFromProps" but that will force people to have react 16.3.0+ as peer dependency.

The author of this project appears to be MIA. Feel free to use my fork in the interim.
yarn add iMerica/react-router-transition.

I plan on merging #110 fairly soon. While it is a bigger departure from marking this lifecycle method with UNSAFE_, it seemed like a good opportunity to revisit this package and update it to use hooks.

This has been solved by #110 – let me know if you have any other concerns.


Error: Could not parse lint-staged.config.js

Description

I am trying to execute a script depending of the staged files in a commit, i believe that normally this would work if the base path of the script config was in the root project, but in this case the project is inside a monorepo, so actually the base dir of the project is not the root of the repository, my structure goes like this:
repository
└──products
│     └──my-project
│     │     │     package.json
│     │     │     lint-staged.config.js
│     │     │     jest.config.serverless.js
│     │     │
│     │     └──serverless
│     │     │         handler.js

The package.json file has the config like this:
{
	"scripts": {
		"test:serverless": "jest --config jest.config.serverless.js --detectOpenHandles --forceExit"
	},
	"husky": {
		"hooks": {
			"pre-commit": "lint-staged"
		}
	}
}

Steps to reproduce

Create a nodejs project inside a sub-folder within the repository
Create package.json inside and install lint-staged
Remove lint-staged execution config inside package.json
Create lint-staged.config.js inside the project folder with this code:

module.exports = {
  'serverless/**/*.js': () => 'npm run test:serverless'
}

Debug Logs

expand to view
husky > pre-commit (node v10.15.3)
Could not parse lint-staged config.

        Error: ● Validation Error:

Invalid value for 'linters[serverless**/*.js]'.

Should be a string or an array of strings.

Configured value is: 'serverless**/*.js'

Please refer to https://github.com/okonet/lint-staged#configuration for more information...

Please make sure you have created it correctly.
See https://github.com/okonet/lint-staged#configuration.
husky > pre-commit hook failed (add --no-verify to bypass)

Environment

OS: Ubuntu 18.04.2 LTS
Node.js: v10.15.3
lint-staged: v8.1.7

Function linters are supported from version v9.0.0 onwards, and you are running v8.1.7. You should update before using the function syntax.


Add base class for all transforms

🚀 The feature
Would it make sense to have a base class (maybe called Transform) for all transforms?
Motivation, pitch
This way, when we have a parameter transform in a function, we could give it this base class as a type hint. For instance, with the hypothetical Transform base class, we could have the following type hints in a function that could take any kind of transform as parameter.
def apply_transform(input: Tensor, transform: Transform):
    ...

Alternatives
No response
Additional context
No response

Hey @ValerianRey. We wouldn't do that just for the type hint, but only if the transforms actually share some behavior. Luckily, this is the case for the upcoming torchvision.transforms.v2 release:
https://github.com/pytorch/vision/blob/af048198f87da11f344ffba37d6962aa78b36218/torchvision/transforms/v2/_transform.py#L15
In the meantime you might use torch.nn.Module which applies to most transforms or the generic typing.Callable.
If you want to use the tensor backend, you could refine the type hint to Callable[[torch.Tensor], torch.Tensor]. This works for most transforms with noteable exceptions being the type conversions transforms. Finally, you can also alias this type to enable a syntax as you proposed above:
from typing import Callable

from torch import Tensor

Transform = Callable[[Tensor], Tensor]

def apply_transform(input: Tensor, transform: Transform):
    ...

As such, I'm closing this. Feel free to re-open in case my response is not sufficient for your use case.

Nice I'm glad to see that it's coming in a future version!
Also thanks for the time you used to give me the type hint I needed, I appreciate that!


Only require ordinal nodes that are actually depended on

We have been seeing some issues with the task execution plan not being able to make progress. Looking at the reproducer from @wolfs, it appears the following is happening:

we are adding producers to ordinal group 1
this causes the destroyer ordinals from the previous group (ordinal group 0) to be scheduled but not the producer ordinal from group 1 (or any of its dependencies)
when we update the dependencies complete for the last passing producer node from ordinal group 1, we mark his dependents as ready which includes the producer node from group 1.
the producer node from group 1 is added to the ready group (even though it wasn't originally scheduled), completes, but then, because we have --continue, it adds its dependencies (including the producer node from ordinal group 0) to the waiting list.
Now we are waiting on the producer node from group 0, but it is not scheduled, so no progress.

This change addresses the problem by only changing the state of ordinal nodes to required (i.e. SHOULD_RUN) when a task node (or another ordinal node) from a later group adds it as a dependency.  This means that it won't get added to the ready queue later (since it is not required) and therefore it won't trigger the condition where we end up waiting on one of its dependencies.
This effectively reverts the changes from https://github.com/gradle/gradle/pull/23292.

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test and merge

I've triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

I've triggered a build for you.


ability to turn off chunker

i would like to use rclone chunker isntead of teldrive one. is it possible to turn off teldrive chunker?

No and there is no reason. Rclone chunker have to be samlöer than teldrives one.


PEP-3135 class cell

This is another attempt to fix the __class__ implicit free variable in class body.
It follows the CPython implementation. When usage of either __class__ or super is found in the class body, a cell variable named __class__ is defined. When class body is executed at class definition time, a __classcell__ local variable is injected into the class namespace, this variable is not visible to python world, as it point to the raw cell object of __class__. Then the namespace is passed to type.__new__, where it will check the existence of __classcell__ and inject the newly created type instance into the cell.

@BCSharp thanks for showing me #1086 , as you said it's still a hack, I'm wondering if we can use the same implementation as in cpython to fix it properly, but I got stuck. Please let me know if you have questions regarding the mechanism.

@BCSharp thanks for showing me #1086 , as you said it's still a hack, I'm wondering if we can use the same implementation as in cpython to fix it properly, but I got stuck. Please let me know if you have questions regarding the mechanism.

I agree with @slozier that no existing tests should be disabled. We already have a workaround, so this time the aim is to have a proper implementation. It is OK if it takes several PRs to implement this functionality completely, but regressions are not OK.

I agree with @slozier that no existing tests should be disabled. We already have a workaround, so this time the aim is to have a proper implementation. It is OK if it takes several PRs to implement this functionality completely, but regressions are not OK.

@slozier @BCSharp Thanks for the review, the changes in the tests are not intentional, I'll add them back once I got the proof of concept working.
Regarding debugging, besides setting breakpoints, is there a way to check the expression tree after reduce? Or do you use decompiler such as Reflector and ILSpy?

is there a way to check the expression tree after reduce

I don't know any, but would gladly hear about it if you find something

@BCSharp @slozier Please take another look, I think it's working. Also the example in https://github.com/IronLanguages/ironpython3/issues/1085 is no longer crashing.

I don't know any, but would gladly hear about it if you find something
I used ILSpy to check the DLL generated by ipyc, it works very well, and also it's cross platform.

I guess a test for your issue https://github.com/IronLanguages/ironpython3/issues/1085 would be good as well. 😄

@slozier Do you think we can merge this PR?

@isaiah Yeah, I want to take another look at it before I do (later today hopefully), but it looks good to me.

Thanks for the PR!

@isaiah I'm a little late to the party, but this is nice progress; I had no additional comments. Good job!


SerializationContext and IHeader

This PR makes two changes:

Introduces SerializationContext and associated changes to the serializer and deserializer interfaces. This is not only a much better domain model, but also allows for more extensibility than the previous design.

Introduces IHeader, and makes some adjustments to the Header and Headers classes in anticipation of a Header<T> class, and integration of the serde framework with header values. The API has been though through over in #781 to a good final state, but the implementation is left as a todo as it's a non-trivial amount of work.

Something to question:

The name of the MessageComponentType enum. Alternatives: MessageComponent, or MessagePart. I slightly preferred using a Type suffix here because MessageComponent sounds like an object. Appending Type makes that clearer. Also, I can't think of why, but if we ever want an object corresponding to a component of a message, the name would be taken. Note that it's not uncommon in the standard library for enums to have a Type suffix. maybe 20% of them seem to on a quick sampling. All the above said, I'm not at all sure on this choice and lack conviction.

Something to note:

the Header.GetValueBytes() method anticipates the addition of Header.GetValue<T>(). Even when the new method exists, I think we want both to exist, since in the consumer case, there are scenarios when it's preferable to bypass deserializer integration (those scenarios are when the deserializer is easily specified inline). I like it better than Header.Value or Header.ValueBytes for two reasons: 1. it feels more like a run-time error is a possibility than a property (and in practice, runtime errors could occur after the generic header additions depending on context used). 2. It's fits better with the anticipated GetValue<T> method.

MessageComponent, or MessagePart.

MessagePart to be implies that the message is partial, so that's a no go.
MessageComponent is okay, but maybe MessageField is even less confusing?


[macOS] Enforce non-zero window size.

Display scaling can cause 1, 1 (e.g, color picker window) requested window size to be rounded down to 0, 0, which cause OpenGL crash.
Fixes https://github.com/godotengine/godot/issues/81811

Thanks!


Contract API docs update

Decide on introducing the ContractVerificationResult class.
Switch docs to ContractVerification API.

SAS-3251

Updated SQL metric expression docs (column and dataset level) : https://deploy-preview-768--jovial-piroshki-65ff4d.netlify.app/soda/data-contracts-checks#sql-metric-expression
Updated SQL metric query docs (column and dataset level) : https://deploy-preview-768--jovial-piroshki-65ff4d.netlify.app/soda/data-contracts-checks#sql-metric-query
Both of these check types require a metric property.


Fix headers etc. in all po files

Codecov Report

Merging #3040 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3040      +/-   ##
==========================================
- Coverage   75.82%   75.81%   -0.01%
==========================================
  Files          92       92
  Lines      135387   135386       -1
==========================================
- Hits       102653   102649       -4
- Misses      32734    32737       +3

Impacted Files
Coverage Δ

src/channel.c
82.78% <0%> (-0.08%)
:arrow_down:

src/normal.c
73.85% <0%> (-0.08%)
:arrow_down:

src/undo.c
83.11% <0%> (-0.07%)
:arrow_down:

src/os_unix.c
54.25% <0%> (-0.05%)
:arrow_down:

src/if_py_both.h
76.59% <0%> (-0.01%)
:arrow_down:

src/gui_gtk_x11.c
47.98% <0%> (ø)
:arrow_up:

src/window.c
81.72% <0%> (+0.03%)
:arrow_up:

src/ex_cmds2.c
80.29% <0%> (+0.09%)
:arrow_up:

src/if_xcmdsrv.c
84.17% <0%> (+0.17%)
:arrow_up:

Continue to review full report at Codecov.

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

Please send the patch for each file to the respective maintainer.
They will also want to know why you are making these changes.

I can try but would that not give 39 pull requests instead of just one?
If they havent worked on the translations for like 10-17 years im guessing they dont want to get emails about it.
But i can try and see the respons.

Ok i send message to 28 emails.
Let the "Undelivered Mail Returned to Sender" begin.

I would have actually prefered that the change of the header would be actually merged into Vim repository, because those files are the base for me when (updating the translations) and I don't maintain them separately. But I can certainly send that single change back to Bram :)


Feature Request: One Click Deploy to Heroku Installer

I'd love to see this as a One Click Deploy to Heroku button (http://buttons.heroku.com).
https://devcenter.heroku.com/articles/heroku-button
Thanks!

i'll look into it


Mm 26305 migrate refs example

Summary
This is the sample ticket for the migration campaign.
It migrates string refs for the checkbox defining password rules in the admin console.
Ticket Link
MM-26305

/update-branch

This works for an example, but in this case, the values that we're using are in this.state, so do we even need refs here?

@hmhealey i'll create a second ticket for cleaninig this, but keep this one as example.

/update-branch


Update documentation for prompts

Documentation to favor creation without declaring input_variables
Cut out obvious examples, but add more description in a few places

few small comments, otherwise lgtm!


makedepend: brew install -dv makedepend seems to hang

Bug reports:
I am trying to install makedepend with linuxbrew inside a docker container, and here is the output:
linuxbrew@1bf8e4b150fb:~$ brew install -dv makedepend
/home/linuxbrew/.linuxbrew/Library/brew.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Library/Formula/makedepend.rb
/home/linuxbrew/.linuxbrew/Library/brew.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Library/Formula/pkg-config.rb
/home/linuxbrew/.linuxbrew/Library/brew.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Library/Formula/patchelf.rb
/home/linuxbrew/.linuxbrew/Library/brew.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Library/Formula/glibc.rb
==> Downloading https://linuxbrew.bintray.com/bottles/makedepend-1.0.5.x86_64_linux.bottle.tar.gz
Already downloaded: /home/linuxbrew/.cache/Homebrew/makedepend-1.0.5.x86_64_linux.bottle.tar.gz
==> Verifying makedepend-1.0.5.x86_64_linux.bottle.tar.gz checksum
==> Pouring makedepend-1.0.5.x86_64_linux.bottle.tar.gz
tar xf /home/linuxbrew/.cache/Homebrew/makedepend-1.0.5.x86_64_linux.bottle.tar.gz
Setting RPATH of /home/linuxbrew/.linuxbrew/Cellar/makedepend/1.0.5/bin/makedepend
/home/linuxbrew/.linuxbrew/Cellar/patchelf/0.9/bin/patchelf --set-rpath /home/linuxbrew/.linuxbrew/lib --set-interpreter /home/linuxbrew/.linuxbrew/lib/ld.so /home/linuxbrew/.linuxbrew/Cellar/makedepend/1.0.5/bin/makedepend
^C

That's basically all the output till I quit with Ctrl+C, and it hangs like that for hours. Checking the process with htop shows something about openssl is going on, and unsure why.
What does the last line do with patchelf please, is it expected to take a very long time? Thanks!
Here is also some other output for debugging purpose
linuxbrew@1bf8e4b150fb:~$ brew info makedepend
makedepend: stable 1.0.5 (bottled)
Creates dependencies in makefiles
http://x.org
Not installed
From: https://github.com/Homebrew/linuxbrew/blob/master/Library/Formula/makedepend.rb
==> Dependencies
Build: pkg-config ✔

linuxbrew@1bf8e4b150fb:~$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
    /usr/local/include/python2.7/python-igraph/igraphmodule_api.h

linuxbrew@1bf8e4b150fb:~$ brew update
Already up-to-date.

I find this probably a problem due to the base OS. In particular, the first Dockerfile with google/cloud-sdk doesn't work, but the second one with Ubuntu works.
FROM google/cloud-sdk# https://raw.githubusercontent.com/sjackman/docker-linuxbrew/master/linuxbrew-core/Dockerfile

FROM ubuntu
MAINTAINER Shaun Jackman<EMAIL_ADDRESS>
RUN localedef -i en_US -f UTF-8 en_US.UTF-8

RUN apt-get update
RUN apt-get install -y curl g++ gawk m4 make patch ruby tcl

RUN useradd -m -s /bin/bash linuxbrew
RUN echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers

USER linuxbrew
WORKDIR /home/linuxbrew
ENV PATH /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH
ENV SHELL /bin/bash
RUN yes |ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/linuxbrew/go/install)"
RUN brew doctor || true

RUN brew install -dv makedepend

RUN apt-get update && apt-get install -y build-essential git locales sudo

RUN localedef -i en_US -f UTF-8 en_US.UTF-8

RUN apt-get install -y curl g++ gawk m4 make patch ruby tcl

RUN useradd -m -s /bin/bash linuxbrew
RUN echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers

USER linuxbrew
WORKDIR /home/linuxbrew
ENV HOME /home/linuxbrew
ENV PATH /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH
ENV SHELL /bin/bash
RUN yes |ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/linuxbrew/go/install)"
RUN brew doctor || true

RUN brew install -dv makedepend

# https://raw.githubusercontent.com/sjackman/docker-linuxbrew/master/linuxbrew-core/Dockerfile

FROM ubuntu
MAINTAINER Shaun Jackman<EMAIL_ADDRESS>
RUN localedef -i en_US -f UTF-8 en_US.UTF-8

RUN apt-get update
RUN apt-get install -y curl g++ gawk m4 make patch ruby tcl

RUN useradd -m -s /bin/bash linuxbrew
RUN echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers

USER linuxbrew
WORKDIR /home/linuxbrew
ENV PATH /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH
ENV SHELL /bin/bash
RUN yes |ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/linuxbrew/go/install)"
RUN brew doctor || true

RUN brew install -dv makedepend

Both @DoomHammer and I have have seen this failure with some distributions. We've noticed that it appears to still be doing stuff, processes are still running if you check top, but no messages are being output to the console.

Right, I have also seen things going on with htop, and mostly are labeled as low-priority processes, but on the screen, it just appears to be stuck there. The OS in the case of google/cloud-sdk is Debian-Jessie.

I had similar issues with Debian Lenny, but not in CentOS 5 nor in Ubuntu 12.04 based distros. So far -- no idea what is causing all of this.

I've had no trouble with Ubuntu 14, but I have had trouble with Ubuntu 12.

Come to think of it,what I meant was 14.04.


homepage: init at 0.6.21

Description of changes
Introduces a new package for homepage as well as a NixOS module and some tests.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@SuperSandro2000 thanks for the detailed feedback. I agree that homepage was a bit generic. I've addressed your feedback and changed the name to homepage-dashboard - I think that's a bit less ambiguous.

This software advertises itself as a "fully static" dashboard (https://gethomepage.dev/v0.7.3/) that is configurable with yaml, but when I look here I find it runs node as a service and lacks declarative configuration support?
Can we add a NixOS settings option?

This software advertises itself as a "fully static" dashboard (https://gethomepage.dev/v0.7.3/) that is configurable with yaml, but when I look here I find it runs node as a service and lacks declarative configuration support?
Can we add a NixOS settings option?

For now I'm doing this:
...
let
  # Attrset of filenames (/var/lib/private/homepage-dashboard/${attr}) to
  # content.
  #
  # For configuration options and examples, please see:
  # https://gethomepage.dev/latest/configs/.
  settingsRaw = {
    "bookmarks.yaml" = ''
      #- Developer:
      #    - Github:
      #        - abbr: GH2
      #          href: https://github.com/
    '';

    "custom.css" = ''
    '';

    "custom.js" = ''
    '';

    "docker.yaml" = ''
    '';

    "kubernetes.yaml" = ''
    '';

    "services.yaml" = ''
      - local services:
          - My First Service1:
              href: http://localhost/
              description: Homepage is awesome
          - My First Service2:
              href: http://localhost/
              description: Homepage is awesome
          - Gitea:
              href: http://localhost/
              icon: gitea
              description: Git repository hosting, issue tracking and CI server
    '';

    "settings.yaml" = ''
      title: My Awesome Homepage
      background: https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80
      #background: https://wallpapercave.com/wp/wp2561067.jpg
    '';

    "widgets.yaml" = ''
      - resources:
          cpu: true
          memory: true
          disk: /

      #- search:
      #    provider: duckduckgo
      #    target: _blank
    '';
  };
in
...
  systemd.tmpfiles.rules =
    lib.mapAttrsToList (n: v: ''L+ /var/lib/private/homepage-dashboard/${n} - - - - ${builtins.toFile n v}'') settingsRaw;
...

Seeing how the service instantly reloads changed YAML files, I think we should have opt-in declarative config, in case people want imperative configuration (which homepage-dashboard does so well).

Hey @bjornfor, yeh I'm definitely open to this, but haven't quite gotten around to it. Happy to review any changes to the module if you get there before I do?

@bjornfor - see #291554 :)


Task Priorities Cannot Be Assigned

Hello,
I have been having a very weird issue that I don't know what the cause could be. I aimed to create 4 tasks, and later on use uxTaskPriorityGet and vTaskPrioritySet in my tasks to switch between them. However, this approach did not work, even though the code and the logic are quite simple. Then, I went back and checked if the tasks are assigned the correct priorities in the beginning; and saw that they are not! My example is below:
      xTaskCreate(exti_line13, "deferred_13", 1000, NULL, 2, &line13Handle);
      xTaskCreate(exti_line10, "deferred_10", 1000, NULL, 1, &line10Handle);
      xTaskCreate(deferred, "deferred_default", 1000, NULL, 4, &deferredHandle);
      xTaskCreate(regular, "regular", 1000, NULL, 3, &regularHandle);
      HAL_UART_Transmit(&huart2, s, sprintf(s, "%d\n", uxTaskPriorityGet(line13Handle)), 1000);
      HAL_UART_Transmit(&huart2, s, sprintf(s, "%d\n", uxTaskPriorityGet(line10Handle)), 1000);
      HAL_UART_Transmit(&huart2, s, sprintf(s, "%d\n", uxTaskPriorityGet(deferredHandle)), 1000);
      HAL_UART_Transmit(&huart2, s, sprintf(s, "%d\n", uxTaskPriorityGet(regularHandle)), 1000);

Here, we would expect the priorities to be 2,1,4,3; but they are 2,1,4,4, and this situation depending on how I order the tasks; I tried this many times and I can't see any logical reason why this is happening!
Could you please inform me about this issue?
I appreciate your help, thank you!

Is this before or after the scheduler is running?
Can you please show the declaration of the task handles line13Handle, line10Handle, deferredHandle and regularHandle and let me know where they are defined (for example, are they file scope variables, global variables, declared on a stack, etc.).  If you inspect each handle, does each have a unique value (asking depending on the answer to the first question)?
If you store the return values of uxTaskPrioityGet() in a variables, rather than calling the function as a parameter to HAL_UART_Transmit(), then inspect the variables in the debugger, are the values still unexpected?
WITH THE SCHEDULER RUNNING, can you please also try calling xTaskCreate(), then immediately calling uxTaskPriorityGet(), to see if the return of uxTaskPriorityGet() is as expected then.

Hi @gokcedilek,
Were you able to resolve this issue? If you've checked out the scope and identity of the task handles as @RichardBarry Richard suggested, can you reopen this ticket and let us know which port you are using?

Hello,
Sorry I had to take a break from this project. I would like to ask questions about the suggestions above:

How exactly should I inspect the handle values (ie whether they are unique or not)?
Should I create the tasks after starting the scheduler? Right now, I was doing the task creation before starting the scheduler (ie before running vTaskStartScheduler();)

The declaration of the handles & tasks:
TaskHandle_t line13Handle = NULL;
TaskHandle_t line10Handle = NULL;
TaskHandle_t deferredHandle = NULL;
TaskHandle_t regularHandle = NULL;
TaskHandle_t demoHandle = NULL; //handles are global
xTaskCreate(exti_line13, "deferred_13", 1000, NULL, 1, &line13Handle);
xTaskCreate(exti_line10, "deferred_10", 1000, NULL, 1, &line10Handle);
xTaskCreate(demo, "demo", 1000, NULL, 1, &demoHandle);
xTaskCreate(regular, "regular", 1000, NULL, 2, &regularHandle);
xTaskCreate(deferred, "deferred_default", 1000, NULL, 1, &deferredHandle); //tasks
vTaskStartScheduler(); //scheduler

I am using the STM32F401RE microcontroller, and ports A and C.

There is no problem creating the tasks before the scheduler has started.
As per my first post - where are the handles declared, that is, where does the line "TaskHandle_t line13Handle = NULL;" appear in your code?  Is line13Handle a stack variable?  If so, which stack is it on?  If not stack variables, are they file scope?  Global?  or something else?
If the code you posted all appears inside main(){} then the variables are on the stack used by main().  Once the scheduler starts that stack is recovered for use by interrupt service routines - which means you cannot access any variables stored on the stack used by main() after the scheduler has started.  If that is indeed what you are doing then try moving the declaration of the handles outside of main(){} to prevent them being on the stack.

Oh I see, that is a good point. However, I declared the handles outside of the main.

The handles are global.
The tasks are created inside main(), before starting the scheduler.
When I print the priority values at this point, the values are wrong.
After the scheduler starts, the task executing functions take place.
However, the functions with the highest priority don't get executed, the lower priority ones do; which tells that the priority values in here are also wrong.

I just checked and my STM32 application is currently using heap_4.c as the FreeRTOS heap implementation. Could that be related to the problem that I am experiencing, should I change that to one of the other options?

When I print the priority values at this point, the values are wrong.

Are you determining the values are wrong because the values print out incorrectly?  If so, are you absolutely sure the issue is not just that the print function is not working correctly?  Please set a break point in the code and actually read the values using the debugger.

the functions with the highest priority don't get executed

Are you sure the task actually got created?  Check the return value of the call to xTaskCreate() used to create the task.  If it returns pdPASS, then set a break point at the start of the task to see if it ever gets hit.  If it does get hit, step through the function to see how far it gets.

I just checked and my STM32 application is currently using heap_4.c

That has nothing to do with task priorities, but if the heap is too small it could prevent a task being created in the first place, as per my previous comment you need to check the return value of xTaskCreate.  You can also use a malloc failed hook to see if a memory allocation fails.  https://www.freertos.org/a00016.html .  Would also suggest looking through this list of common issues https://www.freertos.org/FAQHelp.html
If you still have issues we will need to see some of the code.


Support for QAM clients

This PR adds variables for clients needed by QAM.

I have the feeling that we need to somehow do it generic to accept other clients in the future.
For now, in my opinion, it will better to have it in your fork or a branch until we succeed in having the whole workflow of a QAM test suite running.

For now, in my opinion, it will better to have it in your fork or a branch until we succeed in having the whole workflow of a QAM test suite running.

Agreed, I changed target branch to point to qam-testsuite.

I have the feeling that we need to somehow do it generic to accept other clients in the future. (...)

Yes, not sure how. Maybe put them all in some configuration file. Not sure whether it's a good idea...

I think we could miss something on those changes. I can see the changes applied in the sumaform used in the jenkins slave, but going to the bashrc of the controller I can't even see the commented lines in case of non existance of those grains.
Follow progress here:

https://ci.suse.de/view/Manager/view/Manager-4.0/job/manager-40-cucumber-qam-pipeline/
CONTROLLER: qam-pip-40-ctl.prv.suse.net
https://ci.suse.de/view/Manager/view/Manager-4.0/job/manager-40-cucumber-qam-pipeline/44/execution/node/4/ws/sumaform/salt/controller/bashrc/*view*/


Remove downloading spaCy's English pipelines from setup.py

This PR removes downloading spaCy's English pipelines, en_core_web_sm from setup.py. This also corrects the processor which actually depends on en_core_web_sm.
Fixes #490.

This also fixes #173


[LAB] Remove fill attribute from SVG nodes

:v:
/cc @zendesk/vegemite @Eshen
Description
As per the developer docs, SVG icons submitted for a top or nav bar app should not include fill colours.
This PR scrubs all instances of the fill attribute in SVG nodes, unless the value of it is set to none or currentColor (currently used throughout default app icons).
Risks

Low - regenerates SVGs that include valid attributes.

can you test this with the survey monkey app: https://github.com/zendesk/surveymonkey_campaign_app

@ocke the Survey Monkey App doesn't have a fill in the SVG... was there another problem with the previous SVG sanitisation there?


Add a golang package that implements RATS conceptual message wrappers

Veraison needs to consume CMWs coming from Parsec forwarded by the relying party.
To do that, we need a go implementation of the CMW spec that the Veraison API frontend can use.

Completed in https://github.com/veraison/cmw/pull/1


test(e2e): change default for e2e testing to off

Change the default to not run e2e tests.
This is to allow the nightly tests to generate develop
images for use by the new nightly-stable pipeline.

bors merge

bors merge


Bump mariadb driver to 1.1.8

This is a PR for Issue https://github.com/cloudfoundry/uaa/issues/151

@youngm - Thanks for doing this!

@fhanik No problem.  I hope the tests pass. :)

Coverage decreased (-0.13%) to 83.48% when pulling d4db4f7af38d47379503162a85411e91c891ef55 on youngm:mariadbupgrade into 358a32426ff49dea4cb4acf8f274150eeaeabd0f on cloudfoundry:develop.


Update DOCS: Add Screenshots to existing Chrome Extension Documentation

Description:
I would like to update the documentation by adding screenshots to the Chrome extension section of DocsGPT. This will help improve clarity and provide visual guidance to users on how to use the extension more effectively.
Task Details:
Add screenshots demonstrating key steps and features of the Chrome extension.
Ensure the images are appropriately sized and aligned with the existing documentation style.
Update any necessary descriptions to complement the screenshots.
Please assign this task to me, @dartpain.

We are planning a heavy redesign on that chrome extension.
Thank you for raising this issue.
I think there are other places that may benefit from screenshots.


How to deploy CycleMLP-T for training？

Thank you very much for such a wonderful work!
After learning the cycle_mlp source code in the repository, I am very confused to deploy CycleMLP Block based on Swin Transformer.  Is it convenient for you to release swin-based CycleMLP?
Looking forward to your reply, Thanks!

what do you mean by swin-based CycleMLP. Swin transformer already has attention block, do you mean replace MLP with cycleMlp


primitive actions clone_ingress_pkt_to_ingress/clone_ingress_pkt_to_egress not defined

clone_ingress_pkt_to_ingress/clone_ingress_pkt_to_egress is not supported for the ingress/egress pipeline, respectively. For clone_ingress_pkt_to_ingress the compiler gives the error:

Semantic error: Invalid reference to clone_ingress_pkt_to_ingress in file /bla/bla/bla.p4 at line 123: object was not defined

clone_ingress_pkt_to_egress is actually supported (as is clone_egress_pkt_to_egress)
clone_ingress_pkt_to_ingress and clone_egress_pkt_to_ingress are not. We have decided not to support these primitives in simple_switch. The next version of the P4 spec won't include architecture-specific primitives (like the clone_* primitives); each architecture will chose to expose primitives (whose signatures will be expressed in P4, so the primitive JSON files won't be needed any more). The standard architecture will be similar to the simple_switch bmv2 target and expose similar primitives; it is unlikely that we will be adding the 2 unsupported primitives to simple_switch. Anyone willing to use these primitives will have to extend the standard architecture (and implement them in a simple_switch "fork"). You can already do that today if you wish. This p4-dev mailing list thread describes how to add a primitive to simple_switch: http://lists.p4.org/pipermail/p4-dev_lists.p4.org/2016-May/000308.html. It is a 2 step-process: 1) implement the primitive in simple_switch (which is not trivial for the clone_* primitives) 2) expose the primitive to the compiler by writing a JSON description.

I see. Thanks for your statement!


how can we test chunking is working?

when we upload a file with 1GB for example , how can we know or test chunking is working or not ?
is it necessary to set chunking : true, to set endpoints

Easiest would be to look at network requests.

ok. thanks ..... if i am uploading file size of more than chunk size ... it uploads file by "blob".. and with separate chunks.. how I get a single file as same  it before uploading


Registration / Login / Logout

When the user first opens the app he/she can decide between registering (creating a new account) or logging in.
Registration
The following information has to be provided for registration:

first name
last name
health center
pin code to lock the app

Login
The following information has to be provided for logging in:

first name
last name
pin code

If first name + last name are not found in the backup location, an error message will be shown ("This user does not exist").
If first name + last name are found but the pin code is wrong, an error message will be shown ("The pin code is wrong").
If the information was entered correctly, the data should be restored from the backup.
Logout
The user should be able to log out again so that another user can log in to the app. This might happen when a peer educator quits his/her job and passes on the tablet to another peer educator who will have different patients. This should erase all patient data from the tablet.
Transfer Data / Change Name + PIN
This is like a logout but keeps the data that is already on the tablet. In other words, the user should be able to change the name and pin code without the data being erased. This might happen when a peer educator quits his/her job and passes on the tablet to another peer educator who will have the same patients.

Related issues:

#5 / #4: Backups / data export should be user-specific. I.e., there should be a file/folder for user1, another file/folder for user2 etc. and all the data that this user recorded in the PEBRApp should be stored in the corresponding user1 (user2, user3...) file/folder.

Implemented everything except the PIN code functionality. Created a separate issue for that (#15).


frameworks trigger warning about not being safe in an extension

Using 2.0.0-beta.15, both CwlSignal and CwlUtil trigger the 'linking against a dylib which is not safe for use in application extensions' warning when being linked into an iMessage extension. Are they in fact not safe for use in extensions, or could 'Require Only App-Extension-Safe API' be set in the framework projects so that Xcode knows everything is good to go?

CwlSignal 2.0.0-beta.18 and CwlUtils 1.1.0-beta.13 have added the build setting APPLICATION_EXTENSION_API_ONLY = YES to the iOS targets. It should resolve the problem.


Task class command

Add task class, and add task command. Task added via add -t <description>.

Test cases were modified to use a new Task class instead of the Person class in some areas. Refactoring still needs to be done to make the naming convention more logical.

Some test cases were passing locally, but failing on GitHub CI, all were under the JsonUserPrefsStorageTest Java File


SNMP Value Retrieval

⚠ Please verify that this feature request has NOT been suggested before.

[X] I checked and didn't find similar feature request

🏷 Feature Request Type
New Monitor
🔖 Feature description
I would love to be able to put in custom SNMP OID's per device to monitor the value of that OID with each update and display them in the table, would be SO helpful.
✔ Solution
Add SNMP monitoring for custom OID's per device.
❓ Alternatives
No response
📝 Additional Context
No response

I am not sure if this is just slightly out of scope for Uptime Kuma. It feels like it would take the project closer to the likes of zabbix or checkmk as an entire system monitoring service as apposed to a system to monitor what the average user sees. However, it is @louislam descision. I would be interested to see what others thoughts are on this.

As long as it is about uptime and downtime, it could be a monitor type in Uptime Kuma.
But honestly, I probably won't implement this, as I don't use and I don't know what is SNMP.

This Issue should get bumped, as SNMP is really useful.

I have yet to explore this project but am interested.  However the first thing I did was look if SNMP was included.  Its is very useful.  But does take time to get configured and learn device OIDs.
I currently use Syncro RMM but have been looking for alternative solutions.  The way Syncro does it is their main Windows based monitor agent installed at customer's local site gets designated as a SNMPv2 monitoring agent.  It then does over LANs to query SNMP OIDs then reports back cloud via the designated monitoring agent.
Here's maybe some inspiration to consider adding SNMP.  Lots good monitoring and info.
Pics of Poweredge IDRAC8, N2024 2x switch stack, and APC UPS.
https://i.imgur.com/nSsMz7P.png
https://i.imgur.com/SnBbQGT.png
https://i.imgur.com/2H9l6Kx.png

Bumping this as it'd be very useful for how I am using UptimeKuma.
@louislam Respectfully disagree that this is outside the scope of the application - SNMP is simply a way to query for data, the logic as to what that data does in UptimeKuma would be where ya'd want to be careful. I agree getting into the weeds with complicated checks is better suited to other products, (Icinga, Nagios, etc...) however querying SNMP for simple values like toner level or if a switch port is up / down is no more out of scope than the existing SQL monitoring that operates the same way.
I'd propose to literally copy how the SQL monitor works but for SNMP. Simply providing a red/yellow/green status and a graph over time of the queried value would be of tremendous value, even for home users.
Thanks again for a wonderful product and the time that has gone into it. I wish I was better with code to help implement this feature myself.

I'd also like to bump this. The perfect use-case for me would be to monitor the status of our security cameras- whether they are recording or not. While I can simply set up a ping-test for all of our cameras, this doesn't actually indicate to me that they are successfully recording to the NVR. We use a Lorex NVR system that has an SNMP interface with a query-able status for each camera.

Bump, please add support for it

Yes again please.

Bump +1

Bump + 2

Bump +3

You can upvote the original post instead of commenting. Comment won't get you there faster.

Please Bump + 4

@Lucienest @ThaBlazee @wglenn01 @charettemtb
Please refrain from posting +1 / requests for updates things on issues, as this makes issue-management harder.
Issues are for discussing what needs to be done how by whom.
We use 👍🏻 on issues to prioritise work.
Given that this Project is open source, you could also provide a Pull Request (with extensive screenshots, as I would not know where to get a device with SNMP) 😉
PS:
@Lucienest given that the comment from Nelson was not enough, I think being more explicit is in order.
If you continue to +1 without any useful contribution, we will get you reported for abuse/spam.
This is the fourth time you have commented in the spirit of `+1´.
Uptime Kuma is maintained voluntarily by people in their spare time, please respect this.

Given that this Project is open source, you could also provide a Pull Request (with extensive screenshots, as I would not know where to get a device with SNMP) 😉

Cheap Mikrotik switch (40$ new) should get you SNMP.

Given that this Project is open source, you could also provide a Pull Request (with extensive screenshots, as I would not know where to get a device with SNMP) 😉

I just noticed this was getting some activity!
SO many devices support SNMP, if you have a network printer, managed switch... anything there's a high chance of it supporting SNMP.
Without purchasing anything - Both windows and linux support SNMP reporting out the box. You can enable it in your OS and then query well known OIDs to pull values from your computer
Example:
https://www.sysadmin.md/snmp-most-useful-linux-oids.html
Hope that helps!!

exactly what should be supported

Given that monitors which come from the community work better (because the dev providing the implementation understands what SNMP is and has a device to test this on), this would be how to get this feature.
=> A reasonable PR implementing this feature is likely to get merged
See this PR for a somewhat similar monitor: https://github.com/louislam/uptime-kuma/pull/3178
Here is our contribution guide: https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

I am happy to see interest in this, well the same thing I am looking for as well. I am using UptimeKuma for 50+ different services (what's supported) and last piece is (to fill the gaps) SNMP for devices and for a simple metrics.
I will loook into extending it myself and will share some info. Fingers drossed!

Maybe this might be a light path or bridge to get over - i have seen, that "uptime kuma", which i like very much, fires up several ping commands (i use Ping Monitors in Uptime Kuma) as one can see on the console/syslog in the docker image i run. I am wondering if someone could figure out if the net-snmp commands snmpwalk and snmpget resp. snmptable command could be helpfull to get certain snmp values from e.g. printers routers and switches. just a thought that it could be a way ...

Maybe this might be a light path or bridge to get over - i have seen, that "uptime kuma", which i like very much, fires up several ping commands (i use Ping Monitors in Uptime Kuma) as one can see on the console/syslog in the docker image i run. I am wondering if someone could figure out if the net-snmp commands snmpwalk and snmpget resp. snmptable command could be helpfull to get certain snmp values from e.g. printers routers and switches. just a thought that it could be a way ...

that would make a lot of sense!
To someone who knows coding this PR could be a literal copy/paste from the SQL monitor but switch out the heavy lifting by passing values to net-snmp
Love the product, hope this gets traction!

In this example, the number of received packets is compared to the threshold value. If the number of received packets exceeds the threshold, it will display the message "Received packets exceeded the threshold of {threshold}" and you can perform your desired action at that point.
Adjust the threshold value as needed to set your specific threshold. When the threshold is exceeded, you can, for example, send an email, generate a notification, or take other actions relevant to your application.

const snmp = require('snmp-native');
// Configure SNMP parameters
const session = new snmp.Session({ host: 'your_printer_ip', community: 'your_community_string' });
// Define the OIDs for Toner Levels in Percentage as variables (these are example OIDs)
const cyanTonerOID = '<IP_ADDRESS>.4.1.24<IP_ADDRESS>.1.15.1'; // Example OID for Cyan Toner Level (%)
const magentaTonerOID = '<IP_ADDRESS>.4.1.24<IP_ADDRESS>.1.15.2'; // Example OID for Magenta Toner Level (%)
const yellowTonerOID = '<IP_ADDRESS>.4.1.24<IP_ADDRESS>.1.15.3'; // Example OID for Yellow Toner Level (%)
const blackTonerOID = '<IP_ADDRESS>.4.1.24<IP_ADDRESS>.1.15.4'; // Example OID for Black Toner Level (%)
// Perform SNMP queries for toner levels in percentage for each color
function queryTonerLevel(oid, colorName) {
session.get({ oid }, (error, varbinds) => {
if (error) {
console.error(Error in ${colorName} Toner SNMP query:, error);
} else {
varbinds.forEach((varbind) => {
const tonerLevel = varbind.value;
console.log(${colorName} Toner Level (%): ${tonerLevel});
});
}
});
}
// Query toner levels for all colors
queryTonerLevel(cyanTonerOID, 'Cyan');
queryTonerLevel(magentaTonerOID, 'Magenta');
queryTonerLevel(yellowTonerOID, 'Yellow');
queryTonerLevel(blackTonerOID, 'Black');
// Close the SNMP session (after all queries are completed)
setTimeout(() => {
session.close();
}, 1000); // Wait for 1 second before closing the session (adjust as needed)

In this program, we define separate OIDs for the percentage toner levels for Cyan, Magenta, Yellow, and Black toners. We then perform SNMP queries for each color, retrieve the toner level in percentage, and print the results. Finally, we close the SNMP session after all queries are completed. Please replace 'your_printer_ip' and 'your_community_string' with the correct values for your printer and SNMP setup.

Would this help snmp get implemented in Uptime Kuma? I'd do it myself but I'm not developer.
https://github.com/node-red/node-red-nodes/tree/master/io/snmp

Any news? I really want to have this feature to set up notification for printer toner.

IMHO this sounds out of scope of the product/goal here. Toner levels can easily trigger an alert from the printer itself. I think - but correct me if I'm wrong - that we want to monitor services running from outside our own network (hence SNMP is really out of scope since LAN oriented protocol) to make sure stuff is running for the rest of the world as it should be. That's just my opinion of course. I think the scope of v2 with numerous additions, especially yearly SLA figures is far more important.

Yeah of course, SNMP protocol can do more, than check level of toner in printer. But my use case is monitoring toner in company.
SNMP can monitor anything you want.
I like to have one monitoring tool for all my needs and actually I need to monitor SNMP values, so I hope this feature will be added soon.

Any news

No PR has been raised with support for this.
@NEBELWAENDE has posted some code which would need to be fittend into our monitoring-type's and tested that it works.
An example for a PR implementing a monitoring-type is https://github.com/louislam/uptime-kuma/pull/3178
Our contribution guide is available here https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

I agree, I would LOVE to have snmp monitoring added. Would be SO helpful as
a WISP.
On Thu, Feb 1, 2024 at 6:11 PM phinnay @.***> wrote:

IMHO this sounds out of scope of the product/goal here. Toner levels can
easily trigger an alert from the printer itself. I think - but correct me
if I'm wrong - that we want to monitor services running from outside our
own network (hence SNMP is really out of scope since LAN oriented protocol)
to make sure stuff is running for the rest of the world as it should be.
That's just my opinion of course. I think the scope of v2 with numerous
additions, especially yearly SLA figures is far more important.
i'd again respectfully disagree this is out of scope for uptime-kuma given
the other non-uptime checks that have been added (SQL, API, etc...) as per
my reply here #1675 (comment)
https://github.com/louislam/uptime-kuma/issues/1675#issuecomment-1458343495
Toner level is one example of a value that can be monitored. It could just
as easily be a switch port, or water level in the coffee maker.... SNMP is
a protocol that would open up a whole new world of uses for this
application.
—
Reply to this email directly, view it on GitHub
https://github.com/louislam/uptime-kuma/issues/1675#issuecomment-1922605050,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AF2FAX6NVTCB34MNOIQVR7TYRQ4K7AVCNFSM5WW4TXD2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJSGI3DANJQGUYA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I recommend those looking for SNMP checkout Zabbix.  Its powerful monitoring system.
It is distributed monitoring solution where you can setup Zabbix proxy on remote sites LAN(s) and have Zabbix Server at your HQ.  Proxy SNMPv2 monitors will only use community string to monitor SNMP devices on the local LAN (SNMPv2 unencrypted).  The Zabbix proxy to server communication can then use encryption PSK or Cert to update the Zabbix server with everything the proxy is monitoring.  Zabbix server then allows for tons a logic to setup alerts.  For example Dell IDRAC server global heath check = 3 (ok) , alert if not equal to 3.
https://github.com/zabbix/zabbix
https://www.zabbix.com/container_images

I recommend those looking for SNMP checkout Zabbix. Its powerful monitoring system. It is distributed monitoring solution where you can setup Zabbix proxy on remote sites LAN(s) and have Zabbix Server at your HQ. Proxy SNMPv2 monitors will only use community string to monitor SNMP devices on the local LAN (SNMPv2 unencrypted). The Zabbix proxy to server communication can then use encryption PSK or Cert to update the Zabbix server with everything the proxy is monitoring. Zabbix server then allows for tons a logic to setup alerts. For example Dell IDRAC server global heath check = 3 (ok) , alert if not equal to 3.
https://github.com/zabbix/zabbix https://www.zabbix.com/container_images

I am quite familiar with Zabbix, and use enterprise class monitoring software in my day job all the time.
Uptime-kuma is an entirely different use-case. If i wanted to get that crazy I'd script up some middleware to dump SNMP values to SQL and check them with the existing uptime-kuma capabilities. Janitoring enterprise software is not something I want to do in my home / spare time. The simplicity of uptime-kuma is attractive for this reason.
My rationale for promoting this feature is so folks can punch in an OID and get basic information back, the same way all the other checks work. Nobody is suggesting this software needs to do anything or become anything remotely resembling Nagios/icinga/Zabbix/ELK.

Janitoring enterprise software is not something I want to do in my home / spare time.

Ok.  Don't use Zabbix if you don't want to.   Being supportive is in the nature of open source and I'd ask you to not call people names just because they disagree with you.

(for those wondering: I merged a few comments to make this thread more readable ^^)

Its half baked movie joke.  No sense of humor in IT - buttercups all around me.

It would be really nice with at least minimal snmp abilitys så you can monitor UPS and Switch temp and such things.Skickat från min iPhone XIII1 feb. 2024 kl. 22:27 skrev owlysk @.***>:
Any news? I really want to have this feature to set up notification for printer toner.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

@Slamkryp I think my comment has moved so far to the top that reposting is beneficial

No PR has been raised with support for this. @ NEBELWAENDE has posted some code which would need to be fittend into our monitoring-type's and tested that it works. An example for a PR implementing a monitoring-type is #3178
Our contribution guide is available here https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

Good day to all,
I use Uptime Kuma to monitor "complex" devices and at the same time I use "Mikrotik TheDude!" to monitor my local network network devices that can send data via the SNMP protocol.
The SNMP protocol is widely used in operator network devices and other industrial networks.
Routers and access points such as Ruckus, Mikrotik and others provide a lot of useful information about the current state of the network.
It would be fantastic to combine both monitoring systems in Uptime Kuma. Or configure some interface so that Uptime Kuma can collect data via the SNMP protocol.

I found a way to make friends - Uptime Kuma with Mirkotik without SNMP protocol support.
The task is to monitor in Uptime Kuma the status of Mikrotik and the map of its TheDude networks

in Uptime Kuma we should create a New Monitor, select the PUSH type, and get a unique push URL, define the waiting interval, for example, 60 seconds, and the “polarity” (Flip the status upside down. If the service is reachable, it is DOWN ).

for example http://<IP_ADDRESS>:3001/api/push/AdSiDEOE6s?status=up&msg=OK&ping=

In Mikrotik, we should create a tool that will “peck” push URL, informing us in Uptime Kuma about what we have in mind - whether it works or does not work.
 /tool fetch url=http://<IP_ADDRESS>:3001/api/push/AdSiDEOE6s?status=up&msg=OK&ping=" keep-result=no

in Uptime Kuma we see that Mikrotik is alive and what we have in mind - whether it works or not.

You can create as many of these Monitors as you like.
The trick is that using the method described above, you can “upload” various events and service states, for example, SNMP OIDs change or Network Watch Alerts, from the TheDude network map to the Uptime Kuma server. And so on.

I would strongly support and encourage integration of SNMP.  Its a fundamental and industry standard of monitoring network equipment.
To give some realworld use, for our temporary deployments we monitor not just that a switch is connected (simple ping response), but with SNMP, is an individual port up or down, has it negocitated at the correct link speed, is it full or half duplex.  Any of these could alert to a potential uptime problem about to occur.
We also deploy many microwave links, so for monitoring purposes, we dont just want to know the link is up/connected, but what is the signal strenth (RSSI), what is the throughput, etc.  This is all simply collected via SNMP.   Just because you can get a ping response from the microwave link at the other end, doesnt mean the link isnt about to fail, or is running at an acceptable speed.
We currently use Nagios for our monitoring, which does the job, but its an awful system to actually setup and maintain, and just isnt user friendly for the rest of our less technical team compared to the fantastic interface you've created with Uptime Kuma.
Don't waste time on intergrating OID library's for individual products, leave that to user to enter the values they need to retrieve.  Most quality equipment has this documented anyway and/or there are hundreds of products already out there that let you scan a device to find the OID you require anyway.

SNMP would be really nice as most UPS:s, switches, server support SNMP.
Just for the simple thing to get a notfication when UPS is running on battery would rule!

@Slamkryp You are repeating yourself.
Please avoid spamming without additional information.
Being less suttle: If you continue spamming, we will ban you as by our code of conduct
The state of this issue has NOT changed from my response to your last post: https://github.com/louislam/uptime-kuma/issues/1675#issuecomment-1925375148

No PR has been raised with support for this. @ NEBELWAENDE has posted some code which would need to be fittend into our monitoring-type's and tested that it works. An example for a PR implementing a monitoring-type is https://github.com/louislam/uptime-kuma/pull/3178
Our contribution guide is available here https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md

Hello guys,
I decided to try implement this monitor.
I think it should be like this:
You will set up IP address of device, SNMP version number, community string for SNMPv1 & SNMPv2c and OID you want to check. One OID per monitor. Then I think you should set control value and condition. For example, I want to check, if OID value is greater than 30% (30% is my control value).
Conditions will be:

> - check integer
>= - check integer
=< - check integer
<= - check integer
== - check integer & string
contains - check if string is in OID value

Monitoring will check OID value against condition. If OID value is > than control value = UP. Otherwise it returns DOWN. If device will be offline, returns DOWN.
Is that behaviour correct?

For now I won't implement SNMPv3.

Hi @owlysk, yes that's the fundamental concept, but keep in mind an OID from a network appliance can return a string or integer, depending on what element is being monitored.
Going back to my microwave link example from earlier, if I check the state of an ethernet port, the OID response would be the string of 'up' or 'down', but if I check the RSSI (signal strength) that would return a value anywhere between -128 (dBm) to -20 (dBm).
And thanks for looking into this!  Really appreciate it.  I wouldn't rush to implement SNMP v3.  Yes its the newer (more secure protocol because it has auth) but I honestly would hazard a guess most implementations are still on v2, unless crossing wan connections.

Sounds pretty good, but just in case you didn't know, you should take a look at how the json-query monitor works.
Ideally in the long term, we would want all value comparisons to work with the jsonata syntax, and reuse the database fields for better compatibility (see #3919). I don't think it's worth implementing a custom value comparison functionality just for this monitor.

@camdenyoung can you please provide output from snmpwalk for signal strength? I want to know what response look like.
@chakflying thank you, I didn't know that. I'll take a look.

Hey @owlysk I've started working on implementing this feature. It's nowhere near complete, but I'm dropping my work thus far into PR #4717. I've laid the framework for your control_value logic. I'll continue to work on this next week (I'm assuming I won't have time over the weekend but ya never know).

@owlysk I'm wondering if you'd be able to take a look. I'm basically stuck with a strange timeout issue. See my PR, specifically, #issuecomment-2083823715

Apologies @owlysk, I've been away the last week.  I'm back in the office now if you still need me to send through an snmpwalk?

@owlysk below is the result for RSSI (signal strength) from a Siklu EH-710 microwave link as an example
snmpget -v 2c -c public <IP_ADDRESS> .<IP_ADDRESS>.4.1.319<IP_ADDRESS>.19.1
SNMPv2-SMI::enterprises.319<IP_ADDRESS>.19.1 = INTEGER: -26

@camdenyoung I'm essentially implementing @owlysk's suggested logic for checking SNMP:

> - check integer
>= - check integer
=< - check integer
<= - check integer
== - check integer & string
contains - check if string is in OID value

However, one potential issue I foresee is that often times OID's will report values in binary, or OctetString (more on that here). So we need to have logic in place to handle those situations.
In my PR I was originally going to use snmp-native, but I am switching to net-snmp because has SNMP walking. As I work on this feature, I wrote an SNMP walking script, which I used to try to parse my Cisco SG-300 switch. I let the walk run for 30 minutes or so and it reported back 211,468 unique OID's parsable in Cisco's default RO library... So I think implementing an SNMP walk for this feature is impractical. Which is frustrating because unless you already know the OID you're wanting to monitor, there isn't some central directory to easily look up, for example, CPU usage on my Cisco switch...
Posting my SNMP walking script for the record:

Click to view code
const fs = require('fs');
const snmp = require('net-snmp');

// Configuration
const monitor = {
  ipAddress: 'changeme',
  port: '161',
  communityString: 'public',
  snmpVersion: '2c',
  rootOid: '<IP_ADDRESS>',// This is pretty high level
};

// SNMP options
const options = {
  port: monitor.port,
  retries: 1,
  timeout: 5000,
  version: snmp.Version2c,
};

// Create SNMP session
const session = snmp.createSession(monitor.ipAddress, monitor.communityString, options);

// Create writable stream for CSV
const csvStream = fs.createWriteStream('snmp_data.csv');

// Function to handle SNMP walk feed callback
function feedCb(varbinds) {
  for (const varbind of varbinds) {
      if (!snmp.isVarbindError(varbind) && varbind.value !== null && varbind.value !== undefined) {
          console.log(`OID: ${varbind.oid}, Type: ${findType(varbind.type)}, Value: ${varbind.value}`);
          const csvRow = `${varbind.oid},${findType(varbind.type)},${varbind.value}\n`;
          csvStream.write(csvRow);
      }
  }
}

// Function to handle SNMP walk done callback
function doneCb(error) {
  if (error) {
      console.error(error.toString());
  } else {
      console.log('SNMP walk completed.');
  }
}

// Start SNMP walk from the specified OID
session.walk(monitor.rootOid, 20, feedCb, doneCb);

// Function to find the corresponding type name for a given value
function findType(value) {
  const typeName = Object.entries(snmp.ObjectType).find(([key, val]) => val === value);
  return typeName ? typeName[0] : 'Unknown';
}

As you've just discovered, I wouldn't worry about implementing any OID scanning functionality.  There are thousands of tools out there that the user can utilise to find the right OID for the sensor / status to be monitored.  Leave it to the user to know what OID to enter, then only functionality required from the uptime kuma perspective is the logic behind the alert.  Is the value true or false, or is the threshold met or exceeded, etc.
On a side note though, it might be worth having a look over librenms GitHub.  This is a much higher level (and as a result, significantly more complicated) monitoring solution, but it might help explain how they have implemented the scanning functionality as well as the monitoring side.

Thanks for the tip to librenms, I'll take a look. I'll also continue working on the PR tomorrow morning, but I was able to get basic functionality working at least, so I can sleep tonight...

Alright I finished this monitor and have requested review of the PR. For now, I'm not going to implement any sort of OID discovery-- it's just too complicated. I'm going to assume people know the OID they want to monitor already and can paste it in.
If anyone wants to check out this feature, you can clone my PR and test for yourself.

@camdenyoung Thank you for snmpwalk result. @mattv8 was quicker in implementation, than me :)
@mattv8 I'm testing your PR but I always get error -  Request timed out. I'm using SNMPv1.

Hey @owlysk I got lucky and had some spare time. 🙂
I'm currently working through the error you're seeing. There is an issue with how my code is parsing strings: SNMP Error: toString() radix argument must be between 2 and 36. Working on this now, should have resolution in an hour or so.

I found the issue and will submit my fix before the end of the day.

@owlysk I have committed my code fixing the issue you were encountering.

@mattv8 Where can I pull the container to do some testing myself?


Require php-http/discovery

This update should fix https://github.com/mailgun/mailgun-php/issues/452#issuecomment-371197710
Then we might need to release a new version and upgrade Mailgun's version of Nyholm/psr7

This will not fix https://github.com/mailgun/mailgun-php/issues/452.

This library does not have a dependency on php-http/discovery. Im following up the discussion in php-http/discovery#106


Rendering issue when changing the URL

Summary
Dispatching a push from a connected component does not work.
Test Case
https://github.com/kurt-hardy/react-router-redux-issue
Expected Behavior
Should render the correct component
Actual Behavior
Nothing is rendered. Notice that the URL changes and if you open up redux dev tools and you will see the location change being dispatched

Same is happening inside a saga, doing: yield put(push('/home')) just changes the URL, but it does not render the component.
My config is the one from react-boilerplate plus this pr https://github.com/react-boilerplate/react-boilerplate/pull/2375/files.

This was my own mistake, I had an uppercase C when passing the component to the Route
<Route path="/page-1" Component={Page1} />
Whats your issue?


Support for Midi Out and getDeviceByName

Some Improvements

This is excellent, thank you! Will test this out later and merge, everything looks good at a glance though. Thank you again.

Hey @dannywarren,
FYI: i've needed MIDI out for this little weekend project:
https://github.com/fashberg/XTouchMini-Davinci-Resolve-Midi-Adapter
Kind Regards
Folke

Wow, this is really cool! The whole reason I wrote this was when I was trying to use an audio control surface with a NLVE, and I bumped in to the same limitations with not being able to feed MIDI back in to the parts of apps that already speak control surfaces. So you were able to push forward where I got stuck, that's awesome.
Thank you again, looking forward to playing with the changes later.

Just FYI, I still plan to merge this in the next few days. You happened to catch me right as I was tearing my MIDI setup apart. :)

If i may bump on this one - I'm using @fashberg's branch in a project of mine and everything works fine, it would be awesome to merge this PR ! :)

If i may bump on this one - I'm using @fashberg's branch in a project of mine and everything works fine, it would be awesome to merge this PR ! :)

I was actually thinking of picking this back up this weekend, great timing!
Apologies for letting this sit so long, I've had some health issues that have slowed me down this past year, but I have my studio set up again and should be ready to validate and merge this now.
But sounds like it's in great shape and doesn't need much validation if you're also using it - so I'll err on the side of just getting it merged. Thanks!

Thanks to yo for the lib ! :)


Scroll to bottom

Hi there,
i love your script, it works really well. I use simplebar within a modal with a limited height. So, wenn i put some content dynamically to the modal, the user doesn't see it at the first time. So i want to "scroll to bottom" the simplebar.
How can i do this? I thinks thats a really good feature and hope you can help!
Thanks!

I'm now wondering exact question like you, tried few ways but not works. Hope to see a great solution!

Actually in scrollbar object has a function called scrollX, I tried but nothing happen, you can give it a try :)

@maitrungduc1410 I already try that, but it doesn't work :(

Hey guys,
You should be able to do this like so, for example:
var el = new SimpleBar(document.getElementById('myElement'));
el.getScrollElement().scrollTop(100) // for vertical scrolling

If you used SimpleBar with just data-simplebar, you can do like this:
document.querySelectorAll('#your-element').SimpleBar.getScrollElement() ...
for horizontal scrolling, you can do: el.getScrollElement('x').scrollLeft(100)

This doesn't work.
var el = new SimpleBar(document.getElementById('myElement'));
el.getScrollElement().scrollTop(100) // for vertical scrolling

Uncaught TypeError: ....getScrollElement(...).scrollTop is not a function

Needs to be
el.getScrollElement().scrollTo(0, 100);

Hey Grsmto, Thank you very much for all the effort you have put into this. I am trying to use this 'scroll to bottom' feature.. I initiate simplebar with data-simplebar , so I am trying this solution...
document.querySelectorAll('#my-element').SimpleBar.getScrollElement().scrollTop = 100;
but I get a TypeError..
some info:
#my-element    is the div that has the data-simplebar.
i use simplebar with script tag. (not a vue,angular,react app)
it is a web app built with just html,css,js,php
so far simplebar works excellent!
I would appreciate some help.
Thanks in advance.

@sotirislp I had the same problem and figured out it can bo solved using direct reference to content wrapper (element.SimpleBar and element.getScrollElement() didn't work for me -> undefined properties/function).
var container = document.querySelector('#my-element .simplebar-content-wrapper'); container.scrollTo({         top: 500,         behavior: "smooth" });

If what I wrote doesn't work it's probably because you are using v4.3.0-alpha.0  which does not have anymore the SimpleBar object attached to the DOM node.
You should do SimpleBar.instances.get(document.querySelector('#my-element)[0]) instead.
But @kgkg solution works fine otherwise.

I tried the solution you suggested and it worked for the purpose. But now that I've set scrollTop I couldn't scroll using mouse or drag he scrollbar.
I'm using simplebar-4.2.3, with angular 8. I included simplebar to my project following these instructions .

@InfantAjayVenus I'm not sure, this might come from your setup, it seems to work when I try with our CodeSandbox template here.

@sotirislp I had the same problem and figured out it can bo solved using direct reference to content wrapper (element.SimpleBar and element.getScrollElement() didn't work for me -> undefined properties/function).
var container = document.querySelector('#my-element .simplebar-content-wrapper'); container.scrollTo({ top: 500, behavior: "smooth" });

This worked for me.

@Grsmto I'm trying to scroll to the bottom with the angular wrapper as well...
I'm using the below approach - which works perfectly in a normal <div>
<ngx-simplebar>
    <div #scrollMe [scrollTop]="scrollMe.scrollHeight">
      <messages *ngFor="let message of ( transcript$ | async );></messages>
   </div>
</ngx-simplebar>

I really want the beauty of the scroll bar! Any help on this one could be greatly appreciated

For me i m using jquery for smooth scrolling with simplebar, it's very nice tool:
var element=document.getElementById('my-element').SimpleBar.getScrollElement();
element.scrollTo({ top: 0, behavior: "smooth" });
or
$(element).animate({scrollTop: 0}, "slow");
and to get the scroll position when user scrolling:
var element=document.getElementById('my-content').SimpleBar.getScrollElement();
$(element).scroll(function () {
if ($(this).scrollTop() > 100) {
// Show the Back to top element
$('.....').fadeIn();
} else {
// Hide the Back to top element
$('.....').fadeOut();
}

If anyone is using the angular wrapper I thought I would add the solution to scroll to bottom as there is not one here.
// add an Input id in your template
<ngx-simplebar #scrollMe>
// Add ()Input in your component class
@ViewChild('scrollMe')
public myScrollContainer: ElementRef;
// Then your function
scrollToBottom(): void {
this.myScrollContainer['SimpleBar'].getScrollElement().scrollTop =  this.myScrollContainer['SimpleBar'].getScrollElement().scrollHeight
}

@sotirislp I had the same problem and figured out it can bo solved using direct reference to content wrapper (element.SimpleBar and element.getScrollElement() didn't work for me -> undefined properties/function).
var container = document.querySelector('#my-element .simplebar-content-wrapper'); container.scrollTo({ top: 500, behavior: "smooth" });

Thank you thank you thank you!

For anyone using the Vue plugin this worked for me:
this.$refs.myRefName.SimpleBar.getScrollElement().scrollTop = 100

For anyone using the vue plugin today with vue3 (composition API in my example) - the Get methods appear to have disappeared, leaving simple getters in their place:
(I also use https://github.com/Grsmto/simplebar/issues/557 to be able to use simplebar + vue3)
template
  <simplebar ref="scrollable">

vue composition api (typescript)
  setup() {
    const scrollable = ref<typeof Simplebar>();
    const scrollToBottom = () => {
      if (!scrollable.value) return;
      const contentHeight = (scrollable.value.contentElement as Element).clientHeight;
      scrollable.value.scrollElement.scrollTo({
        top: contentHeight,
        behavior: "smooth",
      });
    }
    return {scrollable, scrollToBottom};
  },

Working example to find when simplebar scrollbar reaches its FULL BOTTOM height:
                            const simpleBarActive = new SimpleBar(document.getElementById('activeMessage'));
			simpleBarActive.getScrollElement().addEventListener('scroll', function () {
				var scrolledTop	= $(this).scrollTop();
				var offsetHeight = simpleBarActive.getScrollElement().offsetHeight;
				var scrollHeight = simpleBarActive.getScrollElement().scrollHeight;

				if (scrolledTop >= (scrollHeight - offsetHeight)) {
					// call your ajax function to load next data with page number etc.
				}
			});

Working example to find when simplebar scrollbar when it reaches its FULL TOP height:
			const simpleBar = new SimpleBar(document.getElementById('activeMessage'));
			simpleBar.getScrollElement().addEventListener('scroll', function () {
				var scrolledTop = ($(this).scrollTop() === 0);
				if (scrolledTop) {
					// call your ajax function to load next data with page number etc.
				}
			});

Simple approach in react:
1-Create a ref
const scrollBarRef = useRef(null);
2-Set the ref to the SimpleBar component:
<SimpleBar ref={scrollBarRef }>
3-Write these line in a function or useEffect, whatever is your need:
if (scrollBarRef.current) {
const scrollElement = scrollBarRef.current.contentWrapperEl;
scrollElement.scrollTop = scrollElement.scrollHeight;
}

vanilla js scroll bottom
let my_simplebar = SimpleBar.instances.get(document.querySelector('.my_element'));
my_simplebar.getScrollElement().scrollTop = my_simplebar.getScrollElement().scrollHeight;

Simple approach in react:
1-Create a ref const scrollBarRef = useRef(null);
2-Set the ref to the SimpleBar component: <SimpleBar ref={scrollBarRef }>
3-Write these lines in a function or useEffect, whatever is your need: if (scrollBarRef.current) { const scrollElement = scrollBarRef.current.contentWrapperEl; scrollElement.scrollTop = scrollElement.scrollHeight; }

this worked for me. Thanks.


Register InjectValidatorBundle by Default

#2432 solves #2234, but it is a bundle that has to be registered for users that want the context injection in constraint validators. The bundle doesn't appear to have any downsides (backwards compatible, no new dependencies), so I am of the mind that the bundle should be registered by default. However, no other dropwizard bundles are registered by default (does that mean this bundle can be implemented in another way?). So I think there are a couple outcomes possible:

Register the bundle by default
Keep current method of having users register the bundle
Implement the feature not via a bundle and register it by default

Thoughts?

If 3. is possible, I'd probably lean toward that.  Otherwise 1. if there are no downsides.

Hi!
As I mentioned in PR, I didn't find way to share instance of MutableValidatorFactory between initialize and run methods, that's why it's implemented as Bundle

Initially I tried to see if we could register it in AbstractServerFactory, but that lacks access to the bootstrap class.
While not my first place to fit the code, inside EnvironmentCommand::run I was able to get the following to work (eg: run the e2e injection validation test without the bundle)
         bootstrap.run(configuration, environment);
+
+        final ConstraintValidatorFactory factory = bootstrap.getValidatorFactory().getConstraintValidatorFactory();
+        if (factory instanceof MutableValidatorFactory) {
+            environment.jersey().register(new GetResourceContextFeature(context -> {
+                ConstraintValidatorFactory validatorFactory = context
+                    .getResource(InjectingConstraintValidatorFactory.class);
+
+                ((MutableValidatorFactory)factory).setValidatorFactory(validatorFactory);
+            }));
+        }
+
         application.run(configuration, environment);

@alex-shpak do you think something like could work, and make sense?

@nickbabcock Hi!
Yes, this should work. I didn't want to intrude into EnvironmentCommand.run() method since it's nice and clean now.
To make it nice I see two options:

Change Environment constructor to accept ValidatorFactory. This requires changing quite of tests code. This looks like more proper solution, but more changes. Also I'm not sure what to do with Environment.setValidator() method.
Add additional constructor for Environment that accepts ValidatorFactory and calls original constructor as well as validator logic. Like this:

public Environment(String name,
                       ObjectMapper objectMapper,
                       ValidatorFactory validatorFactory,
                       MetricRegistry metricRegistry,
                       @Nullable ClassLoader classLoader,
                       HealthCheckRegistry healthCheckRegistry) {
        this(name, objectMapper, validatorFactory.getValidator(), metricRegistry, classLoader, healthCheckRegistry);

        ConstraintValidatorFactory constraintValidatorFactory =
            validatorFactory.getConstraintValidatorFactory();

        if (constraintValidatorFactory instanceof MutableValidatorFactory) {
            jersey().register(new SetValidatorFactoryFeature(
                (MutableValidatorFactory) constraintValidatorFactory
            ));
        }

    }

    public static class SetValidatorFactoryFeature implements Feature {

        @Inject
        private ResourceContext context;

        private final MutableValidatorFactory mutableValidatorFactory;

        public SetValidatorFactoryFeature(MutableValidatorFactory mutableValidatorFactory) {
            this.mutableValidatorFactory = mutableValidatorFactory;
        }

        @Override
        public boolean configure(FeatureContext featureContext) {
            ConstraintValidatorFactory originalFactory =
                context.getResource(InjectingConstraintValidatorFactory.class);

            mutableValidatorFactory.setValidatorFactory(originalFactory);
            return true;
        }
    }

I can create PR for preferable case!

I created two PRs https://github.com/dropwizard/dropwizard/pull/2521 and https://github.com/dropwizard/dropwizard/pull/2522 to solve this, both of them works


Model Training

Hi thanks for the repo, wanted to check in with the training metrics. Currently, i am training the ProDiff Teacher model and getting the following validation results. Saw that there are a couple of metrics.
Valid results: {'total_loss': 1.4424, 'ssim': 0.199, 'l1': 0.1656, 'pdur': 0.0264, 'wdur': 0.058, 'sdur': 0.0241, 'uv': 0.685, 'f0': 0.2621, 'e': 0.0222}

Valid results: {'total_loss': 1.7038, 'ssim': 0.1944, 'l1': 0.1393, 'pdur': 0.026, 'wdur': 0.0551, 'sdur': 0.017, 'uv': 1.0061, 'f0': 0.2418, 'e': 0.024}

Valid results: {'total_loss': 1.8448, 'ssim': 0.1891, 'l1': 0.1387, 'pdur': 0.0265, 'wdur': 0.0515, 'sdur': 0.0091, 'uv': 1.1739, 'f0': 0.2328, 'e': 0.0233}

Which metrics should i note if there is an improvement over time? It seems that the total_loss is increasing?
What is a reasonable loss for finetuning? I am currently running off the checkpoints of the pre-trained model provided by you guys.
Also, noted that after training the ProDiff teacher model, i need to run the training using ProDiff yaml. Is there any chance we need to train the FastDiff model too?

Also, I am training on a dataset of 20mins if it matters.
Thanks a lot!

Hi, you may find l1 in training schedules useful to judge the learning or fine-tuning, and please do not use the metrics in validation schedules. Secondly, it would be fine to tune the fastdiff model too, which will promote the audio quality.

Hi @Rongjiehuang, I am back with some results better than the last run.
Reference Audio
Synthesized Audio
I have trained this model up to 26k steps by finetuning on your released ProDiff-Teacher model. The current L1 training loss is 0.0107. I noticed there are still artefacts in the synthesized voice compared to the reference audio. Currently, I am training on a relatively smaller dataset of around 20mins compared to ~20H for LJSpeech.
I am thinking there could be several options here:

Increase the number of training epochs
Increase dataset size
Finetune the Prodiff as well
Look into how to finetune the fastdiff model as you had mentioned

Thanks alot for releasing this repo.

@keelezibel I got the total_loss = 0! Did you also get the training loss 0?

@AIFahim no i didn't get zero for training loss. You can refer to my first screenshot. I eventually settled for PaddleSpeech TTS as I couldnt figure out how to improve the quality of the voice further. Also, there were too many dependencies on other existing projects.

@AIFahim Hi，I have encountered the same problem as you. I think there may be a problem with my data preprocessing, because I found that the dateloader is empty. Have you solved the problem yet?


feat(installer): add installer script

Description of change
This PR adds the installer script for easily installing cargo-shuttle on different platforms.
Currently, it supports:

Native installation on Arch Linux (and derivaties) via pacman
Installing via cargo-binstall (if cargo-binstall is installed)
Installing pre-built binaries from GitHub (only Linux/MacOS for now)
Installing directly via cargo install (installs cargo via rustup if it is not found)

How has this been tested? (if applicable)
On my local machine by running ./install.sh
We need to test this on MacOS as well.

Yup, it is not really needed. At first I thought we didn't have binary releases but we have so we can simply install them with this script.

ready for re-review
we also need to test this on MacOS before merge.

We should also update the readme in this repo with the fact that you can install with this script now, and we should add it to the installation guide in the docs repo. We should be clear about the fact that it doesn't work on windows yet.

@oddgrd I can make those changes. (separate PRs)