haskellPackages.http-streams is marked as broken although it builds

Running
nix-build --no-out-link -A haskellPackages.http-streams

Results in
Package ‘http-streams-<IP_ADDRESS>’ in ~/workspace/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix:132580 is marked as broken, refusing to evaluate.

Following this video I ran
nix-build --no-out-link -A haskellPackages.http-streams --arg config '{ allowBroken = true; }'

and it compiles properly. Why is the package marked as broken?

@drever please feel free to send a PR marking this as no longer broken (as described in the video).

The package builds again, @clkamp fixed it.


Add ARM64 support

Content:

Build and test the library on ARM64
Update Dockerfile to download bazelisk for the corresponding architecture
Use cmake to build the library

Side notes:

I pushed a multi-platform version of datadog/docker-library:dd-trace-cpp-ci. It supports linux/amd64 and linux/arm64

:shipit:


"Complex" filters

Hi!
Would you help me find a way to filter API results based on dynamic filters (like 'give me all the news where publishing date is less or equal than today')?
Thank youuuuu :)

I should have some time this week to look into this and help you out. I'll keep you updated.

Now that's very kind. Thank you!

+1 👍

+1

+1

+1

do we have any implementation of query param ?? something like
GET: /api/article?title='Harry Potter'


[parser] Make corrections for the isInputIncomplete() functionality

It was reporting 'incomplete' for an empty string interpolation, like foo("\()") (fixes rdar://28498239)
It was reporting 'complete' for an unfinished multi-line string

@swift-ci smoke test


Mouse over code completion doesn't show docs

When the mouse is moved over the completion dialog, the documentation panel should show doc results.
Currently it only occurs on keyboard interactions.

Still an issue in the current UI. Using the arrows keys causes the docs pane to update, while hovering with the mouse does not.
I'm not sure if we want to make this change, however. IntelliJ, for example, uses the same behavior we do (hovering does not move the selection within the completion popup).

The code completion functionality has changed a bit since this issue was made, but has some remaining UX and DX concerns. Closing this issue in favor of addressing them together in https://github.com/dart-lang/dart-pad/issues/3010.


fix(hierarchylist): search does not match catagories

Closes #1421
Summary
Fix to add the category to the search result.
Functional spec as I interpret the request:
If the user search term matches a category content value, that category and all child items of that category should be added to the list of filtered search result. If the matching category also have child items that matches the search term they should not appear a second time in the list.
Change List (commits, features, bugs, etc)

Modified the HierarchyList
Added unit tests

Acceptance Test (how to verify the PR)

Go to story watson-iot-experimental-hierarchylist--stateful-list-with-nested-searching
Type "ne" in the search field and make sure the categories "New York Yankees" and "New York Mets" are shown together with all child elements.
Make sure the categories only appear once, and make sure that "Chicago White Sox" and "Washington Nationals" are also listed with players matching the search.
Type "new"  in the search field and make sure the categories "New York Yankees" and "New York Mets" are shown together with all child elements, but no other categories are shown.

:tada: This PR is included in version 2.130.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Adding Date to fileappender filename

Hi,
I would like to see an option to add the current date to the fileappender.
Do you thinks this is helpfull?
Should I create a first implementation and add it as a pull request?
If yes, I would enhance the TLoggerProFileAppenderBase class. Maybe by adding only TFileAppenderOption.
Regards
Jens

Yes, it may be useful.
Feel free to provide a PR


Use a dependency manager to build the project

Description
All the dependencies used in this project (e.g. ADAM's formats, CLI parser, etc.) should be loaded externally via a build tool / dependency manager like Maven or SBT.
Implementation
Update the README file at the root of the repo to describe how to build the project.

Initialization of scala project is done with Maven :
https://github.com/GELOG/adam-ibs
On each new requirement of dependencies, the pom file will be updated.


Revised DrizzlePac Notebook: using_updated_astrometry_solutions

This notebook checklist has been made available to us by the Notebooks For All team.
Its purpose is to serve as a guide for both the notebook author and the technical reviewer highlighting critical aspects to consider when striving to develop an accessible and effective notebook.
The First Cell

[ ] The title of the notebook in a first-level heading (eg. <h1> or # in markdown).
[ ] A brief description of the notebook.
[ ] A table of contents in an ordered list (1., 2., etc. in Markdown).
[ ] The author(s) and affiliation(s) (if relevant).
[ ] The date first published.
[ ] The date last edited (if relevant).
[ ] A link to the notebook's source(s) (if relevant).

The Rest of the Cells

[ ] There is only one H1 (# in Markdown) used in the notebook.
[ ] The notebook uses other heading tags in order (meaning it does not skip numbers).

Text

[ ] All link text is descriptive. It tells users where they will be taken if they open the link.
[ ] All acronyms are defined at least the first time they are used.
[ ] Field-specific/specialized terms are used when needed, but not excessively.

Code

[ ] Code sections are introduced and explained before they appear in the notebook. This can be fulfilled with a heading in a prior Markdown cell, a sentence preceding it, or a code comment in the code section.
[ ] Code has explanatory comments (if relevant). This is most important for long sections of code.
[ ] If the author has control over the syntax highlighting theme in the notebook, that theme has enough color contrast to be legible.
[ ] Code and code explanations focus on one task at a time. Unless comparison is the point of the notebook, only one method for completing the task is described at a time.

Images

[ ] All images (jpg, png, svgs) have an image description. This could be

[ ] Alt text (an alt property)
[ ] Empty alt text for decorative images/images meant to be skipped (an alt attribute with no value)
[ ] Captions
[ ] If no other options will work, the image is decribed in surrounding paragraphs.

[ ] Any text present in images exists in a text form outside of the image (this can be alt text, captions, or surrounding text.)

Visualizations

[ ] All visualizations have an image description. Review the previous section, Images, for more information on how to add it.

[ ] Visualization descriptions include

[ ] The type of visualization (like bar chart, scatter plot, etc.)
[ ] Title
[ ] Axis labels and range
[ ] Key or legend
[ ] An explanation of the visualization's significance to the notebook (like the trend, an outlier in the data, what the author learned from it, etc.)

[ ] All visualizations and their parts have enough color contrast (color contrast checker) to be legible. Remember that transparent colors have lower contrast than their opaque versions.

[ ] All visualizations convey information with more visual cues than color coding. Use text labels, patterns, or icons alongside color to achieve this.

[ ] All visualizations have an additional way for notebook readers to access the information. Linking to the original data, including a table of the data in the same notebook, or sonifying the plot are all options.

This notebook has been revised in consultation with J. Mack and the DrizzlePac team. The updates include an improved workflow for WCS solutions that solve previously encountered errors in the notebook, as well as numerous STScI DMD formatting and PEP8 compliance changes. The revised requirements.txt is identical to the previous file in terms of required packages, with updated version numbers that were used in testing. The notebook was tested extensively with stenv2024.02.05.

Hi @mackjenn and @Vb2341, I've completed my updates to this notebook following the newly added code from Varun. I've cleaned up some code, added more detail to some of the descriptions, and resolved PEP8 compliance issues. Could you please let me know if you have any additional suggested revisions before I change this draft to a proper pull request for Hatice? Thanks!

Hi @haticekaratay, this notebook was extensively improved by @mackjenn and @Vb2341 and is now ready for your review!

Apologies for the ping on this, I was simply updating my local and remote branches with the latest changes from main.

Hi @haticekaratay, thank you for the swift review and for making that change directly, it is much appreciated. Have a great day! 🙂


List campaigns

Am I correct in thinking that there is no method to list campaigns: https://api.voucherify.io/v1/campaigns

See PR #60

@alexpchin there is a method for listing campaigns in v2017-04-05.
We will release @nitzo PR soon.

@alexpchin @nitzo keep in mind if you want to use campaigns listing you need to specify that version when initializing the client:
const Voucherify = require('voucherify')

const client = Voucherify({
    applicationId: 'YOUR-APPLICATION-ID',
    clientSecretKey: 'YOUR-CLIENT-SECRET-KEY',
    apiVersion: 'v2017-04-20'
})


Replace ampersand with unicode character

When a special character such as & appears in the html that is parsed, it's not displayed correctly. Here's an explanation:
https://facebook.github.io/react/docs/jsx-gotchas.html
I'm looping though all children and replacing all occurrences of ampersand with its unicode character.
I think it might be better to do an old-fashioned for loop that combines this PR and #13 - it's open to discussion :)

I wonder if this corresponds to my PR #18?
I use the ent library to decode text nodes, so that HTML character entities aren't passed to React, which does its own encoding of special characters.


websockets failing with 500 response - running rancher behind fabio

Running fabio:1.2-go1.6.3.
I have run this successfully <1.2 but recently upgraded to get the https support.
When I run a direct connection from chrome to rancher it works so I can confirm rancher is running properly. Running rancher:v1.1.2
Copy of the request headers (fails with 500 error response):
GET ws://rancher.cloud.XXXX.com/v1/projects/1a16602/subscribe?eventNames=resource.change&eventNames=service.kubernetes.change&limit=-1&include=hosts&include=services&include=instances&include=instance&include=instanceLinks&include=ipAddresses&sockId=36 HTTP/1.1
Host: rancher.cloud.XXXX.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://rancher.cloud.XXXX.com
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: PL=rancher; token=TcJiLGPNKqYePcAC4ZNYTTSApPyV5bYr1ujqAAbG; CSRF=A67819676337CDF4C6EF3591C68B40B4
Sec-WebSocket-Key: PzitR2II+lS9zhe9BtGo7w==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

@jamessammut Is there anything in the logs of either fabio or rancher? I've just tested fabio with websocket support with the included demo/server -prefix /echo -proto ws and demo/wsclient and that works just fine.

What is the best option to run fabio with verbose logs?
I see this error in the Rancher logs, so I guess fabio is routing this request to Rancher:
2016-07-25 14:38:42,545 ERROR [:] [] [] [] [1976473931-1222] [i.g.i.g.s.ApiRequestFilterDelegate  ] Unhandled exception in API for request [ws://rancher.cloud.XXXX.com/v1/projects/1a16602/subscribe] io.github.ibuildthecloud.gdapi.exception.ClientVisibleException: null
I might also raise something on their forums.

@jamessammut there is no such thing. Might be worth adding. The question is if it works with an older version but not with the most recent version then what has changed? Can you capture the requests with tcpdump and/or WireShark before and after fabio? Maybe fabio 1.2 is sending something different that makes rancher behave that way.

@jamessammut I am going to close this ticket for now until there is more evidence pointing towards fabio. In that case please comment or re-open (not sure if you can but I will).

I've taken Fabio out of the path and Rancher works fine. I will attempt to
gather some info for a possible trouble shoot when I get the chance.
On 30 Jul 2016 8:44 PM, "Frank Schröder"<EMAIL_ADDRESS>wrote:

@jamessammut https://github.com/jamessammut I am going to close this
ticket for now until there is more evidence pointing towards fabio. In that
case please comment or re-open (not sure if you can but I will).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/eBay/fabio/issues/133#issuecomment-236358503, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABAzSl_sntq7VA0g_MUs7eLuLldT-bIVks5qaysAgaJpZM4JUBTK
.

@jamessammut Best thing would be to collect some tcpdump logs from both sides of the fabio connection. That might tell something.

Closing again since there is no feedback for 4 weeks. Feel free to re-open when new data arrives.

@jamessammut Did you ever find a solution to this?  We're seeing something similar with the latest 1.4.3 fabio release and rancher 1.6.0

I've got the same thing with rancher. And, maybe, can collect some needed data that is necessary to work it out. @magiconair What is needed? Tcpdump, access logs, response and request header?

It seems to be the problem with theirs parser as far as I can get it from logs. If someone is interested I'll stack trace of rancher here.

@ket4yii I see that as well, but when I switch back to HAProxy I have no issues. I also have logs etc readily available.

This is really strange since fabio just opens up a raw TCP proxy between the two endpoints for websocket connections. First step would be to look at the connection before and behind fabio with ngrep on an unencrypted connection.

https://github.com/fabiolb/fabio/blob/master/proxy/http_proxy.go#L107-L114
and
https://github.com/fabiolb/fabio/blob/master/proxy/http_raw_handler.go#L18-L67

@magiconair ok, I'm going to do this. And it's the string that throws exception. Obviously, that we get 500 response code because of it. Maybe this information can help.

The same story with plain HTTP.
Dump behind fabio: Fabio <-> Capturing(ngrep) <-> Rancher:
T x.x.211.37:36254 -> <IP_ADDRESS>:8080 [AP]
  GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=14 HTTP/1.1..Host: rancher.x.x.x..User-A
  gent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36..Accept-Encoding:
   gzip, deflate, sdch, br..Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4..Cache-Control: no-cache..Connection: Upgrade..Co
  okie: _ym_uid=1480687797947545909; _ga=GA1.3.1084697215.1480687797; PL=rancher; token=LoxoWkymzCuwZ3NrH5SccmGKFrE6U4PHxVkKdHNc;
  CSRF=55CD8433FA..Forwarded: for=<IP_ADDRESS>; proto=wss; by=x.x.211.37..Origin: https://rancher.x.x.x..Pragma: no-cac
  he..Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits..Sec-Websocket-Key: MtZ0QxeTQSdQXF87guU6HQ==..Sec-Webso
  cket-Version: 13..Upgrade: websocket..X-Forwarded-For: <IP_ADDRESS>..X-Forwarded-Port: 443..X-Forwarded-Proto: wss..X-Real-Ip: 10
  .2.24.253....
##
T <IP_ADDRESS>:8080 -> x.x.211.37:36254 [AP]
  HTTP/1.1 500 Server Error..Date: Wed, 10 May 2017 16:40:02 GMT..X-Rancher-Version: v1.5.5..Content-Type: text/html; charset=ISO-
  8859-1..Cache-Control: must-revalidate,no-cache,no-store..Content-Length: 321..Server: Jetty(9.2.11.v20150529)......
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>.<title>Error 500 Server Error</title>..
HTT
  P ERROR 500
.
Problem accessing /v2-beta/projects/1a28/subscribe. Reason:.
    Server Error

Pow
  ered by Jetty://
....
########

Dump before fabio Outside <-> Capturing(ngrep) <-> Fabio <->  Rancher:
T <IP_ADDRESS>:48730 -> x.x.211.37:80 [AP]
  GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1..Host: rancher.x.x.x..Connect
  ion: Upgrade..Pragma: no-cache..Cache-Control: no-cache..Upgrade: websocket..Origin: http://rancher.x.x.x..Sec-WebSocket
  -Version: 13..User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.
  36..Accept-Encoding: gzip, deflate, sdch..Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4..Cookie: PL=rancher; token=Y6APWT
  UxqxMwVf1TDPq38fQ2HzRKmP9UFbzBaY7D; CSRF=E84259568E..Sec-WebSocket-Key: O1tgYw0qtqmj12P0AiFyCA==..Sec-WebSocket-Extensions: perm
  essage-deflate; client_max_window_bits....
##
T x.x.211.37:80 -> <IP_ADDRESS>:48730 [AP]
  HTTP/1.1 500 Server Error..Date: Wed, 10 May 2017 16:49:36 GMT..X-Rancher-Version: v1.5.5..Content-Type: text/html; charset=ISO-
  8859-1..Cache-Control: must-revalidate,no-cache,no-store..Content-Length: 321..Server: Jetty(9.2.11.v20150529)......
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>.<title>Error 500 Server Error</title>..
HTT
  P ERROR 500
.
Problem accessing /v2-beta/projects/1a28/subscribe. Reason:.
    Server Error

Pow
  ered by Jetty://
....

I didn't expect the problem to go away but now we can compare what is sent to fabio and what fabio sends to rancher.
BTW, -W byline formats the output by line.

Could you also capture with -s 1520 to make sure the entire body is captured since this looks truncated. I need to see the full request. Also, I'm assuming right now that the incoming request to fabio works on rancher unmodified.

I think I see the problem:
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=14 HTTP/1.1

These can't be the same requests. Look at the cookie and the websocket key.
 Look at the cookie and the websocket key.

Oh, sorry, I lost it. Ok, I will do it right way.
P.S. I found something about this exception. I'm not sure that this it hasn't been resolved, but the problem with

Second try:
Dump behind fabio Fabio <-> Capturing(ngrep) <-> Rancher:
T x.x.211.37:48514 -> <IP_ADDRESS>:8080 [AP]
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1.
Host: rancher.x.x.x.
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36.
Accept-Encoding: gzip, deflate, sdch.
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4.
Cache-Control: no-cache.
Connection: Upgrade.
Cookie: PL=rancher; token=UFpPFaQTPfCwn3yCqmVeTSNUHiwDDZCpdQgJ8rWo; CSRF=115909254B.
Forwarded: for=<IP_ADDRESS>; proto=ws; by=x.x.211.37.
Origin: http://rancher.x.x.x.
Pragma: no-cache.
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits.
Sec-Websocket-Key: lGEnYPVpBoP7o5autfutNQ==.
Sec-Websocket-Version: 13.
Upgrade: websocket.
X-Forwarded-For: <IP_ADDRESS>.
X-Forwarded-Port: 80.
X-Forwarded-Proto: ws.
X-Real-Ip: <IP_ADDRESS>.
.

T <IP_ADDRESS>:8080 -> x.x.211.37:48514 [AP]
HTTP/1.1 500 Server Error.
Date: Thu, 11 May 2017 07:50:18 GMT.
X-Rancher-Version: v1.5.5.
Content-Type: text/html; charset=ISO-8859-1.
Cache-Control: must-revalidate,no-cache,no-store.
Content-Length: 321.
Server: Jetty(9.2.11.v20150529).
.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 500 Server Error</title>

HTTP ERROR 500

Problem accessing /v2-beta/projects/1a28/subscribe. Reason:

    Server Error

Powered by Jetty://

Dump before fabio Outside <-> Capturing(ngrep) <-> Fabio <-> Rancher:
T <IP_ADDRESS>:49984 -> x.x.211.37:80 [AP]
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1.
Host: rancher.x.x.x.
Connection: Upgrade.
Pragma: no-cache.
Cache-Control: no-cache.
Upgrade: websocket.
Origin: http://rancher.x.x.x.
Sec-WebSocket-Version: 13.
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36.
Accept-Encoding: gzip, deflate, sdch.
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4.
Cookie: PL=rancher; token=UFpPFaQTPfCwn3yCqmVeTSNUHiwDDZCpdQgJ8rWo; CSRF=115909254B.
Sec-WebSocket-Key: lGEnYPVpBoP7o5autfutNQ==.
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits.
.

T x.x.211.37:48514 -> <IP_ADDRESS>:8080 [AP]
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1.
Host: rancher.x.x.x.
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36.
Accept-Encoding: gzip, deflate, sdch.
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4.
Cache-Control: no-cache.
Connection: Upgrade.
Cookie: PL=rancher; token=UFpPFaQTPfCwn3yCqmVeTSNUHiwDDZCpdQgJ8rWo; CSRF=115909254B.
Forwarded: for=<IP_ADDRESS>; proto=ws; by=x.x.211.37.
Origin: http://rancher.x.x.x.
Pragma: no-cache.
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits.
Sec-Websocket-Key: lGEnYPVpBoP7o5autfutNQ==.
Sec-Websocket-Version: 13.
Upgrade: websocket.
X-Forwarded-For: <IP_ADDRESS>.
X-Forwarded-Port: 80.
X-Forwarded-Proto: ws.
X-Real-Ip: <IP_ADDRESS>.
.

T <IP_ADDRESS>:8080 -> x.x.211.37:48514 [AP]
HTTP/1.1 500 Server Error.
Date: Thu, 11 May 2017 07:50:18 GMT.
X-Rancher-Version: v1.5.5.
Content-Type: text/html; charset=ISO-8859-1.
Cache-Control: must-revalidate,no-cache,no-store.
Content-Length: 321.
Server: Jetty(9.2.11.v20150529).
.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 500 Server Error</title>

HTTP ERROR 500

Problem accessing /v2-beta/projects/1a28/subscribe. Reason:

    Server Error

Powered by Jetty://

T x.x.211.37:80 -> <IP_ADDRESS>:49984 [AP]
HTTP/1.1 500 Server Error.
Date: Thu, 11 May 2017 07:50:18 GMT.
X-Rancher-Version: v1.5.5.
Content-Type: text/html; charset=ISO-8859-1.
Cache-Control: must-revalidate,no-cache,no-store.
Content-Length: 321.
Server: Jetty(9.2.11.v20150529).
.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 500 Server Error</title>

HTTP ERROR 500

Problem accessing /v2-beta/projects/1a28/subscribe. Reason:

    Server Error

Powered by Jetty://

The delta is that fabio adds some headers (expected) and that the header names are normalized (go stdlib behavior) which could trip rancher up. Other than that there is no difference.
Try sending the request with telnet to rancher (just copy the lines into a text file, select all and then paste. Make sure there is a newline at the end). Then try the same with the changed header names.
Sec-WebSocket-Version: 13.
Sec-WebSocket-Key: lGEnYPVpBoP7o5autfutNQ==.
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits.

vs

Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits.
Sec-Websocket-Key: lGEnYPVpBoP7o5autfutNQ==.
Sec-Websocket-Version: 13.

If that's not the problem then it is indeed what is in the added headers. A simple way to test this is to make the request with the X-Forwarded-Proto header set to http for example since fabio won't overwrite it if it is set:
https://github.com/fabiolb/fabio/blob/master/proxy/http_headers.go#L47-L49
Forwarded: for=<IP_ADDRESS>; proto=ws; by=x.x.211.37.
X-Forwarded-For: <IP_ADDRESS>.
X-Forwarded-Port: 80.
X-Forwarded-Proto: ws.
X-Real-Ip: <IP_ADDRESS>.

Huh, It doesn't make any difference. But I found out some interesting thing. When I send this request to the same opened connection twice by telnet or netcat, WS works fine. Rancher sends me ping/pong responses and other JSON stuff. Mystery thing. Could you check this dump? Maybe I did something wrong.
Dump:
Trying x.x.211.37...
Connected to gateway.herzen.spb.ru.
Escape character is '^]'.
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1
Host: x.x.spb.ru
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://x.x.spb.ru
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PL=rancher; token=UFpPFaQTPfCwn3yCqmVeTSNUHiwDDZCpdQgJ8rWo; CSRF=115909254B
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: lGEnYPVpBoP7o5autfutNQ==
Sec-WebSocket-Version: 13

HTTP/1.1 500 Server Error
Date: Thu, 11 May 2017 16:14:19 GMT
X-Rancher-Version: v1.5.5
Content-Type: text/html; charset=ISO-8859-1
Cache-Control: must-revalidate,no-cache,no-store
Content-Length: 321
Server: Jetty(9.2.11.v20150529)

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 500 Server Error</title>

HTTP ERROR 500

Problem accessing /v2-beta/projects/1a28/subscribe. Reason:

    Server Error

Powered by Jetty://

GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1
Host: x.x.spb.ru
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://x.x.spb.ru
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PL=rancher; token=UFpPFaQTPfCwn3yCqmVeTSNUHiwDDZCpdQgJ8rWo; CSRF=115909254B
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: lGEnYPVpBoP7o5autfutNQ==
Sec-WebSocket-Version: 13

HTTP/1.1 101 Switching Protocols
Date: Thu, 11 May 2017 16:14:21 GMT
X-Rancher-Version: v1.5.5
X-API-Schemas: http://x.x.spb.ru/v2-beta/projects/1a28/schemas
X-API-ACCOUNT-ID: 1a28
X-API-USER-ID: 1a5
X-API-Client-IP: 0:0:0:0:0:0:0:1
Set-Cookie: CSRF=115909254B;Path=/
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Connection: Upgrade
Sec-WebSocket-Accept: uxyZvTDbShJgOdzMTPsOq/nC2/k=
Upgrade: WebSocket
Content-Type: text/plain

P.S. Did something wrong in previous message meant: "I forgot how TCP works and saw strange things" :smile:

Yeah, it's about Java URL parsing. It reads X-Forwarded-Proto and doesn't know about ws protocol and throws exception. it works fine with http or https in Forwarded-Proto. So this bug isn't only about Rancher, but about apps that were written in Java.

This seems relevant: http://stackoverflow.com/questions/2406518/why-does-javas-url-class-not-recognize-certain-protocols. Use java.net.URI instead of java.net.URL.
import java.net.URL;
import java.net.URI;

class Playground {
    public static void main(String[ ] args) throws Exception {
        // URL url = new URL("ws://foo.com/bar"); // throws MalformedURLException
        URI url = new URI("ws://foo.com/bar");
        System.out.println(url.toString());
    }
}

@magiconair I think, there is a lot of legacy code that can be damaged by this. But anywat, thank you! I'm going to open issue about it in rancher repo. I hope they will read another issue which I opened...

Just some quick researching it appears there isn't a real standard for what X-Forwarded-Proto should contain but Amazon and Mozilla at least seem to indicate it should only be http or https.  @magiconair have any thoughts about that?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto
http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/x-forwarded-headers.html#x-forwarded-proto

And issue in Traefik repo. It seems that they use http for ws and https for wss.

@ket4yii can you put a link to the rancher issue you've opened here?
Since X-Forwarded-Proto isn't really specified I'd say lets do what works. The Forwarded header though is specified and there is no such restriction: https://tools.ietf.org/html/rfc7239#section-5.4

I've pushed a change. Could you test whether that works for you?

The Forwarded header though is specified and there is no such restriction: https://tools.ietf.org/html/rfc7239#section-5.4

Wow. I've lost this section when I read this RFC.

@ket4yii can you put a link to the rancher issue you've opened here?
The link.

Could you test whether that works for you?

Ok, I'll do it tommorow and send you response. Thank you a lot!

@magiconair It seems to work perfect. Here is a few packets that were captured between rancher and fabio when WS connection was established.
WS packets:
T x.x.211.37:36968 -> <IP_ADDRESS>:8080 [AP]
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1.
Host: rancher.x.x.x.
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36.
Accept-Encoding: gzip, deflate, sdch.
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4.
Cache-Control: no-cache.
Connection: Upgrade.
Cookie: PL=rancher; token=jzw6KHCtd1KPyLiiA6qCzFTV5tq4U24iQ2zGu93J; CSRF=3696332F83.
Forwarded: for=<IP_ADDRESS>; proto=ws; by=x.x.211.37.
Origin: http://rancher.x.x.x.
Pragma: no-cache.
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits.
Sec-Websocket-Key: ylxlhTGmeJM4DtkEzwfWWg==.
Sec-Websocket-Version: 13.
Upgrade: websocket.
X-Forwarded-For: <IP_ADDRESS>.
X-Forwarded-Port: 80.
X-Forwarded-Proto: http.
X-Real-Ip: <IP_ADDRESS>.
.

T <IP_ADDRESS>:8080 -> x.x.211.37:36968 [AP]
HTTP/1.1 101 Switching Protocols.
Date: Fri, 12 May 2017 15:09:04 GMT.
X-Rancher-Version: v1.5.5.
X-API-Schemas: http://rancher.x.x.x./v2-beta/projects/1a28/schemas.
X-API-ACCOUNT-ID: 1a28.
X-API-USER-ID: 1a5.
X-API-Client-IP: <IP_ADDRESS>.
Set-Cookie: CSRF=3696332F83;Path=/.
Expires: Thu, 01 Jan 1970 00:00:00 GMT.
Connection: Upgrade.
Sec-WebSocket-Accept: aieDS0nAQheGmrrijsIfST4QkOs=.
Upgrade: WebSocket.
Content-Type: text/plain.

WSS packets:
 x.x.211.37:38642 -> <IP_ADDRESS>:8080 [AP]
GET /v2-beta/projects/1a28/subscribe?eventNames=resource.change&limit=-1&sockId=1 HTTP/1.1.
Host: rancher.x.x.x.
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36.
Accept-Encoding: gzip, deflate, sdch, br.
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4.
Cache-Control: no-cache.
Connection: Upgrade.
Cookie: PL=rancher; token=jzw6KHCtd1KPyLiiA6qCzFTV5tq4U24iQ2zGu93J; CSRF=3696332F83.
Forwarded: for=<IP_ADDRESS>; proto=wss; by=x.x.211.37.
Origin: https://rancher.x.x.x.
Pragma: no-cache.
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits.
Sec-Websocket-Key: 38niATh2tnbfErkt9+BHDg==.
Sec-Websocket-Version: 13.
Upgrade: websocket.
X-Forwarded-For: <IP_ADDRESS>.
X-Forwarded-Port: 443.
X-Forwarded-Proto: https.
X-Real-Ip: <IP_ADDRESS>.
.

T <IP_ADDRESS>:8080 -> x.x.211.37:38642 [AP]
HTTP/1.1 101 Switching Protocols.
Date: Fri, 12 May 2017 15:12:28 GMT.
X-Rancher-Version: v1.5.5.
X-API-Schemas: https://rancher.x.x.x/v2-beta/projects/1a28/schemas.
X-API-ACCOUNT-ID: 1a28.
X-API-USER-ID: 1a5.
X-API-Client-IP: <IP_ADDRESS>.
Set-Cookie: CSRF=3696332F83;Path=/.
Expires: Thu, 01 Jan 1970 00:00:00 GMT.
Connection: Upgrade.
Sec-WebSocket-Accept: DO3pXQWXQ1WieG86VY2JLCjQDbU=.
Upgrade: WebSocket.
Content-Type: text/plain.

@ket4yii awesome.  Thank you everyone for the work on this issue.

ok, I'll merge it soon then. Thanks for testing!

Confirming I'm still using this. (Just got to this thread). @magiconair thanks for your work. @ket4yii thanks for testing. Am keen to know which version this fix goes into.

It is on master. You can build it yourself for now.


move to TF 11.0

Move Travis and requirements to TF 11.0.
I think it might also be good to mention the supported version (or versions?) of TF in the readme and documentation.
Currently there are 3 places that mention the TF version (.travis.yml and two requirement files). Would it be possible to somehow reduce them to one place to avoid inconsistent settings (as it was before this PR: we were telling users to install TF 10, but tests on Travis were running with TF 11.0rc0)?

As soon as the TF 0.12 is out (which is now, by the way), it will be the only supported version (because of the orthogonal initializers for recurrent weights).

[ ] tf.initialize_all_variables is deprecated in tf 0.12

Well, since TF 12.0 is only a release candidate and NM does not work with it yet, I'd like to merge this anyway.
This PR is about documenting and setting the TF version in NM, not about problems with particular version, so move TF 12 issues to #156, please.

Ok.

I can't think of a way how to automate it. Maybe we can maintain a checklist telling what needs to be done if migrate to different version of TF.

We could use this github project's wiki for things like this, that we don't
want to put in user documentation.
2016-11-30 12:15 GMT+00:00 Jindřich Libovický<EMAIL_ADDRESS>
I can't think of a way how to automate it. Maybe we can maintain a
checklist telling what needs to be done if migrate to different version of
TF.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ufal/neuralmonkey/pull/158#issuecomment-263859580,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABwcs1JJoMuDHupQdiijmMd7A65yCsg8ks5rDWjXgaJpZM4LAFWP
.


Create chart and container

To complete the Alpha release, we need a Helm Chart as a deliverable that allows teams to spin up the alpha-registry.
todo:

[ ] Create a dockerfile for the alpha-server .
[ ] Create workflow to release the docker image when a branch is merged to main.
[ ] Create helm chart.
[ ] Create workflow that publishes the helm chart.

Questions

How should we do version management?
semver?
Should we use git tags or commit the versions in a file?

Maybe pulumi could be a way of setting up this workflow


Refactorized files for Hosting support (on Railway)

Support for Railway's hosting (Ignore Vercel fail, we will be fixing that issue as soon  as possible (in case we still consider it necessary to use that hosting provider))


Grain vs. tf.data Input Pipeline

Hello MaxText Team,
I'm in the process of deciding between Grain and tf.data for the input pipeline of my next research project, that will be based on Flax. While I recognize the potential benefits of both, I'm particularly interested in understanding the advantages of using Grain over tf.data from your experience, especially regarding runtime performance aspects.
Could you share any benchmarks or insights on the runtime performance differences you observed between the two input pipelines? Additionally, any details on scenarios where Grain particularly outshines tf.data or vice versa would be incredibly helpful for my decision-making process.
Thank you very much for your time and for any information you can provide.
All the best,

@aireenmei to give context.
Mostly runtime performance is that both are fast enough to not be your bottleneck but Grain gives determinism guarantees!

Hi @leandrolcampos,
The biggest benefit of grain is determinism. No matter how your run gets interrupted, you can always recover the same data order from your checkpoint, so your loss curve is reproducible, debuggable.
Other benefits includes:

minimal dependency, especially if you don't want to depends on TensorFlow
Close to a global shuffle, while the shuffle in tf.data is limited by memory
For some transformations, it may be easier to implement in numpy

And like I mentioned with you in another thread under grain repo, I just put up some grain docs: https://github.com/google/grain/tree/main/docs

Hi @rwitten and @aireenmei,
Thanks for your answers. They helped me to better understand the PyGrain value proposition. I'm looking forward to use it in my next research projects.
All the best,


chore(deps): update common-dev-assets digest to 3d44f8a

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
d3a341c -> 3d44f8a

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

:tada: This issue has been resolved in version 1.2.24 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Check if TV Audio is playing through speaker

I think a great feature to add in the future would be an easy way to check if audio is from TV. However, in the meantime, how would I go about doing this?

Closed by #225


Log errors - most probably NOT relevant

Hi,
Excellent utility! I read about it a blog and had to debullshit asap (option 1). I noticed a few little errors such as can't read, cannot remove, failed to remove that I thought you may be interested in. This is Ubuntu 23.04 running as Virtualbox VM. Actually, I don't think they may be relevant as my new vanilla GNOME Ubuntu runs smoothly.
Processing triggers for desktop-file-utils (0.26-1ubuntu5) ...
[*] Removing terminal ads (if they are enabled)
sed: can't read /etc/default/motd-news: No such file or directory
[*] Deleting everything snap related
error: cannot remove "bare": snap "bare" is not removable: snap is being used by snap
       gtk-common-themes.
error: cannot remove "core22": snap "core22" is not removable: snap is being used by snaps firefox,
       gnome-42-2204, snap-store and snapd-desktop-integration.
firefox removed
gnome-42-2204 removed
gtk-common-themes removed
snap-store removed
error: cannot remove "snapd": snap "snapd" is not removable: remove all other snaps first
snapd-desktop-integration removed
bare removed
core22 removed
snapd removed
No snaps are installed yet. Try 'snap install hello-world'.
Warning: Stopping snapd.service, but it can still be activated by:
  snapd.socket

...

Purging configuration files for snapd (2.59.1+23.04ubuntu1) ...
rmdir: failed to remove '/etc/systemd/system/snapd.mounts.target.wants': No such file or directory
Discarding preserved snap namespaces
Final directory cleanup
Removing extra snap-confine apparmor rules
Removing snapd cache
Removing snapd state
Purging configuration files for firefox (1:1snap1-0ubuntu3) ...
Package: snapd
Pin: release a=*
Pin-Priority: -10

As said, excellent utility!

Yeah, these errors are because snaps have dependencies between themselves. I ended up writing a function that keeps trying to uninstall them from the snap package list until none is left. The errors are from the attempts, as it says is not removable: snap is being used.... If the script passes it means that everything has been removed. Anyways i have to fix it and I'll probably catch the errors so users don't get worried about it


Image width in outlook is overflowing

Describe the bug
Whenever I try to make a new email using an image that is wider than 600px, it overflows and shows on its original size on outlook only. This makes in hard to look at the image unless you open in with a browser.
To Reproduce
Steps to reproduce the behavior:

Create a file with this MJML code: <mjml>...</mjml> and include an mj-image element exactly like they do in the documentation (nested inside a mj-section > mj-column > mj-image
I have tried with no width, with width="600px", width="100%", height="auto", without height="auto" and nothing fixes it
Send the HTML to an email address and view it on outlook.
See image sized bigger than the rest of the viewport.

Expected behavior
The image should be sized down to fit inside the container column, which for some reason is not happening.
MJML environment (please complete the following information):

OS: Windows
MJML Version 4.15.3
MJML tool used: MJML App, and npm package does not work either.

Email sending environment(for rendering issues):

Odoo Email Marketing  Module

Affected email clients (for rendering issues):

Email Client: Outlook
OS: Windows

Screenshots

Additional context
I am using the newsletter template as a base (from the MJML app templates).

Can you try to provide the MJML and test with putsmail.com at least

Message ID: @.***>

Closing for now, feel free to reopen with more details


Why the project uses XML API?

Last.FM has JSON API with format=json
http://www.last.fm/api/rest

@youpy ping.
I can rewrite the project with json if there's no reason because it's easier for debugging etc.

In 2 years ago, there's (maybe) a bug that a response returns as XML even if 'format=json'.
Another reason to use XML API is it's easiness to parse using xmlsimple and it's 'ForceArray' options.
So I write whole project from JSON to XML.
But if you find a better solution, patches are welcome!


A way to generate random values for some results

e.g.

my_var: $random_int(1, 3)$
my_var: $choose(a, b, c)$

Having a way to embed python code in the config file should do the trick.

This can be achieved via plugins.


toExports strips anything that look like an extension from package names

Environment
unimport: 3.0.11
node: v18.16.1
Reproduction
I raised this issue initially in Nuxt but soon realised the issue appears to come from this package.
https://github.com/nuxt/nuxt/issues/23930
When using toExports with any export name containing anything that looks like an extension such as chart.js the issue presents.
Describe the bug
The issue is caused by:
https://github.com/unjs/unimport/blob/7df98d0a6a7b53437514eb078c295dfc5ec86087/src/utils.ts#L121
This attempts to strip anything that looks like an extension from the name resulting in the incorrectly generated import from something like chart.js of just chart.
As a temporary workaround you can simply change it to chart.JS which avoids this regex matching. However this may also be an issue that this extension stripping should perhaps not be case-sensitive?
Not sure how to achieve this but the extension stripping should never be done on packages. Could we perhaps change the matcher to only concern itself with something which starts with ./ or a multi part filepath always ignoring the first segment?
Additional context
No response
Logs
No response

Just a note for anyone that tries the workaround it may not be successful in CI as both my GitHub builds and Vercel builds fail to find chart.JS due to casing of the JS.

There are two tests that failed but I believe they may be incorrect tests.
https://github.com/unjs/unimport/blob/7df98d0a6a7b53437514eb078c295dfc5ec86087/test/to-export.test.ts#L66C32-L66C33
I believe they should be changed from this:

to this:

These tests actually should fail as the from may include a package name such as chart.js which will have the .js stripped. The first segment of the path without a preceeding / or ./ should not be altered.

@manniL is there anyone who might be able to take a look at the PR I raised over the weekend? Thanks!


Approaches to debugging Angular 2 applications

Added a guide that provides guidelines for debugging Angular 2 apps using different approaches and tools.

Breaks the "Integrations" header. Would you add a newline in the end?

Done. Sorry for the inconvenience. Rookie mistakes.


Unstable test TestTTLRefresh

Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)

https://github.com/pingcap/tiproxy/actions/runs/6376271588/job/17303122773?pr=373
2. What did you expect to see? (Required)
Success
3. What did you see instead (Required)
    logger.go:25: 2023-10-02T05:19:31.550Z	WARN	TestTTLRefresh	request stats	{"start time": "2023-10-02T05:19:30.750Z", "time spent": "799.668996ms", "remote": "[::1]:38438", "response type": "/etcdserverpb.KV/Range", "request count": 0, "request size": 38, "response count": 2, "response size": 330, "request content": "key:\"/topology/tiproxy\" range_end:\"/topology/tiproxz\" "}
    logger.go:25: 2023-10-02T05:19:31.550Z	WARN	TestTTLRefresh.etcdcli	retrying of unary invoker failed	{"target": "etcd-endpoints://0xc0007c6380/[::]:45267", "attempt": 0, "error": "rpc error: code = Canceled desc = context canceled"}
    logger.go:25: 2023-10-02T05:19:31.550Z	ERROR	TestTTLRefresh	failed to store topology info	{"error": "context canceled"}
    logger.go:25: 2023-10-02T05:19:31.551Z	WARN	TestTTLRefresh.etcdcli	retrying of unary invoker failed	{"target": "etcd-endpoints://0xc0007c6380/[::]:45267", "attempt": 0, "error": "rpc error: code = Canceled desc = context canceled"}
    logger.go:25: 2023-10-02T05:19:31.551Z	ERROR	TestTTLRefresh	failed to update topology ttl	{"error": "context canceled"}
    logger.go:25: 2023-10-02T05:19:31.652Z	WARN	TestTTLRefresh.etcdcli	retrying of unary invoker failed	{"target": "etcd-endpoints://0xc0007c6380/[::]:45267", "attempt": 0, "error": "rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
    info_test.go:245:
        	Error Trace:	/home/runner/work/tiproxy/tiproxy/pkg/manager/infosync/info_test.go:245
        	            				/home/runner/work/tiproxy/tiproxy/pkg/manager/infosync/testing.go:1041
        	            				/home/runner/work/tiproxy/tiproxy/pkg/manager/infosync/testing.go:1210
        	            				/home/runner/work/tiproxy/tiproxy/pkg/manager/infosync/testing.go:1440
        	Error:      	Received unexpected error:
        	            	closing InfoSyncer:
        	            		context deadline exceeded
        	Test:       	TestTTLRefresh
FAIL

4. What is your version? (Required)

master

Another appearance:
  info_test.go:273:
        	Error Trace:	/Users/zhangming/gopath/src/github.com/pingcap/tiproxy/pkg/manager/infosync/info_test.go:273
        	            				/Users/zhangming/gopath/src/github.com/pingcap/tiproxy/pkg/manager/infosync/info_test.go:79
        	Error:      	Received unexpected error:
        	            	closing InfoSyncer:
        	            		context deadline exceeded
        	            	github.com/pingcap/tiproxy/pkg/manager/infosync.(*InfoSyncer).removeTopology
        	            		/Users/zhangming/gopath/src/github.com/pingcap/tiproxy/pkg/manager/infosync/info.go:227
        	            	github.com/pingcap/tiproxy/pkg/manager/infosync.(*InfoSyncer).Close
        	            		/Users/zhangming/gopath/src/github.com/pingcap/tiproxy/pkg/manager/infosync/info.go:278
        	            	github.com/pingcap/tiproxy/pkg/manager/infosync.(*etcdTestSuite).closeInfoSyncer
        	            		/Users/zhangming/gopath/src/github.com/pingcap/tiproxy/pkg/manager/infosync/info_test.go:273
        	            	github.com/pingcap/tiproxy/pkg/manager/infosync.TestClientShutDown4Sync
        	            		/Users/zhangming/gopath/src/github.com/pingcap/tiproxy/pkg/manager/infosync/info_test.go:79
        	            	testing.tRunner
        	            		/usr/local/Cellar/go/1.21.0/libexec/src/testing/testing.go:1595
        	            	runtime.goexit
        	            		/usr/local/Cellar/go/1.21.0/libexec/src/runtime/asm_amd64.s:1650
        	Test:       	TestClientShutDown4Sync


Expand 'CLI Options' description

Hi! :)
Just little fix that will help everyone understand how to use -s flag on start-storybook and build-storybook commands
https://github.com/storybooks/storybook/pull/1161

Thanks for the follow up. This is great!  Closing this now :)


add optimization to enable attention slicing during conversion

per discussion in https://github.com/ssube/onnx-web/issues/241

diffusers-attention-slicing-auto is an alias for diffusers-attention-slicing and diffusers-attention-slicing-max has been added to enable max slicing.


AttributeError: 'MaxPool2D' object has no attribute 'set_scoring_mode'

I am using a VGG16 model with "include_top=False" i.e. having Maxpool2D as its last layer.
Is Maxpool2D as the target layer not possible or it is just not implemented?

Just not implemented. If you were to conduct interpretation, would you do
it with respect to a single neuron in the maxpooling output? Or would you
do it with respect to some combination of output neurons?
On Thu, Jun 6, 2019 at 2:01 AM Muskaan Jain<EMAIL_ADDRESS>wrote:

I am using a VGG16 model with "include_top=False" i.e. having Maxpool2D as
its last layer.
Is Maxpool2D as the target layer not possible or it is just not
implemented?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kundajelab/deeplift/issues/82?email_source=notifications&email_token=AARSFBRHIPHIZENIJLOWZR3PZDG5RA5CNFSM4HU64YW2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GX6442Q,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARSFBTEGV6DCVQUBBAMFLTPZDG5RANCNFSM4HU64YWQ
.

--
Sent from my phone, please excuse brevity/typos

with some combination of output neurons.

Nice running into you at ISMB yesterday! To recap, all the backpropagation-based interpretation methods rely on a single output at which to start the backprop. My recommendation is that for interpretation, you could add a fully-connected neuron that encodes the combination of maxpooling neurons you are interested in, and then do interpretation with respect to that fully-connected neuron. If you run into issues of particular architectures not being supported, you could also use DeepSHAP (a combination of DeepLIFT + the SHAP method): https://github.com/kundajelab/deeplift#my-model-architecture-is-not-supported-by-this-deeplift-implementation-what-should-i-do


Release 1.6.2 notes for CS

Signed-off-by: Mary Anthony<EMAIL_ADDRESS>

ping @docker/docs-owners needed for release


Add content for apply/discard changes confirmation modal from alarm limits screen

This PR:

adds a Cancel button that resets the changes, and renames apply changes to Submit
disables Submit and Cancel button if there is no change in limits and vice versa.
hide both these buttons when in standby mode.
rename AlarmLimitsRequestResponse:standby ParametersRequestResponse:standby to draft and rename accordingly
fix a few console errors related to Grid tag in modalpopup:

Failed prop type: The prop alignItems of Grid must be used on container.
Following component has two or more children with the same key attribute: "indicator-[object Object]". This may cause glitches and misbehavior in rendering process. Component:

modal popup content shows the changed limits for both Submit and Cancel
handle discarding of changes in modal popup

@Sudhir-dev Item number 3 is necessary but seems like it might be complicated because it probably interacts with routing. We'll need to have documentation before proceeding with this

Observations from testing:

When I first start the frontend and am in standby mode, the alarm limits are initialized as SpO2 = [90 - 100], HR = [60 - 100]. If I change the alarm limits and press the "Discard Changes" button, the confirmation dialog which pops up asks if I want to keep SpO2 at [90 - 100] and HR at [60 - 100]. If I press "Confirm", it does what it says - good.
Now I think the presence of "Discard Changes" and absence of the "Apply Changes" button in standby mode is confusing. When I see a button in the lower-right corner, I'm primed to think it means "Apply Changes" - this is the pattern set everywhere else in the frontend. I found myself instinctively trying to click it to save changes, without reading the button, Let's just hide the "Cancel"/"Discard Changes" button in standby mode, to make button placement in the frontend more consistent with assumptions we want to encourage the user to make. This also would make the Alarm Limits screen more consistent with the Quickstart screen.
When I start the frontend, start ventilation without changing any alarm limits, change the alarm limits from the alarm limits page, save the changes (e.g. to SpO2 = [90 - 99], HR = [60 - 99]), navigate to the dashboard, the dashboard reflects the new AlarmLimitsRequest values. But if I then navigate back to the alarm limits page, it shows the alarm limits as the values from before saving changes (namely it shows them as SpO2 = [90 - 100] and HR = [60 - 100]). Initially the "Cancel" and "Submit" buttons are disabled, even though the values shown on the screen are different from the actual values of AlarmLimitsRequest. Once I start adjusting the alarm limits, then the enabled/disabled state behaviors of the "Cancel" and "Submit" buttons become correct with respect to the actual values of the AlarmLimitsRequest (so e.g. if I use the alarm limits buttons to change the SpO2 and HR upper limits to 99 again, then the Cancel & Submit buttons are disabled; but once I change them back to 100, then the Cancel & Submit buttons become enabled)

Perhaps we should pause work on this PR until after we merge #340, because that PR uses AlarmLimitsRequestStandby as the only place to store unsaved changes for AlarmLimitsRequest - so it will interact with the bug I describe in item 3, and it might even fix that behavior if the "Cancel" button confirmation dialog triggers a dispatch which changes the values of AlarmLimitsRequestStandby to be overwritten with the values of AlarmLimitsRequest.

Observations from testing:

When I first start the frontend and am in standby mode, the alarm limits are initialized as SpO2 = [90 - 100], HR = [60 - 100]. If I change the alarm limits and press the "Discard Changes" button, the confirmation dialog which pops up asks if I want to keep SpO2 at [90 - 100] and HR at [60 - 100]. If I press "Confirm", it does what it says - good.
Now I think the presence of "Discard Changes" and absence of the "Apply Changes" button in standby mode is confusing. When I see a button in the lower-right corner, I'm primed to think it means "Apply Changes" - this is the pattern set everywhere else in the frontend. I found myself instinctively trying to click it to save changes, without reading the button, Let's just hide the "Cancel"/"Discard Changes" button in standby mode, to make button placement in the frontend more consistent with assumptions we want to encourage the user to make. This also would make the Alarm Limits screen more consistent with the Quickstart screen.

I concur, I will disable it.

When I start the frontend, start ventilation without changing any alarm limits, change the alarm limits from the alarm limits page, save the changes (e.g. to SpO2 = [90 - 99], HR = [60 - 99]), navigate to the dashboard, the dashboard reflects the new AlarmLimitsRequest values. But if I then navigate back to the alarm limits page, it shows the alarm limits as the values from before saving changes (namely it shows them as SpO2 = [90 - 100] and HR = [60 - 100]). Initially the "Cancel" and "Submit" buttons are disabled, even though the values shown on the screen are different from the actual values of AlarmLimitsRequest. Once I start adjusting the alarm limits, then the enabled/disabled state behaviors of the "Cancel" and "Submit" buttons become correct with respect to the actual values of the AlarmLimitsRequest (so e.g. if I use the alarm limits buttons to change the SpO2 and HR upper limits to 99 again, then the Cancel & Submit buttons are disabled; but once I change them back to 100, then the Cancel & Submit buttons become enabled)

Yep, I found this bug too, and was working on fixing that!

Perhaps we should pause work on this PR until after we merge #340, because that PR uses AlarmLimitsRequestStandby as the only place to store unsaved changes for AlarmLimitsRequest - so it will interact with the bug I describe in item 3, and it might even fix that behavior if the "Cancel" button confirmation dialog triggers a dispatch which changes the values of AlarmLimitsRequestStandby to be overwritten with the values of AlarmLimitsRequest.

Yes, I agree, meanwhile I'll try to locally get this PR working with those changes.

When I start the frontend, start ventilation without changing any alarm limits, change the alarm limits from the alarm limits page, save the changes (e.g. to SpO2 = [90 - 99], HR = [60 - 99]), navigate to the dashboard, the dashboard reflects the new AlarmLimitsRequest values. But if I then navigate back to the alarm limits page, it shows the alarm limits as the values from before saving changes (namely it shows them as SpO2 = [90 - 100] and HR = [60 - 100]). Initially the "Cancel" and "Submit" buttons are disabled, even though the values shown on the screen are different from the actual values of AlarmLimitsRequest. Once I start adjusting the alarm limits, then the enabled/disabled state behaviors of the "Cancel" and "Submit" buttons become correct with respect to the actual values of the AlarmLimitsRequest (so e.g. if I use the alarm limits buttons to change the SpO2 and HR upper limits to 99 again, then the Cancel & Submit buttons are disabled; but once I change them back to 100, then the Cancel & Submit buttons become enabled)

This seems to be have been fixed after light testing on top of your store changes.

Here's my test procedure - the code generally passes these tests, except for a weird edge case:

Start the simulator backend and the frontend. Set SpO2 alarm limits to [90 - 100] and HR limits to [60 - 100]. Start ventilation.
"Return to dashboard" button: Set SpO2 alarm limits to [90 - 95] and HR limits to [60 - 110]. When I press the topbar button to return to the dashboard, the confirmation dialogue shows the changes I'm discarding. When I press "Cancel" on the confirmation dialogue, I keep my previous values ✅. When I press "Cancel" and then "Confirm", SpO2 alarm limits are reset to [90 - 100] and HR limits are reset to [60 - 100] ✅.
Cancel button: Set SpO2 alarm limits to [90 - 95] and HR limits to [60 - 110]. When I press "Cancel", the confirmation dialogue shows the changes I'm discarding. When I press "Cancel" on the confirmation dialogue, I keep my previous values ✅. When I press "Cancel" and then "Confirm", SpO2 alarm limits are reset to [90 - 100] and HR limits are reset to [60 - 100] ✅.
Submit button: Set SpO2 alarm limits to [90 - 95] and HR limits to [60 - 110]. When I press "Submit", the confirmation dialogue shows the changes I'm submitting. When I press "Cancel" on the confirmation dialogue, I keep my unsaved values ✅. When I press "Submit" and then "Confirm", SpO2 alarm limits are changed to [90 - 95] and HR limits are reset to [60 - 110] ✅.
Making changes via the Active Alarms modal from the alarm limits screen with no unsaved changes: Go to the alarm limits screen (SpO2 alarm limits are [90 - 95] and HR limits are [60 - 110]), and open the Active Alarms modal where both SpO2 is too high and HR is too high alarms are active. Open the SpO2 Alarms modal, and set SpO2 alarm limits to [90 - 100]. When I press Submit and Confirm, and then I close the Active Alarms modal, now the alarm limits screen shows SpO2 alarm limits as [90 - 100], and the Cancel/Submit buttons are disabled ✅.
Overriding an unsaved change on the alarm limits screen from the Active Alarms modal: Go to the alarm limits screen (SpO2 alarm limits are [90 - 100] and HR limits are [60 - 110]), and make an unsaved change to set HR alarm limits to [60 - 100]. Open the Active Alarms modal where the HR is too high alarm is active. Open the HR Alarms modal, and set HR alarm limits to [60 - 120]. When I press Submit and Confirm, and then I close the Active Alarms modal, now the alarm limits screen shows HR alarm limits as [60 - 120], and the Cancel/Submit buttons are disabled ✅.
Making an unsaved change on the alarm limits screen, and changing a different alarm limits range from the Active Alarms modal: Go to the alarm limits screen (SpO2 alarm limits are [90 - 100] and HR limits are [60 - 120]), and make an unsaved change to set SpO2 alarm limits to [90 - 95]. Open the Active Alarms modal where HR is too high alarm is active. Open the HR Alarms modal, and set HR alarm limits to [60 - 110]. When I press Submit and Confirm, and then I close the Active Alarms modal, now the alarm limits screen shows HR alarm limits as [60 - 100], SpO2 is still shown as [90 - 95], and the Cancel/Submit buttons are still enabled ✅. But when I press the "Submit" button, it doesn't show the unsaved change to SpO2 alarm limits - the description is blank ❌. When I press the "Confirm" button, it does save the unsaved SpO2 alarm limit as [90 - 95].
Making an unsaved change on the alarm limits screen, overwriting it from the Active Alarms modal, and making another unsaved change on the alarm limits screen: Go to the alarm limits screen (SpO2 alarm limits are [90 - 95] and HR limits are [60 - 110]), and make an unsaved change to set SpO2 alarm limits to [90 - 100]. Open the Active Alarms modal where the SpO2 and HR too high alarms are active. Open the HR Alarms modal, and set SpO2 alarm limits to [90 - 100]. When I press Submit and Confirm, and then I close the Active Alarms modal, now the alarm limits screen shows SpO2 alarm limits as [90 - 100], and the Cancel/Submit buttons are disabled ✅. Now change SpO2 alarm limits to [90 - 95]. When I press the "Submit" button, it doesn't show the unsaved change to SpO2 alarm limits - the description is blank ❌. When I press the "Confirm" button, it does save the unsaved SpO2 alarm limit as [90 - 95].

I haven't looked at the code yet, but the way I expect the confirmation dialog to work is that it queries a selector to identify the list of all (relevant) differences between AlarmLimitsRequestStandby and AlarmLimitsRequest and shows it. I would expect this to be robust against the bugs identified in test cases 7 and 8 above. Since the code is behaving differently, there must be something else going on. I'll do a review of the code now.

Making an unsaved change on the alarm limits screen, and changing a different alarm limits range from the Active Alarms modal: Go to the alarm limits screen (SpO2 alarm limits are [90 - 100] and HR limits are [60 - 120]), and make an unsaved change to set SpO2 alarm limits to [90 - 95]. Open the Active Alarms modal where HR is too high alarm is active. Open the HR Alarms modal, and set HR alarm limits to [60 - 110]. When I press Submit and Confirm, and then I close the Active Alarms modal, now the alarm limits screen shows HR alarm limits as [60 - 100], SpO2 is still shown as [90 - 95], and the Cancel/Submit buttons are still enabled ✅. But when I press the "Submit" button, it doesn't show the unsaved change to SpO2 alarm limits - the description is blank ❌. When I press the "Confirm" button, it does save the unsaved SpO2 alarm limit as [90 - 95].
Making an unsaved change on the alarm limits screen, overwriting it from the Active Alarms modal, and making another unsaved change on the alarm limits screen: Go to the alarm limits screen (SpO2 alarm limits are [90 - 95] and HR limits are [60 - 110]), and make an unsaved change to set SpO2 alarm limits to [90 - 100]. Open the Active Alarms modal where the SpO2 and HR too high alarms are active. Open the HR Alarms modal, and set SpO2 alarm limits to [90 - 100]. When I press Submit and Confirm, and then I close the Active Alarms modal, now the alarm limits screen shows SpO2 alarm limits as [90 - 100], and the Cancel/Submit buttons are disabled ✅. Now change SpO2 alarm limits to [90 - 95]. When I press the "Submit" button, it doesn't show the unsaved change to SpO2 alarm limits - the description is blank ❌. When I press the "Confirm" button, it does save the unsaved SpO2 alarm limit as [90 - 95].

I haven't looked at the code yet, but the way I expect the confirmation dialog to work is that it queries a selector to identify the list of all (relevant) differences between AlarmLimitsRequestStandby and AlarmLimitsRequest and shows it. I would expect this to be robust against the bugs identified in test cases 7 and 8 above. Since the code is behaving differently, there must be something else going on. I'll do a review of the code now.

@ethanjli This should fix it fb3d99797065a6b7f5417f80befa7324120071af
about the confirmation dialog quering a selector, I think what we have currently is best, since we need to see which of the two Spo2 or HR is changed and pass that dynamically with the stateKey, might be complicated if we try to use selector there

For simplicity, I would suggest that the selector should just return a list of keys whose respective values are different between alarmLimitsRequest and alarmLimitsRequestDraft. Then you would just use that as the input for the .map operation, which can check the keys against AlarmConfiguration.

Hi @ethanjli if it's possible can you review the changes to the selectors? so what I'm doing now is taking your suggestion created a RangeSelector that gives out alarmLimits/current or draft as Record<string, Range> which I can re-use in AlarmsPage and anywhere else, then taking those I compare it in the other selector which then returns a string[] (maybe this one can be improved) and finally checking if the returned string[] is empty or not and that would be the unsaved changes. Also I'm not sure about the naming should it be getAlarmLimitsRequestUnsavedKeys similarly for all, in some cases then it's too long.
thanks!

@ethanjli made the suggested changes and renamed a few things, looks good on testing on my end.

This project is licensed under Apache License v2.0 for any software, and Solderpad Hardware License v2.1 for any hardware - do you agree that your contributions to this project will be under these licenses, too? Yes.
Were any of these contributions also part of work you did for an employer or a client? No.
Does this work include, or is it based on, any third-party work which you did not create? No.

https://github.com/pez-globo/pufferfish-software/pull/338#discussion_r633041093 is the only remaining unresolved discussion, but I don't consider it a blocker, so I'm approving this PR for merging.


Headless Android Emulator Questions

Hello, I have a few questions regarding running the android emulator in headless mode. When running the emulator it seems that the devices are not being found. Also could you explain how the appium server will work and VNC in headless mode? I have screenshots attached at the bottom for reference.

After designating the headless emulator command and specifying the emulator the adb was still unable to be found.

Will look into it, and get back to you.

Awesome thank you so much!

Hello,
Firts the shell script file name called start_vnc.sh  not bootstrap (check the read me)
Regarding the screenshot your are showing, you cant use docker exec -it .... ./start_emu_headless.sh then append it with command you have wrote, it will not override the command in the shell script
But you can try to run the command itself using bash command
Docker exec -it containerName bash
Then use the command for emulator
Try using -gpu off or -gpu host, also try to add -verbose to see the error log


Missing function XGetIconSizes

I was trying to build xdvik (part of Tex Live, excluded till now), but it fails to link because Xlibe is missing the XGetIconSizes function. The XSetIconSizes function is implemented empty in stubs.c. Maybe it would be sufficient to add the Get variant there too.
It probably isn't a big deal if it doesn't work as we didn't have it until now, I just was curious if I could get it to work.
If it works, I would make a separate recipe for it, as I am currently splitting up texlive_core anyway (see https://github.com/haikuports/haikuports/pull/10913)

I've added the function in https://github.com/waddlesplash/xlibe/commit/b1841ee5108a380f690ac0c603ce342790888f02, and also fixed some other issues I found testing with it. However, there are still some problems that prevent Xaw and thus xdvik from working properly:

Xt/Xaw seems to really want ISO8859-1 font encodings, not Unicode. It gives a warning and then tries to fall back to using Unicode anyway, but then errors out later that it couldn't find some font. You can add a hack in Xlibe to report Unicode fonts as ISO8859-1 and then it at least starts up further, for the moment.
XCreatePixmapFromBitmapData isn't implemented (currently calls debugger.) This can also be commented out to get a bit further.
Font drawing seems broken; the horizontal sizing of characters looks miscomputed, so typing in textboxes looks very wrong. This is probably a bug in Xlibe somewhere, but I haven't poked around as to where.


Preceding checkpointv2 relationship fix

-> Changed the CheckpointV2Handler to use the newly implemented relationship for preceding checkpoint query
-> API break: changed the CheckpointV2Query.precedingCheckpoint method name to CheckpointV2Query.precedingCheckpointV2 to match the relationship

@nick4598 @paulius-valiunas we'll need to update the v2 checkpoint agent once this merges.

@nick4598 @paulius-valiunas we'll need to update the v2 checkpoint agent once this merges.

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run


Tetsuya Yamamoto: Watch amarnathjourney.com

Tetsuya Yamamoto requests the watch of the watch_keyword amarnathjourney\.com. See the Metasmoke search here and the Stack Exchange search here.

amarnathjourney\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

!!/approve

Coverage remained the same at 65.058% when pulling a9e1f89920041cb091b91a44ac95e511c7410404 on auto-blacklist-1524733777.5159652 into 6986650c52dc36197fe92d0c87e46d492ddb51fa on master.


refactor(detector-aws): change implementation to DetectorSync interface for lambda detector

Context
Another PR moving away from the deprecated Detector interface in order to prepare the codebase for a fix for #2320. this time is for AWS lambda detector.
Not doing all detectors at once:

detectors are independent from each other
smaller PRs for faster reviews
other detectors have a similar approach on exceptions like the described in #2328

My reasons to categorize it as a refactor are:

SDK handles both interfaces using detectResources from @opentelemetry/resources package. Ref
it is unlikely to be used oustide the SDK or auto-instrumentations

Short description of the changes

change detect method to be sync

The @opentelemetry/resources version requirement in the package.json needs to be updated as ^1.10.0.

closed in favour of #2376 following this suggestion


Initiate "animation" component

Description
The summary of the proposed changes as long as the relevant motivation and context.
Issues
RFC Link: https://github.com/opea-project/docs/blob/main/community/rfcs/24-08-02-OPEA-AIAvatarChatbot.md
Fixed commented issues in https://github.com/opea-project/GenAIComps/pull/400
Type of change
List the type of change like below. Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would break existing design and interface)
[ ] Others (enhancement, documentation, validation, etc.)

Dependencies
PR for adding "AvatarChatbot" example: https://github.com/opea-project/GenAIExamples/pull/923
Tests
Once microservice starts, user can use below script to validate the running microservice.
export ip_address=$(hostname -I | awk '{print $1}')
curl http://${ip_address}:7860/v1/animation -X POST -H "Content-Type: application/json" -d @comps/animation/assets/audio/sample_question.json

or
cd comps/animation
python3 test_animation_server.py

The expected output is a message prompting
"Video generated successfully, check $OUTFILE for the result."

Please find "outputs/result.mp4" in the current directory as a reference generated video.

Need to add an e2e test here: https://github.com/opea-project/GenAIComps/tree/main/tests

Need to add an e2e test here: https://github.com/opea-project/GenAIComps/tree/main/tests

Thank you. Please find it here https://github.com/ctao456/GenAIComps/blob/ctao/opea/tests/animation/test_animation_wav2lip.sh

This PR has passed all checks and is ready for review.


YGNodeChildCount unresolved external symbol with MSVC2015

YGNodeChildCount is defined with inline. Shouldn't this be moved to Yoga.h? With the inline keyword it will result in a unresolved external symbol error on Windows MSVC2015.

Good catch. Nothing the compilers I use complain about 😞 Feel free to submit a pull request with the change, otherwise I will try to get to it next week. Thanks for the heads up.

YGNodeGetChildCount is defined in Yoga.h and dllexport and inline should work as explained in this document.
https://msdn.microsoft.com/en-us/library/w8c3skw3.aspx

You can define as inline a function with the dllexport attribute. In this case, the function is always instantiated and exported, whether or not any module in the program references the function. The function is presumed to be imported by another program.

This issue is closed, but was there a fix? I'm currently bumping into this
problem. Using VS2017 RC cl.exe version 19.10.24911
Building yoga as a shared library works as expected and exports all symbols I've
tried using, but building as a static library causes problems. Without link time
optimizations, YGNodeGetChildCount and YGNodeStyleGetFlexBasis can not be
used outside of Yoga.c. With lto in this instance, YGNodeGetChildCount works
but YGNodeStyleGetFlexBasis still doesn't.
Using link /dump /symbols bin/yoga.lib we can check that these functions are
absent, however other static functions that are defined and declared only in
Yoga.c are present like YGFloatsEqual. If we change #define inline __inline
to #define inline __forceinline we lose more (and gain one...):
-External | YGNodeStyleGetFlexGrow
-External | YGNodeStyleGetFlexShrink
-Static   | YGValueResolve
-Static   | YGResolveDimensions
-Static   | YGFloatsEqual
-Static   | YGNodeLeadingMargin
-Static   | YGNodeLeadingPaddingAndBorder
-Static   | YGNodeTrailingPaddingAndBorder
-Static   | YGNodeMarginForAxis
-Static   | YGNodePaddingAndBorderForAxis
-Static   | YGNodeIsFlex
-Static   | YGNodeIsLeadingPosDefined
-Static   | YGNodeIsTrailingPosDefined
-Static   | YGNodeBoundAxis
+Static   | YGNodeRelativePosition

The external ones are interesting, we need those as they are part of the API.
Locally I've just been removing problematic inline, a proper fix would likely
need to move some functions into the header.


check CSV phase to be succeeded for container readiness

odf-operator creates subscription for odf-dependencies and CRDs will become available once respective CSVs are present in the cluster. We check the phase of respective CSVs which are required for odf-op before becoming ready.
Depends on #503

I am adding the screenshot of the observation here for future reference that just checking the odf-dependencies csv is not enough.

These commits are merged as part of #499. I am closing this.


need a field for the media type

THis is important, as first step we want to use images, but should make clear per record.

needs an update with the current "data model", or close this issue


Update the Pachyderm vault plugin

Make it look more like the builtin AWS backend:

Set the .Secrets field of the backend, and use that to manage
Pachyderm auth tokens (so that e.g. Pachyderm tokens are now revoked
by sending their associated lease ID to /sys/lease/revoke)
Change secrets returned by the Pachyderm plugin so that they no longer
set the .Auth field (which reflects how the AWS plugin works as well.
IIUC, .Auth should only be set by backends that allow the caller to
authenticate in Vault)

Make the username a path parameter of login

Now, logging in as a user can be tied to a vault policy. Otherwise
any user who's authenticated in vault can login as any user in
Pachyderm (as vault policies apply to paths but not parameters)

Make TTL a parameter of /pachyderm/login

I considered changing this path to be a read endpoint like the AWS plugin,
but read endpoints don't accept parameters, so this feature required
me to leave it as a write endpoint)

Confirm that users can create a Pachyderm token with a long TTL

30d, or whatever the max in vault is

Per our conversation, I'm submitting this PR since there wasn't any feedback other than the testing feedback


webpage performance renders it unusable for large bundle

Problem
Clicking assets tab from packages tab locks up window for ~20s
Research
The flame graph is minimized, so I cannot see exactly what's goin on:

(scroll down 2x the current shown height),

and you can see many yellow/orange lines (Minor GCs).
Something is eating up tons of memory, and the relinquishing it.
I have 615 assets.
Trying to see what initial chunks are heavy in my entrypoints, ideally with DCE/TreeShaken gzip'd values from modules

Thanks for creating the issue @cdaringe! From time to time we test agains larger webpack stats and we didn't encounter this issue, but possible to have a regression.
Will try to see if I can replicate, but can you please share what version of bundle-stats are you using? Also, if you can share your webpack stats will be really helpful (you can send it directly to the email available on my profile).

Hey @vio , thx for the support! I’ll see if I can grab a stat soon!

@cdaringe v2.8.9 contains some improvements to the assets/packages view (HoverCard is setup on asset name mouse over). I tested with some large webpack stats and noticed a 10-20%, thought curious to see how is it working for your case.
Let me know how it goes if you get the chance to try v2.8.9.

Thx for the notification! I completely forgot to post a stat. I'll try it out and re-open as needed :)


jre8: minimize minimal build and add more GUI dependencies to the regular one

Motivation for this change
We have several issues (https://github.com/NixOS/nixpkgs/issues/17876, https://github.com/NixOS/nixpkgs/issues/12472) which arise because Java is not linked to all supported libraries. I propose to add requested and several other libraries to Java's closure, and instead make minimal minimal-er. The idea is that jre8_headless doesn't support sound, printing and GUI and is used for console and server applications. jre8, on the other hand, supports all kinds of GUI-related activities, and is also linked to GTK, CUPS and several GNOME libraries. This makes it much nicer to work with, especially on HighDPI displays -- GTK-2 Java backend is the only one which is DPI-aware.
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

I also propose prefix'ing several Java options to java by default to enable GTK backend by default -- this way it still can be overridden but gives much nicer user experience. I haven't done this yet though -- I'm interested in feedback on this idea first.

I don't understand why prefixing gives better user experience here. Do you want that to have better control if you set pkgs.minimal = true?

With several Java options prefixed applications would use GTK and native font settings (specifically anti-aliasing) by default, so applications would look native and use system DPI. This changes only default style to GTK -- application would still be able to override it if needs to. I'm not sure about font settings however, but I think using system defaults is better anyway.

Oh, and see https://wiki.archlinux.org/index.php/java#Tips_and_tricks for the options themselves.

I agree that applications should use system settings where possible. Btw now that gtk support is enabled am not sure that the infinality patch is needed if font rendering is provided by gtk. The infinality patch I believe make java use system defaults for font rendering, I don't know how to check if the DPI match.
I don't know what is best but the options you linked too can also be set by a wrapper.

On October 2, 2016 9:13:00 PM GMT+03:00, Joel Moberg<EMAIL_ADDRESS>wrote:

I agree that applications should use system settings where possible.
Btw now that gtk support is enabled am not sure that the infinality
patch is needed if font rendering is provided by gtk.

Infinality would still be useful in case application wants to have some other style besides GTK or perhaps its own widgets.

The infinality patch I believe make java use system defaults for font rendering,

Nice! It shouldn't hurt to set this in wrapper anyway I'd say in case Infinality support is disabled (we have a flag after all).

I
don't know how to check if the DPI match.

As far as I know GTK is the only DPI-aware backend, Infinality doesn't help with that.

I don't know what is best but the options you linked too can also be
set by a wrapper.

That's precisely my idea. I don't want to add anything extra besides those that set GTK as a default style and enable system font settings.
Nikolay.

Okay, I've rewritten a more in-depth description of what I've changed. Also I went another way -- I now patch Java to use GTK automatically when it's available (not only if desktop is GNOME). This should be a cleaner way -- it avoids wrappers and possible options clashes.
I copy the description of the first patch here for more visibility:
This makes several adjustments around what is linked into JRE.

system giflib, libjpeg, zlib are now used unconditionally;
libstdc++ is linked dynamically.

For full version:

GTK+ and GNOME libraries are linked;
Extra X11 libraries are linked;
CUPS is linked;
libmagic (file) is linked.

For minimal version:

All X11 support is removed;
Sound support is removed.
Fonts and their support are not linked.

jre8_headless is added as a minimal build.
Overall this adds support for all things GUI into the default Java build and
removes them from the minimal build.

cc maintainer @edwtjo

This has not generated negative opinions so far and seems a non-breaking change with closure size increase the only possible problem. I'll merge this in several days unless anybody objects.

@abbradar, I'm on nixpkgs master, and I still can't use -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel  with neither openjdk nor oraclejre, as it doesn't find  GTKLookAndFeel.
How do I diagnose this?

@abbradar Are you still working on this? It would be great to have these improvements in NixOS 17.03.

@rycee I thought that this was merged long ago.
@deepfire Sorry, seems that your message in pile of others D: I know that I'm very late but is this still relevant?

@abbradar Sorry! I was going through some old PRs and got confused, thought this was still open. I checked, the GTK+ look and feel work for me :-)


Propagate request

If the requestID is set in a passed context, used the requestID to set the
X-Request-ID header for any client requests made.
Also:

In order to avoid requestID collisions in clustered environments, use ksuid
to create unique request IDs instead of increasing ints.

Was able to observe that the requestID was indeed propagated from a root search to a worker request.
From root:
{"level":"info","ts":1611171080.6944094,"logger":"http.access","msg":"Request completed","request_id":"1nLYkraMm0bG7codnbpxvB3Sw7h","host":"localhost:9867","method":"POST","proto":"HTTP/1.1","remote_addr":"<IP_ADDRESS>:44390","request_content_length":726,"url":"/worker/rootsearch?format=zng","elapsed":97.204174268,"response_content_length":43144,"status_code":200}

From worker logs (looks like two different workers worked on this search):
{"level":"info","ts":1611171008.8946192,"logger":"http.access","msg":"Request completed","request_id":"1nLYkraMm0bG7codnbpxvB3Sw7h","host":"<IP_ADDRESS>:9867","method":"POST","proto":"HTTP/1.1","remote_addr":"<IP_ADDRESS>:42578","request_content_length":264,"url":"/worker/chunksearch?format=zng","elapsed":25.050980697,"response_content_length":206510365,"status_code":200}
{"level":"info","ts":1611171010.2050126,"logger":"http.access","msg":"Request completed","request_id":"1nLYkraMm0bG7codnbpxvB3Sw7h","host":"<IP_ADDRESS>:9867","method":"POST","proto":"HTTP/1.1","remote_addr":"<IP_ADDRESS>:42578","request_content_length":259,"url":"/worker/chunksearch?format=zng","elapsed":0.178628712,"response_content_length":501428,"status_code":200}

Was able to observe that the requestID was indeed propagated from a root search to a worker request.
From root:
{"level":"info","ts":1611171080.6944094,"logger":"http.access","msg":"Request completed","request_id":"1nLYkraMm0bG7codnbpxvB3Sw7h","host":"localhost:9867","method":"POST","proto":"HTTP/1.1","remote_addr":"<IP_ADDRESS>:44390","request_content_length":726,"url":"/worker/rootsearch?format=zng","elapsed":97.204174268,"response_content_length":43144,"status_code":200}

From worker logs (looks like two different workers worked on this search):
{"level":"info","ts":1611171008.8946192,"logger":"http.access","msg":"Request completed","request_id":"1nLYkraMm0bG7codnbpxvB3Sw7h","host":"<IP_ADDRESS>:9867","method":"POST","proto":"HTTP/1.1","remote_addr":"<IP_ADDRESS>:42578","request_content_length":264,"url":"/worker/chunksearch?format=zng","elapsed":25.050980697,"response_content_length":206510365,"status_code":200}
{"level":"info","ts":1611171010.2050126,"logger":"http.access","msg":"Request completed","request_id":"1nLYkraMm0bG7codnbpxvB3Sw7h","host":"<IP_ADDRESS>:9867","method":"POST","proto":"HTTP/1.1","remote_addr":"<IP_ADDRESS>:42578","request_content_length":259,"url":"/worker/chunksearch?format=zng","elapsed":0.178628712,"response_content_length":501428,"status_code":200}


Limiter starts out allowing too many through?

Using the below code (clone-able from gist here), I expect to see output like:
[{allowed:1000 disallowed:12445195} {allowed:1001 disallowed:12568861} {allowed:999 disallowed:12469467}]

But instead I get this kind of thing:
[{allowed:1553 disallowed:12445195} {allowed:1001 disallowed:12568861} {allowed:999 disallowed:12469467}]

Note that the first 1-second bucket allowed 1553 rather than 1000. The exact number varies between runs, but it's always significantly more than 1000.
Why is that? (Is it something about the handling of the "previous" window when there is no previous?)
I'm concerned because I plan on aggressively removing limiters when they haven't been used for a few windows (because that would be a rate limit reset anyway), but I don't really want to frequently go over the limit by ~50%.
package main

import (
	"fmt"
	"time"

	sw "github.com/RussellLuo/slidingwindow"
)

func main() {
	const histogramBucketSize = time.Second
	const totalBuckets = 3
	const allowedPerBucket = 1000

	type histoEntry struct {
		allowed    int64
		disallowed int64
	}
	allowedHistogram := make([]histoEntry, totalBuckets)

	lim, _ := sw.NewLimiter(histogramBucketSize, allowedPerBucket, func() (sw.Window, sw.StopFunc) {
		return sw.NewLocalWindow()
	})

	start := time.Now()
	for {
		bucket := time.Now().Sub(start) / histogramBucketSize

		if bucket >= totalBuckets {
			break
		}

		if lim.Allow() {
			allowedHistogram[bucket].allowed++
		} else {
			allowedHistogram[bucket].disallowed++
		}
	}

	fmt.Printf("%+v\n", allowedHistogram)
}

Adding even a 1 nanosecond sleep between the creation of the limiter and the start of the loop the effect doesn't happen. So maybe this is something to do with the measured time difference being literally zero at the start?

Below is a simpler version of the test, to help check if my "histogram" math was somehow wrong. The expected output should show 5000 allowed, but instead it's ~5500.
func main() {
	const histogramBucketSize = time.Second
	const allowedPerBucket = 1000

	lim, _ := sw.NewLimiter(histogramBucketSize, allowedPerBucket, func() (sw.Window, sw.StopFunc) {
		return sw.NewLocalWindow()
	})

	start := time.Now()
	var allowed, disallowed int64
	for time.Now().Sub(start) < 5*time.Second {
		if lim.Allow() {
			allowed++
		} else {
			disallowed++
		}
	}

	fmt.Println(allowed, disallowed)
}

Another data point: It seems to be related to where the test starts relative to the wall-clock alignment on the window.
This code can be used to target a particular start moment:
	// This is the target fraction of the bucket size where we want to start our test.
	// For example, if it's 0.9, then we want to start 900 milliseconds into a wall-clock-second.
	// If it's 0.0, then we'll start aligned on a wall-clock-second.
	targetClockFraction := float64(0.99)
	for {
		now := time.Now()
		alignmentDiff := now.Sub(now.Truncate(histogramBucketSize))
		if math.Abs(float64(alignmentDiff)/float64(histogramBucketSize)-targetClockFraction) < 0.01 {
			break
		}
	}

If targetClockFraction is 0.0, then the allowed count for the first window will be 100% of expected (e.g., 1000). If targetClockFraction is 0.5, then it will be about 150% (e.g., 1491). If it's 0.99, then it'll be about 199% (e.g., 1981)

I see why it's behaving like this! Obvious in retrospect.
If the window size is 1 second and the test runs for, say, 3 seconds, there will actually be 4 windows in play. The first window is truncated to the second before now, so it will last less than a second. The further we are through the current second, the less long it will last.
So in the first wall-clock second, we'll allow 1000 requests, then disallow for some milliseconds, then the new window will start and we'll allow again. The first wall-clock second ends and we've allowed through more than 1000 requests in total.
So that's to be expected. It could be "fixed" by aligning the window to the actual start time rather than the wall clock window. But after two windows have elapsed (resetting lim.prev) the same behaviour would occur. Unless the window alignment also got reset at that time. Anyway, it would make things more complex.
I feel like this probably isn't such a big deal, since it can never allow more than double the configured amount. And a sustained heavy request load will stabilize after the first window.
I'll close this.

@adam-p Nice, good job figuring out the reason!
Basically, I think there are two reference systems, between which there is a clock difference (DIFF for short). If DIFF is 500ms, we actually have the following two reference systems:
             0 (1000)  1 (1000)  2 (1000)  3 (1000)  4
wall-clock   |---------|---------|---------|---------|---------|
                  ^         ^         ^         ^         ^
actual-clock      |---------|---------|---------|---------|
                  0 (1500)  1 (1000)  2 (1000)  3 (1000)  4

Besides the clock difference, another reason for the excess requests during the first window in the view of actual-clock system is that — whenever the limiter starts, it always has the total quota of 1000 requests per second in the first wall-clock second.
One possible solution is to assume a non-zero previous window count for the first wall-clock second. But since no actual requests have been made, we have no idea which value of the previous window count should be assumed. I think it's not a big deal, as you mentioned, since this problem only arises during the first window-size when the limiter starts :)

I think it's not a big deal, as you mentioned, since this problem only arises during the first window-size when the limiter starts :)

That's not true, though, is it? I think it arises every time the previous window is not-fully-consumed (and in particular if it had no requests at all).

One possible solution is to assume a non-zero previous window count for the first wall-clock second. But since no actual requests have been made, we have no idea which value of the previous window count should be assumed.

That's interesting. It is hard to think of how to do that right, though.
Let's imagine another approach where we mess with curr instead of prev... Let's say that if lim.curr.count is zero, then we pre-fill it proportionately to how much of the window has passed. So if we're halfway through the current window, we initialize the count to 500 (of 1000). Then there are only 500 left in the current window. That means that (using your diagram above) for clock durations of...

500ms: there are 500 reqs allowed
1000ms: there are +500 reqs allowed == 1000 reqs
1500ms: +500 = 1500 reqs allowed
2000ms: +500 reqs, etc.

With this existing logic that instead looks like:

500ms: there are 1000 reqs allowed
1000ms: there are +500 reqs allowed == 1500 reqs
and so on

This isn't bad. It means that the first window doesn't get a full 1000, but it smooths out the big lump allowed.

Let's say that if lim.curr.count is zero, then we pre-fill it proportionately to how much of the window has passed.

Hi Adam :) I think it's a good idea, which does make the allowed requests more smooth.
After reading more descriptions about Sliding Window in Understanding Distributed Systems:

I think maybe another solution — with no need to modify the current implementation — is to use a smaller window size, say, 500ms (i.e. 500 requests per 500ms). Then I guess the maximum difference will be reduced to 500? What do you think?

Yes, that's a good approach. There's still a possible 1.99x overshoot, but the absolute value becomes (arbitrarily) small.
I don't think you're suggesting this, but I don't think the library should add this granularity itself -- too potentially confusing for the lib user. But it might be worth mentioning in the README or a comment.
This reminds me of another thing that I am struggling with a bit: What to set the Retry-After header to.
If the prev and curr windows are both maxed out, then the answer is window_size / allowed_per_window (rounded up to the nearest second, since that's the header granularity). In other words seconds-per-req. So if there are 30 reqs allowed per 60 seconds and the the previous and current windows are completely consumed, you can be guaranteed than in 2 seconds there will be 1 more req allowed. (As the fraction of the prev window is reduced, that much space is gained in the curr window.)
But if the prev window had zero and the curr window filled up immediately, then the answer is "the rest of the curr window".
There's probably some formula that captures both ends of the spectrum and everything in between, but I don't have it yet. (Although, admittedly, I haven't tried too hard -- my work doesn't depend on it.)
But if the window size is <= 1 second, then the answer always rounds to "1 second".


Roll Flutter Engine from fb5fed432e59 to b4ee10cbf002 (9 revisions)

https://github.com/flutter/engine/compare/fb5fed432e59...b4ee10cbf002
2023-06-16<EMAIL_ADDRESS>Roll Skia from abfa3505db23 to f0410a265d2b (1 revision) (flutter/engine#42904)
2023-06-16<EMAIL_ADDRESS>Remove release_build from clang_tidy build. (flutter/engine#42900)
2023-06-16<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from 53EjCyuRu91oFTBf2... to E5G7PwYbRA-u-ZJ9F... (flutter/engine#42897)
2023-06-15<EMAIL_ADDRESS>Revert "Roll Clang from 6d667d4b261e to 7f374b6902fa" (flutter/engine#42896)
2023-06-15<EMAIL_ADDRESS>Roll Skia from 2ab2678058a3 to abfa3505db23 (1 revision) (flutter/engine#42894)
2023-06-15<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from P7QA6bfO_Ij5dre7B... to FJPPnZP9EcGLQ0OZa... (flutter/engine#42892)
2023-06-15<EMAIL_ADDRESS>Roll Skia from 794b6f9240a8 to 2ab2678058a3 (6 revisions) (flutter/engine#42889)
2023-06-15<EMAIL_ADDRESS>Add deprecations to PlatformMessage stuff (flutter/engine#42580)
2023-06-15<EMAIL_ADDRESS>[Impeller] Joined obligatory vulkan swapchain submits (flutter/engine#42865)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from 53EjCyuRu91o to E5G7PwYbRA-u
fuchsia/sdk/core/mac-amd64 from P7QA6bfO_Ij5 to FJPPnZP9EcGL
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC chinmaygarde@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


UI and command palette doesn't work, and debugger load dependencies from plugin in folder

Description

The spec doesn't run when clicked the button or choose "run all specs" in command palette.
There is significant delay when press the button to trigger spec.
The debug mode load mocha and everything from built-in location, which cause the local modules cannot be loaded (The mocha path settings won't help, it always load mocha and other dependencies from plugin folder regardless the value of the settings)

Background, the specs works perfectly from terminal.
Steps to Reproduce

Expected Results
a. The run all specs button work
b. The run spec from command palette works
c. The debugger mode works
d. The specs start in a reasonable delay
Actual Results
a. Click the button, nothing happens, no log, not output
b. all the run spec commands from palette doesn't work
c. the debugger mode load the dependencies from plugin folder rather than local path
d. specs sometimes need more than 10 seconds to start
Settings file
 {
  "mocha.files.glob": "**/*.spec.ts",
  "mocha.options": {
    "fullTrace": true,
    "timeout": 10000
  },
  "mocha.requires": [
    "ts-node/register",
    "source-map-support/register",
  ]
}

Versions

VScode: Version 1.22.1 (1.22.1)
Mocha SideBar: v0.17.5
Node Version: v9.11.1

OS version

[ ] Linux
[x] Mac
[ ] Windows

Hi

The blue play button should enable auto test feature it means that when you change code the tests will run
2.there is know real delay the only delay you see is on icon status changes since it's waiting for all tests results and than the UI will update you. To verify this you can set logVerbose to true and whatcha the output mocha view.
The command pallete don't run there is already an open issue on this .

something that i missed in my answer ?

Hi @maty21
Here are some issues I found:
1 .The blue play button seems not really reliable. I can see sometimes it runs, but sometimes it doesn't. And it is super hard to know whether it runs or not. Especially when I keep editing the file.
2. Command palette seems completely not working, or I can't figure out where the output is
3. The debug mode complains the error, seems it reference the mocha via the path of where the extension is rather than my codebase.