Add "Equipment" to the possible list of media

Also change all existing "board temp" and "battery voltage under load" instance to have a media type of equipment.

@jcaraballo17 - these are simple updates in the database. I'm assigning to you.

@SRGDamia1 - we aren't sure what "board temp" and "battery voltage under load" are. I'm assuming these are variables? @jcaraballo17  is having trouble matching these up with something in the database. Can you be more specific for him?

BUMP.
I added the Equipment medium, but I couldn't figure out which ones are the board temp and the battery voltage under load variables.

Sorry!  Variables that should be "equipment:"

Temperature (EnviroDIY_Mayfly_Temp) (board temp)
Battery voltage (EnviroDIY_Mayfly_Volt) (battery voltage under load)
Free SRAM (EnviroDIY_Mayfly_FreeSRAM)

This one looks good on the sandbox. I think it can be closed when deployed to production.

I'm happy to close now, as it will be resolved when pushed to production.

This looks good on Sandbox, but I'm a bit concerned that we're overloading the concept of "Variable" in our building of this EnviroDIY system and the underlying ODM2 database. The EnviroDIY deployment of ODM2 will showcase a lot of ODM2 capabilities, and it'll be used by many others. I fear that we'll have problems as we develop future applications and demonstrations on top of what we have.
The list that Sara provided (EnviroDIY_Mayfly_Temp; EnviroDIY_Mayfly_Volt; EnviroDIY_Mayfly_FreeSRAM) are labels for sub types of Results, these are not Variables.
In ODM2 "Medium" is an attribute of a Result, "Variable" is the attribute of a Result, and "Equipment" Make & Model are attributes of an Action (which is always tied to a Result in the case of Observation Actions). See http://odm2.github.io/ODM2/schemas/ODM2_Current/diagrams/ODM2OverviewSimplified.html and http://odm2.github.io/ODM2/schemas/ODM2_Current/diagrams/ODM2Equipment.html.
Perhaps we can resolve this comment when we tackle issue #71 (Allow super-users to add new variables and sensors), which is scheduled for https://github.com/ODM2/ODM2WebSDL/milestone/5.

Reopened just to get thoughts on my last comment.

@aufdenkampe - "EnviroDIY_MayFly_Temp" is a concatenation of Sensor make and model and the variable. It's a convenient identifier of sorts for these combinations. These concepts are separate in the underlying database. We don't have to display them this way. But - we have made some convenient simplifications that I believe make things easier to use for people who don't have (and don't want) an intimate knowledge of the underlying database structure.
I'm not sure what the remaining issue is here?
We decided a long time ago that the measured variables were going to be closely tied to the sensor.


[package request] - jupyterlab

Package Request
In re to https://github.com/on-nix/python/issues/11, I'd love a jupyterlab build in nix. notebook would be good as well.
https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html

# xxx is just a temp folder for storing build artifacts,
# you can use other folder,
# by default /nix/store would be used so that's why we change it
$ jupyter lab build --app-dir xxx
$ jupyter lab --app-dir xxx

Let me know if it worked!
I'm happy to see that such a complex project worked -On Nix-
notebook was also added

https://python.on-nix.com/projects/jupyterlab-3.2.2-python39/
https://python.on-nix.com/projects/notebook-6.4.5-python39/

thanks! Here's where I'm at. It mentions memory, which could be a me problem because I have 16gb RAM and an i5 right now before my new frame.work comes in in a couple weeks.
default.nix:
{ pkgs ? import <nixpkgs> {} }:
# python.on-nix doesn't support jupyter yet, so this .nix file is defunct.
let
  pythonOnNix = import
    (builtins.fetchGit {
      # Use `main` branch or a commit from this list:
      # https://github.com/on-nix/python/commits/main
      ref = "main";
      url = "https://github.com/on-nix/python";
    }) { inherit pkgs; };
  env = pythonOnNix.python39Env {
    name = "Danaswap-analytics";
    projects = {
      pandas = "latest";
      numpy = "latest";
      altair = "latest";
      seaborn = "latest";
      matplotlib = "latest";
      arviz = "latest";
      jupyterlab = "latest";
      jupyterlab-widgets = "latest";
      # nbformat = "latest";
      # ipykernel = "latest";
      # ipython = "latest";
      jax = "latest";
      numpyro = "latest";
    };
  };
in env.dev

[nix-shell:~/Dropbox/Projects/platonic/ardana/audit/longreports/rootfinding]$ jupyter lab build --app-dir xxx
Fail to get yarn configuration. /usr/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib64/libstdc++.so.6)

[LabBuildApp] JupyterLab 3.2.2
[LabBuildApp] Building in xxx
/usr/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib64/libstdc++.so.6)
Build failed.
Troubleshooting: If the build failed due to an out-of-memory error, you
may be able to fix it by disabling the `dev_build` and/or `minimize` options.

If you are building via the `jupyter lab build` command, you can disable
these options like so:

jupyter lab build --dev-build=False --minimize=False

You can also disable these options for all JupyterLab builds by adding these
lines to a Jupyter config file named `jupyter_config.py`:

c.LabBuildApp.minimize = False
c.LabBuildApp.dev_build = False

If you don't already have a `jupyter_config.py` file, you can create one by
adding a blank file of that name to any of the Jupyter config directories.
The config directories can be listed by running:

jupyter --paths

Explanation:

- `dev-build`: This option controls whether a `dev` or a more streamlined
`production` build is used. This option will default to `False` (i.e., the
`production` build) for most users. However, if you have any labextensions
installed from local files, this option will instead default to `True`.
Explicitly setting `dev-build` to `False` will ensure that the `production`
build is used in all circumstances.

- `minimize`: This option controls whether your JS bundle is minified
during the Webpack build, which helps to improve JupyterLab's overall
performance. However, the minifier plugin used by Webpack is very memory
intensive, so turning it off may help the build finish successfully in
low-memory environments.

An error occurred.
ValueError: Please install nodejs >=12.0.0 before continuing. nodejs may be installed using conda or directly from the nodejs website.
See the log file for details:  /run/user/1000/jupyterlab-debug-4k304jm5.log

This part:
/usr/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib64/libstdc++.so.6)
Build failed.

seems more a compatibility issue, a few things that may resolve the issue:

Are you using nix-shell inside a nix-shell? try to launch only 1 nix-shell on a new fresh terminal

I am not using nix-shell inside a nix-shell. To be sure I launched a fresh terminal and typed nix-shell once in the directory and reproduced the issue.
interestingly, I can't nix-shell in a nix-shell because of this
[nix-shell:~/Dropbox/Projects/platonic/ardana/audit/longreports/rootfinding]$ nix-build
nix-build: /nix/store/jsp3h3wpzc842j0rz61m5ly71ak6qgdn-glibc-2.32-54/lib/libc.so.6: version `GLIBC_2.33' not found (required by /nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib64/libstdc++.so.6)

In a couple other places on my machine (ubuntu 20.04) some c dependencies are borked since I rm -rf anaconda3 recently.


ROCm 1.7.1 & 1.8 & 1.9: 16.6% slower than amdgpu-pro 18.10 with sgminer-gm

For both ROCm 1.7.1 and 1.8.0, mining has a huge performance regression relative to amdgpu-pro (almost all versions) of about 20%:
GPU:  Radeon RX 470
ROCm      :  20.0 MH/s
amdgpu-pro:  24.0 MH/s

Used software:

Ubuntu 16.04 with Kernel 4.13.0-41
SGMiner-GM 5.5.5:
https://github.com/genesismining/sgminer-gm/releases/tag/5.5.5
OpenCL Kernel:
"ethash-new"
ROCm 1.8.0 via
http://repo.radeon.com/rocm/apt/debian/
amdgpu-pro 18.10
https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-18.10-572953.tar.xz

sgminer.conf:
{
    "pools": [
        {
            "user": "0x1234567890abcdef1234567890abcdef12345678",
            "url": "stratum+tcp://eth-eu1.nanopool.org:9999/",
            "profile": "eth",
            "pass": "x"
        }
    ],
    "profiles": [
        {
            "gpu-threads": "2",
            "name": "eth",
            "xintensity": "1024",
            "algorithm": "ethash-new",
            "worksize": "128"
        }
    ]
}

Do you need any more information to address the issue?

Adding an unroll on the same loop on ROCm full stack has also improved the rates for me RX 470 and RX 580

@amdcoffey Neither removing if (isolate) nor adding a _Pragma("unroll") nor doing both, does influence the hashrate sufficiently (maybe 1% difference).

Can you try this setting denorms to zero with the compiler flag -cl-denorms-are-zero
Gfx9 and later: denorms on by default; you can turn them off with -cl-denorms-are-zero
Gfx8 and earlier – denorms are off by default

@gstoner the bug above only appears with Polaris (gfx8). If I understood you correctly, denorms are always zero in gfx8, so I don't think the -cl-denorms-are-zero would make any difference?

@grische  I see that now.   Have you tried 18.20 AMDGPUpro

We have compiler fix in for LC https://reviews.llvm.org/D48246

The situation is unchanged with ROCm 1.9.
I assume the above (merged) compiler change is not included in the ROCm 1.9 packages?

It's been quite a while -- these changes should have merged in. Are you still seeing this issue as of e.g. ROCm 2.2?

This issue is very old and fixed long back around ROCm 3.x time.
Am closing it now.
Request you to open a new issue if you find any.
Thank you.

This issue is very old and fixed long back around ROCm 3.x time.
Am closing it now.
Request you to open a new issue if you find any.
Thank you.


How to support multiple databases

How to support multiple databases

Hi @JeniTurtle , I’m not currently supporting multiple databases so that I can check all of the boxes for Postgres first. What database do you want to use?

I like postgres！

Cool, then you’re all set!

Closing as dupe of https://github.com/goldcaddy77/warthog/issues/96


ECCN

My apologies if this is not the correct mechanism for asking questions.  I have searched for the info, but have been unable to find it.  What is the ECCN for pdf.js?

I have no idea what that is. Could you elaborate?

First, thanks for the very quick response.  While I'm not an ECCN expert, I'll give it a shot.  :)  Software leaving the United States needs to declare what type of encryption technologies are being used in the product.  The ECCN classifies the encryption technology.  As an example, here is a link to a page where Apache describes the ECCN for its projects... http://www.apache.org/licenses/exports/   ... for those that build products with those specific projects.  I'm guessing/hoping that this project (pdj.js) has been used many times inside other products and already has an ECCN associated with it.  For the more formal definition of ECCN see... https://www.bis.doc.gov/index.php/licensing/commerce-control-list-classification/export-control-classification-number-eccn

I don't think PDF.js has that. Maybe @yurydelendik or @brendandahl knows?

pdf.js seems to use aes256, which is symetric is en accoring to this pagina falls under category 5 part 2: https://www.bis.doc.gov/index.php/policy-guidance/encryption/2-items-in-cat-5-part-2/a-5a002-a-and-5d002-c-1/ii-key-length
I think you have to follow https://www.bis.doc.gov/index.php/documents/new-encryption/1652-cat-5-part-2-quick-reference-guide/file to know what classification applies (or maybe better ask someone from legal from mozilla to do this for you).

(or maybe better ask someone from legal from mozilla to do this for you).

it is in process, yes


Add support for 2*

The fork of miio introduced some new method name hence 2* devices might not work. Streamline the method names in my fork https://github.com/torifat/miio so that 2* devices work.

Is this why I can't control the child lock on my Mi Purifier 2?

Is this why I can't control the child lock on my Mi Purifier 2?

@ifeign I believe so. Is everything else working for you?

@ifeign I believe so. Is everything else working for you?

I'll do an extensive test of this asap

I'll do an extensive test of this asap

It's not working on my 2H unfortunately. It doesn't seem to get any data.
All I could find in the log was this line:
[1/13/2021, 8:19:32 PM] [Air Purifier 2H] Connected to "Air Purifier 2H" @ <IP_ADDRESS>!

It's not working on my 2H unfortunately. It doesn't seem to get any data.
All I could find in the log was this line:
[1/13/2021, 8:19:32 PM] [Air Purifier 2H] Connected to "Air Purifier 2H" @ <IP_ADDRESS>!

I cannot control the fan speed on my AirPurifier 2 as well. Child lock I didn't try. On/Off and sensor data are working for me. Would be great to support fan speed, too. I can support with testing if required.

I cannot control the fan speed on my AirPurifier 2 as well. Child lock I didn't try. On/Off and sensor data are working for me. Would be great to support fan speed, too. I can support with testing if required.

Same with 2S.

I use the Mi Air Purifier 2S model. I changed to this plugin from the my previous homebridge-xiaomi-purifier-eu (repo) because that was bombarding my log with "Lock Physical Controls" read handler errors.
But it does not make anything better: now I get flooded logs again, but this time with an error related to Filter Life Level and Filter Change Indication instead and I don't think any controls work:
2021-11-22, 12:06:21 PM [Raspberry-HOOBS 1F84@Air Purifier 2@Air Quality on Air Purifier 2@Filter Life Level] Unhandled error thrown inside read handler for characteristic: Cannot read property 'value' of undefined
2021-11-22, 12:06:21 PM [Raspberry-HOOBS 1F84@Air Purifier 2@Air Quality on Air Purifier 2@Filter Change Indication] Unhandled error thrown inside read handler for characteristic: Cannot read property 'value' of undefined

😩

@cbrunnkvist I will fix this soon. Please follow #229

I compared what is presented in the Home app for the 2S and I can confirm that I also miss the speed control available with the legacy module. Now I only see the power toggle alone, just like @heikobischoff's screenshot.


Bump lodash from 4.17.20 to 4.17.21 in /tools/dicom-web-electron

Bumps lodash from 4.17.20 to 4.17.21.

Release notes
Commits

Signed-off-by: dependabot[bot]<EMAIL_ADDRESS>

already checked in with another PR


No drop shadow on auth picker buttons on low API devices

Here are some screenshots showing API 25 next to API 19.
|  API 19 - No Shadow |
API 25 - Shadow |
|---|---|
|   |  |

@samtstern Pretty sure shadows just aren't a thing pre-L. I remember reading a thing about Toolbar adding an extra view that faked the shadow, are you suggesting we should do that?

@SUPERCILEX I am hacking on something right now involving the XML drawable.  I think I can make it work without additional views.

@samtstern Oh sweet! 😄

See #843.  Afaict it has no effect on post-L devices but on pre-L devices adds a shadow-looking thing.  It doesn't have the scatter / blur that a shadow would have but it at least adds contrast.

The fix for this issue was released in version 2.2.0.

The fix for this issue was released in version 2.2.0.


Include stack traces in exceptional gRPC responses

Right now, when service A uses gRPC to service B and service B throws an exception, there are two main outcomes:

service B throws a WebActionException—service A receives a GrpcException with the mapped status code and service B's exception's public message
service B throws some other exception (e.g. NullPointerException)—service A receives a GrpcException with the code UNKNOWN and the message "internal server error"

Compared to non-gRPC responses, this is very limited information. Services that communicate over HTTP instead often receive a response body that includes a stack trace, which makes it much easier to triage new Sentry reports without having to find the corresponding error report in the callee service.
This PR extends the message provided to the gRPC response when misk intercepts an exception—we now explicitly including the stack trace from the caught exception. Additionally, gRPC messages triggered by the second case now include the exception message, rather than a catch-all "internal server error" string.

One thing that I was worried about:
14:52:01.717 [jetty-thread-33] WARN org.eclipse.jetty.http2.hpack.HpackEncoder - Header list size too large 17025 > 8192
Comes from crossStatusError in ProtocClientMiskServerTest.

Discussed offline. My recommendation is to use an interceptor closer to the application layer, and have that interceptor wrap the application-layer exception in a WebActionException. That interceptor can promote diagnostic information like the stacktrace into the message field if the caller is trusted, which it learns through some side-channel. Perhaps by injecting an ActionScoped<MiskCaller>.


git lfs

Used git lfs to store large csv data files.

Should this PR be closed?

Yes
On Mon, Sep 3, 2018, 12:04 PM João Carreira<EMAIL_ADDRESS>wrote:

Should this PR be closed?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jcarreira/cirrus/pull/82#issuecomment-418178521, or mute
the thread
https://github.com/notifications/unsubscribe-auth/Abwst7wy21hTEVH3jHak0u-qOX8C23nVks5uXX1IgaJpZM4V8EdM
.

Then please close it. This is your PR.


64 Bit PHP

The PHP manifest was just updated to include 64 Bit PHP in #234
PHP 64 Bit was added previously as a standalone manifest in scoop-extras, I cannot remember the reason why, "I think" it was in regard to 64 bit stability, I honestly cannot remember.
https://github.com/lukesampson/scoop-extras/blob/master/php64bit.json
We should either 1) Remove the php64bit.json manifest from scoop-extras or 2) Remove the 64 bit architectural from the scoop php.json manifest.
Is PHP 64 Bit now stable on Windows?, If so we do option 1 above, if not option 2. Thoughts?

@lukesampson Hey!?

Sorry I didn't respond sooner, Gutierri.
And sorry to drag the chain here again, but I just had a quick look at the PHP website now and the thing that I want to be careful about is that 64-bit PHP is described as "experimental" on Windows. I want to be careful that non-experts (like myself) don't get into trouble by installing an unreliable version of PHP when the 32-bit version would work better.
Maybe the "experimental" thing is overblown, and it actually works great? I'll defer to you guys here. If that's the case then I'd be happy to merge this, so we get automatic 64-bit version for Apache and PHP.
If however the 64-bit version is still a bit risky, then I think maybe the thing to do is have a new apache64.json as a separate manifest, and keep php64.json, so that experts can install these if they want, and it just works (in 32-bit mode) for everyone else.

@lukesampson Ok!
But I never had problems with the 64bit version of PHP on Windows. But we can see what can be done.

@gutierri If you want to update apache64bit and php64bit with these changes you've made, I'll merge those in.
I think that's probably the safest thing to do for now, unless you're confident that 64-bit Apache+PHP will work fine for everyone.

@lukesampson Ok!
It would be nice also organize scoop packages, especially those alternative versions of other packages.
Creating a standard for this, for example:
php_x64
apache_x64

@gutierri @lukesampson How about we mark them as experimental as well:
php_x64-experimental
apache_x64-experimental

Hmmm, I can see the value in showing that it's experimental, but it seems a bit hard to type. I think it's nice to read too when apps have nice short names rather than be too verbose.
Another downside of making it too explicit that this is 64-bit is that if you're looking through the list of apps and see php_x64 you might think "where's the 64-bit mysql?" or something similar.
And I can't see it happening very often that a program would be available in separate 64-bit version that doesn't work very well. So, by creating a convention, I think we might be solving a problem that doesn't yet (and may never) exist.

We need conventions!

Why's that? I agree conventions are good, but creating them for situations that are rare is counter productive because it's just another rule we have to remember. Do you disagree with my points? I'm open to persuasion, I just need arguments to convince me that forcing people to use clunky app names is worth it.

I think of something as simple as what already was. Packages 64bit "namehere_x64". Simple and perhaps solve our problems.
Or create an option when installing
@lukesampson?

There already is an option when installing to choose your architecture, with the --architecture or -a flag. Scoop automatically gives you the best architecture for your system if you don't tell it otherwise.
There is a bit of backstory here, I'll go over it again. The thing with PHP is that their 64-bit builds are experimental so are not recommended for production use (last I checked). We don't want to automatically give experimental builds to people, which is why there's a separate package for 64bit, and people have to explicitly choose it if they know what they're doing. Once PHP gets their 64-bit build to a stable state we can probably just forget about this problem. Most people should be fine the 32-bit build for now.
This is not normative, it's a workaround and shouldn't happen very often, if ever again.
So, let's stick with the [app]64bit convention for now because it matches the --architecture flag.

@gutierri I totally agree with @lukesampson. A convention like this creates more problems than it solves.
In fact, is there really a problem? Does the name php64bit really hinder anyone's workflow? How's php_x64-experimental better? Is x64 more informative than 64bit, and is the experimental bit useful?
Honestly, I can't see reasonable answers to these questions.

OK!
On Apr 9, 2015 1:10 AM, "Konstantin Molchanov"<EMAIL_ADDRESS>wrote:
@gutierri https://github.com/gutierri I totally agree with @lukesampson
https://github.com/lukesampson. A convention like this creates more
problems than it solves.
In fact, is there really a problem? Does the name php64bit really hinder
anyone's workflow? How's php_x64-experimental better? Is x64 more
informative than 64bit, and is the experimental bit useful?
Honestly, I can't see reasonable answers to these questions.
—
Reply to this email directly or view it on GitHub
https://github.com/lukesampson/scoop/issues/235#issuecomment-91110601.

:)
On Apr 11, 2015 8:57 PM, "Luke Sampson"<EMAIL_ADDRESS>wrote:

Closed #235 https://github.com/lukesampson/scoop/issues/235.
—
Reply to this email directly or view it on GitHub
https://github.com/lukesampson/scoop/issues/235#event-278969000.


Package Control has old version of the repository

Package Control has v1.0.0 of this repo.
This doesn't include try, await, async, or toggling of comments.
Maybe other things. Update?

according to packagecontrol.io, the most recent version they have is 1.1.0. are you sure your installed packages are up to date?

At the time of writing the OP I had only just installed from Package Control.
This does appear to fixed resolved now, however.


add new feature : zoom in mouse scrollwheel current image

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request

Current behavior

Expected behavior

Minimal reproduction of the problem with instructions

My official live example on StackBlitz (based on https://stackblitz.com/edit/angular-modal-gallery-v7) is:
What is the motivation / use case for changing the behavior?

Environment (the most important section to fill very carefully)

- @ks89/angular-modal-gallery version: X.X.X
- Node version: X.X.X
- npm version: X.X.X
- Operating System and version:
- Angular version: X.Y.Z
- angular-cli version (or SystemJS/Webpack): X.Y.Z
- I'm using Server Side Rendering with angular-universal: YES/NO
- I'm compiling with mode: DEBUG / PROD / PROD with AOT

Browser:
- [ ] Chrome (desktop) version XX
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX

Others:

Please explain your request in a better way, because I cannot understand.

currentImageConfig adde configuration for zoom image

Hi.
If you want so zoom the image with your mouse, it isn't something that I want to add, because platform specific (only desktops).
This library must work in the same way also on mobile, where you don't have a mouse.
So the only way is to add buttons to zoom the image, but I won't add this quickly.
For sure not in the next major release.
At the moment, I close the issue.
If you want to add other information or idea feel free to update this issue.


lnd: Switch to asynchronous SendPaymentV2 gRPC method

We are currently using the lightningrpc.SendPaymentSync gRPC API. According to the docs, "This RPC is intended to be consumed by clients of the REST proxy" which is not what we're doing.
Should we move to the routerrpc.SendPaymentV2 gRPC method which returns a stream?

Closed by #2750


Get "invalid resource" when acquire token by german office 365 account

Hi,
I got error invalid resource during execute sample code (I had already change endpoint to .de, please see following snippet). Should I use different resource for German 365?
<IP_ADDRESS> - - [02/Aug/2017 14:08:04] "GET /?code=AQABAAIAAQDnLpu3ikefR73l... HTTP/1.1" 200 -
Traceback (most recent call last):
  File "test.py", line 19, in <module>
    auth.authenticate(code, redirect_uri, client_secret, resource=discovery_uri)
  File "/Users/verybada/workspace/vm/venv/lib/python2.7/site-packages/onedrivesdk/auth_provider.py", line 203, in authenticate
    data=params)
  File "/Users/verybada/workspace/vm/venv/lib/python2.7/site-packages/onedrivesdk/http_provider.py", line 71, in send
    custom_response = HttpResponse(response.status_code, response.headers, response.text)
  File "/Users/verybada/workspace/vm/venv/lib/python2.7/site-packages/onedrivesdk/http_response.py", line 61, in __init__
    raise Exception(str(message["error"]))
Exception: invalid_resource

import onedrivesdk
from onedrivesdk.helpers import GetAuthCodeServer
from onedrivesdk.helpers.resource_discovery import ResourceDiscoveryRequest

redirect_uri = 'http://localhost'
client_id = $id
client_secret = $secret
discovery_uri = 'https://api.office.com/discovery/'
auth_server_url='https://login.microsoftonline.de/common/oauth2/authorize'
auth_token_url='https://login.microsoftonline.de/common/oauth2/token'

http = onedrivesdk.HttpProvider()
auth = onedrivesdk.AuthProvider(http,
                                client_id,
                                auth_server_url=auth_server_url,
                                auth_token_url=auth_token_url)
auth_url = auth.get_auth_url(redirect_uri)
code = GetAuthCodeServer.get_auth_code(auth_url, redirect_uri)
auth.authenticate(code, redirect_uri, client_secret, resource=discovery_uri)
# If you have access to more than one service, you'll need to decide
# which ServiceInfo to use instead of just using the first one, as below.
service_info = ResourceDiscoveryRequest().get_service_info(auth.access_token)[0]
auth.redeem_refresh_token(service_info.service_resource_id)
print service_info.service_resource_id
client = onedrivesdk.OneDriveClient(service_info.service_resource_id + '/_api/v2.0/', auth, http)

Thank you for reaching out and for your patience. This SDK is being officially deprecated. See #209 for more information


Chunk S3 delete_multiple_objects to 1000 of objects

From https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html

The Multi-Object Delete request contains a list of up to 1000 keys that you want to delete.

Is this related to the discussion we had in IRC?

No, this is the same limitation as listing objects has. If the user gives more than 1000 keys to the function amazon will not accept the request as they will only delete 1000 at a time.

I see. So you'd like some delete_all_objects/N function that would call delete_multiple_objects/N in chunks of 1000?

Yes, or at least error if I give more than 1000 keys.

The policy I've taken towards AWS validations at the moment is to by and large let AWS do the validating and return an error. The validations AWS services perform upon the incoming data can get exceptionally complex, and many are not even possible to check pre-request. If you aren't actually doing anything with the results of the function, calling the ! variety will raise an error from AWS that will explain the issue. However, not all functions have ! variants so THAT I definitely need to fix.
I do see the value of doing simple checks on things like list length, but on the whole I'd rather put work towards surfacing the validations AWS already performs better over duplicating those validations as much as is possible.

I really like that list_objects does multiple requests for me. Why not do the same for delete_all_objects?

Sorry, I addressed one idea and not the other. I'm absolutely down for creating a delete_all_objects/N that does multiple requests. I was simply addressing the idea of whether or not ExAws out to try to validate data sent to the S3 action delete_multiple_objects in the general context of validating data pre-request. I definitely think the best route here is delete_all_objects/N, some documentation explaining the differences, and bang functions to make sure that if you ARE calling delete_multiple_objects directly there's a way to have it easily raise on error.

Is there any reason to keep the old one that doesn't make multiple requests?
On Wed, Sep 16, 2015 at 6:25 PM, Ben Wilson<EMAIL_ADDRESS>wrote:

Sorry, I addressed one idea and not the other. I'm absolutely down for
creating a delete_all_objects/N that does multiple requests. I was simply
addressing the idea of whether or not ExAws out to try to validate data
sent to the S3 action delete_multiple_objects in the general context of
validating data pre-request. I definitely think the best route here is
delete_all_objects/N, some documentation explaining the differences, and
bang functions to make sure that if you ARE calling
delete_multiple_objects directly there's a way to have it easily raise on
error.
—
Reply to this email directly or view it on GitHub
https://github.com/CargoSense/ex_aws/issues/75#issuecomment-140794073.

--
Eric Meadows-Jönsson

My approach thus far is to always have a corresponding elixir function for each AWS action. The value there is that if for example someone wants to make a delete_all_objects function that operates concurrently the underlying delete_multiple_objects function exists to handle the S3 action, so that the user can focus on their intended use.
In some upcoming changes I'm making to facilitate generating code from AWS specs there will be a nicer distinction between fundamental AWS actions (found in the $service.Core module) and higher level functionality that add onto or even replace more obnoxious lower level ones. At the moment I need to support both.

I'm not talking about concurrency here. I am talking about bringing the
convenience of list_objects to delete_multiple_objects. There is no
list_objects function that won't do multiple requests so why should there
be such a function for delete_multiple_objects? It's inconsistent. Or are
you saying that such a function should exist for list_objects also?
On Wed, Sep 16, 2015 at 6:33 PM, Ben Wilson<EMAIL_ADDRESS>wrote:

My approach thus far is to always have a corresponding elixir function for
each AWS action. The value there is that if for example someone wants to
make a delete_all_objects function that operates concurrently the
underlying delete_multiple_objects function exists to handle the S3 action,
so that the user can focus on their intended use.
In some upcoming changes I'm making to facilitate generating code from AWS
specs there will be a nicer distinction between fundamental AWS actions
(found in the $service.Core module) and higher level functionality that
add onto or even replace more obnoxious lower level ones. At the moment I
need to support both.
—
Reply to this email directly or view it on GitHub
https://github.com/CargoSense/ex_aws/issues/75#issuecomment-140796085.

--
Eric Meadows-Jönsson

list_objects https://github.com/CargoSense/ex_aws/blob/master/lib/ex_aws/s3/impl.ex#L52 does not in fact do multiple requests. stream_objects! does by building on top of list_objects https://github.com/CargoSense/ex_aws/blob/master/lib/ex_aws/s3/lazy.ex#L4

I see, now I understand better. So I guess I am asking for the stream_objects! equivalent of delete_multiple_objects.

Can do :+1:


Specify using keyword for QuerySet instantiation

This might be tied to a particular version of django, I'm not too sure. But I ran into issues where the self._db arg was being interpreted as the query on the QuerySet, and was causing all sorts of strange errors.

Thanks @spockNinja ! I have merged your MR. Sorry for very long ignoring.


avrdude says AVR Part not found.

When creating new Xcode project, I can select "atmega88a" from MCU list, but avrdude complains: avrdude: AVR Part "atmega88a" not found. and gives a list with valid parts, where I see the following MCU's:
...
  m8       = ATmega8
  m8515    = ATmega8515
  m8535    = ATmega8535
  m88      = ATmega88
  m88p     = ATmega88P
  m8u2     = ATmega8U2
...

So it seems that the drop down list is not compatible with avrdude supported items.
avrdude: Version 6.0.1, compiled on Mar 23 2014 at 11:59:27
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/usr/local/Cellar/avrdude/6.0.1/etc/avrdude.conf"
         User configuration file is "/Users/Hipska/.avrduderc"

Maybe something to take care of.

Hi. This problem still persist. Any solution for this one?

Hey, any solution?


Is there a change in Monitor

When I create the application using the Quickstarts on https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-windows-store-dotnet-get-started, I use WebApp. But when I go check the Quota in the app itself as described on this page, I only see the File System Storage. When I create the application using Mobile Apps, I get the quota page as shown here. What am I missing? Should I see different values appear depending on Web App vs Mobile App? Or it is because of the tier? Any help in understanding why I am not seeing the monitor metrics as shown here would be appreciated.
And if Mobile Apps are being deprecated, what is the work around for monitor?

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

ID: 2550993f-34f1-d963-3ee5-3dcebe2a64d7
Version Independent ID: 3da9bc96-6e24-54fa-bd99-6a6a704f583a
Content: Monitor apps - Azure App Service
Content Source: articles/app-service/web-sites-monitor.md
Service: app-service
GitHub Login: @btardif
Microsoft Alias: byvinyal

@brucedkyle , Thanks for brining this to our attention. We will investigate it further and update you shortly.

@brucedkyle , Can you please provide the screenshots of what you are seeing under Quotas page for both Web App and Mobile App?
Because when I try to repro the issue, I am seeing the same thing for both Mobile App and Web App, please see the screenshot below.
Mobile App -

Web App -

Meanwhile I am trying to get in touch with my internal team here to find out the work around for Monitor after the Mobile apps are deprecated.

Hi,
The Monitor section above promises to show how to see quota for not just File system, but also for
CPU (Short)
CPU (Day)
Memory
Bandwidth

You are able to reproduce to display quotas when you create a WebApp. Is there a reason why the additional information is not included as shown in the above sectionon this page? I only see the Filesystem in your example.

When I create a Mobile App, I get the charts as expected.

It seems as the quotas blade is really awesome. But when you create web app as described in the Quickstart, you no longer get the cpu and other details that are important and which are described on this page.
I was able to find the quota information, but only by ignoring the guidance and using the apparently deprecated process: Create Resource | Mobile App | Create … then click Quotas.
What is the advise going forward to get the full details as show here? Or are the features being withdrawn?
Thanks so much for your help. I hope this makes sense.

Hello @brucedkyle ,
CPU (Short), CPU (Day), Memory, Bandwidth quotas only apply to Free & Shared SKUs.
Was Mobile App created on free app service plan ?? If so, that might be why Portal displays these quotas. These quotas don’t apply to Basic & higher SKUs & if app service was created on paid app service plan, that may be why you are just seeing File System Quota.
File System Quota applies to all SKUs (different SKUs have different quotas)
I hope this information helps. Please revert back if you have any further questions regarding this matter.

Thanks for your help in understanding

Hi @brucedkyle ,
I am glad I was able to help you resolve your issue. I you have any further questions regarding this matter, Please feel free to tag me in your reply and I will be happy to continue the conversation.


Adds command pa app permission remove, Closes #4655

Closes #4655

Merged manually, great work adding this command!


syntax: add support for highlighting in markdown

Adds support for caddyfile syntax highlighting in markdown.
Both
```caddy
```

```caddy-d
```

are supported, however caddy-d uses the exact same highlighting as caddy due to the way the grammar for this extension is written, which should properly support single-site Caddyfiles.
Closes #18

Sweet. Did you clone the website repo and click around to see if it looks good?

Sweet. Did you clone the website repo and click around to see if it looks good?

Yeah.  The only problem I saw was with the match codeblock in encode.md because it is indented, which the syntax does not like.

Funky enough it is caused by the -  on the line before, not my syntax highlighting.  Gonna take a deeper look into that before merging.

So that weird issue is related to the codeblock being apart of a list.  It is caused by both the regex for matching the markdown codeblock and the caddy syntax highlighter itself, making it really difficult to debug and fix.
I'm going to leave it as is and deal with it at a later date (aka forget it exists until it bothers me again).  If there are any bugs with this change, please feel free to open a new issue.

Awesome, thanks!


Can I point groupsField in @auth to a non-Cognito source?

** Which Category is your question related to? **
Access control through Cognito? or not?
** What AWS Services are you utilizing? **
Amplify, GraphQL, DynamoDB, Cognito
** Provide additional details e.g. code snippets **
I cannot seem to get a good design for a very simple requirement. My users should be able to create groups. When others join groups they can see what that group is allowed to see.
The way I have it designed now is, every group is a group in Cognito. When users join a group they are added to the Cognito group. That group has access to data using the groupsField.
type MyData @model @auth(rules: [
  { allow: owner },
  { allow: groups, groupsField: "group", operations: [read] }
]) {
  id: String!
  description: String
  group: String
}

Under this design, I am limited by the amount of Cognito groups I can create.
It sounds intuitive that I should be able to point groupsField to a source in Dynamo where scaling is no issue.

The group field does mean Cognito groups and your dynamodb use case is not currently supported.
I cannot immediately think of an easy way for you to do this and still leverage Amplify's AppSync codegen. You might be able to fandangle the new @function directive into an isUserInAuthorizedGroup(userId, groupId) lambda function, but I'm not sure how you can slide that in before the codegen resolvers.
A feature request might be to have a custom Groups resolver. Amplify does purport to be a provider-agnostic framework, so it makes sense that Groups shouldn't be linked to Cognito, specifically. It looks like there is some demand for this feature, already: https://github.com/aws-amplify/amplify-cli/issues/1043#issuecomment-473473735

@jordanranz thanks for transferring the issue. Do you need me to close it out here and re-open it under amplify-js?

@ajhool I'd be surprised if there's no current way to do it. I think my design can be made better and independent of Cognito groups. But AWS should definitely clarify the recommended approach.

Solved this with Amazon's help. The answer is to add a pre token generation trigger in cognito. In the lambda you customize the permissions after you pull from dynamo.
https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html#user-pool-lambda-pre-token-generation-trigger-source

@rawadrifai - did you setup the Pre-token generator lambda manually or via cloudformation? It does not seem it can be added via cloudformation. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html and https://forums.aws.amazon.com/thread.jspa?threadID=268907

I did it manually. I’m not all that sophisticated with cloudformation. Id
rather wait for amplify to add ability to add triggers from cli.
On Wed, Jun 19, 2019 at 10:13 AM Hisham A<EMAIL_ADDRESS>wrote:

@rawadrifai https://github.com/rawadrifai - did you setup the Pre-token
generator lambda manually or via cloudformation? It does not seem it can be
added via cloudformation. See
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html
and https://forums.aws.amazon.com/thread.jspa?threadID=268907
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aws-amplify/amplify-cli/issues/1575?email_source=notifications&email_token=AF3E5QKT3MCQNVCMFIOCZCTP3JSLRA5CNFSM4HS7IO72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYCRMMQ#issuecomment-503649842,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF3E5QMIXTBDHWFGVZMKUYLP3JSLRANCNFSM4HS7IO7Q
.

@rawadrifai with the latest amplify updates you can now do this with codegen triggers.

@RossWilliams this is not true for the pre-token trigger. See https://github.com/aws-amplify/amplify-cli/issues/1844


initialize array with default values

feature request:
initialize mutable array of size with default values.
at the moment: emptyArray[Int](5) creates ( , , , , ,) of unknown type, in js probably null
requested behaviour: newArray[T](length, defaultValue)
newArray[Int](5,0) creates: (0,0,0,0,0)

I think it would be convenient to have
def initialize[T](size: Int) { index: Int => T }: Array[T]

For the more theoretically minded, we should have the following laws:
a = initiliaze(a.size) { i => a.index(i) }
initialize(n){f}.size = n
initialize(n){f}.index(i) = if i.inBounds(0, n) then f(i) else do IndexOutOfBounds()


Cannot read property 'error' of undefined

I'm trying to beautify my markdown but I get the error saying "Cannot read property 'error' of undefined"
'atom' version: 1.10.2
'atom-beautify' version: 0.29.12
Error Info:
Cannot read property 'error' of undefined
TypeError: Cannot read property 'error' of undefined
at /Users/sun/.atom/packages/atom-beautify/src/beautifiers/remark.coffee:42:10
at Promise._execute (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/debuggability.js:299:9)
at Promise._resolveFromExecutor (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:481:18)
at new Promise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:77:14)
at Remark.module.exports.Remark.beautify (/Users/sun/.atom/packages/atom-beautify/src/beautifiers/remark.coffee:36:16)
at /Users/sun/.atom/packages/atom-beautify/src/beautifiers/index.coffee:316:24
at Promise._execute (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/debuggability.js:299:9)
at Promise._resolveFromExecutor (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:481:18)
at new Promise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:77:14)
at /Users/sun/.atom/packages/atom-beautify/src/beautifiers/index.coffee:238:18
at tryCatcher (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:510:31)
at Promise._settlePromise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromise0 (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
at Promise._fulfill (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
at PromiseArray._resolve (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise_array.js:125:19)
at PromiseArray._promiseFulfilled (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise_array.js:143:14)
at Promise._settlePromise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:572:26)
at Promise._settlePromise0 (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
at Promise._fulfill (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
at Promise._resolveCallback (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:431:57)
at Promise._settlePromiseFromHandler (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:522:17)
at Promise._settlePromise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromise0 (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
at Promise._fulfill (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
at Promise._resolveCallback (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:431:57)
at Promise._settlePromiseFromHandler (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:522:17)
at Promise._settlePromise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromise0 (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
at Promise._fulfill (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
at Promise._resolveCallback (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:431:57)
at ReductionPromiseArray._resolve (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/reduce.js:61:19)
at Promise.completed as _fulfillmentHandler0
at Promise._settlePromise (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:564:21)
at Promise._settlePromise0 (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
at Promise._settlePromises (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
at Async._drainQueue (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:138:16)
at Async._drainQueues (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:148:10)
at Async.drainQueues (/Users/sun/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:17:14)

yes I also found this bug, when  I save my markdown file.  I use the Atom Material  Theme

Ditto - this bug only happens for me when using Remark. Tidy Markdown still works (though I find Tidy's formatting to be hard to read).
I had to install the last version apm install<EMAIL_ADDRESS>to get Remark working again.

Same problem on both .12 and .13, reverting to 0.29.11 did the trick

I concur, both 0.29.12 and 0.29.13 threw the following error with Markdown, using Remark. Reverting to 0.29.11 fixed the issue. Thank you @mikewesthad and @vmuriart!
Cannot read property 'error' of undefined
Hide Stack Trace
TypeError: Cannot read property 'error' of undefined
    at /Users/gstaffo/.atom/packages/atom-beautify/src/beautifiers/remark.coffee:42:10
    at Promise._execute (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/debuggability.js:299:9)
    at Promise._resolveFromExecutor (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:481:18)
    at new Promise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:77:14)
    at Remark.module.exports.Remark.beautify (/Users/gstaffo/.atom/packages/atom-beautify/src/beautifiers/remark.coffee:36:16)
    at /Users/gstaffo/.atom/packages/atom-beautify/src/beautifiers/index.coffee:316:24
    at Promise._execute (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/debuggability.js:299:9)
    at Promise._resolveFromExecutor (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:481:18)
    at new Promise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:77:14)
    at /Users/gstaffo/.atom/packages/atom-beautify/src/beautifiers/index.coffee:238:18
    at tryCatcher (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:510:31)
    at Promise._settlePromise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromise0 (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
    at Promise._fulfill (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
    at PromiseArray._resolve (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise_array.js:125:19)
    at PromiseArray._promiseFulfilled (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise_array.js:143:14)
    at Promise._settlePromise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:572:26)
    at Promise._settlePromise0 (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
    at Promise._fulfill (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
    at Promise._resolveCallback (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:431:57)
    at Promise._settlePromiseFromHandler (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:522:17)
    at Promise._settlePromise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromise0 (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
    at Promise._fulfill (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
    at Promise._resolveCallback (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:431:57)
    at Promise._settlePromiseFromHandler (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:522:17)
    at Promise._settlePromise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromise0 (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
    at Promise._fulfill (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:636:18)
    at Promise._resolveCallback (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:431:57)
    at ReductionPromiseArray._resolve (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/reduce.js:61:19)
    at Promise.completed [as _fulfillmentHandler0] (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/reduce.js:122:15)
    at Promise._settlePromise (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:564:21)
    at Promise._settlePromise0 (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:612:10)
    at Promise._settlePromises (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/promise.js:691:18)
    at Async._drainQueue (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:138:16)
    at Async._drainQueues (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:148:10)
    at Async.drainQueues (/Users/gstaffo/.atom/packages/atom-beautify/node_modules/bluebird/js/release/async.js:17:14)

Hmm this may be because of https://github.com/Glavin001/atom-beautify/commit/ba0988068e302da9be4e3734c5a282df989818f9
If someone submits a Pull Request reverting to a version of Remark that they confirm works I will merge and publish. Thank you!

Experiencing the same issue here using Atom 1.10.2 and atom-beautify 0.29.13

Published to v0.29.15


docs: Remove instruction to replace prove in solmate

solmate no longer has symbolic tests

no need https://github.com/gakonst/dapptools-rs/commit/dd6457d26688d8cc3df44c1bdd405a3bf86a9899


cmp.h self sufficient

Heya; I meant to give this some thought, and then I gave it a lot of thought, and now I'm gonna merge it :)


npm start failes

ran with npm 2.15.5 and node 4.4.5 on mac:
git clone --depth 1 https://github.com/mgechev/angular2-seed.git
cd angular2-seed
npm install
npm start

npm start fails with:

><EMAIL_ADDRESS>start /Users/xxx/git/angular2-seed
> gulp serve.dev --color

Requiring external module ts-node/register
TSError: ⨯ Unable to compile TypeScript
gulpfile.ts (1,23): Cannot find module 'gulp'. (2307)
gulpfile.ts (2,30): Cannot find module 'run-sequence'. (2307)
tools/config/project.config.ts (1,22): Cannot find module 'path'. (2307)
tools/config/project.config.ts (12,28): Cannot find name 'process'. (2304)
tools/config/seed.config.ts (1,22): Cannot find module 'path'. (2307)
tools/config/seed.config.ts (2,22): Cannot find module 'yargs'. (2307)
tools/config/seed.config.ts (39,23): Cannot find name '__dirname'. (2304)
tools/config/seed.config.ts (154,25): Cannot find name 'process'. (2304)
tools/config/seed.config.ts (389,18): Cannot find name 'require'. (2304)
tools/config/seed.config.ts (412,51): Cannot find name 'require'. (2304)
tools/config/seed.config.ts (437,13): Cannot find name 'require'. (2304)
tools/config/seed.config.ts (446,18): Cannot find name 'require'. (2304)
tools/debug.ts (1,23): Cannot find module 'gulp'. (2307)
tools/debug.ts (2,22): Cannot find module 'yargs'. (2307)
tools/debug.ts (4,1): Cannot find name 'require'. (2304)
......

You don't have gulp and ts-node! The install assumes that you have them already globally so it doesn't duplicate install them.
Do: npm install -g gulp ts-node
And then try again, it should work.

@aie0 Have you tried to re-run npm install several time ?
@projenix Global modules shouldn't be necessary.

Duplication of https://github.com/mgechev/angular2-seed/issues/591.

Had this issue earlier, running sudo npm install --unsafe-perm fixed it.


Info

******  B A T C H   R E C U R S I O N  exceeds STACK limits ******
Recursion Count=301, Stack Usage=90 percent
******       B A T C H   PROCESSING IS   A B O R T E D      ******
Any idea

Search issues before posting a new one. See #24 . Read https://github.com/turbo/alwsl/issues/10#issuecomment-247330887


Fix race condition in cJSON_Parse.* calls

Concurrent calls to cJSON_Parse.* routines mutually overwrite the static global_error variable, which produces a write race condition caught by the thread sanitizer.
Since cJSON_GetErrorPtr is not used (as it is not thread-safe), it does not make sense to fill in the value of the global variable and thus trigger the race condition.
A mutex would incur slow-down.
Hence remove access to the static global_error variable from cJSON_Parse.* routines.
To avoid using cJSON_GetErrorPtr in the future, comment it out.
Resolves #953.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thank you for your contribution. I have duplicated the PR at https://github.com/awslabs/aws-c-common/pull/972 to make some trivial changes and run CI.


Why is the causal graph reversed?

https://github.com/amazon-science/petshop-root-cause-analysis/blob/1c5992dc46a02c988a027e2219036d59e8158a91/code/circa.py#L59
Thanks for releasing the well-documented and easy-to-understand code and dataset. I have a question regarding the reversal of edges in the causal graph at this line. Following this, the code fits linear regressions (for local causal mechanisms) using the graph with reversed edge directions. Am I missing something here? Any help would be much appreciated.

Yes, you are right. The edges get reversed.
The graph passed to analyze_root_causes() is the call graph of the application. I.e. an edge X -> Y in this graph indicates that service X is calling service Y. For e.g. latencies we would expect that a high latency in Y would then cause a higher latency in X, but not so much the other way around. So in a causal graph we would want X <- Y. From this point of view the causal graph has the skeleton of the call graph but the reversed edges.
Clearly, you can also construct counter-examples to this logic.
But as this "reversed call graph" seems to help in the benchmark, I think this might be a reasonable first approximation to reality.


⚠ GreatPosterWall has degraded performance

In bb99042, GreatPosterWall ($GPW) experienced degraded performance:

HTTP code: 200
Response time: 1684 ms

Resolved: GreatPosterWall performance has improved in 40832f6.


Update tools listings

Added:

VHostScan
Subfinder
NoSQLMap

What's this for?
On 25 Jun 2018 16:24, "Michael"<EMAIL_ADDRESS>wrote:

Added:

VHostScan
Subfinder
NoSQLMap

You can view, comment on, or merge this pull request online at:
https://github.com/carpedm20/awesome-hacking/pull/53
Commit Summary

Update README.md

File Changes

M README.md
https://github.com/carpedm20/awesome-hacking/pull/53/files#diff-0
(4)

Patch Links:

https://github.com/carpedm20/awesome-hacking/pull/53.patch
https://github.com/carpedm20/awesome-hacking/pull/53.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/carpedm20/awesome-hacking/pull/53, or mute the thread
https://github.com/notifications/unsubscribe-auth/Alk-DxPrxcDjMGsbH1PPT03VsSdbfS0Zks5uAIkagaJpZM4U1mfr
.

@Heythere92 the repositories explain quite well. I'm unsure what you're asking?

Thanks for the PR!


Plans for FVTT 0.7.5 and onwards

EDIT:
i kinda don't have the time and/or motivation to really work on the new rolling module, so i'll keep everything alive here for the time being.
The original plan as of below is still planned, but moved in farther back in the future.
--------- original message:
As already stated in another issue i'm kinda busy at the moment and probably won't be able to provide patches  for FVTT 0.7.5 directly. So if you rely on features from MESS wait until i've got time to patch it. (Or someone else is nice enough to help providing the necessary patches!)
On the other hand i take this opportunity to restructure this whole mess:

I will cut the whole DnD5e dice rolling part out of this module and put it into its own module. While doing this  the rolling will get a biiiiiig overhaul with the main goal of making it more robust and compact. (This is already a WiP)

The rest of the module will stay the same for the foreseeable future, but will probably not get any content updates. (Besides maybe some small feature i want to play around with, like the dnd 5e sheet changes and such)

As a sidenote:
Maybe this module will be deprecated soonish completly.
SecretFire and TokenMagicFX are including the video texture and scaling parts of this module. https://github.com/Feu-Secret/Tokenmagic#token-magic-fx---update-v044-alpha-mess-edition-part-i
He is doing an awesome job with his stuff and i do think that this does fit way better into his module than in this mess here. Also he is way more motivated in this and this may even result in more features being added! So go check out that module and consider switching, if you're just interested in the template stuff!

The smooth drag and drop with positioning change is the reason I will keep using this mod. Please consider releasing that functionality as a new mod, so this can be fully deprecated.

Since you're considering deprecating the module completely since there's other mods that handle the major parts of what you do, are you OK if I fork off the prepared spell elements into its own module?

Since you're considering deprecating the module completely since there's other mods that handle the major parts of what you do, are you OK if I fork off the prepared spell elements into its own module?

Yes, ofc, feel free to use it as you want!
(adhering to the License.. though its MIT, so not much to adhere to)

Updated original post, with new status and plans:

i kinda don't have the time and/or motivation to really work on the new rolling module, so i'll keep everything alive here for the time being.
The original plan as of below is still planned, but moved in farther back in the future.

Updated original post, with new status and plans:

i kinda don't have the time and/or motivation to really work on the new rolling module, so i'll keep everything alive here for the time being.
The original plan as of below is still planned, but moved in farther back in the future.

Please don't let this module die! Just 1 sugestion: show advantage/disavantage on attack templates (really important).

Please don't let this module die!

Ah it's shame to see the rolling go from the mod

My replacement for this modules rolling part is now submitted and waits for approval. Meanwhile you can download the module and look at its features from its repository:
https://github.com/Moerill/fvtt-mars-5e
Manifest: https://raw.githubusercontent.com/Moerill/fvtt-mars-5e/master/module.json


fix(discovery): skip discovery of notifications without states

Fixes #1332

Pull Request Test Coverage Report for Build 928455191

0 of 0   changed or added relevant lines in 0 files are covered.
56 unchanged lines in 1 file lost coverage.
Overall coverage increased (+10.9%) to 30.539%

Files with Coverage Reduction
New Missed Lines
%

lib/Gateway.ts
56
17.47%

Totals

Change from base Build 928123718:
10.9%

Covered Lines:
3571

Relevant Lines:
12286

💛  - Coveralls


Cannot compile queries without parameters

I am able to successfully compile examples that have variables such as
query PuppySmiles($after: String) {
  reddit {
    subreddit(name: "puppysmiles") {
      newListings(limit: 6, after: $after) {
        title
        fullnameId
        url
      }
    }
  }
}

but if I try to use a query that does not have a variable (in this case, after)
query FooBar {
  reddit {
    subreddit(name: "puppysmiles") {
      newListings(limit: 6, after: "foobar") {
        title
        fullnameId
        url
      }
    }
  }
}

The code does not compile for me.

Same problem, I cannot use any query that does not use variables(Which is most of them...)

I just checked out this repo to fix this, and it seems like it actually already works in the repo. It seems that maybe they have not performed a cargo publish in a very long time (7 months), so perhaps it was fixed but never published.

Either this was fixed, or this repo is abandonware, so closing


Timestamps mal-formatted

Each line of the timestamps file starts with '%{' and ends with '}85'.  E.g.:
%{26-Mar-2017 17:16:47.118147705}85
%{26-Mar-2017 17:16:48.133973876}85
%{26-Mar-2017 17:16:48.533026367}85
%{26-Mar-2017 17:16:48.915482421}85
%{26-Mar-2017 17:16:49.298099609}85

Older timestamp files (which I know work) only have:
26-Mar-2017 17:16:47.118147705
26-Mar-2017 17:16:48.133973876
26-Mar-2017 17:16:48.533026367
26-Mar-2017 17:16:48.915482421
26-Mar-2017 17:16:49.298099609

When you try to open a video, you get an error from readline saying that the value is not a scalar as expected.

Fixed this.  I had the read & write timestamp format string variables swapped.


added native return type to relation BelongsTo

Utils for phpstan

This is cool but technically you'd also have to change the minimum PHP version supported as return types weren't supported until PHP 7.
Also worth saying that stricter levels of phpstan require more detailed docblocks along the lines of @return BelongsTo<YourModel, self> which wouldn't be possible here as the class names are stored in config but I guess if there was an interface then that might help.


Deprecate use of np.bool_ in tests.

Why do we want to do this?

Wait what? Testing now on numpy 1.23.3 I'm getting e.g.
isinstance(np.bool_(True), bool) == False

As far as I remember, the deprecation was that np.bool was aliased to bool and is now deprecated. np.bool_ and bool are still different.

The numpy docs agree with @RedTachyon
https://numpy.org/doc/stable/reference/arrays.scalars.html#numpy.bool_

Interesting... Probably 2 am disillusionment then. Closing this.


services/horizon: Move a couple services metrics registration to be closer to the code

PR Checklist
PR Structure

[x] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[x] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[x] This PR adds tests for the most critical parts of the new functionality or fixes.
[x] I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.

Release planning

[x] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[x] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

What
Move some of the metrics registration into the relevant services, to make it easier to remember to update.
Why
Part of #4027
Known limitations
There's a bunch of app-specific metrics, which could probably be better organized as well.

It does couple them closer to the source which may or may-not be good. It trends them towards being a self-contained "microservice" almost. But it also standardizes how they're wired up a bit more. Now you could have a:
interface MetricsRegisterer {
  RegisterMetrics(*prometheus.Registry)
}

Whereas before that was very ad-hoc.


NodeBuilder: AddRPC() requires UseWallet()

If you don't include UseWallet() then the Stratis node crashes on startup. Crash is due to a dependency on WalletManager (which isn't there if you don't include UseWallet())

Is this a dependency we require or should we load WalletRPCController conditionally depending upon whether UseWallet() was included?

For now a quick fix is to allow wallet to be null however a better fix is to separate the controllers in to their features (like with api).

This is the actual exception being thrown:
System.InvalidOperationException occurred
  HResult=0x80131509
  Message=Unable to resolve service for type 'Stratis.Bitcoin.Features.Wallet.IWalletManager' while attempting to activate 'Stratis.Bitcoin.Features.Miner.PosMinting'.
  Source=<Cannot evaluate the exception source>
  StackTrace:
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.Service.PopulateCallSites(ServiceProvider provider, ISet`1 callSiteChain, ParameterInfo[] parameters, Boolean throwIfCallSiteNotFound)

The exception is thrown when copying the node services to the RPC services in this line
https://github.com/stratisproject/StratisBitcoinFullNode/blob/9aec20b1a922fc73f2aff755c35c44881bdbd40a/Stratis.Bitcoin/Features/RPC/RPCFeature.cs#L48

Unfortunately I cant see to reproduce this bug.
If I comment out .UseWallet() in NodeBuilder this tests fails only on the RPC call 'SendCommand' (not the node init)
        [Fact]
        public void CanMineBlocks()
        {
            using(NodeBuilder builder = NodeBuilder.Create())
            {
                var stratisNodeSync = builder.CreateStratisNode();
                builder.StartAll();
                var rpc = stratisNodeSync.CreateRPCClient();
                rpc.SendCommand(NBitcoin.RPC.RPCOperations.generate, 10);
                Assert.Equal(10, rpc.GetBlockCount());
            }
        }

If you startup the node like this you will encounter the error:
 var node = new FullNodeBuilder()
                .UseNodeSettings(nodeSettings)
                .UseStratisConsensus()
                .UseBlockStore()
                .UseMempool()
                .AddPowPosMining()
                .AddRPC()
                .Build();

Maybe I should create a unit test for it?

As discussed the solution is to probably check feature dependencies at Feature level.
Suggested is to add to the FeatureExecutor the following
this.Execute(featureCollection, service => service.ValidateDependencies(featureCollection),  service.Start());

Then each feature can verify its dependencies (by feature)

As per discussion going to change so validate dependencies on per feature prior to feature startup.

@dangershony
Execute() does both starting and stopping the service and the validation is only relevant to starting. Propose we do this instead:

Expose FullNode.Features property in IFullNodeBuilder

In FullNodeFeatureExecutor.cs

''' C#
public void Start()
{
try
{
FeatureCollection featurecollection = this.FullNodeBuilder.Features;
this.Execute(service => service.ValidateDependencies(featureCollection));
this.Execute(service => service.Start());
}
catch (Exception ex)
{
this.logger.LogError("An error occurred starting the application", ex);
throw;
}
}
'''
3. ValidateDependencies() would iterate through its service DI dependencies and compare each dependency with what is in featureCollection. If there is any dependencies that aren't in feature collection then it would log them and throw an InvalidOperationException.
Thoughts?

The above somewhat works but have one problem I haven't been able to figure out.  IFullNodeBuilder is not registered in DI unless RPC is added. So I can't get to IFullNodeBuilder from FullNodeFeatureExecutor. Any ideas?

I don't think we need to iterate over services, just let each feature validate its dependencies.
features.FeatureRegistrations.Any(i => i.FeatureType == typeof(WalletFeature);

Yes I guess doing it via trying to resolve all the dependent services is probably a bit of overkill. Dependencies between features is likely more the exception than the rule.  I'm sure in general the features are designed to be as standalone as possible.
I will look at implementing your solution.

@dangershony
I had problems getting access to the FullNodeBuilder.Features from within the FullNodeExecutor so instead I invoke the validation logic at the end of FullNodeBuilder.Build(). This seems to work but I have a couple of unit tests that now break.
This test below breaks because not all the dependent services are available for the BlockStoreFeature (specifically NBitcoin.ConcurrentChain). Should this be refactored to take in mock feature instead of a real feature? Or is this purpose of the test testing that the default configuration can build a node with  BlockStoreFeature?
https://github.com/stratisproject/StratisBitcoinFullNode/blob/d136fb494472e5872cf3e9ea10fa067827e67788/Stratis.Bitcoin.Tests/Builder/FullNodeBuilderTest.cs#L137

Doesn't this work?
	this.node.Services.Features.ToList()

Think I finally have a reasonable solution to this. I'll make a PR if you want to take a look. Thanks for all the help!

PR has been merged into master


fix: update return type to be string vs. number

Fixes #1092
GaxiosError returns code as a string, but this method in the auth library overwrites the code as a number. We're just updating it to return a string to be consistent.

After further discussion, we are going to close this for now but we will open an issue to change the type to accept either a string or number on the next major bump.


[ZEPPELIN-5728] Absence of cancelNote method in Zeppelin Client Api

What is this PR for?
Currently there's a cancelParagraph method in zeppelin client api, however, there's no cancelNote method.
PR is to add a cancelNote method  in zeppelin client api.
What type of PR is it?
Improvement
Todos

[ ] - Task

What is the Jira issue?

Open an issue on Jira https://issues.apache.org/jira/browse/ZEPPELIN-5728

How should this be tested?

CI passed

Screenshots (if appropriate)
Questions:

Does the licenses files need to update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

😂 I just add a method in Zeppelin Client and do nothing else.
It's so strange that the CI tasks failed.  And I re-run CI tasks twice in my own forked zeppelin repository, they still failed.
The log of failed CI tasks is about Jupyter kernel.

😅 I just add a method in Zeppelin Client and do nothing else. It's so strange that the CI tasks failed. And I re-run CI tasks twice in my own forked zeppelin repository, they still failed.
The log of failed CI tasks is about Jupyter kernel.

This error is not related with your PR. It also happens in master

@huage1994 CI issue is fixed, please rebase your PR

Thanks @zjffdu  a lot. I have added test and rebased my PR.


chore(key-auth): test key-auth ttl on Hybrid mode (FTI-4512)

Summary

Just leave a note here.
DO NOT MERGE!
Checklist

[ ] The Pull Request has tests
[ ] There's an entry in the CHANGELOG
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Full changelog

[Implement ...]

Issue reference

Fix #FTI-4512

@outsinre jut a note, I think the fix should land here:
https://github.com/Kong/kong/blob/master/kong/db/strategies/off/init.lua
So when reading data, it should ignore `ttl'd items.

@outsinre Any blockers here? This is pretty important to fix as it can lead to security incidents otherwise.

@outsinre Any blockers here? This is pretty important to fix as it can lead to security incidents otherwise.

@hbagdi , I will discuss with in today's standup meeting to discuss ideas and then the design.

@outsinre Any update?

Closing because of lack of activity. We would like to accept this contribution if anyone wishes to pick this back up.


Many repos in our organisation ar identified as Javascript despite being Groovy projects

Organisation url: https://github.com/AtlasOfLivingAustralia
Most of our projects are Grails projects using the Groovy language, but they are identified as Jacascript projects due to the amount of third party web static libraries that we use as dependencies and that, for now, we have to check in with our source code.
Cheers,
Angel.

Here are the details of which files participate to the statistics count for 4 of your (detected-as-)JavaScript repositories.
I found a few directories we could ignore (ie. add to vendor.yml). For instance, leaflet-plugins, bootstrap-datepicker, fancybox, fileupload, etc. I'll open a pull request for those.
To ignore the other libraries you can use Linguist overrides.


A Switch widget configured to send a fixed string as the topic does not send the topic, unless a message is sent to its input.

If a Switch is configured with a fixed string as the topic then it does not send the topic unless a message is sent to its input.
To replicate, import the flow below. Do not click the inject nodes. Exercise the switch in the UI and it will be seen that the topic is not sent.  Now click one of the inject nodes and thereafter the configured topic will be sent when the switch is exercised.  Note that the input messages have a different topic.  Restarting node red did not seem to be sufficient to show the problem again, I had to delete the node, Deploy, and re-import it.
Edit: Using Dashboard version 0.11.1, NR 3.1.3, nodejs 20.5.1
[{"id":"43d268a322a00bb8","type":"debug","z":"997da33a0beedade","name":"debug 2473","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":790,"y":1020,"wires":[]},{"id":"26801ad4f7fb6aa3","type":"ui-switch","z":"997da33a0beedade","name":"","label":"string topic test switch","group":"7545fdb22e4a388c","order":0,"width":0,"height":0,"passthru":false,"topic":"some/topic","topicType":"str","style":"","className":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":570,"y":1020,"wires":[["43d268a322a00bb8"]]},{"id":"dc38f39b5ded4394","type":"inject","z":"997da33a0beedade","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"another/topic","payload":"true","payloadType":"bool","x":280,"y":1000,"wires":[["26801ad4f7fb6aa3"]]},{"id":"de7f3f046aa9dbf5","type":"inject","z":"997da33a0beedade","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"another/topic","payload":"false","payloadType":"bool","x":290,"y":1060,"wires":[["26801ad4f7fb6aa3"]]},{"id":"7545fdb22e4a388c","type":"ui-group","name":"D2 tests","page":"d7fcdd33578e5d34","width":"6","height":"1","order":-1,"showTitle":true,"className":""},{"id":"d7fcdd33578e5d34","type":"ui-page","name":"d2","ui":"ID-BASE-1","path":"/d2","layout":"flex","theme":"4bff2b59c4c518e1","order":-1,"className":""},{"id":"ID-BASE-1","type":"ui-base","name":"Dashboard","path":"/dashboard"},{"id":"4bff2b59c4c518e1","type":"ui-theme","name":"Another Theme","colors":{"surface":"#ffffff","primary":"#0094ce","bgPage":"#eeeeee","groupBg":"#ffffff","groupOutline":"#cccccc"}}]

I am also getting this problem - the Topic is not being sent properly.  It also seems like it isn't receiving state information on the input side.  For example, if I send an input to turn the switch on via msg.payload, the switch is not coming on.

if I send an input to turn the switch on via msg.payload, the switch is not coming on.

First, make sure you are using the latest version of the dashboard (1.0.2). If you are then check that the value you feed in exactly matches the on/off values you have specified in the node. If it still isn't working show us how you have configured the Switch and show us the payload you are feeding in.

This is still happening in 1.1.0.
In fact, there is something wrong going on with the ui_switch the very first time it is used (after a NR restart).

This is the debug the very first time it is pressed:

Upon a second click, you get this debug output:

However, the topic is not set at all...
Only way to make it work, is to inject something with a payload to true or false to "properly" initialize it.

And if I do the same test with another component (text_input), the topic is fine when setting it by "string".

Is that not exactly the problem I describe in the bug description?

@colinl : It is indeed what you said and describe. I just added my observation that there seems to be something weird also upon a fresh NR reboot.

What is the extra weirdness on NR reboot? I don't see it in your description.

It's shown in the picture of the debug output. The very first message does not have the "_client" property, while after it does. This behavior is not happening if using other widgets like ui_button (the message output keeps the same properties when sent whether it's the very first time or not).

OK.
Also, however, you say the topic is missing every time you restart node red, whereas my description says that is not the case. I will retest.

Following retest you are correct, with the latest NR and dashboard the symptom is repeatable on NR restart.  I have amended the description.

The very first message does not have the "_client" property,

It seems this issue exists also when the topic is not configured with a string.  I have opened a new issue for that.


CI integration for e2e tests

Requirements:

Get a CI system (CentOS)
Add CI automation for PRs

(from HackMD list)
also marked as "get help"

Tracked in #698


Debugging lost connections?

Is there a way I can figure out why a websocket connection has been closed?  I'm having a problem where connections to my AWS EC2 host are being disconnected. Both the high-level message on the client and server show a disconnection, without too much detail as to what happened.
Is there some logging I can enable, or codes I can watch to determine what may be happening?
SSH connections to the same machine are stable for a long-period, so I don't think I have an underlying TCP issue. I'm suspecting something at the WebSocket level, but I can't be positive, and I'm unsure of how to figure where the problem is.
NOTE: only some WebSockets are closed, and if I have a lot of them they are slowly closed over time.

https://websockets.readthedocs.io/en/stable/cheatsheet.html#debugging can help, although it will be very verbose at the DEBUG level if you have a ton of connections.
You can look at the close_code and close_reason of the protocol, once the connection is closed. Per the spec, it's the close code received from the remote endpoint, so it's often useless if the connection drops without a proper closing handshake.

Argh, this issue is being complicated by the Motor MongoDB library throwing empty exceptions!  No info, no stack trace, just an error.   These are currently standing out as the most likely reason for disconnects. I'll have to figure them out first.

I've removed the Mongo error and added better tracking. It still sometimes fails. All I get is:
Dec 12 18:39:19 ip-172-30-0-61.ec2.internal escape-socket-server[27959]: code = 1006 (connection closed abnormally [internal]), no reason
Dec 12 18:39:19 ip-172-30-0-61.ec2.internal escape-socket-server[27959]: Disconnected 8@room6:('<IP_ADDRESS>', 39526)
Dec 12 18:39:19 ip-172-30-0-61.ec2.internal escape-socket-server[27959]: Lost client in send

I will add even more tracking to my code to see if I can isolate an erorr.
Turning on DEBUG level logging prevents the error from happening -- presumably since the logging load is so high that not much else happens.

Turning on DEBUG seems to prevent the error from happening.
Without DEBUG, using my own print statements, I find the disconnect tends to happen in a call to send with the exception <class 'websockets.exceptions.ConnectionClosedError'> code = 1011 (unexpected error), no reason
On the Python client I get this stack trace at the time of the disconnect. There's no way I can tell which happened first -- though keep in mind the disconnect also happens from a web browser.
future: <Task finished name='Task-5' coro=<reader() done, defined at ws_client.py:27> exception=ConnectionClosedError('code = 1006 (connection closed abnormally [internal]), no reason')>
Traceback (most recent call last):
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 827, in transfer_data
    message = await self.read_message()
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 895, in read_message
    frame = await self.read_data_frame(max_size=self.max_size)
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 971, in read_data_frame
    frame = await self.read_frame(max_size)
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 1047, in read_frame
    frame = await Frame.read(
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/framing.py", line 105, in read
    data = await reader(2)
  File "/usr/lib/python3.8/asyncio/streams.py", line 723, in readexactly
    await self._wait_for_data('readexactly')
  File "/usr/lib/python3.8/asyncio/streams.py", line 517, in _wait_for_data
    await self._waiter
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "ws_client.py", line 35, in reader
    async for message_raw in websocket:
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 439, in __aiter__
    yield await self.recv()
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 509, in recv
    await self.ensure_open()
  File "/src/escape-live/env/lib/python3.8/site-packages/websockets/protocol.py", line 812, in ensure_open
    raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedError: code = 1006 (connection closed abnormally [internal]), no reason

I'll try with DEBUG once more.

1011 is the equivalent of HTTP 500 internal server error — which doesn't really help.
websockets closes the connection with an error 1011 in these circumstances:

if it sent a ping and the pong doesn't come back in a timely fashion; you can set ping_timeout=None to disable pings and see if that's the issue
if it's half-way through a fragmented message and is unable finish it, which is irrecoverable; the exception is propagated back to the caller
if an internal task fails; this is logged at the ERROR level; search for Error in data transfer in logs
on the server side, if the connection handler crashes; this is logged at the ERROR level; search for Error in connection handler in logs

When you're hitting ConnectionClosed in send(), the connection is already closed, so the error likely happened earlier.
I hope this can help you narrow it down.
Finally, others tracked down issues of this kind to other parts of their app, like a misbehavior connection pool for their database. I'm not entirely surprised to see you mention Motor.

The only option appears to be the Ping timeout, as there were no "Error..." in the logs and I wasn't using fragments.  Could we get a log output, perhaps a Warning, for a timeout? Or some way in the API to detect a timeout, so that I can log it appropriately.  I'd like to track how often it happens. It's not critical though.
I have a longer timeout and did a test serving 500 concurrent WebSocket connections doing ping-pong messaging. None of them disconnected, even via the load balancer.
*Motor was causing issues on initial connection, but I don't look at the DB after that. So it wasn't likely the issue here. If it intereferes with other connections I'll see it now, as I log the exception better.

A log message containing timed out waiting for pong is emitted at the DEBUG level when a ping times out.
Since WebSocket connections are long lived, this tends to happen quite often, which is why it's only at the DEBUG level.

The suggested improvement here would be to raise a specific ConnectionClosed exception when a ping timed out.

This is easily reproduced as follows:

add , ping_interval=1, ping_timeout=1 to the example/server.py script and run it
run the example/client.py script — it will block on the input call and the server will timeout

This gives the same stack trace:
Traceback (most recent call last):
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 756, in transfer_data
    message = await self.read_message()
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 825, in read_message
    frame = await self.read_data_frame(max_size=self.max_size)
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 901, in read_data_frame
    frame = await self.read_frame(max_size)
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 977, in read_frame
    frame = await Frame.read(
  File "/Users/myk/dev/websockets/src/websockets/legacy/framing.py", line 55, in read
    data = await reader(2)
  File "/Users/myk/.pyenv/versions/3.10-dev/lib/python3.10/asyncio/streams.py", line 708, in readexactly
    await self._wait_for_data('readexactly')
  File "/Users/myk/.pyenv/versions/3.10-dev/lib/python3.10/asyncio/streams.py", line 502, in _wait_for_data
    await self._waiter
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/myk/dev/websockets/src/websockets/legacy/server.py", line 293, in handler
    await self.ws_handler(self, path)
  File "/Users/myk/dev/websockets/example/server.py", line 10, in hello
    name = await websocket.recv()
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 417, in recv
    await self.ensure_open()
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 741, in ensure_open
    raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedError: code = 1006 (connection closed abnormally [internal]), no reason

We'll need to solve #587 first.
Indeed, we need to know why the connection was closed, and we don't have this information in the close code and reason, because we never receive them when we fail the connection.

After 0cce70a8 and #998 this is now reported on the client side as:
websockets.exceptions.ConnectionClosedError: received 1011 (unexpected error) keepalive ping timeout; then sent 1011 (unexpected error) keepalive ping timeout

and on the server side as:

It is reported as:
connection handler failed
Traceback (most recent call last):
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 813, in transfer_data
    message = await self.read_message()
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 882, in read_message
    frame = await self.read_data_frame(max_size=self.max_size)
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 958, in read_data_frame
    frame = await self.read_frame(max_size)
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 1012, in read_frame
    frame = await Frame.read(
  File "/Users/myk/dev/websockets/src/websockets/legacy/framing.py", line 83, in read
    data = await reader(2)
  File "/Users/myk/.pyenv/versions/3.10-dev/lib/python3.10/asyncio/streams.py", line 708, in readexactly
    await self._wait_for_data('readexactly')
  File "/Users/myk/.pyenv/versions/3.10-dev/lib/python3.10/asyncio/streams.py", line 502, in _wait_for_data
    await self._waiter
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/myk/dev/websockets/src/websockets/legacy/server.py", line 305, in handler
    await self.ws_handler(self, path)
  File "/Users/myk/dev/websockets/example/server.py", line 9, in hello
    name = await websocket.recv()
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 461, in recv
    await self.ensure_open()
  File "/Users/myk/dev/websockets/src/websockets/legacy/protocol.py", line 798, in ensure_open
    raise self.connection_closed_exc()
websockets.exceptions.ConnectionClosedError: sent 1011 (unexpected error) keepalive ping timeout; no close frame received

which is clear.
So closing as a duplicate.


Clean up repo documentation (closes #1433)

Hi!
As discussed yesterday on twitter, I made the changes described in #1433. I'll probably start with #1386 tomorrow, I'll make a few sample apps with the library first :smile:
Is the pull request ok like this?

Perfect!
Thanks @mauruskuehne ! :smile: :tada:


Update version: Typst.Typst version 0.8.0

Pull request has been created with Komac v1.11.0 :rocket:
This PR fixes the changelog

@wingetbot waivers Add Validation-Executable-Error


Use subnet address in OPT net rules

Example: LAN IP <IP_ADDRESS>/24 OPT1 IP <IP_ADDRESS>/24
Rules with SRC or DST LANnet correctly have <IP_ADDRESS>/24 (the subnet base address) in /tmp/rules.debug
Rules with SRC or DST OPT1net have <IP_ADDRESS>/24 (the OPT1 IP address with OPT1 net mask) in /tmp/rules.debug
It still works (I think) because actually <IP_ADDRESS>/24 and <IP_ADDRESS>/24 interpreted as a subnet still describes the same set of IP addresses, but it looks odd, as reported by: https://forum.pfsense.org/index.php?topic=90096.msg498474#msg498474
Same issue with IPv6 for OPT1net rules.
This fixes the rule generation to that OPT1net uses the base subnet address in the rule, in the same way that LANnet and WANnet does.

I do not think that any rule processing was actually broken by this. This fix just makes the generated ruleset more consistent, saving questions from people who look in /tmp/rules.debug


Why Firebase cloud functions are slow. 1 second to complete

Why my Firebase cloud functions are slow. I have tested a simple function and it takes more than 1 second every time.
this is my code in Kotlin:
coroutineScope.launch(Dispatchers.IO) {
    val timeTaken = measureTimeMillis {
        currentAndroidVersion =
            loginViewModel.repo.checkAndroidVersion(lastUpdateDate)
    }
    println("checkAndroidVersion took $timeTaken ms to execute")
}

this usually prints:

checkAndroidVersion took 1394 ms to execute
checkAndroidVersion took 1028 ms to execute

KMM repo:
val functions = Firebase.functions("europe-central2")

suspend fun checkAndroidVersion(version: String): String{
    return functions.httpsCallable("checkAndroidVersion").invoke(version).data<String>()
}

cloud function:
exports.checkAndroidVersion =
onCall({region: "europe-central2"}, (request) => {
  logger.info("current user version = "+request.data, {structuredData: true});
  const version = request.data;
  if (version != "15/10/2024") {
    return version;
  }
  return "updated";
});

these are my dependencies:
implementation("dev.gitlive:firebase-firestore:1.10.4")
implementation("dev.gitlive:firebase-common:1.10.4")
implementation("dev.gitlive:firebase-auth:1.10.4")
implementation("dev.gitlive:firebase-functions:1.10.4")

@Daeda88


Interface Grid

Any chance of have this block that allows us to see all of our patterns that are connected to the network, thus allowing us to place our patterns remotely rather than running to the machine, similar to AE2's interface terminal?

This has been implemented for v1.5.33.

Will it work for other things that implement the API, like the Reborn Storage multi-block?

Yes


Increase timeout for process tests & remove some stream matchers

See https://github.com/invertase/dart_custom_lint/pull/126#issuecomment-1473876867

The stream matchers aren't really removed by this PR :P