Fix CRD install problems

towards https://github.com/giantswarm/giantswarm/issues/15240
We can't use the crd-install job exactly the same as we do elsewhere because this
chart also contains CRs which use the CRDs, and helm doesn't know they're CRDs
when they're in a different directory to /crds/.
Using this method causes the following to happen.

on a fresh install of the chart

Helm creates the CRDs using its nattive method
crd-install job then also applies them, but this does nothing as they don't
change
the rest of the chart deploys successfully

on an upgrade:

Helm doesn't do anything with CRDs directly
crd-install job applies any changes

just fyi @TheoBrigitte

just fyi @TheoBrigitte

tested on a local kind cluster with the default values.yaml:
[shw ~](☸ kind-kind:prom-operator)$ kg po
NAME                                                     READY   STATUS    RESTARTS   AGE
alertmanager-prom-operator-prometheus-o-alertmanager-0   2/2     Running   0          25m
prom-operator-prometheus-o-operator-59dbc59c7d-7wlnm     1/1     Running   0          25m
prometheus-prom-operator-prometheus-o-prometheus-0       2/2     Running   1          25m
[shw ~](☸ kind-kind:prom-operator)$ kg crd
NAME                                        CREATED AT
alertmanagerconfigs.monitoring.coreos.com   2021-01-19T16:46:33Z
alertmanagers.monitoring.coreos.com         2021-01-19T16:46:33Z
podmonitors.monitoring.coreos.com           2021-01-19T16:46:33Z
probes.monitoring.coreos.com                2021-01-19T16:46:33Z
prometheuses.monitoring.coreos.com          2021-01-19T16:46:33Z
prometheusrules.monitoring.coreos.com       2021-01-19T16:46:33Z
servicemonitors.monitoring.coreos.com       2021-01-19T16:46:33Z

tested on a local kind cluster with the default values.yaml:
[shw ~](☸ kind-kind:prom-operator)$ kg po
NAME                                                     READY   STATUS    RESTARTS   AGE
alertmanager-prom-operator-prometheus-o-alertmanager-0   2/2     Running   0          25m
prom-operator-prometheus-o-operator-59dbc59c7d-7wlnm     1/1     Running   0          25m
prometheus-prom-operator-prometheus-o-prometheus-0       2/2     Running   1          25m
[shw ~](☸ kind-kind:prom-operator)$ kg crd
NAME                                        CREATED AT
alertmanagerconfigs.monitoring.coreos.com   2021-01-19T16:46:33Z
alertmanagers.monitoring.coreos.com         2021-01-19T16:46:33Z
podmonitors.monitoring.coreos.com           2021-01-19T16:46:33Z
probes.monitoring.coreos.com                2021-01-19T16:46:33Z
prometheuses.monitoring.coreos.com          2021-01-19T16:46:33Z
prometheusrules.monitoring.coreos.com       2021-01-19T16:46:33Z
servicemonitors.monitoring.coreos.com       2021-01-19T16:46:33Z

logs from the crd-install pod on first install:
+ prometheus-operator-app-crd-install-cv2kx › kubectl
prometheus-operator-app-crd-install-cv2kx kubectl + set -o nounset
prometheus-operator-app-crd-install-cv2kx kubectl + kubectl apply -f /data/
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com configured
- prometheus-operator-app-crd-install-cv2kx › kubectl
- ```

logs from the crd-install pod on first install:
+ prometheus-operator-app-crd-install-cv2kx › kubectl
prometheus-operator-app-crd-install-cv2kx kubectl + set -o nounset
prometheus-operator-app-crd-install-cv2kx kubectl + kubectl apply -f /data/
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com configured
prometheus-operator-app-crd-install-cv2kx kubectl Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
prometheus-operator-app-crd-install-cv2kx kubectl customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com configured
- prometheus-operator-app-crd-install-cv2kx › kubectl
- ```

@glitchcrab You might be interested in this https://github.com/giantswarm/giantswarm/issues/13746
I am working on it now, albeit rather slowly since I am n00b gopher. But once it's in place, it will mean that CRDs can be managed out of bounds and when installing the chart, stuff in the cards folder will be ignored.

@glitchcrab You might be interested in this https://github.com/giantswarm/giantswarm/issues/13746
I am working on it now, albeit rather slowly since I am n00b gopher. But once it's in place, it will mean that CRDs can be managed out of bounds and when installing the chart, stuff in the cards folder will be ignored.

@glitchcrab You might be interested in this giantswarm/giantswarm#13746
I am working on it now, albeit rather slowly since I am n00b gopher. But once it's in place, it will mean that CRDs can be managed out of bounds and when installing the chart, stuff in the cards folder will be ignored.

This is interesting! I had thought that another way out of this mess would be to install the CRDs as a separate chart and this would make that a lot cleaner.

@glitchcrab You might be interested in this giantswarm/giantswarm#13746
I am working on it now, albeit rather slowly since I am n00b gopher. But once it's in place, it will mean that CRDs can be managed out of bounds and when installing the chart, stuff in the cards folder will be ignored.

This is interesting! I had thought that another way out of this mess would be to install the CRDs as a separate chart and this would make that a lot cleaner.


Add support for date sensors

Formatted in the frontend:

More info shows exact value:

Raw:

No issues found, thank you!


format license to be recognized by GitHub

This PR updates the both CC licenses to be properly formatted and correctly identified by GitHub.
In my updated fork it shows it as CC:  https://github.com/Shegox/btp-business-application-studio/blob/main/LICENSE
In the upstream repo it doesn't show up as CC:  https://github.com/SAP-docs/btp-business-application-studio/blob/main/LICENSE
(Similiar to https://github.com/SAP-docs/contribution-guidelines/commit/c6916ac8da53dd65d6b7fceaea5dfdf950e654f0)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

🚨 Hi there. It looks like you've included some files in this pull request that we can't accept in a contribution. Only actual documentation content, which is managed in the docs directory, is open for contribution.
The disallowed files that you submitted are:
LICENSE LICENSES/CC-BY-4.0.txt.
You'll need to revert all of the files you changed in that list using GitHub Desktop or git checkout origin/main <filename>. Once you get those files reverted, we can continue with the review process.

🚨 Hi there. It looks like you've included some files in this pull request that we can't accept in a contribution. Only actual documentation content, which is managed in the docs directory, is open for contribution.
The disallowed files that you submitted are:
LICENSE LICENSES/CC-BY-4.0.txt.
You'll need to revert all of the files you changed in that list using GitHub Desktop or git checkout origin/main <filename>. Once you get those files reverted, we can continue with the review process.


[Rancher2] Review docs related to monitoring and logging for areas to improve

cc @leodotcloud @spgardiner

Related PR in review to enhance monitoring V2 docs: #3775

Addressed via #3775


Add 009-WE3-Lab

Add relevant contents relating to latest community spotlight.

Will raise a PR regarding the same (can be assigned).

Fixed via #14


refactor(sampledecryptdec): delete av_assert0

Signed-off-by: pingkai<EMAIL_ADDRESS>

Codecov Report

Merging #334 into develop will increase coverage by 0.06%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           develop     #334      +/-   ##
===========================================
+ Coverage    66.37%   66.44%   +0.06%
===========================================
  Files          212      212
  Lines        11542    11544       +2
===========================================
+ Hits          7661     7670       +9
+ Misses        3881     3874       -7

Impacted Files
Coverage Δ

...mework/demuxer/sample_decrypt/ISampleDecrypt2c.cpp
0.00% <ø> (ø)

...ramework/demuxer/sample_decrypt/sampleDecryptDec.c
0.00% <0.00%> (ø)

mediaPlayer/media_packet_queue.cpp
74.40% <0.00%> (-10.40%)
:arrow_down:

framework/demuxer/play_list/SegmentList.cpp
87.71% <0.00%> (-8.78%)
:arrow_down:

mediaPlayer/buffer_controller.cpp
50.00% <0.00%> (-5.09%)
:arrow_down:

mediaPlayer/player_msg_control.cpp
76.98% <0.00%> (-0.80%)
:arrow_down:

mediaPlayer/SuperMediaPlayer.cpp
74.06% <0.00%> (-0.18%)
:arrow_down:

framework/demuxer/play_list/HLSStream.cpp
69.53% <0.00%> (+0.52%)
:arrow_up:

mediaPlayer/MediaPlayer.cpp
70.24% <0.00%> (+1.23%)
:arrow_up:

mediaPlayer/subTitle/subTitleSource.cpp
85.71% <0.00%> (+2.38%)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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


Update error handling for existing user error

Updates the message presented to users attempting to change an email address to an email that already exists as another account in the system. Also updates error presentation handling to allow the error to be dismissed and to re-set the error message when changing upload target.
Trello: https://trello.com/c/7HVJ9gUH

 [BUG] Uploader not handling the "user already exists" error

Tagging @cbwebdevelopment for review again as it's React/Redux.


Auto-completion of java in zsh is extremely slow

hello!
when I need to use java command run a class file,  the auto-completion of zsh is  slow extremely.
such as  when I inputed java Tes and pressed tab to auto-completion rest part assume there are have Test.class in current direction.

That's because zsh's java completion looks for any .class file in your $CLASSPATH, which is normally your current working directory. That means that it will look for .class files in any subdirectory, and if you have many directories it'll take time.
See this example:
$ mkdir -p tech/ohmyzsh/src
$ touch tech/ohmyzsh/src/Main.class tech.class
$ java te[TAB]
tech.ohmyzsh.src.Main  test

There is nothing we can do at OMZ, this is a problem in zsh's official completion.


typo: Double "that"

@nschonni : Thanks for your contribution! The author, @bandersmsft, has been notified to review your proposed change.

@nschonni Thanks a bunch for catching this error!
#sign-off


Legion: Reduction with non-POD type fails

When a reduction is defined for a non-POD type, the initialization done here
https://github.com/StanfordLegion/legion/blob/6732fb6f61a631348c2ed7cd1317af444779b3b7/runtime/realm/redop.h#L185
fails. The copy initialization fails because the value at rhs_ptr may not be a properly initialized value when the assignment is done. As a workaround (but not a great solution), inserting the statement
::new(rhs_ptr) typename REDOP::RHS;
inside the loop, before the assignment, fixes the issue in my code.

Can you give me a little more code around this statement so I can see what some of the types are? Is 'rhs_ptr' a C pointer or some other Legion type?

In my case the REDOP::RHS has type std::vector<>, so rhs_ptr has type std::vector<>*. The vector elements have a non-POD generic type, as well, but REDOP::identity is simply an empty vector.

Ok, where did 'rhs_ptr' come from then? Did you get it out of a region in some way or did you declare it yourself?

It's from a region: a field over which the code is doing a reduction (to merge sorted vectors). There are no uninitialized values in the regions when the task is launched.

When you say a reduction, do you mean with Legion 'REDUCE' privileges, or are you using 'READ_WRITE' and doing the reduction yourself? Also, what is writing the field previously?

The region has a single field and one value in the index space; it is initialized using 'WRITE_DISCARD' privileges. The task that has initialized that region then launches an index space task over another region, with 'READ_ONLY' privileges on the second region, and 'REDUCE' privileges on the first (single element) region.Basically, all the values in the 'READ_ONLY' region are being transformed and combined into a single value in the 'REDUCE' region. Does that make sense?

So the problem is inside the task with 'REDUCE' privileges on the region with just a single element? How did you make your reduction operator? Did you remember to provide a SerdezInitFnptr and SerdezFoldFnptr when you registered the reduction operator since it's going to be used with a serdez field?
https://gitlab.com/StanfordLegion/legion/blob/master/runtime/legion.h#L6857-6876
Also, I would strongly recommend not making regions of just one element. Much better to return the vector by wrapping it in an enclosing type and hooking the three methods for serializing and deserializing non-trivial types that are returned from tasks:
https://gitlab.com/StanfordLegion/legion/blob/master/runtime/legion.h#L7475-7477

I used the generic version of register_reduction_op function https://gitlab.com/StanfordLegion/legion/blob/master/runtime/legion.h#L6854-6855
with a REDOP type that defines apply, fold and identity. I'm not sure that I understand the arguments to the register_reduction_op() function that you quoted. Is there an example of its use in the source tree somewhere?
Looking at the legion.inl file here https://gitlab.com/StanfordLegion/legion/blob/master/runtime/legion/legion.inl#L8758-8759 has got me wondering about the serdez_redop_* functions and whether I should be calling some such function.
As for your recommendation that I not use a region of one element, are you suggesting that I might be better off doing this reduction "manually" by iterating over the values in the input region?
Thanks for your help, Mike. It is quite likely that I'm missing something important, and I appreciate you having a look at this and helping me sort it out.

Yes, that templated version should also have the optional 'init_fnptr' and 'fold_fnptr' for serdez redop functions. There's not an example of this yet because I think you're the first one to attempt to perform a reduction on a field that is a serdez field. When I was implementing serdez fields I realized they would have this interaction with reductions which is why this interface exists, but it isn't really documented (it's the kind of detail that will be in the Legion manual when @alexaiken finishes writing it). The 'init_fnptr' and 'fold_fnptr' are the functions that the runtime should call to "initialize" and "fold" values for reductions on serdez fields. We can't really synthesize them for you because the serdez part is custom to your application. Here are the types for the functions:
https://gitlab.com/StanfordLegion/legion/blob/master/runtime/legion/legion_types.h#L1615-1617
Effectively you're implementing the same methods that the runtime would normally synthesize for reduction operators, but just custom to any serdez stuff you want to do. If that's not enough detail let me know and I'll try to has it out some more.

As for your recommendation that I not use a region of one element, are you suggesting that I might be better off doing this reduction "manually" by iterating over the values in the input region?

Yes, effectively I think you can iterate over the input region (or sub-region) in each task and produce a single value that you return as a future. If you do an index space launch you can also have the runtime apply the reduction operation across the futures as well so that you produce a single future output for an entire index space task launch.

On Tue, 16 Apr 2019 at 09:25, Mike Bauer wrote:

Yes, that templated version should also have the optional
'init_fnptr' and 'fold_fnptr' for serdez redop functions.
There's not an example of this yet because I think you're the
first one to attempt to perform a reduction on a field that is a
serdez field. When I was implementing serdez fields I realized
they would have this interaction with reductions which is why
this interface exists, but it isn't really documented (it's the
kind of detail that will be in the Legion manual when @alexaiken
finishes writing it). The 'init_fnptr' and 'fold_fnptr' are the
functions that the runtime should call to "initialize" and
"fold" values for reductions on serdez fields. We can't really
synthesize them for you because the serdez part is custom to
your application. Here are the types for the functions:
https://gitlab.com/StanfordLegion/legion/blob/master/runtime/legion/legion_types.h#L1615-1617
Effectively you're implementing the same methods that the
runtime would normally synthesize for reduction operators, but
just custom to any serdez stuff you want to do. If that's not
enough detail let me know and I'll try to has it out some more.

OK, I have now changed to using the register_reduction_op()
function with the additional arguments. Something like the
following:
Legion::Runtime::register_reduction_op(
REDOP_ID,
Realm::ReductionOpUntyped::create_reduction_op(),
REDOP::init_fn,
REDOP::fold_fn);
where REDOP is a struct type conforming to a ReductionOp as given
in redop.h, with the addition of two static functions, init_fn and
fold_fn. The implementations of init_fn and fold_fn are my best
guess as to what's expected, based on my review of code in
legion_tasks.cc. Not sure about the second argument, but it seemed
the way to create a ReductionOp*. Nevertheless, with these changes
to my test code the program still crashes as before. The stack
trace shows that
Legion::Internal::InstanceBuilder::create_physical_instance() is
calling Realm::ReductionOp::init(), which is where the
problem occurs. Changing the implementation of the init() function
as I noted previously still fixes the crash.

As for your recommendation that I not use a region of one
element, are you suggesting that I might be better off doing
this reduction "manually" by iterating over the values in the
input region?

Yes, effectively I think you can iterate over the input region
(or sub-region) in each task and produce a single value that you
return as a future. If you do an index space launch you can also
have the runtime apply the reduction operation across the
futures as well so that you produce a single future output for
an entire index space task launch.

I had not noticed that function before. I will definitely try it
out.
Thanks again.
--
Martin

On Tue, 16 Apr 2019 at 15:26, Martin Pokorny wrote:

On Tue, 16 Apr 2019 at 09:25, Mike Bauer wrote:

As for your recommendation that I not use a region of one
element, are you
suggesting that I might be better off doing this reduction
"manually" by
iterating over the values in the input region?

Yes, effectively I think you can iterate over the input region
(or sub-region)
in each task and produce a single value that you return as a
future. If you do
an index space launch you can also have the runtime apply the
reduction
operation across the futures as well so that you produce a
single future
output for an entire index space task launch.

I had not noticed that function before. I will definitely try it
out.

With the change in my code to use execute_index_space() with a
reduction operation, this issue (if it may be called such) no
longer affects me at this time. Mike, if you're convinced that the
original issue is one of user error, I wouldn't mind if you
decided to close it.
--
Martin

Ok, sounds good. I think if you had implemented the init_fnptr and fold_fnptr methods for your serdez field with reduction it would have worked fine. I'm going to close this issue now.


tuneBR diag tool pull request

It's an  "easy and quick" application of a' posteriori diagnosis
and tuning for B and R variances and based on the method of
"covariance of residuals in observation space

.None

This is a first "stable" version of tuneBR. Still running with Mandalay
A work to make it reading data directly from ODB1 is on going  !


try increasing pytest version to see if it fixes build issue

Codecov Report

Merging #277 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #277   +/-   ##
=======================================
  Coverage   22.89%   22.89%
=======================================
  Files          21       21
  Lines         760      760
=======================================
  Hits          174      174
  Misses        586      586

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 9855f24...c110aaa. Read the comment docs.


[Error] Class constructor Record cannot be invoked without 'new'

Hi, i tried to use your lib in my angular4(ts) project. And I faced problem.
I defined my model as
import Record from 'dataclass';

export default class User extends Record<User> {
  id: number = 0;
  firstName: string = '';
  lastName: string = '';
  email: string = '';
  username: string = '';
}

And trying to use it this way
import User from '../models/User';

let user = new User(action.payload.session.user);

And getting
TypeError: Class constructor Record cannot be invoked without 'new' at new User

Hi @DevilsNightsix. Thank you for you submission.
Unfortunately, I wasn't able to reproduce your case. What's the TypeScript version do you use?
I've encountered the issue with module exports and will try to fix it asap.

@DevilsNightsix, I've published v1.0.1 with a small fix for modules interoperability. You can try to use it.

Besides TypeScript version, what are the module and target configurations do you use?

@alexeyraspopov My configuration is module: "es2015", target: 'es5' and typescript version is 2.3.3

Will try to create additional tests for TypeScript to prevent such cases.
Thanks for reporting.


Morning sessions code review

Hello Victor,
I want to tell you that your code is amazingly well organized and very clean. It's great to see the amount of work that you have dedicated to your learning process 🥇 Now, as a way of improving the only thing that I have to say to you is that when you choose a name for a variable try to name it with a semantic value so that other people, and even you in the future, can read and understand the purpose and the content of your variables in an easier way.

Thanks for your review. I will definitely follow your advice.


Tidy up OAV devices and grid plan

Some OAV device namings are confusing, e.g.:

[x] MJPG is called "snapshot"
[x] inconsistent use of input_plugin_pv and input_pv (maybe areadetector plugins should be a class...)
[x] chain plugins generically or at least in a consistent way
[ ] structure of snapshot/snapshotwithgrid etc needs cleaning
[x] top_left_x_signal etc. in snapshot device classes - add clarity that this refers to grid and remove redundant "signal"
[x] take arguments for grid size, margin, # of boxes (eventually to come from json)
[ ] deal with grid with no pin at zoom 0
[ ] maybe average edge detection for stability, also maybe make sure rounding is correct so grid always extends to the edge of the sample
[x] add backlight manipulation
[x] oav_centring_plan should be in experiment_plans rather than device_setup_plans

also:

[ ] look at bluesky visualisation options for live debugging

Spin out tickets to address the above that have not been addressed:

https://github.com/DiamondLightSource/dodal/issues/50
deal with grid with no pin at zoom 0 - this seems like a way off, and will probably fall out of https://github.com/DiamondLightSource/python-artemis/issues/499
 maybe average edge detection for stability, also maybe make sure rounding is correct so grid always extends to the edge of the sample - after tests on the beamline I think this was not much of an issue, we should get this on the beamline working and open a new issue if stability/accuracy become issues
look at bluesky visualisation options for live debugging - can't remember what we exactly wanted to do with this, can pick it up if it's useful later


Difference between picotron and nanotron

What is the difference between picotron and nanotron? Why huggingface team rolled out two hybrid-parallelism framework?

IMO, Picotron is primarily for educational purposes, helping people quickly get familiar with all the techniques in distributed training. Picotron supports fewer features to keep it simple and easy to understand


OOPS IN C++
Feature Description
The feature involves adding a comprehensive implementation of Object-Oriented Programming (OOP) concepts in C++ within the algorithm repository. This implementation will include a series of code examples and explanations that demonstrate the fundamental principles of OOP, allowing users to learn how to leverage these concepts effectively in their programming projects.
Key Components of the Feature:
Classes and Objects:
Description: A class serves as a blueprint for creating objects, encapsulating data for the object and methods to manipulate that data.
Example: A class Car might have attributes like make, model, and year, along with methods like start() and stop().
Benefit: This encapsulation allows for organized and modular code, making it easier to manage complex systems.
Encapsulation:
Description: Encapsulation restricts direct access to some of an object's components, which can prevent the accidental modification of data. It is achieved through access specifiers (public, private, protected).
Example: Using private access for sensitive attributes in a BankAccount class ensures that they can only be modified through specific methods, like deposit() or withdraw().
Benefit: This improves data integrity and security, promoting better software design practices.
Inheritance:
Description: Inheritance allows a class (derived class) to inherit attributes and methods from another class (base class), facilitating code reusability.
Example: A class ElectricCar can inherit from Car, adding attributes specific to electric vehicles, such as batteryCapacity.
Benefit: This reduces code duplication and makes it easier to create specialized classes that build upon existing functionality.
Polymorphism:
Description: Polymorphism enables methods to do different things based on the object that it is acting upon. It includes method overloading (compile-time) and method overriding (runtime).
Example: A method display() in a base class can be overridden in derived classes (Car, Truck, etc.) to provide class-specific behavior.
Benefit: This flexibility allows for the implementation of dynamic behavior, making code more adaptable and extensible.
Abstraction:
Description: Abstraction involves hiding complex implementation details and showing only the essential features of the object. This is typically achieved using abstract classes and interfaces.
Example: An abstract class Shape can define a method draw(), which must be implemented by derived classes like Circle and Square.
Benefit: This promotes cleaner interfaces and a clearer separation between implementation and interface, making code easier to understand and maintain.
Motivation
Many algorithms and data structures are best understood through the lens of OOP. Adding OOP examples allows users to see how these concepts can be applied in a real-world context, bridging the gap between theory and practice. This practical application helps reinforce the learning of both algorithms and OOP.
Documentation and Tutorials:
Write detailed documentation and tutorials explaining each OOP concept. Include code snippets and comments to enhance understanding. Use Markdown files for clarity.
Leverage Libraries:
Utilize C++ libraries that support OOP concepts. For instance:
Boost: Provides extensive libraries that facilitate OOP implementations.
Qt: A framework for building GUI applications that employs OOP principles extensively.
Does this feature require additional resources?

[X] Additional Documentation
[ ] Third-Party Libraries
[ ] UI/UX Design
[ ] Other

References (Optional)
No response

Ok i will start working on this issue.


Fix equals method in VarnodeAST

This fixes the error in the equals method of VarnodeAST discussed in issue #676.

Ah yes, you are correct.  I added the change, thank you!


Template doesn't work

Hi,
With the new version files.template does'n work now on localhost... Empty file is rendered..
Regards

@gdoumenc I just tested and it's working for me - could you paste a log of the command/output you're running? Thanks :)

Sorry for this too quick description.. But this issue make us a lot af troubles... ;)
Here is the code :
files.template(
    {"Move application code"},
    "files/uwsgi/application.py", "/usr/src/app/application.py",
    user="www-data", group="ubuntu", mode=664,
    sudo=True
)

And here are the logs (I don't see the source file somewhere...)  :
ubuntu@ip-172-31-47-241:~$ pyinfra @local ./packer/deploy.py

### Welcome to pyinfra

--> Loading config...
--> Loading inventory...
--> Connecting to hosts...
    [@local] Connected

--> Preparing operations...
    Pushing hash into operation order (host=@local, names={'Move application code'}): 62914d718cf5cadb9d50f55b99e27fa3b95c2348
DEBUG:pyinfra:Pushing hash into operation order (host=@local, names={'Move application code'}): 62914d718cf5cadb9d50f55b99e27fa3b95c2348
    Getting fact: file (ensure_hosts: (@local,))
DEBUG:pyinfra:Getting fact: file (ensure_hosts: (@local,))
    Building command (sudo: True): ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
    Loaded fact file: ('/usr/src/app/application.py',)
DEBUG:pyinfra:Loaded fact file: ('/usr/src/app/application.py',)
    Failing hosts:
DEBUG:pyinfra:Failing hosts:
    Getting fact: sha1_file (ensure_hosts: (@local,))
DEBUG:pyinfra:Getting fact: sha1_file (ensure_hosts: (@local,))
    Building command (sudo: True): sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
    Loaded fact sha1_file: ('/usr/src/app/application.py',)
DEBUG:pyinfra:Loaded fact sha1_file: ('/usr/src/app/application.py',)
    Failing hosts:
DEBUG:pyinfra:Failing hosts:
    [@local]  Ready: ./packer/deploy.py
INFO:pyinfra:[@local]  Ready: ./packer/deploy.py

--> Proposed changes:
    Ungrouped:
INFO:pyinfra:Ungrouped:
    [@local]   Operations: 1   Commands: 3
INFO:pyinfra:[@local]   Operations: 1   Commands: 3

--> Beginning operation run...
--> Starting operation: Move application code
INFO:pyinfra:--> Starting operation: Move application code
    Starting operation Move application code on @local
DEBUG:pyinfra:Starting operation Move application code on @local
    Building command (sudo: True): cp /tmp/tmp41hjy50r /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): cp /tmp/tmp41hjy50r /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'cp /tmp/tmp41hjy50r /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'cp /tmp/tmp41hjy50r /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
    Building command (sudo: True): chown www-data:ubuntu /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): chown www-data:ubuntu /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'chown www-data:ubuntu /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'chown www-data:ubuntu /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
    Building command (sudo: True): chmod 664 /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): chmod 664 /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'chmod 664 /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'chmod 664 /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
    [@local] Success
INFO:pyinfra:[@local] Success
    Failing hosts:
DEBUG:pyinfra:Failing hosts:

--> Results:
    Ungrouped:
INFO:pyinfra:Ungrouped:
    [@local]   Successful: 1   Errors: 0   Commands: 3/3
INFO:pyinfra:[@local]   Successful: 1   Errors: 0   Commands: 3/3

<-- Thank you, goodbye

@gdoumenc no worries! I can see pyinfra doing the file copy and chown/etc in the logs:
Starting operation Move application code on @local
    Building command (sudo: True): cp /tmp/tmp41hjy50r /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'cp /tmp/tmp41hjy50r /usr/src/app/application.py'
...
    Building command (sudo: True): chown www-data:ubuntu /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'chown www-data:ubuntu /usr/src/app/application.py'
...
    Building command (sudo: True): chmod 664 /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'chmod 664 /usr/src/app/application.py'
...
    [@local] Success

What should happen is the template is generated to the tempfile (/tmp/tmp41hjy50r in this case) and then copied and ownership/mode applied, which all looks OK.
I recreated the files.template call above in a fresh Ubuntu 16 VM with pyinfra==0.6 and the template is copied and rendered correctly.
Could you run the files.template call only with --dry --debug-state and paste the output here? I can't figure out why this is happening!

My point is that I don't see  the template generation... After it is ok but not the template generation..
̀̀`
ubuntu@ip-172-31-47-241:~$ pyinfra --dry --debug-state @local ./packer/deploy.py
Welcome to pyinfra
--> Loading config...
--> Loading inventory...
--> Connecting to hosts...
[@local] Connected
--> Preparing operations...
Pushing hash into operation order (host=@local, names={'Move application code'}): 62914d718cf5cadb9d50f55b99e27fa3b95c2348
DEBUG:pyinfra:Pushing hash into operation order (host=@local, names={'Move application code'}): 62914d718cf5cadb9d50f55b99e27fa3b95c2348
Getting fact: file (ensure_hosts: (@local,))
DEBUG:pyinfra:Getting fact: file (ensure_hosts: (@local,))
Building command (sudo: True): ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'ls -ld --time-style=long-iso /usr/src/app/application.py || ls -ldT /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
Loaded fact file: ('/usr/src/app/application.py',)
DEBUG:pyinfra:Loaded fact file: ('/usr/src/app/application.py',)
Failing hosts:
DEBUG:pyinfra:Failing hosts:
Getting fact: sha1_file (ensure_hosts: (@local,))
DEBUG:pyinfra:Getting fact: sha1_file (ensure_hosts: (@local,))
Building command (sudo: True): sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py
DEBUG:pyinfra:Building command (sudo: True): sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py
--> Running command on localhost: sudo -H sh -c 'sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py'
DEBUG:pyinfra:--> Running command on localhost: sudo -H sh -c 'sha1sum /usr/src/app/application.py || sha1 /usr/src/app/application.py'
--> Waiting for exit status...
DEBUG:pyinfra:--> Waiting for exit status...
--> Command exit status: 0
DEBUG:pyinfra:--> Command exit status: 0
Loaded fact sha1_file: ('/usr/src/app/application.py',)
DEBUG:pyinfra:Loaded fact sha1_file: ('/usr/src/app/application.py',)
Failing hosts:
DEBUG:pyinfra:Failing hosts:
[@local]  Ready: ./packer/deploy.py
INFO:pyinfra:[@local]  Ready: ./packer/deploy.py
--> Proposed changes:
Ungrouped:
INFO:pyinfra:Ungrouped:
[@local]   Operations: 1   Commands: 3
INFO:pyinfra:[@local]   Operations: 1   Commands: 3
--> Gathered facts:
{
"@local": {},
"3a0e00964bfe04030b65330fe880686aa70cb7b3": {
"@local": {
"mode": 664,
"user": "www-data",
"group": "ubuntu",
"size": "801",
"mtime": "2018-02-16T19:29:00"
}
},
"6645a0d09c735f9f631d99da46a0762eaa0df7fe": {
"@local": "6455ebb4a3b53302300617d456210a2d5d5af565"
}
}
--> Proposed operations:
{
"@local": {
"62914d718cf5cadb9d50f55b99e27fa3b95c2348": {
"commands": [
[
"File: ./packer/files/uwsgi/application.py",
"/usr/src/app/application.py"
],
"chown www-data:ubuntu /usr/src/app/application.py",
"chmod 664 /usr/src/app/application.py"
]
}
}
}
--> Operation meta:
{
"62914d718cf5cadb9d50f55b99e27fa3b95c2348": {
"names": [
"Move application code"
],
"args": [],
"env": {},
"hosts": null,
"when": true,
"sudo": true,
"sudo_user": null,
"su_user": null,
"preserve_sudo_env": false,
"ignore_errors": false,
"timeout": null,
"get_pty": false,
"serial": false,
"run_once": false,
"parallel": null,
"on_success": null,
"on_error": null,
"op": null
}
}
--> Operation order:
[
"62914d718cf5cadb9d50f55b99e27fa3b95c2348"
]
<-- Thank you, goodbye
̀̀`

If you remove the follwing line it don't get the same trace... But no more working..
    #output_file.name = template_filename

--> Proposed operations:
{
    "@local": {
        "62914d718cf5cadb9d50f55b99e27fa3b95c2348": {
            "commands": [
                [
                    "In memory file: # WSGI Handler sample configuration file.\n#\n\nimport odoo\n\nodoo.multi_process = False  # In case of True odoo.evented should be set to True\n\n# Equivalent of --load command-line option\nodoo.conf.server_wide_modules = ['web']\nconf = odoo.tools.config\n\nconf['admin_passwd'] = 'dG56hmFR'\n\nconf['db_host'] = 'postgres.fpr-coworks.com'\nconf['db_port'] = False\nconf['db_user'] = 'kool'\nconf['db_password'] = '2wY7H9cUS8iEjza86Z62gmVUtj8qD75H'\n\nconf['dbfilter'] = 'odoo-briteheart'\n\nconf['data_dir'] = '/var/lib/odoo'\nconf['addons_path'] = '/var/lib/odoo/addons,/usr/src/odoo/addons,/usr/src/app/addons'\n\nconf['logfile'] = '/var/log/odoo/odoo.log'\nconf['log_handler'] = [':DEBUG']\nconf['log_level'] = 'debug'\n\napplication = odoo.service.wsgi_server.application\n\nodoo.service.server.load_server_wide_modules()\n",
                    "/usr/src/app/application.py"
                ],
                "chown www-data:ubuntu /usr/src/app/application.py",
                "chmod 664 /usr/src/app/application.py"
            ]
        }
    }
}

@gdoumenc so the file is getting correctly generated into a StringIO; meaning the problem is happening somewhere at the temporary write stage here.
Would you mind trying creating a tempfile as above and writing to it in a Python process; just to check that works? I'm all out of ideas :/

Found the issue : On python3.6 the StringIO position seems to be at end by default...
To fix the issue add the seek call
        with open(temp_filename, 'wb') as temp_f:
            filename_or_io.seek(0)
            data = filename_or_io.read()

To my opinion, the seek should be called on IOString creation not when using it..

@gdoumenc this should now be fixed @ https://github.com/Fizzadar/pyinfra/commit/48c46677c51d873b196d8101fca3a7385169a58e
I also agree that ideally the seek would be called on creation - however the StringIO object might get read (for debug output/etc) before the upload is initiated, so it's safer to call the seek just before use in get_file_io.
About to release this as 0.6.1 :)


Fixing issue #4, where the absence of a folder would crash the program

This PR fixes a small crash on the program that stopped me for some time while I was testing it for the first time. Please see #4.

Thanks for fixing this!


Links to values and type aliases with the same name point to type aliases only

Search terms
type aliases same name values link anchor
Expected Behavior
Having this example TypeDoc generates documentation for value and type.
// index.ts
export const Value = 2;
export type Value = 2;

And then it should generate links to them which are different.
For example: /docs/modules.html#Value.value and /docs/modules.html#Value.type
Actual Behavior
TypeDoc generates the same link for both which is /docs/modules.html#Value.value and thus points only to type alias which appears first on the page.
Steps to reproduce the bug

Paste the contents of example into file called index.ts.
Run

typedoc index.ts

Environment

Typedoc version: 0.22.10
TypeScript version: 4.5.4
Node.js version: 16.13.0
OS: Ubuntu 20.04 in WSL2

I thought I fixed this like a year ago... that's annoying.


Charging Data cannot be changed

Hi,
tried to change the information in dynamicCircuitCurrentPX, which was not successful.
Every change was written to to the value in the datapoint and after some seconds it's automatically changed back to the earlier one.
I'm using Adapter-Version 1.06 with NPM 8.11.0 and NodeJS 16.5.1

Check "Help" Section here https://github.com/Newan/ioBroker.easee
dynamicCircuitCurrentPX -> All phases must be set within 500ms (script) otherwise the phase will be set to 0.


General Improvements

Updating to .net8
Code cleaning up and improving error messages
Code improvement on IpHandler

@TheLe0 will be required update the pipeline to supporte .net 8


Add a validation variant to ParseError

As requested, return ParseError from Address<NetworkUnchecked>::require_network.

Patch 1: Preparatory refactor
Patch 2: Add the variant.

Replaces #2593.
Close: #2507

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

1 of 11 (9.09%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 83.811%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bitcoin/src/address/mod.rs
1
2
50.0%

bitcoin/src/address/error.rs
0
9
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
19750

Relevant Lines:
23565

💛  - Coveralls

Please BDFL this in, justified by:

This is error code only
The error stuff is nuanced as all hell and relies on loads of discussion in loads of places, no one other than @apoelstra, @kixunil, and myself can reasonable by expected to remember this weeks current policy
Error stuff is v1.0 stuff, we can iterate on it.
Error stuff is not interesting to anyone else, its unreasonable to make other devs review it and expect them to  be accountable

We'll let this sit over the weekend so that we get a full week (7 days) and then sure.
But only because @Kixunil is away/busy right now and because we have an impending release. And there aren't really any other second reviewers who'd want to touch the error APIs.

hmm, while I totally think this should be BDFL'd in, given that I just raised #2627 it seems un-ethical to go through the dance of having explicit carve-out rules then say "please just BDFL this in". I re-tract my request. This can either just wait another 10 days and go in by the one ack carve-out or get a second ack. Thanks.

Lol, thanks for the second ACK, but we need a rebase now after #2481 (which in fairness, was a big PR that we should all be happy to have gotten in).

Now with extended rustdoc examples/tests - please say if I've gone too far.

I believe we will face a similar problem with other error changes too. Whenever there is a 3 level hierarchy of errors, we will have this issue.

I haven't hit any other problems as yet and I've tested all the crates upto and including bdk. Also we have these nested errors already in v0.31.0 with no problems. I think address parsing is a special case.

Can we flatten all errors and having a single bitcoin::Error and other child errors.

We have spent the last several months undoing this sort of structure. If we had a single error this increases compile times/sizes (because now every single error structure is compiled for every single project regardless of how many functions are actually used) (this is one of many compile-size problems in rust-miniscript). But more importantly, the result would be functions returning error types that have variants that the functions can't actually return. Then users can't match on the errors without a bunch of unreachable! cases and the user has no way to tell if those cases might become reachable in the future.

the result would be functions returning error types that have variants that the functions can't actually return
@apoelstra

I think the issue here was that because of having 2 level nesting users require an explicit Error::from to convert to a top level error.
In my suggestion, all our APIs only return the variants that are reachable from the function. But there is only one top level error that has variants which are child errors. In this particular scenario, there would not be any ParseError that contains ValidationError, there would just be bitcoin::Error which are two variants ParseError(ParseError) and NetworkValidationError(NetworkValidationError). In other words, the error tree would be tree of depth 1, and leaf errors that are exhaustive variants function covering only the reacable parts.

It's not clear to me in what situations bitcoin::Error would be useful then, since it wouldn't be returned directly from any functions, and if users tried to return it from their own functions they'd be limited to only calling rust-bitcoin methods in those functions.
We have such a mega-error structure in rust-miniscript (actually it's not so clean, but it's conceptually close) and I'd like to remove it.

It's not clear to me in what situations bitcoin::Error would be useful then, since it wouldn't be returned directly from any functions, and if users tried to return it from their own functions they'd be limited to only calling rust-bitcoin methods in those functions.

It just serves as a mega error which ? goes into. Calling ? on any leaf error would go into catch all bitcoin::Error. Users who call several rust-bitcoin APIs in a function can have a return type Result<_, bitcoin::Error> and ? should just work without any ugly Froms

I don't feel strongly about this. I don't feel it is a large overhead to transform the errors in parent functions. Slightly unhappy about the special case in this PR, but I can live with this.

The special-case here is because require_network is morally part of the parsing pipeline, but we can't directly put it as part of parsing because the serde and FromStr APIs are not flexible enough.
Agreed it's not great, but I think the ugliness here is that there's a split at all between the parsing methods and the network-validation methods, rather than that these two methods return the same error type.


Added support for tracking multiple cycles.

Adds the possibility to track two more cycles with the overhead number overlay.

Good job, a lot better than your first pr. I still made some changes, including changing a lot of the implementation since it had some wonky positioning and it also didn't work when "Tick Count" was set to 1. You can look at my commit to see what I did.
Can you help me: Test the current state of the repo with my changes and see if anything is broken. I did test it roughly and didn't see anything but it would be nice if you could too
And after that let me know if it works for you or if there are any bugs and if not then I'll merge it

Thank you very much ! I tested it and it works well for me. I did a couple raids with it and the behaviour was as I expected.


Teams meeting integration in my application

I want to integrate Microsoft team meeting functionality with video calling in my android application.
Please suggest me for the same.
Thanks,
Hitarth Joshi

@SapphireHitarth , Can you describe your use case in brief? This will help us to give practical solution

@SapphireHitarth , Can you describe your use case in brief? This will help us to give practical solution


minor clean-ups

I did not plan for this little clean-up and minor refactor actually. I saw that the build was failing so decided to look in the integration test, thus this PR. @ryanjbaxter wdyt?

Circleci is still failing with the same issue.  Its weird because Jenkins and Github dont have this issue.


Improve visibility of Actions button in Advanced import settings dialog

This is more of a bandaid than a real fix, but I don't know how else we could improve visibility of this button. Moving the button to the bottom could be confusing, but maybe it's still better than having it tucked in the top-left corner.
Also, the padding within the button seems wrong but I don't know why.
Preview
Before

After

This is fine as a band aid, but we really need to improve the theming of MenuButton overall in the editor theme (and possibly the default theme, didn't check how it looks like there). I've been complaining about this for years, I'm surprised we haven't solved this yet in the theme - there's no way a Label with a text ending with "..." can be universally understood as a drop-down list button.

Thanks!

The button doesn't look quite right on my system:


Fix UI

Merge conflicts because of prettier linter and I replaced a lot of react bootstrap elements using shadcn

tried to resolve merge conflicts! hopefully this works. good job keerthana.


How to initialise it as empty ? to get it as not scheduled ?

This is intentional. I'm not sure exactly what you're asking for here.


Add scheduling strategy to execute latest slot only

@manuel is it possible to add scheduling strategy that will run only the latest of ready slots and will not run the rest? This would be really useful for jobs that do not use slot datetime for data selection, like Conflux. Currently, after the failure, we have a lot of ready slots, while, in fact, only the latest is needed to resume normal operation.
Thank you.

@ashf72 Yes, this is quite easy to do. I'll keep you posted.


feat(fix issue 1171): copy snippet

Related Issue
Issue No. #1171

[X] I am a GSSOC contributor.

On clicking code will copy
Description
On clicking code will be copy

Screenshots
https://github.com/vaibhav-xt/ProjectsHut/assets/90946899/bfcef7bc-0fed-4115-9819-8e37ff4c44eb

I will check it soon. @vaibhav-xt

could you add copy button for this also?

Definitely, I think I forgot about that.

Hey, I added this to all the code snippets. You are good to merge.

hey @vaibhav-xt but I'm not seeing any changes

Sorry, having some problems that's why it was not committed but I added that for all snippets on the first day.


Moving a page in the _toc.yml causes the Notebooks list to stop opening pages

Issue Type: Bug

open ADS to a notebook with a _toc.yml
Open the _toc.yml in another text editor
Move a page from one section to another section in the _toc.yml
Go back to ADS and and click on pages in the Notebooks list.  They won't open.

Azure Data Studio version: azuredatastudio 1.25.1 (e7eacc32c0d20bd4da843320c3bfac231b308c98, 2020-12-11T01:59:24.271Z)
OS version: Windows_NT x64 10.0.19042

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 x 3696)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
63.84GB (38.05GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (6)

Extension
Author (truncated)
Version

azure-devops-simplified-prs
ads
0.0.2

spellright
ban
3.0.52

adslivesite
Mic
0.0.10

kusto
Mic
0.4.0

powershell
ms-
2020.4.0

back-n-forth
nic
0.2.1

@tster123  Does ADS throw any error when you open the book? Also can you send me the toc.yml file and tell me what you're moving around in it. Thanks.

Seems like this issue has been fixed since I opened it.


Files.upload - file (image) in memory

I'm trying to post an image to slack, that I've downloaded from a wifi camera.
So the image in is a variable ( I do this so I can control authentication if needed), but for this example, just a raw download is used:
image = requests.get(imageurl, stream=True).raw
slack.files.upload(image)

This gets a unicode error...
So I also tried:
slack.files.upload(file=image,filename="Snapshot.jpg",initial_comment=text,channels=channel)

Where I specify a name etc, but it's getting the file to be taken from the image variable rather than from disk.  Is there a way I can do this?

Hi @psyciknz. It's fixed in #137. Thanks.

Thanks.   So trying to work on it.
The image as being downloaded.  I've tried:
image = requests.get(imageurl, stream=True).content
image = requests.get(imageurl, stream=True).raw

as input to:
slack.files.upload(content=image,title=text,channels=slack.channels.get_channel_id(channelname))
As part of the code, do you know which method I should be able to use?
My last test I used the content of the request object, and the "image" that slack shows seems to be a test representation of a binary object:
D+17S%BAD+B1BAD+B9ZBAD+9BAD+7 jBAD+3FBAD+93'zBAD+ADڲ
3UBAD+AEBAD+AABAD+80Ңm@<BAD+A2BAD+93Cި)BAD+35BAD+9qIaJBAD+1A8%zBAD+8DBAD+8zBAD+89BAD+A0BAD+A35ThRBAD+A0 M*5;BAD+15(BAD+A8AmO5BAD+89BAD+A5zBAD+A0yBAD+AYBAD+D
HJ֩    ڳBAD+93bISBAD+C:VJTBAD+15F;RAYêBAD+8C

Hmm I may have figured it out.  It does seem to post an FAILED or TIMEOUT exception.  But:
image = requests.get(imageurl, stream=True)
slack.files.upload(file_=image.raw,title=text,channels=slack.channels.get_channel_id(channelname))

Seems to work.


fix fix local file system copy bug

Proposed changes
Issue Number: close #xxx
Problem summary
copy_dirs has a bug that will cause infinity iteration
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

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

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 33.54 seconds
stream load tsv:          442 seconds loaded<PHONE_NUMBER>9 Bytes, about 161 MB/s
stream load json:         23 seconds loaded<PHONE_NUMBER> Bytes, about 97 MB/s
stream load orc:          73 seconds loaded<PHONE_NUMBER> Bytes, about 14 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230330074016_clickbench_pr_122718.html


fix: add multi.tcl

To fix issue#2531, add multi.tcl

Summary by CodeRabbit

Tests

Added unit tests for multi-execution logic in Redis, covering basic execution, discarding commands, nested multi-commands, watch functionality, error handling, and key watching behavior.
Updated integration test for geo functionality to reorder elements in array comparisons for improved accuracy.

PR Reviewer Guide 🔍

 ⏱ Estimated effort to review [1-5]
4

 🧪 Relevant tests
Yes

 🔒 Security concerns
No

 ⚡ Key issues to review

Possible Bug: The commented tests indicate that the behavior of Pika is inconsistent with Redis. This needs further investigation to ensure that these inconsistencies are acceptable or if they need to be addressed.

Test Coverage: Ensure that all new tests pass and cover the expected functionality, especially since some tests are commented out due to inconsistencies or unsupported commands.

PR Code Suggestions ✨
CategorySuggestion                                                                                ScorePossible issue

Correct a typo in the test description

Correct the typo in the test description from "MUTLI" to "MULTI".
tests/unit/type/multi.tcl [2]
-test {MUTLI / EXEC basics} {
+test {MULTI / EXEC basics} {

Suggestion importance[1-10]: 10
Why: Correcting typos in test descriptions is crucial for readability and understanding the purpose of the tests.
10
Enhancement

Add error handling for the r exec command

Add error handling for the r exec command to ensure that the script handles potential execution failures gracefully.
tests/unit/type/multi.tcl [10]
-r exec
+if {[catch {r exec} result]} {
+    # Handle error, e.g., log or clean up
+    puts "Error during EXEC: $result"
+}

Suggestion importance[1-10]: 8
Why: Adding error handling improves the robustness of the test script, ensuring that potential execution failures are managed gracefully.
8
Maintainability

Use a variable for the wait time in the after command

Replace the direct use of after 1100 with a variable or constant that defines the wait time, to improve code readability and maintainability.
tests/unit/type/multi.tcl [237]
-after 1100
+set waitTime 1100
+after $waitTime

Suggestion importance[1-10]: 7
Why: Using a variable for the wait time improves code readability and maintainability, making it easier to adjust the wait time if needed.
7
Best practice

Use braces consistently for Tcl command blocks to prevent parsing issues

Ensure consistent use of braces for Tcl commands to prevent unwanted command execution during parsing, especially for the test command blocks.
tests/unit/type/multi.tcl [243]
-test {DISCARD should clear the WATCH dirty flag on the client} {
+test {{DISCARD should clear the WATCH dirty flag on the client}} {

Suggestion importance[1-10]: 6
Why: Ensuring consistent use of braces helps prevent unwanted command execution during parsing, which is a good practice for maintaining code reliability.
6

PR参考：https://github.com/OpenAtomFoundation/pika/pull/2815/files


CNV-39425: Not able to select user prefereces in add volume modal

📝 Description
Allowing VirtualMachinePreference (namespace scoped) in the preference select dropdown in Add volume modal.
🎥 Demo
Before:

After:

please explain the issue and fix

please explain the issue and fix

Sure,
The preference created by user as VirtualMachinePreference will not show in the dropdown (look at Before screenshot)
So adding a call for VirtualMachinePreference kind to add it to the dropdown

please explain the issue and fix

Sure, The preference created by user as VirtualMachinePreference will not show in the dropdown (look at Before screenshot) So adding a call for VirtualMachinePreference kind to add it to the dropdown

Hmm, are we sure this is a bug? From what I remember, some InstanceTypes and Preferences (not sure which of those exactly) were hidden intentionally...

please explain the issue and fix

Sure, The preference created by user as VirtualMachinePreference will not show in the dropdown (look at Before screenshot) So adding a call for VirtualMachinePreference kind to add it to the dropdown

Hmm, are we sure this is a bug? From what I remember, some InstanceTypes and Preferences (not sure which of those exactly) were hidden intentionally...

Since the InstanceType feature should be GA, there's no reason to hide them anymore

please explain the issue and fix

Sure, The preference created by user as VirtualMachinePreference will not show in the dropdown (look at Before screenshot) So adding a call for VirtualMachinePreference kind to add it to the dropdown

I mean the delete label thing :)  why?

please explain the issue and fix

Sure, The preference created by user as VirtualMachinePreference will not show in the dropdown (look at Before screenshot) So adding a call for VirtualMachinePreference kind to add it to the dropdown

I mean the delete label thing :) why?

Because if we apply the wrong label, we might get the wrong type of preference (nullish values are getting default of CluterPreference type)

/lgtm


Fix framebuffer scale issue for OSX retina

There were a few things wrong with the code for scaling window size vs canvas size; the canvas (frame buffer) size was getting conflated with window size in SetFramebufferSizeCallback, and some of the code dealing with mouse coords was missing the scale factor. The last change was to adjust the scale of the projection matrix in the shaders to match the adjusted mouse coords. I wasn't sure if there was a better way to do this, but adjusting these few cases in render_shaders.go works.
Fixes #379
Fixes #388

Changes Unknown when pulling ad691be4534e72982bde4a69f438868fb8ef303d on kyhavlov:master into ** on EngoEngine:master**.

Not sure what's up with the Travis failure, something might be misconfigured there

common/render_shaders.go:161:58: CanvasScale not declared by package engo
common/render_shaders.go:162:60: CanvasScale not declared by package engo
common/render_shaders.go:481:58: CanvasScale not declared by package engo
common/render_shaders.go:482:60: CanvasScale not declared by package engo
common/render_shaders.go:912:58: CanvasScale not declared by package engo
common/render_shaders.go:913:60: CanvasScale not declared by package engo

@kyhavlov: I think the error might come from building engo with gopherjs. This doesn't really make sense though, as it isn't being built...

GLFW: An uncaught error has occurred: PlatformError: Linux: Failed to watch for joystick connections in /dev/input: No such file or directory
GLFW: Please report this bug in the Go package immediately.
2017/01/19 08:25:46 PlatformError: Linux: Failed to open joystick device directory /dev/input: No such file or directory
Xlib:  extension "RANDR" missing on display ":99.0".
--- PASS: TestShadersInitialization (0.05s)
=== RUN   TestShaderCompilation
GLFW: An uncaught error has occurred: PlatformError: Linux: Failed to watch for joystick connections in /dev/input: No such file or directory
GLFW: Please report this bug in the Go package immediately.
2017/01/19 08:25:46 PlatformError: Linux: Failed to open joystick device directory /dev/input: No such file or directory
Xlib:  extension "RANDR" missing on display ":99.0".

GLFW is also throwing these errors... I don't think it is responsible for the demo not building though.
Have you tried building this PR on linux?

The demo build error is definitely from building with gopherjs; I'm not sure what to do about it though.
I haven't tried building on Linux with this (don't have a setup for that at the moment). Those joystick errors don't seem related to these changes; I can see them in other PR Travis runs.

Did you add a stub of your CanvasScale function to the engo_js.go file?
On Thu, Jan 19, 2017 at 10:39 AM, Kyle Havlovitz<EMAIL_ADDRESS>wrote:

The demo build error is definitely from building with gopherjs; I'm not
sure what to do about it though.
I haven't tried building on Linux with this (don't have a setup for that
at the moment). Those joystick errors don't seem related to these changes;
I can see them in other PR Travis runs.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/EngoEngine/engo/pull/403#issuecomment-273860411, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AIBJShR0S8OagiZCttStYHafYvDxQykdks5rT63ogaJpZM4Ln0bp
.

Changes Unknown when pulling 44acd0c5e22b3b741a7e0321cd209961aef00607 on kyhavlov:master into ** on EngoEngine:master**.

Yeah, I missed adding that stub for js/mobile. Mobile seems to fail even with it though; any ideas there?

@kyhavlov: Nope. No idea.
@otraore, @EtienneBruines: Can you think of anything?

It's causing all new issues to fail, possible solutions include downloading the android NDK to test mobile builds. Or not test mobile. Adding the NDK increases the time it take tests to run by about a minute.

Working on it in: https://github.com/EngoEngine/engo/pull/406

Changes Unknown when pulling fd07d96f48939e79e998d6f131a45888226ca5dd on kyhavlov:master into ** on EngoEngine:master**.

Does this fix look good to merge now? @paked @otraore

@kyhavlov: Thanks for this. Sorry it took so long to merge :)

No problem, thanks for all your work maintaining this!


Missing token functions in example

mwheeler vishalkardode cedriclombardot Could you add me as contributor then I will take care about the pull requests.


chore: Update swiftlint to 0.52.3

Description of changes
Updates SwiftLint version used to latest available.
New/existing dependencies impact assessment, if applicable
No new dependencies were added to this change.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/test


node:internal/readline/emitKeypressEvents:71 error while monitoring a busy FLEX paging channel.

I've been running Pagermon for around 2 months now to monitor a Paging system my Company helps to support. It's been a great tool to keep track of what is going out on the system and to look up CapCodes for customers that are missing pagers.
I just recently added a second channel to the system for a new customer of ours and noticed the original channel intermittently having this error.
Jan 05 11:38:37 Radio reader.sh[9830]: 2023-01-05 11:38:37: 000704866: THIS IS A TEST PERIODIC PAGE SEQUENTIAL NUMBER  2419 Jan 05 11:38:37 Radio reader.sh[9830]: 2023-01-05 11:38:37: 000602836: Q>]6M3a3f<amM1=mK<?GLAK?dl7OefS0]WDToOeFZ9
Jan 05 11:39:19 Radio reader.sh[9830]: 2023-01-05 11:39:19: 000603497: [9=7eT0EgQ=gE1m1F=lmWE0C\WaIU8Fg2kK@SfKL]oEdho8;gf;>l5HlLZC<fek3MUlZHDa?2Da@9P\Mc20_YM=lOKgCDQ?Cm0]Yl;b9=
Jan 05 11:39:19 Radio reader.sh[9830]: 2023-01-05 11:39:19: 000830538: THIS IS A TEST PERIODIC PAGE SEQUENTIAL NUMBER  2420
Jan 05 11:39:24 Radio reader.sh[9830]: 2023-01-05 11:39:24: 000603084: 777-7777
Jan 05 11:39:49 Radio reader.sh[9830]: 2023-01-05 11:39:49: 000603097: 777-7777
Jan 05 11:39:49 Radio reader.sh[9830]: 2023-01-05 11:39:49: 000603084: 777-7777
Jan 05 11:39:55 Radio reader.sh[9830]: node:internal/readline/emitKeypressEvents:71
Jan 05 11:39:55 Radio reader.sh[9830]:             throw err;
Jan 05 11:39:55 Radio reader.sh[9830]:             ^
Jan 05 11:39:55 Radio reader.sh[9830]: TypeError: Cannot read properties of null (reading '1')
Jan 05 11:39:55 Radio reader.sh[9830]:     at Interface. (/root/pagermon/client/reader.js:121:77)
Jan 05 11:39:55 Radio reader.sh[9830]:     at Interface.emit (node:events:513:28)
Jan 05 11:39:55 Radio reader.sh[9830]:     at Interface._onLine (node:readline:491:10)
Jan 05 11:39:55 Radio reader.sh[9830]:     at Interface._line (node:readline:868:8)
Jan 05 11:39:55 Radio reader.sh[9830]:     at Interface._ttyWrite (node:readline:1227:16)
Jan 05 11:39:55 Radio reader.sh[9830]:     at Socket.onkeypress (node:readline:291:10)
Jan 05 11:39:55 Radio reader.sh[9830]:     at Socket.emit (node:events:513:28)
Jan 05 11:39:55 Radio reader.sh[9830]:     at emitKeys (node:internal/readline/utils:357:14)
Jan 05 11:39:55 Radio reader.sh[9830]:     at emitKeys.next ()
Jan 05 11:39:55 Radio reader.sh[9830]:     at Socket.onData (node:internal/readline/emitKeypressEvents:61:36)
`
But, it's only having this error on the original system. The Original system is a mix of POCSAG 1200 and FLEX, but the new system is only POCSAG. So I'm thinking this may be an issue with FLEX decodes.
Another thing that might be causing this is the channel that is having the error carries encrypted FLEX traffic, So maybe it's having an issue parsing that?
additional note
Looking back in the logs it likes this has been happening for a while now, but I just didn't notice it because I would restart the service it's attached to every weekend when I did server backups. We haven't had many issues with the system for the last month so I guess I didn't notice the missing pages in the database. :-/
Any help on this would be appreciated. If this program works out in the long run I'm looking at deploying it on a raspberry Pi and using it as portable coverage monitor for customer reporting system issues in one area or who are on the edges of the system.
Thanks for the great application and all the hard work on it!

Line 121 in reader.js relates to FLEX so i think your correct there.
I don't think this is actually a pagermon issue, looks like the upstream dependancies are having issues parsing something  but you'd need to log the output directly to figure it out, whatever is causing the issue isn't in these logs based on the timestamp it is receiving some kind of message that is crashing it out.
If you can get a log of all the messages received that might help

+1 for logging output directly to get more information. You can pipe the output to a file before reader.js rtl_fm ... | tee messages.txt | node reader.js
That becomes problematic if its happening once a week though, file could get very large.
You can also mitigate the restart issue by just having it restart itself after 10 seconds in a while loop.
while true; do
rtl_fm ..... reader.js
sleep 10;
done

That way if you dont work out specifically whats causing it, at least it corrects itself

@geelongmicrosoldering Thanks for the input. I don't think this will be too much of a problem today. I've seen it crash 5 times over the last 2 hours. So what ever pager is causing it to dump is going out quite a lot today.
I setup your idea with tee and I'll see what I get.

Sorry, I didn't mean to close this thread. I'm still new to GitHub. :-/

Thats cool, last time i did it by pushing the button accidentally

OK, so it looks like what might be causing the problem is a "blank" alpha
page in Flex.

<EMAIL_ADDRESS>@.***[ Subj:WHF MAIN OR POOL STAT Inpatient consult to IV team Sent Msg:Epic In Basket: Orders Message: ________________________________ This message is intended for the sole use of the addressee, and may cont FLEX: 2023-01-06 00:56:08 3200/4/K/C 14.013 [000603256] ALN<EMAIL_ADDRESS>Subj:WHF MAIN OR POOL STAT Inpatient consult to IV team Sent Msg:Epic In Basket: Orders Message: ________________________________ This message is intended for the sole use of the addressee, and may cont FLEX: 2023-01-06 00:56:42 3200/4/K/A 14.032 [000602836] ALN Q>]6M3a3f<amM1=mK<?GPDNnWnl4h1IE<khhPFWS:8
FLEX: 2023-01-06 00:56:42 3200/4/K/C 14.032 [000830538] ALN THIS IS A TEST
PERIODIC PAGE SEQUENTIAL NUMBER  2737
FLEX: 2023-01-06 00:56:48 3200/4/A 14.035 [000603084] NUM 777-7777
FLEX: 2023-01-06 00:56:48 3200/4/F/B 14.035 [000389393] ALN
The EOF is where the error took place. I used the Tee command idea
@geelongmicrosoldering https://github.com/geelongmicrosoldering
suggested.
On Thu, Jan 5, 2023 at 4:33 PM geelongmicrosoldering <
@.***> wrote:

Thats cool, last time i did it by pushing the button accidentally
—
Reply to this email directly, view it on GitHub
https://github.com/pagermon/pagermon/issues/546#issuecomment-1372976225,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A44HCA6D5RAQ52FZTZBTWGDWQ5R43ANCNFSM6AAAAAATSL3WF4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Interesting. There was a PR somewhere with a fix for zero length POCSAG pages. It was never included because there was other parts to it that remained unnecessary or unfinished. I cant recall. Let me see if i can find it and pull that part out and make it work for both FLEX and POCSAG

Ok i can see an issue with Line 121, group 1 in the regex match is always assumed to be there. when the ALN page is blank, it isnt, so assuming it is is the issue.
I'll get back to you with a potential fix

on line 121 in reader.js
can you please replace:
message = line.match(/FLEX[:|].*[|\[][0-9 ]*[|\]] ?...[ |](.+)/)[1].trim();
with
message = line.match(/FLEX[:|].*[|\[][0-9 ]*[|\]] ?...[ |]{0,1}(.*)/)[1].trim();
the regex change basically means that group [1] always exists, but can be null/0 length. this will later be caught on line 163 if it is empty, if you can also replace on line 163:
if (address.length > 2 && message) {
with
if (address.length > 2 && trimMessage.length > 1)
this will prevent the message from being sent to the API if it is empty (which will cause reader.js to crash again, albeit in a different place. In your case though, that blank message is actually fragmented. theres probably more to it.
If you can make those 2 changes and restart reader.sh, let me know if that fixes your issue. if it does i'll submit a PR to have it fixed in the next release

Done.
I'll let you know what I come up with.
I'll also do some digging on that CapCode and see if it's sending a batched
message or something. On that system it's set to a max length of 256
characters per page, so I can imagine it's breaking the page up between
batches.
Thank you very much for the quick response!
On Thu, Jan 5, 2023 at 5:51 PM geelongmicrosoldering <
@.***> wrote:

on line 121 in reader.js
can you please replace:
message = line.match(/FLEX[:|].[|[][0-9 ][|]] ?... |/)[1].trim();
with
message = line.match(/FLEX[:|].[|[][0-9 ][|]] ?...[
|]{0,1}(.*)/)[1].trim();
the regex change basically means that group [1] always exists, but can be
null/0 length. this will later be caught on line 163 if it is empty, if you
can also replace on line 163:
if (address.length > 2 && message) {
with
if (address.length > 2 && trimMessage.length > 1)
this will prevent the message from being sent to the API if it is empty
(which will cause reader.js to crash again, albeit in a different place. In
your case though, that blank message is actually fragmented. theres
probably more to it.
If you can make those 2 changes and restart reader.sh, let me know if that
fixes your issue. if it does i'll submit a PR to have it fixed in the next
release
—
Reply to this email directly, view it on GitHub
https://github.com/pagermon/pagermon/issues/546#issuecomment-1373033258,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A44HCA4DWJ2JO7GX276DX73WQ53B7ANCNFSM6AAAAAATSL3WF4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

yeah not sure, im not familiar enough with FLEX, but based on code others have written
3200/4/K/C in the previous page makes it a complete page
3200/4/F/B in the offending page makes it a fragment, so you'd expect there to be more after that

So it looks like your change to the code at Line 121 and 163 did the trick
for the empty pages. Here is a big block of them being sent to a group of
different cap codes and pagermon handled with no issues.
LEX: 2023-01-06 03:17:20 3200/4/K/C 04.052 [000830538] ALN THIS IS A TEST
PERIODIC PAGE SEQUENTIAL NUMBER  2878
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000606716] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [001529398] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [001529398] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000683966] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000677434] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000923615] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000760621] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000957243] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000989151] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [001531192] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000728364] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000777514] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000989995] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000782259] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [000973098] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [001529530] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [001140447] ALN
FLEX: 2023-01-06 03:17:20 3200/4/F/D 04.052 [002008008] ALN
FLEX: 2023-01-06 03:18:36 3200/4/K/A 04.092 [000602836] ALN
Q>]6M3a3`f<amM1=mK<?GH=j_eIYVD69QJe5KN^V\43
FLEX: 2023-01-06 03:18:36 3200/4/K/C 04.092 [000830538] ALN THIS IS A TEST
PERIODIC PAGE SEQUENTIAL NUMBER  2879
But now we have a different error coming up.
node:internal/readline/emitKeypressEvents:71
throw err;
^
TypeError: Cannot read properties of undefined (reading 'length')
at Interface. (/root/pagermon/client/reader.js:163:42)
at Interface.emit (node:events:513:28)
at Interface._onLine (node:readline:491:10)
at Interface._line (node:readline:868:8)
at Interface._ttyWrite (node:readline:1227:16)
at Socket.onkeypress (node:readline:291:10)
at Socket.emit (node:events:513:28)
at emitKeys (node:internal/readline/utils:357:14)
at emitKeys.next ()
at Socket.onData (node:internal/readline/emitKeypressEvents:61:36)
Signal caught, exiting!
This was the block of pages the system sent out right before that error.
FLEX: 2023-01-06 16:26:44 3200/4/B 07.097 [001372166] TON
FLEX: 2023-01-06 16:26:44 3200/4/B 07.097 [002030734] NUM 56852
4236135-5686U45]09-U916 7 4 4U4929[
FLEX: 2023-01-06 16:26:44 3200/4/B 09.097 [000988978] NUM
00000000000000000000000000000000000000000
FLEX: 2023-01-06 16:26:44 3200/4/B 09.097 [000494088] NUM<PHONE_NUMBER>
http://voice.google.com/calls?a=nc,%2B10000000000
FLEX: 2023-01-06 16:26:44 3200/4/B 09.097 [001187643] NUM
0000000000000000000000000000000
FLEX: 2023-01-06 16:26:44 3200/4/B 09.097 [000920470] NUM   2 9 0684U ]9[
93221648- 05-42
FLEX: 2023-01-06 16:26:44 3200/4/B 09.097 [001169056] NUM  03-3525 5 49
745234-  2 9 0684
FLEX: 2023-01-06 16:26:44 3200/4/B 09.097 [001085614] NUM 0-69  12U733
4[494969252[159 053U 0723812
FLEX: 2023-01-06 16:26:44 3200/4/C 09.097 [000603084] NUM 777-7777
On Thu, Jan 5, 2023 at 6:08 PM geelongmicrosoldering <
@.***> wrote:

yeah not sure, im not familiar enough with FLEX, but based on code others
have written
3200/4/K/C in the previous page makes it a complete page
3200/4/F/B in the offending page makes it a fragment, so you'd expect
there to be more after that
—
Reply to this email directly, view it on GitHub
https://github.com/pagermon/pagermon/issues/546#issuecomment-1373046523,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A44HCAZD4O6KFKF2TCF253LWQ55BLANCNFSM6AAAAAATSL3WF4
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Based on what i can see there, that last message should have passed 777-7777 into trimMessage, so its length should have been defined. I havent checked, it's possible the trim function is removing the 0000's in the messages just before it.
I can see a potential issue with the code i provided.
Can you replace line 163 with:
if (address.length > 2 && message && trimMessage.length > 1)
And see if that helps? Im tired so i may not be processing that error to the best of my abilities lol. If it doesn't help ill take another look later today

I don't think it's the 777-7777 message either. I restarted pagermon this morning after I saw it crashed and I've gotten several of those pages with no problem. This is one from just a short bit ago.
2023-01-06 11:53:37: 000601338<EMAIL_ADDRESS>This message is intended for the sole use of th
2023-01-06 11:53:41: 0201886: .    .       .
2023-01-06 11:54:13: 000603084: 777-7777
2023-01-06 11:54:13: 000603097: 777-7777
2023-01-06 11:54:15: 000602836: Q>]6M3a3`f<amM1=mK<?G@nF9W8fhZ_MVRJ[SI<Z@F=
2023-01-06 11:54:18: 000704866: THIS IS A TEST PERIODIC PAGE SEQUENTIAL NUMBER  3875

I haven't seen any of the mulit 0 messages again, so it may have been that.
I'll keep an eye on it while I work on other projects today(Luckily I should be in the office all day today) and see if it happens again. If it does I'll implement your change and see if that helps.
Thanks again @geelongmicrosoldering for your help. It's very much appreciated.

OK, I just confirmed it's the pages with all the 0 in it.
FLEX: 2023-01-06 21:28:36 3200/4/F/B 08.028 [000844961] ALN
FLEX: 2023-01-06 21:28:36 3200/4/B 08.028 [000576809] NUM [[700000[[[[[10000 [[[[700000[[[[[10000
FLEX: 2023-01-06 21:28:36 3200/4/F/B 08.028 [000381378] ALN
FLEX: 2023-01-06 21:28:36 3200/4/B 08.028 [001018284] NUM [[700000[[[[[10000 [[[[700000[[[[[10000
FLEX: 2023-01-06 21:28:36 3200/4/F/B 08.028 [000282407] ALN
FLEX: 2023-01-06 21:28:36 3200/4/B 08.028 [001182494] NUM [[700000[[[[[10000 [[[[700000[[[[[10000
FLEX: 2023-01-06 21:28:36 3200/4/K/C 08.028 [000602836] ALN Q>]6M3a3`f<amM1=mK<?Gd7MoEOU<F1B`WbNY\B7:W8
FLEX: 2023-01-06 21:28:36 3200/4/C 08.028 [000603097] NUM 777-7777
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [000079176] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [002057931] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [001038158] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [000795810] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [001216332] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [001068191] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [000788766] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [000270670] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [001024436] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [001150392] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [000919602] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [001070384] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [000976697] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [000447519] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [000545585] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [001107005] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [002007976] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [000008739] NUM<PHONE_NUMBER>00000000000000000000000000000
FLEX: 2023-01-06 21:28:36 3200/4/C/D 08.028 [000389393] ALN
FLEX: 2023-01-06 21:28:36 3200/4/D 08.028 [001916877] NUM<PHONE_NUMBER>00000000000000000000000000000

That was the last batch of pages I have in my Tee log file from Multimon-NG before I got the most recent version of the error message.
I'll implement your change @geelongmicrosoldering and let you all know what I come up with.

i was able to reproduce that error locally, and can confirm the last change to line 163 fixed it

Just a quick update on this problem.
It ran without issues up till about Saturday afternoon when the process was
killed for some reason. I'm not sure why(It wasn't a fault with Pagermon).
So I restarted it and will keep an eye on it today while I'm working.
So far the fix at line 163 seems to have fixed the issue, but I've haven't
seen an all 0 pagers in the Tee file yet. Once I see one of those go
through I'll call it good.
Message ID: <pagermon/pagermon/issues/546/1374354526

@.***>

So I have not seen an all 0 page yet today. So I sent one to our tech test pager and it went through to pagermon with out an issue.

Many thanks to @geelongmicrosoldering for all your help on this. If I use this for our remote monitoring project at work I'll let you all know.


Android - LHN - Fab menu is missing after log in

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Launch the app
Log in with any account
Check Green Plus button below

Expected Result:
Fub menu should be present
Actual Result:
Fub menu is missing in LHN
Workaround:
Unknown
Platform:

Where is this issue occurring?

Android

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/199103943-eb2bde14-d621-420d-a0ba-ac9e4f8e2780.mp4

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

cc @hannojg I think this might be related to the refactor https://github.com/Expensify/App/pull/11907

I'm narrowing down the branch before reverting, as I want to be 100% sure.:
Nexus 5X, Android 8.1

Production: not occurring ❌
Staging: occurring ✅
#11907: occurring ✅  <-- seems to have introduced the regression

THis PR reverts the PR that introduced this.


Check if Telegram is installed on device

Added missing warning to check if telegram is installed on device while importing stickers.
Publishing a new Release version would be appreciated.

Added in 1.1.0.


gen: Add the concept of a Resolvable, Resolve config per-Target

Targets now get finalized with results. This also means they need to be constructued per-use.
validate_configuration() no longer exists, as resolve_configuration does exactly the same thing,
users of validate_configuration() are migrated to just use resolve_configuration() once.
The per-target results aren't yet plugged into various places, that will come in a later pr
Introduce a notion of variables "visited" to calculate a particular variable.
Introduce a concept of a "Resolvable". A resolvable tracks the resolution state of a particular configuration value. (Unresolved, being resolved, error). It will eventually also include a "late resolution" (late binding) state. The introduction centralizes the logic for tracking that, and makes it harder to get wrong. Resolvables also keep track of what caused them to come into existence / get resolved.
Switches / sub-scopes now generate single-argument "validate" functions rather than having custom logic to validate their values when we reached the switch they were used in (See yield_implicit_validates)
Renames DFSArgumentCalculator to Resolver. A resolver is now only usable once, takes a set of setters (taken from a set of sources) and targets, then resolves them all at once. The goal being that the resolution of all targets produces a single, consistent / valid against eachother full final configuration. Resolver now owns / builds the status dictionary itself, and makes it accessible to callers
Adds a new unit test for gen internals code

Things this works towards enabling

Typed parameters. "Resolvables" can be focused around a type (as discovered by python type annotations on function parameters)
"nested" configuration. Currently all config must be one top level dictionary. In theory though we could use nested dictionaries and flatten them ({"a": {"b": {"c": "d"}}} could be accessed as a_b_c.
Late-binding. Resolvables do a much better job of tracking / keeping contained the resolution state, code which was currently spread about DFSArgumentCalculator previously. The code to track "unset" and spread it through the tree, is very similar to the code needed to track "late bound" and that property spreading / chaining through the tree.
"secret" / private data such as aws keys in config.yaml. Things like the AWS keys should be explicitly protected / marked so they don't show up in things like the user config.yaml inside the cluster / on every host. If anything would make them show up, that should result in an error.

Issues

Late-binding configuration
Secrets in dcos-release.config.yaml vs. config.yaml for AWS Advanced templates
Enabling dcos-launch to use config.yaml

Checklist

[x] Included a test which will fail if code is reverted but test is not
[x] Followed relevant code rules Rules for Packages and Systemd

this is ready for review

@branden pulled validation out into a class in a second commit, adds a bit of lines of code and the API is a bit wonky (The multi-arg validate results have to be yielded out while the single-arg ones don't). Not sure if it's worth doing at this point.


samples: usb: remove app.overlay

Remove app.overlay because referenced node
was remove in the commit 5071eeec8bb1
("dts: Remove unused virtualcom device node from dts")'.

So how do we tell now which serial device to use in the case of usb cdc?

So how do we tell now which serial device to use in the case of usb cdc?

CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" see samples/subsys/usb/console/prj.conf

I got it now, there is also DT_UART_CONSOLE_ON_DEV_NAME. 5071eee should be reverted and CONFIG_UART_CONSOLE_ON_DEV_NAME="CDC_ACM_0" removed from samples/subsys/usb/console/prj.conf


Getting the target of a foreign key

I have just tried to update some script to impement what we clarified in the preparation for 1.1, that explicit foreign keys have precedence and do not need to point to ID columns.
The best way I could come up with (commas for tuple unpacking, because all the RHSs of the assigment are length-1 lists)
                form_column = col_map.cognates.formReference
                foreign_key, = [
                    key for key in ds["CognateTable"].tableSchema.foreignKeys
                    if key.columnReference == [form_column]
                ]
                target, = foreign_key.reference.columnReference

That's quite a chunk for something that should be a core operation. Did I overlook something? If not, could we get something better, such as a property on the column object?

Property on the column object wouldn't work, because the column doesn't know about the table(Schema) it's part of. So, something like Dataset.foreign_key_target(col) would be the best I can think of now. This should return a pair (Table, Column), though, I think.

Oops, so that should have been:
class Dataset:
    ...
    def foreign_key_target(self, table, col):
        return table, column
    ...

i.e. we also need to know the table of the foreign key.

And yes, considering the cognitive dissonance that we need to look up column names in columnReference, and not CLDF terms, that should be made simpler with such a method.


Cryptocell AES support

Add support for CC HW accelerated AES
In case the functionality doesn't work, such as unsupported key size
or unsupported AES mode, fall-back to SW implementation.

Thios PR contains code duplication from the SW implementation, for fall back in cases where Cryptocell doesn't support the specific feature. This is due to current mbed tls architecture. When https://github.com/ARMmbed/mbedtls/issues/818 is resolved, This code duplication issue can be changed.

@andresag01 I addressed most of your issues. As for the code duplication, see previous comment


error: Found argument '--not-when-audio' which wasn't expected, or isn't valid in this context

Running the latest xidlehook (0.9.1), has --not-when-audio flag gone?
% xidlehook --version
xidlehook 0.9.1

% xidlehook --not-when-audio --not-when-fullscreen --timer 2 'echo done' ''
error: Found argument '--not-when-audio' which wasn't expected, or isn't valid in this context
        Did you mean --not-when-fullscreen?

USAGE:
    xidlehook --not-when-fullscreen --timer <duration> <command> <canceller>

Are you compiling it with the pulse flag? The nix derivation default.nix does not include this flag by default

I am using one the suggested install methods from the readme:
nix-env -if https://gitlab.com/jD91mZM2/xidlehook/-/archive/master.tar.gz

That one indeed does not use the pulse flag, unfortunately. There were some weird issues with it that weren't easy to fix. If you use the stable one nixpkgs.xidlehook you'll get the pulse flag

I see. That works, thank you. Ironically, the reason for trying out latest was that --not-when-audio flag no longer seems to be working for me (ubuntu). But that, perhaps, is another issue.

Update: I think that's zoom app that's making xidlehook think that audio is still on. If I restart zoom --not-when-audio works. But as soon as zoom uses audio (for instance, audio test), xidlehook --not-when-audio --timer 1 'echo done' '' no longer prints "done". Hope this is useful.

Interesting, try running xidlehook with RUST_LOG=debug to get some debugging output. To run the latest xidlehook with custom flags, you might need to use cargo install xidlehook --git <url> --feature pulseaudio. This will of course require you to specify all native dependencies yourself, such as using nix-shell -p xorg.xcb pulse ...

[INSERT] % RUST_LOG=debug xidlehook --not-when-audio --timer 1 'echo done' ''
[2020-07-02T21:29:14Z DEBUG xidlehook_core::modules::pulse] Partial count: 1
[2020-07-02T21:29:14Z DEBUG xidlehook_core::modules::pulse] Total sum: 1
<<<< stuck here until zoom is shut >>>>
[2020-07-02T21:29:50Z DEBUG xidlehook_core::modules::pulse] Total sum: 0
done

My instinct is that this sounds like an issue with zoom. Pun not intended. But there is certainly further debugging to be done, like listing the full info of each application it thinks plays audio. Try adding a debug! after this line

This goes way beyond my rust skills. Unless you tell me exactly what to debug! and then how to compile it, I am afraid, I won't be much help :)

debug!("Sink info: {:?}", item);
Then compile with cargo build. You'll find the binary in target/debug/xidlehook. Or you can do cargo run -- <args> directly

Closed in favor of #51