text:
Add imagecodecs to the prerequisites

palom.pyramid.write_pyramid() throws the following error by default:
ValueError: <COMPRESSION.JPEG: 7> requires the 'imagecodecs' package
Appears to be resolved with pip install imagecodecs.

I think it was raising the error when reading the imaging file - palom currently only writes uncompressed tiff. That being said, I'm happy to add imagecodecs in the next release 🙂

authors: ArtemSokolov Yu-AnChen

repo: Yu-AnChen/palom


text:
Release job for CI

Add a job to upload package to PyPI when Release* is tagged.

It will be final in the current issues.

git tag x.y.z
git push origin master --tags
Run CI job to release new PyPI.

source: gharchive/issue

authors: YukieK mitsutaka

repo: YukieK/GeekHours

license: MIT

license_type: permissive

license_source: github-api


text:
【Bug】只要有更新，就会一直加载

Describe the bug

如图，控制台显示，主题和框架都是最新版，vercel部署
Reproduction
依旧如此
System Info
chrome

Used Package Manager
pnpm
Validations

[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

能放一个 vercel 部署后的链接吗

能放一个 vercel 部署后的链接吗

blog.mnxy.eu.org

请缓存就能正常加载，构建的过程中有报错吗？

看起来好像是 Service Work 的缓存导致，没有获取最新的 html 文件

请缓存就能正常加载，构建的过程中有报错吗？

没有

更新一下 ServerWork，并清除一下 Storage 的缓存就可以正常工作了。
你要不要检查一下 PWA 的配置，可能是 pwa 的问题

更新一下 ServerWork，并清除一下 Storage 的缓存就可以正常工作了。
你要不要检查一下 PWA 的配置，可能是 pwa 的问题

怎么更新serverwork和清除storage缓存？

打开开发者工具

然后刷新一下页面

pwa设置没什么问题啊

这我就不知道了 :fearful:

解决了，是workbox里的globDirectory配置出错了，导致sw.js里的各种文件路径前缀加了dist/

这个不能出错，配置错了就一堆问题

:joy: :joy: :joy:

authors: MengNianxiaoyao yixiaojiu

repo: YunYouJun/valaxy


text:
[FEATURE] Create Button component

Description
Create a button component using storybook. Do research on typical button styling (height, width, padding,..) by checking out common frameworks like MUI or Bootstrap.

Additional links
Official docs from storybook https://storybook.js.org/
### Tasks
- [ ] Create Button component

@YuriDevAT please assign this task to me

Happy to have you contributing @zakariyahrobiat 😄

Hi @zakariyahrobiat. It has been two weeks. Are you working on this? Otherwise I will assign it to another contributor since as mentioned in the contribution guide issues should have progress within 2 weeks.

authors: YuriDevAT zakariyahrobiat

repo: YurisCodingClub/accessibility-mentor


text:
Simple regex

Description
In order to validate user input, we first sanitize its value to mitigate for typos.
We are using the following steps:

change value to lowercase
remove all white spaces
remove non-alphabetical characters with the exception of . , ! , and - . (These characters are part of the <!--...--> and <!DOCTYPE> tags and must be allowed.)
change value of each tag to lowercase (to account for the all-caps !DOCTYPE tag)
finally, check if sanitized user input matches an element from the tags array. (Please note, this functionality was already in place. The code had to be refactored though to change each tag to lowercase before comparison.)

Note
One idea for a new issue: List every tag following convention. Right now, each input is listed will all letters in lowercase. HTML tags are not case-sensitive, so main, Main, MAIN, and other variations are all equivalent. The same applies to !DOCTYPE or !doctype. Since the convention is to use lowercase for HTML tags for consistency and readability, and all caps for document type, it would be a nice enhancement to add as well.
Related Issue
Closes #15
Acceptance Criteria (AC)

[x] Trimming unnecessary white spaces at the beginning and/or end of the input.
[x] Ensuring case-insensitive matching.
[x] Stripping off any inclusion of angle brackets, or non-alphabetic characters in general.

Note
As mentioned in the Description section, it was necessary to allow for . , ! , and -.
Type of Changes

Type

✓
:sparkles: Enhancement

Testing Steps / QA Criteria
Either one of these inputs should be accepted. I am using !DOCTYPE as an example, but testing with any other tag should also work.

!DOCTYPE
!doctype
!Doc  type
<!doctype>
<   !DOCTYPE   >

Well done @CorinaMurg 🥳

source: gharchive/pull-request

authors: CorinaMurg YuriDevAT

repo: YurisCodingClub/html-tag-quiz


text:
Add # as an indicator of comments in addition to !

Wannier90 treats both ! and # as a starting character of comments.

Thanks for the contribution @minkyu-p!

authors: greschd minkyu-p

license_source: bigquery


text:
refactoring of save structure

Currently, the save game functionality had some issues.

The saved games should not be part of the repository, but only be on the individual local instances of people playing the game --> so it is now part of .gitignore
Code was refactored and cleaned.

Mostly affects your code @Bro-tec , so please check if this is OK. Thanks!

repo: ZDDduesseldorf/zdd-adventure


text:
🛑 Official Website is down

In bc920ce, Official Website (https://www.zeenkey.com) was down:

HTTP code: 500
Response time: 327 ms

Resolved: Official Website is back up in 0407f2a.

repo: ZEENKEY/statuspage


text:
🛑 Server 1 is down

In cd12ef1, Server 1 (https://www.zeenkey.com) was down:

HTTP code: 500
Response time: 167 ms

Resolved: Server 1 is back up in 99b668e.


text:
🛑 ZEENKEY BLOG is down

In 4ce5b38, ZEENKEY BLOG (https://blog.zeenkey.com) was down:

HTTP code: 500
Response time: 163 ms

Resolved: ZEENKEY BLOG is back up in 607f7f5.


text:
启用单文件发布

希望能启用单文件发布，可以大大减少发包里文件数量

可以，以前发现过以这种方式打包出现一系列问题，就一直没用。
尝试了一下Fody-Costura 成功打包。
下个版本将以该方式打包发布

.NET 8下应该不会出问题吧，我记得AOT才会出问题。
Fody的话能手动剔除非托管库也行。

试了一下，发现以单文件发布的情况下部分库获取的结果都不太一样，导致一些功能异常
6c2ffe2

哪个功能受影响了，我可以测测看，或者手动排除

蟹蟹，不过我已经修复了

(6c2ffe2cddb7eb766d1ad8c04e7aef1e93f51e20)
如果在启用用这个去获取程序集名称单文件发布会得到空值
另外，在文章中发现，如果再开启IncludeAllContentForSelfExtract最后打包出来只有一个exe，但是更多函数会受到影响，并且只是在运行时把原本的文件解压缩运行在用户/appdata/local/tmp/.net/STranslate下

PaddleOCRSharp大是应为支持多语言的原因？
在https://github.com/babalae/better-genshin-impact里用也就17MB

PaddleOOCRSharp

模型不一样，https://github.com/sdcb/PaddleSharp

模型的话我适配了中英日韩也有50MB，周杰这个我集成过，效果一般，并且速度比较慢，https://gitee.com/raoyutian/PaddleOCRSharp 这个项目针对paddleocr做了很多优化，起码比我直接用官方的库去做优化好太多了 就是用的库比较多 比较占空间  但是总体来说还是体验放在第一位

我也试试看

authors: ZGGSONG emako

repo: ZGGSONG/STranslate


text:
assert cupy is not None, 'CuPy is not installed!

ssh://u21b961009@10.251.171.6:23735/opt/conda/envs/py37/bin/python -u /home/u21b961009/jupyterlab/spikformer-main/imagenet/train.py
INFO:train:Training with a single process on 1 GPUs.
Training with a single process on 1 GPUs.
Traceback (most recent call last):
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/train.py", line 804, in
main()
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/train.py", line 353, in main
drop_block_rate=None,
File "/home/u21b961009/.local/lib/python3.7/site-packages/timm/models/factory.py", line 74, in create_model
model = create_fn(pretrained=pretrained, **kwargs)
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/model.py", line 254, in spikformer
**kwargs
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/model.py", line 195, in init
embed_dims=embed_dims)
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/model.py", line 125, in init
self.proj_lif = MultiStepLIFNode(tau=2.0, detach_reset=True, backend='cupy')
File "/home/u21b961009/.local/lib/python3.7/site-packages/spikingjelly/clock_driven/neuron.py", line 823, in init
check_backend(backend)
File "/home/u21b961009/.local/lib/python3.7/site-packages/spikingjelly/clock_driven/neuron.py", line 30, in check_backend
assert cupy is not None, 'CuPy is not installed! You can install it from "https://github.com/cupy/cupy".'
AssertionError: CuPy is not installed! You can install it from "https://github.com/cupy/cupy".
进程已结束,退出代码1

how can i solve it? thx!

我按照requirement安装的库，Python 3.7.16

pip install cupy

pip install cupy==10.3.1 ，pip install cupy都是报一样的错误。

What kind of error did you get？

ssh://u21b961009@10.251.171.6:23735/opt/conda/envs/py37/bin/python -u /home/u21b961009/jupyterlab/spikformer-main/imagenet/train.py
INFO🚋Training with a single process on 1 GPUs.
Training with a single process on 1 GPUs.
Traceback (most recent call last):
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/train.py", line 804, in
main()
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/train.py", line 353, in main
drop_block_rate=None,
File "/home/u21b961009/.local/lib/python3.7/site-packages/timm/models/factory.py", line 74, in create_model
model = create_fn(pretrained=pretrained, **kwargs)
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/model.py", line 254, in spikformer
**kwargs
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/model.py", line 195, in init
embed_dims=embed_dims)
File "/home/u21b961009/jupyterlab/spikformer-main/imagenet/model.py", line 125, in init
self.proj_lif = MultiStepLIFNode(tau=2.0, detach_reset=True, backend='cupy')
File "/home/u21b961009/.local/lib/python3.7/site-packages/spikingjelly/clock_driven/neuron.py", line 823, in init
check_backend(backend)
File "/home/u21b961009/.local/lib/python3.7/site-packages/spikingjelly/clock_driven/neuron.py", line 30, in check_backend
assert cupy is not None, 'CuPy is not installed! You can install it from "https://github.com/cupy/cupy".'
AssertionError: CuPy is not installed! You can install it from "https://github.com/cupy/cupy".
还是这个错误。但是换成torch后端就没问题了。感觉是spikingjelly中的check_backend函数的问题

Same error.
Fixed it by install the proper version of cupy with the CUDA version.

您好，我也遇到了这个问题，请问您解决了么

repo: ZK-Zhou/spikformer


text:
What is involved in boosting the version of NX in nx-plus.

Description
What is involved in boosting the version of NX in nx-plus.

Mostly migrating the repo itself and making sure the builders/schematics still work. We sometimes write our own migrations but they can be a bit of a hassle. I've been away from contributing to this repo for a bit but I plan on getting them all up to date soon

Support for v13 has been added.


text:
ee_link changes parent frame when connected to real robot

Expected Behavior
The ee_link should be child link to wrist_3_link. It should be the same in simulation and when using the real robot.
Current Behavior
When I connect to the physical robot, the ee_link frame has a different orientation than during simulation, and is child to the base frame of the robot instead of wrist_3_link. The error might be on my end, but I don't know how I could have changed this detail.
The screenshots below show the state I expected, during demo.launch of the moveit_config package:

And the state I get when I connect to the physical robot, with the frames that were connected to ee_link rotated and out of place:

The tree shows that ee_link is not a child of wrist_3_link anymore, but is connected to the base. It also updates properly when I perform a motion (although the orientation is wrong), which makes me suspect that it's published by the robot driver somewhere.
(I added the prefix because I have multiple robots in the scene, but it should not affect this issue).
Possible Solution
Did something change in how the firmware reports the position of the EE link? I attached a bag file that I recorded while I was starting up the robot and gripper, and then planned and executed a short motion. Maybe you can use it to see where the wrong transform is coming from.
The bag:
2018-08-12-07-29-20.bag.zip
Steps to Reproduce (for bugs)
It should be enough to launch demo.launch of a moveit_config with a UR in it, and then compare it to the scene when connected to a real robot.
Context
I am using a frame on the end effector to plan motions to pick up stuff. To fix this issue temporarily, I just added a ee_duplicate_link to attach the end effector, so everything works fine for me, but it is still odd behavior and I'd like to figure out what's wrong.
Your Environment

Ubuntu 16.04
Version used: master?
ROS version: Kinetic
UR CB version: 3.5.0.10584 (Nov 16 2017)
Connection setup: wired

which makes me suspect that it's published by the robot driver somewhere.

ee_link is part of the static kinematic chain defined in the xacros in ros-industrial/universal_robot/ur_description. It cannot be changed by something a driver broadcasts, unless you have a 'rogue' TF broadcaster that is changing the transform. In that cause however I would expect you to see a whole lot of other problems.
Further: there are no TF frames published by the driver apart from tool0_controller.
Could you please check whether you've made any inadvertent changes to the files in ur_description?

As an aside: the ee_link frame might not be what you'd want to use, as it's not a frame that corresponds to anything the robot controller internally defines. tool0 is aligned with the tool frame of the controller (tool0_controller is the same frame, but its pose is broadcast by the controller directly, where tool0's pose is derived from joint states using FK). The chain from base->tool0 corresponds to the kinematic chain as defined by the controller and the transform should also correspond to the tool frame pose the controller reports (+- effects introduced by calibration).
ee_link was left in for bw-compatibility reasons in the xacros in ur_description and will be removed in the future. An additional frame will be introduced (flange) that will serve as an EEF connection point in the kinematic chain. tool0 will be a child of that, and additional tool frames should be made siblings of tool0.
The ur_description xacros don't have that frame yet, but tool0 is available, and flange will be in the exact same location for those robots. It will just not be rotated to have z+ forward.
See Working with ROS-Industrial Robot Support Packages for a short discussion of these frames, and Coordinate Frames for Serial Industrial Manipulators for a candidate REP that is in the making.

Your second edit was right, I was mistaken about the tool/EE frames and defined the base_frame and tool_frame args in the launch file:
  <node name="b_bot_ur_driver" pkg="ur_modern_driver" type="ur_driver" output="screen" ns="b_bot_controller">
    <param name="prefix" type="str" value="b_bot_" />
    <param name="robot_ip_address" type="str" value="$(arg robot_ip_b)" />
    <param name="reverse_port" type="int" value="50002" />
    <param name="min_payload" type="double" value="$(arg min_payload)" />
    <param name="max_payload" type="double" value="$(arg max_payload)" />
    <param name="max_velocity" type="double" value="$(arg max_velocity)" />
    <param name="servoj_time" type="double" value="$(arg servoj_time)" />
    <param name="base_frame" type="str" value="b_bot_base" />
    <param name="tool_frame" type="str" value="b_bot_ee_link" />
    <param name="require_activation" type="str" value="$(arg require_activation)" />
    <param name="shutdown_on_disconnect" type="bool" value="$(arg shutdown_on_disconnect)"/>
    <remap from="joint_states" to="/joint_states"/>
  </node>

Removing the two fixes this issue. I completely forgot that I set these. Afterwards, I found that the following setting in my URDF seems to lead to this wonky behavior:
  <joint name="world_b_bot_joint" type="fixed">
    <parent link="world" />
    <child link = "b_bot_base_link" />
    <origin xyz="${b_bot_x} ${b_bot_y} ${bots_z}" rpy="0.0 0.0 ${-pi}" />
  </joint>

Thanks for the heads up and the links to the documentation too. Cheers

@felixvd wrote:

Afterwards, I found this wonky behavior but I hope it's just my modifications in the URDF

actually, I believe if you remove those two params, the default of the driver (or this fork) is to use base_link->tool0_controller (here). base_link is 180 degrees rotated wrt base (this is historical, will be rectified).
I would recommend to include the ur_common.launch file or leave the two params in and just use the default values: base and tool0_controller.

authors: felixvd gavanderhoorn


text:
Test: fix typo

+xfix: I'm too busy to update this, but if someone would be willing to fix https://github.com/Zarel/Pokemon-Showdown/blob/master/test/simulator/misc/decisions.js#L72 (should be j++, not i++), that would be neat.

does that look right now?

It looks fine to me but the build is still failing.
@Slayer95, is this another Travis cache issue?

authors: Zarel panpawn

repo: Zarel/Pokemon-Showdown

license: mit


text:
docs(release): Tier policies summary in the Supported platforms docs might be confusing

Motivation
The summary text for Tiers in Supported Platforms might be confusing, taking into consideration an actual summary from Target Tier Policies

I don't know how to schedule this ticket, because I'm not sure what the exact problem is.
Feel free to re-open it with a specific description of what we need to change.

repo: ZcashFoundation/zebra


text:
Delete Google Cloud instances older than 3 days

Motivation
Currently, we delete instance templates, disks, and images older than 2 days (if they are not being used).
But sometimes a test workflow can run and leave behind an instance. This costs money for CPU and RAM, as well as any related storage.
Designs
Since our longest workflows run for 1-2 days, automatically delete any test instances older than 3 days.
Example
These 2 instances have been running for an extra 1-2 weeks, even though their workflows have finished:

In PR #5191 I made new caches happen every 12 hours, double the current rate.
7 days after that PR merges, we should review costs for the last 3-4 days, and see if they are better or worse.


text:
Test: Revert "Refactor connection.rs to make fail_with errors impossible"

Reverts ZcashFoundation/zebra#1721
Motivation
This revert fixes the hangs in #1801 in my local tests.
Follow Up

[x] Re-apply the minimal fix to #1599 (in #1818)
[x] Create a revised issue like #1610, but excluding #1599, and done in stages (in #1817)

Testnet took a few hours to sync, mainnet is about 60% there and making steady progress. So it seems like this PR is causing the regression in #1801.
That's sad, because I really liked this refactor.

The sync finished in about 4 hours, and it only required 3 block locators to sync to tip.
(Before this revert, there was an error in almost every extend_tips.)
$ cat ~/.cache/zebra-log/zebrad-mainnet-tmp-2021-02-24-14-26-29.log | grep 'created block locator' | cut -d' ' -f1-12 | sed 's/:sync:obtain_tips:state: zebra_state::util://'

Feb 24 14:26:49.649  INFO {zebrad="d5fe566d" net="Main"} created block locator tip_height=Height(0)
Feb 24 14:56:23.928  INFO {zebrad="d5fe566d" net="Main"} created block locator tip_height=Height(106703)
Feb 24 15:00:21.611  INFO {zebrad="d5fe566d" net="Main"} created block locator tip_height=Height(108873)
Feb 24 18:48:21.532  INFO {zebrad="d5fe566d" net="Main"} created block locator tip_height=Height(1158491)
Feb 24 18:49:28.536  INFO {zebrad="d5fe566d" net="Main"} created block locator tip_height=Height(1158493)
...

Closes #1801


text:
🛑 Game Server Stripe Billing (prod) is down

In bf1dbf5, Game Server Stripe Billing (prod) (https://api.skazbuka.org/api/Billing/stripe?language=Rus) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Game Server Stripe Billing (prod) is back up in 5fd9ef1.

repo: Zebrainy/upptime


text:
🛑 Cloudflare WebBundle CDN is down

In 82cd441, Cloudflare WebBundle CDN (https://cdn.zebr-a.tech/web-bundles/bundles/catalog-demian-horizontal/1.0.0/manifest.json) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Cloudflare WebBundle CDN is back up in 17d3ade after 2 minutes.


text:
Not downloading specific Webtoon

Hello,
I tried to download the prettiest platypus with this program, however, it didn't work. This is the link I used(https://www.webtoons.com/en/challenge/the-prettiest-platypus/chapter-1-the-new-cat-in-town/viewer?title_no=463063&episode_no=2).
I do see that it is a little bit different than the one in the example, however, I do not have an idea how to correct it if that is the problem.
My OS is Linux(Arch-based) with python 3.10.4, the error message when executing this(python webtoon_downloader.py "https://www.webtoons.com/en/challenge/the-prettiest-platypus/chapter-1-the-new-cat-in-town/list?title_no=463063&episode_no=2") command I get is :
Traceback (most recent call last):
File "/home/username/Documents/Webtoon-Downloader/src/webtoon_downloader.py", line 438, in
main()
File "/home/username/Documents/Webtoon-Downloader/src/webtoon_downloader.py", line 435, in main
download_webtoon(series_url, args.start, args.end, args.dest, args.images_format, args.latest, separate)
File "/home/username/Documents/Webtoon-Downloader/src/webtoon_downloader.py", line 358, in download_webtoon
viewer_url = get_chapter_viewer_url(soup)
File "/home/username/Documents/Webtoon-Downloader/src/webtoon_downloader.py", line 165, in get_chapter_viewer_url
return html.find('li', attrs={'data-episode-no': True}).find('a')['href'].split('&')[0]
AttributeError: 'NoneType' object has no attribute 'find
.
Any help would be appreciated. Sorry if this is the wrong tab in github for this kind of issue, I'm pretty new to this. Many thanks in advance.

Nvm I just found out I had to use the link from the actual comic where I can choose which chapter to read and not one from a specific chapter. Might still be a nice addition to be able to give it the link to a specific chapter and to then have it download only that, only onwards from that etc.

repo: Zehina/Webtoon-Downloader


text:
fix: Displaying decimal currencies.

The application was panicking when attempting to display currency
amounts where the most significant digit was further than a single
character away from the decimal point's position.

This fixes #138

repo: Zeroed-Books/zeroed-books-api


text:
Round System

The module controlling the progression of the game (not menu/ready/lobby/out-of-game states, that is core). It should support calling into logic units for controlling the round, and pass its info along to all zombie spawnpoints not connected to another spawner. A spawner should be able to take over the round for either all, or specific spawnpoints. Round should appropriately freeze when it cannot spawn any zombies (i.e. no players not attached to other spawners).

[x] Round states
[x] Round number
[x] Overrideable health & speed curves (Config Setting entry)
[x] Round state/number networking
[x] HUD Element (round number)

Round Counter HUD:


text:
Firemonkey video player How to play video from local disk?

Sorry but I don't understand to play video on TALVideoPlayerSurface with project Win32/64. I must use another component? A small sample code?

Here is a sample application which can give an idea about how to play video from local disk, but now the TALVideoPlayerSurface component. This sample demonstrates the use of the TMediaPlayer and the TMediaPlayerControl components.  http://docwiki.embarcadero.com/CodeExamples/Rio/en/FMX.Mobile.VideoPlayback_Sample

I took a look at the source code in alcinoe. Alcinoe currently does not support playing multimedia files in Windows. The TALWinVideoPlayer class is empty ( is not implemented).
Maybe you can submit a functional requirement.

@bagualing yes TalVideoPlayer is currently not implemented under windows. it's made only for ios / android.


text:
fix: #167 奇怪的异常退出 bug

bug 描述
#167
当 downloads 文件夹下对应主播的某个时段文件夹（例：downloads/test/2024-04-27 下午）存在时（下称文件夹），即使主播正常直播，且直播流获取正常，仍然会异常退出：[2024-04-27T15:42:09.303] [INFO] Recorder test - 下载流 test 退出，退出码: 1，目录：xxx\StreamerHelper\download\test\2024-04-27 下午
bug 定位

src/engine/message.ts line: 64-82

  if (!fs.existsSync(pathWithTimeV)) {
    fs.mkdirSync(pathWithTimeV)
  } else if (this.isPost || uploadStatus.get(pathWithTimeV) === 1) {
    // 正在上传或者已经投稿
    const curTime = dayjs().format("HH-mm")
    const newPath = `${pathWithTimeV} ${curTime}`
    roomPathStatus.delete(this.savePath)
    this.savePath = newPath
    this._recorderTask.timeV = `${this._recorderTask.timeV} ${curTime}`
    fs.mkdirSync(newPath)
  } else {
    const ps = FileHound
      .create()
      .ext(this.videoExt)
      .path(join(this.savePath))
      .findSync()
      .length;
    startNumber = ps - 1
  }

当由于某种原因（例如获取到失效的直播流），会导致创建出这样的文件夹以及 fileStatus.json 文件而没有开始录制。等到下一次检查房间时，即使获取到正确的直播流也会导致无法录制。具体原因见下章
bug 分析
当文件夹存在时，会由于 if-else if-else 语句原因进入 else 分支，而当发生上章的情况时：
const ps = FileHound
  .create()
  .ext(this.videoExt)
  .path(join(this.savePath))
  .findSync()
  .length;
startNumber = ps - 1

else 分支的代码会得到 ps = 0, startNumber=-1 ，进行此后的录制工作，从而导致了 ffmpeg 的参数异常：
[2024-04-27T15:42:06.484] [INFO] checkRoom - 正在检查直播 test https://xxx/xxx
[2024-04-27T15:42:06.801] [DEBUG] checkRoom - stream {// 无关紧要，略}
[2024-04-27T15:42:06.806] [INFO] Recorder test - 开始下载: test, 直播流: xxx
[2024-04-27T15:42:06.809] [DEBUG] Recorder test - 文件夹存在：ps=0 ===> startNumber = -1
[2024-04-27T15:42:06.809] [INFO] Recorder test - 记录相关信息到文件 test，目录：D:\Xbai-hang\Desktop\tuition\StreamerHelper\download\test\2024-04-27 下午
[2024-04-27T15:42:06.811] [INFO] Recorder test - Create fileStatus.json: {// 无关紧要，略}
[2024-04-27T15:42:08.633] [DEBUG] Recorder test - ffmpeg version n5.0.1-4-ga5ebb3d25e-20220522 Copyright (c) 2000-2022 the FFmpeg developers
[2024-04-27T15:42:09.201] [DEBUG] Recorder test - Input #0, flv, from 'xxx':
====== 👇BUG👇======
[(stream) segment muxer @ 0000026d6cc8e940] Value -1.000000 for parameter 'segment_start_number' out of range [0 - 2.14748e+09]
[(stream) segment muxer @ 0000026d6cc8e940] Error setting option segment_start_number to value -1.
====== 👆BUG👆======
Could not write header for output file #0 (incorrect codec parameters ?): Result too large
Error initializing output stream 0:1 --
Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (copy)
[2024-04-27T15:42:09.206] [ERROR] Recorder test -     Last message repeated 1 times
[2024-04-27T15:42:09.303] [INFO] Recorder test - 下载流 test 退出，退出码: 1，目录：xxx\StreamerHelper\download\test\2024-04-27 下午
[2024-04-27T15:42:09.303] [INFO] Recorder test - 记录退出时间 test
[2024-04-27T15:42:09.304] [INFO] Recorder test - Write Content - endRecordTime {// 无关紧要，略}

bug 解决
方案1：
PR 中的解决方案，startNumber = ps - 1 > 0 ? ps - 1 : 0
好处是解决了 bug 且维持原项目逻辑无任何变化
方案2：
startNumber = ps
解决了 bug，但会改变项目逻辑，原项目逻辑：
假如文件夹下有 2个mp4文件，000.mp4、001.mp4，会将本次直播流录进 001.mp4，即方案1，而方案2则会录进 002.mp4

thanks


text:
🛑 Drive is down

In 116c9db, Drive (https://drive.zxavier.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Drive is back up in 06696ac after 1 day, 14 hours, 9 minutes.

repo: ZhangXavier/upptime


text:
🛑 Vaultwarden is down

In 5c65dc5, Vaultwarden (https://bw.zxavier.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Vaultwarden is back up in a1c4354.


text:
🛑 blog.zinglix.xyz is down

In 77a0909, blog.zinglix.xyz (https://blog.zinglix.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: blog.zinglix.xyz is back up in f333337.

repo: ZingLix/blog-mirror-uptime


text:
🛑 blog.zinglix.xyz is down

In b926a04, blog.zinglix.xyz (https://blog.zinglix.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: blog.zinglix.xyz is back up in 8294766 after 8 minutes.


text:
🛑 blog.zinglix.xyz is down

In ff8eebb, blog.zinglix.xyz (https://blog.zinglix.xyz) was down:

HTTP code: 0
Response time: 0 ms

Resolved: blog.zinglix.xyz is back up in 255682a.


text:
Ardougne Diaries are non existent

Hey! I love this app you have saved me from the normal frustrations of osrs so much!
Ardougne diaries have never been available for me, the other diary helpers were wonderful . Thanks so much!

Glad you're liking them, currently the Ardy diaries are under review and should be in the helper soon™

repo: Zoinkwiz/quest-helper


text:
change module resolution to node on CJS flavor

remove dynamic imports

Closing PR as it is not possible to do what we tried.

repo: Zondax/izari-filecoin


text:
python3.7?

Some packages in requirements.txt seem to have installation requirements for Python 3.8.
The following are the error messages encountered during the installation process：
ERROR: Ignored the following versions that require a different python version: 0.6.2rc0 Requires-Python >=3.8; 0.7.0rc1 Requires-Python >=3.8; 1.1.0 Requires-Python >=3.8; 1.1.1 Requires-Python >=3.8; 1.1.2 Requires-Python >=3.8; 1.1.3 Requires-Python >=3.8; 1.10.0 Requires-Python <3.12,>=3.8; 1.10.0rc1 Requires-Python <3.12,>=3.8; 1.10.0rc2 Requires-Python <3.12,>=3.8; 1.10.1 Requires-Python <3.12,>=3.8; 1.11.0 Requires-Python <3.13,>=3.9; 1.11.0rc1 Requires-Python <3.13,>=3.9; 1.11.0rc2 Requires-Python <3.13,>=3.9; 1.11.1 Requires-Python <3.13,>=3.9; 1.2.0 Requires-Python >=3.8; 1.2.0rc1 Requires-Python >=3.8; 1.2.1 Requires-Python >=3.8; 1.2.2 Requires-Python >=3.8; 1.3.0 Requires-Python >=3.8; 1.3.0rc1 Requires-Python >=3.8; 1.8.0 Requires-Python >=3.8,<3.11; 1.8.0rc1 Requires-Python >=3.8,<3.11; 1.8.0rc2 Requires-Python >=3.8,<3.11; 1.8.0rc3 Requires-Python >=3.8,<3.11; 1.8.0rc4 Requires-Python >=3.8,<3.11; 1.8.1 Requires-Python >=3.8,<3.11; 1.9.0 Requires-Python >=3.8,<3.12; 1.9.0rc1 Requires-Python >=3.8,<3.12; 1.9.0rc2 Requires-Python >=3.8,<3.12; 1.9.0rc3 Requires-Python >=3.8,<3.12; 1.9.1 Requires-Python >=3.8,<3.12; 1.9.2 Requires-Python >=3.8; 1.9.3 Requires-Python >=3.8; 3.6.0 Requires-Python >=3.8; 3.6.0rc1 Requires-Python >=3.8; 3.6.0rc2 Requires-Python >=3.8; 3.6.1 Requires-Python >=3.8; 3.6.2 Requires-Python >=3.8; 3.6.3 Requires-Python >=3.8; 3.7.0 Requires-Python >=3.8; 3.7.0rc1 Requires-Python >=3.8; 3.7.1 Requires-Python >=3.8; 3.7.2 Requires-Python >=3.8; 3.9.0 Requires-Python >=3.8
ERROR: Could not find a version that satisfies the requirement os (from versions: none)
ERROR: No matching distribution found for os

直接用就行了，缺什么安装什么

authors: Rurouni-z wjiangsheng

repo: ZrrSkywalker/Point-NN


text:
Superfluous blank in install.pp

https://github.com/ZuInnoTe/puppet-oraclejdk8/blob/master/manifests/install.pp#L45
  ' ppa:webupd8team/java'
should be
  'ppa:webupd8team/java'

true, thanks for spotting this

authors: BernhardBln jornfranke


text:
ESC test with new topology

Make the ESC test use just 2 interfaces, the ones that Babel-babel exposes. Topology was done in #3

Done, test works.

repo: Zubax/sapog


text:
Consider using infinite parking for some proposals

The Broadmoor access proposal winds up with this overall trip time distribution:

There's a ton of noise from drivers -- some short trips get pretty long, and some long trips get pretty short. Much (but not all) of this is due to parking. Because it's so scarce, some drivers spend lots of time looking for parking, until it dominates their trip time.
If we use --infinite_parking both for the baseline results and the edits, the results look more understandable:

There are still some driving trips that're dramatically affected:

But way less. I'll also dive into some of those to see why.
Parking scarcity and the tradeoffs of using street space for it are critical features of A/B Street, but they also require good data about the number of offstreet spots available per building and a good estimate on the total number of cars that need to park somewhere. We're making totally blind guesses about the first. The second is mostly a function of Soundcast, but since we don't distinguish car drivers and passengers, we might be trying to cram too many cars in. Any ideas for better off-street capacity estimates for Seattle specifically or in general?
And should we disable parking simulation for the purposes of the article? My experience in the area covered by the Arboretum map is that street parking is not hard to find, so it's pretty strange if our results are really sensitive to it.

There was a bug with infinite parking. Figuring out how to clean up the fix, but the results for drivers look way more expected -- the Broadmoor access edit with infinite parking basically doesn't affect trip times now:

My understanding is that due to vastly undercounting offstreet parking, we'll get more realistic results with --infinite_parking, and that I should re-run the results / prebake with that option.
Is that right @dabreegster?

Correct. I started this work last week, then got bogged down trying to fix every last problem. (The "parking efficiency" layer is computed in a way that is often misleading -- the distance between a person and their car at any moment isn't useful to know; the distance from the next driving trip's start matters.)
I think we need to:

decide how to mark a map or scenario as forcing infinite parking on
prebake the results again
sanity check what the outputs look like

I'm undecided where this bit flip should live. Either in the map or scenario will require rebuilding lots of files, so I don't want to change my mind in a few days. :)   I think in the short term, I might hardcode it based on map name. I'll start something right now and hopefully send it by tonight.

As expected, being able to skip parking saves tons of time. This compares (no map edits, infinite parking) to the baseline of (no map edits, normal parking):

And the more relevant comparison, between (access broadmoor proposal, inf parking) and (no map edits, inf parking):

Deselecting driving only modifies some of the short trips:

Just to be sure what's going on there, the effects just on drivers:

And risk exposures:

I'll dig through some of the individual driving trips that got dramatically slower with the edits, but I think we should make this change and include it in the article. Then we don't have to justify the noise from bad data quality.

And risk exposures:

Are those risk exposures comparing:
A: "Finite parking w/o Broadmoor edits" vs "Inifinite parking w/ Broadmoor edits"
or
B: "Infinite parking w/o Broadmoor edits" vs "Inifinite parking w/ Broadmoor edits"
Either is fine, but interesting that a few arterial crossings went up.

B: "Infinite parking w/o Broadmoor edits" vs "Inifinite parking w/ Broadmoor edits"
Indeed weird. I guess we don't have the trip table equivalent for finding example trips, so not sure what's happening.

authors: dabreegster michaelkirk

repo: a-b-street/abstreet


text:
Implement loading .osm to a RoadNetwork

I would like to have the ability to work on real examples, and tap into the tests, as my next step. The tests crate is already doing the reading and parsing of .osm files, by importing from abstreet, so outputting RoadNetwork instead of RawMap shouldn't be too far away.
I think I want the initial RoadNetwork to be split up into as many pieces as needed, with intersections broadly categorised (incomplete, terminus, slice, intersection). That way, transformations can work mostly on combining the pieces into bigger structures, and collapsing unnecessary detail; I feel like doing all the splitting before all the combining might keep things clear.
Two options:
1. Import reader, re-implement extract_osm
It is tempting to add a road_network = osm_document.into() type thing to the clean slate implementation. It looks like the necessary algorithms are in extract_osm and split_ways (at least), which could be translated into osm2streets types instead of RoadNetwork types (cutting out a lot of abstreet specific concerns). This requires some effort.
2. Import convert_osm, load .osm as RawMap then translate it into RoadNetwork
A road_network: RoadNetwork = raw_map.into() type thing, that we can run after splitting ways (etc.) might be just as useful. There is a lot of logic in that extraction process that we don't need to revisit yet, but which we might want to use as the basis for the eventual solution. So it should be fine that the clean slate view of things uses RawMap as an implementation detail of the .osm to most-basic-RoadNetwork step.

I spent a bit of time trying option 1, but it turned out to be a bit involved. In writing this up, I think I ended up making a case for option 2 instead.


text:
Can rubico handle backpressure better than RxJS?

Hi @richytong
what a great library, thanks for writing and maintaining it!
I’m a heavy RxJS-user but was fighting with some of it’s shortcomings. My main problem right now is ‘backpressure’ created when I work with massive amounts of data that is read from files / REST-APIs, transformed and then written to another file.
Since reading files is faster than writing, after running a couple of minutes / hours my heap-memory gets exhausted since data is piling up before it gets written. RxJS is push-driven, so it’s hard to handle the backpressure-problem without a lot of extra code.
From reading your Medium post I had the impression rubico could address this issue, but I’m not sure how - should I use (async) transducers and rubico will handle the control-flow if the source produces faster than downstream can handle? Or did I get this wrong?
Sorry for asking here, but until #161 is resolved, I was not sure where to ask such questions.

Hello, creating issues for now is fine. I am assuming since you mention data from files that you are working with JavaScript that runs on the server. Are you using Node.js? If so, have you tried out their streams/ran into any issues with backpressure there? Node.js streams could possibly be an easy solution just to get things to work. Otherwise, rubico may be able to help you - and yes you could certainly use rubico's transducers, but the concept of handling all the backpressure without worry comes from the real champ - a newish language feature of JavaScript called async iterators. In particular, rubico's transformer functions map, filter, reduce, transform, and flatMap for Symbol.asyncIterator on an incoming object to be reduced and, if present, iterates through all the objects that come out of that async iterator. rubico does no more work to handle backpressure because the issue with backpressure is solved by async iterators by their design - they are inherently a "pull" based system while Observables (and Node.js streams) are "push" based systems with internals to handle backpressure. All rubico does is provide a way to consume this async iterator API.
I bring up Node.js streams because actually they implement the async iterator API, so it is possible to use rubico to consume a Node.js stream. I think at some point in master branch RxJS also implemented it, but then they decided to pull it out before RxJS 7. That said, I recommend you try out the Node.js streams way first. They have dealt with backpressure problems a lot so perhaps they have dealt with yours in particular. You can use their .pipe method chain streams together.
fetch('https://my-upload-endpoint.com', {
  method: 'post',
  body: fs.createReadStream('my/path').pipe(zlib.createGzip()),
  headers: {
    'Content-Type': 'content-type-of-your-file',
  },
})

If the Node.js way does not work, rubico could come in and help deal with backpressure
fetch('https://my-upload-endpoint.com', {
  method: 'post',
  body: stream.Readable.from(map(async chunk => {
    await new Promise(resolve => setTimeout(resolve, 10)) // sleep 10s each chunk
    return zlib.deflate(chunk)
  })(fs.createReadStream('my/path'))),
  headers: {
    'Content-Type': 'content-type-of-your-file',
  },
})

Promises are a good way to handle backpressure.

Ah, I see, then I should have a second look at async-iterators /  NodeJS's streams first. I did that once, but they looked cumbersome by the time (perhaps 2 years ago). At that time I was really disappointed that RxJS had no way to interact with Node-streams. But still, RxJS looked promising since it provided a clear + solid path to solve complex transformations + sync/async with it's flexible pipe-like principles.
But thanks a lot for the clarification, I didn't know streams implement async-iterators and that this may solve my backpressure-problems.
Since rubioc's functional way looks  so elegant, i'm pretty confident to give it a shot in implementing the necessary logic, since I need some plumbing-logic to connect the various streams to my flow in a way I can still understand it months later :smile:

Let's close this then, your examples above will get me going :+1:

I think Node.js streams have come a long way, that's for sure. And getting files contents to places on a network is probably in their core problem domain. The first example should be sufficient is my thinking.

Also, thank you for reminding me to update the examples. I am now redoing the rubico examples.

authors: cjk richytong

repo: a-synchronous/rubico


text:
Controlling path concatenation of the flattener SMT

I would like to add an enencment to the flattener SMT and be able to control ( via config ) the concatenation of the path of inner fields. In my use case I need to turn it off.

This is not the proper repo to report Kafka features and issues.
Please use JIRA https://issues.apache.org/jira/browse/KAFKA


text:
Overriding form_div_layout doesn't work on tabs content other than the first tab

Hello there !
I've been working on a new template and had to override some form components to fit my new template.
Everything is just working fine except for content of non-default locale :

There is no class attributs in the EN tab content.
Here my new form_div_layout :
{%- block form_label -%}
    {% if label is not same as(false) -%}
        {% if not compound -%}
            {% set label_attr = label_attr|merge({'for': id}) %}
        {%- endif -%}
        {% if required -%}
            {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
        {%- endif -%}
        {% if label is empty -%}
            {%- if label_format is not empty -%}
                {% set label = label_format|replace({
                '%name%': name,
                '%id%': id,
                }) %}
            {%- else -%}
                {% set label = name|humanize %}
            {%- endif -%}
        {%- endif -%}
        {{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}
    {%- endif -%}
{%- endblock form_label -%}

{%- block form_row -%}

        {{- form_label(form) -}}
        {{- form_errors(form) -}}
        {{- form_widget(form) -}}

{%- endblock form_row -%}

{%- block form_start -%}
    {% set method = method|upper %}
    {%- if method in ["GET", "POST"] -%}
        {% set form_method = method %}
    {%- else -%}
        {% set form_method = "POST" %}
    {%- endif -%}
    <form name="{{ name }}" method="{{ form_method|lower }}"{% if action != '' %} action="{{ action }}"{% endif %}{% for attrname, attrvalue in attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}{% if multipart %} enctype="multipart/form-data"{% endif %}>
    {%- if form_method != method -%}
        <input type="hidden" name="_method" value="{{ method }}" />
    {%- endif -%}
{%- endblock form_start -%}

And my a2lix template is the default one :
{% block a2lix_translations_widget %}
    {{ form_errors(form) }}

        {% for translationsFields in form %}
            {% set locale = translationsFields.vars.name %}

                    {{ locale|capitalize }}
                    {% if form.vars.default_locale == locale %}[Default]{% endif %}
                    {% if translationsFields.vars.required %}*{% endif %}

        {% endfor %}

        {% for translationsFields in form %}
            {% set locale = translationsFields.vars.name %}

                {{ form_errors(translationsFields) }}
                {{ form_widget(translationsFields) }}

        {% endfor %}

{% endblock %}

{% block a2lix_translationsForms_widget %}
    {{ block('a2lix_translations_widget') }}
{% endblock %}

Any ideas ?

My solution :
Instead of adding classes manually by overriding form blocks, I used my form type with attr and label_attr for each field.


text:
🛑 A2-Massage book now is down

In 6b4559d, A2-Massage book now (https://massagesannarbor.com/book-now/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: A2-Massage book now is back up in ba8a7f1 after 11 minutes.


text:
is view angles offset fixed yet it has been not working for a long time now dont tell me it works when it does not

:)

wdym "it has been not working for a long time now"
the truth is it works
if u failed to get the value, only reason is code skill issue

imaging dude wanna get viewangles
Vector3 viewAngles = VARS::memRead(VARS::baseAddress + offsets::dwViewAngles);
uintptr_t baseAddress = GetModuleBaseAddress(processId, L"client.dll");

wdym "it has been not working for a long time now" the truth is it works if u failed to get the value, only reason is code skill issue

last time i used it i cant write to it when it used to work its only the cpp ones c# is working fine


text:
doc: Correct syntax typo

Just correcting a couple of syntax errors on a section of the readme I was using.

Thanks for your contribution @GabrielGil


text:
⚠ WSINGRESOS - GENERICO has degraded performance

In df760a9, WSINGRESOS - GENERICO (https://srvshyweb.yucatan.gob.mx/cgi-bin/wspd_cgi.sh/WService=wsingresos/internet/servicios/wsGenericoPagosWeb.r) experienced degraded performance:

HTTP code: 200
Response time: 2134 ms

Resolved: WSINGRESOS - GENERICO performance has improved in 8c24380 after 10 minutes.

repo: aafyyuc/upptime


text:
🛑 Reemplacamiento Yuc is down

In cd2aa33, Reemplacamiento Yuc (https://reemplacamiento.yucatan.gob.mx) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Reemplacamiento Yuc is back up in 27e7d65 after 15 minutes.


text:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

I have this bug :
""
Any solution ?

you are probably using windows, for me it worked to create .env manually instead of using "echo"

I have the same issue, any tips for fixing that?

Hi. Anyone hasn't fixed that yet with a through explanation?

repo: aahnik/tgcf


text:
Add to pip

Make djs installable using pip.

5683064 fixed setup.py metadata
v 0.0.1 released on PyPI

repo: aaraney/NWM-Dockerized-Job-Scheduler


text:
Completed assert_contains!()

Example:

seems like it's too complicated to implement and probably not worth it for now

authors: TheWebDevel aaronabramov


text:
Swipedeck Nougat

Hello,
I got a problem with the library when I use it for Nougat (API 25). The swipedeck won't appear, there aren't any exceptions or errors. The data that must be shown on the adapter are loaded and they do exist. The SwipeDeck do work on the previous versions of Android though.

Hello, I've got a similar bug.

I just posted something about this too

Thanks @mikechoch !

Same bug

authors: ArjanShoj RicardAparicio VladChernetsky gunjotSinghMansa mikechoch


text:
Doesn't always work

0.6 doesn't always work. Sometimes it recognizes the shortcut key and a new tab is opened, but quite often not.

It's been fine for a while, but I am seeing the error right now, looking at xkcd's latest "what if".
If I check the chrome console, I see:
10101_web03.js:1274 Uncaught TypeError: Cannot read property 'getDOMNode' of undefined
which I don't expect is your code, even.

Issue is persisting after a browser reload, is now on a different entry, and there are no errors on the console at all.

Would you be willing to run with a development version of the extension if I packaged one up and put it in a branch for you?  I'm would probably add a bunch more logging in the console so that maybe we could track this down.  If you're willing to do this, it'll be a xpi you'll have to download and install - but I'll give more instructions.  If not, no big dealio.  Just gonna have to run it only myself then.

Sure; I can do a build off a github branch if that would work, also.

@coke I put console logging in the logging branch - I've installed from the src folder - can you do the same and let me know what you see when it fails next?  thanks!

Ok. From home page, card view, click on first item. You get one of the (newish) tabs to pop over the content. from there, hitting ";" does nothing, and you get this logging:
Tag: body
keypress.js:54 Could not find .selectedEntry a.title

Expand left sidebar. Pick one of your groups of feeds (that presents as title bar), it opens up on the right hand side, main content area.
Click on the first item. It expands. ";" does nothing, you get the same logging as above.
Tag: body
keypress.js:54 Could not find .selectedEntry a.title

If you press j, then k, then ;, then it works.

Pushed new update 0.7 out.  Should update shortly.  Please let me know if this works for you - I found that it works in the scenarios you stated (at least for me!)

With update 0.7,  same link always opens in background. Precisely, it's the first one of the selected feedly folder which is opened.

Not working for me. Reinstalled the latest version (0.7) from Github.
Still not working.
Google Chrome v43.0.2357.81 (2357.81)

@politicus Do you see any errors in the console?   What exact view are you using?  Can you describe the process in which you're browsing - and what you're doing that is not working as expected?  I use it every day myself - so I'm obviously using it a different way - because I'm not seeing the issue.
Sorry for the delay in response by the way!

authors: aaronsaray coke j4h4x politicus woodspock

repo: aaronsaray/feedlybackgroundtab


text:
Update for Nyxt 2-pre-release-7

nyxt::generate-search-query is gone upstream.
@aartaka Any idea how to fix this package to run on the upcoming 2-pre-release-7?

I'll look into it!

Done with a3aeeab1a59c8f088b4bc5210bc5e994c086a6a3!

Thanks a lot!

authors: Ambrevar aartaka

repo: aartaka/nx-search-engines


text:
Recommended way of tracking active connections

Hey everyone! Amazing library, been using for a while in production now. :)
I am running into a small issue tracking active websocket connections. I am using a set to keep track of websocket objects, and removing them on ConnectionClosedErrors, however sometimes when the client browser is disconnected, the connection isn't actually closed (or rather, the ConnectionClosedError isn't raised). Are there any best-practices for this? I was thinking of sending a ping to all websockets every 5s, and removing them incase ConnectionClosedError was raised in a separate thread.

class SessionTracker:
    def __init__(self):
        self.sessions = set()

    async def add_session(self, ws):
        self.sessions.add(ws)
        logger.info(f"Added another session, total sessions: {len(self.sessions)}")

    async def drop_session(self, ws):
        self.sessions.remove(ws)
        logger.info(f"Removed a session, total sessions: {len(self.sessions)}")

async def process_instructions(session_dir, session_id, send, recv):
    .... # some processing

async def main():
    session_tracker = SessionTracker()

    async def ws_session_handler(ws: WebSocketServerProtocol):
        async def recv():
            return orjson.loads(await ws.recv())

        async def send(x):
            # logger.info(x)
            await ws.send(orjson.dumps(x))

        init_data = await recv()
        logger.info(
            f"Incoming session from {ws.remote_address}. SessionId: {init_data.get('sessionId')}"
        )
        await session_tracker.add_session(ws)

        current_session_id = init_data["sessionId"]
        session_dir = str(current_session_id)
        session_dir.mkdir(parents=True, exist_ok=True)

        try:
            await process_instructions(session_dir, current_session_id, send, recv)

        except ConnectionClosed as e:
            logger.info(f"Connection closed for {current_session_id}")

        except Exception as e:
            logger.error(traceback.format_exc())

        finally:
            logger.info(f"Session ended for {current_session_id}")
            await session_tracker.drop_session(ws)
            await ws.close()

    async with serve(ws_session_handler, "0.0.0.0", 8001):
        logger.info("Websocket Server Running")
        await asyncio.Future()

if __name__ == "__main__":
    uvloop.install()
    asyncio.run(main())

In some scenarios, a TCP connection can hang and the OS doesn't know or gets stuck trying to close it while the other end no longer responds. In this case, websockets should close the connection after at most 80 seconds with the default settings. (That's ping_interval + ping_timeout + 4 * close_timeout — sorry for the legacy here.) websockets cannot know that the TCP connection is dead if the OS doesn't say so. Could this explain what you are seeing?

Not sure, to be honest. I was able to reproduce it with:

React renders component -> first websocket connection is established
React re-renders component -> second websocket connection is established, first websocket object is technically "deleted", but it could be because the connection is re-established and the websocket re-sends "onOpen" while using the the same TCP connection, but the server treats it as two different ones?

Here are my server logs:
2022-09-02 20:21:53.534 | INFO     | __main__:ws_session_handler:872 - Incoming session from ('X.X.X.X', 53766).
2022-09-02 20:21:53.534 | INFO     | pollock.status_reporting:add_session:34 - Added another session, total sessions: 1
2022-09-02 20:21:53.661 | INFO     | pollock.status_reporting:countdown:21 - User connected, cancelling self-destruct.
2022-09-02 20:22:55.835 | INFO     | __main__:ws_session_handler:872 - Incoming session from ('X.X.X.X', 46332).
2022-09-02 20:22:55.836 | INFO     | pollock.status_reporting:add_session:34 - Added another session, total sessions: 2

^ Session 1 above never gets dropped, even after >2mins.

first websocket object is technically "deleted"

I'm not sure the object is deleted just because you no longer hold a reference. It depends on the garbage collector's behavior.
What if you close() the connection when React unmounts the component? (Or in whichever React lifecycle event happens just before you re-create the connection?)

Closing didn't seem to work, unfortunately. I moved some stuff around so the component actually removes and creates new websocket connection on re-render, but still running into a similar issue. :(

Closing this issue, managed to fix it with improvements to session handling outside of the Websockets library

repo: aaugustin/websockets


text:
🛑 Shop Aishy is down

In 967be35, Shop Aishy (https://aishy.fr) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Shop Aishy is back up in 50bcec9 after 5 minutes.

repo: abaertsoen/upptime


text:
Fix freeze and topLeftCell in reader/writer

Fix #1175
Adds new methods set_pane_top_left_cell and set_sheetview_top_left_cell to zcl_excel_worksheet

Basic stuff. Tested for the 4 cases (nothing frozen, frozen rows only, frozen columns only, both rows and columns frozen), with Excel. No regression detected. I hope nobody minds if I merge the fix.


text:
Unsupported object count in repo statistics

Add number of unsupported objects below "Number of objects"

@mbtools - FYI

good idea

authors: mbtools yellappam

repo: abapGit/abapGit


text:
java.io.IOException: Invalid keystore format

When I build our Godot app with your CI for Android I get this:
...
ADDING: res/mipmap/icon_foreground.png
ADDING: resources.arsc
	export: step 1: Adding files...
	export: step 103: Aligning APK...
Starting signing of the APK binary using /usr/lib/android-sdk/build-tools/30.0.3/apksigner
	export: step 104: Signing release APK...
Failed to load signer "signer #1"
java.io.IOException: Invalid keystore format
	at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:666)
	at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:57)
	at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
	at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:71)
	at java.security.KeyStore.load(KeyStore.java:1445)
	at com.android.apksigner.SignerParams.loadKeyStoreFromFile(SignerParams.java:353)
	at com.android.apksigner.SignerParams.loadPrivateKeyAndCertsFromKeyStore(SignerParams.java:239)
	at com.android.apksigner.SignerParams.loadPrivateKeyAndCerts(SignerParams.java:181)
	at com.android.apksigner.ApkSignerTool.getSignerConfig(ApkSignerTool.java:395)
	at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:316)
	at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:88)

export: end
ERROR: Project export failed with error code 20 for preset "Android".
   at: _fs_changed (editor/editor_node.cpp:801)
EditorSettings: Save OK!

I followed the steps in the documentation of the CI config to encode the key and all that. I verified multiple times now that the from base64 decoded key is exactly the same as the original non base64 key. I have no idea what this error means.

I did not use java 8 but java 11.

I'm not sure how to use Java 8 either.

I think you just have to set the environment variable JAVA_HOME to a different directory with java 8.

So I did that and generated a new keystore with keytool but it's giving the same error,

My bad, it isn't just setting JAVA_HOME. You have to use the keytool scripts of the correct JDK to use a different version. So in your case it should be in /nix/store/6aj4vbk6hnbi7hv6lq98xyv6ikz3q45c-openjdk-8u272-b10-debug/bin/keytool.

repo: abarichello/godot-ci


text:
Provide new_segment_callback with Segment, not list[Segment], fixing type hints

In my editor, it's shown that  new_segment_callback is to be provided a Segment,  but it actually provides a list[Segment] with one element. I've changed this by just returning that first element so that it matches the type hints.

If it's a larger issue that this would break existing callbacks using the list of Segments, the type hint could just be switched to match, but providing one Segment rather than one Segment in a list seems better

repo: abdeladim-s/pywhispercpp


text:
Add min_tokens argument

This PR adds a min_tokens argument to complement max_tokens. When set, the EOS token will be discarded until min_tokens have been generated.

@abetlen, could you review when you have a moment? Thank you!

Hey @Yard1 sorry to take so long on this reply. The issue I see with this at the moment is that the stop token is still being generated and appended to the eval_logits and eval_tokens internally. This will probably cause some kind of issue in generation, what you really want is a min_tokens inside of generate or something that essentially ignores / sets the eos token probability to 0 until a certain number of tokens are generated.
Also, it should probably be noted that fewer than min_tokens may be returned if e.g. another stop criteria like a stop sequence is encountered.

Got it, thanks! Let me take a look at this.

Hmm, now that I think about it, this can be easily implemented through a LogitsProcessor. Therefore, we don't need a separate argument (and by extension, this PR). Let me know if that makes sense - we can close this PR then.

any updates on this?

@Yard1 we've added the parameter to the server and it's available in the python API via a new MinTokensLogitProcessor

authors: IkariDevGIT Yard1 abetlen

repo: abetlen/llama-cpp-python


text:
Message Process/Receipt

For some reason I am getting 150=0 messages fed through with no issue when I place an order with my broker but I am not getting the fill messages displayed or in the logs even though the broker is confirming they are being sent to me.  Is there anything about the structure of message processing and logging in client.py I need to change to parse and process multiple messages as they come from the exchange?  Its almost as if it processes the first message that comes from an order being placed and stops, consequently I am not being updated when I get fills and not getting other messages such as rejects and cancels by the exchange.  Is there a quick solution that I can add to make sure all messages are being dumped in a log. Currently I am seeing info feed into the client file in /logs :
2021-06-09 12:16:22.674990 [INFO   ] (toApp    ) Sending 8=FIX.4.29=25035=D34=46349=****52=20210609-18:16:22.00000056=128=WEL01=11=*****ZCZ122.67298921=138=10040=244=62050=system54=155=ZCZ158=1 ZCZ1 100@62060=20210609-18:16:22142=US,CO167=FUT200=202112207=XCBT461=FXXXXX10=048 session FIX.4.2:->
2021-06-09 12:16:22.855997 [INFO   ] (fromApp  ) Got message 8=FIX.4.29=36435=834=45249=********52=20210609-18:16:22.87956=*******57=system97=N1=******6=011=ZCZ122.67298914=017=090000558520=021=131=0.00000032=037=00000147961ORCH138=10039=040=244=62047=A54=155=ZCZ159=060=20210609-18:16:22.860109=120=USD126=20210609-18:50:00.000150=0151=100167=FUT200=202112205=14207=XCBT426=010=158 for FIX.4.2:->.
2021-06-09 12:16:22.894015 [DEBUG  ] (process  ) Processing message.
2021-06-09 12:16:22.932000 [INFO   ] (process  ) Order placed successfully.
2021-06-09 12:16:22.970001 [INFO   ] (process  ) Order: 17=0900005585, 11=********ZCZ122.672989 55=ZCZ1 32=0@31=0.000000 54=1
but nothing is ever dumped into the 'message' file within /logs. I am including my augmented client.py file:
import quickfix as fix
import quickfix42 as fix42
import sys
import time
import logging
from .utils import Message
import pandas as pd
ORDERS = {}
class BaseApplication(fix.Application):
def onCreate(self, sessionID):
return
def onLogon(self, sessionID):
    return

def onLogout(self, sessionID):
    return

def toAdmin(self, message, sessionID):
    self.sessionID = sessionID
    return

def fromAdmin(self, message, sessionID):
    return

def toApp(self, message, sessionID):
    return

def fromApp(self, message, sessionID):
    return

ORDER_TABLE = {}
class Client(BaseApplication):
def set_logging(self, logger):
self.logger = logger
def onCreate(self, sessionID):
    self.logger.info(f"Successfully created session {sessionID}.")
    return

def onLogon(self, sessionID):
    self.logger.info(f"{sessionID} session successfully logged in.")
    return

def onLogout(self, sessionID):
    self.logger.info(f"{sessionID} session successfully logged out.")
    return

def toApp(self, message, sessionID):
    self.logger.info(f"Sending {message} session {sessionID}")

def fromApp(self, message, sessionID):
    self.logger.info(f"Got message {message} for {sessionID}.")
    self.process(message, sessionID)

def process(self, message, sessionID):
    #print(message)
    self.logger.debug("Processing message.")
    msgtype = fix.MsgType()
    exectype = fix.ExecType()
    message.getHeader().getField(msgtype)
    message.getField(exectype)

    if msgtype.getValue() == "8":
        if exectype.getValue() == "2":
            self.logger.info("Trade received.")
            (
                symbol,
                price,
                quantity,
                side,
                client_order_id,
                trade_exec_id,
                order_status,
            ) = self.__get_attributes(message)
            self.logger.info(
                f"Trade: {trade_exec_id}, {client_order_id} {symbol}"
                f" {quantity}@{price} {side}"
            )
        elif exectype.getValue() == "0":
            self.logger.info("Order placed successfully.")
            (
                symbol,
                price,
                quantity,
                side,
                client_order_id,
                exec_id,
                order_status,
            ) = self.__get_attributes(message)

            ORDERS[client_order_id.getValue()] = [symbol, price, quantity, side]

            self.logger.info(
                f"Order: {exec_id}, {client_order_id} {symbol}"
                f" {quantity}@{price} {side}"
            )
        elif exectype.getValue() == "4":
            self.logger.info("Order Cancelled.")
            (
                symbol,
                price,
                quantity,
                side,
                client_order_id,
                exec_id,
                order_status,
            ) = self.__get_attributes(message)

            ORDERS[client_order_id.getValue()] = [symbol, price, quantity, side]

            self.logger.info(
                f"Order: {exec_id}, {client_order_id} {symbol}"
                f" {quantity}@{price} {side}"
            )
        elif exectype.getValue() == "5":
            self.logger.info("Order replaced successfully.")
            (
                symbol,
                price,
                quantity,
                side,
                client_order_id,
                exec_id,
                order_status,
            ) = self.__get_attributes(message)

            ORDERS[client_order_id.getValue()] = [symbol, price, quantity, side]

            self.logger.info(
                f"Order: {exec_id}, {client_order_id} {symbol}"
                f" {quantity}@{price} {side}"
            )

def __get_attributes(self, message):
    price = fix.LastPx()
    quantity = fix.LastQty()
    symbol = fix.Symbol()
    side = fix.Side()
    client_order_id = fix.ClOrdID()
    exec_id = fix.ExecID()
    order_status = fix.OrdStatus()

    message.getField(client_order_id)
    message.getField(side)
    message.getField(symbol)
    message.getField(price)
    message.getField(quantity)
    message.getField(order_status)
    message.getField(exec_id)

    return (symbol, price, quantity, side, client_order_id, exec_id, order_status)

def get_order_id(sender_comp_id, symbol,OCO):
if symbol in ORDER_TABLE:
_id = ORDER_TABLE[symbol]
else:
_id = float(str(pd.Timestamp.now())[-9:])
if OCO == False:
  order_id = sender_comp_id + symbol + str(_id)
else:
  order_id = "OCO"+sender_comp_id + symbol + str(_id)
ORDER_TABLE[symbol] = _id + 1

return order_id

def new_order(
sender_comp_id, target_comp_id, symbol, quantity, price, side,order_type,order_expir,order_account
):
if side.lower() == "buy":
side = fix.Side_BUY
else:
side = fix.Side_SELL
message = Message()
header = message.getHeader()
header.setField(fix.BeginString("FIX.4.2"))
header.setField(fix.SenderCompID(sender_comp_id))
header.setField(fix.TargetCompID(target_comp_id))
header.setField(fix.DeliverToCompID('WEL0'))
header.setField(fix.MsgType("D"))

ord_id = get_order_id(sender_comp_id, symbol,False)

message.setField(fix.SecurityExchange("XCBT"))
message.setField(fix.SenderSubID("system"))
message.setField(fix.SenderLocationID("US,CO"))
message.setField(fix.Account(order_account))
message.setField(fix.SecurityType("FUT"))
message.setField(fix.MaturityMonthYear(order_expir))
message.setField(fix.CFICode("FXXXXX"))

message.setField(fix.ClOrdID(ord_id))
message.setField(fix.Symbol(symbol))
message.setField(fix.Side(side))
message.setField(fix.Price(float(price)))
if order_type.lower() == "market":
    message.setField(fix.OrdType(fix.OrdType_MARKET))
else:
    message.setField(fix.OrdType(fix.OrdType_LIMIT))
message.setField(fix.HandlInst("1"))
message.setField(fix.TransactTime())
message.setField(fix.OrderQty(float(quantity)))
message.setField(fix.Text(f"{side} {symbol} {quantity}@{price}"))

return message

def new_SLICER_order(
sender_comp_id, target_comp_id, symbol,price, quantity,order_type,  side,order_expir,order_account,slice_interval,end_time
):
if side.lower() == "buy":
side = fix.Side_BUY
else:
side = fix.Side_SELL
message = Message()
header = message.getHeader()
header.setField(fix.BeginString("FIX.4.2"))
header.setField(fix.SenderCompID(sender_comp_id))
header.setField(fix.TargetCompID(target_comp_id))
header.setField(fix.DeliverToCompID('WEL0'))
header.setField(fix.MsgType("D"))

ord_id = get_order_id(sender_comp_id, symbol,False)

message.setField(fix.SecurityExchange("XCBT"))
message.setField(fix.SenderSubID("system"))
message.setField(fix.SenderLocationID("US,CO"))
message.setField(fix.Account(order_account))
message.setField(fix.SecurityType("FUT"))
message.setField(fix.MaturityMonthYear(order_expir))
message.setField(fix.CFICode("FXXXXX"))
if order_type.lower() == "market":
    message.setField(fix.OrdType(fix.OrdType_MARKET))
else:
    message.setField(fix.OrdType(fix.OrdType_LIMIT))
message.setField(fix.ClOrdID(ord_id))
message.setField(fix.Symbol(symbol))
message.setField(fix.Side(side))
message.setField(fix.Price(float(price)))

message.setField(fix.HandlInst("1"))
message.setField(fix.TransactTime())
message.setField(fix.OrderQty(float(quantity)))
message.setField(fix.Text(f"{side} {symbol} {quantity}@SLICER"))

message.setField(fix.StringField(7111, "~TSD"))
message.setField(fix.StringField(7115,"00:00:"+str(slice_interval)+".000000"))
message.setField(fix.StringField(7150,"1"))
#s_time=fix.StringField(7113)
#s_time.setString(str((pd.Timestamp.now(tz='UTC')+pd.Timedelta(seconds=5)).strftime("%Y%m%d-%H:%M:%S.%f")))
#message.setField(s_time)
message.setField(fix.StringField(7148,"20"))
E_time=fix.ExpireTime()
E_time.setString(str((pd.Timestamp.now(tz='UTC')+pd.Timedelta(minutes=int(end_time))).strftime("%Y%m%d-%H:%M:%S.%f")))
message.setField(E_time)

return message

def new_OCO_order(
sender_comp_id, target_comp_id, symbol, quantity, price,stop, side,order_expir,order_account
):
if side.lower() == "buy":
side = fix.Side_BUY
else:
side = fix.Side_SELL
message = Message()
header = message.getHeader()
header.setField(fix.BeginString("FIX.4.2"))
header.setField(fix.SenderCompID(sender_comp_id))
header.setField(fix.TargetCompID(target_comp_id))
header.setField(fix.DeliverToCompID('WEL0'))
header.setField(fix.MsgType("E"))
header.setField(fix.ContingencyType(1))
header.setField(fix.SenderLocationID("US,CO"))
header.setField(fix.OnBehalfOfCompID(sender_comp_id))

L_ord_id=get_order_id(sender_comp_id, symbol,True)
ord_id1 = get_order_id(sender_comp_id, symbol,True)
ord_id2 = get_order_id(sender_comp_id, symbol,True)
message.setField(fix.ListID(L_ord_id))
message.setField(fix.HandlInst("3"))

message.setField(fix.SenderSubID("system"))
E_time=fix.ExpireTime()
E_time.setString(str(pd.Timestamp.now().strftime("%Y%m%d"))[:10]+'-19:00:00')
#message.setField(fix.BidType(1))
group = fix42.NewOrderList.NoOrders()

#limit

group.setField(fix.ClOrdID(ord_id1))
group.setField(fix.ListSeqNo(int(float(str(pd.Timestamp.now())[-9:])*1000000)))

group.setField(fix.Account(order_account))
#group.setField(fix.SecurityType("FUT"))
group.setField(fix.ExDestination("XCBT"))
group.setField(fix.HandlInst("3"))
group.setField(fix.Symbol(symbol[:2]))
group.setField(fix.TimeInForce("0"))
group.setField(fix.EffectiveTime(0))
group.setField(E_time)

message.addGroup(group)

group = fix42.NewOrderList.NoOrders()
group.setField(fix.CFICode("FXXXXX"))
message.addGroup(group)
group = fix42.NewOrderList.NoOrders()
group.setField(fix.MaturityMonthYear(str(order_expir)))
message.addGroup(group)

group = fix42.NewOrderList.NoOrders()
group.setField(fix.Side(side))
group.setField(fix.Price(float(price)))
group.setField(fix.OrdType(fix.OrdType_LIMIT))

group.setField(fix.TransactTime())
group.setField(fix.OrderQty(float(quantity)))
#group.setField(fix.MaturityMonthYear(str(order_expir)))
message.addGroup(group)

#stop
group = fix42.NewOrderList.NoOrders()
group.setField(fix.ClOrdID(ord_id1))
group.setField(fix.ListSeqNo(int(float(str(pd.Timestamp.now())[-9:])*1000000)))
group.setField(fix.TimeInForce("0"))
group.setField(fix.EffectiveTime(0))
group.setField(E_time)
group.setField(fix.Account(order_account))
#group.setField(fix.SecurityType("FUT"))
group.setField(fix.ExDestination("XCBT"))
group.setField(fix.HandlInst("3"))
group.setField(fix.Symbol(symbol[:2]))
message.addGroup(group)
group = fix42.NewOrderList.NoOrders()
group.setField(fix.CFICode("FXXXXX"))
message.addGroup(group)
group = fix42.NewOrderList.NoOrders()
group.setField(fix.MaturityMonthYear(str(order_expir)))
message.addGroup(group)

group = fix42.NewOrderList.NoOrders()
group.setField(fix.Side(side))
group.setField(fix.StopPx(float(stop)))
group.setField(fix.OrdType(fix.OrdType_STOP))

group.setField(fix.TransactTime())
group.setField(fix.OrderQty(float(quantity)))
#group.setField(fix.MaturityMonthYear(str(order_expir)))
message.addGroup(group)

#message.setField(fix.Text(f"{'limit'} {side} {symbol} {quantity}@{price} {'stop'} {side} {symbol} {quantity}@{stop} "))
message.setField(fix.TotNoOrders(2))
message.setField(fix.NoOrders(2))

return message

def replace_order(
sender_comp_id, target_comp_id, quantity, price, orig_client_order_id
):
symbol = ORDERS[orig_client_order_id][0].getValue()
side = ORDERS[orig_client_order_id][3].getValue()
message = fix42.OrderCancelReplaceRequest()
header = message.getHeader()

header.setField(fix.SenderCompID(sender_comp_id))
header.setField(fix.TargetCompID(target_comp_id))
header.setField(fix.DeliverToCompID('WEL0'))

ord_id = get_order_id(sender_comp_id, symbol,False)

message.setField(fix.SecurityExchange("XCBT"))
message.setField(fix.SenderSubID("system"))
message.setField(fix.SenderLocationID("US,CO"))
message.setField(fix.Account("AAS82950"))
message.setField(fix.SecurityType("FUT"))
message.setField(fix.MaturityMonthYear("202112"))
message.setField(fix.CFICode("FXXXXX"))
message.setField(fix.ClOrdID(ord_id))
message.setField(fix.Symbol(symbol))
message.setField(fix.Side(side))
message.setField(fix.Price(float(price)))
message.setField(fix.OrdType(fix.OrdType_LIMIT))
message.setField(fix.HandlInst("1"))
message.setField(fix.TransactTime())
message.setField(fix.OrigClOrdID(orig_client_order_id))
message.setField(fix.OrderQty(float(quantity)))
message.setField(fix.Text(f"{side} {symbol} {quantity}@{price}"))

return message

def delete_order(sender_comp_id, target_comp_id, orig_client_order_id):
symbol = ORDERS[orig_client_order_id][0].getValue()
side = ORDERS[orig_client_order_id][3].getValue()
message = fix42.OrderCancelRequest()
header = message.getHeader()

header.setField(fix.SenderCompID(sender_comp_id))
header.setField(fix.TargetCompID(target_comp_id))
header.setField(fix.DeliverToCompID('WEL0'))

ord_id = get_order_id(sender_comp_id, symbol,False)
message.setField(fix.OrigClOrdID(orig_client_order_id))
message.setField(fix.SecurityExchange("XCBT"))
message.setField(fix.SenderSubID("system"))
message.setField(fix.SenderLocationID("US,CO"))
message.setField(fix.Account("AAS82950"))
message.setField(fix.SecurityType("FUT"))
message.setField(fix.MaturityMonthYear("202112"))
message.setField(fix.CFICode("FXXXXX"))
message.setField(fix.ClOrdID(ord_id))
message.setField(fix.Symbol(symbol))
message.setField(fix.Side(side))
message.setField(fix.TransactTime())
message.setField(fix.Text(f"Delete {orig_client_order_id}"))

return message

def send(message):
try:
fix.Session.sendToTarget(message)
except fix.SessionNotFound:
raise Exception(f"No session found {message}, exiting...")

Certain messages were not coming in because they were accompanied by a custom TAG not in the spec.  Added the Tag and now receive everything


text:
Fix handling of multiple blocks

It appears that
if we modify the AST with ReplaceChild
while walking it with ast.Walk,
we may end up skipping over sibling nodes.
For example per the report in #3,
with two mermaid blocks next to each other,
we end up replacing the first and skipping the second.
Fix this by collecting all mermaid nodes in one pass,
and replacing them in the second.
Resolves #3

Codecov Report

Merging #4 (e8ee188) into main (7ce995a) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #4   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines           63        66    +3
=========================================
+ Hits            63        66    +3

Impacted Files
Coverage Δ

transform.go
100.00% <100.00%> (ø)

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 7ce995a...e8ee188. Read the comment docs.

authors: abhinav codecov-commenter

repo: abhinav/goldmark-mermaid


text:
Leads count block added

Added Leads count block

It shows how many leads have added themselves to the platform.
Gets the length of the json file which stores all the data that's it.
Also I use prettier extension so it formats the code and make it more readable by auto indentation on saves. That's why it show whole file as green :P

wanted to push this with a bigger contribution 😅  but it'll take time to work that thing up 😄 . Next PR would be more useful :P

oh ok wil do

btw simply removing package-lock.json from the PR would do the job, I mean exclude it from the PR.

How About now @abhinavsri360 ?

No conflicts, let's wait for the build 😄

btw simply removing package-lock.json from the PR would do the job, I mean exclude it from the PR.

oh didn't knew that before 😅. Will keep that in mind next time 👍


text:
Podcasts Episodes Analysis

ML-Crate Repository (Proposing new issue)
:red_circle: Project Title : Podcasts Episodes Analysis
:red_circle: Aim : Analyze different episodes of podcasts from the time period of 2007 - 2016
:red_circle: Dataset : https://www.kaggle.com/rishidamarla/podcasts-episodes-20072016
:red_circle: Approach : Try to use 3-4 algorithms to implement the models and compare all the algorithms to find out the best fitted algorithm for the model by checking the accuracy scores. Also do not forget to do a exploratory data analysis before creating any model.
Hello, ML-Crate contributors, this issue is only for the contribution purposes and allocated only to the participants of SWOC 2.0 Open Source Program and JWOC '22 Open Source Program.

📍 Follow the Guidelines to Contribute in the Project :

You need to create a separate folder named as the Project Title.
Inside that folder, there will be four main components.

Images - To store the required images.
Dataset - To store the dataset or, information/source about the dataset.
Model - To store the machine learning model you've created using the dataset.
requirements.txt - This file will contain the required packages/libraries to run the project in other machines.

Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.

:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'SWOC' and 'JWOC' contributors of 'ML-Crate' project.

:white_check_mark: To be Mentioned while taking the issue :

Full name :
GitHub Profile Link :
Participant ID :
Approach for this Project :
What is your participant role?

[ ] SWOC 2.0 Participant.
[ ] JWOC 2022 Participant.
[ ] Contributor

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

Full name : NIRVIK GHOSH
GitHub Profile Link : @Nirvik07
Participant ID : NA
Approach for this Project : To analyse the various Podcasts.
What is your participant role?
HRSoC 2022 Participant.

Issue assigned to you @Nirvik07


text:
Stress Detection

ML-Crate Repository (Proposing new issue)
:red_circle: Project Title : Stress Detection
:red_circle: Aim : Stress detection is a challenging task, as there are so many words that can be used by people on their posts that can show whether a person is having psychological stress or not. So we would find if the person is in stress or not .
:red_circle: Dataset : https://www.kaggle.com/ruchi798/stress-analysis-in-social-media
:red_circle: Approach :  Try to use 3-4 algorithms to implement the models and compare all the algorithms to find out the best fitted algorithm for the model by checking the accuracy scores. Also do not forget to do a exploratory data analysis before creating any model.
Hello, ML-Crate contributors, this issue is only for the contribution purposes and allocated only to the participants of SWOC 2.0 Open Source Program.

📍 Follow the Guidelines to Contribute in the Project :

You need to create a separate folder named as the Project Title.
Inside that folder, there will be four main components.

Images - To store the required images.
Dataset - To store the dataset or, information/source about the dataset.
Model - To store the machine learning model you've created using the dataset.
requirements.txt - This file will contain the required packages/libraries to run the project in other machines.

Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.
A Demo Project has been created to guide you about the whole structure of presenting the Project in this repository. Here's the link of the Demo Project - https://github.com/abhisheks008/ML-Crate/tree/main/Project-Demo-Folder

:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Follow Contributing Guidelines & Code of Conduct before start Contributing.
This issue is only for 'SWOC' contributors of 'ML-Crate' project.

:white_check_mark: To be Mentioned while taking the issue :

Full name :
GitHub Profile Link :
Participant ID :
Approach for this Project :
Are you a participant of SWOC 2.0?

[ ] YES
[ ]  No

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

Full name : Bhaswati Roy
GitHub Profile Link : https://github.com/BhaswatiRoy
Approach for this Project : NLP techniques to preprocess the texts and predict outputs
Are you a participant of SWOC 2.0?
YES


text:
test: add pod failover test

What type of PR is this?

/kind test
What this PR does / why we need it:
Creates a pod failover test that cordons a node to ensure pod fails over to the other node. Works for single az scenario
Which issue(s) this PR fixes:

Fixes #
Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build 851281410

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 36.946%

Totals

Change from base Build 828898210:
0.0%

Covered Lines:
1101

Relevant Lines:
2980

💛  - Coveralls

I see that this is still set to merge to the Mandalay repro. We need  the pod failover test in the upstream repo as well. Are you doing that as part of the ZRS test work?

authors: coveralls edreed kassarl


text:
🛑 BKAD is down

In 910ae0e, BKAD (https://bkad.kalbarprov.go.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BKAD is back up in 7d3772a after 10 minutes.

repo: abimanyu/Kalbarnetworks


text:
🛑 AFL Homepage is down

In e1ef926, AFL Homepage (https://www.abingdonflooring.co.uk) was down:

HTTP code: 403
Response time: 709 ms

Resolved: AFL Homepage is back up in 2134d49 after 6 minutes.

repo: abingdonflooring/status


text:
RSL5b

#140

LGTM

LGTM

authors: mattheworiordan ricardopereira tcard

repo: ably/ably-ios


text:
Coverage report showing spec points not referenced by the canonical features list

Once we've worked on parsing the spec (#7) then we're in a good place to start generating even more value out of that references to it...
We can report on which spec points are not referenced directly or indirectly (as subitems) of spec points that are referenced from node(s) in the canonical features list.
In the early days I would expect this report to be built in CI and pushed out to sdk.ably.com in HTML format, for viewing in a browser.
Once we get our coverage complete, we could actually make CI fail if a spec point is added but it's not represented by at the tier above by being referenced from a canonical feature node. If necessary we could even have a metadata file that defines spec points which are expected not to be referenced (ignores list).
┆Issue is synchronized with this Jira Uncategorised by Unito

Not a task I was able to find the time to complete while still employed at Ably so removing my assignment.

repo: ably/features


text:
feat(lib): add declarations

Este PR agrega a la configuración de TypeScript la posibilidad de exportar las definiciones y de poder importarlas desde otros paquetes por medio de la clave typings en el package.json
Por convención, agrego el archivo types.ts como punto de entrada para exportar lo que se necesite

Closes #2

Para que esto funcione también debería haber un types.ts, sacando eso, prefiero que la convención sea index.ts y justo para nuestro caso saber que conviene separar en un types

Si, voy a ver si mejoro esto a como lo dejé en el microservicio de pato.
Crear un types.ts en src que exponga todo, y vincular en el package.json el file este en dist

Otra vez, la convención prefiero que sea que el typings apunte a index.d.ts. En nuestro caso hariamos un override cuando lo necesitamos a types.ts

authors: durancristhian hrajchert

repo: acamica/typescript-node-starter


text:
How to link systemc with CMake?

There is no include directory in the project, so my hello world demo in another directory can't find header files using CMake. How do l link systemc with CMake in other directory.

Did you try the steps mentioned here on building using CMake?

Did you try the steps mentioned here on building using CMake?

I solved the problem with these steps, thanks.

@492859780 , Probably close the issue. If you are able to proceed now.

repo: accellera-official/systemc


text:
Generated code should not include source file directory information

Code-generation include file information from the source which includes directory of the user running the compiler. This makes the compiler result different depending on who runs it which is a problem for:

privacy (user directory information)
hash creation in Cicero archive, which is based on generated code

Immediate fix in #473

repo: accordproject/ergo


text:
🛑 PMB is down

In f325bb8, PMB (https://pmb.acdh.oeaw.ac.at/) was down:

HTTP code: 503
Response time: 745 ms

Resolved: PMB is back up in 7d1d422 after 7 minutes.

repo: acdh-oeaw/status


text:
running tests broken

There seems to be a dependency issue, possibly related to babel-relay-plugin.
If you do a fresh clone and npm install then npm test you get a lot of these errors:
Module build failed: ReferenceError: Unknown plugin "./src/packages/recompose-relay/babelRelayPlugin" specified in "base" at 0
any thoughts? it is currently blocking all PR's

Sorry I'll look at this some time today

Looks like they are passing now.

authors: acdlite hartzis

repo: acdlite/recompose


text:
Add details about static types that will not be hoisted with hoistSatics

Clarifies how hoistStatics works, see #253

Super!!! Thank you!

authors: istarkov joekrill


text:
🛑 AceBlock Swagger UI is down

In 29f66e4, AceBlock Swagger UI ($ACEBLOCK_SWAGGER_UI) was down:

HTTP code: 0
Response time: 0 ms

Resolved: AceBlock Swagger UI is back up in 88efaad.

repo: aceblockID/monitoring


text:
🛑 AceBlock Swagger UI is down

In 9c17c77, AceBlock Swagger UI ($ACEBLOCK_SWAGGER_UI) was down:

HTTP code: 0
Response time: 0 ms

Resolved: AceBlock Swagger UI is back up in 918fb54.


text:
🛑 AceBlock Swagger UI is down

In 22291da, AceBlock Swagger UI ($ACEBLOCK_SWAGGER_UI) was down:

HTTP code: 0
Response time: 0 ms

Resolved: AceBlock Swagger UI is back up in 0cf1d88.


text:
🛑 AceBlock Swagger UI is down

In 258ac1e, AceBlock Swagger UI ($ACEBLOCK_SWAGGER_UI) was down:

HTTP code: 0
Response time: 0 ms

Resolved: AceBlock Swagger UI is back up in 4ba00f5.


text:
🛑 MNID Homepage is down

In 3566d93, MNID Homepage ($MNID_HOME) was down:

HTTP code: 401
Response time: 612 ms

Resolved: MNID Homepage is back up in c774e44 after 11 minutes.


text:
🛑 MNID Homepage is down

In b9e1441, MNID Homepage ($MNID_HOME) was down:

HTTP code: 0
Response time: 0 ms

Resolved: MNID Homepage is back up in 30ddbb8 after 26 minutes.


text:
Make docs!

Can use GitHub wiki to start with

Just a note here to also add examples of the different ways objects can be initialised for the types defined post re-designing.

another note that we have to update the README

and flesh out examples, e.g. custom_feature.jl and perhaps some other things?

authors: rkurchin thazhemadam


text:
How to Prevent File Change Event Firing Twice?

I love the library, however, I am finding that the FileChanged event is being fired multiple times for single save operations. This is normal for the Microsoft FileSystemWatcher but I wondered if you have addressed this yourself to stop it from happening? If not, do you have any advice for me to amend the library to stop it from happening?
Thanks for your time.

I've not used this library in particular, but I have implemented a workaround for the native filesystem watcher (which I thought was pretty neat, albeit slightly hacky): Use MemoryCache
If you create cache items with a sliding expiration based on the name of the file affected by the events being received, the cache will automatically purge the items when they expire. This means you can set a sliding expiration for between 250 and 1000ms and use it to effectively debounce/throttle the events for that file, without doing any timing logic yourself
e.g. I had logic like this
public bool HasRecentEvent(string absoluteFilename, int thresholdSeconds = 2)
{
	return (_events.AddOrGetExisting(absoluteFilename, new object(), new CacheItemPolicy
	{
	    SlidingExpiration = TimeSpan.FromSeconds(thresholdSeconds)
	}) != null);
}

where I would just drop the event if HasRecentEvent returned true
All this required was a memory cache instance. What's more is that memory cache is thread safe provided you're only doing simple operations like AddOrGet etc.

This is clever. Maybe do a pull request and implement your solution internally somehow?

That is quite clever. If I manage to set a couple hours off in the near future I'll have a look at it. If not I'd be happy to pull any code in :)

repo: acken/FSWatcher


text:
[T7] Add link to worksheet

T7 wishes to have the following link added to the website, under the name "Tutorial Worksheet"
link: https://docs.google.com/document/d/1WUerIY4MKuKEmvWR2OeB_oJCSBl3k4Q7KWwNzm5HYhs/view

@raosudha89 I can pick up this task


text:
Put imgui directly into the app class

Now the app class is here again. Imgui can be put into the app class and on_tool could be called.

It is done but needs refactoring already #52

repo: aconstlink/motor


text:
Drag and drop external events

Hi,
Is there a possibility to drag n drop events from external table to the calendar?
Thanks
Pampos

Hi, thank you for your interest in this project.
By external table you mean DND from other <View /> or something outside the calendar, right?
If so, it's not possible for now. If you send a pull request, I'm happy to merge it. However, I think that could be a hard work.
Cheers

Check https://github.com/acro5piano/react-native-big-calendar/pull/624 @Pamposgsk ;)

authors: Pamposgsk acro5piano rdewolff


text:
Error when calling requestSync

When trying to call requestSync in NodeJS the follow undocumented error is shown:
Failed {
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

Operation is the same with an API key and Service account.
The same API Key and agentUserId will work with curl!

Are you using both an API key and a service account key?

I have tried Just API Key. Just Service account and both. It all cases this command fails.
reportState works with no issue.

Here is my function:
`function testsync() {
    const { smarthome } = require('actions-on-google');
    const app = smarthome({
        key: 'AIAAASyBiHC1G4SXefqsbYxUHIawAAAAAAA' // Changed from Actual Key

    });
    // ...
    // New device is added for user
    app.requestSync('1NMWK8AAAEVscJzceSJuLmvGAAA') // Changed from Actual UID
        .then((res) => {
            console.log('Worked', res)
        })
        .catch((res) => {
            console.log('Failed', res)
        });
}`

Further Testing:
With incorrect UID:
Failed {
  "error": {
    "code": 404,
    "message": "Requested entity was not found.",
    "status": "NOT_FOUND"
  }
}

With Incorrect API KEY:
Failed {
  "error": {
    "code": 400,
    "message": "API key not valid. Please pass a valid API key.",
    "status": "INVALID_ARGUMENT",

To add to the error message. The Sync Event Occurs. Stack driver shows the following error:
SYNC: Request ID 337219942982431064 failed with code: OPEN_AUTH_FAILURE

To Add account linking works fine. The device is sync is working the device can be controlled from home. The command errors but the sync occurs and home is updated.
Help...

I was able to have it work fine when using the sample with just a service account key.

It works but I get the error above along with the OPEN_AUTH_FAILURE in stackdriver. I have no idea why and there seems to be very little debugging ? Where are the permissions it is referring to?

Open Auth Failure refers to some issue with the account linking.

This issue has been migrated to the public issue tracker:
https://issuetracker.google.com/issues/142048841

authors: Fleker devunwired fabltd


text:
Service name has a duplicated Prefix

My runner is unable to find webhook service because of weird prefixing of the service.
The output of kubectl get services -n actions: (actions is just the namespace in which I have installed the helm chart)

Environment:

Kubectl [v1.22.4]
Deployment Method [Helm]
Helm Chart Version [0.16.1]
GKE Cluster

Here is the error:

Here are all the installed objects:

Cannot delete and reinstall everything because its a prod cluster, and I have already tried different namespaces.
Thanks a lot for any sort help!

I did not override anything and used the default values in the values.yaml. But the problem is solved because there were some dangling resources in the cluster. There were a bunch of cluster roles and cluster role bindings:

They were not deleted after a helm delete. After I deleted them manually, the prefix was gone and it started to work perfectly.

@murty549 Hey. Your second screen capture says that there's at least one mutatingwebhookconfiguration that points to a K8s service named actions-runner-controller-webhook in actions-runner-system. But you said you're using actions as the namespace to install ARC.
That makes me think that you have two conflicting ARC instances in actions-runner-system(maybe this is the older one?) and actions. If that's intentional, it isn't supported today.
Just make sure you only have one instance of ARC per cluster. Or just specify the same namespace to run helm upgrade.

Yes that was the exact problem. Thanks a bunch :D