Pre-compiled gem x86-linux contains 64 bit binary

Hello,
I tried to install and use Ruby grpc on i386 (with Kali Linux) but the pre-compiled gem x86-linux contains 64 bit binary:
gem install grpc
[...]
file /var/lib/gems/2.3.0/gems/grpc-1.2.2-x86-linux/src/ruby/lib/grpc/grpc_c.so
/var/lib/gems/2.3.0/gems/grpc-1.2.2-x86-linux/src/ruby/lib/grpc/grpc_c.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=47308a07a6d4cbc9e3e83f7e9aeccafc9348d3ed, not stripped

That's not the proper file. You should look at the subfolder for your version of ruby, which seems to be 2.3. The presence of that file you're pointing at is an unfortunate side-effect of ruby's weird compilation environment.
$ file src/ruby/lib/grpc/grpc_c.so  # wrong file
src/ruby/lib/grpc/grpc_c.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=47308a07a6d4cbc9e3e83f7e9aeccafc9348d3ed, not stripped
$ file src/ruby/lib/grpc/2.3/grpc_c.so  # proper file
src/ruby/lib/grpc/2.3/grpc_c.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=a1f5b63bd515f766ce897ee0667676cfc650bf1b, not stripped

Thanks @nicolasnoble , it looks like that you are right but this is the first gem that I see with this problem so I don't think that you can blame ruby only, you must be doing something non-conventional that result into this.
And this breaks some automatic Debian packaging system because it is unable to find the required x86-64 libraries on the i386 system where the gem is installed... which is what triggered us to file this bug.
At the very least you could possibly add some work-around rule in the build system that would remove the undesired file after build, no? Thanks for considering.

We literally have no control over the build system, really. This is a side-effect of rake-compiler, which is basically what provides pre-compiled binaries that works cross-platform. That's... how it works. You wouldn't see this otherwise, indeed.
What I am saying is that it's a single external command that builds all of the .so files for all the versions, drops that "default" one here, and then packages everything. We haven't done anything that would do that otherwise, and I have no idea how we could add any level of workaround into a single-command black-box build system.

We are trying to clean up the gRPC issue tracker and it seems like there is no actionable step to take on this issue at this point. Please feel free to re-open if there's a path forward on this issue; thanks!


CPC+ Endpoint 2

Information

QPPCT-502

Changes proposed in this PR:

New endpoint to retrieve the CPC+ XML File by file Id

Checklist

[x] All JUnit tests pass (mvn clean verify).
[x] New unit tests written to cover new functionality.
[x] Added and updated JavaDocs for non-test classes and methods.
[x] No local design debt. Do you feel that something is "ugly" after your changes?
[x] Updated documentation (README.md, etc.) depending if the changes require it.

SonarQube analysis reported 5 issues

 5 major

Watch the comments in this conversation to review them.

SonarQube analysis reported 1 issue

 1 major

Watch the comments in this conversation to review them.

SonarQube analysis reported 1 issue

 1 minor

Watch the comments in this conversation to review them.

SonarQube analysis reported 1 issue

 1 major

Watch the comments in this conversation to review them.

SonarQube analysis reported 7 issues

 3 major
 4 minor

Watch the comments in this conversation to review them.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.


Mising time zone in timestamp field

last_update : 24 May 2022 20:38:16 BST
timestamp : 24 May 2022 15:37:11

Script Error                    embedded script error:
Script Error                    time data '24 May 2022 15:37:11 ' does not match format '%d %B %Y %H:%M:%S %Z'
Script Error                    Exception Traceback (most recent call shown last):
In fact there is a space at the end so even without the %Z it fails to convert to date. I think it will be best to have both dates with time zone. Thanks!

Hmm.  I'm using the exact same format string for both timestamps.  The space at the end is because there's a space before where it's supposed to put the TZ.  But it's not going there.  So I think this is because the timestamp received from the API does not have timezone info in it.

I hate dealing with timezones.

Ok, got that one figured out.  It'll force the TZ to your local system TZ.  So hopefully that's what the timestamp returned by the API is set to.

Fixed in next release.

Thanks! Now it's even better as the timestamp field shows in my local time zone rather than UTC. We are currently on BST which is UTC +1:00.

Turns out the API returns UTC, but not with the TZ actually set in the datetime object.  So I had to force it to UTC, then convert to local time.

Yes I saw the same thing with the prior version of the plugin, this is how I was converting it:
car_Last_Updated_DT = datetime.datetime.strptime(my_car.states["timestamp"], "%d %B %Y %H:%M:%S %Z")
Tell the datetime object that it's in UTC time zone since  datetime objects are 'naive' by default
car_Last_Updated_DT = car_Last_Updated_DT.replace(tzinfo=utc_time_zone)
Many thanks for updates, all looks great! Are you interested in adding my geofencing alerting to the plugin? I can add a new issue and post the code I am using although I need to make some changes to remove all the window/door/lids states and use your new fields.

Open an issue and describe the functionality, but don't post any code yet.


GraphScene range config

I need to draw data with specific range on y axis.
Here is my CONFIG for GraphScene:
"x_min": 0,
"x_max": 150,
"x_axis_width": 20,
"x_axis_label": "$t$",
"y_min": 50,
"y_max": 95,
"y_axis_height": 11,
"y_axis_label": "$HR$",
but here is draw result:

so range is from 0 to 45 and data are draw off the camera.

Can you post code that will generate the scene that is in error? (i.e. a complete class derived from Scene or GraphScene which will create the bug.)

`class PlotFunctions(GraphScene):
CONFIG = {
"x_min": 0,
"x_max": 150,
"x_axis_width": 20,
"x_axis_label": "$t$",
"y_min": 50,
"y_max": 95,
"y_axis_height": 11,
"y_axis_label": "$HR$",
"graph_origin": 4.5 * DOWN + 9 * LEFT,
"function_color": RED,
"axes_color": GREEN,
"x_labeled_nums": range(0, 150, 5),
"y_labeled_nums": range(50, 95, 5),
}

def construct(self):
    self.setup_axes(animate=True)

    values = np.asarray([55,70,60,70])
    for i in np.arange(0, len(values), 1):
        point = Dot(radius=0.04)
        if (values[i] > 0):
            coords = self.coords_to_point(i + 1, values[i])
            point.move_to([coords[0], coords[1], 0])
            self.play(ShowCreation(point))
            #self.add(point)`

There was first problem "y_labeled_nums": range(50, 95, 5), where first value was 0 instead of 50 but still, range not start on 50 on y axis. So is it some option to start by y_min and not from 0?

The code you copied has a number of issues, including the formatting. In the future, try copying the block of code that s needed (including spacing and tabs), highlighting the block in the comment window, and enclosing it in code tags using the <> icon.
I cleaned it up a bit and fixed some issues and this was the result.

Here is the code:
from manimlib.imports import *

class PlotFunctions(GraphScene):
    CONFIG = { "x_min": 0, "x_max": 150
              # , "x_axis_width": 20
              , "x_axis_label": "$t$"
              , "y_min": 50, "y_max": 100
              # , "y_axis_height": 11
              , "y_axis_label": "$HR$"
              # , "graph_origin": 4.5 * DOWN + 9 * LEFT
              , "function_color": RED, "axes_color": GREEN
              , "x_labeled_nums": range(0, 150, 10)
              , "y_labeled_nums": range(50, 100, 10)
              , "x_tick_frequency": 5
              , "y_tick_frequency": 5}

    def construct(self):
        self.setup_axes(animate=True)
        values = np.asarray([55,70,60,70])
        for i in np.arange(0, len(values), 1):
            point = Dot(radius=0.04)
            if (values[i] > 0):
                coords = self.coords_to_point(i + 1, values[i])
                point.move_to([coords[0], coords[1], 0])
                self.play(ShowCreation(point))
                #self.add(point)

https://www.youtube.com/channel/UCgfJSRv4F86RDx8mDR-rK4Q/
https://level314.com

ps: I just realized that my code may have worked better than yours because I have a customized version of manimlib files where I have modified some of the classes. If my code above didn't work for you, let me know and I will send the change you need to make when I get back home.

This is the result so you are right that there is some need of code modification out of main python file

Sorry I'm out of the house a bit this weekend. I'll give you just the section you need.
Open the file [manimdir]/manimlib/scene/graph_scene.py
In the function class GraphScene, method setup_axes you need to make the following change (the commented code is the original code if you want to search for it, the other code is my modification):
        # Level314 modification 22/03/2020
        # y_axis.shift(self.graph_origin - y_axis.number_to_point(0))
        # y_axis.rotate(np.pi / 2, about_point=y_axis.number_to_point(0))
        y_axis.shift(self.graph_origin - y_axis.number_to_point(self.y_bottom_tick))
        y_axis.rotate(np.pi / 2, about_point=y_axis.number_to_point(self.y_bottom_tick))
        # EOM

Let me know if you have questions. I'll do my best to answer from the road.

https://www.youtube.com/channel/UCgfJSRv4F86RDx8mDR-rK4Q/
https://level314.com

Thanks for everything, now it works so closing issue


amCalendar now support some more options

I would like to be able to do
{{ date | amCalendar:{sameDay: '', nextDay: '', ... } }}
From momentjs docs: http://momentjs.com/docs/
From 2.10.5 moment supports specifying calendar output formats per invocation:
moment().calendar(null, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: '[Last] dddd',
sameElse: 'DD/MM/YYYY'
});
sameElse is used as the format when the moment is more than a week away from the referenceTime

Seems like #64 should address that


Camera

When shaders are compatible with retro 64 in mods that have reflections make Lakitu pop up

This is not the correct place to report issues or suggestions.
Please report issues/suggestions here: https://github.com/Retro64Mod/Retro64Mod.github.io/issues


L.eegeo.polygon not support Polygon with inner ring ?

use L.eeGeo.polygon ths div is black :(
http://jsfiddle.net/nu0vuwu6/
use L.polygon is ok.
http://jsfiddle.net/eb6qo3pk/
Polygon with inner ring

http://bl.ocks.org/d/35fde811cbe780c76a55d34d0f6200e2
http://firefly.ibk.se/~racer/d3-geojson.json

Thank you for reporting this issue. We have tracked the issue internally and will update you when it is resolved.

This issue has been fixed. The JSFiddle you provided should now function correctly.


placeholder is added

#140 index.js reads the configuration and replace with the url

please review now

@mohsini172 Thanks for your contribution!

You're welcome. Glad to work :)


feature request

Can you add zip code output to the full geoip data?

Thanks for the suggestion @jason-stratyfy ! Lmk how it works for you


Fix server nodes API JSON id vs node_id, docs

The documented node JSON was incorrect:

id was documented as being the :grid/:name path, whereas it is actually the Docker ID
node_id was documented, but did not exist
initial_member was documented as initial_node
*_at timestamp fields were empty, and missing connected_at (which was formatted incorrectly before #2529)

API changes:

Add a new node_id field as documented, and document the inconsistent id field as deprecated
Change the id field to use the intended node.to_path syntax, as documented

CLI fixes:

Fix kontena node show to use the node['node_id'] instead of node['id']
Fix kontena node labels remove to not use /v1/nodes/#{current_grid}/#{node['id']} - this will fail with a HTTP 404 against the new server

Alternatively to fixing the docs, we could also consider changing the API to match the docs... i.e. add a new node_id field with the current value, and change the existing id field to use HostNode.to_path...
I suspect most API users (including the CLI) are not going to be using the node['id'] for the API request URLs, they mostly use /v1/nodes/#{current_grid}/#{node['name']}, which will continue to work.
Some of the plugins look like they use nods/#{node['id']} and include the Kontena-Grid-Token header, but those would still continue to work?

Some of the plugins look like they use nods/#{node['id']} and include the Kontena-Grid-Token header, but those would still continue to work?

I don't think so. The deprecated /nodes/... api uses grid.host_nodes.find_by(node_id: id) to find the node (to update labels) which would fail if the node['id'] would be HostNode.to_path

I do think it would be better in long run to actually fix the APIs but before that we need to fix all the plugins not to use the deprecated /nodes/ API

Some of the plugins look like they use nods/#{node['id']} and include the Kontena-Grid-Token header, but those would still continue to work?
I don't think so. The deprecated /nodes/... api uses grid.host_nodes.find_by(node_id: id) to find the node (to update labels) which would fail if the node['id'] would be HostNode.to_path

If we changed the id field to use to_path, then a client using "/v1/nodes/#{node['id']}" interpolation would end up using an URL like "/v1/nodes/gridname/nodename" - that would transparently use the current API, not the deprecated one.

If we changed the id field to use to_path, then a client using "/v1/nodes/#{node['id']}" interpolation would end up using an URL like "/v1/nodes/gridname/nodename" - that would transparently use the current API, not the deprecated one.

Yes, but they use different authentication which I fear some of the plugins will crash on.

Yes, but they use different authentication which I fear some of the plugins will crash on.

At least the DO plugin is just using the standard CLI Kontena::Client, so I assume those requests also have the oauth token.
So while I think changing the node API id field might actually work, not sure it's a good idea either... better to fix the CLI and plugins first. But that would also be easier if there was a "fixed" id field...

Interestingly, the CLI kontena node label remove command uses the node['id']:
      node = client.get("nodes/#{current_grid}/#{node_id}")
      data = ...
      client.put("nodes/#{current_grid}/#{node['id']}", data)

DEBUG [Request]: PUT http://localhost:9292/v1/nodes/development/XI4K:NPOL:EQJ4:S4V7:EN3B:DHC5:KZJD:F3U2:PCAN:46EV:IO4A:63S5 | Headers: {Accept: application/json, Content-Type: application/json, Authorization: Bearer}  | Body:
{"labels":["test"]}
DEBUG [Response]: Headers: {Content-Type: application/json, X-Kontena-Version: 1.4.0.dev}  | Status: 200 | Body:
{"id":"XI4K:NPOL:EQJ4:S4V7:EN3B:DHC5:KZJD:F3U2:PCAN:46EV:IO4A:63S5",...}

This example would break if we changed the API id field.

Made some changes to the API to add the node_id field, and deprecate the id field without actually changing it.

We should just fix the contents of id field and not introduce api_id. This might cause some unfortunate side-effects (mainly to plugins) but that's what happens when clients rely on buggy behaviour.

Done.
Some testing with a 1.3.2.rc2 CLI against this 1.4.0.dev server, most commands seem to work, apart from the two fixes in the CLI:
kontena node show
core-01:
  id: development/core-01
  agent version: 1.4.0.dev

The id here used to be the Docker ID, and with a 1.4.0.dev CLI it's still the node ID, but with an older CLI against the 1.4.0.dev server, it's not.
kontena node label remove core-02 test=2
 [error] 404 : Not found (/v1/nodes/development/development/core-02)

This is the only broken CLI command that I could find with a search for node['id'], fixed in the 1.4.0.dev CLI, but this will be a regression with an older CLI against the newer 1.4 server.

The e2e specs pass (apart from know issues with CLI plugin support, and #2537.
Looking through all the CLI nodes/... API calls, I don't expect to find any other CLI issues that need fixing for this.
Need to test some of the plugins next.

There's a slight problem for new nodes that connect, which are missing any name (e.g. they have the wrong version). The resulting id is wrong:
{"id":"development/","node_id":"4VU2:7NNE:2S67:L5IS:SOK7:SCHM:BGYS:7VFU:D66L:27R4:H6AA:3KBA","connected":false,"created_at":"2017-06-30T09:47:11.135Z","updated_at":"2017-06-30T09:47:11.135Z","connected_at":null,"last_seen_at":null,"name":null,...}

The HostNode.to_path should probably use name || node_id.

The plugins are very hard to test without a kontena/agent:1.4.0.dev release, because the plugin-provisioned agent will not be able to connect to the 1.4.0.dev server.
Hacking it manually by connecting an identically named vagrant dev node, and the kontena digitalocean node create plugin seems to survive this change:
$ kontena digitalocean node create core-03
> Choose a datacenter region:  Amsterdam 2
> Select CoreOS channel Stable
> Choose droplet size:  1GB/1CPU/30GB ($10/mo)
> How many droplets?:  1
 [done] Creating DigitalOcean droplet core-03
 [done] Waiting for node core-03 join to grid development
Warning: Server version is 1.4.0.dev. You are using CLI version 1.3.2.rc2.

I, [2017-06-30T09:57:04.678017 #12]  INFO -- WebsocketBackend: node UXTT:TPWP:6OQM:3UKS:EPB4:MOQD:DYYT:N42X:VSR5:IIM3:VDCP:22IC agent version 1.4.0.dev connected at 2017-06-30 09:57:04 UTC, 0.04s ago
I, [2017-06-30T09:57:04.696783 #12]  INFO -- Agent::NodePlugger: Connected node development/ at 2017-06-30 09:57:04 UTC

<IP_ADDRESS> - - [30/Jun/2017:09:57:10 +0000] "GET /v1/grids/development/nodes HTTP/1.1" 200 4496 0.2793
<IP_ADDRESS> - - [30/Jun/2017:09:57:11 +0000] "PUT /v1/nodes/development/core-03 HTTP/1.1" 200 1268 0.1291

The DO plugin labels were succesfully set on the new node:
NAME               VERSION     STATUS    INITIAL   LABELS
⊛ core-03          1.4.0.dev   online    -         region=ams2,az=ams2,provider=digitalocean

Fixed the to_path for initializing nodes: {"id":"development/UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3","node_id":"UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3","connected":false,"created_at":"2017-06-30T09:57:26.657Z","updated_at":"2017-06-30T09:57:26.657Z","connected_at":null,"last_seen_at":null,"name":null,...}
DEBUG=api kontena node ls
DEBUG [Request]: GET http://localhost:9292/v1/grids/development/nodes | Headers: {Accept: application/json, Authorization: Bearer}
DEBUG [Response]: Headers: {Content-Type: application/json, X-Kontena-Version: 1.4.0.dev}  | Status: 200 | Body:
{"nodes":[{"id":"development/UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3","node_id":"UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3","connected":false,"created_at":"2017-06-30T09:57:26.657Z","updated_at":"2017-06-30T09:57:26.657Z","connected_at":null,"last_seen_at":null,"name":null,...
NAME               VERSION     STATUS    INITIAL   LABELS
⊛ core-01          1.4.0.dev   online    1 / 1     test
⊝ core-02          1.4.0.dev   offline   -         test=label,test=2
⊛ core-03          1.4.0.dev   online    -         region=ams2,az=ams2,provider=digitalocean
⊝ (initializing)               offline   -

DEBUG=api kontena node rm --force UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3
DEBUG [Request]: GET http://localhost:9292/v1/nodes/development/UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3 | Headers: {Accept: application/json, Authorization: Bearer}
DEBUG [Response]: Headers: {Content-Type: application/json, X-Kontena-Version: 1.4.0.dev}  | Status: 200 | Body:
{"id":"development/UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3","node_id":"UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3","connected":false,"created_at":"2017-06-30T09:57:26.657Z","updated_at":"2017-06-30T09:57:26.657Z","connected_at":null,"last_seen_at":null,"name":null,"os":null,"engine_root_dir":null,"driver":null,"network_drivers":[],"volume_drivers":[],"kernel_version":null,"labels":[],"mem_total":null,"mem_limit":null,"cpus":null,"public_ip":null,"private_ip":null,"overlay_ip":"<IP_ADDRESS>","agent_version":null,"docker_version":null,"peer_ips":["<IP_ADDRESS>","<IP_ADDRESS>","<IP_ADDRESS>"],"node_number":4,"initial_member":false,"grid":{"id":"development","name":"development","initial_size":1,"token":"tBsoco4sBClMtIOD/bHeIqS1KYM0kZMG7B960jNWWQXMOxqhOf8W1QgiNJlW9u6B/qS+rfS2ZLpC/ZJsyPNj0A==","stats":{"statsd":null},"trusted_subnets":[],"subnet":"<IP_ADDRESS>/16","supernet":"<IP_ADDRESS>/12"}}
    *   Removing UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3 node from development grid  .. \DEBUG [Request]: DELETE http://localhost:9292/v1/nodes/development/UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3 | Headers: {Accept: application/json, Authorization: Bearer}
    *   Removing UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3 node from development grid  .. |DEBUG [Response]: Headers: {Content-Type: application/json, X-Kontena-Version: 1.4.0.dev}  | Status: 200 | Body:
{}
 [done] Removing UXYC:NLTG:UBBL:WUO4:COY7:CLHS:XELH:5JGA:C5Q6:T6DV:OKLX:UFG3 node from development grid

The fixed id works, even for non-initialized nodes.

Have a bunch of new CLI specs: :cake:

@jakolehm PTAL and either :white_check_mark: or :x:, AFAIK this is otherwise ready for merge?


Registration form

Hey There,
I am adding a new component of Registration Form in your repo.

Great work !


docs: fix typo

Hi.
As It seems there's no docs repo, I leave this here.
https://docs.livekit.io/agents/openai/client-apps/

It should be style, not styles.
By the way, why isn't there a docs repo where I can publicly contribute directly?

thanks for the report, this is fixed and will be rolled out soon!

@lukasIO Thank you. May I ask the reason the docs repo isn't public?


Compute quantitative metrics for dcm-zurich-lesions

This PR updates the inference-related scripts to compute the quantitative metrics for the dcm-zurich-lesions dataset. Until now, only qualitative results were reported in the paper, but, with this update, even quantitative metrics (based on anima) can also be computed.

Not merging this branch as the changes seem to be found in the main branch already


docarray support

Hi Takeshi, I found this repo very interesting. I'm currently working on sqlite backend for https://github.com/jina-ai/docarray  Would be nice to keep in touch and get your review on it.
I'm also referring https://github.com/RaRe-Technologies/sqlitedict

Thank you for your reaching out. Maybe one of my motivation for this personal project, training deep neural network with huge data without using huge memory, would be similar to your goal.
I'll keep an eye on your project and thankfully close this issue.


[Task]: Missing Information about Storage Write API Support in Google BigQuery I/O connector for Python SDK

What needs to happen?
Currently, the documentation of BigQuery IO connector for the Python SDK states that it does not support the Storage Write API.
https://beam.apache.org/documentation/io/built-in/google-bigquery/#writing-to-bigquery

However, with the recent release of Beam 2.47, a Pull Request (#25685) was merged to add support for the Storage Write API in the Python SDK. It looks this update has not been reflected in the current documentation.🤔 Can I update the document for the API?
https://github.com/apache/beam/blob/v2.47.0/sdks/python/apache_beam/io/gcp/bigquery.py#L2407

Have you shared your intent by creating an issue and commenting that you plan to take it on?

Yes, I'd like to create a pull request for this issue. I'll create a PR if I can do that, please let me know.
Thank you in advance.👋
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components

[X] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[X] Component: IO connector
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[X] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

Thanks, that would be very helpful users! Feel free to open a PR for that


Upgrade to Katex 0.6.0 environment

Katex 0.6.0 introduces support for the latex aligned environment, amongst others:
https://github.com/Khan/KaTeX/releases/tag/v0.6.0
New Features:
Introduce the aligned environment.
Add \gt and \lt.
Bundle CSS and fonts in npm package.
Fix sub- and super-scripts not being centered inside of math display.
Add \underline support.

thanks for the tip


Console Error does not go away

After correcting and executing the code, the console error persists.

Nice! Good catch.
I agree the console should be cleared out on each run. VizHub V2 did this. Will investigate.


Fix typo in README.md

Replaced a German "und" with the English "and".

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot


Define tag type using code

Hi;
I've tried all the syntax methods I can think of but can't seem to crack this.
I would like to be able to define the tagName via code, I know this works:
#[a()&attributes({href:'#'})]

But how can I define the tag programatically:
  -
    var mytag = {
      tag: 'a',
      attr: { href:'#', alt:'xxx'}
    }
#[=mytag.tag()&attributes(=mytag.attr)]

Obviously this does not work, but can this be done ?

How about this?
-
  var mytag = {
    tag: 'a',
    attr: { href:'#', alt:'xxx'}
  }
#{mytag.tag}()&attributes(mytag.attr)

What @netlovers suggests looks like the solution here.


nodejieba 安装失败

mac 安装 nodejieba 失败，不知道是版本问题还是其他什么问题？
server:project user$ npm install nodejieba --save

><EMAIL_ADDRESS>install /Users/project/node_modules/nodejieba
> node-gyp rebuild

gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
2017-08-23 10:58:08.883 xcodebuild[90817:25417443] [MT] PluginLoading: Required plug-in compatibility UUID DFFB3951-EB0A-4C09-9DAC-5F2D28CC839C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/VVDocumenter-Xcode.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2017-08-23 10:58:08.883 xcodebuild[90817:25417443] [MT] PluginLoading: Required plug-in compatibility UUID DFFB3951-EB0A-4C09-9DAC-5F2D28CC839C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OMQuickHelp.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2017-08-23 10:58:08.883 xcodebuild[90817:25417443] [MT] PluginLoading: Required plug-in compatibility UUID DFFB3951-EB0A-4C09-9DAC-5F2D28CC839C for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin' not present in DVTPlugInCompatibilityUUIDs
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
  CXX(target) Release/obj.target/nodejieba/lib/index.o
/Users/project/node_modules/.bin/touch: line 1: XSym: command not found
/Users/project/node_modules/.bin/touch: line 2: 0021: command not found
/Users/project/node_modules/.bin/touch: line 3: 2134d080adbde5d6d2d2ef49081309c9: command not found
/Users/project/node_modules/.bin/touch: line 4: ../touch/bin/touch.js: No such file or directory
make: *** [Release/obj.target/nodejieba/lib/index.o] Error 127
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:285:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/project/node_modules/nodejieba
gyp ERR! node -v v6.10.2
gyp ERR! node-gyp -v v3.6.0
gyp ERR! not ok
npm WARN enoent ENOENT: no such file or directory, open '/Users/project /node_modules/duplexify/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/project/node_modules/fsevents/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/project/node_modules/mquery/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/project/node_modules/readdirp/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/project/node_modules/fsevents/node_modules/dashdash/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/project/node_modules/fsevents/node_modules/node-pre-gyp/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/project/node_modules/fsevents/node_modules/rc/package.json'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/user/.npm/_logs/2017-08-23T02_58_12_963Z-debug.log

是否可以提供预编译的版本？npm 业界一般都是使用 https://github.com/mapbox/node-pre-gyp 来实现预编译，这样使用者本地就不需要安装编译环境依赖了。

我也遇到第一种情况

><EMAIL_ADDRESS>install /Users/Diluka/parsec/game-0030/node_modules/nodejieba
> node-gyp rebuild

  CXX(target) Release/obj.target/nodejieba/lib/index.o
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:202:
In file included from ../../nan/nan_converters.h:67:
../../nan/nan_converters_43_inl.h:22:1: warning: 'ToBoolean' is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
X(Boolean)
^
../../nan/nan_converters_43_inl.h:18:12: note: expanded from macro 'X'
      val->To ## TYPE(isolate->GetCurrentContext())                            \
           ^
<scratch space>:91:1: note: expanded from here
ToBoolean
^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2567:3: note: 'ToBoolean' has been explicitly marked deprecated here
  V8_DEPRECATED("ToBoolean can never throw. Use Local version.",
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:202:
In file included from ../../nan/nan_converters.h:67:
../../nan/nan_converters_43_inl.h:40:1: warning: 'BooleanValue' is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
X(bool, Boolean)
^
../../nan/nan_converters_43_inl.h:37:15: note: expanded from macro 'X'
  return val->NAME ## Value(isolate->GetCurrentContext());                     \
              ^
<scratch space>:98:1: note: expanded from here
BooleanValue
^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2605:3: note: 'BooleanValue' has been explicitly marked deprecated here
  V8_DEPRECATED("BooleanValue can never throw. Use Isolate version.",
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:203:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:103:42: error: no viable conversion from 'v8::Isolate *' to 'Local<v8::Context>'
  return scope.Escape(v8::Function::New( isolate
                                         ^~~~~~~
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:183:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'v8::Isolate *' to 'const v8::Local<v8::Context> &' for
      1st argument
class Local {
      ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:183:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'v8::Isolate *' to 'v8::Local<v8::Context> &&' for 1st
      argument
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:187:13: note: candidate template ignored: could not match 'Local<type-parameter-0-0>' against 'v8::Isolate *'
  V8_INLINE Local(Local<S> that)
            ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:4171:22: note: passing argument to parameter 'context' here
      Local<Context> context, FunctionCallback callback,
                     ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:203:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:337:37: error: too few arguments to function call, expected 2, have 1
  return v8::StringObject::New(value).As<v8::StringObject>();
         ~~~~~~~~~~~~~~~~~~~~~      ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:5426:3: note: 'New' declared here
  static Local<Value> New(Isolate* isolate, Local<String> value);
  ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:203:
In file included from ../../nan/nan_new.h:189:
../../nan/nan_implementation_12_inl.h:337:58: error: expected '(' for function-style cast or type construction
  return v8::StringObject::New(value).As<v8::StringObject>();
                                         ~~~~~~~~~~~~~~~~^
../../nan/nan_implementation_12_inl.h:337:60: error: expected expression
  return v8::StringObject::New(value).As<v8::StringObject>();
                                                           ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1034:44: error: no matching member function for call to 'ToString'
      v8::Local<v8::String> string = from->ToString();
                                     ~~~~~~^~~~~~~~
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2572:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                           ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2588:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<String> ToString(Isolate* isolate) const);
                              ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1044:37: error: cannot initialize a parameter of type 'v8::Isolate *' with an lvalue of type 'char *'
        length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
                                    ^~~~
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2782:26: note: passing argument to parameter 'isolate' here
  int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
                         ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1818:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
                           ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1824:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    New(persistentHandle)->Set(key, value);
                           ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1830:28: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    New(persistentHandle)->Set(index, value);
                           ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3411:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1836:32: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
        New(persistentHandle)->Get(New(key).ToLocalChecked()));
                               ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3457:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1842:48: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
    return scope.Escape(New(persistentHandle)->Get(key));
                                               ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3457:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
../../nan/nan.h:1847:48: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
    return scope.Escape(New(persistentHandle)->Get(index));
                                               ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3461:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version", Local<Value> Get(uint32_t index));
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:2657:
../../nan/nan_object_wrap.h:24:25: error: no member named 'IsNearDeath' in 'Nan::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    assert(persistent().IsNearDeath());
           ~~~~~~~~~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:2657:
../../nan/nan_object_wrap.h:67:18: warning: 'MarkIndependent' is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an
      object alive. [-Wdeprecated-declarations]
    persistent().MarkIndependent();
                 ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:563:3: note: 'MarkIndependent' has been explicitly marked deprecated here
  V8_DEPRECATED(
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
In file included from ../lib/utils.h:6:
In file included from ../../nan/nan.h:2657:
../../nan/nan_object_wrap.h:124:26: error: no member named 'IsNearDeath' in 'Nan::Persistent<v8::Object, v8::NonCopyablePersistentTraits<v8::Object> >'
    assert(wrap->handle_.IsNearDeath());
           ~~~~~~~~~~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
../lib/utils.h:19:14: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
      array->Set(i, Nan::New<v8::String>(ov[i].c_str()).ToLocalChecked());
             ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3411:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/Diluka/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../lib/index.cpp:1:
In file included from ../lib/nodejieba.h:4:
../lib/utils.h:26:5: error: use of undeclared identifier 'Handle'
    Handle<v8::Object> obj = Nan::New<v8::Object>();
    ^
../lib/utils.h:26:22: error: expected '(' for function-style cast or type construction
    Handle<v8::Object> obj = Nan::New<v8::Object>();
           ~~~~~~~~~~^
../lib/utils.h:26:24: error: use of undeclared identifier 'obj'
    Handle<v8::Object> obj = Nan::New<v8::Object>();
                       ^
../lib/utils.h:31:5: error: use of undeclared identifier 'obj'
    obj->Set(k, v);
    ^
../lib/utils.h:34:5: error: use of undeclared identifier 'obj'
    obj->Set(k, v);
    ^
../lib/utils.h:35:19: error: use of undeclared identifier 'obj'
    array->Set(i, obj);
                  ^
../lib/utils.h:42:5: error: use of undeclared identifier 'Handle'
    Handle<v8::Object> obj = Nan::New<v8::Object>();
    ^
../lib/utils.h:42:22: error: expected '(' for function-style cast or type construction
    Handle<v8::Object> obj = Nan::New<v8::Object>();
           ~~~~~~~~~~^
../lib/utils.h:42:24: error: use of undeclared identifier 'obj'
    Handle<v8::Object> obj = Nan::New<v8::Object>();
                       ^
../lib/utils.h:47:5: error: use of undeclared identifier 'obj'
    obj->Set(k, v);
    ^
../lib/utils.h:50:5: error: use of undeclared identifier 'obj'
    obj->Set(k, v);
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
10 warnings and 20 errors generated.
make: *** [Release/obj.target/nodejieba/lib/index.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.0.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/Diluka/parsec/game-0030/node_modules/nodejieba
gyp ERR! node -v v12.13.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/nodejieba):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

use 2.3.3 resolved


refactor: ArrayIndexOutOfBoundsException - remove obsolete cellItemRenderer

This PR resolves PHIRE-229
Description
Seems like this crash was coming from the zIndex (more info on this rn issue).
Got rid of the cellItemRenderer that we had to avoid overlapping the sticky section with the status bar that was obsolete. Avoiding the status bar is being handled by a safeareaview so no need to do zIndex hacks to bypass that.
Sentry issue stream
⚠ Wasn't able to successfully reproduce the error though
Suggested plan:
Release the fix and mark it as resolved in sentry and wait to see if it surfaces again on the next release.
iOS demo:
https://github.com/artsy/eigen/assets/21178754/53fe7549-5589-43fa-95fc-34bf16d93e13
Android demo:
https://github.com/artsy/eigen/assets/21178754/be471ee1-7f2e-4cce-875c-575fd39099fd

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

fix ArrayIndexOutOfBoundsException crash - gkartalis

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (fix ArrayIndexOutOfBoundsException crash - gkartalis)

  Generated by :no_entry_sign: dangerJS against bc9c08c5fc87444d38e759c8972b789c372f76d0

👏


fix(cta): update css

What I did

Testing Instructions

Notes to Reviewers

Closed  because this was not a real PR. I was using it to show Wes Carr how PRs are made.


test: add regression test for issue #773

Adds a test which currently fails, demonstrating issue #773

Let's fix this while you're adding this test.
I think the easiest thing would be to mimic what node does here:
diff --git a/src/filesystem/implementation.js b/src/filesystem/implementation.js
index 3027688..67bc8c0 100644
--- a/src/filesystem/implementation.js
+++ b/src/filesystem/implementation.js
@@ -1873,8 +1873,8 @@ function writeFile(context, path, data, options, callback) {
   if(typeof data === 'number') {
     data = '' + data;
   }
-  if(typeof data === 'string' && options.encoding === 'utf8') {
-    data = Buffer.from(data);
+  if(typeof data === 'string') {
+    data = Buffer.from(data, options.encoding || 'utf8');
   }

   open_file(context, path, flags, function(err, fileNode) {

Node does a bit more work to assert the encoding, but I don't know if we care beyond making sure we set the default encoding to 'utf8' if it's missing.

I've implemented the equivalent of what node is doing, should be good to review now =)

Closes #773


Remove unused frontend JS and CSS assets

@chrishanes surprisingly little. I would squash these 2 commits together but otherwise LGTM.


fix: package.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:

https://snyk.io/vuln/SNYK-JS-ELECTRON-2977510
https://snyk.io/vuln/SNYK-JS-ELECTRON-2977512
https://snyk.io/vuln/SNYK-JS-ELECTRON-2978483
https://snyk.io/vuln/SNYK-JS-ELECTRON-2978519
https://snyk.io/vuln/SNYK-JS-ELECTRON-2992453
https://snyk.io/vuln/SNYK-JS-ELECTRON-2994414
https://snyk.io/vuln/SNYK-JS-ELECTRON-3014407
https://snyk.io/vuln/SNYK-JS-ELECTRON-3014409
https://snyk.io/vuln/SNYK-JS-ELECTRON-3014411
https://snyk.io/vuln/SNYK-JS-ELECTRON-3018192
https://snyk.io/vuln/SNYK-JS-ELECTRON-3028028
https://snyk.io/vuln/SNYK-JS-ELECTRON-3033159
https://snyk.io/vuln/SNYK-JS-ELECTRON-3033161
https://snyk.io/vuln/SNYK-JS-ELECTRON-3033934
https://snyk.io/vuln/SNYK-JS-ELECTRON-3040396
https://snyk.io/vuln/SNYK-JS-GOT-2932019

Thanks for creating a PR @MarcelRaschke!
looks like the tests are broken, because updating the packages like so created conflicts in the lock file. Can you please fix those issues before we can review this? In the meantime I just converted this PR to a draft, feel free to mark it for review once everything passes.


Hot reload

Hi!
Is it possible to turn on "hot reload" for frontend? Where should I start research to do this?
Thanks for considering my request!

You should be able to imitate hot reloading by calling adminJs.watch() after creating an instance of AdminJS, where adminJs is the created instance. This is slower than e. g. webpack's hot reload because it builds all components into one components.bundle.js file so the more custom components you have, the slower it'll be.


Collect nodes information in e2e tests

Description
So that we can investigate what happened in cases like this https://redhat-internal.slack.com/archives/C04Q0KQMEUV/p1683571965665029?thread_ts=1683571939.926039&cid=C04Q0KQMEUV
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
TODO(replace-me)
Use this space to explain how you tested your PR, or, if you didn't test it, why
you did not do so. Valid reasons include, for example, "CI is sufficient",
"No testable changes". Feel free to attach JSON snippets, curl commands,
screenshots.
In addition to reviewing your code, reviewers must also review your testing
instructions and make sure they are sufficient.

/retest


feat(CustomPersistance): Added custom persistance

This is an indirect way of adding localStorage support (https://github.com/Belphemur/node-json-db/issues/22) and more...
It's fully backward compatible and enables the user to:

Disable the default file persistance behavior by passing null as a filename in the constructor
Give a custom saving method by passing a saveCallback in the constructor, which can be used with saveOnPush and save()

Although there won't be any file to load data from, you can still use resetData(data) to initialize data.
And you can use getData() or getData("/") to get the full data.

Coverage increased (+0.2%) to 95.035% when pulling 77a32ab0f605f63a76d50974ecb8fbc989a12fb4 on Drarig29:persistance into 8ebd600407a8475b247723d66f476b644f84e524 on Belphemur:develop.

@Belphemur if you approve this change, could you publish a new version with it?
Because I actually need it in one of my projects 😊

Actually, I did this to be able to use node-json-db also in the browser, but:

It would be weird to use package named node-... inside a browser.
I thought using webpack would remove all imports about node's fs and that it would work seemlessly but it's not the case...

And without this, I don't know if this PR makes much sense anymore.

Yes this PR could have been useful for encrypting the json file!

Yes this PR could have been useful for encrypting the json file!


Added auto redirect option to disable auto redirect. Solves #28.

Type of issue

[ ] Bug
[x] New feature
[x] Enhancement

Description
I like to be able to set whether the redirect of my end-point should be executed by the reverse proxy. It currently handles the redirect inside the proxy.
Possible solution
Let's add a AutoRedirect setting.

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

@KeesCBakker have you tested the redirection with POST/PUT/DELETE methods?  If I remember correctly, redirecting those requests requires some special consideration, including security.
In any case, I think a HTTP proxy should be as transparent as possible, leaving to clients and servers to figure out how they want to work together. A client might consider a 301/302 an error, or might want to know that the request was sent to a deprecated endpoint which is now redirecting, etc.
Happy to discuss this, however I'll close as "won't fix" for the time being.


BadRequestException with Conflicting Paths

I'm getting the following error when I'm trying to push to AWS. I think it is conflicting against the root path "/"
Creating resource '{crossdomain}' on vsm9rb12bc
2015-10-28 11:28:02,414 ERROR - Error importing API definition
com.amazonaws.services.apigateway.model.BadRequestException: Resource with id 'ghyqqo' has a       conflicting path (Service: null; Status Code: 400; Error Code: null; Request ID: 7a2e58aa-7d88-11e5-    b028-fb290b0e528f)
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1219)
    at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:803)
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:505)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:317)
    at com.amazonaws.hal.client.HalClient.invoke(HalClient.java:235)
    at com.amazonaws.hal.client.HalClient.postResource(HalClient.java:98)

Here is the json. This is needed for Unity3D, so I cannot nest the path.
    "/{crossdomain}": {
        "get": {
            "summary": "For WebPlayer, get crossdomain xml",
            "description": "called by the webpalyer",
            "parameters": [
                {
                    "name": "crossdomain",
                    "in": "path",
                    "description": "will always be crossdomain xml",
                    "required": true,
                    "type": "string"
                }
            ],
            "responses": {
                "200": {
                    "description": "everything is ok"
                }
            },
            "x-amazon-apigateway-auth": {
                "type": "none"
            },
            "x-amazon-apigateway-integration": {
                "type": "http",
                "uri": "https://shadowhealth-devmodules.s3.amazonaws.com/crossdomain.xml",
                "httpMethod": "GET",
                "responses": {
                    "2\\d{2}": {
                        "statusCode": "200"
                    }
                }
            }
        }
    }

I've just tested with "/" and "/{x}" and there were no validation errors.
If you have "/", "/x", and "/{y}" this will be in conflict and is not supported by the service at this time. Please reopen if you're still having issues

Do you have any suggestion on how to get around the reason we need to do this?
Due to their security the Unity3D WebPlayer makes a crossdomain.xml get call to the root of the url before allowing the main call to execute.  for example if a call is made to a.com/b/c/d unity will call a.com/crossdomain.xml.  Anyway possible for API gateway to work with a.com/b/c/d and a.com/crossdomain.xml?

We are aware of this general issue and hope to have a proper solution in the near future.
I don't think theres a good workaround for now besides defining every path part as a parameter (i.e. not static paths at all), and implementing logic in mapping template or in lambda functions depending on the value of the path parameter. i.e. if param == "crossdomain.xml" respond with crossdomain.xml, else...

Interesting that this specific case can be fixed easily by allowing all valid url encoded characters in the resource path.
I sure can fire up an API in ExpressJS in about 2 seconds and route a /crossdomain.xml endpoint to serve whatever I need. And every other web framework worth its salt... AWS :(

Do you know if this was something that was just enforced in the service? I swear this had been working for me up until a day or two ago.
My paths that are not complaining are:
/videos/search
/videos/{id}

yea it appears to be something that changed recently because we have apis that exist that have this in use already that still work but can't have any new resources added to it.

+1 for me on encountering this recently. Using a swagger file I created a gateway with a few weeks ago, it now fails with this validation reason.

There was a service change last week to resolve a bug - previously the behavior when calling an API with multiple "conflicting" resource paths was not well-defined or documented.
We are aware that this is affecting users and are working on an improved solution, expected next week. With this fix, resource paths such as defined in this issue will be allowed. At runtime, static paths will take precedence over parameterized paths.
Thanks for your patience.

That's excellent news! Thanks for the update @rpgreen .

Hello @rpgreen can you confirm if this change will be rolled out this week?
I am hoping to provide a status update on the api we're building by the end of the week, and this is blocking a few things.
Would like to know if I should implement some workarounds, or wait for this to be completed.
Thanks,
Patrick

Rolling out as we speak. This should be available in all regions by EOD.

Is there a place where we can see "release notes", "feature releases", "big fixes" for AAG? I appreciate you letting us know the status of this, but it seems like AAG should be announcing when these things are delivered.
Also: Can you confirm that this particular issue was rolled out?   ;-)

This was deployed yesterday - please let me know if you're still experiencing issues

I can confirm that this works again. Thanks!

We've also been able to successfully deploy again using both the aws console and the swagger importer, as well as remove workarounds for getting it to work w/ Unity3d clients. Thanks for listening @rpgreen !


requestWhitelist.push('body') does not work

As per the latest version 2.1.2,  requestWhitelist.push('body') does not bring to displaying the request's body.
In 2.1.0 it works.
I assume the break occurred in the version bump to 2.1.1.

Hi,
I had the same issue. After the fix in https://github.com/bithavoc/express-winston/commit/dc4891f45a920c6db3c1e5427b04a9ff4a783b13
it seems that you must have either a whitelist or a blacklist
Adding an arbitrary (non-existent) property to the black list will log all body props.
options.bodyBlacklist = ['noop']

Fixed and released in 2.1.3.


Cadence standard deviation fixed.

Fix for incorrect calculation of cadence variance and standard deviation. Previous version failed to calculate the sum of squared cadence measurements, resulting in always presenting 0 standard deviation.

Thanks for the fix.
It wil be released in next release.
Tom


[Sprint: 47] XD-2934 XD-2935 Adding support for Sqoop's merge and codegen commands

also including proper handling of spring.hadoop properties from hadoop.properties file

Getting error which is probably related to change(after this per was created) last Fri https://github.com/spring-projects/spring-xd/commit/7087dc67e058edd6cbb1630ebd95b52e2c7e21e1
2015-04-27 12:25:13,971 1.2.0.SNAP  INFO DeploymentsPathChildrenCache-0 container.DeploymentListener - Deploying module [ModuleDescriptor@4cede0e3 moduleName = 'sqoop', moduleLabel = 'sqoop', group = 'batch1', sourceChannelName = [null], sinkChannelName = [null], index = 0, type = job, parameters = map['args' -> '--table BATCH_JOB_EXECUTION --target-dir /xd/batch1 --num-mappers 1', 'command' -> 'import'], children = list[[empty]]]

2015-04-27 12:25:14,343 1.2.0.SNAP  WARN DeploymentsPathChildrenCache-0 annotation.AnnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'objectNameProperties' defined in null: Could not resolve placeholder 'xd.stream.name' in string value "${xd.stream.name}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'xd.stream.name' in string value "${xd.stream.name}"

Removed:
<prop key="group">${xd.stream.name}</prop>

from spring-xd-dirt/src/main/resources/META-INF/spring-xd/plugins/jmx/mbean-exporters.xml and PR looks good to me.

squashed and merged as bb01c57c4f5b53b42502cb36adf3dc49f3a8c53a
fix in 741192dafb54189bbf600143e54919b51def0edd addressed the root cause


add support for setting scaleToZeroTimeout with create_inference_endpoint/update_inference_endpoint

Is your feature request related to a problem? Please describe.
I would like to be able to programmatically set the scaleToZeroTimeout parameter in HFApi.create_inference_endpoint and HFApi.update_inference_endpoint programmatically. The only ways to do this currently are through the HF inference endpoints UI or directly through the /v2/endpoint/{namespace} post request.
Describe the solution you'd like
from huggingface_hub import HfApi
api = HfApi()
endpoint = api.create_inference_endpoint(
    "aws-zephyr-7b-beta-0486",
    repository="HuggingFaceH4/zephyr-7b-beta",
    framework="pytorch",
    task="text-generation",
    accelerator="gpu",
    vendor="aws",
    region="us-east-1",
    type="protected",
    instance_size="x1",
    instance_type="nvidia-a10g",
    min_replica=0,
    max_replica=1,
    scale_to_zero_timeout=30,  # in minutes ************ REQUESTED PARAMETER **********************
    custom_image={
        "health_route": "/health",
        "env": {
            "MAX_BATCH_PREFILL_TOKENS": "2048",
            "MAX_INPUT_LENGTH": "1024",
            "MAX_TOTAL_TOKENS": "1512",
            "MODEL_ID": "/repository"
        },
        "url": "ghcr.io/huggingface/text-generation-inference:1.1.0",
    },
)

Describe alternatives you've considered

HF inference endpoints UI
Direct post request to /v2/endpoint/{namespace} endpoint

Additional context

create_inference_endpoint documentation
Post request open-API specification that supports setting scaleToZeroTimeout

Thanks for the suggestion and PR @hommayushi3! I just reviewed and merged it: https://github.com/huggingface/huggingface_hub/pull/2463. Clean, concise and documented like I like :heart:


Android: Get token, but unable to receive after update

Hello! After I just updated to latest Xamarin and Xam.Plugin.PushNotification I cannot receive push messages on android anymore, however it does register with a token

UPDATE; It works for a few hours, then it stops and I have to reinstall the whole app to get it working again.

Is a Release or Debug Build?

This is a release build.

aug. 2016 kl. 01.11 skrev Rendy Del Rosario<EMAIL_ADDRESS>
Is a Release or Debug Build?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/rdelrosario/xamarin-plugins/issues/77#issuecomment-237077734, or mute the thread https://github.com/notifications/unsubscribe-auth/AQgGumUS3JEW3kSUy2dl5w6XH3_lC1a0ks5qb86zgaJpZM4JbCVD.

Just released a new version. Let me know if still getting the issue on the newest version.


Update Config “general”

Automatically generated by Netlify CMS

:construction_worker: Deploy Preview for hyphen-stage processing.
:hammer: Explore the source changes: 9ce53d208802311125646fe4949a3a5eb60a55a2
:mag: Inspect the deploy log: https://app.netlify.com/sites/hyphen-stage/deploys/60e8c64ae863ba0008752253


Added support for Ubuntu 18.04 and MySQL 8

This is in service of irods/irods#6670.
This is undergoing testing.

Regardless of the issues with 4-2-stable in this setup, I think it would still be beneficial to add an ubuntu:18.04/mysql:8 project for 4.3.x testing. The platform is supported for 4.3.x, so if it works for that, I don't think anything is preventing us from adding this.

Totally. I'll take this out of draft and run the unit tests for 4.3.0 against this.
Is there anything in this PR that you feel needs attention?

Nope, looks good to me.

All unit tests pass for 4.3.0.
Running core tests.

Added #


Simplify newline search

The newline scanner seems to include line endings and its code looks very similar to how CoreLib's line iterator is implemented. Because the only line endings that are encountered are either CRLF or LF, there is no need to scan for just CRs with .IndexOfAny which are not valid line endings on Windows or Unix systems.
This is a very quick change and I have not looked into other code in this solution, just something that stood out to me because I worked on a similar problem some time ago here: https://github.com/U8String/U8String/blob/main/Sources/Primitives/U8Enumerators.cs#L505-L536

This is not used on the hot path. And it will not work on Windows. See the comment in the Readme.
Java code produces \r\n so there is an implicit assumption about OS-native line endings.
The hot path just treats all chars <=13 as line endings...

Current implementation matches either CR or LF and if CR is followed by LF it effectively advances by 1. The CR matching step is just doing extra work the caller does not seem to care about, since it will match on both CRLFs and LFs, and I don't see the loop accounting for the "holes" between segments.
Either way, if this isn't on a hot path then it likely doesn't matter.

Either way, if this isn't on a hot path then it likely doesn't matter

Yeah, it did matter and I rewrote that part. I will (very likely) rewrite chunking logic and remove that.
But you are right that for boundaries we only need \n.

Got it, thank you for your work. Hopefully it will bring more attention to our underappreciated language😄


Display date32/64 in YYYY-MM-DD format

Which issue does this PR close?

Closes #.
Rationale for this change
Format Date32/Date64 as YYYY-MM-DD tuple so we can use it to construct date partition in HIVE partition paths.
What changes are included in this PR?
Date32/Date64 are not formatted and displayed in YYYY-MM-DD format.
Are these changes tested?
Covered by the existing tests
Are there any user-facing changes?
Yes, for example, plan explain will now display date in the new format.

This seems like a clear improvement and non controversial so merging it in


Drawer animation lacks smoothness

Describe the bug
While other places in the application have no issue, it seems like the drawer animation really lacks smoothness and appears laggy/with low fps. This can probably be improved.
To Reproduce
Steps to reproduce the behavior:

Draw and undraw the drawer.

Expected behavior
The animation be smoother
Device (please complete the following information):

Device: Xperia XZ
Android version: Android Oreo (8.0)

Hello there, I would like to work around this issue. Could you let me know the status of this issue.

You can fix this issue in Oktober.

Sure thanks, you can assign this to me

I don't assign issues anymore. I've seen too many people claiming an issue, but then got their PRs for Haktoberfest somewhere else and block the issue.


Finish implementation of ProjectConfig.dbt_project_path = None & Allow Different paths for Rendering and Execution

Description
This MR finishes the work that was started in #605 to add full support for ProjectConfig.dbt_project_path = None, and implements #568.
Within this PR, several things have been updated:
1 - Added project_path fields to RenderConfig and ExecutionConfig
2 - Simplified the consumption of RenderConfig in the dbtGraph class
3 - added option to configure different dbt executable for Rendering vs Execution.
Related Issue(s)
Closes: #568
Breaking Change?
None
Checklist

[ ] I have made corresponding changes to the documentation (if required)
[x] I have added tests that prove my fix is effective or that my feature works

Docs changes still need to be completed, though all the core logic and baseline tests in its current state has been implemented.
@tatiana could you please have a scan over the changes in this MR and let me know if there are any other changes you'd like to see before i finalize the docs / tests?

I've added some additional tests to captures some more edge cases i found and add additional coverage.
Additionally, I've updated some docs, and docstrings, to reflect changes that have occurred in some Config Classes both within this PR and others.
All unit tests are running fine locally, and all integration tests other than databricks are too (no token for this)
I'll verify these in CI and once thats complete its looking just about complete.

Since the initial integration tests look good, is there anything else that needs to be done here :)


Add CloudWatch plugin

Install the CloudWatch plugin so logs can be shipped to AWS CloudWatch
Part of rancher/rancher#21368

@loganhz Could you help check whether we could support CloudWatch?


registerProcessingTimeTimer not working

I have a GlobalWindow with a simple class TimedTrigger extends Trigger<Value,GlobalWindow>.
I registerProcessingTimeTimer
ctx.registerProcessingTimeTimer(ctx.getCurrentProcessingTime()+timer);
But it never gets triggered ( unless I put the 'timer' value to the unrealistic value of 2 milliseconds). I have tired to increase the timeout value with no effect.

Hi,
This is a shortcoming of flinkspector. What fs does is it sets the time
characteristic of the StreamExecutionEnviroment in the background to
EventTime. When you insert an window that works explicitly with processing
time flinkspector can not manipulate the time anymore by injecting
timestamps and watermarks. I think I've addressed this issue shortly in the
documentation.
ProcessingTimeWindows work directly with the system time so there's no way
for flinkspector to manipulate the triggering from the outside than
actually wait the required amount of time to trigger the window, this could
potentially lead to very long running tests. Also the emitting of records
would have to be totally in sync with the processing time triggers which
would be very hard to achieve. There is an old branch of flinkspector where
somebody tried this but I've never got an pull request so I'm assuming it
didn't work as aspected.
Long story short: The only workaround I see is to replace the
processingtimewindows during testing with "normal" windows. Or if you just
want to test one window evaluation you can insert a mapper with a sleep in
it to keep the pipeline running as long as necessary for that window to
trigger. But remember to increase the timeout of flinkspector.
Cheers, Alex

Thanks for fast and elaborated answer. However, regarding this statement

... actually wait the required amount of time to trigger the window, this could
potentially lead to very long running tests.

I have my timer passed as parameter so for testing I can pass a much shorter timer. I realise that it would mean that the record emitting needs to happen all at once, but that's a limitation I can live with.
If I want to achieve this, I doubt that it is as simple as removing
		testEnv.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
Any pointers to what more I have to modify.

The sleep addition to keep the pipeline running sounds like a good workaround, but I could not get it to work. I added Thread.sleep with an amount that is more than the window timer but less than the spector timeout and the timer did not trigger. Any ideas?

It might be useful to use a dedicated clock object inside flink or flink-spector to simulate the time.

A clock object inside Flink which could be manipulated from the outside and represents processing time would be a really neat feature for testing. In a way EventTime represents such a mechanism, which is why it is used for flink-spector. The downside is that is would be nice to test the relationship of event time and processing time.
Spark Streaming and Storm have a clock object which can be played with during local execution and testing. This is realized by running the pipelines in a specialized local runtime environment. When Flink runs locally it will start up a cluster and run in that cluster completely isolated from the user.
The processing time windows in Flink directly access the system time of the machine they are running on. To implement a clock which can be manipulated would mean to replace the System.currentTimeMillis() call inside Flink by an object which can be somehow interchanged during tests. But this object would not be accessible during tests, which means you would have to implement a messaging system which let's you change the time of that object. This would be a pretty big intrusion into one of Flink's core functionalities.
What I have been thinking about is writing a own TimeWindow implementation which you would have to use during tests containing a clock you which can manipulated. The downside is that you would have to replace the normal timeWindow() calls of your code during tests. Also any other user code using some form of system time is still not testable.
I'm not sure if there is a better way in doing this. I personally dropped the idea of just waiting for the clock to progress. The emitting of a record and when it will be processed by the window can not be synced up.


FR: Add support for entry locations

Hi, just wanted to say this plugin has been extremely useful, so we appreciate your work.
Do you have any plans to extend the functionality to work with entries? For example, we could add the locations field to an entry that is used as a category/tag and see a list of entries that link to it.
This may be outside the scope of this plugin, but the table-style locations field would be perfect for this.

Hi,
Really glad the plugins been great for you!
No future plans currently, however I think the Related Entries plugin might actually be what you're after?

We've tried the Related Entries plugin and it does work well, but we'd prefer not to have the list in the sidebar as when have categories linked to 100's of other entries.
No worries though, thanks again for the great plugin.

Ah I see.
You’re welcome!


NettyServerBuilder withWebSocketMaxFrameLength method

it's nice to have the way to configure web socket max frame length to avoid
io.netty.handler.codec.http.websocketx.CorruptedWebSocketFrameException: Max frame length of 65536 has been exceeded.
in some cases

@hamnis can you take a look please? it's important for our solution, and doesn't look like something complicated. Or point me how to make contributions right.


HTML

Kindly add and plugins and and live supported editing on vscode to change the html txt and css
Request
regards

Hi @Abhinav7867 ! I don't know if I understand you question, but if you are looking for some plugin to help you in your site development with live reload, try to use this plugin:
Live Server
ritwickdey.liveserver

dup of https://github.com/microsoft/vscode/issues/12080 but to be honest, this functionality is best provided by extensions (like ritwickdey.liveserver)


WIP: Ignoring ShardStateIntegrationTest

Ignoring ShardStateIntegrationTest for now because it's causing build failures.
This is the failure that's being caused:
http://maven.apache.org/surefire/maven-surefire-plugin/faq.html#vm-termination

+1

Changes Unknown when pulling 57e723aec431a8f8da41f544855d5d7991502b65 on tilogaat:ignore-test-fix-build into ** on rackerlabs:master**.


Add impeller

Classify Impeller as Data Structure, close #1840

          1 Warning

:warning:
Found 4 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

876
301
https://github.com/terflogag/FacebookImagePicker redirects tohttps://github.com/floriangbh/FacebookImagePicker

913
Error
https://pspdfkit.com/  Cannot assign requested address - connect(2) for "pspdfkit.com" port 443

1376
301
https://github.com/SwiftOnEdge/Edge redirects tohttps://github.com/skylab-inc/Edge

2404
301
https://github.com/terflogag/OpenSourceController redirects tohttps://github.com/floriangbh/OpenSourceController

  Generated by :no_entry_sign: Danger

Could you have only one project per pull request, thank u


Uploading blobs for Google Keep notes

This tool would be invaluable if it supports uploading blobs. It's really a show-stopper.
If you know could you please provide more information on how "upload blobs" API looks on Google side? I think having described the server contract of this unofficial API will speedup the client development with this crucial feature. I am ready to help with the implementation of this feature.

I am glad that you are interested in it, thank you! Yeah, it is indeed important feature. i was going to implement the uploading blobs a little later. But if you want to help, your help is welcomed.
Give me a few hours and i will describe the server contract. I will add it to the project files.

@andrii-minchekov, the file where i described all requests to the server is ready. See here.
Please ask any questions you have

It is now available to upload images and pull it from the server. You can test it :)


Node agent fails to start on Slurm 17.02

from qcg.pilotjob.api.manager import LocalManager as QCGManager
qcg_manager = QCGManager()
# wait for 10 minutes
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/lveen/qcgpj_venv/lib/python3.6/site-packages/qcg/pilotjob/api/manager.py", line 741, in __init__
    raise errors.ServiceError('Service not started')
qcg.pilotjob.api.errors.ServiceError: Service not started

Enabling debug logging like so:
from qcg.pilotjob.api.manager import LocalManager as QCGManager
qcg_manager = QCGManager(['--log', 'debug'])

produced a file nl-node053-start-agent-stderr.log in the run directory containing the error:
/cm/shared/apps/slurm/17.02.2/bin/srun: unrecognized option '--cpu-bind=none'
Try "srun --help" for more information

This is a somewhat antiquated cluster. Is Slurm 17.02 still supported by QCG PilotJob?

Looking at the Slurm source code, it seems that the check for none was last touched in 2016, and it's been in there for longer. Digging deeper...

Ah, so it seems that Slurm 17.02 only supports --cpu_bind (with an underscore) and not --cpu-bind (with a hyphen). So it's not about the value, it's about the whole argument.

Recent versions of Slurm still support --cpu_bind because OpenMPI had it hardcoded for a long time apparently. There's a complaint in the code about them having to continue to support it :-). So I guess QCGPJ could use that for better compatibility, although there's a chance they'll remove the underscore version in the future of course...

Thanks Lourens for debugging the problem - oh how I love the little changes in Slurm and their compatibility with previous versions. I will try to fix this.

I have an idea how to fix this (by checking the slurm version) but as we have to prepare the release today I would not like to make too deep changes at the last minute - so I will prepare the fix after the release.

That's fine, good luck with the release!

I've prepared the fix in #150.

I've discovered that recent versions of OpenMPI set the CPU_BIND environment variable instead of passing command line arguments. That may be an option in the future if --cpu_bind gets removed from Slurm.


Feature Implementation: Adding Search functionality to Filter Blog posts in Home page and Leading blog post page

ExpectedUpdates

[ ]  Add a search input field to the dashboard allowing users to filter chatbots based on their name or description.

[ ]  The search functionality should dynamically filter both System Chatbots and User Chatbots in real-time as the user types in the search bar.

[ ]  Update readme.md file

@ANSHIKA-26 Could you please assign this task to me, I would love to work on  it!

@ANSHIKA-26
I have already checked there isn't an issue similar to what I have raised. So I kindly request you to allow me to work on it.

Can u please assign this to me

@pavitraag I have already started working on it and am about to complete it.

@Varsha-1605 ?


Premature EOF on WARC files

When parsing part of the CommonCrawl corpus (which consists of ~1G WARC files where each record is individually compressed), flate2 will return EOF after the first chunk has been decompressed rather than continuing to read the rest of the file.  Sample data:
s3://aws-publicdatasets/common-crawl/crawl-data/CC-MAIN-2016-07/segments/1454701166570.91/warc/CC-MAIN-20160205193926-00310-ip-10-236-182-209.ec2.internal.warc.gz
(Downloadable with 'aws s3 cp s3://aws-publicdatasets/common-crawl/crawl-data/CC-MAIN-2016-07/segments/1454701166570.91/warc/CC-MAIN-20160205193926-00310-ip-10-236-182-209.ec2.internal.warc.gz' if you have the AWS CLI installed.  837M, no fees.)
Sample code:

fn main() {
  let filename = env::args().nth(1).unwrap_or(
      "../CC-MAIN-20160205193926-00310-ip-10-236-182-209.ec2.internal.warc.gz"
      .to_string());
  let input_file = File::open(&filename).unwrap();
  let mut gz_decoder = GzDecoder::new(input_file).unwrap();
  loop {
    let mut buffer = Vec::with_capacity(1000000);
    let capacity = buffer.capacity();
    let read_range = buffer.len() .. capacity;
    unsafe { buffer.set_len(capacity) };
    match gz_decoder.read(&mut buffer[read_range]) {
        Ok(0) => {
          println!("EOF");
          break;
        },
        Ok(_) => {
          println!("Read {}", String::from_utf8_lossy(&buffer))
        },
        Err(err) => {
          println!("Error filling buffer: {}", err)
        }
    }
  }
}

Arguably the files shouldn't do this, but the WARC spec recommends record-at-a-time compression, and it's pretty common practice in the Hadoop world to operate on big files that are the concatenation of individually-gzipped records so that Hadoop can split the input without reading it.  gunzip/gzcat can read it, and re-compressing it with gzip allows flate2 to as well.  Given that these files exist, maybe flate2 could avoid returning EOF until the underlying stream does, instead returning the stream of decompressed bytes from the next record?

Unfortunately this has also been reported before (https://github.com/alexcrichton/flate2-rs/issues/35 and https://github.com/alexcrichton/flate2-rs/issues/23), but due to other divergences from zlib (see https://github.com/alexcrichton/flate2-rs/issues/40), I'm somewhat inclined to just implement a zlib-compatible gz stream as perhaps a separate type...

Is there an easy workaround?  I don't mind writing extra code on my end, but I don't know any other way to reliably check for EOF, since the GzDecoder takes ownership of its underlying reader and so I can't keep a borrowed reference to the File to check eof().
I suppose for my use-case I could get rid of flate entirely and pipe the output of gunzip -c to stdin, but then I've got to wire everything up with shell scripts, and I'm limited to one input file.

You may be able to do something like:

Use bufread::GzDecoder instead of read::GzDecoder.
Use &mut BufRead instead of a by-value T
When one stream finishes decoding, check to see if the buffer has any more bytes in it, and if it does create a new GzDecoder to decode the next stream.

Although perhaps not tested, the GzDecoder shouldn't consume any more bytes than it's supposed to, so if the streams are literally concatenated you should be able to detect this and just pick up where it left off.
I haven't tested this out yet, though, so it may not work :(

To clarify, this is what I would expect:
extern crate flate2;

use std::io::prelude::*;
use std::io;

fn main() {
    let mut v = Vec::new();
    flate2::write::GzEncoder::new(&mut v, flate2::Compression::Best)
                             .write_all(b"foo")
                             .unwrap();
    flate2::write::GzEncoder::new(&mut v, flate2::Compression::Best)
                             .write_all(b"bar")
                             .unwrap();

    let mut data = &v[..];

    io::copy(&mut flate2::bufread::GzDecoder::new(&mut data).unwrap(),
             &mut io::stdout()).unwrap();
    io::copy(&mut flate2::bufread::GzDecoder::new(&mut data).unwrap(),
             &mut io::stdout()).unwrap();
}

It's crucial that you use bufread::GzDecoder instead of read::GzDecoer (as that may buffer too much), but otherwise while there's more data you can just keep decoding with a brand new GzDecoder.

I can confirm that this works. Concatenated gz members are quite common in bioinformatics as well. The Bgzf standard uses this in combination with an index to allow random access on files or concurrent processing. The members are quite small (max 64Kb uncompressed data). Performance seems fine. Time to process a file is comparable to zcat.
Partial example that uses the fastq reader from rust-bio:
let mut reader = BufReader::new(file);
let mut r = fastq::Record::new();

loop {
	//loop over all possible gzip members
	match reader.fill_buf() {
		Ok(b) => if b.is_empty() { break },
		Err(e) => panic!(e)
	}

	//decode the next member
	let gz = flate2::bufread::GzDecoder::new(&mut reader).unwrap();
	let mut fqreader = fastq::Reader::new(gz);

	//loop over all records in this member
	loop {
        match fqreader.read(&mut r) {
			Ok(()) => {
				if r.is_empty() {
					//current gz member finished, more to decode?
					break;
				}
			},
			Err(err) => panic!(err)
		}
        //do stuff
	}
}

Thanks for looking into this.  I've been working on other parts of my system lately, but I'll implement this solution when I return to the Rust code.


Typecast certain columns

I am having problem typecasting my table's one column to a integer type as everything is being read a string

this is not a feature that is supported, you will have to convert the strings into an integer yourself.

This is not a feature that is supported, you will have to cast the values yourself


possibility of merging this back to upstream?

It's almost rewrite. I failed to split commits, but if you want, I'll extract part of these pr as a separate pr.

pmutil::smart_quote instead of quote::quote!
As this fork generates lots of code, I needed some ide support and span-aware quasi quotter.
quote! {{
    let __stream = #fut_expr;
}}

// rustfmt, and syntax highlighters work.
Quote::new_call_site()
    .quote_with(smart_quote!(Vars{ fut_expr }, {
        {
             let __stream = fut_expr;
         }
    }))
    .parse()

But currently this crate works with git dependencies, so I should publish something like futures-await-pmutil.
Stream support
Syntax and return types differs from current upstream's.
await! works for future and stream. This uses an associated constant ::__rt::YieldType::NOT_READY.
Yield = Result<T, StreamError>
StreamError has a NotReady variant.
#[async_stream]
fn foo() -> impl Stream<Item = T, Error = E> {
    yield Ok(T);

    // Downside of this approach is that we can't yield Err(E)
    let err: E = ..;
    yield Err(err.into());

    // But it's not problem for custom error types.
    let o_err: OtherError = ..; // let's say E: From<OtherError>
    yield Err(o_err.into()); // works because StreamError<E>: From<OE> where OE: Into<E>

    // But I don't think it's huge downside, as when you want to yield *error item*,
    // you can do
    yield do catch {
         // Assuming E: From<String>
         String::from("Request was invalid, msg...")?;
         // Valid case
         Ok(resp)
    };

}

Return = ()
Current return type is ().
If stream v0.2 supports terminating with value, it'll be changed to reflect that.
Currently ? operator is not usable from this scope, as ? in rust means 'error is returned' instead of  'error is yielded as an item'.
Better type inference
#[async]
fn foo() -> io::Result<()> {}

// expanded, omitted lifetime
fn foo() -> impl MyFuture<io::Result<()>> {
    ::__rt::async_future(move || {
        #[allow(unreachable_code)]
        {
             if false {
                 yield;
                 // this macro does not exist, but means let _v:  Type = unreachable!();

                 // When user specified non-result as return type, this improves error message.
                 return unreachable_typed_expr!(Result<_, _>);

                 return unreachable_typed_expr!(io::Result<()> as ::TooLongForHere);
             }
        }
    })
}

Lifetime support
Fixes #11, #17.
#[async]
fn foo<'b, T>(_: &str, _: StructLt<'b>, _: T) -> Result<(), ()> {}

expands to
fn foo<'ret, 'b: 'ret, T: 'ret>(_: &'ret str, _: StructLt<'b>, _ :T) -> impl MyFuture<Result<(), ()>> + 'ret {}

But this isn't complete, and should implement opt-out.
Heterogeneous await
await!({
    if a {
        load_cache()
    } else {
         call_http()
    }
})

is equivalent to
{
    if a {
        await!(load_cache())
    } else {
         await!(call_http())
    }
}

await! macro lives in futures-async-macro
I did this before extracting pmutil as proc_macro can't export utils, and I'm not sure if this was a good idea.

I think this can be merged when futures v0.2 is realeased and it supports terminating stream with value.
TODOs

[ ] allow lifetime opt-out

[ ] allow static lifetime

[ ] handle lifetime bounds in where clauses

[ ] handle custom lifetimes

[ ] determine syntax for stream

[ ] publish pmutil to crates.io

[ ] fetch ui tests from upstream

[ ] improve error handling for await! macro

[ ] (maybe) provide a macro for yield futures_await::__rt::YieldType::NOT_READY;

Thanks for the PR! Sorry I'm having a little difficulty following the changes though. Before I dive into the code though I was hoping I could get a bit more of a high-level overview about the intended changes?

First up, can you explain in a bit more detail what pmutil is? I'm not too familiar with it and would be curious to learn more!
For streams I'd personally like to avoid the usage of yield right now as I think it's exposing low-level implementation details of generators which may be tweaked over time (as this PR is showing). In other words I'd prefer to avoid yield being a stable part of the macro.
For better type inference, do you have an example of what this improves? Sounds like a great addition regardless!
I'll hold off on thinking about the lifetime support for now. That's a pretty tricky question I'm not sure we're ready to tackle yet, but once I understand moreso what's happening elsewhere I can try to dive in!
Finally could you explain in a bit more detail the rationale for the heterogeneous await?

First up, can you explain in a bit more detail what pmutil is? I'm not too familiar with it and would be curious to learn more!

pmutil is a replacement for quote.
quote has two problems

precise respanning is almost impossible
respan(span, quote!( { #tokens } ))
will respan every token even if span of #tokens  was correct.
As spans of type annotation like

if false {
    return {
        let _v: io::Result<()> = unreachable!();
        _v
    });
}

are used for error reporting, they should be correct.

development tools can't work well with it
Because #tokens isn't valid rust, they can't.
But quoter from pmutil abuses error recovery, because almost all parsers for development tool implement fairly good error recovery.
(rustfmt and syntax highlighter for rustdoc / vscode works)

For streams I'd personally like to avoid the usage of yield right now as I think it's exposing low-level implementation details of generators which may be tweaked over time (as this PR is showing). In other words I'd prefer to avoid yield being a stable part of the macro.

For better type inference, do you have an example of what this improves? Sounds like a great addition regardless!

await! works both for future and stream because it use type inference trick inspired by Default::default().
It does
yield ::futures::__rt::YieldType::not_ready();

,
but it can't work without type annotation as type inference does not work well for generator literal.
Even if  futures::__rt::gen_future specifies Yield = (), it doen't work because type of generator literal determined before being passed to function.
And it also improves error reporting.
For example,
not-a-result.stderr
contains
error[E0308]: mismatched types
 --> $DIR/not-a-result.rs:8:13
  |
8 | fn foo() -> u32 {
  |             ^^^ expected enum `std::result::Result`, found u32
  |
  = note: expected type `std::result::Result<_, _>`
             found type `u32`

It's because type annotation has return Result<_, _> before return u32 which is return type.
UI test does not exists, but it improves error message for other user's mistake.
error[E0308]: mismatched types
  --> tests/stream-smoke.rs:33:18
   |
33 |         yield Ok(ch);
   |                  ^^ expected char, found u8

error: aborting due to previous error

error: Could not compile `futures-await`.

for
#[async_stream]
fn chars(src: &str) -> impl Stream<Item = char, Error = ()> {
    for ch in src.bytes() {
        yield Ok(ch);
    }
}

instead of
error[E0271]: type mismatch resolving `<impl futures::__rt::MyStream<u8, <[generator@tests/smoke.rs:122:32: 1:5 _] as futures::__rt::Generator>::Return> as futures::Stream>::Item == char`
   --> tests/smoke.rs:122:16
    |
122 | fn _chars() -> Result<(), i32> {
    |                ^^^^^^^^^^^^^^^ expected u8, found char
    |
    = note: required for the cast to the object type `futures::Stream<Error=i32, Item=char>`

error: aborting due to previous error

error: Could not compile `futures-await`.

for
#[async_stream(boxed, item = char)]
fn _chars() -> Result<(), i32> {
    for c in "abc".bytes(){
        stream_yield!(c);
    }
    Ok(())
}

I'll hold off on thinking about the lifetime support for now. That's a pretty tricky question I'm not sure we're ready to tackle yet, but once I understand moreso what's happening elsewhere I can try to dive in!

I think I should too.  At now, I'm not sure about the correct way to support lifetime, and I'm considering reverting lifetime support.

Finally could you explain in a bit more detail the rationale for the heterogeneous await?

Primarily I did it to test what can proc macro do, and to see accuracy of respanning. I just didn't revert it because user gives impl Future to await!, and gets Result back, so type of future isn't important at all.
(I don't mind reverting it)
I mean,
// assuming error has timeout variant..

let req = if let Some(timeout) = timeout {
    req.with_timeout(timeout).map_err(From::from)
} else {
    req
};

await!(req);

doesn't compile, because type of req cannot be determined.
Alternatively, code below works.
let req = if let Some(timeout) = timeout {
    await!(req.with_timeout(timeout).map_err(From::from))
} else {
    await!(req)
};

But I think code below makes meaning of await more obvious.
let req = await!(if let Some(timeout) = timeout {
    req.with_timeout(timeout).map_err(From::from)
} else {
    req
});

Lifetime issue seems like rust-lang/rust#45259 (or implicit self referential struct).
#![feature(generators)]

fn main() {
    move || {
        yield true;

        let mut i = "";
        let r = &i;
        yield panic!();
    };
}

fails to compile with
error[E0626]: borrow may still be in use when generator yields
 --> src/main.rs:8:22
  |
8 |         let r = &i;
  |                      ^
9 |         yield panic!();
  |         -------------- possible yield occurs here

Immovable generator will fix this lifetime issue.

I discovered quote_spanned! macro and pr for Span::join api.
When the pr is merged, I'll remove pmutil and update this pr to use quote_spanned!.

Closing as stream and lifetime issues are solved, and type inference is extracted to separated pull requests (#46 #49).
Lifetime: https://github.com/alexcrichton/futures-await/issues/53#issuecomment-372090327


Update default resource interpreter documents for PodDisruptionBudget

What type of PR is this?
/kind documentation
What this PR does / why we need it:
Update documents as per https://github.com/karmada-io/karmada/pull/2997 which introduced a default interpreter(AggregateStatus) for PodDisruptionBudget(policy/v1).
Which issue(s) this PR fixes:
Fixes #287
Special notes for your reviewer:

/assign @XiShanYongYe-Chang @Poor12
@Poor12 You can see that the build is successful now, as a contrast, #287 still can't build now. Please check if there is something wrong with the patch and push it again.

中文的版本是否需要同步修改？

Good point, done.

/lgtm


I might have Uninstalled Copilot for Windows Accidently.

Description of the new feature / enhancement
I performed a clean install on 17 Feb 2024, Signed in to Insider. IN mid March Copilot Preview Icon appeared automatically on Desktop taskbar. I had to perform a clean Install on 13 Apr 2024 signed into insider. Start to Get preview update. I was using Edge copilot using install site as an app. But i uninstalled it thinking that it might prevent Copilot preview for windows to appear again in this new OS. I Microsoft Copilot app auto installed in my apps like Dev Home. I uninstalled that MS Copilot thinking it is that website installed as no preview was written on it.... now i want it back.
Scenario when this would be used?
I want that,  only due to this i joined this insider program....
Supporting information
its part of PREVIEW CHANNEL BUT I CAME UPTO DEVELPER JUST FOR THAT APP.

This is unrelated to PowerToys. Please go to Microsoft answers or Microsoft Q&A and ask your question there.