text:
Words are counted even when the result is not viewed

A thing I came across trying to implement #72.

Could you elaborate on this a bit? Or if you feel it's a easy one, send over a PR?
thanks!

I added a debug log statement somewhere in WordcountView::getCurrentText and noticed it was fired even in the .coffee file I was editing. So the count is probably being calculated even for files that are excluded by the configuration.

Yes, you are right. Let's continue this in the PR 👍

I just published 2.10.0 containing your changes. Again, thank you very much ✨

authors: nesQuick villermen

repo: nesQuick/atom-wordcount


text:
API documentation

Hello,
please, can you better explain with other examples?
Eg. after $page->goto($url);
does it mean that $page contains the page content or how to get the entire page content inside a variable?
That is, I need to surf a page as if I were in front of the screen and then extract all the hrefs of this page searching in the page content
thanks

PuPHPeteer is only a PHP bridge for Puppeteer, therefore the API is the same, only the syntax differs.
If you check the documentation for the goto method on the original repository, you can see it returns Response or null, it's the same for PuPHPeteer. 😉
$response = $page->goto('https://example.com');

// Prints the headers of the response
var_dump($response->headers());

// Prints the full HTML contents of the page
var_dump($page->content());

Hello, I did the installation as described but on error log:
Uncaught Symfony\Component\Process\Exception\ProcessFailedException: The command "'node' '/home/user/public_html/tmp/pjs/vendor/extractr-io/rialto/src/node-process/serve.js' '/home/user/public_html/tmp/pjs/vendor/extractr-io/puphpeteer/src/PuppeteerConnectionDelegate.js' '{"idle_timeout":60}'" failed.
Exit Code: 1(General error)
Working directory: /home/user/public_html/tmp/pjs
Output:
Error Output:
/home/user/public_html/tmp/pjs/vendor/extractr-io/puphpeteer/src/PuppeteerConnectionDelegate.js:25
async handleInstruction(instruction, responseHandler, errorHandler) {
^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:49 in /home/user/public_html/tmp/pjs/vendor/extractr-io/rialto/src/Process.php on line 232
please, what's the issue here?
thanks

You need Node 8 or greater.

I think you should create/update, if possible, a guide to properly run it on CentOS (at least 7) because it's a mess
https://github.com/GoogleChrome/puppeteer/issues/391#issuecomment-356822760

Actually, this is an issue due to Puppeteer, my bridge is not related to this. Please, see Puppeteer's  troubleshooting guide for your issues with CentOS.
Based on the guide, disabling the sandbox might help you:
$puppeteer = new Puppeteer;

$browser = $puppeteer->launch([
    'args' => ['--no-sandbox', '--disable-setuid-sandbox'],
]);

installed dependencies, used your no sandbox...
but for var_dump($page->content()); I always get NULL

Please, give me a fully reproducible example. This code works for me:
$puppeteer = new ExtractrIo\Puphpeteer\Puppeteer;
$browser = $puppeteer->launch(['headless' => false]);
$page = $browser->newPage();
$page->goto('https://example.com');

var_dump($page->content());

Check also if the issue doesn't come directly from Puppeteer by using the original API in Node.js.

I have
nodejs-9.7.1-1nodesource.x86_64
this was installed after your installation commands, because by mistake I skipped the line where written that Node 8+ is required and on CentOS by default node 6 in installed...
anyway, may it be related?
Do I need to run that npm command again or ?

I get errors if I don't use --no sandbox only
so,
require 'vendor/autoload.php';
use ExtractrIo\Puphpeteer\Puppeteer;

$puppeteer = new Puppeteer;
$browser = $puppeteer->launch([
    'args' => ['--no-sandbox', '--disable-setuid-sandbox'],
]);
$page = $browser->newPage();
$response = $page->goto('https://example.com/');
var_dump($page->content());
$browser->close();

with example.com I get the result, BUT with other sites
eg. icecat.de
I get NULL

Ooooh, seems like there is an issue with my code! I got the same result!
Could you create a new issue describing this? I will fix this later today or tomorrow.

This is not working for me.
Fatal error: Uncaught Symfony\Component\Process\Exception\ProcessFailedException: The command "'node' '.../vendor/nesk/rialto/src/node-process/serve.js' '.../vendor/nesk/puphpeteer/src/PuppeteerConnectionDelegate.js' '{"idle_timeout":60,"log_node_console":false,"log_browser_console":false}'" failed. Exit Code: 127(Command not found) Working directory: ...Output: ================ Error Output: ================ sh: line 0: exec: node: not found in .../vendor/nesk/rialto/src/ProcessSupervisor.php:309 Stack trace: #0 .../vendor/nesk/rialto/src/ProcessSupervisor.php(344): Nesk\Rialto\ProcessSupervisor->checkProcessStatus() #1 .../vendor/nesk/rialto/src/ProcessSupervisor.php(149): Nesk\Rialto\ProcessSupervisor->serverPort() #2 .../vendor/nesk/rialto/src/Abstra in .../vendor/nesk/rialto/src/ProcessSupervisor.php on line 309
I found other library
https://github.com/its404/php-puppeteer
This is working well.

It seems like the node command is not found on your system. Until I fix this, you can use the executable_path option to provide the path to node:
$puppeteer = new Puppeteer([
    'executable_path' => '/path/to/node',
]);

source: gharchive/issue

authors: 7starsone dev-ys nesk

repo: nesk/puphpeteer

license: MIT

license_type: permissive

license_source: github-api


text:
Grabbing the VertexData of a mesh?

Hiya! Is it possible to grab the vertice data of a mesh so I can reconstruct the mesh inside of Unity at runtime?
I've got it to where I can grab any of the data of the Mesh object, only problem is that I don't think theres Vector3 support inside of AssetsTools.NET which is needed for Unity's mesh stuff :P

Vector3 fields are just like any other field. Normally you could just say someField["vector3Field"]["x"].GetValue().AsFloat() or whatever. The issue isn't that, rather that meshes store data in an unusual way compared to other assets. It uses a stream of a lot of different bits of data stored in m_VertexData/m_DataSize or it can be stored in resS which the path/offset is found in m_StreamData. In either case, the library just gives you access to the fields, it doesn't have any mesh stream parsing code. You can look around at other projects to see how they do mesh handling.


text:
Clean client code and improve UI and UX

Description
This PR is splitted in 2 main parts:
Part 1
Some cleaning and changes to the client code, mostly to UserLogic.jsx. This is done to reduce the complexity of the code and ease readability. This PR will be followed by others to clean the code, I prefer to avoid a single big PR to allow for better code reviewing and reduce bug passing.
Main changes:

the info about the selected instance is no longer used, the data is provided by the calling function from the UI
the UI doesn't use events so I removed the code, it is still on git in case we need it
adminHidden was a bit confusing so I changed it to isStudentView

Part 2
New features for better UI and UX
Main changes:

adding the ability to filter the template and instances based on a text value
adding a better name to vms and templates

Important
Do you think we should squash the commit before merging them? I added the hold label to wait for your answer
How Has This Been Tested?
This has been tested by checking that the new names are correctly displayed and that the filter work. Also by checking that all the required functionalities still performed the same way as before:

view templates and instances running
start an instance
connect to an instance
stop an instance
create a template
delete a template

Great @GabriFila! The new names are much more user-friendly
Just a couple of issues I discovered while testing the UI:

The list of Running Labs disappears if the page is reloaded
The professor view does no longer display the owner the VM
It is not possible to delete VMs from the professor view (see the specific comment)

From my point of view, multiple commits are perfectly fine, since each one addresses a separate issue.

Thanks for the review, regarding your points:

the list disappears for an issue related to the k8s watcher and some browser, in the future it could be fixed by not using the watcher if it fails
Fixed it in the last commit, also added capability to sort and filter by user
You are right, now it should be fixed

/rebase

source: gharchive/pull-request

repo: netgroup-polito/CrownLabs


text:
Relation widget: store related item's slug value in valueField

- Do you want to request a feature or report a bug?
feature
- What is the current behavior?
The relation widget's valueField allows you to specify a field in another collection as a lookup value for items in that collection. The sample case given is the related item's title.
- label: "location"
        name: "Location"
        widget: "relation"
        collection: "locations"
        searchFields: ["title", "streetAddress"]
        valueField: "title"

- What is the expected behavior?
I would prefer to store the related item's slug/filename in the valueField instead. This would allow me to easily lookup and include the file or it's data when generating the site.
Also, by using the filename, CMS can provide some guarantee that keys are unique.
- label: "location"
        name: "Location"
        widget: "relation"
        collection: "locations"
        searchFields: ["title", "streetAddress"]
        valueField: "{{slug}}"

With this type of config, I can load in a collection of files as a JS object and lookup an item by it's slug.
var locationSlug = frontmatter.location;
var locationData = locations[locationSlug];

- Please mention your CMS, node.js, and operating system version.
CMS v1.1.0
Thanks,
John

As I pointed on #445 , slug and filename isn't necessarily the same thing.
(I'm really looking forward to use the filename as valueField.)

Is there any update on this? I'd like to use the slug as a value field as well

Not yet, but the general slug handling story is very much on the radar.

I'd like to use the slug as the valueField as well.

This issue is kind of killing Netlify CMS for me right now. I organize the content like this: {{topic}}/{{title}} and topic is a relation field. As it is right now I do what I had planned because I cannot expect the users to make a manual “slug” for all topics in the site.
This issue has been open for two years and looks like the most requested feature in the whole system. What is the progress looking like?
(Yes, I realize I’m getting impatient with free software…)

Hi @schjetne, we try to get to the most upvoted features first. This one is ranked as number 9 per this sort: https://github.com/netlify/netlify-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
You could up vote it so it get more visibility.
Regardless we are always open for contributions.

Thank you! Upvoted. I found a hacky way of solving this, but will eagerly await updates so I can delete my work-around when the relation slug finally arrives.

@erezrokah  how does #3659 close this issue?

Hi @dopry, you can now configure valueField: "{{slug}}".
See the second example here https://www.netlifycms.org/docs/widgets/#relation

authors: amykapernick criticalmash dopry erezrokah erquhart robsonsobral schjetne tobytraylor

repo: netlify/netlify-cms


text:
Add test for missing labels

@KalmanMeth here's a test that clarifies the behaviour that IMO we should keep, wrt to missing labels and https://github.com/netobserv/flowlogs-pipeline/pull/460

@jpinsonneau that was related to this ticket https://github.com/netobserv/flowlogs-pipeline/issues/464 where the proposed fix was to ignore counting records for metrics when there are missing labels, but that would have broken a bunch of things, hence this added test to write in stone the expected behaviour here.
Thanks for the review!
/approve

repo: netobserv/flowlogs-pipeline


text:
consolidate package naming to either "of" or "openflow"

I suggest "openflow".
If other packages want to use a shorter name they can name the import:
of "netrack/openflow"
one strange example is "ofputil/handler.go" where it imports "openflow", but the package is defined as "of".

@samribeiro, agreed with the suggestion, the openflow name is less confusing. Changes ought to assume an update of README.md file as well.

closed by #71 and #72

authors: samribeiro ybubnov

repo: netrack/openflow

license: mit

license_source: bigquery


text:
io.netty.handler.codec.compression.DecompressionException: Unsupported compression method 0 in the GZIP header

Expected behavior
I'm expecting HttpDecompressor to decompress the payload correctly when the request payload is compresssed with gzip.
Actual behavior
I'm getting the below exception -
io.netty.handler.codec.compression.DecompressionException: Unsupported compression method 0 in the GZIP header at io.netty.handler.codec.compression.JdkZlibDecoder.readGZIPHeader(JdkZlibDecoder.java:321) at io.netty.handler.codec.compression.JdkZlibDecoder.decode(JdkZlibDecoder.java:212) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:498) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:437) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:343) at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:254) at io.netty.handler.codec.http.HttpContentDecoder.decodeContent(HttpContentDecoder.java:161) at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:150) at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:47) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748)

Steps to reproduce
    curl --location --request POST 'http://localhost:5880/' \
    --header 'Content-Type: application/json' \
    --header 'Accept: */*' \
    --header 'Accept-Encoding: gzip' \
    --header 'Accept-Language: en-US,en;q=0.9' \
    --header 'Connection: Keep-Alive' \
    --header 'Content-Encoding: gzip' \
    --header 'Content-Type: text/plain' \
    --data-raw '�VP*I-.QR�R0T���-!'

The request payload '�VP*I-.QR�R0T���-!' is Gzip compression of string "{ \"test\" : 1 }" using below logic -
     public static byte[] compress(String str) throws Exception {
        if (str == null || str.length() == 0) {
            return null;
        }
        System.out.println("String length : " + str.length());
        ByteArrayOutputStream obj=new ByteArrayOutputStream();
        GZIPOutputStream gzip = new GZIPOutputStream(obj, 2);
        gzip.write(str.getBytes("UTF-8"));
        gzip.close();

        return obj.toByteArray();
    }

Minimal yet complete reproducer code (or URL to code)
    public void start() {
        System.out.println("In Start method");
        try {
            ServerBootstrap b = new ServerBootstrap();
            EventLoopGroup bossGroup = new NioEventLoopGroup();
            EventLoopGroup workerGroup = new NioEventLoopGroup();

            b.group(bossGroup, workerGroup)
                    .channel(NioServerSocketChannel.class)
                    .childHandler(new HttpServerPipelineFactory())
                    .option(ChannelOption.SO_BACKLOG, 128)
                    .childOption(ChannelOption.WRITE_BUFFER_WATER_MARK, WriteBufferWaterMark.DEFAULT)
                    .childOption(ChannelOption.AUTO_READ, false)
                    .childOption(ChannelOption.SO_KEEPALIVE, true);

            ChannelFuture f = b.bind(listenerPort).sync();
            System.out.println("server started listening on port " + listenerPort);
            f.channel().closeFuture().sync();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

HTTP pipeline factory class is -
    public class HttpServerPipelineFactory extends ChannelInitializer<Channel> {

        @Override
        protected void initChannel(Channel ch) {
            ChannelPipeline pipeline = ch.pipeline();
            pipeline.addLast("codec", new HttpServerCodec());
            pipeline.addLast("compress", new HttpContentCompressor());
            pipeline.addLast("decompress", new HttpContentDecompressor());
            pipeline.addLast("aggregator", new HttpObjectAggregator( 512 * 1024));
            pipeline.addLast("chunked", new ChunkedWriteHandler());
            pipeline.addLast("flow", new FlowControlHandler());
            pipeline.addLast("keep-alive", new HttpServerKeepAliveHandler());
            pipeline.addLast("request", new HTTPRequestHandler());
        }
    }

HTTPRequestHandler is -
    import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_LENGTH;
    import static io.netty.handler.codec.http.HttpResponseStatus.OK;
    import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1;
    import static io.netty.util.CharsetUtil.UTF_8;

    public class HTTPRequestHandler extends SimpleChannelInboundHandler<FullHttpRequest> {

        private static Logger logger = LoggerFactory.getLogger(HTTPRequestHandler.class);

        @Override
        protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) {
            System.out.println("uri is " + request.uri());
            String responseStr = request.method() +"/ Got request at " + request.uri();
            System.out.println("body is \n" + request.content().toString(UTF_8));
            FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK, Unpooled.copiedBuffer(responseStr.getBytes()), false);
            response.headers().set(CONTENT_LENGTH, response.content().readableBytes());
            ctx.channel().writeAndFlush(response);
            ctx.read();
        }

        @Override
        public void channelActive(ChannelHandlerContext ctx) throws Exception {
            super.channelActive(ctx);
            ctx.read();
        }
    }

Netty version
4.1.14.Final
JVM version (e.g. java -version)
openjdk version "1.8.0_232"

OS version (e.g. uname -a)
Darwin BOSM0001-RANATA.local 16.7.0 Darwin Kernel Version 16.7.0: Sun Jun  2 20:26:31 PDT 2019; root:xnu-3789.73.50~1/RELEASE_X86_64 x86_64

Not Netty bug.
You can't take bytes and send directly like that using cURL.

@hyperxpro what should be the correct way to compress the payload?

Your way of compressing is correct but you're sending compressed data in a wrong way.

Any example of how to send the compressed data correctly?

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class GG {

    public static void main(String[] args) throws IOException, InterruptedException {
        byte[] compressedData = new byte[0];

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("http://localhost:5880/"))
                .setHeader("Content-Type", "application/json")
                .setHeader("Accept", "*/*")
                .setHeader("Accept-Encoding", "gzip")
                .setHeader("Accept-Language", "en-US,en;q=0.9")
                .setHeader("Connection", "Keep-Alive")
                .setHeader("Content-Encoding", "gzip")
                .POST(HttpRequest.BodyPublishers.ofByteArray(compressedData))
                .build();

        client.send(request, HttpResponse.BodyHandlers.ofByteArray());
    }
}

Replace compressedData byte array with your compressed data byte array.

Thanks @hyperxpro
I made it work with below code as well
import org.apache.http.HttpEntity;
import org.apache.http.client.entity.EntityBuilder;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class GzippedHttpRequestLocalDemo {

    public static void main(String[] args) throws Exception {

        try(CloseableHttpClient httpclient = HttpClients.createDefault()) {
            HttpPost httppost = new HttpPost("http://localhost:5880/test");
            String payload = "{ \"test\" : 1 }";
            EntityBuilder builder = EntityBuilder.create().gzipCompress().setContentEncoding("gzip").chunked().setText(payload);
            HttpEntity entity = builder.build();
            httppost.setEntity(entity);
            System.out.println();
            httppost.setHeader("Accept-Encoding", "gzip,deflate");
            httppost.setHeader("Content-Encoding", "gzip");
            System.out.println("Executing request: " + httppost.getRequestLine());
            CloseableHttpResponse response = httpclient.execute(httppost);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                System.out.println(EntityUtils.toString(response.getEntity()));
            } finally {
                response.close();
            }
        }
    }
}

This won't work, see #2132.
HttpContentDecompressor extends HttpContentDecoder that currently only decodes HttpRequests and HttpContentCompressor extends HttpContentEncoder that currently only encodes HttpResponses.
In short: Netty only support compressing server side and decompressing client side.

authors: hyperxpro rajcspsg slandelle

repo: netty/netty


text:
whether Netty supports mutually authentication now on Android platform?

Expected behavior
Actual behavior
Steps to reproduce
Minimal yet complete reproducer code (or URL to code)
Netty version
JVM version (e.g. java -version)
OS version (e.g. uname -a)

This is a bug tracker... Questions should be asked on stack overflow. But yeah it should just work.

This is a bug tracker... Questions should be asked on stack overflow. But yeah it should just work.

authors: hnuwangchao normanmaurer


text:
ZSTD decompression not resilient to compression bombs

In the latest version (4.1.109.Final) of Netty, I've encountered a significant performance issue related to sending compression bombs. Specifically, when utilizing Zstandard (zstd) compression, sending compression bombs results in a notable increase in direct memory consumption, ultimately leading to memory exhaustion and application instability. Interestingly, this behavior is not observed when employing gzip compression for compression bombs.
This is happening while using Netty HTTPContentDecompressor and HttpObjectAggregator with a max content size of 5 MiB. I expect memory consumption to be bound, but this is not what I actually observe.
Expected behavior
Sending compression bombs should not excessively consume direct memory, maintaining stability and performance within acceptable bounds.
Actual behavior
Direct memory usage spikes significantly when utilizing Zstandard compression for compression bombs, leading to potential memory exhaustion and application instability.
When sending compression bombs, one by one, with individual uncompressed size fitting into memory, it leads to direct memory exhaustion when using zstd. No issue is detected when gzip is used.

Sending gzip bombs works fine

1000 requests sent, 1000 413 Request Entity Too Large responses received.

Sending zstd bombs leads to fast exhaustion and OOM crash

After a few requests sent, server is crashing. Receiving a mix of 413 Request Entity Too Large and 400 Bad Request because of DecompressionException.

Sending smaller zstd bombs leads to fast exhaustion and OOM crash

After a few 10s requests sent, server is crashing. Receiving a mix of 413 Request Entity Too Large and 400 Bad Request because of DecompressionException.
io.netty.handler.codec.compression.DecompressionException: com.github.luben.zstd.ZstdIOException: Unknown frame descriptor
	at io.netty.handler.codec.compression.ZstdDecoder$ZstdStream.decompress(ZstdDecoder.java:172)
	at io.netty.handler.codec.compression.ZstdDecoder.decode(ZstdDecoder.java:75)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:344)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:264)
	at io.netty.handler.codec.http.HttpContentDecoder.decodeContent(HttpContentDecoder.java:171)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:160)
	at io.netty.handler.codec.http.HttpContentDecoder.decode(HttpContentDecoder.java:47)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
....

Steps to reproduce

Send compression bombs using Zstandard compression in a Netty server having at least one HTTPContentDecompressor
and one HttpObjectAggregator.
Monitor direct memory consumption during the process.

Minimal yet complete reproducer code (or URL to code)

Prepare the payload, uncompressed size > max content size in the aggregator

head -c 200M </dev/zero >bomb200.bin
head -c 50M </dev/zero >bomb50.bin
gzip --keep bomb200.bin
zstd bomb200.bin
zstd bomb50.bin

which gives the following files:
200M Apr 26 14:29 bomb200M.bin
200K Apr 26 14:29 bomb200M.bin.gz
6.5K Apr 26 14:29 bomb200M.bin.zst
1.7K Apr 26 14:38 bomb50M.bin.zst

Send payload using gzip content-encoding, one by one

repeat 1000 { curl -X POST -H "Content-Type: application/json" -H "Content-Encoding: gzip" --data-binary @bomb200M.bin.gz localhost:1234 }

Send payload using zstd content-encoding, one by one

repeat 1000 { curl -X POST -H "Content-Type: application/json" -H "Content-Encoding: zstd" --data-binary @bomb200M.bin.zst localhost:1234 }

Netty and zstd-jni versions
4.1.109.Final with zstd-jni 1.5.6-3 (also tested with 1.5.5-2)
JVM version (e.g. java -version)
java -version
openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment Zulu21.32+17-CA (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Zulu21.32+17-CA (build 21.0.2+13-LTS, mixed mode, sharing)

Relevant JVM arguments: -Dio.netty.maxDirectMemory=0 -XX:MaxDirectMemorySize=744M -XX:+CrashOnOutOfMemoryError
OS version (e.g. uname -a)
uname -a
Linux 5.15.0-1058-gcp x86_64 GNU/Linux

👋 Hello,
I have a small reproducer for this issue.
Please find it attached. It can run on docker.
The issue triggers with a real netty application, but it does not trigger in the unit tests using the EmbeddedChannel.
test_netty_decompressor.tar.gz
Steps:
# start the server using openjdk 18
$ ./run_docker_app.sh maven:3-openjdk-18
+ docker run -it --rm -v .../test_netty_decompressor:/usr/src/mymaven -v .../tmp/m2:/root/.m2 -w /usr/src/mymaven -p 4212:4212 -e 'MAVEN_OPTS=-Xmx128m -Xms64m' maven:3-openjdk-18 mvn exec:java -Dexec.mainClass=test_netty.App
...
Server listening on /0.0.0.0:4212

Send the 200MiB request:
$ dd if=/dev/zero bs=1024 count=$((200 * 1024)) status=none | zstd >| payload.zstd
$ curl -si -XPOST -H 'content-type: application/octet-stream' -H 'content-encoding: zstd' --data-binary '@payload.zstd' 127.0.0.1:4212
HTTP/1.1 500 Internal Server Error
content-type: text/plain
content-length: 4961
connection: close

java.lang.OutOfMemoryError: Cannot reserve 4194304 bytes of direct buffer memory (allocated: 130031625, limit: 134217728)
	at java.base/java.nio.Bits.reserveMemory(Bits.java:178)
	at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:118)
	at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:332)

As a comparison, gzip has no issue:
$ dd if=/dev/zero bs=1024 count=$((200 * 1024)) status=none | gzip >| payload.gzip
$ curl -si -XPOST -H 'content-type: application/octet-stream' -H 'content-encoding: gzip' --data-binary '@payload.gzip' 127.0.0.1:4212
HTTP/1.1 413 Request Entity Too Large
content-length: 0
connection: close

The channel setup in the app is very minimalistic:
                    socketChannel
                        .pipeline()
                        .addLast(new HttpServerCodec())           // netty http codec
                        .addLast(new HttpContentDecompressor())   // netty decompressor
                        .addLast(new HttpObjectAggregator(_5_MB)) // aggregator with a 5MiB limit
                        .addLast(httpHandler)                     // custom handler to craft a simple response
                        .addLast(exceptionHandler);               // on exception, send a 500 response with the stack trace

System running docker:
$ uname -a
Linux colima 6.5.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan  9 22:39:36 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

$ docker run -ti --rm maven:3-openjdk-18 java -version
openjdk version "18.0.2.1" 2022-08-18
OpenJDK Runtime Environment (build 18.0.2.1+1-1)
OpenJDK 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing)

Versions:
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId>
      <version>4.1.109.Final</version>
    </dependency>

    <dependency>
      <groupId>com.github.luben</groupId>
      <artifactId>zstd-jni</artifactId>

      <version>1.5.5-11</version> <!-- also broken with 1.5.6-3 -->
    </dependency>

Regards,
Alexandre

cc @normanmaurer as you worked on this PR https://github.com/netty/netty/pull/13928 to enhance the zstd decoder.

will check

I am looking into it atm.. There is something strange going on.

@trazfr @pe-bernard unfortunately the only fix I can think of atm is to revert my PR https://github.com/netty/netty/pull/14084 :(

Thanks for looking into it!

authors: normanmaurer pe-bernard trazfr


text:
the length of clientId in MQTT 3.1 should not be forced to set between 1 and 23 characters

in method
io.netty.handler.codec.mqtt.isValidClientId(MqttVersion mqttVersion, String clientId)

there are these code
if (mqttVersion == MqttVersion.MQTT_3_1) {
            return clientId != null && clientId.length() >= MIN_CLIENT_ID_LENGTH &&
                clientId.length() <= MAX_CLIENT_ID_LENGTH;
        }

the code restrict the clientId length must not exceed MAX_CLIENT_ID_LENGTH(it has been set to 23),
but according to the CONNECT message of MQTT 3.1 it can exceed 23 characters.

@xdx54321 PRs welcome :)


text:
DefaultPromise may throw checked exceptions that are not advertised

Motivation:
We should not throw check exceptions when the user calls sync*() but should better wrap it in a CompletionException to make it easier for people to reason about what happens.
Modifications:

Change sync*() to throw CompletionException
Adjust tests
Add some more tests

Result:
Fixes https://github.com/netty/netty/issues/8521.

/cc @njhill @franz1981

any comments ?

@ejona86 yes CompletionException is basically the new ExecutionException  but as RuntimeException :)


text:
computing all p-values?

do the critical values change for each neighborhood size? i would think so.  nonetheless, do they change sufficiently little such that we can find regions of test-statistic that are large, rather than regions of p-value that are small? our test of course would still be valid, the question is whether it would work well.
i think this is not something to check prior to submission, just jotting it down here now for completeness.

the new valid procedure kind of makes use of all local dcorr directy without going for all local p-values.

repo: neurodata/MGC


text:
Common naming for symmetric properties

The internal datatype for analog inputs is called AnalogIODataType
https://github.com/neurogears/onix-refactor/blob/260149bdfb441c8d49a606bbfd303728cbc42bd0/OpenEphys.Onix/OpenEphys.Onix/AnalogInput.cs#L19
The internal datatype for analog inputs is called Rhd2164AmplifierDataFormat
https://github.com/neurogears/onix-refactor/blob/260149bdfb441c8d49a606bbfd303728cbc42bd0/OpenEphys.Onix/OpenEphys.Onix/ConfigureRhd2164.cs#L19
These type names should have a common suffix. I prefer "Format" over "Type".

Actually, these properties are for entirely different things. One specifies how data is propagated in Bonsai (top) the other how data is produced by the RHD chip. So, their names should in fact be less similar.

repo: neurogears/onix-refactor


text:
api network/graph  error

Environment
Kubernetes
Describe the bug
when the nodes is 500+,access  api network/graph is error
To Reproduce
when the nodes is 500+,access  api network/graph is error
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

With 500+ node, you will need more powerful node to run the controller, we recommend running dedicated nodes for controllers. What is the size of your nodes?

authors: becitsthere laozhudetui

repo: neuvector/neuvector


text:
Release new crate

Care to release a new crate version?
Btw, this commit by me was a rather bad decision. Best to use "0.5.1" now.

Hi badboy, I've not been developing recently but I'll try to get to it in the not too distant future.

Cool. If you need any other help just tell me. Happy to help out here.

need it. thx.

Sorry everyone. I need someone to take over being maintainer of this. I am not actively doing anything rust related sadly because of being too busying in other work and non-IT related studies. Anyone want to take it over?

Sure, I can do it

Hi sorccu and badboy,
You have both said you can. Do you want to email me at nevdelap at gmail so we can make the transfer to whichever of you you think will most likely be able to maintain it long term?
Cheers.
PS: I'm GMT+10.

If @sorccu uses it in production, he's the right one to take over. I'll still be available with help

@badboy, I've added you as a collaborator as well, you should have push access now. I will set up Travis later today. @nevdelap is adding me as an owner to the crate when he gets home, and we'll hopefully be able to release 0.2.0 soon.

Thanks Simo. I'm really chuft you're running with it. I should have offered to hand it over ages ago. Cheers!

I'm trying to figure out a better way to update the docs and doc links, pretty much what @sfackler is doing with his crates. I'll release once that's done.

travis-cargo is pretty much the easiest way to handle all this. I can send a PR in the next days.

Yeah, but it doesn't look like it gives you separate docs for each release. You only get master.

Ah, yeah. Then we need a slightly different approach.

I use the highly advanced strategy of "do it all manually" :). The workflow is
$ git checkout -b release-v0.1.2
<update README.md, Cargo.toml, and src/lib.rs with the new version>
$ git add .
$ git commit -m "Release v0.1.2"
$ git checkout release
$ git merge --no-ff release-v0.1.2
$ git tag -a v0.1.2
$ git checkout master
$ git merge --no-ff release
$ git push --tags origin release master

# Now build docs
$ git checkout release
$ cargo doc --no-deps --features "all the features"
$ mv target/doc ..
$ git checkout gh-pages
$ mv ../doc doc/v0.1.2
$ git add doc
$ git commit -m "Release v0.1.2"
$ git push

# Assuming everything looks good, publish
$ git checkout release
$ cargo publish

It'd be pretty easy to automate but I haven't bothered.

Thanks for the response!
I've kind of half-automated it right now. The main downside is that you have to publish the tag to make Travis build and publish the docs, which means that the links in GitHub will be pointing to docs that don't actually exist yet for a moment. Also, you have to remember to run script/update-doc-urls.sh after you bump the version number, but before tagging. In theory Travis could do all of this including cargo publish, but we'll see if I ever get to implementing that. Would be great for collaborators, though.
Anyway, I've just published 0.2.0, which means that we've finally got a version that works with the newest redis crate :)

I have ideas for that automatic cargo publish and everything. Stay tuned.

That would be great! And sorry to keep spamming the same topic but one last note: @badboy I've also added you as an owner to the crate. So you should be able to publish the thing now, too. Currently you have to be a bit careful with the doc URLs when tagging a release as mentioned in my last post, so try to keep that in mind until we have something better. Also, when tagging, use the "v" prefix for the tag.

authors: badboy daogangtang nevdelap sfackler sorccu


text:
Fix failing builds

Descriptions
Our builds were failing once we bumped the theme to v1.15.0. This was because our builds expecting a SPLITIO_AUTH_KEY to be defined in our gatsby-config.js.

We've found a way to resolve this by updating the theme itself, not each site. Going to close this PR and create another one that bumps the theme version.

repo: newrelic/developer-website


text:
elasticsearch instrumentation causing exceptions with new ElasticSearch gem v8.13.0

^^ Provide a general summary of the issue in the title above. ^^
Description
The elasticsearch instrumentation is resulting in an incorrect number of arguments exception:
ArgumentError - wrong number of arguments (given 6, expected 2..5):
  newrelic_rpm (9.8.0) lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb:13:in 'perform_request_with_tracing'
  newrelic_rpm (9.8.0) lib/new_relic/agent/instrumentation/elasticsearch/prepend.rb:10:in 'perform_request'
  elasticsearch (8.13.0) lib/elasticsearch.rb:86:in 'verify_elasticsearch'
  elasticsearch (8.13.0) lib/elasticsearch.rb:69:in 'method_missing'
  elasticsearch-api (8.13.0) lib/elasticsearch/api/actions/search.rb:106:in 'search'

Expected Behavior
Tell us what you expected to happen.
There should be no error raised
Troubleshooting or NR Diag results
Provide any other relevant log data.
TIP:  Scrub logs and diagnostic information for sensitive information
Steps to Reproduce
Please be as specific as possible.
TIP:  Link a sample application that demonstrates the issue.
Your Environment
Include as many relevant details about your environment as possible including the running version of the Ruby agent, the Ruby version being used and any other relevant environment information
newrelic-ruby-agent gem 9.8.0
elasticsearch gem 8.13.0
ruby 3.2.3
Additional context
Add any other context about the problem here. For example, relevant community posts or support tickets.
I do not understand why the error does not occur with elasticsearch 8.12.2; however, it's true that the elasticsearch-api (8.13.0) lib/elasticsearch/api/actions/search.rb:106:in 'search' sends 6 arguments down through the perform_request chain; however, the newrelic_rpm (9.8.0) lib/new_relic/agent/instrumentation/elasticsearch/instrumentation.rb:13:in 'perform_request_with_tracing' prepended method only accepts 5 arguments. Perhaps that method should be rewritten to support varargs given it only depends on a few of the arguments?
For Maintainers Only or Hero Triaging this bug
Suggested Priority (P1,P2,P3,P4,P5):
Suggested T-Shirt size (S, M, L, XL, Unknown):

Hi @randypuro! Thanks for bringing this to our attention!
I think you're on the right track. We likely need to update the way arguments are defined in the perform_request_with_tracing method to support version 8.13.0. We'll take a closer look and get back to you soon.
In the meantime, if you would like to keep using elasticsearch 8.13.0, you can disable New Relic's elasticsearch instrumentation by updating your configuration.
You can update your newrelic.yml file to include:
instrumentation.elasticsearch: disabled
Or use an environment variable:
NEW_RELIC_INSTRUMENTATION_ELASTICSEARCH=disabled

Hi @randypuro! I have a branch with a potential solution.
If you'd like to test it out, you can update the newrelic_rpm line in your gemfile to:
gem 'newrelic_rpm', github: 'newrelic/newrelic-ruby-agent', branch: 'elasticsearch-fix'

Small update, @randypuro -- support for Elasticsearch 8.13.0 will be included in our next release. I'll leave the elasticsearch-fix branch open until we release so that you or anyone else who comes across this issue can use it.

authors: kaylareopelle randypuro

repo: newrelic/newrelic-ruby-agent


text:
Update usage of MD5 in the agent to a FIPS compliant alternative

The agent uses MD5 in a couple of places:
https://github.com/newrelic/newrelic-ruby-agent/blob/dev/lib/new_relic/agent/sql_sampler.rb#L362
https://github.com/newrelic/newrelic-ruby-agent/blob/dev/lib/new_relic/agent/sql_sampler.rb#L365
https://github.com/newrelic/newrelic-ruby-agent/blob/dev/lib/new_relic/agent/monitors/cross_app_monitor.rb#L105
MD5 is not FIPS compliant, causing applications on FIPS servers to crash upon encountering this error.
md5_dgst.c(82): OpenSSL internal error, assertion failed: Digest MD5 forbidden in FIPS mode!
Other agent teams, such as the Node agent, have updated this to use SHA1.
Internal JIRA

Migrating suggestion from another source:
Thanks for the update! In the meantime, we've patched the NewRelic agent methods to use Digest::SHA256, we haven't seen any issues so far but wanted to check if there was anything we should be looking out for.”
if defined?(NewRelic)
  require 'digest'

  class NewRelic::Agent::DistributedTracing::CrossAppMonitor
    private

    def hash_transaction_name(identifier)
      Digest::SHA256.digest(identifier).unpack1('@12N') & 0xffffffff
    end
  end

  class NewRelic::Agent::SqlTrace
    private

    def consistent_hash(string)
      if NewRelic::Agent.config[:'slow_sql.use_longer_sql_id']
        Digest::SHA256.hexdigest(string).hex.modulo(2**63 - 1)
      else
        # from when sql_id needed to fit in an INT(11)
        Digest::SHA256.hexdigest(string).hex.modulo(2**31 - 1)
      end
    end
  end
end


text:
Logan branch

I fixed it so I am now merging my branch to the main branch

@luh429 Excellent! You've successfully set up your PR now. Hope this makes more sense. See how much simpler it looks when you switch up the comparison? I'm now merging in your branch. Because the branch is a little out of date (I pushed some structural changes to main branch last night that I think are getting in the way now), I'm going to have to do some local work to resolve the merge, but it should be okay. I'll leave this PR open until I've completed the merge.

@luh429 Okay! This PR was a little tricky because you'd added a file directory called XML\ Assignments (with the white space in it). This posed some problems b/c your file directory structure differed from mine at the top level of the repo and might have caused some confusion for other students. I relocated your folder to the Sandbox and renamed it loganXML-Assignments.  What you should do now:

switch your main branch on your local repo.
pull in my changes from this PR
delete your old branch locally (you'll be making a new branch with a special name / for a special purpose for the next assignment).

repo: newtfire/textAnalysis-Hub


text:
2.0 update breaks persp-modestring

'(persp-modestring persp-modestring)

this no longer prints persp-mode info in the modeline.

persp-modestring is no longer a variable, because Emacs removed support for frame-local variables. Instead, you now have to do '(:eval (persp-mode-line)).

works like a charm!  thanks for the help.  :-)


text:
Add a new tutorial using the REST API

Following #259 (once merged)
Create a new tutorial chapter: "Analyse Package Archive (REST API)"
The goal is to demo the API features using the scan_package pipeline, in the same fashion as the previous tutorials.
I think we should split this into 2 separate section, presenting a project creation with an input file and executing a pipeline:

Using cURL
Using Python script

Let's use "https://github.com/httpie/httpie/archive/refs/tags/2.4.0.zip" as input.
Everything needed should already be available in the "REST API" chapter from #259

@hyounes4560 if it's still possible, we should use https://github.com/bastikr/boolean.py/archive/refs/tags/v3.8.zip as the input instead. Project name: boolean.py-3.8


text:
Ingest Rust data through Github api

Fixes https://github.com/nexB/vulnerablecode/issues/1039
Changes Made
Modified github.py importer to ingest Rust data and added test files

Somehow, just after making this PR, I came across this PR in univers : https://github.com/nexB/univers/pull/84. I am not exactly sure if this PR depends on that, but incase it does, we could probably put review of this PR on hold until that is completed.

repo: nexB/vulnerablecode


text:
1단계 - 지하철 구간 추가 기능 개선

리뷰 요청드립니다.
질문이 하나 있습니다.
ATDD와 TDD 사이에 중복되는 테스트는 둘다 하는게 맞는지 아니면 한쪽만 하는게 맞는지 잘 모르겠습니다.
Section 추가 기능에 대한 테스트를 작성하며 이런 질문이 떠올랐는데요, ATDD에서 했던 테스트를 TDD에서도 거의 그대로 가져가게 되더라고요.
성공케이스, 오류케이스 모두 다요.
이럴때는 어떻게 하는게 옳을까요?

"2단계 - 지하철 구간 제거 기능 개선" 도 함께 추가해서 올립니다.
다음 강의까지 시간이 얼마 없어서 빨리 진행해야할거 같아서요.

repo: next-step/atdd-subway-path


text:
[Spring JDBC] 최원석 미션 제출합니다.

먼저, 학습 테스트를 기반으로 미션 진행하였습니다.
구조 관련해서 DTO를 알게 되어서 미션에 구현해 보려고 하였지만, 시간상 거기까지는 구현하지 못하고 PR 작성합니다.
git이랑 출동나서 고치느라 제출이 늦어졌습니다 ㅠㅜㅠ

고생하셨습니다! 시간이 되신다면 DTO를 사용하여 구현해 보는 것도 좋을 것 같아요! 좋은 코드 잘 보고 갑니다.

repo: next-step/spring-roomescape-playground


text:
generated search.xml is too large?

the search.xml is up to 2.6MB, how to reduce?

This plugin is designed to work with no backend server, so all the post content will be added to the search.xml
You can use a third-party search service instead, e.g. Algolia: https://github.com/LouisBarranqueiro/hexo-algoliasearch

ok

能不能增加个选项，把文章中的代码过滤掉

还可以进行分词，只保留有语义的内容，一些副词，主语什么的都可以去掉

repo: next-theme/hexo-generator-searchdb


text:
[BUG] - InvalidCharacterError: Failed to execute 'add' on 'DOMTokenList'

NextUI Version
latest
Describe the bug
I'm  just getting started with nextui and followed the docs
Console Output:
✓ Starting...
✓ Ready in 3s
○ Compiling / ...
(node:40604) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
✓ Compiled / in 7.2s
GET / 200 in 7835ms

And on the page I get this error:
InvalidCharacterError: Failed to execute 'add' on 'DOMTokenList': The token provided ('{"scale":1,"fontSmoothing":true,"focusRing":"auto","white":"#fff","black":"#000","colors":{"dark":["#C9C9C9","#b8b8b8","#828282","#696969","#424242","#3b3b3b","#2e2e2e","#242424","#1f1f1f","#141414"],"gray":["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],"red":["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],"pink":["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],"grape":["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],"violet":["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],"indigo":["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],"blue":["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],"cyan":["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],"teal":["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],"green":["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],"lime":["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],"yellow":["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],"orange":["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]},"primaryShade":{"light":6,"dark":8},"primaryColor":"indigo","autoContrast":false,"luminanceThreshold":0.3,"fontFamily":"Poppins","fontFamilyMonospace":"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace","respectReducedMotion":false,"cursorType":"default","defaultGradient":{"from":"blue","to":"cyan","deg":45},"defaultRadius":"sm","activeClassName":"mantine-active","focusClassName":"","headings":{"fontFamily":"Poppins","fontWeight":"700","textWrap":"wrap","sizes":{"h1":{"fontSize":"calc(2.125rem * var(--mantine-scale))","lineHeight":"1.3"},"h2":{"fontSize":"calc(1.625rem * var(--mantine-scale))","lineHeight":"1.35"},"h3":{"fontSize":"calc(1.375rem * var(--mantine-scale))","lineHeight":"1.4"},"h4":{"fontSize":"calc(1.125rem * var(--mantine-scale))","lineHeight":"1.45"},"h5":{"fontSize":"calc(1rem * var(--mantine-scale))","lineHeight":"1.5"},"h6":{"fontSize":"calc(0.875rem * var(--mantine-scale))","lineHeight":"1.5"}}},"fontSizes":{"xs":"calc(0.75rem * var(--mantine-scale))","sm":"calc(0.875rem * var(--mantine-scale))","md":"calc(1rem * var(--mantine-scale))","lg":"calc(1.125rem * var(--mantine-scale))","xl":"calc(1.25rem * var(--mantine-scale))"},"lineHeights":{"xs":"1.4","sm":"1.45","md":"1.55","lg":"1.6","xl":"1.65"},"radius":{"xs":"calc(0.125rem * var(--mantine-scale))","sm":"calc(0.25rem * var(--mantine-scale))","md":"calc(0.5rem * var(--mantine-scale))","lg":"calc(1rem * var(--mantine-scale))","xl":"calc(2rem * var(--mantine-scale))"},"spacing":{"xs":"calc(0.625rem * var(--mantine-scale))","sm":"calc(0.75rem * var(--mantine-scale))","md":"calc(1rem * var(--mantine-scale))","lg":"calc(1.25rem * var(--mantine-scale))","xl":"calc(2rem * var(--mantine-scale))"},"breakpoints":{"xs":"36em","sm":"48em","md":"62em","lg":"75em","xl":"88em"},"shadows":{"xs":"0 calc(0.0625rem * var(--mantine-scale)) calc(0.1875rem * var(--mantine-scale)) rgba(0, 0, 0, 0.05), 0 calc(0.0625rem * var(--mantine-scale)) calc(0.125rem * var(--mantine-scale)) rgba(0, 0, 0, 0.1)","sm":"0 calc(0.0625rem * var(--mantine-scale)) calc(0.1875rem * var(--mantine-scale)) rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 calc(0.625rem * var(--mantine-scale)) calc(0.9375rem * var(--mantine-scale)) calc(-0.3125rem * var(--mantine-scale)), rgba(0, 0, 0, 0.04) 0 calc(0.4375rem * var(--mantine-scale)) calc(0.4375rem * var(--mantine-scale)) calc(-0.3125rem * var(--mantine-scale))","md":"0 calc(0.0625rem * var(--mantine-scale)) calc(0.1875rem * var(--mantine-scale)) rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 calc(1.25rem * var(--mantine-scale)) calc(1.5625rem * var(--mantine-scale)) calc(-0.3125rem * var(--mantine-scale)), rgba(0, 0, 0, 0.04) 0 calc(0.625rem * var(--mantine-scale)) calc(0.625rem * var(--mantine-scale)) calc(-0.3125rem * var(--mantine-scale))","lg":"0 calc(0.0625rem * var(--mantine-scale)) calc(0.1875rem * var(--mantine-scale)) rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 calc(1.75rem * var(--mantine-scale)) calc(1.4375rem * var(--mantine-scale)) calc(-0.4375rem * var(--mantine-scale)), rgba(0, 0, 0, 0.04) 0 calc(0.75rem * var(--mantine-scale)) calc(0.75rem * var(--mantine-scale)) calc(-0.4375rem * var(--mantine-scale))","xl":"0 calc(0.0625rem * var(--mantine-scale)) calc(0.1875rem * var(--mantine-scale)) rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 calc(2.25rem * var(--mantine-scale)) calc(1.75rem * var(--mantine-scale)) calc(-0.4375rem * var(--mantine-scale)), rgba(0, 0, 0, 0.04) 0 calc(1.0625rem * var(--mantine-scale)) calc(1.0625rem * var(--mantine-scale)) calc(-0.4375rem * var(--mantine-scale))"},"other":{},"components":{}}') contains HTML space characters, which are not valid in tokens.

Your Example Website or App
No response
Steps to Reproduce the Bug or Issue
npm install -g nextui-cli
nextui init my-nextui-app

I selected bun as package manager

cd my-nextui-app && bun install
bun run dev

Expected behavior
The  "default" template page shows up
Screenshots or Videos
No response
Operating System Version
Windowsq
Browser
Opera

Can you provide a reproducible repo, i can't reproduce it

authors: gltched-usr winchesHe

repo: nextui-org/nextui-cli


text:
fix .text-dark a:hover behavior in dark-mode

Found another small dark mode bug.
Before:

After:

Ah nice, thanks!

authors: ewels mashehu


text:
Added support for downloading playlist

Sample  script to download all the videos from a playlist in youtube.

Coverage remained the same at 85.08% when pulling 22715ff7006ac0758fc034409e9e502d0ab40728 on thomasgeorgec:master into f8e362bac5f07aa3e498591d26549d6144aa0963 on nficano:master.

Coverage remained the same at 85.08% when pulling 487be321f1cf7449c5ed3aea8b23be0f17b18751 on thomasgeorgec:master into f8e362bac5f07aa3e498591d26549d6144aa0963 on nficano:master.

Coverage remained the same at 85.08% when pulling dfdaa3526bb13b5cef939f7239f3716749ec1231 on thomasgeorgec:master into f8e362bac5f07aa3e498591d26549d6144aa0963 on nficano:master.

authors: coveralls thomasgeorgec

repo: nficano/pytube

license: Unlicense


text:
Separate displayed date format from returned value

Hi, im looking for a way to display date string inside the input in one format, but set model value to a different one. It seems, that now both use the same function to parse date into string. Would it be possible to customize both of those separately?

As you see here, https://github.com/ng2-ui/ng2-datetime-picker/blob/master/src/datetime-picker.directive.ts#L206, the element has its dateValue, and the value you see is toString() method applied. If you want to access please use dateValue

Please refer to this screenshot.

https://plnkr.co/edit/ApJNv9?p=preview

authors: allenhwkim themastersoda


text:
Use of undeclared type 'Net'

In Xcode Version 7.0.1 (7A1001)

@stan4cb i'm also having the same problem in 7.3 xcode

repo: nghialv/Net


text:
GPU crash since "Perf and mem usage improvements silentarmy kernel" commit

zcash-miner crashes my GPU on startup since commit 9a64575. Had to revert to commit f19efc3 as a temporal solution.
Ubuntu 16.04 LTS
1x AMD RX480 GPU
single instance of zcash-miner
Nov  2 20:48:43 x200 kernel: [220126.577020] amdgpu 0000:01:00.0: IH ring buffer overflow (0x00080970, 0x000005D0, 0x00000980)
Nov  2 20:48:43 x200 kernel: [220126.577029] amdgpu 0000:01:00.0: GPU fault detected: 146 0x07024414
Nov  2 20:48:43 x200 kernel: [220126.577032] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x0014B21C
Nov  2 20:48:43 x200 kernel: [220126.577035] amdgpu 0000:01:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0D008014
Nov  2 20:48:43 x200 kernel: [220126.577038] VM fault (0x14, vmid 6) at page 1356316, write from 'TC0' (0x54433000) (8)
[snip]

Sorry to hear that, will look into this issues when I can.

authors: jaschaknack omaralvarez

repo: nginnever/zogminer


text:
Allow long server names

Proposed changes
This commit increases the default server_names_hash_bucket_size to 256 and server_names_hash_max_size to 1024 to support hostnames longer than 47 characters.
Tested locally using the hostname abcdefghijklmn.too.long.server.name.example.org. Verified before the change, we get the error could not build server_names_hash, you should increase server_names_hash_bucket_size: 64, and after the change, there are no errors using this hostname.
Closes https://github.com/nginxinc/nginx-kubernetes-gateway/issues/632
Checklist
Before creating a PR, run through this checklist and mark each as complete.

[x] I have read the CONTRIBUTING doc
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have checked that all unit tests pass after adding my changes
[ ] I have updated necessary documentation
[x] I have rebased my branch onto main
[ ] I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

This echo command is getting long. We should prioritize the FIXME on line 98

I was actually looking at maybe cleaning this up for focus day.

repo: nginxinc/nginx-kubernetes-gateway


text:
Return (xyz) coordinates of residue Centroid/Center of mass

I'm trying to build a function that:

Receives a selection of arbitrary residues (say.. 20 residues)
Calculate the centroid of each sidechain (maybe an xyz position in space, or simply a C near the centroid).
Measure the distance from all to all centroids.
Create groups of residues separated by less than the average distance from all to all.

My questions:

Does NGL understand centroids? if so, is there a selector language for it? (i.e, "15.CENTROID")?
If not, is there a selector language for the "middle carbon" of a sidechain?
Would this position (or an instantiated Vector3) object inherit the DistanceTo() method? (i'm guessing the atom would do)

Thanks in advance... I know perhaps this is a very specific thing to do.
Pedro

Hi Pedro.
I don't think there is anything built-in that can help you there. Selections represent atoms, but centroids are not.
What you can do is:

create your selection
pass it to the structure.eachResidue(callback(residueProxy), selection) function
in your callback, executed for each residue, create an empty vector 3, use the residueProxy.eachAtom(callback(atomProxy)) iterator.

in this callback, filter the atoms that are in the sidechain (I think it is atomProxy.isSidechain) and if they are, add their coordinates to the Vector3 object for the residue
after the callback, divide the Vector3 by the number of atoms in the side chain: this gives you the coordinates of the centroid for this side chain

For the rest of your algorithm, you manipulate only Vector3 objects so distanceTo() is available. If you are only comparing distances, a minor optimization is to use the squared distances instead (avoids a root square operation).
There might be some other optimizations in the comparisons (e.g. not doing an all against distance which is O(n2) in time complexity, but use the centroid of all centroids (which you can compute in O(n) time just by adding Vector3 objects) and compare the distance to this centroid; I am not certain it will give you the same result though, need to check that)

Most appreciated!
I will try the suggestions and report the code if I get it working :)

authors: pguillem ppillot

repo: nglviewer/ngl


text:
When domain is deleted outside of PowerDNS-Admin the worker timeouts on dashboard

When a PowerDNS domain is deleted outside of PowerDNS-Admin, i.e. in the PowerDNS back-end directly, the PowerDNS-Admin gunicorn worker times out (already tried raising the limit) on the /dashboard page:
Dec 19 13:49:49 dns gunicorn: [DEBUG] Update domains in foreground
Dec 19 13:49:49 dns gunicorn: [DEBUG] Starting new HTTP connection (1): 127.0.0.1:8081
Dec 19 13:49:49 dns gunicorn: [DEBUG] http://127.0.0.1:8081 "GET /api/v1/servers/localhost/zones HTTP/1.1" 200 2
Dec 19 13:51:20 dns gunicorn: [2018-12-19 13:51:20 +0100] [18743] [CRITICAL] WORKER TIMEOUT (pid:18829)
Dec 19 13:51:20 dns gunicorn: [2018-12-19 13:51:20 +0100] [18829] [INFO] Worker exiting (pid: 18829)
Dec 19 13:51:20 dns gunicorn: [2018-12-19 13:51:20 +0100] [21424] [INFO] Booting worker with pid: 21424

Removing the domains also from the domains table in the PowerDNS-Admin MySQL database resolves the issue.
It seems that this is a bug in PowerDNS-Admin which renders PowerDNS-Admin unusable if a domain is deleted on the PowerDNS nameserver.

Hmm, I tried to reproduce this issue but i couldn't. I am wondering how can this happen because we already have the code for removing the old domain in PDA's database to sync the list of domain between 2 databases. See https://github.com/ngoduykhanh/PowerDNS-Admin/blob/master/app/models.py#L836

275

There is a for loop on the list of those domains to remove the domain owner, setting before completely remove the domain name from the database. It might slow with that number of domain. You might want to increase the gunicorn timeout config to avoid the issue.

Already did. From 30 to 90.

I finally found a better way: using a single database transaction solves all of the above described problems: with a single transaction SqlAlchemy doesn't need to re-fetch all the objects after any modification. This heavily speeds up the whole update process for my test case with 55000 domains.
See #655 for details.

authors: eht16 ngoduykhanh prupert

repo: ngoduykhanh/PowerDNS-Admin


text:
Several UI actions fail with an AJAX error

Many UI actions in the webinterface fail with such an error:

The server returns a 500 error code for the action.
The logs show that it seems to be caused by an idna issue:
`[2021-07-08 08:12:30 +0000] [9] [DEBUG] GET /dashboard/domains-custom/reverse
[2021-07-08 08:12:30 +0000] [9] [ERROR] Exception on /dashboard/domains-custom/reverse [GET]
Traceback (most recent call last):
File "/app/powerdnsadmin/lib/utils.py", line 244, in pretty_domain_name
return value.encode().decode('idna')
File "/usr/lib/python3.8/encodings/idna.py", line 214, in decode
result.append(ToUnicode(label))
File "/usr/lib/python3.8/encodings/idna.py", line 139, in ToUnicode
raise UnicodeError("IDNA does not round-trip", label, label2)
UnicodeError: ('IDNA does not round-trip', b'xn--der-grte-vya3u', b'xn--der-grsste-jcb')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/usr/lib/python3.8/site-packages/flask_login/utils.py", line 272, in decorated_view
return func(*args, **kwargs)
File "/app/powerdnsadmin/routes/dashboard.py", line 121, in domains_custom
render.name(domain),
File "/usr/lib/python3.8/site-packages/jinja2/runtime.py", line 675, in call
return self._invoke(arguments, autoescape)
File "/usr/lib/python3.8/site-packages/jinja2/runtime.py", line 679, in _invoke
rv = self._func(*arguments)
File "/app/powerdnsadmin/templates/dashboard_domain.html", line 24, in macro
File "/app/powerdnsadmin/lib/utils.py", line 246, in pretty_domain_name
raise Exception("Cannot decode IDN domain")
Exception: Cannot decode IDN domain
[2021-07-08 08:12:30,434] [app.py:1891] ERROR - Exception on /dashboard/domains-custom/reverse [GET]
Traceback (most recent call last):
File "/app/powerdnsadmin/lib/utils.py", line 244, in pretty_domain_name
return value.encode().decode('idna')
File "/usr/lib/python3.8/encodings/idna.py", line 214, in decode
result.append(ToUnicode(label))
File "/usr/lib/python3.8/encodings/idna.py", line 139, in ToUnicode
raise UnicodeError("IDNA does not round-trip", label, label2)
UnicodeError: ('IDNA does not round-trip', b'xn--der-grte-vya3u', b'xn--der-grsste-jcb')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functionsrule.endpoint
File "/usr/lib/python3.8/site-packages/flask_login/utils.py", line 272, in decorated_view
return func(*args, **kwargs)
File "/app/powerdnsadmin/routes/dashboard.py", line 121, in domains_custom
render.name(domain),
File "/usr/lib/python3.8/site-packages/jinja2/runtime.py", line 675, in call
return self._invoke(arguments, autoescape)
File "/usr/lib/python3.8/site-packages/jinja2/runtime.py", line 679, in _invoke
rv = self._func(*arguments)
File "/app/powerdnsadmin/templates/dashboard_domain.html", line 24, in macro
File "/app/powerdnsadmin/lib/utils.py", line 246, in pretty_domain_name
raise Exception("Cannot decode IDN domain")
Exception: Cannot decode IDN domain
`

Might be related to #935
raise UnicodeError("IDNA does not round-trip", label, label2) UnicodeError: ('IDNA does not round-trip', b'xn--der-grte-vya3u', b'xn--der-grsste-jcb')
Could you try https://github.com/ngoduykhanh/PowerDNS-Admin/pull/936 ?
If that does not work, could you provide all data of 'xn--der-grsste-jcb' domain?
regards,
Steffen

authors: steschuser wrosenauer


text:
0.10.0

Release 0.10.0

Current dependencies on/for this PR:

main

PR #57   👈

This comment was auto-generated by Graphite.

repo: ngrok/ngrok-python


text:
Update Getting Started steps for Intel (x86_64) macOS

Current instructions are tailored for Apple Silicon Macs with homebrew installed at /opt/homebrew and ffts not required.
According to https://docs.brew.sh/Installation, homebrew installs to /usr/local/ on x86_64 Macs by default. To correct for this, we can obtain the HOMEBREW_PREFIX from brew config and update steps where affected.
Steps for ffts:
git clone https://github.com/anthonix/ffts.git
cd ffts
mkdir build
cd build
# TODO: replace /usr/local with HOMEBREW_PREFIX
cmake .. -DENABLE_SHARED=ON -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_MACOSX_RPATH=1
make -j4
sudo make install

Should be fixed by #81 (to use $(brew --prefix)).

@hansemro can you check if this is fixed and close if so?

repo: ngscopeclient/scopehal-docs


text:
Websocket randomly disconnecting

https://gyazo.com/0ac90cea007a26a5917bbc71fad7aac6
For some reason I am getting console spammed about every few seconds with a websocket disconnected for an unknown reason error message.

I also experience this issue quite regularly but have noticed that it never seems to affect the function. It is highly annoying though. It's likely an issue with the Javacord APIs handling of disconnections. A discord reload clears this issue up until there's a new websocket error that begins the spamming again.
Any ideas @nguyenquyhy?

Yes I am trying to solve this issue. Basically when there is a disconnection, the plugin will try to reconnect. However, for some reasons, even after successfully reconnected, it still attempts to reconnect again, which makes the whole thing fall into a infinite retry loop.
I am trying to fix this in the next update.

Hey,
Javacord 2.0.13 has been released which should fix this bug.
I'm sorry for inconvenience.
https://github.com/BtoBastian/Javacord/commit/0069a026e29f0be395fc7a020337c25ac0201691

woot :)

Please try the latest 2.3.0 version and let me know if you still get this error 😄 .

authors: BtoBastian Mohron Sitherious nguyenquyhy popatop15

repo: nguyenquyhy/DiscordBridge


text:
convert "epoch time" to date format

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[x] support request

Current behavior
Looking for help to convert "epoch time" value to a date format based on locale.
Expected behavior
I have seen a mention in #1367 on using template: utcDate, bit it is not clear to me on how to use it.
Minimal reproduction of the problem with instructions
What is the motivation / use case for changing the behavior?
enables us to display date based on local settings
Please tell us about your environment:

Angular version: 7.0.X

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
Chrome and Firefox

Language: [all | TypeScript X.X | ES6/7 | ES5]
all

Node (for AoT issues): node --version =
v10.15

could you elaborate more about your use-case,
do you want to parse the date before assigning it to the model or just for displaying purpose?

@aitboudad
Thanks for the prompt response.
In mongodb we save the date in "epoch/unix time" format eg: 1558320756902
we would like to be displayed in the Angular 7.x UI as "YYYY-MM-DD HH:MM:SS"
The format of Date in the UI should be adaptable to the users local preference (US / UK etc...)
Appreciate the help.

template allows only displaying static content, to take account of model change pass it throughout expression property or use a custom field type.

Custom field type with date pipe: https://stackblitz.com/edit/angular-w4nbpd-brxnxq
Simple template: https://stackblitz.com/edit/angular-w4nbpd
Template with expression property: https://stackblitz.com/edit/angular-w4nbpd-jak85f

@aitboudad. thank you for the pointers.
https://stackblitz.com/edit/angular-w4nbpd solves my need for the time being,

I was able to use "Parsers" to transform dateTime to unix, but there are no "formatters" yet, so how to transform unix timestamp to dateTime ?

Or simple time picker, where I want to transform seconds value into time and back:
I can easily parse date from ion datepicker to seconds
const parsedDate = new Date(date);     return  (parsedDate.getHours() * 60 * 60) + (parsedDate.getMinutes() * 60) + parsedDate.getSeconds();
And it will correctly save it in seconds to my model, but now when I need to display seconds as date
I cannot just pass formatting function to selected compoment

@rdev-software formatters not supported yet due to https://github.com/angular/angular/issues/3009.

authors: aitboudad argupta23 rdev-software

repo: ngx-formly/ngx-formly


text:
Advanced Layout (Flex) - fxFlex inputs

I'm following this example (https://formly.dev/examples/other/advanced-layout-flex) to create a flex layout, but the example is very simple and I would like to know how to work with input sizes using fxFlex, as there is no need for me to be creating classes, if there are options to be used that controls that.
if you can share any example working with fxFlex the inputs within the fieldGroup, thank you.
if you also have more references on how to use and available options

https://github.com/ngx-formly/ngx-formly/issues/2019#issuecomment-573456870

authors: GlauberF aitboudad


text:
How to perform an animation on each Activity.onResume()?

Hi @nhaarman
Thank you very much for your library!
However, something is bothering me, how to perform an animation on each Activity.onResume()?

Sometimes it animates and sometimes it doesn't.
Here INITIAL_DELAY_MILLIS:
private static final int INITIAL_DELAY_MILLIS = 300;

Here the peace of code which runs on Activity.onResume():
MainAdapter categoryAdapter = new MainAdapter(this);
AlphaInAnimationAdapter animationAdapter = new AlphaInAnimationAdapter(categoryAdapter);
animationAdapter.setAbsListView(lvCategory);
assert animationAdapter.getViewAnimator() != null;
animationAdapter.getViewAnimator().setInitialDelayMillis(INITIAL_DELAY_MILLIS);
lvCategory.setAdapter(animationAdapter);
categoryAdapter.loadObjects();

Use the reset() method on the AnimatinoAdapter.

authors: kamoljan nhaarman

repo: nhaarman/ListViewAnimations


text:
fix: JWT expired bug

fixes: https://github.com/nhost/nhost/issues/2348

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (791b729) 86.20% compared to head (0d21493) 86.19%.
Report is 2 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2533      +/-   ##
==========================================
- Coverage   86.20%   86.19%   -0.02%
==========================================
  Files          86       86
  Lines        9400     9407       +7
  Branches      481      483       +2
==========================================
+ Hits         8103     8108       +5
- Misses       1297     1299       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

authors: codecov-commenter onehassan

repo: nhost/nhost


text:
🛑 Core is down

In e1c708d, Core ($CORE_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Core is back up in f463dab after 49 minutes.

repo: nhs-work/test-upptime


text:
🛑 Core is down

In 28d15f8, Core ($CORE_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Core is back up in 3bb1efb after 6 minutes.


text:
TKW assurance: positive test for Nullification message, the FHIR patient resource does not output the patient NHS number

Description
For the TKW assurance test for the Nullification message, the response is successful, but after the adapter translates the message, the FHIR Patient resource output does not have an NHS number, while the original nullification CDA has the NHS number. Normally for CDA, it comes either just an NHS number or full demographics, and in this case, it is just an NHS number. The patient NHS number already has a mapping, and it was output correctly in other messages, but not in the nullification messages, so I think this is just a coding error and a simple fix, but this is very important for the validity of the FHIR output.
Here is the original element of the patient NHS number for CDA nullification.
<recordTarget typeCode="RCT" contextControlCode="OP">
		<npfitlc:contentId root="2.16.840.1.113883.2.1.3.2.4.18.16" extension="COCD_TP145020UK03#PatientRole"/>
		<patientRole classCode="PAT">
			<templateId root="2.16.840.1.113883.2.1.3.2.4.18.2" extension="COCD_TP145020UK03#PatientRole"/>
			<id root="2.16.840.1.113883.2.1.4.1" extension="9900002558"/> <--- This is the nhs number
		</patientRole>
	</recordTarget>

and here is the output of the FHIR Patient resource for the adapter at the moment.
{
      "fullUrl": "urn:uuid:5ce0adc2-be17-4f62-9d2c-b43cbfb2ad23",
      "resource": {
        "resourceType": "Patient"
      }
},

Component
NHS111 adapter
Version
0.5.0
Step to Reproduce

make sure the adapter is running, with PEM111_SOAP_SEND_TO=[nigx endpoint]/report
copy Nullification_POCD_EX130001UK05_01.xml file template from TKW/contrib/ITK_2_01_Test_Messages/111/Negative_111_Templates
to \TKW\config\ITK_111\TestRun\Testfiles
run 1.Clear_Folders.bat
run 3.Transmit_TestFiles.bat
check the adapter queue, check on FHIR patient resource

Test Data
from TKW assurance
Preconditions
None
Environment
local environment
Severity
Severe
Priority
Urgent
Expected Behavior
the FHIR Patient resource should be like this:
{
      "fullUrl": "urn:uuid:b31ceae5-47be-441a-8b86-8b59a46f4fd7",
      "resource": {
        "resourceType": "Patient",
        "identifier": [
          {
            "extension": [
              {
                "url": "https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-NHSNumberVerificationStatus-1",
                "valueCodeableConcept": {
                  "coding": [
                    {
                      "system": "https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-NHSNumberVerificationStatus-1",
                      "code": "02"
                    }
                  ]
                }
              }
            ],
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "993254128"
          }
        ],
        "active": true
      }
    }

Will be fixed in 0.5.1 release

This can be closed now. Fix in 0.5.1

authors: Kusnaditjung dawidskainos


text:
Feedback link

Feedback link isn't working in the header when logged in. It's pointing to https://forms.office.com/r/0ENi61Jeu8 but it should be pointing to https://forms.office.com/r/0ENi61JEu8 (last "E" is in the wrong case)

@simplybenuk - I've assigned you a PR which should fix this

authors: ReallySmall simplybenuk

repo: nhsengland/futurenhs


text:
Attach vaccines to programmes directly

This adds a programme column to vaccines, to change the relationship between programmes and vaccines to be one to many rather than many to many.

Can you also update lib/tasks/add_health_questions.rake?

Done, it takes a programme type now instead of a team ID (this might need to change if we decide health questions need to be specific to teams in the future).

repo: nhsuk/manage-vaccinations-in-schools


text:
Review table 3 column example HTML markup

What
Review and revise the 3 column table header example, to make use of table headings and scope. To create a proper relationship between table cells and their column and row headers.
Design System table component.

Why
To improve the accessibility of the tables for screen-reader users.

Other information to support your proposal
Highlighted in this comment in the gov.uk design system: https://github.com/alphagov/govuk-design-system-backlog/issues/61#issuecomment-1340840905
Further reading on using headers and scope: https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables/Advanced.
Related to: https://github.com/nhsuk/nhsuk-service-manual-community-backlog/issues/26

Added in release: 6.5.0
Column headers used in two examples. Bug raised for responsive tables: https://github.com/nhsuk/nhsuk-frontend/issues/985

repo: nhsuk/nhsuk-service-manual


text:
Design example 'Open in new window' link

What
On the design examples, the link 'Open in new window' gives no context of what you are opening in a new window.

Why
It's an accessibility issue, especially when there is more than one design example on the page.
Fix
Add visually hidden text to the the link.
For example: 'Open this [style, component or pattern name] example in a new window'.

This was released in v3.0.4


text:
Update README.md

Bring into line with content style guide, esp re use of double quotation marks.
@vickytnz , are you OK with this?
One question I had was about title tabs being different from H1s. Normally we'd make them the same, except where, for example, there are issues about data privacy.

@sarawilcox:

One question I had was about title tabs being different from H1s. Normally we'd make them the same, except where, for example, there are issues about data privacy.

Yeah, I’d agree with this too. I wonder if we’ve accidentally let the 2 titles differ rather than it be a deliberate thing?

yeah this is accidentally - normally i set up page templates so that one variable updates both rather than forget about it (in fact you can see it in any of the min-guides i've been creating for the guidance).
Quotes is just a personal confusion for me as I got taught the American process for quotes growing up and so tend to revert back to it particularly when looking at code which is often American.

authors: frankieroberto sarawilcox vickytnz


text:
Fix missing fgen and switch enums.

What does this Pull Request accomplish?
FGEN:

TriggerWhen enum now referenced by ConfigureDigitalLevelScriptTriggerRequest TriggerWhen param. This lines up with values mentioned in documentation and matches values I found used in .NET implementation.
UpdateClockSource enum removed from metadata. Would be used in obsolete NIFGEN_ATTR_UPDATE_CLOCK_SOURCE attribute but we didn't bring that in to grpc-device.

Switch:

CabledModuleScanAdvancedBus, CabledModuleTriggerBus, MasterSlaveScanAdvancedBus, MasterSlaveTriggerBus, and TriggerMode enums removed from metadata. These would be referenced by obsolete attributes NISWITCH_ATTR_CABLED_MODULE_SCAN_ADVANCED_BUS, NISWITCH_ATTR_CABLED_MODULE_TRIGGER_BUS, NISWITCH_ATTR_MASTER_SLAVE_SCAN_ADVANCED_BUS. NISWITCH_ATTR_MASTER_SLAVE_TRIGGER_BUS, and NISWITCH_ATTR_TRIGGER_MODE but we didn't bring any of them into grpc-device.

Why should this Pull Request be merged?
Two enums in FGEN and five in Switch weren't being generated in proto.
AB#1991311
AB#1991321
What testing has been done?
Visual inspection of updated proto file. Relying on unit tests, otherwise, since the functions updated aren't referenced in system level tests or examples.

Note: Marked breaking-change because it would break FGEN callers of ConfigureDigitalLevelScriptTrigger who now need to use the TriggerWhen enum for trigger_when argument or set trigger_when_raw instead.

@mgumble , I'm going to submit this one since it's pretty straightforward. Feel free to come back to it after you get back.

repo: ni/grpc-device


text:
Users/pbirkhol/new tests for create

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
This adds 3 new tests for Create Sessions. These new tests ensure that the Connection Map gets populated with sessions when Create Sessions is called. They also ensure that the Connection Map does not get populated with sessions when Create Sessions errors.

@jonathanmendez, as the original creator of the Create Sessions tests, I will wait for you to review this PR before submitting.

repo: ni/measurementlink-labview


text:
BNF-1359 Add IE11 normalize polyfill

https://nicedigital.atlassian.net/browse/BNF-1359

Taking a different approach in a different card so closing this

Taking a different approach in a different card so closing this

authors: barkertron ediblecode

repo: nice-digital/bnf-gatsby


text:
Downgrade eventlet==0.30.2

Downgrading eventlet to 0.30.2 to resolve Issue #8

Good call, I foolishly took dependabot's update advice without testing properly.
Thank you!

authors: ingolevin nickfarrow

repo: nickfarrow/SatSale


text:
Fix backplane blade socket

The blade socket on the backplane should be rotated by 180 degrees while also adjusting the pin assignment, such that the pin numbering between the blade and the backplane align.

The goal is to have SCL on pin 3 of the header.

Fixed as of 356b81cda97e39bff7a8dba5f00b7cdfa763bb4c.

repo: nicklasfrahm/mykilio


text:
Data files

What data files is it necessary to include in the Github/Zenodo package? In the @georgyfalster code, I see there are download.file(url) statements, but the "iso2k1_0_0.RData" file has also been added to this repo. Is the latter necessary, or could you simply give e.g. the doi http://doi.org/10.25921/57j8-vs18  (in a "Data Availability" statement)?

@nickmckay

Thanks for the bump - classes started this week so I've been a bit distracted on this. Georgy wrote her code to get all the files from the internet, which is a great idea, and I modified it so that when it downloads them it puts them into a data folder, which then got added to the repository. So in this case it's both. I liked this solution because it's traceable and reproducible, but also convenient to have the data locally. There is a limit to data size we can put on Github though, so this may not work with the model data.

I see .RData has been added to .gitignore.  You could do the same with other data files e.g. .nc, .mat, etc so they don't get tracked through the commits.

Right, good idea. Please feel free to add any data types that you're
working with that we shouldn't track and I'll do the same.
On Wed, Aug 30, 2023 at 9:17 AM Mattriks @.***> wrote:

I see .RData has been added to .gitignore. You could do the same with
other data files e.g. .nc, .mat, etc so they don't get tracked through the
commits.
—
Reply to this email directly, view it on GitHub
https://github.com/nickmckay/iso2kNatureGeoscience2023/issues/2#issuecomment-1699474355,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXPOZ3G5SDEFM3LICU25LLXX5RPHANCNFSM6AAAAAA4BTFBLM
.
You are receiving this because you were mentioned.Message ID:
@.***>

authors: Mattriks nickmckay


text:
Next release?

Quick question: as the most recent release was last December, can we expect a release anytime soon?

Yep, I'll take care of it this week.

Really? 🙃

Wheeeeeee! I know this isn't going to be any easier the longer I wait...

Looking forward to using this in a new project.

Can you push a release? I am trying to use this in a work project but I'm running into some issues that look as if they have been fixed since the last release.

Any timeline on Swift 3.0 compatibility?  I could try and help out later this week.

Swift 3?

Swift 2 release is 0.2.2, swift 3 is released as 0.3. Thanks for waiting :)

authors: ceeK chasemccoy damianesteban jkyin kafejo nickoneill

repo: nickoneill/Pantry


text:
Record greeting button

Added support to record a new greeting message via handset (Default GPIO 23)
Added debounce on GPIO pins so it ignores spurious open/close transitions

Thank you @svartis for your excellent & verbose code! I'm grateful for people like you to help carry the torch for this project moving forward.

authors: nickpourazima svartis


text:
Radio button

Sir, Please tell me the command for the radio button. Thanks in advance.

Hi @gearspoint 👋,
You can use boolean type to generate radio button.
php artisan manthra:web Cat --fields="name#string; age#integer; is_male#boolean" --model-namespace=Models

Thanks

Thank You very much sir,

authors: gearspoint nicoaudy

repo: nicoaudy/laravelmanthra


text:
Simplify justified gallery

Evaluate VImageGrid from openverse, which could be a more lightweight alternative to fjGallery: https://github.com/WordPress/openverse/blob/main/frontend/src/components/VSearchResultsGrid/VImageGrid.vue

Fixed in #40

repo: nicokaiser/hugo-theme-gallery


text:
Show all follow notifications

Right now, notifications with more than 3 actors are being shown as "someone and x others" but for follow notifications, this is not great since you don't know who followed you.

Done

repo: nicolasparada/nakama

license: isc


text:
Introduce dependency injection

Don’t create the Dao or web service inside the Repository, but instead provide it via dependency injection.
Dependency injection use case: Currency depends on a currency code and an exchange rate. Fragments depend on ViewModels; ViewModels depend on Repositories. Anything that involves composition can be a candidate for dependency injection (?).
Resource: Dagger YouTube videos; Dagger codelab.
Assure that shared dependencies point to the same object (produce same hash code).

Finished implementing in commit 749b3df08e14a187b11f0c55945c9f11e640c05f

repo: nicoqueijo/Android-Currency-Converter


text:
Entry zone follower

Checklist

[x ] I checked for similar existing requests (both open and closed) before posting.
[x ] My request is generic, other users may benefit from it too.

Create an advanced option to make a sensor an 'entry follower'.  This means that the 'entry follower' zone has an entry delay ONLY if an entry zone is triggered first.
For example, you have a front door that has an entry delay, but when you enter the front door, the living room motion sensor will activate.  That living room motion could be programmed as an 'entry follower' so that it also is delayed if the front door opens first.  However, should a bad guy come into that room without entering the front door first then the motion sensor would activate Alarmo immediately.

I would also like to have this feature!

I think this feature is too complex to implement. My concerns:

users needs o both mark which sensors are 'entries'  and which are 'followers'. So we would need to add 2 options, and the feature only works if both are set (and entry delay is applied).
historic info of previous sensor triggers need to be kept (e.g. the opening+closing of a door before entering living room)
the processing of a sensor (follower) becomes dependent of another sensor (entry)

I think it's better to keep things simple. Your living room sensors shouldn't have any entry delay since you don't enter via the living room. Obviously you need to make sure the alarm is disarmed before entering the living room, but I would the expect the marjority of users to have some keypad / rfid scanner / display or similar in the hall.

I understand the complexity and understand it would take a lot, much appreciate you even considering it and providing your feedback.  It is a standard feature on all alarm system panels, however, because not everyone who has access to your house/office will be able to turn off the alarm before entering (like a houseguest, housekeeper, etc.).  Example: The Keypad/tablet is in the living room, and the front door opens to the living room.  That means the front door and the motion sensor in the living room must be delayed if the houseguest is to reach the keypad and turn off the alarm within the entry delay.  However, if someone breaks the glass on the living room window and climbs in (or otherwise subverts your perimeter protection) that motion sensor would also give them enough delay to potentially sabotage the system.  All that said, I think can figure something out using a helper and automation (the helper would be a Boolean of whether or not the front door was triggered in x time).

authors: jterfehr2000 nielsfaber skaggerik

repo: nielsfaber/alarmo


text:
升级Vue3 + view-ui-plus

感谢 @houlonglong  大佬主动发起Vue3 + view-ui-plus升级，期待大佬PR，望知悉，请勿重复认领开发。

迁移的工作量比想象中要大，建议按照新思路进行

代码已经提交到  https://github.com/nihaojob/vue-fabric-editor/tree/perf-vue3-new 分支，
目前问题：

UI框架国际化支持存在问题
字体加载存在问题
国际化切换未开启
保存功能按钮展示异常

repo: nihaojob/vue-fabric-editor


text:
Depth Picking and Crosshairs for Volume Rendering

The feature request if to add optional cross hairs to the volume rendering and allow depth picking where clicking on the volume rendering adjusts the cross hair position.
I had formerly thought this was tricky, but it turns out it only requires a few lines of code.
This was inspired by this feature request:

https://www.nitrc.org/forum/forum.php?forum_id=4442

You can try this out with the latest MRIcroGL pre-release (v1.2.20210816). When you choose the "Multi-Planar A+C+S+R" from the "Disply" menu, you will see all four views show a cross-hair and all interactively move to the location of a mouse click:

https://github.com/rordenlab/MRIcroGL/releases/tag/v1.2.20210816

The simple formula is described here:

https://github.com/rordenlab/MRIcroGL/tree/master/DepthPicking

In our discussions yesterday, the

repo: niivue/niivue


text:
Unable to execute drift because prerequisites failing

When trying to run drift
helm --debug -l debug drift run -n test-bo02-ca-02 test-bo02 --from-release -l debug
, I get
{"level":"info","msg":"exec: \"go\": executable file not found in $PATH","time":"2024-03-08T08:31:40Z"}
{"level":"info","msg":"helm-drift requires 'kubectl' to identify drifts","time":"2024-03-08T08:31:40Z"}
2024/03/08 08:31:40 cmd.go:22: validation failed, please install prerequisites to identify drifts
Error: plugin "drift" exited with error
helm.go:84: [debug] plugin "drift" exited with error

I have kubectl in path
kubectl version
Client Version: v1.28.4
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.5-eks-5e0fdde

helm drift version
drift version: {"version":"0.0.8","revision":"407b5c7627dc9403ee4d4f09f16863cdbb5aec06","environment":"production","build-date":"2023-10-29T16:50:21Z","go-version":"go1.21.1","platform":"linux/amd64"}

Documentation does mention about kubectl being needed but nothing more specific.
Not sure if this is bug or documentation issue

Perhaps instead of checking for existance of 'go', validation should check for kubectl?
https://github.com/nikhilsbhat/helm-drift/blob/main/pkg/validation.go#L11

@herrbpl,
As you pointed out, it is a bug where it checks for the presence of golang rather than kubectl during validations.
I will work on this issue.

@herrbpl, this commit should fix the issue. Latest release will have this change hence closing this.

authors: herrbpl nikhilsbhat

repo: nikhilsbhat/helm-drift


text:
Fix typo + links to on-window-detected on default-config.toml

Hello there,
Giving this app a try and I saw the typo in the docs and also I needed to make 1password and iterm2 (using in "quake" mode) float by default, so I added some docs to the default configuration as well.
Hope this is useful for future users.
Thank you for putting this app together. 💜

Merged the first commit
Skipped the second commit. All complicated options are mentioned in the guide, and there is no reason to pollute default-config.toml

authors: cabello nikitabobko

repo: nikitabobko/AeroSpace


text:
Problem with installing requirements

When I tried to install this project locally, it showed error, the error message below:

Error message in text:
ERROR: Command errored out with exit status 1: /home/hammer/anaconda3/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-1qxojdu3/pandas_9463695615b443ab9140a7e3808a1703/setup.py'"'"'; file='"'"'/tmp/pip-install-1qxojdu3/pandas_9463695615b443ab9140a7e3808a1703/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-nss6suyu/install-record.txt --single-version-externally-managed --compile --install-headers /home/hammer/anaconda3/include/python3.9/pandas Check the logs for full command output.

If I understand your error message correctly, you are facing this problem while trying to install the package, not the requirements.
The package does not have a setup.py file so it cannot be installed. You can use it by adding the location of the package on your local machine to your python path as discussed on e.g. https://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath
The easiest (but not elegant) way to do this
import sys
sys.path.append("/your/path/to/classifier_metric_uncertainty/")
from classifier_metric_uncertainty import ConfusionMatrixAnalyser

Then you can use it in the usual way.


text:
Transparent border render error

Bug reports:
User transparent to achieve a triangle. e.g.
border-style: solid;
border-width: 5px;
border-color: transparent transparent #030303 transparent;

Expected ▲ but the result is ▼.
Then I saw the source (line 6735) this.renderBorder(border.color, side++, paint.curves) . I doubt the reason is this line.
Specifications:

html2canvas version tested with: 1.0.0-rc.3
Browser & version: chrome 76.0.3809.100
Operating system: windows10

Should be fixed with https://github.com/niklasvh/html2canvas/pull/2010

authors: niklasvh wztscau


text:
The problem still exists in 1.1.4

The problem still exists in 1.1.4
Originally posted by @davidwhite-www in https://github.com/niklasvh/html2canvas/issues/2578#issuecomment-881994957

@davidwhite-www can you please provide a repro on jsfiddle

authors: davidwhite-www niklasvh