Feature branching

Implementation of #3
Currently there is one function get_branching_variable to obtain the branching variable itself and branch_on_variable! which creates and adds the new nodes to the tree.
The get_branching_variable defaults to call get_branching_variable(tree::BnBTree, ::FIRST, node::AbstractNode)
which always returns the first discrete variable which is currently not approximately discrete.
At the moment it returns -1 if no such variable can be found. Which should never happen but maybe it would be better to throw an error?
The index that is returned is then used by branch_on_variable! to create new nodes. As many nodes as wanted can be created this way. In the test cases only two nodes (standard left and right with setting lower/upper bound of the variable) is implemented currently.
I've also added the function get_discrete_indices which is called in the init step. It should simply return the list of indices which should be discrete in the end. Not sure whether it would make sense to let it default to all but it's also fairly simple to add the method.

@matbesancon are you happy with the general structure of the branching methods?
Thanks for grammar fixes :wink:

yes it's great, really clear now :)

It probably makes sense to split up the branch on variable part into two steps, right?
One which creates the nodes and then they are getting added internally.
This would simplify created something like strong branching which would create nodes and evaluate them without adding them to the tree.

Maybe this structure gives us more control.

a single add_node! function is probably fine for now

Anything else you would like to have in this PR @matbesancon ?

nope I think that's a great start!


Add Provider API script for Freesound

Fixes #16
This PR adds the script to pull the audio data from Freesound API.

@obulat What do we need here to unblock from draft?

I am not sure which URL to use as the main audio URL:
The main download URL, usually for a WAV type, requires OAuth2 authentication, which is not so easy to do as a part of an Airflow workflow. Sample URL: https://freesound.org/apiv2/sounds/401082/download/
There also are mp3 previews that seem to open in incognito windows, although the API docs state that you need authorization (token or Oauth2) to get them. Example: https://freesound.org/data/previews/401/401082_7725148-hq.mp3
Here is a sample of what information we can get from the freesound API:
{
  "title": "Click_08.wav",
  "creator": "s-cheremisinov",
  "creator_url": "https://freesound.org/people/s-cheremisinov/",
  "foreign_identifier": 401082,
  "foreign_landing_url": "https://freesound.org/people/s-cheremisinov/sounds/401082/",
  "audio_url": "https://freesound.org/people/s-cheremisinov/sounds/401082/",
  "duration": 500,
  "license_info": [
    "cc0",
    "1.0",
    "https://creativecommons.org/publicdomain/zero/1.0/",
    "http://creativecommons.org/publicdomain/zero/1.0/"
  ],
  "meta_data": {
    "description": "Digital design sound of pressing a mouse button.\r\nThis pack of sounds and transitions is made using the software \"Ableton Live\" and it is completely digital, without live recording. Exceptionally sound design. Made in early autumn of 2017. It is ideal for any video and motion design work. I made it as a sign of respect for my friends working with Videohive.",
    "num_downloads": 32,
    "download": "https://freesound.org/apiv2/sounds/401082/download/",
    "previews": {
      "preview-lq-ogg": "https://freesound.org/data/previews/401/401082_7725148-lq.ogg",
      "preview-lq-mp3": "https://freesound.org/data/previews/401/401082_7725148-lq.mp3",
      "preview-hq-ogg": "https://freesound.org/data/previews/401/401082_7725148-hq.ogg",
      "preview-hq-mp3": "https://freesound.org/data/previews/401/401082_7725148-hq.mp3"
    }
  },
  "raw_tags": [
    "button",
    "mouse",
    "click"
  ],
  "audio_set": "s-cheremisinov Free Sound Pack",
  "set_url": "https://freesound.org/apiv2/packs/22598/",
  "alt_files": [
    {
      "url": "https://freesound.org/apiv2/sounds/401082/download/",
      "format": "wav",
      "filesize": 88244,
      "bit_rate": 1379,
      "sample_rate": 44100.0
    },
    {
      "url": "https://freesound.org/data/previews/401/401082_7725148-lq.ogg",
      "format": "ogg"
    },
    {
      "url": "https://freesound.org/data/previews/401/401082_7725148-lq.mp3",
      "format": "mp3"
    },
    {
      "url": "https://freesound.org/data/previews/401/401082_7725148-hq.ogg",
      "format": "ogg"
    },
    {
      "url": "https://freesound.org/data/previews/401/401082_7725148-hq.mp3",
      "format": "mp3"
    }
  ],
  "bit_rate": 1379,
  "sample_rate": 44100
}

Have we confirmed the download link doesn't work with token auth?
https://freesound.org/docs/api/authentication.html#authentication
Otherwise, we might need to make a dag that simply keeps the oauth token alive at whatever duration they last, which would be annoying but tolerable.

Have we confirmed the download link doesn't work with token auth?

Yes, if you try opening the download link when not signed in, you get redirected to a sign in page.

@obulat related discussion on the Oauth2 flow here: https://github.com/WordPress/openverse-catalog/discussions/208
It's would be nice to have one more pair of 👁s on that!

@obulat looks like there's some new feedback here and now that you've gotten a reply from Frederic it'd be great to pick this work back up. It's looking great so far 👍

@obulat looks like there's some new feedback here and now that you've gotten a reply from Frederic it'd be great to pick this work back up. It's looking great so far 👍

@zackkrida, I've changed the way files are saved now: the main file is the hq mp3 preview, all other files are saved as altfiles. I've also added the head request to get the main file's size. It should probably be removed later to not overload the API, but I think we need to have it for the initial ingestion.

Seeing this locally @obulat

Should we have a more explicit error message when authentication fails? CC @AetherUnbound. Here's the current output:
[2021-11-10 20:35:52,020] {freesound.py:69} INFO - Begin: Freesound script
[2021-11-10 20:35:52,745] {requester.py:48} WARNING - Unable to request URL: https://freesound.org/apiv2/search/text/?format=json&token=not_set&query=&page_size=150&fields=id%2Curl%2Cname%2Ctags%2Cdescription%2Ccreated%2Clicense%2Ctype%2Cdownload%2Cfilesize%2Cbitrate%2Cbitdepth%2Cduration%2Csamplerate%2Cpack%2Cusername%2Cnum_downloads%2Cavg_rating%2Cnum_ratings%2Cgeotag%2Cpreviews&page=1&license=Attribution.  Status code: 401
[2021-11-10 20:35:52,745] {requester.py:82} WARNING - Bad response_json:  None
[2021-11-10 20:35:52,745] {requester.py:83} WARNING - Retrying:
_get_response_json(
    https://freesound.org/apiv2/search/text,
    {'format': 'json', 'token': 'not_set', 'query': '', 'page_size': 150, 'fields': 'id,url,name,tags,description,created,license,type,download,filesize,bitrate,bitdepth,duration,samplerate,pack,username,num_downloads,avg_rating,num_ratings,geotag,previews', 'page': '1', 'license': 'Attribution'},
    retries=2)

Should we have a more explicit error message when authentication fails? CC @AetherUnbound. Here's the current output:

Hmm, this is definitely an improvement we could add onto the requester object. Possibly that it would catch 401s and fail-fast? Did the script continue after that and try to run more requests or did it stop? I don't think there's a case where a request would 401 in one instance and 200 in another.

Should we have a more explicit error message when authentication fails? CC @AetherUnbound. Here's the current output:

Hmm, this is definitely an improvement we could add onto the requester object. Possibly that it would catch 401s and fail-fast? Did the script continue after that and try to run more requests or did it stop? I don't think there's a case where a request would 401 in one instance and 200 in another.

@AetherUnbound the script did stop after the failure.


sys/config: Allow spaces in value passed to CLI

This is somewhat hacky but I think it solves the common case in a straightforward way.  Currently it is not possible to write a conf value containing spaces using the CLI.  If the user passes multiple values to the config write CLI command, e.g.,
config id/serial firstname lastname

the CLI command fails.
This PR changes the config command handler so that spaces are allowed.  All value tokens are concatenated into a space-delimited string, and the result is written to the config setting.
Issues with this approach:

All whitespace characters get converted into regular spaces.  I don't think this is a huge issue since it is better than not allowing spaces at all.

I think anything better would be overkill (e.g., shell-style parsing).

how about using "foo bar" syntax?

how about using "foo bar" syntax?

That is what I meant by "shell-style parsing".  That just seemed like a bit much ("overkill").
I don't think it's a deal breaker, but a quoting scheme also has backwards-compatibility implications.  Tokens get split by the shell package, then the token list gets passed to the appropriate command handler (as an argc, argv pair).  So any changes we make to token splitting will affect all shell commands.  If we want quoting to preserve literal text, then that changes the meaning of " characters.  If a user currently puts quotes in shell arguments, this solution would break their use case.  Of course we would add a way to escape quote characters (e.g., \"), but again - backwards compatibility.
My preference is to go with this simpler solution now.  This solution is compatible with any smarter feature that gets added to the shell package, so we could always add that later as needed.  If you (or anyone else) deem this as the wrong solution, I am totally fine with that - I can take a look at implementing proper argument parsing.


fix for recording video in simulators

When recording video for simulators using the command;
fbsimctl stream --bgra --fps 12
I was getting garbled frames. I opened a thread in stack exchange as well - https://superuser.com/questions/1345998/converting-bgra-stream-to-mp4?noredirect=1#comment2016263_1345998
After playing with various pixel format transformation and reading several blogs online, this change is working as expected. I tried on iPhone X simulator with the following command;
./fbsimctl stream --bgra --fps 12 - | ffplay -f rawvideo -video_size 1125x2436  -framerate 12 -pixel_format bgra -
Please let me know if this is the right thing to do.
--Suman

BTW, I got inspired by this - https://github.com/BradLarson/GPUImage/blob/master/framework/Source/GPUImageStillCamera.m
to come up the change request. If it is the right thing to do, I will add this link as the comment to credit to the author.


[Feature] feat(rpc-types/eips): Unify or provide From impls for duplicated types, such as AccessList

Component
consensus, eips, genesis, rpc
Describe the feature you would like
Right now, there's a few types between rpc-types and eips which could be consolidated, such as the AccessList type, although the types in eips do implement different utilities like arbitrary traits, while the types in rpc-types are only concerned with rpc.
If we don't want to unify them, we can provide From impls between them to avoid having to write conversion functions whenever we use both.
Additional context
No response

I think we want to unify them, Accesslist format is always the same
moving this to the lowest common trait in the tree makes the most sense to me (eips)?

Closing as i believe that access list has been pushed down


Project Request

@codeitlikemiley I've really enjoyed this - so thank you very much.
Is it possible to do this same setup except using the quasar framework?
I'm too thick to get the passport authentication stuff to work as it should, hence why I love this vuetified.
However, I think I'd like the way quasar framework is set up (more complete?).

i know quasar but , i havent got free time , to create a starter app with that  stack...


geom_line, geom_point order and Date Axis AutoFormat

[Could have been fixed in this newer version but for the previous version:]
The order of plotting geom_line and geom_point affects the scale_x_date immensely, to the point that if geom_point is used there is a crazy amount of excess whitespace left and right of the datapoints.
This is particularly hard to rectify since date limits can't be easily placed (in non-numeric form at least) on the axis.

thanks @jpryda! can you provide a reproducible sample?

I'll try to tomorrow.  My previous code is pretty broken right now since upgrading.  geom_line() isn't working for multiple lines (whilst geom_step does).


build: attempt work around for NVM build issue

More info at https://github.com/nvm-sh/nvm/issues/2574

Checklist

[x] the contributor license agreement is signed
[x] commit message follows commit guidelines
[ ] tests are included
[ ] screenshots are included showing significant UI changes
[ ] documentation is changed or added

Description of change

Excellent, test failures are just flakes. Merging.


Feature request: get number of lines in a block?

Apologies if this features exists already. Given some kind of code block (like a MethodDeclaration for example), I'd like to get the number of lines in that block. The AST gives me the start position (line, column) of the block, but not end position.
If this feature exists, I would appreciate pointers to it. If it doesn't I'm happy to discuss or contribute with a PR.
Thanks for your work on this project!

Also looking for such feature, what's the progress?

I didn't end up pursuing this. For this and a few other reasons (unrelated to javalang), I ended up using Java and the Eclipse JDT API to do what I needed.

I've been using the following piece of code (previously suggested by @lyriccoder's in here) to find the line number of the last line of code in a ClassDeclaration, MethodDeclaration, etc.
def find_end_line_number(node):
    """Finds end line of a node."""
    max_line = node.position.line

    def traverse(node):
        for child in node.children:
            if isinstance(child, list) and (len(child) > 0):
                for item in child:
                    traverse(item)
            else:
                if hasattr(child, '_position'):
                    nonlocal max_line
                    if child._position.line > max_line:
                        max_line = child._position.line
                        return

    traverse(node)
    return max_line

You can then do something like node.position.line - max_line to compute the number of lines in a node.
Although this function seems to be working just fine, it returns the line number of the last line of code, not necessary the last line number of a node.  One may expect the last line to be the line where } appears.
It would be great to have such feature out-of-box.


Using calicoctl to update settings after etcd is up but while calico-node is starting results in missing configuration (race?)

Expected Behavior
Settings applied using calicoctl should be robustly applied in all cases, if calico-node is starting up and misses the initial settings update it should notice promptly and reconfigure.
Current Behavior
We use calicoctl in a kubernetes job that runs as part of our Calico chart.  Sometimes (not always) we'll see the expected configuration hasn't been applied to one or more nodes.
It looks like there is a race during node startup where it gets state (from etcd) when it first starts, but then misses the update event that happens a few milliseconds later.
Possible Solution
One possible solution we can use locally would be to defer he calico-node pods from starting until we apply the settings, but for subtle reasons this won't work as is (see my comments towards the end of https://review.openstack.org/#/c/600841/ for more details).
Steps to Reproduce (for bugs)
It's not easy to reproduce, I'm hoping someone with knowledge of the code/system has some insight.

install (deploy) calico-node and simultaneously run calicoctl to change settings from default values
check the outcome
if it looks ok, repeat ...
It probably helps to trigger this on busy systems where calico-node startup/progress is slowed allowing the settings update to occur in a larger time window.

Your Environment

Calico versions 2.6.x and 3.2.x
Orchestrator version: Kubernetes 1.10.x
Operating System and version: Ubuntu 16.04 (typically)
Link to your project (optional): https://github.com/openstack/openstack-helm-infra/tree/master/calico

@cwedgwood what settings exactly is the calicoctl job modifying, and what command is it using to do so?
That would be really helpful in identifying what's going on here.

@caseydavenport I wonder if the fix in https://github.com/projectcalico/confd/pull/204/commits/a6230587a753c04763bec4e17c9827cb7cf63c70 would address this?  It certainly looks like it might.

Yes, that sounds like a likely candidate. Have you tried reproducing this using a build with that commit?

@caseydavenport a quick test of a problematic setup showed it was still getting the configuration wrong but only on one calico-code (the "first" one)

@cwedgwood Closing due to inactivity, please provide an update if this is still an issue and we'll re-open it. It would be awesome if you could try to reproduce it with the latest release and let us know if it's a problem or not, and provide us with an example of what config you're updating.


Update Aeneas to remove the marker traits

Today, we have to call Charon with the option --hide-marker-traits, which is quite annoying and error prone.

Without this option, extracting code such as the following fails:
pub enum CList<T> {
    CCons(T, Box<CList<T>>),
    CNil,
}

This is due to the translation of trait instance ids: https://github.com/AeneasVerif/aeneas/blob/6377992c84f1128103a964b2cf064a3e2e6d7159/compiler/SymbolicToPure.ml#L462
The solution would be to add a prepass to remove these, similarly to what is done in Charon.

I'd prefer if aeneas called charon by itself

Yes that makes sense. I opened an issue: https://github.com/AeneasVerif/aeneas/issues/349


Add email notification on project/release removal

Until now, when there are multiple contributors on a single
the project, if one of them deletes a release or the whole
project the other contributors don't get any notification,
which is problematic.
Connected with issue https://github.com/pypa/warehouse/issues/5714
Signed-off-by: Martin Vrachev<EMAIL_ADDRESS>

Hi @MVrachev, is this still a WIP? I don't see any changes here that actually use these new templates.

I consciously split the implementation of the issue https://github.com/pypa/warehouse/issues/5714 into multiple pull requests.
Here I wanted to discuss with you the text in the templates themselves because it's my first time using Jinjra2.
There will be another pull request which will use those templates.

Thanks for the explanation. Let's keep everything in one pull request, the maintainers have limited bandwidth and it's easier for us to review a single feature-complete PR.
If you have any questions about the implementation, feel free to ask in #5714.

@di I updated the unit tests in the pr.
The tests I touched are not failing but some others do, but it seems they are failing in the master branch too.
I think the pr is ready for a review. It's complete.

I addressed your feedback @ewdurbin.
I was wondering what word should I use when there is a deletion of a particular release file in a project.
Should I call it removed_package because according to https://pypi.org/help/#packages:
A "file", also known as a "package", on PyPI is something that you can download and install. Because of different hardware, operating systems, and file formats, a release may have several files (packages), like an archive containing source code or a binary wheel.

I addressed your feedback @ewdurbin.
I was wondering what word should I use when there is a deletion of a particular release file in a project.
Should I call it removed_package because according to https://pypi.org/help/#packages:
A "file", also known as a "package", on PyPI is something that you can download and install. Because of different hardware, operating systems, and file formats, a release may have several files (packages), like an archive containing source code or a binary wheel.

Thanks for those changes @MVrachev!
This question actually does stir up the fact that we're only notifying if a Project or Release as whole is removed.
If notification for single file removal is added (which is probably a good idea), I'd suggest that we use something along the lines of:
send_removed_release_file_email or send_removed_file_email. At the verbose extreme... send_removed_project_release_file_email works... as it follows the whole "chain" down (Projects hold Releases, Releases hold Files).
I'm mostly sticking to the names that we use within the codebase/schema; see Project, Release, and File.
Overall, package is just kind of a messy term. If anything this nudges me to consider working to shore up that FAQ entry :)

Are there other changes required you want me to do @ewdurbin ?
If not, can we merge this because I want to continue my work on issue #5714 and add email notifications when:

Send a email notification to all collaborators when a file from a version is deleted.
Send a email notification to all collaborators when new version of the package is uploaded.

It looks like there are some issues with test coverage and listing, once those are resolved this is good to go, thanks @MVrachev

@ewdurbin you were right.
Sorry that I didn't looked at that in the first place before asking for a review.
I have added multiple new unit tests in order to increase the code coverage and during that process I found some small bugs and problems.
I think it requires a new look at the new changes. I made a new commit with them.

I have changed the role of the submitter to "owner" for send_removed_project_email and send_removed_project_release_email and now Travis CI blocks because of the lack of translations.
What I am suppose to do?

I fixed the translations issues.
I don't plan any new changes on that pr, but I think that maybe it's a good idea for a new review because of some recent changes.

Thank you @MVrachev!

Hi all,
I'd like to receive emails for each release, but it's unclear what else I should add in pyproject.toml
[project]
name = "crawler-user-agents"

authors = [
  { name="Martin Monperrus"<EMAIL_ADDRESS>},
]

Any help would be appreciated, thanks!

Hi, emails are sent to user accounts on PyPI, not addresses listed in project metadata. Hope that helps!

Thanks @di for the clarification.
Are emails sent for removals only? Or can they also be sent for normal releases? (NPM does this and it's super useful)

See #13234.

thanks.


libstdc++ version must be at least 5.1.

Hi guys,
I'm installing LLVM previous to HipSYCL package to run it on a AMD RX 6600 XT RDNA 2 GPU, I'm getting this error message from the terminal,
CMake Error at cmake/modules/CheckCompilerVersion.cmake:97 (message):
libstdc++ version must be at least 5.1.
Call Stack (most recent call first):
cmake/config-ix.cmake:13 (include)
CMakeLists.txt:655 (include)
When running
g++ --version
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Also, I've
clang++ --version
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
From the CMakeError file,
The output was:
1
/usr/bin/ld: no se puede encontrar -lstdc++: No existe el archivo o el directorio
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Checking whether the ASM compiler is GNU using "--version" did not match "(GNU assembler)|(GCC)|(Free Software Foundation)":
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Detecting CXX compiler ABI info failed to compile with the following output:
Change Dir: /root/git/llvm-vanilla/build/CMakeFiles/CMakeTmp
Appreciate your help on this one, thank you,

Hi, do you have a recent libstdc++ version installed? Cmake complains that it cannot link the the C++ standard library:
/usr/bin/ld: no se puede encontrar -lstdc++: No existe el archivo o el directorio

Perhaps you are missing a package like libstdc++-dev or similar? Having the compiler installed does not necessarily mean that the C++ standard library is installed too.

Hi, I tried looking with sudo apt-get install libstdc++-dev
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
El paquete libstdc++-dev es un paquete virtual provisto por:
libstdc++-9-dev 9.5.0-1ubuntu1~22.04
libstdc++-12-dev 12.3.0-1ubuntu1~22.04
libstdc++-10-dev 10.5.0-1ubuntu1~22.04
libstdc++-11-dev 11.4.0-1ubuntu1~22.04
Necesita seleccionar explícitamente uno para instalar.
E: El paquete «libstdc++-dev» no tiene un candidato para la instalación
I specificed the version #6 and the most recent one, 11th, and, I got this,
sudo apt-get install libstdc++-11-dev
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
libstdc++-11-dev ya está en su versión más reciente (11.4.0-1ubuntu1~22.04).
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
By re-trying the command again I get,
sudo bash install-llvm.sh
The build directory already exists, do you want to use /root/git/llvm-vanilla anyways?[y]y
Using the exisiting directory
-- clang project is enabled
-- clang-tools-extra project is disabled
-- compiler-rt project is enabled
-- debuginfo-tests project is disabled
-- libc project is disabled
-- libclc project is disabled
-- libcxx project is disabled
-- libcxxabi project is disabled
-- libunwind project is disabled
-- lld project is enabled
-- lldb project is disabled
-- mlir project is disabled
-- openmp project is enabled
-- parallel-libs project is disabled
-- polly project is disabled
-- pstl project is disabled
-- flang project is disabled
CMake Error at cmake/modules/CheckCompilerVersion.cmake:97 (message):
libstdc++ version must be at least 5.1.
Call Stack (most recent call first):
cmake/config-ix.cmake:13 (include)
CMakeLists.txt:655 (include)
-- Configuring incomplete, errors occurred!
See also "/root/git/llvm-vanilla/build/CMakeFiles/CMakeOutput.log".
See also "/root/git/llvm-vanilla/build/CMakeFiles/CMakeError.log".

Can you find libstdc++.so somewhere on your system?

sudo bash install-llvm.sh

Is this the install-llvm.sh that we ship? If so, don't use it, it's deprecated.
Please install LLVM as described here: https://github.com/OpenSYCL/OpenSYCL/blob/develop/doc/install-llvm.md
Note that the recommendation is to to just try the LLVM that comes packaged in your Linux distribution first. If that one is recent enough, it is generally not necessary to build your own.


compose_actions: Hide compose box when navigating to inbox/recent view.

Currently, given that the compose box is already open, it stays open when the user navigates to the inbox/recent view, even when there are no modifications to the message or recipients.
This PR adds conditions to close the compose box when navigating to the inbox/recent view, except when we can reasonably infer that it was the intended action.

Fixes: Issue reported at CZO

Screenshots and screen captures:
Navigating between recent/inbox view with different compose states
Before
before-compose-actions-fix.webm
After
after-compose-actions-fix.webm

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Updated screencast (visually same as before; intended to show that the new code still works)
screencast-compose-actions-update-1.webm

Managed to trigger an exception clicking around randomly:

I think what's going on is that this is being done too early; the compose_canceled.zulip hook expects the recent view to be either fully not the current state or fully the current state, so we need to do this after the complete_rerender hook.

Pushed my changes and test-deploying on chat.zulip.org.

Thank you for catching that bug; I was also able to reproduce the same a few moments ago. I have added appropriate comments to the new function and updated the code slightly to match the logic in the surrounding functions. (change conditional to guard clause)

Merged, thanks @sayamsamal!


[Elastic Common Schema] Alert Template for Elastic SIEM

Describe the feature
Where I work we use the Elastic SIEM and gather all Security Events in there. As we consider denying a Container Image a serious event (as the CI/CD pipeline only works with signed images - denying means manual tampering), we need to ingest it into the SIEM so we can keep record of the following:

Time of the event
Cluster
Namespace
Image URL that was tried
Hopefully Kubernetes user that tried the deployment

To add this feature to our stack, I created an Alert Template that follows the ECS [1]. This produces a JSON POST request
directly consumable by all HTTP/S log collector plugins [2][3], so the logs end up in an Elasticseach index (or wherever).
Finally, that format is very useful as SIEM Rules [5] can be created to optionally deliver alerts to Slack, or end up in Incident Response tools, using Kibana Integrations or Praeco integrations [4].

I will create another Issue for addition of Kubernetes ServiceAccount in the alert context [6], as well as the single-word messages (such as allow, deny to be used in appropriate places in the Schema [7])
[1] : https://www.elastic.co/guide/en/ecs/1.12/index.html
[2] : https://docs.fluentd.org/input/http
[3] : https://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html
[4] : https://github.com/johnsusek/praeco
[5] : https://github.com/elastic/detection-rules
[6] : https://github.com/sse-secure-systems/connaisseur/blob/master/connaisseur/alert.py#L89
[7] : https://www.elastic.co/guide/en/ecs/1.12/ecs-event.html#field-event-type

@operatorequals this issue has been resolved by releasing #427 , right?

Yes indeed!


Detect stale entries

From https://github.com/riboseinc/asciidoctor-iso/issues/155
If a bibliographic entry is undated and cached in global cache,

Fetch it anyway (!)
If its date is more recent than the cached entry, overwrite it
And, if there is a corresponding local cache entry, overwrite that too

... And I don't think this is a good idea: if we reload each undated ISO entry each time to check whether it's been updated, there's not much point caching them to begin with, given how time consuming the searches are.
I'd favour storing the date of last fetch of each cached entry, and doing a refresh only if they're say a couple of months old, rather than every time the code is run. @ronaldtse ?

First step: inject date last fetched into biblio cache. Biblio cache entries will now have two attributes: "fetched", and "bib".

Done. Entries expired if they have no date of publication (= Most Recent reference), and were fetched more than 60 days ago.

@opoudjis are we going to move this functionality to the isobib / relaton-iso gem?

No, because it is functionality specific to the caching of references, which is out of scope of isobib as it stands.

Maybe the Relaton gem system should support fetching the references, and also the caching of them. Then the asciidoctor-iso processor only needs to asks Relaton for these things.


added one free Networking Course

What does this PR do?
Add resource- added one networking course freely available
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
Available on YouTube
For book lists, is it a book? For course lists, is it a course? etc.
Course
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

This video is in free-courses-en


Unable to load a firmware if the size is bigger than a certain value

So I'm stuck when trying to load big(relatively) firmware/program to the ibex-demo-system. After several trial, I find that if the program file is smaller than 9408 bytes as shown below (9404B), it will work. It can print out through uart and everything work.
./util/load_demo_system.sh cw305 run ./sw/c/build/demo/aes/aes
Open On-Chip Debugger 0.12.0-rc1
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : 'riscv set_prefer_sba' is deprecated. Please use 'riscv set_mem_access' instead.
force hard breakpoints
Info : clock speed 1000 kHz
Info : JTAG tap: riscv.cpu tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)
Info : datacount=2 progbufsize=8
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=32, misa=0x40101104
Info : starting gdb server for riscv.cpu on 3333
Info : Listening on port 3333 for gdb connections
9404 bytes written at address 0x00100000
downloaded 9404 bytes in 0.226321s (40.578 KiB/s)

Error: No working memory available. Specify -work-area-phys to target.
Warn : not enough working area available(requested 1100)
verified 9404 bytes in 0.655824s (14.003 KiB/s)

Doing reset
Info : JTAG tap: riscv.cpu tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)

However, if I add one more "nop" to the code, it will "crash" the core. So no more printing out. The first message after loading is this:
Open On-Chip Debugger 0.12.0-rc1
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : `riscv set_prefer_sba` is deprecated. Please use `riscv set_mem_access` instead.
force hard breakpoints
Info : clock speed 1000 kHz
Info : JTAG tap: riscv.cpu tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)
Info : datacount=2 progbufsize=8
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=32, misa=0x40101104
Info : starting gdb server for riscv.cpu on 3333
Info : Listening on port 3333 for gdb connections
9408 bytes written at address 0x00100000
downloaded 9408 bytes in 0.226568s (40.551 KiB/s)

Error: No working memory available. Specify -work-area-phys to target.
Warn : not enough working area available(requested 1100)
verified 9408 bytes in 0.607981s (15.111 KiB/s)

Doing reset
Info : JTAG tap: riscv.cpu tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)

It seems fine in the output but actually it does not output anything. And after the second loading, openocd is unable to halt the core, seems that ibex does not take any "wfi".
Open On-Chip Debugger 0.12.0-rc1
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Warn : `riscv set_prefer_sba` is deprecated. Please use `riscv set_mem_access` instead.
force hard breakpoints
Info : clock speed 1000 kHz
Info : JTAG tap: riscv.cpu tap/device found: 0x13631093 (mfg: 0x049 (Xilinx), part: 0x3631, ver: 0x1)
Info : datacount=2 progbufsize=8
Error: unable to halt hart 0
Error:   dmcontrol=0x80000001
Error:   dmstatus =0x00000c82
Error: Fatal: Hart 0 failed to halt during examine()
Warn : target riscv.cpu examination failed
Info : starting gdb server for riscv.cpu on 3333
Info : Listening on port 3333 for gdb connections
Error: Target not examined yet

I tried to increase the stack size (bigger than the whole program) in the linker file but no luck.
Also, even if program for file size smaller than 9404B, it gives the error message of "No working memory available. Specify -work-area-phys to target." So how could I solve this?

Hi, have you solved your issue yet?


Hex encoding support

These request body and response body use hex encoding rather than base64.

Hi, I join the request, it would be great!

Hi @lovelyjuice
Your application is HEX Encoding the string after encryption instead of Base64? If yes, that could be added with one additional UI component where one can select an encoding mechanism after encryption.

Hi @lovelyjuice
Your application is HEX Encoding the string after encryption instead of Base64? If yes, that could be added with one additional UI component where one can select an encoding mechanism after encryption.

It would be great, it happens the same to me

You need to change the following this.helpers.base64Decode and this.helpers.base64Encode to call your custom hex encode and decode function. (Burp interface does not provide any hex encoding/decode https://portswigger.net/burp/extender/api/burp/IExtensionHelpers.html, you have to code methods yourself)

After changing the method just compile the project (https://portswigger.net/burp/extender/api/burp/IExtensionHelpers.html)


Make the turbofish syntax redundant

Make disambiguating generic arguments in expressions with :: optional, allowing generic arguments to be specified without ::. This makes the "turbofish" notation no longer necessary.
Rendered
This makes the following valid syntax:
struct Nooper<T>(T);

impl<T> Nooper<T> {
    fn noop<U>(&self, _: U) {}
}

fn id<T>(t: T) -> T {
    t
}

fn main() {
    id<u32>(0u32); // ok
    let n = Nooper<&str>(":)"); // ok
    n.noop<()>(()); // ok
}

The syntax ambiguity (a < b , c > (d)) is resolved in favour of a generic function call.

I don't think it does, but I'd like to make sure - this doesn't prevent further extensions to allow a < b < c as short-hand for a < b && b < c, correct?

I don't think it does, but I'd like to make sure - this doesn't prevent further extensions to allow a < b < c as short-hand for a < b && b < c, correct?

Yes, that's correct.

Does it work correctly when << and >> are considered?
#![allow(non_upper_case_globals)]

#[cfg(none)]
mod fish {
    pub struct S;
    pub struct E<T>(T);
    pub trait A {
        type B;
    }
    impl A for S {
        type B = S;
    }
    pub fn g<T, U>(_: u32){}
}

#[cfg(not(none))]
mod fish {
    pub const g: u32 = 0;
    pub const S: u32 = 0;
    pub type A = u32;
    pub const B: u32 = 0;
    pub const E: u32 = 0;
}

use fish::*;

fn main() {
    [g<<S as A>::B, E<S>>(1)];
}

Does it work correctly when << and >> are considered?

Ah, that's a clever construction. The current implementation, which I believe has the intuitive interpretation, would fail to parse this. (Like the (a < b, c > d) case, I'm not sure we could avoid this.)
This is only a problem in the 2015 edition, right? The code should fail to compile in the 2018 edition.

@kennytm: I've added some text about the ambiguity with << — do you think that addresses the concern?

@varkor LGTM 👍

Include an example without function application (). i.e:

Ah. So we've got this ambiguity without chained comparison.
#[cfg(none)]
mod fish {
    use std::cmp::Ordering;

    pub enum E<T> {
        A,
        _B(T),
    }
    pub use E::A;
    pub struct S;

    impl<T> PartialEq<i32> for E<T> {
        fn eq(&self, _: &i32) -> bool {
            false
        }
    }
    impl<T> PartialOrd<i32> for E<T> {
        fn partial_cmp(&self, _: &i32) -> Option<Ordering> {
            None
        }
    }
}

#[cfg(not(none))]
mod fish {
    pub const A: i32 = 0;
    pub const S: i32 = 0;
}

use fish::*;

fn main() {
    let g = A<S>>7;
    // let g = A::<S>>7;
    assert_eq!(g, false);
}

Ah. So we've got this ambiguity without chained comparison.

That's true: this example seems slightly more natural than previous examples, as there are no unnecessary parentheses. I wonder how telling it is that this pattern never appears on crates.io.


About the skew calculation in rng.c

In rng.c there are two ways to calculate the skew (https://github.com/Decawave/mynewt-dw1000-core/blob/master/lib/rng/src/rng.c#L648-L653) , if WCS is enabled then skew calculation is based on prediction from timescale lib, otherwise it's based on instantaneous register value. Is the timescale one more accurate than the register one?

The WCS is more accurate and the register value (carrier integrator) isn't available when using double buffered rx.


Problem on test

Hi, I've downloaded your repository and I've found this error:
th run_model.lua -input_image imgs/elephant.jpg
1/1 processing image imgs/elephant.jpg
/home/leo/torch/install/bin/luajit: /home/leo/torch/install/share/lua/5.1/nn/Container.lua:67:
In 4 module of nn.Sequential:
/home/leo/torch/install/share/lua/5.1/nngraph/gmodule.lua:362: Got 5 inputs instead of 4
stack traceback:
	[C]: in function 'error'
	/home/leo/torch/install/share/lua/5.1/nngraph/gmodule.lua:362: in function </home/leo/torch/install/share/lua/5.1/nngraph/gmodule.lua:300>
	[C]: in function 'xpcall'
	/home/leo/torch/install/share/lua/5.1/nn/Container.lua:63: in function 'rethrowErrors'
	/home/leo/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function 'forward'
	./densecap/DenseCapModel.lua:265: in function 'forward'
	./densecap/DenseCapModel.lua:344: in function 'forward_test'
	run_model.lua:79: in function 'run_image'
	run_model.lua:186: in main chunk
	[C]: in function 'dofile'
	.../leo/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
	[C]: at 0x00406670

WARNING: If you see a stack trace below, it doesn't point to the place where this error occurred. Please use only the one above.
stack traceback:
	[C]: in function 'error'
	/home/leo/torch/install/share/lua/5.1/nn/Container.lua:67: in function 'rethrowErrors'
	/home/leo/torch/install/share/lua/5.1/nn/Sequential.lua:44: in function 'forward'
	./densecap/DenseCapModel.lua:265: in function 'forward'
	./densecap/DenseCapModel.lua:344: in function 'forward_test'
	run_model.lua:79: in function 'run_image'
	run_model.lua:186: in main chunk
	[C]: in function 'dofile'
	.../leo/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
	[C]: at 0x00406670

Do you know if I'm doing something wrong? I installed all packages mentioned on the README.md, also I just re-installed torch from scratch.
Thanks

You are using the pretrained model from densecap. I've just updated, and put a pretrained model for this model. Pull the latest version, and download the pretrained model I provide.

Hi, supercool it worked, I just found something related to the dependencies that is missing, the torch-rcnn package.
luarocks install --server=http://luarocks.org/dev torch-rnn
Would you like that I fix as a Pull Request?

Sure. Go ahead.

Cool thks


Fix mistaken string reverse example

When splitting the string "Welcome to this Javascript Guide!" on a space and then reversing, the letters will not reverse.

Just realized reversed string example was passed in - my bad.


feat: add autodetect of column names

Description
Added auto_column_detection

I did the changes

this should be the fix: #729
can you approve and merge the changes afterwards from the mainbranch into your PR?


ungoogled-chromium: 89.0.4389.90 -> 89.0.4389.114

Motivation for this change
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

nix-build nixos/tests/chromium.nix -A ungoogled succeeded.


rPackages.quarto: add quarto to propagatedBuildInputs

Description of changes
rPackages.quarto needs the quarto library at runtime.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

rPackages.quarto did not export the quarto library, so would be garbage collected, breaking the R Library. This PR corrects the trouble by including the library in the propagatedBuildInputs


How do I know if the value corresponds to the original key

I have a problem with one point, which I think is design flaws.
When I want to query some value from the hashtable, I can do this by running hashtable.Get(key, func(Slot)(bool,error))... But due to hash collisions, there may be many values associated with the hashcode of the current key, but the original key is not stored in the slot, so with a MatchFunc function, how can the user know if it is a match?
The above point is my doubt, and I have also done relevant tests.

Can you show me some example code?
The hash table is a Linear Hashing algorithm, see https://en.wikipedia.org/wiki/Linear_hashing


Fix FDroid build

Task/Issue URL: https://app.asana.com/0/488551667048375/1208148719076009/f
Description
Steps to test this PR

[ ] Fresh install (internal or play flavor)
[ ] Navigate to duckduckgo.com/pro
[ ] Check onboarding in-context dialog is not shown
[ ] Perform a search
[ ] check SERP in-context dialog is shown

No UI changes

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#4949  👈
#4948
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @lmac012 and the rest of your teammates on  Graphite

@CrisBarreiro FYI. This will have conflicts with your Duck Player PR. Lukasz moved the logic to check if it's a privacyPro url to its own module.


[Main] [Release] Release packages to address UPM Asset Store failures

This is tracking the release of main to address UPM Asset Store Failure.  The primary purpose of this release is to address failures in UPM Asset Store publication.

Package dependencies reference versions of packages that aren't in the asset store.  These dependencies need to be updated to point to versions that are in the asset store
Address this error message:

Tasks

[ ] Make sure patch versions and CHANGELOGs are updated for the following packages that error'ed during UMP store publishing

[ ] MRTK Audio Effects (failed publication @ 3.0.3)
[ ] MRTK Core Definitions (failed publication @ 3.2.1)
[ ] MRTK Extended Assets (failed publication @ 3.0.2)
[ ] MRTK Input (failed publication @ 3.2.1)
[ ] MRTK Tools (failed publication @ 3.0.3)
[ ] MRTK UX Components (Non-Canvas) (failed publication @ 3.1.3)
[ ] MRTK UX Core Scripts (failed publication @ 3.2.1)
[ ] Plus any additional packages with changes in it since last release of main

[ ] Check Package Versions
[ ] Create Release Branch
[ ] Create Release Canidate Packages
[ ] Create Draft Release on GitHub
[ ] Microsoft Validates Release Candidate Packages and Release Notes
[ ] Qualcomm Validates Release Candidate Packages and Release Notes
[ ] Magic Leap Validates Release Candidate Packages and Release Notes
[ ] Ultra Leap Validates Release Candidate Packages and Release Notes
[ ] Repackage and Publish to NPM Feed
[ ] Update documentation
[ ] Publish UPM packages to Unity Asset Store
[ ] Publish GitHub Release

Optional Tasks

[ ] Update API Reference Documentation (Not Needed for Public Preview)
[ ] Community Validates Release Candidate Packages (post in Slack and Discussion Forum)

Unity has fixed #2.
For #1 we need to fix up package dependencies to point to versions of the MRTK3 packages that have been published to the store


Query: Server and multi-client setup

Hey, I have websocketd running, but my approach is off and I can’t complete the final step of my project.
I have a 4 Raspberry Pi, one working as a server and three as clients.
When any of the clients does something (registers a GPIO pin state change in this case) I need to let the other clients know about this.
So far I have gotten each of the clients to tell the server of the state change by using websockets.
I run a web page for each client on the server, this will write the websocket message to a text file.
There is very low traffic on the system, and extremely unlikely that more than one client will be sending a message at any time.
The final piece, is that a instance of websocketd is running on the server, reading the text file that is being written by the incoming websocket connections from the clients. I would have thought to connect all the clients web browser to this instance to be able to share the text file contents between the clients (via the server)...
Is there a better way to do this? It’s like I need websocketd to talk to another websocketd, which will then broadcast to all the other websocketd’s!!

Or you can use one websocketd to write events and another to tail log where they recorded.


Switch to a proper way to pop up warnings as errors

see discussions in https://github.com/rescript-lang/rescript-compiler/issues/4789

Thanks for this @bobzhang, I will propagate this change to all repo of this organisation!


Optional arg name prefix / postfix

Creating a tool. In this tool, I want to give developers the possibility to extend the class generated.
What do you think of the possibility to add a prefix or postfix optional arg (especially interested for ethers-v5)?
With some design input maybe I can make a PR for this.

nhaa. wait. Does not seem that those classes generated are extenable.

It seems like you case is quite specific. I suggest creating your own target. You can pick one of the already created ones and tweak it to your needs.


Exit with an evaluable return code

Currently a command run with n magic numbers found evaluates to 0 via echo $?. This should prolly should return a non zero exit code for usage in CI tooling.

Actually thinking about it, is detecting magic numbers a signal to fail a build? This is a bit like code coverage or mutation testing - while it might sound tempting to require perfection, in reality it's probably not achievable? The main target in a CI would be to report a decrease or increase in magic numbers as a relative measure of improvement (or not), so you would expect PHPMND to exit with the same code all the time regardless of outcome.

One of the answers PHPMD should provide is if there're magic numbers present in a code base (or more granular in a commit) or not; which should IMHO be reflectable in an exit code.
For relative measurements like a decrease or increase in magic numbers a seperate command or an option e.g. --exit-on-detection=false(1) or --dry-run(2) like used by the PHP CS Fixer  is imaginable to supress (1) or enforce (2) such an admittedly hard exit.

One can always override the exit code using pipes e.G vendor/bin/phpmnd || true if the exit code should not be evaluated by the calling process. So in my opinion phpmnd should return a non zero exit code and individuals can opt out without the need for extra command line options.

I'm running against the wind here obviously, so I checked elsewhere and PHPMD (https://phpmd.org/documentation/index.html) does actually exit with a non-zero on violations and offer an --ignore-violations-on-exit argument to exit with zero. That's the closest equivalent style of detection to PHPMND I can think of, so I retract my argument.
That said, I find it really hard to imagine a scenario where PHPMND would not find a magic number without a lot of exceptions being allowed.

Thanks guys for discussion. As @padraic  said,  in most cases it is very hard to have codebase without magic numbers and without having a lot of exceptions. I would suggest the same option as @raphaelstolt  suggester --exit-on-detection or  --non-zero-exit-on-violation or something. Because in most cases you will find magic numbers, so by default I believe it should be kept as it is now :)

#51


Pip installation not working correctly

I tried to install the project on two different machines using the pip install method and in both instances the package seemed to not be correctly installed. When trying to run the snippet provided on the readme section, the script failed to import any of the necessary classes, only having access to the constants.
Code example
#! /usr/bin/env python

import pooltool as pt

interface = pt.ShotViewer()

table = pt.PocketTable()
balls = pt.get_nine_ball_rack(table, ordered=True)
cue = pt.Cue(cueing_ball=balls['cue'])

# Aim at the head ball then strike the cue ball
cue.aim_at_ball(balls['1'])
cue.strike(V0=8)

# Evolve the shot
shot = pt.System(cue=cue, table=table, balls=balls)
shot.simulate(continuize=True)

interface.show(shot)

Error
Traceback (most recent call last):
  File "...\test.py", line 5, in <module>
    interface = pt.ShotViewer()
AttributeError: module 'pooltool' has no attribute 'ShotViewer'

Hi, thanks for checking out the project.
I'm sorry the PIP installation isn't working for you. I've noticed this myself on Windows (what OS are your machines?)
I plan to fix this for v0.2. Until then, I've updated the README accordingly in https://github.com/ekiefl/pooltool/commit/7b45c2cbfaeca04c742775cb3abb1024ff2f77f7

Hi
They are both windows machines.
Thank you for taking notice.

I can confirm that this is also happening on Ubuntu 20.04.5 LTS and other Linux machines.

Thanks for the report. In the meantime, follow the developer installation instructions. I really gotta push out 0.2.

@HorseEars, @PSXBRosa, can you guys please try and install on your linux/windows machines? I've released 0.2.0.
pip install pooltool-billiards==0.2.0

I'm closing this (for now), as I have heard through the grapevine that pip installation is now working on Linux and Windows.


Add RetroArch 1.8.7 x64

Microsoft Reviewers: Open in CodeFlow

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: MarNicGit sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Installation using conda

Will a conda package for installing datasets be added to the huggingface conda channel? I have installed transformers using conda and would like to use the datasets library to use some of the scripts in the transformers/examples folder but am unable to do so at the moment as datasets can only be installed using pip and using pip in a conda environment is generally a bad idea in my experience.

Yes indeed the idea is to have the next release on conda cc @LysandreJik

Yes indeed the idea is to have the next release on conda cc @LysandreJik

Great! Did you guys have a timeframe in mind for the next release?
Thank you for all the great work in developing this library.

Great! Did you guys have a timeframe in mind for the next release?
Thank you for all the great work in developing this library.

I think we can have datasets on conda by next week. Will see what I can do!

I think we can have datasets on conda by next week. Will see what I can do!

Thank you. Looking forward to it.

Thank you. Looking forward to it.

datasets has been added to conda-forge thanks to @LysandreJik :)
conda install -c huggingface -c conda-forge datasets

datasets has been added to conda-forge thanks to @LysandreJik :)
conda install -c huggingface -c conda-forge datasets


Add marking of unconfirmed_spent

I'm hopeful this will fix #613, or at least shed some light on it!

manual test promising for #613

this is missing an e2e test

should this be part of the conditional block on line 580?

Which? This comment didn't link to any code

okay, i should have tested this in cli. cli is broken and cannot see or send... i have to revert.


more flexible config file format

To help with certain new features, but still retain backwards compatibility, here's the proposal:  https://github.com/nevans/resque-pool/wiki/New-config-file-format

I know this is an ancient issue/feature request, but I just came across a situation where this would be useful. Mostly, I need to be able to turn on/off and configure TERM_CHILD handling per queue.  This would be incredibly powerful.


Provide a Reactor based API

In addition to RxJava 1 and 2 APIs, it would be nice if Requery could provide an API based on Flux  and Mono types from Reactor Core (these types extends Reactive Streams Publisher). More information on Reactor by example InfoQ article.
It could enable seemless integration with the upcoming Spring Framework 5 and Spring Boot 2.0.

I have a project where I would like to experiment with Requery + Reactor. Do you think I could start by porting the current RxJava 2 support to Reactor as an external dependency or does it require some modification on Requery itself?

For the EntityStore api, yes you would be able to do that. Requery also provides some convenience functions on the Result type to convert the results into observables/streams which would require changes in the library. I looked at Reactor API and it's similar enough to RxJava that it should be easy enough to support.

Awesome !!!!

@sdeleuze I am wondering if the implementation of io.requery.reactor.ReactorEntityStore is actually correct.
e.g.
@Override
    public <E extends T> Mono<Iterable<E>> insert(final Iterable<E> entities) {
        return Mono.fromCallable(new Callable<Iterable<E>>() {
            @Override
            public Iterable<E> call() throws Exception {
                return delegate.insert(entities);
            }
        });
    }

delegate.insert(entities); is the call to the blocking api.
Reading the reactor documentation on this topic I would assume we need something like - where we push the blocking part to a separate thread:
@Override
    public <E extends T> Mono<Iterable<E>> insert(final Iterable<E> entities) {
        return Mono.fromCallable(new Callable<Iterable<E>>() {
            @Override
            public Iterable<E> call() throws Exception {
                return delegate.insert(entities);
            }
        }).subscribeOn(Schedulers.elastic());;
    }


Implement SCTT defined session establishment protocol in SecurityManager

Problem
Currently WML baseline was ported with headers-only for dependencies, one of which is the 'security profile'.
The security profile is supposed to handle session creation, however it uses the weave defined methodology.
Proposed Solution
Replate weave session creation with SCTT defined protocol. This may include removing 'security profile' and replacing with a new one (if protocols are a rewrite) or implement 'security profile' as as the CHIP protocol instead of bring in weave code (assuming interfaces are compatible enough to warrant reuse).
Important to note that SCTT defined protocol requires some additional reliability guarantess for the handshake and it currently only defines TCP as meeting these needs. Need to determine if TCP is required or if WRM can be used and how to encapsulate these requirements within WML baseline

@yufengwangca How is this different than the currently implemented security? (which fits SCFTT)

@woody-apple
The goal of this ticket is to run current implemented security protocol on top of WML APIs, that means we either need to update the existing implementation within transport layer or plug in the current security protocol implementation to SecurityManager class.
The details of this task needs further discussion and agreement.


[1.14.4] Client config fails to generate com.electronwill.nightconfig.core.io.ParsingException: Invalid bare key:

Stacktrace on load
https://gist.github.com/ProsperCraft/8c5554894c689353eff904a2cd03b7a7
I wiped the empty config file, and it made a new empty config file on load.
Full log -
https://gist.github.com/ProsperCraft/b3c177e362ce1c011beedc203a69332a
UselessMod-1.14.4-2.2.3.jar

Forge .45

I hope this bug has been fixed by Forge as there is a recommended version
So I will close this issue


[BUG] buttons and lists stopped working

Yes, after the latest update on Android today, list and button messages didn't show up on the receiver.

same issue

Same with me any Solution ?

Same with me any Solution ?

No solution for now, but to appear on wa web you can still add the viewOnce parameter

Same Issue

that's a sign you have to change lib:v hehehe

it's a sign that it's time for you to change lib:v hehehe

it's a sign that it's time for you to change lib:v hehehe

Any suggest what is lib

it's a sign that it's time for you to change lib:v hehehe

It's not about this lib, but indeed at this time WhatsApp has an update and some are missing, I tried other libs and got the same thing, it's good that we try to solve this problem together

It's not about this lib, but indeed at this time WhatsApp has an update and some are missing, I tried other libs and got the same thing, it's good that we try to solve this problem together

right bro
the problem is not in the lib... there may be an update on the whatsapp server not on the client

itu tandanya sudah saatnya kalian ganti lib:v hehehe

🐒

Info : downgrade baileys  to "version": [2, 2228, 8]
On IOS + WA Web : visible
On Android : not visible

Rip Baileys?

I have just checked that now i am not getting response to list messages from the bank who are using official api. Seems this bug is temporary.

I have just checked that now i am not getting response to list messages from the bank who are using official api. Seems this bug is temporary.

wati working /:

2, 2228, 8

Not work on ios
Im worked https://i.ibb.co/L9ZyxvJ/8d566099-c18b-43dc-ba2b-6322d24d6488.jpg

I have just checked that now i am not getting response to list messages from the bank who are using official api. Seems this bug is temporary.

btw this using official API. work mobile and web

I have just checked that now i am not getting response to list messages from the bank who are using official api. Seems this bug is temporary.

 btw this using official API. work mobile and web

api kok ditanya

I have just checked that now i am not getting response to list messages from the bank who are using official api. Seems this bug is temporary.

 btw this using official API. work mobile and web

api kok ditanya

Bct lu epik

I have just checked that now i am not getting response to list messages from the bank who are using official api. Seems this bug is temporary.

 btw this using official API. work mobile and web

api kok ditanya

kamu hengker yah

FYI, the maintainer have decided to put button feature as deprecated feature. The deprecation will be done in the future. This means the button will not be fixed anymore. It's time to say goodbye to the button feature from the library.

After 5 votes from Contributors, Mods, and even Pedro himself, I've decided to begin the process of deleting Buttons and Lists. The patch that I released a few days ago was either under wraps or not widely applied for a long time (2 months) and the same day I posted it here it has been patched internally by WhatsApp. This timing is very fishy and to not irritate Meta even more, I drew this line. If you're a business, and you profit a lot from every conversion you make, you can go ahead and use the official Meta API for all I care. I've been working discreetly with other library leaders for about 50 hours total all together reverse engineering to figure this out (whatsmeowlead, whatsappweb4j, baileys, openwa and wppconnect) and after all our efforts nothing has worked out. This is what we really end up with in the end because depending on solution after solution whatever you build on top of it will fail. Like building a hospital on bamboo scaffolding. It takes a heavy heart to say this, I know. I also have a mountain of code to change now (Hypere, StormChat, and countless other partners and clients over the years). Open-wa, Baileys, whatsapp-web.js, and wppconnect will be deprecated keys. The process is slightly different for each library but in the end it will all be the same. - purpshell, maintainer of whatsapp-web.js and Baileys for 3 years now (in case you didn't know)

RIP #Buttons #List :(

2, 2228, 8

Not work on ios
Im worked  on Ios and Web using "version": [2, 2228, 8]

In IOS Still working

In IOS Still working

My Whatsapp messengger not update

So I'm gonna have a look today.
Still even if i fix it, at this point you really shouldn't be relying on buttons.

same issue

Same with me any Solution ?

No solution for now, but to appear on wa web you can still add the viewOnce parameter

yeah, the button can still be seen on your 'whatsapp web' but it's not sent to your mobile device... this issue hasn't been fixed for so long

After 5 votes from Contributors, Mods, and even Pedro himself, I've decided to begin the process of deleting Buttons and Lists. The patch that I released a few days ago was either under wraps or not widely applied for a long time (2 months) and the same day I posted it here it has been patched internally by WhatsApp. This timing is very fishy and to not irritate Meta even more, I drew this line. If you're a business, and you profit a lot from every conversion you make, you can go ahead and use the official Meta API for all I care. I've been working discreetly with other library leaders for about 50 hours total all together reverse engineering to figure this out (whatsmeowlead, whatsappweb4j, baileys, openwa and wppconnect) and after all our efforts nothing has worked out. This is what we really end up with in the end because depending on solution after solution whatever you build on top of it will fail. Like building a hospital on bamboo scaffolding. It takes a heavy heart to say this, I know. I also have a mountain of code to change now (Hypere, StormChat, and countless other partners and clients over the years). Open-wa, Baileys, whatsapp-web.js, and wppconnect will be deprecated keys. The process is slightly different for each library but in the end it will all be the same. - purpshell, maintainer of whatsapp-web.js and Baileys for 3 years now (in case you didn't know)

hi @arskyy and teams, thanks for everything that you guys have done until this far. may i know, other than button and list, what else that dev will deprecate (other than on server side)? just precautions. thanks

I forgot to be reply, but there's a server side filter now. So the issue cannot be solved. Btw only buttons, list and template are getting deprecated

I forgot to be reply, but there's a server side filter now. So the issue cannot be solved. Btw only buttons, list and template are getting deprecated

thanks @Auties00 for clarifications.

Rip Baileys?

stfu

+1

Is it the end of the list for API free?

Is it the end of the list for API free?

You still can use this Lib with another method but buttons,list cant use

It seems that if we downgrade the library version, the message button will work again, right?

It seems that if we downgrade the library version, the message button will work again, right?

on older(2 Months ago) versions of Whatsapp yes

Hmm, But if we downgrade, it might not work in the future?

Hmm, But if we downgrade, it might not work in the future?

i mean if your users never upgrade the app it will continue working

Same with me any Solution ?

No solution for now, but to appear on wa web you can still add the viewOnce parameter

How do you add the viewOnce parameter, can you give an example?

I see that buton not work also in whatsapp-web.js lib, It see like Facebook block this for whatsapp-web app? or is because the usage for your official api only and block this feature for this api's?

Press 'F'

I tested the buttons and the list again, they worked again on IOS.

Is the buttons feature available now or not on WhatsApp? Is it available on WhatsApp Business?

you guys trying to do something like this?

you guys trying to do something like this?

how? can u explain me?

you guys trying to do something like this?

but in next version baileys,its not work again.right?

you guys trying to do something like this?

but in next version baileys,its not work again.right?

you guys trying to do something like this?

how? can u explain me?

i will give you my code later, I'm busy rn and my code was in my laptop

y

okay

okay

import pkg from "@whiskeysockets/baileys"
const { proto, WA_DEFAULT_EPHEMERAL, generateWAMessageFromContent, generateWAMessageContent } = pkg

const generate = async (type, url) => {
    const generated = await generateWAMessageContent({
        [type]: { url }
    }, {
        upload: sock.waUploadToServer
    })
    return generated[`${type}Message`]
}

const msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
        message: {
            messageContextInfo: {
                deviceListMetadata: {},
                deviceListMetadataVersion: 2
            },
            interactiveMessage: proto.Message.InteractiveMessage.create({
                body: proto.Message.InteractiveMessage.Body.create({
                    text: "body text (optional)"
                }),
                footer: proto.Message.InteractiveMessage.Footer.create({
                    text: "footer text (optional)"
                }),
                header: proto.Message.InteractiveMessage.Header.create({
                    title: "some title",
                    hasMediaAttachment: true, // false if you don't want to send media with it
                    imageMessage: generate("image", "url/path to image"),
                    //videoMessage: generate("video", "url/path to video"), // if it's an video
                }),
                nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
                    buttons: [{
                        name: "quick_reply",
                        buttonParamsJson: JSON.stringify({
                            display_text: "button 1", // <-- displayed text
                            id: ".menu" // <-- this is the id or you may call it command 🤷♂
                        }) // REMEMBER TO USE "JSON.stringify()" BECAUSE "buttonParamsJson" ONLY ACCEPTING STIRNG JSON, NOT AN OBJECT
                    },{
                        name: "ctl_url",
                        buttonParamsJson: JSON.stringify({
                            display_text: "subscribe my Youtube!",
                            url: "https://youtube.com/@fannmods",
                            merchant_url: "https://youtube.com"
                        })
                    }]
                })
            })
        }
    }
}, {})

await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
})

this code should be worked

okay

import pkg from "@whiskeysockets/baileys"
const { proto, generateWAMessageFromContent, generateWAMessageContent } = pkg

const generate = async (type, url) => {
    const generated = await generateWAMessageContent({
        [type]: { url }
    }, {
        upload: sock.waUploadToServer
    })
    return generated[`${type}Message`]
}

const msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
        message: {
            messageContextInfo: {
                deviceListMetadata: {},
                deviceListMetadataVersion: 2
            },
            interactiveMessage: proto.Message.InteractiveMessage.create({
                body: proto.Message.InteractiveMessage.Body.create({
                    text: "body text (optional)"
                }),
                footer: proto.Message.InteractiveMessage.Footer.create({
                    text: "footer text (optional)"
                }),
                header: proto.Message.InteractiveMessage.Header.create({
                    title: "some title",
                    hasMediaAttachment: true, // false if you don't want to send media with it
                    imageMessage: generate("image", "url/path to image"),
                    //videoMessage: generate("video", "url/path to video"), // if it's an video
                }),
                nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
                    buttons: [{
                        name: "quick_reply",
                        buttonParamsJson: JSON.stringify({
                            display_text: "button 1", // <-- displayed text
                            id: ".menu" // <-- this is the id or you may call it command 🤷♂
                        }) // REMEMBER TO USE "JSON.stringify()" BECAUSE "buttonParamsJson" ONLY ACCEPTING STIRNG JSON, NOT AN OBJECT
                    },{
                        name: "ctl_url",
                        buttonParamsJson: JSON.stringify({
                            display_text: "subscribe my Youtube!",
                            url: "https://youtube.com/@fannmods",
                            merchant_url: "https://youtube.com"
                        })
                    }]
                })
            })
        }
    }
}, {})

await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
})

this code should be worked

But this will don't show in Web Whatsapp, IOS

But this will don't show in Web Whatsapp, IOS

they say old method of sending button message still work on IOS and Web
why didn't u just send 2 button?
my code for android and old method for ios and web

But this will don't show in Web Whatsapp, IOS

they say old method of sending button message still work on IOS and Web why didn't u just send 2 button? my code for android and old method for ios and web

its still work for next update whiskeysocket baileys version?

its still work for next update whiskeysocket baileys version?

i have no idea
but probably yeah

But this will don't show in Web Whatsapp, IOS

they say old method of sending button message still work on IOS and Web why didn't u just send 2 button? my code for android and old method for ios and web

Do u have an example code for the old method one? In my case i Gotta go for all of them to make sure all platform should work (is it possible¿)

Do u have an example code for the old method one? In my case i Gotta go for all of them to make sure all platform should work (is it possible¿)

i have tested my code and it worked for web

how to send sections?

okay

import pkg from "@whiskeysockets/baileys"
const { proto, generateWAMessageFromContent, generateWAMessageContent } = pkg

const generate = async (type, url) => {
    const generated = await generateWAMessageContent({
        [type]: { url }
    }, {
        upload: sock.waUploadToServer
    })
    return generated[`${type}Message`]
}

const msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
        message: {
            messageContextInfo: {
                deviceListMetadata: {},
                deviceListMetadataVersion: 2
            },
            interactiveMessage: proto.Message.InteractiveMessage.create({
                body: proto.Message.InteractiveMessage.Body.create({
                    text: "body text (optional)"
                }),
                footer: proto.Message.InteractiveMessage.Footer.create({
                    text: "footer text (optional)"
                }),
                header: proto.Message.InteractiveMessage.Header.create({
                    title: "some title",
                    hasMediaAttachment: true, // false if you don't want to send media with it
                    imageMessage: generate("image", "url/path to image"),
                    //videoMessage: generate("video", "url/path to video"), // if it's an video
                }),
                nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
                    buttons: [{
                        name: "quick_reply",
                        buttonParamsJson: JSON.stringify({
                            display_text: "button 1", // <-- displayed text
                            id: ".menu" // <-- this is the id or you may call it command 🤷♂
                        }) // REMEMBER TO USE "JSON.stringify()" BECAUSE "buttonParamsJson" ONLY ACCEPTING STIRNG JSON, NOT AN OBJECT
                    },{
                        name: "cta_url",
                        buttonParamsJson: JSON.stringify({
                            display_text: "subscribe my Youtube!",
                            url: "https://youtube.com/@fannmods",
                            merchant_url: "https://youtube.com"
                        })
                    }]
                })
            })
        }
    }
}, {})

await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
})

this code should be worked

how to send sections?

let msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
      message: {
        "messageContextInfo": {
          "deviceListMetadata": {},
          "deviceListMetadataVersion": 2
        },
        interactiveMessage: proto.Message.InteractiveMessage.create({
          body: proto.Message.InteractiveMessage.Body.create({
            text: teks
          }),
          footer: proto.Message.InteractiveMessage.Footer.create({
            text: cright
          }),
          header: proto.Message.InteractiveMessage.Header.create({
            title: ``,
            videoMessage: await generate("image", { url: thumbnail }),
            hasMediaAttachment: true
          }),
          nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
            buttons: [{
            name: "quick_reply",
            buttonParamsJson: JSON.stringify({
                display_text: "btn 1,
                id: "id 1
            })
        },{
            name: "quick_reply",
            buttonParamsJson: JSON.stringify({
                display_text: "btn 2",
                id: "id 2"
            })
        }]
          })
        })
      }
    }
  }, {
    ephemeraExpiration: 86400,
    quoted: m
  })

  await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
  })

should be work

okay

import pkg from "@whiskeysockets/baileys"
const { proto, generateWAMessageFromContent, generateWAMessageContent } = pkg

const generate = async (type, url) => {
    const generated = await generateWAMessageContent({
        [type]: { url }
    }, {
        upload: sock.waUploadToServer
    })
    return generated[`${type}Message`]
}

const msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
        message: {
            messageContextInfo: {
                deviceListMetadata: {},
                deviceListMetadataVersion: 2
            },
            interactiveMessage: proto.Message.InteractiveMessage.create({
                body: proto.Message.InteractiveMessage.Body.create({
                    text: "body text (optional)"
                }),
                footer: proto.Message.InteractiveMessage.Footer.create({
                    text: "footer text (optional)"
                }),
                header: proto.Message.InteractiveMessage.Header.create({
                    title: "some title",
                    hasMediaAttachment: true, // false if you don't want to send media with it
                    imageMessage: generate("image", "url/path to image"),
                    //videoMessage: generate("video", "url/path to video"), // if it's an video
                }),
                nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
                    buttons: [{
                        name: "quick_reply",
                        buttonParamsJson: JSON.stringify({
                            display_text: "button 1", // <-- displayed text
                            id: ".menu" // <-- this is the id or you may call it command 🤷♂
                        }) // REMEMBER TO USE "JSON.stringify()" BECAUSE "buttonParamsJson" ONLY ACCEPTING STIRNG JSON, NOT AN OBJECT
                    },{
                        name: "cta_url",
                        buttonParamsJson: JSON.stringify({
                            display_text: "subscribe my Youtube!",
                            url: "https://youtube.com/@fannmods",
                            merchant_url: "https://youtube.com"
                        })
                    }]
                })
            })
        }
    }
}, {})

await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
})

this code should be worked

how to get params inside button [] or where documentation for buttonParamsJson ?

Apakah Anda punya contoh kode untuk metode lama? Dalam kasus saya, saya harus menggunakan semuanya untuk memastikan semua platform berfungsi (apakah mungkin¿)

Saya telah menguji kode saya dan berhasil untuk web

I've tried it but the results are different if I use WhatsApp web or desktop
this is my result

in web

in mobile

I don't know what's wrong.

okay

import pkg from "@whiskeysockets/baileys"
const { proto, generateWAMessageFromContent, generateWAMessageContent } = pkg

const generate = async (type, url) => {
    const generated = await generateWAMessageContent({
        [type]: { url }
    }, {
        upload: sock.waUploadToServer
    })
    return generated[`${type}Message`]
}

const msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
        message: {
            messageContextInfo: {
                deviceListMetadata: {},
                deviceListMetadataVersion: 2
            },
            interactiveMessage: proto.Message.InteractiveMessage.create({
                body: proto.Message.InteractiveMessage.Body.create({
                    text: "body text (optional)"
                }),
                footer: proto.Message.InteractiveMessage.Footer.create({
                    text: "footer text (optional)"
                }),
                header: proto.Message.InteractiveMessage.Header.create({
                    title: "some title",
                    hasMediaAttachment: true, // false if you don't want to send media with it
                    imageMessage: generate("image", "url/path to image"),
                    //videoMessage: generate("video", "url/path to video"), // if it's an video
                }),
                nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
                    buttons: [{
                        name: "quick_reply",
                        buttonParamsJson: JSON.stringify({
                            display_text: "button 1", // <-- displayed text
                            id: ".menu" // <-- this is the id or you may call it command 🤷♂
                        }) // REMEMBER TO USE "JSON.stringify()" BECAUSE "buttonParamsJson" ONLY ACCEPTING STIRNG JSON, NOT AN OBJECT
                    },{
                        name: "ctl_url",
                        buttonParamsJson: JSON.stringify({
                            display_text: "subscribe my Youtube!",
                            url: "https://youtube.com/@fannmods",
                            merchant_url: "https://youtube.com"
                        })
                    }]
                })
            })
        }
    }
}, {})

await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
})

this code should be worked

But this will don't show in Web Whatsapp, IOS

How can I reach out to you brother, I need help with sending btn/interactive messages with Bailey

okay

import pkg from "@whiskeysockets/baileys"
const { proto, generateWAMessageFromContent, generateWAMessageContent } = pkg

const generate = async (type, url) => {
    const generated = await generateWAMessageContent({
        [type]: { url }
    }, {
        upload: sock.waUploadToServer
    })
    return generated[`${type}Message`]
}

const msg = generateWAMessageFromContent(m.key.remoteJid, {
    viewOnceMessage: {
        message: {
            messageContextInfo: {
                deviceListMetadata: {},
                deviceListMetadataVersion: 2
            },
            interactiveMessage: proto.Message.InteractiveMessage.create({
                body: proto.Message.InteractiveMessage.Body.create({
                    text: "body text (optional)"
                }),
                footer: proto.Message.InteractiveMessage.Footer.create({
                    text: "footer text (optional)"
                }),
                header: proto.Message.InteractiveMessage.Header.create({
                    title: "some title",
                    hasMediaAttachment: true, // false if you don't want to send media with it
                    imageMessage: generate("image", "url/path to image"),
                    //videoMessage: generate("video", "url/path to video"), // if it's an video
                }),
                nativeFlowMessage: proto.Message.InteractiveMessage.NativeFlowMessage.create({
                    buttons: [{
                        name: "quick_reply",
                        buttonParamsJson: JSON.stringify({
                            display_text: "button 1", // <-- displayed text
                            id: ".menu" // <-- this is the id or you may call it command 🤷♂
                        }) // REMEMBER TO USE "JSON.stringify()" BECAUSE "buttonParamsJson" ONLY ACCEPTING STIRNG JSON, NOT AN OBJECT
                    },{
                        name: "ctl_url",
                        buttonParamsJson: JSON.stringify({
                            display_text: "subscribe my Youtube!",
                            url: "https://youtube.com/@fannmods",
                            merchant_url: "https://youtube.com"
                        })
                    }]
                })
            })
        }
    }
}, {})

await sock.relayMessage(msg.key.remoteJid, msg.message, {
    messageId: msg.key.id
})

this code should be worked

But this will don't show in Web Whatsapp, IOS

How can I reach out to you brother, I need help with sending btn/interactive messages with Bailey

whatsapp<PHONE_NUMBER>364


[TEST] Fix testcase to make them more compatible to zero-rank

https://github.com/dmlc/tvm/issues/3240

@tqchen there is print(lhs, type(lhs)) in the merged pr

fixed by #3616


Watch Flag for Unit Tests

I like to do "dual shell development" that is basically TDD with one shell running tests with a watch flag and one shell running npm start.
It would be nice to have a task for unit tests that watches files:
npm test:watch

Hi Jim,
this task already exists, even the name is the same. Just use npm run test:watch to use it.

ah true. Definitely should be in the docs :)


what's the motivation of embedding divide operation?

self.word_vec_mat[cur_id] = self.word_vec_mat[cur_id] / np.sqrt(np.sum(self.word_vec_mat[cur_id] ** 2))
what's the motivation of the operation to divide sqrt(sum(vector))？

It is to normalize the word embeddings.


Custom endpoints is served as http:// even after providing certificates for the custom dns in acorn namespace.

Acorn version v0.6.0-81-g5856fe34+5856fe34
Steps to reproduce the problem:
acorn deployment does not have lets-encrypt enabled.
Followed instruction from - https://docs.acorn.io/running/certificates#add-with-cert-manager to create certificate for custom DNS name.
kubectl get certificates -n acorn -o json
{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "cert-manager.io/v1",
            "kind": "Certificate",
            "metadata": {
                "annotations": {
                    "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"cert-manager.io/v1\",\"kind\":\"Certificate\",\"metadata\":{\"annotations\":{},\"name\":\"registry-studio-cert\",\"namespace\":\"acorn\"},\"spec\":{\"dnsNames\":[\"santestlocal.acorn-test-domain.xyz\"],\"issuerRef\":{\"group\":\"cert-manager.io\",\"kind\":\"ClusterIssuer\",\"name\":\"prod-issuer\"},\"secretName\":\"my-app-tls-secret\"}}\n"
                },
                "creationTimestamp": "2023-03-27T23:19:43Z",
                "generation": 1,
                "name": "registry-studio-cert",
                "namespace": "acorn",
                "resourceVersion": "217270",
                "uid": "291e5abb-1a05-4451-840b-c410ff1003b0"
            },
            "spec": {
                "dnsNames": [
                    "<custom-dns-name>"
                ],
                "issuerRef": {
                    "group": "cert-manager.io",
                    "kind": "ClusterIssuer",
                    "name": "prod-issuer"
                },
                "secretName": "my-app-tls-secret"
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": ""
    }
}

Deploy app using custom end point for which we have the certs created:
acorn run --publish <custom-dns-name>:webapp -n santestpublish ghcr.io/acorn-io/library/hello-world
When apps get deployed , Custom endpoint is served as http://
 acorn apps santestpublish
NAME             IMAGE                                  HEALTHY   UP-TO-DATE   CREATED   ENDPOINTS                                                                                MESSAGE
santestpublish   ghcr.io/acorn-io/library/hello-world   1         1            17h ago   http://<custom-dns-name>| http://webapp-santestpublish-c8decc01.local.on-acorn.io => webapp:80   OK

This issue works as expected.
I was having a problem with cert generation due to faulty Issuer which was the reason why the endpoints were not served as "https:\". Once I was able to have a cert generated successfully and in the "Ready" state for a  custom  DNS, endpoints gets served as "https:\" as expected.
kubectl get certificates -n acorn
NAME              READY   SECRET                AGE
selfsigned-cert   True    selfsigned-cert-tls   3m26s


Sync Windows accent color with Android Material theme

Is your feature request related to a problem? Please describe
Android currently doesn't sync or use accent colors being used by Windows, apps that use the new Material UI are instead stuck on blue colors. It's possible to change this manually but requires having root access using unofficial WSA builds, something that Microsoft doesn't support
Describe the solution you'd like
An option to sync Windows accent colors with Android so the design appears more consistent. Currently Android uses the blue theme regardless as there's no wallpaper set on the Android side of things and hence it doesn't know what to do with the colors

Describe alternatives you've considered
The accent colors can be changed manually using root and a separate app, but it requires sideloading a build with root access which is something Microsoft doesn't offer support for
Please specify the version of Windows Subsystem for Android
2303.40000.5.0

I hope this gets implemented in a future version.


Fix key in xml configuration example

Hi!
I've found a little but painful mistake in README.md.

Ah! Thanks very much, nice spotting.


Scraper cooperating with document_db

New scraper "justjoin.it" based only on API with 10. 000 scrapped offers toile size - 42 MB* JSON file (file size - 42 MB)
Program "scraper_a.py" extracts information from the website justjoin.it and save it to JSON file using document_db. Output this program is "document_db.json" which is located in \research\sourced_data
The program has a variable "scrapped_offers" that initializes the number of scrapped offers.

looks good


Implement Post-processing Cleanup to Counter Prefix/Suffix Optimization

Currently both the lcs and myers implementation (and with that the patience implementation) are suffering from the optimizations done by detecting common prefix and suffix. This means that a diff like the following can be generated:
     (
         Value,
         0,
+    ),
+    (
+        Value,
+        1,
     ),
 ]

vs the nicer
         Value,
         0,
     ),
+    (
+        Value,
+        1,
+    ),
 ]

I believe the right thing to do would be to shift the inserts down as much as possible.

This is implemented now in #22


[Change avatar] A Submit button does not react when user updated an avatar

Date Time
05-28-2021 12:58
Priority
High
Environment:
OS: Windows 10 x64
Browser Google Chrome 90.0.4430.212
Reproducible: always
Build found: 20210527.2
Pre-conditions

Move to https://eventsexpress-test.azurewebsites.net
Authorize as user /admin
Open the ‘Edit your profile’ page by clicking on the ‘Edit your profile’ icon.

Steps to Reproduce

Click on the ‘Change Avatar’ Expansion Panel
Click on 'Clear' button
Uppload any JPEG/PNG picture
Click on 'Submit' button
Pay attention on 'Change avatar' Expansion Panel

Actual result
A 'Submit' button does not react when user updated an avatar on the 'Change avatar' Expansion Panel
Expected result
A 'Submit' button changes a profile picture, when clicking on it after adding a picture on the 'Change avatar' Expansion Panel
Video
https://user-images.githubusercontent.com/84564851/119969193-ec0a8e80-bfb6-11eb-9373-6fa29cc72557.mp4
User story and test case links "User story #213 Test case #237 "
Labels to be added "Bug", Priority ("pri: High"), Severity ("severity: Minot"), Type ("Functional").

I guess the "crop" button must have been clicked before submitting. And this is by design.
So, probably all we should do is just disable submit while the image not cropped.
@iuriikhrystiuk, @mehalyna, @stannydan?

I completely agree!

retested. Fixed


Adding battery controller

Looks great so far! I know it's still a draft, but I just added a couple comments


Add: Premier Sports 3

Channel Name
Premier Sports 3
Alternative Names (optional)
No response
Network (optional)
No response
Owners (optional)
No response
Country
IE
Subdivision (optional)
No response
City (optional)
No response
Broadcast Area
c/IE
Languages
eng
Categories (optional)
No response
NSFW
FALSE
Launched (optional)
No response
Closed (optional)
No response
Replaced By (optional)
No response
Website (optional)
No response
Logo
https://i.imgur.com/zRqDoYM.png
Notes
As per Wikipedia: Viaplay rebranded Premier Sports under the Viaplay Sports name on 1 November 2022.
Initially, the same feeds were used for the UK and Ireland with Premier Sports branding used for Premier League coverage which is blocked in the UK. On 28 November the channels split, with the Irish feeds reverting to full Premier Sports branding.

I could only find information on the website about Premier Sports 1 and 2 broadcasts: https://www.nowtv.com/ie/watch-sports-extra

I could only find information on the website about Premier Sports 1 and 2 broadcasts: https://www.nowtv.com/ie/watch-sports-extra

You're right. I was going by this https://www.premiersportsme.com/ but that isn't the website for the Irish version. There are only Premier Sports 1 and 2 in Ireland.


Remove Curly Braces

I don't know the reason of adding curly braces before commands. I have removed it as It was not looking good. Let me know what do you think. Thank you.

Hi,
The braces are there not for some style reason. It is so that if you copy the entire code block and paste to the terminal, it will run to completion. Without braces, paste execution generally stops after the first sudo command and the rest of the statements are not executed.


In-memory/persistance enhancements & test coverage

Same content as https://github.com/financialforcedev/fflib-apex-common/pull/100.

Thanks @jondavis9898 👍

@jondavis9898 and @up2go-rsoesemann would one of you be so kind as to do a small write up? If you don't have a blog or place to published i would be happy to guest post it for you. Great work both! 👍

@up2go-rsoesemann Would you be able to do the write-up along with readme updates that you're planning on doing?

@afawcett I created this issue https://github.com/financialforcedev/fflib-apex-common-builder/issues/3. I will own it but need @jondavis9898 for code examples.


Add options for Frank-Wolfe variants

Specifically, add the option to choose pairwise, away and lazy FW.

Added in 9745dfe


Austrian Tel # - Automatically adds zero to the beginning when not needed

When we render the text '+43676800505017' (+43 Austrian area code) in the 'tel' input field and run the following:
	    this.$el.find("#number").intlTelInput({
                      utilsScript: "libs/intltelinput/utils.js"
	    });

The correct country field is auto-selected for Austria, but the main text field shows '0676 800505017' where there is an extra zero placed at the beginning before the six.  We have some users who could be confused by this.

If you leave nationalMode set to true (which it is by default), then we use Google's libphonenumber to convert international numbers into national numbers. You can see how that lib processes numbers by submitting your example international number into this demo - you can see that the "national format" adds that leading 0. If you think this is incorrect, please raise the issue with them.