Add genqec rr struct

Thanks for opening a PR to PowerSystems.jl, please take note of the following when making a PR:
Check the contributor guidelines

Add a description of the changes proposed in the pull request.
Is my PR fixing an open issue? Add the reference to the related issue
If you are contributing a new struct: please refer to the testing requirements for new structs

@tavovalmo you have a dangling STAB1 file in this PR

@tavovalmo you have a dangling STAB1 file in this PR

@tavovalmo you have a dangling STAB1 file in this PR

Hi, just noted it. Sorry

This is the latest struct for GENQEC. It already includes the 3 algebraic states.


(#108) Add the body to the UnexpectedResponseException

This PR:

solves #126
Adds UnexpectedResponseException.payload()
Promotes PayloadOf from test packages to production packages as a package-private class
Does small fix to a bunch of test cases that started to fail as soon as we started parsing the HttpResponse non-json payloads
Leaves puzzle for adding tests to PayloadOf

Pull Request Test Coverage Report for Build 238

17 of 22 (77.27%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-4.4%) to 77.049%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/com/amihaiemil/docker/PayloadOf.java
14
19
73.68%

Totals

Change from base Build 236:
-4.4%

Covered Lines:
329

Relevant Lines:
427

💛  - Coveralls

@amihaiemil/z everybody who has role REV is banned at #126; I won't be able to assign anyone automatically; consider assigning someone manually (as in §19), or invite more people (as in §51), or remove the job from the scope (as in §14)

This pull request #126 is assigned to @amihaiemil/z, here is why; the budget is 15 minutes, see §4; please, read §27 and when you decide to accept the changes, inform @amihaiemil/z (the architect) right in this ticket; if you decide that this PR should not be accepted ever, also inform the architect; this blog post will help you understand what is expected from a code reviewercom.zerocracy.Par@3c93dcab

Manual assignment of issues is discouraged, see §19: -5 point(s) just awarded to @amihaiemil/z

@amihaiemil done, please check

@rultor merge it pls

@rultor merge it pls

@amihaiemil OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge it pls

@amihaiemil Done! FYI, the full log is here (took me 4min)

Order was finished: +15 point(s) just awarded to @amihaiemil/z

The job #126 is now out of scope


localCachedMap pubsub/updates broken after elasticache cluster maintenance or failover test

Expected behavior
Updates to RMap data which include a local cache should propagate changes to all nodes, including local caches, as cluster topology changes occur.  When AWS elasticache maintenance occurs, or failover happens, as topology changes occur or as nodes change from master to slave: RLocalCachedMap pubsub subscriptions should be reestablished, and any updates to localCache values should be captured and continue to be propagated across all redisson instances.
AWS elasticache cluster uptime is maintained throughout all maintenance operations: redisson should follow topology changes, node type changes (master/slave) and re-establish pubsub connections for RLocalCachedMaps to continue to keep data synchronized with local caches.
Actual behavior
RLocalCachedMap local cache values are no longer updated on remote redisson clients when performing cluster maintenance.  Subsequent changes to RLocalCachedMaps can be stale in local cached data for redisson nodes that did not originate the new data, even when data changes are pushed after full cluster topology is recovered.  This causes stale/different datasets for the same keys across multiple nodes using local caches.
Steps to reproduce or test case

Create elasticache redis cluster with cluster mode enabled, multiAZ enabled
Create and connect 2 instances of Redisson, and create common RLocalCachedMap
Trigger aws elasticache maintenance/failover test:
aws elasticache test-failover --replication-group-id dev-generic-failtest --node-group-id 0001

Redis version
6.2.6, 6.0.5
Redisson version
3.17.7
Redisson configuration

Using a TLS/SSL connection via "rediss://" connection string to the AWS elasticache configuration endpoint

We are also using a nameMapper:
`
  Config config = new Config();
  ClusterServersConfig clusterServers = config.useClusterServers()
          .setRetryInterval(3000)
          .setTimeout(30000)
          .setReadMode(ReadMode.MASTER_SLAVE)
          .setNameMapper(new NameMapper() {
              @Override
              public String map(String name) {
                  return KEY_PREFIX_COLON + name;
              }

              @Override
              public String unmap(String name) {
                  return name.replace(KEY_PREFIX_COLON, "");
              }
          });

`

Default values for everything else.

I created a simple test application to confirm and reproduce this issue.  I can to publish the entire repo if desired, here is the pertinent code:
`
MainApp() {
    LOG.info("Starting up test...");

    int count = -1;
    RLocalCachedMap<Object, Object> testMap = redissonConnection.getRedisson()
            .getLocalCachedMap("cachedmap", LocalCachedMapOptions.defaults().syncStrategy(LocalCachedMapOptions.SyncStrategy.UPDATE));
    testMap.preloadCache();
    String shortId = redissonConnection.getRedisson().getId().substring(0, 7);

    testMap.put(shortId + "_increasing", ++count);
    testMap.put(shortId + "_timestamp", System.currentTimeMillis());
    Map<Object, Object> localCachedMap = testMap.getCachedMap();

    LOG.info("starting main loop in " + this.getClass().getName());
    Thread printingHook = new Thread(testMap::clear);
    Runtime.getRuntime().addShutdownHook(printingHook);

    while (true) {
        try {
            Thread.sleep(5000);
            LOG.info("mynode: {}, current time: {} local cache:", shortId, System.currentTimeMillis());
            localCachedMap.forEach((key, value) -> LOG.info("{}: {}", key, value));

            LOG.info("mynode: {}, current time: {} real cache:", shortId, System.currentTimeMillis());
            testMap.forEach((key, value) -> LOG.info("{}: {}", key, value));

            testMap.put(shortId + "_increasing", ++count);
            testMap.put(shortId + "_timestamp", System.currentTimeMillis());
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

`
With this test, I run 2 copies of this same application.  In the logs you can see that that after the test-failover occurs, the redisson instances stop getting new values in their local cache that originated in the other node.
I have enabled TRACE logging for org.redisson and have included the logs generated for both of these instances (same code running in 2 different JVMs).
app02.log
app01.log
Here is a pertinent section of app02.log:
Notice how the local cache for the data originating at the remote node is old and stale.  You can see the local cache staying correct on both nodes, and local cache stops working during failover test.

You need to specify LocalCachedMapOptions.reconnectionStrategy setting

Aah - I was not aware of those options, good to know.  I have repeated this test with the CLEAR reconnectionStrategy, unfortunately I don't see any different behavior.  As I read the docs and the code, it looks like it is supposed to clear the near/local cache once connection is re-established, is that correct?
Unfortunately I ran the test and still see the that the local cache exists, is stale and has not been cleared:

I've attached the latest TRACE logs from both instances using the same simple test-bed app, with the addition of:
.reconnectionStrategy(LocalCachedMapOptions.ReconnectionStrategy.CLEAR));
app02_test2.log
app01_test2.log

@mrniko I have tried further testing, and I believe that there is a problem somewhere with respect either to re-establishing pubsub connections after AWS elasticache failover/maintenance, AND/OR ReconnectionStrategy not working as documented.
I have attempted the CLEAR strategy as mentioned above, but no change.  The ReconnectionStrategy.CLEAR never causes the local cache to actually be cleared, and appears to have no effect at all on the local near cache.  After failover the local cache holds an old object from before failover and is stale on one of the nodes.
My observation is as follows:

All is fine until failover
During beginning of failover, I see org.redisson.client.WriteRedisConnectionException: Unable to write command into connection! Increase connection pool size. (same error as https://github.com/redisson/redisson/issues/4658)
During failover, I can see the subscriptions move from the failing master node to the slave node
Once master fully recovers, one subscription is removed tom the slave node (total subscriptions from 2 -> 1)
No subscriptions are established to the master, leaving total subscriptions down from 2 -> 1, and local caches are unaffected still populated, and stale for one node, using ReconnectionStrategy.CLEAR)

I wrote a script use redis-cli to query all nodes of the cluster, (3 shards, 1 read replica per shard) and to poll the redis command PUBSUB NUMSUB <channel name>.  Here is the output in the offending time period:

Please note the AWS event log for the cluster, this issue occurs during recovery of the listed nodes:

I have also included the polling of PUBSUB NUMSUB call to each node in the cluster, and both logs of the same test app depicted above, where 1 instance in log: app02_test03.log loses subscription and does not have near cache cleared.
subs_test03.log
app01_test03.log
app02_test03.log
I am happy to share all of this code/scripts, it is very easy and 100% repeatable to reproduce this problem.  Please do let me know if there is any testing or other things I can do to be of help, I believe this to be an important issue.

@mrniko I think I found the source of the problem! This seems to be due to some odd behavior coming from AWS Elasticache 'CLUSTER NODES' command when the command is issued to the failed cluster node during failover.
It looks like there is a small window of time during elasticache failover, where the CLUSTER NODES command, when sent to the failing node (i.e. failing node == myself) will have a strange behavior.  The reply:

Has "master" flag
Does not have a "fail" flag (even though it has that fail flag when querying other nodes in the cluster)
Has no slots
Has 0 for all of the <ping-sent> <pong-recv> <config-epoch> values
No other nodes are listed in the response

Here is the order of events as I can see them from these logs:

We trigger failover (aws elasticache cli)
A master node is marked as failing, redisson acts properly
During a small window of time when the failed master is being removed from the cluster, before it is converted to a slave, if the failing node is queried it can sometimes respond to 'CLUSTER NODES' in this manner (with no other nodes listed)
This single-node reply causes redisson to think ALL slots have been removed, and it re-adjusts its the cluster topology by disconnecting, then re-connecting all nodes - at which time, it does not re-establish pubsub connections properly

It appears that this only happens when the CLUSTER NODES command is sent to the failing node, and during a small window of time - after that it is converted to slave and everything works out.  For clients that do not receive this single-line CLUSTER NODES response, the redisson does not remove all slots and re-adjust, and everything actually works properly - pubsub is re-established with the "new slave" (previous master) once its ready and all things work properly.  It looks like every 5 seconds the CLUSTER NODES command is called, and some clients never get this single-node response.  Those clients do not have these failover issues.
Perhaps it is possible to modify redisson to ignore these single-line CLUSTER NODE responses when all  <ping-sent> <pong-recv> <config-epoch> values are zero?  I can find no other record during the numerous tests of this where a CLUSTER NODES command has this single-line response, and if it is skipped/missed, cluster topology is still represented fine and all things appear to continue to work properly after failover.

Thank you for the analysis.
Can you ask AWS Team to comment this case?

Please try attached version.
redisson-3.18.1-SNAPSHOT.jar.zip

Thank you for help! Fixed


fix many issues in DefaultKafkaProducerFactory#updateConfigs()

There are many defects in the original DefaultKafkaProducerFactory#updateConfigs() as below:
#1 public void updateConfigs(Map<String, Object> updates) {
#2		updates.entrySet().forEach(entry -> {
#3			if (entry.getKey().equals(ProducerConfig.TRANSACTIONAL_ID_CONFIG)) {
#4				Assert.isTrue(entry.getValue() instanceof String, () -> "'" + ProducerConfig.TRANSACTIONAL_ID_CONFIG
#5						+ "' must be a String, not a " + entry.getClass().getName());
#6				Assert.isTrue(this.transactionIdPrefix != null
#7								? entry.getValue() != null
#8								: entry.getValue() == null,
#9						"Cannot change transactional capability");
#10				this.transactionIdPrefix = (String) entry.getValue();
#11			}
#12			else if (entry.getKey().equals(ProducerConfig.CLIENT_ID_CONFIG)) {
#13				Assert.isTrue(entry.getValue() instanceof String, () -> "'" + ProducerConfig.CLIENT_ID_CONFIG
#14						+ "' must be a String, not a " + entry.getClass().getName());
#15				this.clientIdPrefix = (String) entry.getValue();
#16			}
#17			else {
#18				this.configs.put(entry.getKey(), entry.getValue());
#19			}
#20		});
#21	}

It has following defects:

given the input is a Map, we can't rule out the possibility that both key and value could be null (e.g. in default HashMap); when key is null, Line # 2 will thrown NPE; when value is null; Line # 18 will throw exception for ConcurrentHashMap disallows null key or value (this.configs is based on this impl class);
from either Line # 10, it implies null value for ProducerConfig.TRANSACTIONAL_ID_CONFIG is allowed; but when entry.getValue() returns null, the entry.getValue() instanceof String in Line # 4 should have return false without reaching later statements (e.g. Line # 6);
obviously in both Line # 5 and Line # 14, the intention was  "' must be a String, not a " + entry.getValue().getClass().getName()); entry.getClass() would always return Map.Entry.

I found I need to fix the legacy checkStyle issue for this gigantic class. To avoid code review difficulty, I split the PR commits into two, the former of which is focused on legacy checkStyle manual labour. So to verify the code logic change alone, simply focus on the second commit at https://github.com/spring-projects/spring-kafka/pull/2897/commits/8da52f57325d227134801a862b25bf76f237de08

How about this ./gradlew check -x test?
Probably that checkstyleMain doesn't see our src/checkstyle/checkstyle.xml config.

How about this ./gradlew check -x test? Probably that checkstyleMain doesn't see our src/checkstyle/checkstyle.xml config.

thanks. It works. Lesson learned.


Non-square maxpooling for TensorFlow-->IR-->Caffe

Platform (like ubuntu 16.04/win10): ubuntu 16.04
Python version: 2.7
Source framework with version (like Tensorflow 1.4.1 with GPU): 1.12 GPU
Destination framework with version (like CNTK 2.3 with GPU): Caffe
Pre-trained model path (webpath or webdisk path): NA
Running scripts: NA
In tensorflow network I have a layer of
max_pool(x, ksize=[1, 2, 1, 1], strides=[1, 2, 1, 1], padding='SAME')
after convert to IR then Caffe, it becomes
layer { ... type: "Pooling" pooling_param{kernel_size: 2...}}
Just wonder the current release do support non-square max_pool?
Thanks

Hi @eerobert . Yes, current release does not support it. We are going to fix it and will ping you if it is done.


how to use vsc to debug

I use vsc to debug this project, but it failed.

Egg 调试 ： https://zhuanlan.zhihu.com/p/29397200


Unet from Monai (Pytorch) does not have right architecture

Netron app and version: Online webapp
OS and browser version: Google Chrome

Steps to Reproduce:
1.x class MyModule(torch.nn.Module):
def unet(self,x):
x =  monai.networks.nets.UNet(
spatial_dims=2,
in_channels=1,
out_channels=1,
channels=(4, 8, 16, 32, 64),
strides=(2, 2, 2, 2),
)
return x
2. traced = torch.jit.trace(model, torch.rand(1, 1, 512, 512))
torch.jit.save(traced, 'scriptmodule.pt')
Attached there is a copy of the displayed moduled in netron, not properly build and also the file I'm currently used to create it

@ldelaoa can you share a model file and some context on what output is expected?

Sure, please find it attached as zip, because I was not able to upload it as .pt
And I was expecting something with encoding/decoding architecture, similar as images on the following links: https://opg.optica.org/getImage.cfm?img=QC5sYXJnZSxib2UtMTEtOS01MzIxLWcwMDE
https://miro.medium.com/max/1400/1*OkUrpDD6I0FpugA_bbYBJQ.png
Thanks for that quick reply
scriptmodule.zip


Eurovision Song Contest Analysis

ML-Crate Repository (Proposing new issue)
:red_circle: Project Title : Eurovision Song Contest Analysis
:red_circle: Aim : Create a data analysis project which will analyse the data given in the dataset.
:red_circle: Dataset : https://www.kaggle.com/datasets/latifahmakuyi/eurovision-winners-1956-2022
:red_circle: Approach : Try to use 3-4 algorithms to implement the models and compare all the algorithms to find out the best fitted algorithm for the model by checking the accuracy scores. Also do not forget to do a exploratory data analysis before creating any model.

📍 Follow the Guidelines to Contribute in the Project :

You need to create a separate folder named as the Project Title.
Inside that folder, there will be four main components.

Images - To store the required images.
Dataset - To store the dataset or, information/source about the dataset.
Model - To store the machine learning model you've created using the dataset.
requirements.txt - This file will contain the required packages/libraries to run the project in other machines.

Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.

:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Follow Contributing Guidelines & Code of Conduct before start Contributing.

:white_check_mark: To be Mentioned while taking the issue :

Full name :
GitHub Profile Link :
Participant ID (If not, then put NA) :
Approach for this Project :
What is your participant role? (Mention the Open Source Program name. Eg. HRSoC, GSSoC, GSOC etc.)

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

Hi! I would like to contribute to this under KWOC '22.
Full Name: Manasvi Emmadi
GitHub Profile Link: https://github.com/ManasviEmmadi
Participant ID: NA
Approach for this Project : Use different eda techniques to observe patterns to understand dataset
What is your participant role?: KWoC '22

Issue assigned to you @ManasviEmmadi

Unassigned. ML-Crate is going to be part of DWOC from Jan, 15, all the unfinished issues will be taken by the contributors of DWOC.

Hi!
I'm interested in taking this issue.
Full Name : Mariam
GitHub Profile Link : https://github.com/mariam7084
Participant ID: NA
Approach for this Project : Firstly, i will perform exploratory data analysis to understand the various trends in data. Then I will start modeling process using different models and evaluate them using suitable metrics and choose the best model out of them.
What is your participant role? KWoC

Hi @mariam7084 issue assigned to you. You can start working on it.


In automatic 1.12+ mode, proxy should test/resolve a backend service before adding

In the example for go-demo, if your service is not attached to the proxy network (ie. you forgot to add --network proxy), then docker-flow will fail with 500 errors and may not recover.  It should test (and output an appropriate message) when a backend service is registered, but is not reachable.

The proxy does check whether the communication with the service can be established.
Let me explain the current flow of the automation proxy configuration.

The swarm-listener detects a new service and send a notification to the proxy
The proxy tries to reconfigure itself. It starts by checking whether the service is reachable. If it isn't, it returns status 500 to the swarm-listener.
The swarm-listener retries a notification until the response from the proxy is 200 or it reached the maximum number of retries.

In normal cases, the reason proxy cannot establish the communication with the service is because it is still not running. The listener starts sending notifications to the proxy when a service is created, not necessarily when it's running. Swarm needs to pull the image, create a container, and attach it to its networks. Some time passes between the creation of a service and actual instance running. In other words, when everything is set up correctly, it's normal that the first attempt does not work. The second or the third will.
The problem is that the proxy only knows whether the service is running or not. When the service is not running, it does not know whether that's because it will be running soon, or it is not reachable, or ...
Long story short, at the moment, I added a more descriptive message. Not it will say: "Could not reach the service go-demo. Is the service running and connected to the same network as the proxy?" That message is displayed only when the service is not reachable.
I'm not sure what you mean by "may not recover". In my tests under a similar scenario, it simply rejects the request to reconfigure itself when a service is not reachable and returns 500 (now changed with a more descriptive message). The swarm-listener retries the notifications and, if the service continues being unreachable, gives up after a certain number of retries.
Can you let me know what you mean by "may not recover" and share any info you might have that would help me reproduce the case?

Appreciate the very long and detailed reply.  I will experiment more with the explanation you gave and report back. Thanks again.


Implement gRPC Server Tracing

This change introduces gRPC server function tracing. In addition to the timespan itself, the arguments, return results, and any metadata or errors are written in trace spans as well.

Looks like there are a few lint errors to clean up: https://travis-ci.org/GoogleCloudPlatform/cloud-trace-nodejs/jobs/160330433.


Numbers and Dates

It seems like any way I try to save an integer or a date this throws an error. Is there any way at all to save an integer or a date?

Any thoughts?


Question: how can my user scroll to an x / y cordinate in virtualized grid ?

how can a user scroll to an x / y coordinate in virtualized grid ?
This is not well specified in the doc, is there a way to scroll to particular cell (x,y) in a grid ?
Same for a list, an y position ?
Thanks a lot for your help !

Ok there with ScrollLeft or Scroll to Column https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md


Fix TestTradeActions_SyntheticOfferIds

Every time test scenarios are rebuilt we need to update these lines in actions_trade_test.go file.
From @tomerweller:

Assets get an incremental id when they are first encountered in ingestion. The base//counter canonical form is driven by those ids (base is lower, counter is higher). When we change ingestion order, or the scenarios tx order, or stellar-core tx ordering changes, these ids can change and the canonical order can change.
This also has the unpleasant effect of ids being different from one horizon instance to another. Though, I don't think we ever expose these ids externally.
We can, alternatively use a deterministic issuer+assettype+assetcode id, but that means much more data on the id column. Might be worth it though?

Do you actually see this change every time? In most cases, when ingestion order doesn't change and stellar-core doesn't change tx ordering in a ledger, this shouldn't change.

I've rebuilt scenarios twice recently and it was always a problem. Maybe it's connected to the fact that I used core 10.0.0 and then 10.1.0.


Fix stream_compression_payload flake

Fixes #12892

****************************************************************

libgrpc.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]     +48  +0.0%

  [ = ]       0 TOTAL      +48  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE              FILE SIZE
 ++++++++++++++ GROWIN ++++++++++++++
  [ = ]       0 [None]    +208  +0.0%

  [ = ]       0 TOTAL     +208  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Corrupt JSON data (indicates timeout or crash):
    bm_fullstack_unary_ping_pong.BM_UnaryPingPong_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__512_512.opt.new: 1

[microbenchmarks] No significant performance differences

Basic Tests C++ Linux [opt] - #13695
Basic Tests Multi-language Linux - #13757
Basic Tests Windows [dbg] - #13149


ipedraza/examples

had a weird branching error so created new pull request with if statements in gallery.html


fill holes

Hello,
Is that possible that the code fills the holes, for example an "O" characters inside?
I have some ideas for acceleration if you like it. For example using angles that pre-caclulated on polygons etc, to obtain the likely possible best rotation to fit to the cutout etc.

Oh I see you have this in the to do list!

I thought of something, what if you open or brake all "holy" shapes then the algorithm can work in it, you only need to make sure that the hole is small that no other shapes can fit there, but the usual algorithm still works on it. Only flag it and replace it then with the original closed "holy" shapes.
It is possible to make such opening by math.

just added this feature as an optional toggle in the settings. Let me know if you have any issues with it.


Adding SimpleMDE on multiple textareas

I'd like to add SimpleMDE to 6 textareas in a page.
What is the best way?
My idea is:
var simplemde = new SimpleMDE({ element: $(".simplemde")[0,1,2,3,4,5] });

Will this work or any better way to do it?

Ok, I found the solution in another thread.
$('textarea').each(function() {
    var simplemde = new SimpleMDE({
        element: this,
    });
    simplemde.render();
})

Thank you!

i correct this, for the new version
JQuery
$('textarea').each(element => {
  const simplemde = new SimpleMDE({
    element: element,
  });
});

Js
[].forEach.call(document.getElementsByTagName('textarea'),element => {
  const simplemde = new SimpleMDE({
    element: element,
  });
});

The simplemde.render(); is not needed


Updater Action

name: 'Updater Action'
description: 'Runs dependabot-updater in Actions'
author: 'GitHub'
runs:
using: 'node12'
main: 'dist/main/index.js'
post: 'dist/cleanup/index.js'

Why:
Closes [issue link]

What's being changed:

Check off the following:

[ ] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

Updater Action
###Name: github/dependabot-action
Runs Dependabot workloads via GitHub Actions.
Usage Instructions
This action is used by the Dependabot version and security features in GitHub.com. It does not support being used in workflow files directly.
Issues
If you have any problems with Dependabot, please open an issue on dependabot/dependabot-core or contact GitHub Support.


Updating the Hygieia docs with GitBook!

Hello @wulkano!
Addison here from GitBook. I came across this repo for your product docs, and wanted to share with you some of the things we're working on at GitBook to make documentation more accessible and engaging.
I went ahead and used our GitHub sync feature to get your site back up and running at https://open-source.gitbook.io/kap/
It only took me 5min to get it live 🤯
At GitBook, we've been working on building the best tool for technical teams to document their work - and we've seen a lot of community docs move to GitBook recently as well for a few reasons:

Free hosting
Custom branding / theming
Custom URLs & Domains
GitHub/GitLab sync (this is what made getting the docs up and running so fast!)
Integrated Search (with AI features on the way)
Deploy Previews for PRs
Continuous deployment

I'd love to give you a full product tour if you're interested? We're building out a content library of technical guides & communities built on GitBook, and think it would be great to have you and these docs in on the launch.
Feel free to let me know here, or shoot me a message to addison (@) gitbook.com!
Addison

Hi Addison, this seems like a bot pull request for marketing. This changes things that don't make sense (e.g., renaming a specific md filename to just readme.
We only have docs for creating plugins currently, so I don't think this makes sense for us.
Thanks.

Hey @timothyis, no problem at all! Not a marketing bot, just wanted to see if you'd be interested in checking out your docs how they look on GitBook. They'll be living here if you ever want to check them out in the future!
https://open-source.gitbook.io/kap/
Feel free to give me a shout if you're ever interested to learn more in the future!


Update showcase.md

Added myself to the showcase.

hey! thanks for the contribution :) I want to make sure the showcase remains high-signal for folks in that each entry should demonstrate something that the previous ones haven't yet. going to close this for now but please feel free to submit another PR sometime in the future :)


deepEquals behavior

I'm a bit confused by the deepEquals behaviour here. As there is an option to enable deepObject equivalence I was not expecting objects to be equivalent (with deepObject=false) in this scenario.
const memoize = require('lru-memoize');

let multiply = (a, b, c) => {
  console.log('Multiplying', a, b, c);
  return a.val * b.val * c.val;
};

multiply = memoize(10)(multiply);

const a = {val:1};
const b = {val:2};
const c = {val:3};

const a2 = {val:1};

multiply(a,b,c)
multiply(a,b,c)
multiply(a2,b,c)

// Output
// Multiplying { val: 1 } { val: 2 } { val: 3 }

I was expecting that the multiple calculation would be run twice. Once for the first multiply(a,b,c) and again for the multiply(a2,b,c). The same is true for arrays.
I dug into the code a little and it looks like the intention is to penetrate 1 level deep by default?
As far as I know the arguments to a function will always be the array-like Arguments object, and I don't think that would ever be the same across function calls so it would make sense to me to start with something that handles the array specifically and then drops into the shallow or deepEquals possibilities.
Perhaps deepEquals and deepObject equals should be separate arguments, but I've reused deepObject in this example PR: https://github.com/erikras/lru-memoize/pull/77
It should be easy to see the current behaviour for these unit tests by putting:
const cache = createCache(limit, deepEquals(equals, deepObjects));

back in.

To add to this: nested arrays are evaluated deeply even if deepObjects is false (perhaps that's why it's called deepObjects?)


realtoxicityprompts quickstart

still checks HF every run
this isn's so needed - especially for RTP Blank!

see also #323

closed in 2301ed15e8053cf2689b125abb3243f2206c5559


Lastest Dependencies?

README.md states:

PyTorch 2.5.0.dev
Torch-TensorRT 2.5.0.dev
but pip install --pre -U torch torchvision torch_tensorrt --index-url https://download.pytorch.org/whl/nightly/cu124 --extra-index-url https://pypi.nvidia.com installs 2.6.0dev, which does break some other stuff I'm using.
=> Do you know which are the latest 2.5.X versions for torch torchvision torch_tensorrt that work, so I can avoid installing 2.6.x dev?

README updated. I'm using 2.6.0.dev and do not encounter issue.

Okay for me, for example,  vs-code with lib doesn't work anymore.
Since you have no problems, it must be something else with my system.

I was only referring to vs-rife for no issue with 2.6.0.dev. Other projects may or may not have issue.

Okay, like I wrote, 'which does break some other stuff I'm using' I have no direct problem with vs-rife.


Add HTMLImageElement.decoding

WHATWG/attr-img-decoding

The decoding attribute indicates the preferred method to decode this image. The attribute, if present, must be an image decoding hint. This attribute's missing value default and invalid value default are both the auto state.

Closes #392

thanks!


What is this "Elided"?

I had to google this unused word, and it still left me baffled
1. omit (a sound or syllable) when speaking.
"English speakers often elide the vowel completely"
2. join together; merge.
"whole periods of time are elided into a few seconds of screen time"

why would my variable dumper cut off display after 20 array keys??? What is going on??
Please consider removing this useless confusing functionality

Do you really need to see "Auftrag Nr 300001 wurde im aktuellen Archive..." another 105 times?
This skips parsing only in the case of large numeric arrays, something that other dumpers also do for performance reasons.
You can always change the values or remove the plugin if you don't want it, but it's been in here for 6 weeks so if you haven't triggered it until the exact use case it's intended for then the thresholds seem more or less correct.

I had to google this unused word, and it still left me baffled

I was under the impression elision was fairly well known, at least in programming (ie. eliding types that can be statically implied) but I suppose "Omitting" works too - do you think I should change it?

I only just switched to dev-master and got this the same day, had to rub my eyes and use the symfony var dumper to find the actual contents of my variable (embarrassing).
There is no indication of why was my array trimmed to 20 keys, what were remaining ones, and - sorry - but in general this is a bad feature. Kint was fine for 10 years without this.
Please don't damage usability in such a major way for some theoretical "performance reasons" you can't demonstrate - nor does symfony varDumper have this feature as you claim (I used it to actually see the variable contents).

what were remaining ones

I see the remaining keys in your own screenshot...

nor does symfony varDumper have this feature as you claim

Symfony does, but with a threshold of 2500 items instead of 100... But because symfony vardumper is breadth-first that includes things on child levels.
So if you have 500 items with 10 children each you'll get the full first 250 items and the next 250 will only show the top level, not the children.

And if you have 500 more complex objects with 1000 descendents each you'll get cut off at whatever depth the number runs out.
Needless to say, this isn't much use for a depth-first system, as we'd be going full depth on whatever happens to be the first tree of the dump and then ignoring the rest altogether, and I can't think of a way of going breadth-first and keeping kint's "Killer feature" plugins.
One thing I do notice is that vardumper doesn't trigger this on the top level, only on children. I could parse the remaining items but with the depth limit set so that they are all blacklisted. That would probably be a better solution than what I have now. I'll see if I can do that, but I think I probably made it this way for a reason.

@raveren I changed it in 496b964f0372ccb6de865119129340acd0d35e31 to act like depth limit - it'll still show each individual item, just not what's below it. Can you try that out and give feedback? If you haven't got any other suggestions I'll put this change on master


unexpected error - prettier-atom

I've been using Atom with the prettier-atom plugin for a long time. Today I installed linter-cflint and I get this unexpected error
https://www.screencast.com/t/0cYjJR4T
I don't get that if I disable prettier-atom but any way to get the two to play well together?
-Phil

prettier-atom has an "exclude" setting. I put *.cfc in there and that seems to help.


validation match[x] don't work anymore... if custom setter is used.

In entity:
	public function setUsrPassword($value)
	{
//$this->usr_password
		$this->attributes['usr_password'] = password_hash('my-password', PASSWORD_BCRYPT, ['cost' => 11]);
	}

in model:
		$this->validationRules['usr_password_1'] = 'required|matches[usr_password]';

I think it is because custom set is called now before validation... before last changes it was called before save action.

Additionally
this code in Entity:
	public function setUsrPassword($value)
	{
		$this->attributes['usr_password'] = password_hash( trim($value) . config('App')->salt, PASSWORD_BCRYPT, ['cost' => 11]);
	}

makes value $user_entity->usr_password  different every time.

I'll look into the validation issue, but there's a simple fix for the second part you brought up: use a different field name. For example, in my auth stuff, I've got a field in the database called password_hash to be clear about what's being saved. Then in the Entity there is a setPassword() method which does the same as yours. However, it's setting the value of the password_hash column and that setter is only called if the password has been changed.
If you save the password field (using your setUsrPassword method) then, yes, the hash will be different every time. That's how password_hash works.

Custom sets will always be called on an Entity prior to validation if you're doing validation in the model.
For certain things, like validating two fields that must match each other, that's best done in the controller before you try to save to database.


[Bug]: Tensorizer test is broken

Your current environment
Not applicable
🐛 Describe the bug
@DarkLight1337
Your PR https://github.com/vllm-project/vllm/pull/7836 broke Tensorizer test.
Before: https://buildkite.com/vllm/ci-aws/builds/7580
After: https://buildkite.com/vllm/ci-aws/builds/7583
Will you be able to fix it?
Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

Thanks for the heads up, I'm looking into it now.


STM32L4 Support

Hi, is there any plans to add support for the Ultra-low power line of ST MCU's such as STM32L4R9? Or any way to get the sdk running on these chips?
Thanks.

not at the moment unless there is a commercial inquiry that justifies the effort.


Proposal: strict flag to prevent uninferrable generic types from being inferred as {}

I'm sure there an issue or discussion about this I missed, but I couldn't find it via search.
Search Terms
Generic, infer, default, {}, { }, empty, shape, object
Suggestion
Behind a new strict mode flag --strictGenericBindings, when binding concrete types to generic type parameters, if a type can't be inferred TSC should throw an error at compile time instead of defaulting to {}.
Use Cases
Let's say you have the following Promise:
const p = new Promise(resolve => resolve(42)) // Promise<{}>
p.then(r =>
  r + 4 // Error: Operator '+' cannot be applied to types '{}' and '4'.
)

This gives an error when you try to use the Promise's result. This experience isn't ideal, because the error is non-local. Looking at the code that threw that error, it's not obvious why r is {}.
If I try to fix this by adding an explicit annotate when I consume r, it works:
p.then((r: number) => {
  r + 4 // OK
})

But if I have strictFunctionTypes enabled, that breaks because {} isn't assignable to number:
p.then((r: number) => {
  r + 4 // Error: Argument of type '(r: number) => void' is not assignable to parameter of type '(value: {}) => void | PromiseLike<void>'.
})

The real fix is to explicitly bind a type parameter when I consume Promise:
const p = new Promise<number>(resolve => resolve(42))
p.then(r => {
  r + 4
})

But unfortunately, the error messages didn't help me get there.
A possible solution to this problem is to throw a helpful error message when a generic type parameter can't be inferred. This can help prevent bugs, and help programmers catch bugs earlier:
const p = new Promise(resolve => resolve(42)) // Error: Unable to infer a generic type for Promise<T> - please bind one explicitly. Eg. new Promise<myType>(...).
p.then(r => {
  r + 4
})

Checklist
My suggestion meets these guidelines:

[ ] This wouldn't be a breaking change in existing TypeScript / JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. new expression-level syntax)

Related Issues

https://github.com/Microsoft/TypeScript/issues/26809
https://github.com/Microsoft/TypeScript/issues/10247

In the meantime you can use a lint rule to detect such cases: https://github.com/fimbullinter/wotan/blob/master/packages/mimir/docs/no-inferred-empty-object.md

IIRC there was a PR for such a flag, but it was not accepted for whatever reason. I cannot find it anymore

I found it by accident: Duplicate of #5254, relevant comment: https://github.com/Microsoft/TypeScript/issues/5254#issuecomment-203321370

@ajafff Great find! My issue is a proposed solution for the same problem raised in #5254. And it looks like @DanielRosenwasser already started working on it a while back https://github.com/Microsoft/TypeScript/commit/e21f7cfa1ada74f7ea74d2a9860ed00312be7020.
If TypeScript authors feel like it's a good idea, I'd love to continue Daniel's work with a fully fleshed out PR.

I think we (Google) would be interested in using this.  bcherny's description about it makes errors with strictFunctionTypes non-local is exactly our experience.

Daniel will see what the impact of such a flag would be

It's exciting to see this committed for 3.4! One more use case, for record-keeping:
function ReactComponent() {
  const [boolean, setBoolean] = useState(true) // ok
  setBoolean(false) // ok

  const [array, setArray] = useState([])
  setArray([1, 2, 3]) // Error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'SetStateAction<never[]>'.
}

As an aside, why is {} used as a fallback instead of unknown?

@OliverJAsh relevant comment here.

Another use case: when using a pipe or compose function, generics are sometimes lost.
declare const identity: <T>(a: T) => T;
declare const pipe: <A, B>(ab: (a: A) => B) => (a: A) => B;

const fn = pipe(identity); // generics lost, now {} => {}

I run into this very often when trying to compose my React HOCs:
declare const pipe: <A, B, C>(ab: (a: A) => B, bc: (b: B) => C) => (a: A) => C;

type Component<P> = (props: P) => {};

declare const myHoc1: <P>(C: Component<P>) => Component<P>;
declare const myHoc2: <P>(C: Component<P>) => Component<P>;

declare const MyComponent1: Component<{ foo: 1 }>;

// generics lost, now Component<{}>
const MyComponent2 = pipe(
    myHoc1,
    myHoc2,
)(MyComponent1);

IIUC, this particular use case concerns https://github.com/Microsoft/TypeScript/issues/12838 and https://github.com/Microsoft/TypeScript/issues/10247.
However, with the option proposed here, TypeScript would at least alert the developer to change the code to workaround this problem, to something like:
// Component<{ foo: 1 }>
const MyComponent2 = pipe(
    () => myHoc1(MyComponent1),
    myHoc2,
)({});

Can it be closed now?
https://github.com/microsoft/TypeScript/wiki/Breaking-Changes#generic-type-parameters-are-implicitly-constrained-to-unknown
https://github.com/Microsoft/TypeScript/pull/30637

We didn't quite implement this flag, but the new behavior of unknown fixes the vast majority of problems associated with {}. Combined with strictFunctionTypes and not writing generic functions which can be called with zero inference sites in the first place, I think this effectively fixed.


Fix remaining Asterisk errors

There are still some errors when starting Asterisk. Maybe we can fix some.
[Jan  4 19:19:15] WARNING[301]: loader.c:2381 load_modules: Some non-required modules failed to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: res_timing_dahdi declined to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: Failed to resolve dependencies for res_stir_shaken
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: res_stir_shaken declined to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: res_pjsip_transport_websocket declined to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: cel_sqlite3_custom declined to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: cdr_sqlite3_custom declined to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: Failed to resolve dependencies for res_http_media_cache
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: res_http_media_cache declined to load.
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: Failed to resolve dependencies for res_pjsip_stir_shaken
[Jan  4 19:19:15] ERROR[301]: loader.c:2396 load_modules: res_pjsip_stir_shaken declined to load.
[Jan  4 19:19:15] WARNING[385]: chan_sip.c:35461 deprecation_notice: chan_sip has no official maintainer and is deprecated.  Migration to
[Jan  4 19:19:15] WARNING[385]: chan_sip.c:35462 deprecation_notice: chan_pjsip is recommended.  See guides at the Asterisk Wiki:
[Jan  4 19:19:15] WARNING[385]: chan_sip.c:35463 deprecation_notice: https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip
[Jan  4 19:19:15] WARNING[385]: chan_sip.c:35464 deprecation_notice: https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip

ERROR[387]: codec_dahdi.c:813 find_transcoders: Failed to open /dev/dahdi/transcode: No such file or directory

Hi, I have same error when I start Astersk

Most of them will probably be fixed with #17. But I have some others not mentioned here:
[Feb 18 01:29:15] ERROR[682][C-00000002]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("svaiup7tq184.invalid", "(null)", ...): Name does not resolve
[Feb 18 01:29:15] WARNING[682][C-00000002]: chan_sip.c:16938 __set_address_from_contact: Invalid host name in Contact: (can't resolve in DNS) : 'svaiup7tq184.invalid'
[Feb 18 01:29:15] ERROR[682][C-00000002]: netsock2.c:96 ast_sockaddr_stringify_fmt: getnameinfo(): Unrecognized address family or invalid length
[Feb 18 01:29:45] WARNING[675]: res_http_websocket.c:559 ws_safe_read: Web socket closed abruptly
[Feb 18 01:29:45] WARNING[683]: res_http_websocket.c:559 ws_safe_read: Web socket closed abruptly
[Feb 18 01:29:47] ERROR[687]: iostream.c:552 ast_iostream_close: SSL_shutdown() failed: error:00000006:lib(0):func(0):EVP lib, Unknown

It seems that this one is not so easy to fix:
[Mar  7 14:52:58] ERROR[558]: res_pjsip/config_system.c:267 system_create_resolver_and_set_nameservers: There are no local system nameservers configured, resorting to system resolution
[Mar  7 14:52:58] ERROR[558]: res_pjsip/config_system.c:267 system_create_resolver_and_set_nameservers: There are no local system nameservers configured, resorting to system resolution

Seems to be an issue if the used libc does not provide a certain functionality.
See here: https://github.com/openwrt/telephony/issues/516
What does Alpine use?

Again concerning the nameserver error message.
The HA addon docker base images really musl as C library.
So asterisk is affected by this issue.
See here: https://github.com/hassio-addons/addon-base/blob/main/base/Dockerfile#L32

Interesting, is there an alternative to musl?

Yes, https://github.com/hassio-addons/addon-debian-base.

So we should consider using a Debian Base image then.
What we should not do under all circumctances is this: glibc-based Alpine with a mixture of two C libraries.
See: https://ariadne.space/2021/08/26/there-is-no-such-thing-as-a-glibc-based-alpine-image/

Alright, I'm fine either case. We will just have to install Python in the Debian image.

Gives us more control on the features we really need in the addon as most modules are probably not needed for the use-case described here.

Interesting... how do we put this in this repo? Copying and pasting? Using git submodule?

I would suggest to copy and paste the relevant stuff from the Dockerfile and copy the the build_asterisk.sh script.
Looking at the build script, it does the standard stuff.
Furthermore it is also suitbale for cross-compilation (see BUILD_NATIVE) and enables the OPUS codec.

As this is standard stuff I would just recreate it.
The commands needed to compile asterisk with the various options are also documented on the asterisk documentation page itself.  So there is nothing really new invented here.

@felipecrs
Lets use this build script.
Its published under MIT license.
https://github.com/andrius/asterisk/blob/master/debian/18-current/build-asterisk.sh
looks familiar, hm? 😉

@nanosonde that's awesome!! And yes. Very familiar lol

[Mar 17 17:23:14] WARNING[476]: res_phoneprov.c:1233 get_defaults: Unable to find a valid server address or name.
[Mar 17 17:23:14] NOTICE[476]: res_smdi.c:1424 load_module: No SMDI interfaces are available to listen on, not starting SMDI listener.

Damn. Skipped through.
Could be disabled by default.

[Mar 17 17:27:37] ERROR[476]: ari/config.c:312 process_config: No configured users for ARI

Also.

Hello,
I still have these errors and warning when starting Asterisk 20.5.0 in Docker container based on Alpine (https://registry.hub.docker.com/r/andrius/asterisk), hosted on a Synology NAS (network HOST) :
ERROR[1]: loader.c:2524 load_modules: Failed to resolve dependencies for res_stir_shaken
ERROR[105]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("asterisk", "(null)", ...): Name does not resolve
ERROR[105]: ari/config.c:312 process_config: No configured users for ARI
ERROR[106]: res_pjsip/config_system.c:267 system_create_resolver_and_set_nameservers: There are no local system nameservers
WARNING[105]: res_phoneprov.c:1249 get_defaults: Unable to find a valid server address or name.
Any idea if it will be solved?
Does these errors prevent Asterisk from working properly?

@CedricAndry I am confused. Are you reporting issues for another image?
And as far as I can tell they do not prevent Asterisk from working.

@felipecrs , yes, I am really sorry, I made a mistake.
Thanks for your answer by the way!
Maybe can I afford another question : it is normal that their is no socket opened waiting on the default port (5060) when I launched a command netstat -a | grep 5060 ?

I am not sure, but it could be. This add-on ships pre-configuration for Asterisk, which you can see at:

https://github.com/TECH7Fox/asterisk-hass-addons/tree/main/asterisk/rootfs/etc/asterisk
https://github.com/TECH7Fox/asterisk-hass-addons/tree/main/asterisk/rootfs/usr/share/tempio

But you can also use this add-on with docker: https://github.com/TECH7Fox/asterisk-hass-addons/blob/main/asterisk/CHANGELOG.md#400

Ok, thanks! I will try it!

Hello, i'm trying to install astrisk but i have the same error how you resolv it ?
Dec 14 15:29:36 tp asterisk[61765]: [Dec 14 15:29:36] ERROR[61765]: loader.c:2524 load_modules: res_timing_dahdi declined to load.
Dec 14 15:29:36 tp asterisk[61765]: [Dec 14 15:29:36] ERROR[61765]: loader.c:2524 load_modules: cdr_sqlite3_custom declined to load.
Dec 14 15:29:36 tp asterisk[61765]: [Dec 14 15:29:36] ERROR[61765]: loader.c:2524 load_modules: cel_tds declined to load.
Dec 14 15:29:36 tp asterisk[61765]: [Dec 14 15:29:36] ERROR[61765]: loader.c:2524 load_modules: cdr_tds declined to load.
Dec 14 15:29:36 tp asterisk[61765]: [Dec 14 15:29:36] ERROR[61765]: loader.c:2524 load_modules: cel_sqlite3_custom declined to load.
Dec 14 15:29:36 tp asterisk[61765]: [Dec 14 15:29:36] ERROR[61765]: loader.c:2524 load_modules: cdr_pgsql declined to load.

These errors are not blocking. Isn't it working for you?

Yeah it bloking the starting of the service
systemctl restart asterisk
root@tp:/usr/src/asterisk-20.5.0# systemctl restart asterisk
Job for asterisk.service failed because a timeout was exceeded.
See "systemctl status asterisk.service" and "journalctl -xe" for details.
root@tp:/usr/src/asterisk-20.5.0#

journalctl -xe
root@tp:/usr/src/asterisk-20.5.0# journalctl -xe
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: chan_dahdi.c:19587 process_dahdi: Ignoring any changes to 'userbase' (on reload) at line 23.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: chan_dahdi.c:19587 process_dahdi: Ignoring any changes to 'vmsecret' (on reload) at line 31.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: chan_dahdi.c:19587 process_dahdi: Ignoring any changes to 'hassip' (on reload) at line 35.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: chan_dahdi.c:19587 process_dahdi: Ignoring any changes to 'hasiax' (on reload) at line 39.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: chan_dahdi.c:19587 process_dahdi: Ignoring any changes to 'hasmanager' (on reload) at line 47.
Dec 14 15:38:43 tp asterisk[62291]: Cannot connect to server socket err = No such file or directory
Dec 14 15:38:43 tp asterisk[62291]: Cannot connect to server request channel
Dec 14 15:38:43 tp asterisk[62291]: jack server is not running or cannot be started
Dec 14 15:38:43 tp asterisk[62291]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Dec 14 15:38:43 tp asterisk[62291]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Dec 14 15:38:43 tp asterisk[62291]: Cannot connect to server socket err = No such file or directory
Dec 14 15:38:43 tp asterisk[62291]: Cannot connect to server request channel
Dec 14 15:38:43 tp asterisk[62291]: jack server is not running or cannot be started
Dec 14 15:38:43 tp asterisk[62291]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Dec 14 15:38:43 tp asterisk[62291]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib setup.c:547:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Dec 14 15:38:43 tp asterisk[62291]: ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Dec 14 15:38:43 tp asterisk[62291]: Cannot connect to server socket err = No such file or directory
Dec 14 15:38:43 tp asterisk[62291]: Cannot connect to server request channel
Dec 14 15:38:43 tp asterisk[62291]: jack server is not running or cannot be started
Dec 14 15:38:43 tp asterisk[62291]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Dec 14 15:38:43 tp asterisk[62291]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: ari/config.c:312 process_config: No configured users for ARI
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: confbridge/conf_config_parser.c:2386 verify_default_profiles: Adding default_menu menu to app_confbridge
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: cel_custom.c:92 load_config: No mappings found in cel_custom.conf. Not logging CEL to custom CSVs.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: cel_tds.c:447 tds_load_module: cel_tds has no global category, nothing to configure.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] WARNING[62291]: cel_tds.c:552 load_module: cel_tds module had config problems; declining load
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] WARNING[62291]: cel_pgsql.c:463 process_my_load_module: CEL pgsql config file missing global section.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] NOTICE[62291]: cdr_pgsql.c:541 config_module: cdr_pgsql configuration contains no global section, skipping module load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: codec_dahdi.c:813 find_transcoders: Failed to open /dev/dahdi/transcode: No such file or directory
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] WARNING[62291]: loader.c:2409 load_modules: Some non-required modules failed to load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] WARNING[62291]: loader.c:2503 load_modules: Module 'res_adsi' has been loaded but may be removed in a future release.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] WARNING[62291]: loader.c:2503 load_modules: Module 'app_getcpeid' has been loaded but may be removed in a future release.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] WARNING[62291]: loader.c:2503 load_modules: Module 'app_adsiprog' has been loaded but may be removed in a future release.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: loader.c:2524 load_modules: res_timing_dahdi declined to load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: loader.c:2524 load_modules: cdr_sqlite3_custom declined to load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: loader.c:2524 load_modules: cel_tds declined to load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: loader.c:2524 load_modules: cdr_tds declined to load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: loader.c:2524 load_modules: cel_sqlite3_custom declined to load.
Dec 14 15:38:43 tp asterisk[62291]: [Dec 14 15:38:43] ERROR[62291]: loader.c:2524 load_modules: cdr_pgsql declined to load.
Dec 14 15:38:43 tp asterisk[62291]: Asterisk Ready.
lines 1306-1352/1352 (END)

systemctl? Are we still talking about the Asterisk add-on for Home Assistant?

i'm doing a asterisk server for my home assitance it just for learn about voip

If you are not using the add-on then you are posting your question in the wrong place. And sorry, I don't have any idea to help with your problem.

but what is the add-on ?

Thanks you for your help


"Distinct" generated type throws a type error if a readonly input is provided

Bug description
Distinct throws a type error if its receives a readonly array.
This should be okay in the type system I feel. As it is, it discourages complex clause reuse via as const to maximize type narrowing. Okay, enough complaining. There is an easy enough workaround for now, simply coerce the type to it's non-readonly variant.
How to reproduce
Look at a clause like this in an IDE. It can be any query at all as long as you type the variable via as const.
const queryBlock = {
  distinct: ['id'], // <-- will cause a type error
  where: {field: {equals: value}},
} as const;

await client.things.findMany(queryBlock);

Workaround for now is this:
const queryBlock = {
  distinct: ['id'] as ['id'],
  where: {field: {equals: value}},
} as const;

await client.things.findMany(queryBlock);

Expected behavior
No type error for a valid distinct field.
Prisma information

model things {
  id                    Int                    @id @default(autoincrement())
  field                Int
}

const value = 3;
const queryBlock = {
  distinct: ['id'],
  where: {field: {equals: value}},
} as const;

await client.things.findMany(queryBlock);

Environment & setup

Node.js version: 16

Prisma Version

Hi @toddtarsi!
There is a feature request for readonly types as well as an explanation on why we didn't do it so far. I am going to close this issue as a duplicate, let's continue discussion there.

Oh, whoops! My mistake, thought this was something I caught. Thanks for the explanation and providing a great OSS codebase!


added Umea meetup

Added info about all events to date for the Umea meetup group.

Thanks for the review! I'll rebase and recommit the next few days.

@tordsson let us know if there's anything we can do to help you get this merged. 👍


Updated project to support Carthage

This PR adds full support for Carthage, and a solution to using RxSwift and ReactiveCocoa without mandating it for those who wish to use pure Moya.

Adds ReactiveMoya and RxMoya targets
Adds RAC 3.0 support to ReactiveCocoaMoyaProvider
Expands the example project to include demonstrations using reactive extensions

Thanks a lot, Justin! It's a huge PR – I'll take a look at it this weekend. If any other contributors could lend a hand, that'd be :+1:
Justin, could I please ask you to mark these improvements in the changelog? I see you've already updated the README – awesome :tada:
The tests are failing – looks like a Circle configuration problem around the Demo workspace. Any ideas?

No idea, I've never worked with circle before. I'll take a look and get back to you about that
—Justin Makaila
On Thu, Jul 16, 2015 at 9:09 PM, Ash Furrow<EMAIL_ADDRESS>wrote:

Thanks a lot, Justin! It's a huge PR – I'll take a look at it this weekend. If any other contributors could lend a hand, that'd be :+1:
Justin, could I please ask you to mark these improvements in the changelog? I see you've already updated the README – awesome :tada:
The tests are failing – looks like a Circle configuration problem around the Demo workspace. Any ideas?
Reply to this email directly or view it on GitHub:
https://github.com/ashfurrow/Moya/pull/169#issuecomment-122141741

1,054 files!?  That's... ahem a bit alarming.
It looks like all these files are mostly build artifacts.  Looking at other projects that support Carthage & CocoaPods, they don't include a Carthage/ folder that contains all the build headers.  I'm looking in particular at https://github.com/thoughtbot/argo
I'm wondering: can that entire folder be removed?  From what I understand about Carthage, it's a minimalist system, it seems like a red flag that all these header files are included here.

Yes, we could remove it. I pushed the Carthage/build dir so you can use the demo without running Carthage
—Justin Makaila
On Thu, Jul 16, 2015 at 11:15 PM, Colin T.A. Gray
<EMAIL_ADDRESS>wrote:

1,054 files!?  That's... ahem a bit alarming.
It looks like all these files are mostly build artifacts.  Looking at other projects that support Carthage & CocoaPods, they don't include a Carthage/ folder that contains all the build headers.  I'm looking in particular at https://github.com/thoughtbot/argo
I'm wondering: can that entire folder be removed?  From what I understand about Carthage, it's a minimalist system, it seems like a red flag that all these header files are included here.
Reply to this email directly or view it on GitHub:
https://github.com/ashfurrow/Moya/pull/169#issuecomment-122157655

Ah I see.  Well obv my vote is to keep the repo lighter.  Might make sense, then, to add something to the README about building, but I think people that use Carthage already can figure it out :-)

@colinta I'm with you completely, I just didn't want to introduce a PR with less functionality than the previous version. Ultimately, the decision is up to @ashfurrow and the core team, and I'm open to modifying this PR to match the requirements!

Are you saying the demos won't even run if the user doesn't use Carthage?

It's common to check in the Pods directory for libraries, so this is duplicating all of that too: https://github.com/ashfurrow/Moya/tree/master/Demo/Pods
Personally, I'd remove both of them, and in the README tell people if they want to demo it run pod try Moya.  It's a huge amount of additional files for a lib that's probably 6-8 swift files big in reality.

@orta I'm with you on that. Not a huge fan of pushing things just for the sake of an example project.
I'm going to make the adjustments for the circle build, and then make the modifications I need to to get pod try Moya to work. I think broke that in my haste of ripping everything out early on.

pod try https://github.com/justinmakaila/Moya/ will let you test. You need to add a working Podfile to the Example dir, this will probably do it.

Yeah, I think it's time to separate out the demo from the library repo.
I only included the Pods directory because I was told it was necessary for Carthage support. If someone were interested in writing a how-to blog post about supporting Carthage and CocoaPods, that would probably be a great service to the open source community. As a library owner, I remain confused about how my own library is structured and why. It's not a comfortable feeling.

This could be rolled into #168 where we could have a Demo repo for both Carthage and CocoaPods, separate from the main repo.

Downside of that is pod try Moya doesn't work

How so? Never used pod try before.

It will go to the Moya podspec, find it's repo, download it and look for an xcodeproj + podfile. Separating the demo repo from the lib repo would make that tough.

Can we link the library to the demo repo some how? git submodules or something?

Not right now, https://github.com/CocoaPods/cocoapods-try/issues/38

I mean, we could move the demo project to a separate project, pushing a Carthage/Build dir there, which would allow people to just clone and run.
Obviously, this isn't ideal, because pod try is a sweet way to handle that.

I don't think moving the example to a separate repo is a good idea, other libraries don't do this.
I'd move the Pods and the Carthage-whatever directories into .gitignore then add a note in the README that if you want to run the example you have to go to the example folder and run pod install or carthage install. Or for the no-effort approach pod try Moya. Again, this isn't some mega-huge library with thousands of moving parts.

I’m going to add that to this PR.
Though, because this is such a small library, I think it’s perfect to try to optimize for these cases, so bigger libraries can follow suit.
—Justin Makaila
On Mon, Jul 20, 2015 at 5:04 AM, Orta<EMAIL_ADDRESS>wrote:

I don't think moving the example to a separate repo is a good idea, other libraries don't do this.
I'd move the Pods and the Carthage-whatever directories into .gitignore then add a note in the README that if you want to run the example you have to go to the example folder and run pod install or carthage install. Or for the no-effort approach pod try Moya. Again, this isn't some mega-huge library with thousands of moving parts.
Reply to this email directly or view it on GitHub:
https://github.com/ashfurrow/Moya/pull/169#issuecomment-122817681

So this is just about ready to go, I just want to get the CI to build successfully.

Amazing! Let me know if I can lend a hand. Thanks again! :boom:

Hey @justinmakaila – would it be possible to have the Example app and tests still built using CocoaPods?

@ashfurrow It'd be possible, but all of that would have to be redone. As it stands:
To run the example:

Run carthage update in the root
Open Moya.xcworkspace and set your target to MoyaExample OR open Example/MoyaExample.xcodeproj
Run.

To execute tests:

Run carthage update in the root (if you haven't already)
Open Moya.xcworkspace or Moya.xcodeproj and set your target to Moya Tests
Run

So Carthage relies on the Moya xcodeproject? I thought CocoaPods was generating one for us now. Sorry if I'm showing my ignorance here – I'm sure you can understand my hesitation to make Moya depend on an unfamiliar tool.

Yes. CocoaPods was symlinking to the Pods project, but I found it to be overkill. I totally understand your hesitation, and want to do everything I can to make the transition simple, and answer any questions you have along the way.

OK, so. Touchy subject for some – I want anyone reading this to know that I have a lot of respect for the developers who've build Carthage, for @justinmakaila and @neonichu who have done so much work to support Carthage in Moya, and for developers using Moya. If someone tries to turn this into a flamewar, I'll be very disappointed in them.
:heart:
Ok! So Moya actually predates Carthage by a few months – Moya was build as a CocoaPod, which the capabilities and limitations of that tool in mind.
Carthage was released, and people asked for Carthage support on Moya. I didn't know how to add it, but several contributors offered to help, which is fantastic :smile_cat: They asked for help from Carthage, but their developers said that subspec-like functionality conflicts with their philosophy.
Undeterred, @justinmakaila and others laboured to come up with a solution that worked for both tools, requiring Moya to compromise on the original library structure (informed by CocoaPods). At last, we'd nearly accomplished this herculean task.
My remaining issue is that this PR fundamentally changes Moya from a CocoaPod that could support Carthage, to a Carthage library that can incidentally be used with CocoaPods. This might seem like a trivial matter, and it's at this point that I need to recognize that I no longer own Moya – the community does. My own feelings matter a lot less.
But the community has been using Moya as a CocoaPod for its entire lifetime, and a change of this foundational nature needs to be considered carefully.
Respectfully, Justin, I think the Demo, unit tests, CI, and all that stuff should remain built atop CocoaPods. I realize this undoes some of the work you've put into this, so I'd like to do the work: I'll check out your fork, get Moya working atop CocoaPods again, ensure that Carthage support still works, then send a PR back into your branch so you can review my changes. Does that sound OK to you? We can hop on a google hangout to discuss this in person, too!

I'm glad the focus is remaining on CocoaPods.  I think Carthage is a great tool, but since most users aren't clamoring for supporting it, I think we'd be doing a disservice if CocoaPods was made a second class citizen.

Hey! This is still on my radar, just got sidetracked.
As for the code structure, having the separate repos like https://github.com/Moya/ReactiveMoya is fine for code, but I think it's a good idea to keep all documentation and issue tracking in this main repo. This will keep the barrier to entry low (someone learning to use Moya shouldn't have to know how we structure our code to read our docs). Any objections?

None here
—Justin Makaila
On Thu, Sep 10, 2015 at 1:31 PM, Ash Furrow<EMAIL_ADDRESS>wrote:

Hey! This is still on my radar, just got sidetracked.
As for the code structure, having the separate repos like https://github.com/Moya/ReactiveMoya is fine for code, but I think it's a good idea to keep all documentation and issue tracking in this main repo. This will keep the barrier to entry low (someone learning to use Moya shouldn't have to know how we structure our code to read our docs). Any objections?
Reply to this email directly or view it on GitHub:
https://github.com/Moya/Moya/pull/169#issuecomment-139319537

I agree – as someone that definitely falls into the "new user" category. I'm just now trying to get Moya, ReactiveCocoa, and Alamofire working together... and the fewer things I have to hunt down and figure out, the better. I also vote for keeping a focus on CocoaPods. I have one Carthage module (because they don't have a pod yet... but should soon). Pods work much better for us, in a distributed project.

Alrighty, I've disabled issues on the other repositories. We also need to update their READMEs to point to this repository. These other repos are basically just places to store files.
If we're centralizing docs here, I think it makes sense to centralize tests here as well. I can't see that being a problem with Carthage – @justinmakaila does that sound OK?

As long as the reactive repositories can be imported into the test suite without naming collisions (They both have their product names set to “Moya”).
—Justin Makaila
On Thu, Sep 10, 2015 at 1:44 PM, Ash Furrow<EMAIL_ADDRESS>wrote:

Alrighty, I've disabled issues on the other repositories. We also need to update their READMEs to point to this repository. These other repos are basically just places to store files.
If we're centralizing docs here, I think it makes sense to centralize tests here as well. I can't see that being a problem with Carthage – @justinmakaila does that sound OK?
Reply to this email directly or view it on GitHub:
https://github.com/Moya/Moya/pull/169#issuecomment-139322383

Shouldn't be a problem – we're restructuring the tests to run under CocoaPods, which won't have that problem.

👍🏻
—Justin Makaila
On Thu, Sep 10, 2015 at 2:04 PM, Ash Furrow<EMAIL_ADDRESS>wrote:

Shouldn't be a problem – we're restructuring the tests to run under CocoaPods, which won't have that problem.
Reply to this email directly or view it on GitHub:
https://github.com/Moya/Moya/pull/169#issuecomment-139329643

Orta and I have implemented a solution that doesn't require us to split up the source code into three separate repositories, which I've PR'd in #215. @justinmakaila thank you so much for your work on this :smile_cat:


Raise RuntimeError when failing to get ADC

It looks like tests are failing on some syntax error though.


5V55R, 5V55RUD, SA-10B and KS-19

Removed 5V55R weapon
Removed 5V55RUD weapon
Removed SA-10B complex, expect for units used in the PMU1
Remove SON-9 Fire Can unit and sensor
Removed KS-19 unit, sensor, and ammunition

This resolves #44, #46, and #38


Adding to network-profile PACKAGES

I'd like to add pitbull to the PACKAGES file in my communities network-profile. I thought this would be possible after #11 was done, but it seems the feed still can't access it and building the firmware fails.
What would be needed for this to work?

Makefile is now mantained in https://github.com/libremesh/lime-packages/ and it should work


Clickable events from custom month template

Hi. I can't make events clickable from a custom month template. Is this my mistake or something else?

Also tried insert my controller's function instead "vm.onEventClick". No results... It does nothing, only stops click event regression to the parents. Any suggestions?
PS: sorry for bad english...

This is happening because the templates scope is that of the calendar and not of your controllers, so you can't access any variables from your controller in the template, only the variables in the month view controller are accessible from your custom template: https://github.com/mattlewis92/angular-bootstrap-calendar/blob/master/src/directives/mwlCalendarMonth.js
Calling vm.onEventClick from within the template will call the callback you pass to on-event-click, you can see a demo of that here: https://mattlewis92.github.io/angular-bootstrap-calendar/#?example=clickable-events (on the markup tab you will see the binding in action)


Automated cherry pick of #2357: fix: deprecate old user/group joint project API, create new action apis for add user/group to projects with roles

Cherry pick of #2357 on release/2.10.0.
#2357: fix: deprecate old user/group joint project API, create new action apis for add user/group to projects with roles

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@43de198). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #2366   +/-   ##
================================================
  Coverage                  ?   7.52%
================================================
  Files                     ?     410
  Lines                     ?   63828
  Branches                  ?       0
================================================
  Hits                      ?    4800
  Misses                    ?   58616
  Partials                  ?     412

Flag
Coverage Δ

#aFlag
7.52% <0%> (?)

Impacted Files
Coverage Δ

pkg/keystone/models/groups.go
5.73% <0%> (ø)

pkg/keystone/models/identitybase.go
5.82% <0%> (ø)

pkg/keystone/models/users.go
1.95% <0%> (ø)

pkg/keystone/models/projects.go
5.57% <0%> (ø)

pkg/cloudcommon/db/db_dispatcher.go
0% <0%> (ø)

pkg/keystone/models/assignments.go
1.98% <0%> (ø)

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 43de198...2951a0d. Read the comment docs.

/approve
/lgtm


⚠ Samsung has degraded performance

In d5300f1, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2779 ms

Resolved: Samsung performance has improved in b81d6a7.


UDP -jitter Latency one-way time value not available

Hi, i am trying to use this in our network, doesnt it provide the one-way latency ?
i am using it for  the Cisco IPsla UDP-jitter, it responce but i dont see the latency one-way time values..
doesnt it support that value? also it would provide the Source to Destination packet loss value right?
core1.syd1#sh ip sla statistics 100
IPSLAs Latest Operation Statistics

IPSLA operation id: 100
Type of operation: udp-jitter
	Latest RTT: 309 milliseconds
Latest operation start time: 13:11:27 UTC Sat Dec 15 2018
Latest operation return code: OK
RTT Values:
	Number Of RTT: 50		RTT Min/Avg/Max: 309/309/310 milliseconds
Latency one-way time:
	Number of Latency one-way Samples: 0
	Source to Destination Latency one way Min/Avg/Max: 0/0/0 milliseconds
	Destination to Source Latency one way Min/Avg/Max: 0/0/0 milliseconds
Jitter Time:
	Number of SD Jitter Samples: 49
	Number of DS Jitter Samples: 49
	Source to Destination Jitter Min/Avg/Max: 0/1/1 milliseconds
	Destination to Source Jitter Min/Avg/Max: 0/1/1 milliseconds
Over Threshold:
	Number Of RTT Over Threshold: 0 (0%)
Packet Loss Values:
	Loss Source to Destination: 0
	Source to Destination Loss Periods Number: 0
	Source to Destination Loss Period Length Min/Max: 0/0
	Source to Destination Inter Loss Period Length Min/Max: 0/0
	Loss Destination to Source: 0
	Destination to Source Loss Periods Number: 0
	Destination to Source Loss Period Length Min/Max: 0/0
	Destination to Source Inter Loss Period Length Min/Max: 0/0
	Out Of Sequence: 0	Tail Drop: 0
	Packet Late Arrival: 0	Packet Skipped: 0
Voice Score Values:
	Calculated Planning Impairment Factor (ICPIF): 0
	Mean Opinion Score (MOS): 0
Number of successes: 37
Number of failures: 1
Operation time to live: Forever

Do the A and B side have same time? It only accepts one-way samples when clocks have 'reasonable' value (within context of RTT).


Search from CLI doesn't seem to work

I just did a
./cruddy search my_id=72538

and received the following stacktrace:
error
Traceback (most recent call last):
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/Current/bin/cruddy", line 9, in <module>
    load_entry_point('cruddy==0.9.0', 'console_scripts', 'cruddy')()
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args[1:], **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/cruddy/scripts/cli.py", line 159, in search
    handler.invoke(data)
  File "/usr/local/lib/python2.7/site-packages/cruddy/scripts/cli.py", line 70, in invoke
    self._invoke_lambda(payload)
  File "/usr/local/lib/python2.7/site-packages/cruddy/scripts/cli.py", line 56, in _invoke_lambda
    click.echo(click.style(crud_response['error_type'], fg='red'))
  File "/usr/local/lib/python2.7/site-packages/click/termui.py", line 393, in style
    return ''.join(bits)
TypeError: sequence item 1: expected string, NoneType found

I'm having trouble reproducing this.

It is caused when the Lambda function does not have the dynamodb:Query permission. An access denied response is created by boto3 which the current code doesn't handle gracefully.


Possible custom hooks example 647

Issues

https://github.com/reactive-python/reactpy/issues/647
Summary

Using reducer and use_reducer, I built a simple example of how I would build a custom hook custom hook in _examples that is able to return multiple functions to another file
Checklist

[x] Tests have been included for all bug fixes or added functionality.
[x] The changelog.rst has been updated with any significant changes.

I think the goal of use_reducer is to avoid the need to return multiple functions - instead of having a function for each possible operation you might want to perform on your state, you have one function that you pass an "action" which determines how your state will transition.

Alright. I was looking at using this as a simple example to build up to more complicated hooks. I'll have to play around with use_reducer a bit more to get used to using it.

I'm going to close this for now. Thanks for the submission though!


perform tilde expansion before glob api call

always perform tilde expansion even if glob error

change glob api in commit 0797484


Make a more featureful API client that can modify/delete/list results

Summary decision: delete doesn't work on this PR due to an auth error but delete isn't worth supporting till have organization admins. Otherwise we'd just be providing an easy way for sabotage


Blueprint for 12 Button RC

Good Day Daniel San,
can you please add this Blueprint for 12 Button RC, tested, works good.
blueprint:
  name: Actions for 12-Button Homematic(IP) device
  description: When a button is pressed, the defined actions will be executed. Please
    keep in mind, that long-press actions might be executed multiple times, according
    to your configured minimum duration for long press. This can be configured in
    your CCU. Tested with HB-RC-12-EP-C. Should work with other device too.
  domain: automation
  source_url: https://github.com/danielperna84/custom_homematic/blob/devel/blueprints/automation/homematicip_local-actions-for-12-button.yaml
  input:
    remote:
      name: 12-Button Device
      description: Please select a 12-Button device of your Homematic(IP) Local integration.
      selector:
        device:
          integration: homematicip_local
          multiple: false
    action_1_short:
      name: Action
      description: Button 1, Short Press
      default: []
      selector:
        action: {}
    action_1_long:
      name: Action
      description: Button 1, Long Press
      default: []
      selector:
        action: {}
    action_2_short:
      name: Action
      description: Button 2, Short Press
      default: []
      selector:
        action: {}
    action_2_long:
      name: Action
      description: Button 2, Long Press
      default: []
      selector:
        action: {}
    action_3_short:
      name: Action
      description: Button 3, Short Press
      default: []
      selector:
        action: {}
    action_3_long:
      name: Action
      description: Button 3, Long Press
      default: []
      selector:
        action: {}
    action_4_short:
      name: Action
      description: Button 4, Short Press
      default: []
      selector:
        action: {}
    action_4_long:
      name: Action
      description: Button 4, Long Press
      default: []
      selector:
        action: {}
    action_5_short:
      name: Action
      description: Button 5, Short Press
      default: []
      selector:
        action: {}
    action_5_long:
      name: Action
      description: Button 5, Long Press
      default: []
      selector:
        action: {}
    action_6_short:
      name: Action
      description: Button 6, Short Press
      default: []
      selector:
        action: {}
    action_6_long:
      name: Action
      description: Button 6, Long Press
      default: []
      selector:
        action: {}
    action_7_short:
      name: Action
      description: Button 7, Short Press
      default: []
      selector:
        action: {}
    action_7_long:
      name: Action
      description: Button 7, Long Press
      default: []
      selector:
        action: {}
    action_8_short:
      name: Action
      description: Button 8, Short Press
      default: []
      selector:
        action: {}
    action_8_long:
      name: Action
      description: Button 8, Long Press
      default: []
      selector:
        action: {}
    action_9_short:
      name: Action
      description: Button 9, Short Press
      default: []
      selector:
        action: {}
    action_9_long:
      name: Action
      description: Button 9, Long Press
      default: []
      selector:
        action: {}
    action_10_short:
      name: Action
      description: Button 10, Short Press
      default: []
      selector:
        action: {}
    action_10_long:
      name: Action
      description: Button 10, Long Press
      default: []
      selector:
        action: {}
    action_11_short:
      name: Action
      description: Button 11, Short Press
      default: []
      selector:
        action: {}
    action_11_long:
      name: Action
      description: Button 11, Long Press
      default: []
      selector:
        action: {}
    action_12_short:
      name: Action
      description: Button 12, Short Press
      default: []
      selector:
        action: {}
    action_12_long:
      name: Action
      description: Button 12, Long Press
      default: []
      selector:
        action: {}
trigger:
- platform: event
  event_type: homematic.keypress
  event_data:
    device_id: !input remote
condition: []
action:
- choose:
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        1 }}'
    sequence: !input action_1_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        1 }}'
    sequence: !input action_1_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        2 }}'
    sequence: !input action_2_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        2 }}'
    sequence: !input action_2_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        3 }}'
    sequence: !input action_3_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        3 }}'
    sequence: !input action_3_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        4 }}'
    sequence: !input action_4_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        4 }}'
    sequence: !input action_4_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        5 }}'
    sequence: !input action_5_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        5 }}'
    sequence: !input action_5_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        6 }}'
    sequence: !input action_6_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        6 }}'
    sequence: !input action_6_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        7 }}'
    sequence: !input action_7_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        7 }}'
    sequence: !input action_7_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        8 }}'
    sequence: !input action_8_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        8 }}'
    sequence: !input action_8_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        9 }}'
    sequence: !input action_9_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        9 }}'
    sequence: !input action_9_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        10 }}'
    sequence: !input action_10_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        10 }}'
    sequence: !input action_10_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        11 }}'
    sequence: !input action_11_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        11 }}'
    sequence: !input action_11_long
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_short'' and trigger.event.data.subtype  ==
        12 }}'
    sequence: !input action_12_short
  - conditions:
    - condition: template
      value_template: '{{ trigger.event.data.type  == ''press_long'' and trigger.event.data.subtype  ==
        12 }}'
    sequence: !input action_12_long
mode: parallel
max: 10

Nice.
Please create a pull request at https://github.com/danielperna84/custom_homematic and
put the file under blueprints/community/


Multiple programs besides the daemon run

Hi,
I have a question regarding a parallel usage of the daemon and other non-daemon programs at the same time. I use one program which writes via PWM through pigpiod to a pin and I have other programs which work on different pins at the same time. When the daemon runs, I get
2016-05-17 02:54:22 initInitialise: Can't lock /var/run/pigpio.pid

Is it save to just write to a different pid file or are there any serious problems when doing this in parallel?
Thanks!

Only one copy of the pigpio library is allowed to run at a time.
The reason is that the library opens a rare resource, a DMA channel, and then starts sampling the GPIO at a high rate using that channel.
It is possible to start pigpio and tell it to use a different DMA channel, but this use is prevented by the lock on /var/run/pigpio.pid.  In extremis you could remove the lock code to allow multiple copies.
In fact there are very few DMA channels left.  Originally pigpio had about 13 channels (from 15) to select from, now its sometimes hard to find a free channel.
There is very little you can do when directly linked with the library that you can't do just as well by using the daemon.
If you do have such a need then I suggest you put all the time-critical code in one process and launch that instead of pigpiod.  Your process then in effect becomes the pigpiod and will automatically service daemon requests via its socket and pipe interface (unless you disable those interfaces with gpioCfg* options at process start).

Thanks for your detailed explanation! In fact, it is what I did yesterday. I moved any critical code into one process. I just wanted to ask and it makes totally sense.
I must spread another thank-you for the great work you did on pigpio!

BTW If you do run your program as a replacement for pigpiod you ought to use the same lock/runfile /var/run/pigpio.pid in the same way as pigpiod. I'm doing that for my UPiS daemon which uses the I2C bus and reserves a dedicated GPIO pin for a "shut-down NOW" "hardware" interrupt and it runs on startup as root - so it makes sense to run it as the daemon so it can prevent other processes from touching/hogging resources that it wants.

That should be automatic as the locking is actually handled by the library during initialisation. The code is initGrabLockFile in pigpio.c.

Ah, I got that slightly wrong - my code is linked against libpigpio and using pigpio.h the header _not libpigpiod and pigpiod.h - as I need to have different signal handling behaviour (my daemon needs to catch and handle SIGPIPE (and posibbly SIGPWR) and I do not want it to terminate if it gets SIGSTOP/SIGTSTP/SIGTTOUT/SIGTTIN/SIGCONT) - FWIIW I've clobbered the code base as per (my) PR #58...


Update scala-collection-compat to 2.5.0

Updates org.scala-lang.modules:scala-collection-compat from 2.1.6 to 2.5.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang.modules", artifactId = "scala-collection-compat" } ]

labels: library-update, semver-minor

Superseded by #60.


Migrate net plugin to slim

Paul and I are working this.

working branch for this issue is: slim_net_plugin

Once #2852 merges in there are a few remaining observational issues (not sure if they are slim specific or in master as well)
In a test last night with a single relay hub with 2 producing spokes and 1 validating spoke, syncing a 4th validating node by directly peering with either producer or the relay would cause blocks to be dropped.  This lead to the discovery of re-broadcasted transactions which should be fixed but suggests that the queues can get deep enough for low-priority messages (like syncing a new peer)                 to affect the deadlines of higher priority messages (relaying realtime blocks).
Another issue, which is unrelated to net_plugin but may affect testing, is that currently "subjective failures" in controller transaction reception can destroy some of the state that should be retained for the next block.  Until that is in place we cannot safely use the deadlines so, a sufficient transaction backlog can build up and cause timing issues.   This is being tracked in #2853