Topic about banks shows food banks

The topic about banks (the money type of banks) shows food banks.

Fixing this involves tweaking the NLP processing, which is out of scope for v1 unfortunately.

@rasmus-storjohann-PG Not sure how much work it would be but something simple that would work for most NLP cases without having to do any NLP at all would be to only match the longest matching term, and ignore the subterms. I haven't looked at what exactly you're doing but I remember from our previous convos that you were simply doing a prefix match and figuring out how many times each term appeared... and scoring them using BM25 with an IDF score for each term.
If this is indeed how it works, the only change that you'd need to do is on the term extraction side assuming there are idf scores for both food banks and banks. Assuming you are using something like a trie (prefix tree - https://en.wikipedia.org/wiki/Trie), the code could be something as simple as:
# Assuming this is your idf
idfs = {"liverpool": 12, "liver": 8, "united kingdom": 5, "united": 3, "kingdom": 4}
for k, v in idfs.items():
    trie.insert(k, v)

# doc
doc = "Liverpool is a football club in the United Kingdom".lower()

# get all matches using a trie
matches = trie.getAllMatching(s)
print(matches)
`[(0, 5), (0, 9), (36, 42), (36, 50), (43, 50)]`

# this gets you all subwords
for start, end in matches:
    print(s[start:end])

# but if you merge the intervals of the matches, it will just work.
for start, end in merge_intervals(matches):
    print(s[start:end])

results ^
not sure if this is helpful


When disposing a kept tensor, remove it from the keep tensors array.

By not removing it from the keepTensors array, we introduce a CPU memory leak which causes a very gradual linear slowdown.
Verified this fixes https://github.com/tensorflow/tfjs/issues/448

This change is

Thanks for the quick fix!

Review status: 0 of 1 LGTMs obtained

Comments from Reviewable

Review status: :shipit: complete! 1 of 1 LGTMs obtained

Comments from Reviewable

It is my guess that this will also fix https://github.com/tensorflow/tfjs/issues/438


Update leo.localplayer.dev.json

Updated CNAME record pointing to my site and MX records for my simple login email domain

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.

Description

Updated CNAME record pointing to my site and MX records for my simple login email domain
Link to Website

lenadlm.github.io

CC: @andrewstech Do we support DKIM records?


fix(deps): Reduce FSharp.Core dependency back to 5.0.0

FsHttp package versions 13-14.4.0 omitted to state their dependency on FSharp.Core
This means that anyone who is using a FSharp.Core prior to 8.0.100 (which v 14.4.1 correctly declares its dependence on) winds up (if they use a tool that depends on nuspec dependency declarations (such as paket, but also Rider etc):

getting 14.4.0 (technically correct, not a paket bug)
(on a machine that is running a net6.0 runtime) getting surprised at runtime with a:System.IO.FileLoadException: Could not load file or assembly 'FSharp.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'FSharp.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

This PR rolls all the way back to only demanding V5, like the older versions did
resolves #183

Mmh, I'm not sure about this one.
If I remember correctly we made the move to FSharp.Core 8 because @SchlenkR had other build issues with the dependency on 5.
But you're right, the 14.0 release was bad because of the implicit dependency. That was my fuckup.

@bartelink I only had a look at the issue; not at your PR. You basically did the work I finished right now. Please excuse me for not merging your PR; I would have done it if I had seen it before.
Thank you so much for your PR and all the information. This is so valuable, since such topics usually cost nerves and energy. Great stuff - 🙏❤

Thanks @SchlenkR
One straggler piece is that the comments don't align with the PackageRef now, will make a PR
https://github.com/fsprojects/FsHttp/pull/184/files#diff-2c1498892796bdfa6445f171ee3c2c11cae3b082c3c6896cdb2d4e275bbda3ffR41-R48
This is not critical - you've already done all the important stuff, and it's much appreciated...


Fix Theming in Properties Dialog

Resolved / Related Issues
Items resolved/related issues by this PR.

Closes #6066

Details of Changes
Add details of changes here.

Added Proper Theme Handling for the Properties Dialog
(This respects system and app theme settings properly)

Validation
How did you test these changes?

[X] Built and ran the app
[X] Tested the changes for accessibility

Screenshots

LGTM 🚀 Thanks @CarJem

No problem!


Fix launching iOS simulator regression

PR #17284 (accepted in 2ad34075f1d048bebb08ef30799ac0d081073150) introduced a couple of regressions.
~1. There's the code:~
.then((appName) => resolve(selectedSimulator.udid, appName));
/* ... */
.then((udid, appName) => {

~~This makes appName to be always undefined as per resolve accepts only 1 argument. This regression causes issues if an app name differs from a scheme name.~
~This PR fixes this by wrapping both values in an array.~
This was fixed in 589eae1432cc4bbc16221f841e27b038099fd128.

The code

child_process.execFileSync('xcrun', ['simctl', 'boot', selectedSimulator.udid]);

makes a simulator boot, but the simulator doesn't launch. That's a regression, which forces developers to launch simulators by other means (by running a number of elaborate console commands, by running Xcode, or by running a simulator manually).
This PR reverts that part of changes.
Test Plan
Create a blank project with a name that differs from scheme name. Try to react-native run-ios in it. See that a simulator is launched and installing succeeds. Without this changes simulator wouldn't launch, and installing step would fail because of app name mismatch.
Related PRs
#17284
Release Notes
[CLI][BUGFIX][local-cli/runIOS/runIOS.js] - Fix running on multiple simulators feature regressions

I wasn't able to get that instruments code to run with my XCode. Anyway, I made an alternative implementation (which, should be a bit better as it uses a tool designed for spawning instead of instruments).
Let me know what you think: #18721

I am on 9.2. Have you tested your PR with multiple simulators? The commit
you are referring to in the original description added the way to run
multiple simulators at once (--simulator iPhone X, --simulator iPhone 6). I
can't check right now if instruments -w will support that case.
On Fri, 6 Apr 2018 at 13:23 Angly Cat<EMAIL_ADDRESS>wrote:

I wasn't able to get that instruments code to run with my XCode.
@grabbou https://github.com/grabbou May I ask which version of XCode do
you have? For me it works with both Xcode 9.2 and 9.3.
I haven't introduced new code here, I've just made a revert to the code
that was introduced two years ago in 8b55e50
https://github.com/facebook/react-native/commit/8b55e50d1da91dbeadddd7a5a40cc6e4532f9551
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/react-native/pull/18711#issuecomment-379224608,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWcxsxcxL4EtETRcVI5quFnSYOC_Opmks5tl1AcgaJpZM4TIPW1
.

@facebook-github-bot shipit

BTW, thanks for the test plan. I really appreciate that :)


bug: up/down keyboard navigation in chat slash command popover skips

Version
0.16.0
Describe the bug
https://github.com/sourcegraph/cody/assets/153/a41a5b9a-f245-4579-89fd-2ae5e9b182cb

Typing / shows first item selected but you can't hit Enter to select (you must press down first and then enter)
Typing / and pressing down should take you to the second entry
Pressing down sometimes jumps down whole pages instead of item-by-item
Reset is skipped when pressing down

Expected behavior

Can hit enter to select first item after typing /
Can go to second item by pressing down after typing /
Navigating down just goes one item at a time, and brings the item into view at the bottom or top (same as the @ file selector)

https://github.com/sourcegraph/cody/assets/153/7e7a40ac-99dd-4c05-8ed1-177627461054
Additional context
No response

It appears the file/symbol chooser has similar bugs:
https://github.com/sourcegraph/cody/assets/153/312a12d3-6c90-4cd4-b379-2795ed17a01e


CORS on /commit_id.txt

If it's easy, could /commit_id.txt be gettable from the usual domains?

Yup that should be possible.

This is deploying to staging now.


util: GetByteSizeString() take precision argument

Signed-off-by: Christian Brauner<EMAIL_ADDRESS>

Updated. Btw, I'd like to have this change for the storage stuff.


[Feature request] Add fireworks command

Add fireworks command to shoot fireworks from the sprite landing zone and/or left and right side edges.

need to still add audio to explosions


Update aws-java-sdk-cloudwatch, ... to 1.11.992

Updates

com.amazonaws:aws-java-sdk-cloudwatch
com.amazonaws:aws-java-sdk-dynamodb
com.amazonaws:aws-java-sdk-kinesis

from 1.11.728 to 1.11.992.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws" } ]

labels: library-update, semver-patch

Superseded by #19.


Add filebeats as a component

Security Configurations
(Default) TLS encryption for HTTP API clients/Beats

Auto-configures TLS for HTTP layer with a generated CA cert ‘http.p12’
https://www.elastic.co/guide/en/beats/filebeat/8.2/securing-communication-elasticsearch.html

(Additional) Restrict system calls made by Filebeat to limit kernel exposure using seccomp, "Linux Secure Computing Mode"

https://www.elastic.co/guide/en/beats/filebeat/8.2/linux-seccomp.html


i am getting error in crudmaker  my project in laravel 5.4.*

hi, i am getting error when i run my laravel project
error : Call to undefined function app_namespace() in crudmaker.php line 37
my php version is 7.0.29

If you're using version 1.2 of the package we no longer support it. We're currently only supporting version 1.4 which works with Laravel 5.6+


chore: reclassify common sdk errors

Description of changes
This PR takes common SDK faults and reclassifies them as AmplifyErrors. See the table below for the current mapping.

Origional Fault
New Error

The provided token has expired.
Your AWS access tokens have expired.; Please refresh your tokens.

The AWS Access Key Id you provided does not exist in our records.
Your AWS tokens are invalid.; Please refresh your tokens.

The request signature we calculated does not match the signature you provided.
Your AWS tokens are invalid.; Please refresh your tokens.

The provided token is malformed or otherwise invalid.
Your AWS tokens are invalid.; Please refresh your tokens.

...is not authorized to perform...
Please update the permissions.

Rate Exceeded
Please try again.

Issue #, if available

Description of how you validated changes
Checklist

[x] PR description included
[x] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)
[ ] New AWS SDK calls or CloudFormation actions have been added to relevant test and service IAM policies
[ ] Pull request labels are added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closing in favor of localizing error handeling.


Fix unwanted new lines at constructors

Fixes #1147
Implements

com.thoughtworks.qdox adds automatically a newline in each constructor when it reads source code -> There is no need to explicit add a new line before anymore

@devonfw/cobigen

@maybeec I did not use trim() because

it will also remove tab at the first statement inside the constructor
it will remove all wanted newlines at the beginning and end if the user wants to!


fix: store replacement field in 253 bits to avoid alias check

Pull request checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[x] Build (yarn build) was run locally in root directory and any changes were pushed
[x] Lint (yarn lint:fix) was run locally in root directory and any changes were pushed

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Does this introduce a breaking change?

[ ] Yes
[x] No

Other information

UST constraints before
[INFO]  snarkJS: # of Constraints: 28198

UST constraints with this PR
[INFO]  snarkJS: # of Constraints: 26102

@vivianjeng how do you feel about this change? It's a pretty big change but it cuts the circuit size by ~20%. I think it's worth pulling in while we can have the auditors check it.


feat: response-contains-property built-in rule

What/Why/How?
Closes #389
Check yourself

[x] Code is linted
[ ] Tested with redoc/reference-docs/workflows
[ ] All new/updated code is covered with tests

Security

[x] Security impact of change has been considered
[x] Code follows company security practices and guidelines

Closing this since the changes are incorporated into https://github.com/Redocly/openapi-cli/pull/537


Update srdf, srdf4j, srdfjena to 0.1.89

Updates

es.weso:srdf
es.weso:srdf4j
es.weso:srdfjena

from 0.1.81 to 0.1.89.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "es.weso" } ]

labels: library-update, semver-patch

Superseded by #385.

Superseded by #385.


Component Builder cannot reference document

I am currently migrating my HintComponentBuilder to the new layout system. In the comment in the line below it is mentioned that the componentContext has access to the document. However, when I try to use the commented code lines the document is actually not in the componentContext.
https://github.com/superlistapp/super_editor/blob/57a7d72166272582cbbdedc752b6f328c0493f88/super_editor/example/lib/demos/components/demo_text_with_hint.dart#L135
Am I missing something in this reference?
Thanks for your help!

It looks like that comment needs to be updated. The ComponentBuilders don't have access to the document. Instead, a layout phase in the new presenter has access to the document.
Putting aside the documentation, does the remainder of that code demonstrate what you need for your hint support? Or is there something special about your hint support that doesn't exist in the example app?

@jhlabs any update on this?


TypeError: i18nExtract.logI18NReport is not a function

latest dependency vue-i18n-extract doesn't have logI18NReport . Running i18n:report will cause error:
ERROR  TypeError: i18nExtract.logI18NReport is not a function
this can be fixed using npm install<EMAIL_ADDRESS>specific 1.0.2 version not the latest one.
Need changes to support latest version vue-i18n-extract.

I have the same issue. Installed with vue add i18n with Vue 3 cli.
it creates this command automatically in package.json
"i18n:report": "vue-cli-service i18n:report --src \"./src/**/*.?(js|vue)\" --locales \"./src/locales/**/*.json\"",

when trying to run this command, this error happens.
TypeError: i18nExtract.logI18NReport is not a function
What should be done additionally to make it work?

I'm facing the same issue as well. Is there any update we should make to fix the issue?

2.2.0 is no error
npm i<EMAIL_ADDRESS>

2.3.1 works too. It's the vue-i18n-extract upgrade that causing this.


PythonFBX SDK version

I cannot find the PythonFBX SDK version for Python 3. Does anybody have a clue on where I can find it? I can only find the version for Python 2.7

Same problem.... I downloaded fbx202001_fbxpythonsdk_linux.tar.gz, but there is only python2.7 version in lib folder

https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2020-3 Here is the PythonFBX SDK for Python 3.7.


Login Bug fix

Login feature re added with bug fix, can run without data folder

add tests to your features, try to maintain a coverage of 75% +- 5%?
I think you can refer to the tests of other components in addressbook although it might take some time


docs(carbonads): setup carbon ads

This PR adds a Carbon Ad to the doc page.  I've always been 100% against advertising, so this comes with much consideration and care.
I'd like to continue to grow this project's effort and reach.  There are revisions and features that will take hours beyond my means.  My hope is to find ways to incentivize developers to contribute.  Also, I'd love to bring the community at large into guiding those efforts.  I have a few ideas for this.
To start, I'll begin by testing some ways of bringing in revenue.  This being step 1.

Codecov Report

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

@@           Coverage Diff           @@
##           master    #2664   +/-   ##
=======================================
  Coverage   99.74%   99.74%
=======================================
  Files         160      160
  Lines        2751     2751
=======================================
  Hits         2744     2744
  Misses          7        7

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 564bf8a...274ade2. Read the comment docs.


Error: No resolver found for codec "dag-json" (and dag-cbor)

OS: Windows
Version of IPFS Desktop: 0.20.5

Describe the bug
Not all codecs supported by the IPFS command-line are supported by IPFS desktop. See screenshot. It only shows dag-json but also json and some other codecs show the same error.
When making a CID using ipfs dag put someData.json --store-codec=dag-json, I get a CIDv1. Strange enough, dag-json is not in the list of ipfs cid codecs, but supported by ipfs dag put. When copying the received CID to IPFS Desktop, I get error from the screenshot that there is no resolver found for the codec.
To Reproduce
Steps to reproduce the behavior:

ipfs cid codecs
notepad someData.json and add some JSON data
ipfs dag put someData.json --store-codec=dag-json
Copy the received CID to IPFS Desktop and inspect it.
See error

Expected behavior
IPFS Desktop recognises that the CID is dag-json, so it should also view information about the content.
Screenshots

Additional context
None.

@hacdias mind taking a look if we can add support for dag-json (and dag-cbor) CIDs?

We won't be able to open them  as filesystem, so "Browse" should be inactive for them, or open the same view as "Inspect" (ipld-explorer)

@lidel just before I tackle this, isn't the fact that IPLD Explorer still uses the old microformats packages a blocker? And updating that is, in turn, blocked by migrating Web UI to the newer IPFS JS HTTP API version? Because the @ipld/js-dag-json should be incompatible with the old versions.
Refs:

https://github.com/ipfs/ipfs-webui/pull/1840
https://github.com/ipfs/ipfs-webui/issues/1798#issuecomment-910930951
https://github.com/ipfs/ipld-explorer-components/issues/311#issuecomment-1094370144

If so, I may not have time to address this because of how large the scope can be at the moment.

@hacdias

IPLD Explorer does everything in userland – it will fetch block via ipfs.block.get and then parses it locally using own libs

due to this, I believe it is not blocked by js-ipfs-http-client upgrade –  I made it compatible with modern block.get in https://github.com/ipfs/ipld-explorer-components/commit/a9e86f491d0f377c88c6e3f4fa6ff99d15df0852

https://github.com/ipfs/ipld-explorer-components/pull/313 added modern multiformats as a dependency, so you should be able to use modern codes –  detect dag-json and dag-cbor codec in CIDv1, and special-case its parsing using the new libraries.

@lidel here's a PR to add support for dag-json: https://github.com/ipfs/ipld-explorer-components/pull/319
dag-cbor is supposed to be working already. As you can see, I used this converter to make the new package be compatible with the old ipld. If there are other formats to be supported, or even if you want the old formats updated to the new packages, I can take care of that using the converter.

@lidel so I've been trying to tackle that and I've been running into this two issues:

We cannot use ipfs.dag.import on the tests because we don't have an enough updated version of the HTTP API (cc #1838)
ipfs.dag.put is failing with HTTPError: Invalid byte while expecting start of value: 0xa2 which may be caused by mistach of go ipfs version and the HTTP client (see #3914).

I have been trying to find a workaround, without success. Any suggestions?

This was fixed upstream, and works in the latest webui:

JSON / CBOR saga continues in: https://github.com/ipfs/kubo/pull/9335


feat(tizen-remote): use per-host token storage

BREAKING CHANGE: Uses a new scheme for token storage. Instead of a single JSON file, we use one file per device.  This will break existing token stores.  Also, the name option of the TizenRemote constructor is no longer recognized.
This replaces the bespoke token cache with the @appium/strongbox package.  As such, it mitigates the need for lockfiles.

The build should fail until appium/appium#18480 is merged and released.

Current dependencies on/for this PR:

main

PR #357

PR #366   👈

This comment was auto-generated by Graphite.


Car/Camera view is freezed - It doesn't move - Timeout for client answer

Hi,
Thanks for your package.
I am trying to use it for RL and DNN but having problem with making it work. Basically my problem is that it kind of freezes. I tried to run the 'example_experiment.py' as well but the same thing happens, it runs TORCS environment and progresses until it starts the race but after that the car does't move or in another word camera view does now changes (it slowly, very slow, moves toward left but not forward). I am not sure where is the problem. I was trying to test it with python 2.x and 3.x and the following is the result:
--- with python2
amir-ai@Amir:~/gym_torcs$ python example_experiment.py
Fuel consumption disabled!
Car damages disabled!
Laptime limit disabled!
Image generation is ON!
Visual Properties Report
Compatibility mode, properties unknown.
TORCS Experiment Start.
Episode : 0
Waiting for server on 3101............
Count Down : 5
Waiting for server on 3101............
Count Down : 4
Waiting for server on 3101............
Count Down : 3
Waiting for server on 3101............
Count Down : 2
Waiting for server on 3101............
Count Down : 1
Waiting for server on 3101............
Count Down : 0
Waiting for server on 3101............
Count Down : -1
relaunch torcs
Fuel consumption disabled!
Car damages disabled!
Laptime limit disabled!
Image generation is ON!
Visual Properties Report
Compatibility mode, properties unknown.
Waiting for server on 3101............
Count Down : 4
Waiting for server on 3101............
Count Down : 3
Waiting for server on 3101............
Count Down : 2
Waiting for request on port 3101
Waiting for server on 3101............
Count Down : 1
Received from server: identified
Client connected on 3101..............
OpenAL backend info:
Vendor: OpenAL Community
Renderer: OpenAL Soft
Version: 1.1 ALSOFT 1.14
Available sources: 256
Available buffers: 1024 or more
Dynamic Sources: requested: 235, created: 235
#static sources: 21
#dyn sources   : 235
gfParmSetStr: fopen (config/graph.xml, "wb") failed
sw 64 - sh 64 - vw 64 - vh 64 - imgsize 12288
Traceback (most recent call last):
File "example_experiment.py", line 24, in
ob = env.reset(relaunch=True)
File "/home/amir-ai/gym_torcs/gym_torcs.py", line 192, in reset
self.observation = self.make_observaton(obs)
File "/home/amir-ai/gym_torcs/gym_torcs.py", line 275, in make_observaton
image_rgb = self.obs_vision_to_image_rgb(raw_obs[names[8]])
File "/home/amir-ai/gym_torcs/gym_torcs.py", line 232, in obs_vision_to_image_rgb
r = image_vec[0:len(image_vec):3]
TypeError: object of type 'float' has no len()
amir-ai@Amir:~/gym_torcs$ Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
AL lib: ReleaseALC: 1 device not closed
^C
--- with python3
amir-ai@Amir:~/gym_torcs$ python3 example_experiment.py
/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_gtk3agg.py:18: UserWarning: The Gtk3Agg backend is known to not work on Python 3.x with pycairo. Try installing cairocffi.
"The Gtk3Agg backend is known to not work on Python 3.x with pycairo. "
Fuel consumption disabled!
Car damages disabled!
Laptime limit disabled!
Image generation is ON!
Visual Properties Report
Compatibility mode, properties unknown.
Waiting for request on port 3101
TORCS Experiment Start.
Episode : 0
Received from server: b'identified\x00'
Traceback (most recent call last):
File "example_experiment.py", line 24, in
ob = env.reset(relaunch=True)
File "/home/amir-ai/gym_torcs/gym_torcs.py", line 185, in reset
self.client = snakeoil3.Client(p=3101, vision=self.vision)  # Open new UDP in vtorcs
File "/home/amir-ai/gym_torcs/snakeoil3_gym.py", line 143, in init
self.setup_connection()
File "/home/amir-ai/gym_torcs/snakeoil3_gym.py", line 191, in setup_connection
if identify in sockdata:
TypeError: 'str' does not support the buffer interface
OpenAL backend info:
Vendor: OpenAL Community
Renderer: OpenAL Soft
Version: 1.1 ALSOFT 1.14
Available sources: 256
Available buffers: 1024 or more
Dynamic Sources: requested: 235, created: 235
#static sources: 21
#dyn sources   : 235
gfParmSetStr: fopen (config/graph.xml, "wb") failed
sw 64 - sh 64 - vw 64 - vh 64 - imgsize 12288
amir-ai@Amir-SASLAB:~/gym_torcs$ Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer
Timeout for client answer

Thanks,

Before running the ddpy.py try this:

sudo torcs
then go to   Race -> Quick Race -> Configure Race -> Accept
Then make sure that src_server1 has been selected and put focus on it

Then click on Accept and exit the game.... now run  python ddpy.py or your own work.
Does it work?

Thanks for the answer.
But I am just wondering if I mentioned about 'ddpy.py'?
After all, it was a problem with 'gym_torcs.py' code (kind of settings in the code).

@AmirCognitive How did you fix that? I got into the same issue

What setting did you change in gym_torcs?

Did someone figure it out? I have the same issue

Hey!
Any update on this issue?
I keep on having the error:
gfParmSetStr: fopen (config/graph.xml, "wb") failed
sw 64 - sh 64 - vw 64 - vh 64 - imgsize 12288

and then:
Timeout for client answer
Timeout for client answer

and the game restarts and so on and so forth..

@smasoudn  HI,I also have this problem,when I run ddpg.py.The terminal output 'Timeout for client answer'.Do you know how to solve it?Thanks!

@gchhor HI.Did you have solved this error?I also have this error?Can you help me?Thanks!

@Amir-Ramezani  HI.Do you solved this problem?I also has this issu recently.Can you help me?Thanks!


File organization

I would like to move source files into a src directory, the setack.py script into a bin directory and libset.py and libmath.py into a lib directory inside of src.
bin/setack.py
src/...
src/lib/libset.py
src/lib/libmath.py

After talking with @pscohn we realized that having a bin and src directory is not very Pythonic so we opted to just organize from the top level. I've put libmath.py and libset.py into a folder called library.


Empty strings showing up oddly in sketch summaries

Observed Behavior:
The Most frequent items table printed by SArray.sketch_summary() for a string-type SArray will include an odd column name (Xn) if one of the values is an empty string. The reason is probably that it couldn’t use an empty string for a column name when unpacking the freq_count, but this is very confusing.

import turicreate as tc;tc.SArray(["a", "b", ""]).sketch_summary()
+------------------+-------+----------+
|       item       | value | is exact |
+------------------+-------+----------+
|      Length      |   3   |   Yes    |
| # Missing Values |   0   |   Yes    |
| # unique values  |   3   |    No    |
+------------------+-------+----------+

Most frequent items:
+-------+---+----+---+
| value | a | X3 | b |
+-------+---+----+---+
| count | 1 | 1  | 1 |
+-------+---+----+---+
Expected Behavior:
Use some sense-making name for an empty string. Usually an empty string means something as bad as a None so it deserves special treatment. Definitely don’t output X6, X7… etc as it confuses users.
Steps To Reproduce:
import turicreate as tc;tc.SArray(["a", "b", ""]).sketch_summary()

This should be printed differently. Column names shouldn't be used to represent values; we should have something more like:
Value | Count
""       |  1
"a"     |  1
"b"     |  1


Restrict external function callable scope

On Solc, external functions can exclusively be called outside a contract. In order for use to accomplish #1251, we need to restrict their scope to can declare and organize the accounts the function needs.

Sorry, just noticed this PR was still marked draft. Please ignore me.

Your change made fewer solc semantic tests pass.

There was a mistake in the error condition. After that I've fixed it, the number of failing tests decreased :)


Update gke/anthos.md

/assign @joeliedtke

/lgtm
/approve
Thank you Yuan for directing user interest to a single location!

/lgtm
/approve


soroban-rpc: Use Rust to obtain preflights

Migrated from https://github.com/stellar/go/pull/4692

@2opremio could you hold off merging this PR until after the coming release ? The features here aren't required for this release, so I think we could reduce the surface-area for potential bugs by holding this for another week.

@2opremio could you hold off merging this PR until after the coming release ? The features here aren't required for this release, so I think we could reduce the surface-area for potential bugs by holding this for another week.

We can't merge as is anyways, since the PR is missing a way to supply the Rust preflight library with ledger entries.

unrelated tests don't work on windows because MSVC fails to build the rust library (which I am not even sure why it's attempted)
I will keep looking into this

Soroban Tools e2e / System tests is failing due to https://github.com/stellar/system-test/pull/18 (CC @sreuland )

@leighmcculloch I have removed all unwraps where I thought was reasonable. PTAL


Agl/language of consulting UI

API PR: https://github.com/SeedCompany/cord-api-v3/pull/2983

API PR: https://github.com/SeedCompany/cord-api-v3/pull/2983

This lived to the end of its lifetime and died


Return all attributes by default

Currently documentation contains this text:
Optional Parameters / Extended Functionality
attributes - attributes to select and return (if these are set, the server will return only these attributes). Defaults to the empty set, which means all attributes.
This is misleading. Because really only predefined inside library attributes would be returned.
In other part of docs we see:
Attributes
By default, the following attributes are returned for users and groups:
user - distinguishedName, userPrincipalName, sAMAccountName, mail, lockoutTime, whenCreated, pwdLastSet, userAccountControl, employeeID, sn, givenName, initials, cn, displayName, comment, description
This is true. But to my sorrow this means - there is no real way to get all available attrs from ldapjs.
I suggest to make available to send empty attrs list to ldapjs to get really full set of existing attrs from AD.

I suggest following changes

default attributes list - this should be set to empty list, or suggested as recommended list
currently cn, dn, objectCategory are added to attributes list - this should be added only if attrs list is not empty

The early version of the library supported that but was accidentally dropped over time as people needed the ability to pass in custom attributes per query.
Please pull / test latest version from git. If this solves your problem, let me know and I will push a new version.
Note: All of my unit/integration tests are passing. If you still have an error condition, please submit a unit test to replicate the problem.

I suggest following changes

default attributes list - this should be set to empty list, or suggested as recommended list

No. You can override the default list of attributes in your configuration object if you prefer "everything". The more attributes included in queries, the more overhead over the network and in processing, memory utilization, etc.
You can set it now to an empty array, or specify an array with a wildcard.
var opts = {
  // attributes: [ ]
  attributes: [ '*' ]
}

currently cn, dn, objectCategory are added to attributes list - this should be added only if attrs list is not empty

These attributes have to be added in order to be able to do group queries (i.e. includeMembership). In the past, users have specified their own simple / short list attributes for a find() operation but wanted group membership included. Those attributes supplied by the user omitted the attributes necessary to chase groups. The code was updated to include these by default if omitted so that membership inclusion would work as expected and users didn't have to remember that they were needed, etc. The extra attributes should be omitted in the result returned from the library.

Came here looking for this exact issue, confirmed the latest changes seem to be working for me. Thank you!

bthaase, thanks for confirming this worked.


Unable to install Linux due to only have 2GB HDD left

Raspberry Pi 4B | rpi4-openfyde | r114
I have tried a 32GB, 64GB, 512GB. USB drive stick and SSD.
Keeps saying I only have 2.2GB left.. after a fresh install no apps installed.

How do we free up the space or change the size? Partition Magic not very helpful.

Thanks in advance.

ok found the solution. Hope it helps other if face the same issue.
https://fydeos.io/docs/knowledge-base/recipes/expand-stateful-partition/


SocketClosedUnexpectedlyError: Socket closed unexpectedly

Good day!
The socket connection closes unexpectedly and doesn't reconnect, my older version of node-redis(2.8.0) was reconnecting fine and still does.
After reconnect it doesn't print ready anymore.
We are using AWS ElastiCache.
I can only reproduce this on production env.
We have a package that wraps node-redis and is used in all our apps, so I don't think is related to version difference.
I tried to comment out next code and it doesn't close the connection at all (from @socket.io/redis-adapter).
this.subClient.pSubscribe(this.channel + "*", (msg, channel) => {
    this.onmessage(null, channel, msg);
}, true);

Redis connected
Redis ready!
Redis connected
Redis ready!
fetch error Error: timeout reached while waiting for fetchSockets response
    at Timeout._onTimeout (C:\work\test-socket\node_modules\@socket.io\redis-adapter\dist\index.js:615:28)
    at listOnTimeout (node:internal/timers:568:17)
    at processTimers (node:internal/timers:510:7)
List with sockets connected to hello room: 0
List with sockets connected to hello room: 5
SocketClosedUnexpectedlyError: Socket closed unexpectedly
    at Socket.<anonymous> (C:\work\test-socket\node_modules\@node-redis\client\dist\lib\client\socket.js:195:118)
    at Object.onceWrapper (node:events:510:26)
    at Socket.emit (node:events:390:28)
    at TCP.<anonymous> (node:net:687:12)
Redis reconnecting
Redis connected
ParserError: Protocol error, got "n" as reply type byte
    at handleError (C:\work\test-socket\node_modules\redis-parser\lib\parser.js:190:15)
    at parseType (C:\work\test-socket\node_modules\redis-parser\lib\parser.js:304:14) {
  offset: 304,
  buffer: '....'

Here is where I catch the parser error:
client/socket.ts
if (this.#initiator) {
            try {
                await this.#initiator();
            } catch (err) {

List with buffers and offsets:
[{
        offset: 405,
        buffer: '{"type":"Buffer","data":[42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,52,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,114,104,122,78,49,49,74,80,98,111,113,107,54,120,78,103,80,52,100,121,71,102,106,84,120,75,86,115,121,98,88,106,107,108,56,56,45,50,66,119,76,65,112,73,99,35,13,10,36,49,53,53,13,10,147,166,119,65,102,98,82,66,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,205,5,184,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,52,104,105,115,82,111,111,109,114,104,122,78,49,49,74,80,98,111,113,107,54,120,78,103,80,52,100,121,71,102,106,84,120,75,86,115,121,98,88,106,107,108,56,56,45,50,66,119,76,65,112,73,99,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10,42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,52,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,100,76,57,116,118,98,120,51,84,118,52,114,56,87,114,109,56,83,78,89,50,71,53,110,98,80,114,97,112,85,70,116,71,50,107,74,76,116,90,45,50,66,57,105,85,35,13,10,36,49,53,51,13,10,147,166,119,65,102,98,82,66,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,110,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,52,104,105,115,82,111,111,109,100,76,57,116,118,98,120,51,84,118,52,114,56,87,114,109,56,83,78,89,50,71,53,110,98,80,114,97,112,85,70,116,71,50,107,74,76,116,90,45,50,66,57,105,85,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10,42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,50,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,120,89,112,113,90,54,101,111,89,48,107,120,90,105,81,86,113,97,111,89,90,99,69,119,121,72,50,100,70,122,78,115,108,52,82,50,114,122,111,109,85,113,107,35,13,10,36,49,53,49,13,10,147,166,119,65,102,98,82,66,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,113,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,50,104,105,115,82,111,111,109,120,89,112,113,90,54,101,111,89,48,107,120,90,105,81,86,113,97,111,89,90,99,69,119,121,72,50,100,70,122,78,115,108,52,82,50,114,122,111,109,85,113,107,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10,42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,50,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,53,111,74,87,66,49,70,85,50,108,109,86,73,54,55,70,106,68,99,83,103,71,118,121,68,48,76,66,83,90,67,83,97,67,113,103,97,69,115,86,119,120,85,35,13,10,36,49,53,50,13,10,147,166,119,65,102,98,82,66,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,204,203,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,50,104,105,115,82,111,111,109,53,111,74,87,66,49,70,85,50,108,109,86,73,54,55,70,106,68,99,83,103,71,118,121,68,48,76,66,83,90,67,83,97,67,113,103,97,69,115,86,119,120,85,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10,42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,52,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,53,85,74,71,49,53,87,110,116,103,79,88,115,116,106,115,49,45,50,66,82,66,76,106,72,102,82,68,65,109,115,122,112,98,114,82,86,82,69,102,73,50,105,53,85,35,13,10,36,49,53,52,13,10,147,166,119,65,102,98,82,66,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,204,155,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,52,104,105,115,82,111,111,109,53,85,74,71,49,53,87,110,116,103,79,88,115,116,106,115,49,45,50,66,82,66,76,106,72,102,82,68,65,109,115,122,112,98,114,82,86,82,69,102,73,50,105,53,85,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10]}'
    },
    {
        offset: 136,
        buffer: '{"type":"Buffer","data":[42,51,13,10,36,57,13,10,115,117,98,115,99,114,105,98,101,13,10,36,49,57,13,10,105,110,116,101,114,97,99,116,45,114,101,113,117,101,115,116,35,47,35,13,10,58,49,13,10,42,51,13,10,36,57,13,10,115,117,98,115,99,114,105,98,101,13,10,36,50,48,13,10,105,110,116,101,114,97,99,116,45,114,101,115,112,111,110,115,101,35,47,35,13,10,58,50,13,10,42,51,13,10,36,57,13,10,115,117,98,115,99,114,105,98,101,13,10,36,50,55,13,10,105,110,116,101,114,97,99,116,45,114,101,115,112,111,110,115,101,35,47,35,88,115,52,75,106,79,35,13,10,58,51,13,10,42,51,13,10,36,57,13,10,115,117,98,115,99,114,105,98,101,13,10,36,50,52,13,10,105,110,116,101,114,97,99,116,45,114,101,113,117,101,115,116,35,47,97,100,109,105,110,35,13,10,58,52,13,10,42,51,13,10,36,57,13,10,115,117,98,115,99,114,105,98,101,13,10,36,50,53,13,10,105,110,116,101,114,97,99,116,45,114,101,115,112,111,110,115,101,35,47,97,100,109,105,110,35,13,10,58,53,13,10,42,51,13,10,36,57,13,10,115,117,98,115,99,114,105,98,101,13,10,36,51,50,13,10,105,110,116,101,114,97,99,116,45,114,101,115,112,111,110,115,101,35,47,97,100,109,105,110,35,104,65,112,66,90,76,35,13,10,58,54,13,10,42,51,13,10,36,49,48,13,10,112,115,117,98,115,99,114,105,98,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,58,55,13,10,42,51,13,10,36,49,48,13,10,112,115,117,98,115,99,114,105,98,101,13,10,36,49,55,13,10,105,110,116,101,114,97,99,116,35,47,97,100,109,105,110,35,42,13,10,58,56,13,10]}'
    },
    {
        offset: 12,
        buffer: '{"type":"Buffer","data":[42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,56,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,90,71,86,107,121,121,84,115,98,77,84,45,50,66,111,76,53,69,104,82,106,69,121,81,78,116,48,100,69,57,99,66,52,45,50,70,54,67,90,76,113,81,113,45,50,66,117,81,119,35,13,10,36,49,53,56,13,10,147,166,119,65,102,98,82,66,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,204,131,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,56,104,105,115,82,111,111,109,90,71,86,107,121,121,84,115,98,77,84,45,50,66,111,76,53,69,104,82,106,69,121,81,78,116,48,100,69,57,99,66,52,45,50,70,54,67,90,76,113,81,113,45,50,66,117,81,119,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10]}'
    },
    {
        offset: 88,
        buffer: '{"type":"Buffer","data":[42,52,13,10,36,56,13,10,112,109,101,115,115,97,103,101,13,10,36,49,50,13,10,105,110,116,101,114,97,99,116,35,47,35,42,13,10,36,54,56,13,10,105,110,116,101,114,97,99,116,35,47,35,104,105,115,82,111,111,109,89,111,97,115,90,54,72,53,80,45,50,66,71,45,50,66,80,45,50,66,80,49,90,106,82,87,74,87,87,83,54,113,72,74,50,86,120,80,77,68,78,51,117,81,101,120,75,87,81,35,13,10,36,49,53,56,13,10,147,166,104,55,52,78,66,121,131,164,116,121,112,101,2,164,100,97,116,97,146,173,110,111,116,105,102,105,99,97,116,105,111,110,115,130,165,99,111,117,110,116,204,194,164,116,121,112,101,181,110,111,116,105,102,105,99,97,116,105,111,110,115,95,99,111,117,110,116,101,114,163,110,115,112,161,47,131,165,114,111,111,109,115,145,217,56,104,105,115,82,111,111,109,89,111,97,115,90,54,72,53,80,45,50,66,71,45,50,66,80,45,50,66,80,49,90,106,82,87,74,87,87,83,54,113,72,74,50,86,120,80,77,68,78,51,117,81,101,120,75,87,81,166,101,120,99,101,112,116,144,165,102,108,97,103,115,128,13,10]}'
    }]

Code for creating the client
const Redis = require('redis');
Redis.debug_mode = true;

const getClient = async (url) => {

    const client = Redis.createClient({
        socket: {
            host: url
            port: 6379,
        }
    });
    client.on('error', (err) => {
        console.error(err);
    });
    client.on('connect', () => {
        console.log('Redis connected');
    });
    client.on('reconnecting', () => {
        console.log('Redis reconnecting');
    });
    client.on('ready', () => {
        console.log('Redis ready!');
    });

    await client.connect();
    return client;
};

module.exports = {
    getClient,
};

Environment:

Node.js Version:  v17.3.1
Redis Server Version: 6.2
Node Redis Version: 4.0.3
Platform: Ubuntu and Windows 10

After disconnect/reconnect it stops receiving messages. With the older version of node-redis it was reconnecting without any problems. I added some code to print the parser error.
const { getClient } = require('./libs/redis');
const { redisUrl, key } = require('./config');

const start = async () => {
    const client = await getClient(redisUrl);
    client.pSubscribe(key + '#/#*', (msg, channel) => {
        onmessage();
    }, true);
    client.pSubscribe( key + '#/admin#*', (msg, channel) => {
        onmessage();
    }, true);
};

start().catch(err => console.log(err));

let x = 0;
const onmessage = (channel, msg) => {
    x++;
};

setInterval(() => {console.log(`Got ${x} messages!`)}, 5000);

const Redis = require('redis');

const onRedisError = (err) => {console.error(err)};
const onRedisConnect = () => {console.log('Redis connected')};
const onRedisReconnecting = () => {console.log('Redis reconnecting')};
const onRedisReady = () => {console.log('Redis ready!')};

const getClient = async (url) => {
    const client = Redis.createClient({
        socket: {
            host: url.replace('redis://', '').replace(':6379', ''),
            port: 6379,
        }
    });
    client.on('error', onRedisError);
    client.on('connect', onRedisConnect);
    client.on('reconnecting', onRedisReconnecting);
    client.on('ready', onRedisReady);

    await client.connect();
    return client;
};

module.exports = {
    getClient,
};

Output:
Redis connected
Redis ready!
Got 261 messages!
Got 1751 messages!
Got 3573 messages!
Got 5616 messages!
Got 8532 messages!
Got 9348 messages!
Got 9623 messages!
Got 10069 messages!
Got 11630 messages!
Got 11828 messages!
Got 12844 messages!
Got 14737 messages!
SocketClosedUnexpectedlyError: Socket closed unexpectedly
    at Socket.<anonymous> (C:\work\test-socket\node_modules\@node-redis\client\dist\lib\client\socket.js:196:118)
    at Object.onceWrapper (node:events:510:26)
    at Socket.emit (node:events:390:28)
    at TCP.<anonymous> (node:net:687:12)
Redis reconnecting
Redis connected
ParserError: Protocol error, got "e" as reply type byte
    at handleError (C:\work\test-socket\node_modules\redis-parser\lib\parser.js:190:15)
    at parseType (C:\work\test-socket\node_modules\redis-parser\lib\parser.js:304:14) {
  offset: 358,
  buffer: '{"type":"Buffer","data":[42,52,13,10,36,56,13,10,112,109,101,11.......
}
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!
Got 16116 messages!

We are currently stuck with v3 for months now because this issue seems to be still unresolved with v4.

@rpong Could you please update the tentative ETA for this issue as it is a blocker for v4?

@rpong Could you please update the tentative ETA for this issue as it is a blocker for v4?

Hi @erajanraja24, @leibale would be the best person to ask, I am not part of the team..

This code does not reproduce the issue (I'm running docker restart while the code is running)
import { createClient } from '@node-redis/client';

async function client() {
    const client = createClient();

    client.on('error', err => console.error('client error', err));
    client.on('connect', () => console.log('client is connect'));
    client.on('reconnecting', () => console.log('client is reconnecting'));
    client.on('ready', () => console.log('client is ready'));

    await client.connect();

    return client;
}

const [subscriber, publisher] = await Promise.all([
    client(),
    client()
]);

let counter = 0;
subscriber.pSubscribe('*', () => counter++, true);
setInterval(() => console.log(`Got ${counter} messages!`), 1000);

setInterval(async () => {
    try {
        await publisher.publish('channel', 'message');
    } catch (err) {
        console.error('publish error', err);
    }
}, 5);

client error Error: connect ECONNREFUSED <IP_ADDRESS>:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1146:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 6379
}
client is reconnecting
client is reconnecting
client is connect
client is connect
client is ready
Got 484 messages!
Got 484 messages!
client is ready
Got 677 messages!
Got 868 messages!

just tested 4.1.0, and reconnect still doesn't work like it used to in V3.

https://github.com/redis/node-redis/issues/1985#issuecomment-1116865925

    client.on('error', err => console.error('client error', err));
    client.on('connect', () => console.log('client is connect'));
    client.on('reconnecting', () => console.log('client is reconnecting'));
    client.on('ready', () => console.log('client is ready'));

Thanks @leibale , i have discovered that this IS working if we do following before the "await client.connect();"
client.on('error', err => console.log('client error', err));
client.on('connect', () => console.log('client is connect'));
client.on('reconnecting', () => console.log('client is reconnecting'));
client.on('ready', () => console.log('client is ready'));

but without the above, it doesn't reconnect like v3 does. We can upgrade now and just pass debug info for the above, but would like to confirm if this is the intended behavior.

client.on('error') was required in v3 as well (see https://nodejs.org/api/events.html#error-events)

https://nodejs.org/api/events.html#error-events

In our case, we did not have this at all for v3 but reconnecting was working.
Thank you for the info, we can finally upgrade to v4 after many months.

I can confirm that the code above that leibale provided fixes the issue! My issue in particular was that I had deployed my app using Redis to Heroku and upon the socket closing unexpectedly, the Heroku-deployed app would crash until I redeployed it. The problem was driving me nuts and this was the only solution on the web that helped.

@leibale , The issue persists in v4 and yes it does reconnect. but is there any particular reason why is it crashing unexpectedly?
yes we do have load-balancer and proxies like gateway and Nginx

I should add I was getting the ready event in dev testing if I just stopped/started redis. It seems to still be a problem for whatever is happening when the socket closes unexpectedly. (In my case via an AWS Elasticache.

I believe I'm experiencing this issue on 4.2.0.  I set my event listeners like this:
  client.on('error', err => log.error(`Redis error: ${err}`));
  client.on('reconnecting', params => log.info(`Redis reconnecting, attempt ${params.attempt}`));
  client.on('connect', () => log.info('Redis connected'));
  client.on('ready', () => log.info('Redis ready'));
  client.on('end', () => log.info('Redis connection closed'));

When it starts up, I see this in the log:
INFO redis: Redis connected
INFO redis: Redis ready

After a while, it disconnects.  I'm using Heroku's Redis server, which seems to drop connections after a few minutes, I think in an attempt to clean up stale connections.  Before upgrading from 3.x.x, it would reconnect seamlessly.  Now, all I see is this:
ERROR redis: Redis error: Error: Socket closed unexpectedly

No reconnect, no ready.  I have to restart my Node process to get it working again.  Can you offer any advice?

I think I have discovered the cause of my problem.  I was expecting a params object to be passed to my reconnect event handler, but this was apparently removed in v4.  Since my handler was now accessing an undefined property, it was throwing an error at runtime.  This error was silently swallowed, but still prevented the reconnection.  Could you please log errors of this nature, and still continue with the reconnect?  No doubt it will help others in the future who face a similar problem.

@ryanmeador can you please open a new issue with reproduction?

Hi, I got this same issue on heroku and I changed to the latest version(4.2.0), and still got the same issue after some minutes.

@CaCaBlocker there are so many things that can cause this error (and most of them has nothing to-do with the client it-self), for example there is some kind of a proxy/load balancer in between the redis-server and the node server that causes this problem, or that the event loop was blocked for too long, and some more options that I can't remember right now..
Without a reproduction I won't be able to debug and hopefully solve it.

For anyone still having this issue, I can confirm that adding this code resolved the issue for us.
    client.on('error', err => console.error('client error', err));
    client.on('connect', () => console.log('client is connect'));
    client.on('reconnecting', () => console.log('client is reconnecting'));
    client.on('ready', () => console.log('client is ready'));

But I also had to make sure that I had removed any other client error listeners that were re-throwing the error (or any other error).

also  you need to add listeners to publishers and subscribers

I cannot confirm that this issue is fixed:
    const client = createClient({
      url: configService.get('SCROLLS_TX_REDIS_URL'),
      socket: {
        reconnectStrategy: (retries) => {
          console.log('RETRYING');
          return Math.min(retries * 100, 1000);
        },
        connectTimeout: configService.get('REDIS_CONNECT_TIMEOUT'),
      },
    });
    await client.connect();

Randomly disconnects and never logs RETRYING.

@flashtheman where is your redis server hosted? what version of node-redis are you using?

@leibale
Seeing the same on a managed redis db on digitalocean after upgrading.
Redis 6
node-redis: 4.5.1

Same issue here. Just installed, worked for a while and suddenly started conecting, disconncting and reconnecting without being able to do nothing.

@Nekidev @ahmedalmulki when this error occurs it's probably because:

some proxies close idle connections, see this comment
if the number of clients is bigger than CONFIG GET maxclients, the server will close some clients. you can check that using INFO CLIENTS.

fwiw my issue was not that the connection was closing, it was that the reconnection wasn't finishing. That seems like what a lot of people are reporting, contra this issue title, the original issue was "After reconnect it doesn't print ready anymore." which is what I was seeing. I don't think we can avoid connections closing for various reasons some time, but recovering from those closed connections is what still has me on the old version.

@derikb I've tried to stop and start the server process and to use the CLIENT KILL command, in both cases the client recovers. If you can help me reproduce the issue it'll be awsome :)

@leibale yeah that's the issue I had (see further up the thread https://github.com/redis/node-redis/issues/2032#issuecomment-1128975739 ). Manually stopping redis didn't trigger it. I couldn't figure out how to trigger it in dev, but it happened a few times in production (with AWS ElasticCache is was nigh impossible to figure out what had caused it). It was always that the ready event just wouldn't get triggered across any of the connections... just  the unexpected close error, the reconnecting, the connect... then nothing.

@derikb your comment is before this comment, so maybe the problem you faced is already fixed?

@leibale I don't think so. I wasn't expecting or using any args on the reconnect handler. I was just logging that the event happened. And that log entry was getting logged.

@derikb maybe the changes in #2295 fixed it? if you have a staging server that you can test it on it'll be very helpful :)

@leibale any ideas on how I get redis to unexpectedly close that isn't just a stop/start? I tried that and it would not recreate the original issue. I assume cause the stop process closes connections in an orderly way

@leibale
Seeing the same on a managed redis db on digitalocean after upgrading.
Redis 6 node-redis: 4.5.1

same, using redis db on digitalocean
How to fixe?

@fabioselau077 https://www.digitalocean.com/community/questions/idle-redis-connection-reconnects-every-five-minutes
try to enable pingInterval and set it to less than 5 minutes (4 * 60 * 1000  should do it)

@fabioselau077
using redis db on digitalocean try to set TLS to true
see https://github.com/redis/node-redis/blob/master/docs/client-configuration.md#TLS

Hi, I got this same issue on heroku and I changed to the latest version(4.2.0), and still got the same issue after some minutes.
This is my code.
import { createClient } from 'redis';
import config from 'config'

const redisUrl = config.get<string>("redisUrl");

const redisClient = createClient({
  url: redisUrl,
});

const connectRedis = async () => {
  try {
    await redisClient.connect();
    console.log('Redis client connect successfully');
    redisClient.set('try', 'Hello Welcome to Express with TypeORM');
  } catch (error) {
    console.log(error);
    setTimeout(connectRedis, 5000);
  }
};

connectRedis();

export default redisClient;

Is there a solution for this? Or maybe I rewrite the code?

@CaCaBlocker I having the same issue from Redis hosted in Heroku. Did you get any solution or workaround for this?

@HenonoaH  try to add listeners to all available events like ready reconnect error etc.

Changing to redis-server version 6 on Ubuntu and Nodejs Redis 4.6.6 it works fine.
NestJS example:
import { Module } from '@nestjs/common';
import { createClient } from 'redis';
import { ConfigService } from '@nestjs/config';
@Module({
providers: [
{
inject: [ConfigService],
provide: 'REDIS_CLIENT',
useFactory: async (configService: ConfigService) => {
const redisCli = createClient({
url: redis://${configService.get('REDIS_USER')}:${configService.get('REDIS_PASSWORD')}@${configService.get('REDIS_HOST')}:${configService.get('REDIS_PORT')},
});
    redisCli.on('connect', () => {
      console.log('Connected to Redis');
    });

    redisCli.on('error', (err) => {
      console.log(err.message);
    });

    redisCli.on('ready', () => {
      console.log('Redis is ready');
    });

    redisCli.on('reconnecting', () => {
      console.log('client is reconnecting')
    });

    redisCli.on('end', () => {
      console.log('Redis connection ended');
    })

    process.on('SIGINT', () => {
      redisCli.quit();
    });

    return redisCli;
  }
}

],
exports: ['REDIS_CLIENT'],
})
export class RedisCliModule {}

@fabioselau077 @jorenvandeweyer https://www.digitalocean.com/community/questions/idle-redis-connection-reconnects-every-five-minutes try to set pingInterval to a value lower than 5 minutes (4 * 60 * 1000 should do it)

Hi @leibale, I'm using ioredis and i don't see pingInterval option. How can i solve it with ioredis? Thanks.

@hieuhuynhh a simple setInterval should fix it:
const timer = setInterval(async () => {
  try {
    await client.ping();
  } catch (err) {
    console.error('Ping Interval Error', err);
  }
}, 1000 * 60 * 4);

// make sure to `clearInterval` when you close the client
clearInterval(timer);
client.disconnect();

Although documentation mentions setting handler for error event, it is not clear that this is actually needed to have this issue fixed. There weren’t any errors of this kind in v3.
Is there a reason why this happens in v4? Can we somehow check for that error inside error handler besides it’s message content? There isn’t any error code for that, and instanceof check is not inituitive since errors modules is not exposed publicly.

@niksy https://github.com/redis/node-redis#events
":warning: You MUST listen to error events. If a client doesn't have at least one error listener registered and an error occurs, that error will be thrown and the Node.js process will exit. See the EventEmitter docs for more details."

@niksy https://github.com/redis/node-redis/issues/1993#issuecomment-1558774230

changing from socket connection to url solved the issue on local machine connecting to docker container

not sure if related but I'm getting similar errors. All event listeners are configured. Application is a nestjs server talking to memorystore redis in GCP (idle connections are not automatically closed).
client initially connects -> socket gets closed -> client tries reconnecting -> uncaught exception occurs for socket closing
 async connectToRedis(): Promise<void>{
    try{
      const pubClient = createClient({
          socket: {
                host: process.env.REDIS_HOST,
                port: Number(process.env.REDIS_PORT)
         },
      });

      const subClient = pubClient.duplicate();

      pubClient.on('error', (error) => {
        console.error('pubClient redis error:', error);
      });
      pubClient.on('connect', () => console.log('pubClient redis is connected'));
      pubClient.on('reconnecting', () => console.log('pubClient redis is reconnecting'));
      pubClient.on('ready', () => console.log('pubClient redis is ready'));

      subClient.on('error', (error) => {
        console.error('subClient redis error:', error);
      });
      subClient.on('connect', () => console.log('subClient redis is connected'));
      subClient.on('reconnecting', () => console.log('subClient redis is reconnecting'));
      subClient.on('ready', () => console.log('subClient redis is ready'));

      await pubClient.connect()
      await subClient.connect()

      // await redisClient.connect();

      this.adapterConstructor = createAdapter(pubClient, subClient);
    } catch(err){
      console.log(err)
    }

  }

@djdabs try this: https://github.com/redis/node-redis/issues/2443#issuecomment-1573393354

@djdabs try this: #2443 (comment)

Still getting a triggerUncaugthException on reconnect but I'm now getting a different error.
Error: write EPIPE
    at afterWriteDispatched (node:internal/stream_base_commons:160:15)
    at writeGeneric (node:internal/stream_base_commons:151:3)
    at Socket._writeGeneric (node:net:930:11)
    at Socket._write (node:net:942:8)
    at doWrite (node:internal/streams/writable:411:12)
    at clearBuffer (node:internal/streams/writable:572:7)
    at Writable.uncork (node:internal/streams/writable:351:7)
    at Immediate._onImmediate (/usr/src/app/node_modules/@redis/client/dist/lib/client/socket.js:84:69)
    at process.processImmediate (node:internal/timers:476:21) {

resolved my issue.. after switching to ioredis the error message got more specific and I was able to track down the underlying problem (redis required TLS). Disabled TLS on memorystore and it was able to work now.
redis error: ParserError: Protocol error, got "\u0015" as reply type byte. Please report this

Are there any updates on this issue? I'm currently facing the same problem while using a Redis instance served by Digital Ocean. TLS is in place and the job is listening on "error" - each time the issue occurs, I reset the connection. I don't know if it is the best solution but it kind of works even if it throws the error every five minutes.
In the previous comments, there is a suggestion that pings the server. Do you think that is the best way to handle it at the moment? Or should we wait the patch?

@stefanodecillis You can just use pingInterval since #2524 is fixed in version<EMAIL_ADDRESS>

Getting the same error at v4.6.12
`const redis = require('redis');
require('dotenv').config();
const client = redis.createClient({
url: process.env.KV_URL
});
(async () => {
await client.connect();
})();
client.on('connect', () => {
console.log('Connected to Redis');
});
client.on('error', (err) => {
console.error(Redis Error: ${err});
});
client.on('reconnecting', () => console.log('client is reconnecting'));
client.on('ready', () => console.log('client is ready'));
module.exports = client;`
This is the error im gettting

We are experiencing the same issue. We're listening error events explicitly...our connection logic is below:
export const createRedisClient = (options: RedisClientOptions) => {
    const client = createClient(options);
    client.on('error', async error => {
        console.error(`Redis client error : ${error}`);
        Sentry.captureException(error); // Capture the error with Sentry

        if (
            error.code === 'ECONNRESET' ||
            error.code === 'EPIPE' ||
            error.code === 'ECONNREFUSED'
        ) {
            // Disconnect before attempting to reconnect
            await client.disconnect();

            client.connect().catch(err => {
                console.error(`Failed to reconnect redis client: ${err}`);
                Sentry.captureException(err); // Capture the reconnection error with Sentry
            });
        }
    });
    client.connect().catch(err => {
        console.error(`Failed to connect redis client: ${err}`);
        Sentry.captureException(err); // Capture the reconnection error with Sentry
    });
    return client;
};

The error message indicates that Redis is running in protected mode due to enabled protected mode and the absence of a password for the default user. In this mode, connections are only accepted from the loopback interface. To enable connections from external computers, you can choose one of the following solutions:
Disable protected mode by executing the command: 'CONFIG SET protected-mode no'.


Fixing enviroment paths GOPATH and GOROOT

I was working in my appengine app when a client ask me to make it work in situ, I try appscale with go and I find a problem with the imports and file the issue 1716 (https://github.com/AppScale/appscale/issues/1716)
With a few days of experimentation I find this little error maybe in a copy paste of the path's common error and really hard to find.
Now it works as a charm with my apps. But no with the app suggested in the contribute page ( github.com/mjibson/goread ) because it uses a library from golang ( transform ) where I have finded an other error. That I am working on right now.
The problem was the confusion of the assignation of two environment variables. Really a two lines switch.

:+1:  Good work @onlyangel

Thanks @nlake44  =D. There is other issue that I'm not sure to be able to help, just let me document it better. Any way @obino already tell me that you have identified it and are workign arround it.

What's the other issue?

It's a problem running appscale over docker.


rate of change / customizeable parsers

I have a question regarding intended scope and extensibility of plot.
Rate of Change
the example script for plotting tx/rx counters is but one example of this
Plotting counters of various types is a common activity that I see myself using plot for. However, it currently doesn't provide the ability to handle rate of change - the burden of calculating rate of change presently depends on some external program that usually does something like the monitor() function in the example script.
Since this seems (at least to me) like a common use case, it would be nice to add an option such as:
-r plot rate of change

which maybe does something like:
(val - old_val) /  sleep_time

to get a unit of "counters per second"
Generic Parsing
Presently plot expects the input value that it receives (stdout or file) to be a number represented as a string that can be converted to a double via strtod() (input.c:39).
Many counters exposed to userspace by the linux kernel are exported as a file that is not simply a file with a number in it, but has either 1. multiple counters or 2. surrounding text. Many files exposed via /proc/ are examples of this.
It would be really nice if plot supported a generic parsing functionality for extracting numbers from text. What I have in mind is:
-p regex:parse-string|<custom parser name>

where one could pass in PCRE regex to specify an extraction or optionally a name for a parser in C that they manually write

The following is what I had in mind for a generic parser implementation:
disclaimer I haven't tested or attempted any of this, but I'd be happy to attempt an intial implementation if this would be a welcome addition to plot
this could possibly be instrumented by adding something like:
struct parser {
    char * name;
    int (*parse_function)(char*, char*);
};

then add struct parser to input in plot.h
struct input {
	char buf[INBUF];
	FILE *src;
        struct parser;
	size_t rem;
	size_t size;
};

add something to the options parsing code to look up (via the name field in struct parser) the parser from an array of function pointers and assign the parser for each input based on user args (default to a parser that doesn't do anything).
and then in input.c:read_numbers() put a temporary buffer into fread() and run in->parser->parse_function() after fread() to put the parsed output into &in->buf[in-rem]
basically the default parser (which does nothing), and the regex parser could be implemented, but additional parsers could be added so that users can add custom parsers if they want to
parser.h
int noop(char *, char *);
int regex(char *, char *);
int my_custom_parser(char *, char *);

parser.c
// default parser doesn't parse
int noop(char *in, char *out){
     out = in;
     return 0;
}

...
other parsers not included

The following is what I had in mind for a generic parser implementation:
disclaimer I haven't tested or attempted any of this, but I'd be happy to attempt an intial implementation if this would be a welcome addition to plot
this could possibly be instrumented by adding something like:
struct parser {
    char * name;
    int (*parse_function)(char*, char*);
};

then add struct parser to input in plot.h
struct input {
	char buf[INBUF];
	FILE *src;
        struct parser;
	size_t rem;
	size_t size;
};

add something to the options parsing code to look up (via the name field in struct parser) the parser from an array of function pointers and assign the parser for each input based on user args (default to a parser that doesn't do anything).
and then in input.c:read_numbers() put a temporary buffer into fread() and run in->parser->parse_function() after fread() to put the parsed output into &in->buf[in-rem]
basically the default parser (which does nothing), and the regex parser could be implemented, but additional parsers could be added so that users can add custom parsers if they want to
parser.h
int noop(char *, char *);
int regex(char *, char *);
int my_custom_parser(char *, char *);

parser.c
// default parser doesn't parse
int noop(char *in, char *out){
     out = in;
     return 0;
}

...
other parsers not included

Rate of Change

I think this is a great idea.  Definitely within the scope of plot, and it shouldn't be difficult to implement.

Generic Parsing

Overall, I really like your proposal.  After reviewing input.c I think that it should probably be mostly rewritten if we add this feature.  The code is pretty brittle as it is now.
I think that linking to a regex library is out of scope, but I understand its use.  I'm wondering what you had in mind for the mechanism that enabled user extensibility?  Would it be suckless style where you just modify the source, or is there a more user-friendly option?

Rate of Change

I think this is a great idea.  Definitely within the scope of plot, and it shouldn't be difficult to implement.

Generic Parsing

Overall, I really like your proposal.  After reviewing input.c I think that it should probably be mostly rewritten if we add this feature.  The code is pretty brittle as it is now.
I think that linking to a regex library is out of scope, but I understand its use.  I'm wondering what you had in mind for the mechanism that enabled user extensibility?  Would it be suckless style where you just modify the source, or is there a more user-friendly option?

Excellent, thanks for the feedback.
For my purposes, modifying the source (suckless style) to add custom parsers would be perfectly fine. I don't require regex support.  Additionally if anyone really does want that, this interface would allow them to add it if they need it (which keeps linking regex or other bloat out of plot's codebase).
What I was implying in my previous comment is that users could define their own parser function definition in parser.c and a function  prototype in parser.h which could be looked up (from a global array of struct parsers perhaps) for a given input file (-i) based on user request for that parser (-p parser_name).
This could be implemented a few different ways of course, but the snippets I shared above were an attempt at describing an implementation that would be minimally invasive to the existing code.  It sounds like you are willing to rewrite parts of input.c in favor of robustness, so there are likely better designs to satisfy this request.

Excellent, thanks for the feedback.
For my purposes, modifying the source (suckless style) to add custom parsers would be perfectly fine. I don't require regex support.  Additionally if anyone really does want that, this interface would allow them to add it if they need it (which keeps linking regex or other bloat out of plot's codebase).
What I was implying in my previous comment is that users could define their own parser function definition in parser.c and a function  prototype in parser.h which could be looked up (from a global array of struct parsers perhaps) for a given input file (-i) based on user request for that parser (-p parser_name).
This could be implemented a few different ways of course, but the snippets I shared above were an attempt at describing an implementation that would be minimally invasive to the existing code.  It sounds like you are willing to rewrite parts of input.c in favor of robustness, so there are likely better designs to satisfy this request.

modifying the source (suckless style) to add custom parsers would be perfectly fine

great, I think that is the best option.
After thinking about it for a bit, I realized that most "parsers" could be implemented with a grep/sed pipeline.  You could already do this easily for one input, but it gets messy fast.
Just for a test, I tried to make a plot of my cpu usage based on /proc/stat.  The simplest I could come up with was this:
while true; do
        awk 'NR==1 {v=$2+$3+$4+$7+$8+$9+$10+$11; print v/(v+$5+$6)}' /proc/stat
        sleep 0.1
done | plot -f -

It plots a graph of my overall cpu non-idle ratio, which combined with the -r option, would be a useful graph of cpu usage.
I feel like rewriting this snippet in C as a "parser" would not be very useful though, since there probably aren't very many other files (if any) I would want to handle this way.  I was wondering if you had any concrete examples of a common pattern that you would want a built-in parser for.
Another idea, though i'm not sure it is a good one, is to just accept shell command lines as arguments and run them internally with popen(3).  E.g. something like
 plot -f -p "awk 'NR==1 {v=$2+$3+$4+$7+$8+$9+$10+$11; print v/(v+$5+$6)}'" /proc/stat

Obviously there would be more to it than that, but it seems very flexible, albeit not very performant.

modifying the source (suckless style) to add custom parsers would be perfectly fine

great, I think that is the best option.
After thinking about it for a bit, I realized that most "parsers" could be implemented with a grep/sed pipeline.  You could already do this easily for one input, but it gets messy fast.
Just for a test, I tried to make a plot of my cpu usage based on /proc/stat.  The simplest I could come up with was this:
while true; do
        awk 'NR==1 {v=$2+$3+$4+$7+$8+$9+$10+$11; print v/(v+$5+$6)}' /proc/stat
        sleep 0.1
done | plot -f -

It plots a graph of my overall cpu non-idle ratio, which combined with the -r option, would be a useful graph of cpu usage.
I feel like rewriting this snippet in C as a "parser" would not be very useful though, since there probably aren't very many other files (if any) I would want to handle this way.  I was wondering if you had any concrete examples of a common pattern that you would want a built-in parser for.
Another idea, though i'm not sure it is a good one, is to just accept shell command lines as arguments and run them internally with popen(3).  E.g. something like
 plot -f -p "awk 'NR==1 {v=$2+$3+$4+$7+$8+$9+$10+$11; print v/(v+$5+$6)}'" /proc/stat

Obviously there would be more to it than that, but it seems very flexible, albeit not very performant.

Another fun one:
while true; do
        awk '/MemFree/ {memf=$2}
             /MemTotal/ {memt=$2}
             END {print (memt-memf)*100/memt}' \
                /proc/meminfo
        sleep 0.1
done | plot -f -cr -

Another fun one:
while true; do
        awk '/MemFree/ {memf=$2}
             /MemTotal/ {memt=$2}
             END {print (memt-memf)*100/memt}' \
                /proc/meminfo
        sleep 0.1
done | plot -f -cr -

As you've demonstrated, this could be implemented today by filtering w/unix cli utilities and sending output to stdin.
I have done multi-input testing by creating multiple pipes (or files), filtering values via sed/awk/grep, and specifying those pipes as input options via -i.  It isn't very elegant, and its pretty heavyweight for what really needs to be accomplished.  Hence this discussion :)
Any parsers that I imagine writing in C would likely be based on seek() and/or strtok() and would likely be pretty lightwight as a result.  Unfortunately I don't really have any use case that would be very reusable.
I would lean away from the popen() option, since with that you'll be stuck either maintaining a long running process per parser, or you have to popen() once per fread().  Both options are messy and the second option is a bit resource intensive.

As you've demonstrated, this could be implemented today by filtering w/unix cli utilities and sending output to stdin.
I have done multi-input testing by creating multiple pipes (or files), filtering values via sed/awk/grep, and specifying those pipes as input options via -i.  It isn't very elegant, and its pretty heavyweight for what really needs to be accomplished.  Hence this discussion :)
Any parsers that I imagine writing in C would likely be based on seek() and/or strtok() and would likely be pretty lightwight as a result.  Unfortunately I don't really have any use case that would be very reusable.
I would lean away from the popen() option, since with that you'll be stuck either maintaining a long running process per parser, or you have to popen() once per fread().  Both options are messy and the second option is a bit resource intensive.

I think I agree with you.  I feel like if we redesign the input system well enough this feature (and perhaps others) will basically fall into place.  I probably won't have time work on this for a bit, so go ahead if you want.

I think I agree with you.  I feel like if we redesign the input system well enough this feature (and perhaps others) will basically fall into place.  I probably won't have time work on this for a bit, so go ahead if you want.

I have some ideas for improving the input system.  I should hopefully have something in a couple of days for review.

I have some ideas for improving the input system.  I should hopefully have something in a couple of days for review.

Sorry it took awhile to merge your PR.  I didn't realize that it was only a cleanup, and not a full implementation of these features.  I guess that means this stays open for now

The recent changes for this MR broke the average feature quiet heavily.
Bounds are evaluated at giant values, and the points count is not limited either as it was.
seq 1 100 | plot -a 2
seq 1 100 | plot -a 10 -b 0:100
# seq 1 100 | plot -a 10 -b 0:100
     100.00 ┤
      95.65 ┤                                                                 ╭╮
      91.30 ┤                                                                 ││
      86.96 ┤                                                                ╭╯│
      82.61 ┤                                                                │ │
      78.26 ┤                                                                │ │
      73.91 ┤                                                               ╭╯ │
      69.57 ┤                                                               │  │
      65.22 ┤                                                              ╭╯  │
      60.87 ┤                                                              │   │
      56.52 ┤    ╭╮                                                        │   │╭╮
      52.17 ┤    ││                                                        │   │││
      47.83 ┤    ││                                                        │   │││
      43.48 ┤   ╭╯│                                                        │   ╰╯│
      39.13 ┤   │ │                                                        │     │
      34.78 ┤  ╭╯ │                                                        │     │
      30.43 ┤  │  │                                                        │     │
      26.09 ┤ ╭╯  │                                                        │     │
      21.74 ┤ │   │                                                        │     │
      17.39 ┤╭╯   │                                                        │     │
      13.04 ┤│    │                                                        │     │
       8.70 ┤│    │                                                        │     │
       4.35 ┼╯    │                                                        │     │
       0.00 ┤     ╰───────╮╭───────────────────────────────────────────────╯     ╰───────╮╭──

Thanks for noticing, I'll take a look

Ok, so I have a wip fix in #18.  After looking at the code, I decided to overhaul it, partially in preparation for the rate of change feature in this issue, but also because I wanted to add more data processing features like simple moving averages etc.

@holmanb I think this issue has become a little cluttered, so I consolidated the remaining unresolved stuff and put it in #22.  Please let me know if there is something I missed!


fixes: Remove unnecessary Option wrapping in Config.rs

Summary:
Remove unnecessary Option wrapping in Config.rs and replace it with serde::default
Issue Reference(s):
Fixes #371
/claim #371
Build & Testing:

[ ] The build is passing.
[ ] I have run ./lint.sh to address and fix linting issues.

Checklist:

[ ] I have added relevant unit & integration tests.
[ ] I have updated the documentation accordingly (if applicable).
[ ] I have performed a self-review of my own code.

The build is failing.

The build is failing.

Closed this one. Thanks for the review. I think somebody made a PR that is more intuitive.


How to add integer number in YAxis

Hi
I need set step on YAxis if i have max is 2-3 in domain, number on YAxis will be float, but i need only integer.
i need so

I did this
(max <= 5)
  ? <YAxis tickTotal={max} tickFormat={YTickFormat} />
  : <YAxis tickFormat={YTickFormat} />

if i don't do this i get float number

Is there another way to do this?

Use tickFormat to conditionally display integer values:
<YAxis>
  tickFormat={val => Math.round(val) === val ? val : ""}
/>


Publish universal wheels when uploading to pypi

This ought to work - checked that these two commands generated what I expected:
›› rm -rf dist && time python setup.py sdist &> sdist.txt && time python setup.py bdist_wheel &> bdist.txt
python setup.py sdist &> sdist.txt  1.76s user 0.38s system 99% cpu 2.154 total
python setup.py bdist_wheel &> bdist.txt  1.10s user 0.45s system 97% cpu 1.581 total
›› ls dist
pipenv-11.0.2-py2.py3-none-any.whl pipenv-11.0.2.tar.gz

and thus twine upload dist/* should be good enough. (successfully installed pipenv from the wheel too)

universal wheels mess up out distribution. I can't remember the details, but this is not an oversight.

@kennethreitz - gotcha (figured I'd just put up a PR rather than issue => PR).  Are you open to posting source-only wheels specialized to python version? (i.e., just building python 3 wheels would also be nice)

i'm def open to that

let's target building a python3 only wheel.
I really need to remember what the wheel issue was. it was a no-go, show-stopper, for sure.


validate hosting cluster

issue reference: https://issues.redhat.com/browse/ACM-4255

/assign @skeeey

/lgtm


fix(bin): babelify bin

closes #72

Import ???

... has babel

Codecov Report

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

@@          Coverage Diff          @@
##           master    #75   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          34     34
=====================================
  Hits           34     34

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 dba0b39...49ba265. Read the comment docs.


Change in app owner name breaking links

It appears as though @ahmed-taj changed their GitHub user-name to @z0al. This is causing builds to break.
@z0al if you could open a PR updating the links in https://github.com/probot/probot.github.io/blob/master/_apps/dep.md and https://github.com/probot/probot.github.io/blob/master/_apps/commitlint.md I would be very appreciative.
I don't want to change the links for your app without your permission, but if you'd grant me that permission in this issue, I'd gladly make those changes myself.

Oh my bad, didn't think of this :)

I don't want to change the links for your app without your permission, but if you'd grant me that permission in this issue, I'd gladly make those changes myself

I would appreciate it, thanks

Ok, I made the PR @hiimbex
Sorry for any inconveniences

Thanks @z0al and no worries!


Implement additional exec output format options

.. eg: csv and json

(expanding on the previous definition of this issue)
Add global -o|--output formatting options that apply to all commands:

json
csv
yaml (maybe, aws does this)
short (figure out what this means for each command)
table (prettified)

Note: csv and "short" have been requested elsewhere, so consolidating requests here.

Note: This issue has been migrated to https://relationalai.atlassian.net/browse/RAI-5004.
This link is only accessible to employees of RelationalAI.


Segfault on tf.matmul and tf.einsum with batched input tensors using intel-tensorflow-avx512

Click to expand!
Issue Type
Bug
Source
source
Tensorflow Version
tf 2.8
Custom Code
Yes
OS Platform and Distribution
SUSE Linux Enterprise Server 15 SP3, Kernel 5.3.18-59.19
Mobile device
No response
Python version
3.9.10
Bazel version
5.1.1
GCC/Compiler version
7.5.0
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Using intel-tensorflow-avx512 either compiled manually or from the official pip package source, a segmentation fault is observed on the calls tf.matmul and tf.einsum. The log output is Segmentation fault (core dumped).
After calling tf.matmul on tensors with at least one batching dimension, a consecutive call to tf.einsum causes a segfault. The same happens for tf.einsum followed by a tf.matmul.
Calling just tf.matmul or just tf.einsum does not trigger a segfault.
This crash does not appear when using a shape such as [n,n], i.e. a shape without batching dimensions.
The non-Intel tensorflow version does not result in a segfault.
The section "Standalone code to reproduce the issue" gives a minimal example. The code within # either # and # or # refers to the two possible call orders.
The section "Relevant log output" lists a backtrace of the dumped core, shortened for brevity. The backtrace was obtained using gdb.
The self-compiled intel-tensorflow-avx512 was compiled using "Intel® Optimization for TensorFlow* Installation Guide" [1].
This bug has been observed on two separate machine, running an Intel Xeon Platinum 8360Y and Intel Xeon W-2295 respectively. The second machine runs Linux Ubuntu Server 20.04.4 LTS.
[1] https://www.intel.com/content/www/us/en/developer/articles/guide/optimization-for-tensorflow-installation-guide.html
Standalone code to reproduce the issue
import tensorflow as tf

b = 1
n = 4

shape = [b,n,n]

# either #
print(f"Einsum A*B: {tf.einsum('...ij, ...jk -> ...ik', tf.random.normal(shape), tf.random.normal(shape)).shape}")
print(f"Matmul A*B: {tf.matmul(tf.random.normal(shape), tf.random.normal(shape)).shape}") # <-- crash

# or #
print(f"Matmul A*B: {tf.matmul(tf.random.normal(shape), tf.random.normal(shape)).shape}")
print(f"Einsum A*B: {tf.einsum('...ij, ...jk -> ...ik', tf.random.normal(shape), tf.random.normal(shape)).shape}")  # <-- crash

Relevant log output
(gdb) r </path/to/script.py>
Starting program: <path/to/python3> </path/to/script.py>
[...]

Einsum A*B: (1, 4, 4)

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x0000000002edf9c0 in ?? ()
(gdb) bt
#0  0x0000000002edf9c0 in ?? ()
#1  0x00007f2b36ffa0f1 in tensorflow::CreateStream(tensorflow::MklDnnThreadPool*, dnnl::engine const&) [clone .isra.370] ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#2  0x00007f2b37003010 in tensorflow::BatchMatMulMkl<Eigen::ThreadPoolDevice, float, float, float, true>::Compute(tensorflow::OpKernelContext*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#3  0x00007f2b2cff5644 in tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) ()
   from [...]/site-packages/tensorflow/python/../libtensorflow_framework.so.2
#4  0x00007f2b38da8dff in tensorflow::KernelAndDeviceOp::Run([...]) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#5  0x00007f2b32c5c30c in tensorflow::EagerKernelExecute([...]) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#6  0x00007f2b32c5d1a1 in tensorflow::ExecuteNode::Run() ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#7  0x00007f2b39232e8a in tensorflow::EagerExecutor::SyncExecute(tensorflow::EagerNode*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#8  0x00007f2b32c57e10 in tensorflow::(anonymous namespace)::EagerLocalExecute(tensorflow::EagerOperation*, tensorflow::TensorHandle**, int*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#9  0x00007f2b32c58439 in tensorflow::EagerExecute(tensorflow::EagerOperation*, tensorflow::TensorHandle**, int*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#10 0x00007f2b328d4319 in tensorflow::EagerOperation::Execute(absl::lts_20210324::Span<tensorflow::AbstractTensorHandle*>, int*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#11 0x00007f2b38db8a29 in tensorflow::CustomDeviceOpHandler::Execute([...]) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#12 0x00007f2b325e783d in TFE_Execute ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#13 0x00007f2b32170bfb in TFE_Py_FastPathExecute_C(_object*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so
#14 0x00007f2b2829ba05 in pybind11::cpp_function::initialize<[...]>[...] ()
   from [...]/site-packages/tensorflow/python/_pywrap_tfe.so
#15 0x00007f2b282c0bb0 in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) ()
   from [...]/site-packages/tensorflow/python/_pywrap_tfe.so
#16 0x00000000005f3989 in PyCFunction_Call ()

[...]

#62 Py_BytesMain (argc=<optimized out>, argv=<optimized out>)
    at [...]/main.c:731
#63 0x00007ffff66bd34d in __libc_start_main () from /lib64/libc.so.6
#64 0x000000000040106a in _start () at ../sysdeps/x86_64/start.S:120

Couldn't reproduce this internally with ASAN, so probably it's an issue with the compiled intel-tensorflow package?
CC @penpornk for further triage

Assigned to @TensorFlow-MKL for further triage.

Thanks for reporting, will investigate and come back soon!

We are able to re-produce this issue and working on it with engineering team.

We located the issue and trying to fix it, will update later.

Hi, we have fixed this issue internally, will update here when it is merged into public GitHub.

@philippfriese The fix has been merged, please help check and see if this issue can be closed, thanks!

I am happy to report that I no longer observe the SEGFAULT using the latest commit cf67a81! Thank you for fixing this issue 🙏


Update README.md

drafted the readme file

We could add the output of usage_example and the plots to the Readme file to show the expected outcome of a test run @nikodem-stolarczyk

@hjozwiak-umk I've just updated the python readme. Could you add the plots?


Fixed documentation links

Quick fix to fix a few broken links

Thank you @bodiam for fixing our documentation links. 🙏
I will review and integrate your request very soon. 🙂


forbid um ibc out to celestia

this PR will conditionally filter um tokens within the ibc out state slice, before they reach the UI asset picker
when celestia is selected, filter um tokens from the token picker, when passed into the component prop.
this was easier to confirm behavior than filtering in the state slice.
currently the ibc form will have a pre-filtered set of balances that are already restricted to a chain's native tokens plus um. so, on celestia chain id condition, um is filtered.

Taking this over (versus leaving feedback) as it is a higher priority fix


Introduce Document struct, representing the parse result for a single AsciiDoc string/file

Codecov Report
Attention: 8 lines in your changes are missing coverage. Please review.

Comparison is base (60c094d) 91.12% compared to head (b4ecb02) 88.78%.

Files
Patch %
Lines

src/error.rs
0.00%
6 Missing :warning:

src/document.rs
93.33%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #14      +/-   ##
==========================================
- Coverage   91.12%   88.78%   -2.35%
==========================================
  Files           5        6       +1
  Lines         169      205      +36
==========================================
+ Hits          154      182      +28
- Misses         15       23       +8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Loss does not fall

Thanks for the great work and the repository.
When I use the mask data (the background becomes transparent), the model can't learn anything under 360.gin configuration. How can I modify it? Thank you very much for your reply.

@chl2  Brother, I have encountered the same problem. Do you have a solution now


Is this project abandoned?

We're looking into using casbin.net to handle authorization in our project. We're looking to protect and authorize access to our backend api's
We're wondering if this project is still under development or if it is abandoned?

Hi @thoraj this project is still maintained. Is there any specific question for using it? We are happy to answer it!
/cc @Sagilio

Thanks for your quick reply. Glad to hear that it is still in the works.
I'm new to casbin, and certainly to casbin-aspnetcore, so I don't have any questions just yet. I will be looking into if the context/transformer mechanics will work for our case or if it will need extensions.