Hitbox streams cannot be played since version 2015-12-29

As the title says, Hitbox streams (at least) cannot be played since version 2015-12-29.
The error is the following:
$ mpv http://www.hitbox.tv/musify
Playing: http://www.hitbox.tv/musify
[ffmpeg] HandShake: client signature does not match!
[ffmpeg] Closing connection: NetStream.Play.StreamNotFound
Failed to open rtmp://hitboxeu01livefs.fplive.net/hitboxeu01live-live/stream_musify.

The work around mpv $(youtube-dl -g "http://www.hitbox.tv/musify") produces the exact same output.
 Assuming stream is complete
[download] 0.00B at Unknown speed (00:26)
[rtmpdump] DEBUG: RTMP_Read returned: 0
[rtmpdump] Download complete
[rtmpdump] DEBUG: Closing connection.
[rtmpdump] 0 bytes
[download] 100% of 0.00B

Linux Void x64 musl MATE - Kernel version 4.3.3
youtube-dl version 2015-12-23 is okay

This issue has been fixed and fix will be incorporated in the next version of youtube-dl. For now you can download selecting different format with -f.

Hitbox streams (at least) still cannot be played since the fix.
The error is the following:
$ mpv http://www.hitbox.tv/musify
Playing: http://www.hitbox.tv/musify
[ffmpeg] RTMP_ReadPacket, failed to read RTMP packet header
Failed to open rtmp://edge.live.hitbox.tv/live/musify.

The work around mpv $(youtube-dl -g "http://www.hitbox.tv/musify") produces the exact same output.
Here's the full output:
$ youtube-dl -v http://www.hitbox.tv/musify
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.hitbox.tv/musify']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.04.24
[debug] Python version 2.7.11 - Linux-4.5.2_1-x86_64-with-glibc2.2.5
[debug] exe versions: ffmpeg 2.8.6, ffprobe 2.8.6, rtmpdump 2.4
[debug] Proxy map: {}
[hitbox:live] musify: Downloading JSON metadata
[hitbox:live] musify: Downloading metadata JSON
[debug] Invoking downloader on u'rtmp://edge.live.hitbox.tv/live/musify'
[download] Destination: Musify - 24_7 Music and Gaming Stream Friendly 2016-04-29 12_58-musify.mp4
[debug] rtmpdump command line: rtmpdump --verbose -r rtmp://edge.live.hitbox.tv/live/musify -o 'Musify - 24_7 Music and Gaming Stream Friendly 2016-04-29 12_58-musify.mp4.part' --swfVfy http://www.hitbox.tv/static/player/flowplayer/flowplayer.commercial-3.2.16.swf --pageUrl http://www.hitbox.tv/musify --live
[rtmpdump] RTMPDump v2.4
[rtmpdump] (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
[rtmpdump] DEBUG: Parsing...
[rtmpdump] DEBUG: Parsed protocol: 0
[rtmpdump] DEBUG: Parsed host    : edge.live.hitbox.tv
[rtmpdump] DEBUG: Parsed app     : live
[rtmpdump] DEBUG: Protocol : RTMP
[rtmpdump] DEBUG: Hostname : edge.live.hitbox.tv
[rtmpdump] DEBUG: Port     : 1935
[rtmpdump] DEBUG: Playpath : musify
[rtmpdump] DEBUG: tcUrl    : rtmp://edge.live.hitbox.tv:1935/live
[rtmpdump] DEBUG: swfUrl   : http://www.hitbox.tv/static/player/flowplayer/flowplayer.commercial-3.2.16.swf
[rtmpdump] DEBUG: pageUrl  : http://www.hitbox.tv/musify
[rtmpdump] DEBUG: app      : live
[rtmpdump] DEBUG: live     : yes
[rtmpdump] DEBUG: timeout  : 30 sec
[rtmpdump] DEBUG: SWFSHA256:
[rtmpdump] DEBUG: 75 20 ee cf 7b 4f 33 46 25 47 28 ab 53 ad 99 c4
[rtmpdump] DEBUG: bd 80 0e 34 c7 8c cf 47 55 31 70 a0 98 6b 88 a3
[rtmpdump] DEBUG: SWFSize  : 259809
[rtmpdump] DEBUG: Setting buffer time to: 36000000ms
[rtmpdump] Connecting ...
[rtmpdump] DEBUG: RTMP_Connect1, ... connected, handshaking
[rtmpdump] DEBUG: HandShake: Client type: 03
[rtmpdump] DEBUG: HandShake: Client digest offset: 430
[rtmpdump] DEBUG: HandShake: Initial client digest:
[rtmpdump] DEBUG: eb 98 a0 33 c7 1c ac 9c d4 90 5d ad b9 1f e8 59
[rtmpdump] DEBUG: 65 2d 5d b7 71 5d b2 a1 6c bf 69 be f7 e8 99 f5
[rtmpdump] DEBUG: HandShake: Type Answer   : 03
[rtmpdump] DEBUG: HandShake: Server Uptime :<PHONE_NUMBER>
[rtmpdump] DEBUG: HandShake: FMS Version   : <IP_ADDRESS>
[rtmpdump] DEBUG: HandShake: Calculated digest key from secure key and server digest:
[rtmpdump] DEBUG: 70 50 86 76 4d d6 2e 74 15 e6 1e 61 81 84 8d 0c
[rtmpdump] DEBUG: 25 03 ac dc 3d bb 19 12 8d c8 20 c5 48 ac 77 10
[rtmpdump] DEBUG: HandShake: Client signature calculated:
[rtmpdump] DEBUG: 68 01 c8 82 b1 9f 1e 1c c4 5e 06 39 6c 2d 87 91
[rtmpdump] DEBUG: a6 82 20 4b ec 7e c3 77 54 ca c7 93 8d fa 1f 18
[rtmpdump] DEBUG: HandShake: Server sent signature:
[rtmpdump] DEBUG: 85 13 52 eb 0f fc 4e 57 35 9b 92 e7 bb 7d c1 4d
[rtmpdump] DEBUG: 71 31 5c 58 ba 21 92 a4 ee 20 60 ce 92 70 85 de
[rtmpdump] DEBUG: HandShake: Digest key:
[rtmpdump] DEBUG: 69 99 d1 79 7a 50 8b 40 bb 90 18 b0 9b 38 95 c7
[rtmpdump] DEBUG: 90 b9 73 0c d3 19 cc e2 e9 ea 18 e8 15 17 7a 98
[rtmpdump] DEBUG: HandShake: Signature calculated:
[rtmpdump] DEBUG: 85 13 52 eb 0f fc 4e 57 35 9b 92 e7 bb 7d c1 4d
[rtmpdump] DEBUG: 71 31 5c 58 ba 21 92 a4 ee 20 60 ce 92 70 85 de
[rtmpdump] DEBUG: HandShake: Genuine Adobe Flash Media Server
[rtmpdump] DEBUG: HandShake: Handshaking finished....
[rtmpdump] DEBUG: RTMP_Connect1, handshaked
[rtmpdump] DEBUG: Invoking connect
[rtmpdump] INFO: Connected...
[rtmpdump] DEBUG: HandleServerBW: server BW = 5000000
[rtmpdump] DEBUG: HandleClientBW: client BW = 5000000 2
[rtmpdump] DEBUG: HandleChangeChunkSize, received: chunk size change to 16384
[rtmpdump] DEBUG: RTMP_ClientPacket, received: invoke 190 bytes
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: Property: <Name:             fmsVer, STRING:	FMS/3,0,1,123>
[rtmpdump] DEBUG: Property: <Name:       capabilities, NUMBER:	31.00>
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: Property: <Name:              level, STRING:	status>
[rtmpdump] DEBUG: Property: <Name:               code, STRING:	NetConnection.Connect.Success>
[rtmpdump] DEBUG: Property: <Name:        description, STRING:	Connection succeeded.>
[rtmpdump] DEBUG: Property: <Name:     objectEncoding, NUMBER:	0.00>
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: HandleInvoke, server invoking <_result>
[rtmpdump] DEBUG: HandleInvoke, received result for method call <connect>
[rtmpdump] DEBUG: sending ctrl. type: 0x0003
[rtmpdump] DEBUG: Invoking createStream
[rtmpdump] DEBUG: FCSubscribe: musify
[rtmpdump] DEBUG: Invoking FCSubscribe
[rtmpdump] DEBUG: RTMP_ClientPacket, received: invoke 29 bytes
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: Property: NULL
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: HandleInvoke, server invoking <_result>
[rtmpdump] DEBUG: HandleInvoke, received result for method call <createStream>
[rtmpdump] DEBUG: SendPlay, seekTime=0, stopTime=0, sending play: musify
[rtmpdump] DEBUG: Invoking play
[rtmpdump] DEBUG: sending ctrl. type: 0x0003
[rtmpdump] DEBUG: RTMP_ClientPacket, received: invoke 96 bytes
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: Property: NULL
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: Property: <Name:              level, STRING:	status>
[rtmpdump] DEBUG: Property: <Name:               code, STRING:	NetStream.Play.Start>
[rtmpdump] DEBUG: Property: <Name:        description, STRING:	Start live>
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: HandleInvoke, server invoking <onStatus>
[rtmpdump] DEBUG: HandleInvoke, onStatus: NetStream.Play.Start
[rtmpdump] Starting Live Stream
[rtmpdump] DEBUG: RTMP_ClientPacket, received: notify 24 bytes
[rtmpdump] DEBUG: (object begin)
[rtmpdump] DEBUG: (object end)
[rtmpdump] DEBUG: RTMPSockBuf_Fill, recv returned -1. GetSockError(): 11 (Resource temporarily unavailable)
[rtmpdump] ERROR: RTMP_ReadPacket, failed to read RTMP packet header
[download] 0.00B at Unknown speed (00:32)
[rtmpdump] DEBUG: RTMP_Read returned: 0
[rtmpdump] Download may be incomplete (downloaded about 0.00%), try resuming
[rtmpdump] DEBUG: Closing connection.
[rtmpdump] DEBUG: Invoking deleteStream

ERROR: rtmpdump exited with code 2
  File "/usr/bin/youtube-dl", line 6, in <module>
    youtube_dl.main()
  File "/usr/lib/python2.7/site-packages/youtube_dl/__init__.py", line 419, in main
    _real_main(argv)
  File "/usr/lib/python2.7/site-packages/youtube_dl/__init__.py", line 409, in _real_main
    retcode = ydl.download(all_urls)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 1732, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 684, in extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 729, in process_ie_result
    return self.process_video_result(ie_result, download=download)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 1378, in process_video_result
    self.process_info(new_info)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 1640, in process_info
    success = dl(filename, info_dict)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 1582, in dl
    return fd.download(name, info)
  File "/usr/lib/python2.7/site-packages/youtube_dl/downloader/common.py", line 350, in download
    return self.real_download(filename, info_dict)
  File "/usr/lib/python2.7/site-packages/youtube_dl/downloader/rtmp.py", line 202, in real_download
    self.report_error('rtmpdump exited with code %d' % retval)
  File "/usr/lib/python2.7/site-packages/youtube_dl/downloader/common.py", line 161, in report_error
    self.ydl.report_error(*args, **kargs)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 547, in report_error
    self.trouble(error_message, tb)
  File "/usr/lib/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 509, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())

Linux Void x64 Cinnamon - Kernel version 4.5.2


#2020 expression editor allow for double click to add value

Fixes: #2020
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

Overall looks good.  Checking with design on some of the interactions.

Keeping the cell active even after double clicking seems wrong.

@matthoward366 Does it mean we can highlight the row(with the blue border) on single-click as well?

@matthoward366 Does it mean we can highlight the row(with the blue border) on single-click as well?

single-click would highlight the row when clicking the + button.  The rest of the row requires double click.

I would step back and really only handle the onRowDoubleClick and change the pointer. Possibly add focus for the row. I don't think we need to worry about the active state.

ok Matt, I would revert the code added for styling the double clicked row.

@veenas1 let me know when the changes are done and I'll have another look.

@veenas1 let me know when the changes are done and I'll have another look.

@matthoward366 I have reverted all the changes added as part of styling double clicked row, the state props etc, also removed active style. The :focus is coming only on the + icon button

@matthoward366 Updated the PR to apply changes only for expression builder's table.


Why validation-loss is -nan?

The instance is like this
-1 8111:2.9488658905029297 11507:1.0 13082:1.0 13178:1.0 16133:1.0 22000:1.0 22888:1.0 28221:1.0 36004:1.0 36542:1.0 37596:1.0 38549:1.0 48206:1.0 48786:1.0 56133:1.0 56694:1.0 58444:
1.0 59045:1.0 80219:1.0 83143:1.0 83336:1.0 85436:1.0 90750:2.9488658905029297 109126:1.0 109126:1.0 110542:1.0 111070:1.0 113837:1.0 116355:1.0 119025:1.0 124098:1.0 128976:1.0 129492:1.0 1299
54:1.0 134077:1.0 137757:1.0 138089:1.0 139260:1.0 140558:1.0 142435:1.0 144453:1.0 146199:2.9488658905029297 148378:1.0 148690:1.0 151094:1.0 162239:1.0 163439:1.0 167017:1.0 170853:1.0 171369
:1.0 171885:1.0 172801:1.0 176027:1.0 177852:2.9488658905029297 180997:1.0 181929:1.0 181946:1.0 183749:1.0 186802:1.0 190239:1.0 190705:1.0 197947:1.0 203165:1.0 206100:1.0 210524:1.0 214260:1
.0 221477:1.0 233497:1.0 234544:1.0 236809:1.0 237575:1.0 251918:1.0 262375:1.0 263600:1.0 267415:1.0 268116:1.0 275559:1.0 275898:1.0 276946:1.0 277961:1.0 281753:1.0 283133:1.0 285053:1.0 286
215:1.0 291402:1.0 522376:1.0 2209491:1.0 2340160:1.0
.

And I use this command ./ftrl_proximal_lr/ftrl_train -f  mergedTraining.txt -m trainModel2 -t mergedValidation.txt, but the validatio-loss is always -nan.
Could you please figure out the mistake I made?
Also, when I add --double, segmentation fault occurred.
I find that the function GetWeight returns a -nan weight and the idx was 2340160 which exceeds the max idx (i.e. 2209010) in the trainModel2.
Many thanks.

It seems that n_[idx] is overflowed.
The result I get today is different from the one I got yesterday.
The instance number becomes 14213095 rather than 14215573 (yesterday).
The idx becomes 2341275 rather than 2341275 (yesterday).
Do you have any idea?

I've fixed this by adding a sanity check of idx. Could you try again?

Problem solved. Thanks!


Custom input box position

Is your feature request related to a problem? Please describe
Hi, It would be gread to customize the position of the input box. Currently, yazi is hardcoded to display the input box at x: 0, y: 2. Because everyone's monitor size and position are different, for me, my focus is often in the middle of the screen. I would like to be able to define the display position of the input box in yazi.toml.
Related code:
https://github.com/sxyazi/yazi/blob/1bbb3235098da200e8d0d814fee554044ffaf5df/yazi-core/src/input/option.rs#L15-L22
Will you be willing to contribute this feature?

[X] Yes, I will try to implement it

Describe the solution you'd like
Just a discussion, and I've thought of three configuration options
1. Fixed column and line offset
[input-box]
x  = 0
y = 2

2. Percentage
[input-box]
x  = 0
y = 0.2

20 % of the screen width.
Btw, Fixed position and percentage aren't conflicting; we can distinguish them by checking for floating-point numbers less than 1.
3. Pre-defined position
[input-box]
position = "top/middle/bottom"

Describe alternatives you've considered
No response
Additional context
No response

Hello, I have a few more questions. Once these are resolved, I can get started.

About where the configuration should be placed, I personally think it should be in yazi.toml. However, from another perspective, this configuration can also be considered part of the UI. Should it be placed in theme.toml? (I noticed that theme.toml already has sections for input and select.)

the meaning of x offset, currently, the code calculates x starting from half of the screen, and when x=0, it is centered. If someone has a left-align requirement, configuring it might be difficult (need to know halft width).

Related code:
https://github.com/sxyazi/yazi/blob/7512b2c63ef129b40ebc24932747108099e143e4/yazi-core/src/context.rs#L34-L38
Furthermore, if we want to make window centering, we need the current terminal size, the width of the popup window, and the coordinates of the top-left corner of the popup. This is challenging to specify in the configuration file because the terminal size may change.
Inspired from some software practices, such as tmux, it supports preset strings to express predefined positions when popping up.
tmux popup -x R figlet "Right"
tmux popup -x 10 R figlet "10 columns from lefth"

ref: http://man.openbsd.org/OpenBSD-current/man1/tmux.1#display-menu
Maybe it's like this.
[input]
[input.top]
x = "center"
# Or 20 columns offset from lefth
x = 20
# Or 20% offset from lefth
x = 0.2

y =
width = 20 # or 0.2

But the hovered_offset should only need to fix the column offset, which makes the configuration a bit more complex. 🤯

About where the configuration should be placed, I personally think it should be in yazi.toml

Good question! I've never thought about it. Adding it to theme.toml means the theme can modify the size of Input and Select (not just the style), and if users want to change the Input size, they would need to modify the theme file.
This is not conducive to future theme updates, as users would have to merge conflicts themselves. Maybe later we can include it in both yazi.toml and theme.toml, with yazi.toml taking precedence. For now, let's add it to yazi.toml!

If someone has a left-align requirement, configuring it might be difficult (need to know halft width).

Is left-align a valid requirement? I'm not sure when it would be needed. Maybe we can add another type similar to Top for that scenario, starting from the top left corner. I haven't thought of a name for it yet, maybe even the name Top needs to be changed. Any ideas?
I find the tmux way too complex; it's not user-friendly (even for developers). I prefer offering a few initial preset positions, and users can fine-tune based on them (cells, percentages).

What do you think of this? Adding a position field, treating top, hovered etc., as predefined positions. Then users can make adjustments on this position using offsets.
[input]
# predefined position, default "top"
position = "top|top-left|hovered|bottom|center|..."
# column offset from the position., default 0
x_offset = 10 # -10 ...
# line offset from the position., default 0
y_offset = 20 # -20...
# width
width = 50
height = 1

[select]
# same

Adding a position property is a good idea! I prefer:
[input]
cd_type = "top|hovered|bottom|center|..."
cd_offset = [x, y, width, height]

search_type = "top|hovered|bottom|center|..."
search_offset = [x, y, width, height]

This way the properties can be kept as much as possible in the second level.

cd_offset = [x, y, width, height]

In this way, if I only modify the value of y, do I need to fill in all four variables?

Yes, the offset will be considered as a whole.
Since Yazi currently restricts the config merge to the second level, if we use the [input.search] way, we need to fill all properties below it (position, x_offset, y_offset, width, height).

Can you please also consider adding an option to place the input under the line, like in Vim command mode?

@vimjoyer Bottom-left corner of the screen? I will add this.


Improve spacing around header

Description
I noticed before giving the demo that the edX logo was jammed at the top of the page. I borrowed the styling from the Pattern Library.
Compare: http://ux-test.edx.org/andya/more-minor-tweaks/
with: http://ui-toolkit.edx.org/
Post-review

[ ] Squash commits into discrete sets of changes with descriptive commit messages.

Reviewers

[ ] @bjacobel

If you've been tagged for review, please check your corresponding box once you've given the :+1:.

Coverage remained the same at 93.356% when pulling e17114ac51b7180fc31df7386a8f56476caaff8f on andya/more-minor-tweaks into 3398b1d6f6ecbfdae88017fe524740d120cb9138 on master.

:thumbsup:


Added Thang Names

Added some new names from the cartoon Evangelion.

Thanks, but we don't actually have any Angels in the game, and not sure just putting Evangelion names in there is the most original approach for our units' names.


Patch for delegate 82005 - Update delegate.md

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65a4ee5a48eafc13a2a3a01f--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65a55af4a2c40403022344b2--harness-developer.netlify.app


Release a version with sideEffects: false

Hello, is there any chance to see the sideEffects: false published on npm in the nearest future?
Webpack 4 is out and it would be great to leverage aggressive tree-shaking here. I see the option added a few months ago, but no new version published for a long time.
Thank you.

I think we'll have a version out in the next few weeks.

I think this is a huge win and would really help avoid bloat when using Ramda in other libraries.

According to https://github.com/ramda/ramda/blob/v0.27.0/package.json#L40, this issue is resolved and can be closed.


CAMEL-19398: remove isStatisticsEnabled

Oh can we add a note in the 4.1 upgrade guide that the JMX attribute on that MBean has been removed
Some tooling like hawtio could be affected

Oh can we add a note in the 4.1 upgrade guide that the JMX attribute on that MBean has been removed
Some tooling like hawtio could be affected

We don't need to do that ... I reverted this change.

Oops. Apologies: for some reason, I saw the email notification and I thought you had just commented. 🤦🏽♂


iOS - Deprecate old dashboard and hamburger menu in 2.13

Description
LEARNER-4142
iOS - Deprecate old dashboard and hamburger menu in 2.13

@saeedbashir its ready for another pass. Thanks


Bump to sdk 0.10.0

Codecov Report

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

@@            Coverage Diff             @@
##           master   #14236      +/-   ##
==========================================
- Coverage   52.02%   51.98%   -0.04%
==========================================
  Files         307      307
  Lines       45484    45484
  Branches    10535    10535
==========================================
- Hits        23662    23646      -16
- Misses      17030    17042      +12
- Partials     4792     4796       +4

Impacted Files
Coverage Δ

subsys/testsuite/ztest/include/ztest_assert.h
38.88% <0%> (-38.89%)
:arrow_down:

subsys/testsuite/ztest/src/ztest.c
65.28% <0%> (-7.44%)
:arrow_down:

Continue to review full report at Codecov.

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

Shouldn't this PR update the documentation to point to it?

Saw that also (#14258)


chore: ensure supercharge v2 first session data refresh

Description
Supercharge v2 is controlled by a remote config variable. When the app is launched, we fetch supercharge rewards and remote config at around the same time resulting in a race condition. It is very probable that the user will fire a request to fetch supercharge v1 rewards before the updated remote config value is received. This means that the user could navigate to the supercharge screen and try to claim their v1 rewards, which will always fail because the superchargeV2 remote config has updated by this time.
Test plan
There are two ways the user can visit the supercharge screen:

open the app -> navigate to supercharge screen
open the app through a push notification -> land directly on the supercharge screen

In both cases, it is most probable that the request to supercharge v1 will be fired before receiving the updated remote config value. These are the ways I think the race condition could play out:

the updated remote config variable comes back before the supercharge v1 response: we will prevent the v1 response from being saved if supercharge v2 is enabled.
if the supercharge v1 response comes back first and is saved, when the updated remote config value is received then we will clear the saved rewards and fetch supercharge v2 rewards.

Related issues

Fixes RET-656

Backwards compatibility
Y

Just curious, alternatively could we cancel and retry the existing fetch saga when the remote config value changes instead?
Probably doesn't matter since it's "temporary", but was feeling it was a bit hacky, since there are no tests helping confirm the fix.

i agree, this was hacky. i was thinking about some kind of cancel but got fixated on trying to cancel the network request yesterday which was too hard. thinking about it with fresh eyes, i think we can just use takeLeading for the fetch supercharge rewards saga which will automatically cancel inflight sagas. i think the changes are more isolated now and feeling less hacky, thanks for the suggestion!


Handle namepaths inside JSDoc type expressions a bit better

Fixes #31298
Adds a way for the parser to move the scanner through a namepath inside JSDoc so that it can continue to parse the rest of the statement correctly and show up right in an editor.

Hrm, these changes seem to affect the behavior of generators somehow - I'm gonna wait till Nathan's back and chat with him about it

Will fix that up tomorrow 👍


Refresh MMenu

Hi,
there is a way to update the menu? I want that when I click on a button I update the menu with a different datasource

What exactly do you mean with "update"?
Add a new UL?
Add new LI's to an UL?
Remove an old LI?
Remove an old UL?
Completely remove all HTML and insert new HTML?

Completely remove all HTML and insert new html
Inviato da Libero Mail per Android Martedì, 04 Agosto 2015, 03:19PM +02:00 da Fred Heusschen <<EMAIL_ADDRESS>:

What exactly do you mean with "update"?
Add a new UL?
Add new LI's to an UL?
Remove an old LI?
Remove an old UL?
Completely remove all HTML and insert new HTML?
—
Reply to this email directly or  view it on GitHub .

Try the last comment in topic https://github.com/BeSite/jQuery.mmenu/issues/57


keyness over time

For keyness, generate a sparkline for each term plotting it's relative G2 or effect size over time for the given target/reference comparison

https://leonawicz.github.io/HtmlWidgetExamples/ex_dt_sparkline.html

Much simpler solution here: https://github.com/htmlwidgets/sparkline/issues/26


merge package from arlac77/npm-package-template

package.json

chore(scripts): cover@#overwrite c8 --temp-directory build/coverage ava && c8 report -r lcov --temp-directory build/coverage
chore(engines<EMAIL_ADDRESS>chore(package): add xo from template
chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template

.travis.yml

chore(travis): remove node versions 10.14.1
chore(travis): add node versions 10.14.2

Codecov Report

Merging #405 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #405   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines          41     41
=====================================
  Hits           41     41

Continue to review full report at Codecov.

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

Coverage remained the same at 98.148% when pulling 3cd62bdfed5cb7a972ce1b21d11f26ba27a1636c on template-sync-1 into 48b5ac5e24d72901d94a6e522a93e264b6ce6e72 on master.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


🌟Feature request: children popovers

Is your feature request related to a problem? Please describe.
It would be nice to have children popovers. That is to say, a parent popover can open a child popover.
I am trying to implement a table filter. The filter button opens a popover with a list of clickable item; id, name, etc.
When an item in the parent popover is clicked, a child popover will open. This child popover allows the user to enter additional information, for example is: id or is not: id
at the moment this is not possible for 2 reasons

A button inside a popover can not trigger another popover. There is a workaround for this which is to manually manipulate the open store but this is hacky
If you use the hacky approach to open the second popover, when you click on the ‘child’ popover the ‘parent’ closes, which is bad ux

I know this breaks accessibility, or at the very least changes it but I do believe this is a worthwhile enhancement as there are many different scenarios it could be used.
Describe the solution you'd like
It would be nice to open a parent popover and allow that parent popover to open 1 or more child popovers.
When the child popover is closed (via a close button or outside click), it closes but the parent remains open. At this point the parent then closes normally via a close button or outside click
This is almost like a stack.
Describe alternatives you've considered
None. I would have to implement floating ui myself and go outside of this library
Additional context
None

I think this is a reasonable ask and something that should be possible as the use case you've presented isn't uncommon.
If we do it right it shouldn't break accessibility, as the dropdown menu has nested popovers that are perfectly accessible. Once I finish the dropdown menu I'll apply the same nested logic to the popover as I applied to it, so we can keep things consistent throughout (from an internal builder perspective).
@TGlide if you want to assign this to me I'll take it on soon!

Sure, go for it @huntabyte!
I recently implemented nested dialogs. May be worth looking at the implementation!

Closed by: #234


Module augmentation does not work on un-imported node packages / generated d.ts files

TypeScript Version: v1.8.10

Create a basic external npm package 'node_modules/ext'. In it, set up the following 2 files:

// ext.d.ts
declare var _default: {};
export default _default;

// package.json (edit it)
  "main": "ext",
  "typings": "ext",

Reference package 'ext' from A.ts, using --declaration, generating A.d.ts

// A.ts
import ext from 'ext';

declare module 'ext' { }

Copy A.d.ts to another directory, that has the ext package installed in node_modules

// B.ts
import * as modA from './A'

Expected behavior:
Generated A.d.ts causes no errors because typed package 'ext' was in the correct location.
Actual behavior:
A.d.ts(1,16): error TS2664: Invalid module name in augmentation, module 'ext' cannot be found.
Workarounds:

explicitly import 'ext' module while in B
re-export something from B as part of A (triggering an import to be generated in A.d.ts)

Remarks:
This is frustrating because the fact that A depended on 'ext' was an implementation detail, and in reality npm was the one that brought 'ext' into node_modules.
Thoughts?

Are you using --outFile when you try this out?

Nope, generating and publishing loose *.d.ts files.

I'm not able to repro the issue. Can you upload your code to GitHub or something to I can clone it and take a look?

@DanielRosenwasser  - sure, I published a repo as https://github.com/theoy/tsc-8113-repro
To repro:
1. git clean -xdf
2. cd ext && npm install
3. cd ../A && npm install
4. cd ../B && npm install

There's a comment in B.ts that demos the workaround of importing 'ext' from B. In my real project, 'ext' is an implementation detail, and would prefer to not have to expose it, but was augmenting 'ext' from within A, in order to clean up an aspect of A's implementation.

I can see what is going on. The issue is that in A.d.ts we record the fact that it contains augmentation for module ext but import itself it elided since module does not expose anything from module ext on its public surface.
// A.d.ts
declare module 'ext' {
}
declare var _default: {};
export default _default;

Now if module B tries to consume module A the compiler will find augmentation for ext but won't find anything that imports or exports ext and as a result ext won't be included in the program. This was a deliberate design decision - module augmentations don't add new files in the program, instead they should only work if something else in the program uses module-that-should-be-augmented. However I think that we should relax the rule regarding errors: if we've found an augmentation for module we should check if name in augmentation can be successfully resolved. If yes - we should proceed and don't report any errors (yes, target module might not be imported so nobody will observe the result of augmentation - not a big deal). However if resolution for module name has failed - then we should error.// cc @mhegazy

@vladima - yep, I figured that's what was going on, especially once exporting in A something from ext resolved the problem. I personally agree that your suggestion sounds right (allow module augments to refer to modules that haven't been imported by other ways). Either that, or detect that the augmentation isn't used in anything exported.

another solution can be: since we now are distinguishing root files from imported we can only module not found errors for augmentations defined in root files. The reason is: it is quite possible that some 3rd party module A that was imported in application also defines an augmentation for some another module B but application itself does not use B and as a consequence does not have dependency on it so resolution for B always will fail and user will always see some errors that he cannot get rid of.


Consider switching to predicates crate for predicates

You can see it's already wildly popular: https://crates.io/crates/predicates
It'd unlock combinatorial logic on predicates.
Existing custom predicate functions can be wrapped like this: https://docs.rs/predicates/latest/predicates/function/fn.function.html

@teohhanhui
Hi it's first time I hear of predicates crate, it looks interesting, so thanks for bringing this!
While there is some overlap between predicates and the validation rules in nutype, it cannot be fully replaced.
Predicates return bool, without providing information what exactly caused the failure.


Schedule deletion of experimental boards

We still have to make a few decisions in advance:
e.g. how and where (possibly pop-up with regard to new functions on the board) we want to communicate to the user that the board will be deleted in 90 days.


Not an issue

Just wanted to say thank you for the work you have put towards this. It's working fantastic with version 4. I failed to reply to a previous issue I put forward. I can't find it to reply now, but everything is working great. Thanks again!

Hi @OakBehringer,
Thank you for your comment!


ERROR:root:We're not at the end, yet we recieved less data than expected. THIS SHOULD NOT HAPPEN.

I'm having the issue with:
ERROR:root:We're not at the end, yet we recieved less data than expected. THIS SHOULD NOT HAPPEN.
popping up after I try and stream it.
Could this be fixed? I'm thinking it needs maybe more time in the buffer before it starts playing it?
Here's my code:
from elevenlabslib import *
import sys
import time

# Initialize the ElevenLabs API
api_key = "[api-key]"
user = ElevenLabsUser(api_key)
voice = user.get_voices_by_name("Adam")[0]

# Audio generation options
playbackOptions = PlaybackOptions(runInBackground=True)
generationOptions = GenerationOptions(model_id="eleven_english_v2", stability=0.5, similarity_boost=1.0, style=0.2, use_speaker_boost=True)

# Generate and play the audio
try:
    audioStreamFuture = voice.generate_stream_audio_v2(sys.argv[1], playbackOptions, generationOptions)[1]
    audioStream = audioStreamFuture.result()

    # Check if the audio stream is ready and active
    while not audioStream.active:
        time.sleep(0.1)  # Wait for the audio stream to become active

    # This loop ensures the audio plays to completion
    while audioStream.active:
        time.sleep(0.1)

except Exception as e:
    print(f"An error occurred: {e}")

The error suggests you're on an old version of the library - be sure to update to the latest one.
Additionally, here's how you can wait on the audio to finish playing in a better way:
import threading
from elevenlabslib import *
import sys

# Initialize the ElevenLabs API
api_key = "[api]"
user = ElevenLabsUser(api_key)
voice = user.get_voices_by_name("Adam")[0]

# Audio generation options
playback_end_event = threading.Event()
playbackOptions = PlaybackOptions(runInBackground=True, onPlaybackEnd=playback_end_event.set)
generationOptions = GenerationOptions(model_id="eleven_english_v2", stability=0.5, similarity_boost=1.0, style=0.2, use_speaker_boost=True)

# Generate and play the audio
try:
    audioStreamFuture = voice.generate_stream_audio_v2(sys.argv[1], playbackOptions, generationOptions)[1]
    audioStream = audioStreamFuture.result()

    #Wait for the audio to play to completion:
    playback_end_event.wait()

except Exception as e:
    print(f"An error occurred: {e}")

Ah thanks, that seemed to do the trick, I had to force update it with
pip install --upgrade elevenlabslib

Hey sorry to reopen, but now the issue seems to be that it's not closing properly after playing the audio, the python script in task manager remains open until I force close it, here's the full code so far:
import threading
from elevenlabslib import *
import sys

# Initialize the ElevenLabs API
api_key = "[API]"
user = ElevenLabsUser(api_key)
voice = user.get_voices_by_name("Adam")[0]

# Audio generation options
playback_end_event = threading.Event()
playbackOptions = PlaybackOptions(runInBackground=True, onPlaybackEnd=playback_end_event.set)
generationOptions = GenerationOptions(model_id="eleven_english_v2", stability=0.5, similarity_boost=1.0, style=0.2, use_speaker_boost=True)

# Generate and play the audio
try:
    voice.generate_stream_audio_v2(sys.argv[1], playbackOptions, generationOptions)

    #Wait for the audio to play to completion:
    playback_end_event.wait()

except Exception as e:
    print(f"An error occurred: {e}")

Possibly it's due to the library update? It was working fine on the old version 0.10 except for that bug I mentioned earlier that I had before, but on 0.14 it doesn't close?

That's... certainly interesting. Let me take a look at what's going on.

I actually can't reproduce this at all - it ends correctly.
Can you set logging level to debug and send over the log?

How do set the logging level to debug?

Add the line logging.basicConfig(level=logging.DEBUG) to the start of the script (you'll need to import logging)

Okay, nevermind, I have managed to reproduce it - it just took a much longer text. I'll look into it tomorrow and post any updates.

It gave this monstrosity:
output.zip
DEBUG:root:Putting 8192 bytes in queue.
DEBUG:root:The following is some logging for a new and fun soundfile bug, which I (poorly) worked around. Lovely.
DEBUG:root:Before the bug: frame 1140480 (byte 413779)
DEBUG:root:After the bug: frame 1140480 (byte 413779)
DEBUG:root:Fun bug happened AFTER the download was over. Continue.
DEBUG:root:Done recreating, now at 1140480 (byte 412525).

Nice, works, thanks!


Questions about the wording under 'The GameMain::Run method'

Regarding the section 'The GameMain::Run method':

Should "When your game has focus" be changed to "When your game has focus, is unsnapped, or is resized sufficiently large"? This change, if correct,  would make the author's intent more clear.

Regarding the phrase "When the game is not visible, suspended, nor snapped":
a. What does the word "visible" mean in this context? It is not used in the surrounding text. Instead, "focus", "snapping" and "resizing" are discussed.
b. GameMain::Run code shown on the webpage uses the variable m_visible, however there is no use of the word "focus" (or variable m_haveFocus, which is used elsewhere in GameMain.cpp), or the word "snap". I understand the code is correct, however it would be helpful to explain how the code shown (and the use of the word "visible" and variable m_visible) relates to focus and snap events, given the discussion of focus and snap on the webpage.

Thank you,
Robert

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

ID: 5f3ce549-20ef-7dd6-4d01-b51517013dcb
Version Independent ID: 95bf84a2-267d-6bc7-00db-0d08e51599e8
Content: Define the game's UWP app framework - UWP applications
Content Source: windows-apps-src/gaming/tutorial--building-the-games-uwp-app-framework.md
Product: uwp
Technology: games
GitHub Login: @stevewhims
Microsoft Alias: stwhi

Thanks, @Robert-Tortorelli. To do the investigation and correction work here, I've created an internal work item for myself on my backlog. Since I'm tracking that work internally, I'll temporarily close this issue now and reopen it once I start the work (in the future), and report back here when that's done.
-Steve

Thank you Steve.
Robert
On Wed, May 19, 2021 at 4:53 PM Steven White @.***>
wrote:

Thanks, @Robert-Tortorelli https://github.com/Robert-Tortorelli. To do
the investigation and correction work here, I've created an internal work
item for myself on my backlog. Since I'm tracking that work internally,
I'll temporarily close this issue now and reopen it once I start the work
(in the future), and report back here when that's done.
-Steve
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/windows-uwp/issues/3129#issuecomment-844464461,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APVTA2U3NCRETUUKZCIQGCLTOQQM5ANCNFSM45FMZ4DQ
.

Hi, @Robert-Tortorelli. I've published updates to the topic that explain more clearly what the game's logic is doing.
For #1, the wording should have been around visibility, and not focus. But essentially I updated the two paragraphs immediately before the code example (in the section "The GameMain::Run method") and I added another paragraph. So you can see my changes in the 3 paragraphs immediately before that code example.
Thanks!
Steve

Hi Steve,
Your updates greatly improve readability. Thank you again!
Regards,
Robert


chore: Update to Smithy 1.39.0

Issue #
#1037
Description of changes
Updates the project for breaking changes to the endpoints rule engine in Smithy 1.39.0.

Update the name and/or location of several Smithy classes.
The Swift SDK codegen phase currently copies partitions.json out of the Smithy project for use when code-generating endpoint resolvers.  This is not desirable because the copy in Smithy is infrequently updated.  Eventually, partitions.json will be supplied at build time by the SDK release coordination system, but for now, an up-to-date copy is provided in this project, and will be updated when needed.
partitions.json is no longer rendered into every endpoint resolver since it is the same for every service client.  Instead, one common copy is provided in AWSClientRuntime.
An unused endpoints.json file is deleted.

Protocol tests:

It was discovered that Smithy protocol tests for RestJSON were being run twice: once with Smithy tests & again with local tests.  The second execution is omitted.
There are two new protocol tests that fail.  They are disabled & tracked by separate tickets.

New/existing dependencies impact assessment, if applicable
No new dependencies were added to this change.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/test


Update translations to 2016

Spanish and the others translations are still with 2015 instead of 2016

Now need to update for 2017, closing.


Bot routing is only working on alternate turns

Describe the bug

I am following the bot routing steps: https://github.com/aws-solutions/aws-qnabot/blob/main/BotRoutingREADME.md, however, it only gets routed to the Lex bot exactly every alternate turn.
If I want to support 2 locales, I would create 2 Lex v1 bots, however, in the admin console since I can only enter questions in English, how do I route to the correct locale bot since I would only have a common question in English. Currently, if I configure a QnA in English, enter the german form in the client, the question gets routed to the bot setup for DE, however the response still shows up in English (translated form of what I have given in the Lex bot in german)

To Reproduce

Setup a Lex v1 bot
Configure a QnA with bot alias, version, name in Advanced section.
Try querying using client 2 times.
The first request gives the default answer (checking...) configured in the QnA admin page, the second request routes to the Lex use-case bot. I have configured to return params on Lex fulfilment, so the params are returned every alternate turn.

{
      "qid": "BotRoutingTest",
      "a": "checking...",
      "botRouting": {
        "specialty_bot": "OrderBot_versionOne",
        "specialty_bot_name": "OrderBot_versionOne",
        "specialty_bot_alias": "aliasVersionOne"
      },
      "type": "qna",
      "q": [
        "Where is my order?"
      ]
    }

Expected behavior
The request should route to the Lex use-case bot.
Please complete the following information about the solution:

(SO0189) QnABot with admin and client websites - (Master v5.0.0)
[ eu-west-1]
[ No] Was the solution modified from the version published on this repository?
[ NA] If the answer to the previous question was yes, are the changes available on GitHub?
[ No] Have you checked your service quotas for the sevices this solution uses?
[ No] Were there any errors in the CloudWatch Logs?

Screenshots
NA
Additional context
Compared the logs coming to the fulfillment lambda in Cloudwatch, these params only are visible for the request where it is routed to specialty bot and not for the others.
sessionState.sessionAttributes.qnacontext
"specialtyBot\":\"OrderBot_versionOne\",\"specialtyBotName\":\"OrderBot_versionOne\",\"specialtyBotAlias\":\"aliasVersionOne\"}"

Hi, can someone please help with this?

From what I understood looking at 3, this is happening because ES is called after specialtyBot is called.
I would expect ES to be queried first so that the specialty bot config can be picked up.
I was able to get it working after adding another call to specialtBot here and would need something similar to elicit bot too.

@yashpungaliya The initial question only enables bot routing for subsequent input to qnabot. The answer to this initial question is provided as the response and the session attributes are set to indicate subsequent routing to the target bot. Further input to qnabout is then routed to the target bot until use of the specialty bot is terminated either through user input or by the specialty bot.

User
QnABot
Specialty Bot

I'd like to log food nutrition
Great, what did you eat?

I had a steak and fries
(routed)
You just consumed 1193 Calories

I had a milk shake
(routed)
You just consumed 541 calories

No more food
Ok thanks. You are back to QnABot

From what I can see in your question this is what you are seeing. The input which enables routing is not passed to the specialty bot. Just the subsequent conversation and response is passed to the specialty bot.
Sometimes its good to configure a ResponseCard with buttons on the initial question to help guide the user on what could be entered next.
Let me know if this answers your question or if you'd like to see a different use case for bot routing.

Hi @bobpskier, but wouldn't we want to directly route to the Specialty Bot sometimes in the 1st request itself?
For example, user wants to enquire about food nutrition and asks QnABot: 'I'd like to log food nutrition for a milkshake', in that case, we woudn't want to ask the user Great, what did you eat? which is provided statically in the admin console, rather allow the SpecialtyBot to determine whether the slot has already been provided or not

Sometimes you might want to route to the specialty bot on the first invocation and sometimes you might not want to route on the first invocation and instead provide hints about how to use the specialty bot. The current implementation will not pass the invocation utterance on to the specialty bot.
One approach to change this behavior is to implement a lambda hook attached to the qid which starts future routing. This lambda hook could invoke the target bot and set response session attributes as needed. Hence when the question is first used, the normal processing would setup further routing and the lambda hook could look at this routing and make the first invocation to the target bot via either lexv1, lexv2, or lambda call. It would be similar to the code in lambda/fulfillment/lib/middleware/specialtyBotRouter.js. You'd have to pull this into a new lambda function, resolve the external dependencies, pull out the res, req, botName, and botAlias arguments to use in a new top level handler function. The logging calls would need to be changed to use only console.log. Using this approach I believe its possible to implement this mechanism.

I believe there would be use-cases where they would expect QnA bot to handle invocation in first turn itself, instead of letting specialty use-cases add an additional lambda hook, we can query specialty bot from here directly. I made some changes to the file and got it working for both the cases.

hi
We are looking into this and will update you
fabien

@yashpungaliya - we're providing bot routing enhancements provided by @bobpskier PR: https://github.com/aws-solutions/qnabot-on-aws/pull/575. These changes will be made publicly available during the next minor release (in a few months). The changes include passing an initial utterance to the specialty bot, which should resolve this issue. Please let me know if there are any remaining issues/observations; reading through this history it sounds like you've already found a workaround.

This issue has been resolved in v5.5.0.


hookInstead error

xcode 12.0 beta3 ,IOS 14 beta 4
PODS:

EasySwiftHook (2.0.0):

libffi-iOS (~> 3.3.1-iOS)

libffi-iOS (3.3.1-iOS)
COCOAPODS: 1.10.0.beta.1

import UIKit
import EasySwiftHook
class ViewController: UIViewController {
    // Hooking code is in AppDelegate.swift
    @IBOutlet weak var btn: UIButton!
    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "I am the title"
        self.view.backgroundColor = .red
        self.btn.expandResponseArea(edge: .init(top: -50, left: -50, bottom: -50, right: -50))
        self.btn.addTarget(self, action: #selector(onBtn), for: .touchUpInside)
    }

    @objc func onBtn(){
        print("You touchupinsde Btn")
    }

}

extension UIButton {
    func expandResponseArea(edge:UIEdgeInsets){
        do {
            let hookClosure =  {original,object,selector,point,event in
                let r = original(object,selector,point,event)
                print(r)
                let bounds = object.bounds.inset(by: edge)
                return bounds.contains(point)
            } as @convention(block)((UIButton,Selector,CGPoint,UIEvent?)->Bool,UIButton,Selector,CGPoint,UIEvent?)->Bool

            try hookInstead(object: self, selector: #selector(UIButton.point(inside:with:)), closure: hookClosure )
        }catch let error {
            print("HOOKERROR:",self.titleLabel?.text as Any,error)
        }
    }
}

iOS10.3 get same error

Thank you very much @tanpengsccd . It's a bug when hooking struct.
Fixed by https://github.com/623637646/SwiftHook/pull/5
Please use the version 2.0.1


VM is not created properly or completely, no Cloud-init drive after creation

Hi! I have no prior knowledge related to any of this, so I may have made many mistakes. Please help me out with this.
I'm using an Ubuntu 24.04 VM template to create VMs using Terraform, followed this tutorial to create the VM template https://tcude.net/creating-a-vm-template-in-proxmox/.
My main.tf is as follows -
terraform {
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.1-rc3"
}
}
}
provider "proxmox" {
pm_api_url = "https://xxxxx:8006/api2/json"
pm_user = "xyz@pve"
pm_password = "xyz" # Or use an API token
pm_tls_insecure = true
pm_debug = true
pm_log_enable = true
}

resource "proxmox_vm_qemu" "my_test_vms" {
count = 1
name = "Test-vm-${count.index + 1}"

onboot = true
vm_state = "running"

target_node = "xxx"
memory = 2048
cores = 2
sockets = 1
clone = "template-name"
network {
model = "virtio"
bridge = "vmbr0"
}

ipconfig0 = "ip=dhcp"

}

This gives me a VM with no cloud-init drive and a state of continuous boots like the pic attached.
The Ubuntu OS doesn't startup.

Now , if I remove bridge="vmbr0" and ipconfig0="ip=dhcp". This creates a VM with the following error. It starts once manually started though.
proxmox_vm_qemu.my_test_vms[0]: Creating...
proxmox_vm_qemu.my_test_vms[0]: Still creating... [10s elapsed]
╷
│ Error: error updating VM: 500 no sdn vnet ID specified, error status: {"data":null} (params: map[agent:0 bios:seabios cores:2 cpu:host delete:ide2,scsi0 hotplug:network,disk,usb kvm:true memory:2048 name:Test-vm-1 net0:virtio=5E:74:ED:5A:07:CC numa:false onboot:true protection:false scsihw:lsi sockets:1 tablet:true vmid:102])
│
│ with proxmox_vm_qemu.my_test_vms[0],
│ on main.tf line 20, in resource "proxmox_vm_qemu" "my_test_vms":
│ 20: resource "proxmox_vm_qemu" "my_test_vms" {
│
If I remove just the line "bridge=vmbr0", it gives a similar error and starts when started.
Error: error updating VM: 500 no sdn vnet ID specified, error status: {"data":null} (params: map[agent:0 balloon:0 bios:seabios cicustom: cipassword: ciupgrade:0 cores:2 cpu:host delete:ide0,ide2,scsi0,ciuser,searchdomain,nameserver,shares,serial0 hotplug:network,disk,usb ipconfig0:ip=dhcp kvm:true memory:4096 name:induz-memcache-vm-1 net0:virtio=CE:F6:F8:EA:5F:B9 numa:0 onboot:true protection:false scsihw:lsi sockets:1 sshkeys:%0A tablet:true vmid:100])

Any little feedback is much needed and appreciated!!!

I have also experienced Plugin crashes and Can't lock file...- got timeout  errors similar to  #1101

With the newest version = "3.0.1-rc4", I get a created VM with no errors but it doesn't start. It keeps getting connected and disconnected as a loop.

I have the same problem. What's more, I've spotted that when running two vms, that only differ in template to clone from, one boots and one has the same problem as described in this thread.

@yyy916

Which version of PVE are you using?
How much is configured in the template? Only a boot disk is needed, everything else is managed by terraform.
Does the created VM have any detached disks?
Is the boot order configured?

@Tinyblargon

I used the Proxmox-VE_8.2-1 iso image. The pveversion shows  proxmox-ve: 8.2.0 (running kernel: 6.8.4-2-pve)
pve-manager: 8.2.2 (running version: 8.2.2/9355359cd7afbae4)
I followed everything as in the link https://tcude.net/creating-a-vm-template-in-proxmox/
I don't think there are any unattached or orphaned disks from deleting a VM. I usually face the issue of a failed apply when there are, and go on to delete them. I'm assuming you're asking about cloud-init-disks. I delete them using rbd rm command. Please help me understand if I misunderstood something!
Again, I followed as in the above link.

@Tinyblargon
Please let me know if I haven't given you enough details! Do you need me to attach any logs or other info?

@yyy916 in the article you linked scsi0 seems to be the boot disk, could you change the boot order to only include scsi0 and see if that fixes it.

I will try and let you know!

Hey...sorry for the delay. There was plugin init error.
So i edited out the boot order in the template and regenerated it. It gives me the same output. The VM is created without a cloud-init drive and is in a state of continuous connection issues.

My created VM has this boot order

@Tinyblargon Could I be missing out on any other details?
I even tried mentioning bootdisk = "scsi0" in my main.tf

@yyy916 one of the things that i think is going wrong is that the guide you followed works under the assumption template settings will be preserved.
Terraform will create the new vm with no regard for the template. Therefore, the only thing needed in the template is a boot disk.

@Tinyblargon So how do you recommend I create the template? I need an Ubuntu 24.04 template. Could you please help me out with a step-by-step guide? I tried out whatever I found, for some reason it ends up the same.

So i've been battling this same issue today. I ultimately managed to find a solution that seems to work. I'll provide some links and screenshots as well as my resource block for creating the vm's that fixed my issue. There is clearly a documentation gap here but i see you have an issue to address it for a planned release.
To start with I prepared a template per the instructions on the proxmox wiki here. I called my resulting template ubuntu-cloud-init-template. These images show my "Options" and "Hardware" for the template

Once I had my template VM I created a resource to make my VM. I used the existing docs on creating a cloud-init file in snippets to create user-data.yml with the contents I needed for my use case but I think this should be easy enough to understand and implement on your own. The core of the issue here I think is that cloud-init expects a serial console. My template had them but the resource seems to just clone the disk image so you need to make sure you create one as part of your resource. I could be totally off the mark with that, but it got me out of the looping startup hell.
resource "proxmox_vm_qemu" "k8s-control-plane" {
  # count of number of control nodes
  count = var.control_node_spec.count

  # Start of actual resrouces for vm
  name        = "k8s-control-${count.index}"
  target_node = var.node_name

  vmid    = format("${var.control_node_spec.vm_id_prefix}%02d", count.index)
  desc    = format("Kubernetes Control Plane %02d", count.index)
  tags    = "k8s,control-plane"
  os_type = "cloud-init"

  # clone my existing template
  clone = "ubuntu-cloud-init-template"

  # start at boot
  onboot = true

  # expect qemu-agent to be enabled and tell it we are booting linux guests
  agent   = 1
  qemu_os = "l26"
  scsihw  = "virtio-scsi-pci"

  # define resources
  cpu     = "host"
  cores   = var.control_node_spec.cores
  sockets = 1

  # define memory
  memory = var.control_node_spec.memory

  # specify our custom userdata script
  cicustom = "user=local:snippets/k8s-user-data.yml"

  # create my disks
  disks {
    ide {
      ide2 {
        cloudinit {
          storage = "local"
        }
      }
    }
    scsi {
      scsi0 {
        disk {
          size    = "20G"
          storage = "local-lvm"
          format  = "raw"
          cache   = "none"
          backup  = false
        }
      }
    }
  }

  # This is mandatory for some reason
  serial {
    id   = 0
    type = "socket"
  }

  # define network interfaces
  network {
    model  = "virtio"
    bridge = "vmbr0"
  }

  # set cloud init networking info, look at providing with cicustom
  ipconfig0 = format("ip=<IP_ADDRESS>%02d/24,gw=<IP_ADDRESS>", count.index)
}

@Uncurlhalo thanks for the help with this issue, the information you provided will go a long way when i start working on #1105

I also tested this with ipconfig0 = "ip=dhcp" as well, as i know someone mentioned something with that before, it seemed to work fine as the vm's started and I saw they got leases from my router.

pve 8.2.5
RC4

Disclaimer: I'm a noobie in terraform.
I've created and configured ubuntu cloud-init image converting it into a vm template using an official pve guide, configuring boot order, serial console, etc.

So i've been battling this same issue today. I ultimately managed to find a solution that seems to work. I'll provide some links and screenshots as well as my resource block for creating the vm's that fixed my issue. There is clearly a documentation gap here but i see you have an issue to address it for a planned release.
To start with I prepared a template per the instructions on the proxmox wiki here. I called my resulting template ubuntu-cloud-init-template. These images show my "Options" and "Hardware" for the template
Once I had my template VM I created a resource to make my VM. I used the existing docs on creating a cloud-init file in snippets to create user-data.yml with the contents I needed for my use case but I think this should be easy enough to understand and implement on your own. The core of the issue here I think is that cloud-init expects a serial console. My template had them but the resource seems to just clone the disk image so you need to make sure you create one as part of your resource. I could be totally off the mark with that, but it got me out of the looping startup hell.
resource "proxmox_vm_qemu" "k8s-control-plane" {
  # count of number of control nodes
  count = var.control_node_spec.count

  # Start of actual resrouces for vm
  name        = "k8s-control-${count.index}"
  target_node = var.node_name

  vmid    = format("${var.control_node_spec.vm_id_prefix}%02d", count.index)
  desc    = format("Kubernetes Control Plane %02d", count.index)
  tags    = "k8s,control-plane"
  os_type = "cloud-init"

  # clone my existing template
  clone = "ubuntu-cloud-init-template"

  # start at boot
  onboot = true

  # expect qemu-agent to be enabled and tell it we are booting linux guests
  agent   = 1
  qemu_os = "l26"
  scsihw  = "virtio-scsi-pci"

  # define resources
  cpu     = "host"
  cores   = var.control_node_spec.cores
  sockets = 1

  # define memory
  memory = var.control_node_spec.memory

  # specify our custom userdata script
  cicustom = "user=local:snippets/k8s-user-data.yml"

  # create my disks
  disks {
    ide {
      ide2 {
        cloudinit {
          storage = "local"
        }
      }
    }
    scsi {
      scsi0 {
        disk {
          size    = "20G"
          storage = "local-lvm"
          format  = "raw"
          cache   = "none"
          backup  = false
        }
      }
    }
  }

  # This is mandatory for some reason
  serial {
    id   = 0
    type = "socket"
  }

  # define network interfaces
  network {
    model  = "virtio"
    bridge = "vmbr0"
  }

  # set cloud init networking info, look at providing with cicustom
  ipconfig0 = format("ip=<IP_ADDRESS>%02d/24,gw=<IP_ADDRESS>", count.index)
}

@Uncurlhalo This config works for my existing template too!!

I still get plug-in crashes and can't lock file errors and am trying to get a ssh connection working but I can finally get a working VM that starts after creation.  Thank you so very much!! @Tinyblargon @Uncurlhalo

Had the same issues yesterday but thanks to this (and some other issues) as well as the latest docs by @Tinyblargon I finally got it working and decided to create a short starter README you can find here: https://github.com/sewe75/proxmox-terraform. Mostly for my notes but maybe it's a starting point for others as well.
Thanks for this provider as well as still working on it!

@sewe75 - I hadn't changed anything in my PVE setup and all of a sudden my deployments started failing with Error: error updating VM: Put "https://<server_ip>/api2/json/nodes/<server_name>/qemu/<node_id>/config": EOF, error status: no body available for HTTP response
I tried to use your guide (even updated to PVE 8 from 7 to match your example) and I'm still experiencing the same error. Have you seen this issue before?

@M-Barrows which PVE version are you on?

@M-Barrows which PVE version are you on?

PVE 8.2.7
Terraform v1.9.7
on linux_amd64

provider registry.terraform.io/telmate/proxmox v3.0.1-rc4

Finally got a working setup - I think the issue was tied to EFI. So the heavy lifting was done by the template creation script, but I had to make sure my disks section matched the new template setup. Before I was using ide and scsi but now I'm using scsi and virtio. Here's a working setup for me for future documentation.

One bug with the current setup is that any updates to these resources trigger a reboot on PVE and that never completes. I have to manually stop the resources first. I'm okay with that for now but would be good to look into if possible.

Cloud Init Template Create

taken from https://github.com/UntouchedWagons/Ubuntu-CloudInit-Docs/blob/main/samples/ubuntu/ubuntu-noble-cloudinit.sh

#! /bin/bash

VMID=8000
STORAGE=local-lvm

set -x
rm -f noble-server-cloudimg-amd64.img
wget -q https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
qemu-img resize noble-server-cloudimg-amd64.img 8G
qm destroy $VMID
qm create $VMID --name "ubuntu-noble-template" --ostype l26 \
    --memory 1024 --balloon 0 \
    --agent 1 \
    --bios ovmf --machine q35 --efidisk0 $STORAGE:0,pre-enrolled-keys=0 \
    --cpu host --cores 1 --numa 1 \
    --vga serial0 --serial0 socket  \
    --net0 virtio,bridge=vmbr0,mtu=1
qm importdisk $VMID noble-server-cloudimg-amd64.img $STORAGE
qm set $VMID --scsihw virtio-scsi-pci --virtio0 $STORAGE:vm-$VMID-disk-1,discard=on
qm set $VMID --boot order=virtio0
qm set $VMID --scsi1 $STORAGE:cloudinit

cat << EOF | tee /var/lib/vz/snippets/ubuntu.yaml
#cloud-config
runcmd:
    - apt-get update
    - apt-get install -y qemu-guest-agent
    - systemctl enable ssh
    - reboot
# Taken from https://forum.proxmox.com/threads/combining-custom-cloud-init-with-auto-generated.59008/page-3#post-428772
EOF

qm set $VMID --cicustom "vendor=local:snippets/ubuntu.yaml"
qm set $VMID --tags ubuntu-template,noble,cloudinit
# qm set $VMID --ciuser serveradmin
# qm set $VMID --sshkeys ~/.ssh/authorized_keys
qm set $VMID --ipconfig0 ip=dhcp
qm template $VMID

TF Provider
terraform {
  required_providers {
    proxmox = {
      source  = "Telmate/proxmox"
      version = "3.0.1-rc4"
    }
  }
}

provider "proxmox" {
  pm_api_url          = "${var.PM_BASE_URI}/api2/json"
  pm_api_token_id     = var.PM_API_TOKEN_ID
  pm_api_token_secret = var.PM_API_TOKEN_SECRET
}

vms.tf
resource "proxmox_vm_qemu" "resource-name" {
  count       = 1
  name        = "vm-name"
  target_node = "pve-node-name"
  agent       = 1
  memory      = 6144 // 6Gb
  tags        = "iac,terraform"
  ipconfig0   = "ip=<IP_ADDRESS>/32,gw=<IP_ADDRESS>"
  os_type     = "cloud-init"
  clone       = "ubuntu-noble-template"
  sockets     = 1
  cores       = 1
  scsihw      = "virtio-scsi-pci"
  onboot      = true
  ciuser      = "serveradmin"
  sshkeys     = var.ssh_keys
  serial {
    id = 0
    type = "socket"
  }
  network {
    bridge    = "vmbr0"
    firewall  = false
    link_down = false
    model     = "virtio"
  }
  disks {
    scsi {
      scsi1 {
        cloudinit {
          storage = "local-lvm"
        }
      }
    }
    virtio {
      virtio0 {
        disk {
          storage = "local-lvm"
          size    = "30G"
        }
      }
    }
  }
}


Lb agents of original LB service shown in UI for cloned services.

Server version - v0.30.0-rc3
Steps to reproduce the problem:
Create LB service and activate it.
Clone another LB service from this LB service.
The cloned LB service shows the Lb agent (even when it is not activated yet) from the original LB service it was cloned from.
When  UI is refreshed , lb Agent is not shown anymore.

+1 Very weird UI with this. Saw it when testing out my demo.

Still relevant in new UI. v0.49.0-rc1.
Cloned a load balancer, container from old LB is in LB summary and LB detail view.

No longer relevant in the latest UI.
Verified with v0.57.0-rc5.


Remove normalize SeqNo. Allow starting 0

Fixed Why replace seqNo 0 to 1? · Issue #37 · grafov/m3u8

@grafov Would you merge this? :pray:

I can't see any reason why this shouldn't be merged, we're also confused by this behaviour, and don't feel it's a breaking change. I've searched the history, and it looks like this behaviour has been here for some time. See b5ae3cda1ea04cffde8f2b0953c196830014fbd9 which maintained the behaviour in e559557ee47cc76c220ff52f6754b5cc478cf701 which appears to have added the SeqNo for a VoD (closed) playlist in 710ac2a72fe477bdbd6c86d007d684948901c67e - which makes references to Widevine?

Yes-yes, it all will be merged soon sorry for delays.


Add Sections to Lists

Allow users to add section headers. They will be styled differently from items.
Sections will include an "add item" button to adds the item to that section (create a different task for this).

Commit: https://github.com/johneastman/todo/commit/15155fc4d958d601e7a5e9e4a43453af263cd28f
A new task has been created for the add-item functionality: https://github.com/johneastman/todo/issues/94


Example on docs.rs doesn't work

I am trying to get to know about this library, it looks pretty nice to me as it provides a highly abstracted interface that no other library does; however the example provided was not working, both on Windows 10, Linux (Ubuntu 18.04) and macOS (10.14.3). Program exited as soon as it starts, no panic, error messages, etc. But also no sound.
use std::fs::File;
use std::io::BufReader;
use rodio::Source;

let device = rodio::default_output_device().unwrap();

let file = File::open("sound.ogg").unwrap();
let source = rodio::Decoder::new(BufReader::new(file)).unwrap();
rodio::play_raw(&device, source.convert_samples());

I've tried to use different audio source files and have also converted them into different formats (wav, mp3, ogg, flac), but none of those helped.
Edit: also tried to connect to different output devices (speaker, headphones, USB DAC), but still no luck.

My guess is that your main thread is exiting immediately and - as rodio plays audio in a background thread - the program ends before it gets to play anything. Try adding a loop {} or similar after the last line.

Thanks, or adding:
use std::thread::sleep;
[...]
sleep(Duration::from_millis(10000));
``` ... does the trick too ;)


Bug fix to ensure all coordinate metadata is copied across onto new code

A bug fix for #83 PR #147
The problem was that not all the metadata from the coordinates was not copied across to the new cube.
Testing:

[ ] Ran tests and they passed OK
[ ] Added new tests for the new feature(s)

Not fully tested yet. Not sure whether to add a new unit test for this.

I think this now works and copies the metadata across properly.  Tested using an ipython notebook, available from me if you want.

Tested with a sample cube and output coordinates have same metadata as input (apart from new coordinate values) and can be plotted.


CM-415: Should We Use Records with EF Core as Model Classes

Hey @aineaTheSecond, the project should be in dotnet-efcore

@aineaTheSecond, in the article there is outdated code, please update it after the changes!

Hello @aineaTheSecond,
please check the two improvements suggestions. Once this is done we can send the article for senior review.


Adding descriptions to tags would help people understanding the flow

Category

[ ] Question
[ ] Typo
[ ] Bug
[ ] Additional article idea
[x] Feedback on repo organization
[x] More work for AC

Expected or Desired Behavior
Lots of tags today don't have descriptions. I think this doesn't help people understanding the flow and where are their issues at in terms of replies/being sloved etc...
Adding clear descriptions to every tag about what they need, what's the next step would help people understand, making the life of maintainers easier
CC @andrewconnell

Boom: it’s done


Test coverage: binary round trip

Add tests that round trip every type through the binary format

#48


Pytables difficult to install on apple silicon

tables relies on the hdf5 library and is problematic to the point that it appears to have been yanked as a wheel for some versions. Source and wheel distributions are not working for 3.10 at least and conda is the only real option, and that only works for very specific versions.
Given this fragility is tables essential for basic operation?
If not we should consider making it an optional dependency.

Ok I have a solution that works now. Conda will not install pytables but it will install the hdf5 dependency if you ask it to directly. The source build then works correctly.
If we do need tables we should document this install procedure.

Right, okay. Yeah, 'tables' is an optional dependency of pandas, needed for pandas.HDFStore I think ...
but if installing it is that much of a PITA we could either:
a) make HDF an optional feature for CountESS, eg: pip install countess[hdf] and the HDF5 plugin can be made unavailable if tables is unavailable.
b) break HDF reading and writing out into a non-builtin plugin package w/ its own requirement for tables, eg: pip install countess_hdf will pull in the extra plugin and also the requirement for tables.
c) use some other HDF library instead (h5py for example)
Since everything is a plugin, it doesn't really make a lot of difference to the user if a plugin is bundled into CountESS or in a separate package.
What are your thoughts?

I would suggest a) pip install countess[hdf]
On 6 Mar 2023, at 2:32 pm, Nick Moore @.***> wrote:
Right, okay. Yeah, 'tables' is an optional dependency of pandas, needed for pandas.HDFStore I think ...
but if installing it is that much of a PITA we could either:
a) make HDF an optional feature for CountESS, eg: pip install countess[hdf] and the HDF5 plugin can be made unavailable if tables is unavailable.
b) break HDF reading and writing out into a non-builtin plugin package w/ its own requirement for tables, eg: pip install countess_hdf will pull in the extra plugin and also the requirement for tables.
c) use some other HDF library instead (h5py for example)
Since everything is a plugin, it doesn't really make a lot of difference to the user if a plugin is bundled into CountESS or in a separate package.
What are your thoughts?
—
Reply to this email directly, view it on GitHubhttps://github.com/CountESS-Project/CountESS/issues/6#issuecomment-1455387905, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AARWWQSRV6NQE7WIEQURGNDW2VLGTANCNFSM6AAAAAAVQP53NI.
You are receiving this because you authored the thread.Message ID: @.***>

OK this is merged in v0.0.21, and I think it's okay, so long as we document the optional [hdf] option.


add chmod +x for testscripts to .travis.yml.2j

Fix Permission issue

Test-Scripts now are executable

Reference

See: https://github.com/while-true-do/ansible-role-yum-cron/pull/4

Resolves: #4

Ah i see. Thanks for the hin. :)

hehe, you have add the wrong issue. I will take care by hand

upsi ^^


No module named 'bot.core.profiles'

Traceback (most recent call last):
  File "C:\Users\trest\Documents\Tests\Agent301-master\main.py", line 4, in <module>
    from bot.utils.launcher import process
  File "C:\Users\trest\Documents\Tests\Agent301-master\bot\utils\__init__.py", line 2, in <module>
    from . import launcher
  File "C:\Users\trest\Documents\Tests\Agent301-master\bot\utils\launcher.py", line 12, in <module>
    from bot.core.tapper import run_tapper
  File "C:\Users\trest\Documents\Tests\Agent301-master\bot\core\tapper.py", line 23, in <module>
    from .profiles import profiles
ModuleNotFoundError: No module named 'bot.core.profiles'

you could add new one same as:
profiles = {
    "session_name" : {
        "ref_id": "",
        "proxy": "",
        "query": "query_id=AABBccDDEEffggHHiiK_I5Vt&user=%7B%22id%22%3A6451244166%2C%22first_name%22%3A%22First%20Name%22%2C%22last_name%22%3A%22%F0%9F%90%88%E2%80%8D%E2%AC%9B%F0%9F%90%B0%22%2C%22username%22%3A%22username%22%2C%22language_code%22%3A%22en%22%2C%22allows_write_to_pm%22%3Atrue%7D&auth_date=1727430022&hash=f2c72d9613143c2b9fa09e4042dd2ce0394e29d68ead8c5abd7145cacac6c450"
    },
    "session_name_2" : {
        "ref_id": "",
        "proxy": "",
        "query": "query_id=AABBccDDEEffggHHiiK_I5Vt&user=%7B%22id%22%3A6451244166%2C%22first_name%22%3A%22First%20Name%22%2C%22last_name%22%3A%22%F0%9F%90%88%E2%80%8D%E2%AC%9B%F0%9F%90%B0%22%2C%22username%22%3A%22username%22%2C%22language_code%22%3A%22en%22%2C%22allows_write_to_pm%22%3Atrue%7D&auth_date=1727430022&hash=f2c72d9613143c2b9fa09e4042dd2ce0394e29d68ead8c5abd7145cacac6c450"
    },
}


Msvc build fixes & appveyor support

Drop fuzzit at the same time - it seems to have stopped functioning.

Fixes #28


Add package install to resource

Description
(Do not merge. work in progress)
Simplify dokken configuration so that issues with .kitchen.yml are seen via travis failures.
Fix kitchen.yml that was reverted in previous commit.
Issues Resolved
[List any existing issues this PR resolves]
Check List

[ ] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

https://github.com/chef-cookbooks/sudo/issues/101


How to split route into several files?

func routes() gets large and messy soon. I'm wondering how can I split it into several files, ech  representing a particular entity?
What I want is something like:
func routes() *httprouter.Router {
	r := httprouter.New()
	r.NotFound = alice.
		New().
		ThenFunc(controller.Error404)

        notesRoutes()
        articlesRoutes()
        userRoutes()

	return r
}

I'd suggest after you create an instance of r := httprouter.New(), you then store it into a struct and create methods off that in different files or you could just return the return and then call functions in other files, but you will have to pass in *http.Router. Either way works.

I've done it by creating a new file api.go
func ApiRoutes(r *httprouter.Router) {
// Your routes
}

in existing route.go call it just before return
	// Call API Routes
	ApiRoutes(r)
	return r


feat(nargo): Handle call stacks for multiple Acir calls

Description
Problem*
Resolves leftover work from #4428
We would error out on calls in non-inlined Acir calls, however, we would only use the debug info from the main function.
Summary*
For the fold_basic_nested_call if I make assert(x == y) fail I will get the following now:

On master we would get an error in main at the first call to func_with_nested_foo_call.
Additional Context
Documentation*
Check one:

[] No documentation needed.
[ ] Documentation included in this PR.
[X] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[X] I have tested the changes locally.
[X] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Conflicts resolved after https://github.com/noir-lang/noir/pull/4719 and this is ready for review again

I'm going to try another strategy, but have a separate blocking bug I am working on right now

This is ready for review again


[WIP] Refactoring the QueryManager tests

Working on #151.
TODO:

[ ] Update CHANGELOG.md with your change
[ ] Make sure all of the significant new logic is covered by tests
[ ] Rebase your changes on master so that they can be merged easily
[ ] Make sure all tests and linter rules pass

Wow, this is dope so far


Now the model depends on specific preprocessing method too much

I used to use an older version of this package to build a sequence to sequence model (not translation), and now want to use the new version to build such a model again. However, now it does not support customized data, and it is very hard to modify the Translator class because everything is tied to the TranslationDataset.
It would be nice if it can still be more like a generic Transformer, and make the specific functions optional.

Hi ylmeng,
You are right.
I will try to refactor this part.
Thanks.
ylmeng<EMAIL_ADDRESS>於 2020年3月5日 週四 下午5:45 寫道：

I used to use an older version of this package to build a sequence to
sequence model (not translation), and now want to use the new version to
build such a model again. However, now it does not support customized data,
and it is very hard to modify the Translator class because everything is
tied to the TranslationDataset.
It would be nice if it can still be more like a generic Transformer, and
make the specific functions optional.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jadore801120/attention-is-all-you-need-pytorch/issues/143?email_source=notifications&email_token=AA6HAKSJA5BHFV6NACQILX3RF5YDFA5CNFSM4LCF2J22YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4ISW5EHQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6HAKW4HAKSNWLTDHTL57DRF5YDFANCNFSM4LCF2J2Q
.


update place value : use nominatim

example : https://nominatim.openstreetmap.org/reverse?format=geojson&lat=44.50155&lon=11.33989
It should reduce the chart width

Nominatim solution is not good for this case, because results don't help us to find the rigth country (language and accuracy output).
A work has been done, on the place key, in order to find the country


Missing Page Reload / Page Update when updating fields in Profile

Is your feature request related to a problem? Please describe.
Profile doesn't reload when anything about it updates. Additionally the user profile URL should be cached (even if for a short time, ~86400 seconds) and redirected (if possible) to the new username.
Describe the solution you'd like
Page should reload on any edits made to the profile.
Describe alternatives you've considered
Page should update URL and Fields for Profile
Additional context
None
Problem is reproduceable with any account.

should be fixed now


Ability for !nuke command to timeout users that type the same nuked phrase a period of time after nuke was issued.

Currently when !nuke is used some users that was not target by the nuke, is typing the same phrase that was nuked which leads to moderators having to either manually time those users out or use the same nuke again.
It would make moderation less of a hassle in these situations if the bot took care of these users that start using the nuked phrase after other uses has been punished.
To clarify, after !nuke has been issued, a grace period (lets say 30 seconds) is set where users that type the same phrase will also be timed out for same period that was set in the nuke.
Command in question:
https://nymn.pajbot.com/commands/1011-nukeprefix

Correct me if I'm wrong, but I believe that's the radiation option on fossabot?
CC: @Felanbird

Correct me if I'm wrong, but I believe that's the radiation option on fossabot?
CC: @Felanbird

Yes that's the same premise.

Correct me if I'm wrong, but I believe that's the radiation option on fossabot?
CC: @Felanbird

Yeah I checked if there was any documentation for it that I could reference, but the documentation for fossabot is pretty limited.
The nuke command can also only be added / used if Aiden whitelist it for said channel.

Yeah I checked if there was any documentation for it that I could reference, but the documentation for fossabot is pretty limited.
The nuke command can also only be added / used if Aiden whitelist it for said channel.

Yes nuke is an undocumented command on Fossabot, but I don't believe it was ever whitelist required.

Yeah I checked if there was any documentation for it that I could reference, but the documentation for fossabot is pretty limited.
The nuke command can also only be added / used if Aiden whitelist it for said channel.

Yes nuke is an undocumented command on Fossabot, but I don't believe it was ever whitelist required.

I was reading it wrong when I quickly looked at one of Aidens comments. He stated it's a private command on the bot and he whitelist the bot on channels after they contact him.

To access the nuke function it's a private command on Fossabot, contact me for access to that since I whitelist channels.

https://www.reddit.com/r/LivestreamFail/comments/dvxw0s/mass_bot_ban_on_xqcs_stream/f7h05km/

To access the nuke function it's a private command on Fossabot, contact me for access to that since I whitelist channels.

https://www.reddit.com/r/LivestreamFail/comments/dvxw0s/mass_bot_ban_on_xqcs_stream/f7h05km/

This was the usage of !filesay, not !nuke. The wording is just confusing as he is stating the means to "nuke" a large amount of bots.

He sent me a huge list of 4000 bots that just got made

While the suggestion of needing whitelist may have been relevant at the time, it was later realized that the !filesay tool was too important to not be available globally.


[SPARK-34361][K8S] In case of downscaling avoid killing of executors already known by the scheduler backend in the pod allocator

What changes were proposed in this pull request?
This PR modifies the POD allocator to use the scheduler backend to get the known executors and remove those from the pending and newly created list.
This is different from the normal ExecutorAllocationManager requested killing of executors where the  spark.dynamicAllocation.executorIdleTimeout is used.
In this case POD allocator kills the executors which  should be only responsible for terminating not satisfied POD allocations (new requests where no POD state is received yet and PODs in pending state).
Why are the changes needed?
Because there is race between executor POD allocator and cluster scheduler backend.
Running several experiment during downscaling we experienced a lot of killed fresh executors wich has already running task on them.
The pattern in the log was the following (see executor 312 and TID 2079):
21/02/01 15:12:03 INFO ExecutorMonitor: New executor 312 has registered (new total is 138)
...
21/02/01 15:12:03 INFO TaskSetManager: Starting task 247.0 in stage 4.0 (TID 2079, <IP_ADDRESS>, executor 312, partition 247, PROCESS_LOCAL, 8777 bytes)
21/02/01 15:12:03 INFO ExecutorPodsAllocator: Deleting 3 excess pod requests (408,312,307).
...
21/02/01 15:12:04 ERROR TaskSchedulerImpl: Lost executor 312 on <IP_ADDRESS>: The executor with id 312 was deleted by a user or the framework.
21/02/01 15:12:04 INFO TaskSetManager: Task 2079 failed because while it was being computed, its executor exited for a reason unrelated to the task. Not counting this failure towards the maximum number of failures for the task.

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Manually
With this change there was no executor lost with running task on it.
With unit test
A new test is added and existing test is modified to check these cases.

Test build #134992 has started for PR 31513 at commit fbee783.

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39575/

Test build #134992 has finished for PR 31513 at commit fbee783.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

@holdenk

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39575/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/134992/

Test build #135071 has started for PR 31513 at commit 6c0c6e9.

Test build #135071 has finished for PR 31513 at commit 6c0c6e9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135071/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39653/

@dongjoon-hyun

Test build #135122 has started for PR 31513 at commit 44392cd.

Test build #135122 has finished for PR 31513 at commit 44392cd.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135122/

cc @HeartSaVioR

Test build #135198 has started for PR 31513 at commit a316243.

Test build #135198 has finished for PR 31513 at commit a316243.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39779/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135198/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39779/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/39779/

I think this looks reasonable, the pods would still be eligible for eviction once they transition into a known state and no longer have any tasks present on them, right? Would it be possible to extend the test to include that?

@holdenk Even if they do not reach any known state they will be taken care by the ExecutorPodsLifecycleManager:
https://github.com/apache/spark/blob/a316243c7b7c01b0cd95136b236daf30dd65becf/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodsLifecycleManager.scala#L118-L147
I think ExecutorPodsAllocator responsibility are:

allocating more resources for scaling up
mitigating the risk of losing something useful during downscaling: by killing prefereby newly created or (if there is not enough newly created then the second best) pending requests.

This PR improves on downscaling. As by checking the scheduler backend we have some more information than checking only the POD snapshot source. With this extra information those pending pods known by the scheduler backend here are treated equally with the running pods (as they might run a task).
Back to the eviction: so from ExecutorPodsLifecycleManager we know what will happen with the newly created request not reaching even the pending state. Let's see what will happen with a pending POD which never reaches the running state but known by the scheduler backend: they will die in the same way as any running POD. Either spark.dynamicAllocation.executorIdleTimeout is elapsed and the driver kills it (in case of DA) or finishes unexpectedly or if we are lucky it reaches the end of the application.
Those cases cannot be tested here.
But I agree with you we need more tests: even for onNewSnapshots as it is getting more complex.
I will look into this.

I come up with a good test (but my work is still ongoing):
    // N-: newly created scheduler backend unknown
    // N+: newly created scheduler backend known
    // P- / P+ : pending
    // D: deleted
    //                                      |   default    ||         rp        |
    //                                      |              ||                   |
    //                                      | 1  | 2  | 3  || 4  | 5  | 6  | 7  |
    //--------------------------------------------------------------------------
    // 0) setTotalExpectedExecs with        | N- | N- | N- || N- | N- | N- | N- | so
    //      default->3, ro->4               |    |    |    ||    |    |    |    | outstanding == 7
    //---------------------------------------------------------------------------
    // 1) make 1 from each rp               | N+ | N- | N- || N+ | N- | N- | N- |
    //    known by backend                  |    |    |    ||    |    |    |    | outstanding == 5
    //---------------------------------------------------------------------------
    // 2) some more backend known + pending | N+ | P+ | P- || N+ | P+ | P- | N- | outstanding == 3
    //---------------------------------------------------------------------------
    // 3) advance time with idle timeout    |    |    |    ||    |    |    |    |
    //    setTotalExpectedExecs with        | N+ | P+ | D  || N+ | P+ | D  | D  | outstanding == 0
    //      default->1, rp->1               |    |    |    ||    |    |    |    |
    //---------------------------------------------------------------------------
    // 4) setTotalExpectedExecs with        | N+ | P+ | D  || N+ | P+ | D  | D  | outstanding == 0
    //      default->2, rp->2               |    |    |    ||    |    |    |    | no new POD req.
    //

Rebased on top of the master and new test is added.

Test build #135464 has started for PR 31513 at commit bb578d2.

Test build #135464 has finished for PR 31513 at commit bb578d2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/40044/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/135464/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/40044/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/40044/

Merged to the current dev & 3.1 branches.

Working on the upscaling I just realized there is a flaky part of this new test at step 0. As the order how the resource profiles are processed by the executor PODs allocator is not deterministic.
I fix this soon in a follow-up PR.

The PR is created: https://github.com/apache/spark/pull/31719

@holdenk
As I found a similar case, expecting creating resource request in a specific order for multiple resource profiles,  in an earlier test SPARK-33288: multiple resource profiles:
    podsAllocatorUnderTest.setTotalExpectedExecutors(Map(defaultProfile -> 1, rp -> 2))
    verify(podOperations).create(podWithAttachedContainerForId(1, defaultProfile.id))
    verify(podOperations).create(podWithAttachedContainerForId(2, rp.id))
    verify(podOperations).create(podWithAttachedContainerForId(3, rp.id))

And nobody was complaining for flakiness for this old test. I started to wonder if these cases can really cause any flakiness or not. If there is a Map implementation behind for these small Maps which uses fix ordering we are fine here.
And I really bumped into the problem by having many code changes to make upscaling more progressive (a possible next PR).
But to be on the safe side better to use deterministic ordering here:
    // The order we request executors for each ResourceProfile is not guaranteed.
    totalExpectedExecutorsPerResourceProfileId.asScala.foreach { case (rpId, targetNum) =>

WDYT?

Now I have it and updated the PR description of https://github.com/apache/spark/pull/31719 with my findings.


[WIP] Bump xcproj to 2.0

Before merging https://github.com/xcodeswift/xcproj/pull/185 this branch will update XcodeGen to use xcproj 2.0.

It's great that the integration tests when the integration breaks https://travis-ci.org/xcodeswift/xcproj/builds/317297483?utm_source=github_status&utm_medium=notification


Best way to make HTTP requests/gRPC requests required by Reconciliation.

I'm asking for some best practice advice on how to implement an operator using the operator sdk.
Lets say that reconciling could potentially involve doing something like making an HTTP request or a gRPC call. What's the best way of approaching that?

Just let the Reconcile method call block until it returns, and rely on the concurrent reconcile options to ensure that other reconciliations can still proceed?
Ship things across to a dedicated go-routine that performs the work. Return from Reconcile with "reschedule after 5 seconds" say and then check the results next time round?
Ship things across to a dedicated go-routine that performs the work, then when it's done uses its own client to update the Status of the CRD

The naive thing to do would seem to be to just make a blocking HTTP request in the Reconcile method, I'm just wondering whether that's going to cause any issues I'm not aware of. Given that the action I'm thinking of might take a non-trivial amount of time though it feels like I should be updating the status then letting the Reconcile method return while the HTTP request is performed

@tomqwpl I think I would start out making a blocking HTTP request and handling the result synchronously once the request completes. As you suggested, you can tune your max concurrent reconciles to scale to handle simultaneous CR reconciliations. You may consider making that an externally configurable option of your operator so that it can be tuned for the environment it's deployed in.
 Consider the scenario where a series of updates to a particular CR occurs faster than the asynchronous HTTP calls finish. When you're reconciling one of the subsequent updates, do you cancel the previous request, wait for it to complete, blindly make another request, etc?
If you do it synchronously, controller-runtime will guarantee that there is never more than one Reconcile running for a particular CR.

If you do it synchronously, controller-runtime will guarantee that there is never more than one Reconcile running for a particular CR.

Ah, that's interesting, yes. That will certainly help.
OK. I won't worry too much and do it the simplistic way.
Thanks.


Cannot use variables in sample query

it seems that sample_query in snp_calls does not work well with variables referencing, i.e
sample_list = some_sample_selection_result
ag3.snp_calls(region='3L', site_mask='gamb_colu', sample_query='sample_id in @sample_list')

raises a key error stating sample_list  is not recognised
I suspect that it is due to differences in query syntax between pandas and xarray

Just ran into this problem too and offering a cludgy hack fix that works if the list is small enough. If sample_list is a python list, you can do:
ag3.snp_calls(region='3L', site_mask='gamb_colu', sample_query=f'sample_id in {sample_list}')
The interpreter then just expands the sample_list object into the query string and it seems to work. It fails if the list is too long though, as the expansion gets truncated.
Hopefully that's useful to someone running into the same issue.

We have some caching in places and dict isn't hashable, so I'm looking at workarounds.

In some cases at least, it looks like we can refactor so that @lru_cache is still applied to parts that matter without encompassing the new mutable arg.