Corrupted Audio in Key Word Detection

Overview - We can see corrupted audio when logging the audio stream to a .pcm file during the KWD.
**Device - Raspberry Pi 3
OS and build - Raspbian GNU/Linux 9 (stretch)
Alexa-SDK version - 1.18.0
Summary
In order to check the input to the wake word engine we logged the 10ms buffer of the wake word engine to a .pcm file. While doing so we could observe that the audio is corrupted. It can be seen (and heard) that at the beginning/end of the 160 sample buffer there seems to be unexpected values that result in crackling and noises that corrupt the audio file.
What is the expected behavior?
We would expect a clean audio file.
What behavior are you observing?
A corrupted audio file with unexplicable corruption at the beginning/end of the 10ms-buffers (160 samples). See attached .pcm-file.
Steps to reproduce the issue:
We could reproduce the behavior for the standard SampleApp build. Only file changed SensoryKeywordDetector.cpp to add the logging capability.
in the line before -  while (!m_isShuttingDown):
FILE *fIn = fopen("/home/pi/sdk-folder/LOGS/Sensory_InputLog_16khz.pcm", "w+b");
in the line before -  snsrClearRC(m_session):
fwrite(audioDataToPush.data(), sizeof(int16_t), audioDataToPush.size(), fIn);
in the line before - m_streamReader->close():
 fclose(fIn);
List of Investigations
Following a list of already done investigations is given:

removed all detection functionality -> only print out the .pcm file in the detection loop. The file is still corrupted.
Checked the pcm-dump when running AudioInputProcessorIntegrationTest.cpp, where a local file is used as input instead of microphone input. The pcm-dump was uncorrupted.
Ran AudioInputProcessorIntegrationTest.cpp (logs attached)
Ran a short Sensory command "what's the time" with DEBUG9 (log attached)
Checked the Alexa voice history: https://www.amazon.com/alexaprivacysettings. The files there are not corrupted which indicates that generally recording works (at least the unblocking stream, blocking stream might have a problem).
recordings with arecord are not corrupted

Attachements
GithubTicket.zip

Hi @EliasLum would you be able to log audio to a file inside AudioInputProcessor as well? I couldn't find anything different in the stream we send to the KWD and the Cloud so I would like to see if you are noticing a difference.

Hey @mvelegon-amzn,
First of all thanks for the reply. Yes of course i can log an audio file inside the AudioInputProcessor. Could you maybe give me some indications where i could read the stream from to log the audio?
I tried to add the logging to: avs-device-sdk\CapabilityAgents\AIP\src\AudioInputProcessor.cpp
but i couldn't find out how to get the data vector of the audio. I guess i would have to somehow read provider.stream or m_reader?
e.g. could you maybe give me an indication where and how to get a data-vector i can log to an audio-file in AudioInputProcessor.cpp?

@mvelegon-amzn,
Do you have any thoughts/indications considering my previous comment?

Dear Alexa Team,
I am a bit surprised by your inactivaty on this issue. However, in order to make sure the problem is not connected to my implementation i set up the raspberry and SDK from scratch. So I did not do, install or change anything apart from the below mentioned steps:

Erased the SD card and imaged the newest Raspbian Buster OS using: https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/
Started up the rPi
Went to the console and installed cmake: sudo apt-get install cmake
Followed all the instructions on: https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/raspberry-pi.html
e.g. ran the lines in the terminal (excluding Bluetooth functionality)
Added the three lines from my first comment to log a .pcm file in: SensoryKeywordDetector.cpp
Started up the app and spoke some test sentences

When i look at the .pcm file generated it still sounds corrupted (as described in the first attachment). I did not do anything apart from the above mentioned steps so I am puzzled where the issue lies.
Are you able to reproduce the described behaviour?
If we want to take a look at the audio inside AudioInputProcessor , can you give me support on my previous questions?

Hi @EliasLum, you said you added your code before while (!m_isShuttingDown) and tried to write audioDataToPush into a file, please note that audioDataToPush is just an empty vector and nothing has been push to it yet.  Maybe you'd like to try again by adding you lines of code after readFromStream is called, and use wordsRead for how many bytes you want to write to your file.  Thanks!

Hey @kclchan,
Please read my comments more closely. I open a file before while (!m_isShuttingDown)   however writing audioDataToPush into a file of course happens after reading from stream. As mentioned this happens before snsrClearRC(m_session). How did you imagine we have got any audio at all when writing an empty vector to a file...?
I was assuming that the size of the stream would be constantly 160 samples (10ms at 16000kHz). Which is also the size of audioDataToPush. From what you mention i suspect it might be possible that less than 160 samples are written to audioDataToPush per iteration and we should only write the amount of bytes defined in wordsRead.

I am glad that this is working for you now.  Closing the issue.


Update Macro.vba

You already have the variable, seems no need to define new again

Yes, makes perfect sense. The only thing is I will change:
swSkArc.Select4 True, Nothing
to
swSkSeg.Select4 True, Nothing
As Select4 is a method of ISketchSegment and thus intellisense will work


Is there a way to turn the tv off via ethernet?

Would it be possible to turn the tv on via ethernet?

Hi,
turning the tv off should work, turning it back on from standby unfortunately doesn't work for most devices since they close all network interfaces when going into standby.
It looks like samsung recently changed their network remote control protocol a bit so that the tv requires a keycode authentication before allowing to control it. Unfortunately this is not implemented in the remote control module yet. So if you have a newer tv chances are high that the module can not control your tv at all. I will further investigate on this and will update the readme with this details soon.


Terraform Function Apps for DEV

Create Terraform scripts to instantiate a Function App:
Use new storage account (recommended by MS)
Use new App Insights (recommended by MS)
We are using 3 Function apps:
hl7-structure-validation (for scala)
hl7-mmg-vocab
hl7-rdmp
Completion criteria: terraformed the function and deployed app code to those functions (Azure function and function app).  Does not include CI/CD.

This ticket may need better criteria since it was written a while ago - since this may be more like an Epic ticket.
I also recommend breaking up multiple tickets between the environments, since the other environment will require additional sizing to complete. Production will be a lot larger than Dev, for example - and require us to do some more testing to properly size our environment (Eventhub, Redis, storage account limitation, etc).
I am working with the vocab functions that @dtx0111 and @mscaldas2012 wrote; and those are now Terraform'd (Redis, storage account, and function app).
I am also working on the receiver debatcher message process (rdmp) function app and gotten Eventhub setup - and working in progress to get it up and running as part of #147.

Dragging Cosmin into this ticket - since he's the one using all the functions app that I built.
I'm also picking up any request from him via #235.

From what I know, this ticket's requirement is completed. All the functions were moved over to terraform'd function app.


Add consortia to collection detail page

Need
Add consortia to the collection detail page as per mock.
Definition of Done

Consortia is displayed on the collection detail page as per mock.

Closing. Duplication of https://github.com/chanzuckerberg/single-cell-data-portal/issues/3643


Add docs Build and Deploy

Using MyST and Sphinx to create docs, runs in github action

Codecov Report

Merging #53 (eed3c1b) into main (3e4c1d3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #53   +/-   ##
=======================================
  Coverage   82.60%   82.60%
=======================================
  Files           4        4
  Lines         138      138
=======================================
  Hits          114      114
  Misses         24       24

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 3e4c1d3...eed3c1b. Read the comment docs.

This looks great! Gotta love being able to download and look at the build artifact. 🚀
I think we should actually use myst-nb rather than myst-parser as done in jni/skan#151 / jni/skan#155 (see also napari/napari#4085), but I will leave that to a later PR. Thanks @jamesyan-git!


fix(46611): Typescript may not recognize jsdoc @type on class method

Fixes #46611

@sandersn Thanks for the feedback. This is only allowed in JS, similar to FunctionDeclaration.
return (isInJSFile(func) && isFunctionDeclaration(func) || isFunctionExpressionOrArrowFunction(func) || isMethodDeclaration(func)) && ...

Yes. Looking around the code, it seems like it might use contextual typing.
Looking at the original bug again, it's strange that @type on methods works for a object type with a signature, but not for a type reference. I guess that could be a breakdown caused by contextual typing?

@sandersn Do I need to investigate contextual type resolutions for a type reference to fix this issue?

Well, return types are checked without contextual typing: the following example has an error:
/** @typedef {(a: 1, b: 2) => boolean} Foo */
class C {
  /** @type {Foo} */ one (a,b) { return 1 }
}

That's from checkReturnStatement, which uses getSignatureFromDeclaration >> getReturnTypeOfSignature.
I'll see what goes wrong with parameters.

The code in getTypeForVariableLikeDeclaration has a check that requires its type annotation to be a function type, syntactically. I believe that the code should actually be
                    const typeTag = getJSDocType(func);
                    if (typeTag) {
                        const signature = getSignatureFromDeclaration(func);

not
                    const typeTag = getJSDocType(func);
                    if (typeTag && isFunctionTypeNode(typeTag)) {
                        const signature = getSignatureFromDeclaration(typeTag);

Or something similar -- that doesn't seem to work when I test it.

Nope, try this instead:
Underneath getReturnTypeOfTypeTag:
        function getParameterTypeOfTypeTag(func: FunctionLikeDeclaration, parameter: ParameterDeclaration) {
            const signature = getSignatureOfTypeTag(func);
            const pos = func.parameters.indexOf(parameter);
            return !signature ? undefined
                : parameter.dotDotDotToken ? getRestTypeAtPosition(signature, pos)
                : getTypeAtPosition(signature, pos);
        }

and in if (isJSFile(declaration)) in getTypeForVariableLikeDeclaration:
                    const type = getParameterTypeOfTypeTag(func, declaration)
                    if (type) {
                        return type;
                    }

@sandersn I added the requested changes.


has_custom_certificate - feature request...

Hi!
Help please - how i can use selfsigned cert in telegram bot?
https://core.telegram.org/bots/self-signed/ for example...

Comment for BF: Use setWebhook


Link main readme to TraceEvent programmer's guide

See https://github.com/Microsoft/perfview/pull/243#issuecomment-304513601.

Fixed via #583.


fbBatchedBridge is undefined

Describe the bug
When running yarn android I get the following error in my emulator
com.facebook.react.common.JavascriptException: Failed to call function, __fbBatchedBridge is undefined
When I run yarn web the web version works fine.

To Reproduce
The project worked when I first cloned it. After that the only changes made were to rename the app. I did this two different way and both ways give me this error now.
The first was manually changing the build.gradle, AndroidManifest, MainActivity, index.js and changing the android dir to be android->app->src->main->java->com->timetracker
The second way was using the link provided via one of the developers of this code here: https://github.com/VISI-ONE/create-react-native-web-app/issues/30
Expected behavior
The app to build as it did prior to name change
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Linux Mint
Browser Chrome and Firefox (newest for both)
Emulator: Genymotion (Galaxy S7 API 26)

Just wanted to leave an update. I did forget that I had changed "react-native": "0.55.x" to "react-native": "^0.55.0"
Changed this back to 55.x and it works again... shame


kind-projector org change (and sbt version bump)

it would helpful in the Scala community build to have this merged,
normally we can override org changes like this in our config, but I'm
having trouble I don't understand. and anyway, using the latest
versions is generally a good thing
the sbt bump isn't a necessary part of this, but it may help avert
unexpected community build trouble as well

Thank you Seth.


Refined Node execution/validation; flow variable substitution

Node execution/validation
The main Node class now implements a validation method that checks all Parameters, calling their option.validate() methods. The calls to validate within pyworkflow/workflow.py have also been removed. This addresses the use case mentioned where a Node could potentially be invalid when added to the workspace. Now, Nodes are validated upon saving the configuration, or the 'node update' endpoint.
Also changed is the order of operations for Node execution. The main logic in the Workflow class has been simplified to:
# Load predecessor data and FlowNode values
preceding_data = self.load_input_data(node_to_execute.node_id)
flow_nodes = self.load_flow_nodes(node_to_execute.option_replace)

# Validate input data, and replace flow variables
node_to_execute.validate_input_data(len(preceding_data))
execution_options = node_to_execute.get_execution_options(flow_nodes)

# Pass in data to current Node to use in execution
output = node_to_execute.execute(preceding_data, execution_options)

The thinking behind moving input data validation and flow variable substitution into the Workflow class, is anyone developing a custom Node would not have to duplicate this work. Even for the built-in Nodes there was a lot of duplication where each Node validated input and parameters.
The validate_input_data and newly-named get_execution_options were moved from the NodeUtils class into the main Node class. This approach seems cleaner to me, but there may be use cases I'm not considering.
Flow variable substitution
There are currently no front-end options to create or pass these flow variables around, but this PR should handle most of the back-end functionality and updates the endpoint responses for the front-end to use. Currently, flow variables work by adding the following attributes to a Node (for example ReadCsv, written here in JSON:
"option_replace": {
    "sep": {
        "node_id": "2",
        "is_global": true
    }
}

On execution, the back-end would substitute the default_value stored in the global FlowNode with ID "2", for whatever the current value is for "sep" in the ReadCsvNode. Should the user want to revert "sep" back to whatever stored value was there, they would remove the flow variable (perhaps a checkbox, or empty selection from a dropdown?).
To pull this information in to the "Node Configuration" pop-up in the front-end, the action would need to call the GET /node/{node_id} endpoint which has been updated to return the Node's information as well as any flow variable options (all global variables, and any local variables connected as predecessors).
TODO:
This PR updates all Nodes to use the Parameter classes @reddigari introduced in #53. Only Read/WriteCsv and the JoinNode have been updated to use these Parameters during execution; the rest still pass in **self.options) which may cause issues.
There is no validation to ensure a FlowNode matches the Parameter type of a given option. E.g., there are no checks to prevent a StringNode value from replacing a BooleanParameter value.
Integration with front-end. Nested-forms might be the solution to provide the JSON data the back-end currently is using, but both back/front might need some changes as we integrate.

Am I understanding correctly that local flow vars are just regular nodes in the graph, which are caught when parsing the predecessor input? Whereas global ones aren't connected to anything, but are available from within the node config form to override a particular parameter?
If you could give me a high-level list of what needs to happen on the front end for this to be supported, that would help a ton! If I am understanding correctly, this includes:

Adding flow input ports that local flow nodes can connect to
Add a way to mark a flow node as global
Within the node config form, identify all global flow vars, and provide a way to use them as parameters for the node?

The list you have hits most of the high-level needs of the front-end. I made a few in-depth comments to elaborate on these (and the endpoints to hit) in issues #64 and #65.
In general, your understanding of how the flow variables work is correct. A Workflow contains:

graph: the visual workflow, consisting of "local" Nodes, stored as a DiGraph()
flow_vars: the global flow variables, stored as a separate Graph()

The differentiator between the two is whether a Node has the is_global attribute set to true or false. My thought was the only way to include this flag is where the Node is defined. A separate area for displaying/adding global flow variables could help with that.
Global variables are defined in a separate Graph() to prevent connections to specific nodes in the "main" graph. By hitting the GET /node/<node_id> endpoint, all potential flow variables (both local and global) are retrieved and returned in a JSON response.


Fixups for breaking Rust changes

This PR should fix breakages that will be caused by the next Rust nightly:

The order of operands to some functions has been changed.
The Int trait has been deprecated.

Note: This fixes rust-crypto for changes to Rust that haven't hit a nightly yet. So, this won't really work until a new nightly is produced (or unless you build your own rustc).

This works for me on the latest nightly now.  Thanks!


RetryPolicy.Codes is not required for 0.12

https://github.com/heptio/contour/blame/master/apis/contour/v1beta1/ingressroute.go#L144
Is not required for 0.12. This could have been my fault when merging #1018. Please remove it, then we'll have the diff we can merge if customers request it. For 0.12 I want the retry codes to be hard coded to 50x

If no one is working on this, I can take this up,

All yours, please get it done before apr 25. Thank you.

On 20 Apr 2019, at 03:46, Rohan Vora<EMAIL_ADDRESS>wrote:
If no one is working on this, I can take this up,
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


[vr] Support simulated head-tracking on VR simulator

Support simulated head-tracking using mouse/keyboard/touch inputs while using VR simulator.
Probably VR simulation functions should be moved to core module to add this feature and just leave VR rendering functions in rlgl module.

Actually, it can be simulated just using a 1st person camera...
It's better to add this feature in core_oculus_rift example...

Implementation improved in commit https://github.com/raysan5/raylib/commit/648676f46b01327f0fbd6f017292a3159ea9ab2f
Still some work to do (VR system redesign)


Annotation @Parameter does not have property title

What version of OpenRewrite are you using?

I am using

Maven plugin v5.43.3

How are you running OpenRewrite?
I am using the Maven command line, and my project is a single module project.
 mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-openapi:RELEASE -Drewrite.activeRecipes=org.openrewrite.openapi.swagger.SwaggerToOpenAPI -Drewrite.exportDatatables=true

What is the smallest, simplest way to reproduce the problem?
Have a project with Spring Boot 3.3 and dependency springdoc-openapi-starter-webmvc-ui in version 2.6.0 and a controller method annotated with  @Parameter(description = ""). The recipe will replace description by title. This does not compile because the interface io.swagger.v3.oas.annotations.Parameter does not have a property title in the library swagger-annotations-jakarta (version 2.2.22).
What did you expect to see?
I expect that it does not change the existing code and leaves it like this:
public ResponseEntity<MyDto> sayHello(
            @Parameter(description = "The name of the greeter", required = true, example = "John Doe") @PathVariable String name
    ) { }

What did you see instead?
public ResponseEntity<MyDto> sayHello(
            @Parameter(title = "The name of the greeter", required = true, example = "John Doe") @PathVariable String name
    ) { }

Can you give me any hints in which version of OpenApi/Springdoc it is supposed to work?

hi @b-abel ; I indeed do not see such an attribute on the latest version of the Parameter annotation on:
https://javadoc.io/doc/io.swagger.core.v3/swagger-annotations/latest/io/swagger/v3/oas/annotations/Parameter.html
That change was introduced by @amanda-matteucci in

https://github.com/openrewrite/rewrite-openapi/pull/15

Perhaps it should have been Schema that should have been changed there? Based on this comment:

https://github.com/openrewrite/rewrite-openapi/pull/15#issuecomment-2374507320

I'd welcome a PR that makes that quick change, provided you both agree on the right path forward. :)

We might also need to update rewrite-spring to have this version ??

We might also need to update rewrite-spring to have this version ??

Hi @santoshdahal12 ; rewrite-spring depends on rewrite-openapi, so this change should also be applied there already.


Prevent delivery of messages to sending connection's subscriptions

If a client connection's CONNECT protocol contains (e.g.) no_local : true, the server should not deliver messages that originated from that connection to subscriptions on that connection.

[ ] Add option to clients

Wondering if we still think this is interesting? Almost feels like it should be per subscription not just per client connection.

We could do this connection wide without a major protocol change. Per subscription would require low level protocol changes from client to server.


Update Flow

Description
Update flow
Note that this branch is based off of 618-webpack.  That'll be resolved up prior to merge.
Motivation and context
Closes #619
Flow changelog is here...
https://github.com/facebook/flow/blob/master/Changelog.md
Screenshots, videos, or demo, if appropriate
https://619--mineral-ui.netlify.com/
How to test

No flow errors
No obscure warnings when start dev server
Make a flow error and note that it works and that messages are improved.
¡Hear the cat meow en Español!

Types of changes

Other (provide details below)

Maintenance
Checklist

[x] Renders and functions properly in all supported browsers - [n/a]
[x] Automated tests written and passing - [n/a]
[x] Accessibility and inclusivity considered - [n/a]
[x] Rendering performance (initial load time & 60fps) and perceived performance considered - [n/a]
[x] Documentation created or updated - [n/a]
[x] Tested in sandbox if new component or breaking change - [n/a]

Most excellent :) Just FYI, the link you posted under "Screenshots..." should be updated to https://619-flow--mineral-ui.netlify.com/


Research and set up vector database system

Vector Databases are the core of how we can power ML applications to do things such as retrieve relevant information. I could talk about it a lot more in-depth, but I recommend you read the linked article from Pinecone, the leading vector DB solution, if you'd like to know more.
For our options—there's many, many, tools we can use here—so I'll list them out:
Pinecone
Supabase
Dewy
I could go on and on, but I found this nice comparison on reddit of the popular options.

Some others include Astra and Momento.

Options:

pgvector (PostgreSQL + pgvector extension): SQL is popular and is easy to learn, so it should be widely accesible. postgres also doesn't have a db size limitation, however the db will have to be self-hosted. https://github.com/pgvector/pgvector
Pinecone: Cloud based and provides documentation and steps on setting up vector db (easy to learn). The free plan does have a 2GB database size limit. Includes built in distance metrics (euclidean, cosine, dot product)
ChromaDB: Open source vector DB similar to pgvector but more refined for vectordb support. Has metadata support, allowing context to be added to embeddings.

Feature
pgvector (PostgreSQL + pgvector)
Pinecone
ChromaDB

Purpose
General-purpose SQL DB with vector support
Dedicated vector database
Vector-focused database

Querying
SQL + vector similarity (cosine, inner product, L2)
Vector similarity search with optimized ANN
Vector similarity, metadata filtering

Deployment Complexity
Moderate; requires PostgreSQL setup and tuning
Easy setup on managed cloud platform
Lightweight, minimal setup

Scalability
Highly scalable, enterprise-ready
High scalability, serverless
Good for small to mid-scale applications

Performance
Slower for high-frequency vector-only searches
Optimized for high-performance vector search
Fast for vector-focused workloads

Storage Options
Fully durable, transactional SQL storage
Managed cloud storage
In-memory, file-based (DuckDB + Parquet)

Metadata Support
Yes, through PostgreSQL’s JSONB fields
Yes, with filtering options
Yes, with filtering options

Best Use Case
Mixed data needs (SQL + vectors), enterprise workloads
Large-scale, high-performance vector workloads
Vector search with lightweight persistence

Open Source
Yes, with PostgreSQL (pgvector extension)
No, proprietary
Yes

Cost
Depends on PostgreSQL deployment
Paid, with free tier for limited use
Free and open-source

Dimension Limits
Handles high dimensions but may need optimization
High-dimensional support
High-dimensional support

Support for Filtering
Advanced filtering, SQL-based queries
Supports metadata filtering
Supports metadata filtering

Management Interface
SQL client, pgAdmin, managed SQL services
Pinecone Console
CLI and simple API

Note: An embeddings model will need to be chosen to go with the vector database.

Nice, thanks for listing this out.
What do you think of using pgvector and supabase? So we get the best of both worlds? A customizable system for storing vectors, and a managed instance of the database for easy setup?
It seems like all new Supabase db's support vector hsnw now too. Idk, what's your take? Pinecone and Chroma would be nice as well.
What we really want is a system which will allow us to store the most vectors, the easiest

Thats a pretty good idea! I think that supabase combined with pgvector would be a really powerful combo. It would us to use SQL, reducing the learning curve of the db, and supabase would allow us to host it on the cloud and have a central db instead of individual ones. HOWEVER, the database size on the free plan of Supabase is only 500mb (https://supabase.com/pricing). If the goal is a system to store the most vectors, then we would need to know roughly how many documents we plan on uploading and wether that would be under 500mb. For reference, uploading a chunk of 2000 words would take up ~10 KB. We could possibly filter out stopwords from the chunks to make them smaller but would need to test if that affects context given to the LLM at runtime. Supabase does have really good intergration with pgvector though, and I like the support for the new hsnq indexes.
I think the supabase + pgvector combo is the best pick for the project as long as we don't think we are going to go over 500mb of chunks.

Thats a pretty good idea! I think that supabase combined with pgvector would be a really powerful combo. It would us to use SQL, reducing the learning curve of the db, and supabase would allow us to host it on the cloud and have a central db instead of individual ones. HOWEVER, the database size on the free plan of Supabase is only 500mb (https://supabase.com/pricing). If the goal is a system to store the most vectors, then we would need to know roughly how many documents we plan on uploading and wether that would be under 500mb. For reference, uploading a chunk of 2000 words would take up ~10 KB. We could possibly filter out stopwords from the chunks to make them smaller but would need to test if that affects context given to the LLM at runtime. Supabase does have really good intergration with pgvector though, and I like the support for the new hsnq indexes.
I think the supabase + pgvector combo is the best pick for the project as long as we don't think we are going to go over 500mb of chunks.

Oh my goodness, thank you, Cyrus, for doing the research and finding that. I really appreciate it! Especially because, that 500MB limit is definitely something!!! 😅
We DONT want chunk storage to be a bottleneck, especially if people want to upload lecture videos or other multimodal content in the future. I think Pinecone, or one of the other options mentioned would be a better fit since there's less scale concerns, and we can easily add metadata filters for each course to handle everything more efficiently.
Let's chat about this at our next meeting. Lots of interesting stuff here.

@Nyumat Are we looking to use JS for the entire project? Would something like Go be considered at all?

Are we looking to use JS for the entire project?

Yeah, ideally. Most of these AI SDKs have Python and TS/JS wrappers so that's why it's relevant here.

Would something like Go be considered at all?

I'm not opposed, but would we gain from it that say, Python wouldn't provide? And where would we look to add it?
I've seen stuff like Gofast out and about, but seems like the benefits we'd get from Go (speed, better grpc libs, multi-threading) are out of scope for this project, at least.
Curious to hear what you think.

@Nyumat Are we looking to use JS for the entire project? Would something like Go be considered at all?

Are we looking to use JS for the entire project?

Yeah, ideally. Most of these AI SDKs have Python and TS/JS wrappers so that's why it's relevant here.

Would something like Go be considered at all?

I'm not opposed, but would we gain from it that say, Python wouldn't provide? And where would we look to add it?
I've seen stuff like Gofast out and about, but seems like the benefits we'd get from Go (speed, better grpc libs, multi-threading) are out of scope for this project, at least.
Curious to hear what you think.

Yea, makes sense. I mention go just because it would be different and it's used for literally everything. The JS ecosystem has a new framework, run-time, library, etc come out every second 😂.

Lol, yeah agreed. Well, I'll tell you this.
When we did BeavsAI in the past, we had tons of memory inefficiencies that served as a bottleneck once we tried to product-ionize the application.
I did some research, and found there's a great langchain alternative for Go, used to build these AI applications. If you can get a running proof-of-concept (I can assist if need be as well, or we can do it live during our Wednesday meeting) — I'd be down to consider it, especially given all the performance we'd gain from using it, compared to Python and JS.

Hey @Nyumat we didn't get a chance to talk at the meeting Wednesday. I think that the best step forward is Pinecone. We get 2GB of storage with the free tier and it looks pretty simple to set up. I'm gonna get to work on implementing the vector db this week, let me know if you have any questions or concerns.

Huge, I'll be on the look out! And yeah my bad, couldn't make the meeting in-person

@s2xon what do you think of assisting me in building a Discord bot (in go, as i've been enjoying using it recently again) to extend our current application's knowledge base?
Ideally, we'd create a Discord bot that first retrieves & from then on listens to messages in the CS Discord Server (~forrmerly, church of evan~), using the guild's messages to create embeddings that could be used as query matches.

User — "Who's the best professor to take for CS374? My options are gambord, guyer, and brewster"

Bot — "Based on previous conversations in this server, here's some feedback about your options:

Gambord: Known for clear explanations and detailed lectures, but exams can be challenging.
Guyer: Students often mention that he is approachable and provides good support outside class, though his lectures may - sometimes be fast-paced.
Brewster: Generally well-liked for practical assignments and real-world examples, but can be strict on deadlines
Sources: msg-link, msg-link


multiexp: avoid direct coordinate access to check for zero points

This PR introduces a new IsZero() bool method for G1/G2 JacExtended points to check if they're the zero element.
In the multiexp algorithm, this is required when aggregating Pippenger buckets while doing the running sum. Apart from multiexp, it can be helpful for clients in general. I can imagine some tension around IsZero() vs IsInfinity() in the naming, but I leaned towards IsZero() since feels more general (since points at infinity aren't always the zero points in all curves).
Considering the new method is very simple, the compiler inlines it, so it shouldn't have any performance hit.

The context for this PR is about something other than implementation purity. I was trying to adapt the multiexp algorithm to a tw. Edwards curve (i.e: Bandersnatch), where I have to "adapt" these Jacobian points to, e.g., Projective points. So I created point adapters that would override method calls to the other underlying point. But, these direct coordinate accesses made this impossible.
To be clear, adapting multiexp to an underlying tw. Edwards curve is probably not optimal for performance since there're some affine batch addition tricks applied here that only make sense for short Wiestrass curves. But, since our MSMs were somewhat short, I just wanted to experiment with "how bad" (or good!) using an "untouched" MSM implementation could work for us.
It would be very nice to have some MSM algorithm optimized for tw. Edwards! And in particular, for short MSMs (in our case, we're doing MSM on a basis length of 256). That's another argument to expect the current multiexp not to be ideal since it's more optimized for big MSMs (e.g., SNARKs). I don't know if that's on the roadmap, but it would be great :)
None of what I mentioned in this section is an argument for merging or justifying this PR, but to explain where this came from.

paper

Thanks for the suggestion and pointing to the paper; I'll look!
Feel free to merge. :)


add motion canvas components repo

I thought some people might find my array and graph components useful.

@Ross-Esmond can I join this organisation?


Counting by:

one more issue ( Counting by: )
1
i set --stride<PHONE_NUMBER>3322622139731865630429942408293740416025352524660990
result Counting by:<PHONE_NUMBER>854775807
2
i set --stride<PHONE_NUMBER>3322622139731865630429942408293
result Counting by:<PHONE_NUMBER>854775807
3
i set --stride 723
result Counting by: 723
4
i set --stride 99000
result Counting by: 99000
is there is some bug or wrong calc

It isn't a bug. The number that you are seeing for the first 2 is the maximum number for a 64 bit. The variable stride has a data type that can hold up to a 64 bit number. Hope this helps.

I will fix it to read a 256-bit value.

please can you explain me what i can do with --stride  i really dont understand that

Hi,
The latest build will accept a full 256-bit value for --stride.

please can you explain me what i can do with --stride i really dont understand that

Normally the program tests a key and then increments by 1. The --stride option tells the program to increment by key by another value. For example, --stride 2 will tell the program to test keys 1, 3, 5, 7, 9, 11 ....  This was a feature requested by many users. One use for it would be to divide up work. One instance of the program could check keys 1, 3, 5, 7, 9....etc. and another instance could check 2, 4, 6, 8, 10... etc.

oh ok now i undertsand it this is great but i have 5 Cards and all 5 Cards search on other keyspace in 58 bit space so mabey here it i snot good to use this stride ?


[DX] A better upgrade process

The Current Situation
When a new minor version is released, updating Symfony is simple:
$ composer update

This will update the symfony/symfony package and all other packages. Great!
The Problem
There is one problem: The edition you're using is unchanged. Changes in the SE are not taking into account while upgrading.
In previous versions, this wasn't a big problem: Only minor things were introduced in the SE. Now 2.6 introduces the VarDumper component and DebugBundle (mostly the last one is causing problems), this will change.
@flip111 and me have been debugging a problem for several hours saturday night: {{ dump() }} didn't show anything. After a long debugging process, we found out that we simply forgot to register the DebugBundle into the app kernel.
Today, we had another problem with the debug bundle: We couldn't use dump() in our PHP code. It turned out that this too was inlined into the Standard Edition.
All in all, I came to the conclusion that we have to change the update process. Mostly because there are lots of questions about this on IRC after a new version is released and with this new edition, I think we get even more questions.
The Solution
A while ago, I proposed to also provide a PATCH file for the Standard Edition. People could apply this patch file to their project and the SE will be up to date.
Now we have a new Symfony Installer, I think it's good to put an upgrade command in there which does this for you: It checks your files, it checks the changes in the SE and it updates or displays the changes (in case there are conflicts)

One way to see what has changed between versions is to use Github compare.
https://github.com/symfony/symfony-standard/compare/2.6...2.7

@layanto For the lazy, github will even format those as a patch for you if you append .patch to the URL: https://github.com/symfony/symfony-standard/compare/2.6...2.7.patch
But I'd go so far as saying that most of the time these don't apply cleanly. So this isn't going to be easy. Even though it is a good idea, it would certainly be easier to walk the user through the upgrade steps like @flip111 suggested, instead. Maybe that's a better first step?

@WouterJ Now that you've added the really nice upgrade docs, could those be enough? Especially if we did a little bit of a better job with the UPGRADE-*.md files inside the SE (and mentioned those from there)?

Resurrecting this thread: Has anyone developed a better procedure than either: a) cloning the standard and copying in changes, or b) adding a git remote and merging in the changes?

Each app is so specific that the only thing that could be "standardized" seem to be a list of recommandations.
I don't know if there is a solution for this :confused:

TL;DR: You could:

get the diff between the starting and ending versions, like '2.6...2.7', probably only paying attention to certain files and possibly diffing 'yml' and 'json' files as associative arrays instead of lines
generate a diff between that diff and the current project
interactively ask if each change should be applied

This may be complicated.
The long:
I was working on a bundle to attempt to manage this sort of thing, but kind of gave up.  My initial approach was to have a matching version for each version of the SE that had all composer requirements, a method to create an array of all the bundles, the configuration, and anything else to store as many of the things that could change in SE, so that my projects would just build to this interface and then be able to change versions with a single line composer change.
Besides for composer root versus non-root issues and others, I realized that not all projects need all of the dependencies and starting configuration of SE, so I sought I different route.  I thought of various possibilities, and began leaning toward a command / script to automatically make changes to the given project.  I began thinking of a two-stage diffing setup where the existing and target SE versions are diffed (certain files only) and then that diff is compared to the current project to come up with what needs changed.  Stuff like 'composer.json' and '.yml' files would be compared specially by diffing array representations instead of line numbers to get at actual configuration values so they wouldn't be affected by significant changes to the files.  Since a given project may remove some SE stuff and not want it automatically added back in, I decided it made sense to have it show each change and confirm whether it should or shouldn't be applied.  It was a bit complicated for me for the perceived value, so I didn't get very far with it.
I did get somewhere with a tool to generate diffs between associative arrays, if you decide to go down that route.

I don't use the SE so I don't have this specific issue, but I do base my app.php and app_dev.php based on the SE, I manually have to check if those files are changed. I think this falls under the same category of "updates".

Even with 2.7 -> 2.8 I got stung by the lack of visibility of the upgrade instructions. Perhaps the Symfony release blog post should link to the upgrade notes for SE as well (not just Symfony proper).

I fought the exact same issues recently. My solution was creating my own, common standard repo and using it as a boilerplate. I also preserved the history in projects, so that I can easily merge changes.


build(deps): update to typescript 4.4

Updates TS to 4.4 and fixes the new errors, mostly the change in strict mode to alway treat error in catch clauses being unknown instead of any.
Will print a warning on npm run lint but it still functions

Warnings

:warning:

:mag: Can't find junit reports at ./junit_report.xml, skipping generating JUnit Report.

:warning:

src/project.ts#L26 - src/project.ts line 26 – Unexpected any. Specify a different type. (@typescript-eslint/no-explicit-any)

:warning:

src/test/integration/util/common.ts#L63 - src/test/integration/util/common.ts line 63 – Argument 'tiapp' should be typed with a non-any type. (@typescript-eslint/explicit-module-boundary-types)

Messages

:book:

:floppy_disk: Here's the built vsix for this change.

  Generated by :no_entry_sign: dangerJS against f1267cb42287593585d1dff953199abe3f8162f8


[firebase_auth] Problem with the signInWithFacebook() method

I'm using firebase_auth 0.5.19 and I've successfully obtained an access token from Facebook using the flutter_facebook_login 1.1.1 plugin. Then I passed the access token to the signInWithFacebook() function and then it threw an error saying:
Facebook signin error: MissingPluginException(No implementation found for method signInWithFacebook on channel plugins.flutter.io/firebase_auth)

Here's the snippet of how I make the call:
void _continueWithFacebookPressed() async {
    final FacebookLogin facebookLogin = new FacebookLogin();
    var result = await facebookLogin.logInWithReadPermissions([
      "email", "public_profile"
    ]);

    switch (result.status) {
      case FacebookLoginStatus.loggedIn:
        var accessToken = result.accessToken;

        debugPrint("Facebook Login Successful! Access Token: " + accessToken.token);
        var graphResponse = await http.get(
            "https://graph.facebook.com/v2.12/me?fields=name,first_name,last_name,email&access_token=${accessToken.token}");
        var profile = json.decode(graphResponse.body);
        debugPrint("Facebook Login Successful!  User: " + user.displayName);

          //Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => DiscoverPage()));
          Navigator.push(context, MaterialPageRoute(builder: (context) => DiscoverPage()));
        } catch (e) {
          debugPrint("Facebook signin error: " + e.toString());
        }
        break;
      case FacebookLoginStatus.cancelledByUser:
        debugPrint("Facebook Login Canceled!");
        break;
      case FacebookLoginStatus.error:
        debugPrint("Facebook Login Error!" + result.toString());
        break;
    }
  }

Here's the output of the flow (redacted some sensitive info):
I/flutter (22155): Facebook Login Successful! Access Token: <REDACTED: nulltone's access token>
I/flutter (22155): Facebook Login Successful! User: {name: Randall Noriega, first_name: Randall, last_name: Noriega, email: <REDACTED: nulltone's email>, id: <REDACTED: facebook user ID>}
I/flutter (22155): Facebook signin error: MissingPluginException(No implementation found for method signInWithFacebook on channel plugins.flutter.io/firebase_auth)

The user never got added to the Firebase Auth's database. What am I missing here?

It looks like it's working now. I tried running the same code again tonight and it works just fine. I am not sure if it's because it takes time for Firebase to provision the data after creating my project for the first time or if it's because I had to restart Android Studio. Either way, all my frustrations went away tonight. :smile:

@nulltone
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/673. Any further collaboration will be done there.


seems that Istio does not validate wrong virtural host

Hi, team.
I've found some points that It's really serious problem.
When it comes to injection virtual service with yaml, seems that istio does not validate the yaml struct.
for example,
  http:
    - mirror:
        host: abc.local
      mirrorPercentage:
        value: 10
      - name: default
         route:
           - destination:
              host: abc.local

above yaml struct is wrong. cause "mirror" and "name" are needed to be same line without "-"
but above configuration can be injected to istio virtual service.
after that istio will occur validation error for the all of the exist virtual service and all of the new pod will be logged with "No Route 404 error" for all virtual service not only "abc.local" from envoy proxy.
Isn't that really dangerous?
only one changing virtual service could be really deadly whole service issue.
I think this need to be added to known issues. and need to validate the virtualhost when yaml or json is injected to not be injected to the istio mesh.
Thanks

This doesn't even make it past k8s:
$  cat <<EOF | kubectl apply -f -
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: route
spec:
  hosts:
  - alpine
  http:
    - mirror:
        host: abc.local
      mirrorPercentage:
        value: 10
      - name: default
         route:
           - destination:
              host: abc.local
EOF
error: error parsing STDIN: error converting YAML to JSON: yaml: line 12: did not find expected key

can you post exact reproduction steps and versions?


Add ClientEndpoint/ServerEndpoint in multiple endpoints merging.

Add ClientEndpoint/ServerEndpoint as comparable properties when distinct service endpoints
Respect ClientEndpoint change as instant change during endpoint reloads
Respect ServerEndpoint change as add new then remove old during endpoint reloads.
Minor update ServiceEndpoint.ToString() for easier checks.

Use another version.


append-params - nested object with arrays break on v1.6.0

I have a nested filters object that are previously working on v1.3.0.
let filters= {
  foo: 'bar',
  search: {
       keys: ['firstname', 'lastname'],
       value: 'Chris'
   }
}

after assigning this 'filters' object to the append-params, the query string parameter was generated differently on the ff versions:
v1.3.0:
foo:bar
search[keys][]:firstname
search[keys][]:lastname
search[value]:Chris

Generated Url: &foo=bar&search%5Bkeys%5D%5B%5D=firstname&search%5Bkeys%5D%5B%5D=lastname&search%5Bvalue%5D=Chris

v1.6.0:
foo:bar
search:{"keys":["firstname","lastname"],"value":"Chris"}

Generated url: &foo=bar&search=%7B%22keys%22:[%22firstname%22,%22email%22],%22value%22:%22Chris%22%7D

Is this the expected behavior?

@chrislandeza This is probably caused by replacing vue-resource with axios, which handles http parameters differently. Since, we are going to stick with axios for quite sometime, I think it's worth modifying the code to handle it accordingly. But I'm open to any suggestion. Sorry for the trouble though.

Hello. Firstly i want thank you @ratiw very much for such great component.
I was faced with same issue. In my case i build  CMS and there are exists API for ajax requests. To each request i should attach some special data, which is object with nested data. But when i try do that with vuetable, i was noticed that object was serialized to JSON string. After looking this issue i was look into axiox issues and find solution here - https://github.com/mzabriskie/axios/issues/738
I have have replaced axios serializer with jQuery one, which also in my project.
Just set "http-options" property to:
{
      paramsSerializer: function(params) {
              return jQuery.param(params);
      }
}

@ratiw - Closing this issue now as @Zaporozhec7  solution solved the problem.


[Bug Report] el-select require two tap to change selection since IOS 13.2.3

Element UI version
2.13.0
OS/Browsers version
IOS 13.2.3 / IOS Safari
Vue version
2.6.10
Reproduction Link
https://codepen.io/SebastienChesneau/pen/KKwypvM
Steps to reproduce
Just try to change the selection with a single click
What is Expected?

A single tap/click does not work, we need to click 2 times to validate the selection

me too

me too

Duplicate of #17716

me too


chore(bridge): add comments explaining entries in .default.env

@shadab-taiko could you please add more info about this PR. I'm not sure what it's about.


Metasploit module does not exist anymore

File: PayloadsAllTheThings/Methodology and Resources/Windows - Privilege Escalation.md
Line: Metasploit provides the exploit : exploit/windows/local/trusted_service_path

Metasploit exploit module does not exist anymore.
Deletion or known alternative?

You can try exploit/windows/local/unquoted_service_path which does a similar job


when opening the xrefs window (in any mode) while a BV was already open, no xrefs are shown

By default the xrefs window is visible and open before opening a new file and so any clicks made automatically trigger it to update and show xrefs. However if you hide it and then focus it for the first time after a BV opens (again, either docked, or floating, or windowed) it will be empty for the first click.

resolved in builds >= 6238


Enable GPIO support on Musca-A1 (also pyocd support)

Is GPIO already supported in Musca-B board, btw?

Is GPIO already supported in Musca-B board, btw?

no idea.. don't have one of these boards to test/try but in theory the same changes would apply.


adds context to new list item button

Fixes Issue #300

- Summary
This PR adds the list label to the new button which provides users better context (especially with nested lists).
- Test plan
All tests continue to pass. I created nested lists 20 levels deep to test & ensure scalability. I ran npm build test & npm run line in compliance with contributing.md guidelines.

Example screenshot of the result here:

- Description for the changelog

Adds the specific content type to the list control widget's "new" button.

- A picture of a cute animal (not mandatory but encouraged)

@DrianHillman thanks for the fast PR! I added one change request, should be good to merge after that.

Sure thing, @erquhart! I'd be happy to take a look at a revision, however, I don't think it posted. Can you clarify what it is?

Sorry about that, forgot to post. It's up now.

[X] Edits confirmed!

Learned a new technique today— thanks @erquhart! I appreciate the breakdown & links; this makes sense. The Immutable package looks great, it makes the access to props & data more performant and much more concise. 👍🏽

@DrianHillman awesome work, man. If you're available/interested, join us on Wednesday for our first bi-weekly community planning session via Hangouts: https://www.eventbrite.com/e/netlify-cms-planning-session-bi-weekly-tickets-35794059997

@erquhart Thanks! Wish I could make it tomorrow, but I'm all tied up at that time. It is a great idea to meet regularly about the project and stay on the same page with contributors— that's very cool, I'll keep an eye out for future ones.


Add restricted-noroot PSP policy to match upstream Kubernetes restricted PSP

Add restricted-noroot PSP policy to match upstream Kubernetes restricted PSP.
Fix https://github.com/rancher/rancher/issues/35191
Signed-off-by: Guilherme Macedo<EMAIL_ADDRESS>

Docs PR https://github.com/rancher/docs/pull/3849


Cloud SaaS Messaging

Description
Now we're transitioning from a 'stealth startup' to having an open source product with a "Launching soon" SaaS offering, our website and messaging needs updating.
Visitors will want to understand what problem we're solving, and what our solution is to the problem.
Calls to actions need to include:

Installing FlowForge (For hobbyists and on-premises)
Invite-list for ff.cloud

@zj can this be closed?


Pull up LayerLwIP::ScheduleLambda to SystemLayer

Problem
ScheduleLambda is a convenient function, should be available on all platforms
Change overview
Pull up LayerLwIP::ScheduleLambda to SystemLayer
Implement ScheduleLambdaBridge for LayerImplLibevent and LayerImplSelect
Testing
Verified by unit-tests

@kghost Note that this was reverted because it broke various platforms...


Process list does not show up on SmartOS

Awesome project! Mainly because there is no top on SmartOS, just prstat! Unfortunately the generic process numbers don't render:

Is this still open?


11.1 - allow for-of loops in some cases?

Example code:
for (const handler of requestHandlers) {
    const response = handler.handle(request);

    if (response) {
        sendResponse(response);
        break;
    }

    debug('did not match', handler);
}

@Vladisls converting to higher-order function doesn't seem to add much value and hurts readability in my opinion:
let isHandled = false;

requestHandlers.forEach((handler) => {
    if (isHandled) {
        return;
    }

    const response = handler.handle(request);

    if (response) {
        sendResponse(response);
        isHandled = true;
    } else {
        debug('did not match', handler);
    }
})

You could shorten the code by doing something like this:
requestHandlers.some((handler) => {
    const response = handler.handle(request);

    if (response) {
        sendResponse(response);
        return true;
    }

    debug('did not match', handler);
})

But I would consider that a hack 😛 And it wouldn't help much with readability.
PS. I totally support using map/filter/find etc (and some in its originally intended use), the only one that bugs me in some cases is forEach 🙂

I agree that there could be a possibility that forEach would be more readable/easier to understand in some circumstance, but preferring Higher-order functions could be more beneficial if used in conjunction with good function names.
eg ->
const respondToFirstSuccessfulRequest = (handler) => {
    const response = handler.handler(request);

    if (!response) {
        return true;
    }

    sendResponse(response);
    return false;
}

requestHandlers.every(respondToFirstSuccessfulRequest );

I'd like there to be some better real-life examples under this rule so the code clarity benefit would be clearer. I generally agree that the way Vlad rewrote your example is great - but probably wouldn't have come up with that myself.

Higher-order functions could be more beneficial...

Could you name some benefits of this specific example that the equivalent for-of example doesn't have?

PS. I would argue that respondToFirstSuccessfulRequest is not a good name for this function - it describes what the every call does when it uses this function, but not what the function itself does.
For example, requestHandlers.some(respondToFirstSuccessfulRequest) would also look like it responds to the first successful request, while in fact it does the opposite.
So even though the name of the function is very readable, I'd say the pattern as a whole is not, and can easily lead to mistakes.

In general, I think Array.some and Array.every should be used only for their original intent - to check whether the contents of an array match certain conditions.
The callbacks passed to them should be pure functions without side effects and the code should actually use the returned boolean.
Using these functions for special cases of iteration with side effects is, in my opinion, a dirty hack.
We could, however, make our own alternatives, like forEachUntilFalse(array, callback) or something like that.

Benefits are that the way you iterate the array is not relevant when trying to understand what the code does. Code should just say what is its intent.
In terms of readability both .some(respondToFirstSuccessfulRequest) and .every(respondToFirstSuccessfulRequest) are equivalent. Functionally they work differently but that should not pass developers own testing phase and thus not relevant in the later stages of code lifecycle.

Benefits are that the way you iterate the array is not relevant when trying to understand what the code does. Code should just say what is its intent.

Not sure if I understand what you mean. Would these two examples be equivalent because they both say what their intent is, despite iterating the array differently?
const respondToFirstSuccessfulRequest = (handlers, request) => {
  // code that iterates over handlers using a for-of loop
}

const respondToFirstSuccessfulRequest = (handlers, request) => {
  // code that iterates over handlers using a higher-order function
}

Or would the higher-order function example bring additional benefits?

Benefits are that the way you iterate the array is not relevant when trying to understand what the code does. Code should just say what is its intent.

Not sure if I understand what you mean. Would these two examples be equivalent because they both say what their intent is, despite iterating the array differently?
const respondToFirstSuccessfulRequest = (handlers, request) => {
  // code that iterates over handlers using a for-of loop
}

const respondToFirstSuccessfulRequest = (handlers, request) => {
  // code that iterates over handlers using a higher-order function
}

Or would the higher-order function example bring additional benefits?

yes :D

In this particular case using Higher order function would not give any benefits due to JS engines not prioritizing higher-order functions #DifferentEngines.

Given that this is a JS-specific styleguide, would it be ok to allow both for-of and higher-order functions for iteration? (While still recommending/enforcing higher-order functions for .map(), .find() etc?)

This may be just a naming thing, but @mjomble's example of using respondToFirstSuccessfulRequest  as the name of the wrapper function makes a lot more sense. I'd have no idea on how to name the HOF appropriately and Vlad's example naming does not look appropriate right now.
One of the most important impacts of these guidelines is to ease the code review process. Currently, it seems to me, reviewing these kinds of complicated uses of array methods is definitely not easy. But I'm still open for more real-life examples where they make more sense (if there are any).

I'm not sure if we wanted to enforce this rule with a linter or not. The reason why I want to keep it "Always use higher..." is that this way developers will think twice before using simple for loops. We have other rules that are enforced with linters but we have always allowed to write a comment with a reasoning - why you should bypass the rule here and disable linter for few lines.

Most of the times developers just use simple for loops as they don't know any better. Being more strict about using HOF we would force developers to learn and adapt and with time they will also know how to detect these corner cases where using HOF is not the most reasonable way.

I agree. It seems we're thinking of two options:

Make the wording very strict ("Always use HOF. Never use for-of.") and assume developers know that exceptions with comments are implicitly allowed
Be more explicit about the exceptions, e.g. "Always use HOF. Experienced developers may use for-of loops in these exceptions. But when in doubt, use HOF."

I prefer option 2


fcp plugin port utilization needs improvement

Appreciate Jeff Asher sending me a note about this. Thanks Jeff!
The fcp.go plugin seems to calculate FC port utilization based only on FCP traffic instead of the sum of FCP and NVMe/FC Traffic.
Version
bin/harvest version
harvest version 21.08.0-3 (commit 664b54f) (build date 2021-08-26T04:55:11-0400) linux/amd64

Discussed with Jeff this has been addressed now


Blue background color for desktop icons

When creating a desktop shortcut, the icon has a blue background, even though the original icon and the taskbar icon as well as the store icons have a transparent background. Is this something that can be configured?

Hello
For now in windows 11 we cant custom icons background color.


proposal: Proposal for Automatic Error Handling in Go

Go Programming Experience
Intermediate
Other Languages Experience
python,java,c,nodejs,swift,php,go
Related Idea

[ ] Has this idea, or one like it, been proposed before?
[X] Does this affect error handling?
[ ] Is this about generics?
[ ] Is this change backward compatible? Breaking the Go 1 compatibility guarantee is a large cost and requires a large benefit

Has this idea, or one like it, been proposed before?
Yes, the idea of simplifying error handling in Go has been proposed before in various forms, though not necessarily with the same implementation as this proposal.
Does this affect error handling?
Yes, this proposal does affect error handling, but in a positive way. Here are some key points on how it influences error handling in Go:

Simplification of Error Handling: The primary goal of the proposal is to simplify the repetitive nature of error handling in Go. By introducing the errctx context, developers can avoid writing multiple if err != nil checks throughout their code, leading to cleaner and more concise code.
Centralized Error Management: The proposed mechanism allows developers to define a centralized error handling strategy through the context’s handler function. This means that common error handling patterns can be defined once and reused, reducing code duplication and improving maintainability.
Improved Readability: With the use of errctx, the intent of the code becomes clearer. Instead of having multiple error checks cluttering the logic, the error handling is encapsulated within the context, enhancing the overall readability of the code.
Error Propagation: The proposal maintains the existing pattern of error propagation by returning errors from functions. It does not eliminate error returns; rather, it provides a more elegant way to manage them. The context allows developers to handle errors in a more controlled manner while still adhering to the standard practice of returning errors.
Cognitive Load Reduction: By reducing the number of explicit error checks, the proposal helps lower the cognitive load on developers. They can focus more on the business logic of their code rather than on boilerplate error handling.
Backward Compatibility: The proposal does not disrupt existing error handling paradigms. Developers can choose to adopt the new mechanism at their own pace, and existing codebases can continue to function without modification.

In summary, the proposal positively affects error handling by making it simpler, more organized, and easier to read, while remaining compatible with Go's existing error handling practices. It encourages cleaner code and enhances the overall developer experience without introducing breaking changes.
Is this about generics?
No, this proposal is not about generics. The focus of the proposal is on simplifying error handling in Go by introducing a context-based error handling mechanism (errctx) that reduces the repetitive if err != nil checks.
Proposal
First of all, I would like to note that I was very reluctant to make this step, but I really think it is simple and will greatly simplify error handling in Go.
Goal: Simplify repetitive if err != nil blocks across the codebase.
Example: Error handling.
if err != nil {
    // do stuff
    return value1, value2, err
}

We can generalize the inner block of the if statement, but we still have to process the result with an if statement to exit the outer function. This leads to too many lines of code for something that could be a one-liner.
How it will work
package errctx

type ErrorContext struct {
    err error
    handler func(error) bool // returns false to stop execution
}

// Create a new ErrorContext
func New(handler func(error) bool) *ErrorContext {
    return &ErrorContext{handler: handler}
}

// Execute a function in the context and capture errors
func (ec *ErrorContext) Do(fn func() error) {
    if ec.err != nil {
        return // If there's already an error, stop further execution
    }
    ec.err = fn()
    if ec.err != nil && ec.handler != nil {
        if !ec.handler(ec.err) {
            return // If handler returns false, stop further execution
        }
    }
}

// Get the final error
func (ec *ErrorContext) Err() error {
    return ec.err
}

Usage Example
package main

import (
    "errors"
    "fmt"
    "errctx"
)

func step1() error {
    // Simulate an operation
    return nil
}

func step2() error {
    return errors.New("step2 failed")
}

func step3() error {
    return nil
}

func main() {
    ctx := errctx.New(func(err error) bool {
        fmt.Println("Error encountered:", err)
        return false // Stop further execution
    })

    ctx.Do(step1)
    ctx.Do(step2) // Triggers error handling
    ctx.Do(step3) // Will not execute because ctx has an error

    if ctx.Err() != nil {
        fmt.Println("Final error:", ctx.Err())
    }
}

Requirements

The function after the ctx.Do() call should return one or more arguments.
The first return value should be a boolean indicating success.
Any additional return values should match the corresponding outer function types.
This approach will greatly reduce the number of lines written for error handling in an application. Developers can implement general error handlers and utilize them succinctly, leading to more maintainable code.
This method is not only helpful in error handling but also aids in reducing the cognitive workload in functions with multiple if, else, or switch statements.

Language Spec Changes
No response
Informal Change
No response
Is this change backward compatible?
Yes, the proposed change for automatic error handling in Go is designed to be backward compatible. Here are a few key points explaining why:

No Breaking Changes: The proposal introduces a new package (errctx) and a new mechanism for error handling, but it does not modify or remove any existing language features or error handling paradigms in Go. Existing code that relies on traditional error handling (i.e., if err != nil) will continue to function without any changes.
Optional Usage: Developers can choose whether or not to adopt the new errctx approach. Those who prefer the traditional error handling method can continue using it alongside the new method. This means that the proposal does not impose any changes on existing codebases, allowing developers to transition at their own pace.
Seamless Integration: The errctx context can be utilized in new functions or existing functions without altering their fundamental behavior. Existing functions can be wrapped in the new error handling context as needed, ensuring compatibility with existing error patterns.
Compatibility with Existing Patterns: The proposal complements Go’s existing error handling patterns rather than replacing them. Developers can mix and match the new context-based error handling with traditional methods as they see fit, which maintains the language's flexibility.

Overall, since the change does not disrupt current functionality or the syntax of the language, it remains backward compatible, allowing developers to integrate it without affecting existing code.
Orthogonality: How does this change interact or overlap with existing features?
No response
Would this change make Go easier or harder to learn, and why?

Whether the handler returns true or false, (*ErrorContext).Do returns immediately. Did you mean something else? A setting of ec.err to nil, or not nil, somehow?

I'm not quite sure that I follow the descriptions around the examples as the examples themselves don't seem to show what the text says it does. How would you write the following using your proposal?
v, err := strconv.ParseInt(str, 10, 0)
if err != nil {
  return fmt.Errorf("failed to parse string: %w", err)
}

我不太确定我是否遵循了示例周围的描述，因为示例本身似乎没有显示文本描述的功能。你会如何使用你的建议写以下内容？
v，err：=strconv. ParseInt（str，10，0）iferr！= nil{returnfmt. Errorf（“无法解析字符串：%w”，err）}

I'm not quite sure that I follow the descriptions around the examples as the examples themselves don't seem to show the functionality that the text describes. How would you write the following using your proposal?
v, err := strconv.ParseInt(str, 10, 0)
if err != nil {
  return fmt.Errorf("failed to parse string: %w", err)
}

This proposal is primarily aimed at addressing the repeated use of if != nil statements. If your code does not contain any duplicate if != nil statements, you may choose not to use this proposal. However, if if != nil appears multiple times, it is recommended to implement this proposal.
    ctx.Do(func() error {
        var err error
        result, err = strconv.ParseInt(str, 10, 0)
        return err
    })

    if ctx.Err() != nil {
        return 0, fmt.Errorf("failed to parse string: %w", ctx.Err())
    }


Staging env

Description
Made axios instance DRY
Fixes # (issue)
Type of change
Code cleaning and restructuring in src/Utils/Api.js
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[X] This change requires a documentation update

Change Status

[] Complete, tested, ready to review and merge
[X] Complete, but not tested (may need new tests)
[] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?
Tried each endpoint to make sure it works perfectly

[ ] Test A
[ ] Test B

Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] There are no merge conflicts

Updates Made Through Other Branch


KAFKA-9965: Incrementing counter cause uneven distribution with RoundRobinPartitioner

This code change provides fix for the JIRA ticket KAFKA-9965.
Added synchronized block to safely decrement the counter on the map when a new batch is created.

Nice finding! Could you add tests for this fix?

I was unable to modify the existing test methods. This RoundRobinPartitioner#onNewBatch is not being used anywhere in the existing test methods, hence there was no scope to check.
The onNewBatch overridden method only decrementing the counter in the map, so it needs to be tested from a method where it is being called.

I was unable to modify the existing test methods. This RoundRobinPartitioner#onNewBatch is not being used anywhere in the existing test methods, hence there was no scope to check.
The onNewBatch overridden method only decrementing the counter in the map, so it needs to be tested from a method where it is being called.

For example, you can verify the output of RoundRobinPartitioner#partition after calling RoundRobinPartitioner#onNewBatch to make sure the output is what you expect.
Partitioner partitioner = new RoundRobinPartitioner();
Cluster cluster = new Cluster("clusterId", asList(NODES[0], NODES[1], NODES[2]), partitions,
    Collections.<String>emptySet(), Collections.<String>emptySet());
int part = partitioner.partition("test", null, null, null, null, cluster);
assertEqual(expected, part);
partitioner.onNewBatch ("test", cluster, part);
part = partitioner.partition("test", null, null, null, null, cluster);
assertEqual(expected, part);

(this code is sample)

@chia7712 Thanks for helping me out. I am new here and trying to contribute for the first time.
It will take me some time to go understand the workflow completely.
However, I have added a new test case and looks fine to me. Please review.

Any update here??


Cow: Watch travelsluster.com

Cow requests the watch of the watch_keyword travelsluster\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

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


[RFC]: Build vllm-flash-attn from source

Motivation.
To use a custom version of PyTorch in vLLM, vllm-flash-attn needs to be built with the same version. The easiest way to achieve that is by building it from source during the vLLM build.
Proposed Change.
We propose 3 different ways of building vllm-flash-attn from source: absorbing the package completely, building it as a CMake dependency, or running a nested pip install. Currently, alternative 2 is preferred, but we'd like to get feedback on that. I will update this RFC once we decide on an approach.
More details here: https://docs.google.com/document/d/1njmz8NPT3am5gNcjbjzZG1BN-v8wIxWq6vb5QoctuZ0/edit?usp=sharing
Feedback Period.
No response
CC List.
@WoosukKwon @youkaichao @tlrmchlsmth @bnellnm
Any Other Things.
No response
Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

thanks for the great doc! I agree that alternative 2 looks the best.

Okay, proceeding with alternative 2b. Will post a PR here shortly


Remove duplicate RunCommand functions used for integration-cli

There are currently ~20 different functions that do essentially the same thing (running a command). Many of these are just single line wrappers around other commands.
This PR introduces a new function (RunCmd()) which:

handles all variations of the previous ~20 functions
provides a way to assert the expected result of the command, with a complete error message on failure

Also:

removes many (12) of the lesser used function and replaces them with direct calls to RunCmd()
updates the remaining functions to be thin wrappers around the new RunCmd(), and use Result.Assert() to provide better error messages
removes unmarshalJSON() which was just an alias for json.Unmarshal

Once this PR is merged I can continue to convert some of the lesser used functions to direct calls to RunCmd() to further reduce the number of functions.
The "new" canonical way looks something like this:

// Expect the command to be successful
result := icmd.RunCommand("echo hello world")
result.Assert(c, icmd.Expected{})

// Expect the command to fail
result := icmd.RunCommand("bash -c 'echo oops; exit 3'")
result.Assert(c, icmd.Expected{
    ExitCode: 3,
    Out: "oops",
})

If you need to set anything on the command (directory, env, timeout, stdin, stdout), you can use the RunCmd() call and pass a Cmd{} struct which accepts all of these options.

I'm not really a fan of using shlex for this. The old helper functions took a variable number of arguments, one for each command argument. I thought this worked well. Having the helper lex the command line and split the arguments will be problematic if/when some args contain spaces or other metacharacters. Code authors will have to be careful to escape things in many places as if they were writing shell scripts. Also, I expect we'll end up with a lot of places where we use string concatentation or fmt.Sprintf to assemble commands from individual arguments, only to have them split into args again by shlex. For example, I see that exec.Command(dockerBinary, "unpause", container) became return icmd.RunCommand(dockerBinary + " unpause " + container).Error. I find the former a lot cleaner.
It's good that there's a mode that allows the arguments to be explicitly listed, but what's the value of supporting shell lexing at all? I'm afraid it will encourage mistakes and bad code.

The old helper functions took a variable number of arguments, one for each command argument. I thought this worked well.

You can still do that with CommandArgs. It works, but it can make the tests a lot harder to read. Using shlex moves us closer to a more bdd style of test, where the test is actually readable.

Having the helper lex the command line and split the arguments will be problematic if/when some args contain spaces or other metacharacters

I don't understand this. That is what quotes are for. It lets the tests read the same way as you would run the command on the command line.

I expect we'll end up with a lot of places where we use string concatenation or fmt.Sprintf to assemble commands

Ya, right now it's kind of a mix. There are cases when it's a lot more readable to have just a single string, and there are cases where it doesn't make any improvement (like in the example you found).  I tried to support both.

This is now passing all suites (except for win2lin which I think is still broken?).
I've squashed a bunch of the commits

LGTM

I'm also not really a fan of shlex here. There are only a handful of places where it has been added so the usage is not consistent. Half of the places where it's added use string concatenation with added spaces or sprintf. And for some reason just seems so unsafe to me. Are there more maintainers who like shlex here and see it as a good direction for our tests?

If no one else likes the shlex I can remove it. It could also be added as a helper method for the few cases where it is an improvement, and keep the default the args list.

Ok, shlex is gone, and the build is finally green!
This is ready for another look.

Maybe instead of result.Assert(c, icmd.Expected{}) c.Assert(result, icmd.Check, optReq) is more readable? Although most of the cases you only check error so maybe there aren't even lots benefits for having a special function.

Maybe instead of result.Assert(c, icmd.Expected{}) c.Assert(result, icmd.Check, optReq) is more readable?

That would force it to be tied to gocheck. The way it is now it works with testing.T, or even outside of a test framework by using result.Fails().

Although most of the cases you only check error so maybe there aren't even lots benefits for having a special function.

I think you are missing one of the most important parts of result.Assert(...) which is the error message you get back. It contains the command, stdout/stderr/error, and the failed expectations. Without this it is much harder to debug these exec failures.
I think it would be possible to create a custom gocheck comparator, but it would be a lot more verbose, and it would only work within a go-check suite, which is kind of an unnecessary restriction.

I guess I could make the Expected use the gocheck comparator interface, so it could be written as
c.Assert(result, icmd.Expected{...})

If that reads better, but it seems pretty similar to me.

That would force it to be tied to gocheck. The way it is now it works with testing.T, or even outside of a test framework by using result.Fails().

The decision base integration tests on gocheck  was made a long time ago(I had no part in that btw). We should embrace it instead of having different styles in our tests.

I think you are missing one of the most important parts of result.Assert(...) which is the error message you get back. It contains the command, stdout/stderr/error, and the failed expectations. Without this it is much harder to debug these exec failures.

Checker function should let you define all the same outputs. I believe simple error checks usually also include the output in the last parameter atm.

I guess I could make the Expected use the gocheck comparator

I find it better. Maybe Expected isn't a best name though.

Ok, I'll leave the existing interface for places where the check.C isn't available, and try adding a custom checker that outputs the same result. The Expected object is still going to be necessary for many cases, but I guess the default of "no error" can be done without it.

@dnephin Only place I can see Assert/Fails used outside gocheck is unit testing the same package that adds them. We probably don't need it for that, or it is even bad because if they fail you don't know if the condition or the assertion logic failed. We could probalby just check the public methods instead including the one that will be used by gocheck.

There are still cases where a method like Fails() (with a better name) are valuable, even if it's within the integration test suite. You might want to make some assertion about something outside of the exec command, or make a more complex assertion about output,  other than just "contains".
When that assertion fails you want to be able to provide more context about the failure, which comes from Fails().  But I think we do need to rename it, because it doesn't read well right now.
The Assert() I guess we can remove and replace with a checker.

I just looked into the Checker interface again, and I don't see any way to write out a custom error message. You don't even get access to the check.C object which would let you log some messages directly. Am I missing some way that I can print a custom messages from a checker?
I'm back to thinking that result.Assert() is the right way to do this. We can definitely improve the names for these functions to make it read better.
Some thoughts:

rename Fails() to something like Compare, so it would read: result.Compare(Expected)
create a constant for the default Expected object, so it would read result.Assert(c, icmd.ExpectNoError)
Expected could also be renamed to something else. I don't have any better ideas right now.

Ok, I've made the following changes:

removed result.Assert() and added Matches which is a gocheck Checker
created a constant for the default Expected: c.Assert(result, icmd.Matches, icmd.Success)
Renamed Fails() to Compare()

LGTM.
Could you squash? Maybe to 2-3 commits.

Cool, squashed to 3 commits

LGTM 🐸


"jdbc:h2:mem" doesn't work with Spring Boot 1.2.0.RC2.

"jdbc:h2:mem" doesn't work with Spring Boot 1.2.0.RC2.
"jdbc:h2:mem" works fine with "com.h2database:h2:1.3.176",
but it doesn't work with "com.h2database:h2:1.4.182".
Spring Boot 1.2.0.RC2 uses "com.h2database:h2:1.4.182".
So I guess "jdbc:h2:mem" needs to be changed to something like "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1".

@izeye Sorry it took my awhile to clean up this guide. Hopefully, it's a bit more up-to-date and using Spring Boot conventions.

@gregturn No, problem. Thanks for the update :-)


chore: remove sqlalchemy dependency upper bound

Signed-off-by: Allison Suarez Miranda<EMAIL_ADDRESS>
Summary of Changes

Tests

Documentation

CheckList
Make sure you have checked all steps below to ensure a timely review.

[ ] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[ ] PR includes a summary of changes.
[ ] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does

Hi @xuan616, I see you were the last person to edit the upper bound on the sqlalchemy dependency for databuilder, and that it is also a dependency for rds - would it be fine to remove the upper bound or is there a reason it needs to be limited?

curious: what feature do you need for sqlalchemy (and how it is compatible with all other connector that depends on sqlalchemy ?

We are upgrading out version of airflow, so we need sqlalchemy to be compatible with that


cannot unify range_state32 and range_state64

This script
from numba import njit

@njit
def foo(a):
    if a:
        for i in range(a):
            a += i
        i = 1.2
    return a, i

print(foo(1))

foo.inspect_types()

causes this error:
  File "/Users/sklam/dev/numba/numba/typeinfer.py", line 45, in add_type
    % (self.type, tp, self.var))
numba.errors.TypingError: Failed at nopython (nopython frontend)
cannot unify range_state64 and range_state32 for '$6.3'

There are several issues here:

the fact that the first i variable (the loop iteration result) is inferred as float due to the later assignment
the fact range_state64 and range_state32 cannot be unified
the fact that calling range(float64) is typed as returning a range_state32

This appears to work now (Numba 0.37). Closing. Please reopen if this is still an issue.


[MINOR] Register more classes with Kryo

Change Logs

Register classes used in bloom index lookup

Impact

Reduces serialized size which in turn reduces shuffle overhead

Risk level (write none, low medium or high below)
None
Documentation Update
Describe any necessary documentation update if there is any new feature, config, or user-facing change. If not, put "none".

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

cool Is there a way we can search through entire code base and ensure we have all of them tracked here that needs kryo serialization?

@nsivabalan there is a way to configure Kryo to fail if you encounter an unregistered class. We could do that to flush out the remaining classes


Possible infinite loop with hostname canonicalization

Originally reported in https://github.com/microsoft/vscode-remote-release/issues/9801
To summarize, this user has CanonicalizeHostname yes, and when we try to resolve the config, ssh-config seems to be stuck in an infinite loop of calling nslookup. I haven't been able to reproduce the issue but I see that it could maybe happen. When using a different DNS server, nslookup might return a different result from what you are looking for.
This is
https://github.com/cyjake/ssh-config/blob/2a134ab970b214730b67df9906e3ce26c4b03dbd/src/ssh-config.ts#L229-L230
Even though I didn't repro it, maybe you see the issue- I can try to debug more or get more information if this report isn't enough.o

The loop itself doesn't look like can be infinite. Can you extract the problematic ssh config? I'll try to reproduce the issue as well.

The minimal example is at: https://github.com/microsoft/vscode-remote-release/issues/9801#issue-2254311009
The original full config is at: https://gist.github.com/grawity/2c989214f6b81130a31fe42912ca0c5c
I don't know if it's that particular loop – although it definitely has the wrong expectations as to the output of nslookup (which is not guaranteed to say server can't find – it actually says ** <hostname> can't find on Windows), and it's the only mention of nslookup within the extension that I had found.

will vscode try to compute the ssh-config again if the returned Host is not available? The loops within SSHConfig#compute would not stuck no matter the nslookup result.
I should still change the way to determine the result though. Can you change the code from
... {stdout:s}=(0,i.spawnSync)("nslookup",[o]);if(!/server can't find/.test((s.toString())) ...

to
... {status:s}=(0,i.spawnSync)("nslookup",[o]);if(status===0) ...

and see if the problem persists or not?

@roblourens @grawity Does the problem persist with the main branch ssh-config? I'll release a patch version today if everything is ok

Thanks for reminding; I finally got around to trying the manual change you suggested last week https://github.com/cyjake/ssh-config/issues/81#issuecomment-2069093523 (since I probably can't rebuild the extension myself), but it does not seem to have any effect on the overall problem. I still see vscode spawning the same nslookup.exe *.example.net (always trying to do a *.foo lookup for whatever foo was the 1st item in my CanonicalDomains).

what was the exact CanonicalDomains? I wonder where does that *. come from. Anyway, I still don't think the endless loop is caused by the library itself, further investigation on the referencing issue is needed.

I linked the exact ssh/config earlier but it happens regardless of the specific CanonicalDomains value, as long as it has at least two domains, e.g. I also tried with example.net example.com and got a nslookup *.example.net running.

I looked at my code again to be sure that we wouldn't be calling into ssh-config in a loop. I'm pretty sure that's not the case.
@grawity if you are up for making more manual changes, if you wanted to hack any console.log into this code, then those should show up in the Extension Host output channel in vscode.

@roblourens if no Host were found, will the extension try to parse the config again?

No

I poked around some more. The loop is definitely inside compute(), where doPass() calls itself again, with exactly the same parameters.
The change from stdout to status probably didn't have the right effect, 1) because nslookup on Windows never exits with any other status than 0, though (and 0 typically means success, >0 is failure), and 2) because the "can't find" message actually goes to stderr, not stdout, so even if the regex was correct it would've never matched anything...
Either way, though, if I comment out the whole if(status) recursive call, then it no longer gets stuck completely.
The fact that it makes *.domain queries is somewhat suspicious though. Shouldn't that have been host.domain? In my case, I see that compute("ember") was initially called, so I would have expected it to try ember.domain1, ember.domain2, etc. – but since it found the CanonicalDomains setting underneath Host *, that seems to overwrite the hostname...

@grawity sorry about overlooking the *.domain issue earlier, it clearly is a bug in the library. I've added a test case and a fix to work around said scenario, also included a new check regarding windows nslookup stderr. Could you help taking a look about the new pr, try to run the tests on Windows machine?

@roblourens the dead loop is indeed caused by the recursive doPass() calls, thanks for reporting the issue and the quick feedbacks!

v4.4.4 released

Thanks @cyjake and thanks @grawity for the investigation! I've adopted this in the extension (but it won't be published for a few days as releases are paused for the Build conference)


Example Template not building

Expected Behaviour
After setting up the sender_id on Config.xml it should work on build.phonegap.com and build a example ok app.
Actual Behaviour
After setup the sender_id and send to build it returns the error "Error - One of your plugins requires a parameter: SENDER_ID" version on the template plugin 1.6.2
Reproduce Scenario (including but not limited to)
Steps to Reproduce
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
Android , Windows and IOS
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
All
Cordova CLI version and cordova platform version
Cordova CLI
cordova --version                                    # e.g. 6.0.0
cordova platform version android                     # e.g. 4.1.1
Plugin version
Phonegap-plugin-push 1.62 ( come with the template example)
cordova plugin version | grep phonegap-plugin-push   # e.g. 1.5.3
Sample Push Data Payload
Sample Code that illustrates the problem
Logs taken while reproducing problem

@edubaka what does your config.xml look like? Also, what template are you using? URL please or reproduction scenario.

Closing, inactivity


Is .Done() equal to JS .finally()?

I've read through the source and don't think .Done(resolved, rejected) is equal to JavaScript's .finally(), is that correct? I know that .finally() is not officially in the spec, but almost all non-native Promise implementations offer the functionality and I think it'd be quite useful for game-development purposes as well.
In that case, would you mind adding a .Finally(Action) method? I'll see if I can create a pull request myself if it's not already on your agenda.
Best Regards
Philipp

There is an open pull request for Finally() support: https://github.com/Real-Serious-Games/C-Sharp-Promise/pull/20

Does anyone actually have a spec for how Finally should work?

The bluebird library has some good explanation about the behavior (http://bluebirdjs.com/docs/api/finally.html).
Some core points:

Finally() should return a promise that is chained to the original promise
Finally() can not modify the value of the original promise (i.e. it cannot return a new value) BUT
Finally() can return a new promise, that is chained. When this chained promise fulfills, the value from that promise is discarded and the promise is fulfilled with the original promise value (see point 2). When the chained promise is rejected, than the original promise is rejected with that error. So Errors get propagated from Finally()-handlers, but values do not.

See issue #30 on how done works and #29 regarding finally support.


MAP: minor text update (adding/removing space)

@apercas for some reason the title text in the summary section is not appearing bold. Can you add that?


Error: GOPATH not set, but it is.

I'm trying to run the install script but it keeps telling me that it is not set but I did set it.
echo $GOPATH
/home/ichig0/go

Is that the wrong way to do it?  I'm using Ubuntu 20.04  on linode.

Please, take a look at the installation guide, this section
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Please, take a look at the installation guide, this section
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

@ichig069 do you still need help on this matter?

I got it past the GOPATH not set error. Figured out that I had to run it
without sudo, and then provide my password afterwards. I'm at about 50%
done so I should be good to go. Thanks bro!
On Wed, Feb 3, 2021 at 10:35 AM six2dez<EMAIL_ADDRESS>wrote:

Closed #118 https://github.com/six2dez/reconftw/issues/118.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/six2dez/reconftw/issues/118#event-4285965812, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ASVI27WY7M3PCSWTJUQFQXLS5FULXANCNFSM4W3Z7AJQ
.


High increase in scrolls after change to HTTPS

Versions:
OpenSearch 2.9.0 cluster
Describe the issue:
We have a service running in spark cluster that reads a lot of documents in a batch from OpenSearch cluster. Due to recent change of cluster to use HTTPS, we have observed high increase in scrolls which eventually breaches limit of 500 scrolls, stopping the service.
Error:
Caused by: org.opensearch.hadoop.rest.OpenSearchHadoopInvalidRequest: org.opensearch.hadoop.rest.OpenSearchHadoopRemoteException: rejected_execution_exception: Trying to create too many scroll contexts. Must be less than or equal to: [500]. This limit can be set by changing the [search.max_open_scroll_context] setting.
This is not the case when cluster uses HTTP. It feels strange that HTTPS can have impact on scroll number.
Method used for fetching data: sparkContext.openSearchJsonRDD(resource, query, cfg)
Query used: { "query": {"query_string": {"query": "someTime:[\"2023-01-01T01:27:00.334Z\" TO \"2023-01-01T01:30:00.334Z\"]"}}}
One solution to this would be to increase scroll limit, but that impacts cluster performance.
Does anyone know why is there increase in scrolls after HTTPS update? API issue?
Please let me know if you need more info to clarify the problem.

After some investigation, https was not the issue.
read role does not include scroll clearing permission, so the users were creating a lot of scrolls without clearing them.
Now that permission has been added, no scroll issues have been observed.


LUCENE-10623: Error implementation of docValueCount for SortingSortedSetDocValues

See: https://issues.apache.org/jira/projects/LUCENE/issues/LUCENE-10623

Thanks for catching this bug. The fix is a bit wasteful in that it requires iterating over ords twice, once to count them and another time to iterate through them. Maybe we should change DocOrds to also record the number of ords for each doc (e.g. using a GrowableWriter), and stop recording zeroes to signal that all ords for a document have been consumed?


A few changes to make librs232 work with lua5.2

I cannot find a way to make the configure.in work with lua5.2, so I just commented it.

@srdgame Thanks for taking care of this project! I'll simply archive it and point everybody to your repo.