Tippecanoe not using beyond 20 CPUs

Hello,
I appear to be having an issue using tippecanoe on a machine with more than 20 CPUs. Several files I have to process regularly are very detailed maps of the entire united states with a lot of features and metadata. I regularly need to process these files to zoom layers of 19+ so getting as much performance as the machine can give is important for time and cost.
I've found that when using a machine with more than 20+ CPUs, only the first 20 are used. Also the CPUs that are in use are underutilized,usually hovering around the 20% usage mark.  I suspect this might be because of the flags I have set. Example command:
/usr/local/bin/tippecanoe \
  --layer=conus \
  --force \
  --output=conus.mbtiles \
  --name=conus \
  --read-parallel \
  --maximum-zoom=19 \
  --minimum-zoom=6 \
  --base-zoom=19 \
  --no-feature-limit \
  --no-tile-size-limit \
  conus.geojson

I am on version tippecanoe v1.16.13
I have tried setting the TIPPECANOE_MAX_THREADS environment variable, but the behavior doesn't change. Is there any other options I can change or tweak to increase my performance? Is there any support currently or planned in the future for CUDA processing?
Thanks for making this library! Even if there is no answer or solution to this, tippecanoe has made my processing work much simpler.

Hmm, I'm not quite sure what is going on here. Tippecanoe is constrained by the number of files the OS is configured to allow a process to have open at one time, but even if it is low (1024), that is still enough that it should calculate that it can operate 64 threads at once.
The other thing that you may be running into is that Tippecanoe assumes that the number of CPUs is a power of 2, so if there were 48 CPUs it would only try to use 32 of them. I should check whether that assumption is actually necessary. This wouldn't explain why it was 20 CPUs that were used though.
Can you send me the output of ulimit -a and cat /proc/cpuinfo or sysctl hw.activecpu so I can understand what OS and CPU limits are active?
As for why it would use less than 100% of each active CPU, I'm guessing that your data is larger than will fit in memory, so it is having to do a lot of I/O rather than being able to run in memory. Check the status message like
147171 features, 10479245 bytes of geometry, 20926 bytes of separate metadata, 2789649 bytes of string pool

and see how it compares to the amount of physical memory you have to work with. The geometry file is handled as a stream, but it could be thrashing on string pool lookups.
There is also some locking because only one thread can write to the final mbtiles at once, but that shouldn't cut utilization as much as you are seeing.

I should also ask: are you seeing low utilization during input parsing, during tiling, or both?

Hello @ericfischer!
It looks like you might be on to the problem with the ulimit output:
[root@ip-10-10-10-95 data]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 643902
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 643902
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Here is the first output of /proc/cpuinfo. If it helps, this is an AWS m4.10xlarge instance. I usually change the instance size to fit the job and how much data is being processed.
[root@ip-10-10-10-95 data]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
stepping        : 2
microcode       : 0x25
cpu MHz         : 1609.968
cache size      : 30720 KB
physical id     : 0
siblings        : 20
core id         : 0
cpu cores       : 10
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq monitor est ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ida fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bogomips        : 4800.13
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

The sysctl command didn't work, looks like proc/hw doesn't exist. It's probably just something in vm instead. I'll try to get the equivalent output.
Input parsing is super quick, tiling is where it slows down. The memory utilization is suspiciously low, many times using less than a percent of the 160 gb available.
I'm going to pursue this as a problem with my limits within CentOS. That seems to be the most likely culprit, but I would be interested in seeing if it's possible to have the CPUs be something other than a power of 2.

I think the sysctl version of finding out the number of CPUs only works on Macintoshes. Sorry to be confusing.
It is really surprising that tiling would be slow if not much memory is in use, because if there is plenty of memory available, it ought to be working out of the disk cache and not having to do I/O. And I don't know what the CPUs would be waiting on other than I/O.
https://github.com/mapbox/tippecanoe/pull/396 removes the constraint that the number of active CPUs must be a power of two. I don't see any negative consequence so I think I was just being overly cautious before.

@ericfischer Thanks for the CPU change! I tried using a few other linux distros (centos/amazon/ubuntu) and changing every setting I could find but ultimately I'm not sure what the bottleneck is. I observed that the earlier tiles (zoom 0-12ish) used all CPUs. When it went from 12-15 it cut the number of cpus down into the mid 20s and utilization rates of individual cores dropped as well. Beyond 15 the behavior was as I described before, used only 20 cpus and used them only to 10-20%.
For the time being I am fine with changing to a smaller machine and letting 4 cores or so handle the work for a longer period of time. I'll look into working on this problem and seeing what the bottleneck is, but for the time being I have to assume that it's not tippecanoe, or if it is it is caused by non-standard use.
Thanks for your help!

As you go deeper into the tree of tiles there are some tiles that little data to be written but there is still the longer time of waiting for disk IO. This is often because they might be writing tiles that have only a small amount of data, but still need to write a tile to the disk. As the disk IO increases, the usage on the cpu often decreases. This would be my best guess.

@flippmoke I suspect this as well, my IOPs count was rather high. I tried both with and without a temp directory. Didn't seem to change the behavior.

@Burke9077 you might try mounting a ramdisk if you can to see if it helps with throughput, you can easily thrash your RAM this way too though.

This is really the opposite of what I would have expected. The low zooms are usually constrained to just a few CPUs because until you get to zoom level 2 or 3, there aren't enough tiles to be made to assign each CPU to a tile.
You're probably right @flippmoke that it's blocking on flushing the buffer cache to disk. I've seen processes block for a long time before when doing a fflush on a file to close out the stdio buffers before doing an mmap on the same file to read it as memory, as if the fflush also did an implicit fsync. The confusing part is that tiling should only close files as each thread finishes. It doesn't close other files along the way.
I keep going back and forth on this: I used to do a lot more memory-mapped I/O during tiling, but found that it was usually faster to stream it than to rely on the virtual memory subsystem. But it looks like in this case the opposite is true.

If it wasn't for the --no-feature-limit --no-tile-size-limit, I might think that it was blocking when it had to do an fseek to move backward in the stream to retry a tile. But it shouldn't have to retry any tiles.

@ericfischer @flippmoke
The ramdisk seemed like a good use of resources and I thought it would really give a performance boost. Strangely no such luck. It's still slowing down around layer 14 and I'm seeing exactly the same behavior.
I created a 64gb ramdisk, moved everything to it including my temp dir and output mbtiles file location of course. The 0-10 layers flew by, certainly faster. Then the same behavior happened again.
Here's the command I'm using at the moment. I tried to take as much work as possible off sacrificing disk:
tippecanoe/tippecanoe \
  --layer=hiresconus \
  --output=hiresconus.mbtiles \
  --name=hiresconus \
  --temporary-directory=/ramdisk/main/tmp \
  --read-parallel \
  --maximum-zoom=19 \
  --minimum-zoom=6 \
  --base-zoom=19 \
  --no-feature-limit \
  --no-tile-size-limit \
  --no-line-simplification \
  --no-tiny-polygon-reduction \
  hiresconus.geojson

htop output:
1  [|||||         17.2%]  11 [||||          17.3%] 21 [               0.0%]  31 [               0.0%]
2  [|||||         17.3%]  12 [||||          14.5%] 22 [               0.0%]  32 [               0.0%]
3  [||||          14.9%]  13 [||||          17.8%] 23 [               0.0%]  33 [               0.0%]
4  [||||          13.5%]  14 [||||          15.6%] 24 [               0.0%]  34 [               0.0%]
5  [|||           14.4%]  15 [||||          15.9%] 25 [               0.0%]  35 [               0.0%]
6  [||||          15.6%]  16 [||||          16.0%] 26 [               0.0%]  36 [               0.0%]
7  [|||||         16.7%]  17 [|||||         17.4%] 27 [||             5.3%]  37 [               0.0%]
8  [||||          18.1%]  18 [||||          16.9%] 28 [               0.0%]  38 [               0.0%]
9  [||||          14.8%]  19 [|||           15.8%] 29 [               0.0%]  39 [               0.0%]
10 [||||          17.9%]  20 [||||          18.7%] 30 [               0.0%]  40 [               0.0%]
Mem[||||                               3.50G/157G] Tasks: 51, 48 thr, 351 kthr; 4 running
Swp[                                        0K/0K] Load average: 3.12 3.02 2.04
												   Uptime: 00:22:22
   PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
  3933 root       20   0 2359M  226M 38480 S 365.  0.1 20:09.39 tippecanoe/tippecanoe --layer=hiresconu
  4549 root       20   0 2359M  226M 38480 R 13.4  0.1  0:20.37 tippecanoe/tippecanoe --layer=hiresconu
  4568 root       20   0 2359M  226M 38480 S 12.7  0.1  0:20.23 tippecanoe/tippecanoe --layer=hiresconu
  4547 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.31 tippecanoe/tippecanoe --layer=hiresconu
  4559 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.14 tippecanoe/tippecanoe --layer=hiresconu
  4541 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.24 tippecanoe/tippecanoe --layer=hiresconu
  4540 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.26 tippecanoe/tippecanoe --layer=hiresconu
  4560 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.26 tippecanoe/tippecanoe --layer=hiresconu
  4542 root       20   0 2359M  226M 38480 R 12.0  0.1  0:20.21 tippecanoe/tippecanoe --layer=hiresconu
  4557 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.15 tippecanoe/tippecanoe --layer=hiresconu
  4567 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.10 tippecanoe/tippecanoe --layer=hiresconu
  4546 root       20   0 2359M  226M 38480 S 12.0  0.1  0:20.12 tippecanoe/tippecanoe --layer=hiresconu
  4545 root       20   0 2359M  226M 38480 R 12.0  0.1  0:20.16 tippecanoe/tippecanoe --layer=hiresconu
  4563 root       20   0 2359M  226M 38480 S 11.4  0.1  0:20.30 tippecanoe/tippecanoe --layer=hiresconu
  4566 root       20   0 2359M  226M 38480 S 11.4  0.1  0:20.23 tippecanoe/tippecanoe --layer=hiresconu

Current progress:
root@ip-10-10-8-216:/ramdisk/main# tippecanoe/tippecanoe \
>   --layer=hiresconus \
>   --output=hiresconus.mbtiles \
>   --name=hiresconus \
>   --temporary-directory=/ramdisk/main/tmp \
>   --read-parallel \
>   --maximum-zoom=19 \
>   --minimum-zoom=6 \
>   --base-zoom=19 \
>   --no-feature-limit \
>   --no-tile-size-limit \
>   --no-line-simplification \
>   --no-tiny-polygon-reduction \
>   hiresconus.geojson
hiresconus.geojson:1369: Reached EOF without all containers being closed
In JSON object {"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG::3857"}},"features":[]}
hiresconus.geojson:1366: Found ] at top level
43840 features, 2734347 bytes of geometry, 7230018 bytes of separate metadata, 27030636 bytes of string pool
  73.4%  14/2882/6285

@ericfischer depending on what data is like the limiting factor could be very different. Imagine if you had a simple square that covered all of a zoom level 0 tile. Now imagine tiling this all the way down to zoom 22. There is very little processing required for each tile and you will quickly run out of IO.
If there was a super dense geometry however, it definitely could run out of CPU first.

The data (I believe) is a 1x1km hex tile grid that spans the continental US. Not a very complex geometry but size wise is very large and of course contains various metadata entries for each hex geometry.

Oh, that would make a lot more sense. If you've got a 1km grid, that's basically a z15 tile, so anything higher than z15 is just streaming through a zillion squares that cover the entire tile but still need to run through all the attributes.

Correction, they are 15km tiles, so that makes it even moreso an issue. So the obvious answer then is to have a more appropriate zoom level, right?

Right, a much lower maxzoom would be appropriate. I don't know how precisely the corners of your grid need to be located, but if, say, 3m precision is good enough, you could stop at z12.

Thank you both, I appreciate the help! I'm still getting familiar with tile services.


[#4587] Add support for publishing the trial version.

Scope
This is a small update on the release publish code to also push the trial versions of a product.
Changes
The heavy lifting is done by each repo itself, this only copies the trial to trial and not-trial to normal release.
I have updated paver.sh .
The release notes for 0.67 was not updated, but is fine. I don't want to spend to much time with it.
How to try and test the changes
reviewers: @bgola
Check that changes make sense.
This version is already used in the server at https://chevah.com/buildbot/builders/server-gk-release-staging/builds/8/steps/publish/logs/stdio

needs-review


Invalid AST and generated code for comprehensions

It looks like the "into" key is misplaced in the elixir_quoted/1 output AST for comprehensions which in turn may be responsible for invalid code generated by elixir_code/1.
Example:
defmodule MyModule do
  def my_fun do
    for n <- [1, 2, 3], into: [], do: n * n
  end
end

(notice I included "into" explicitly in the comprehension example, because it is added anyway by BeamFile)
iex> quote do for n <- [1, 2, 3], into: [], do: n * n end
{:for, [],
 [
   {:<-, [],
    [
      {:n, [if_undefined: :apply, context: Elixir, imports: [{0, IEx.Helpers}]],
       Elixir},
      [1, 2, 3]
    ]},
   [
     into: [],
     do: {:*, [context: Elixir, imports: [{2, Kernel}]],
      [
        {:n,
         [if_undefined: :apply, context: Elixir, imports: [{0, IEx.Helpers}]],
         Elixir},
        {:n,
         [if_undefined: :apply, context: Elixir, imports: [{0, IEx.Helpers}]],
         Elixir}
      ]}
   ]
 ]}

but in the elixir_quoted/1 result, the "into" key is after the "do" key:
iex> BeamFile.elixir_quoted(MyModule)
{:ok,
 {:defmodule, [context: Elixir, import: Kernel],
  [
    {:__aliases__, [alias: false], [MyModule]},
    [
      do: {:__block__, [],
       [
         {:def, [line: 2],
          [
            {:my_fun, [], Elixir},
            [
              do: {:for, [line: 3],
               [
                 {:<-, [line: 3], [{:n, [version: 0, line: 3], nil}, [1, 2, 3]]},
                 [
                   do: {{:., [line: 3], [:erlang, :*]}, [line: 3],
                    [
                      {:n, [version: 0, line: 3], nil},
                      {:n, [version: 0, line: 3], nil}
                    ]},
                   into: []
                 ]
               ]}
            ]
          ]}
       ]}
    ]
  ]}}

Also, the code generated by elixir_code/1 seems to be invalid as well (notice the strange "into" block):
defmodule Elixir.MyModule do
  def my_fun do
    for n <- [1, 2, 3] do
      :erlang.*(n, n)
    into
      []
    end
  end
end

Good catch. Thanks for reporting. I will take a look.


Updating installation guilde

Simplifying installation guide, to make it include Python and Jupyter and to make it simpler for non-VS users.

OPS Build status updates of commit e0486dd:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: OPS Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

OPS Build status updates of commit 71b978f:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: OPS Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

OPS Build status updates of commit e0486dd:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/install-guide/csharp.md
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/python.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/quickstart.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit 71b978f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/install-guide/csharp.md
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/python.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/quickstart.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit a00c0c3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/install-guide/csharp.md
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/python.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/quickstart.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit fe28f02:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/install-guide/csharp.md
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/python.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/quickstart.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit 528ed13:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/install-guide/csharp.md
:white_check_mark:Succeeded

articles/install-guide/index.md
:white_check_mark:Succeeded

articles/install-guide/jupyter.md
:white_check_mark:Succeeded

articles/install-guide/python.md
:white_check_mark:Succeeded

articles/install-guide/toc.yml
:white_check_mark:Succeeded

articles/quickstart.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


SPOI-3926: Added kinesis properties in properties.xml file 2) Removed the "provided" scope for jackson-core library in pom.xml

Please get the latest from 2.0 release branch and submit a new pull request.


expected implications of Zacas in RVA23

The Zacas development option is largely vacuous as specified, since there isn't a line item requiring the AMOCASW and AMOCASD PMAs for any region of memory, an implementation where the instruction traps unconditionally would be legal.
Assuming that is an oversight, does the Zacas development option intend to provide AMOCASQ or AMOCASD for main memory?  The former is not considered sufficient for use by compiler developers (https://github.com/llvm/llvm-project/pull/77814#issuecomment-1894198154).

The profiles should require AMOCAS[W|D|Q] PMA support for main memory when Zacas is supported. I believe this is missing in the RVA23 specification.
On the trap-and-emulate question, a trap-and-emulate scheme is allowed to be slow but not incorrect. An implementation that does trap-and-emulate would claim the relevant PMA for the memory where it emulates the operation. However, a trap-and-emulate implementation that does not provide the AMO property would be a buggy implementation and not conforming to the ISA specification.

I meant trap-and-die, not trap-and-emulate.

I meant trap-and-die, not trap-and-emulate.
I misunderstood.

We would want to have a Ziccamoc under development options:
Ziccamoc Main memory regions with both the cacheability and coherence PMAs must support AMOCASQ when Zacas is implemented.

That answers the main question, thanks.
Do you also expect to have a development option along the lines of
Ziccda Unmasked unit-stride vector loads and stores with vstart = 0, whole register vector loads and stores, and floating point loads and stores are single-copy atomic if they are operating on a 2XLEN/8-byte region of main memory with 2XLEN/8-byte alignment
(This could be simplified for RVA23 since we assume RV64 and !Q.)
?

Ziccda Unmasked unit-stride vector loads and stores with vstart = 0, whole register vector loads and stores, and floating point loads and stores are single-copy atomic if they are operating on a 2XLEN/8-byte region of main memory with 2XLEN/8-byte alignment

A single copy atomic 2*XLEN/8 load/store should be a separate ISA extension. Such an extension would want to use a whole register load/store with constraints like perhaps LMUL=1, vstart=0, address naturally aligned to the length. Unit stride may lead to more complications with inactive and tail elements. However, this should be discussed separately as it would not be a profile defined extension. Profile defined extensions are used to constrain optional behavior in specified ISA but not specify new ISA behavior.

Profile defined extensions are used to constrain optional behavior in specified ISA but not specify new ISA behavior.

I see this as basically what Ziccif does, defining atomicity behavior of a standard execution phase that isn't explicitly called out as optional in the base specification.

Original issue closed with https://github.com/riscv/riscv-profiles/commit/db49fccbe84705598af772d1056fa176af602132.  Please open separate issue for new extension proposal.


add 'AlternateDeclarations' mixin

Bug/issue #, if applicable: rdar://111227476
Summary
When a symbol graph is decoded, SymbolKit currently deduplicates symbols with the same precise identifier by inspecting their declaration and discarding whichever symbol has an async keyword in its declaration fragments (or the shorter symbol if neither are async). However, this can lead to important information being lost. This PR adds a new mixin, AlternateDeclarations, that stores the declaration fragments of any symbol discarded in this "deduplication" process.
Dependencies
None
Testing
As this is a change in the internal data model, testing would need to be performed by decoding a symbol graph that contained "duplicate" symbols and re-encoding it to see the new alternateDeclarations mixin. An automated test has been added to ensure that the information is loaded correctly.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran the ./bin/test script and it succeeded
[x] Updated documentation if necessary

@swift-ci Please test


inconsistent representation of network interfaces

The representation of network interfaces is not consistent.
Specifically, while its name is indeed the name of the network interface, the id refereed to as ResourceUID  is taken from the network interface's primary_ip.
This is visible in the json format.
E.g.:
npGurard output include:
                "dst": {
                    "ResourceName": "yarn-canary-guileless-deftly",
                    "ResourceUID": "id:21",
                    "ResourceType": "NetworkInterface",
                    "Zone": "us-south-1"
                },

but the source is the following:
                    "href": "href:18",
                    "id": "id:19",
                    "name": "yarn-canary-guileless-deftly",
                    "port_speed": 3000,
                    "primary_ip": {
                        "address": "<IP_ADDRESS>",
                        "href": "href:20",
                        "id": "id:21",
                        "name": "precision-grudge-daylight-married",
                        "resource_type": "subnet_reserved_ip"
                    },

The issue is that SG targets use the network interface's name and id , whereas the FIP uses the id of the network interface's primary_ip


[TOPI][Relay][OP] Add a strided_set operation.

This adds essentially the inverse of strided_slice where you set the values selected to a new set of values.  The result is a new tensor that is a copy of the first input with some values replaced.

I did the necessary rebase.

is it used in dl frameworks?

cc @jroesch @junrushao1994 can you also take a look?

@yzhliu I think this is something like a[strides] = b

@yzhliu It can be used for the gradient of strided_slice in Relay, but is also an operation we need for myia (https://github.com/mila-iqia/myia).
@junrushao1994 Yes it is that operation.

@abergeron Got it. Thanks.
@junrushao1994 would you review again?

Can this move forward?

cc @yzhliu

@junrushao1994 please https://docs.tvm.ai/contribute/code_review.html#approve-and-request-changes-explicitly
if there is not further comment, i propose to merge it in 24 hours

Thanks @abergeron @junrushao1994 @yzhliu  @yongwww @kevinthesun


Plugin won't open - error is missing crypto module

Netflix add-on version
latest
Operative systems used
Raspbian
Kodi version used
Kodi 18 (Leia)
Description of the bug
Asin the title, it needs this module, but does not say where to install it from
Steps to reproduce the behavior

Install plugin.
Open plugin - got error

Debug log - mandatory
asdasdasd
Possible fix
no
Additional context
no
Screenshots
No response

I tried adding module pycryptodomex, but I get this:
sudo pip3 install pycryptodomex
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    For more information visit http://rptl.io/venv

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

This is the error in the log file:
2024-06-08 16:37:23.785 T:1202    error <general>: [plugin.video.netflix (0)] Background services do not start due to the following error
2024-06-08 16:37:23.799 T:1202    error <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/msl/default_crypto.py", line 16, in <module>
                                                       from Cryptodome.Hash import HMAC, SHA256
                                                   ModuleNotFoundError: No module named 'Cryptodome'

                                                   During handling of the above exception, another exception occurred:

                                                   Traceback (most recent call last):
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/run_service.py", line 38, in init_servers
                                                       self.nf_server_instance = NFThreadedTCPServer((self.HOST_ADDRESS, select_port('NF_SERVER')))
                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 68, in __init__
                                                       self.netflix_session = NetflixSession()
                                                                              ^^^^^^^^^^^^^^^^
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/nfsession.py", line 28, in __init__
                                                       self.msl_handler = MSLHandler(self.nfsession)
                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/msl/msl_handler.py", line 47, in __init__
                                                       self._init_msl_handler()
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/msl/msl_handler.py", line 62, in _init_msl_handler
                                                       self.msl_requests = MSLRequests(msl_data, self.nfsession)
                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/msl/msl_requests.py", line 42, in __init__
                                                       super().__init__(nfsession)
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/msl/msl_request_builder.py", line 38, in __init__
                                                       from .default_crypto import DefaultMSLCrypto as MSLCrypto
                                                     File "/home/bmentink/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/msl/default_crypto.py", line 22, in <module>
                                                       from Crypto.Hash import HMAC, SHA256
                                                   ModuleNotFoundError: No module named 'Crypto'

2024-06-08

Ok, I have got a little further. I upgraded everything, now I get the plugin wanting the authentification key, as It won't accept email/password anymore.
I read the readme on this site, but have issues installing the pip packages, i.e:
pip install pycryptodomex (or pip3)
pip install websocket-client (or pip3)

I get the following error and none of the suggestions work:
pip3 install websocket-client
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.

    If you wish to install a Python library that isn't in Homebrew,
    use a virtual environment:

    python3 -m venv path/to/venv
    source path/to/venv/bin/activate
    python3 -m pip install xyz

    If you wish to install a Python application that isn't in Homebrew,
    it may be easiest to use 'pipx install xyz', which will manage a
    virtual environment for you. You can install pipx with

    brew install pipx

    You may restore the old behavior of pip by passing
    the '--break-system-packages' flag to pip, or by adding
    'break-system-packages = true' to your pip.conf file. The latter
    will permanently disable this error.

    If you disable this error, we STRONGLY recommend that you additionally
    pass the '--user' flag to pip, or set 'user = true' in your pip.conf
    file. Failure to do this can result in a broken Homebrew installation.

    Read more about this behavior here: <https://peps.python.org/pep-0668/>

SO I found away to install the required files, but now I have this error with NFAuthenticationKey.py
python3 NFAuthenticationKey.py

NFAuthentication Key for Linux/MacOS (Version 1.1.8)

Disclaimer:
This script and source code available on GitHub are provided "as is" without warranty of any kind, either express or implied. Use at your own risk. The use of the software is done at your own discretion and risk with the agreement that you will be solely responsible for any damage resulting from such activities and you are solely responsible for adequate data protection.

Press "ENTER" key to accept the disclaimer and start, or "CTRL+C" to cancel
Browser startup... (/Applications/Brave Browser.app/Contents/MacOS/Brave Browser) please wait
Establish connection with the browser... please wait
Opening login webpage... please wait
Please login in to website now ...waiting for you to finish...
No event data received from browser

I logged into Netfix fine in Brave ..

Ok, after logging in 3 times, it finally produced the key file and a pin.
Plugging that into netflix plugin got me a working system ....
I hope this helps someone else.

while it didnt actually help me, i was also setting up netflix add-on on my raspad tonight.

So if it did not help you, what is your point?
On Sun, 9 Jun 2024, 2:24 pm deathplaybanjo, @.***>
wrote:

while it didnt actually help me, i was also setting up netflix add-on on
my raspad tonight.
—
Reply to this email directly, view it on GitHub
https://github.com/CastagnaIT/plugin.video.netflix/issues/1702#issuecomment-2156276913,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACNHVBZ2QSYZEM5YG4BFM4LZGO4HPAVCNFSM6AAAAABI7TRXZ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJWGI3TMOJRGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

I am also having this issue!

https://github.com/CastagnaIT/plugin.video.netflix/issues/1294#issuecomment-1586997485
This fixed it for me

Hello
NFAuthentication Key for Linux/MacOS (Version 1.1.8)
Press "ENTER" key to accept the disclaimer and start, or "CTRL+C" to cancel
Browser startup... (/Applications/Google Chrome.app/Contents/MacOS/Google Chrome) please wait
Establish connection with the browser... please wait
Opening login webpage... please wait
Please login in to website now ...waiting for you to finish...
No event data received from browser
Any Suggestion about this ?
Thank you


Maybe StringValidator should also have a list of acceptable characters?

Even though this can be easily done with another validator (RegexValidator) it would be kinda cool for code reduction to have this functionality all in one validator me thinks.
It is also quite logical since you want to define a set of acceptable characters for a string.

what is the use case for allowing certain characters only?

Most commonly: usernames

This is better to be done by separate rules for separate of concerns. Otherwise you can say the same thing for nearly all other kinds of string-based validation (such as date/number inputs in strings).


Removed unused Polyline

Short Description:
Not used anymore.
@OpenPoGo/maintainers

Do we want to use it in the future?
:+1: from me either way

I doubt it, but we can always add it back in if we do.

👍


Relation#calculate with finder options is deprecated from rails 4.

Fixes #36.

+1, please merge

+1


Print Media Stylesheet

Is it possible to add a print stylesheet to ActiveAdmin? I know you can add stylesheets in the initializer, but there doesn't seem to be an option to set the media type.

@emzeq Hmm, would you like to turn this into a feature request then to make "media" an option when registering stylesheet?

I'm a bit of a Ruby/Rails n00b, but I'd like to try implementing your "media" option suggestion myself if that's cool with you. It's time I give back to this wonderful project.

Please do! Just make sure you provide tests to make sure the new behaviour works.

Pull request #723 adds this functionality & tests.


Add  deprecated version argument to the @Available directive

Feature Name
Specify deprecated version in @Available directive
Description
The initial implementation of @Available (https://github.com/apple/swift-docc/pull/440) only supports specifying the "introduced" version. We should add support for specifying a "deprecated" version as well.
Motivation
No response
Importance
No response
Alternatives Considered
No response

I would argue that we shouldn't add isBeta and isDeprecated arguments specifically because it makes @Available work completely different than in-source availability.

isBeta is an attribute of the current platform, which is provided via a command line argument
isDeprecated is a an attribute that's based on the version that the page is deprecated in. Instead we could add a deprecated version argument to match the introduced argument.

Adding a new argument to an existing directive is a pretty good first task for someone who wants to learn about how directives work in DocC. There are existing tests for this type that can be updated to cover combinations of both arguments.

Hey, I am wondering if this is still open! I would love to pick it up and add the new directive into DocC.

@mustiikhalil yes, AFAIK this is still open and no-one has started working on it yet. That said, might be worth double checking with @sofiaromorales who is working on some other availability improvements.

That's perfect, I can pick it up after input from @sofiaromorales incase it's still needed.

@mustiikhalil, sure, feel free to take on this issue 🙂

So I started working on it here #851 and from what I can see, I've implemented all the required fields for it to work as expected, however I wonder if I missed something.


Can't add keybinding for "Close Window" and other DockableToolBarManager actions?

Describe the bug
Can't add a keybinding to close the current window/pane.
To Reproduce
Steps to reproduce the behavior:

Open the code browser.
Note that each pane has an "X" button at the top right, with tooltip "Close Window".
Go to Tool Options -> Key Bindings, and search for "Close Window".

Expected behavior
The action appears and can be bound to a key.
Environment (please complete the following information):

OS: macOS 10.14.5
Java Version: openjdk 11.0.2
Ghidra Version: trunk

Additional context
This would be useful for pop-up windows such as "Show References to Address".
Not sure if I'm missing some other way to bind it or some other convenient way to close the window.

Possibly related to #504.


Maintenance

Codecov Report

Merging #235 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #235      +/-   ##
============================================
- Coverage     57.86%   57.83%   -0.03%
  Complexity     2706     2706
============================================
  Files           327      327
  Lines          6871     6871
============================================
- Hits           3976     3974       -2
- Misses         2895     2897       +2

Impacted Files
Coverage Δ
Complexity Δ

src/Helper/ImageHelper.php
78.26% <0%> (-8.7%)
15% <0%> (ø)

Continue to review full report at Codecov.

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


ARIA expanded pattern on sidebar navigation

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Prerequisites

[X] I'm using the latest version of Docusaurus.
[ ] I have tried the npm run clear or yarn clear command.
[ ] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[ ] I have tried creating a repro with https://new.docusaurus.io.
[ ] I have read the console error message carefully (if applicable).

Description
The ARIA attribute aria-expanded is placed on each link that has a subsection
Guides

For example the Guides link on https://docusaurus.io/docs/next/category/guides

They should be on the button that collapses or expands the sublist

The aria-expanded attribute is applied to a focusable, interactive element that toggles visibility of content in another element. For example, it is applied to a parent treeitem to indicate whether its child branch of the tree is shown. Similarly, it can be applied to a button that controls visibility of a section of page content.

Reproducible demo
No response
Steps to reproduce

Go to https://docusaurus.io/docs/next
Use a screen reader to navigate in the menu or the accessibility tree can be visualized with chrome devtools

Expected behavior
Expected accessibility tree:

link 'Advanced Guides'
button 'Advanced Guides' expanded: false or true

I think the accessible name of the button can also be shorter, the aria-expanded is already conveying the state, we don't need to keep "Collapse side category" or "Open sidebar category"
Related article: https://adrianroselli.com/2019/06/link-disclosure-widget-navigation.html
Actual behavior
Current accessibility tree:

link 'Advanced Guides' expanded: false or true
button 'Collapse sidebar category 'Advanced Guides'

Your environment

Public site URL: https://docusaurus.io/docs/next

Self-service

[X] I'd be willing to fix this bug myself.

It looks like this has been addressed.
I just checked on a local build and see the button element is now described accurately with the aria-expanded attribute:

  Advanced Guides
  <button aria-label="Expand sidebar category 'Advanced Guides'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button>

Is this OK to close?

@ianjmacintosh Nice! everything seems good now :)

For posterity: https://github.com/facebook/docusaurus/pull/9944


waffle.io Badge

Merge this to receive a badge indicating the number of issues in the ready column on your waffle.io board at https://waffle.io/codeforboston/mbta-ninja
This was requested by a real person (user radhikamalik) on waffle.io, we're not trying to spam you.

Just trying out waffle

Cool!


Makefile

implements #1113
This is a test of how building with a Makefile would look like. So far I like it. What do you think?

Developers can define their own shell shortcuts for frequently used make commands.

Good suggestions! All comments addressed


[Feature][作业管理功能] 数据质量作业

Search before asking

[X] I had searched in the feature and found no similar feature requirement.

Description

非空校验的时候正常应该是不需要期望值吧？这个地方有点怪怪的
Usage Scenario
数据质量检查
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

The actual value of non empty verification here is the number of non empty rows in the statistical field. You can choose the expected value as the number of table rows, and the verification result is configured as actual value/expected value * 100%>99, so the result is true
If you don't need to use the expected value due, you can choose any one or fill in a number with a fixed value, and the expected value won't be used. Later, we can add the type of expected value without for checking without expected value.

这里的非空校验实际值是统计字段非空的行数，你可以选择期望值为表行数，校验结果配置为 实际值/期望值 *100% > 99，那么如果结果是大于99，结果就为真。
如果你不需要用到期望值，你可以随便选一个，或者选择固定值填个数字，期望值就用不到，后面我们可以增加 无 的期望值类型，用于无需期望值的检查。

非常感谢。我明白啦。期待后续发展
发件人: @.>
发送时间: 2023年7月10日 10:38
收件人: @.>
抄送: @.>; @.>
主题: Re: [datavane/datavines] [Feature][作业管理功能] 数据质量作业 (Issue #161)
The actual value of non empty verification here is the number of non empty rows in the statistical field. You can choose the expected value as the number of table rows, and the verification result is configured as actual value/expected value * 100%>99, so the result is true
If you don't need to use the expected value due, you can choose any one or fill in a number with a fixed value, and the expected value won't be used. Later, we can add the type of expected value without for checking without expected value.
这里的非空校验实际值是统计字段非空的行数，你可以选择期望值为表行数，校验结果配置为 实际值/期望值 *100% > 99，那么如果结果是大于99，结果就为真。
如果你不需要用到期望值，你可以随便选一个，或者选择固定值填个数字，期望值就用不到，后面我们可以增加 无 的期望值类型，用于无需期望值的检查。
―
Reply to this email directly, view it on GitHubhttps://github.com/datavane/datavines/issues/161#issuecomment-1627987568, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APLY35U5J75G56QUETF6OKLXPNTK3ANCNFSM6AAAAAA2DO2EBI.
You are receiving this because you authored the thread.Message ID: @.***>


I18n - Allow custom translation loaders to be injected via module config

I would expect to be able to add my own custom translation loaders that implement the RemoteLoaderInterface to the I18n LoaderPluginManager via module configs like I can with any of the other ServiceManagers that are in ZF2. For example, I can add my own controllers to the controller manager using the config key "controllers".
This would allow me to do something like this in my own module:
'translator_loaders' => array(
        'factories' => array(
            'my_new_loader' => 'RcmI18n\Factory\LoaderFactory',
        )
    ),

The problem is that this is not currently possible because Translator.php does not look at the config when creating its LoaderPluginManager. Here is the code from Translator.php:
if (!$this->pluginManager instanceof LoaderPluginManager) {
    $this->setPluginManager(new LoaderPluginManager());
}

I would like to submit a pull request to fix this but I have the following questions:

What should the config key be called? I like "translator_loaders" unless anyone has a better name.
Would this be considered a BC break or could it be added to ZF2? I don't think it would be a BC break but am not sure.

Thanks for your feedback,
Rod

This issue has been closed as part of the bug migration program as outlined here - http://framework.zend.com/blog/2016-04-11-issue-closures.html


how to format/preprocess a dataset?

A client has a dataset with n categories and m images. What options are available in terms of labelling?

single provider with whole dataset

the slowest option (single provider worth of traffic)
easiest to begin with, no preprocessing required

multiple providers with whole dataset

quicker because getting multiple provider's worth of traffic)
requires running multiple providers
requires multiple stakes (1 per provider)
expedites labelling throughput only

multiple providers with chunked dataset

same benefits+cons of running multiple providers
chunking the dataset means labelling does not overlap, so somewhat more efficient labelling (e.g. given image abc.png. With multiple providers, that image may end up being over-labelled as providers are not aware of each other's labelling. Via chunking, you can make a single provider responsible for part of the dataset to avoid over-labelling)
this requires preprocessing to split up the dataset

multiple providers with 1v1 dataset

same benefits+cons of running multiple providers
require preprocessing of the dataset into 1v1 datasets. E.g. given classes a/b/c in a single dataset, it would be split into three datasets: a or not a, b or not b, c or not c. This would duplicate the data 3 times, so requires more space

multiple providers with 1v1 dataset and chunked dataset

methods combined together for better throughput of labelling, best of both worlds

tldr:

running multiple providers nets more traffic. More traffic means more labelling
it doesn't really matter how you format your data, but chunking across multiple providers can avoid over labelling

closed as we're happy with external providers hosting the same dataset multiple times


[Subtask] Add the document of metalake admins

Describe the subtask
Add the document of metalake admins
Parent issue
#2232

We don't need this again.


Update How Redis Values Are Stored on save

Resolves https://github.com/sidekiq-cron/sidekiq-cron/issues/478
The current way of setting values is to use a hash. As noted in the issue attached, this format is marked as deprecated by Ruby 3.
This will instead pass an array to Redis. This is how hmset accepts arguments. Also, hset is preferred over hmset as Redis has deprecated the hmset command.
Tested
I was able to get all tests to pass locally
I can also see the keys being set correctly via the redis-cli:
> HGET cron_job:foo_job description
"A temporary job to check I am alive"

Thanks @jvanderen1! I think that makes sense ✅
But not sure why you link to the hmset docs, as we are using hset here 🤔. I'd like to merge it, but could you please clarify that?

@markets Apologies for the confusion! I found the Redis gem's documentation to be a little confusing myself.
TLDR
The official Redis gem should update the documentation for hset to indicate support for multiple field values.
Background of hset vs hmset
When looking at the documentation for hset, the method signature looks like:
#hset(key, field, value) ⇒ Boolean

Parameters:
  key (String)
  field (String)
  value (String)

However, the documentation for hmset indicates it's signature looks like:
#hmset(key, *attrs) ⇒ Object

Parameters:
  key (String)
  attrs (Array<String>) — array of fields and values

Seeing hmset looks more inline with setting multiple field values, I opted to try that. However, the hmset method gave me this deprecation warning when I used it:
[sidekiq#5788] Redis has deprecated the `hmset`command, called at [".../ruby/2.7.8/lib/ruby/gems/2.7.0/gems/sidekiq-cron-1.10.1/lib/sidekiq/cron/job.rb:472:in `block in save'"]

Looking at the official Redis documentation:

As of Redis version 4.0.0, [HMSET] is regarded as deprecated.
It can be replaced by HSET with multiple field-value pairs when migrating or writing new code.

Ok! Thanks for clarifying @jvanderen1.
Let me add a couple of notes:

Btw, not sure how this PR solves the warning described in #478. They seem like different things no?
The current transform_values! saves some memory, as it doesn't create a new hash every time... but probably that's not a hot-spot in this code base.

@markets

Btw, not sure how this PR solves the warning described in https://github.com/sidekiq-cron/sidekiq-cron/issues/478. They seem like different things no? Sorry if I'm confused 🙏🏼 just want to make sure before I hit the "merge" button.

I updated the description with the warning I see before these changes:
/usr/local/bundle/gems/sidekiq-cron-1.10.1/lib/sidekiq/cron/job.rb:472: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call

When a hash is passed into a method which can take keyword arguments technically behaves different in Ruby 2 vs Ruby 3. This changes the shape from a hash to an array, therefore ensuring that a regular argument is passed instead of a keyword argument.

The current transform_values! saves some memory, as it doesn't create a new hash every time... but probably that's not a hot-spot in this code base.

To reduce the scope of changes, I will revert back to transform_keys!. The assumption was that transform_keys! may take longer than transform_keys, but that may be incorrect.

Thanks again @jvanderen1 🚀


Add Docs for Vite/SvelteKit

If you're building npm/lucid-cardano for vite/sveltekit, there are docs here: https://adastry.io/learn/blog/lucid-svelte-quickstart/
These should be easy to find from the lucid page.

@micahkendall,  Thank you very much for that link. It helped me a lot!


Stockfish ndk-build

Hi,
I am trying to use this package in an Ionic app but I got stuck.
When trying to ndk-build -C app/platforms/android within ionicApp/node_modulescordova-plugin-stockfish directory I am getting:

make: *** app/platforms/android: No such file or directory.  Stop.

After changing the command to ndk-build -C src/android I am getting a bit further:

make: Entering directory 'G:/ionicApps/ionicApp/node_modules/cordova-plugin-stockfish/src/android'
[armeabi-v7a] Compile++ thumb: stockfishjni <= stockfishjni.cpp
jni/stockfishjni/stockfishjni.cpp:3:10: fatal error: 'threadbuf.h' file not found
#include <threadbuf.h>

Thanks!
Any idea what am I missing here?

Are you using ionic capacitor? the plugin is not compatible with capacitor in the master branch since it's a cordova plugin, but you can try the capacitor branch.

No. I'm using Cordova.
On Sat, Dec 19, 2020 at 8:01 PM Vincent Velociter<EMAIL_ADDRESS>wrote:

Are you using ionic capacitor? the plugin is not compatible with capacitor
in the master branch since it's a cordova plugin, but you can try the
capacitor branch.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/veloce/cordova-plugin-stockfish/issues/16#issuecomment-748512152,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIHCTPGYJV4ADUUWB4H3IYTSVTZ7ZANCNFSM4U7RT2TQ
.


Option added to Stacks - WebAPI (no CQRS and no data persistence) and WebAPI with CQRS

Option added to Stacks - WebAPI (no CQRS and no data persistence) and WebAPI with CQRS
📲 What
"src" folder has been moved from source to "web-api-cqrs\src"
New "web-api" folder added
New webApi solution created inside web-api
New unit test created for api project in web-api
Templates created for:
web-api full solution
web-api-cqrs full solution
adding web-api-cqrs to an existing project
And:
A mapping on SearchMenu response has been added, we were returning the CQRS model instead of the API model
🤔 Why
To increase the modularity of Stacks and to have (at the end of this cycle) three options on the CLI
🛠 How
Implementing a mono-repo with several solutions
🕵 How to test
Tests are kept as they were in web-api-cqrs
New unit tests added to web-api
✅ Acceptance criteria Checklist

[ ] Code peer reviewed?
[ ] Documentation has been updated to reflect the changes?
[x] Passing all automated tests, including a successful deployment?
[x] Passing any exploratory testing?
[x] Rebased/merged with latest changes from development and re-tested?
[x] Meeting the Coding Standards?

Interesting idea 🙂

/azp run

/azp run

/azp run

/azp run


Update widget.is_required value on field.required update

I didn't found in documentation why required attr is still rendered when I change field.required to False.
So I looked into the code and found that I have to update widget.is_required too.
This change keeps field.required and widget.is_required in sync.
I'm not sure that this is a good solution for everyone and of course it will break others people projects but at least we can add information about widget.is_required to the documentation.

Hi. This behaviour is inherited from Django. The is_required on the widget is set here: https://github.com/django/django/blob/master/django/forms/fields.py#L103
This might not be the best API for a developer to use, but that's the way Django implements it and django-floppyforms tries to emulate this behaviour where-ever possible so that it can work as a drop-in replacement. So I won't include this PR into floppyforms, but I hope that the link above to the Django code might help you to resolve the issue you have.
Thanks for the efforts you put into this! Keep contributing :)


Automated cherry pick of #11381

We should bump ContainerVM before 1.0.1. #11381 has baked in the main branch long enough.

cc @roberthbailey @dchen1107

LGTM.

LGTM thanks!

(Travis is a flake.)

And now Travis is the short version from master. :)

Shippable is 1/2 here, and the 1 looks like a flake, plus this is all config.


clean up makefile, add clean/install/uninstall with DESTDIR option

Cleaned up the Makefile. Added the following:
make clean: remove the binary from directory
make install: install binary and necessary files, wrapper script (l0l.sh)
make uninstall: uninstall binary and files
DESTDIR option under install/uninstall is useful for installing on chroots. F.e.:
# make install DESTDIR=$CHROOT

where $CHROOT may point to any directory in the system.
l0l.sh gives the ability to run l0l from under /usr/bin/
A new user will follow the procedure below to install and use l0l:
$ make
# make install
$ l0l

Edit: Fixed a missed escape character to avoid compilation error
Additions etc. are welcome

merged, Thank you (:


Date incorrect on extension, but correct on Google calendar

System Information:

Version: 2.1
Language: en-us
Timezone Offset: -06:00
User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36

What steps will reproduce the problem?

I have no idea how to reproduce the problem, and I have never seen it before

What is the expected result?
The event is listed on the wrong date in the extension, but it is the correct date on the Google calendar
What happens instead?
The event is listed on the wrong date in the extension, but it is the correct date on the Google calendar
Screenshot URL:
http://i.imgur.com/ahTKrEf.png
Logs:
[2015-03-04T02:53:17.899Z] scheduler.start()
[2015-03-04T02:53:17.919Z] feeds.fetchSettings()
[2015-03-04T02:53:17.929Z] feeds.fetchCalendars()
[2015-03-04T02:53:18.782Z] Remote settings saved to local storage. [
{
"kind": "calendar#setting",
"etag": ""1424817557480000"",
"id": "hideInvitations",
"value": false
},
{
"kind": "calendar#setting",
"etag": ""1406217887433000"",
"id": "weekStart",
"value": 0
},
{
"kind": "calendar#setting",
"etag": ""0"",
"id": "timezone",
"value": "America/Chicago"
},
{
"kind": "calendar#setting",
"etag": ""1406217887433000"",
"id": "format24HourTime",
"value": false
},
{
"kind": "calendar#setting",
"etag": ""1408626101000000"",
"id": "defaultEventLength",
"value": 60
},
{
"kind": "calendar#setting",
"etag": ""0"",
"id": "showDeclinedEvents",
"value": true
},
{
"kind": "calendar#setting",
"etag": ""1406217887433000"",
"id": "dateFieldOrder",
"value": "MDY"
},
{
"kind": "calendar#setting",
"etag": ""1424817257136000"",
"id": "remindOnRespondedEventsOnly",
"value": false
},
{
"kind": "calendar#setting",
"etag": ""1406217887433000"",
"id": "locale",
"value": "en"
},
{
"kind": "calendar#setting",
"etag": ""1408626101000000"",
"id": "useKeyboardShortcuts",
"value": true
},
{
"kind": "calendar#setting",
"etag": ""0"",
"id": "hideWeekends",
"value": false
}
]
[2015-03-04T02:53:20.352Z] feeds.fetchEvents()
[2015-03-04T02:53:20.379Z] storage[calendars]: {
<EMAIL_ADDRESS>{
"backgroundColor": "#92e1c0",
"description": "Displays birthdays of people in Google Contacts and optionally 'Your Circles' from Google+. Also displays anniversary and other event dates from Google Contacts, if applicable.",
"editable": false,
"foregroundColor": "#000000",
"id"<EMAIL_ADDRESS>"title": "Birthdays",
"visible": true
},
<EMAIL_ADDRESS>{
"backgroundColor": "#16a765",
"description": "Holidays and Observances in United States",
"editable": false,
"foregroundColor": "#000000",
"id"<EMAIL_ADDRESS>"title": "Holidays in United States",
"visible": true
},
<EMAIL_ADDRESS>{
"backgroundColor": "#b3dc6c",
"description": "",
"editable": false,
"foregroundColor": "#000000",
"id"<EMAIL_ADDRESS>"title"<EMAIL_ADDRESS>"visible": true
},
<EMAIL_ADDRESS>{
"backgroundColor": "#9fc6e7",
"description": "Scheduled meetings and appointments",
"editable": true,
"foregroundColor": "#000000",
"id"<EMAIL_ADDRESS>"title": "WebWorks of KC",
"visible": false
},
<EMAIL_ADDRESS>{
"backgroundColor": "#d06b64",
"description": "",
"editable": true,
"foregroundColor": "#000000",
"id"<EMAIL_ADDRESS>"title"<EMAIL_ADDRESS>"visible": true
}
}
[2015-03-04T02:53:20.382Z] feeds.fetchEventsFromCalendar_() "Birthdays"
[2015-03-04T02:53:20.386Z] feeds.fetchEventsFromCalendar_() "Holidays in United States"
[2015-03-04T02:53:20.389Z] feeds.fetchEventsFromCalendar_<EMAIL_ADDRESS>[2015-03-04T02:53:20.393Z] feeds.fetchEventsFromCalendar_<EMAIL_ADDRESS>[2015-03-04T02:53:20.398Z] Not showing hidden calendars:  [
"WebWorks of KC"
]
[2015-03-04T02:53:20.544Z] Received events, now parsing. "Holidays in United States"
[2015-03-04T02:53:20.627Z] Received events, now parsing<EMAIL_ADDRESS>[2015-03-04T02:53:20.746Z] Received events, now parsing<EMAIL_ADDRESS>[2015-03-04T02:53:20.993Z] Received events, now parsing. "Birthdays"
[2015-03-04T02:53:43.208Z] browseraction.initialize()
[2015-03-04T02:53:43.217Z] browseraction.loadCalendarsIntoQuickAdd_()
[2015-03-04T02:53:43.259Z] browseraction.showEventsFromFeed_()
[2015-03-04T02:53:52.434Z] browseraction.initialize()
[2015-03-04T02:53:52.442Z] browseraction.loadCalendarsIntoQuickAdd_()
[2015-03-04T02:53:52.475Z] browseraction.showEventsFromFeed_()
[2015-03-04T02:54:08.581Z] browseraction.initialize()
[2015-03-04T02:54:08.588Z] browseraction.loadCalendarsIntoQuickAdd_()
[2015-03-04T02:54:08.614Z] browseraction.showEventsFromFeed_()
[2015-03-04T02:54:14.325Z] options.loadCalendarList()
[2015-03-04T02:54:15.657Z] Creating bug report.

Obstructed the email addresses


Refactor and complete apiRoutes.js in tests

This was the file used to configure our backend tests folder and skeleton. It's incomplete and needs refactoring.

Rename file to users-test.js (git mv tests/apiRoute.js tests/users-test.js - assuming you're pwd is the root "GOOGLEMAPS-OFFLINE..." folder).
Refactor code to test the endpoints in routes/users.js and its respective controller functions (controllers/users-controller.js)

#1 above has been completed in PR #99 but still need to complete #2 above - doesn't include cases for all user end points.

Started working on the users routes

@mallek I was running tests just fine the other day, then I pulled down changes from development branch a few minutes ago, and now I get this error any time I try to run the server tests
  1) "before each" hook: populateUsers for "test runner should work"

  0 passing (2s)
  1 failing

  1) "before each" hook: populateUsers for "test runner should work":
     Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

if I remove the beforeEach with populateUsers, the tests run, just some of them obviously fail. Looking at your seed I can't figure out what is wrong or even what changed. I tried doing a hard reset of my branch and that didn't help. Do you have any suggestions on what I could try?
Thanks!


clicking / touching search bar in docs on mobile closes sidenav

When I touch the search bar it directly closes the sidenav. Also scrolling moves it too much.

Can you give codepen for this and also steps to reproduce the issue?

Just take a look at the current docs at http://next.materializecss.com ;-)

Its reproducible on actual device. Not on simulation through chrome. Will try to check it

Good catch. This is an unintended side effect of us closing the sidenav on window resize. On mobile devices, bringing up the keyboard resizes the window. I've now changed it so the sidenav only closes on horizontal window resizes.
Fixed in aa2997a8


feat!: Integrate XCM Rate Limiter

Add the xcm-rate-limiter pallet from https://github.com/galacticcouncil/HydraDX-node/pull/561 to Basilisk.
Checklist:

[ ] I have updated the documentation if necessary.
[x] I have added tests to cover my changes, regression test if fixing an issue.
[x] This is a breaking change.

Todos:

[ ] Benchmarks

Reason for this is that tests are run with --features runtime-benchmarks which changes the RelayChainBlockNumberProvider -.-


Add pyproject.toml to include option doc

Fixes an oversight where i didn't update this initially

Current dependencies on/for this PR:

main

PR #5080   👈

This comment was auto-generated by Graphite.


Operators and some Merge (e.g. Add, Maximum) layers do not propagate masks

Masks are not propagated by add/mul operators, nor using some Merge layers (e.g. Add, Maximum). The below also demonstrates that this bug is also partially present in tf.keras  (operators fail, but Add / Maximum work as expected).
Below is a simple example of learning the parameters of a straight line, y = m * x + c, where (x, y) are batched into shape (batch_size, sequence_length, 1) to mimic common usage e.g. in NLP. Masked examples have x = y = 0. We construct a model y = dense(map_fn(x)), where we use various map_fns that should not change the capacity of the model (and in some cases should not even affect gradients). A summary of those that work "as expected" (i.e. learn roughly the correct weights) is shown below.

map_fn
works with keras_core
works with tf.keras

lamda x: x
✓
✓

lambda x: x * 1
✗
✗

lambda x: x + x - x
✗
✗

lambda x: x + x
✗
✗

lambda x: keras.layers.Add()((x, x)
✗
✓

lambda x: keras.layers.Maximum()((x, x)
✗
✓

lambda x: AddSelf()((x)
✓
✓

example.py
import sys
import typing as tp
import tensorflow as tf
USE_CORE = {"core": True, "tf": False}[sys.argv[1]]

if USE_CORE:
    import keras_core as keras
    def get_value(x):
        return x.value
else:
    keras = tf.keras
    def get_value(x):
        return x

def get_dataset():
    """Create some masked dummy data, `y = gradient * x + offset`."""
    max_length = 16
    gradient = 5.
    offset = 2.
    batch_size = 64
    examples_per_epoch = 1000

    data_size = batch_size * examples_per_epoch
    x = tf.random.uniform((data_size, max_length))
    mask = (tf.ragged.range(
        tf.random.uniform((data_size,), 1, max_length, dtype=tf.int64)
    ) + 1).to_tensor(shape=(data_size, max_length)) > 0
    x = tf.where(mask, x, tf.zeros_like(x))
    y = tf.where(mask, x * gradient + offset, tf.zeros_like(x))

    x = tf.expand_dims(x, axis=-1)
    y = tf.expand_dims(y, axis=-1)

    dataset = tf.data.Dataset.from_tensor_slices((x, y))

    #### Adding sample_weight like below fixes the issue
    # sample_weight = tf.cast(mask, tf.float32)
    # dataset = tf.data.Dataset.from_tensor_slices((x, y, sample_weight))

    return dataset.batch(batch_size)

def get_model(input_shape, map_fn: tp.Callable):
    """Create model corresponding to `dense(map_fn(x))`."""
    inp = keras.Input(shape=input_shape[1:], batch_size=input_shape[0])
    x = keras.layers.Masking()(inp)
    x = map_fn(x)
    x = keras.layers.Dense(1)(x)
    return keras.Model(inp, x)

def build_and_eval(dataset: tf.data.Dataset, map_fn: tp.Callable, desc: str):
    """Build and evaluate a model dense(map_fn(x)) on dataset."""
    print("----------------")
    print(desc)
    print("----------------")
    model = get_model(dataset.element_spec[0].shape, map_fn)
    if hasattr(model.output, "_keras_mask"):
        print("Output has '_keras_mask' attr")
    else:
        print("Output does NOT have a 'keras_mask' attr")
    model.compile(loss="mse", optimizer="sgd")
    model.fit(dataset, epochs=2)
    print([(w.name, get_value(w).numpy().item()) for w in model.weights])

class AddSelf(keras.layers.Layer):
    def __init__(self):
        super().__init__()
        self.supports_masking = True

    def call(self, x):
        return x + x

def main():
    tf.random.set_seed(42)
    dataset = get_dataset()

    build_and_eval(dataset, lambda x: x, "x")
    build_and_eval(dataset, lambda x: x * 1, "x * 1")
    build_and_eval(dataset, lambda x: x + x - x, "x + x - x")
    build_and_eval(dataset, lambda x: x + x, "x + x")
    build_and_eval(
        dataset,
        lambda x: keras.layers.Add()((x, x)),
        "keras.layers.Add()((x, x))",
    )
    build_and_eval(
        dataset,
        lambda x: keras.layers.Maximum()((x, x)),
        "keras.layers.Maximum()((x, x))",
    )
    build_and_eval(dataset, lambda x: AddSelf()(x), "AddSelf()(x)")

if __name__ == '__main__':
    main()

Using keras_core
python example.py core

----------------
x
----------------
Output has '_keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 2s 837us/step - loss: 0.6007
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 834us/step - loss: 0.0459
[('kernel', 3.0166471004486084), ('bias', 2.8878185749053955)]
----------------
x * 1
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 893us/step - loss: 2.7253
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 858us/step - loss: 0.4369
[('kernel', 7.281540870666504), ('bias', 0.4343944489955902)]
----------------
x + x - x
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 798us/step - loss: 2.4995
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 1ms/step - loss: 0.4331
[('kernel', 7.2877912521362305), ('bias', 0.4326573312282562)]
----------------
x + x
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 2s 1ms/step - loss: 1.9006
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 1ms/step - loss: 0.3997
[('kernel', 3.7006561756134033), ('bias', 0.4010191261768341)]
----------------
keras.layers.Add()((x, x))
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 2s 1ms/step - loss: 1.8395
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 1ms/step - loss: 0.3997
[('kernel', 3.7006564140319824), ('bias', 0.40101900696754456)]
----------------
keras.layers.Maximum()((x, x))
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 2s 1ms/step - loss: 2.6779
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 1s 1ms/step - loss: 0.4361
[('kernel', 7.282827377319336), ('bias', 0.4340367913246155)]
----------------
AddSelf()(x)
----------------
Output has '_keras_mask' attr
Epoch 1/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 0.4728
Epoch 2/2
1000/1000 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 0.0022
[('kernel', 2.5691280364990234), ('bias', 1.8994231224060059)]

Using tf.keras
python example.py tf

----------------
x
----------------
Output has '_keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 4s 3ms/step - loss: 0.4196
Epoch 2/2
1000/1000 [==============================] - 3s 3ms/step - loss: 0.0084
[('dense/kernel:0', 4.857532501220703), ('dense/bias:0', 2.0762569904327393)]
----------------
x * 1
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 5s 5ms/step - loss: 1.6487
Epoch 2/2
1000/1000 [==============================] - 4s 4ms/step - loss: 0.4224
[('dense_1/kernel:0', 7.2698187828063965), ('dense_1/bias:0', 0.4376528561115265)]
----------------
x + x - x
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 6s 6ms/step - loss: 1.3704
Epoch 2/2
1000/1000 [==============================] - 7s 7ms/step - loss: 0.4173
[('dense_2/kernel:0', 7.285768032073975), ('dense_2/bias:0', 0.43321940302848816)]
----------------
x + x
----------------
Output does NOT have a 'keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 7s 7ms/step - loss: 0.9798
Epoch 2/2
1000/1000 [==============================] - 4s 4ms/step - loss: 0.3998
[('dense_3/kernel:0', 3.7006540298461914), ('dense_3/bias:0', 0.4010206162929535)]
----------------
keras.layers.Add()((x, x))
----------------
Output has '_keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 5s 5ms/step - loss: 0.4362
Epoch 2/2
1000/1000 [==============================] - 6s 6ms/step - loss: 3.6697e-05
[('dense_4/kernel:0', 2.498835563659668), ('dense_4/bias:0', 2.0013747215270996)]
----------------
keras.layers.Maximum()((x, x))
----------------
Output has '_keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 6s 6ms/step - loss: 0.4207
Epoch 2/2
1000/1000 [==============================] - 7s 7ms/step - loss: 0.0084
[('dense_5/kernel:0', 4.857173919677734), ('dense_5/bias:0', 2.076448917388916)]
----------------
AddSelf()(x)
----------------
Output has '_keras_mask' attr
Epoch 1/2
1000/1000 [==============================] - 6s 6ms/step - loss: 0.1189
Epoch 2/2
1000/1000 [==============================] - 6s 6ms/step - loss: 5.4465e-05
[('dense_6/kernel:0', 2.501418113708496), ('dense_6/bias:0', 1.9983253479003906)]

Thanks for the report and analysis. We need to fix this for the Add and Maximum layers (and maybe other merging layers if affected).
 A mask can be understood or propagated by a Layer.
We could lower the concept of masking to the Operation class, but it would be very challenging to ensure that all our operations are compatible with masks. It seems safer to keep the mental model "masks must be processed by layer instances".

it is expected that using low-level operators like - and + will not preserve masks

Expected by whom? As a user who's fairly familiar with the keras API (and very rarely a contributor up until recently) I consider it extremely surprising that x + y gives fundamentally different behaviour to Add()((x, y)).

masks are a layer-level concept

Conceptually, I've always considered masks a property of a tensor. I think everything would be a lot simpler if we had a MaskedTensor composite class, but that's a discussion for somewhere else...

A mask can be understood or propagated by a Layer

I realize keras-core has a separate Operation class, and up until now I'd thought of them as just parameterless layers - objects that allow for the creation of a pseudo-computation graph. tf.keras one the othe hand explicitly creates LambdaOp layers. If these layers don't propagate masks, at the very least I would expect a warning about not propagating as with other layers that don't propagate.

it would be very challenging to ensure that all our operations are compatible with masks

I don't think compatibility is necessary, but I think raising a NotImplementedError or something similar is much more preferable to silently doing unexpected things. I'd much rather use a code base the requires me to explicitly toss out a mask than one that silently does it for me.

We need to fix this for the Add and Maximum layers (and maybe other merging layers if affected).

They all inherits the base merge layer, which in fact takes care of the mask. I am surprised why isn't it propagated properly. Need to take a look


Cannot search for Extension or install vsix file

VSCode Version: 1.51.1
OS Version: Mac OS Big Sur 11.0.1

Steps to Reproduce:

Install Vscode
Go to extension Tab
Infinite loop trying to load extensions
Trying to install a vsix file will not do anything

Does this issue occur when all extensions are disabled?: Yes

Please follow these steps

Help -> Toggle Developer Tools -> Network
Then check for any network failed requests while browsing and installing the extensions if found all requests fails then its probably a proxy or DNS issue at your end.
To confirm its a DNS issue check if you can access this page https://ms-python.gallerycdn.vsassets.io/extensions/ms-python/python/2019.8.29288/1565127378610/Microsoft.VisualStudio.Services.Icons.Default, if you cannot please try configuring your DNS like pointing to <IP_ADDRESS> as suggested here? https://<IP_ADDRESS>/dns/. Otherwise please contact your network administrator.
If it is not a network issue, please share the logs from the following locations

Help -> Toggle Developer Tools -> Console
View -> Command Pallette... -> Toggle Shared Process -> Console
View -> Open View… -> Log (Shared)
View -> Open View… -> Log (Window)

No request is being sent when I go to the extension tab! I can go to the link you posted successfully.
Here are the logs:
1-

[Extension Host] Message (loading...) didn't get externalized correctly.
t.log @ console.ts:140

[Violation] Added non-passive event listener to a scroll-blocking  event. Consider marking event handler as 'passive' to make the page more responsive. See
event.ts:19 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
onFirstListenerAdd @ browser.ts:96
_event._event @ event.ts:562
(anonymous) @ linkedList.ts:127
onFirstListenerAdd @ linkedList.ts:127
_event._event @ event.ts:562
O @ listWidget.ts:548
createMouseController @ listWidget.ts:1180
K @ listWidget.ts:1248
t.PagedList @ listPaging.ts:86
L @ listService.ts:282
_createInstance @ instantiationService.ts:73
createInstance @ instantiationService.ts:73
renderBody @ extensionsViews.ts:132
render @ paneview.ts:213
render @ viewPaneContainer.ts:228
onDidAddViewDescriptors @ viewPaneContainer.ts:1322
onDidAddViewDescriptors @ extensionsViewlet.ts:617
(anonymous) @ viewPaneContainer.ts:1041
fire @ event.ts:584
onDidChangeContext @ viewContainerModel.ts:600
(anonymous) @ viewContainerModel.ts:312
fire @ event.ts:584
(anonymous) @ linkedList.ts:127
fire @ event.ts:584
fire @ event.ts:584
setContext @ contextKeyService.ts:303
set @ contextKeyService.ts:145
doSearch @ extensionsViewlet.ts:595
(anonymous) @ extensionsViewlet.ts:559
(anonymous) @ async.ts:167

2-

sharedProcessMain.ts:296 Uncaught (in promise) Error: There is an instance already running.
at sharedProcessMain.ts:296
at /Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/async file:/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/code/electron-browser/sharedProcess/sharedProcessMain.js:639
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/applicationinsights.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/CorrelationContextManager.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/Logging.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/diagnostic-channel/initialization.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/Console.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/Exceptions.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/Performance.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/HttpDependencies.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/Util.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/RequestResponseHeaders.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/HttpDependencyParser.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/index.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Constants.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/index.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/AvailabilityData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/Domain.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/Base.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/ContextTagKeys.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/Data.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/DataPoint.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/DataPointType.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/Envelope.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/EventData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/ExceptionData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/ExceptionDetails.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/MessageData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/MetricData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/PageViewData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/RemoteDependencyData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/RequestData.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/StackFrame.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/Generated/SeverityLevel.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/TelemetryTypes/index.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/RequestParser.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Declarations/Contracts/TelemetryTypes/TelemetryType.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/CorrelationIdManager.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/HttpRequests.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/AutoCollection/HttpRequestParser.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/NodeClient.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/TelemetryClient.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/Config.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/Context.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/TelemetryProcessors/index.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/Channel.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/TelemetryProcessors/SamplingTelemetryProcessor.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/Sender.js.map: Unknown error
DevTools failed to load SourceMap: Could not load content for https://ticino.blob.core.windows.net/sourcemaps/e5a624b788d92b8d34d1392e4c4d9789406efe8f/node_modules/applicationinsights/out/Library/EnvelopeFactory.js.map: Unknown error

3- There is noLog (Shared)
4- Log (Window) is empty

No shared process

Is the problem fixed if you restart your machine?

sharedProcessMain.ts:296 Uncaught (in promise) Error: There is an instance already running.

🤔

@joaomoreno That fixed it 😬 I should have tried that first, thank you


abort running mocha tests when webpack starts to compile

When webpack detects some file changes the currently running test suite will be aborted and after that webpack continues to compile. This ensures that everything gets executed in the right order and that makes building a logging system a lot easier. The most important information is always the last one and not mixed like before.

Current coverage is 93.39% (diff: 100%)

Merging #94 into master will increase coverage by 0.03%

@@             master        #94   diff @@
==========================================
  Files            22         22
  Lines           557        560     +3
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            520        523     +3
  Misses           37         37
  Partials          0          0

Powered by Codecov. Last update 87f5d16...084636a


Continue Watching/My List

Hi, Continue Watching and My List don't show at the top of the feed as adverstised. In my case, the Continue Watching is on 6th rows while My List shows at bottom!
I am using Firefox 61.0.1 (64-bit) on Windows 10

Does this occur every time you refresh Netflix or only some times?

It's every time. I have tried private browsing mode as well but it's the same.

I basically ended up rewriting the extension to do it, but Firefox behavior should be significantly more reliable now - this did come at the cost of adding an additional permission requirement to it (for Firefox only, not on Chrome), which is that in order to know exactly which tab you are on at any given point (i.e. are you still on the home screen of Netflix) the extension needs permission to read the url of your tabs.
Please update your addon/extension to version 1.0.9 to resolve your reported issues.

Thanks heap! It's working now and much faster. Yeah I notice the additional permission.

Great! If you’re so inclined, it would help a lot if you left a review for
the extension so others know it works well when they find it. Thanks!
On Sat, Jul 14, 2018 at 10:32 AM nguyenkn<EMAIL_ADDRESS>wrote:

Thanks heap! It's working now and much faster. Yeah I notice the
additional permission.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/andrewbrey/netflix-tweaked/issues/6#issuecomment-405034511,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AgjvlD_d33CreU78XIkxJAgdo-Wx-3zOks5uGh0lgaJpZM4VOqd9
.

--
Andrew Brey
Founder, Fluencyy LLC
fluencyy.com

All good. I left a review for you :) From a peer programmer to another. Thanks for the effort.

For sure! 👍


retryacceptincludingnextchangeset broken

retryacceptincludingnextchangeset was recently broken. Now it only accepts nextchangeentry. It should accept change and nextchangeentry together.

Oops, seems like I deleted this one param by accident in a recent commit (02de47d1e68904e00c8862a44c1ed97df1d14441)

btw, Thanks for reporting :+1:

This enhancement helped fixing one of some "more advanced" merges, automatically :smile:  (as you can see, 6 changesets needed to got accepted together in order to solve the merge)
@ohumbel @reinhapa : It is one of the Wildfly-Merges
01:19:32 - Accepting: 26364: Java7EE Upgrade to JBoss 8 (Wildfly) - Changed structure to start for local development
01:19:32 - Accepting: 28466: Wildfly: build - Improved CH.obj.Application.UnitTesting execution
01:19:32 - Accepting: 28466: Wildfly: build - Re-added clean workspace
01:19:32 - Accepting: 28466: Wildfly: build - Added missing classpath entry
01:19:32 - Accepting: 28466: Wildfly: build - Added some more missing libraries
01:19:32 - Accepting: 28466: Wildfly: build - Added missing ecore libraries
01:19:32 - Accepting: 29016: Wildfly: PQ Tests according to JBoss4 stream - Merges
01:19:55 - Accepted change 90/671 into working directory
[rc15-01-patch_Integration_Stream_branchpoint 5ea022f] 26364: Java7EE Upgrade to JBoss 8 (Wildfly) - Changed structure to start for local development
11 files changed, 258 insertions(+), 353 deletions(-)
01:19:56 - Commited change in local git repository
01:19:56 - Skipping 28466: Wildfly: build - Improved CH.obj.Application.UnitTesting execution
01:19:56 - Skipping 28466: Wildfly: build - Re-added clean workspace
01:19:56 - Skipping 28466: Wildfly: build - Added missing classpath entry
01:19:56 - Skipping 28466: Wildfly: build - Added some more missing libraries
01:19:56 - Skipping 28466: Wildfly: build - Added missing ecore libraries
01:19:56 - Skipping 29016: Wildfly: PQ Tests according to JBoss4 stream - Merges

However there are still some conflicts, which cant be solved that way. Just wanted to let you guys know.


Juila Console fails to load in Atom due to LoadError

I have installed Atom, Juno, uber-juno, and all of the corresponding Julia packages. But whenever I try to start the Julia Console from within Atom, I get the error message:
ERROR: LoadError: error compiling anonymous: unsupported or misplaced expression "import" in function anonymous while loading /home/mike/.atom/packages/julia-client/script/boot_repl.jl, in expression starting on line 1 Julia has exited. Press Enter to start a new session.

In the 'boot_repl.jl' file: Line 32 mentions a non-existent '.junorc.jl' file in the home directory; I'm not sure if this is the cause or what exactly. Please let me know if you have any hints.
Thank you.

Are you on old Julia version? Juno only supports Julia 0.6.

I just installed the newest version of Julia from the official site. Everything works fine now.
Before I was using the latest version available on the Debian repository (version 0.4.7).
Thanks!

Awesome, glad you got it working now! :)


Color categories

I'm thinking more about the trends than the flower charts. (The original colors for the dimensions/petals are okay.)
There are two options for the trends:

Since you can only select six regions at a time, we optimize the set and keep it at six colors. This creates a consistency issue; Galicia might be brown one moment, and if you deselect it and select it again, she could be blue or violet.
Create a set of 20 colors with enough color difference and always keep the same color for the region. This has a different issue; it's madness.

We have a gorgeous set of 10 from Catalunya en Dades:
["#3b5fc0", "#ffd754", "#c7c1bf", "#a160af", "#ff9c38", "#5ca34b", "#f794b9", "#61b0ff", "#ed393f", "#a87a54"]

We're opting for options 2.
I've expanded our Catalunya en Dades categories to 20. It's bonkers and not ideal, but it's an ok solution while we consider another visualization device for the trends —part of the future work on the project.
The new set is:
[
"#3b5fc0", "#ffd754", "#c7c1bf", "#a160af", "#ff9c38",
"#5ca34b", "#f794b9", "#61b0ff", "#ed393f", "#594e58",
"#382f46", "#ae24ba", "#4d0a95", "#8cc8b9", "#c80175",
"#8d8f89", "#17c124", "#0175b2", "#a67d20", "#831d2b"
]
It actually tests ok here.


MWPW-156262 use standard tab browsing in collection

remove custom key handling for accessibility in merch cards,
in case cards are added within a collection, add tabindex so focus order follows style order,

note that now only TAB & SHIFT+TAB is available now as it is in other places.
Also note a separate PR will be made to flip order of sidenav & collection not to have to browse through the entire collection to get to the filters
Test URLs:

Before: https://main--milo--adobecom.hlx.live/?martech=off
After: https://MWPW-156262--milo--npeltier.hlx.live/?martech=off

with merch-card-collection in catalog

Before: https://main--cc--adobecom.hlx.live/products/catalog?martech=off
After: https://main--cc--adobecom.hlx.live/products/catalog?martech=off&milolibs=MWPW-156262--milo--npeltier

with merch-card-collection on special offers page

Before: https://main--cc--adobecom.hlx.live/products/special-offers?martech=off
After: https://main--cc--adobecom.hlx.live/products/special-offers?martech=off&milolibs=MWPW-156262--milo--npeltier

@npeltier when we leave the last card, the focus ring is not removed from the card.

after discussion with @yesil, we removed arrow browsing, leaving everything to default browser accessibility management

@npeltier / @yesil  As shown below in tab order arrangement -
Order 12 - focus is not on the product icon, slightly down
Order 14 -  focus/ tabbing here is not on any elements. either it shouldn't be there or should be on a element if exists.

Tracked above issues at https://jira.corp.adobe.com/browse/MWPW-156875 and making this Ready for stage